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             Xavier Grave  <grave@ipno.in2p3.fr>
3
4         * Makefile.in: Add make ifeq define for mips/mipsel support.
5         * g-soccon-linux-mips.ads, system-linux-mipsel.ads, 
6         system-linux-mips.ads: New files.
7
8 2008-04-07  Aurelien Jarno  <aurelien@aurel32.net>
9
10         * sysdep.c: add __GLIBC__ to the #ifdef preprocessor macros to
11         detect systems using GNU libc.
12         * gsocket.h: ditto.
13         * socket.c: ditto.
14         * adaint.c: ditto.
15         * link.c: ditto.
16
17 2008-04-07  Aurelien Jarno  <aurelien@aurel32.net>
18
19         * s-osinte-linux-kfreebsd.ads (SC_NPROCESSORS_ONLN): New 
20         constant constant for sysconf call.
21         (bit_field): New packed boolean type used by cpu_set_t.
22         (cpu_set_t): New type corresponding to the C type with
23         the same name. Note that on the Ada side we use a bit
24         field array for the affinity mask. There is not need
25         for the C macro for setting individual bit.
26         (pthread_setaffinity_np): New imported routine.
27         * Makefile.in: Use s-tasinf-linux.ads and s-tasinf-linux.adb
28         on GNU/kFreeBSD.
29
30 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
31
32         * utils2.c (build_binary_op): Fold ARRAY_REF and ARRAY_RANGE_REF too.
33
34 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
35
36         * gigi.h (create_subprog_type): Remove returns_with_dsp parameter.
37         * decl.c (gnat_to_gnu_entity): Adjust for above new prototype.
38         * utils.c (create_subprog_type): Remove returns_with_dsp parameter.
39         * trans.c (gnat_to_gnu) <N_Return_Statement>: Remove code dealing with
40         Return by Depressed Stack Pointer.
41
42 2008-04-06  Eric Botcazou  <ebotcazou@adacore.com>
43
44         * decl.c (is_variable_size): Do not unconditionally return false
45         on non-strict alignment platforms.
46
47 2008-04-06  Eric Botcazou  <ebotcazou@adacore.com>
48
49         * decl.c (rest_of_type_decl_compilation_no_defer): New local function
50         used to process all the variants of the specified type.
51         (gnat_to_gnu_entity): Invoke rest_of_type_decl_compilation for enumeral
52         types too.  Call rest_of_type_decl_compilation_no_defer if undeferring.
53         (rest_of_type_decl_compilation): Likewise.
54         * utils.c (gnat_pushdecl): Propagate the name to all variants of type.
55
56 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
57
58         * gigi.h (insert_block): Kill.
59         * utils.c (insert_block): Kill.
60
61 2008-04-02  Eric Botcazou  <ebotcazou@adacore.com>
62
63         * decl.c (gnat_to_gnu_entity) <object>: For a constant object whose
64         type has self-referential size, get the size from the initializing
65         expression directly if it is also a constant whose nominal type
66         has self-referential size.
67
68 2008-04-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
69
70         PR ada/33688
71         * g-soccon-darwin.ads: Define new constant IP_PKTINFO.
72
73         PR ada/33857
74         * env.c: Always include crt_externs.h if __APPLE__ is defined.
75         (__gnat_setenv): Use setenv instead of putenv if __APPLE__ is defined.
76
77 2008-04-01  Andreas Jaeger  <aj@suse.de>
78
79         * g-soccon-linux-ppc.ads: Add new constants SO_REUSEPORT and
80         IP_PKTINFO.
81
82 2008-03-31  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
83
84         * g-table.adb, g-tasloc.adb, g-traceb.ads,
85         g-trasym.adb, g-utf_32.adb, gen-soccon.c, gigi.h, gmem.c,
86         gnatbind.adb, gnatchop.adb, gnatcmd.adb,
87         gnatcmd.ads, gnatdll.adb, gnatfind.adb,
88         gnatlink.adb, gnatmem.adb, gprep.adb,
89         i-cstrea-vms.adb, i-cstrin.adb, i-pacdec.ads,
90         i-vxwork.ads, impunit.adb, init.c, initialize.c, inline.adb,
91         layout.adb, lib-writ.adb, lib-writ.ads, lib-xref.adb,
92         lib-xref.ads, lib.adb, link.c, live.ads,
93         make.adb, makegpr.adb, makeutl.adb, math_lib.adb,
94         mdll-utl.adb, mdll.ads, memroot.adb, memroot.ads,
95         misc.c, mlib-prj.adb, mlib-tgt-hpux.adb,
96         mlib-tgt-linux.adb, mlib-tgt-tru64.adb, mlib-tgt.ads,
97         namet.adb, namet.h, nlists.adb, nlists.ads,
98         nlists.h, opt.ads, osint-b.ads, osint-c.adb,
99         osint-c.ads, osint.adb, osint.ads, output.ads,
100         par-ch10.adb, par-ch12.adb, par-ch2.adb, par-ch3.adb,
101         par-ch4.adb, par-ch5.adb, par-ch6.adb, par-ch9.adb,
102         par-endh.adb, par-labl.adb, par-prag.adb,
103         par-sync.adb, par-tchk.adb, par-util.adb,
104         par.adb, prep.adb, prep.ads, prepcomp.adb, prj-attr.ads,
105         prj-dect.adb, prj-env.adb, prj-ext.adb, prj-nmsc.adb,
106         prj-nmsc.ads, prj-pp.adb, prj-proc.adb,
107         prj-strt.ads, prj-tree.ads, prj.adb, prj.ads: Fix comment typos.
108
109 2008-03-31  Eric Botcazou  <ebotcazou@adacore.com>
110
111         * decl.c (gnat_to_gnu_entity) <object>: Do not force a non-null
112         size if it has overflowed.
113
114 2008-03-31  Olivier Hainque  <hainque@adacore.com>
115             Eric Botcazou  <ebotcazou@adacore.com>
116
117         * utils2.c (find_common_type): Document assumption on t1/t2 vs
118         lhs/rhs. Force use of lhs type if smaller, whatever the modes.
119
120 2008-03-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
121
122         * a-textio.ads, a-witeio.ads, a-ztexio.ads, ali.ads,
123         einfo.ads, erroutc.adb, erroutc.ads, exp_attr.adb,
124         exp_imgv.adb, exp_intr.adb, exp_pakd.adb,
125         exp_pakd.ads, exp_prag.adb, exp_smem.adb,
126         exp_tss.ads, exp_util.adb, exp_util.ads,
127         exp_vfpt.adb, freeze.adb, freeze.ads,
128         frontend.adb, g-alleve.adb, g-altcon.adb,
129         g-altive.ads, g-alveop.ads, g-alvevi.ads,
130         g-arrspl.adb, g-busorg.ads, g-calend.adb,
131         g-calend.ads, g-casuti.ads, g-cgideb.adb,
132         g-comlin.adb, g-comlin.ads, g-curexc.ads,
133         g-debpoo.adb, g-debpoo.ads, g-decstr.adb,
134         g-dirope.adb, g-dirope.ads, g-dynhta.ads,
135         g-dyntab.adb, g-encstr.ads, g-excact.ads,
136         g-except.ads, g-expect.ads, g-heasor.adb,
137         g-hesora.adb, g-hesorg.adb, g-htable.ads,
138         g-locfil.ads, g-md5.adb, g-md5.ads,
139         g-memdum.ads, g-moreex.ads, g-os_lib.adb,
140         g-pehage.adb, g-pehage.ads, g-regexp.adb,
141         g-regexp.ads, g-regpat.adb, g-regpat.ads,
142         g-soccon-aix.ads, g-soccon-darwin.ads,
143         g-soccon-freebsd.ads, g-soccon-hpux-ia64.ads,
144         g-soccon-hpux.ads, g-soccon-irix.ads,
145         g-soccon-linux-64.ads, g-soccon-linux-ppc.ads,
146         g-soccon-linux-x86.ads, g-soccon-lynxos.ads,
147         g-soccon-mingw.ads, g-soccon-solaris-64.ads,
148         g-soccon-solaris.ads, g-soccon-tru64.ads,
149         g-soccon-vms.ads, g-soccon-vxworks.ads,
150         g-soccon.ads, g-socket.adb, g-socket.ads,
151         g-socthi-mingw.adb, g-socthi-vms.adb,
152         g-socthi-vxworks.adb, g-soliop-mingw.ads,
153         g-soliop-solaris.ads, g-soliop.ads, g-spipat.adb,
154         g-spipat.ads, g-string.adb, g-stsifd-sockets.adb: Fix comment
155         typos.
156
157 2008-03-27  Eric Botcazou  <ebotcazou@adacore.com>
158
159         * decl.c (gnat_to_gnu_entity) <E_Procedure>: Also set the public flag
160         if the procedure is imported.
161
162 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
163
164         * adaint.c: Fix warnings.
165
166 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
167
168         * g-dirope.ads, g-dirope.adb: (Dir_Type_Value): Moved to spec.
169
170 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
171
172         * a-witeio.adb: Fix problem with Current_Output (introduce Self).
173         Fix problem of status check for null file
174
175 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
176
177         * s-proinf-irix-athread.ads, s-vxwork-mips.ads,
178         s-traces.ads, s-vxwork-arm.ads, s-vxwork-ppc.ads, s-vxwork-sparcv9.ads,
179         s-tasinf-mingw.ads, s-tasinf-linux.ads, s-tasdeb.ads, mlib-tgt.ads,
180         i-cstrin.ads, uintp.adb, g-catiio.adb, s-vmexta.ads,
181         s-trafor-default.ads, s-vxwork-m68k.ads: Minor reformatting. Update
182         comments.
183
184 2008-03-26  Thomas Quinot  <quinot@adacore.com>
185
186         PR ada/33688
187         * g-socket.ads, g-socket.adb (Options, Set_Socket_Option,
188         Get_Socket_Option): Add support for Receive_Packet_Info.
189
190         * g-soccon.ads, g-soccon-tru64.ads, g-soccon-aix.ads,
191         g-soccon-irix.ads, g-soccon-hpux.ads, g-soccon-solaris.ads,
192         g-soccon-vms.ads, g-soccon-mingw.ads, g-soccon-freebsd.ads,
193         g-soccon-hpux-ia64.ads, g-soccon-solaris-64.ads, g-soccon-darwin.ads,
194         g-soccon-lynxos.ads, g-soccon-linux-64.ads, g-soccon-linux-x86.ads: Add
195         new constants SO_REUSEPORT and IP_PKTINFO
196
197 2008-03-26  Robert Dewar  <dewar@adacore.com>
198
199         * a-taster.adb, s-shasto.adb, s-soflin.adb, s-taasde.adb, s-taenca.adb,
200         a-sytaco.adb, a-sytaco.ads, a-tasatt.adb, a-taside.adb,
201         a-intnam-lynxos.ads, a-retide.adb, a-intnam-tru64.ads, a-intnam-aix.ads,
202         a-intnam-irix.ads, a-intnam-hpux.ads, a-intnam-linux.ads,
203         a-intnam-solaris.ads, a-caldel-vms.adb, a-intnam-vms.ads,
204         a-excpol-abort.adb, a-intnam-mingw.ads, s-interr.adb, s-interr.ads,
205         s-intman.ads, s-gloloc.adb, s-osinte-lynxos-3.ads,
206         s-interr-sigaction.adb, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
207         a-intnam-freebsd.ads, s-osinte-freebsd.ads, s-osinte-lynxos.ads,
208         s-taspri-lynxos.ads, s-osinte-tru64.ads, s-osinte-tru64.ads,
209         s-taspri-tru64.ads, s-osinte-aix.ads, s-osinte-irix.ads,
210         s-osinte-hpux-dce.ads, s-taprop-hpux-dce.adb, s-taspri-hpux-dce.ads,
211         s-osinte-linux.ads, s-osinte-dummy.ads, s-taprop-dummy.adb,
212         s-taspri-dummy.ads, s-interr-dummy.adb, s-osinte-solaris.ads,
213         s-osinte-mingw.ads, s-taprop-solaris.adb, s-taspri-solaris.ads,
214         s-inmaop-vms.adb, s-interr-vms.adb, s-intman-vms.ads, s-osinte-vms.ads,
215         s-osinte-vms.ads, s-taprop-vms.adb, s-taspri-vms.ads,
216         s-taspri-mingw.ads, s-interr-vxworks.adb, s-inmaop-posix.adb,
217         s-intman-vxworks.ads, s-osinte-vxworks.ads, s-osprim-vxworks.adb,
218         s-taspri-vxworks.ads, s-taspri-posix.ads, a-caldel.adb, a-calend.adb,
219         a-elchha.adb, a-dynpri.adb, a-except.adb, a-except.ads, a-interr.ads,
220         a-textio.adb, a-tigeau.ads, atree.adb, s-taprob.adb, s-taprop.ads,
221         s-tarest.adb, s-tarest.ads, s-tasini.adb, s-taskin.adb, s-taskin.ads,
222         s-tasque.adb, s-tasren.adb, s-tasren.ads, s-tassta.adb, s-tassta.ads,
223         s-tasuti.adb, s-tataat.adb, s-tataat.ads, s-tpoben.adb, s-tpoben.ads,
224         s-tpobop.adb, s-tpobop.ads, s-tposen.adb, s-tposen.ads, s-valrea.adb,
225         s-valuti.adb, a-intnam-darwin.ads, s-osinte-darwin.ads, s-solita.adb,
226         a-ztinau.ads, s-osinte-linux-hppa.ads, a-except-2005.adb,
227         a-except-2005.ads, a-rttiev.adb, s-osinte-vxworks6.ads, s-regexp.adb,
228         s-tasloc.adb: Minor reformatting.
229         Update comments.
230         Remove "used for" sections from comments.
231
232 2008-03-26  Robert Dewar  <dewar@adacore.com>
233
234         * s-tpopsp-posix.adb, s-tpopsp-solaris.adb, s-tpopsp-posix-foreign.adb,
235         s-tpopsp-lynxos.adb, s-tpopde-vms.ads, s-tpopde-vms.adb,
236         s-tpopsp-vxworks.adb, s-casi16.adb, s-caun16.adb, s-inmaop.ads,
237         s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-tpinop.adb,
238         s-tpinop.ads, s-tporft.adb, a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb,
239         a-crbtgk.ads, a-crbtgk.adb, a-ciorse.adb, a-cihama.ads, a-cihama.adb,
240         a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads,
241         a-cgcaso.adb, a-cgaaso.adb, a-ciormu.adb, a-cihase.adb, a-swuwha.ads,
242         a-rbtgso.ads, a-cgaaso.ads, a-cgaaso.ads, a-ciorma.adb, a-chtgke.ads,
243         a-chtgke.adb, a-llfzti.ads, a-ztenau.adb, a-ztenau.ads, a-stzhas.ads,
244         a-szbzha.ads, a-szbzha.adb, a-crdlli.ads, a-crdlli.ads, a-crdlli.adb,
245         i-forbla-darwin.adb, i-forbla.ads, s-regexp.adb, a-nllrar.ads,
246         a-nlrear.ads, a-nucoar.ads, a-nurear.ads, i-forlap.ads, s-gearop.adb,
247         s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb, s-gecola.ads,
248         s-gerebl.adb, s-gerela.ads, a-swuwha.adb, i-forbla-unimplemented.ads,
249         double spaced if it fits on one line and otherwise single spaced.
250
251 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
252
253         * s-taprop-irix.adb, s-taprop-tru64.adb, s-taprop-lynxos.adb, 
254         s-taprop-linux.adb, s-taprop-mingw.adb, s-taprop-vxworks.adb, 
255         s-taprop-posix.adb (Create_Task): Do not attempt to set task priority
256         or task info if the thread could not be created.
257
258 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
259
260         * gnatvsn.ads (Library_Version): Bump to 4.4.
261         (Current_Year): Bump to 2008.
262
263 2008-03-26  Robert Dewar  <dewar@adacore.com>
264
265         * ali.ads, ali.adb (Optimize_Alignment_Setting): New field in ALI record
266
267         * bcheck.adb (Check_Consistent_Optimize_Alignment): New procedure
268
269         * debug.adb: Add debug flags d.r and d.v
270         Add debug flag .T (Optimize_Alignment (Time))
271         Add debug flag .S (Optimize_Alignment (Space))
272
273         * freeze.adb (Freeze_Record_Type): Set OK_To_Reorder_Components
274         depending on setting of relevant debug flags.
275         Replace use of Warnings_Off by Has_Warnings_Off
276         (Freeze_Entity): In circuit for warning on suspicious convention
277         actuals, do not give warning if subprogram has same entity as formal
278         type, or if subprogram does not come from source.
279         (Freeze_Entity): Don't reset Is_Packed for fully rep speced record
280         if Optimize_Alignment set to Space.
281
282         * frontend.adb: Add call to Sem_Warn.Initialize
283         Add call to Sem_Warn.Output_Unused_Warnings_Off_Warnings
284         Reset Optimize_Alignment mode from debug switches .S and .T
285
286         * layout.adb (Layout_Composite_Object): Rewritten for
287         Optimize_Aligment pragma.
288
289         * lib-writ.ads, lib-writ.adb: New Ox parameter for Optimize_Alignment
290         mode.
291
292         * opt.ads, opt.adb: (Optimize_Alignment): New global switch
293
294         * par-prag.adb (N_Pragma): Chars field removed, use Chars
295         (Pragma_Identifier (..  instead, adjustments throughout to accomodate
296         this change. Add entry for pragma Optimize_Alignment
297
298         * sem_prag.adb (N_Pragma): Chars field removed, use Chars
299         (Pragma_Identifier (..
300         instead, adjustments throughout to accomodate this change.
301         (Process_Compile_Time_Warning_Or_Error): Use !! for generated msg
302         (Favor_Top_Level): Use new function Is_Access_Subprogram_Type
303         Add implementation of pragma Optimize_Alignment
304
305 2008-03-26  Vincent Celier  <celier@adacore.com>
306
307         * a-szuzti.adb, a-swuwti.adb, a-suteio.adb (functions Get_Line):
308         Improve memory usage to avoid use of stack.
309
310 2008-03-26  Robert Dewar  <dewar@adacore.com>
311
312         * a-teioed.ads: Correct value of Default_Fill
313
314         * a-teioed.adb (Image): Use Fill_Character instead of '*' to fill
315
316 2008-03-26  Robert Dewar  <dewar@adacore.com>
317
318         * a-ztexio.adb, a-ztexio.ads, a-witeio.ads, a-witeio.adb: Fix problem
319         with Current_Output (introduce Self).
320
321 2008-03-26  Robert Dewar  <dewar@adacore.com>
322
323         * checks.adb (Ensure_Valid): Capture valid status if possible
324         (eliminate checks)
325
326 2008-03-26  Robert Dewar  <dewar@adacore.com>
327
328         * stand.ads: Deal with reordering of package standard declarations
329
330         * cstand.adb: Put package Standard declarations in proper order
331
332 2008-03-26  Robert Dewar  <dewar@adacore.com>
333
334         * einfo.ads, einfo.adb (N_Pragma): Chars field removed, use Chars
335         (Pragma_Identifier (.. instead.
336         (OK_To_Reorder_Components): New flag
337         (Has_Entries): Code cleanup.
338         (Warnings_Off_Used): New flag
339         (Warnings_Off_Used_Unmodified): New flag
340         (Warnings_Off_Used_Unreferenced): New flag
341         (Has_Warnings_Off): New function
342         (Has_Unmodified): New function
343         (Has_Unreferenced): New function
344         (Is_Trivial_Subprogram): New flag
345         (Is_Static_Dispatch_Table_Entity): New attribute.
346         Change name Access_Subprogram_Type_Kind to Access_Subprogram_Kind
347         (more consistent with other similar names)
348         (Access_Subprogram_Type): New classification function
349
350 2008-03-26  Robert Dewar  <dewar@adacore.com>
351
352         * errout.ads: Document new !! insertion sequence
353
354         * errout.adb (N_Pragma): Chars field removed, use Chars
355         (Pragma_Identifier (..  instead.
356         Replace use of Warnings_Off by Has_Warnings_Off
357         (Error_Msg_Internal): Don't delete warning ending in !!
358
359 2008-03-26  Robert Dewar  <dewar@adacore.com>
360
361         * par.adb (Check_No_Right_Paren): Removed no longer used
362
363         * par-ch10.adb (N_Pragma): Chars field removed, use Chars
364         (Pragma_Identifier (..  instead.
365
366         * par-ch10.adb (P_Subunit): Improvement in error recovery and message
367
368         * par-tchk.adb, par-ch5.adb, par-ch6.adb, par-ch3.adb,
369         par-ch4.adb: Minor improvements in error recovery and messages.
370
371         * erroutc.adb (Test_Style_Warning_Serious_Msg): Treat style msgs as
372         non-serious
373
374         * par-ch9.adb: Minor improvements in error recovery and messages
375         (P_Protected): Better error recovery for "protected type x;"
376
377         * par-util.adb: Minor improvements in error recovery and messages
378         (Check_No_Right_Paren): Removed no longer used
379
380 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
381
382         * exp_aggr.adb (Replace_Type): When checking for self-reference, verify
383         that the prefix of an attribute is the type of the aggregate being
384         expanded.
385
386 2008-03-26  Javier Miranda  <miranda@adacore.com>
387             Robert Dewar  <dewar@adacore.com>
388
389         * exp_attr.adb (N_Pragma): Chars field removed.
390         (Expand_N_Attribute_Reference): If the designated type associated with
391         attribute 'Unrestricted_Access is a subprogram entity then replace it
392         by an E_Subprogram_Type itype.
393         Implement attribute Old
394
395         * sem_attr.ads (Attribute_Class_Array): Move to snames.ads
396
397         * sem_attr.adb (Build_Access_Subprogram_Itype): Add documentation.
398         Replace call to
399         New_Internal_Entity by call to Create_Itype to centralize calls
400         building itypes, ad propagate the convention of the designated
401         subprogram. In addition, disable the machinery cleaning constant
402         indications from all entities in current scope when 'Unrestricted_Access
403         corresponds with a node initializing a dispatch table slot.
404         (Analyze_Attribute): Parameterless attributes returning a string or a
405         type will not be called with improper arguments, so we can remove junk
406         code that was dealing with this case.
407         Implement attribute Old
408
409         * snames.ads, snames.h, snames.adb: Add entries for attribute Old
410         Add entry for pragma Optimize_Alignment
411         New standard names Sync and Synchronize
412
413 2008-03-26  Robert Dewar  <dewar@adacore.com>
414             Arnaud Charlet  <charlet@adacore.com>
415
416         * exp_ch11.adb (Expand_At_End_Handler): Set From_At_End flag on raise
417         stmt.
418         (No_Exception_Propagation_Active): New function.
419         (Expand_Exception_Handlers): Use No_Exception_Propagation_Active.
420         Update comments, and review all uses of No_Exception_Propagation, which
421         are now correct and in sync with what gigi expects.
422
423         * restrict.ads, restrict.adb (No_Exception_Propagation_Active): New
424         function.
425         (Expand_Exception_Handlers): Use No_Exception_Propagation_Active.
426         Update comments, and review all uses of No_Exception_Propagation, which
427         are now correct and in sync with what gigi expects.
428
429 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
430
431         * sem_ch3.adb (Access_Definition): If the access type is the return
432         result of a protected function, create an itype reference for it
433         because usage will be in an inner scope from the point of declaration.
434         (Build_Derived_Record_Type): Inherit Reverse_Bit_Order and
435         OK_To_Reorder_Components.
436         (Make_Index): If an overloaded range includes a universal integer
437         interpretation, resolve to Standard.Integer.
438         (Analyze_Subtype_Indication): Copy Convention to subtype
439         (Check_Abstract_Interfaces): Complete semantic checks on the legality of
440         limited an synchronized progenitors in type declaration and private
441         extension declarations.
442
443         * exp_ch13.adb (Expand_N_Freeze_Entity): If the scope of the entity is a
444         protected subprogram body, determine proper scope from subprogram
445         declaration.
446
447 2008-03-26  Robert Dewar  <dewar@adacore.com>
448
449         * exp_ch4.adb (Expand_N_Op_Concat): Remove special tests for
450         No_Run_Time_Mode
451
452 2008-03-26  Gary Dismukes  <dismukes@adacore.com>
453
454         * exp_ch5.adb (Expand_N_Extended_Return_Statement): Suppress generation
455         of a heap allocator for a limited unconstrained function return when
456         resstriction No_Allocators is active.
457         (Analyze_Allocator): The restriction No_Allocators is now only checked
458         on allocators that have Comes_From_Source set, as per RM-H.4(7).
459
460         * sem_ch4.adb (Expand_N_Extended_Return_Statement): Suppress generation
461         of a heap allocator for a limited unconstrained function return when
462         resstriction No_Allocators is active.
463         (Analyze_Allocator): The restriction No_Allocators is now only checked
464         on allocators that have Comes_From_Source set, as per RM-H.4(7).
465         (Has_Fixed_Op):  If the name in a function call is Standard."*" and the
466         operands are fixed-point types, the universal_fixed predefined operation
467         is used, regardless of whether the operand type (s) have a primitive
468         operation of the same name.
469
470 2008-03-26  Javier Miranda  <miranda@adacore.com>
471
472         * exp_disp.adb (Make_DT, Make_Secondary_DT): Set attribute
473         Is_Static_Dispatch_Table
474         (Build_Dispatch_Tables): Replace calls to Exchange_Entities() by calls
475         to Exchange_Declarations to exchange the private and full-view. Bug
476         found working in this issue.
477         (Expand_Dispatching_Call): Propagate the convention of the subprogram
478         to the subprogram pointer type.
479         (Make_Secondary_DT): Replace generation of Prim'Address by
480         Address (Prim'Unrestricted_Access)
481         (Make_DT): Replace generation of Prim'Address by
482         Address (Prim'Unrestricted_Access)
483         (Make_Disp_*_Bodies): When compiling for a restricted profile, use
484         simple call form for single entry.
485         (Make_DT): Handle new contents of Access_Disp_Table (access to dispatch
486         tables of predefined primitives).
487         (Make_Secondary_DT): Add support to handle access to dispatch tables of
488         predefined primitives.
489         (Make_Tags): Add entities to Access_Dispatch_Table associated with
490         access to dispatch tables containing predefined primitives.
491
492         * exp_ch6.adb (N_Pragma): Chars field removed, use Chars
493         (Pragma_Identifier (..  instead, adjustments throughout to accomodate
494         this change.
495         (Register_Predefined_DT_Entry): Updated to handle the new contents
496         of attribute Access_Disp_Table (pointers to dispatch tables containing
497         predefined primitives).
498
499         * exp_util.ads, exp_util.adb (Corresponding_Runtime_Package): New
500         subprogram.
501         (Find_Interface_ADT): Updated to skip the new contents of attribute
502         Access_Dispatch_Table (pointers to dispatch tables containing predefined
503         primitives).
504
505         * sem_util.adb (Has_Abstract_Interfaces): Add missing support for
506         concurrent types.
507         (Set_Convention): Use new function Is_Access_Subprogram_Type
508         (Collect_Interfaces_Info): Updated to skip the new contents of attribute
509         Access_Dispatch_Table (pointers to dispatch tables containing predefined
510         primitives).
511
512         * exp_atag.ads, exp_atag.adb (Build_Inherit_Predefined_Prims): Improve
513         expanded code avoiding calls to Build_Predef_Prims.
514         (Build_Set_Predefined_Prim_Op_Address): Improve expanded code avoiding
515         call to Build_Get_Predefined_Prim_Op_Address.
516
517 2008-03-26  Javier Miranda  <miranda@adacore.com>
518
519         * exp_ch7.adb (Make_Clean): Code cleanup using the new centralized
520         subprogram Corresponding_Runtime_Package to know the runtime package
521         that will provide support to a given protected type.
522
523         * exp_ch9.adb (Add_Private_Declarations,
524         Build_Protected_Subprogram_Call,
525         Build_Protected_Entry, Build_Simple_Entry_Call,
526         Expand_N_Protected_Body, Expand_N_Protected_Type_Declaration,
527         Expand_N_Timed_Entry_Call, Make_Initialize_Protection): Code
528         cleanup using the new centralized subprogram Corresponding_Runtime
529         Package to know the runtime package that provides support to
530         a given protected type.
531
532 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
533
534         * exp_pakd.adb (Expand_Bit_Packed_Element_Set): If the component
535         assignment is within the initialization procedure for a packed array,
536         and Initialize_Scalars is enabled, compile right-hand side with checks
537         off, because the value is purposely out of range.
538
539 2008-03-26  Vincent Celier  <celier@adacore.com>
540
541         * gnatcmd.adb: Add processing for GNAT SYNC
542
543         * vms_conv.ads: (Command_Type): Add command Sync
544
545         * vms_conv.adb (Initialize): Add Command_List data for new command Sync
546
547         * vms_data.ads: Add entries for -gnatw.w
548         Add qualifier for gnatstub --header-file option
549         Add switches for GNAT SYNC
550
551         * prj-attr.ads, prj-attr.adb: Add new package Synchronize for GNAT SYNC
552         (Add_Package_Name): New procedure
553         (Package_Name_List): New function
554         (Initialize): Add known package names to the list
555         (Register_New_Package): Add the new package name to the list
556
557 2008-03-26  Robert Dewar  <dewar@adacore.com>
558
559         * g-pehage.adb, g-regist.adb, g-spipat.ads, g-spipat.adb,
560         s-asthan.adb, s-parint.adb, s-rpc.adb, s-stchop.adb: Replace
561         Raise_Exception by "raise with" construct.
562
563 2008-03-26  Pascal Obry  <obry@adacore.com>
564
565         * Makefile.in: Add proper GNAT.Serial_Communications implementation on
566         supported platforms.
567         
568         * Makefile.rtl: Add g-sercom.o.
569         
570         * impunit.adb: Add g-sercom.adb.
571         
572         * s-crtl.ads (open): New routine.
573         (close): Likewise.
574         (write): Likewise.
575         
576         * s-osinte-mingw.ads (BYTE): New type.
577         (CHAR): Likewise.
578         (OVERLAPPED): Likewise.
579         (GENERIC_READ): New constant.
580         (GENERIC_WRITE): Likewise.
581         (OPEN_EXISTING): Likewise.
582         (PSECURITY_ATTRIBUTES): Removed this type, use anonymous access
583         type instead.
584         (CreateFile): New routine.
585         (WriteFile): Likewise.
586         (ReadFile): Likewise.
587         (CloseHandle): Move next to the other file oriented routines.
588
589         * g-sercom.ads: New unit.
590
591         * g-sercom.adb: Default implementation, calls to this unit will raise
592         a program error exception.
593         
594         * g-sercom-mingw.adb, g-sercom-linux.adb: Windows and
595         GNU/Linux implementations.
596
597 2008-03-26  Robert Dewar  <dewar@adacore.com>
598
599         * itypes.adb (Create_Itype): Use new name Access_Subprogram_Kind
600
601         * sem_ch13.adb (Validate_Unchecked_Conversion): Give warning for
602         unchecked conversion for different conventions only for subprogram
603         pointers or on VMS.
604
605 2008-03-26  Vincent Celier  <celier@adacore.com>
606
607         * osint-c.adb (Set_Library_Info_Name): Use canonical case file names
608         to check if the specified object file is correct.
609
610 2008-03-26  Thomas Quinot  <quinot@adacore.com>
611
612         * sem_cat.adb (Validate_RACW_Primitives): Do not rely on
613         Comes_From_Source to exclude primitives from being checked. We want to
614         exclude predefined primitives only, so use the appropriate specific
615         predicate. Also, flag a formal parameter of an anonymous
616         access-to-subprogram type as illegal for a primitive operation of a
617         remote access to class-wide type.
618
619 2008-03-26  Vincent Celier  <celier@adacore.com>
620
621         * prj-dect.adb (Parse_Package_Declaration): When a package name is not
622         known, check if it may be a missspelling of a known package name. In
623         not verbose, not mode, issue warnings only if the package name is a
624         possible misspelling.
625         In verbose mode, always issue a warning for a not known package name,
626         plus a warning if the name is a misspelling of a known package name.
627
628         * prj-part.adb (Post_Parse_Context_Clause): Modify so that only non
629         limited withs or limited withs are parse during one call.
630         (Parse_Single_Project): Post parse context clause in two passes: non
631         limited withs before current project and limited withs after current
632         project.
633
634         * prj-proc.adb (Imported_Or_Extended_Project_From): Returns an extended
635         project with the name With_Name, even if it is only extended indirectly.
636         (Recursive_Process): Process projects in order: first single withs, then
637         current project, then limited withs.
638
639         * prj-tree.adb (Imported_Or_Extended_Project_Of): Returns an extended
640         project with the name With_Name, even if it is only extended indirectly.
641
642 2008-03-26  Robert Dewar  <dewar@adacore.com>
643
644         * scn.adb (Initialize_Scanner): Format messages belong on standard error
645
646 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
647
648         * sem_ch10.adb (Analyze_Compilation_Unit): if a unit in the context is
649         a generic subprogram that is imported, do not attempt to compile
650         non-existent body.
651
652         * sem_ch12.adb (Instantiate_Subprogram_Body): if the generic is
653         imported, do not generate a raise_program_error for the non-existent
654         body.
655         (Pre_Analyze_Actuals): If an error is detected during pre-analysis,
656         perform minimal name resolution on the generic to avoid spurious
657         warnings.
658         (Find_Actual_Type): the designated type of the actual in a child unit
659         may be declared in a parent unit without being an actual.
660
661 2008-03-26  Robert Dewar  <dewar@adacore.com>
662
663         * sem_ch11.adb: Fix No_Exception_Restriction violation for SJLJ
664         * sinfo.ads, sinfo.adb (From_At_End): New flag
665
666 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
667
668         * sem_ch6.adb (Analyze_Subprogram_Body): Remove spurious check on
669         operations that have an interface parameter.
670         (Analyze_Subprogram_Body): Set Is_Trivial_Subprogram flag
671         Don't treat No_Return call as raise.
672
673         * sem_disp.adb (Check_Dispatching_Operations): apply check for
674         non-primitive interface primitives to access parameters, not to all
675         parameters of an access type.
676
677 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
678
679         * sem_ch7.adb (Install_Parent_Private_Declarations): If the private
680         declarations of a parent unit are made visible when compiling a child
681         instance, the parent is not a hidden open scope, even though it may
682         contain other pending instance.
683         
684         * sem_ch8.adb (Restore_Scope_Stack): If an entry on the stack is a
685         hidden open scope for some child instance, it does affect the
686         visibility status of other stach entries.
687         (Analyze_Object_Renaming): Check that a class-wide object cannot be
688         renamed as an object of a specific type.
689
690 2008-03-26  Robert Dewar  <dewar@adacore.com>
691
692         * sem_res.adb (Check_Infinite_Recursion): Diagnose definite infinite
693         recursion and raise SE directly.
694         (Resolve_Actuals): Reset Never_Set_In_Source if warnings off is
695         set for formal type for IN mode parameter.
696
697 2008-03-26  Robert Dewar  <dewar@adacore.com>
698
699         * sem_warn.ads, sem_warn.adb (Warnings_Off_Pragmas): New table
700         (Initialize): New procedure
701         (Output_Warnings_Off_Warnings): New procedure
702         (Check_References): Suppress certain msgs if Is_Trivial_Subprogram
703         (Output_Non_Modifed_In_Out_Warnings): Ditto
704         (Warn_On_Unreferenced_Entity): Ditto
705
706 2008-03-26  Vincent Celier  <celier@adacore.com>
707
708         * a-direct.adb (Start_Search): Raise Use_Error if the directory is not
709         readable.
710
711 2008-03-26  Matthew Heaney  <heaney@adacore.com>
712
713         * a-ciorse.ads, a-cidlli.ads, a-cdlili.ads, a-cihase.ads, a-cohase.ads, 
714         a-ciorma.ads, a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-coorse.ads:
715         Marked with clauses as private, and controlled operations as overriding
716
717 2008-03-26  Robert Dewar  <dewar@adacore.com>
718
719         * g-byorma.adb (Read_BOM): Reorder tests so that UTF_32 is recognized
720
721 2008-03-26  Robert Dewar  <dewar@adacore.com>
722
723         * back_end.adb, back_end.ads: Minor reformatting
724
725         * bindgen.adb: Minor clarification of comments
726
727         * fname.ads: Minor comment fixes
728
729         * g-altive.ads, g-catiio.ads, g-trasym.ads, prj.ads,
730         prj-nmsc.adb, sem_aggr.adb: Minor reformatting
731
732         * xeinfo.adb, xnmake.adb, xsinfo.adb, xtreeprs.adb,
733         xsnames.adb: Remove warnings off pragma no longer needed
734
735         * a-catizo.ads, a-calari.ads, a-calfor.adb,
736         a-calfor.ads: Fix header.
737
738 2008-03-26  Tristan Gingold  <gingold@adacore.com>
739
740         * init.c: Do not adjust pc for HPARITH on alpha/vms.
741
742 2008-03-26  Robert Dewar  <dewar@adacore.com>
743
744         * lib-xref.adb: (OK_To_Set_Reference): New function
745         (Generate_Reference): Don't set referenced from occurrence in Warnings,
746         Unmodified, or Unreferenced pragma
747
748 2008-03-26  Robert Dewar  <dewar@adacore.com>
749
750         * alloc.ads: Add entries for Warnings_Off_Pragmas table
751
752 2008-03-26  GNAT Script  <nobody@adacore.com>
753
754         * Make-lang.in: Makefile automatically updated
755
756 2008-03-26  Robert Dewar  <dewar@adacore.com>
757
758         * tbuild.ads, tbuild.adb, trans.c, sprint.adb, exp_prag.adb, decl.c,
759         par-ch2.adb, sem_elab.adb, sem_util.ads (N_Pragma): Chars field
760         removed, use Chars (Pragma_Identifier (..  instead, adjustments
761         throughout to accomodate this change.
762
763         * s-pooglo.ads, s-pooloc.ads: Minor comment updates
764
765         * exp_dbug.adb: Use Sem_Util.Set_Debug_Info_Needed (not
766         Einfo.Set_Needs_Debug_Info)
767
768 2008-03-26  Robert Dewar  <dewar@adacore.com>
769
770         * gnat_ugn.texi: Add documentation for -gnatw.w/-gnatw.W
771         Add description for the new gnatstub option '--header-file'
772         clarification of -gnatwz/-gnatwZ
773         Add a "Irix-Specific Considerations" section to document the need to
774         set LD_LIBRARY_PATH when using the default shared runtime library.
775         Added documentation for both gcov and gprof.
776
777         * gnat_rm.texi: Document that pragma Compile_Time_Warning generates
778         messages that are not suppressed when clients are compiled.
779         Add documentation of s-pooglo s-pooloc
780         Document the new GNAT.Serial_Communications API.
781         Add documentation for 'Old attribute
782         Add description of pragma Optimize_Alignment
783
784         * ug_words: Add entries for -gnatw.w -gnatw.W
785
786         * usage.adb: Add line for -gnatw.w (warn on warnings off)
787
788 2008-03-25  Eric Botcazou  <ebotcazou@adacore.com>
789
790         Revert
791         2008-03-05  Eric Botcazou  <ebotcazou@adacore.com>
792         PR ada/35186
793         * decl.c (maybe_pad_type): Avoid padding an integral type when
794         bumping its alignment is sufficient.
795
796 2008-03-25  Arnaud Charlet  <charlet@adacore.com>
797
798         * exp_ch6.adb, exp_disp.adb: Update copyright notice.
799         Fix wrong formatting (lines too long)
800
801 2008-03-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
802
803         * 9drpc.adb, a-caldel-vms.adb, a-caldel.adb,
804         a-calend-vms.adb, a-calend.adb, a-calend.ads,
805         a-calfor.adb, a-chahan.ads, a-chtgke.adb,
806         a-cihama.ads, a-ciorse.adb, a-clrefi.ads,
807         a-cohama.ads, a-comlin.ads, a-coorse.adb,
808         a-crbtgk.adb, a-direct.adb, a-except-2005.adb,
809         a-except-2005.ads, a-except.adb, a-except.ads,
810         a-exexda.adb, a-exexpr-gcc.adb, a-exexpr.adb,
811         a-exextr.adb, a-filico.ads, a-finali.ads,
812         a-intnam-aix.ads, a-intnam-solaris.ads, a-ngcefu.adb,
813         a-ngelfu.adb, a-numaux-darwin.adb, a-numeri.ads,
814         a-sequio.ads, a-strbou.ads, a-strfix.adb,
815         checks.adb, exp_ch3.adb, exp_ch4.adb,
816         exp_ch4.ads, exp_ch5.adb, exp_ch6.adb,
817         exp_ch6.ads, exp_ch7.adb, exp_ch7.ads,
818         exp_ch9.adb, exp_ch9.ads, exp_dbug.adb,
819         exp_dbug.ads, exp_disp.adb, exp_dist.adb,
820         exp_dist.ads, exp_fixd.adb, exp_fixd.ads: Fix comment typos.
821
822 2008-03-24  Robert Dewar  <dewar@adacore.com>
823
824         * s-tpopsp-posix.adb, s-tpopsp-solaris.adb, s-tpopsp-posix-foreign.adb,
825         s-tpopsp-lynxos.adb, s-tpopde-vms.ads, s-tpopde-vms.adb,
826         s-tpopsp-vxworks.adb, s-casi16.adb, s-caun16.adb, s-inmaop.ads,
827         s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-tpinop.adb,
828         s-tpinop.ads, s-tporft.adb, a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb,
829         a-crbtgk.ads, a-crbtgk.adb, a-ciorse.adb, a-cihama.ads, a-cihama.adb,
830         a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads,
831         a-cgcaso.adb, a-cgaaso.adb, a-ciormu.adb, a-cihase.adb, a-swuwha.ads,
832         a-rbtgso.ads, a-cgaaso.ads, a-cgaaso.ads, a-ciorma.adb, a-chtgke.ads,
833         a-chtgke.adb, a-llfzti.ads, a-ztenau.adb, a-ztenau.ads, a-stzhas.ads,
834         a-szbzha.ads, a-szbzha.adb, a-crdlli.ads, a-crdlli.ads, a-crdlli.adb,
835         i-forbla-darwin.adb, i-forbla.ads, s-regexp.adb, a-nllrar.ads,
836         a-nlrear.ads, a-nucoar.ads, a-nurear.ads, i-forlap.ads, s-gearop.adb,
837         s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb, s-gecola.ads,
838         s-gerebl.adb, s-gerela.ads, a-swuwha.adb, i-forbla-unimplemented.ads,
839         double spaced if it fits on one line and otherwise single spaced.
840
841 2008-03-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
842
843         PR documentation/15479
844         * Make-lang.in (doc/gnat_ugn.texi) Renamed from ...
845         (doc/gnat_ugn_unw.texi): ... this, and adjusted.
846         (doc/gnat_ugn.info): Renamed from ...
847         (doc/gnat_ugn_unw.info): ... this.
848         (doc/gnat_ugn.dvi): Renamed from ...
849         (doc/gnat_ugn_unw.dvi): ... this.
850         (doc/gnat_ugn.pdf): Renamed from ...
851         (doc/gnat_ugn_unw.pdf): ... this.
852         (ADA_INFOFILES, ADA_PDFFILES, ada.install-info, ada.dvi):
853         Adjusted.
854         * gnat_ugn.texi (FILE): Hard-code gnat_ugn; set filename
855         unconditionally to gnat_ugn.info.  Fix cross references to the
856         GNAT Reference Manual.  Convert links to the GCC, GDB, Emacs,
857         and GNU make manuals to be proper texinfo links.
858         * gnat_rm.texi: Fix cross references to the GNAT User's Guide.
859
860 2008-03-21  Olivier Hainque  <hainque@adacore.com>
861
862         * trans.c (Attribute_to_gnu) <'length>: Compute as (hb < lb)
863         ? 0 : hb - lb + 1 instead of max (hb - lb + 1, 0).
864
865 2008-03-21  Eric Botcazou  <ebotcazou@adacore.com>
866
867         * trans.c (addressable_p): Add notes on addressability issues.
868
869 2008-03-21  Olivier Hainque  <hainque@adacore.com>
870             Ed Schonberg  <schonberg@adacore.com>
871
872         * trans.c (addressable_p): Accept COND_EXPR when both arms
873         are addressable.
874         (gnat_gimplify_expr): Let the gimplifier handle &COND_EXPR.
875         (call_to_gnu): Do not use name reference in the error message
876         for a misaligned by_reference_parameter. The actual may be a
877         general expression.
878
879 2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
880
881         * misc.c (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
882         
883 2008-03-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
884
885         * gnat_rm.texi (Implementation Defined Characteristics)
886         (Wide_Text_IO, Wide_Wide_Text_IO): Add @var annotations where
887         appropriate.
888         * gnat_ugn.texi (Wide Character Encodings, Switches for gnatbind)
889         (Switches for gnatchop, Installing a library): Likewise.
890
891 2008-03-10  Eric Botcazou  <ebotcazou@adacore.com>
892
893         * trans.c (emit_range_check): Do not emit the check if the base type
894         of the expression is the type against which its range must be checked.
895
896 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
897
898         * decl.c (maybe_pad_type): Use value_factor_p.
899
900 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
901
902         * lang.opt (nostdlib): Move around.
903         * misc.c (gnat_handle_option): Fix formatting.
904         (gnat_dwarf_name): Move around.
905         * trans.c (Case_Statement_to_gnu): Fix formatting.
906         (gnat_to_gnu): Likewise.
907         * utils.c (aggregate_type_contains_array_p): Likewise.
908         (create_subprog_decl): Likewise.
909
910 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
911
912         * decl.c (gnat_to_gnu_entity) <E_Signed_Integer_Subtype>: Do not
913         bother propagating the TYPE_USER_ALIGN flag when creating a JM type.
914
915 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
916
917         * decl.c (gnat_to_gnu_entity) <E_Record_Type>: Do not force
918         BIGGEST_ALIGNMENT when capping the alignment of records with
919         strict alignment and size clause.
920
921 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
922
923         * lang-specs.h: Pass -gnatwa if -Wall is passed.
924         * misc.c (gnat_handle_option) <OPT_Wall>: Expand into -Wunused
925         and -Wuninitialized.
926         (gnat_post_options): Clear warn_unused_parameter.
927
928 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
929
930         * utils.c (finish_record_type): Clear DECL_BIT_FIELD on sufficiently
931         aligned bit-fields, bumping the alignment of the record type if deemed
932         profitable.
933         (value_factor_p): Return false instead of 0.
934
935 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
936
937         * decl.c (gnat_to_gnu_entity) <E_Signed_Integer_Subtype>: Add support
938         for scalar types with small alignment.
939
940 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
941
942         * trans.c (Loop_Statement_to_gnu): Set the SLOC of the loop label
943         from that of the front-end's end label.
944         (gnat_gimplify_stmt) <LOOP_STMT>: Set the SLOC of the backward goto
945         from that of the loop label.
946
947 2008-03-07  Eric Botcazou  <ebotcazou@adacore.com>
948
949         * decl.c (gnat_to_gnu_entity) <E_Modular_Integer_Subtype>: Add
950         comment for the packed array type case.
951         * utils.c (build_template): Use a loop to strip padding or
952         containing records for justified modular types.
953
954 2008-03-07  Eric Botcazou  <ebotcazou@adacore.com>
955
956         * decl.c (gnat_to_gnu_entity): Issue a warning on suspiciously
957         large alignments specified for types.
958         (validate_alignment): Minor cleanup.
959
960 2008-03-07  Eric Botcazou  <ebotcazou@adacore.com>
961
962         * decl.c (MAX_FIXED_MODE_SIZE): Define if not already defined.
963         (gnat_to_gnu_entity) <E_Record_Type>: Try to get a smaller form of
964         the component for packing, if possible, as well as if a component
965         size clause is specified.
966         <E_Record_Subtype>: For an array type used to implement a packed
967         array, get the component type from the original array type.
968         Try to get a smaller form of the component for packing, if possible,
969         as well as if a component size clause is specified.
970         (round_up_to_align): New function.
971         (make_packable_type): Add in_record parameter.
972         For a padding record, preserve the size.  If not in_record and the
973         size is too large for an integral mode, attempt to shrink the size
974         by lowering the alignment.
975         Ditch the padding bits of the last component.
976         Compute sizes and mode manually, and propagate the RM size.
977         Return a BLKmode record type if its size has shrunk.
978         (maybe_pad_type): Use MAX_FIXED_MODE_SIZE instead of BIGGEST_ALIGNMENT.
979         Use Original_Array_Type to retrieve the type in case of an error.
980         Adjust call to make_packable_type.
981         (gnat_to_gnu_field): Likewise.
982         (concat_id_with_name): Minor tweak.
983         * trans.c (larger_record_type_p): New predicate.
984         (call_to_gnu): Compute the nominal type of the object only if the
985         parameter is by-reference.  Do the conversion actual type -> nominal
986         type if the nominal type is a larger record.
987         (gnat_to_gnu): Do not require integral modes on the source type to
988         avoid the conversion for types with identical names.
989         (addressable_p): Add gnu_type parameter.  If it is specified, do not
990         return true if the expression is not addressable in gnu_type.
991         Adjust recursive calls.
992         * utils.c (finish_record_type): Remove dead code.
993
994 2008-03-05  Eric Botcazou  <ebotcazou@adacore.com>
995
996         PR ada/35186
997         * decl.c (maybe_pad_type): Avoid padding an integral type when
998         bumping its alignment is sufficient.
999
1000 2008-03-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1001
1002         * gnatfind.adb, gnatxref.adb: Fix argument parsing typos.
1003         * s-auxdec-empty.adb, s-auxdec.adb: Fix typos in copyright
1004         statement.
1005         * a-ngcoar.adb, a-ngrear.adb, g-awk.adb, g-debpoo.adb,
1006         gprep.adb, make.adb, makegpr.adb, par-ch6.adb, prj-nmsc.adb,
1007         sem_attr.adb, sem_ch4.adb, sem_ch8.adb: Fix typos in ada source
1008         code output strings.
1009         * sem_type.adb, system-vms-ia64.ads, system-vms.ads,
1010         system-vms_64.ads: Fix typos in ada source code comments.
1011         * sinfo-cn.adb: Remove incomplete sentence.
1012
1013         PR documentation/15479
1014         * gnat_rm.texi, gnat_ugn.texi: Avoid standalone `non' word.
1015
1016 2008-02-27  Samuel Tardieu  <sam@rfc1149.net>
1017
1018         PR ada/22255
1019         * s-fileio.adb (Reset): Do not raise Use_Error if mode isn't changed.
1020
1021 2008-02-27  Samuel Tardieu  <sam@rfc1149.net>
1022
1023         PR ada/34799
1024         * sem_ch13.adb (Analyze_Record_Representation_Clause): Check
1025         that underlying type is present.
1026
1027 2008-02-26  Tom Tromey  <tromey@redhat.com>
1028
1029         * misc.c (internal_error_function): Remove test of
1030         USE_MAPPED_LOCATION.
1031         * trans.c (gigi): Remove test of USE_MAPPED_LOCATION.
1032         (Sloc_to_locus): Remove old location code.
1033
1034 2008-02-25  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1035
1036         * gnat_rm.texi, gnat_ugn.texi: Fix spacing after `e.g.' and
1037         `i.e.' by adding comma or `@:' as appropriate.
1038         * gnat_rm.texi (Pragma Wide_Character_Encoding): Instead of
1039         plain characters `C', use `@samp{C}'.
1040         * gnat_ugn.texi (File Naming Rules, About gnatkr)
1041         (Krunching Method): Likewise.
1042
1043         * gnat_ugn.texi (Conventions): List environment variables and
1044         metasyntactic variables.
1045         (Compiling Programs): Fix notation of metasyntactic variables.
1046         Add @file where appropriate.  Use @file for file extensions,
1047         @samp for strings.
1048         * gnat_rm.texi, gnat_ugn.texi: Where appropriate, use @samp
1049         instead of @file, @env instead of @code.
1050
1051 2008-02-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1052
1053         PR documentation/15479
1054         * gnat_rm.texi, gnat_ugn.texi: Where appropriate, replace `..'
1055         and `...' with `@dots{}' or `@enddots{}'.
1056
1057         PR documentation/15479
1058         * gnat_rm.texi, gnat_ugn.texi: Where appropriate, add @command,
1059         use @command instead of @code, @option instead of @samp or @code,
1060         @code instead of @var, @samp instead of @file.
1061
1062         PR documentation/15479
1063         * gnat_ugn.texi (Using gnatmake in a Makefile): Do not ignore errors
1064         in Makefile rules, by using `&&' rather than `;'.
1065
1066 2008-02-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1067
1068         PR documentation/15479
1069         * gnat_ugn.texi: In non-code, avoid space before colon.
1070         (Regular Expressions in gnatfind and gnatxref): Fix indentation.
1071         (Examples of gnatxref Usage): Use @command{vi} instead of
1072         @file{vi}.
1073         (Character Set Control): Do not use @code for UTF-8.
1074         (Validity Checking): Fix typo "NaNs" instead of "NaN's".  Do not
1075         use @code for IEEE.
1076         * gnat_rm.texi (Aggregates with static bounds): Fix typo in code
1077         sample.
1078         * gnat_rm.texi, gnat_ugn.texi: Fix typos.  Bump copyright years.
1079
1080 2008-02-11  Joel Sherrill  <joel.sherrill@oarcorp.com>
1081
1082         PR ada/35143
1083         * env.c: Add __rtems__ to if defined.
1084         * s-osinte-rtems.adb: Add To_Target_Priority.  Fix formatting.
1085         * s-osinte-rtems.ads: Add To_Target_Priority prototype and
1086         PTHREAD_SCOPE_PROCESS/PTHREAD_SCOPE_SYSTEM constants.  Add
1087         pragma Convention as required.
1088         * gsocket.h: Make compile in and out of RTS.
1089         * Makefile.in: Add system-rtems.ads.  Build DEC extensions.
1090         Use g-soccon-rtems.ads.
1091         * g-soccon-rtems.ads, system-rtems.ads: New files.
1092
1093 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1094
1095         PR other/35107
1096         * Make-lang.in (gnat1): Add $(GMPLIBS).
1097
1098 2008-01-26  Eric Botcazou  <ebotcazou@adacore.com>
1099
1100         * decl.c (components_to_record): Improve comment.
1101
1102 2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>
1103
1104         * decl.c (components_to_record): Do not reuse the empty union type
1105         if there is a representation clause on the record.
1106         * trans.c (addressable_p): Return true for INTEGER_CST.
1107
1108 2008-01-21  Eric Botcazou  <ebotcazou@adacore.com>
1109
1110         * trans.c (gnat_to_gnu) <N_Free_Statement>: Use POINTER_PLUS_EXPR
1111         in pointer arithmetics.
1112         * utils2.c (build_allocator): Likewise.
1113
1114 2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>
1115
1116         * utils.c (build_function_stub): Properly build the call expression.
1117
1118 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
1119
1120         * decl.c (gnat_to_gnu_entity) <object>: Process renamings
1121         before converting the expression to the type of the object.
1122         * trans.c (maybe_stabilize_reference) <CONSTRUCTOR>: New case.
1123         Stabilize constructors for special wrapping types.
1124
1125 2008-01-13  Eric Botcazou  <ebotcazou@adacore.com>
1126
1127         * trans.c (call_to_gnu): Invoke the addressable_p predicate only
1128         when necessary.  Merge some conditional statements.  Update comments.
1129         Rename unchecked_convert_p local variable to suppress_type_conversion.
1130         Do not suppress conversions in the In case.
1131         (addressable_p) <VIEW_CONVERT_EXPR>: Do not take alignment issues
1132         into account on non strict-alignment platforms.
1133
1134 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
1135
1136         * utils.c (aggregate_type_contains_array_p): New predicate.
1137         (create_field_decl): In a packed record, force byte alignment
1138         for fields without specified position that contain an array.
1139
1140 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
1141
1142         * utils.c (unchecked_convert): Fold the VIEW_CONVERT_EXPR expression.
1143
1144 2008-01-10  John David Anglin  <dave.anglin.@nrc-cnrc.gc.ca>
1145
1146         PR ada/34466
1147         * s-osinte-linux-hppa.ads (SC_NPROCESSORS_ONLN): New constant for
1148         sysconf call.
1149         (bit_field): New packed boolean type used by cpu_set_t.
1150         (cpu_set_t): New type corresponding to the C type with
1151         the same name. Note that on the Ada side we use a bit
1152         field array for the affinity mask. There is not need
1153         for the C macro for setting individual bit.
1154         (pthread_setaffinity_np): New imported routine.
1155
1156 2008-01-03  Tero Koskinen  <tero.koskinen@iki.fi>
1157
1158         PR ada/34647
1159         * adaint.c (__gnat_open_new_temp, __gnat_tmp_name): Use mkstemp()
1160         on OpenBSD as is done on other BSD systems.
1161
1162         PR ada/34645
1163         * sysdep.c (__gnat_ttyname, getc_immediate_nowait,
1164         getc_immediate_common): Treat OpenBSD as FreeBSD regarding immediate
1165         I/O.
1166
1167         PR ada/34644
1168         * env.c (__gnat_clearenv): Treat OpenBSD as other BSD systems missing
1169         clearenv().
1170
1171         PR ada/34646
1172         * init.c (__gnat_error_handler, __gnat_install_handler,
1173         __gnat_init_float): Define for OpenBSD.
1174
1175         * initialize.c (__gnat_initialize): Define for OpenBSD.
1176
1177 2007-12-27  Samuel Tardieu  <sam@rfc1149.net>
1178
1179         PR ada/34553
1180         * adaint.c (__gnat_open_new_temp, __gnat_tmp_name): Use mkstemp()
1181         instead of mktemp() or tmpnam() on NetBSD.
1182
1183 2007-12-23  Eric Botcazou  <ebotcazou@adacore.com>
1184
1185         * trans.c (call_to_gnu): Make the temporary for non-addressable
1186         In parameters passed by reference.
1187         (addressable_p): Return true for STRING_CST and CALL_EXPR.
1188
1189 2007-12-19  Robert Dewar  <dewar@adacore.com>
1190
1191         * g-expect-vms.adb, g-expect.adb, s-poosiz.adb: 
1192         Add pragma Warnings (Off) for unassigned IN OUT arguments
1193
1194         * sem_warn.adb (Output_Reference): Suppress messages for internal names
1195         (Check_References): Extensive changes to tune up warnings
1196         (Output_Non_Modifed_In_Out_Warnings): Changes to tune up warnings
1197         (Has_Pragma_Unmodifed_Check_Spec): New function
1198         (Check_References): Implement pragma Unmodified
1199         (Warn_On_Unassigned_Out_Parameter): Implement pragma Unmodified
1200
1201         * par-prag.adb: Dummy entry for pragma Unmodified
1202
1203         * sem_prag.adb: Implement pragma Unmodified
1204
1205         * einfo.ads, einfo.adb: (Has_Pragma_Unmodified): New flag
1206         (Proc_Next_Component_Or_Discriminant): Fix typo.
1207         Update comments.
1208
1209         * sem_util.adb (Note_Possible_Modification): Add processinng for pragma
1210         Unmodified.
1211         (Reset_Analyzed_Flags): Use Traverse_Proc instead of Traverse_Func,
1212         because the former already takes care of discarding the result.
1213         (Mark_Coextensions): Remove ununused initial value from Is_Dynamic.
1214         Add comment.
1215
1216         * snames.h, snames.ads, snames.adb: Add entry for pragma Unmodified
1217
1218 2007-12-19  Eric Botcazou  <ebotcazou@adacore.com>
1219
1220         * targparm.adb, targparm.ads, system.ads, system-darwin-ppc.ads,
1221         system-vxworks-x86.ads, system-linux-ppc.ads, system-linux-hppa.ads,
1222         system-hpux-ia64.ads, system-vxworks-arm.ads, system-darwin-x86.ads,
1223         system-vms_64.ads, system-vms-ia64.ads, system-linux-ia64.ads,
1224         system-freebsd-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
1225         system-aix.ads, system-vxworks-sparcv9.ads, system-solaris-x86.ads,
1226         system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads,
1227         system-vxworks-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads,
1228         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
1229         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads
1230         (Dynamic_Trampolines_Used): Delete.
1231
1232         * system-lynxos-x86.ads, system-lynxos-ppc.ads: Ditto.
1233         Turn on stack probing mechanism on LynxOS.
1234
1235 2007-12-19  Bob Duff  <duff@adacore.com>
1236
1237         * atree.ads, atree.adb (Traverse_Func): Walk Field2 last, and eliminate
1238         the resulting tail recursion by hand. This prevents running out of
1239         memory on deeply nested concatenations, since Field2 is where the left
1240         operand of concatenations is stored.
1241         Fix bug (was returning OK_Orig in some cases). Fix return subtype to
1242         clarify that it can only return OK or Abandon.
1243
1244         * sem_res.adb (Resolve_Op_Concat): Replace the recursion on the left
1245         operand by iteration, in order to avoid running out of memory on
1246         deeply-nested concatenations. Use the Parent pointer to get back up the
1247         tree.
1248         (Resolve_Op_Concat_Arg, Resolve_Op_Concat_First,
1249          Resolve_Op_Concat_Rest): New procedures split out of
1250         Resolve_Op_Concat, so the iterative algorithm in Resolve_Op_Concat is
1251         clearer.
1252
1253         * checks.adb (Remove_Checks): Use Traverse_Proc instead of
1254         Traverse_Func, because the former already takes care of discarding the
1255         result.
1256
1257         * errout.adb (First_Node): Use Traverse_Proc instead of Traverse_Func,
1258         because the former already takes care of discarding the result.
1259         (Remove_Warning_Messages): Use appropriate subtype for Status and
1260         Discard 
1261
1262 2007-12-19  Ed Schonberg  <schonberg@adacore.com>
1263
1264         * exp_aggr.adb (Not_OK_For_Backend): A component of a private type with
1265         discriminants forces expansion of the aggregate into assignments.
1266         (Init_Record_Controller):  If the type of the aggregate is untagged and
1267         is not inherently limited, the record controller is not limited either.
1268
1269 2007-12-19  Robert Dewar  <dewar@adacore.com>
1270
1271         * exp_attr.adb (Expand_N_Attribute_Reference, case Size): Fix error in
1272         handling compile time known size of record or array (case of front end
1273         layout active, e.g. in GNAAMP).
1274
1275 2007-12-19  Javier Miranda  <miranda@adacore.com>
1276
1277         * exp_ch3.adb (Expand_N_Object_Declaration): Complete the circuitry
1278         that forces the construction of static dispatch tables in case of
1279         record subtypes.
1280
1281 2007-12-19  Robert Dewar  <dewar@adacore.com>
1282
1283         * exp_ch9.adb (Null_Statements): Moved to library level
1284         (Trivial_Accept_OK): New function
1285         (Expand_Accept_Declaration): Use Trivial_Accept_OK
1286         (Expand_N_Accept_Statement): Use Trivial_Accept_OK
1287
1288 2007-12-19  Robert Dewar  <dewar@adacore.com>
1289
1290         * exp_pakd.adb (Expand_Bit_Packed_Element_Set): Fix packed array type
1291         in complex case where array is Volatile.
1292
1293 2007-12-19  Ed Schonberg  <schonberg@adacore.com>
1294
1295         * freeze.adb (Freeze_Record_Type, Check_Current_Instance): Implement
1296         properly the Ada2005 rules concerning when the current instance of a
1297         record type is aliased.
1298
1299 2007-12-19  Ed Schonberg  <schonberg@adacore.com>
1300
1301         * par-ch3.adb (P_Record_Declaration): Guard against cascaded errors in
1302         mangled declaration
1303         (P_Type_Declaration): Diagnose misuse of "abstract" in untagged record
1304         declarations.
1305         (P_Variant_Part): Cleaner patch for parenthesized discriminant
1306
1307 2007-12-19  Vincent Celier  <celier@adacore.com>
1308
1309         * prj-attr.adb (Package_Node_Id_Of): Returns Unknown_Package when
1310         package is not known
1311
1312         * prj-attr.ads (Unknown_Package): New constant
1313         Do not crash when an unknown package is in several projects
1314
1315         * prj-dect.adb (Parse_Package_Declaration): Mark an unknown package as
1316         ignored
1317
1318         * prj-nmsc.adb (Check): Remove obsolete code related to no longer
1319         existing package Language_Processing.
1320
1321 2007-12-19  Ed Schonberg  <schonberg@adacore.com>
1322             Gary Dismukes  <dismukes@adacore.com>
1323             Samuel Tardieu  <sam@rfc1149.net>
1324
1325         PR ada/15803, ada/15805
1326         * sem_ch6.adb, sem_ch3.adb (Constrain_Access): In Ada2005, diagnose
1327         illegal access subtypes when there is a constrained partial view.
1328         (Check_For_Premature_Usage): New procedure inside
1329         Access_Subprogram_Declaration for checking that an access-to-subprogram
1330         type doesn't reference its own name within any formal parameters or
1331         result type (including within nested anonymous access types).
1332         (Access_Subprogram_Declaration): Add call to Check_For_Premature_Usage.
1333         (Sem_Ch3.Analyze_Object_Declaration, Sem_ch6.Process_Formals): if the
1334         context is an access_to_variable, the expression cannot be an
1335         access_to_constant.
1336
1337 2007-12-19  Bob Duff  <duff@adacore.com>
1338
1339         * sem_ch4.adb (Analyze_Concatenation_Rest): New procedure.
1340         (Analyze_Concatenation): Use iteration instead of recursion in order
1341         to avoid running out of stack space for deeply nested concatenations.
1342
1343 2007-12-19  Ed Schonberg  <schonberg@adacore.com>
1344             Gary Dismukes  <dismukes@adacore.com>
1345
1346         * sem_ch8.adb (Analyze_Subprogram_Renaming): Diagnose illegal renamings
1347         whose renamed entity is a subprogram that requires overriding.
1348         (Premature_Usage): Test for the case of N_Full_Type_Declaration when
1349         issuing an error for premature usage and issue a message that says
1350         'type' rather than 'object'.
1351
1352 2007-12-19  Gary Dismukes  <dismukes@adacore.com>
1353
1354         PR ada/34149
1355         * sem_disp.adb (Check_Dispatching_Call): Augment existing test for
1356         presence of a statically tagged operand (Present (Static_Tag)) with
1357         test for Indeterm_Ancestor_Call when determining whether to propagate
1358         the static tag to tag-indeterminate operands (which forces dispatching
1359         on such calls).
1360         (Check_Controlling_Formals): Ada2005, access parameters can have
1361         defaults.
1362         (Add_Dispatching_Operation, Check_Operation_From_Private_View): do
1363         not insert subprogram in list of primitive operations if already there.
1364
1365 2007-12-19  Tristan Gingold  <gingold@adacore.com>
1366
1367         * utils.c (create_var_decl_1): call rest_of_decl_compilation only for
1368         global variable.
1369
1370 2007-12-19  Thomas Quinot  <quinot@adacore.com>
1371
1372         Part of PR ada/33688
1373         * gen-soccon.c: Add constant IP_PKTINFO to allow getting ancillary
1374         datagram info on Linux.
1375
1376 2007-12-19  Vincent Celier  <celier@adacore.com>
1377
1378         * makegpr.adb (Check_Compilation_Needed): Normalize C_Source_Path so
1379         that the source path name is always found in the dependencies.
1380
1381 2007-12-19  Robert Dewar  <dewar@adacore.com>
1382
1383         * gnat_rm.texi, gnat_ugn.texi: Update documentation of -gnatw.o
1384         Fix name of Wide_Wide_Latin_1/9 file names
1385         Add documentation for Ada.Exceptions.Last_Chance_Handler (a-elchha.ads)
1386         Add missing documentation for Ada.Wide_[Wide_]Characters.Unicode
1387         Add missing documentation for Ada.Command_Line.Response_File
1388         Update list of warning letters for Warnings pragma
1389         Add documentation for pragma Unmodified
1390
1391 2007-12-19  Samuel Tardieu  <sam@rfc1149.net>
1392
1393         * Makefile.in: Add s-tasinf.ad[bs] substitutions for sh4-linux target.
1394
1395 2007-12-17  Arnaud Charlet  <charlet@adacore.com>
1396
1397         * s-vxwork-alpha.ads: Removed, no longer used.
1398
1399 2007-12-15  Jakub Jelinek  <jakub@redhat.com>
1400
1401         * Make-lang.in (gnat1, gnatbind): Pass ALL_CFLAGS on the link line.
1402
1403 2007-12-13  Samuel Tardieu  <sam@rfc1149.net>
1404
1405         PR ada/34360
1406         * Makefile.in: Change two occurrences of mlib-tgt.adb by correct name
1407         mlib-tgt-specific.adb.
1408
1409 2007-12-13  Bob Duff  <duff@adacore.com>
1410
1411         * trans.c (Attribute_to_gnu): Check for violations of the
1412         No_Implicit_Dynamic_Code restriction. This checking used to be done in
1413         the front end, but is moved here so we can make it more accurate.
1414
1415 2007-12-13  Pascal Obry  <obry@adacore.com>
1416
1417         * adaint.c (__gnat_pthread_setaffinity_np): New routine. A dummy
1418          version is provided for older GNU/Linux distribution not
1419          supporting thread affinity sets.
1420         
1421         * s-osinte-linux.ads (SC_NPROCESSORS_ONLN): New constant for sysconf
1422         call.
1423         (bit_field): New packed boolean type used by cpu_set_t.
1424         (cpu_set_t): New type corresponding to the C type with
1425         the same name. Note that on the Ada side we use a bit
1426         field array for the affinity mask. There is not need
1427         for the C macro for setting individual bit.
1428         (pthread_setaffinity_np): New imported routine.
1429         
1430         * s-taprop-linux.adb (Enter_Task): Check that the CPU affinity mask is
1431         no null.
1432         (Create_Task): Set the processor affinity mask if information
1433         is present.
1434         
1435         * s-tasinf-linux.ads, s-tasinf-linux.adb: New files.
1436         
1437 2007-12-13  Robert Dewar  <dewar@adacore.com>
1438
1439         * s-osinte-lynxos-3.ads, s-osinte-hpux.ads, s-osinte-solaris-posix.ads, 
1440         s-osinte-freebsd.ads, s-osinte-lynxos.ads, s-osinte-tru64.ads, 
1441         s-osinte-mingw.ads, s-osinte-aix.ads, s-osinte-hpux-dce.ads, 
1442         s-osinte-irix.ads, s-osinte-solaris.ads, s-intman-vms.adb,
1443         s-osinte-vms.ads, s-osinte-vxworks6.ads, s-osinte-vxworks.ads,
1444         s-auxdec.ads, s-auxdec-vms_64.ads, s-osinte-darwin.ads, 
1445         s-taprop-vms.adb, s-interr-sigaction.adb, s-osinte-linux-hppa.ads, 
1446         i-vxwork-x86.ads, s-tpopde-vms.ads: Add missing pragma Convention C
1447         for subprogram pointers.
1448
1449         * g-ctrl_c.adb: New file.
1450
1451         * g-ctrl_c.ads (Install_Handler): New body.
1452
1453         * freeze.adb (Freeze_Subprogram): Use new flag Has_Pragma_Inline_Always
1454         instead of obsolete function Is_Always_Inlined.
1455         (Freeze_Entity): check for tagged type in imported C subprogram
1456         (Freeze_Entity): check for 8-bit boolean in imported C subprogram
1457         (Freeze_Entity): check for convention Ada subprogram pointer in
1458         imported C subprogram.
1459         (Freeze_Fixed_Point_Type): In the case of a base type where the low
1460         bound would be chopped off and go from negative to zero, force
1461         Loval_Excl_EP to be the same as Loval_Incl_EP (the included lower
1462         bound) so that the size computation for the base type will take
1463         negative values into account.
1464
1465 2007-12-13  Eric Botcazou  <ebotcazou@adacore.com>
1466             Bob Duff  <duff@adacore.com>
1467             Tristan Gingold  <gingold@adacore.com>
1468
1469         * system-linux-ia64.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads, 
1470         system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads, 
1471         system-aix.ads, system-vxworks-sparcv9.ads, system-solaris-x86.ads, 
1472         system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads, 
1473         system-vxworks-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads, 
1474         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads, 
1475         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads, 
1476         system-vxworks-arm.ads, system-darwin-x86.ads, system.ads,
1477         system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads, 
1478         system-linux-ppc.ads, system-linux-hppa.ads, system-hpux-ia64.ads,
1479         system-vms-ia64.ads (Stack_Check_Limits): New target parameter.
1480         (Always_Compatible_Rep): New flag to control trampolines globally.
1481         (Dynamic_Trampolines_Used): New flag for implementing the
1482         No_Implicit_Dynamic_Code restriction more correctly (not yet used,
1483         and not yet set correctly for some targets).
1484
1485         * s-taprop-vxworks.adb: Use stack limit method of stack checking.
1486         Simply indirectly call s-stchop when a task is created.
1487
1488         * ali.ads: 
1489         New flag added: Stack_Check_Switch_Set which is set when '-fstack-check'
1490         appears as an argument (entries A) in an ALI file.
1491
1492         * fe.h (Stack_Check_Limits): Declare new target parameter.
1493         (Check_Implicit_Dynamic_Code_Allowed): New procedure.
1494
1495         * init.c: Declare __gnat_set_stack_limit_hook for VxWorks kernel RTS.
1496         This variable is declared in C to be sure not subject to elaboration
1497         code.
1498         (__gnat_map_signal, VxWorks): In kernel mode, map SIGILL to
1499         Storage_Error.
1500
1501         * targparm.ads, targparm.adb (Stack_Check_Limits): New parameter.
1502         (Always_Compatible_Rep, Dynamic_Trampolines_Used): New parameters.
1503
1504         * s-stchop.ads: Add comments.
1505
1506         * s-stchop-vxworks.adb: Package almost fully rewritten to use stack
1507         limit method of stack checking.
1508
1509         * s-stchop-limit.ads: New file.
1510
1511 2007-12-13  Robert Dewar  <dewar@adacore.com>
1512
1513         * sem_ch5.adb, s-taskin.adb, a-ciorma.adb, a-coorma.adb, a-cohama.adb, 
1514         a-cihama.adb, g-awk.adb, 
1515         s-inmaop-posix.adb: Update handling of assigned value/unreferenced
1516         warnings
1517
1518         * exp_smem.adb: Update handling of assigned value/unreferenced warnings
1519
1520         * sem.adb: Update handling of assigned value/unreferenced warnings
1521
1522         * a-exexpr-gcc.adb: Add a pragma warnings off for boolean return
1523
1524         * lib-xref.ads: Improve documentation for k xref type
1525
1526         * lib-xref.adb: 
1527         Update handling of assigned value/unreferenced warnings
1528         (Generate_Reference): Warning for reference to entity for which a
1529         pragma Unreferenced has been given should be unconditional.
1530         If the entity is a discriminal, mark the original
1531         discriminant as referenced.
1532
1533         * sem_warn.ads, sem_warn.adb
1534         (Check_One_Unit): Test Renamed_In_Spec to control giving warning for
1535         no entities referenced in package
1536         (Check_One_Unit): Don't give message about no entities referenced in
1537         a package if a pragma Unreferenced has appeared.
1538         Handle new warning flag -gnatw.a/-gnatw.A
1539         Update handling of assigned value/unreferenced warnings
1540
1541         * atree.h: Add flags up to Flag247
1542         (Flag231): New macro.
1543
1544 2007-12-13  Jose Ruiz  <ruiz@adacore.com>
1545
1546         * adaint.h: (__gnat_plist_init): Not defined for RTX.
1547
1548         * initialize.c (__gnat_initialize): Do not call __gnat_plist_init for
1549         RTX systems.
1550
1551         * Makefile.in: Add new files s-tasinf-linux.ads and s-tasinf-linux.adb.
1552         (LIBGNAT_TARGET_PAIRS, MISCLIB, THREADSLIB,
1553         EXTRA_GNATRTL_NONTASKING_OBJS, EXTRA_GNATRTL_TASKING_OBJS,
1554         GNATLIB_SHARED for RTX run time): Use the versions required by RTX.
1555
1556         * mingw32.h: 
1557         Do not define GNAT_UNICODE_SUPPORT for RTX since it is not supported.
1558
1559         * sysdep.c (winflush_function for RTX): Procedure that does nothing
1560         since we only have problems with Windows 95/98, which are not
1561         supported by RTX.
1562         (__gnat_ttyname): Return the empty string on Nucleus, just as
1563         done on vxworks.
1564
1565 2007-12-13  Robert Dewar  <dewar@adacore.com>
1566
1567         * a-textio.adb, a-textio.ads: 
1568         Extensive changes to private part for wide character encoding
1569
1570         * a-witeio.adb, a-witeio.ads, a-ztexio.ads, a-ztexio.adb
1571         (Look_Ahead): Fix mishandling of encoded sequences
1572         Move declaration of Wch_Con to private part (should not be visible)
1573
1574         * ali.adb (Scan_ALI): Set default encoding method to brackets instead of
1575         UTF-8. Probably this is never used, but if it is, brackets is
1576         clearly correct.
1577
1578         * bindgen.adb (Get_WC_Encoding): New procedure to properly handle
1579         setting wide character encoding for no main program case and when
1580         encoding is specified using -W?
1581         Initialize stack limit of environment task if stack limit method of
1582         stack checking is enabled.
1583         (Gen_Adainit_Ada): Use Get_WC_Encoding to output encoding method
1584         (Gen_Adainit_C): Use Get_WC_Encoding to output encoding method
1585         (Get_Main_Unit_Name): New function.
1586         (Gen_Adainit_Ada): Add call to main program for .NET when needed.
1587         (Gen_Output_File): Set Bind_Main_Program to True for .NET
1588
1589         * bindusg.adb: Add line for -Wx switch
1590
1591         * s-wchcon.adb, s-wchcon.ads: (Is_Start_Of_Encoding): New function
1592         Add comments
1593         Add new useful constant WC_Longest_Sequences
1594
1595         * switch-b.adb: Clean up handling of -Wx switch
1596         For -gnatWx, set Wide_Character_Encoding_Method_Specified
1597
1598         * switch-c.adb: -gnatg activates warning on assertion errors
1599         For -gnatWx, set Wide_Character_Encoding_Method_Specified
1600
1601         * s-wchcon.adb: (Is_Start_Of_Encoding): New function
1602
1603 2007-12-13  Robert Dewar  <dewar@adacore.com>
1604             Ed Schonberg  <schonberg@adacore.com>
1605
1606         * a-ngcoty.adb: New pragma Fast_Math
1607
1608         * opt.adb: New pragma Fast_Math
1609
1610         * par-prag.adb: 
1611         Add Implemented_By_Entry to the list of pragmas which do not require any
1612         special processing.
1613         (Favor_Top_Level): New pragma.
1614         New pragma Fast_Math
1615
1616         * exp_attr.adb: Move Wide_[Wide_]Image routines to Exp_Imgv
1617         (Expand_N_Attribute_Reference, Displace_Allocator_Pointer,
1618         Expand_Allocator_Expression): Take into account VM_Target
1619         (Expand_Attribute, case 'Identity):  Handle properly the case where
1620         the prefix is a task interface.
1621         New pragma Fast_Math
1622
1623         * par.adb (Next_Token_Is): New function
1624         (P_Pragma): Add Skipping parameter
1625         (U_Left_Paren): New procedure
1626         (U_Right_Paren): New procedure
1627         New pragma Fast_Math
1628
1629         * par-ch10.adb (P_Subunit): Unconditional msg for missing ) after
1630         subunit
1631         New pragma Fast_Math
1632
1633         * sem_prag.adb: Add significance value to table Sig_Flag for pragma
1634         Implemented_By_Entry.
1635         (Analyze_Pragma): Add case for Ada 2005 pragma Implemented_By_Entry.
1636         (Set_Inline_Flags): Do not try to link pragma Inline onto chain of rep
1637         items, since it can apply to more than one overloadable entity. Set
1638         new flag Has_Pragma_Inline_Always for Inline_Always case.
1639         (Analyze_Pragma, case Complex_Representation): Improve error message.
1640         (Analyze_Pragma, case Assert): When assertions are disabled build the
1641         rewritten code with Sloc of expression rather than pragma, so new
1642         warning about failing is not deleted.
1643         (Analyze_Pragma): Allow pragma Preelaborable_Initialization to apply to
1644         protected types and update error message to reflect that. Test whether
1645         the protected type is allowed for the pragma (an error is issued if the
1646         type has any entries, or components that do not have preelaborable
1647         initialization).
1648         New pragma Fast_Math
1649         (Analyze_Pragma, case No_Return): Handle generic instance
1650
1651         * snames.h, snames.ads, snames.adb: 
1652         Add new predefined name for interface primitive _Disp_Requeue.
1653         New pragma Fast_Math
1654
1655         * a-tags.ads, a-tags.adb: New calling sequence for
1656         String_To_Wide_[Wide_]String
1657         (Secondary_Tag): New subprogram.
1658
1659         * exp_imgv.ads, exp_imgv.adb: Move Wide_[Wide_]Image routines here
1660         from Exp_Attr
1661         New calling sequence for String_To_Wide_[Wide_]String
1662         (Expand_Image_Attribute): Major rewrite. New calling sequence avoids
1663         the use of the secondary stack for image routines.
1664
1665         * a-except-2005.adb, s-wchstw.ads, s-wchstw.adb, s-wwdenu.adb: New
1666         calling sequence for String_To_Wide_[Wide_]String
1667
1668         * par-ch3.adb (P_Declarative_Items): Recognize use of Overriding in
1669         Ada 95 mode
1670         (P_Unknown_Discriminant_Part_Opt): Handle missing parens gracefully
1671         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
1672
1673         * par-ch6.adb (P_Subprogram): Recognize use of Overriding in Ada 95 mode
1674         (P_Formal_Part): Use Skipping parameter in P_Pragma call
1675         to improve error recovery
1676
1677         * par-util.adb (Next_Token_Is): New function
1678         (Signal_Bad_Attribute): Use new Namet.Is_Bad_Spelling_Of function
1679
1680         * par-ch2.adb (Skip_Pragma_Semicolon): Do not resynchronize to
1681         semicolon if missing
1682         (P_Pragma): Implement new Skipping parameter
1683         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
1684         Fix location of flag for unrecognized pragma message
1685
1686         * par-tchk.adb (U_Left_Paren): New procedure
1687         (U_Right_Paren): New procedure
1688
1689 2007-12-13  Geert Bosch  <bosch@adacore.com>
1690
1691         * a-tifiio.adb: 
1692         (Put_Int64): Use Put_Digit to advance Pos. This fixes a case where
1693         the second or later Scaled_Divide would omit leading zeroes,
1694         resulting in too few digits produced and a Layout_Error as result.
1695         (Put): Initialize Pos.
1696
1697 2007-12-13  Robert Dewar  <dewar@adacore.com>
1698
1699         atree.ads, atree.adb (Flag231..Flag247): New functions
1700         (Set_Flag231..Set_Flag247): New procedures
1701         (Basic_Set_Convention): Rename Set_Convention to be
1702         Basic_Set_Convention
1703         (Nkind_In): New functions
1704         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
1705
1706         * exp_ch6.adb (Expand_Call): Use new flag Has_Pragma_Inline_Always
1707         instead
1708          of obsolete function Is_Always_Inlined
1709         (Register_Predefined_DT_Entry): Initialize slots of the second
1710         secondary dispatch table.
1711         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
1712         (Expand_N_Function_Call): Remove special provision for stack checking.
1713
1714         * exp_util.ads, exp_util.adb (Is_Predefined_Dispatching_Operation):
1715         Include _Disp_Requeue in the list of predefined operations.
1716         (Find_Interface_ADT): Modified to fulfill the new specification.
1717         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
1718
1719         * par-ch4.adb, nlists.ads, nlists.adb: 
1720         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
1721
1722         * sinfo.ads, sinfo.adb: (Nkind_In): New functions
1723         Fix location of flag for unrecognized pragma message
1724
1725         * sem_ch7.adb: Use Nkind_In
1726
1727 2007-12-13  Vincent Celier  <celier@adacore.com>
1728
1729         * opt.ads: 
1730         Indicate what flags are used by the Project Manager, gprbuild and
1731         gprclean.
1732         (Opt.Follow_Links_For_Dirs): New flag
1733         (Warn_On_Assertion_Failure): New flag
1734         (Wide_Character_Encoding_Method_Specified): New flag
1735         (Suppress_All_Inlining): New switch set by -fno-inline
1736         (Real_VMS_Target): New flag
1737         New pragma Fast_Math
1738
1739 2007-12-13  Robert Dewar  <dewar@adacore.com>
1740
1741         * back_end.adb: Recognize -fno-inline
1742
1743 2007-12-13  Robert Dewar  <dewar@adacore.com>
1744
1745         * checks.adb: Fix optimization problem with short-circuited form
1746
1747 2007-12-13  Bob Duff  <duff@adacore.com>
1748
1749         * clean.adb (Usage): Add line for -aP
1750         (Check_Version_And_Help): Change Check_Version_And_Help to be generic,
1751         with a parameter "procedure Usage", instead of passing a pointer to a
1752         procedure. This is to eliminate trampolines (since the Usage procedure
1753         is often nested in a main procedure, and it would be inconvenient to
1754         unnest it).
1755
1756         * g-comlin.adb (For_Each_Simple_Switch): Change For_Each_Simple_Switch
1757         to be generic, with a parameter "procedure Callback (...)", instead of
1758         passing a pointer to a procedure. This is to eliminate trampolines
1759         (since the Callback procedure is usually nested).
1760
1761         * gnatfind.adb, switch.adb, switch.ads, gnatlink.adb, gnatls.adb, 
1762         gnatname.adb, gnatxref.adb, gnatchop.adb, gprep.adb, gnatbind.adb
1763         (Check_Version_And_Help): Change Check_Version_And_Help to be generic.
1764
1765         * g-pehage.adb (Compute_Edges_And_Vertices, Build_Identical_Key_Sets):
1766         Use the generic Heap_Sort_G instead of Heap_Sort_A.
1767
1768 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
1769
1770         * einfo.ads, einfo.adb: Flag 232 is now Implemented_By_Entry.
1771         (Implemented_By_Entry, Set_Implemented_By_Entry): New routines.
1772         (Write_Entry_Flags): Add an entry for Implemented_By_Entry.
1773         (Renamed_In_Spec): New flag
1774         (Has_Pragma_Inline_Always): New flag
1775         Add missing doc for pragma Obsolescent_Warning
1776         Add missing doc for 17 additional unused flags (230-247)
1777         (Is_Derived_Type): Remove condition "not Is_Generic_Type".
1778         Alphabetize with clauses.
1779         Separate Is_Thunk and Has_Thunks flags
1780         (Write_Entity_Flags): Add forgotten entry for Has_Thunks
1781         (Related_Interface): Renamed to Related_Type.
1782         (Has_Thunks/Set_Has_Thunks): Subprograms of new attribute.
1783         (Set_Is_Flag): Restrict the assertion.
1784
1785 2007-12-13  Vincent Celier  <celier@adacore.com>
1786
1787         * errout.adb (Output_Source_Line): Do not keep a trailing space after
1788         the source line number if the source line is empty.
1789
1790 2007-12-13  Geert Bosch  <bosch@adacore.com>
1791
1792         * eval_fat.adb (Decompose_Int): Handle argument of zero.
1793         (Compose): Remove special casing of zero.
1794         (Exponent): Likewise.
1795         (Fraction): Likewise.
1796         (Machine): Likewise.
1797         (Decompose): Update comment.
1798
1799 2007-12-13  Ed Schonberg  <schonberg@adacore.com>
1800
1801         * exp_aggr.adb (Build_Record_Aggr_Code): If there is an aggregate for a
1802         limited ancestor part, initialize controllers of enclosing record
1803         before expanding ancestor aggregate.
1804         (Gen_Assign): If a component of the aggregate is box-initialized, add
1805         code to call Initialize if the component is controlled, and explicit
1806         assignment of null if the component is an access type.
1807
1808         Handle properly aggregates for limited types that appear in object
1809         declarations when the aggregate contains controlled values such as
1810         protected types.
1811         When expanding limited aggregates into individual components, do not
1812         call Adjust on controlled components that are limited.
1813
1814 2007-12-13  Ed Schonberg  <schonberg@adacore.com>
1815
1816         * expander.adb: Take into account N_Subprogram_Renaming_Declaration
1817
1818 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
1819
1820         * exp_ch3.adb (Predefined_Primitive_Bodies): Generate the body of
1821         predefined primitive _Disp_Requeue.
1822         (Make_Predefined_Primitive_Specs): Create the spec for predefined
1823         primitive _Disp_Requeue.
1824         (Make_Predefined_Primitive_Specs/Predefined_Primitive_Bodies): Set the
1825         type of formal Renamed_Eq to Entity_Id (instead of Node_Id).
1826         (Make_Predefined_Primitive_Specs): Spec of "=" needed if the parent is
1827         an interface type. In case of limited interfaces we now declare all the
1828         predefined primitives associated with synchronized interfaces as
1829         abstract.
1830         (Predef_Spec_Or_Body): For interface types generate abstract subprogram
1831         declarations.
1832         (Predefined_Primitive_Bodies): Add body of "=" if the parent of the
1833         tagged type is an interface type and there is no user-defined equality
1834         function.
1835         Add also bodies of predefined primitives associated with synchronized
1836         interfaces.
1837         (Freeze_Record_Type): Do not build bodies of predefined primitives of
1838         interface types because they are now defined abstract.
1839         Add missing documentation.
1840         (Expand_Record_Controller): Update occurrence of Related_Interface
1841         to Related_Type.
1842         (Build_Offset_To_Top_Functions): Do nothing in case of VM.
1843         (Expand_N_Object_Declaration): Take into account VM_Target when handling
1844         class wide interface object declaration.
1845         (Expand_Previous_Access_Type): Do not create a duplicate master entity
1846         if the access type already has one.
1847         (Expand_N_Object_Declaration): Defend against attempt to validity check
1848         generic types. Noticed for -gnatVcf specified with previous errors.
1849
1850 2007-12-13  Arnaud Charlet  <charlet@adacore.com>
1851
1852         * exp_ch4.adb (Expand_N_Attribute_Reference, Displace_Allocator_Pointer,
1853         Expand_Allocator_Expression): Take into account VM_Target
1854
1855         * exp_ch5.adb (Expand_N_Extended_Return_Statement): Do not use
1856         secondary stack when VM_Target /= No_VM
1857
1858 2007-12-13  Javier Miranda  <miranda@adacore.com>
1859             Ed Schonberg  <schonberg@adacore.com>
1860
1861         * exp_ch7.adb (Expand_N_Package_Body): Replace occurrence of attribute
1862         Is_Complation_Unit by Is_Library_Level_Entity in the code
1863         that decides if the static dispatch tables need to be built.
1864         (Wrap_Transient_Declaration): Do not generate a finalization call if
1865         this is a renaming declaration and the renamed object is a component
1866         of a controlled type.
1867
1868 2007-12-13  Gary Dismukes  <dismukes@adacore.com>
1869
1870         * exp_ch8.ads, exp_ch8.adb (Expand_N_Subprogram_Renaming_Declaration):
1871         In the case where the renamed subprogram is a dereference, call
1872         Force_Evaluation on the prefix.
1873
1874 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
1875             Ed Schonberg  <schonberg@adacore.com>
1876
1877         * exp_ch9.adb (Expand_N_Asynchronous_Select,
1878         Expand_N_Conditional_Entry_Call, Expand_N_Timed_Entry_Call): Code and
1879         comment reformatting.
1880         (Set_Privals): Inherit aliased flag from formal. From code reading.
1881         (Build_Simple_Entry_Call): Out parameters of an access type are passed
1882         by copy and initialized from the actual. This includes entry parameters.
1883         (Expand_N_Requeue_Statement): Reimplement in order to handle both Ada 95
1884         and Ada 2005 models of requeue.
1885         (Null_Statements): Still connsider do-end block null if it contains
1886         Unreferenced and Warnings pragmas.
1887         (Expand_N_Accept_Statement): Do not optimize away null do end if
1888         dispatching policy is other than defaulted.
1889         (Expand_N_Timed_Entry_Call): When the triggering statement is a
1890         dispatching call, manually analyze the delay statement.
1891         (Find_Parameter_Type): Move subprogram to Sem_Util.
1892
1893 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
1894             Javier Miranda  <miranda@adacore.com>
1895
1896         * exp_disp.ads, exp_disp.adb (Default_Prim_Op_Position): Primitive
1897         _Disp_Requeue occupies dispatch table slot number 15. Move
1898         _Disp_Timed_Select to slot 16.
1899         (Make_Disp_Requeue_Body, Make_Disp_Requeue_Spec): New routines which
1900         generate the spec and body of _Disp_Reqeueue.
1901         (Make_DT): Build and initialize the second dispatch table.
1902         Handle initialization of RC_Offset when the parent
1903         is a private type with variable size components.
1904         (Make_Secondary_DT): Complete documentation. Add support to
1905         initialize the second dispatch table.
1906         (Make_Tags): Generate the tag of the second dispatch table.
1907         (Register_Primitive): Add support to register primitives in the
1908         second dispatch table.
1909
1910 2007-12-13  Pascal Obry  <obry@adacore.com>
1911
1912         * expect.c (__gnat_kill) [WIN32]: Implement the SIGINT signal on
1913         Windows. This signal is used by gnatmake to kill child processes for
1914         example.
1915
1916 2007-12-13  Javier Miranda  <miranda@adacore.com>
1917
1918         * exp_intr.adb (Expand_Dispatching_Constructor_Call): Add missing
1919         support for generic dispatching constructor calls in which we need to
1920         locate the tag of a secondary dispatch table associated with an
1921         interface type to properly dispatch the call.
1922         (Expand_N_Attribute_Reference [case Address],
1923         Expand_Dispatching_Constructor_Call, Expand_Unc_Deallocation): Fix
1924         handling of VM targets.
1925
1926 2007-12-13  Robert Dewar  <dewar@adacore.com>
1927             Ed Schonberg  <schonberg@adacore.com>
1928
1929         * exp_prag.adb (Expand_Pragma_Assert): Recognize new warning flag for
1930         assert fail
1931
1932         * ug_words: Add entries for -gnatw.a -gnatw.A
1933
1934         * sem_res.adb (Set_String_Literal_Subtype): If the context of the
1935         literal is a subtype with non-static constraints, use the base type of
1936         the context as the base of the string subtype, to prevent type
1937         mismatches in gigi.
1938         (Resolve_Actuals): If the actual is an entity name, generate a
1939         reference before the actual is resolved and expanded, to prevent
1940         spurious warnings on formals of enclosing protected operations.
1941         (Analyze_Overloaded_Selected_Component): If type of prefix if
1942         class-wide, use visible components of base type.
1943         (Resolve_Selected_Component): Ditto.
1944         (Resolve_Short_Circuit): Detect case of pragma Assert argument
1945         evaluating to False, and issue warning message.
1946
1947         * usage.adb: Add lines for -gnatw.a and -gnatw.A
1948
1949 2007-12-13  Emmanuel Briot  <briot@adacore.com>
1950
1951         * g-calend.ads (No_Time): New constant, to represent an uninitialized
1952         time value
1953
1954         * g-catiio.ads, g-catiio.adb (Value): Added support for more date
1955         formats.
1956         (Month_Name_To_Number): New subprogram
1957
1958         * g-dirope.adb (Get_Current_Dir): On windows, normalize the drive
1959         letter to upper-case.
1960
1961 2007-12-13  Robert Dewar  <dewar@adacore.com>
1962             Ed Schonberg  <schonberg@adacore.com>
1963
1964         * gnat1drv.adb (Gnat1drv): Properly set new flag Opt.Real_VMS_Target
1965
1966         * layout.adb (Resolve_Attribute, case 'Access): If designated type of
1967         context is a limited view, use non-limited view when available. If the
1968         non-limited view is an unconstrained array, this enforces consistency
1969         requirements in 3.10.2 (27).
1970         (Layout_Type): For an access type whose designated type is a limited
1971         view, examine its declaration to determine if it is an unconstrained
1972         array, and size the access type accordingly.
1973         (Layout_Type): Do not force 32-bits for convention c subprogram
1974         pointers in -gnatdm mode, only if real vms target.
1975
1976         * sem_attr.adb (Analyze_Access_Attribute): Use new flag
1977         Has_Pragma_Inline_Always instead of obsolete function Is_Always_Inlined
1978         (Analyze_Access_Attribute,Attribute_Address): Remove checks for
1979         violations of the No_Implicit_Dynamic_Code restriction.
1980         (Resolve_Attribute, case 'Access): If designated type of context is a
1981         limited view, use non-limited view when available. If the non-limited
1982         view is an unconstrained array, this enforces consistency requirements
1983         in 3.10.2 (27).
1984         (Layout_Type): For an access type whose designated type is a limited
1985         view, examine its declaration to determine if it is an unconstrained
1986         array, and size the access type accordingly.
1987
1988 2007-12-13  Vincent Celier  <celier@adacore.com>
1989
1990         * gnatcmd.adb (GNATCmd): Do not issue -d= switch to gnatmetric when
1991         object directory of main project does not exist.
1992         On VMS, correctly set then environment variable for the source
1993         directories.
1994
1995 2007-12-13  Vasiliy Fofanov  <fofanov@adacore.com>
1996
1997         * g-regist.ads, g-regist.adb (Set_Value): new parameter Expand; when
1998         set to True this procedure will create the value of type REG_EXPAND_SZ.
1999         It was only possible to create REG_SZ values before.
2000
2001 2007-12-13  Robert Dewar  <dewar@adacore.com>
2002
2003         * g-spchge.ads, g-spchge.adb, g-u3spch.adb, g-u3spch.ads,
2004         g-wispch.adb, g-wispch.ads, g-zspche.adb, g-zspche.ads,
2005         namet-sp.adb, namet-sp.ads: New files.
2006
2007         * g-speche.adb: Use generic routine in g-spchge
2008
2009         * s-wchcnv.ads, s-wchcnv.adb: 
2010         Minor code cleanup (make formal type consistent with spec)
2011
2012         * namet.adb: Update comments.
2013
2014         * par-endh.adb (Evaluate_End_Entry): Use new
2015         Namet.Sp.Is_Bad_Spelling_Of function
2016
2017         * par-load.adb (Load): Use new Namet.Sp.Is_Bad_Spelling_Of function
2018
2019         * sem_aggr.adb (Resolve_Record_Aggregate): If a component of an
2020         ancestor is an access type initialized with a box, set its type
2021         explicitly, for use in subsequent expansion.
2022         (Check_Misspelled_Component): Use new Namet.Sp.Is_Bad_Spelling_Of
2023         function
2024
2025 2007-12-13  Robert Dewar  <dewar@adacore.com>
2026
2027         * g-spipat.adb (Break): Fix accessibility error (vsn taking not null
2028         access Vstring)
2029
2030 2007-12-13  Robert Dewar  <dewar@adacore.com>
2031
2032         * inline.adb (Back_End_Cannot_Inline): Use new flag
2033         Has_Pragma_Inline_Always instead of obsolete function Is_Always_Inlined
2034
2035         * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Body): Use new flag
2036         Has_Pragma_Inline_Always instead.
2037         of obsolete function Is_Always_Inlined
2038         (Build_Body_To_Inline): Same change
2039         (Cannot_Inline): Same change
2040         Do not give warning on exception raise in No_Return function
2041
2042         * sem_ch13.adb (Analyze_Record_Representation_Clause): If an inherited
2043         component has two inconsistent component clauses in the same record
2044         representation clause, favor the message that complains about
2045         duplication rather than inconsistency.
2046         Update comments.
2047         (Record_Representation_Clause): Do not warn on missing component
2048         clauses for inherited components of a type extension.
2049         (Rep_Item_Too_Late): Do not attempt to link pragma into rep chain for
2050         an overloadable item if it is a pragma that can apply to multiple
2051         overloadable entities (e.g. Inline) because a pragma cannot be on
2052         more than one chain at a time.
2053         (Validate_Unchecked_Conversion): Add code to warn on unchecked
2054         conversion where one of the operands is Ada.Calendar.Time.
2055         (Analyze_Attribute_Definition_Clause): Fix typo in error message.
2056         For now, ignore Component_Size clause on VM targets, as done for
2057         pragma Pack.
2058
2059 2007-12-13  Emmanuel Briot  <briot@adacore.com>
2060             Vincent Celier  <celier@adacore.com>
2061
2062         * prj.ads, prj.adb (Is_A_Language): Now takes a Name_Id instead of a
2063         string
2064         (Must_Check_Configuration, Default_Language_Is_Ada): new flags in
2065         prj.ads
2066         (Hash): Move instantiation of System.HTable.Hash from spec to body
2067         (prj-nmsc.adb): Optimize calls to Name_Find when on case sensitive
2068         systems, since we do not need to recompute the Name_Id for the canonical
2069         file name.
2070         (Body_Suffix_Id_Of, Spec_Suffix_Id_Of): new version that takes a name_id
2071         as a parameter. This parameter is in fact always "ada" in all calls, and
2072         we were doing 160560 extra calls to Name_Find to convert it to Name_Ada
2073         while loading a project with 40000 files
2074
2075         * prj-attr.adb: Fix name of attribute Dependency_Driver
2076         Change the kind of indexing for attribute Root
2077
2078         * prj-dect.adb (Parse_Declarative_Items): Allow redeclarations of
2079         variables already declared, in case constructions.
2080
2081         * prj-env.adb (Initialize): Reset Current_Source_Path_File and
2082         Current_Object_Path_File to No_Path.
2083
2084         * prj-ext.adb (Initialize_Project_Path): In multi language mode, use
2085         ADA_PROJECT_PATH if value of GPR_PROJECT_PATH is empty.
2086
2087         * prj-makr.adb: new parameter Current_Dir
2088
2089         * prj-nmsc.ads, prj-nmsc.adb (Find_Explicit_Sources): Do not look for
2090         Ada sources when language is not Ada.
2091         Change Opt.Follow_Links to Opt.Follow_Links_For_Files.
2092         (Find_Excluded_Sources, Find_Explicit_Sources): new subprograms
2093         (Must_Check_Configuration, Default_Language_Is_Ada): new flags.
2094         (Locate_Directory): Always resolve links when computing Canonical_Path
2095         (Look_For_Sources): Make sure that Name_Buffer contains the file name
2096         in Source_Files before checking for the presence of a directory
2097         separator.
2098         Optimize calls to Name_Find when on case sensitive systems.
2099         (Body_Suffix_Id_Of, Spec_Suffix_Id_Of): new version that takes a name_id
2100         as a parameter.
2101         (Prj.Nmsc.Check): new parameter Current_Dir
2102         (Check_Ada_Naming_Schemes): Restrictions on suffixes are relaxed. They
2103         cannot be empty and the spec suffix cannot be the same as the body or
2104         separate suffix.
2105         (Get_Unit): When a file name can be of several unit kinds (spec, body or
2106         subunit), always consider the longest suffix.
2107         (Check_Configuration): Do not issue an error if there is no compiler
2108         for a language. Just issue a warning and ignore the sources for the
2109         language.
2110         (Check_Library_Attributes): Only check Library_Dir if Library_Name is
2111         not empty.
2112         (Check_Naming_Schemes.Maked_Unit): Only output message if high verbosity
2113         (Unit_Exceptions): New hash table
2114         (Check_Naming_Schemes): Check if a file that could be a unit because of
2115         the naming scheme is not in fact a source because there is an exception
2116         for the unit.
2117         (Look_For_Sources): Put the unit exceptions in hash table
2118         Unit_Exceptions
2119         (Get_Unit_Exceptions): Give initial value No_Source to local variable
2120         Other_Part to avoid exception when code is compiled with validity
2121         checking.
2122         (Get_Sources_From_File): Check that there is no directory information
2123         in the file names.
2124         (Look_For_Sources): Check that there is no directory information in the
2125         list of file names in Source_Files.
2126         (Look_For_Sources): In multi-language mode, do not allow exception file
2127         names that are excluded.
2128         (Excluded_Sources_Htable): New hash table
2129         (Search_Directories.Check_File): New procedure to simplify
2130         Search_Directories.
2131         (Search_Directories): Do not consider excluded sources
2132         (Look_For_Sources): Populate Excluded_Sources_Htable before calling
2133         Search_Directories.
2134         (Get_Exceptions): Set component Lang_Kind of Source_Data
2135         (Get_Unit_Exceptions): Ditto
2136         (Search_Directories): Ditto
2137
2138         * prj-pars.adb: new parameter Current_Dir
2139
2140         * prj-part.ads, prj-part.adb: 
2141         Change Opt.Follow_Links to Opt.Follow_Links_For_Files.
2142         (Opt.Follow_Links_For_Dirs): New flag
2143         (Project_Path_Name_Of): Cache information returned by this routine as
2144         Locate_Regular_File is a costly routine. The code to output a log
2145         information and the effective call to Locate_Regular_File is now
2146         factorized into a routine (code clean-up).
2147         (Parse, Parse_Single_Project): new parameter Current_Dir
2148         When main project file cannot be found, indicate in the error
2149         message the project path that was used to do the search.
2150
2151         * prj-proc.ads, prj-proc.adb (Opt.Follow_Links_For_Dirs): New flag
2152         (Prj.Proc.Process*): new parameter Current_Dir
2153
2154         * switch-m.adb: Change Opt.Follow_Links to Opt.Follow_Links_For_Files
2155
2156 2007-12-13  Bob Duff  <duff@adacore.com>
2157
2158         * restrict.ads, restrict.adb (Check_Implicit_Dynamic_Code_Allowed): New
2159         procedure to be called from the back end to check the
2160         No_Implicit_Dynamic_Code restriction.
2161
2162 2007-12-13  Arnaud Charlet  <charlet@adacore.com>
2163
2164         * rtsfind.adb (Check_CRT): Take into account RTE_Available_Call
2165         Fixes another case where RTE_Available_Call was ignored instead of being
2166         taken into account.
2167         (Load_Fail): Ditto.
2168
2169         * rtsfind.ads: Add new entries.
2170
2171 2007-12-13  Robert Dewar  <dewar@adacore.com>
2172
2173         * g-byorma.adb, g-byorma.ads, g-decstr.adb, g-decstr.ads,
2174         g-deutst.ads, g-encstr.adb, g-encstr.ads, g-enutst.ads: New files.
2175
2176         * scn.adb: Implement BOM recognition
2177
2178 2007-12-13  Thomas Quinot  <quinot@adacore.com>
2179             Ed Schonberg  <schonberg@adacore.com>
2180
2181         * sem_ch10.adb (Check_Private_Child_Unit): A non-private library level
2182         subprogram body that acts as its own spec may not have a non-private
2183         WITH clause on a private sibling.
2184         (Build_Unit_Name): If the parent unit in the name in a with_clause on a
2185         child unit is a renaming, create an implicit with_clause on that
2186         parent, and not on the unit it renames, to prevent visibility errors
2187         in the current unit.
2188
2189 2007-12-13  Ed Schonberg  <schonberg@adacore.com>
2190
2191         * sem_ch12.adb (Instantiate_Formal_Subprogram): In the subprogram
2192         renaming declaration, use the Slocs of the formal parameters from the
2193         declaration of the formal subprogram when creating the formal parameter
2194         entities in the renaming declaration.
2195         (Analyze_Formal_Type_Declaration): Change the placement of the error
2196         message concerning illegal known discriminants. It is now posted on the
2197         type rather than on the first discriminant. This change ensures early
2198         error report.
2199         (Freeze_Subprogram_Body): If the generic subprogram is nested within
2200         the package body that contains the instance, do not generate an
2201         out-of-place freeze node for the enclosing package.
2202         (Collect_Previous_Instantiations): Ignore internal instantiations
2203         generated for formal packages.
2204         (Validate_Derived_Type_Instance): Add a check that when a formal
2205         derived type is Known_To_Have_Preelab_Init then the actual type must
2206         have preelaborable initialization, and issue an error when this
2207         condition is violated.
2208
2209 2007-12-13  Robert Dewar  <dewar@adacore.com>
2210
2211         * s-imenne.adb, s-imenne.ads: New files.
2212
2213         * s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads, s-imgdec.adb, 
2214         s-imgdec.ads, s-imgenu.ads, s-imgint.adb, s-imgint.ads, s-imglld.adb, 
2215         s-imglld.ads, s-imglli.adb, s-imglli.ads, s-imgllu.adb, s-imgllu.ads, 
2216         s-imgrea.adb, s-imgrea.ads, s-imguns.adb, s-imguns.ads, s-imgwch.adb, 
2217         s-imgwch.ads: New calling sequence for Image routines to avoid sec
2218         stack usage.
2219
2220 2007-12-13  Javier Miranda  <miranda@adacore.com>
2221             Ed Schonberg  <schonberg@adacore.com>
2222
2223         * sem_ch3.ads, sem_ch3.adb (Check_Abstract_Overriding): Avoid
2224         generation of spurious error if parent is an interface type; caused
2225         because predefined primitive bodies will be generated later by
2226         Freeze_Record_Type.
2227         (Process_Subtype): The subtype inherits the Known_To_Have_Preelab_Init
2228         flag.
2229         (Derive_Subprograms): Handle derivations of predefined primitives
2230         after all the user-defined primitives to ensure that they are
2231         found in proper order in instantiations.
2232         (Add_Interface_Tag_Components, Inherit_Components): Update occurrences
2233         of Related_Interface to Related_Type.
2234         (Record_Type_Declaration): Minor reordering of calls to decorate the
2235         Tag component because the entity must have set its Ekind attribute
2236         before setting its Is_Tag attribute.
2237         (Analyze_Subtype_Declaration): In the case of subtypes with
2238         Private_Kind, inherit Known_To_Have_Preelab_Init from the parent.
2239
2240 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
2241             Ed Schonberg  <schonberg@adacore.com>
2242
2243         * sem_ch4.adb (Analyze_Selected_Component): Include the requeue
2244         statement to the list of contexts where a selected component with a
2245         concurrent tagged type prefix should yield a primitive operation.
2246         (Find_Primitive_Operation): Handle case of class-wide types.
2247         (Analyze_Overloaded_Selected_Component): If type of prefix is
2248         class-wide, use visible components of base type.
2249         (Resolve_Selected_Component): Ditto.
2250         (Try_Primitive_Operation, Collect_Generic_Type_Ops): If the type is a
2251         formal of a generic subprogram. find candidate interpretations by
2252         scanning the list of generic formal declarations.:
2253         (Process_Implicit_Dereference_Prefix): If the prefix has an incomplete
2254         type from a limited_with_clause, and the full view is available, use it
2255         for subsequent semantic checks.
2256         (Check_Misspelled_Selector): Use Namet.Sp.Is_Bad_Spelling_Of function
2257         (Find_Primitive_Operation): New function.
2258         (Analyze_Overloaded_Selected_Component): insert explicit dereference
2259         only once if several interpretations of the prefix yield an access type.
2260         (Try_Object_Operation): Code and comment cleanup.
2261         (Analyze_Selected_Component): Reorder local variables. Minot comment and
2262         code reformatting. When the type of the prefix is tagged concurrent, a
2263         correct interpretation might be available in the primitive and
2264         class-wide operations of the type.
2265
2266 2007-12-13  Robert Dewar  <dewar@adacore.com>
2267             Ed Schonberg  <schonberg@adacore.com>
2268
2269         * sem_ch8.adb (Analyze_Subprogram_Renaming): Special error message for
2270         renaming entry as subprogram using rename-as-body if subprogram spec
2271         frozen.
2272         (Use_One_Type): The clause is legal on an access type whose designated
2273         type has a limited view.
2274         (Find_Direct_Name): Use Namet.Sp.Is_Bad_Spelling_Of function
2275         (Find_Expanded_Name): Use Namet.Sp.Is_Bad_Spelling_Of function
2276         (Analyze_Renamed_Primitive_Operation): new procedure to determine the
2277         operation denoted by a selected component.
2278         (Analyze_Renamed_Entry): Resolve the prefix of the entry name, because
2279         it can be an expression, possibly overloaded, that returns a task or
2280         an access to one.
2281
2282 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
2283             Gary Dismukes  <dismukes@adacore.com>
2284
2285         * sem_ch9.adb (Analyze_Requeue): Add a local flag to capture whether a
2286         requeue statement is dispatching. Do not emit an error when the name is
2287         not an entry and the context is a dispatching select. Add code to
2288         perform subtype conformance between the formals of the current entry
2289         and those of the target interface primitive.
2290         (Analyze_Asynchronous_Select, Analyze_Conditional_Entry_Call, Analyze_
2291         Timed_Entry_Call): Analyze the triggering statement as the first step of
2292         the processing. If this is a dispatching select, postpone the analysis
2293         of all select statements until the Expander transforms the select. This
2294         approach avoids generating duplicate identifiers after the Expander has
2295         replicated some of the select statements. In case the Expander is
2296         disabled, perform regular analysis.
2297         (Check_Triggering_Statement): New routine.
2298         (Analyze_Requeue): Exclude any interpretations that are not entries when
2299         checking overloaded names in a requeue. Also test type conformance for
2300         matching interpretations rather than requiring subtype conformance at
2301         that point to conform with the RM's resolution rule for requeues.
2302
2303 2007-12-13  Ed Schonberg  <schonberg@adacore.com>
2304
2305         * sem_disp.adb (Check_Dispatching_Call): If an actual in a call to an
2306         inherited operation is a defaulted tag-indeterminate call, and there is
2307         a statically tagged actual, use the static tag as a controlling actual
2308         for the defaulted actual.
2309
2310 2007-12-13  Geert Bosch  <bosch@adacore.com>
2311
2312         * sem_eval.adb (Eval_Real_Literal): N_Constant_Declaration is a static
2313         context, so do not call Check_Non_Static_Context.
2314
2315 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
2316
2317         * sem_type.adb (Function_Interp_Has_Abstract_Op): Add guard to check
2318         whether formal E is an entity which may have parameters.
2319
2320 2007-12-13  Bob Duff  <duff@adacore.com>
2321             Javier Miranda  <miranda@adacore.com>
2322             Robert Dewar  <dewar@adacore.com>
2323
2324         * sem_util.ads, sem_util.adb (Is_Concurrent_Interface): New routine.
2325         (Set_Convention): New procedure to set the Convention flag, and in
2326         addition make sure the Favor_Top_Level flag is kept in sync (all
2327         foreign-language conventions require Favor_Top_Level = True).
2328         (Collect_Abstract_Interfaces): Update occurrences of Related_Interface
2329         to Related_Type.
2330         (Collect_Interfaces_Info): Minor update to handle the two secondary
2331         dispatch tables. Update occurrence of Related_Interface to Related_Type.
2332         (Generate_Parent_Ref): Add parameter to specify entity to check
2333         (Is_Preelaborable_Expression): Allow the name of a discriminant to
2334         initialize a component of a type with preelaborable initialization.
2335         This includes the case of a discriminal used in such a context.
2336         (Is_Dependent_Component_Of_Mutable_Object): Take into account the
2337         latest Ada 2005 rules about renaming and 'Access of
2338         discriminant-dependent components.
2339         (Check_Nested_Access): Add handling when there are no enclosing
2340         subprograms (e.g. case of a package body).
2341         (Find_Parameter_Type): Factor routine from several other compiler files.
2342         Remove routine from Find_Overridden_Synchronized_Primitive.
2343
2344 2007-12-13  Thomas Quinot  <quinot@adacore.com>
2345
2346         * sinput.adb (Get_Source_File_Index): Add assertion to guard against
2347         an invalid access to an uninitialized slot in the
2348         Source_File_Index_Table.
2349
2350 2007-12-13  Thomas Quinot  <quinot@adacore.com>
2351
2352         * sinput-l.adb (Load_File): Disable style checks when preprocessing.
2353
2354 2007-12-13  Bob Duff  <duff@adacore.com>
2355
2356         * s-soflin.ads: Apply new pragma Favor_Top_Level to all
2357         access-to-subprogram types in this package.
2358
2359 2007-12-13  Olivier Hainque  <hainque@adacore.com>
2360
2361         * s-stausa.ads (Stack_Analyzer): Remove First_Is_Topmost, redundant
2362         with Stack_Grows_Down in System.Parameters. Rename Array_Address into
2363         Stack_Overlay_Address and document that we are using an internal
2364         abstraction.
2365         (Byte_Size, Unsigned_32_Size): Remove, now useless.
2366         (Pattern_Type, Bytes_Per_Pattern): New subtype and constant, to be used
2367         consistently throughout the various implementation pieces.
2368
2369         * s-stausa.adb (Stack_Slots): New type, abstraction for the stack
2370         overlay we are using to fill the stack area with patterns.
2371         (Top_Slot_Index_In, Bottom_Slot_Index_In): Operations on Stack_Slots.
2372         (Push_Index_Step_For, Pop_Index_Step_For): Likewise.
2373         (Fill_Stack, Compute_Result): Use the Stack_Slots abstraction.
2374
2375 2007-12-13  Robert Dewar  <dewar@adacore.com>
2376
2377         * s-stoele.adb ("mod"): mod negative value raises Constraint_Error
2378
2379 2007-12-13  Arnaud Charlet  <charlet@adacore.com>
2380
2381         * s-tassta.adb: 
2382         (Create_Task): Take into account tasks created by foreign threads.
2383         Code clean up: use constants instead of hard coded values.
2384
2385 2007-12-13  Robert Dewar  <dewar@adacore.com>
2386
2387         * styleg.adb (Check_Comment): More liberal rules for comment placement
2388
2389 2007-12-13  Olivier Hainque  <hainque@adacore.com>
2390
2391         * tb-alvms.c (struct tb_entry_t, __gnat_backtrace): Revert back to use
2392         of Procedure Value instead of Frame Pointer as the invocation
2393         identifier associated with the instruction pointer in each traceback
2394         entry.
2395
2396         * g-trasym-vms-alpha.adb (Traceback_Entry, PV_For, FP_For,
2397         TB_Entry_For): Revert back to use of Procedure Value instead of Frame
2398         Pointer as the invocation identifier passed to tbk$symbolize.
2399
2400         * s-traent-vms.ads, s-traent-vms.adb
2401         (Traceback_Entry, PV_For, FP_For, TB_Entry_For): Revert back to use of
2402         Procedure Value instead of Frame Pointer as the invocation identifier
2403         passed to tbk$symbolize.
2404
2405 2007-12-13  Robert Dewar  <dewar@adacore.com>
2406
2407         * tbuild.ads, tbuild.adb: 
2408         Fix location of flag for unrecognized pragma message
2409
2410 2007-12-13  Robert Dewar  <dewar@adacore.com>
2411
2412         * treepr.ads, treepr.adb: (pl): implement use of positive value
2413         shorthands
2414
2415 2007-12-13  Robert Dewar  <dewar@adacore.com>
2416
2417         * xeinfo.adb: Remove warnings
2418         * xnmake.adb: Remove warnings
2419         * xsinfo.adb: Remove warnings
2420         * xtreeprs.adb: Remove warnings
2421         * xsnames.adb: Remove warnings
2422
2423         * a-ngcoar.adb: Fix typo.
2424         * s-interr.adb: Minor reformatting
2425         * env.c: Minor reformatting.
2426         * g-bytswa.adb: Minor reformatting.
2427         * g-rannum.ads: Minor documentation improvements
2428         * s-tasinf-mingw.adb: Minor header fix
2429         * a-clrefi.adb: Minor reformatting
2430         * g-sttsne.ads: Minor documentation improvement
2431         * g-sttsne-locking.ads: Minor documentation improvement
2432         * g-soliop-solaris.ads: Minor documentation improvement
2433         * g-soliop-mingw.ads: Minor documentation improvement
2434         * g-soliop.ads: Minor documentation improvement
2435         * exp_aggr.ads: Minor reformatting
2436         * debug.adb: Add documentation for the gprbuild debug flags
2437         * exp_ch2.adb: Use Nkind_In to simplify code throughout
2438         * exp_pakd.adb: Minor reformatting
2439
2440         * g-altive.ads, g-alleve.adb: Remove assertions.
2441         Add comment about minor differences between targets regarding
2442         floating-point operations.
2443
2444         * g-thread.adb: Remove pragma unreferenced.
2445         * lib.ads: Minor reformatting
2446         * par-ch9.adb: Minor reformatting of error messages
2447         * sem_case.adb: Minor reformatting
2448         * s-fileio.adb: Minor reformattinng
2449         * s-vmexta.ads: Minor typo
2450         * vxaddr2line.adb: 
2451         Take into account 'Success' value as per new GNAT warning.
2452
2453 2007-12-13  Vincent Celier  <celier@adacore.com>
2454
2455         * a-direct.adb (Create_Path): Always take '/' as a directory separator,
2456         even on Windows
2457
2458 2007-12-13  Robert Dewar  <dewar@adacore.com>
2459             Bob Duff  <duff@adacore.com>
2460
2461         * gnat_ugn.texi: Dcoument new rules for style check comment alignment
2462         Document that suffixes may be terminations of each others
2463         Add doc for -gnatw.a and -gnatw.A
2464         Document gnatbind -Wx switch
2465         Document BOM recognition
2466         Document pragma Implemented_By_Entry.
2467         Document new units.
2468
2469         * gnat_rm.texi: (Favor_Top_Level): Document new pragma.
2470         Add doc for pragma Unreferenced suppressing no entities referenced msg
2471         Add documentation of GNAT.Directory_Operations.Iteration
2472         Add documentation of GNAT.Random_Numbers
2473         Add documentation for pragma Shared.
2474         Correct documentation for Bit_Order
2475         Add documentation for the Pool_Address attribute.
2476         Fix and improve documentation of pragma machine_attribute.
2477         New pragma Fast_Math
2478         Document BOM recognition
2479
2480         * vms_data.ads: Add entries for -gnatw.a -gnatw.A
2481         Add /Wide_Character_Encoding for binder
2482         Add qualifier for the new gnatpp option --no-separate-loop-then
2483
2484 2007-12-13  Matthew Heaney  <heaney@adacore.com>
2485
2486         * a-cohase.ads, a-cihama.ads, a-cihase.ads, a-cohama.ads: Document
2487         which generic formal operations are called for each operation.
2488
2489 2007-12-13  Olivier Hainque  <hainque@adacore.com>
2490
2491         * tb-gcc.c (uw_data_t, trace_callback): Only define if not GCC-SJLJ eh.
2492         (__gnat_backtrace): Early return 0 if using GCC-SJLJ eh.
2493
2494 2007-12-13  Emmanuel Briot  <briot@adacore.com>
2495
2496         * s-os_lib.ads, s-os_lib.adb (Normalize_Pathname): Do not compute
2497         Reference_Dir unless we actually need it.
2498
2499 2007-12-13  Vasiliy Fofanov  <fofanov@adacore.com>
2500             Tristan Gingold  <gingold@adacore.com>
2501
2502         * g-socthi-vms.ads (Fd_Set_Access): make it 32-bit.
2503
2504         * s-osprim-vms.adb,
2505         a-calend-vms.adb: Remove pragma warning off and add pragma
2506         unreferenced.
2507
2508 2007-12-13  Robert Dewar  <dewar@adacore.com>
2509
2510         * impunit.adb: Add entries for missing units
2511
2512         * Makefile.rtl: Add new run-time units.
2513
2514         * Make-lang.in:  Update dependencies.
2515
2516 2007-12-13  Bob Duff  <duff@adacore.com>
2517
2518         * itypes.ads, itypes.adb (Create_Itype): For access-to-subprogram
2519         types, set Can_Use_Internal_Rep appropriately, based on
2520         Always_Compatible_Rep_On_Target.
2521
2522 2007-12-13  Gary Dismukes  <dismukes@adacore.com>
2523             Arnaud Charlet  <charlet@adacore.com>
2524
2525         * make.adb (Scan_Make_Arg): Add test for -aamp_target switch, passing
2526         it to the front end and setting the aamp_target environment variable
2527         to the switch's argument to ensure that gnaampbind and gnaamplink will
2528         take the specified library into account.
2529         (Make): Only set Check_Object_Consistency to False for JVM, not for CIL
2530         target, since the CIL compiler supports an "object" file (.il files).
2531
2532 2007-12-13  Vincent Celier  <celier@adacore.com>
2533
2534         * symbols-processing-vms-ia64.adb (Process.Skip_Half): New procedure
2535         (Process.H): Remove variable. Replace Read_Half (H) with Skip_Half.
2536
2537 2007-12-13  Geert Bosch  <bosch@adacore.com>
2538
2539         * s-parame-vxworks.adb: 
2540         Update comments to reflect usage of this package by Nucleus.
2541
2542 2007-12-13  Arnaud Charlet  <charlet@adacore.com>
2543
2544         * i-vxwork.ads: Kill new warning on Convention C, since changing the
2545         spec would break code.
2546
2547         * i-forbla-unimplemented.ads, vx_stack_info.c: New files.
2548
2549         * system-vxworks-alpha.ads: Removed.
2550
2551 2007-12-10  Eric Botcazou  <ebotcazou@adacore.com>
2552
2553         * ada-tree.h (TYPE_RETURNS_BY_TARGET_PTR_P): Move around.
2554
2555 2007-12-09  Samuel Tardieu  <sam@rfc1149.net>
2556
2557         PR ada/34366
2558         * sem_ch3.adb (Designates_T): New function.
2559         (Mentions_T): Factor reusable part of the logic into Designates_T.
2560         Consider non-access parameters and access and non-access result.
2561         (Check_Anonymous_Access_Components): Set ekind of anonymous access to
2562         E_Subprogram_Type to E_Anonymous_Access_Subprogram_Type.
2563
2564         * einfo.ads: Update comment for E_Anonymous_Access_Subprogram_Type.
2565
2566 2007-12-07  Ludovic Brenta  <ludovic@ludovic-brenta.org>
2567
2568         PR ada/34361
2569         * mlib-tgt.adb, mlib-tgt.ads: Fix comments at the top to reflect
2570         the new implementation of target-specific calls.
2571
2572 2007-12-07  Olivier Hainque  <hainque@adacore.com>
2573
2574         * decl.c (gnat_to_gnu_entity) <case E_Access_Type>: When computing
2575         the designated full view, only follow a second level Full_View link
2576         for Non_Limited_Views of from_limited_with references.
2577         
2578 2007-12-07  Samuel Tardieu  <sam@rfc1149.net>
2579
2580         PR ada/15805
2581         * sem_ch6.adb (Process_Formals): Prevent an access type formal
2582         to be initialized with an access to constant object.
2583
2584         * sem_ch3.adb (Analyze_Object_Declaration): Signal an error
2585         when an access to constant is used to initialize an access
2586         value.
2587
2588         PR ada/21346
2589         * a-direct.adb (Compose): Containing_Directory can be an empty string.
2590
2591 2007-12-07  Olivier Hainque  <hainque@adacore.com>
2592
2593         PR ada/34173
2594         * decl.c (gnat_to_gnu_entity) <case E_Array_Type>: When setting
2595         the alignment on the GCC XUA array type, set TYPE_USER_ALIGN if
2596         this is from an alignment clause on the GNAT entity.
2597         * utils.c (create_field_decl): Rewrite the computation of DECL_ALIGN
2598         to distinguish the case where we set it from the type's alignment.
2599         When so, propagate TYPE_USER_ALIGN into DECL_USER_ALIGN to indicate
2600         whether this alignment was set from an explicit alignment clause.
2601
2602 2007-12-06  Eric Botcazou  <ebotcazou@adacore.com>
2603
2604         * decl.c (make_packable_type): Revert last change.
2605         (gnat_to_gnu_field): Avoid setting size and position multiple times.
2606         * utils.c (finish_record_type): Retrieve the real name of the type.
2607
2608 2007-12-05  Eric Botcazou  <ebotcazou@adacore.com>
2609
2610         * trans.c (lvalue_required_p): Take base node directly instead
2611         of its parent.  Rename second parameter to 'gnu_type'.
2612         <N_Indexed_Component>: Return 0 if the node isn't the prefix.
2613         <N_Slice>: Likewise.
2614         (Identifier_to_gnu): Rename parent_requires_lvalue to require_lvalue.
2615         Adjust calls to lvalue_required_p.
2616
2617 2007-12-05  Samuel Tardieu  <sam@rfc1149.net>
2618
2619         PR ada/21489
2620         * exp_ch9.adb (Build_Simple_Entry_Call): Initialize OUT access type
2621         parameters of an entry call.
2622
2623 2007-12-03  Robert Dewar  <dewar@adacore.com>
2624             Samuel Tardieu  <sam@rfc1149.net>
2625
2626         PR ada/34287
2627         * sem_util.adb (Safe_To_Capture_Value): Do not capture values
2628         of variables declared in a library-level package.
2629     
2630 2007-12-02  Samuel Tardieu  <sam@rfc1149.net>
2631
2632         * clean.adb (Clean_Library_Directory): Use Empty_String'Access intead
2633         of Empty_String'Unchecked_Access.
2634
2635         * Makefile.in: Add support for sh4-linux.
2636
2637         * system-linux-sh4.ads: New file.
2638
2639 2007-12-01  Kostik Belousov  <kostikbel@ukr.net>
2640
2641         PR ada/33722
2642         * env.c (__gnat_setenv): FreeBSD 7 has a POSIX conformant putenv()
2643         and its argument must not be free()ed.
2644
2645 2007-11-29  Eric Botcazou  <ebotcazou@adacore.com>
2646
2647         * decl.c (make_packable_type): Retrieve the real name of the type.
2648         (maybe_pad_type): Simplify similar code.
2649
2650 2007-11-28  Samuel Tardieu  <sam@rfc1149.net>
2651
2652         PR ada/15804
2653         * par-ch3.adb (P_Variant_Part): Signal an error when anything other
2654         than an identifier is used after "case" in a variant_part.
2655
2656         PR ada/17318
2657         * par-ch4.adb (Is_Parameterless_Attribute): New map.
2658         (P_Name, Scan_Apostrophe block): Parse left parenthesis following
2659         attribute name or not depending on the new map.
2660
2661         * sem-attr.adb (Analyze_Attribute): Parameterless attributes
2662         returning a string or a type will not be called with improper
2663         arguments.
2664
2665         * sem-attr.ads (Attribute_Class_Array): Move to snames.ads.
2666
2667         * snames.ads (Attribute_Class_Array): Moved from sem-attr.ads.
2668
2669         PR ada/32792
2670         * sem_attr.adb (Analyze_Attribute, Attribute_Integer_Value clause):
2671         Signal an error when attribute argument is a fixed-point value of
2672         an unknown type.
2673
2674         PR ada/22559
2675         * sem_ch3.adb (Build_Derived_Numeric_Type): Do not set RM_Size on
2676         a derived ordinary fixed point type.
2677
2678         * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Recompute
2679         RM_Size when a Small clause is found.
2680
2681 2007-11-26  Andreas Krebbel  <krebbel1@de.ibm.com>
2682
2683         PR 34081/C++
2684         * trans.c (Subprogram_Body_to_gnu, Compilation_Unit_to_gnu):
2685         Pass 'false' for the new allocate_struct_function parameter.
2686         * utils.c (build_function_stub): Likewise.
2687
2688 2007-11-25  Richard Guenther  <rguenther@suse.de>
2689
2690         * utils.c (gnat_pushlevel): Use BLOCK_CHAIN.
2691         (gnat_poplevel): Likewise.
2692
2693 2007-11-25  Eric Botcazou  <ebotcazou@adacore.com>
2694
2695         * decl.c (gnat_to_gnu_entity) <E_Record_Type>: If the type has
2696         strict alignment, no alignment clause and a known static size, cap
2697         the type alignment to the greatest power of 2 factor of the size.
2698         (gnat_to_gnu_field): If the field has a component clause, is aliased
2699         or of a type with strict alignment, require that its size be equal to
2700         that of the type.
2701         (validate_size): Use the type size as the minimum size for a type with
2702         strict alignment.
2703
2704 2007-11-23  Samuel Tardieu  <sam@rfc1149.net>
2705
2706         * s-inmaop-posix.adb, s-intman-vxworks.adb, s-taprop-hpux-dce.adb,
2707         s-taprop-irix.adb, s-taprop-linux.adb, s-taprop-lynxos.adb,
2708         s-taprop-posix.adb, s-taprop-tru64.adb, s-taprop-vxworks.adb:
2709         Use 'Access instead of 'Unchecked_Access in second and third
2710         arguments of pthread_sigmask.
2711
2712 2007-11-23  Eric Botcazou  <ebotcazou@adacore.com>
2713
2714         * decl.c (ceil_alignment): New function.
2715         (gnat_to_gnu_entity): Use it to set the alignment on atomic types.
2716         (make_packable_type): Likewise.
2717
2718 2007-11-22  Olivier Hainque  <hainque@adacore.com>
2719
2720         * trans.c (gnat_to_gnu) <case N_Free_Statement>: Reformat lines
2721         to fit in 80 columns.
2722
2723 2007-11-21  Aurelien Jarno  <aurelien@aurel32.net>
2724
2725         * s-osinte-kfreebsd-gnu.ads (To_Target_Priority): New function.
2726         * Makefile.in: Add EH_MECHANISM=-gcc to kfreebsd-gnu. Remove SYMLIB.
2727
2728 2007-11-19  Eric Botcazou  <ebotcazou@adacore.com>
2729
2730         PR ada/34098
2731         * misc.c (gnat_adjust_rli): Delete.
2732         (gnat_init): Do not initialize the translation code here.
2733         Do not call set_lang_adjust_rli.
2734         * trans.c (init_code_table): Make static.
2735         (gnat_init_stmt_group): Delete.
2736         (gigi): Initialize the translation code entirely here.
2737         Emit debug info for the common types here instead of...
2738         * utils.c (gnat_init_decl_processing): ...here.
2739         * gigi.h (init_code_table): Delete.
2740         (gnat_init_stmt_group): Likewise.
2741
2742 2007-11-16  Olivier Hainque  <hainque@adacore.com>
2743
2744         * utils2.c (build_call_alloc_dealloc) <if gnu_obj>: Move the code
2745         retrieving an allocator return value from a super-aligned address from
2746         here to ...
2747         * trans.c (gnat_to_gnu) <case N_Free_Statement>: ... here, and don't
2748         expect a super-aligned address for a fat or thin pointer.
2749         
2750 2007-11-14  Eric Botcazou  <ebotcazou@adacore.com>
2751
2752         * trans.c (call_to_gnu): Always set the source location on the call
2753         expression.  If the function returns-by-target, also set it on the
2754         address expression.
2755
2756 2007-11-14  Samuel Tardieu  <sam@rfc1149.net>
2757
2758         * adaint.c, init.c, initialize.c, link.c: Remove system-specific
2759         sections of non-supported Interix target.
2760
2761         * s-osinte-interix.ads: Removed.
2762
2763         * i-cstrin.ads (chars_ptr): Make it a C convention type.
2764
2765 2007-11-13  Samuel Tardieu  <sam@rfc1149.net>
2766
2767         * a-tasatt.adb: Add a comment at the beginning of the package
2768         explaining why in general 'Unchecked_Access must be used instead
2769         of 'Access.
2770
2771         * sem_prag.adb (Process_Convention): Move the test for the
2772         entity on which the Convention pragma applies down to also
2773         forbid pragma Convention on enumeration literals reached
2774         through renamings.
2775
2776 2007-11-10  Samuel Tardieu  <sam@rfc1149.net>
2777
2778         * a-tasatt.adb: Revert previous change for this file as it will
2779         generate an error when this package is instantiated from a
2780         local context.
2781
2782 2007-11-07  Samuel Tardieu  <sam@rfc1149.net>
2783
2784         * a-tasatt.adb: Type Wrapper should be declared in comment instead
2785         of already declared type Node_Access.
2786         Use 'Access instead of 'Unchecked_Access when applicable. Local
2787         lifetime is the one of the package.
2788         (Set_Value): W is allocated on the heap.
2789
2790         * g-socket.adb: Use 'Access instead of 'Unchecked_Access when
2791         applicable.
2792         (Get_Socket_Option): Optlen formal of C_Getsockopt is of an anonymous
2793         access type.
2794         (Receive_Socket): Fromlen formal of C_Recvfrom is of an anonymous
2795         access type.
2796
2797         * s-taasde.adb: Use 'Access instead of 'Unchecked_Access when
2798         applicable.
2799         (elaboration code): Timer_Queue lifetime is the one of the
2800         package.
2801
2802         * tracebak.c (i386 alternative): Remove useless comparaison
2803         which is always false; LOWEST_ADDRESS is 0 and is never greater
2804         than an unsigned integer.
2805
2806         * sem_attr.adb (Analyze_Attribute): Remove duplicate identical
2807         embedded check for "Ada_Version >= Ada_05".
2808
2809 2007-11-07  Olivier Hainque  <hainque@adacore.com>
2810
2811         * decl.c (make_aligning_type): Set the mode of the RECORD_TYPE we
2812         craft and expand comment.
2813
2814 2007-11-01  Eric Botcazou  <ebotcazou@adacore.com>
2815
2816         * lang-specs.h: Move translation of -fRTS= after -gnatez switch.
2817
2818 2007-10-23  Eric Botcazou  <ebotcazou@adacore.com>
2819
2820         * misc.c (gnat_handle_option): Replace call to abort with
2821         call to gcc_unreachable.
2822         (gnat_init): Likewise.
2823         (gnat_expand_expr): Likewise.
2824         (fp_prec_to_size): Likewise.
2825         (fp_size_to_prec): Likewise.
2826
2827 2007-10-23  Richard Guenther  <rguenther@suse.de>
2828
2829         PR bootstrap/33608
2830         * tracebak.c: #undef abort after including system.h.
2831
2832 2007-10-20  Danny Smith  <dannysmith@users.sourceforge.net>
2833
2834         * Makefile.in (LIBGNAT_TARGET_PAIRS) Add s-tasinf-mingw.adb,
2835         s-tasinf-mingw.ads, a-exetim-mingw.adb, a-exetim-mingw.ads
2836         for win32 targets.
2837         (EXTRA_GNATRTL_TASKING_OBJS): Add a-exetim.o for win32 targets.
2838
2839 2007-10-15  Eric Botcazou  <ebotcazou@adacore.com>
2840
2841         * s-osinte-tru64.adb: (Hide_Yellow_Zone): Add On parameter.
2842         Set the protection status of the guard page based on the value of On.
2843
2844         * s-osinte-tru64.ads: (Hide_Yellow_Zone): Add On parameter.
2845
2846         * s-taprop-tru64.adb: (Enter_Task): Pass True to Hide_Yellow_Zone.
2847         (Exit_Task): Pass False to Hide_Yellow_Zone.
2848
2849 2007-10-15  Robert Dewar  <dewar@adacore.com>
2850
2851         * s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb, 
2852         s-taprop-vxworks.adb, s-taprop-posix.adb, a-calend-vms.adb,
2853         a-calend.adb, a-nuflra.adb, a-tigeau.adb, a-wtgeau.adb, 
2854         checks.adb, bindgen.adb, eval_fat.adb, exp_fixd.adb, fmap.adb, 
2855         freeze.adb, g-awk.adb, g-calend.adb, g-diopit.adb, g-expect.adb, 
2856         gnatchop.adb, gnatlink.adb, g-spipat.adb, g-thread.adb, make.adb, 
2857         mdll.adb, mlib.adb, mlib-prj.adb, osint.adb, par-ch3.adb, prj.adb, 
2858         prj-makr.adb, sem_prag.adb, sem_type.adb, s-fatgen.adb, s-fileio.adb, 
2859         sinfo.ads, sinput-d.adb, s-taasde.adb, s-tasdeb.ads, s-tasren.adb, 
2860         s-tassta.adb, s-tpobop.adb, s-tposen.adb, stylesw.adb, types.ads,
2861         uintp.adb, validsw.adb, makegpr.adb, a-rbtgso.adb, a-crbtgo.adb, 
2862         a-coorse.adb, a-convec.adb, a-coinve.adb, a-cohama.adb, a-ciorse.adb, 
2863         a-cihama.adb, a-cidlli.adb, a-chtgop.adb, a-cdlili.adb, a-cdlili.adb, 
2864         a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cohase.adb, a-ciorma.adb, 
2865         a-coorma.adb, a-ztgeau.adb, symbols-vms.adb, a-crdlli.adb, 
2866         a-calari.adb, a-calfor.adb, s-os_lib.adb, s-regpat.adb, a-ngrear.adb:
2867         Minor reformatting.
2868         Add Unreferenced and Warnings (Off) pragmas for cases of
2869         variables modified calls where they are IN OUT or OUT parameters and
2870         the resulting values are not subsequently referenced. In a few cases,
2871         we also remove redundant code found by the new warnings.
2872
2873         * ug_words, vms_data.ads, usage.adb, sem_util.adb, sem_util.ads, 
2874         sem_warn.adb, sem_warn.ads, sem_res.adb, sem_ch7.adb, sem_ch8.adb,
2875         sem_ch5.adb, opt.ads, lib-xref.adb, lib-xref.ads, exp_smem.adb,
2876         sem_ch11.adb, exp_ch6.adb, einfo.ads, einfo.adb: implement a new
2877         warning controlled by -gnatw.o that warns on cases of out parameter
2878         values being ignored.
2879
2880 2007-10-15  Geert Bosch  <bosch@adacore.com>
2881
2882         * adaint.c, socket.c, cal.c: Initial port to arm-mentor-nucleus.
2883
2884         * expect.c: Initial port to arm-mentor-nucleus.
2885         Use kill for __gnat_kill() on VMS.
2886
2887 2007-10-15  Emmanuel Briot  <briot@adacore.com>
2888
2889         * ali.ads, ali.adb (Scan_ALI): Initialize XE.Tref to a known default
2890         value.
2891         (Xref_Record): Change type for Line, since in the case of a reference to
2892         a predefined entity (as happens for array index types), the line is set
2893         to 0.
2894         Add support for parsing multiple array index types info, or
2895         multiple inherited interfaces info. This information cannot be stored
2896         in Xref_Entity_Record, which only supports a single instance of Tref_*,
2897         and is therefore stored in the list of references instead. It has a
2898         special treatement later on in tools that use this information.
2899
2900 2007-10-15  Tristan Gingold  <gingold@adacore.com>
2901
2902         * debug.adb: Document use of -gnatd.a and -gnatd.I
2903
2904         * layout.adb: On OpenVMS -gnatd.a disables alignment optimization.
2905
2906 2007-10-15  Javier Miranda  <miranda@adacore.com>
2907
2908         * exp_attr.adb (Expand_N_Attribute_Reference): Case Access,
2909         Unchecked_Access, and Unrestricted_Access. Cleanup code that takes
2910         care of access to class-wide interface types plus removal of bizarre
2911         conversion of tagged object to access type (reported by Gary
2912         Dismukes). After this patch there is no need to perform any
2913         additional management on these nodes in Expand_Interface_Actuals.
2914
2915         * exp_disp.adb (Expand_Interface_Actuals): Code cleanup. Remove code
2916         that handles use of 'Access and 'Unchecked_Access applied to
2917         actuals covering interface types. Such code is now
2918         centralized in Expand_N_Attribute_Reference.
2919
2920 2007-10-15  Ed Schonberg  <schonberg@adacore.com>
2921
2922         * exp_ch3.adb (Build_Init_Procedure): Keep separate the initialization
2923         of tagged types whose ultimate ancestor is a CPP type.
2924         (Freeze_Array_Type): For a packed array type, generate an initialization
2925         procedure if the type is public, to handle properly a client that
2926         specifies Normalize_Scalars.
2927
2928 2007-10-15  Hristian Kirtchev  <kirtchev@adacore.com>
2929
2930         * exp_ch9.adb (Actual_Index_Expression): When the expansion occurs
2931         inside a generic body, retrieve the full view of the entry family
2932         discrete subtype if available.
2933
2934 2007-10-15  Thomas Quinot  <quinot@adacore.com>
2935
2936         * exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): Do not
2937         attempt to generate stubs for hidden primitive operations.
2938
2939 2007-10-15  Vincent Celier  <celier@adacore.com>
2940
2941         * mlib-tgt-specific.adb (Support_For_Libraries): New function,
2942         returning None, used when there is no platform specific body for
2943         MLib.Tgt.Specific.
2944
2945 2007-10-15  Bob Duff  <duff@adacore.com>
2946
2947         * sem_case.adb, sem_ch13.adb, lib-sort.adb: Replace use of Heap_Sort_A
2948         (passing'Unrestricted_Access of nested subprograms to Sort) with use of
2949         the generic Heap_Sort_G, in order to avoid trampolines.
2950
2951 2007-10-15  Vasiliy Fofanov  <fofanov@adacore.com>
2952             Jose Ruiz  <ruiz@adacore.com>
2953
2954         * vx_stack_info.c: New file.
2955
2956         * i-forbla-unimplemented.ads: New file.
2957
2958         * Makefile.in: i-forbla-unimplemented.ads: a variant of i-forbla.ads
2959         for unsupported configurations; use it on VMS targets instead of the
2960         real one.
2961         (EXTRA_LIBGNAT_SRCS,EXTRA_LIBGNAT_OBJS for VxWorks): Include
2962         vx_stack_info.{c,o} that contains the routine __gnat_get_stack_info
2963         used by VxWorks targets to have access to task-specific data and be
2964         able to extract the stack boundaries for stack checking.
2965         Use system-vms-ia64.ads on ivms.
2966
2967         * Make-lang.in: Update dependencies.
2968
2969         * sysdep.c (__gnat_get_stack_info): Move to a standalone file
2970         (vx_stack_info.c).
2971
2972 2007-10-15  Vincent Celier  <celier@adacore.com>
2973
2974         * snames.adb, snames.ads: Add new standard name runtime_library_dir
2975
2976         * prj.ads (Language_Config): Add new component Runtime_Library_Dir
2977
2978         * prj-attr.adb: Add project level attribute Runtime_Library_Dir
2979
2980         * prj-env.adb (Create_Mapping_File): Do not put an entry if the path of
2981         the source is unknown.
2982
2983         * prj-ext.adb: Spelling error fix
2984
2985         * prj-nmsc.adb (Check_Ada_Name): Reject any unit that includes an Ada
2986         95 reserved word in its name.
2987         (Process_Project_Level_Array_Attributes): Process new attribute
2988         Runtime_Library_Dir.
2989
2990         * prj-part.adb (Parse_Single_Project): Do not check the name of the
2991         config project against the user project names.
2992
2993         * prj-proc.adb (Expression): In multi-language mode, indexes that do
2994         not include a dot are always case insensitive.
2995         (Process_Declarative_Items): Ditto
2996         (Process_Project_Tree_Phase_1): Set Success to False in case an error is
2997         detected.
2998
2999         * prj-util.adb (Value_Of (In_Array)): When Force_Lower_Case_Index is
3000         True, compare both indexes in lower case.
3001
3002 2007-10-15  Robert Dewar  <dewar@adacore.com>
3003
3004         * rtsfind.adb: (Load_RTU): Turn off style checks for Load call
3005
3006 2007-10-15  Gary Dismukes  <dismukes@adacore.com>
3007
3008         * sem_aggr.adb (Resolve_Record_Aggregate): In the case of a box
3009         association for an access component, add an association with null as
3010         the expression. Remove testing for array subtypes and the setting in
3011         that case of Ctyp to the array component type, which prevented proper
3012         inclusion of an association for null-initialized arrays. Collapse
3013         condition that tests for array subtypes into just a test of
3014         Is_Partially_Initialized_Type (which already covers arrays anyway).
3015
3016 2007-10-15  Hristian Kirtchev  <kirtchev@adacore.com>
3017
3018         * sem_ch12.adb: Minor code reformatting.
3019         (Check_Generic_Child_Unit): Iterate over the homonym chain in order to
3020         find the parent package which may have been hidden by local
3021         declarations.
3022
3023 2007-10-15  Gary Dismukes  <dismukes@adacore.com>
3024
3025         * sem_ch3.adb (Build_Derived_Concurrent_Type): Set the Is_Constrained
3026         flag of derived concurrent types, taking into account the flag setting
3027         on the parent subtype and any new set of discriminants.
3028
3029 2007-10-15  Hristian Kirtchev  <kirtchev@adacore.com>
3030
3031         * sem_ch4.adb: Minor code and comment reformatting.
3032         (Analyze_Allocator): When the designated type of an unconstrained
3033         allocator is a record with unknown discriminants or an array with
3034         unknown range bounds, emit a detailed error message depending on the
3035         compilation mode and whether the designated type is limited.
3036
3037 2007-10-15  Tristan Gingold  <gingold@adacore.com>
3038
3039         * system-vms-ia64.ads: New file.
3040
3041         * system-vms_64.ads: Minor comment fix.
3042
3043 2007-10-15  Ed Schonberg  <schonberg@adacore.com>
3044
3045         * sem_ch6.adb (Find_Corresponding_Spec): If the previous entity is a
3046         body generated for a function with a controlling result that is a null
3047         extension, discard the generated body in favor of the current explicit
3048         one.
3049
3050 2007-10-15  Ed Schonberg  <schonberg@adacore.com>
3051
3052         * sem_disp.adb (Find_Controlling_Arg): Examine the call node before
3053         examining its original form, to handle properly operator calls that
3054         have been rewritten.
3055
3056 2007-10-15  Olivier Hainque  <hainque@adacore.com>
3057
3058         * tb-alvms.c (tb_entry_t, __gnat_backtrace): Store a frame pointer
3059         instead of a procedure value in each traceback entry.
3060
3061         * g-trasym-vms-alpha.adb (Symbolic_Traceback): Pass frame pointer
3062         instead of procedure value to TBK$SYMBOLIZE.
3063
3064         * s-traent-vms.adb (PV_For): Rename as FP_For and access the proper
3065         field.
3066         (TB_Entry_For): Account for the PV/FP renaming.
3067
3068         * s-traent-vms.ads (Traceback_Entry): Rename PV component into FP and
3069         add comment.
3070         (Null_TB_Entry): Account for change of component name.
3071         (PV_For): Rename as FP_For.
3072
3073 2007-10-15  Tristan Gingold  <gingold@adacore.com>
3074
3075         * trans.c (gnat_to_gnu): Remove the padding structure more often.
3076         This optimize assignment to over-aligned record.
3077
3078 2007-10-15  Emmanuel Briot  <briot@adacore.com>
3079
3080         * xref_lib.adb (Get_Full_Type): Add support for the 'h' entity type, ie
3081         interfaces.
3082
3083         * xr_tabls.adb (Add_Reference): Add support for the new 'R' reference
3084         type, for dispatching calls.
3085
3086 2007-10-15  Vincent Celier  <celier@adacore.com>
3087             Robert Dewar  <dewar@adacore.com>
3088
3089         * gnat_ugn.texi: Add documentation for switches --version and --help
3090         for the GNAT tools gnatbind, gnatlink, gnatmake, gnatchop, gnatname,
3091         gnatxref, gnatfind, gnatls, and gnatclean.
3092         Document -gnatw.o.
3093         Mention attribute Excluded_Source_Dirs
3094         Replace obsolescent attribute Locally_Removed_Files with attribute
3095         Excluded_Source_Files.
3096         Improve documentation of -u (gnatbind)
3097         Document how to do reliable stack checking for the environmental task
3098         on iVMS.
3099
3100         * gnat_rm.texi: Rewrite section about No_Implicit_Dynamic_Code.
3101         Document attribute Excluded_Source_Files and indicate that attribute
3102         Locally_Removed_Files is obsolescent.
3103
3104 2007-10-15  Thomas Quinot  <quinot@adacore.com>
3105
3106         * g-soccon-vms.ads: Fix value of MSG_WAITALL.
3107
3108         * gen-soccon.c: 
3109         Update documentation to note that OpenVMS 8.3 or later must be used
3110         to generate g-soccon-vms.ads.
3111
3112         * atree.adb: Add ??? comment
3113
3114         * exp_util.adb: Minor reformatting.
3115         Add ??? comment in Kill_Dead_Code.
3116
3117 2007-10-15  Robert Dewar  <dewar@adacore.com>
3118
3119         * errout.ads: Comment clarification
3120
3121         * exp_ch4.adb (Expand_N_Allocator): Code cleanup.
3122         (Expand_N_Op_Eq): Improve handling of array equality with -gnatVa
3123
3124         * lib.ads: Comment update
3125
3126         * init.c: Minor reformatting.
3127
3128         * sem_attr.adb: Minor formatting
3129
3130         * osint-b.ads: Minor reformatting
3131
3132         * sem_ch9.adb: Implement -gnatd.I switch
3133
3134         * g-comlin.adb: (Start): Fix handling of empty command line.
3135
3136         * gnatcmd.adb (GNATCmd): Do not put the -rules in the -cargs section,
3137         even when -rules follows the -cargs section.
3138
3139 2007-10-08  Ollie Wild  <aaw@google.com>
3140
3141         * misc.c (LANG_HOOKS_PUSHDECL): Replaced lhd_return_tree with
3142         gnat_return_tree.
3143         (gnat_init_gcc_eh): Replaced gnat_eh_runtime_type with
3144         gnat_return_tree.
3145         (gnat_eh_runtime_type): Removed.
3146         (gnat_return_tree): New function.
3147
3148 2007-10-08  Ben Elliston  <bje@au.ibm.com>
3149
3150         PR ada/33454
3151         Revert:
3152         2007-08-31  Ben Elliston  <bje@au.ibm.com>
3153
3154         * Makefile.in (LIBGNAT_TARGET_PAIRS): Use system-linux-ppc64.ads
3155         when compiling for powerpc64-*-linux.
3156         * system-linux-ppc64.ads: New file.
3157
3158 2007-09-27  Eric Botcazou  <ebotcazou@adacore.com>
3159
3160         Mapped location support
3161         * back_end.adb (Call_Back_End): Pass information about source
3162         files instead of units to gigi.
3163         * gigi.h (struct File_Info_Type): New.
3164         (gigi): Rename and change type of number_units parameter, change
3165         type of file_info_ptr parameter.
3166         * trans.c (number_files): New global variable.
3167         (gigi): Rename and change type of number_units parameter, change
3168         type of file_info_ptr parameter.
3169         If mapped location support is enabled, create the isomorphic mapping
3170         between source files and line maps.
3171         (Sloc_to_locus): If mapped location support is enabled, translate
3172         source location into mapped location.
3173         (annotate_with_node): Rename into set_expr_location_from_node.
3174         Call set_expr_location instead of annotate_with_locus.
3175         (Pragma_to_gnu): Adjust for above change.
3176         (Loop_Statement_to_gnu): Likewise.
3177         (call_to_gnu): Likewise.
3178         (Handled_Sequence_Of_Statements_to_gnu): Likewise.
3179         (gnat_to_gnu): Likewise.
3180         (add_stmt_with_node): Likewise.
3181         (add_cleanup): Likewise.
3182         * utils.c (gnat_init_decl_processing): Do not set input_line.
3183
3184 2007-09-26  Hristian Kirtchev  <kirtchev@adacore.com>
3185
3186         * sem_ch8.adb (Analyze_Use_Type): Code cleanup.
3187         (Applicable_Use): Emit a warning when a package tries to use itself.
3188         (Use_One_Type): Add variable Is_Known_Used. Emit a warning when a type
3189         is already in use or the package where it is declared is in use or is
3190         declared in the current package.
3191         (Spec_Reloaded_For_Body): New subsidiary routine for Use_One_Type.
3192
3193         * a-tasatt.adb, s-osprim-vxworks.adb, g-socthi-mingw.adb,
3194         s-intman-vms.adb, g-socket.adb, g-thread.adb, s-tarest.adb,
3195         s-tassta.adb, s-tporft.adb: Remove redundant 'use type' clause.
3196
3197 2007-09-26  Hristian Kirtchev  <kirtchev@adacore.com>
3198
3199         * a-calend-vms.adb, a-calend.adb: 
3200         Add a section on leap seconds control along with two entities used to
3201         enable and disable leap seconds support. The array Leap_Second_Times is
3202         now constant and contains hard time values pre-generated. Remove
3203         all elaboration code used to populate the table of leap seconds.
3204
3205         * bindgen.adb: 
3206         Add entity Leap_Seconds_Support to the list of global run-time variables
3207         along with a comment on its usage and values.
3208         (Gen_Adainit_Ada): Add code to generate the declaration and import of
3209         Integer variable Leap_Seconds_Support. Set its value to zero (disabled)
3210         or one (enabled) depending on the presence of binder switch "-y".
3211         (Gen_Adainit_C): Add code to generate the declaration of external int
3212         __gl_leap_seconds_support. Set is value to zero (disabled) or one
3213         (enabled) depending on the presence of binder switch "-y".
3214
3215         * init.c: Add __gl_leap_seconds_support to the list of global values
3216         computed by the binder.
3217
3218 2007-09-26  Jerome Guitton  <guitton@adacore.com>
3219
3220         * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
3221         s-taprop-hpux-dce.adb, s-taprop-linux.adb, s-taprop-dummy.adb,
3222          s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb,
3223         s-taprop-posix.adb (Stop_Task): New function, dummy implementation.
3224
3225         * s-taprop.ads, s-taprop-vxworks.adb (Stop_Task): New function.
3226
3227         * s-tasdeb.adb (Stop_All_Tasks): New function, implementing a run-time
3228         function which can be called by the debugger to interrupt the tasks of
3229         an Ada application asynchronously, as needed on VxWorks.
3230         (Stop_All_Tasks_Handler): Renamed from Stop_All_Tasks.
3231
3232         * s-tasdeb.ads (Stop_All_Tasks_Handler): New function declaration,
3233         renamed from Stop_All_Tasks. Update comments.
3234         (Stop_All_tasks): New function declaration.
3235
3236 2007-09-26  Olivier Hainque  <hainque@adacore.com>
3237
3238         * adaint.c (if defined (__Lynx__)): Wrap #def/#undef VMOS_DEV around
3239         #include <utime.h> and #define GCC_RESOURCE_H before
3240         #include <sys/wait.h>.
3241         Add more protections in __gnat_translate_vms.
3242
3243         * expect.c (if defined (__Lynx__)): #define GCC_RESOURCE_H before
3244         #include <sys/wait.h>.
3245
3246 2007-09-26  Thomas Quinot  <quinot@adacore.com>
3247             Sergey Rybin  <rybin@adacore.com>
3248
3249         * gnatvsn.ads (PCS_Version_Number, ASIS_Version_Number): Removed.
3250
3251         * exp_dist.ads (PCS_Version_Number): Move from Gnatvsn to Exp_Dist,
3252         where it belongs.
3253
3254         * opt.ads: Move ASIS_Version_Number from Gnatvsn into Tree_IO.
3255
3256         * rtsfind.adb (PCS_Version_Number): Move from Gnatvsn to Exp_Dist,
3257         where it belongs.
3258
3259         * sem_dist.ads: Minor comment fix
3260
3261         * tree_io.ads: Move ASIS_Version_Number from Gnatvsn into Tree_IO.
3262
3263 2007-09-26  Javier Miranda  <miranda@adacore.com>
3264             Eric Botcazou  <ebotcazou@adacore.com>
3265
3266         * a-tags.adb: 
3267         (Get_HT_Link/Set_HT_Link): Updated to handle the additional level of
3268          indirection added to the HT_Link component of the TSD. This is required
3269          to statically allocate the TSD.
3270
3271         * a-tags.ads: 
3272         Minor reordering of the declarations in the private part. Required to
3273         add a level of indirection to the contents of the TSD component HT_Link.
3274         This is required to statically allocate the TSD.
3275
3276         * decl.c (gnat_to_gnu_entity) <object>: Do not exclude objects with
3277         Is_Statically_Allocated set from constant objects.
3278         Do not make exported constants created by the compiler volatile.
3279         (gnat_to_gnu_param): Do not treat an IN parameter whose address is taken
3280         as read-only.
3281
3282         * trans.c (Identifier_to_gnu): For constants, unshare initializers
3283         before returning them.
3284
3285         * exp_disp.ads, exp_disp.adb (Building_Static_DT): Spec moved to the
3286         public part of the package.
3287         (Make_DT): Move HT_Link component out of the TSD record. For this
3288         purpose Make_DT now declares a separate object that stores the
3289         HT_Link value, and initializes the TSD component with the address
3290         of this new object. The addition of this level of indirection is
3291         required to statically allocate the TSD because the TSD cannot
3292         have variable components.
3293         (Expand_Interface_Conversion): Improve the expanded code.
3294         (Expand_Interface_Thunk): Set Is_Thunk in the thunk entity.
3295
3296         * sem_disp.adb (Check_Dispatching_Operation): In case of a body
3297         declaring a primitive operation ---allowed by RM 3.9.2 (13.e/2)---,
3298         if we are building static dispatch tables then we must not generate
3299         extra code to register the primitive because the dispatch table will
3300         be built at the end of the library package; otherwise we notify that
3301         we cannot build the static dispatch table.
3302
3303 2007-09-26  Robert Dewar  <dewar@adacore.com>
3304
3305         * checks.adb, gnat1drv.adb, sem_util.ads: Improve warnings for address
3306         overlays.
3307
3308         * sem_ch13.ads, sem_ch13.adb: Improve warnings for address overlays
3309         (Analyze_Record_Representation_Clause): Suppress junk warning for
3310         missing component clause.
3311         (Analyze_Attribute_Definition_Clause, case Address): Apply the special
3312         tests for controlled type overlay to composites with controlled
3313         components.
3314         (Analyze_Record_Representation_Clause): Add reference for component name
3315
3316 2007-09-26  Javier Miranda  <miranda@adacore.com>
3317             Gary Dismukes  <dismukes@adacore.com>
3318
3319         * einfo.adb (Is_Thunk): New attribute applicable to subprograms. True
3320         for thunks associated with interface types.
3321
3322         * einfo.ads: Improve documentatation of Is_Internal
3323         (Is_Thunk): New attribute applicable to subprograms. True for thunks
3324         associated with interface types.
3325         Extensive comment fixes regarding flags that appear in all entities. The
3326         documentation is now consistent for all such flags (there were a number
3327         of errors in the documentation in this regard).
3328
3329         * exp_attr.adb (Expand_N_Attribute_Reference): Minor code cleanup.
3330
3331         * exp_ch6.adb (Make_Build_In_Place_Call_*): Return immediately if any
3332         of these procedures are passed a function call that already has
3333         build-in-place actuals (testing new flag
3334         Is_Expanded_Build_In_Place_Call). Set the flag on the function call in
3335         the case where processing continues.
3336         (Expand_Call): If the call is generated from a thunk body then we
3337         propagate the extra actuals associated with the accessibility
3338         level of the access type actuals.
3339
3340         * sem_ch6.adb (Analyze_Subprogram_Body): Set the Protected_Formal field
3341         of each extra formal of a protected operation to reference the
3342         corresponding extra formal of the subprogram denoted by the
3343         operation's Protected_Body_Subprogram.
3344         
3345         * sinfo.ads, sinfo.adb (Is_Expanded_Build_In_Place_Call): New flag on
3346         N_Function_Call nodes.
3347
3348 2007-09-26  Robert Dewar  <dewar@adacore.com>
3349
3350         * exp_ch5.adb: Activate memmove type processing if debug flag d.s is set
3351
3352         * debug.adb: Add d.s flag.
3353
3354 2007-09-26  Gary Dismukes  <dismukes@adacore.com>
3355
3356         * exp_dbug.adb (Debug_Renaming_Declaration): Set Is_Internal on the
3357         debug variable so that it won't be initialized when pragma
3358         Initialize_Scalars is in effect.
3359
3360 2007-09-26  Gary Dismukes  <dismukes@adacore.com>
3361
3362         * freeze.adb (Freeze_Entity): Remove check for preelaborable
3363         initialization of a full view. This is moved to
3364         Analyze_Package_Specification.
3365
3366         * sem_ch7.adb (Analyze_Package_Specification): Add check for
3367         preelaborable initialization of a full view in entity loop.
3368         (Uninstall_Declarations): If entity is a use-visible compilation unit,
3369         its child units are use-visible only if they are visible child units.
3370
3371         * sem_util.adb (Is_Preelaborable_Expression): New function to determine
3372         whether an expression can be used within a type declaration that
3373         requires preelaborable init.
3374         (Check_Components): Replace inline code that does partial checking for
3375         preelaborable default expressions with call to
3376         Is_Preelaborable_Expression.
3377         (Has_Preelaborable_Initialization): In the case of a generic actual
3378         subtype, (that is, Is_Generic_Actual is True), return the result of
3379         applying Has_Preelaborable_Initialization to the generic actual's base
3380         type.
3381
3382 2007-09-26  Hristian Kirtchev  <kirtchev@adacore.com>
3383
3384         * g-calend.adb (Has_53_Weeks): Rename to Last_Year_Has_53_Weeks. Add a
3385         call to Jan_1_Day _Of_Week to optimize its performance.
3386         (Is_Leap): Move the routine to the scope of Week_In_Year.
3387         (Jan_1_Day_Of_Week): New routine in Week_In_Year which calculates the
3388         weekday on which January 1 falls of Year - 1 and Year + 1. This function
3389         avoids calling Time_Of and Split, thus making it more efficent.
3390         (Week_In_Year): Reimplemented in oder to follow ISO 8601.
3391
3392         * g-calend.ads (Week_In_Year): Change comment to reflect new
3393         implementation.
3394
3395 2007-09-26  Emmanuel Briot  <briot@adacore.com>
3396
3397         * g-comlin.ads, g-comlin.adb (Command_Line_Configuration,
3398         Command_Line): New types
3399         (Define_Alias, Define_Prefix, Free): New subprograms. These provide
3400         support for defining how switches can be grouped on a command line (as
3401         is the case for -gnatw... for GNAT), and how simple switches can be
3402         used as aliases for more complex switches (-gnatwa is same as
3403         -gnatwbcef...)
3404         (Set_Command_Line, Add_Switch, Remove_Switch): New subprogram
3405         (Start, Current_*): New subprograms
3406         Added support for parsing an array of strings in addition to the real
3407         command line.
3408         (Opt_Parser, Opt_Parser_Data): New type. As a result, some types had to
3409          be moved from the body to the private part of the spec.
3410         (*): All subprograms now have an extra parameter with default value to
3411         specify which parser should be used. For backward compatibility, it
3412         defaults to parsing the command line of the application. They were also
3413         modified to properly handle cases where each of the argument does not
3414         start at index 1 (which is always true for Ada.Command_Line, but not
3415         when processing any Argument_List).
3416         (Free): New subprogram
3417         (Internal_Initialize_Option_Scan, Find_Longuest_Matching_Switch,
3418         Argument): New subprograms
3419         (Switch_Parameter_Type): New enum, which clarifies the code. The extra
3420         special characters like ':', '=',... are now handled in a single place,
3421         which makes the code more extensible eventually.
3422         (Getopt, Full_Switch): When the switch was returned as part of the
3423         special character '*', make sure it is prepended by the switch character
3424         ('-' in general), so that the application knows whether "foo" or "-foo"
3425         was specified on the command line.
3426
3427 2007-09-26  Florian Villoing  <villoing@adacore.com>
3428
3429         * g-dirope.adb (Remove_Dir): In case we are removing directories
3430         recursively, make sure that if an exception is raised during the
3431         processing, the current working directory is reset to its initial
3432         value before propagating the exception.
3433
3434 2007-09-26  Vincent Celier  <celier@adacore.com>
3435
3436         * gnatbind.adb: If there are several ALI files specified and there is
3437         a main program to bind, the first ALI is expected to contain the main
3438         subprogram and the names of the binder generated files will be derived
3439         from the first ALI file name.
3440         (Gnatbind): Fix insertion character in invocation of Error_Msg
3441
3442 2007-09-26  Vincent Celier  <celier@adacore.com>
3443
3444         * gnatcmd.adb (Check_Files): Do not include sources that have been
3445         removed by attributes Exclude_Source_Files or Locally_Removed_Files.
3446
3447 2007-09-26  Ed Schonberg  <schonberg@adacore.com>
3448
3449         * lib-xref.ads, lib-xref.adb: The entry for array types now carries
3450         information about each of its index types, following the type
3451         reference for its component type.
3452
3453 2007-09-26  Vincent Celier  <celier@adacore.com>
3454
3455         * make.adb: (Kill): New procedure (__gnat_kill imported)
3456         (Running_Compile, Outstanding_Compiles): Global variables that
3457         were previously local to procedure Compile_Sources.
3458         (Sigint_Intercepted): Send signal SIGINT to all outstanding
3459         compilation processes.
3460
3461         (Gnatmake): If project files are used, create the mapping of all the
3462         sources, so that the correct paths will be found.
3463
3464         * prj-env.ads, prj-env.adb (Create_Mapping): New procedure
3465
3466 2007-09-26  Vincent Celier  <celier@adacore.com>
3467
3468         * makeutl.ads (Main_Config_Project): Moved to gpr_util.ads
3469
3470         * prj.ads, prj.adb (Default_Language): Remove function, no longer used
3471         Replace components Compiler_Min_Options and Binder_Min_Options with
3472         Compiler_Required_Switches and Binder_Required_Switches in record
3473         Language_Config.
3474         Remove components Default_Language and Config in Project_Tree_Data,
3475         no longer used.
3476
3477         * prj-attr.adb: New attributes Required_Switches (<language>) in
3478         packages Compiler and Binder.
3479
3480         * prj-nmsc.adb: Major rewrite of the processing of configuration
3481         attributes for gprbuild. No impact on GNAT tools.
3482
3483         * prj-proc.ads, prj-proc.adb (Process_Project_Tree_Phase_2): No longer
3484         process configuration attributes: this is done in Prj.Nmsc.Check.
3485         (Recursive_Process): Make a full copy of packages inherited from project
3486         being extended, instead of a shallow copy.
3487         (Process_Project_Tree_Phase_1): New procedure
3488         (Process_Project_Tree_Phase_1): New procedure
3489         (Process): Implementation now uses the two new procedures
3490
3491         * prj-util.adb (Executable_Of): Get the suffix and the default suffix
3492         from the project config, not the tree config that no longer exists.
3493
3494 2007-09-26  Vincent Celier  <celier@adacore.com>
3495
3496         * Make-lang.in: Update dependencies..
3497
3498 2007-09-26  Vincent Celier  <celier@adacore.com>
3499
3500         * osint.adb, osint.ads: Minor reformatting
3501
3502         * osint-b.adb, osint-b.ads (Set_Current_File_Name_Index): New procedure
3503
3504 2007-09-26  Gary Dismukes  <dismukes@adacore.com>
3505
3506         * par-ch4.adb (P_Record_Or_Array_Component_Association): Change Ada 95
3507         message to cite use of <> in aggregate component associations rather
3508         than wrongly indicating use of limited aggregates.
3509
3510 2007-09-26  Robert Dewar  <dewar@adacore.com>
3511
3512         * sem_attr.adb (Analyze_Access_Attribute): Fix missing set of
3513         Address_Taken.
3514
3515 2007-09-26  Ed Schonberg  <schonberg@adacore.com>
3516
3517         * sem_ch3.adb (Derive_Subprograms): If the interface parent is a direct
3518         ancestor of the derived type, the operations are inherited from the
3519         primary dispatch table of the parent.
3520         (OK_For_Limited_Init_In_05): Remove old comment. Reject in-place calls
3521         when the context is an explicit type conversion.
3522
3523 2007-09-26  Ed Schonberg  <schonberg@adacore.com>
3524
3525         * sem_ch4.adb (Analyze_Qualified_Expression): Apply name resolution
3526         rule for qualified expressions properly, to detect improper conversions
3527         and resolve some cases of overloading.
3528
3529 2007-09-26  Ed Schonberg  <schonberg@adacore.com>
3530
3531         * sem_res.adb (Resolve_Call): If the call is dispatching, generate the
3532         proper kind of reference to the primitive operation, for better source
3533         navigation.
3534         (Valid_Conversion): A tagged conversion is legal if both operands are
3535         tagged.
3536
3537 2007-09-26  Robert Dewar  <dewar@adacore.com>
3538
3539         * sem_warn.adb (Check_References): Catch more cases of unreferenced
3540         packages.
3541
3542 2007-09-26  Vincent Celier  <celier@adacore.com>
3543
3544         * snames.adb, snames.ads: Change Include_Option to Include_Switches
3545
3546 2007-09-26  Robert Dewar  <dewar@adacore.com>
3547
3548         * s-wchstw.adb: provide messages for run time unit exceptions
3549
3550         * a-witeio.adb: Minor reformatting
3551
3552         * exp_ch13.adb: Minor reformatting
3553
3554 2007-09-26  Sergey Rybin  <rybin@adacore.com>
3555
3556         * vms_data.ads: Revise gnatmetric qualifiers.
3557         Add qualified for the new gnatbind option '-y'
3558
3559         * gnat_ugn.texi: Revise the gnatmetric section.
3560         Add entry for new gnatbind option '-y'.
3561
3562         * gnat_rm.texi: Minor spelling correction.
3563         Document restriction on overlaying controlled types
3564
3565 2007-09-26  Vincent Celier  <celier@adacore.com>
3566
3567         * makegpr.adb (Link_Executables): Do not fail when the root project has
3568         no sources, but is an extending project.
3569
3570 2007-09-25  Eric Botcazou  <ebotcazou@adacore.com>
3571
3572         * trans.c: Fix misplaced #define.
3573
3574 2007-09-22  Eric Botcazou  <ebotcazou@adacore.com>
3575
3576         * utils2.c (build_unary_op) <ADDR_EXPR> [INDIRECT_REF]: Propagate
3577         the TYPE_REF_CAN_ALIAS_ALL flag to the result.
3578
3579 2007-09-21  Olivier Hainque  <hainque@adacore.com>
3580
3581         * utils.c (type_for_nonaliased_component_p): Return false for
3582         all AGGREGATE_TYPEs.
3583
3584 2007-09-17  Eric Botcazou  <ebotcazou@adacore.com>
3585
3586         * decl.c (gnat_to_gnu_entity) <object>: Make again the type of an
3587         object covered by 13.3(19) volatile.
3588
3589 2007-09-12  Eric Botcazou  <ebotcazou@adacore.com>
3590
3591         PR ada/26797
3592         PR ada/32407
3593         * utils.c (unchecked_convert): Use a subtype as the intermediate type
3594         in the special VIEW_CONVERT_EXPR case.
3595
3596 2007-09-12  Robert Dewar  <dewar@adacore.com>
3597
3598         * types.ads, a-charac.ads, freeze.adb: Minor reformatting.
3599
3600         * a-except.adb, g-hesora.adb, g-speche.adb, lib.adb, lib.ads,
3601         lib-load.adb, lib-writ.adb, s-assert.adb, s-carun8.adb,
3602         s-casuti.adb, s-crc32.adb, s-exctab.adb, s-htable.adb, s-imgenu.adb,
3603         s-mastop.adb, s-memory.adb, s-memory.ads, s-secsta.adb, s-soflin.adb,
3604         s-sopco3.adb, s-sopco4.adb, s-sopco5.adb, s-stache.adb, s-stalib.adb,
3605         s-stoele.adb, s-strcom.adb, s-strops.adb, s-traceb.adb, s-traent.adb,
3606         s-wchcnv.adb, s-wchcon.adb, s-wchjis.adb, s-addope.adb, s-except.adb,
3607         s-os_lib.adb, s-string.adb, s-utf_32.adb, a-elchha.adb,
3608         a-chlat1.ads, a-elchha.ads, a-except.ads, g-hesora.ads, g-htable.ads, 
3609         g-speche.ads, par-prag.adb, restrict.adb, restrict.ads, s-assert.ads, 
3610         s-carun8.ads, s-casuti.ads, s-crc32.ads, sem_ch11.adb, sem_prag.adb, 
3611         s-exctab.ads, s-htable.ads, s-imgenu.ads, s-mastop.ads, snames.adb, 
3612         snames.ads, snames.h, s-purexc.ads, s-secsta.ads, s-soflin.ads, 
3613         s-sopco3.ads, s-sopco4.ads, s-sopco5.ads, s-stache.ads, s-stalib.ads, 
3614         s-stoele.ads, s-strcom.ads, s-strops.ads, s-traceb.ads, s-traent.ads, 
3615         s-unstyp.ads, s-wchcnv.ads, s-wchcon.ads, s-wchjis.ads, s-addope.ads, 
3616         s-except.ads, s-os_lib.ads, s-string.ads, s-utf_32.ads: Implement
3617         pragma Compiler_Unit and adds it to relevant library units.
3618
3619 2007-09-12  Ed Schonberg  <schonberg@adacore.com>
3620
3621         * sem_aggr.adb (Resolve_Record_Aggregate): An others association with
3622         a box need not correspond to any component.
3623
3624 2007-09-12  Robert Dewar  <dewar@adacore.com>
3625
3626         * g-thread.ads: Document use of "with GNAT.Threads" to ensure loading
3627         the tasking version of the Ada run time when foreign threads are
3628         present and there are no explicit Ada tasks or tasking constructs.
3629
3630         * gnat_rm.texi: Clarify documentation of GNAT.Threads.
3631
3632 2007-09-12  Hristian Kirtchev  <kirtchev@adacore.com>
3633
3634         * bindusg.adb (Display): Correct comment for switch -X. Add a line for
3635         the usage of switch -y.
3636
3637         * switch-b.adb (Scan_Binder_Switches): Set flag Leap_Seconds_Support
3638         when switch -y is present.
3639
3640         * opt.ads: Add binder flag Leap_Seconds_Support used to enable/disable
3641         leap seconds in Ada.Calendar and its children.
3642
3643 2007-09-12  Jose Ruiz  <ruiz@adacore.com>
3644
3645         * a-extiti.ads (Timer): The discriminant is a "not null access
3646         constant" in the Reference Manual.
3647         (Cancel_Handler): Cancelled is an out parameter in the Reference Manual.
3648
3649 2007-09-12  Robert Dewar  <dewar@adacore.com>
3650
3651         * a-swuwha.adb: Remove junk RM header
3652
3653 2007-09-12  Vincent Celier  <celier@adacore.com>
3654
3655         * g-bytswa-x86.adb (Swap2, Swap4, Swap8): Remove explicit "in" mode
3656         indicator
3657
3658         * g-bytswa.ads: Minor reformatting
3659
3660 2007-09-12  Thomas Quinot  <quinot@adacore.com>
3661
3662         * g-soccon-solaris-64.ads, g-soccon-hpux-ia64.ads: 
3663         Add new constant Thread_Blocking_IO, always True by default, set False
3664         on a per-runtime basis.
3665         (Need_Netdb_Buffer): New constant.
3666
3667 2007-09-12  Arnaud Charlet  <charlet@adacore.com>
3668
3669         * s-dsaser.ads (Get_Local_Partition_Id, Get_Passive_Partition_Id):
3670         Added renames for corresponding functions in System.Partition_Interface.
3671
3672 2007-09-12  Doug Rupp  <rupp@adacore.com>
3673
3674         * Makefile.in: Remove VMS specific System.CRTL packages which are no
3675         longer needed.
3676
3677         * s-crtl-vms64.ads: Removed.
3678
3679 2007-09-12  Olivier Hainque  <hainque@adacore.com>
3680
3681         * decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: For a subtype
3682         with discriminant constraints, generalize the code for BIT_FIELDs
3683         to PACKED fields of constant size and propagate DECL_PACKED.
3684
3685 2007-09-11  Eric Botcazou  <ebotcazou@adacore.com>
3686
3687         * decl.c (array_type_has_nonaliased_component): New predicate.
3688         (gnat_to_gnu_field) <E_Array_Type>: Invoke the above predicate to
3689         set the TYPE_NONALIASED_COMPONENT flag on the type.
3690         <E_Array_Subtype>: Likewise.
3691         * gigi.h (type_for_nonaliased_component_p): Declare.
3692         * utils.c (type_for_nonaliased_component_p): New predicate.
3693         (create_field_decl): Invoke the above predicate to set the
3694         DECL_NONADDRESSABLE_P flag on the field.
3695
3696 2007-09-11  Javier Miranda  <miranda@adacore.com>
3697
3698         * einfo.ads, einfo.adb (Dispatch_Table_Wrapper): New attribute. Present
3699         in library level record type entities if we are generating statically
3700         allocated dispatch tables.
3701
3702         * exp_disp.adb (Make_Tags/Make_DT): Replace previous code
3703         importing/exporting the _tag declaration by new code
3704         importing/exporting the dispatch table wrapper. This change allows us
3705         to statically allocate of the TSD.
3706         (Make_DT.Export_DT): New procedure.
3707         (Build_Static_DT): New function.
3708         (Has_DT): New function.
3709
3710         * freeze.adb (Freeze_Static_Object): Code cleanup: Do not reset flags
3711         True_Constant and Current_Value. Required to statically
3712         allocate the dispatch tables.
3713         (Check_Allocator): Make function iterative instead of recursive.
3714         Also return inner allocator node, when present, so that we do not have
3715         to look for that node again in the caller.
3716
3717 2007-09-11  Jan Hubicka  <jh@suse.cz>
3718
3719         * misc.c (gnat_expand_body): Kill.
3720         (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Kill.
3721
3722 2007-09-10  Robert Dewar  <dewar@adacore.com>
3723
3724         * exp_atag.ads, exp_atag.adb, mlib-tgt-tru64.adb, mlib-tgt-aix.adb,
3725         mlib-tgt-irix.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
3726         mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
3727         mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb, ali.adb, ali.ads,
3728         ali-util.adb, ali-util.ads, atree.h, back_end.adb, back_end.ads,
3729         bcheck.adb, bcheck.ads, binde.adb, binde.ads, binderr.adb, binderr.ads,
3730         bindgen.adb, bindgen.ads, bindusg.adb, bindusg.ads, butil.adb,
3731         butil.ads, checks.adb, checks.ads, clean.adb, clean.ads, comperr.adb,
3732         comperr.ads, cstand.adb, cstand.ads, debug_a.adb, debug_a.ads,
3733         elists.h, errout.adb, erroutc.ads, errutil.adb, errutil.ads,
3734         err_vars.ads, eval_fat.adb, eval_fat.ads, exp_sel.ads, exp_sel.adb,
3735         exp_aggr.adb, exp_aggr.ads, expander.adb, expander.ads, exp_attr.ads,
3736         exp_ch10.ads, exp_ch11.adb, exp_ch12.adb, exp_ch12.ads, exp_ch13.adb,
3737         exp_ch13.ads, exp_ch2.adb, exp_ch2.ads, exp_ch3.ads, exp_ch4.adb,
3738         exp_ch4.ads, exp_ch5.adb, exp_ch5.ads, exp_ch6.adb, exp_ch6.ads,
3739         exp_ch7.adb, exp_ch7.ads, exp_ch8.adb, exp_ch8.ads, exp_ch9.adb,
3740         exp_ch9.ads, exp_code.adb, exp_code.ads, exp_dbug.adb, exp_dbug.ads,
3741         exp_disp.ads, exp_dist.adb, exp_dist.ads, exp_fixd.adb, exp_fixd.ads,
3742         exp_imgv.adb, exp_imgv.ads, exp_intr.adb, exp_intr.ads, exp_pakd.adb,
3743         exp_pakd.ads, exp_prag.adb, exp_prag.ads, exp_smem.adb, exp_strm.adb,
3744         exp_strm.ads, exp_tss.adb, exp_tss.ads, exp_util.adb, exp_util.ads,
3745         exp_vfpt.adb, exp_vfpt.ads, fmap.adb, fmap.ads, fname-sf.adb,
3746         fname-sf.ads, fname-uf.adb, fname-uf.ads, frontend.adb, frontend.ads,
3747         get_targ.adb, get_targ.ads, gnat1drv.adb, gnat1drv.ads, gnatbind.adb,
3748         gnatbind.ads, gnatbl.c, gnatchop.adb, gnatclean.adb, gnatcmd.adb,
3749         gnatcmd.ads, gnatdll.adb, gnatfind.adb, gnatkr.adb, gnatkr.ads,
3750         gnatlbr.adb, gnatlink.adb, gnatlink.ads, gnatls.adb, gnatls.ads,
3751         gnatmake.adb, gnatmake.ads, gnatmem.adb, gnatname.adb, gnatname.ads,
3752         gnatprep.adb, gnatprep.ads, gnatsym.adb, gnatxref.adb,
3753         gprep.adb, gprep.ads, hlo.adb, hlo.ads, impunit.adb, impunit.ads,
3754         inline.adb, inline.ads, itypes.adb, itypes.ads, layout.adb, layout.ads,
3755         lib-load.adb, lib-load.ads, lib-util.adb, lib-util.ads, lib-writ.adb,
3756         lib-writ.ads, lib-xref.adb, lib-xref.ads, live.adb, live.ads,
3757         make.adb, make.ads, makeutl.ads, makeutl.adb, makeusg.adb, makeusg.ads,
3758         mdll.adb, mdll.ads, mdll-fil.adb, mdll-fil.ads, mdll-utl.adb,
3759         mdll-utl.ads, memroot.adb, memroot.ads, mlib.adb, mlib.ads,
3760         mlib-fil.adb, mlib-fil.ads, mlib-prj.adb, mlib-prj.ads, mlib-tgt.adb,
3761         mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads, namet.h, nmake.adt,
3762         osint.adb, osint.ads, osint-b.adb, osint-b.ads, osint-c.adb,
3763         osint-c.ads, osint-l.adb, osint-l.ads, osint-m.adb, osint-m.ads,
3764         par.adb, par.ads, par-ch10.adb, par-ch11.adb, par-ch12.adb,
3765         par-ch13.adb, par-ch2.adb, par-ch3.adb, par-ch4.adb, par-ch5.adb,
3766         par-ch6.adb, par-ch7.adb, par-ch8.adb, par-ch9.adb, par-endh.adb,
3767         par-labl.adb, par-load.adb, par-prag.adb, par-sync.adb, par-tchk.adb,
3768         par-util.adb, prep.adb, prep.ads, prepcomp.adb, prepcomp.ads,
3769         prj.adb, prj.ads, prj-attr.adb, prj-attr.ads, prj-com.ads,
3770         prj-dect.adb, prj-dect.ads, prj-err.adb, prj-err.ads, prj-ext.adb,
3771         prj-ext.ads, prj-makr.adb, prj-makr.ads, prj-nmsc.adb, prj-nmsc.ads,
3772         prj-pars.adb, prj-pars.ads, prj-part.adb, prj-part.ads,
3773         prj-pp.adb, prj-pp.ads, prj-proc.adb, prj-proc.ads,
3774         prj-strt.adb, prj-strt.ads, prj-tree.adb, prj-tree.ads,
3775         prj-util.adb, prj-util.ads, restrict.adb, restrict.ads,
3776         rtsfind.adb, rtsfind.ads, scn.adb, scn.ads,
3777         scng.adb, scng.ads, sdefault.ads, sem.ads, sem_aggr.ads, sem_attr.adb,
3778         sem_case.adb, sem_case.ads, sem_cat.adb, sem_cat.ads, sem_ch10.adb,
3779         sem_ch10.ads, sem_ch11.adb, sem_ch11.ads, sem_ch12.ads, sem_ch13.adb,
3780         sem_ch13.ads, sem_ch2.adb, sem_ch2.ads, sem_ch3.adb, sem_ch3.ads,
3781         sem_ch4.ads, sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
3782         sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads, sem_ch9.adb,
3783         sem_ch9.ads, sem_disp.adb, sem_disp.ads, sem_dist.adb, sem_dist.ads,
3784         sem_elab.adb, sem_elab.ads, sem_elim.adb, sem_elim.ads, sem_eval.adb,
3785         sem_eval.ads, sem_intr.adb, sem_intr.ads, sem_maps.adb, sem_maps.ads,
3786         sem_mech.adb, sem_mech.ads, sem_prag.adb, sem_prag.ads, sem_res.adb,
3787         sem_res.ads, sem_smem.adb, sem_smem.ads, sem_type.adb, sem_type.ads,
3788         sem_util.adb, sem_util.ads, sem_vfpt.adb, sem_vfpt.ads, sem_warn.adb,
3789         sem_warn.ads, sfn_scan.ads, sinfo-cn.adb, sinfo-cn.ads, sinput-c.adb,
3790         sinput-c.ads, sinput-d.adb, sinput-d.ads, sinput-l.adb, sinput-l.ads,
3791         sinput-p.adb, sinput-p.ads, snames.h, sprint.adb, sprint.ads,
3792         stringt.h, style.ads, styleg.adb, styleg.ads, styleg-c.adb,
3793         styleg-c.ads, stylesw.adb, stylesw.ads, switch.adb, switch.ads,
3794         switch-b.adb, switch-b.ads, switch-c.adb, switch-c.ads, switch-m.adb,
3795         switch-m.ads, symbols.adb, symbols.ads, targparm.adb, tbuild.adb,
3796         tbuild.ads, tempdir.adb, tempdir.ads, tree_gen.adb, tree_gen.ads,
3797         treepr.adb, treepr.ads, treeprs.adt, ttypef.ads, ttypes.ads,
3798         types.h, uintp.h, urealp.h, usage.adb, usage.ads,
3799         validsw.adb, validsw.ads, vxaddr2line.adb, xeinfo.adb, xnmake.adb,
3800         xref_lib.adb, xref_lib.ads, xr_tabls.adb, xr_tabls.ads, xsinfo.adb,
3801         xtreeprs.adb, xsnames.adb, vms_conv.ads, vms_conv.adb, xgnatugn.adb,
3802         gprmake.adb, makegpr.ads, makegpr.adb, prj-attr-pm.ads, prj-attr-pm.adb,
3803         mlib-tgt-lynxos.adb, mlib-tgt-darwin.adb, symbols-vms.adb,
3804         symbols-processing-vms-alpha.adb, symbols-processing-vms-ia64.adb,
3805         mlib-tgt-specific.adb, mlib-tgt-specific.ads, mlib-tgt-vms.adb,
3806         mlib-tgt-vms.ads: Replace headers with GPL v3 headers.
3807
3808 2007-09-10  Emmanuel Briot  <briot@adacore.com>
3809
3810         * s-regpat.adb (Parse_Character_Class): Fix handling of empty character
3811         classes ("[]").
3812
3813 2007-09-10  Vasiliy Fofanov  <fofanov@adacore.com>
3814
3815         * adaint.c (__gnat_translate_vms): new function.
3816
3817 2007-09-10  Gary Dismukes  <dismukes@adacore.com>
3818             Thomas Quinot  <quinot@adacore.com>
3819
3820         * exp_ch3.adb (Predef_Spec_Or_Body): When the type is abstract, only
3821         create an abstract subprogram in the case of 'Input. For 'Output we now
3822         create a real spec/body when the type is abstract, since it can
3823         potentially be called.
3824         (Predefined_Primitive_Bodies): Now allow the creation of a predefined
3825         body for 'Output when the type is abstract (only the creation of the
3826         body for 'Input is excluded when the type is abstract).
3827         (Stream_Operation_OK): Add an additional condition in the return
3828         statement, so that False will be returned for TTS_Stream_Input if the
3829         associated tagged type is an abstract extension. Add comments for
3830         return statement.
3831         (Expand_N_Object_Declaration): For the case of a shared passive
3832         variable, insert init proc call only after the shared variable
3833         procedures have been processed, because the IP call needs to undergo
3834         shared passive variable reference expansion, which requires these
3835         procedures to be available (and elaborated).
3836
3837 2007-09-10  Vincent Celier  <celier@adacore.com>
3838
3839         * prj-env.ads, prj-env.adb (Create_Mapping_File (Language)): Remove
3840         parameter Runtime_Project.
3841
3842 2007-09-10  Ed Schonberg  <schonberg@adacore.com>
3843
3844         * sem_aggr.adb (Build_Record_Aggr_Code): If an aggregate component is
3845         given a box association, the type of the component is discriminated,
3846         and the value of the discriminant is the discriminant of the enclosing
3847         type, retrieve its value from the aggregate itself, where it must have
3848         been supplied.
3849
3850         * sem_ch4.adb (Analyze_One_Call): Further refinement to previous fix,
3851         to remove other spurious ambiguities on arithmetic operations involving
3852         literals and addresses, on systems where Address is a visible integer
3853         type, when the operator is called in functional notation.
3854         (Try_Primitive_Operation): Within an instance, a call in prefixed form
3855         is legal when the types match, even if the operation is currently
3856         hidden.
3857
3858 2007-09-10  Ed Schonberg  <schonberg@adacore.com>
3859
3860         * sem_ch12.adb (Build_Local_Package): A formal package with no
3861         associations is legal if all formals have defaults. It is not
3862         equivalent to a formal declared with a box.
3863
3864 2007-09-10  Sergey Rybin  <rybin@adacore.com>
3865
3866         * vms_data.ads: Add qualifier for the new gnatmetric '-lratio' option
3867
3868 2007-09-10  Sergey Rybin  <rybin@adacore.com>
3869
3870         * gnat_ugn.texi: Add description of the new '-lratio' option
3871         Update 7.3.1 section about availability of the feature.
3872
3873 2007-09-10  Thomas Quinot  <quinot@adacore.com>
3874
3875         * exp_smem.ads, exp_smem.adb (Make_Shared_Var_Procs): Return last
3876         inserted node.
3877
3878 2007-09-10  Olivier Hainque  <hainque@adacore.com>
3879
3880         * Makefile.in: (mips-irix section): Activate build of libgmem.
3881
3882 2007-09-10  Eric Botcazou  <ebotcazou@adacore.com>
3883
3884         * a-numaux-x86.adb (Logarithmic_Pow): Do not silently clobber
3885         x87 registers.
3886
3887 2007-09-10  Eric Botcazou  <ebotcazou@adacore.com>
3888
3889         * decl.c (gnat_to_gnu_entity) <object>: Deal with variable built for
3890         a debug renaming declaration specially.
3891
3892 2007-09-08  Eric Botcazou  <ebotcazou@adacore.com>
3893
3894         * decl.c (gnat_to_gnu_entity) <Object>: Simplify the condition under
3895         which a constant renaming is treated as a normal object declaration.
3896         * trans.c (lvalue_required_p) <N_Slice>: New case, extracted from
3897         the N_Indexed_Component case.
3898         <N_Indexed_Component>: Fall through to above case.
3899         <N_Object_Renaming_Declaration>: Return true for all composite types.
3900
3901 2007-09-08  Eric Botcazou  <ebotcazou@adacore.com>
3902
3903         * decl.c (make_packable_type): If the new type has been given BLKmode,
3904         try again to get an integral mode for it.
3905
3906 2007-09-07  Eric Botcazou  <ebotcazou@adacore.com>
3907
3908         Re-apply accidentally reverted change:
3909
3910         2007-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
3911
3912         * raise-gcc.c (get_region_description_for, get_call_site_action_for,
3913         get_action_description_for): Replace _Unwind_Word with _uleb128_t 
3914         and _Unwind_SWord with _sleb128_t.
3915
3916 2007-09-06  Eric Botcazou  <ebotcazou@adacore.com>
3917
3918         * trans.c (convert_with_check): Update call to real_2expN.
3919
3920 2007-09-05  Sandra Loosemore  <sandra@codesourcery.com>
3921
3922         * trans.c (Compilation_unit_to_gnu): Use set_cfun.
3923         * utils.c (end_subprog_body): Likewise.
3924
3925 2007-09-03  Nick Clifton  <nickc@redhat.com>
3926
3927         * Make-lang.in: Change copyright header to refer to version 3 of
3928         the GNU General Public License and to point readers at the
3929         COPYING3 file and the FSF's license web page.
3930         * ada-tree.def, nmake.adt, nlists.h, snames.h, utils.c,
3931         Makefile.rtl, Makefile.in, config-lang.in, uintp.h, urealp.h,
3932         namet.h, decl.c, utils2.c, lang.opt, elists.h, atree.h, types.h,
3933         treeprs.adt, lang-specs.h, cuintp.c, stringt.h, gnatbl.c:
3934         Likewise.
3935
3936 2007-08-31  Vincent Celier  <celier@adacore.com>
3937
3938         PR ada/4720
3939
3940         * gnatchop.adb, gnatfind.adb, gnatlink.adb, gnatls.adb, 
3941         gnatname.adb, gnatxref.adb, gprep.adb, clean.adb gnatbind.adb
3942         (Check_Version_And_Help): New procedure in package Switch to process
3943         switches --version and --help.
3944         Use Check_Version_And_Help in GNAT tools
3945
3946         * make.adb:  Ditto.
3947         (Compile_Sources): Make sure that sources that are "excluded" are not
3948         compiled.
3949         (Gnatmake): Do not issue -aO. to gnatbind and only issue -I- if a
3950         project file is used.
3951         (Version_Switch): Remove, moved to Switch
3952         (Help_Switch): Remove, moved to Switch
3953         (Display_Version): Remove, moved to Switch
3954
3955         * switch.ads, switch.adb (Check_Version_And_Help): New procedure in
3956         package Switch to process switches --version and --help.
3957         (Display_Version): New procedure
3958
3959         * gnatvsn.ads, gnatvsn.adb (Copyright_Holder): New function.
3960
3961 2007-08-31  Javier Miranda  <miranda@adacore.com>
3962
3963         * a-tags.adb (Internal_Tag): Protect the run-time against wrong
3964         internal tags.
3965
3966 2007-08-31  Hristian Kirtchev  <kirtchev@adacore.com>
3967
3968         * checks.adb (In_Declarative_Region_Of_Subprogram_Body): New routine.
3969         (Mark_Non_Null): If the node for which we just generated an access check
3970         is a reference to an *in* parameter and the reference appears in the
3971         declarative part of a subprogram body, mark the node as known non null.
3972
3973 2007-08-31  Hristian Kirtchev  <kirtchev@adacore.com>
3974
3975         * einfo.ads, einfo.adb: New flag Is_Raised (Flag224). Update the
3976         structure of E_Exception to reflect the new flag.
3977         (Is_Raised, Set_Is_Raised): New inlined routines.
3978         Update the usage of available flag to reflect the addition of Is_Raised.
3979         (Is_Raised, Set_Is_Raised): Bodies of new routines.
3980         (Write_Entity_Flags): Write the status of flag Is_Raised.
3981         (Is_Descendent_Of_Address): New entity flag, to simplify handling of
3982         spurious ambiguities when integer literals appear in the context of an
3983         address type that is a visible integer type.
3984
3985         * sem_ch11.adb (Analyze_Exception_Handler): Add code to warn on local
3986         exceptions never being raised.
3987         (Analyze_Raise_Statement): When analyzing an exception, mark it as being
3988         explicitly raised.
3989
3990 2007-08-31  Javier Miranda  <miranda@adacore.com>
3991
3992         * exp_ch11.adb (Expand_At_End_Handler): Avoid generation of raise
3993         statement when compiling under restriction No_Exceptions_Proparation.
3994
3995 2007-08-31  Ed Schonberg  <schonberg@adacore.com>
3996
3997         * exp_ch3.adb (Build_Record_Init_Proc): If there is a static
3998         initialization aggregate for the type, generate itype references for
3999         thetypes of its (sub)components, to prevent out-of-scope errors in gigi.
4000
4001 2007-08-31  Gary Dismukes  <dismukes@adacore.com>
4002
4003         * exp_ch8.adb (Expand_N_Package_Renaming_Declaration): In the case of a
4004         library-level package renaming, pass the declaration associated with
4005         the renaming's special debug variable to Qualify_Entity_Names to ensure
4006         that its encoded name is properly qualified.
4007
4008         * exp_dbug.adb (Qualify_All_Entity_Names): Check for a variable entity
4009         occurring in the list of entities to qualify, and do not attempt to
4010         traverse an entity list in that case. Variables associated with
4011 `       library-level package renamings can now occur in the table.
4012
4013         * exp_dbug.ads: Revise documentation of the encoding for renaming
4014         declarations.
4015
4016 2007-08-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4017
4018         * layout.adb (Layout_Type): Use Underlying_Type to determine whether an
4019         access type points to an unconstrained array.
4020
4021 2007-08-31  Hristian Kirtchev  <kirtchev@adacore.com>
4022
4023         * restrict.adb, namet.adb, par-util.adb: Remove redundant type
4024         conversion.
4025
4026         * sem_res.adb (Resolve_Qualified_Expression): Add machinery to detect
4027         simple redundant qualifications. The check is performed whenever the
4028         expression is a non-overloaded identifier.
4029         (Resolve_Type_Conversion): Enchance the redundant type conversion check
4030         to include loop parameters.
4031         (Valid_Conversion): Avoid generation of spurious error message.
4032
4033 2007-08-31  Bob Duff  <duff@adacore.com>
4034
4035         * par-ch4.adb (P_Simple_Expression): Fold long sequences of
4036         concatenations of string literals into a single literal, in order to
4037         avoid very deep recursion in the front end, which was causing stack
4038         overflow.
4039
4040         * sem_eval.adb (Eval_Concatenation): If the left operand is the empty
4041         string, and the right operand is a string literal (the case of "" &
4042         "..."), optimize by avoiding copying the right operand -- just use the
4043         value of the right operand directly.
4044
4045         * stringt.adb (Store_String_Chars): Optimize by growing the
4046         String_Chars table all at once, rather than appending characters one by
4047         one.
4048         (Write_String_Table_Entry): If the string to be printed is very long,
4049         just print the first few characters, followed by the length. Otherwise,
4050         doing "pn(n)" in the debugger can take an extremely long time.
4051
4052         * sem_prag.adb (Process_Interface_Name): Replace loop doing
4053         Store_String_Char with Store_String_Chars.
4054
4055 2007-08-31  Vincent Celier  <celier@adacore.com>
4056
4057         * prj-attr.adb: Add new attribute Excluded_Source_Files
4058
4059         * prj-nmsc.adb: Use attribute Excluded_Source_Files before
4060         Locally_Removed_Files.
4061
4062         * snames.ads, snames.adb: New standard name Excluded_Source_Files
4063
4064 2007-08-31  Ed Schonberg  <schonberg@adacore.com>
4065
4066         * sem_ch10.adb (Analyze_Subunit_Context): When analyzing context
4067         clauses of subunits, ignore limited_with_clauses that are illegal and
4068         have not been fully analyzed.
4069
4070 2007-08-31  Ed Schonberg  <schonberg@adacore.com>
4071
4072         * sem_ch3.adb: The predicate Is_Descendent_Of_Address is now an entity
4073         flag, for effiency. It is called when analyzing arithmetic operators
4074         and also for actuals in calls that are universal_integers. The flag is
4075         set for the predefined type address, and for any type or subtype
4076         derived from it.
4077
4078         * sem_ch4.adb (Analyze_One_Call): Reject an actual that is a
4079         Universal_Integer, when the formal is a descendent of address and the
4080         call appears in user code.
4081         (Analyze_Selected_Component): if the prefix is a private extension, the
4082         tag component is visible.
4083
4084         * sem_util.ads, sem_util.adb: Remove Is_Descendent_Of_Address, now an
4085         entity flag.
4086
4087 2007-08-31  Robert Dewar  <dewar@adacore.com>
4088
4089         * s-fileio.adb (Open): Normalize file name to lower case in non-case
4090         sensitive file name systems to avoid unexpected mismatch in Vista.
4091
4092 2007-08-31  Vincent Celier  <celier@adacore.com>
4093
4094         * tempdir.adb: On VMS, take into account GNUTMPDIR before TMPDIR
4095
4096 2007-08-31  Vincent Celier  <celier@adacore.com>
4097
4098         * symbols-vms.adb (Initialize): Read symbol files with continuation
4099         lines
4100         (Finalize): If symbol is long, split the line
4101
4102 2007-08-31  Vincent Celier  <celier@adacore.com>
4103
4104         * fmap.ads: Minor comment updates
4105
4106 2007-08-31  GNAT Script  <nobody@adacore.com>
4107
4108         * Make-lang.in: Makefile automatically updated
4109
4110 2007-08-31  Bob Duff  <duff@adacore.com>
4111
4112         * sinfo.ads: Minor comment fix.
4113
4114 2007-08-31  Thomas Quinot  <quinot@adacore.com>
4115
4116         * stand.ads: (Standard_Debug_Renaming_Type): Make comment consistent
4117         with implementation.
4118         Documentation cleanup only.
4119
4120 2007-08-31  Sergey Rybin  <rybin@adacore.com>
4121
4122         * vms_data.ads: Add new qualifier /STMT_NAME_ON_NEW_LINE for the new
4123         gnatpp '--separate-stmt-name' option.
4124         Add new qualifier /USE_ON_NEW_LIN for the new gnatpp '--use-on-new-line'
4125         option.
4126
4127         * gnat_ugn.texi: Add description for the new gnatpp
4128         '--separate-stmt-name' and '--use-on-new-line' options.
4129
4130 2007-08-31  Ben Elliston  <bje@au.ibm.com>
4131
4132         * Makefile.in (LIBGNAT_TARGET_PAIRS): Use system-linux-ppc64.ads
4133         when compiling for powerpc64-*-linux.
4134         * system-linux-ppc64.ads: New file.
4135
4136 2007-08-22  Krister Walfridsson  <cato@df.lth.se>
4137
4138         * env.c ( __gnat_clearenv): Use the __gnat_unsetenv mechanism for
4139         NetBSD.
4140
4141 2007-08-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4142
4143         * misc.c (gnat_type_max_size): Constify.
4144
4145 2007-08-16  Gary Dismukes  <dismukes@adacore.com>
4146
4147         * cstand.adb (Create_Standard): Create an entity for a zero-sized type
4148         associated with Standard_Debug_Renaming_Type, to be used as the type of
4149         the special variables whose names provide debugger encodings for
4150         renaming declarations.
4151
4152         * einfo.ads, einfo.adb (Debug_Renaming_Link): Change to return Node25.
4153         (Set_Debug_Renaming_Link): Change to set Node25.
4154         (Write_Field13_Name): Remove case for E_Enumeration_Literal.
4155         (Write_Field25_Name): Add case for E_Variable to output
4156         "Debug_Renaming_Link".
4157         (Write_Field23_Name): Correct the output string for "Limited_View".
4158
4159         * exp_dbug.adb: Add with and use of Tbuild.
4160         (Debug_Renaming_Declaration): Replace creation of an enumeration type
4161         and literal with creation of a variable of type
4162         Standard_Debug_Renaming_Type whose name encodes both the renamed object
4163         and the entity of the renaming declaration.
4164         (Qualify_Entity_Name): Add the delayed qualification of the entity name
4165         part of the name of a variable that has a Debug_Renaming_Link.
4166
4167         * stand.ads (Standard_Debug_Renaming_Type): New Entity_Id denoting a
4168         special type to be associated with variables that provide debugger
4169         encodings for renaming declarations.
4170
4171 2007-08-16  Gary Dismukes  <dismukes@adacore.com>
4172             Ed Schonberg  <schonberg@adacore.com>
4173             Javier Miranda  <miranda@adacore.com>
4174
4175         * exp_aggr.adb (Build_Record_Aggr_Code): Extend the test for an
4176         ancestor part given by an aggregate to test for an unchecked conversion,
4177         since this can occur in some cases when the ancestor part is a function
4178         call, and we don't want to fall into the recursive call to this
4179         procedure in that case.
4180
4181         * exp_ch3.adb (Stream_Operation_OK): Revise tests for availability of
4182         stream attributes on limited types to account for user-specified
4183         attributes as well as whether Input (resp. Output) becomes available
4184         due to Read (resp. Write) being available for the type. Change Boolean
4185         variable to the more accurate name
4186         Has_Predefined_Or_Specified_Stream_Attribute. Change convoluted
4187         double-"not" predicate at beginning of return statement to more
4188         understandable form.
4189
4190         * exp_ch5.adb (Expand_N_Extended_Return_Statement): If the extended
4191         return has an associated N_Handled_Sequence_Of_Statements, then wrap it
4192         in a block statement and use that as the first statement of the
4193         expanded return rather than incorrectly using the handled sequence as
4194         the first statement.
4195
4196         * exp_ch6.adb (Expand_N_Subprogram_Declaration): If this is a protected
4197         operation, generate an explicit freeze node for it rather than
4198         generating extra formals, to ensure that gigi has the proper order of
4199         elaboration for anonymous subtypes in the signature of the subprograms.
4200         (Build_In_Place_Formal): Move assertion to beginning of loop.
4201         (Is_Build_In_Place_Function_Call): Allow for an unchecked conversion
4202         applied to a function call (occurs for some cases of 'Input).
4203         (Make_Build_In_Place_Call_In_*): Allow for an unchecked conversion
4204         applied to a function call (occurs for some cases of 'Input).
4205
4206         * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): For Ada
4207         2005, generate an extended return statement enclosing the result object
4208         and 'Read call.
4209
4210         * freeze.adb (Freeze_Record_Type): Extend the current management of
4211         components that are access type with an allocator as default value: add
4212         missing support to the use of qualified expressions of the
4213         allocator (which also cause freezing of the designated type!)
4214         (Freeze_Entity): Call Freeze_Subprogram in the case of a predefined
4215         dispatching operation, since extra formals may be needed by calls to
4216         build-in-place functions (such as stream 'Input).
4217
4218         * sem_ch6.adb (Create_Extra_Formals): Skip creation of the extra
4219         formals for 'Constrained and accessibility level in the case of a
4220         predefined dispatching operation.
4221
4222         * exp_util.adb (Insert_Actions): A protected body is a valid insertion
4223         point, no need to find the parent node.
4224
4225 2007-08-16  Javier Miranda  <miranda@adacore.com>
4226
4227         * exp_attr.adb (Attribute_Priority): Add missing support for entries
4228         and entry barriers.
4229
4230 2007-08-16  Javier Miranda  <miranda@adacore.com>
4231
4232         * exp_ch9.adb (Build_Protected_Entry): Undo previous change because it
4233         is not really required and can introduce regression with the debugger.
4234         The original problem is fixed with the patch written for checks.adb.
4235
4236 2007-08-16  Thomas Quinot  <quinot@adacore.com>
4237
4238         * g-dyntab.adb, g-table.adb, table.adb: (Set_Item): Suppress
4239         Range_Check on Allocated_Table.
4240
4241 2007-08-16  Vincent Celier  <celier@adacore.com>
4242
4243         * make.adb (Collect_Arguments): Call Test_If_Relative_Path with
4244         Including_Non_Switch set to False.
4245         (Gnatmake): For the compiler, call Test_If_Relative_Path with
4246         Including_Non_Switch set to False.
4247
4248         * makeutl.adb, makeutl.ads (Test_If_Relative_Path): New Boolean
4249         parameter Including_Non_Switch, defaulted to True. When
4250         Including_Non_Switch is False, options that are not switches and
4251         appear as relative path are not converted to absolute paths.
4252
4253 2007-08-16  Nicolas Roche  <roche@adacore.com>
4254
4255         * Makefile.in (gnatlib): Propagate FORCE_DEBUG_ADAFLAGS value to sub
4256         makefiles
4257
4258         * Make-lang.in: Update dependencies
4259
4260 2007-08-16  Hristian Kirtchev  <kirtchev@adacore.com>
4261
4262         * sem_ch10.adb (Has_With_Clause): If the name of the with clause
4263         currently inspected is a selected component, retrieve the entity of
4264         its selector.
4265         (Install_Limited_Withed_Unit): Call Has_Limited_With_Clause starting
4266         from the immediate ancestor of Main_Unit_Entity.
4267         (Install_Limited_Withed_Unit): Do not install the limited view of
4268         package P if P is reachable through an ancestor chain from package C
4269         and C also has a with clause for P in its body.
4270         (Has_Limited_With_Clause): New routine.
4271         (Has_With_Clause): New routine.
4272
4273 2007-08-16  Ed Schonberg  <schonberg@adacore.com>
4274
4275         * sem_ch12.adb (Copy_Generic_Node): A reference to a child unit of the
4276         generic for an enclosing instance is a global reference, even though
4277         its scope is the enclosing instance.
4278
4279 2007-08-16  Gary Dismukes  <dismukes@adacore.com>
4280             Javier Miranda  <miranda@adacore.com>
4281
4282         * sem_ch3.adb (OK_For_Limited_Init_In_05): Allow calls to 'Input to
4283         initialize a limited object.
4284         (Build_Derived_Record_Type): Add missing check of rules ARM 3.9.4
4285         13/2 and 14/2.
4286         Make sure Has_Complex_Representation is inherited by derived type.
4287
4288 2007-08-16  Robert Dewar  <dewar@adacore.com>
4289
4290         * sem_ch5.adb (Analyze_Assignment): Make sure we still note update in
4291         exception case
4292
4293 2007-08-16  Ed Schonberg  <schonberg@adacore.com>
4294
4295         * sem_disp.adb (Check_Dispatching_Operation): If the operation
4296         implements an operation inherited from a progenitor interface, verify
4297         that they are subtype-conformant.
4298
4299 2007-08-16  Hristian Kirtchev  <kirtchev@adacore.com>
4300             Bob Duff  <duff@adacore.com>
4301             Nicolas Setton  <setton@adacore.com>
4302
4303         * sem_res.adb (Comes_From_Predefined_Lib_Unit): New.
4304         (Resolve): Alphabetize local variables. Add new variable From_Lib. When
4305         the statement which is being resolved comes from a predefined library
4306         unit, all non-predefined library interpretations are skipped.
4307         (Resolve_Op_Concat): If string concatenation was folded in the parser,
4308         but the "&" is user defined, give an error, because the folding would
4309         be wrong.
4310
4311         * sinfo.ads, sinfo.adb (Is_Folded_In_Parser): New flag to indicate that
4312         the parser has folded a long sequence of concatenations of string
4313         literals.
4314
4315         * trans.c (Handled_Sequence_Of_Statements_to_gnu): Mark "JMPBUF_SAVE"
4316         and "JMP_BUF" variables as artificial.
4317         (N_String_Literal): Do not use alloca for very long string literals. Use
4318         xmalloc/free instead. Otherwise the stack might overflow.
4319
4320         * utils.c (init_gigi_decls): Mark "JMPBUF_T" type as created by the
4321         compiler.
4322
4323 2007-08-16  Vincent Celier  <celier@adacore.com>
4324
4325         * vms_conv.adb (Process_Argument): Ensure that project related options
4326         are not put in the -cargs section when using GNAT COMPILE.
4327
4328 2007-08-16  Robert Dewar  <dewar@adacore.com>
4329
4330         * gnat_ugn.texi: Add note on preprocessing (output file not written)
4331
4332 2007-08-16  Thomas Quinot  <quinot@adacore.com>
4333
4334         * a-tags.adb: Minor reformatting.
4335
4336 2007-08-16  Bob Duff  <duff@adacore.com>
4337
4338         * sem_type.ads, sem_ch4.adb: Minor reformatting.
4339
4340 2007-08-14  Thomas Quinot  <quinot@adacore.com>
4341
4342         * g-soccon-interix.ads, a-excpol-interix.adb, a-intnam-interix.ads, 
4343         s-osinte-interix.ads, system-interix.ads: Removed.
4344
4345 2007-08-14  Hristian Kirtchev  <kirtchev@adacore.com>
4346
4347         * a-calend-vms.adb, a-calend.adb ("+", "-", Add, Subtract): Remove
4348         calls to Check_Within_Time_Bounds.
4349         ("+", "-", Add, Subtract): Remove calls to Check_Within_Time_Bounds.
4350         (Difference): Account for possible rounding of the resulting difference
4351
4352 2007-08-14  Robert Dewar  <dewar@adacore.com>
4353
4354         * uintp.adb, a-ztedit.adb, s-wchcon.adb, xnmake.adb, s-wchcon.adb,
4355         par-ch5.adb, par-ch10.adb, get_targ.adb, a-wtedit.adb, a-teioed.adb,
4356         s-osinte-solaris.adb, s-osinte-solaris.ads,
4357         s-osinte-freebsd.ads, s-osinte-freebsd.adb: Minor reformatting.
4358
4359         * styleg.adb, styleg.ads, stylesw.adb, stylesw.ads: implement style
4360         switch -gnatyS. Enable -gnatyS in GNAT style check mode
4361
4362 2007-08-14  Robert Dewar  <dewar@adacore.com>
4363             Ed Schonberg  <schonberg@adacore.com>
4364
4365         * inline.adb, types.ads, inline.ads, frontend.adb, alloc.ads: 
4366         Suppress unmodified in-out parameter warning in some cases
4367         This patch is a also fairly significant change to the way suppressible
4368         checks are handled.
4369
4370         * checks.ads, checks.adb (Install_Null_Excluding_Check): No check
4371         needed for access to concurrent record types generated by the expander.
4372         (Generate_Range_Check): When generating a temporary to capture the
4373         value of a conversion that requires a range check, set the type of the
4374         temporary before rewriting the node, so that the type is always
4375         properly placed for back-end use.
4376         (Apply_Float_Conversion_Check): Handle case where the conversion is
4377         truncating.
4378         (Get_Discriminal): Code reformatting. Climb the scope stack looking
4379         for a protected type in order to examine its discriminants.
4380
4381 2007-08-14  Robert Dewar  <dewar@adacore.com>
4382             Gary Dismukes  <dismukes@adacore.com>
4383             Ed Schonberg  <schonberg@adacore.com>
4384             Thomas Quinot  <quinot@adacore.com>
4385
4386         * a-stzsup.adb, nlists.adb, lib-util.adb, treepr.adb, 
4387         a-stwisu.adb, a-strsup.adb: Fix warnings for range
4388         tests optimized out.
4389
4390         * exp_ch4.adb (Expand_N_In): Add warnings for range tests optimized out.
4391         (Get_Allocator_Final_List): For the case of an anonymous access type
4392         that has a specified Associated_Final_Chain, do not go up to the
4393         enclosing scope.
4394         (Expand_N_Type_Conversion): Test for the case of renamings of access
4395         parameters when deciding whether to apply a run-time accessibility
4396         check.
4397         (Convert_Aggr_In_Allocator): Use Insert_Actions to place expanded
4398         aggregate code before allocator, and ahead of declaration for
4399         temporary, to prevent access before elaboration when the allocator is
4400         an actual for an access parameter.
4401         (Expand_N_Type_Conversion): On an access type conversion involving an
4402         access parameter, do not apply an accessibility check when the
4403         operand's original node was an attribute other than 'Access. We now
4404         create access conversions for the expansion of 'Unchecked_Access and
4405         'Unrestricted_Access in certain cases and clearly accessibility should
4406         not be checked for those.
4407
4408         * exp_ch6.ads, exp_ch6.adb (Add_Call_By_Copy_Code): For an actual that
4409         includes a type conversion of a packed component that has been expanded,
4410         recover the original expression for the object, and use this expression
4411         in the post-call assignment statement, so that the assignment is made
4412         to the object and not to a back-end temporary.
4413         (Freeze_Subprogram): In case of primitives of tagged types not defined
4414         at the library level force generation of code to register the primitive
4415         in the dispatch table. In addition some code reorganization has been
4416         done to leave the implementation clear.
4417         (Expand_Call): When expanding an inherited implicit conversion,
4418         preserve the type of the inherited function after the intrinsic
4419         operation has been expanded.
4420
4421         * exp_ch2.ads, exp_ch2.adb
4422         (Expand_Entry_Parameter.In_Assignment_Context): An implicit dereference
4423         of an entry formal appearing in an assignment statement does not assign
4424         to the formal.
4425         (Expand_Current_Value): Instead of calling a routine to determine
4426         whether the prefix of an attribute reference should be optimized or
4427         not, prevent the optimization of such prefixes all together.
4428
4429         * lib-xref.adb (Generate_Reference.Is_On_LHS): An indexed or selected
4430         component whose prefix is known to be of an access type is an implicit
4431         dereference and does not assign to the prefix.
4432
4433 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
4434             Robert Dewar  <dewar@adacore.com>
4435
4436         * atree.ads, atree.adb (New_Copy_Tree): If hash table is being used and
4437         itype is visited, make an entry into table to link associated node and
4438         new itype.
4439         Add comments and correct harmless error in Build_NCT_Hash_Tables
4440         (Array_Aggr_Subtype): Associate each itype created for an index type to
4441         the corresponding range construct, and not to the aggregate itself. to
4442         maintain a one-to-one correspondence between itype and its associated
4443         node, to prevent errors when complex expression is copied.
4444         Fix mishandling of multiple levels of parens
4445
4446         * sem_aggr.adb: Create a limited view of an incomplete type, to make
4447         treatment of limited views uniform for all visible declarations in a
4448         limited_withed package.
4449         (New_Copy_Tree): If hash table is being used and itype is visited,
4450         make an entry into table to link associated node and new itype.
4451         (Resolve_Record_Aggregate): Do not add an others box association for a
4452         discriminated record component that has only discriminants, when there
4453         is a box association for the component itself.
4454
4455         * par-ch4.adb: Fix mishandling of multiple levels of parens
4456
4457 2007-08-14  Robert Dewar  <dewar@adacore.com>
4458
4459         * comperr.adb: Fix problem with suppressing warning messages from gigi
4460
4461         * erroutc.ads, erroutc.adb, errout.ads, 
4462         errout.adb (Write_Eol): Remove trailing spaces before writing the line
4463         (Write_Eol_Keep_Blanks): New procedure to write a line, including
4464         possible trailing spaces.
4465         (Output_Source_Line): Call Write_Eol_Keep_Blanks to output a source line
4466         Fix problem with suppressing warning messages from back end
4467         Improve handling of deleted warnings
4468
4469         * gnat1drv.adb: 
4470         Fix problem with suppressing warning messages from back end
4471         Handle setting of Static_Dispatch_Tables flag.
4472
4473         * prepcomp.adb: 
4474         Fix problem with suppressing warning messages from back end
4475
4476         * exp_intr.adb: Improve handling of deleted warnings
4477
4478 2007-08-14  Robert Dewar  <dewar@adacore.com>
4479
4480         * debug.adb: Improve -gnatdI to cover all cases of serialization
4481         Add documentation of dZ, d.t
4482
4483         * sprint.ads, sprint.adb: Improve -gnatdI to cover all cases of
4484         serialization.
4485         (Sprint_Node_Actual): Generate new output associated with implicit
4486         importation and implicit exportation of object declarations.
4487
4488 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
4489             Robert Dewar  <dewar@adacore.com>
4490             Javier Miranda  <miranda@adacore.com>
4491             Gary Dismukes  <dismukes@adacore.com>
4492
4493         * einfo.ads, einfo.adb: Create a limited view of an incomplete type,
4494         to make treatment of limited views uniform for all visible declarations
4495         in a limited_withed package.
4496         Improve warnings for in out parameters
4497         (Set_Related_Interaface/Related_Interface): Allow the use of this
4498         attribute with constants.
4499         (Write_Field26_Name): Handle attribute Related_Interface in constants.
4500         Warn on duplicate pragma Preelaborable_Initialialization
4501
4502         * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Body): Force the
4503         generation of a freezing node to ensure proper management of null
4504         excluding access types in the backend.
4505         (Create_Extra_Formals): Test base type of the formal when checking for
4506         the need to add an extra accessibility-level formal. Pass the entity E
4507         on all calls to Add_Extra_Formal (rather than Scope (Formal) as was
4508         originally being done in a couple of cases), to ensure that the
4509         Extra_Formals list gets set on the entity E when the first entity is
4510         added.
4511         (Conforming_Types): Add missing calls to Base_Type to the code that
4512         handles anonymous access types. This is required to handle the
4513         general case because Process_Formals builds internal subtype entities
4514         to handle null-excluding access types.
4515         (Make_Controlling_Function_Wrappers): Create wrappers for constructor
4516         functions that need it, even when not marked Requires_Overriding.
4517         Improve warnings for in out parameters
4518         (Analyze_Function_Return): Warn for disallowed null return
4519         Warn on return from procedure with unset out parameter
4520         Ensure consistent use of # in error messages
4521         (Check_Overriding_Indicator): Add in parameter Is_Primitive.
4522         (Analyze_Function_Return): Move call to Apply_Constraint_Check before
4523         the implicit conversion of the expression done for anonymous access
4524         types. This is required to generate the code of the null excluding
4525         check (if required).
4526
4527         * sem_warn.ads, sem_warn.adb (Check_References.Publicly_Referenceable):
4528         A formal parameter is never publicly referenceable outside of its body.
4529         (Check_References): For an unreferenced formal parameter in an accept
4530         statement, use the same warning circuitry as for subprogram formal
4531         parameters.
4532         (Warn_On_Unreferenced_Entity): New subprogram, taken from
4533         Output_Unreferenced_Messages, containing the part of that routine that
4534         is now reused for entry formals as described above.
4535         (Goto_Spec_Entity): New function
4536         (Check_References): Do not give IN OUT warning for dispatching operation
4537         Improve warnings for in out parameters
4538         (Test_Ref): Check that the entity is not undefinite before calling
4539         Scope_Within, in order to avoid infinite loops.
4540         Warn on return from procedure with unset out parameter
4541         Improved warnings for unused variables
4542
4543 2007-08-14  Robert Dewar  <dewar@adacore.com>
4544             Javier Miranda  <miranda@adacore.com>
4545             Gary Dismukes  <dismukes@adacore.com>
4546
4547         * exp_attr.adb (Expand_N_Attribute_Reference): Handle case of child unit
4548         (Expand_N_Attribute_Reference): Further unify the handling of the
4549         three forms of access attributes, using common code now for all three
4550         cases. Add a test for the case of applying an access attribute to
4551         an explicit dereference when the context is an access-to-interface
4552         type. In that case we need to apply the conversion to the prefix
4553         of the explicit dereference rather than the prefix of the attribute.
4554         (Attribute_Version, UET_Address): Set entity as internal to ensure
4555         proper dg output of implicit importation.
4556         (Expand_Access_To_Type): Removed.
4557         (Expand_N_Attribute_Reference): Merge the code from the three cases
4558         of access attributes, since the processing is largely identical for
4559         these cases. The substantive fix here is to process the case of a
4560         type name prefix (current instance case) before handling the case
4561         of interface prefixes.
4562
4563 2007-08-14  Thomas Quinot  <quinot@adacore.com>
4564             Ed Schonberg  <schonberg@adacore.com>
4565             Javier Miranda  <miranda@adacore.com>
4566             Robert Dewar  <dewar@adacore.com>
4567
4568         * exp_ch3.ads, exp_ch3.adb (Add_Final_Chain): New subprogram.
4569         (Freeze_Array_Type, Freeze_Record_Type): For the case of a component
4570         type that is an anonymous access to controlled object, establish
4571         an associated finalization chain to avoid corrupting the global
4572         finalization list when a dynamically allocated object designated
4573         by such a component is deallocated.
4574         (Make_Controlling_Function_Wrappers): Create wrappers for constructor
4575         functions that need it, even when not marked Requires_Overriding.
4576         (Initialize_Tag): Replace call to has_discriminants by call to
4577         Is_Variable_Size_Record in the circuitry that handles the
4578         initialization of secondary tags.
4579         (Is_Variable_Size_Record): New implementation.
4580         (Expand_N_Object_Declaration): Suppress call to init proc if there is a
4581         Suppress_Initialization pragma for a derived type.
4582         (Is_Variable_Size_Record): New subprogram.
4583         (Build_Offset_To_Top_Functions): New implementation that simplifies the
4584         initial version of this routine and also fixes problems causing
4585         incomplete initialization of the table of interfaces.
4586         (Build_Init_Procedure): Improve the generation of code to initialize the
4587         the tag components of secondary dispatch tables.
4588         (Init_Secondary_Tags): New implementation that simplifies the previous
4589         version of this routine.
4590         (Make_DT): Add parameter to indicate when type has been frozen by an
4591         object declaration, for diagnostic purposes.
4592         (Check_Premature_Freezing): New subsidiary procedure of Make_DT, to
4593         diagnose attemps to freeze a subprogram when some untagged type of its
4594         profile is a private type whose full view has not been analyzed yet.
4595         (Freeze_Array_Type): Generate init proc for packed array if either
4596         Initialize or Normalize_Scalars is set.
4597         (Make_Controlling_Function_Wrappers, Make_Null_Procedure_Specs): when
4598         constructing the new profile, copy the null_exclusion indicator for each
4599         parameter, to ensure full conformance of the new body with the spec.
4600
4601         * sem_type.ads, sem_type.adb (Make_Controlling_Function_Wrappers):
4602         Create wrappers for constructor functions that need it, even when not
4603         marked Requires_Overriding.
4604         (Covers): Handle properly designated types of anonymous access types,
4605         whose non-limited views are themselves incomplete types.
4606         (Add_Entry): Use an entity to store the abstract operation which hides
4607         an interpretation.
4608         (Binary_Op_May_Be_Hidden): Rename to Binary_Op_Interp_Has_Abstract_Op.
4609         (Collect_Interps): Use Empty as an actual for Abstract_Op in the
4610         initialization aggregate.
4611         (Function_Interp_May_Be_Hidden): Rename to
4612         Function_Interp_Has_Abstract_Op.
4613         (Has_Compatible_Type): Remove machinery that skips interpretations if
4614         they are labeled as potentially hidden by an abstract operator.
4615         (Has_Hidden_Interp): Rename to Has_Abstract_Op.
4616         (Set_May_Be_Hidden): Rename to Set_Abstract_Op.
4617         (Write_Overloads): Output the abstract operator if present.
4618         (Add_Entry): Before inserting a new entry into the interpretation table
4619         for a node, determine whether the entry will be disabled by an abstract
4620         operator.
4621         (Binary_Op_Interp_May_Be_Hidden): New routine.
4622         (Collect_Interps): Add value for flag May_Be_Hidden in initialization
4623         aggregate.
4624         (Function_Interp_May_Be_Hidden): New routine.
4625         (Has_Compatible_Type): Do not consider interpretations hidden by
4626         abstract operators when trying to determine whether two types are
4627         compatible.
4628         (Has_Hidden_Interp): New routine.
4629         (Set_May_Be_Hidden_Interp): New routine.
4630         (Write_Overloads): Write the status of flag May_Be_Hidden.
4631
4632 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
4633             Javier Miranda  <miranda@adacore.com>
4634
4635         * exp_disp.ads, exp_disp.adb (Build_Dispatch_Tables): Handle tagged
4636         types declared in the declarative part of a nested package body or in
4637         the proper body of a stub.
4638         (Set_All_DT_Position): Add missing check to avoid wrong assignation
4639         of the same dispatch table slot to renamed primitives.
4640         (Make_Select_Specific_Data_Table): Handle private types.
4641         (Tagged_Kind): Handle private types.
4642         (Make_Tags, Make_DT): Set tag entity as internal to ensure proper dg
4643         output of implicit importation and exportation.
4644         (Expand_Interface_Thunk): Fix bug in the expansion assuming that the
4645         first formal of the thunk is always associated with the controlling
4646         type. In addition perform the following code cleanup: remove formal
4647         Thunk_Alias which is no longer required, cleanup evaluation of the
4648         the controlling type, and update the documentation.
4649         Replace occurrence of Default_Prim_Op_Count by
4650         Max_Predef_Prims. Addition of compile-time check to verify
4651         that the value of Max_Predef_Prims is correct.
4652         (Check_Premature_Freezing): Apply check in Ada95 mode as well.
4653         (Make_DT): Add parameter to indicate when type has been frozen by an
4654         object declaration, for diagnostic purposes.
4655         (Build_Static_Dispatch_Tables): New subprogram that takes care of the
4656         construction of statically allocated dispatch tables.
4657         (Make_DT): In case of library-level tagged types export the declaration
4658         of the primary tag. Remove generation of tags (now done by Make_Tags).
4659         Additional modifications to handle non-static generation of dispatch
4660         tables. Take care of building tables for asynchronous interface types
4661         (Make_Tags): New subprogram that generates the entities associated with
4662         the primary and secondary tags of Typ and fills the contents of Access_
4663         Disp_Table. In case of library-level tagged types imports the forward
4664         declaration of the primary tag that will be declared later by Make_DT.
4665         (Expand_Interface_Conversion): In case of access types to interfaces
4666         replace an itype declaration by an explicit type declaration to avoid
4667         problems associated with the scope of such itype in transient blocks.
4668
4669 2007-08-14  Robert Dewar  <dewar@adacore.com>
4670             Ed Schonberg  <schonberg@adacore.com>
4671             Javier Miranda  <miranda@adacore.com>
4672
4673         * exp_util.ads, exp_util.adb: 
4674         This patch replaces a number of occurrences of explicit tests for N_Null
4675         with calls to Known_Null. This improves tracking of null values, since
4676         Known_Null also catches null constants, and variables currently known to
4677         be null, so we get better tracking.
4678         (Ensure_Defined): create an itype reference only in the scope of the
4679         itype.
4680         (Side_Effect_Free): A selected component of an access type that
4681         denotes a component with a rep clause must be treated as not
4682         side-effect free, because if it is part of a linked structure its
4683         value may be affected by a renaming.
4684         (Expand_Subtype_From_Expr): For limited objects initialized with build
4685         in place function calls, do nothing; otherwise we prematurely introduce
4686         an N_Reference node in the expression initializing the object, which
4687         breaks the circuitry that detects and adds the additional arguments to
4688         the called function. Bug found working in the new patch for statically
4689         allocated dispatch tables.
4690         (Is_Library_Level_Tagged_Type): New subprogram.
4691         (Remove_Side_Effects): If the expression of an elementary type is an
4692         operator treat as a function call.
4693         (Make_Literal_Range): If the index type of the array is not integer, use
4694         attributes properly to compute the constraint on the resulting aggregate
4695         which is a string.
4696
4697         * freeze.ads, freeze.adb (Freeze_Entity): If the entity is a
4698         class-wide type whose base type is an incomplete private type, leave
4699         class-wide type unfrozen so that freeze nodes can be generated
4700         properly at a later point.
4701         (Freeze_Entity, array case): Handle case of pragma Pack and component
4702         size attributre clause for same array.
4703
4704 2007-08-14  Vincent Celier  <celier@adacore.com>
4705
4706         * prj.ads, prj.adb: Update Project Manager to new attribute names for
4707         gprbuild.
4708         Allow all valid declarations in configuration project files
4709         (Reset): Initialize all tables and hash tables in the project tree data
4710         Major update of the Project Manager and of the project aware tools,
4711         including gprmake, so that the same sources in the GNAT repository
4712         can be used by gprbuild.
4713         (Slash_Id): Change type to be Path_Name_Type
4714         (Slash): Return a Path_Name_Type instead of a File_Name_Type
4715
4716         * prj-attr.ads, prj-attr.adb: Remove attributes no longer used by
4717         gprbuild.
4718         Update Project Manager to new attribute names for ghprbuild
4719         Allow all valid declarations in configuration project files
4720         Major update of the Project Manager and of the project aware tools,
4721         including gprmake, so that the same sources in the GNAT repository
4722         can be used by gprbuild.
4723
4724         * prj-com.ads: 
4725         Major update of the Project Manager and of the project aware tools,
4726         including gprmake, so that the same sources in the GNAT repository
4727         can be used by gprbuild.
4728
4729         * prj-dect.adb (Prj.Strt.Attribute_Reference): Set correctly the case
4730         insensitive flag for attributes with optional index.
4731         (Prj.Dect.Parse_Attribute_Declaration): For case insensitive associative
4732         array attribute, put the index in lower case.
4733         Update Project Manager to new attribute names for ghprbuild
4734         Allow all valid declarations in configuration project files
4735         Major update of the Project Manager and of the project aware tools,
4736         including gprmake, so that the same sources in the GNAT repository
4737         can be used by gprbuild.
4738
4739         * prj-env.ads, prj-env.adb: 
4740         Major update of the Project Manager and of the project aware tools,
4741         including gprmake, so that the same sources in the GNAT repository
4742         can be used by gprbuild.
4743         (Get_Reference): Change type of parameter Path to Path_Name_Type
4744
4745         * prj-ext.ads, prj-ext.adb (Initialize_Project_Path): Make sure, after
4746         removing '-' from the path to start with the first character of the
4747         next directory.
4748         Major update of the Project Manager and of the project aware tools,
4749         including gprmake, so that the same sources in the GNAT repository
4750         can be used by gprbuild.
4751         Major update of the Project Manager and of the project aware tools,
4752         including gprmake, so that the same sources in the GNAT repository
4753         can be used by gprbuild.
4754
4755         * prj-nmsc.ads, prj-nmsc.adb: 
4756         Update Project Manager to new attribute names for ghprbuild
4757         Allow all valid declarations in configuration project files
4758         (Search_Directories): Detect subunits that are specified with an
4759         attribute Body in package Naming. Do not replace a source/unit in the
4760         same project when the order of the source dirs are known. Detect
4761         duplicate sources/units in the same project when the order of the
4762         source dirs are not known.
4763         (Check_Ada_Name): Allow all identifiers that are not reserved words
4764         in Ada 95.
4765         Major update of the Project Manager and of the project aware tools,
4766         including gprmake, so that the same sources in the GNAT repository
4767         can be used by gprbuild.
4768         (Look_For_Sources): If the list of sources is empty, set the object
4769         directory of non extending project to nil.
4770         Change type of path name variables to be Path_Name_Type
4771         (Locate_Directory): Make sure that on Windows '/' is converted to '\',
4772         otherwise creating missing directories will fail.
4773
4774         * prj-attr-pm.adb, prj-tree.ads, prj-proc.ads, prj-proc.adb, 
4775         prj-part.ads, prj-part.adb:
4776         Major update of the Project Manager and of the project aware tools,
4777         including gprmake, so that the same sources in the GNAT repository
4778         can be used by gprbuild.
4779
4780         * prj-strt.adb (Prj.Strt.Attribute_Reference): Set correctly the case
4781         insensitive flag for attributes with optional index.
4782         (Prj.Dect.Parse_Attribute_Declaration): For case insensitive associative
4783         array attribute, put the index in lower case.
4784         (Parse_Variable_Reference): Allow the current project name to be used in
4785         the prefix of an attribute reference.
4786
4787         * prj-util.ads, prj-util.adb
4788         (Value_Of (for arrays)): New Boolean parameter Force_Lower_Case_Index,
4789         defaulted to False. When True, always check against indexes in lower
4790         case.
4791
4792         * snames.ads, snames.h, snames.adb: 
4793         Update Project Manager to new attribute names for gprbuild
4794         Allow all valid declarations in configuration project files
4795
4796 2007-08-14  Robert Dewar  <dewar@adacore.com>
4797             Ed Schonberg  <schonberg@adacore.com>
4798
4799         * opt.ads: Warning for non-local exception propagation now off by
4800         default
4801         New switch -gnatI to disable representation clauses
4802         Implement new pragma Implicit_Packing
4803
4804         * usage.adb: 
4805         Warning for non-local exception propagation now off by default
4806         Add warning for unchecked conversion of pointers wi different
4807         conventions.
4808         New switch -gnatI to disable representation clauses
4809
4810         * usage.adb: new switch -gnatyS
4811
4812         * gnat_ugn.texi: For the gnatcheck Non_Qualified_Aggregates rule add a
4813         note that aggregates of anonymous array types are not flagged.
4814         -gnatwc now includes membership tests optimized away
4815         -gnatw.x warnings are now off by default
4816         Added conditional compilation Appendix
4817         Add documentation of -gnatI
4818         Add documentation for new -gnatyS style check
4819         Update documentation about SAL and auto-init on Windows.
4820
4821         * gnat_rm.texi: 
4822         Add documentation for pragma Check_Name and 'Enabled attribute
4823         Document that Eliminate on dispatching operation is ignored
4824         Document IDE attributes VCS_Repository_Root and VCS_Patch_Root.
4825         Document pragma Main
4826         Document pragma Implicit_Packing
4827
4828         * sem_ch13.adb: Add warning for unchecked conversion of pointers wi
4829         different conventions
4830         New switch -gnatI to disable representation clauses
4831
4832         * switch-c.adb (Scan_Front_End_Switches): When a -gnat switch is not
4833         recognized, report the invalid characters including "-gnat" instead of
4834         just the first character in the switch.
4835         New switch -gnatI to disable representation clauses
4836         Set Warn_On_Object_Renames_Function true for -gnatg
4837
4838         * vms_data.ads: Add doc for /IGNORE_REP_CLAUSES
4839         Add STATEMENTS_AFTER_THEN_ELSE as synonym for -gnatyS
4840         Add qualifier /ADD_PROJECT_SEARCH_DIR= for different tools, equivalent
4841         to switch -aP (add directory to project search dir).
4842
4843         * par-prag.adb: Implement new pragma Implicit_Packing
4844
4845         * sem_prag.adb (Analyze_Pragma, case Complex_Representation): Mark the
4846         type as having a non-standard representation, to force expansion on
4847         conversion to related types.
4848         (Analyze_Pragma): Warn on misspelled pragma
4849         (Analyze_Pragma, case Convention_Identifier): Fix checking of second arg
4850         Ensure consistent use of # in error messages
4851         Implement pragma Implicit_Packing
4852
4853 2007-08-14  Olivier Hainque  <hainque@adacore.com>
4854             Eric Botcazou  <ebotcazou@adacore.com>
4855
4856         * targtyps.c (get_target_maximum_default_alignment): New function.
4857         Maximum alignment
4858         that the compiler might choose by default for a type or object.
4859         (get_target_default_allocator_alignment): New function. Alignment known
4860         to be honored by the target default allocator.
4861         (get_target_maximum_allowed_alignment): New function. Maximum alignment
4862         we might accept for any type or object on the target.
4863         (get_target_maximum_alignment): Now synonym of maximum_default_alignment
4864
4865         * gigi.h (get_target_maximum_default_alignment): Declare new function.
4866         (get_target_default_allocator_alignment): Likewise.
4867         (get_target_maximum_allowed_alignment): Likewise.
4868
4869         PR ada/19037
4870         * decl.c (gnat_to_gnu_entity) <object>: Except for the renaming of the
4871         result of a function call, first try to use a stabilized reference for
4872         a constant renaming too.
4873         (validate_alignment): Use target_maximum_allowed_alignment instead of
4874         MAX_OFILE_ALIGNMENT as the upper bound to what we accept.
4875         (gnat_to_gnu_entity): Use common nodes directly.
4876         (gnat_to_gnu_entity) <object>: Pick the values of the type to annotate
4877         alignment and size for the object.
4878         (lvalue_required_p): Handle N_Parameter_Association like N_Function_Call
4879         and N_Procedure_Call_Statement.
4880         (takes_address): Rename to lvalue_required_p, add third parameter
4881         'aliased' and adjust recursive calls.
4882         <N_Indexed_Component>: Update 'aliased' from the array type.
4883         <N_Selected_Component>: New case.
4884         <N_Object_Renaming_Declaration>: New Likewise.
4885         (Identifier_to_gnu): Adjust for above changes.
4886         (maybe_stabilize_reference) <CONST_DECL>: New case.
4887
4888         * utils2.c (build_binary_op) <ARRAY_RANGE_REF>: Look through conversion
4889         between type variants.
4890         (build_simple_component_ref): Likewise.
4891         (build_call_alloc_dealloc): Use target_default_allocator_alignment
4892         instead of BIGGEST_ALIGNMENT as the threshold to trigger the super
4893         aligning type circuitry for allocations from the default storage pool.
4894         (build_allocator): Likewise.
4895         (build_simple_component_ref): Manually fold the reference for a
4896         constructor if the record type contains a template.
4897
4898         * utils.c (value_zerop): Delete.
4899         (gnat_init_decl_processing): Emit debug info for common types.
4900         (rest_of_record_type_compilation): If a union contains a field
4901         with a non-constant qualifier, treat it as variable-sized.
4902         (finish_record_type): Give the stub TYPE_DECL a name.
4903         (rest_of_record_type_compilation): Likewise.
4904         (convert) <CONSTRUCTOR>: New case.  Build a new constructor if
4905         types are equivalent array types.
4906         (create_field_decl): Claim fields of any ARRAY_TYPE are addressable,
4907         even if the type is not passed by reference.
4908         (static_ctors, static_dtors): Delete.
4909         (end_subprog_body): Do not record constructors and destructors.
4910         (build_global_cdtor): Delete.
4911         (gnat_write_global_declarations): Do not call build_global_cdtor.
4912
4913         * lang-spARGET_VXWORKS_RTP is defined, append -mrtp when
4914         -fRTS=rtp is specified.
4915         If CONFIG_DUAL_EXCEPTIONS is 1, append -fsjlj when -fRTS=sjlj is
4916         specified.
4917
4918         * misc.c (gnat_init_gcc_eh): Use __gnat_eh_personality_sj for the name
4919         of the personality function with SJLJ exceptions.
4920
4921         * raise-gcc.c (PERSONALITY_FUNCTION): Use __gnat_eh_personality_sj for
4922         the name of the personality function with SJLJ exceptions.
4923
4924 2007-08-14  Robert Dewar  <dewar@adacore.com>
4925             Ed Schonberg  <schonberg@adacore.com>
4926
4927         * par.ads, par.adb: Improve handling of extra right parens.
4928         (Par): Remove flag From_Limited_With_Clause.
4929
4930         * par-util.adb, par-ch3.adb: Improve error recovery for bad constraint
4931         Improve handling of extra right parens.
4932
4933 2007-08-14  Robert Dewar  <dewar@adacore.com>
4934
4935         * par-tchk.adb (TF_Semicolon): Improve error recovery
4936
4937 2007-08-14  Robert Dewar  <dewar@adacore.com>
4938             Ed Schonberg  <schonberg@adacore.com>
4939
4940         * sem_attr.ads, sem_attr.adb (Analyze_Attribute, case Value): For
4941         enumeration type, mark all literals as referenced.
4942         (Eval_Attribute, case 'Image): If the argument is an enumeration
4943         literal and names are available, constant-fold but mark nevertheless as
4944         non-static.
4945         Clean up function names.
4946         (Name_Modifies_Prefix): Rename to Name_Implies_Lvalue_Prefix. Clarify
4947         comment.
4948         (Requires_Simple_Name_Prefix): Removed.
4949
4950 2007-08-14  Robert Dewar  <dewar@adacore.com>
4951             Ed Schonberg  <schonberg@adacore.com>
4952
4953         * sem_ch11.adb: Improved warnings for unused variables
4954
4955         * sem_ch3.ads, sem_ch3.adb (Build_Derived_Record_Type): If the ancestor
4956         is a synchronized interface, the derived type is limited.
4957         (Analyze_Object_Declaration): Mark the potential coextensions in the
4958         definition and expression of an object declaration node.
4959         (Build_Derived_Type): For the completion of a private type declaration
4960         with a derived type declaration, chain the parent type's representation
4961         items to the last representation item of the derived type (not the
4962         first one) if they are not present already.
4963         (Analyze_Object_Declaration, Constant_Redeclaration): Allow incomplete
4964         object declaration of forward references to tags.
4965         (Access_Subprogram_Declaration): In Ada2005, anonymous access to
4966         subprogram types can appear as access discriminants of synchronized
4967         types.
4968         (OK_For_Limited_Init_In_05): The initialization is legal is it is a call
4969         given in prefixed form as a selected component.
4970         (Process_Discriminants): If not all discriminants have defaults, place
4971         error message on a default that is present.
4972         (Analyze_Private_Extension_Declaration): Diagnose properly an attempt to
4973         extend a synchronized tagged type.
4974         Improved warnings for unused variables
4975         (Is_Visible_Component): Fix a visibility hole on a component inherited
4976         by a private extension when parent is itself declared as a private
4977         extension, and the derivation is in a child unit.
4978         (Find_Hidden_Interface): Move spec from the package body.
4979
4980 2007-08-14  Robert Dewar  <dewar@adacore.com>
4981             Ed Schonberg  <schonberg@adacore.com>
4982
4983         * sem_ch5.adb: Improve warnings on redundant assignments
4984
4985         * sem_util.ads, sem_util.adb: (Is_Variable): Add defense against junk
4986         parameter
4987         (Is_Synchronized_Tagged_Type): New subprogram that returns true
4988         in case of synchronized tagged types (AARM 3.9.4 (6/2)).
4989         (Safe_To_Capture_Value): Can now return True for constants, even if Cond
4990         is set to False. Improves handling of Known_[Not_]Null.
4991         (Wrong_Type): Special case address arithmetic attempt
4992         (Collect_Abstract_Interfaces): Add new formal to allow collecting
4993         abstract interfaces just using the partial view of private types.
4994         (Has_Abstract_Interfaces): Add new formal to allow checking types
4995         covering interfaces using the partial view of private types.
4996         (Is_Fully_Initialized_Type): Special VM case for uTag component. This
4997         component still needs to be defined in this case, but is never
4998         initialized as VMs are using other dispatching mechanisms.
4999         (Abstract_Interface_List): For a protected type, use base type to get
5000         proper declaration.
5001         Improve warnings on redundant assignments
5002         (Is_Variable): Handle properly an implicit dereference of a prefixed
5003         function call.
5004         (Build_Actual_Subtype): If this is an actual subtype for an
5005         unconstrained formal parameter, use the sloc of the body for the new
5006         declaration, to prevent anomalises in the debugger.
5007
5008 2007-08-14  Robert Dewar  <dewar@adacore.com>
5009
5010         * sem_elim.adb (Set_Eliminated): Ignore pragma Eliminate for
5011         dispatching operation
5012
5013 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
5014             Gary Dismukes  <dismukes@adacore.com>
5015
5016         * exp_aggr.ads, 
5017         exp_aggr.adb (Convert_Aggr_In_Allocator): Use Insert_Actions to place
5018         expanded aggregate code before allocator, and ahead of declaration for
5019         temporary, to prevent access before elaboration when the allocator is
5020         an actual for an access parameter.
5021         (Is_Static_Dispatch_Table_Aggregate): Handle aggregates initializing
5022         the TSD and the table of interfaces.
5023         (Convert_To_Assignments): Augment the test for delaying aggregate
5024         expansion for limited return statements to include the case of extended
5025         returns, to prevent creation of an unwanted transient scope.
5026         (Is_Static_Dispatch_Table_Aggregate): New subprogram.
5027         (Expand_Array_Aggregate): Handle aggregates associated with
5028         statically allocated dispatch tables.
5029         (Expand_Record_Aggregate): Handle aggregates associated with
5030         statically allocated dispatch tables.
5031         (Gen_Ctrl_Actions_For_Aggr): Generate a finalization list for allocators
5032         of anonymous access type.
5033
5034 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
5035
5036         * exp_ch5.adb (Expand_Assign_Array): If source or target of assignment
5037         is a variable that renames a slice, use the variable itself in the
5038         expannsion when the renamed expression itself may be modified between
5039         the declaration of the renaming and the array assignment.
5040
5041 2007-08-14  Jerome Guitton  <guitton@adacore.com>
5042
5043         * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb, 
5044         s-taprop-hpux-dce.adb, s-taprop-dummy.adb, s-taprop-solaris.adb, 
5045         s-taprop-vms.adb, s-taprop-posix.adb (Continue_Task, Stop_All_Tasks):
5046         New functions; dummy implementations.
5047
5048         * s-osinte-vxworks.ads (Task_Stop, Task_Cont, Int_Lock, Int_Unlock): New
5049         functions, used to implement the multi-tasks mode routines on VxWorks.
5050
5051         * s-osinte-vxworks.adb, s-osinte-vxworks6.adb (Task_Cont, Task_Stop):
5052         New functions, thin
5053         binding to the VxWorks routines which have changed between VxWorks 5
5054         and 6.
5055         (Int_Lock, Int_Unlock): New function, thin binding to kernel routines
5056         which are not callable from a RTP.
5057
5058         * s-taprop-vxworks.adb (Stop_All_Tasks, Continue_Task): New functions,
5059         implemented for the multi-tasks mode on VxWorks 5 and 6.
5060
5061         * s-taprop.ads (Stop_All_Tasks, Continue_Task): New functions.
5062
5063         * s-tasdeb.ads, s-tasdeb.adb (Continue_All_Tasks, Stop_All_Tasks): New
5064         functions.
5065
5066 2007-08-14  Vincent Celier  <celier@adacore.com>
5067
5068         * clean.adb, fmap.adb, sinput-p.adb, sinput-p.ads, gnatcmd.adb, 
5069         gnatname.adb, makeutl.ads, makeutl.adb, makegpr.adb, mlib-tgt-vms.adb
5070         mlib-tgt-darwin.adb, mlib-tgt-lynxos.adb, mlib-prj.adb, mlib-tgt.adb, 
5071         mlib-tgt.ads, mlib-tgt-irix.adb mlib-tgt-hpux.adb, mlib-tgt-linux.adb, 
5072         mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, 
5073         mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb, mlib-tgt-aix.adb,
5074         mlib-tgt-tru64.adb, mlib.ads, mlib.adb (Create_Sym_Links): New
5075         procedure.
5076         (Major_Id_Name): New function.
5077         mlib-tgt.ads/mlib.tgt.adb:
5078         (Library_Major_Minor_Id_Supported): New function, default returns True
5079         Most mlib-tgt-*.adb that support shared libraries and symbolic links:
5080         (Build_Dynamic_Library): Add support for major/minor ids for shared libs
5081         Other mlib-tgt-*.adb (aix, mingw, vms, vxworks, xi):
5082         Implementation of Library_Major_Minor_Id_Supported returns False
5083         clean.adb:
5084         (Clean_Library_Directory): If major/minor ids are supported, clean all
5085         library files.
5086         Major update of the Project Manager and of the project aware tools,
5087         including gprmake, so that the same sources in the GNAT repository
5088         can be used by gprbuild.
5089
5090 2007-08-14  Olivier Hainque  <hainque@adacore.com>
5091
5092         * system-solaris-x86.ads (ZCX_By_Default): Switch to True.
5093         (GCC_ZCX_Support): Switch to True.
5094         
5095         * s-intman-solaris.adb (Notify_Exception): Call
5096         Adjust_Context_For_Raise before raising, as expected for signal
5097         handlers in general.
5098         
5099         * s-intman-posix.adb (Notify_Exception): Remove declaration of
5100         Adjust_Context_For_Raise, moved to the spec of this unit to be visible
5101         to other implementation bodies.
5102         
5103         * s-intman.ads (Adjust_Context_For_Raise): Declare and import here, to
5104         be visible by multiple implementation bodies.
5105         
5106         * init.c [VMS section] (__gnat_handle_vms_condition): Adjust context
5107         only for conditions coming from hardware.
5108         [alpha-tru64 section] (__gnat_adjust_context_for_raise): Implement,
5109         adjustments to signal context prior to exception raise from signal
5110         handler.
5111         (__gnat_map_signal for VxWorks): Map SIGSEGV to Storage_Error in RTP
5112         mode.
5113         Solaris section: (__gnat_adjust_context_for_raise): New function.
5114         Implementation of the machine context adjustments to perform prior to
5115         raise from a signal handler. Version for both sparc and x86.
5116         (HAVE_GNAT_ADJUST_CONTEXT_FOR_RAISE): Define.
5117         (__gnat_error_handler): Expect a third argument, ucontext_t *. Adjust it
5118         prior to raising as expected for any handler, before possible nested
5119         faults to make sure all the contexts in a chain have been adjusted by
5120         the time we propagate.
5121
5122 2007-08-14  Pascal Obry  <obry@adacore.com>
5123
5124         * s-osinte-mingw.ads: Add support for Ada.Execution_Time on Windows.
5125         (SYSTEM_INFO): New record.
5126         (SetThreadIdealProcessor): New imported routine needed for supporting
5127         task_info pragma on Windows.
5128
5129         * s-taprop-mingw.adb (Enter_Task): Check if CPU number given in task
5130         info can be applied to the current host.
5131         (Create_Task): Set the ideal processor if information is present.
5132
5133         * s-tasinf-mingw.adb, s-tasinf-mingw.ads,
5134         a-exetim-mingw.adb, a-exetim-mingw.ads: New files.
5135
5136 2007-08-14  Olivier Hainque  <hainque@adacore.com>
5137
5138         * s-taprop-linux.adb (Get_Stack_Attributes): New subprogram. Fetch the
5139         stack size and initial stack pointer value for a given task.
5140         (Enter_Task): Get the stack attributes of the task we are entering and
5141         let the stack checking engine know about them.
5142
5143         * s-stchop.adb, s-stchop.ads (Notify_Stack_Attributes): New subprogram.
5144         Let the stack-checking engine know about the initial sp value and stack
5145         size associated with the current task.
5146         (Set_Stack_Info): If a stack base has been notified for the current
5147         task, honor it. Fallback to the previous less accurate method otherwise.
5148
5149         * s-stchop-vxworks.adb (Notify_Stack_Attributes): Dummy body.
5150
5151 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
5152
5153         * sem_ch10.adb: Create a limited view of an incomplete type, to make
5154         treatment of limited views uniform for all visible declarations in a
5155         limited_withed package.
5156         Set flag indicating that a subprogram body for a child unit has a
5157         generated spec.
5158         (Analyze_Compilation_Unit): If unit is a subprogram body that has no
5159         separate declaration, remove the unit name from visibility after
5160         compilation, so that environment is clean for subsequent compilations.
5161         (Install_Limited_Context_Clauses): Do not install a
5162         limited_private_with_clause unless the current unit is a body or a
5163         private child unit.
5164         (Analyze_Subunit, Install_Parents): Treat generic and non-generic units
5165         in the same fashion.
5166         (Install_Limited_Withed_Unit): Do not install a limited with clause if
5167         it applies to the declaration of the current package body.
5168         (Remove_Private_With_Clauses): If there is a regular with_clause for
5169         the unit, delete Private_With_Clause from context, to prevent improper
5170         hiding when processing subsequent nested packages and instantiations.
5171
5172 2007-08-14  Jose Ruiz  <ruiz@adacore.com>
5173
5174         * adaint.c (__gnat_is_absolute_path): For VxWorks systems we accept
5175         dir/file, device:/dir/file, and device:drive_letter:/dir/file as
5176         representing absolute path names.
5177         __gnat_set_file_time_name [VMS]: Fix some 64/32 bit issues.
5178
5179         * cstreams.c (__gnat_full_name for VxWorks): Use
5180         __gnat_is_absolute_path to detect whether we need to add the current
5181         directory to normalize the path.
5182
5183 2007-08-14  Javier Miranda  <miranda@adacore.com>
5184
5185         * a-tags.ads, 
5186         a-tags.adb (Displace): Associate a message with the raised CE
5187         exception.
5188         (To_Addr_Ptr, To_Address, To_Dispatch_Table_Ptr,
5189         To_Object_Specific_Data_Ptr To_Predef_Prims_Ptr,
5190         To_Tag_Ptr, To_Type_Specific_Data_Ptr): Moved here from the package
5191         spec.
5192         (Default_Prim_Op_Count): Removed.
5193         (IW_Membership, Get_Entry_Index, Get_Offset_Index, Get_Prim_Op_Kind,
5194         Register_Tag, Set_Entry_Index, Set_Offset_To_Top, Set_Prim_Op_Kind):
5195         Remove pragma Inline_Always.
5196
5197         * rtsfind.ads (Default_Prim_Op_Count): Removed
5198         (Max_Predef_Prims): New entity
5199         (RE_Expanded_Name): Removed
5200         (RE_HT_Link): Removed
5201         (RE_Iface_Tag): Remmoved
5202         (RE_Ifaces_Table): Removed
5203         (RE_Interfaces_Array): Removed
5204         (RE_Interface_Data_Element): Removed
5205         (RE_Nb_Ifaces): Removed
5206         (RE_RC_Offset): Removed
5207         (RE_Static_Offset_To_Top): Removed
5208
5209         * exp_atag.ads, exp_atag.adb (Build_Inherit_Prims): Addition of a new
5210         formal.
5211         (Build_Inherit_Predefined_Prims): Replace occurrences of Default_
5212         Prim_Op_Count by Max_Predef_Prims.
5213
5214 2007-08-14  Thomas Quinot  <quinot@adacore.com>
5215             Vincent Celier  <celier@adacore.com>
5216
5217         * binde.adb (Elab_All_Links): Remove unnecessary call to
5218         Generic_Separately_Compiled (if a unit satisfies this predicate, there
5219         won't be an associated Afile).
5220         (Elab_All_Links): Fail if a referenced unit cannot be found
5221
5222         * bindgen.adb: 
5223         Fix comments in bindgen regarding consistency checks done in Bcheck:
5224         the checks are made across units within a partition, not across several
5225         partitions.
5226         Fix generation of C binder file for VxWorks.
5227
5228         * lib.ads, lib.adb (Generic_Separately_Compiled): Rename to
5229         Generic_May_Lack_ALI, more descriptive of the current use of the
5230         predicate, and update documentation.
5231
5232         * lib-writ.ads, lib-writ.adb (Write_With_Lines): Minor code
5233         reorganization and documentation update for the case of predefined
5234         library generics (for which we do not reference an Afile).
5235
5236 2007-08-14  Robert Dewar  <dewar@adacore.com>
5237
5238         * s-intman-irix.adb, s-osinte-irix.adb, s-osinte-irix.ads,
5239         s-proinf-irix-athread.ads, s-osinte-hpux-dce.adb, s-osinte-hpux-dce.ads,
5240         s-parame-hpux.ads, s-intman-dummy.adb, s-tasinf-solaris.adb,
5241         s-tasinf-solaris.ads, s-asthan-vms-alpha.adb, s-inmaop-vms.adb,
5242         s-intman-vms.adb, s-intman-vms.ads, s-osprim-mingw.adb,
5243         s-parame-vms-restrict.ads, s-parame-ae653.ads, s-intman-vxworks.ads,
5244         s-intman-vxworks.ads, s-intman-vxworks.adb, s-parame-vxworks.ads,
5245         s-tfsetr-vxworks.adb, s-interr.adb, s-interr.ads, a-tasatt.adb,
5246         exp_ch13.adb, s-htable.ads, s-imgboo.ads, s-imglli.ads, s-imgllu.ads,
5247         s-imguns.ads, g-eacodu.adb, par-ch12.adb, s-stache.ads, s-stausa.adb,
5248         s-poosiz.adb, s-parame.ads, s-mastop.ads, s-osinte-darwin.ads,
5249         a-chtgke.adb, s-asthan-vms-alpha.adb, s-parame-vms-alpha.ads,
5250         s-parame-vms-ia64.ads, s-parame-vxworks.adb, s-except.ads,
5251         g-altcon.adb: Minor reformatting
5252
5253         ada-tree.h: Delete empty line.
5254
5255         ali.ads: Minor reformatting
5256         Clarification of comments.
5257         Minor spelling correction
5258
5259         * exp_dbug.adb: Add Warnings Off to suppress new warning
5260
5261         * a-witeio.adb (Write): Add Warnings (Off) for unneeded IN OUT mode
5262         formal
5263
5264         * a-strunb.adb (Set_Unbounded_String): Avoid memory leak by freeing old
5265         value
5266
5267         * a-textio.adb (Write): Remove an unnecessary IN OUT mode from
5268
5269         * a-textio.ads: Reorder the standard input/output/error declarations
5270         for consistency.
5271
5272         * g-dirope.adb, g-dirope.ads: Change Dir to mode IN for Open call
5273
5274         * par-ch2.adb: Recognize RM specially in errout
5275         Change 'R'M to RM in all error messages
5276
5277         * scng.adb: Recognize RM specially in errout
5278
5279         * sem.ads, sem.adb, exp_strm.adb, exp_ch5.ads, expander.adb: Rename
5280         N_Return node to be N_Simple_Return, to reflect Ada 2005 terminology.
5281
5282         * s-direio.adb: Add missing routine header box.
5283
5284         * sem_attr.ads: Add ??? comments
5285
5286         * sem_eval.adb: Recognize RM specially in errout
5287         Change 'R'M to RM in all error messages
5288
5289         * sem_maps.adb, sem_maps.ads: Remove some unnecessary IN OUT modes
5290
5291         * s-tasinf.ads: Fix minor comment typo.
5292
5293         * a-cihama.adb: Minor comment addition
5294
5295         * a-ztexio.adb (Write): Add Warnings (Off) for unneeded IN OUT mode
5296         formal
5297
5298         * s-tasinf-tru64.ads: Fix minor comment typo.
5299
5300         * itypes.ads: Comment update.
5301
5302         * ali-util.adb: Remove Generic_Separately_Compiled guard, not needed
5303         anymore.
5304
5305         * argv.c: Added protection against null gnat_argv and gnat_envp.
5306
5307         * bcheck.adb (Check_Consistency): Use correct markup character ({) in
5308         warning message when Tolerate_Consistency_Errors is True.
5309
5310         * cstand.adb (Create_Standard): Do not call Init_Size_Alignment for
5311         Any_Id, as this subprogram is only applicable to *type* entities (it
5312         sets RM_Size). Instead initialize just Esize and Alignment.
5313
5314 2007-08-14  Bob Duff  <duff@adacore.com>
5315
5316         * a-cihama.ads, a-cidlli.ads, a-chtgop.ads, a-chtgop.adb, a-cdlili.ads, 
5317         a-cihase.adb, a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads, 
5318         a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-ciorse.ads, a-cohama.ads, 
5319         a-cohata.ads, a-convec.adb, a-coinve.ads, a-coinve.adb, a-convec.ads,
5320         a-coorse.ads (Next): Applied pragma Inline.
5321         Make all Containers packages Remote_Types (unless they are already
5322         Pure).
5323         (Previous): applied pragma Inline
5324         (Elements_Type): is now a record instead of an array
5325
5326 2007-08-14  Thomas Quinot  <quinot@adacore.com>
5327
5328         * table.adb, g-table.adb, g-dyntab.adb (Append): Reimplement in terms
5329         of Set_Item.
5330         (Set_Item): When the new item is an element of the currently allocated
5331         table passed by reference, save a copy on the stack if we're going
5332         to reallocate. Also, in Table.Set_Item, make sure we test the proper
5333         variable to determine whether to call Set_Last.
5334
5335         * sinput-d.adb, sinput-l.adb, stringt.adb, switch-m.adb,
5336         symbols-vms.adb, symbols-processing-vms-alpha.adb,
5337         symbols-processing-vms-ia64.adb, sem_elab.adb, repinfo.adb: Replace
5338         some occurrences of the pattern
5339            T.Increment_Last;
5340            T.Table (T.Last) := Value;
5341         with a cleaner call to
5342            T.Append (Value);
5343
5344 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
5345             Gary Dismukes  <dismukes@adacore.com>
5346             Thomas Quinot  <quinot@adacore.com>
5347
5348         * sem_ch12.ads, sem_ch12.adb (Instantiate_Type): If the formal is a
5349         derived type with interface progenitors use the analyzed formal as the
5350         parent of the actual, to create renamings for all the inherited
5351         operations in Derive_Subprograms.
5352         (Collect_Previous_Instances): new procedure within of
5353         Load_Parent_Of_Generic, to instantiate all bodies in the compilation
5354         unit being loaded, to ensure that the generation of global symbols is
5355         consistent in different compilation modes.
5356         (Is_Tagged_Ancestor): New function testing the ancestor relation that
5357         takes progenitor types into account.
5358         (Validate_Derived_Type_Instance): Enforce the rule of 3.9.3(9) by
5359         traversing over the primitives of the formal and actual types to locate
5360         any abstract subprograms of the actual type that correspond to a
5361         nonabstract subprogram of the formal type's ancestor type(s), and issue
5362         an error if such is found.
5363         (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation,
5364         Instantiate_Package_Body, Instantiate_Subprogram_Body):
5365         Remove bogus guard around calls to Inherit_Context.
5366         (Reset_Entity): If the entity is the selector of a selected component
5367         that denotes a named number, propagate constant-folding to the generic
5368         template only if the named number is global to the generic unit.
5369         (Set_Instance_Env): Only reset the compilation switches when compiling
5370         a predefined or internal unit.
5371
5372 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
5373
5374         * sem_ch4.adb (Try_Class_Wide_Operation): use base type of first
5375         parameter to determine whether operation applies to the prefix.
5376         (Complete_Object_Operation): If actual has an access type and
5377         controlling formal is not an in_parameter, reject the actual if it is
5378         an access_to_constant type.
5379         (Try_Primitive_Operation): If the type of the prefix is a formal tagged
5380         type, the candidate operations are found in the scope of declaration of
5381         the type, because the type has no primitive subprograms.
5382         (Analyze_Selected_Component): If prefix is class-wide, and root type is
5383         a private extension, only examine visible components before trying to
5384         analyze as a prefixed call.
5385         Change Entity_List to Type_To_Use, for better readability.
5386         (Has_Fixed_Op): Use base type when checking whether the type of an
5387         operator has a user-defined multiplication/division
5388         (Check_Arithmetic_Pair): Use Ada 2005 rules to remove ambiguities when
5389         user-defined operators are available for fixed-point types.
5390
5391 2007-08-14  Thomas Quinot  <quinot@adacore.com>
5392             Ed Schonberg  <schonberg@adacore.com>
5393
5394         * sem_cat.ads, sem_cat.adb (Has_Stream_Attribute_Definition): New
5395         formal At_Any_Place indicating, when True, that we want to test for
5396         availability of the stream attribute at any place (as opposed to the
5397         current visibility context only).
5398         (Missing_Read_Write_Attributes): A stream attribute is missing for the
5399         purpose of enforcing E.2.2(8) only if it is not available at any place.
5400         Take into account the Ada2005 pragma Has_Preelaborable_Initialization
5401         when checking the legality of an extension aggregate in a preelaborable
5402         package. Treat the literal null as a valid default expression in a
5403         component declaration for a type with preelaborable initialization.
5404         A limited interface is a legal progenitor for the designated type of a
5405         remote access to class-wide type.
5406
5407 2007-08-14  Thomas Quinot  <quinot@adacore.com>
5408             Ed Schonberg  <schonberg@adacore.com>
5409
5410         * sem_ch8.ads, sem_ch8.adb (Find_Type, case of a 'Base attribute
5411         reference): Use correct entity as denoted entity for the selector of
5412         the rewritten node.
5413         (Find_Direct_Name): Add comment about Generate_Reference incorrectly
5414         setting the Referenced_As_LHS flag for entities that are implicitly
5415         dereferenced.
5416         (Find_Type): If the type is an internally generated incomplete type,
5417         mark the full view as referenced, to prevent spurious warnings.
5418         (Find_Selected_Component, Has_Components): Handle properly non-limited
5419         views that are themselves incomplete types.
5420         Handle interfaces visible through limited-with clauses.
5421         (Analyze_Subprogram_Renaming): Disambiguate and set the entity of a
5422         subprogram generic actual for which we have generated a renaming.
5423         Warn when the renaming introduces a homonym of
5424         the renamed entity, and the renamed entity is directly visible.
5425
5426 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
5427             Hristian Kirtchev  <kirtchev@adacore.com>
5428
5429         * sem_res.adb (Resolve_Allocator): Propagate any coextensions that
5430         appear in the subtree to the current allocator if it is not a static
5431         coextension.
5432         (Resolve_Allocator): Perform cleanup if resolution has determined that
5433         the allocator is not a coextension.
5434         (Resolve): Skip an interpretation hidden by an abstract operator only
5435         when the type of the interpretation matches that of the context.
5436         (Resolve): When looping through all possible interpretations of a node,
5437         do not consider those that are hidden by abstract operators.
5438         (Resolve_Actuals): When verifying that an access to class-wide object
5439         is an actual  for a controlling formal, ignore anonymous access to
5440         subprograms whose return type is an access to class_wide type.
5441         (Resolve_Slice): If the prefix of the slice is a selected component
5442         whose type depends on discriminants, build its actual subtype before
5443         applying range checks on the bounds of the slice.
5444         (Valid_Conversion): In an instance or inlined body, compare root types,
5445         to prevent anomalies between private and public views.
5446         (Resolve): Improve error message for ambiguous fixed multiplication
5447         expressions that involve universal_fixed multiplying operations.
5448
5449 2007-08-14  Javier Miranda  <miranda@adacore.com>
5450             Hristian Kirtchev  <kirtchev@adacore.com>
5451
5452         * exp_ch9.adb (Build_Protected_Entry): Propagate the original source
5453         location to allow the correct generation of errors in case of
5454         restrictions applied to the expanded code.
5455         (Expand_Entry_Barrier): Remove all generated renamings for a barrier
5456         function if the condition does not reference them.
5457         (Expand_Entry_Body_Declarations): Mark the index constant as having a
5458         valid value.
5459
5460 2007-08-14  Thomas Quinot  <quinot@adacore.com>
5461             Pablo Oliveira  <oliveira@adacore.com>
5462
5463         * exp_dist.adb (PolyORB_Support.Build_TypeCode_Function): When creating
5464         typecode parameters for a union (in a variant record), remove
5465         extraneous layer of Any wrapping for member label.
5466         (Expand_Receiving_Stubs_Bodies): For an RCI package body that has
5467         elabration statements, register the package with the name server
5468         at the beginning, not at the end, of the elaboration statements so
5469         that they can create remote access to subprogram values that designate
5470         remote subprograms from the package.
5471
5472 2007-08-14  Hristian Kirtchev  <kirtchev@adacore.com>
5473
5474         * g-catiio.adb (Image): For the case of %s, use Ada.Calendar.Time
5475         values to compute the number of seconds since the Unix Epoc in order to
5476         account for Daylight Savings Time. Perform special processing for dates
5477         that are earlier than the Unix Epoc to obtain a negative number.
5478
5479 2007-08-14  Emmanuel Briot  <briot@adacore.com>
5480
5481         * g-comlin.adb (Getopt): Fix handling of "*" switch when not collapsing
5482         switches.
5483
5484 2007-08-14  Eric Botcazou  <ebotcazou@adacore.com>
5485
5486         * gnatlink.adb (Gnatlink): Pass switches to the linker even if the
5487         binder-generated file is not in Ada.
5488         Pass -mrtp to the linker if it is GCC and --RTS=rtp has been
5489         recorded in the ALI file.
5490         Pass -fsjlj to the linker if it is GCC and --RTS=sjlj has been recorded.
5491
5492 2007-08-14  Vincent Celier  <celier@adacore.com>
5493
5494         * gnatls.adb: (Corresponding_Sdep_Entry): Always return a value
5495         (Output_Source): Do nothing if parameter is No_Sdep_Id
5496
5497         * make.adb (Gnatmake): Do not rebuild an archive simply because a
5498         shared library it imports has a later time stamp.
5499         (Check): Resolve the symbolic links in the path name of the object
5500         directory.
5501         Check that the ALI file is in the correct object directory
5502         Check if a file name does not correspond to the mapping of units
5503         to file names.
5504         (Display_Version): New procedure
5505         (Initialize): Process switches --version and --help
5506         Use type Path_Name_Type for path name
5507
5508 2007-08-14  Paul Hilfinger  <hilfinger@adacore.com>
5509
5510         * impunit.adb: Re-organize System.Random_Numbers and
5511         GNAT.Random_Numbers and add to builds.
5512
5513         * Makefile.rtl: Add s-rannum.ad* and g-rannum.ad*, a-assert*
5514
5515         * s-rannum.ads, s-rannum.adb, g-rannum.ads, g-rannum.adb: New files.
5516
5517         * a-assert.ads, a-assert.adb: New files.
5518
5519 2007-08-14  Gary Dismukes  <dismukes@adacore.com>
5520
5521         * layout.adb (Layout_Type): In the case of access-to-subprogram types,
5522         if AAMP_On_Target is True, then the size of the type encompasses two
5523         addresses (a static link and a subprogram address), except in the case
5524         of library-level access types.
5525
5526 2007-08-14  Vincent Celier  <celier@adacore.com>
5527
5528         * output.ads, output.adb (Write_Eol): Remove trailing spaces before
5529         writing the line.
5530         (Write_Eol_Keep_Blanks): New procedure to write a line, including
5531         possible trailing spaces.
5532         (Output_Source_Line): Call Write_Eol_Keep_Blanks to output a source line
5533
5534 2007-08-14  Javier Miranda  <miranda@adacore.com>
5535
5536         * par-ch6.adb (P_Formal_Part): Fix wrong error message associated with
5537         null-excluding access types.
5538
5539 2007-08-14  Javier Miranda  <miranda@adacore.com>
5540
5541         * sem_ch9.adb (Check_Interfaces): New subprogram that factorizes code
5542         that is common to Analyze_Protected_Type and Analyze_Task_Type. In case
5543         of private types add missing check on matching interfaces in the
5544         partial and full declarations.
5545         (Analyze_Protected_Type): Code cleanup.
5546         (Analyze_Task_Type): Code cleanup.
5547
5548 2007-08-14  Javier Miranda  <miranda@adacore.com>
5549
5550         * sem_disp.adb (Check_Dispatching_Operation): Do not emit warning on a
5551         generated interface thunk.
5552
5553 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
5554
5555         * s-ficobl.ads: Declare AFCB as a tagged incomplete type, to prevent
5556         obsolescent warning on application of 'Class to an incomplete type.
5557
5558         * s-finroo.ads: Declare Root_Controlled as a tagged incomplete type, to
5559         prevent obsolescent warning on application of 'Class to an incomplete
5560         type.
5561
5562 2007-08-14  Pascal Obry  <obry@adacore.com>
5563
5564         * s-fileio.adb (Is_Open): Add check for usability of the underlying
5565         file stream.
5566
5567 2007-08-14  Cyrille Comar  <comar@adacore.com>
5568
5569         * s-finimp.adb (Detach_From_Final_List): make this procedure idempotent
5570         since it is potentially used in cases implying double finalization of
5571         the same object.
5572
5573 2007-08-14  Jose Ruiz  <ruiz@adacore.com>
5574
5575         * s-tasini.adb (Get_Stack_Info): Move this function to
5576         System.Soft_Links.Tasking because it is common to the full and the
5577         restricted run times.
5578         (Init_RTS): Do not set the Get_Stack_Info soft link because it is done
5579         in SSL.Tasking.Init_Tasking_Soft_Links.
5580
5581         * s-solita.adb (Get_Stack_Info): Function moved from
5582         System.Tasking.Initialization because it is common to the full and the
5583         restricted run times.
5584         (Init_Tasking_Soft_Links): Set the tasking soft link for Get_Stack_Info.
5585
5586 2007-08-14  Arnaud Charlet  <charlet@adacore.com>
5587
5588         * s-tpobop.ads, s-tpobop.adb, s-tasren.ads, s-tasren.adb,
5589         s-taskin.ads (Requeue_With_Abort): Rename field With_Abort.
5590         (PO_Do_Or_Queue, Task_Do_Or_Queue, Requeue_Call): Remove With_Abort
5591         parameter.
5592
5593         * s-tassta.adb (Task_Wrapper): Increased value of the small overflow
5594         guard to 12K.
5595
5596 2007-08-14  Gary Dismukes  <dismukes@adacore.com>
5597
5598         * s-veboop.adb (SU): New named number initialized to
5599         System.Storage_Unit.
5600         (True_Val): The initialization expression is revised to use SU (=
5601         Storage_Unit) rather than assuming 8 for the component size of an
5602         unpacked Boolean array.
5603
5604 2007-08-14  Tristan Gingold  <gingold@adacore.com>
5605
5606         * tracebak.c: Use tb-ivms.c on OpenVMS Itanium.
5607
5608         * tb-ivms.c: New file.
5609
5610         * g-trasym-vms-ia64.adb: Fixed for OpenVMS version 8.2
5611
5612 2007-08-14  Geert Bosch  <bosch@adacore.com>
5613
5614         * i-forbla.ads, i-forbla.adb, a-ngcoar.adb, a-ngcoar.ads, i-forlap.ads,
5615         s-gearop.adb, s-gecobl.adb, s-gecobl.ads, s-gerela.adb, s-gerela.ads:
5616         Add required linker pragmas for automatically linking with the gnalasup
5617         linear algebra support library, and the systems math library.
5618         Rename cdot to cdotu and zdot to zdotu.
5619         Update header comment to describe purpose of package.
5620
5621 2007-08-14  Thomas Quinot  <quinot@adacore.com>
5622
5623         * exp_ch7.adb (Find_Final_List): For an anonymous access type that has
5624         an explicitly specified Associated_Final_Chain, use that list.
5625         (Expand_N_Package_Body): Build dispatch tables of library level tagged
5626         types.
5627         (Expand_N_Package_Declaration): Build dispatch tables of library level
5628         tagged types. Minor code cleanup.
5629
5630 2007-08-14  Vincent Celier  <celier@adacore.com>
5631
5632         * gnatchop.adb (Terminate_Program): Remove exception and use
5633         Types.Terminate_Program instead.
5634
5635         * osint.ads, osint.adb (Current_Exit_Status): New global variable
5636         (Find_Program_Name): Added protection against empty name.
5637         (OS_Exit_Through_Exception): New procedure
5638
5639         * s-os_lib.ads, s-os_lib.adb (OS_Exit): New procedure body
5640         (OS_Exit_Default): New procedure that contains the previous
5641         implementation of procedure OS_Exit.
5642         (Final_Value): Remove obsolete Interix stuff.
5643
5644 2007-08-14  Thomas Quinot  <quinot@adacore.com>
5645
5646         * g-socket.ads: Reorganize example code so that it also works on
5647         Windows XP.
5648
5649 2007-08-14  Tristan Gingold  <gingold@adacore.com>
5650
5651         * g-trasym.ads: AIX now supports symbolic backtraces.
5652
5653 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
5654
5655         * lib-load.adb (From_Limited_With_Chain): Always scan the stack of
5656         units being loaded to detect circularities. A circularity may be
5657         present even if the current chain of pending units to load starts from
5658         a limited_with_clause.
5659
5660         * lib-load.ads: Change profile of Load_Unit to use a with_clause
5661         rather than a boolean flag, in order to detect circularities in
5662         with_clauses.
5663
5664         * par-load.adb: Use current with_clause in calls to Load_Unit, rather
5665         than propagating the From_Limited_With flag, in order to handle
5666         properly circularities involving with_clauses.
5667
5668 2007-08-14  Nicolas Setton  <setton@adacore.com>
5669
5670         * link.c (FreeBSD): Add "const" keyword where needed, to eliminate
5671         warnings.
5672
5673 2007-08-14  Arnaud Charlet  <charlet@adacore.com>
5674
5675         * Makefile.in: GNATRTL_LINEARALGEBRA_OBJS: New variable holding objects
5676         to build for libgnala.
5677         libgnat: Add rules to build libgnala.a
5678         (LIBGNAT_TARGET_PAIRS for VxWorks): Remove s-osinte-vxworks.adb from
5679         target pairs of the VxWorks 6 kernel runtime, use it only for VxWorks 5.
5680         Add s-osinte-vxworks-kernel.adb to the target pairs of the
5681         kernel run-time lib for VxWorks 6, which would provide a different
5682         implementation for Task_Cont and Task_Stop than the VxWorks 5 version.
5683         x86-solaris section (EH_MECHANISM): Set to -gcc, as this port is now
5684         running ZCX by default.
5685         Add g-sttsne-locking to LynxOS version.
5686         Remove g-sttsne-vxworks.ads; use g-sttsne-locking.ads instead.
5687         On x86/darwin, use a-numaux-x86.ad? and system-darwin-x86.ads.
5688
5689         * system-darwin-x86.ads: New file.
5690
5691         * Make-lang.in: Delete files before copying onto them, so if they are
5692         read-only, the copy won't fail.
5693         Update dependencies
5694
5695 2007-08-14  Pascal Obry  <obry@adacore.com>
5696
5697         * mdll-fil.adb, * mdll.adb: Implement a more consistent libraries
5698         naming scheme.
5699
5700 2007-08-14  Vincent Celier  <celier@adacore.com>
5701
5702         * mlib-utl.adb (Gcc_Name): Change from constant String to String_Access
5703         (Gcc): Initialize Gcc_Name at the first call
5704
5705 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
5706
5707         * sem_ch7.adb (Analyze_Package_Specification): Do not install private
5708         with_clauses of the enclosing unit when analyzing the package
5709         specification of a nested instance.
5710
5711 2007-08-14  Hristian Kirtchev  <kirtchev@adacore.com>
5712
5713         * sinfo.ads, sinfo.adb (Is_Coextension, Set_Is_Coextension): Removed.
5714         (Is_Dynamic_Coextension, Set_Is_Dynamic_Coextension): New routines.
5715         Remove flag Is_Coextension. Add flag Is_Dynamic_Coextension. Update the
5716         layout of N_Allocator.
5717
5718 2007-08-14  Thomas Quinot  <quinot@adacore.com>
5719
5720         * rtsfind.adb (Check_RPC): Add PCS version check.
5721
5722         * gnatvsn.ads, gnatvsn.adb: Add PCS version.
5723         (Gnat_Free_Software): New function.
5724
5725         * sem_dist.ads, sem_dist.adb (Get_PCS_Version): New subprogram. Returns
5726         the PCS_Version value from s-parint, used to check that it is consistent
5727         with what exp_dist expects.
5728
5729         * s-parint.ads (PCS_Version): New entity for checking consistency
5730         between exp_dist and PCS.
5731
5732         * gen-soccon.c: (SO_REUSEPORT): New constant.
5733
5734 2007-08-14  Hristian Kirtchev  <kirtchev@adacore.com>
5735
5736         * a-calfor.adb (Image (Duration; Boolean)): Change type of local
5737         variable Sub_Second to Duration in order to accomodate a larger range
5738         of arithmetic operations.
5739
5740 2007-08-14  Bob Duff  <duff@adacore.com>
5741
5742         * g-sttsne-locking.ads: Move comments from spec to body.
5743         * g-sttsne-locking.adb: Move comments from spec to body.
5744         * g-sttsne-vxworks.ads: Removed.
5745         * g-sttsne-vxworks.adb: Removed.
5746
5747 2007-08-11  Ian Lance Taylor  <iant@google.com>
5748
5749         * misc.c (gnat_get_alias_set): Change return type to
5750         alias_set_type.
5751
5752 2007-08-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5753
5754         * decl.c, utils2.c: Fix whitespace in last change.
5755
5756 2007-08-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5757
5758         * decl.c (compare_field_bitpos): Constify.
5759         * utils2.c (compare_elmt_bitpos): Likewise.
5760
5761 2007-07-27  Aurelien Jarno  <aurelien@aurel32.net>
5762
5763         * s-osinte-kfreebsd-gnu.ads ((sigset_t_ptr): Removed, replaced by 
5764         anonymous access type.
5765         (pthread_sigmask): Now take an access sigset_t.
5766
5767 2007-07-05  Joel Sherrill  <joel.sherrill@oarcorp.com>
5768
5769         * s-osinte-rtems.ads: Correct prototype of pthread_sigmask.
5770         
5771 2007-06-21  Eric Botcazou  <ebotcazou@adacore.com>
5772
5773         PR tree-optimization/25737
5774         * misc.c (gnat_post_options): Do not force flag_tree_salias to 0.
5775
5776 2007-06-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5777
5778         * trans.c (Attribute_to_gnu): When subtracting an
5779         offset from a pointer, use POINTER_PLUS_EXPR with
5780         NEGATE_EXPR instead of MINUS_EXPR.
5781         (gnat_to_gnu): Likewise.
5782         * utils.c (convert): When converting between
5783         thin pointers, use POINTER_PLUS_EXPR and sizetype
5784         for the offset.
5785         * utils2.c (known_alignment): POINTER_PLUS_EXPR
5786         have the same semantics as PLUS_EXPR for alignment.
5787         (build_binary_op): Add support for the semantics of
5788         POINTER_PLUS_EXPR's operands.
5789         When adding an offset to a pointer, use POINTER_PLUS_EXPR.
5790
5791 2007-06-11  Rafael Avila de Espindola  <espindola@google.com>
5792
5793         * trans.c (Attribute_to_gnu): Use signed_or_unsigned_type_for instead
5794         of get_signed_or_unsigned_type.
5795         * misc.c (LANG_HOOKS_SIGNED_TYPE): Remove.
5796
5797 2007-06-11  Bob Duff  <duff@adacore.com>
5798             Thomas Quinot  <quinot@adacore.com>
5799
5800         * g-stsifd-sockets.adb (Create): Work around strange behavior of
5801         'bind' on windows that causes 'connect' to fail intermittently, by
5802         retrying the 'bind'.
5803         (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
5804
5805 2007-06-10  Duncan Sands  <baldrick@free.fr>
5806
5807         * decl.c (gnat_to_gnu_entity): Use pointers to dummy nodes, rather
5808         than to void, for the fields when making a new fat pointer type.
5809         (gnat_substitute_in_type): Now substitute_in_type.
5810         * gigi.h (gnat_substitute_in_type): Likewise.  Adjust recursive calls.
5811         * trans.c (gnat_gimplify_expr): Remove COMPONENT_REF kludge.
5812         * utils.c (update_pointer_to): Update fat pointers by updating the
5813         dummy node pointers used for the fields.
5814
5815 2007-06-06  Thomas Quinot  <quinot@adacore.com>
5816             Bob Duff  <duff@adacore.com>
5817
5818         * g-soccon-freebsd.ads, g-soccon-vxworks.ads:,
5819         g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads, 
5820         g-soccon-solaris.ads, g-soccon-vms.ads, g-soccon-tru64.ads:  Add new
5821         constant Thread_Blocking_IO, always True by default, set False
5822         on a per-runtime basis.
5823         (Need_Netdb_Buffer): New constant.
5824
5825         * g-stheme.adb, g-sttsne.ads, g-sttsne-locking.ads,
5826         g-sttsne-locking.adb, g-sttsne-vxworks.ads, g-sttsne-vxworks.adb: New
5827         files.
5828
5829         * g-socthi-vxworks.ads, g-socthi-vxworks.adb,
5830         g-socthi-vms.ads, g-socthi-vms.adb (Safe_Gethostbyname,
5831         Safe_Gethostbyaddr, Safe_Getservbyname, Safe_Getservbyport): Use new
5832         child package Task_Safe_NetDB
5833         (Host_Error_Messages): Add stub body.
5834         (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
5835
5836         * g-soccon-mingw.ads: Add Windows-specific constants.
5837         (Need_Netdb_Buffer): New constant.
5838         (GNAT.Sockets.Thin.C_Inet_Addr, Windows version): Remove useless Ada
5839         wrapper and import inet_addr(3) from the standard sockets library
5840         directly instead.
5841         (In_Addr): Add alignment clause.
5842         (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
5843
5844 2007-06-06  Robert Dewar  <dewar@adacore.com>
5845
5846         * a-taster.adb, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
5847         s-osinte-irix.ads, s-interr-sigaction.adb, s-mastop-irix.adb,
5848         s-osinte-hpux-dce.ads, s-osinte-interix.ads, s-osinte-solaris.ads,
5849         s-taspri-solaris.ads, s-inmaop-vms.adb, s-interr-vms.adb,
5850         s-mastop-vms.adb, s-osinte-vms.ads, s-tpopde-vms.adb,
5851         s-osinte-mingw.ads, s-interr-vxworks.adb, i-cstrea-vms.adb,
5852         a-diocst.adb, a-direio.adb, a-interr.adb, a-sequio.adb, a-siocst.adb,
5853         a-ssicst.adb, a-storio.adb, a-ststio.adb, a-stwima.adb, a-tasatt.adb,
5854         a-taside.adb, a-tiocst.adb, a-witeio.adb, a-wtcstr.adb, g-crc32.adb,
5855         g-dirope.adb, g-dyntab.adb, g-memdum.adb, g-regexp.adb, g-spipat.adb,
5856         g-spitbo.adb, g-string.adb, g-string.ads, g-table.adb, g-thread.adb,
5857         i-cobol.adb, i-cpoint.adb, i-cstrea.adb, i-cstrin.adb, i-pacdec.adb,
5858         s-addima.adb, s-arit64.adb, s-auxdec.adb, s-auxdec.ads,
5859         s-auxdec-vms_64.ads, s-carsi8.adb, s-carun8.adb, s-casi16.adb,
5860         s-casi32.adb, s-casi64.adb, s-caun16.adb, s-caun32.adb, s-caun64.adb,
5861         s-direio.adb, s-fileio.adb, s-finimp.ads, s-geveop.adb, s-imgenu.adb,
5862         s-pack03.adb, s-pack05.adb, s-pack06.adb, s-pack07.adb, s-pack09.adb,
5863         s-pack10.adb, s-pack11.adb, s-pack12.adb, s-pack13.adb, s-pack14.adb,
5864         s-pack15.adb, s-pack17.adb, s-pack18.adb, s-pack19.adb, s-pack20.adb,
5865         s-pack21.adb, s-pack22.adb, s-pack23.adb, s-pack24.adb, s-pack25.adb,
5866         s-pack26.adb, s-pack27.adb, s-pack28.adb, s-pack29.adb, s-pack30.adb,
5867         s-pack31.adb, s-pack33.adb, s-pack34.adb, s-pack35.adb, s-pack36.adb,
5868         s-pack37.adb, s-pack38.adb, s-pack39.adb, s-pack40.adb, s-pack41.adb,
5869         s-pack42.adb, s-pack43.adb, s-pack44.adb, s-pack45.adb, s-pack46.adb,
5870         s-pack47.adb, s-pack48.adb, s-pack49.adb, s-pack50.adb, s-pack51.adb,
5871         s-pack52.adb, s-pack53.adb, s-pack54.adb, s-pack55.adb, s-pack56.adb,
5872         s-pack57.adb, s-pack58.adb, s-pack59.adb, s-pack60.adb, s-pack61.adb,
5873         s-pack62.adb, s-pack63.adb, s-pooloc.adb, s-poosiz.adb, s-scaval.adb,
5874         s-sequio.adb, s-shasto.adb, s-stalib.ads, s-stratt.adb, s-strcom.adb,
5875         s-taasde.adb, s-tasdeb.adb, s-tasuti.ads, s-tataat.ads, s-tpoben.ads,
5876         s-valenu.adb, s-widenu.adb, s-wwdenu.adb, s-addope.adb, a-stzmap.adb,
5877         a-ztcstr.adb, a-ztexio.adb, s-osinte-linux-hppa.ads: Replace
5878         Unchecked_* by Ada.Unchecked_*
5879
5880 2007-06-06  Robert Dewar  <dewar@adacore.com>
5881
5882         * g-string.adb, s-proinf-irix-athread.adb, s-gloloc-mingw.adb,
5883         s-tfsetr-default.adb, gnatfind.adb, gnatxref.adb, gprep.adb,
5884         g-regexp.adb, g-regexp.ads, g-regpat.ads, g-tasloc.adb, g-tasloc.ads,
5885         output.adb, switch-m.ads, tree_in.ads, tree_io.ads, indepsw.ads,
5886         g-utf_32.adb, g-utf_32.ads, a-wichun.adb, a-wichun.ads, a-zchuni.adb,
5887         a-zchuni.ads: Replace GNAT.xxx by System.xxx when appropriate.
5888
5889         * s-utf_32.adb, s-utf_32.ads, s-os_lib.adb, s-os_lib.ads, s-regexp.adb,
5890         s-regexp.ads, s-regpat.adb, s-regpat.ads, s-string.adb, s-string.ads,
5891         s-tasloc.adb, s-tasloc.ads: New files.
5892
5893 2007-06-06  Bob Duff  <duff@adacore.com>
5894
5895         * g-expect-vms.adb: 
5896         (Send_Signal, Close): Raise Invalid_Process if the process id is invalid.
5897         * g-expect.ads, g-expect.adb (Send): Avoid useless copy of the string.
5898         (Send_Signal, Close): Raise Invalid_Process if the process id is
5899         invalid.
5900         (Pattern_Matcher_Access): Is now a general access type to be able to
5901         use aliased string.
5902
5903 2007-06-06  Thomas Quinot  <quinot@adacore.com>
5904             Arnaud Charlet  <charlet@adacore.com>
5905
5906         * a-intnam-aix.ads: Adjust comment to account for SIGADAABORT change
5907         (SIGEMT is now used instead of SIGTERM on AIX).
5908
5909         * s-osinte-aix.ads (Linker_Options): Use -pthread instead of -lpthreads.
5910         (Time_Slice_Supported): Set to True.
5911         Use SIGEMT instead of SIGTERM as SIGADAABORT.
5912
5913 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
5914
5915         * a-calend.ads, a-calend.adb, a-calend-vms.ads, a-calend-vms.adb ("-"
5916         (Time, Time)): Use To_Relative_Time rather than manual calculation to
5917         express the bounds of Duration as Time. Raise Time_Error when the
5918         result is greater or equal to the higher bound of Duration (on the
5919         margin case).
5920         ("+" (Time, Duration)): Reorder code. Remove the declaration of constant
5921         Ada_High_And_Leaps.
5922         ("-" (Time, Duration)): Reorder code. Remove the declaration of constant
5923         Ada_High_And_Leaps.
5924         ("-" (Time, Time)): Reorder code.
5925         (All_Leap_Seconds): Removed.
5926         (Arithmetic_Operations.Add): Remove sign related kludge.
5927         (Arithmetic_Operations.Difference): Control the leaps seconds processing
5928         with flag Leap_Support.
5929         (Arithmetic_Operations.Subtract): Remove sign related kludge.
5930         (Check_Within_Time_Bounds): New procedure.
5931         (Clock): Control the leap seconds processing with flag Leap_Support.
5932         (Cumulative_Leap_Seconds): Assert that the target supports leap seconds.
5933         (Formatting_Operations.Split): Control the leap seconds processing with
5934         flag Leap_Support.
5935         (Formatting_Operations.Time_Of): Control the leaps seconds processing
5936         with flag Leap_Support. Adjust the year, month and day (if applicable)
5937         when the value of day seconds designates a new day.
5938         (Split): Use parameter associations for better readability. Integrate
5939         flag Is_Ada_05.
5940         (Time_Of): Use parameter associations for better readability. Integrate
5941         flag Is_Ada_05.
5942
5943         * a-calfor.adb (Split): Use parameter associations for better
5944         readability. Integrate flag Is_Ada_05.
5945         (Time_Of): Remove flag Leap_Checks. Use parameter associations for
5946         better readability. Integrate flag Is_Ada_05.
5947
5948 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
5949
5950         * s-taprop-vms.adb, s-taprop-hpux-dce.adb, s-taprop-vxworks.adb, 
5951         s-osprim-posix.adb, s-taprop-posix.adb, s-osprim-vxworks.adb, 
5952         s-taprop-solaris.adb, s-osprim-solaris.adb, s-taprop-dummy.adb, 
5953         s-osprim-unix.adb, s-osinte-freebsd.adb, s-osinte-freebsd.ads, 
5954         s-osinte-lynxos.adb, s-osinte-lynxos.ads, s-taprop-tru64.adb, 
5955         s-taprop-lynxos.adb, s-taprop-irix.adb, s-osinte-tru64.adb, 
5956         s-osinte-tru64.ads, s-taprop-linux.adb, s-parame.ads, 
5957         s-parame-vms-alpha.ads, s-parame-vms-ia64.ads, s-parame-hpux.ads, 
5958         s-parame-vms-restrict.ads, s-parame-ae653.ads, s-parame-vxworks.ads, 
5959         s-taprop-mingw.adb, s-osinte-lynxos-3.ads, s-osinte-lynxos-3.adb,
5960         s-osprim-mingw.adb (Timed_Delay, Timed_Sleep): Register the base
5961         time when entering this routine to detect a backward clock setting
5962         (manual setting or DST adjustment), to avoid waiting for a longer delay
5963         than needed.
5964         (Time_Duration, To_Timeval, struct_timeval): Removed when not relevant.
5965         Remove handling of deferred priority change, and replace by setting the
5966         task priority directly, as required by AI-188.
5967         Update comments.
5968         (Max_Task_Image_Length): New constant.
5969         Replace Warnings (Off) by Unreferenced pragma, cleaner.
5970         (Dynamic_Priority_Support): Removed, no longer needed.
5971         (Poll_Base_Priority_Change): Ditto.
5972         (Set_Ceiling): Add this procedure to change the ceiling priority
5973         associated to a lock. This is a dummy implementation because dynamic
5974         priority ceilings are not supported by the underlying system.
5975
5976         * a-dynpri.adb (Set_Priority): Take into account case where Target is
5977         accepting a RV with its priority boosted.
5978         Remove handling of deferred priority change, and replace by setting the
5979         task priority directly, as required by AI-188.
5980
5981         * s-taenca.adb (Try_To_Cancel_Entry_Call): Remove special case for
5982         Succeeded = True.
5983         Remove handling of deferred priority change, and replace by setting the
5984         task priority directly, as required by AI-188.
5985         (Wait_For_Completion, Wait_For_Call, Timed_Selective_Wait): Change state
5986         of Self_Id earlier.
5987
5988         * s-tasini.ads, s-tasini.adb (Wakeup_Entry_Caller): Relax assertion.
5989         (Poll_Base_Priority_Change): Removed.
5990         Code clean up: use SSL.Current_Target_Exception.
5991
5992         * s-tasren.adb (Task_Count): Call Yield to let a chance to other tasks
5993         to run as this is a potentially dispatching point.
5994         (Call_Synchronous): Use Local_Defer_Abort.
5995         (Callable): Relax assertion.
5996         (Selective_Wait): Relax assertion in case abort is not allowed.
5997         Remove handling of deferred priority change, and replace by setting the
5998         task priority directly, as required by AI-188.
5999
6000         * s-tasuti.adb (Make_Passive): Adjust assertions.
6001         Remove handling of deferred priority change, and replace by setting the
6002         task priority directly, as required by AI-188.
6003
6004 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
6005
6006         * system-vxworks-sparcv9.ads, system-solaris-x86.ads, 
6007         system-irix-o32.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads, 
6008         system-lynxos-x86.ads, system-vxworks-m68k.ads, system-linux-x86.ads, 
6009         system-vxworks-mips.ads, system-vxworks-alpha.ads, 
6010         system-vxworks-x86.ads, system-linux-ppc.ads, system-mingw.ads, 
6011         system-vms-zcx.ads, system-darwin-ppc.ads, system-vxworks-ppc.ads, 
6012         system-interix.ads, system-linux-hppa.ads, system-tru64.ads, 
6013         system-hpux.ads, system-irix-n32.ads, system-solaris-sparc.ads, 
6014         system-solaris-sparcv9.ads, system-vms.ads, system.ads,
6015         system-vms_64.ads, system-hpux-ia64.ads, system-linux-x86_64.ads,
6016         system-linux-ia64.ads: Document mapping between Ada and OS priorities.
6017         This patch changes the largest non-binary modulus from 2**31-1 to
6018         2**32-1.
6019         (Compiler_System_Version): Removed, no longer used.
6020         Clean up system files by removing flags only used on a single target.
6021         Also remove obsolete flags, only used during bootstrap from system.ads
6022         (Address): Add a pragma Preelaborable_Initialization.
6023
6024         * system-aix.ads:  Ditto.
6025         (GCC_ZCX_Support): Set to true.
6026         Update priority range on AIX and map Ada priorities to target
6027         priorities appropriately for different scheduling policies.
6028
6029         * ttypes.ads: set largest non-binary modulus from 2**31-1 to 2**32-1
6030
6031 2007-06-06  Vincent Celier  <celier@adacore.com>
6032
6033         * mlib-tgt-specific.adb, mlib-tgt-specific.ads,
6034         mlib-tgt-vms.adb, mlib-tgt-vms.ads: New files.
6035
6036         * mlib-tgt.adb, mlib-tgt.ads, mlib-tgt-darwin.adb, 
6037         mlib-tgt-vxworks.adb, mlib-tgt-mingw.adb, mlib-tgt-lynxos.adb, 
6038         mlib-tgt-linux.adb, mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, 
6039         mlib-tgt-vms-ia64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb, 
6040         mlib-tgt-hpux.adb, mlib-tgt-tru64.adb: Make a common body for package
6041         MLib.Tgt, containing the default versions of the exported subprograms.
6042         For each platform, create a specific version of the body of new child
6043         package MLib.Tgt.Specific that contains only the body of subprograms
6044         that are different from the default.
6045         (Archive_Builder_Append_Options): New function.
6046
6047 2007-06-06  Matthew Gingell  <gingell@adacore.com>
6048
6049         * s-osinte-aix.adb: Map Ada priorities to target priorities
6050         appropriately for different scheduling policies.
6051
6052 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
6053
6054         * s-osinte-linux.ads (sigset_t): Bump alignment to match more closely
6055         its C counterpart.
6056         Remove references to Unchecked_Conversion, and use Ada.xxx instead.
6057         Replace Unchecked_Conversion by Ada.Unchecked_Conversion. 
6058
6059 2007-06-06  Vasiliy Fofanov  <fofanov@adacore.com>
6060
6061         * s-osprim-vms.ads, s-osprim-vms.adb (Initialize): New procedure.
6062         Noop on VMS, added for interface commonality.
6063
6064 2007-06-06  Eric Botcazou  <ebotcazou@adacore.com>
6065             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6066             Olivier Hainque  <hainque@adacore.com>
6067
6068         * decl.c (gnat_to_gnu_entity) <object>: Manually mark the top of the
6069         renamed expression of a full renaming at toplevel.
6070         (gnat_to_gnu_entity, case object): If not defining, do not look inside
6071         the values the constant is initialized to if it is an N_Allocator.
6072         (gnat_to_gnu_entity) <E_Array_Subtype>: Manually mark the top of the
6073         TYPE_SIZE_UNIT of inner types after the stride is elaborated.
6074         (make_aligning_type): Accept an extra ROOM argument for storage to be
6075         made available before the aligned field, and an extra BASE_ALIGN
6076         argument for callers to pass the alignment guaranteed to be honored for
6077         the whole aligning object. Avoid call to finish_record_type, which only
6078         interferes with the sizes we want to set.
6079         (gnat_to_gnu_entity) <E_Variable>: Pass the required extra arguments to
6080         make_aligning_type for super-aligned objects on stack.
6081         (components_to_record): Pass the adjusted size of the type when creating
6082         fields in the qualified union for the variant part.
6083         (gnat_substitute_in_type): Copy TYPE_USER_ALIGN.
6084         (gnat_to_gnu_entity, case E_Signed_Integer_Subtype): Likewise for
6085         packed array type.
6086         (maybe_pad_type): Set TYPE_USER_ALIGN.
6087         (make_aligning_type): Likewise.
6088         ALIGN argument is unsigned int.
6089         (gnat_to_gnu_entity, case E_Function): Back annotate return mechanism.
6090         (gnat_to_gnu_param): Likewise, for parameters.
6091         (gnat_to_gnu_entity) <object>: Always instantiate the renaming object
6092         if it is constant and stems from a function call.
6093         (gnat_to_gnu_entity) <E_Record_Type>: Set packed to -2 if the alignment
6094         of the record is specified.  Adjust accordingly.
6095         (adjust_packed): New static function.
6096         (gnat_to_gnu_field): Use it to adjust the packedness setting.
6097         (components_to_record): Likewise.
6098         (gnat_to_gnu_entity) <object>: Do not test the renamed expression for
6099         side-effects if the object is deemed constant.
6100         (gnat_to_gnu_entity) <E_Array_Type>: Create a name for the fat pointer
6101         type instead of merely finalizing it.  Tidy.
6102         <E_Access_Subprogram_Type>: Retrieve the type from the TYPE_DECL.
6103         <E_Access_Type>: Likewise.
6104         (defer_debug_incomplete_list): Rename to defer_finalize_list.
6105         (defer_debug_level): Delete.
6106         (gnat_to_gnu_entity) <debug_deferred>: Likewise
6107         <E_Array_Type>: Call rest_of_record_type_compilation on the fat pointer
6108         type.
6109         <E_Record_Type>: Do not explicitly defer finalizing the type.
6110         Adjust for write_record_type_debug_info renaming.
6111         <E_Subprogram_Type>: Likewise.
6112         Finalize deferred types right after deferred incomplete types are
6113         expanded.
6114         (rest_of_type_decl_compilation): New global function.
6115         (components_to_record): Rename defer_debug parameter to do_not_finalize.
6116         (components_to_record): Propagate the packedness to the fields of the
6117         qualified union type if there is a variant part.
6118         (gnat_to_gnu_entity) <E_Array_Type>: Use new function
6119         instead of inline code to adjust the XUT field offsets.
6120         (gnat_to_gnu_entity): Adjust for new prototype of finish_record_type.
6121         <E_Record_Subtype>: Do not let finish_record_type compute the sizes
6122         and write the debug info if the type derives from a discriminated one.
6123         (gnat_to_gnu_entity) <E_Array_Type>: Adjust call to create_index_type.
6124         <E_Array_Subtype>: Likewise.
6125         <E_String_Literal_Subtype>: Likewise.
6126         (gnat_to_gnu_entity): Set TYPE_USER_ALIGN on types only if they have
6127         an alignment clause.
6128         (maybe_pad_type): Update ORIG_SIZE to the minimum required to meet ALIGN
6129         before giving warning.
6130         (prepend_one_attribute_to): New function, helper to prepend an attribute
6131         to an attribute list.
6132         (gnat_to_gnu_entity) <E_Procedure>: Use it.
6133         (prepend_attributes): Likewise.
6134         (gnat_to_gnu_entity) <E_Variable>: Use constants of the proper type.
6135         <E_Array_Type>: Declare the padding type for the element type, if any.
6136         <E_Array_Subtype>: Likewise.
6137         (defer_limited_with): New variable.
6138         (Gigi_Equivalent_Type): New function.
6139         (gnat_to_gnu_entity): Use it at start and use result throughout.
6140         (gnat_to_gnu_entity, case E_Access_Type): Rework to use
6141         Gigi_Equivalent_Type, support Limited_With, allow two levels of
6142         indirection, precompute if unconstrained array to simplify logic, and
6143         use defer_limited_with to defer elaboration of some types from limited
6144         with.
6145         (finalize_from_with_types): New function.
6146
6147 2007-06-06  Gary Dismukes  <dismukes@adacore.com>
6148             Eric Botcazou  <ebotcazou@adacore.com>
6149             Tristan Gingold  <gingold@adacore.com>
6150             Olivier Hainque  <hainque@adacore.com>
6151
6152         * trans.c (Identifier_to_gnu): Change test for deferred constant by
6153         adding guard that the entity is an E_Constant before testing presence
6154         of Full_view (and remove unnecessary test that entity is not a type).
6155         For a CONST_DECL used by reference, manually retrieve
6156         the DECL_INITIAL.  Do not invoke fold in the other DECL_P cases either.
6157         (struct language_function): Move from utils.c to here.
6158         (struct parm_attr): New structure.
6159         (parm_attr, parm_attr vector, parm_attr GC vector): New types.
6160         (f_parm_attr_cache): New macro.
6161         (Attribute_to_gnu) <Attr_Length>: When not optimizing, cache the
6162         expressions for the 'First, 'Last and 'Length attributes of the
6163         unconstrained array IN parameters.
6164         (Subprogram_Body_to_gnu): Use gnu_subprog_decl throughout.
6165         Allocate the information structure for the function earlier, as well
6166         as the language-specific part.
6167         If the parameter attributes cache has been populated, evaluate the
6168         cached expressions on entry.
6169         (takes_address): Add OPERAND_TYPE parameter.  Handle N_Function_Call,
6170         N_Procedure_Call_Statement and N_Indexed_Component.
6171         (Pragma_to_gnu): Translate inspection_point to an asm statement
6172         containaing a comment and a reference to the object (either its address
6173         for BLKmode or its value).
6174         (Identifier_to_gnu): Use TREE_CONSTANT instead of CONST_DECL to decide
6175         to go to DECL_INITIAL. Together with the size constraint relaxation
6176         in create_var_decl, enlarges the set of situations in which an
6177         identifier may be used as an initializer without implying elaboration
6178         code.
6179         (Subprogram_Body_to_gnu): Do not fiddle with the debug interface but set
6180         DECL_IGNORED_P on the function if Needs_Debug_Info is not set on the
6181         node.
6182         (maybe_stabilize_reference): Remove lvalues_only parameter.
6183         (gnat_stabilize_reference): Adjust for above change.
6184         (gnat_to_gnu): Do not set location information on the result
6185         if it is a reference.
6186         (add_cleanup): Add gnat_node parameter and set the location of the
6187         cleanup to it.
6188         (Handled_Sequence_Of_Statements_to_gnu): Adjust calls to add_cleanup.
6189         (Exception_Handler_to_gnu_zcx): Likewise.
6190         (gigi): Remove the cgraph node if the elaboration procedure is empty.
6191         (Subprogram_Body_to_gnu): If a stub is attached to the subprogram, emit
6192         the former right after the latter.
6193         (start_stmt_group): Make global.
6194         (end_stmt_group): Likewise.
6195         (gnu_constraint_error_label_stack, gnu_storage_error_label_stack): New
6196         vars.
6197         (gnu_program_error_label_stack): Likewise.
6198         (gigi): Initialize them.
6199         (call_to_gnu, gnat_to_gnu, emit_check): Add new arg to build_call_raise.
6200         (gnat_to_gnu, N_{Push,Pop}_{Constraint,Storage,Program}_Error_Label):
6201         New cases.
6202         (push_exception_label_stack): New function.
6203         (takes_address): New function.
6204
6205         * utils.c (struct language_function): Move to trans.c from here.
6206         (unchecked_convert): Do not wrap up integer constants in
6207         VIEW_CONVERT_EXPRs.
6208         (create_var_decl_1): Decouple TREE_CONSTANT from CONST_DECL. Prevent
6209         the latter for aggregate types, unexpected by later passes, and relax an
6210         arbitrary size constraint on the former.
6211         (create_field_decl): Use tree_int_cst_equal instead of operand_equal_p
6212         to compare the sizes.
6213         (convert_vms_descriptor): When converting to a fat pointer type, be
6214         prepared for a S descriptor at runtime in spite of a SB specification.
6215         (shift_unc_components_for_thin_pointers): New function.
6216         (write_record_type_debug_info): For variable-sized fields, cap the
6217         alignment of the pointer to the computed alignment.
6218         (finish_record_type): Change HAS_REP parameter into REP_LEVEL.
6219         If REP_LEVEL is 2, do not compute the sizes.
6220         (build_vms_descriptor): Adjust for new prototype of finish_record_type.
6221         (build_unc_object_type): Likewise.
6222         (declare_debug_type): New function.
6223
6224         * ada-tree.def: USE_STMT: removed (not emitted anymore).
6225
6226         * misc.c (gnat_expand_expr): Call to gnat_expand_stmt removed because
6227         no statement is expandable anymore.
6228         (gnat_init_gcc_eh): Do not initialize the DWARF-2 CFI machinery twice.
6229         (gnat_handle_option): Only allow flag_eliminate_debug_types to be set
6230         when the user requested it explicitely.
6231         (gnat_post_options): By default, set flag_eliminate_unused_debug_types
6232         to 0 for Ada.
6233         (get_alias_set): Return alias set 0 for a type if
6234         TYPE_UNIVERSAL_ALIASING_P is set on its main variant.
6235
6236         * ada-tree.h: (TYPE_UNIVERSAL_ALIASING_P): New macro.
6237         (DECL_FUNCTION_STUB): New accessor macro.
6238         (SET_DECL_FUNCTION_STUB): New setter macro.
6239
6240         * lang.opt (feliminate-unused-debug-types): Intercept this flag for Ada.
6241
6242         * fe.h (Get_Local_Raise_Call_Entity, Get_RT_Exception_Entity): New
6243         declarations.
6244
6245 2007-06-06  Jose Ruiz  <ruiz@adacore.com>
6246
6247         * s-intman-vxworks.ads, s-intman-vxworks.adb (Abort_Task_Signal):
6248         Rename to Abort_Task_Interrupt to be able to keep the same interface
6249         as the rest of the targets.
6250
6251         * s-osinte-vxworks.ads s-osinte-vxworks.adb
6252         (To_VxWorks_Priority): Remove explicit "in" mode indicator
6253
6254         * s-osinte-vxworks6.ads, s-vxwork-arm.ads, system-vxworks-arm.ads:
6255         New files.
6256
6257 2007-06-06  Robert Dewar  <dewar@adacore.com>
6258
6259         * a-chahan.ads: Remove obsolescent pragmas
6260
6261         * a-chlat1.ads: Minor reformatting
6262
6263 2007-06-06  Robert Dewar  <dewar@adacore.com>
6264
6265         * comperr.adb (Compiler_Abort): New Finalize/Output_Messages interface
6266         for Errout
6267
6268         * errout.adb: New Finalize/Compilation_Errors/Output_Messages
6269         implementation
6270
6271         * errout.ads (Finalize): Changed interface
6272         (Output_Messages): New procedure
6273         (Compilation_Errors): New Interface
6274
6275         * prepcomp.ads, prepcomp.adb (Parse_Preprocessing_Data_File): New
6276         Finalize/Output_Messages interface for Errout
6277         (Prepare_To_Preprocess): New Finalize/Output_Messages interface for
6278         Errout.
6279
6280 2007-06-06  Thomas Quinot  <quinot@adacore.com>
6281             Olivier Hainque  <hainque@adacore.com>
6282             Robert Dewar  <dewar@adacore.com>
6283
6284         * a-except.ads, a-except.adb: (Rmsg_28): Fix description for E.4(18)
6285         check.
6286         (Raise_Current_Excep): Call Debug_Raise_Exception just before
6287         propagation starts, to let debuggers know about the event in a reliable
6288         fashion.
6289         (Local_Raise): Moved to System.Exceptions
6290         More convenient to have this as a separate unit
6291
6292         * s-except.adb, s-except.ads: New files.
6293
6294         * a-exextr.adb (Unhandled_Exception): Delete - replaced by
6295         Debug_Unhandled_Exception in System.Exceptions where it belongs
6296         together with a couple of other debug helpers.
6297         (Notify_Unhandled_Exception): Use Debug_Unhandled_Exception instead of
6298         the former Unhandled_Exception.
6299
6300         * exp_ch11.ads, exp_ch11.adb: (Possible_Local_Raise): New procedure
6301         (Warn_No_Exception_Propagation): New procedure
6302         (Warn_If_No_Propagation): Rewritten for new warning generation
6303         (Expand_Exception_Handlers): New warning generation
6304         (Expand_N_Raise_xxx_Error): Rewritten for new warnings
6305         (Add_Exception_Label): Use Special_Exception_Package_Used for test
6306         instead of Most_Recent_Exception_Used (accomodates Exception_Traces)
6307         (Expand_Local_Exception_Handlers): Unconditionally add extra block wrap
6308         even if restriction is set (makes life easier in Check_Returns)
6309         (Expand_Local_Exception_Handlers): Follow renamed entity chain when
6310         checking exception identities.
6311         (Expand_Local_Exception_Handlers): Do not optimize when all others case
6312         (Expand_Local_Exception_Handlers): Set Exception_Junk flag on generated
6313         block for handler (used by Check_Returns)
6314         (Expand_Local_Exception_Handlers): Local_Raise now takes an address
6315         (Expand_N_Handled_Sequence_Of_Statements): Properly handle -gnatd.x to
6316         remove all exception handlers when optimizing local raise statements.
6317         (Find_Local_Handler): Use Get_Renamed_Entity
6318         (Expand_N_Handled_Sequence_Of_Statements): If the handled sequence is
6319         marked analyzed after expanding exception handlers, do not generate
6320         redundant cleanup actions, because they have been constructed already.
6321
6322 2007-06-06  Thomas Quinot  <quinot@adacore.com>
6323
6324         * a-finali.ads (Ada.Finalization): Add missing pragma Remote_Types. The
6325         presence of this categorization pragma is mandated by the language.
6326         (Limited_Controlled): Add missing pragma Preelaborable_Initialization
6327         for this type.
6328
6329 2007-06-06  Vincent Celier  <celier@adacore.com>
6330             Robert Dewar  <dewar@adacore.com>
6331
6332         * bcheck.adb, binde.adb, binderr.adb, binderr.ads, butil.adb, 
6333         butil.ads, erroutc.adb, erroutc.ads, errutil.adb, errutil.ads, 
6334         err_vars.ads, exp_tss.adb, exp_tss.ads, fmap.adb, fmap.ads, 
6335         fname.adb, fname.ads, fname-sf.adb, fname-uf.adb, fname-uf.ads, 
6336         lib-sort.adb, lib-util.adb, lib-util.ads, lib-xref.adb, makeutl.ads, 
6337         makeutl.adb, nmake.adt, osint.adb, osint.ads, osint-b.adb, 
6338         par-load.adb, prj-attr.adb, prj-dect.adb, prj-err.adb, prj-makr.adb, 
6339         prj-part.adb, prj-pp.adb, prj-proc.adb, prj-tree.adb, prj-tree.ads, 
6340         prj-util.adb, prj-util.ads, scans.adb, scans.ads, sem_ch2.adb, 
6341         sinput-c.adb, styleg-c.adb, tempdir.adb, tempdir.ads, uname.adb, 
6342         uname.ads, atree.h, atree.ads, atree.adb, ali-util.ads, ali-util.adb,
6343         ali.ads, ali.adb: 
6344         Move Name_Id, File_Name_Type and Unit_Name_Type from package Types to
6345         package Namet. Make File_Name_Type and Unit_Name_Type types derived from
6346         Mame_Id. Add new type Path_Name_Type, also derived from Name_Id.
6347         Use variables of types File_Name_Type and Unit_Name_Type in error
6348         messages.
6349         (Get_Name): Add parameter Ignore_Special, and set it reading file name
6350         (New_Copy): When debugging the compiler, call New_Node_Debugging_Output
6351         here.
6352         Define flags Flag217-Flag230 with associated subprograms
6353         (Flag_Word5): New record type.
6354         (Flag_Word5_Ptr): New access type.
6355         (To_Flag_Word5): New unchecked conversion.
6356         (To_Flag_Word5_Ptr): Likewise.
6357         (Flag216): New function.
6358         (Set_Flag216): New procedure.
6359
6360 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
6361
6362         * a-stzunb.adb, a-stwiun.adb, a-strunb.adb: (Insert): Use 'Length
6363         instead of 'Size.
6364
6365         * a-stwifi.ads, a-stzfix.ads: Minor reformatting
6366
6367 2007-06-06  Javier Miranda  <miranda@adacore.com>
6368
6369         * a-tags.ads, a-tags.adb (Tag_Size): This constant is now internal to
6370         the package.
6371         (Object_Specific_Data_Array): This is now internal to the package.
6372         (Object_Specific_Data): This is now internal to the package.
6373         (Select_Specific_Data_Element): This is now internal to the package.
6374         (Select_Specific_Data_Array): This is now internal to the package.
6375         (Select_Specific_Data): This is now internal to the package.
6376         (Offset_To_Top_Function_Ptr): This is now public.
6377         (To_Offset_To_Top_Function_Ptr): Removed.
6378         (Storage_Offset_Ptr,To_Storage_Offset_Ptr): These declarations are now
6379          local to subprogram Offset_To_Top.
6380         (Predefined_DT): Removed.
6381         (Typeinfo_Ptr): Removed.
6382         (OSD): This function is now internal to this package.
6383         (SSD): This function is now internal to this package.
6384         (DT): New function that displaces the pointer to the table of primitives
6385          to get access to the enclosing wrapper record.
6386         (IW_Membership): Code cleanup.
6387         (Offset_To_Top): Code cleanup.
6388         (Predefined_DT): Removed.
6389         (Register_Interface_Tag): Removed.
6390         (Set_Interface_Table): Removed.
6391         (Set_Offset_Index): Removed.
6392         (Set_Offset_To_Top): Code cleanup.
6393         (Set_OSD): Removed.
6394         (Set_Signature): Removed.
6395         (Set_SSD): Removed.
6396         (Set_Tagged_Kind): Removed.
6397         (Typeinfo_Ptr): Removed.
6398         (TSD): Removed.
6399         (Displace): Add missing check on null actual.
6400
6401         * exp_disp.ads, exp_disp.adb
6402         (Select_Expansion_Utilities): Removed.
6403         (Build_Common_Dispatching_Select_Statements): Moved to exp_atags.
6404         (Expand_Dispatching_Call): Update calls to Get_Prim_Op_Address because
6405         the interface requires a new parameter.
6406         (Make_Disp_Asynchronous_Select_Spec, Make_Disp_Conditional_Select_Spec,
6407         Make_Disp_Get_Prim_Op_Kind_Spec, Make_Disp_Timed_Select_Spec): Replace
6408         calls to subprograms Build_T, Build_S, etc. by the corresponding code.
6409         Done to remove package Select_Expansion_Utilities.
6410         (Make_DT): New implementation for statically allocated dispatch tables.
6411         (Make_Secondary_DT): Moved to the scope of Make_DT.
6412         (Register_Primitive): Code cleanup plus incoporate the use of the new
6413         function DT_Address_Attribute.
6414         (Expand_Interface_Thunk): The profile of this subprogram has been
6415         changed to return the Thunk_Id and the corresponding code.
6416         (Fill_DT_Entry): Removed. Its functionality is now provided by
6417         subprogram Register_Primitive.
6418         (Fill_Secondary_DT_Entry): Removed. Its functionality is now provided by
6419         subprogram Register_Primitive.
6420         (Register_Primitive): New subprogram that incorporates the previous
6421         functionalities of Fill_DT_Entry and Fill_Secondary_DT_Entry.
6422         (Build_Common_Dispatching_Select_Statements): Remove formal Typ. This
6423         was only required to call Make_DT_Access_Action, which is now removed.
6424         (Ada_Actions): Removed
6425         (Action_Is_Proc): Removed
6426         (Action_Nb_Arg): Removed
6427         Replace all the calls to Make_DT_Access_Action by direct calls to
6428         Make_Procedure_Call_Statement or Make_Function_Call.
6429         (Set_DTC_Entity_Value): New subprogram.
6430         (Set_All_DT_Position): Add call to new subprogram Set_DTC_Entity_Value.
6431         (Expand_Interface_Thunk): Add missing support for primitives that are
6432         functions with a controlling result (case in which there is no need
6433         to generate the thunk).
6434
6435         * exp_atag.ads, exp_atag.adb
6436         (Build_DT): New subprogram that displaces the pointer to reference the
6437         base of the wrapper record.
6438         (Build_Typeinfo_Offset): Removed.
6439         (RTE_Tag_Node): Removed.
6440         (Build_Common_Dispatching_Select_Statements): Moved here from exp_disp
6441         (Build_Get_RC_Offset): Removed.
6442         (Build_Inherit_Predefined_Prims): Removed.
6443         (Build_Inherit_TSD: Removed.
6444         (Build_New_TSD): Removed.
6445         (Build_Set_External_Tag): Removed.
6446         (Build_Set_Predefined_Prim_Op_Address): Add documentation.
6447         (Build_Set_Prim_Op_Address): Add documentation.
6448         (Build_Set_TSD): Removed.
6449
6450         * rtsfind.ads, rtsfind.adb
6451         (Load_Fail): If load fails and we are not in configurable run-time
6452         mode, then raise Unrecoverable_Error.
6453         (Text_IO_Kludge): Generate an error message if a run-time library is
6454         not available in a given run-time (ie. zfp run-time).
6455         (RTE_Record_Component): Add code to check that the component we search
6456         for is not found in two records in the given run-time package.
6457         (RE_DT_Offset_To_Top_Size, RE_DT_Predef_Prims_Size): Removed
6458         (RE_DT_Predef_Prims_Offset): New entity
6459         (RE_Static_Offset_To_Top): New entity
6460         (RE_HT_Link): New entity.
6461         (System_Address_Image): Addition of this run-time package.
6462         (RE_Address_Image): New entity.
6463         (RE_Abstract_Interface): Removed.
6464         (RE_Default_Prim_Op_Count): Removed.
6465         (RE_DT_Entry_Size): Removed.
6466         (RE_DT_Min_Prologue_Size): Removed.
6467         (RE_DT_Prologue_Size): Removed.
6468         (RE_Ifaces_Table_Ptr): Removed.
6469         (RE_Interface_Data_Ptr): Removed.
6470         (RE_Type_Specific_Data): Removed.
6471         (RE_Primary_DT): Removed.
6472         (RE_Register_Interface_Tag): Removed.
6473         (RE_Set_Offset_Index): Removed.
6474         (RE_Set_OSD): Removed.
6475         (RE_Set_SSD): Removed.
6476         (RE_Set_Signature): Removed.
6477         (RE_Set_Tagged_Kind): Removed.
6478         (RE_Address_Array): New entity.
6479         (RE_DT): New entity.
6480         (RE_Iface_Tag): New entity.
6481         (RE_Interfaces_Table): New entity.
6482         (RE_No_Dispatch_Table): New entity.
6483         (RE_NDT_Prims_Ptr): New entity.
6484         (RE_NDT_TSD): New entity.
6485         (RE_Num_Prims): New entity.
6486         (RE_Offset_To_Top_Function_Ptr): New entity.
6487         (RE_OSD_Table): New entity.
6488         (RE_OSD_Num_Prims): New entity.
6489         (RE_Predef_Prims): New entity
6490         (RE_Predef_Prims_Table_Ptr): New entity.
6491         (RE_Primary_DT): New entity.
6492         (RE_Signature): New entity.
6493         (RE_SSD): New entity.
6494         (RE_TSD): New entity.
6495         (RE_Type_Specific_Data): New entity.
6496         (RE_Tag_Kind): New entity.
6497
6498 2007-06-06  Thomas Quinot  <quinot@adacore.com>
6499
6500         * a-textio.ads, a-textio.adb (Write): Add explicit size clause for the
6501         C imported variable.
6502         (Skip_Line): Do not reset Before_LM_PM immediately when Before_LM is set
6503         on entry.
6504
6505 2007-06-06  Robert Dewar  <dewar@adacore.com>
6506
6507         * a-tienio.adb (Get): Adjust buffer size to accomodate one extra
6508         character
6509
6510 2007-06-06  Vincent Celier  <celier@adacore.com>
6511
6512         * a-tifiio.adb (Put, internal): For negative numbers, check that there
6513         is room for at least one digit and the minus sign.
6514         (Put.Put_Character): Never put a character outside of the range of
6515         string To.
6516
6517 2007-06-06  Olivier Hainque  <hainque@adacore.com>
6518             Eric Botcazou  <ebotcazou@adacore.com>
6519
6520         * utils2.c (build_allocator): Provide the extra arguments to
6521         make_aligning_type for super-aligned objects allocated from the default
6522         pool. Leave enough room for a pointer before the aligning field, and
6523         store the system's allocator return value there.
6524         (build_call_alloc_dealloc): When releasing a super-aligned object,
6525         retrieve the system's allocator return value from where build_allocator
6526         has stored it, just ahead of the adjusted address we are passed.
6527         (build_call_raise): Handle properly the generation of line numbers when
6528         the node is marked No_Location.
6529         (compare_elmt_bitpos): Use tree_int_cst_compare.  Stabilize the sort
6530         by using DECL_UID on ties.
6531         (build_binary_op) <EQ_EXPR>: Accept fat pointer types with the same
6532         main variant.
6533         (build_call_raise): Handle converting exception into goto; support new
6534         argument KIND.
6535         (build_component_ref): Add new arg to build_call_raise.
6536
6537 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
6538
6539         * a-ztflau.adb, a-wtflau.adb, a-tiflau.adb (Load_Real): Do not parse
6540         "." in the case of nnn.xxx when nnn terminates with an underscore.
6541         Parse the remaining "#" or ":" in the case of nnn#.xxx#
6542
6543 2007-06-06  Robert Dewar  <dewar@adacore.com>
6544
6545         * a-tigeau.ads, a-tigeau.adb: (Store_Char): Change Buf to IN OUT
6546
6547 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
6548             Vincent Celier  <celier@adacore.com>
6549             Robert Dewar  <dewar@adacore.com>
6550
6551         * bindgen.adb (Gen_Output_File_Ada): Generate pragma No_Run_Time when
6552         needed.
6553         (Gen_Output_File_Ada, Gen_Output_File_C): Never use __attribute
6554         ((destructor)) for adafinal, even when switch -a is used.
6555         Do not issue pragma Linker_Destructor for adafinal when switch -a is
6556         used.
6557         (Gen_Object_Files_Options): Add formatting of Linker Options, when
6558         Output_Linker_Option_List is set. Suppress this formatting when
6559         Zero_Formatting is set.
6560         Add case for CLI_Target.
6561         (System_Restrictions_Used): New flag, used to avoid generating with of
6562         System_Restrictions and initialization of the data unless there is
6563         some use of System.Restrictions in the partition.
6564         (Check_System_Restrictions_Used): New procedure
6565
6566         * s-stalib.adb: Remove with of System.Restrictions. No longer needed
6567         since we only with this unit in the binder file if it is used elsewhere
6568         in the partition.
6569
6570 2007-06-06  Vincent Celier  <celier@adacore.com>
6571
6572         * bindusg.adb: Add line for @<response file>
6573         Add lines for new switches -R and -Z
6574
6575         * gnatbind.adb (Gnatbind): Do not include sources from the GNAT
6576         hierarchy in the list of files of the closure when -R is used
6577         (Gnatbind): Accept arguments starting with '@' to indicate response
6578         files and take the arguments from the response files.
6579         If List_Closure is set, display the referenced files
6580
6581 2007-06-06  Javier Miranda  <miranda@adacore.com>
6582             Robert Dewar  <dewar@adacore.com>
6583             Ed Schonberg  <schonberg@adacore.com>
6584
6585         * checks.ads, checks.adb (Apply_Address_Clause_Check): Handle case in
6586         which the address-clause is applied to in-mode actuals (allowed by
6587         13.1(22)).
6588         (Apply_Discriminant_Check): Do not generate a check if the type is
6589         constrained by a current instance.
6590         (Activate_Division_Check): New procedure
6591         (Activate_Overflow_Check): New procedure
6592         (Activate_Range_Check): New procedure
6593         Call these new Activate procedures instead of setting flags directly
6594         (Apply_Array_Size_Check): Removed, no longer needed.
6595         Code clean up: remove obsolete code related to GCC 2.
6596         (Get_E_Length): Protect against bomb in case scope is standard
6597         (Selected_Range_Checks): If the node to be checked is a conversion to
6598         an unconstrained array type, and the expression is a slice, use the
6599         bounds of the slice to construct the required constraint checks.
6600         Improve NOT NULL error messages
6601         (Apply_Constraint_Check): If the context is a null-excluding access
6602         type, diagnose properly the literal null.
6603
6604 2007-06-06  Pascal Obry  <obry@adacore.com>
6605
6606         * clean.adb (Clean_Archive): Use untouched casing for the archive name
6607         and the corresponding .deps file.
6608         (Clean_Interface_Copy_Directory): Use untouched casing for the library
6609         src directory. Minor code-clean-up. Use untouched casing for files
6610         read into the library src dir.
6611         (Clean_Library_Directory): Idem.
6612         (Parse_Cmd_Line): Accept new switch -aP
6613
6614 2007-06-06  Javier Miranda  <miranda@adacore.com>
6615             Ed Schonberg  <schonberg@adacore.com>
6616             Robert Dewar  <dewar@adacore.com>
6617             Eric Botcazou  <ebotcazou@adacore.com>
6618             Arnaud Charlet  <charlet@adacore.com>
6619
6620         * einfo.ads, einfo.adb (Available_View): New synthesized attribute
6621         applicable to types that have the With_Type flag set. Returns the
6622         non-limited view of the type, if available, otherwise the type itself.
6623         For class-wide types, there is no direct link in the tree, so we have
6624         to retrieve the class-wide type of the non-limited view of the Etype.
6625         New attributes Static_Initialization and Static_Elaboration_Desired.
6626         Remove the pragma Thread_Body, and the associated flag
6627         Is_Thread_Body in entities, and all related code.
6628         (Suppress_Value_Tracking_On_Call): New flag
6629         E_Exception has Esize and Alignment fields
6630         (Universal_Aliasing): New function.
6631         (Set_Universal_Aliasing): New procedure.
6632         (Write_Entity_Flags): Deal with Universal_Aliasing flag.
6633         (Check_Nested_Access): New procedure.
6634         (Has_Up_Level_Access, Set_Has_Up_Level_Access): New procedures.
6635         (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
6636         (Related_Interface): New attribute. Present in dispatch table pointer
6637         components of records. Set to point to the entity of the corresponding
6638         interface type.
6639         (Is_By_Reference_Type): Recurse on the full view of an incomplete type.
6640         (Original_Access_Type): Remove, not needed.
6641         (Root_Type): Handle properly subtypes of class-wide-types.
6642         Update comments.
6643
6644         * sem_ch4.adb (Analyze_Explicit_Dereference): Add support for
6645         class-wide types visible through limited-with clauses.
6646         (Try_Primitive_Operation): When examining all primitive operations of a
6647         tagged type, do not consider subprograms labeled as hidden unless they
6648         belong to a private generic type with a tagged parent.
6649         (Try_Object_Operation): Extensive rewriting, to handle properly various
6650         overloading cases, when several ancestors may have class-wide operations
6651         that are possible candidates, and when the overloaded functions return
6652         array types and have defaulted parameters so that the call may be
6653         interpreted as an indexing.
6654         (Analyze_Allocator): Remove Mark_Allocator and its invocation.
6655         (Process_Function_Call): use Next, rather than Next_Actual, to analyze
6656         successive actuals before analyzing the call itself.
6657         (Try_Primitive_Operation): A primitive operation is compatible with the
6658         prefix if the prefix has a synchronized type and the type of the formal
6659         is its corresponding record, as can be the case when the primitive
6660         operation is declared outside of the body of the type.
6661         (Traverse_Homonyms): New subprocedure of Try_Class_Wide_Operation, to
6662         perform homonym traversal, looking for class-wide operation matches
6663         (formerly done in statements of Try_Class_Wide_Operation). Matches on
6664         access parameters are now restricted to anonymous access types.
6665         (Mark_Allocator): An allocator with a discriminant association parent is
6666         a coextension.
6667         (Try_One_Prefix_Interpretation): If the type of the object is
6668         incomplete, as can be happen when it is a limited view obtained through
6669         a limited_with_clause, the selected component is not part of a prefixed
6670         call.
6671         (Complete_Object_Operation): Diagnose properly an object that is not
6672         aliased when the corresponding controlling formal is an access
6673         parameter.
6674         (Try_Primitive_Operation, Try_Class_Wide_Operation): Diagnose properly
6675         ambiguous calls in prefixed notation, where two primitives differ only
6676         in that the controlling argument of one is an access parameter.
6677
6678         * sem_ch6.adb (Has_Single_Return): Add guard in code that determines
6679         whether a function that returns an unconstrained type can be inlined.
6680         (Process_Formals): Diagnose properly the illegal use of an incomplete
6681         type in the profile of an access_to_subprogram declaration.
6682         (Check_Synchronized_Overriding): Nothing check for concurrent types, the
6683         operations are attached to the corresponding record.
6684         (Analyze_Subprogram_Specification): Add variables Formal and Formal_Typ.
6685         When processing a primitive of a concurrent type which implements an
6686         interface change the type of all controlling formals to that of the
6687         corresponding record type.
6688         (Check_Synchronized_Overriding): Relax the conditional logic when trying
6689         to determine the tagged type to which a primitive belongs.
6690         (Check_Conventions): Capture condition to ignore a primitive operation
6691         (which is shared between the loop in Check_Conventions and the one in
6692         Check_Convention) in a new local function Skip_Check.
6693         (Check_Convention): Rename Prim_Op to Second_Prim_Op to avoid possible
6694         confusion with Check_Conventions' own Prim_Op local variable.
6695         (Create_Extra_Formals): Test for a tagged result type rather than a
6696         controlling result when determining whether to add a BIP_Alloc_Form
6697         formal and a BIP_Final_List formal to the function.
6698         (Check_Conformance); For parameters that are anonymous access types,
6699         subtype conformance requires that the not null and the constant
6700         indicators must match
6701         (Check_Synchronized_Overriding): New parameter Formal_Typ. Add machinery
6702         to retrieve the appropriate type when processing a concurrent type
6703         declared within a generic. Minor comment reformatting. Change invocation
6704         of Overrides_Synchronized_Primitive to Find_Overridden_Synchronized_Pri-
6705         mitive.
6706         (Analyze_Subprogram_Body): If the return type of a function is an
6707         anonymous access to the limited view of a class-wide type, and the
6708         non-limited view of the type is available, update the type of the
6709         function so that code can be generated.
6710         (Process_Formals): In case of access-subtype itype whose designated
6711         type is also an itype (situation that happens now with access to
6712         subprograms) we mark the access-type itype with the Has_Delayed_Freeze
6713         attribute to avoid backend problems.
6714         (Check_Return_Subtype_Indication): Replace R_Type with R_Stm_Type in
6715         init of R_Stm_Type_Is_Anon_Access. Also check that base types of the
6716         anonymous types' designated types are same before testing
6717         Subtypes_Statically_Match.
6718         (Create_Extra_Formals): Test for a named access parameter that is a
6719         controlling formal as an additional condition for adding an
6720         accessibility level formal. This can occur in the subp type created for
6721         dispatching calls in Expand_Dispatching_Call, and allows calling
6722         Create_Extra_Formals from that procedure rather than special-casing the
6723         extra formals there.
6724         (Create_Extra_Formals): Add BIP_Alloc_Form and BIP_Final_List formals
6725         when the function has a controlling result.
6726         (Check_Returns): Add much more knowledge of the optimization of local
6727         raise statements to gotos, to retain proper warnings in this case.
6728         (Check_Statement_Sequence): Ignore N_Push_xxx_Label and N_Pop_xxx_Label
6729         nodes when looking for last statement.
6730
6731         * sem_type.ads, sem_type.adb (Specific_Type): Add support for
6732         class-wide types visible through limited with clauses.
6733         (Add_One_Interp): If the operands are anonymous access types, the
6734         predefined operator on universal_access is immediately visibles
6735         (Find_Unique_Type): Handle anonymous access to subprogram types just as
6736         other anonymous access types.
6737         (Disambiguate): Take into account CIL convention.
6738         (Interface_Present_In_Ancestor): Add support for class-wide interfaces.
6739
6740 2007-06-06  Robert Dewar  <dewar@adacore.com>
6741
6742         * sinput.ads, sinput.adb, uintp.ads, urealp.adb, stringt.adb,
6743         sem_elim.adb, prj-strt.adb, repinfo.ads, repinfo.adb, namet.ads,
6744         elists.ads, elists.adb, lib.ads, lib.adb (Unlock): New procedure.
6745         Fix lower bound of tables.
6746         Add rep clauses.
6747
6748         * nlists.adb: Ditto.
6749         (Prev_Node, Next_Node): Change index type to Int so that it properly
6750         covers the range First_Node_Id - 1 up.
6751
6752 2007-06-06  Javier Miranda  <miranda@adacore.com>
6753             Ed Schonberg  <schonberg@adacore.com>
6754             Bob Duff  <duff@adacore.com>
6755             Hristian Kirtchev  <kirtchev@adacore.com>
6756
6757         * exp_aggr.ads, exp_aggr.adb: 
6758         (Build_Record_Aggr_Code): Add missing initialization of secondary tags
6759         in extension aggregates.
6760         (Flatten): Other conditions being met, an aggregate is static if the
6761         low bound given by component associations is different from the low
6762         bound of the base index type.
6763         (Packed_Array_Aggregate_Handled): If the component type is itself a
6764         packed array or record, the front-end must expand into assignments.
6765         (Gen_Ctrl_Actions_For_Aggr): In call to Init_Controller, pass False to
6766         Init_Pr, instead of Ancestor_Is_Expression.
6767         (Gen_Ctrl_Actions_For_Aggr): When processing an aggregate of a
6768         coextension chain root, either generate a list controller or use the
6769         already existing one.
6770         (Static_Array_Aggregate): New procedure to construct a positional
6771         aggregate that can be handled by the backend, when all bounds and
6772         components are compile-time known constants.
6773         (Expand_Record_Aggregate): Force conversion of aggregates of tagged
6774         types covering interface types into assignments.
6775         (Replace_Type): move to Build_Record_Aggr_Code.
6776         (Expand_Record_Aggr_Code): if the target of the aggregate is an
6777         interface type, convert to the definite type of the aggregate itself,
6778         so that needed components are visible.
6779         (Convert_Aggr_In_Object_Decl): If the aggregate has controlled
6780         components and the context is an extended return statement do not
6781         create a transient block for it, to prevent premature finalization
6782         before the return is executed.
6783         (Gen_Assign): Do not generate a call to deep adjust routine if the
6784         component type is itself an array of controlled (sub)-components
6785         initialized with an inner aggregate.
6786         (Component_Check): New name for Static_Check. This name is now more
6787         appropriate, and documentation is added which was missing.
6788         (Component_Check): Add test for bit aligned component value
6789         (Component_Not_OK_For_Backend): Renames Has_Delayed_Nested_Aggregate_Or_
6790         Tagged_Comps, name is more appropriate given added function below.
6791         (Component_Not_OK_For_Backend): Check for bit aligned component ref.
6792
6793 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
6794             Javier Miranda  <miranda@adacore.com>
6795             Robert Dewar  <dewar@adacore.com>
6796
6797         * exp_attr.adb (Expand_N_Attribute_Reference): Case Callable and
6798         Terminated: Add unchecked type conversion from System.Address to
6799         System.Tasking.Task_Id when calling the predefined primitive
6800         _disp_get_task_id.
6801         Disable new Ada 05 accessibility check for JVM.NET targets, which
6802         cannot be implemented in a practical way.
6803         (Expand_N_Attribute_Reference: case Attribute_Tag): The use of 'Tag in
6804         the sources always references the tag of the actual object. Therefore,
6805         if 'Tag is applied in the sources to class-wide interface objects we
6806         generate code that displaces "this" to reference the base of the object.
6807         (Expand_N_Attribute_Reference, case Size): Return specified size if
6808         known to front end.
6809         (Expand_N_Attribute_Reference): The expansion of the 'Address attribute
6810         has code that displaces the pointer of the object to manage interface
6811         types. However this code must not be executed when the prefix is a
6812         subprogram. This bug caused the wrong expansion of the internally
6813         generated assignment that fills the dispatch table when the primitive
6814         is a function returning a class-wide interface type.
6815         (Expand_N_Attribute_Reference:Attribute_Valid): Remove incorrect call to
6816         Set_Attribute_Name for Name_Unaligned_Valid.
6817
6818 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
6819             Gary Dismukes  <dismukes@adacore.com>
6820
6821         * exp_ch13.adb (Expand_N_Attribute_Definition_Clause, case 'Address):
6822         If the initialization is the equivalent aggregate of the initialization
6823         procedure of the type, do not remove it.
6824         (Expand_N_Attribute_Definition_Clause): Exclude access variables
6825         initialized to null from having their expression reset to empty and
6826         note this exception in the comment.
6827
6828 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
6829             Robert Dewar  <dewar@adacore.com>
6830             Ed Schonberg  <schonberg@adacore.com>
6831             Gary Dismukes  <dismukes@adacore.com>
6832
6833         * exp_ch2.adb: Remove "with" and "use" clauses for Namet and Snames.
6834         Add "with" and "use" clauses for Sem_Attr.
6835         (Expand_Current_Value): Do not replace occurences of attribute
6836         references where the prefix must be a simple name.
6837
6838         * sem_attr.ads, sem_attr.adb: Remove "with" and "use" clauses for
6839         Namet. Add new arrays Attribute_Name_Modifies_Prefix and
6840         Attribute_Requires_Simple_Name_Prefix.
6841         (Name_Modifies_Prefix): Body of new function.
6842         (Requires_Simple_Name_Prefix): Body of new function.
6843         (Resolve_Attribute, case Access): Improve error message for case of
6844         mismatched conventions.
6845         (Analyze_Attribute, case 'Tag): The prefix the attribute cannot be of an
6846         incomplete type.
6847         (Analyze_Attribute, case 'Access): If the type of the prefix is a
6848         constrained subtype for a nominal unconstrained type, use its base type
6849         to check for conformance with the context.
6850         (Resolve_Attribute): Remove test of the access type being associated
6851         with a return statement from condition for performing accessibility
6852         checks on access attributes, since this case is now captured by
6853         Is_Local_Anonymous_Access.
6854         (Analyze_Access_Attribute): Set Address_Taken on entity
6855         (Analyze_Attribute, case Address): Set Address_Taken on entity
6856         (OK_Self_Reference): Traverse tree to locate enclosing aggregate when
6857         validating an access attribute whose prefix is a current instance.
6858         (Resolve_Attribute): In case of attributes 'Code_Address and 'Address
6859         applied to dispatching operations, if freezing is required then we set
6860         the attribute Has_Delayed_Freeze in the prefix's entity.
6861         (Check_Local_Access): Set flag Suppress_Value_Tracking_On_Call in
6862         current scope if access of local subprogram taken
6863         (Analyze_Access_Attribute): Check legality of self-reference even if the
6864         expression comes from source, as when a single component association in
6865         an aggregate has a box association.
6866         (Resolve_Attribute, case 'Access): Do not apply accessibility checks to
6867         the prefix if it is a protected operation and the attribute is
6868         Unrestricted_Access.
6869         (Resolve_Attribute, case 'Access): Set the Etype of the attribute
6870         reference to the base type of the context, to force a constraint check
6871         when the context is an access subtype with an explicit constraint.
6872         (Analyze_Attribute, case 'Class): If the prefix is an interface and the
6873         node is rewritten as an interface conversion. leave unanalyzed after
6874         resolution, to ensure that type checking against the context will take
6875         place.
6876
6877 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
6878             Javier Miranda  <miranda@adacore.com>
6879             Robert Dewar  <dewar@adacore.com>
6880
6881         * exp_ch3.adb (Make_Controlling_Function_Wrappers): generate wrapper a
6882         wrapper when the full view of the controlling type of an inherited
6883         function that dispatches on result implements interfaces.
6884         (Expand_N_Object_Declaration): In cases where the type of the
6885         declaration is anonymous access, create finalization list for it.
6886         (Expand_N_Object_Declaration): Generate a persistent_bss directive only
6887         if the object has no explicit initialization, to match description of
6888         functionality of pragam Persistent_BSS.
6889         (Build_Equivalent_Array_Aggregate, Build_Equivalent_Record_Aggregate):
6890         new function to build static aggregates, to replace initialization call
6891         when static initialization is desired.
6892         (Freeze_Type): Generate a list controller for an access type whenever
6893         its designated type has controlled anonymous access discriminants.
6894         (Build_Equivalent_Aggregate): New procedure to compute a static
6895         aggregate to be used as default initialization for composite types,
6896         instead of a generating a call to the initialization procedure for the
6897         type.
6898         (Build_Initialization_Call): When available, replace a call to the
6899         initialization procedure with a copy of the equivalent static aggregate
6900         for the type.
6901         (Expand_N_Object_Declaration):  Use New_Occurrence_Of in generated
6902         declarations for objects of a class-wide interface type, rather than
6903         just identifiers, to prevent visibility problems.
6904         (Expand_N_Object_Declaration): When expanding the declaration for an
6905         object of a class-wide interface type, preserve the homonym chain of
6906         the original entity before exchanging it with that of the generated
6907         renaming declaration.
6908         (Freeze_Enumeration_Type): Don't raise CE if No_Exception_Propagation
6909         active, because there is no way to handle the exception.
6910         (Freeze_Record_Type): In case of CPP_Class types add a call to Make_DT
6911         to do a minimum decoration of the Access_Disp_Table list.
6912         (Expand_Record_Controller): Avoid the addition of the controller between
6913         the component containing the tag of a secondary dispatch table and its
6914         adjacent component that stores the offset to the base of the object.
6915         This latter component is only generated when the parent type has
6916         discriminants ---documented in Add_Interface_Tag_Components).
6917         (Apply_Array_Size_Check): Removed, no longer needed.
6918         (Expand_N_Full_Type_Declaration): If the type has anonymous access
6919         components, create a Master_Entity for it only if it contains tasks.
6920         (Build_Init_Procedure): Suppress the tag assignment compiling under
6921         no run-time mode.
6922         (Freeze_Record_Type): Remove code associated with creation of dispatch
6923         table.
6924         (Init_Secondary_Tags): Update type of actuals when generating calls to
6925         Ada.Tags.Set_Offset_To_Top
6926         (Stream_Operation_OK): Disable use of streams compiling under no
6927         run-time mode
6928         (Expand_N_Object_Declaration): Don't do Initialize_Scalars initalization
6929         if Has_Init_Expression set.
6930         (Build_Init_Procedure): Replace call to Fill_DT_Entry by call to
6931         Register_Primitive, which provides the same functionality.
6932         (Requires_Init_Proc): Return false in case of interface types.
6933         (Add_Secondary_Tables): Use the new attribute Related_Interface to
6934         cleanup the code.
6935         (Predefined_Primitive_Freeze): Do not assume that an internal entity
6936         is always associated with a predefined primitive because the internal
6937         entities associated with interface types are not predefined primitives.
6938         Therefore, the call to Is_Internal is replaced by a call to the
6939         function Is_Predefined_Dispatching_Operation.
6940         (Make_Eq_If): When generating the list of comparisons for the
6941         components of a given variant, omit the controller component that is
6942         present if the variant has controlled components.
6943
6944 2007-06-06  Javier Miranda  <miranda@adacore.com>
6945             Hristian Kirtchev  <kirtchev@adacore.com>
6946             Bob Duff  <duff@adacore.com>
6947
6948         * exp_ch4.adb (Complete_Coextension_Finalization): Add machinery to
6949         handle the creation of finalization lists and calls for nested
6950         coextensions when the root of the chains is part of a return statement.
6951         (Inside_A_Return_Statement): New function inside Complete_Coextension_
6952         Finalization.
6953         (Expand_Record_Equality): Skip components that are interface types.
6954         (Displace_Allocator_Pointer): Add missing support for interface subtypes
6955         (Expand_N_Allocator): Replace invocation of Is_Local_Access_Discriminant
6956         with Rewrite_Coextension. Change the condition for detecting coextension
6957         root nodes.
6958         (Is_Local_Access_Discriminant): Removed.
6959         (Rewrite_Coextension): New routine which rewrites a static coextension
6960         as a temporary and uses its unrestricted access in the construction of
6961         the outer object.
6962         (Complete_Coextension_Finalization): New routine. Generate finalization
6963         attachment calls to all delayed coextensions.
6964         (Expand_N_Allocator): Call Complete_Coextension_Finalization whenever
6965         the allocator is not a coextension itself and has delayed coextensions.
6966         If the current allocator is controlled, but also a coextension, delay
6967         the generation of the finalization attachment call.
6968         Rename local variable "Node" to "Nod" in order to avoid confusion with
6969         "Elists.Node".
6970         (Expand_Allocator_Expression): Call Adjust for initialized allocators of
6971         limited types that are not inherently limited. Such an allocator is
6972         illegal, but is generated by the expander for a return statement, to
6973         copy the result onto the secondary stack. This is the only case where a
6974         limited object can be copied. Generate code to displace the pointer
6975         to the object if the qualified expression is a class-wide interface
6976         object. Such displacement was missing and hence the copy of the object
6977         was wrong.
6978         (Apply_Accessibility_Check): Handle allocated objects initialized in
6979         place.
6980         (Displace_Allocator_Pointer): Subsidiary procedure to Expand_N_Allocator
6981         and Expand_Allocator_Expression. Allocating class-wide interface objects
6982         this routine displaces the pointer to the allocated object to reference
6983         the component referencing the corresponding secondary dispatch table.
6984         Expand_Allocator_Expression): Add missing support to allocate class-wide
6985         interface objects initialized with a qualified expression.
6986         (Get_Allocator_Final_List): Test for an anonymous access type that is a
6987         function result type, and use the finalization list associated with the
6988         function scope in that case (such an anonymous type should not be
6989         treated like an access parameter's type).
6990
6991 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
6992             Gary Dismukes  <dismukes@adacore.com>
6993             Javier Miranda  <miranda@adacore.com>
6994
6995         * exp_ch5.adb (Expand_N_Assignment_Statement): For the assignment of a
6996         controlled type, use Make_Handler_For_Ctrl_Operation to construct the
6997         required exception handler.
6998         (Expand_Simple_Function_Return, Expand_N_Return_Statement): Handle
6999         properly the case of a function whose return type is a limited
7000         class-wide interface type. Modify the code of the accessibility
7001         check to handle class-wide interface objects. In this case we need to
7002         displace "this" to reference the primary dispatch table to get access
7003         to the TSD of the object (to evaluate its accessibility level).
7004         (Expand_N_Extended_Return_Statement): Test for a tagged result type
7005         rather than a controlling result as one of the conditions for
7006         generating tests of the implicit BIP_Alloc_Form formal. The
7007         initialization assignment is also handled according to whether the
7008         result is tagged instead of controlling.
7009         In the case where the init assignment is inserted in the "then" part of
7010         the allocation conditional, rewrite the target to be a dereference of
7011         the implicit BIP_Object_Access formal.
7012         If the returned value is unconstrained and created on the secondary
7013         stack, mark the enclosing block and function so that the secondary
7014         stack is not reclaimed on return.
7015         Treat returns from functions with controlling results similarly to
7016         returns from functions with unconstrained result subtypes.
7017         If the object returned is unconstrained, and an allocator must be
7018         created for it, analyze the allocator once the block for the extended
7019         return is installed, to ensure that finalizable components
7020         of the expression use the proper finalization list. Guard the call to
7021         Move_Final_List with a check that there is something to finalize.
7022         (Make_Tag_Ctrl_Assignment): Use "old" handling
7023         of controlled type assignment for virtual machines, since new code uses
7024         unsupported features (such as direct access to bytes in memory).
7025
7026 2007-06-06  Gary Dismukes  <dismukes@adacore.com>
7027             Ed Schonberg  <schonberg@adacore.com>
7028
7029         * exp_ch6.ads, exp_ch6.adb (Expand_Call): When adding an extra
7030         accessibility actual, check for the case of an aliased object that has
7031         been rewritten as an Access attribute, and assign Prev to Prev_Orig so
7032         we fall into processing for the attribute rather than the name of the
7033         object.
7034         (Expand_Inline_Call): If an actual is a literal, and the corresponding
7035         formal has its address taken in the body, create a temporary to capture
7036         value.  If the return type is a limited interface, do not treat the
7037         return value as Controlled.
7038         (Is_In_Place_Function):  If the return type is a limited interface,
7039         treat as returning in place. The actual returned object may not always
7040         be limited, but the caller has to assume that it is returned in place.
7041         (Add_Final_List_Actual_To_Build_In_Place_Call): If the call is the
7042         context of an allocator, use the correct finalization chain (that is,
7043         the chain belonging to the access type, rather than the chain belonging
7044         to the current scope).
7045         (Add_Alloc_Form_Actual_To_Build_In_Place_Call): Test for a tagged
7046         result type rather than a controlling result as a precondition for
7047         adding an allocation form actual to a build-in-place call.
7048         (Add_Final_List_Actual_To_Build_In_Place_Call): Ditto.
7049         (Freeze_Subprogram): Code cleanup. Remove all the code that register the
7050         primitive in the dispatch tables. This work is now done by Make_DT when
7051         the type is frozen.
7052         (Register_Predefined_DT_Entry): Removed.
7053         (Add_Return): If end label is not present, use sloc of last statement
7054         for generated return statement in procedure, for better gdb behavior
7055         on expanded code.
7056         (Add_Access_Actual_To_Build_In_Place_Call): Set parent fields of the
7057         object address nodes to ensure proper processing by routines like
7058         Insert_After*.
7059         (Expand_Call): Fix generation of validity check for parameter
7060         (Add_Alloc_Form_Actual_To_Build_In_Place_Call): Return without passing
7061         the allocation form parameter if the result subtype is constrained,
7062         except when the function has a controlling result.
7063         (Add_Final_List_Actual_To_Build_In_Place_Call): Test Controlled_Type
7064         rather than Is_Controlled and Has_Controlled_Component, since we want to
7065         include class-wide result types in this treatment. Also test for a
7066         controlling result, since that also requires passing a finalization
7067         list.
7068         (Make_Build_In_Place_Call_In_Allocator): Call Add_Alloc_Form_Actual_*
7069         even when the result subtype is constrained, to handle calls involving
7070         controlling results.
7071         (Make_Build_In_Place_Call_In_Anonymous_Context): Add_Alloc_Form_Actual_*
7072         is now called even when the result subtype is constrained, to handle
7073         calls involving controlling results.
7074         (Make_Build_In_Place_Call_In_Assignment): Remove test for Is_Constrained
7075         on call to Add_Alloc_Form_Actual_To_Build_In_Place_Call (that procedure
7076         now performs the test).
7077         (Make_Build_In_Place_Call_In_Object_Declaration):
7078         Add_Alloc_Form_Actual_* is now called even when the result subtype is
7079         constrained, to handle calls involving controlling results.
7080         (Add_Return): Accomodate rewritten pattern from local raise to goto
7081         transformation, so that we still recognize an transfer statement
7082         and do the right thing here in that case.
7083         (Expand_N_Subprogram_Body): Add dummy Push/Pop_xxx_Label nodes at start
7084         and end of subprogram code.
7085         (Register_Interface_DT_Entry, Register_Predefined_DT_Entry): Add missing
7086         support for primitives that are functions (without formals) with a
7087         controlling result.
7088         (Inherited_From_Formal): If the actual subtype has not generic parent
7089         type, it is not an actual for a formal derived type, and there is no
7090         operation to inherit from the formal.
7091
7092 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
7093             Thomas Quinot  <quinot@adacore.com>
7094
7095         * exp_ch7.ads, exp_ch7.adb (Expand_Cleanup_Actions): Set Sloc of
7096         inserted cleanup code appropriately for GDB use.
7097         (Make_Deep_Proc): Use Make_Handler_For_Ctrl_Operation to create
7098         exception handler for Deep_Adjust or Deep_Finalize.
7099         (Make_Handler_For_Ctrl_Operation): New subprogram. When runtime entity
7100         Raise_From_Controlled_Operation is available, use a call to that
7101         subprogram instead of a plain "raise Program_Error" node to raise
7102         Program_Error if an exception is propagated from an Adjust or Finalize
7103         operation.
7104         (Insert_Actions_In_Scope_Around): If the statement to be wrapped
7105         appears in the optional statement list of a triggering alternative, the
7106         scope actions can be inserted directly there, and not in the list that
7107         includes the asynchronous select itself.
7108
7109 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
7110             Robert Dewar  <dewar@adacore.com>
7111             Hristian Kirtchev  <kirtchev@adacore.com>
7112
7113         * exp_ch9.ads, exp_ch9.adb (Build_Protected_Entry): Set sloc of
7114         generated exception handler appropriately when debugging generated code.
7115         Deal properly with No_Exception_Propagation restriction mode.
7116         (Expand_N_Abort_Statement): Add an unchecked type conversion from
7117         System.Address to System.Tasking.Task_Id when processing the result of
7118         the predefined primitive _disp_get_task_id.
7119         (Expand_N_Asynchronous_Select): Clarify comment.
7120         (Expand_N_Protected_Type_Declaration): Minor code cleanup.
7121         (Find_Parameter_Type): New routine inside Type_Conformant_Parameters.
7122         (Type_Conformant_Parameters): New parameter Prim_Op_Typ. Code cleanup.
7123         (Add_Private_Declarations, Build_Protected_Body): Use proper slocs for
7124         privals and for generated call to Complete_Entry_Body, for better gdb
7125         behavior.
7126         (Copy_Result_Type): Utility to construct a parameter and result profile
7127         for protected functions whose return type is an anonymous access to
7128         subprogram.
7129         (Build_Protected_Sub_Spec and Expand_Access_Protected_Subprogram_Type):
7130         call the above.
7131         (Build_Task_Activation_Call): Insert Activate_Tasks call at proper
7132         point when the local-raise-to-goto transformation has taken place.
7133
7134 2007-06-06  Javier Miranda  <miranda@adacore.com>
7135             Nicolas Setton  <setton@adacore.com>
7136
7137         * exp_dbug.adb (Get_Encoded_Name): Modified to continue providing its
7138         functionality when the backend is generating code.
7139         Otherwise any serious error
7140         reported by the backend calling the frontend routine Error_Msg
7141         changes the Compilation_Mode to Check_Semantics, disables the
7142         functionality of this routine and causes the generation of
7143         spureous additional errors.
7144
7145         * exp_dbug.ads (Pointers to Unconstrained Arrays): Document the
7146         debugging information now generated by the compiler for fat-pointer
7147         types.
7148         Document the contents of DW_AT_producer in the GNAT Vendor extensions to
7149         DWARF2/3.
7150         Document GNAT Vendor extensions to DWARF 2/3 and the "-gdwarf+" switch.
7151
7152 2007-06-06  Thomas Quinot  <quinot@adacore.com>
7153
7154         * exp_dist.ads, exp_dist.adb (Make_Transportable_Check): New subprogram
7155         (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
7156         PolyORB_Support.Build_Subprogram_Receiving_Stubs):
7157         For a remote call to a function with a classwide return type, apply an
7158         E.4(18) check to the returned value.
7159         (Add_RACW_Primitive_Declarations_And_Bodies): Do not generate stubs for
7160         stream attributes of the designated type of an RACW, as they are not
7161         dispatching primitive operations.
7162
7163 2007-06-06  Geert Bosch  <bosch@adacore.com>
7164
7165         * exp_fixd.adb (Integer_Literal): Add optional argument to construct a
7166         negative literal
7167         (Do_Divide_Fixed_Fixed): Add comments to indicate Frac is always
7168         positive
7169         (Do_Divide_Fixed_Universal): Handle case of negative Frac.
7170         (Do_Multiply_Fixed_Fixed): Add coments to indicate Frac is always
7171         positive
7172         (Do_Multiply_Fixed_Universal): Handle case of negative Frac.
7173
7174 2007-06-06  Javier Miranda  <miranda@adacore.com>
7175
7176         * exp_imgv.adb (Expand_Value_Attribute): Disable compilation of this
7177         attribute compiling package Ada.Tags under No_Run_Time_Mode.
7178
7179 2007-06-06  Javier Miranda  <miranda@adacore.com>
7180
7181         * exp_intr.adb (Expand_Unc_Deallocation): Add missing support for
7182         deallocation of class-wide interface objects.
7183         (Expand_Dispatching_Constructor_Call): Take into account that if the
7184         result of the dispatching constructor is an interface type, the
7185         function returns a class-wide interface type; otherwise the returned
7186         object would be actual. The frontend previously accepted returning
7187         interface types because Expand_Interface_Actuals silently performed
7188         the management of the returned type "as if" it were a class-wide
7189         interface type.
7190         (Expand_Dispatching_Constructor_Call): Replace call to
7191         Make_DT_Access_Action by direct call to Make_Function_Call.
7192
7193 2007-06-06  Robert Dewar  <dewar@adacore.com>
7194             Ed Schonberg  <schonberg@adacore.com>
7195
7196         * exp_pakd.adb (Expand_Packed_Not): Use RM_Size rather than ESize to
7197         compute masking constant, since we now set Esize properly to the
7198         underlying size.
7199         (Create_Packed_Array_Type): Set proper Esize value adjusted as required
7200         to match the alignment.
7201         (Create_Packed_Array_Type): Use Short_Short_Unsigned as base type for
7202         packed arrays of 8 bits or less.
7203
7204         * freeze.adb (Freeze_Entity): When freezing the formals of a
7205         subprogram, freeze the designated type of a parameter of an access type
7206         only if it is an access parameter.
7207         Increase size of C convention enumeration object
7208         (Freeze_Entity, array type case): Make sure Esize value is properly
7209         adjusted for the alignment if it is known.
7210         (Freeze_Entity, array type case): When checking bit packed arrays for
7211         the size being incorrect, check RM_Size, not Esize.
7212         (Freeze_Record_Type): Check for bad discriminated record convention
7213         (In_Exp_Body): Return true if the body is generated for a subprogram
7214         renaming, either an attribute renaming or a renaming as body.
7215         (Check_Itype): If the designated type of an anonymous access component
7216         is a non-protected subprogram type, indicate that it is frozen, to
7217         prevent out-of-scope freeze node at some subsequent call.
7218         (Freeze_Subprogram): On OpenVMS, reject descriptor passing mechanism
7219         only if the subprogram is neither imported nor exported, as well as the
7220         NCA descriptor class if the subprogram is exported.
7221
7222 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
7223             Arnaud Charlet  <charlet@adacore.com>
7224             Robert Dewar  <dewar@adacore.com>
7225             Gary Dismukes  <dismukes@adacore.com>
7226
7227         * exp_prag.adb (Expand_Pragma_Import_Or_Interface): Remove properly a
7228         default initialization on an imported object, when there is no
7229         initialization call generated for it.
7230         (Expand_Pragma_Assert): Add handling of No_Exception_Propagation
7231         restriction
7232
7233         * snames.h, snames.ads, snames.adb, par-prag.adb: New pragma
7234         Static_Elaboration_Desired.
7235         Remove pragma Thread_Body.
7236         Implement a new pragma No_Body
7237         Removes the Explicit_Overriding pragma
7238         Remove Optional_Overriding pragma
7239         (Prag): Deal with Universal_Aliasing.
7240         (Name_CIL, Name_CIL_Constructor, Convention_CIL,
7241         Pragma_CIL_Constructor): New names.
7242
7243         * sem_cat.adb (Validate_Object_Declaration): An initialization that
7244         uses the equivalent aggregate of a type must be treated as an implicit
7245         initialization.
7246         (Get_Categorization): Check a unit for pragma Preelaborate only if it
7247         has none of the other categories.
7248         (Process_Import_Or_Interface_Pragma): Report an error for an attempt
7249         to apply Import to an object renaming declaration.
7250
7251         * sem_prag.adb (Process_Import_Or_Interface): Warn that a type imported
7252         from a C++ class should be declared as limited and that it will be
7253         considererd limited.
7254         (Analyze_Pragma): Warn that a type specified with pragma CPP_Class
7255         should be declared as limited and that it will be considererd limited.
7256         (Ada_2005_Pragma): New procedure, used to deal with Ada 2005 pragmas
7257         (Analyze_Pragma, case Export): Diagnose export of enumeration literal
7258         (Analyze_Pragma): Deal with Universal_Aliasing.
7259         (Sig_Flags): Likewise.
7260         (Set_Encoded_Interface_Name): Suppress encoding when compiling for AAMP.
7261         (Overflow_Checks_Unsuppressed): New flag.
7262         (Process_Suppress_Unsuppress): Set Overflow_Checks_Unsuppressed.
7263         (Analyze_Pragma [case Pack]): Ignore pragma Pack and post warning in
7264         case of JVM or .NET targets, and compiling user code.
7265         Add debugging convenience routine rv
7266
7267 2007-06-06  Robert Dewar  <dewar@adacore.com>
7268
7269         * exp_strm.adb (Make_Field_Attributes): Avoid _Parent components that
7270         are interface type.
7271         (Build_Elementary_Input_Call): For floating-point use right type in the
7272         absence of strange size or stream size clauses.
7273         (Build_Elementary_Write_Call): Same fix
7274         (Has_Stream_Standard_Rep): Returns False if Stream_Size attribute
7275         set to value that does not match base type size.
7276
7277 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
7278
7279         * exp_util.ads, exp_util.adb (Expand_Subtype_From_Expr): In Ada2005, an
7280         object of a limited type can be initialized with a call to a function
7281         that returns in place. If the limited type has unknown discriminants,
7282         and the underlying type is a constrained composite type, build an actual
7283         subtype from the function call, as is done for private types.
7284         (Side_Effect_Free): An expression that is the renaming of an object or
7285         whose prefix is the renaming of a object, is not side-effect free
7286         because it may be assigned through the renaming and its value must be
7287         captured in a temporary.
7288         (Has_Controlled_Coextensions): New routine.
7289         (Expand_Subtype_From_Expr): Do nothing if type is a limited interface,
7290         as is done for other limited types.
7291         (Non_Limited_Designated_Type): new predicate.
7292         (Make_CW_Equivalent_Type): Modified to handle class-wide interface
7293         objects.
7294         Remove all handling of with_type clauses.
7295
7296         * par-ch10.adb: Remove all handling of with_type clauses.
7297
7298         * lib-load.ads, lib-load.adb (Load_Main_Source): Do not get the
7299         checksum if the main source could not be parsed.
7300         (Loat_Unit): When processing a child unit, determine properly whether
7301         the parent unit is a renaming when the parent is itself a child unit.
7302         Remove handling of with_type clauses.
7303
7304         * sinfo.ads, sinfo.adb (Is_Static_Coextension): New function.
7305         (Set_Is_Static_Coextension): New procedure.
7306         (Has_Local_Raise): New function
7307         (Set_Has_Local_Raise): New procedure
7308         (Renaming_Exception): New field
7309         (Has_Init_Expression): New flag
7310         (Delay_Finalize_Attach): Remove because flag is obsolete.
7311         (Set_Delay_Finalize_Attach): Remove because flag is obsolete.
7312         Remove all handling of with_type clauses.
7313         (Exception_Junk): Can now be set in N_Block_Statement
7314
7315 2007-06-06  Vincent Celier  <celier@adacore.com>
7316             Robert Dewar  <dewar@adacore.com>
7317
7318         * frontend.adb (Frontend): Return immediately if the main source could
7319         not be parsed, because of preprocessing errors.
7320
7321         * gnat1drv.adb (gnat1drv): Handle RE_Not_Available gracefully.
7322         (Gnat1drv): Exit with errors if the main source could not be parsed,
7323         because of preprocessing errors.
7324         (Check_Rep_Info): New procedure
7325
7326 2007-06-06  Robert Dewar  <dewar@adacore.com>
7327
7328         * g-hesorg.ads, g-heasor.ads,
7329         g-busorg.ads, g-bubsor.ads: Update documentation
7330         GNAT.Heap/Bubble_Sort_G is now pure
7331
7332 2007-06-06  Robert Dewar  <dewar@adacore.com>
7333
7334         * g-catiio.ads, g-catiio.adb (Image): Check for null picture string
7335
7336 2007-06-06  Robert Dewar  <dewar@adacore.com>
7337             Ed Schonberg  <schonberg@adacore.com>
7338
7339         * g-comlin.ads, g-comlin.adb: 
7340         Add new warning for renaming of function return objects
7341
7342         * opt.adb (Tree_Write, Tree_Read): Use proper expressions for size
7343         (Tree_Read): Use size of object instead of type'object_size, since the
7344         latter is incorrect for packed array types.
7345         (Tree_Write): Same fix
7346
7347         * opt.ads: Add new warning for renaming of function return objects
7348         (Generating_Code): New boolean variable used to indicate that the
7349         frontend as finished its work and has called the backend to process
7350         the tree and generate the object file.
7351         (GCC_Version): Is now private
7352         (Static_Dispatch_Tables): New constant declaration.
7353         (Overflow_Checks_Unsuppressed): New flag.
7354         (Process_Suppress_Unsuppress): Set Overflow_Checks_Unsuppressed.
7355         (List_Closure): New flag for gnatbind (-R)
7356         Zero_Formatting: New flag for gnatbind (-Z)
7357         (Special_Exception_Package_Used): New flag.
7358         (Warn_On_Unrepped_Components): New flag.
7359
7360         * sem_ch8.adb (Check_Library_Unit_Renaming): Check that the renamed
7361         unit is a compilation unit, rather than relying on its scope, so that
7362         Standard can be renamed.
7363         (Analyze_Object_Renaming): Add new warning for renaming of function
7364         return objects.
7365         Also reject attempt to rename function return object in Ada 83 mode.
7366         (Attribute_Renaming): In case of tagged types, add the body of the
7367         generated function to the freezing actions of the type.
7368         (Find_Type): A protected type is visible right after the reserved word
7369         "is" is encountered in its type declaration. Set the entity and type
7370         rather than emitting an error message.
7371         (New_Scope): Properly propagate Discard_Names to inner scopes
7372         (Check_Nested_Access): New procedure.
7373         (Has_Nested_Access, Set_Has_Nested_Access): New procedures.
7374         (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
7375
7376         * sem_warn.ads, sem_warn.adb: Improvements to infinite loop warning
7377         Add new warning for renaming of function return objects
7378         (Check_References): Suppress warnings for objects whose type or
7379         base type has Warnings suppressed.
7380         (Set_Dot_Warning_Switch): Add processing for -gnatw.c/C
7381         (Set_Warning_Switch): Include new -gnatwc in -gnatwa
7382
7383 2007-06-06  Vincent Celier  <celier@adacore.com>
7384             Emmanuel Briot  <briot@adacore.com>
7385             Olivier Hainque  <hainque@adacore.com>
7386
7387         * g-debpoo.ads, g-debpoo.adb (Free_Physically.Free_Blocks): Use the
7388         absolute value of Header.Block_Size when displaying the freed physical
7389         memory in traces.
7390         (Allocate): Compute Storage_Address using Integer_Address, not
7391         Storage_Offset, because the range of Storage_Offset may not be large
7392         enough.
7393         (Configure): New parameter Low_Level_Traces
7394         (Allocate, Deallocation, Free_Physically): Added low-level traces
7395         (Configure): new parameter Errors_To_Stdout.
7396         (Output_File): new subprogram
7397         (Deallocate, Dereference): Send error messages to the proper stream
7398         (Print_Pool, Print_Info_Stdout): Make sure the output goes to stdout, as
7399         documented. Previous code would send it to the current output file
7400         defined in GNAT.IO, which might not be stdout
7401         (Is_Valid): Adjust comment to mention that a positive reply means that
7402         Header_Of may be used to retrieve the allocation header associated with
7403         the subprogram Storage address argument. Return False early if this
7404         address argument is misaligned.
7405
7406 2007-06-06  Vincent Celier  <celier@adacore.com>
7407
7408         * gnatcmd.adb (GNATCmd): Accept switch -aP for commands that accept
7409         switch -P
7410         (ASIS_Main): New global variable
7411         (Get_Closure): New procedure
7412         (GNATCmd): Set ASIS_Main when -P and -U with a main is used for gnat
7413         check, metric or pretty. Call Get_Closure in this case.
7414         (Check_Files): For GNAT LIST, check all sources of all projects when
7415         All_Projects is True.
7416         (GNATCmd): Accept -U for GNAT LIST
7417
7418 2007-06-06  Vincent Celier  <celier@adacore.com>
7419
7420         * gnatlink.adb (Gnatlink): Do not specify -static-libgcc when --LINK=
7421         has been specified
7422         Correct error message when invocation of the linker fails
7423         Add explicit size clause for the C imported variables
7424         Object_List_File_Supported and Using_GNU_Linker to emphasize that
7425         we expect char size.
7426         Read target parameters earlier, since this is needed to set
7427         Target_VM properly. Also do not use -static/shared-libgcc for non GCC
7428         targets.
7429
7430 2007-06-06  Vincent Celier  <celier@adacore.com>
7431
7432         * gnatls.adb: 
7433         Add 3 spaces before the default project directory when displaying
7434         the project search path.
7435         Add new command line switch '-l' to display license information.
7436
7437 2007-06-06  Vasiliy Fofanov  <fofanov@adacore.com>
7438
7439         * gmem.c: Add support for timestamps on memory operations.
7440
7441         * memtrack.adb, gnatmem.adb: Add support for timestamps on memory
7442         operations (not used currently, just foundation for future
7443         enhancements). Add possibility to perform full dump of gmem.out file.
7444         (Print_Back_Traces): Declare accesses to root arrays constants since
7445         they aren't modified.
7446         (Print_Back_Traces): allocate root arrays on the heap rather than stack.
7447
7448 2007-06-06  Vincent Celier  <celier@adacore.com>
7449
7450         * gnatsym.adb: Update Copyright notice
7451         (Parse_Cmd_Line): Accept new switch -D
7452         (Gnatsym): In Direct policy (switch -D) copy reference file to symbol
7453          file.
7454
7455         * prj.ads (Policy): New policy Direct
7456         (Yes_No_Unknown): New enumeration type
7457         (Project_Data): New component Libgnarl_Needed
7458
7459         * prj-nmsc.adb (Check_For_Source): When recording a source file make
7460         use the untouched pathname casing.
7461         (Get_Directories): Ensure that the Display_Exec_Directory is using the
7462         proper casing on non case-sensitive platforms like Windows.
7463         (Get_Unit): Accept file names x__... and x~... (where x = a, g, i or s)
7464         on all platforms, as it is not possible to know which one is allowed
7465         before processing the project files.
7466         (Check_Stand_Alone_Library): Check that Library_Reference_Symbol_File is
7467         specified when symbol policy is Direct. Check that when there is a
7468         symbol file defined (either by default or with attribute
7469         Library_Symbol_File) it is not the same as the reference symbol file.
7470         (Check_Stand_Alone_Library): Recognize new symbol policy Direct.
7471         (Look_For_Sources): Allow Locally_Removed_Files to be declare in non
7472         extending projects.
7473         (Record_Ada_Source): Record a source that has been locally removed in an
7474         imported project.
7475
7476         * symbols.ads (Policy): New policy Direct
7477
7478         * symbols-vms.adb (Initialize): Take new policy Direct in case
7479         statement
7480
7481 2007-06-06  Vincent Celier  <celier@adacore.com>
7482
7483         * g-os_lib.ads, g-os_lib.adb (Normalize_Pathname.Get_Directory):
7484         Correct obvious bug (return Dir; instead of return Directory;).
7485         (Normalize_Pathname): Use Reference_Dir'Length, not Reference_Dir'Last
7486
7487 2007-06-06  Thomas Quinot  <quinot@adacore.com>
7488
7489         * g-pehage.adb (Produce): Open output files in Binary mode, so that
7490         they have UNIX line endings (LF only) even on Windows, and thus pass
7491         all GNAT style checks.
7492
7493 2007-06-06  Emmanuel Briot  <briot@adacore.com>
7494
7495         * g-regpat.adb (Quote): Fix improper quoting of '.'
7496
7497 2007-06-06  Thomas Quinot  <quinot@adacore.com>
7498
7499         * g-soccon.ads: Add new constant Thread_Blocking_IO, always True by
7500         default, set False on a per-runtime basis.
7501         (Need_Netdb_Buffer): New constant.
7502
7503         * g-socket.ads, g-socket.adb: Import new package
7504         GNAT.Sockets.Thin.Task_Safe_NetDB.
7505         (Raise_Host_Error): Use Host_Error_Message from platform-specific thin
7506         binding to obtain proper message.
7507         (Close_Selector): Use GNAT.Sockets.Thin.Signalling_Fds.Close.
7508         Replace various occurrences of Arry (Arry'First)'Address with the
7509         equivalent Arry'Address (GNAT always follows implementation advice from
7510         13.3(14)).
7511         (Get_Host_By_Address, Get_Host_By_Name,
7512         Get_Service_By_Name, Get_Service_By_Port): Do not use GNAT.Task_Lock;
7513         instead, rely on platform-specific task safe netdb operations provided
7514         by g-socthi.
7515
7516         * g-socthi.ads, g-socthi.adb (Initialize): Remove obsolete formal
7517         parameter Process_Blocking_IO.
7518         (Host_Error_Messages): Add stub body.
7519         (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
7520         (Safe_Gethostbyname, Safe_Gethostbyaddr, Safe_Getservbyname,
7521         Safe_Getservbyport): Move functions into new child package
7522         Task_Safe_NetDB.
7523         (Nonreentrant_Gethostbyname, Nonreentrant_Gethostbyaddr,
7524         Nonreentrant_Getservbyname, Nonreentrant_Getservbyport): New routines.
7525         (In_Addr): Add alignment clause.
7526
7527 2007-06-06  Robert Dewar  <dewar@adacore.com>
7528
7529         * g-trasym.ads, g-traceb.ads: Update list of supported targets
7530         Add note about symbolic traceback
7531
7532 2007-06-06  Pascal Obry  <obry@adacore.com>
7533
7534         * hostparm.ads (Normalized_CWD): Use the host directory separator
7535         instead of the hardcoded forward slash which is not the proper
7536         character on Windows for example.
7537         (Java_VM): Removed.
7538
7539 2007-06-06  Vincent Celier  <celier@adacore.com>
7540             Arnaud Charlet  <charlet@adacore.com>
7541
7542         * a-clrefi.adb, a-clrefi.ads: New files
7543
7544         * impunit.adb: Add s-os_lib in the list of user visible units.
7545         (Non_Imp_File_Names_95): Add a-clrefi to this list
7546         Remove obsolete run-time entries.
7547         (Non_Imp_File_Names_05): Add Ada 2005 entries for:
7548          "a-exetim" -- Ada.Execution_Time
7549          "a-extiti" -- Ada.Execution_Time.Timers
7550
7551         * mlib-prj.ads, mlib-prj.adb
7552         (Build_Library): Use untouched object dir and library dir. At the
7553         same time makes sure that the checks are done using the canonical
7554         form. Removes hard-coded directory separator and use the proper host
7555         one instead.
7556         (Process_Project): Do not look in object directory to check if libgnarl
7557         is needed for a library, if there is no object directory.
7558         (Build_Library): Scan the ALI files to decide if libgnarl is needed for
7559         linking.
7560         (Build_Library): When invoking gnatbind, use a response file if the
7561         total size of the arguments is too large.
7562
7563         * Makefile.rtl: (g-sttsne): New object file.
7564         Add entry for a-clrefi, s-utf_32, System.Exceptions
7565
7566         * Make-lang.in: Remove bogus dependency of s-memory.o on memtrack.o.
7567         (GNAT_ADA_OBJS, GNATBIND_OBJS): Add s-except.o.
7568         (GNATBIND_OBJS): Add new objects a-clrefi.o and a-comlin.o
7569         Change g-string to s-string, g-os_lib to s-os_lib
7570         Change all g-utf_32 references to s-utf_32
7571
7572 2007-06-06  Tristan Gingold  <gingold@adacore.com>
7573             Olivier Hainque  <hainque@adacore.com>
7574
7575         * init.c: Do not adjust IP of an imported VMS exception of ia64.
7576         LIB$STOP is called to raise an exception and the IP of the exception
7577         is the instruction right after the call.
7578         (__gnat_adjust_context_for_raise, AIX): Implement.
7579         (__gnat_error_handler, AIX): Accept SIGINFO related arguments and call
7580          adjust_context_for_raise before Raise_From_Signal_Hanler.
7581         (__gnat_install_handler, AIX): Add SA_SIGINFO to the sa_flags, to ensure
7582         siginfo is passed to the handler, necessary to let the zcx propagation
7583         engine unwind past it.
7584
7585 2007-06-06  Olivier Hainque  <hainque@adacore.com>
7586
7587         * initialize.c (__gnat_initialize for vxworks):  Update documentation
7588         on the ZCX support, using different sets of crtstuff objects than with
7589         GCC 3.4.
7590
7591 2007-06-06  Robert Dewar  <dewar@adacore.com>
7592
7593         * layout.ads, layout.adb (Adjust_Esize_Alignment): Move spec to package
7594         spec from body
7595         (Layout_Type): Fix recomputation of size from alignment.
7596
7597 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
7598             Javier Miranda  <miranda@adacore.com>
7599
7600         * sem_ch12.adb (Analyze_Associations): Diagnose use of an others
7601         association in an instance.
7602         (Copy_Generic_Node): If the node is a string literal, no need to copy
7603         its descendants.
7604         (Is_Generic_Formal): For a formal subprogram, the declaration is the
7605         grandparent of the entity.
7606         (Analyze_Formal_Interface_Type): Transform into a full type declaration,
7607         to simplify handling of formal interfaces that derive from other formal
7608         interfaces.
7609         (Instantiate_Subprogram_Body): The defining unit name of the body of
7610         the instance should be a defining identifier.
7611         (Install_Formal_Packages): make global to the package, for use in
7612         instantiations of child units.
7613         (Analyze_Package_Instantiation): Do not attempt to set information on an
7614         enclosing master of an entry when expansion is disabled.
7615         (Instantiate_Type): If the actual is a tagged synchronized type and the
7616         generic ancestor is an interface, create a generic actual for the
7617         corresponding record.
7618         (Analyze_Formal_Derived_Interface_Type): Rewrite as a derived type
7619         declaration, to ensure that the interface list is processed correctly.
7620         (Inline_Instance_Body): If enclosing scope is an instance body, remove
7621         its entities from visibiility as well.
7622         (Pre_Analyze_Actuals): if the actual is an allocator with  constraints
7623         given with a named association, analyze the expression only, not the
7624         discriminant association itself.
7625         (Reset_Entity): If the analysis of a selected component is transformed
7626         into an expanded name in the prefix of a call with parameters, do not
7627         transform the original node into an expanded name, to prevent visibility
7628         errors in the case of nested generics.
7629         (Check_Private_View): For an array type, check whether the index types
7630         may need exchanging.
7631
7632 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
7633             Vincent Celier  <celier@adacore.com>
7634
7635         * lib-writ.adb: Handle Convention_CIL in addition to Convention_Java,
7636         since both are separated.
7637         Add support for imported CIL packages.
7638         Add further special handling of "value_type" for CIL.
7639         Add special handling of pragma Import for CIL.
7640
7641         * make.ads, make.adb: When switch -eS is used, direct all outputs to
7642         standard output instead of standard error, except errors.
7643         (Absolute_Path): Use untouched casing for the parent directory.
7644         (Add_Library_Search_Dir): Use the untouched directory name.
7645         (Add_Source_Search_Dir): Idem.
7646         (Change_To_Object_Directory): Update output to use proper casing.
7647         (Create_Binder_Mapping_File): Use the untouched filename to set
7648         ALI_Name.
7649         (Gnatmake): Use untouched library and executable directory names.
7650         (Insert_Project_Sources): Use untouched filename for spec and body.
7651         (Is_In_Object_Directory): Use untouched object directory.
7652         (Mark_Directory): Idem.
7653         (Collect_Arguments_And_Compile): Ensure that Full_Source_File always
7654         contains the non-canonical filename in all cases.
7655         (Change_To_Object_Directory): In verbose mode, display the name of the
7656         object directory we're changing to.
7657         (Compile_Sources): Make sure, when a project file is used, to compile
7658         the body of the unit, when there is one, even when only the spec is
7659         recorded in an ALI file.
7660         (Gcc_Switches, Binder_Switches, Linker_Switches): Tables moved from the
7661         spec to the body.
7662         (Report_Compilation_Failed): New procedure
7663         (Bind, Display_Commands, Compile_Sources, Initialize, Scan_Make_Arg):
7664         procedures moved from the spec to the body.
7665         (Extract_Failure): Removed, not used
7666         Replace explicit raises of exception Bind_Failed and Link_Failed with
7667         calls to Make_Failed with the proper message.
7668         Replace explicit raises of exception Compilation_Failed with calls to
7669         procedure Report_Compilation_Failed.
7670         (Initialize): Create mapping files unconditionally when using project
7671         files.
7672
7673         * sem_mech.adb: (Name_CIL, Name_CIL_Constructor, Convention_CIL,
7674         Pragma_CIL_Constructor): New names.
7675
7676         * targparm.ads, targparm.adb
7677         (Compiler_System_Version): Removed, no longer used.
7678         (Get_Target_Parameters): Relax checks on system.ads validity. Add
7679         handling of two new system flags: JVM and CLI.
7680
7681 2007-06-06  Jose Ruiz  <ruiz@adacore.com>
7682             Arnaud Charlet  <charlet@adacore.com>
7683
7684         * Makefile.in (LIBGNAT_TARGET_PAIRS for VxWorks 6): For the RTP run
7685         time, use the default s-interr body that provides interrupt support
7686         based on signals.
7687         (LIBGNAT_TARGET_PAIRS for x86-linux): Use specialized versions of
7688         a-exetim.ad{s,b}, a-extiti.ad{s,b}, a-rttiev.ad{s,b}, s-osinte.ad{s,b},
7689         g-soccon.ads, and s-taprop.adb for the marte run time.
7690         (EXTRA_GNATRTL_TASKING_OBJS for x86-linux): Execution time clocks and
7691         timers are supported on marte.
7692         (EH_MECHANISM for marte): Do not use ZCX.
7693         (THREADSLIB for marte): Use -lmarte.
7694         Add mlib-tgt-vms.o to the list of objects for gnatmake for VMS
7695         Add mlib-tgt-specific.o to gnatmake objects
7696         mlib-tgt-<platforms>.adb is now the body of MLib.Tgt.Specific, no
7697         longer of MLib.Tgt.
7698         (LIBGNAT_TARGET_PAIRS for vxworks): When building a run time for VxWorks
7699         6, either kernel or rtp, use a specialized version of s-osinte.ads.
7700
7701 2007-06-06  Pascal Obry  <obry@adacore.com>
7702
7703         * mkdir.c (__gnat_mkdir): Add support for UTF-8.
7704
7705 2007-06-06  Vincent Celier  <celier@adacore.com>
7706
7707         * mlib.ads, mlib.adb (Build_Library): Do not use hard-coded directory
7708         separator, use instead the proper host directory separator.
7709         (Copy_ALI_Files): Make sure that an already existing ALI file in the
7710         ALI copy dir is writable, before doing the copy.
7711
7712         * mlib-utl.ads, mlib-utl.adb: 
7713         (Gcc): If length of command line is too long, put the list of object
7714         files in a response file, if this is supported by the platform.
7715         (Ar): If invocation of the archive builder is allowed to be done in
7716         chunks and building it in one shot would go above an OS dependent
7717         limit on the number of characters on the command line, build the archive
7718         in chunks.
7719
7720 2007-06-06  Vincent Celier  <celier@adacore.com>
7721
7722         * osinte-c.ads, osint-c.adb (Set_Library_Info_Name): Fail if base name
7723         of specified object file is not equal to base name of source.
7724
7725 2007-06-06  Javier Miranda  <miranda@adacore.com>
7726             Hristian Kirtchev  <kirtchev@adacore.com>
7727             Ed Schonberg  <schonberg@adacore.com>
7728
7729         * sem_ch3.adb (Process_Full_View): Propagate the CPP_Class attribute to
7730         the full type declaration.
7731         (Analyze_Component_Declaration): Add local variable E to capture the
7732         initialization expression of the declaration. Replace the occurences of
7733         Expression (N) with E.
7734         (OK_For_Limited_Init_In_05): Allow initialization of class-wide
7735         limited interface object with a function call.
7736         (Array_Type_Declaration): If the declaration lacks subtype marks for
7737         indices, create a simple index list to prevent cascaded errors.
7738         (Is_Null_Extension): Ignore internal components created for secondary
7739         tags when checking whether a record extension is a null extension.
7740         (Check_Abstract_Interfaces): Add missing support for interface subtypes
7741         and generic formals.
7742         (Derived_Type_Declaration): Add missing support for interface subtypes
7743         and generic formals.
7744         (Analyze_Object_Declaration): If an initialization expression is
7745         present, traverse its subtree and mark all allocators as static
7746         coextensions.
7747         (Add_Interface_Tag_Component): When looking for components that may be
7748         secondary tags, ignore pragmas that can appear within a record
7749         declaration.
7750         (Check_Abstract_Overriding): an inherited function that dispatches on
7751         result does not need to be overriden if the controlling type is a null
7752         extension.
7753         (Mentions_T): Handle properly a 'class attribute in an anonymous access
7754         component declaration, when the prefix is an expanded name.
7755         (Inherit_Component): If the derivation is for a private extension,
7756         inherited components remain visible and their ekind should not be set
7757         to Void.
7758         (Find_Type_Of_Object): In the case of an access definition, always set
7759         Is_Local_Anonymous_Access. We were previously not marking the anonymous
7760         access type of a return object as a local anonymous type.
7761         (Make_Index): Use Ambiguous_Character to report ambiguity on a discrete
7762         range with character literal bounds.
7763         (Constrain_Array): Initialize the Packed_Array_Type field to Empty.
7764         (Access_Subprogram_Declaration): Indicate that the type declaration
7765         depends on an incomplete type only if the incomplete type is declared
7766         in an open scope.
7767         (Analyze_Subtype_Declaration): Handle properly subtypes of
7768         synchronized types that are tagged, and that may appear as generic
7769         actuals.
7770         (Access_Subprogram_Declaration): An anonymous access to subprogram can
7771         appear as an access discriminant in a private type declaration.
7772         (Add_Interface_Tag_Components): Complete decoration of the component
7773         containing the tag of a secondary dispatch table and the component
7774         containing the offset to the base of the object (this latter component
7775         is only generated when the parent type has discriminants --as documented
7776         in this routine).
7777         (Inherit_Components): Use the new decoration of the tag components to
7778         improve the condition that avoids inheriting the components associated
7779         with secondary tags of the parent.
7780         (Build_Discriminanted_Subtype): Indicate to the backend that the
7781         size of record types associated with dispatch tables is known at
7782         compile time.
7783         (Analyze_Subtype_Declaration): Propagate Is_Interface flag when needed.
7784         (Analyze_Interface_Declaration): Change setting of Is_Limited_Interface
7785         to include task, protected, and synchronized interfaces as limited
7786         interfaces.
7787         (Process_Discriminants): Remove the setting of
7788         Is_Local_Anonymous_Access on the type of (anonymous) access
7789         discriminants of nonlimited types.
7790         (Analyze_Interface_Type_Declaration): Complete the decoration of the
7791         class-wide entity it is is already present. This situation occurs if
7792         the limited-view has been previously built.
7793         (Enumeration_Type_Declaration): Initialize properly the Enum_Pos_To_Rep
7794         field.
7795         (Add_Interface_Tag_Components.Add_Tag): Set the value of the attribute
7796         Related_Interface.
7797
7798 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
7799
7800         * sem_aggr.adb (Resolve_Record_Aggregate): Ignore internal components
7801         of the type that specify the position of interface tags when the type
7802         inherits discriminated array components from the parent type.
7803         If a component is initialized with a box, check for the presence of a
7804         default expression in its declaration before using its default
7805         initialization procedure.
7806         (Resolve_Record_Aggregate): If a component is box-initialized, and the
7807         component type has a discriminants, create a partial aggregate for it
7808         by copying the discriminants of the component subtype.
7809         Reject attempt to initialize a discriminant with a box.
7810         (Array_Aggr_Subtype): Indicate to the backend that the size of arrays
7811         associated with dispatch tables is known at compile time.
7812         (Get_Value): If an association in a record aggregate has a box
7813         association, and the corresponding record component has a default
7814         expression, always copy the default expression, even when the
7815         association has a single choice, in order to create a proper
7816         association for the expanded aggregate.
7817
7818 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
7819             Robert Dewar  <dewar@adacore.com>
7820
7821         * par-ch12.adb (P_Generic_Associations): The source position of an
7822         Others association is that of the others keyword, not that of the token
7823         that follows the box.
7824         (P_Formal_Type_Definition): Handle formal access types that carry a
7825         not null indicator.
7826
7827         * par-ch3.adb (P_Known_Discriminant_Part_Opt, P_Component_Items): If
7828         multiple identifier are present, save Scan_State before scanning the
7829         colon, to ensure that separate trees are constructed for each
7830         declaration.
7831         (P_Identifier_Declarations): For object declaration, set new flag
7832         Has_Init_Expression if initialization expression present.
7833         (P_Null_Exclusion): Properly diagnose NOT NULL coming before NULL
7834         Improve NOT NULL error messages
7835
7836 2007-06-06  Robert Dewar  <dewar@adacore.com>
7837
7838         * par-ch4.adb: (P_Name): Recover from literal used as name
7839
7840 2007-06-06  Vincent Celier  <celier@adacore.com>
7841
7842         * prep.ads, prep.adb (Expression): New Boolean parameter Complemented,
7843         defaulted to False.
7844         In the "not" case, recursive call with Complemented set to True.
7845         Do not allow "or" or "and" operators when Complemented is True.
7846
7847 2007-06-06  Vincent Celier  <celier@adacore.com>
7848
7849         * prj.adb (Project_Empty): Gives default value for new component
7850         Libgnarl_Needed
7851
7852         * prj-attr.ads: Minor reformatting
7853
7854         * prj-env.ads, prj-env.adb (For_All_Object_Dirs): Register object
7855         directory using the untouched casing.
7856         (For_All_Source_Dirs): Idem.
7857
7858         * prj-ext.ads, prj-ext.adb (Search_Directories): New table to record
7859         directories specified with switches -aP.
7860         (Add_Search_Project_Directory): New procedure
7861         (Initialize_Project_Path): Put the directories in table
7862         Search_Directories in the project search path.
7863         (Initialize_Project_Path): For VMS, transform into canonical form the
7864         project path.
7865
7866 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
7867
7868         * restrict.ads, restrict.adb (No_Exception_Handlers_Set): Only return
7869         true if configurable run-time or No_Run_Time is set.
7870         (Set_Restriction): Avoid setting restriction No_Elaboration_Code when
7871         processing an unit which is not the one being compiled.
7872
7873 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
7874
7875         * s-arit64.adb: Replace System.Pure_Exceptions by Ada 05 syntax.
7876         Replace UC by Ada.UC
7877
7878         * s-bitops.adb: Get rid of System.Pure_Exceptions.
7879         Replace UC by Ada.UC
7880
7881 2007-06-06  Robert Dewar  <dewar@adacore.com>
7882
7883         * scng.adb: (Check_End_Of_Line): Deal with very long lines
7884
7885 2007-06-06  Robert Dewar  <dewar@adacore.com>
7886
7887         * sem.ads, sem.adb (Semantics): Save and restore Global_Discard_Names
7888         Remove no longer used nodes.
7889
7890 2007-06-06  Javier Miranda  <miranda@adacore.com>
7891             Ed Schonberg  <schonberg@adacore.com>
7892             Robert Dewar  <dewar@adacore.com>
7893
7894         * sem_ch10.ads, sem_ch10.adb (Analyze_Compilation_Unit): Disable check
7895         on obsolescent withed unit in case of limited-withed units.
7896         (Analyze_Compilation_Unit): Add guard to code that removed an
7897         instantiation from visibility, to prevent compiler aborts when
7898         instantiation is abandoned early on.
7899         (Install_Limited_Withed_Unit): Recognize a limited-with clause on the
7900         current unit being analyzed, and Distinguish local incomplete types
7901         from limited views of types declared elsewhere.
7902         (Build_Limited_Views.Decorate_Tagged_Type): Add documentation
7903         to state that the class-wide entity is shared by the limited-view
7904         and the full-view.
7905         (Analyze_With_Clause): Improve placement of flag for case of
7906         unimplemented unit.
7907         (Analyze_With_Clause): Recognize use of GNAT.Exception_Traces in a
7908         manner similar to GNAT.Current_Exception. This is a violation of
7909         restriction (No_Exception_Propagation), and also inhibits the
7910         optimization of local raise to goto.
7911         (Analyze_With_Clause): Check for Most_Recent_Exception being with'ed,
7912         and if so set Most_Recent_Exception_Used flag in Opt, and also check
7913         for violation of restriction No_Exception_Propagation.
7914
7915 2007-06-06  Javier Miranda  <miranda@adacore.com>
7916             Hristian Kirtchev  <kirtchev@adacore.com>
7917             Gary Dismukes  <dismukes@adacore.com>
7918
7919         * sem_ch11.adb (Analyze_Exception_Handlers): Add barrier to avoid the
7920         use of entity Exception_Occurrence if it is not available in the
7921         target run-time.
7922
7923         * sem_ch9.adb (Analyze_Protected_Type, Analyze_Task_Type): When
7924         concurrent types are declared within an Ada 2005 generic, build their
7925         corresponding record types since they are needed for overriding-related
7926         semantic checks.
7927         (Analyze_Protected_Type): Rearrange and simplify code for testing that a
7928         protected type does not implement a task interface or a nonlimited
7929         interface.
7930         (Analyze_Task_Type): Rearrange and simplify code for testing that a task
7931         type does not implement a protected interface or a nonlimited interface.
7932         (Single_Task_Declaration, Single_Protected_Declaration): use original
7933         entity for variable declaration, to ensure that debugging information
7934         is correcty generated.
7935         (Analyze_Protected_Type, Analyze_Task_Type): Do not call expander
7936         routines if the expander is not active.
7937         (Analyze_Task_Body): Mark all handlers to stop optimization of local
7938         raise, since special things happen for task exception handlers.
7939
7940         * sem_disp.adb (Check_Controlling_Formals): Add type retrieval for
7941         concurrent types declared within a generic.
7942         (Check_Dispatching_Operation): Do not emit warning about late interface
7943         operations in the context of an instance.
7944         (Check_Dispatching_Call): Remove restriction against calling a
7945         dispatching operation with a limited controlling result.
7946         (Check_Dispatching_Operation): Replace calls to Fill_DT_Entry and
7947         Register_Interface_DT_Entry by calls to Register_Primitive.
7948         (Check_Dispatching_Formals): Handle properly a function with a
7949         controlling access result.
7950
7951 2007-06-06  Robert Dewar  <dewar@adacore.com>
7952             Arnaud Charlet  <charlet@adacore.com>
7953
7954         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Stream_Size):
7955         Check for restriction No_Implementation_Attributes if in Ada 95 mode.
7956         (Storage_Pool): Do not crash when RE_Stack_Bounded_Pool is not available
7957         (Analyze_Attribute_Definition_Clause [External_Tag]): Generate error
7958         message when using a VM, since this attribute is not supported.
7959         (Analyze_Record_Representation_Clause): Give unrepped component warnings
7960
7961         * usage.adb: Add new warning for renaming of function return objects
7962         Indicate that -gnatwp and -gnatwP concern front-end inlining
7963         Add line for -gnatyg
7964         Add usage information for -gnatw.c/C
7965
7966 2007-06-06  Robert Dewar  <dewar@adacore.com>
7967             Ed Schonberg  <schonberg@adacore.com>
7968
7969         * sem_ch5.adb
7970         (Find_Var): Do not consider function call in test for infinite loop
7971         warning if warnings set off for function entity.
7972         (One_Bound): Do not create a temporary for a loop bound if it is a
7973         character literal.
7974         (Analyze_Assignment): Traverse the right hand side of an assignment and
7975         mark all allocators as static coextensions.
7976         (Analyze_Assignment): Exempt assignments involving a dispatching call
7977         to a function with a controlling access result from the check requiring
7978         the target to be class-wide.
7979
7980 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
7981             Ed Schonberg  <schonberg@adacore.com>
7982             Robert Dewar  <dewar@adacore.com>
7983             Javier Miranda  <miranda@adacore.com>
7984
7985         * sem_res.ads, sem_res.adb (Process_Allocator): Do not propagate the
7986         chain of coextensions when an allocator serves as the root of such a
7987         chain.
7988         (Propagate_Coextensions): Remove the test for the root being an
7989         allocator.
7990         (Resolve_Allocator): Add condition to ensure that all future decoration
7991         occurs on an allocator node. Add processing and cleanup for static
7992         coextensions.
7993         (Valid_Conversion): If the operand type is the limited view of a
7994         class-wide type, use the non-limited view is available to determine
7995         legality of operation.
7996         (Ambiguous_Character): move to spec, for use elsewhere.
7997         (Ambiguous_Character): Handle Wide_Wide_Character in Ada 2005 mode
7998         (Resolve_Range): Diagnose properly an ambiguous range whose bounds are
7999         character literals.
8000         (Resolve_Arithmetic_Op): Call Activate_Division_Check instead of setting
8001         Do_Division_Check flag explicitly.
8002         (Resolve_Actuals): If the actual is of a synchronized type, and the
8003         formal is of the corresponding record type, this is a call to a
8004         primitive operation of the type, that is declared outside of the type;
8005         the actual must be unchecked-converted to the type of the actual
8006         (Resolve_Call): Kill all current values for any subprogram call if
8007         flag Suppress_Value_Tracking_On_Call is set.
8008         (Resolve_Type_Conversion): Generate error message the the operand
8009         or target of interface conversions come from a limited view.
8010         (Check_Infinite_Recursion): Ignore generated calls
8011         (Check_Allocator_Discrim_Accessibility): New procedure for checking
8012         that an expression that constrains an access discriminant in an
8013         allocator does not denote an object with a deeper level than the
8014         allocator's access type.
8015         (Resolve_Allocator): In the case of an allocator initialized by an
8016         aggregate of a discriminated type, check that associations for any
8017         access discriminants satisfy accessibility requirements by calling
8018         Check_Allocator_Discrim_Accessibility.
8019         (Resolve_Equality_Op): Handle comparisons of anonymous access to
8020         subprogram types in the same fashion as other anonymous access types.
8021         (Resolve_Concatenation_Arg): Remove initial character '\' in an error
8022         message that is not a continuation message.
8023         (Resolve_Type_Conversion): Add missing support for conversion to
8024         interface type.
8025         (Resolve_Actuals): Introduce a transient scope around the call if an
8026         actual is a call to a function returning a limited type, because the
8027         resulting value must be finalized after the call.
8028         (Resolve_Actuals): If the call was given in prefix notations, check
8029         whether an implicit 'Access reference or implicit dereference must be
8030         added to make the actual conform to the controlling formal.
8031
8032 2007-06-06  Robert Dewar  <dewar@adacore.com>
8033             Javier Miranda  <miranda@adacore.com>
8034
8035         * sem_ch7.adb (Check_Anonymous_Access_Types): Fix error for null body
8036         (Derive_Inherited_Private_Subprogram): Code cleanup. In case of explicit
8037         overriding of an inherited private subprogram now there is no need to
8038         inherit its dispatching slot and reduce the size of the dispatch table.
8039         Set_All_DT_Position now ensures that the same slot is now assigned to
8040         both entities. This is required to statically build the dispatch table.
8041         (Declare_Inherited_Private_Subprograms): Rewriten to avoid the need
8042         of calling Set_All_DT_Position to re-evaluate the position of the
8043         entries in the dispatch table. Such reevaluation is not desired if
8044         the tagged type is already frozen.
8045
8046 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
8047             Gary Dismukes  <dismukes@adacore.com>
8048             Robert Dewar  <dewar@adacore.com>
8049             Javier Miranda  <miranda@adacore.com>
8050
8051         * sem_util.ads, sem_util.adb (May_Be_Lvalue): A prefix of an attribute
8052         reference acts as an lvalue when the attribute name modifies the prefix
8053         (Is_Coextension_Root): New routine.
8054         (Mark_Static_Coextensions): New routine.
8055         (Type_Access_Level): Revise code for checking the level of the
8056         anonymous access type of a return object.
8057         (Safe_To_Capture_Value): Not safe to capture if Address_Taken
8058         (Matches_Prefixed_View_Profile): Remove the no longer necessary
8059         retrieval of the corresponding controlling record type.
8060         (Find_Overridden_Synchronized_Primitive): Code cleanup. Add handling of
8061         concurrent types declared within a generic as well as class wide types.
8062         Emit a mode incompatibility error whenever a protected entry or routine
8063         override an interface routine whose first parameter is not of mode
8064         "out", "in out" or access to variable.
8065         (Overrides_Synchronized_Primitive): Rename to
8066         Find_Overridden_Synchronized_Primitive.
8067         (Collect_Interface_Components): New subprogram that collects all the
8068         components of a tagged record containing tags of secondary dispatch
8069         tables.
8070         (Add_Global_Declaration): New procedure
8071         (Abstract_Interface_List): Handle properly the case of a subtype of a
8072         private extension.
8073         (Type_Access_Level): In the case of a type whose parent scope is a
8074         return statement, call Type_Access_Level recursively on the enclosing
8075         function's result type to determine the level of the return object's
8076         type.
8077         (Build_Elaboration_Entity): Build name of elaboration entity from the
8078         scope chain of the entity, rather than the unit name of the file name.
8079         (Check_Nested_Access): New procedure.
8080         (Has_Up_Level_Access, Set_Has_Up_Level_Access): New procedures.
8081         (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
8082         (Get_Renamed_Entity): Utility routine for performing common operation
8083         of chasing the Renamed_Entity field of an entity.
8084
8085 2007-06-06  Robert Dewar  <dewar@adacore.com>
8086
8087         * sem_elab.adb (Check_A_Call): Specialize elaboration warnings on
8088         elaboration model
8089         (Check_A_Call): Add check for entry call which was causing blowup
8090
8091 2007-06-06  Olivier Hainque  <hainque@adacore.com>
8092
8093         * raise-gcc.c (__gnat_eh_personality): Tweak the signature and add
8094         special code on ia64-vms to handle major incompatibilities between the
8095         GCC unwinding ABI and the VMS Condition Handling Facility, both calling
8096         this routine with a very different set of arguments and expectations on
8097         the return value.
8098
8099 2007-06-06  Thomas Quinot  <quinot@adacore.com>
8100
8101         * socket.c (__gnat_close_signalling_fd): New function.
8102         (__gnat_safe_gethostbyaddr, __gnat_safe_gethostbyname,
8103         __gnat_safe_getservbyname, __gnat_safe_getservbyport):
8104         New supporting functions for task safe Netdb operations.
8105
8106 2007-06-06  Thomas Quinot  <quinot@adacore.com>
8107             Olivier Hainque  <hainque@adacore.com>
8108
8109         * a-except-2005.ads, a-except-2005.adb
8110         (Raise_From_Controlled_Operation): New procedure in
8111         (private part of) Ada.Exceptions (standard runtime version). Used to
8112         provide informational exception message when Program_Error is raised as
8113         a result of an Adjust or Finalize operation propagating an exception.
8114         (Rmsg_28): Fix description for E.4(18) check.
8115         (Raise_Current_Excep): Call Debug_Raise_Exception just before
8116         propagation starts, to let debuggers know about the event in a reliable
8117         fashion.
8118         Take the address of E and dereference to make sure it is homed on stack
8119         and prevent the stores from being deleted, necessary for proper
8120         debugger behavior on "break exception" hits.
8121         (Local_Raise): Moved to System.Exceptions
8122
8123         * s-finimp.adb (Raise_From_Finalize): Code to construct an appropriate
8124         exception message from the current occurrence and raise Program_Error
8125         has been moved to Ada.Exceptions.Raise_From_Controlled_Operation.
8126
8127 2007-06-06  Jose Ruiz  <ruiz@adacore.com>
8128             Arnaud Charlet  <charlet@adacore.com>
8129
8130         * s-taprob.adb (Unlock): Change the ceiling priority of the underlying
8131         lock, if needed.
8132
8133         * s-taprop.ads (Set_Ceiling): Add this procedure to change the ceiling
8134         priority associated to a lock.
8135
8136         * s-tpoben.adb ([Vulnerable_]Complete_Task, Lock_Entries): Relax
8137         assertion to take into account case of no abort restriction.
8138         (Initialize_Protection_Entries): Add initialization for the field
8139         New_Ceiling associated to the protected object.
8140         (Unlock_Entries): Change the ceiling priority of the underlying lock, if
8141         needed.
8142
8143         * s-solita.adb (Get_Current_Excep): Moved back to s-tasini/s-tarest,
8144         since this function needs to be set consistently with Update_Exception.
8145
8146         * s-tarest.adb (Get_Current_Excep): Moved back to s-tasini/s-tarest,
8147         since this function needs to be set consistently with Update_Exception.
8148
8149         * s-taskin.ads: Update comments on
8150         Interrupt_Server_Blocked_On_Event_Flag.
8151         (Unbind_Handler): Fix handling of server_task wakeup
8152         (Server_Task): Set self's state so that Unbind_Handler can take
8153         appropriate actions.
8154         (Common_ATCB): Now use a constant from System.Parameters to determine
8155         the max size of the Task_Image field.
8156
8157         * s-tassta.adb (Task_Wrapper): Now pass the overflow guard to the
8158         Initialize_Analyzer function.
8159         ([Vulnerable_]Complete_Task, Lock_Entries): Relax assertion to
8160         take into account case of no abort restriction.
8161         ([Vulnerable_]Complete_Master): Modify assertion.
8162
8163         * s-tataat.adb (Finalize): Use the nestable versions of
8164         Defer/Undefer_Abort.
8165
8166         * s-tpobop.adb (Protected_Entry_Call): Relax assertion.
8167
8168         * s-tpobop.ads: Update comments.
8169
8170         * s-tposen.adb (Protected_Single_Entry_Call): Call Lock_Entry instead
8171         of locking the object manually, to avoid inconsistencies between
8172         Lock/Unlock_Entry assertions.
8173
8174         * s-interr.ads, s-interr.adb (Server_Task): Fix race condition when
8175         terminating
8176         application and System.Parameters.No_Abort is True.
8177         Update comments on Interrupt_Server_Blocked_On_Event_Flag.
8178         (Unbind_Handler): Fix handling of server_task wakeup
8179         (Server_Task): Set self's state so that Unbind_Handler can take
8180         appropriate actions.
8181
8182 2007-06-06  Thomas Quinot  <quinot@adacore.com>
8183
8184         * s-finroo.ads, s-finroo.adb (Read, Write): Use null procedure
8185         declarations instead of an explicit null body, for conciseness.
8186
8187 2007-06-06  Robert Dewar  <dewar@adacore.com>
8188
8189         * sem_eval.adb (Eval_Relational_Op): nothing to do if an operand is an
8190         illegal aggregate and the type is still Any_Composite.
8191         (Subtypes_Statically_Match): Fix problem of empty discriminant list
8192
8193 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
8194
8195         * sem_smem.adb (Check_Shared_Var): Check explicitly for as task object,
8196         to prevent subsequent expansion.
8197
8198 2007-06-06  Robert Dewar  <dewar@adacore.com>
8199
8200         * sinput-l.ads, sinput-l.adb: implement a new pragma No_Body
8201
8202 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
8203             Robert Dewar  <dewar@adacore.com>
8204
8205         * sprint.ads, sprint.adb (Sprint_Node_Actual): Output aggregate for
8206         exceptions.
8207         (Write_Itype): Handle case of string literal subtype, which
8208         comes up in this context.
8209         (Update_Itype): when debugging expanded code, update sloc of itypes
8210         associated with defining_identifiers and ranges, for gdb use.
8211         (Sprint_Node_Actual): Add static keyword to object or exception
8212         declaration output if Is_Statically_Allocated is True.
8213         (Sprint_End_Label): Set entity of end marker for a subprogram, package,
8214         or task body, so that the tree carries the proper Sloc information for
8215         debugging use.
8216         (Write_Indent): In Dump_Source_Text mode, ignore implicit label nodes
8217
8218 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
8219
8220         * s-secsta.adb (Chunk): Ensure this object has a static size known at
8221         compile time, to avoid dynamic memory allocation
8222         (Elaboration code): Only use dynamic memory allocation when needed.
8223
8224 2007-06-06  Quentin Ochem  <ochem@adacore.com>
8225
8226         * s-stausa.ads, s-stausa.adb (Initialize_Analyzer): Added parameter
8227         "Overflow_Guard".
8228         (Stack_Analyzer): Added field "Overflow_Guard"
8229         (Task_Result): Added field "Overflow_Guard".
8230         (Index_Str): New constant.
8231         (Task_Name_Str): New constant.
8232         (Actual_Size_Str): New constant.
8233         (Pattern_Array_Element_Size): New constant.
8234         (Get_Usage_Range): New subprogram.
8235         (Output_Result): Added parameter Max_Size_Len and Max_Actual_Use_Len.
8236         Now align the output.
8237         Added comments.
8238         (Initialize): Added value for Overflow_Guard.
8239         (Fill_Stack): Use constant Pattern_Array_Elem_Size when relevant.
8240         Update the value of the overflow guard according to the actual
8241         beginning of the pattern array.
8242         (Initialize_Analyzer): Added parameter Overflow_Guard.
8243         Take this parameter into accound when computing the max size.
8244         (Compute_Result): Use constant Pattern_Array_Elem_Size when relevant.
8245         (Report_Result): Removed extra useless procedure.
8246         Updated call to Output_Result.
8247         Moved full computation of the Task_Result here.
8248
8249 2007-06-06  Thomas Quinot  <quinot@adacore.com>
8250
8251         * g-soccon-darwin.ads, gen-soccon.c: Add new constant
8252         Thread_Blocking_IO, always True by default, set False on a per-runtime
8253         basis.
8254         Add Windows-specific constants
8255         Add new constant Need_Netdb_Buffer.
8256         Add new macros to indicate whether getXXXbyYYY is thread safe and, if
8257         not, whether to use getXXXbyYYY_r.
8258
8259         * gsocket.h: Add new constant Need_Netdb_Buffer.
8260         Add new macros to indicate whether getXXXbyYYY is thread safe and, if
8261         not, whether to use getXXXbyYYY_r.
8262
8263 2007-06-06  Eric Botcazou  <ebotcazou@adacore.com>
8264
8265         * s-stoele.ads, s-stoele.adb: Move inline_always subprograms earlier
8266         than their first call.
8267         Add type Dummy_Communication_Block used in the generation of the pre-
8268         defined dispatching primitive _disp_asynchronous_select.
8269         (Storage_Element): Put Pragma Universal_Aliasing on it.
8270
8271 2007-06-06  Vincent Celier  <celier@adacore.com>
8272
8273         * a-dirval-vms.adb, a-dirval.ads, a-dirval.adb (Windows): New Boolean
8274         function.
8275
8276         * a-dirval-mingw.adb (Is_Valid_Path_Name): Forbid a path with a drive
8277         letter if it is not followed by a '/' or a '\'.
8278         (Windows): New Boolean function
8279
8280         * a-direct.ads, a-direct.adb: Remove unnecessary and misplaced pragma
8281         Ada 2005.
8282         (Containing_Directory): On Windows, keep at least one '/' or '\' after a
8283         drive letter.
8284         (Containing_Directory): Raise Use_Error when the directory is a root
8285         directory.
8286         (Extension): When returning the result, use a conversion to Result_Type,
8287         not a qualification.
8288
8289 2007-06-06  Robert Dewar  <dewar@adacore.com>
8290
8291         * stylesw.ads, stylesw.adb (Set_GNAT_Style_Check): New procedure
8292         (Set_Style_Check_Options): Recognize new -gnatyg style switch
8293
8294         * switch-c.adb (Scan_Front_End_Switches, case -gnatg): Set
8295         Warn_On_Non_Local_Exception to False, to turn off warnings for
8296         No_Exception_Propagation in ZFP runtime.
8297         (Scan_Front_End_Switches): Fix handling of --RTS switch for non GCC
8298         back-ends.
8299         (Scan_Front_End_Switches): For 'g', call Set_GNAT_Style_Checks
8300
8301 2007-06-06  Vincent Celier  <celier@adacore.com>
8302
8303         * switch-b.adb (Scan_Binder_Switches): Add processing for new
8304         switches -R and -Z
8305
8306         * switch-m.adb (Normalize_Compiler_Switches): Do not record switch -E
8307         (Scan_Make_Switches): Recognize new switch -aP
8308
8309 2007-06-06  Matthew Gingell  <gingell@adacore.com>
8310             Jose Ruiz  <ruiz@adacore.com>
8311
8312         * s-stchop-vxworks.adb (Set_Stack_Info): Instead of trying to map the
8313         VxWorks task descriptor in the Ada run time, call a C subprogram
8314         (__gnat_get_stack_info) that extracts the required information.
8315
8316         * sysdep.c: Back out temporary lynxos workaround.
8317         (__gnat_get_stack_info): Add this procedure that passes to the Ada run
8318         time the stack information associated to the currently executing task.
8319         Only VxWorks systems require this function.
8320
8321 2007-06-06  Eric Botcazou  <ebotcazou@adacore.com>
8322
8323         * tracebak.c (FRAME_OFFSET): Add parameter FP. On SPARC/Solaris, do not
8324         add the stack bias if the offset is computed from a frame address.
8325         (__gnat_backtrace): Adjust for above change.
8326
8327 2007-06-06  Thomas Quinot  <quinot@adacore.com>
8328
8329         * types.h, types.ads: Rename PE_Illegal_CW_Actual_E_4_18 to
8330         PE_Non_Transportable_Actual.
8331         (By_Descriptor_Last): New constant.
8332         (By_Copy_Return): Likewise.
8333
8334 2007-06-06  Vincent Celier  <celier@adacore.com>
8335
8336         * vms_conv.adb (Process_Argument): Keep arguments starting with '+' as
8337         is.
8338
8339         * vms_data.ads: Add entries for -gnatw.x and -gnatw.X
8340         /STYLE_CHECKS=GNAT: Change meaning to -gnatyg
8341         /GNAT_INTERNAL: New compiler qualifier corresponding to -gnatg
8342         Add missing comment for /OPTIMIZE=SPACE
8343         Add entry for OPTIMIZE=SPACE
8344         Add new qualifier /ALL_PROJECTS (= -U) for GNAT LIST
8345         Add documentation for new qualifiers corresponding to -gnatw.c/.C
8346
8347 2007-06-06  Vincent Celier  <celier@adacore.com>
8348             Robert Dewar  <dewar@adacore.com>
8349
8350         * xgnatugn.adb: Allow dots to be used in ug_words (-gnatw.c and
8351         -gnatw.C)
8352
8353         * gnat_ugn.texi: Fix ordering of -g switch for gnatmake
8354         Document gnatbind switch -a
8355         (case Constructions): Document that variables declarations are allowed
8356         for previously declared variables.
8357         Fix external lib project example
8358         -gnatg: Indicate new VMS qualifier /GNAT_INTERNAL
8359         Indicate that "#if not X or Y then" is not allowed in input files to
8360         gnatprep.
8361         Document gnatw.x and gnatw.X warning flags
8362         Mention -Winline switch to activate warnings when back-end inlining is
8363         ineffective.
8364         Add gnatcheck rule descriptions
8365         Describe how to use the GNAT driver to call a tool on a closure.
8366         Describe how to run project-wide checks or metrics.
8367         Document gnatbind's -R option
8368         Updated to account for Ada 2005 support
8369
8370         * gnat_rm.texi (Case Construction): Allow variable declarations for
8371         previously declared variables.
8372         (Representation Clauses and Pragmas): Lift restriction on alignment
8373         clauses for record types.
8374         (Ada.Characters.*): Fix typo in reference to A.3.3(27).
8375         Document No_Exception_Propagation restriction
8376         Document No_Body pragma
8377         Updated to account for Ada 2005 support; corrected some typos
8378         (Implementation Defined Pragmas): Document pragma Universal_Aliasing.
8379
8380         * gnat-style.texi: Make it clear that we never use mode IN for
8381         procedures or functions
8382
8383         * ug_words: Add entries for -gnatw.x and -gnatw.X
8384         Add entries for -gnatw.c/.C
8385
8386 2007-06-06  Pascal Obry  <obry@adacore.com>
8387             Vincent Celier  <celier@adacore.com>
8388
8389         * makegpr.adb (Add_Archive_Path): Use untouched object and library
8390         dirs and library name.
8391         (Build_Global_Archive): Idem. Minor code clean-up. Removes duplicate
8392         comments.
8393         (Build_Library): Idem.
8394         (Compile_Individual_Sources): Idem.
8395         (Compile_Link_With_Gnatmake): Idem.
8396         (Compile_Sources): Idem.
8397         (Get_Imported_Directories): Idem.
8398         (Link_Executables): Idem. Same change for the executable dir.
8399         (Check_Compilation_Needed): C_Source_Path new variable containing
8400         the canonical form of Source_Path to check against the source names
8401         in the dependency file.
8402         (Build_Global_Archive, Compile_Individual_Sources, Compile_Sources): In
8403         verbose mode, display the name of the object directory we're changing
8404         to.
8405         (Saved_Switches): New name of table X_Switches
8406         (Scan_Arg): Recognize new switch -aP and save in table Saved_Switches
8407         (Usage): New line for switch -aP
8408         (Get_Imported_Directories.Add): Make sure that Add_Arg is True before
8409         testing if a directory should be added to the search path.
8410
8411 2007-06-06  Javier Miranda  <miranda@adacore.com>
8412
8413         * a-cidlli.ads, a-cdlili.ads, a-cohama.ads, a-coinve.ads, 
8414         a-convec.ads (Empty_Vector, Empty_Map, Empty_List): Move this object
8415         declaration after freezing point of all its associated tagged types;
8416         otherwise such types are frozen too early.
8417
8418 2007-06-06  Robert Dewar  <dewar@adacore.com>
8419
8420         * a-reatim.adb: Documentation addition
8421
8422         * g-cgideb.adb: Minor code reorganization
8423
8424         * tree_io.adb, treepr.adb, cstand.adb, krunch.adb, par.adb,
8425         mdll-utl.adb, par-ch5.adb, par-tchk.adb, s-exctab.ads, s-memory.ads,
8426         s-osprim.ads, s-restri.ads, s-soflin.ads: Minor reformatting.
8427
8428         * debug.ads, debug.adb (Get_Debug_Flag_K): Remove unused obsolete
8429         function.  Change name New_Scope to Push_Scope
8430         (Get_Debug_Flag_K): Remove unused obsolete function.
8431
8432         * exp_ch8.adb, inline.adb, sem_ch8.ads: Change name New_Scope to
8433         Push_Scope.
8434
8435         * makeusg.adb: Update Copyright notice
8436         Add line for switch -aP
8437
8438         * makeusg.adb: Fix wording of some usage messages
8439
8440         * s-assert.adb (Raise_Assert_Failure): Add call to
8441         Debug_Raise_Assert_Failure.
8442
8443         * s-unstyp.ads (type Packed_Bytes2): Change alignment to use 'Min
8444         (2, Standard'Alignment) for compatibility with AAMP (where alignment
8445         is restricted to 1).
8446
8447         * s-wchjis.adb: Remove use of System.Pure_Exceptions
8448
8449         * tbuild.ads, tbuild.adb (Make_Implicit_Exception_Handler): Set the
8450         node location to No_Location when we're not debugging the expanded
8451         code.
8452
8453 2007-05-22  Alexandre Oliva  <aoliva@redhat.com>
8454
8455         * misc.c (enumerate_modes): Consider log2_b to always be one.
8456
8457 2007-05-14  Rafael Avila de Espindola  <espindola@google.com>
8458
8459         * misc.c (LANG_HOOKS_UNSIGNED_TYPE): Remove.
8460
8461 2007-05-02  Pascal Obry  <obry@adacore.com>
8462
8463         * gnatchop.adb (Write_Source_Reference_Pragma): Change implementation
8464         to use Stream_IO.File_Type. This is needed to make use of the UTF-8
8465         encoding support of Stream_IO.
8466         (Write_Unit): Idem.
8467
8468         * adaint.h, adaint.c (__gnat_os_filename): New routine. Returns the
8469         filename and corresponding encoding to match the OS requirement.
8470         (__gnat_file_exists): Do not call __gnat_stat() on Windows as this
8471         routine will fail on specific devices like CON: AUX: ...
8472
8473         PR ada/29856: Add missing braces
8474
8475 2007-04-22  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8476
8477         PR ada/31660
8478         * ada-tree.h (lang_tree_node): Fix typo in chain_next.
8479
8480 2007-04-21  Jan Hubicka  <jh@suse.cz>
8481
8482         * misc.c (gnat_expand_body): Don't call target for destructors,
8483         avoid redundant check on syntax errors.
8484
8485 2007-04-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8486
8487         * ada-tree.h (lang_tree_node): Use GENERIC_NEXT
8488         instead of checking GIMPLE_STMT_P in chain_next.
8489
8490 2007-04-17  Andreas Krebbel  <krebbel1@de.ibm.com>
8491
8492         PR ada/31576
8493         * system-linux-alpha.ads: Disable constant condition warning for the
8494         Default_Bit_Order variable.
8495         * system-linux-s390.ads: Likewise.
8496         * system-linux-s390x.ads: Likewise.
8497         * system-linux-sparc.ads: Likewise.
8498
8499 2007-04-06  Javier Miranda  <miranda@adacore.com>
8500             Matt Heaney  <heaney@adacore.com>
8501             Robert Dewar  <dewar@adacore.com>
8502
8503         a-coprnu.ads, a-cohata.ads, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads,
8504         a-cgarso.ads, a-secain.ads, a-slcain.ads, a-shcain.ads, a-chtgke.ads,
8505         a-chtgke.ads, a-coprnu.ads, a-contai.ads, a-chtgke.ads, a-chtgke.adb,
8506         a-stwiha.ads, a-strhas.ads, a-lfztio.ads, a-liztio.ads, a-llfzti.ads,
8507         a-llizti.ads, a-sfztio.ads, a-siztio.ads, a-ssizti.ads, a-stzfix.ads,
8508         a-stzhas.ads, a-szuzha.ads, a-tiunio.ads, a-wwunio.ads, a-ztcoio.ads,
8509         a-ztinio.ads, a-zttest.ads, a-zzunio.ads, a-astaco.ads, a-charac.ads,
8510         a-chlat1.ads, ada.ads, a-dynpri.ads, a-flteio.ads, a-fwteio.ads,
8511         a-inteio.ads, a-intnam.ads, a-ioexce.ads, a-iwteio.ads, a-lfteio.ads,
8512         a-lfwtio.ads, a-liteio.ads, a-liwtio.ads, a-llftio.ads, a-llfwti.ads,
8513         a-llitio.ads, a-lliwti.ads, a-ncelfu.ads, a-ngcefu.ads, a-ngelfu.ads,
8514         a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads, a-nllcty.ads,
8515         a-nllefu.ads, a-nscefu.ads, a-nscoty.ads, a-nselfu.ads, a-nucoty.ads,
8516         a-nuelfu.ads, a-numeri.ads, a-sfteio.ads, a-sfwtio.ads, a-siteio.ads,
8517         a-siwtio.ads, a-ssitio.ads, a-ssiwti.ads, a-storio.ads, a-strfix.ads,
8518         a-string.ads, a-stwifi.ads, a-titest.ads, a-unccon.ads, a-uncdea.ads,
8519         a-wtcoio.ads, a-wtinio.ads, a-wttest.ads, calendar.ads, directio.ads,
8520         i-c.ads, ioexcept.ads, machcode.ads, sequenio.ads, text_io.ads,
8521         unchconv.ads, unchdeal.ads, a-widcha.ads, a-zchara.ads, a-stboha.ads,
8522         a-stfiha.ads, a-coteio.ads, a-envvar.ads, a-lcteio.ads, a-llctio.ads,
8523         a-scteio.ads, a-swbwha.ads, a-swfwha.ads, a-szbzha.ads, a-szfzha.ads,
8524         a-tiboio.ads, a-wwboio.ads, a-zzboio.ads, a-dispat.ads, a-tgdico.ads,
8525         expander.adb, g-socket.ads, par-labl.adb, sinput-c.adb, s-tarest.ads,
8526         s-stchop.ads, g-expect-vms.adb, s-taprop-lynxos.adb,
8527         s-taprop-tru64.adb, s-taprop-irix.adb,
8528         s-taprop-hpux-dce.adb, s-traceb-hpux.adb,
8529         s-taprop-linux.adb, s-taprop-dummy.adb, s-osprim-unix.adb,
8530         s-osprim-solaris.adb, s-taprop-solaris.adb, s-taprop-vms.adb,
8531         s-osprim-mingw.adb, s-taprop-mingw.adb, s-osprim-posix.adb, 
8532         s-taprop-posix.adb, a-exexpr-gcc.adb, a-ststio.adb, a-ststio.ads, 
8533         a-textio.adb, a-textio.ads, a-tideau.adb, a-tideau.ads, a-witeio.adb, 
8534         a-witeio.ads, a-wtdeau.adb, a-wtdeau.ads, g-calend.adb, g-calend.ads, 
8535         g-dirope.adb, g-expect.ads, gnatchop.adb, g-spipat.adb, g-spipat.ads, 
8536         s-direio.adb, s-direio.ads, s-fatgen.adb, s-fatgen.ads, s-parint.adb, 
8537         s-sequio.adb, s-sequio.ads, s-taprop.ads, s-valdec.adb, s-valdec.ads, 
8538         s-valint.adb, s-valint.ads, s-vallld.adb, s-vallld.ads, s-vallli.adb, 
8539         s-vallli.ads, s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads, 
8540         s-valuns.adb, s-valuns.ads, s-valuti.adb, s-valuti.ads, xref_lib.adb, 
8541         s-stchop.adb, i-vxwork-x86.ads, a-crbtgo.ads, a-crbtgo.adb, 
8542         a-coorse.ads, a-coorse.adb, a-cohama.ads, a-cohama.adb, a-ciorse.ads, 
8543         a-ciorse.adb, a-cihama.ads, a-cihama.adb, a-chtgop.ads, a-chtgop.ads, 
8544         a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cihase.ads, a-cohase.adb, 
8545         a-cohase.ads, a-swuwha.ads, a-ciormu.ads, a-coormu.ads, a-rbtgso.ads,
8546         a-stunha.ads, a-ciorma.adb, a-coorma.adb, a-ztdeau.adb, a-ztdeau.ads, 
8547         a-ztexio.adb, a-ztexio.ads: Addition of null-exclusion to anonymous
8548         access types.
8549         Update documentation.
8550         Minor rewording.
8551
8552 2007-04-06  Robert Dewar  <dewar@adacore.com>
8553
8554         * system-linux-ia64.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads,
8555         system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
8556         system-vxworks-sparcv9.ads, system-solaris-x86.ads, system-irix-o32.ads,
8557         system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
8558         system-linux-x86.ads, system-vxworks-mips.ads, system-interix.ads,
8559         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
8560         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
8561         system-vxworks-alpha.ads, system-vms_64.ads, system-darwin-ppc.ads,
8562         system-vxworks-x86.ads, system-linux-ppc.ads, system-linux-hppa.ads,
8563         system-hpux-ia64.ads, targparm.adb,
8564         targparm.ads (Functions_Return_By_DSP_On_Target): Removed
8565
8566         * system.ads: Move Functions_Return_By_DSP to obsolete section,
8567         kept for bootstrap purposes only.
8568
8569 2007-04-06  Arnaud Charlet  <charlet@adacore.com>
8570
8571         * s-osinte-lynxos-3.ads, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
8572         s-osinte-freebsd.ads, s-osinte-aix.ads, s-osinte-darwin.ads,
8573         s-taprop-posix.adb (Create_Task): Fix handling of Task_Info.
8574         (PTHREAD_SCOPE_PROCESS, PTHREAD_SCOPE_SYSTEM): New constants.
8575
8576 2007-04-06  Robert Dewar  <dewar@adacore.com>
8577
8578         * a-except.adb, a-except.ads, a-except-2005.ads, a-except-2005.adb
8579         (Local_Raise): New dummy procedure called when a raise is converted
8580         to a local goto. Used for debugger to detect that the exception
8581         is raised.
8582
8583         * debug.adb: Document new d.g flag (expand local raise statements to
8584         gotos even if pragma Restriction (No_Exception_Propagation) is not set)
8585
8586         * exp_sel.adb: Use Make_Implicit_Exception_Handler
8587
8588         * exp_ch11.adb (Expand_Exception_Handlers): Use new flag -gnatw.x to
8589         suppress warnings for unused handlers.
8590         (Warn_If_No_Propagation):  Use new flag -gnatw.x to suppress
8591         warnings for raise statements not handled locally.
8592         (Get_RT_Exception_Entity): New function
8593         (Get_Local_Call_Entity): New function
8594         (Find_Local_Handler): New function
8595         (Warn_If_No_Propagation): New procedure
8596         (Expand_At_End_Handler): Call Make_Implicit_Handler
8597         (Expand_Exception_Handlers): Major additions to deal with local handlers
8598         (Expand_N_Raise_Constraint_Error, Expand_N_Raise_Program_Error,
8599         Expand_N_Raise_Storage_Error, (Expand_N_Raise_Statement): Add handling
8600         for local raise
8601
8602         * exp_ch11.ads (Get_RT_Exception_Entity): New function
8603         (Get_Local_Call_Entity): New function
8604
8605         * gnatbind.adb (Restriction_List): Add No_Exception_Propagation to list
8606         of restrictions that the binder will never suggest adding.
8607
8608         * par-ch11.adb (P_Exception_Handler): Set Local_Raise_Statements field
8609         to No_Elist.
8610
8611         * restrict.adb (Check_Restricted_Unit): GNAT.Current_Exception may not
8612         be with'ed in the presence of pragma Restriction
8613         (No_Exception_Propagation).
8614
8615         * sem.adb (Analyze): Add entries for N_Push and N_Pop nodes
8616
8617         * sem_ch11.adb (Analyze_Exception_Handler): If there is a choice
8618         parameter, then the handler is not a suitable target for a local raise,
8619         and this is a violation of restriction No_Exception_Propagation.
8620         (Analyze_Handled_Statements): Analyze choice parameters in exception
8621         handlers before analyzing statement sequence (needed for proper
8622         detection of local raise statements).
8623         (Analyze_Raise_Statement): Reraise statement is a violation of the
8624         No_Exception_Propagation restriction.
8625
8626         * s-rident.ads: Add new restriction No_Exception_Propagation
8627
8628         * tbuild.ads, tbuild.adb (Make_Implicit_Exception_Handler): New
8629         function, like Make_Exception_Handler but sets Local_Raise_Statements
8630         to No_List.
8631         (Add_Unique_Serial_Number): Deal with case where this is called during
8632         processing of configuration pragmas.
8633
8634 2007-04-06  Thomas Quinot  <quinot@adacore.com>
8635             Pat Rogers  <rogers@adacore.com>
8636             Pascal Obry  <obry@adacore.com>
8637
8638         * g-stsifd-sockets.adb: New file.
8639
8640         * g-socthi.ads, g-socket.adb, g-socthi-vxworks.adb,
8641         g-socthi-vxworks.ads, g-socthi-mingw.ads, g-socthi-vms.ads,
8642         g-socthi-vms.adb: Move signalling
8643         fd management to a nested package, so that they can conveniently be
8644         moved to a subunit that is shared across Windows, VMS, and VxWorks
8645         (Ada implementation) or completed with imported bodies from socket.c
8646         (UNIX case).
8647         (Read_Signalling_Fd, Write_Signalling_Fd, Create_Signalling_Fds): New
8648         subprograms.
8649         (Check_Selector): Use Read_Signalling_Fd to read and discard data from
8650         the signalling file descriptor.
8651         (Abort_Selector): Use Write_Signalling_Fd to write dummy data to the
8652         signalling file descriptor.
8653         (Create_Selector): Use new C-imported subprogram Create_Signalling_Fds
8654         instead of creating a pair of sockets for signalling here.
8655
8656         * g-socthi.adb: Ditto.
8657         Set the runtime process to ignore SIGPIPEs on platforms that support
8658         neither SO_NOSIGPIPE nor MSG_NOSIGNAL functionality.
8659
8660         * g-socthi-mingw.adb: Ditto.
8661         (WS_Version): Use Windows 2.2.
8662         Use Winsock 2.2 (instead of 1.1) for the GNAT.Socket API.
8663
8664         * g-soliop-mingw.ads: Link with ws2_32 for Windows 2.x support.
8665         Use Winsock 2.2 (instead of 1.1) for the GNAT.Socket API.
8666
8667         * Makefile.in: New libgnat pair g-stsifd.adb<g-stsifd-sockets.adb.
8668         added GNAT byte swapping facility
8669         Update FreeBSD THREADSLIB from -lc_r to -lpthread, for FreeBSD 6.
8670
8671         * g-bytswa.adb, g-bytswa-x86.adb, g-bytswa.ads: New files.
8672
8673         * socket.c (__gnat_read_signalling_fd, __gnat_write_controlling_fd):
8674         New subprograms.
8675         (__gnat_create_signalling_fds): New subprogram.
8676         Set the runtime process to ignore SIGPIPEs on platforms that support
8677         neither SO_NOSIGPIPE nor MSG_NOSIGNAL functionality.
8678
8679 2007-04-06  Hristian Kirtchev  <kirtchev@adacore.com>
8680             Vincent Celier  <celier@adacore.com>
8681
8682         * a-calend-vms.ads, a-calend.ads, a-calend.adb, a-calend-vms.adb:
8683         New version of Ada.Calendar which supports the new upper bound of Ada
8684         time (2399-12-31 86_399.999999999).
8685         The following modifications have been made to the package:
8686          - New representation of time as count of nanoseconds since the start of
8687            Ada time (1901-1-1 0.0).
8688          - Target independent Split and Time_Of routines which service both
8689            Ada 95 and Ada 2005 code.
8690          - Target independent interface to the Ada 2005 children of Calendar.
8691          - Integrated leap seconds into Ada 95 and Ada 2005 mode.
8692          - Handling of non-leap centenial years.
8693          - Updated clock function.
8694          - Updated arithmetic and comparison operators.
8695
8696         * a-caldel.adb (To_Duration): Add call to target independent routine in
8697         Ada.Calendar to handle the conversion of time to duration.
8698
8699         * sysdep.c (__gnat_localtime_tzoff): Test timezone before setting off
8700         (UTC Offset).
8701         If timezone is obviously incorrect (outside of -14 hours .. 14 hours),
8702         set off to 0.
8703         (__gnat_localtime_tzoff for Lynx and VxWorks): Even though these
8704         targets do not have a natural time zone, GMT is used as a default.
8705         (__gnat_get_task_options): New.
8706
8707         * a-direct.adb (Modification_Time): Add with and use clauses for
8708         Ada.Calendar and Ada.
8709         Calendar.Formatting. Remove with clause for Ada.Unchecked_Conversion
8710         since it is no longer needed.
8711         (Duration_To_Time): Removed.
8712         (OS_Time_To_Long_Integer): Removed.
8713         (Modification_Time): Rewritten to use Ada.Calendar and Ada.Calendar.
8714         Formatting Time_Of routines which automatically handle time zones,
8715         buffer periods and leap seconds.
8716
8717         * a-calari.ads, a-calari.adb ("+", "-", Difference): Add calls to
8718         target independent routines in Ada.Calendar.
8719
8720         * a-calfor.ads, a-calfor.adb: 
8721         Code cleanup and addition of validity checks in various routines.
8722         (Day_Of_Week, Split, Time_Of): Add call to target independent routine in
8723         Ada.Calendar.
8724
8725         * a-catizo.ads, a-catizo.adb (UTC_Time_Offset): Add call to target
8726         independent routine in Ada.Calendar.
8727
8728 2007-04-06  Olivier Hainque  <hainque@adacore.com>
8729
8730         * adaint.c: 
8731         (convert_addresses): Adjust prototype and dummy definition to expect an
8732          extra file_name argument.
8733
8734         * gmem.c (__gnat_convert_addresses): Wrapper to convert_addresses,
8735         filling the now expected file_name argument with the appropriate
8736         argv[0] expansion.
8737         (__gnat_gmem_a2l_initialize, __gnat_gmem_read_next_frame): Use it.
8738         (tracebk): Array of void * instead of char *, corresponding to what
8739          convert_addresses expects.
8740         (exename): New static global, to hold the executable file name to be
8741         used in all convert_addresses invocations.
8742         (gmem_read_backtrace, __gnat_gmem_symbolic): Account for tracebk type
8743         change.
8744         (__gnat_gmem_a2l_initialize): Resolve exename.
8745         (__gnat_convert_addresses): Use exename as the convert_addresses
8746         file_name argument.
8747
8748         * g-trasym.adb (Symbolic_Traceback): Adjust signature of imported
8749         "convert_addresses", now expecting a filename argument. Import the
8750         necessary entities to compute the filename to use and pass it to
8751         convert_addresses.
8752
8753 2007-04-06  Matt Gingell  <gingell@adacore.com>
8754
8755         * system-aix.ads: Back out previous change.
8756         (Functions_Return_By_DSP): Removed
8757
8758 2007-04-06  Pascal Obry  <obry@adacore.com>
8759
8760         * s-osprim-mingw.adb (Timed_Delay): Use the right clock (standard one
8761         or the monotonic used by Ada.Real_Time) to compute the sleep duration
8762         on Windows.
8763
8764 2007-04-06  Jose Ruiz  <ruiz@adacore.com>
8765
8766         * s-osinte-vxworks.ads, s-osinte-vxworks.adb (VX_FP_TASK): Remove this
8767         function. Its value changes in different VxWorks versions, and it is
8768         now handled by the function __gnat_get_task_options.
8769
8770         * s-taprop-vxworks.adb (Create_Task): Call the function
8771         __gnat_get_task_options to get the required options for creating a task.
8772
8773 2007-04-06  Pascal Obry  <obry@adacore.com>
8774             Thomas Quinot  <quinot@adacore.com>
8775
8776         * adaint.c: Replace all occurences of S2WS to S2WSU (Unicode) when
8777         dealing with filename.
8778         (__gnat_fopen): Call the proper macro (8bits or UTF8) to convert the
8779         filename from a standard string to a wide-string depending on the
8780         encoding value.
8781         (__gnat_freopen): Idem.
8782         (__gnat_current_time): New function (wrapper for time(3) standard C
8783         function).
8784
8785         * g-os_lib.ads (Current_Time): New function. Returns the current
8786         system time as an OS_Time value.
8787
8788         * s-osprim.ads (Clock): Add more precise definition of UNIX epoch.
8789         (Monotonic_Clock): Same.
8790
8791 2007-04-06  Quentin Ochem  <ochem@adacore.com>
8792
8793         * ali.ads, ali.adb (Get_Nat): Raise an exception if the file cursor is
8794         not on a natural.
8795         (Scan_ALI): Cancel the xref line if there has been a reading ALI error.
8796
8797 2007-04-06  Jose Ruiz  <ruiz@adacore.com>
8798
8799         * a-retide.adb: Add elaboration code to ensure that the tasking run
8800         time is initialized when using delay operations even when no task is
8801         created.
8802
8803 2007-04-06  Javier Miranda  <miranda@adacore.com>
8804
8805         * a-tags.ads, a-tags.adb (Object_Specific_Data): Remove
8806         component Num_Prim_Ops.
8807         (Set_Num_Prim_Ops): Removed.
8808         Remove all the assertions because all the routines of this
8809         package are inline always.
8810         (Get_Offset_Index): Add support to primary dispatch tables.
8811         Move the documentation about the dispatch table to a-tags.ads
8812         (Set_External_Tag): Removed
8813         (Inherit_TSD): Removed.
8814         (Interface_Data_Element, Interfaces_Array, Interface_Data): Declarations
8815         moved to a-tags.ads
8816         (Displace, IW_Membership, Inherit_TSD, Interface_Ancestor_Tags,
8817         Register_Interface_Tag, Set_Offset_To_Top): Update all the occurrences
8818         of the TSD field "Table" because this field has been renamed to
8819         "Ifaces_Table".
8820         (Inherit_CPP_DT): Removed.
8821         (K_Typeinfo, K_Offset_To_Top, K_Tagged_Kind, K_Signature,
8822         Cstring, Tag_Table, Type_Specific_Data, Dispatch_Table): These
8823         declarations have been moved to a-tags.ads
8824         (Check_Size): Removed.
8825         (Expanded_Name): Updated to get access to the new field of TSD
8826         containing the address of the expanded name.
8827         (Get_Access_Level/Set_Access_Level): Removed.
8828         (Get_Predefined_Prim_Op_Address): Removed.
8829         (Set_Predefined_Prim_Op_Address): Removed.
8830         (Get_Prim_Op_Address/Set_Prim_Op_Address): Removed.
8831         (Get_Remotely_Callable/Set_Remotely_Callable): Removed.
8832         (Set_Expanded_Name): Removed.
8833         (Inherit_DT): Removed.
8834         (Inherit_CPP_DT): Removed.
8835         (Set_RC_Offset): Removed.
8836         (Set_TSD): Removed.
8837         (Base_Address): New function that displaces "this" to point to the base
8838         of the object (that is, to point to the primary tag of the object).
8839
8840 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
8841             Javier Miranda  <miranda@adacore.com>
8842
8843         * exp_ch3.ads, exp_ch3.adb (Analyze_N_Full_Type_Declaration): For an
8844         anonymous access component, do not create a master_id if type already
8845         has one, as may happen if the type is a subcomponent of a packed array
8846         type.
8847         (Build_Init_Procedure, Component_Needs_Simple_Initialization,
8848         Initialize_Tag): Remove code associated with the old CPP pragmas.
8849         CPP_Virtual and CPP_Vtable are no longer supported.
8850         (Build_Offset_To_Top_Internal): Add support for concurrent record types
8851         (Build_Offset_To_Top_Functions): Add support for concurrent record types
8852         (Freeze_Record_Type): Remove call to
8853         Init_Predefined_Interface_Primitives.
8854         (Init_Secondary_Tags.Initialize_Tag): New subprogram containing all the
8855         code required to initialize the tags of the secondary dispatch tables.
8856         This leaves the algoritm more clear.
8857         (Init_Secondary_Tags): Add support for concurrent record types
8858         (Make_Predefined_Primitive_Specs): Code cleanup.
8859         (Predefined_Primitive_Bodies): Code cleanup.
8860         (Build_Master_Renaming): New local subprogram.
8861         (Expand_N_Full_Type_Declaration): Build the master_id associated with
8862         anonymous access to task type components.
8863         (Expand_N_Subtype_Indication): The bounds of a range constraint in a
8864         subtype indication are resolved during analysis, and must not be done
8865         here.
8866         (Stream_Operation_OK): Check Restriction_Active before RTE_Available.
8867
8868 2007-04-06  Geert Bosch  <bosch@adacore.com>
8869             Ed Schonberg  <schonberg@adacore.com>
8870             Javier Miranda  <miranda@adacore.com>
8871             Bob Duff  <duff@adacore.com>
8872
8873         * exp_ch4.adb (Expand_N_Type_Conversion): Remove special processing
8874         for conversion of a Float_Type'Truncation to integer.
8875
8876         * exp_attr.adb (Is_Inline_Floating_Point_Attribute): New function to
8877         check if a node is an attribute that can be handled directly by the
8878         back end.
8879         (Expand_N_Attribute_Reference): Suppress expansion of floating-point
8880         attributes that can be handled directly by the back end.
8881         (Expand_N_Attribute_Reference, case 'Access and 'Unchecked_Access):
8882         use new predicate Is_Access_Protected_Subprogram_Type.
8883         (Expand_N_Attribute_Reference, case 'Write): The reference is legal for
8884         and Unchecked_Union if it is generated as part of the default  Output
8885         procedure for a type with default discriminants.
8886         (Expand_N_Attribute_Reference): Avoid the expansion of dispatching calls
8887         if we are compiling under restriction No_Dispatching_Calls.
8888         (Constrained): Use Underlying_Type, in case the type is private without
8889         discriminants, but the full type has discriminants.
8890         (Expand_N_Attribute_Reference): Replace call to Get_Access_Level by
8891         call to Build_Get_Access_Level.
8892         (Expand_N_Attribute_Reference): The use of 'Address with class-wide
8893         interface objects requires a call to the run-time subprogram that
8894         returns the base address of the object.
8895         (Valid_Conversion): Improve error message on illegal attempt to store
8896         an anonymous access to subprogram value into a record component.
8897
8898         * sem_res.adb (Resolve_Equality_Op): Detect ambiguity for "X'Access =
8899         null".
8900         (Simplify_Type_Conversion): New procedure that performs simplification
8901         of Int_Type (Float_Type'Truncation (X)).
8902         (Resolve_Type_Conversion): Call above procedure after resolving operand
8903         and before performing checks. This replaces the existing ineffective
8904         code in Exp_Ch4.
8905         (Set_String_Literal_Subtype): When creating the internal static lower
8906         bound subtype for a string literal, use a newly created copy of the
8907         subtree representing the lower bound.
8908         (Resolve_Call): Exclude build-in-place function calls from transient
8909         scope treatment. Update comments to describe this exception.
8910         (Resolve_Equality_Op): In case of dispatching call check violation of
8911         restriction No_Dispatching_Calls.
8912         (Resolve_Call): If the call returns an array, the context imposes the
8913         component type of the array, and the function has one non-defaulted
8914         parameter, rewrite the call as the indexing of a call with a single
8915         parameter, to handle an Ada 2005 syntactic ambiguity for calls written
8916         in prefix form.
8917         (Resolve_Actuals): If an actual is an allocator for an access parameter,
8918         the master of the created object is the innermost enclosing statement.
8919         (Remove_Conversions): For a binary operator, check if type of second
8920         formal is numeric, to check if an abstract interpretation is present
8921         in the case of exponentiation as well.
8922
8923 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
8924             Bob Duff  <duff@adacore.com>
8925
8926         * atree.h, atree.ads, atree.adb (Copy_Node_With_Replacement): When
8927         copying a parameter list in a call, set properly the First_Named_Formal
8928         and Next_Named_Formal fields in the new list and in the enclosing call.
8929         (Watch_Node,New_Node_Breakpoint,New_Node_Debugging_Output): Shorten
8930         names, to ease typing in the debugger. Improve comments.
8931         (Watch_Node): New variable, intended to be set in the debugger.
8932         (New_Node_Breakpoint): New do-nothing procedure to set a breakpoint on,
8933         called when the watched node is created.
8934         (New_Node_Debugging_Output): Combined version of local procedures
8935         New_Node_Debugging_Output and New_Entity_Debugging_Output, now global,
8936         with a parameter so that conditional breakpoints like "if Node = 12345"
8937         work.
8938         (New_Node, New_Entity): Call the global New_Node_Debugging_Output.
8939         Add Elist1 function
8940
8941 2007-04-06  Thomas Quinot  <quinot@adacore.com>
8942             Ed Schonberg  <schonberg@adacore.com>
8943             Gary Dismukes  <dismukes@adacore.com>
8944
8945         * checks.ads, checks.adb (Selected_Range_Checks): No range check is
8946         required for a conversion between two access-to-unconstrained-array
8947         types.
8948         (Expr_Known_Valid): Validity checks do not apply to discriminants, but
8949         to discriminant constraints on discriminant objects. This rule must
8950         apply as well to discriminants of protected types in private components.
8951         (Null_Exclusion_Static_Checks): If No_Initialization is set on an
8952         object of a null-excluding access type then don't require the
8953         the object declaration to have an expression and don't emit a
8954         run-time check.
8955
8956 2007-04-06  Arnaud Charlet  <charlet@adacore.com>
8957             Eric Botcazou  <botcazou@adacore.com>
8958
8959         * gnatvsn.ads, comperr.adb (Get_Gnat_build_Type): Renamed Build_Type
8960         and made constant.
8961
8962         * comperr.ads, comperr.adb (Compiler_Abort): Add third parameter
8963         Fallback_Loc. Use it as the sloc info when Current_Error_Node doesn't
8964         carry any.
8965
8966         * fe.h (Compiler_Abort): Add third parameter.
8967
8968         * misc.c (internal_error_function): Build third argument from current
8969         input location and pass it to Compiler_Abort.
8970
8971 2007-04-06  Gary Dismukes  <dismukes@adacore.com>
8972
8973         * cstand.adb (Create_Standard): When the target's storage unit size is
8974         greater than a byte, set Has_Non_Standard_Rep and Has_Pragma_Pack on
8975         Standard_String.
8976
8977 2007-04-06  Nicolas Roche  <roche@adacore.com>
8978
8979         * cstreams.c (__gnat_full_name): Fix issues on VxWorks 6.x for which
8980         absolute path can have the following form: device:/a/b. In this case
8981         '/' should be inserted between the path and the filename.
8982
8983 2007-04-06  Olivier Hainque  <hainque@adacore.com>
8984             Eric Botcazou  <botcazou@adacore.com>
8985
8986         * decl.c (gnat_to_gnu_entity) <E_Constant>: Associate an external
8987         VAR_DECL to a CONST_DECL we make for a public constant when we know the
8988         corresponding definition has created the so made visible variable.
8989         Handle anonymous access to protected subprogram.
8990         (gnat_to_gnu_entity) <E_Variable>: Do not make the underlying type of an
8991         object with an address clause volatile.  Re-enable original fix.
8992         <E_Subprogram_Type>: Set TYPE_REF_CAN_ALIAS_ALL on the reference type
8993         too.
8994         (gnat_to_gnu_entity) <E_Class_Wide_Type>: Retrieve the TYPE_DECL
8995         associated with either the Equivalent or Root type, instead of the
8996         naked type node.
8997         (gnat_to_gnu_entity): Manually mark the top of the DECL_FIELD_OFFSET
8998         subtree for every field of a global record type.
8999         (gnat_to_gnu_entity) <E_Record_Subtype>: If the subtype has
9000         discriminants, invoke again variable_size on its newly computed sizes.
9001
9002 2007-04-06  Robert Dewar  <dewar@adacore.com>
9003             Thomas Quinot  <quinot@adacore.com>
9004             Ed Schonberg  <schonberg@adacore.com>
9005             Bob Duff  <duff@adacore.com>
9006
9007         * einfo.ads, einfo.adb: (First_Component_Or_Discriminant): New function
9008         (Next_Component_Or_Discriminant): New function and procedure
9009         (First_Index, First_Literal, Master_Id,
9010         Set_First_Index, Set_First_Literal, Set_Master_Id):
9011         Add missing Ekind assertions.
9012         (Is_Access_Protected_Subprogram_Type): New predicate.
9013         (Has_RACW): New entity flag, set on package entities to indicate that
9014         the package contains the declaration of a remote accecss-to-classwide
9015         type.
9016         (E_Return_Statement): This node type has the Finalization_Chain_Entity
9017         attribute, in case the result type has controlled parts.
9018         (Requires_Overriding): Add this new flag, because "requires
9019         overriding" is subtly different from "is abstract" (see AI-228).
9020         (Is_Abstract): Split Is_Abstract flag into Is_Abstract_Subprogram and
9021         Is_Abstract_Type. Make sure these are called only when appropriate.
9022         (Has_Pragma_Unreferenced_Objects): New flag
9023
9024         * exp_ch5.adb (Expand_N_Assignment_Statement): If the left-hand side is
9025         class-wide, the tag of the right-hand side must be an exact match, not
9026         an ancestor of that of the object on left-hand side.
9027         (Move_Activation_Chain): New procedure to create the call to
9028         System.Tasking.Stages.Move_Activation_Chain.
9029         (Expand_N_Extended_Return_Statement): Generate code to call
9030         System.Finalization_Implementation.Move_Final_List at the end of a
9031         return statement if the function's result type has controlled parts.
9032         Move asserts to Build_In_Place_Formal.
9033         (Move_Final_List): New function to create the call statement.
9034         (Expand_N_Assignment_Statement): In case of assignment to a class-wide
9035         tagged type, replace generation of call to the run-time subprogram
9036         CW_Membership by call to Build_CW_Membership.
9037         (Expand_N_Return_Statement): Replace generation of call to the run-time
9038         subprogram Get_Access_Level by call to Build_Get_Access_Level.
9039         (Expand_N_Simple_Function_Return): Replace generation of call to the
9040         run-time subprogram Get_Access_Level by call to Build_Get_Access_Level.
9041
9042         * exp_ch6.ads, exp_ch6.adb (Expand_Call): Use new predicate
9043         Is_Access_Protected_Subprogram_Type, to handle both named and anonymous
9044         access to protected operations.
9045         (Add_Task_Actuals_To_Build_In_Place_Call): New procedure to add the
9046         master and chain actual parameters to a build-in-place function call
9047         involving tasks.
9048         (BIP_Formal_Suffix): Add new enumeration literals to complete the case
9049         statement.
9050         (Make_Build_In_Place_Call_In_Allocator,
9051         Make_Build_In_Place_Call_In_Anonymous_Context,
9052         Make_Build_In_Place_Call_In_Assignment,
9053         Make_Build_In_Place_Call_In_Object_Declaration): Call
9054         Add_Task_Actuals_To_Build_In_Place_Call with the appropriate master.
9055         (Expand_Inlined_Call): If the subprogram is a null procedure, or a
9056         stubbed procedure with a null body, replace the call with a null
9057         statement without using the full inlining machinery, for efficiency
9058         and to avoid invalid values in source file table entries.
9059
9060         * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Add support for
9061         renamings of calls to build-in-place functions.
9062
9063         * rtsfind.adb (RTE_Record_Component_Available): New subprogram that
9064         provides the functionality of RTE_Available to record components.
9065         (RTU_Entity): The function Entity has been renamed to RTU_Entity
9066         to avoid undesired overloading.
9067         (Entity): New subprogram that returns the entity for the referened
9068         unit. If this unit has not been loaded, it returns Empty.
9069         (RE_Activation_Chain_Access, RE_Move_Activation_Chain): New entities.
9070         Remove no longer used entities.
9071         (RE_Finalizable_Ptr_Ptr, RE_Move_Final_List): New entities.
9072         (RE_Type_Specific_Data): New entity.
9073         (RE_Move_Any_Value): New entity.
9074         (RE_TA_A, RE_Get_Any_Type): New entities.
9075         (RE_Access_Level, RE_Dispatch_Table, E_Default_Prim_Op_Count,
9076          RE_Prims_Ptr, RE_RC_Offset, RE_Remotely_Callable,
9077          RE_DT_Typeinfo_Ptr_Size, RE_Cstring_Ptr, RE_DT_Expanded_Name): Added.
9078         (Entity): New subprogram that returns the entity for the referened
9079         unit. If this unit has not been loaded, it returns Empty.
9080         (RTE): Addition of a new formal that extends the search to the scopes
9081         of the record types found in the chain of the package.
9082
9083         * sem_ch6.ads, sem_ch6.adb (Check_Overriding_Indicator): Print
9084         "abstract subprograms must be visible" message, whether or not the type
9085         is an interface; that is, remove the special case for interface types.
9086         (Analyze_Function_Return): Remove error message "return of task objects
9087         is not yet implemented" because this is now implemented.
9088         (Create_Extra_Formals): Add the extra master and activation chain
9089         formals in case the result type has tasks.
9090         Remove error message "return of limited controlled objects is not yet
9091         implemented".
9092         (Create_Extra_Formals): Add the extra caller's finalization list formal
9093         in case the result type has controlled parts.
9094         (Process_Formals): In case of access formal types there is no need
9095         to continue with the analysis of the formals if we already notified
9096         errors.
9097         (Check_Overriding_Indicator): Add code to check overriding of predefined
9098         operators.
9099         (Create_Extra_Formals): Prevent creation of useless Extra_Constrained
9100         flags for formals that do not require them,.
9101         (Enter_Overloaded_Entity): Do not give -gnatwh warning message unless
9102         hidden entity is use visible or directly visible.
9103         (Analyze_Abstract_Subprogram_Declaration,Analyze_Subprogram_Body,
9104         Analyze_Subprogram_Declaration,Analyze_Subprogram_Specification,
9105         Check_Conventions,Check_Delayed_Subprogram,Make_Inequality_Operator,
9106         New_Overloaded_Entity): Split Is_Abstract flag into
9107         Is_Abstract_Subprogram and Is_Abstract_Type.
9108
9109         * s-finimp.ads, s-finimp.adb (Move_Final_List): New procedure to move
9110         a return statement's finalization list to the caller's list, used for
9111         build-in-place functions with result type with controlled parts.
9112         Remove no longer used entities.
9113
9114         * s-taskin.ads (Activation_Chain): Remove pragma Volatile. It is no
9115         longer needed, because the full type is now limited, and therefore a
9116         pass-by-reference type.
9117         (Foreign_Task_Level): New constant.
9118
9119         * s-tassta.ads, s-tassta.adb (Move_Activation_Chain): New procedure to
9120         move tasks from the activation chain belonging to a return statement to
9121         the one passed in by the caller, and update the master to the one
9122         passed in by the caller.
9123         (Vulnerable_Complete_Master, Check_Unactivated_Tasks): Check the master
9124         of unactivated tasks, so we don't kill the ones that are being returned
9125         by a build-in-place function.
9126         (Create_Task): Ignore AI-280 for foreign threads.
9127
9128 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
9129             Robert Dewar  <dewar@adacore.com>
9130             Bob Duff  <duff@adacore.com>
9131             Gary Dismukes  <dismukes@adacore.com>
9132
9133         * errout.adb (Unwind_Internal_Type): Use predicate
9134         Is_Access__Protected_Subprogram_Type.
9135
9136         * freeze.adb (Size_Known): Use First/Next_Component_Or_Discriminant
9137         (Freeze_Entity, packed array case): Do not override explicitly set
9138         alignment and size clauses.
9139         (Freeze_Entity):  An entity declared in an outer scope can be frozen if
9140         the enclosing subprogram is a child unit body that acts as a spec.
9141         (Freeze_Entity): Use new predicate Is_Access_Protected_Subprogram_Type.
9142         (Freeze_Record_Type): New Ada 2005 processing for reverse bit order
9143         Remove all code for DSP option
9144
9145         * layout.adb (Layout_Record_Type): Use First/
9146         Next_Component_Or_Discriminant
9147         (Layout_Type): Use new predicate Is_Access_Protected_Subprogram_Type,
9148         to handle properly the anonymous access case.
9149
9150         * sem_attr.adb (Build_Access_Object_Type): Use E_Access_Attribute_Type
9151         for all access attributes, because overload resolution should work the
9152         same for 'Access, 'Unchecked_Access, and 'Unrestricted_Access. This
9153         causes the error message for the ambiguous "X'Access = Y'Access" and
9154         "X'Unrestricted_Access = Y'Access" and so forth to match.
9155         (Resolve_Attribute, case 'Access): Remove use of Original_Access_Type,
9156         now that anonymous access to protected operations have their own kind.
9157         (Resolve_Attribute): In case of dispatching call check the violation of
9158         restriction No_Dispatching_Calls.
9159         (Check_Array_Type): Check new -gnatyA array index style option
9160
9161         * sem_ch3.ads, sem_ch3.adb (Derived_Type_Declaration): Reject an
9162         attempt to derive from a synchronized tagged type.
9163         (Analyze_Type_Declaration): If there is a incomplete tagged view of the
9164         type, inherit the class-wide type already created, because it may
9165         already have been used in a self-referential anonymous access component.
9166         (Mentions_T): Recognize self-referential anonymous access components
9167         that use (a subtype of) the class-wide type of the enclosing type.
9168         (Build_Derived_Record_Type): Add earlier setting of Is_Tagged_Type. Pass
9169         Derived_Type for Prev formal on call to
9170         Check_Anonymous_Access_Components rather than Empty.
9171         (Make_Incomplete_Type_Declaration): Add test for case where the type has
9172         a record extension in deciding whether to create a class-wide type,
9173         rather than just checking Tagged_Present.
9174         (Replace_Anonymous_Access_To_Protected_Subprogram): Procedure applies
9175         to stand-alone object declarations as well as component declarations.
9176         (Array_Type_Declaration): Initialize Packed_Array_Type to Empty, to
9177         prevent accidental overwriting when enclosing package appears in
9178         a limited_with_clause.
9179         (Array_Type_Declaration): If the component type is an anonymous access,
9180         the associated_node for the itype is the type declaration itself.
9181         (Add_Interface_Tag_Components): Modified to support concurrent
9182         types with abstract interfaces.
9183         (Check_Abstract_Interfaces): New subprogram that verifies the ARM
9184         rules 3.9.4 (15/2), 9.1 (9.d/2) and 9.4 (11.d/2).
9185         (Build_Derived_Record_Type): Add call to Analyze_Interface_Declaration
9186         to complete the decoration of synchronized interface types. Add also
9187         a call to Check_Abstract_Interfaces to verify the ARM rules.
9188         (Derive_Interface_Subprograms): Modified to support concurrent types
9189         with abstract interfaces.
9190         (Analyze_Subtype_Indication): Resolve the range with the given subtype
9191         mark, rather than delaying the full resolution depending on context.
9192         (Analyze_Component_Declaration,Analyze_Interface_Declaration,
9193         Analyze_Object_Declaration,Analyze_Subtype_Declaration,
9194         Array_Type_Declaration,Build_Derived_Record_Type,
9195         Build_Discriminated_Subtype,Check_Abstract_Overriding,Check_Completion,
9196         Derive_Interface_Subprograms,Derive_Subprogram,Make_Class_Wide_Type,
9197         Process_Full_View,Record_Type_Declaration): Split Is_Abstract flag into
9198         Is_Abstract_Subprogram and Is_Abstract_Type. Make sure these are
9199         called only when appropriate.
9200         (Copy_And_Swap): Copy Has_Unreferenced_Objects flag from full type
9201         to private type.
9202         (Analyze_Subtype_Declaration): For an access subtype declaration, create
9203         an itype reference for the anonymous designated subtype, to prevent
9204         scope anonmalies in gigi.
9205         (Build_Itype_Reference): New utility, to simplify construction of such
9206         references.
9207
9208 2007-04-06  Vincent Celier  <celier@adacore.com>
9209
9210         * errutil.adb (Initialize): Initialize warnings table, if all warnings
9211         are suppressed, supply an initial dummy entry covering all possible
9212         source locations.
9213
9214         * make.adb (Scan_Make_Arg): Reject options that should start with "--"
9215         and start with only one, such as "-RTS=none".
9216         (Collect_Arguments): Do not check for sources outside of projects.
9217         Do not collect arguments if project is externally built.
9218         (Compile_Sources): Do nothing, not even check if the source is up to
9219         date, if its project is externally built.
9220         (Compile): When compiling a predefined source, add -gnatpg
9221         as the second switch, after -c.
9222         (Compile_Sources): Allow compilation of Annex J renames without -a
9223         (Is_In_Object_Directory): Check if the ALI file is in the object
9224         even if there is no project extension.
9225         (Create_Binder_Mapping_File): Only put a unit in the mapping file for
9226         gnatbind if the ALI file effectively exists.
9227         (Initialize): Add the directory where gnatmake is invoked in front of
9228         the path if it is invoked from a bin directory, even without directory
9229         information, so that the correct GNAT tools will be used when spawned
9230         without directory information.
9231
9232         * makeusg.adb: Change switch -S to -eS
9233         Add lines for new switches -we, -wn and -ws
9234         Add line for new switch -p
9235
9236         * prj-proc.adb (Process): Set Success to False when Warning_Mode is
9237         Treat_As_Error and there are warnings.
9238
9239         * switch-m.ads, switch-m.adb (Normalize_Compiler_Switches): Do not skip
9240         -gnatww Change gnatmake switch -S to -eS
9241         (Scan_Make_Switches): Code reorganisation. Process separately multi
9242         character switches and single character switches.
9243         (Scan_Make_Switches): New Boolean out parameter Success. Set Success to
9244         False when switch is not recognized by gnatmake.
9245         (Scan_Make_Switches): Set Setup_Projects True when -p or
9246         --create-missing-dirs is specified.
9247
9248         * fname.adb (Is_Predefined_File_Name): Return True for annex J
9249         renamings Calendar, Machine_Code, Unchecked_Conversion and
9250         Unchecked_Deallocation only when Renamings_Included is True.
9251
9252         * par.adb: Allow library units Calendar, Machine_Code,
9253         Unchecked_Conversion and Unchecked_Deallocation to be recompiled even
9254         when -gnatg is not specified.
9255         (P_Interface_Type_Definition): Remove the formal Is_Synchronized because
9256         there is no need to generate always a record_definition_node in case
9257         of synchronized interface types.
9258         (SIS_Entry_Active): Initialize global variable to False
9259         (P_Null_Exclusion): For AI-447: Add parameter Allow_Anonymous_In_95 to
9260         indicate cases where AI-447 says "not null" is legal.
9261
9262         * makeutl.ads, makeutil.adb (Executable_Prefix_Path): New function
9263
9264         * makegpr.adb (Check_Compilation_Needed): Take into account dependency
9265         files with with several lines starting with the object fileb name.
9266         (Scan_Arg): Set Setup_Projects True when -p or --create-missing-dirs
9267         is specified.
9268         (Initialize): Add the directory where gprmake is invoked in front of the
9269         path, if it is invoked from a bin directory or with directory
9270         information, so that the correct GNAT tools will be used when invoked
9271         directly.
9272         (Check_Compilation_Needed): Process correctly backslashes on Windows.
9273
9274         * vms_data.ads: Update switches/qualifiers
9275
9276 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
9277             Thomas Quinot  <quinot@adacore.com>
9278
9279         * exp_aggr.adb:
9280         If the array component is a discriminated record, the array aggregate
9281         is non-static even if the component is given by an aggregate with
9282         static components.
9283         (Expand_Record_Aggregate): Use First/Next_Component_Or_Discriminant
9284         (Convert_Aggr_In_Allocator): If the allocator is for an access
9285         discriminant and the type is controlled. do not place on a finalization
9286         list at this point. The proper list will be determined from the
9287         enclosing object.
9288         (Build_Record_Aggr_Code): If aggregate has box-initialized components,
9289         initialize record controller if needed, before the components, to ensure
9290         that they are properly finalized.
9291         (Build_Record_Aggr_Code): For the case of an array component that has a
9292         corresponding array aggregate in the record aggregate, perform sliding
9293         if required.
9294
9295 2007-04-06  Javier Miranda  <miranda@adacore.com>
9296             Gary Dismukes  <dismukes@adacore.com>
9297             Ed Schonberg  <schonberg@adacore.com>
9298
9299         * exp_ch13.adb (Expand_External_Tag_Definition): Replace call to the
9300         run-time subprogram Set_External_Tag by call to Build_Set_External_Tag.
9301
9302         * exp_ch4.adb (Expand_Allocator_Expression): Don't perform a run-time
9303         accessibility on class-wide allocators if the allocator occurs at the
9304         same scope level as the allocator's type. The check is guaranteed to
9305         succeed in that case, even when the expression originates from a
9306         parameter of the containing subprogram.
9307         (Expand_N_Op_Eq): Do nothing in case of dispatching call if compiling
9308         under No_Dispatching_Calls restriction. During the semantic analysis
9309         we already notified such violation.
9310         (Tagged_Membership): Constant folding. There is no need to check
9311         the tag at run-time if the type of the right operand is non
9312         class-wide abstract.
9313         Replace call to Is_Ancestor by call to Is_Parent
9314         to support concurrent types with interface types.
9315         (Expand_N_Allocator): Add an assertion associated with the generation
9316         of the master_id.
9317         (Expand_N_Slice): Do not enable range check to nodes associated
9318         with the frontend expansion of the dispatch table.
9319         (Is_Local_Access_Discriminant): Subsidiary function to
9320         Expand_N_Allocator.
9321         (Tagged_Membership): Replace generation of call to the run-time
9322         subprogram CW_Membership by call to Build_CW_Membership.
9323         (Expand_Allocator_Expression): Replace generation of call to the
9324         run-time subprogram Get_Access_Level by call to Build_Get_Access_Level.
9325
9326         * exp_disp.ads, exp_disp.adb (Make_DT): Code reorganization to
9327         initialize most the TSD components by means of an aggregate.
9328         Modify the declaration of the object containing the TSD
9329         because we now expand code that has a higher level of abstraction.
9330         The TSD has a discriminant containing the Inheritance Depth Level,
9331         value that is used in the membership test but also to fix the size
9332         of the table of ancestors.
9333         (Expand_Interface_Conversion): Insert function body at the closest place
9334         to the conversion expression, to prevent access-before-elaboration
9335         errors in the backend.
9336         Code improved to reduce the size of the dispatch table if
9337         compiling under restriction No_Dispatching_Calls plus code cleanup.
9338         Code reorganization plus removal of calls to Set_Num_Prim_Ops
9339         (Make_Secondary_DT): Remove call to Set_Num_Prim_Ops.
9340         (Expand_Dispatching_Call): Minor code reorganization plus addition of
9341         code to return immediately if compiling under No_Dispatching_Calls
9342         restriction.
9343         (Set_All_DT_Position): Remove code associated with the old CPP pragmas.
9344         CPP_Virtual and CPP_Vtable are no longer supported.
9345         (Expand_Interface_Conversion): Add missing support for interface type
9346         derivations.
9347         (Expand_Interface_Actuals): Replace calls to Is_Ancestor by calls to
9348         Is_Parent to support concurrent types with interfaces.
9349         (Init_Predefined_Interface_Primitives): Removed.
9350         (Make_Secondary_DT): Modified to support concurrent record types.
9351         (Set_All_DT_Position): Modified to support concurrent record types.
9352         (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entries associated
9353         with Get_External_Tag, Inherit_TSD, Set_External_Tag.
9354         (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entry associated
9355         with CW_Membership.
9356         (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entries associated
9357         with Get_Access_Level, Get_Predefined_Prim_Op_Address,
9358         Get_Prim_Op_Address Get_RC_Offset, Get_Remotely_Callable, Inherit_DT,
9359         Set_Access_Level, Set_Expanded_Name, Set_Predefined_Prim_Op_Address,
9360         Set_Prim_Op_Address, Set_RC_Offset, Set_Remotely_Callable, Set_TSD.
9361         (Expand_Dispatching_Call): Replace generation of call to the run-time
9362         subprograms Get_Predefined_Prim_Op_Address and Get_Prim_Op_Address by
9363         calls to Build_Get_Predefined_Prim_Op_Address, and Build_Get_Prim_Op_
9364         Address.
9365         (Fill_DT_Entry, Fill_Secondary_DT_Entry): Replace generation of call to
9366         the run-time subprograms Set_Predefined_Prim_Op_Address and Set_Prim_
9367         Op_Address by calls to Build_Set_Predefined_Prim_Op_Address, and
9368         Build_Set_Prim_Op_Address.
9369         (Get_Remotely_Callable): Subprogram removed.
9370         (Init_Predefined_Interface_Primitives): Replace generation of call to
9371         the run-time subprograms Inherit_DT by call to Build_Inherit_Predefined_
9372         Prims.
9373
9374         * sem_elab.adb (Set_Elaboration_Constraint): Replace the call to
9375         First (Parameter_Associations ()) with the call to First_Actual that
9376         returns an actual parameter expression for both named and positional
9377         associations.
9378
9379         * sem_disp.adb (Check_Dispatching_Call): In case of dispatching call
9380         check violation of restriction No_Dispatching_Calls.
9381         (Check_Controlling_Type): A formal of a tagged incomplete type is a
9382         controlling argument.
9383
9384         * exp_util.ads, exp_util.adb (Type_May_Have_Bit_Aligned_Components): Use
9385         First/Next_Component_Or_Discriminant
9386         (Insert_Actions): Add entries for new N_Push and N_Pop nodes
9387         (Find_Implemented_Interface): Removed. All the calls to this subprogram
9388         specify Any_Limited_Interface, and this functionality is already
9389         provided by the function Has_Abstract_Interfaces.
9390         (Find_Interface, Find_Interface_Tag, Find_Interface_ADT): Modified to
9391         support concurrent types implementing interfaces.
9392         (Find_Implemented_Interface): Removed. All the calls to this subprogram
9393         specify kind Any_Limited_Interface, and this functionality is already
9394         provided by the function Has_Abstract_Interfaces.
9395         (Remove_Side_Effects): replace Controlled_Type by
9396         CW_Or_Controlled_Type whenever the issue is related to
9397         using or not the secondary stack.
9398
9399         * par-ch12.adb (P_Formal_Type_Definition): Update calls to
9400         P_Interface_Type_Definition to fulfill the new interface (the formal
9401         Is_Synchronized is no longer required).
9402
9403         * Make-lang.in (GNAT_ADA_OBJS): Addition of exp_atag.o
9404         Update dependencies.
9405
9406         * exp_atag.ads, exp_atag.adb: New file
9407
9408 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
9409             Bob Duff  <duff@adacore.com>
9410             Cyrille Comar  <comar@adacore.com>
9411
9412         * exp_ch7.ads, exp_ch7.adb (Find_Final_List): If the access type is
9413         anonymous, use finalization list of enclosing dynamic scope.
9414         (Expand_N_Package_Declaration): For a library package declaration
9415         without a corresponding body, generate RACW subprogram bodies in the
9416         spec (just as we do for the task activation call).
9417         (Convert_View): Split Is_Abstract flag into Is_Abstract_Subprogram and
9418         Is_Abstract_Type. Make sure these are called only when appropriate.
9419         Remove all code for DSP option
9420         (CW_Or_Controlled_Type): new subprogram.
9421
9422 2007-04-06  Eric Botcazou  <botcazou@adacore.com>
9423             Ed Schonberg  <schonberg@adacore.com>
9424             Gary Dismukes  <dismukes@adacore.com>
9425
9426         * exp_ch9.ads, exp_ch9.adb (Family_Offset): Add new 'Cap' boolean
9427         parameter. If it is set to true, return a result capped according to
9428         the global upper bound for the index of an entry family.
9429         (Family_Size): Add new 'Cap' boolean parameter. Pass it to Family_Offset
9430         (Build_Find_Body_Index): Adjust for above change.
9431         (Entry_Index_Expression): Likewise.
9432         (Is_Potentially_Large_Family): New function extracted from...
9433         (Collect_Entry_Families): ...here. Call it to detect whether the family
9434         is potentially large.
9435         (Build_Entry_Count_Expression): If the family is potentially large, call
9436         Family_Size with 'Cap' set to true.
9437         (Expand_N_Protected_Type_Declaration, Expand_N_Protected_Body): Generate
9438         a protected version of an operation declared in the private part of
9439         a protected object, because they may be invoked through a callback.
9440         (Set_Privals): If the type of a private component is an anonymous access
9441         type, do not create a new itype for each protected body.
9442         If the body of a protected operation creates
9443         controlled types (including allocators for class-widetypes), the
9444         body of the corresponding protected subprogram must include a
9445         finalization list.
9446         (Build_Activation_Chain_Entity): Build the chain entity for extended
9447         return statements.
9448         (Type_Conformant_Parameters): Use common predicate Conforming_Types
9449         to determine whether operation overrides an inherited primitive.
9450         (Build_Wrapper_Spec): Add code to examine the parents while looking
9451         for a possible overriding candidate.
9452         (Build_Simple_Entry_Call): Set No_Initialization on the object used to
9453         hold an actual parameter value since its initialization is separated
9454         from the the declaration. Prevents errors on null-excluding access
9455         formals.
9456
9457 2007-04-06  Thomas Quinot  <quinot@adacore.com>
9458             Pablo Oliveira  <oliveira@adacore.com>
9459
9460         * exp_dist.ads, exp_dist.adb (Build_To_Any_Call, Build_From_Any_Call):
9461         Do an Unchecked_Conversion to handle the passage from the Underlying
9462         Type to the Base Type when calling Build_To_Any_Call and
9463         Build_From_Any_Call.
9464         (Build_Actual_Object_Declaration): Set Object's Ekind to E_Variable or
9465         E_Constant, depending upon Variable formal.
9466         (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
9467         PolyORB_Support.Build_Subprogram_Receiving_Stubs): For a formal
9468         parameter that requires an extra constrained parameter, declare
9469         temporary for actual as a variable, not a constant.
9470         (Add_RACW_Primitive_Declarations_And_Bodies): Generate bodies only when
9471         the unit being compiled is the one that contains the stub type.
9472         Change primitive operation name for the RACW associated with a RAS
9473         from Call to _Call so it cannot clash with any legal identifier.
9474         (PolyORB_Support.Add_RACW_Write_Attribute): Remove unused constant
9475         Is_RAS.
9476         (Append_RACW_Bodies): New subprogram.
9477         (Expand_Receiving_Stubs_Bodies): Pass a 'Stmts' list to
9478         Add_Receiving_Stubs_To_Declarations functions.
9479         When expanding a package body, this list correspond to the
9480         statements in the HSS at the end of the pacakge.
9481         When expanding a package spec, this list correspond to the
9482         spec declarations.
9483         (Add_Receiving_Stubs_To_Declarations): Append the function
9484         registering the receiving stubs at the end of the 'Stmts' list.
9485         (RCI_Package_Locator): Pass the new Version generic formal when
9486         instantiating a RCI_Locator package.
9487         (Build_From_Any_Function): To compute the High bound for an
9488         unconstrained array actual, we add the Low bound with the length.
9489         Thus we must convert the low bound and the length to an appropriate
9490         type before doing the sum.
9491         (Build_Subprogram_Receiving_Stubs, PolyORB):
9492          * Retrieve the extra formals parameters at the
9493            end of the parameter stream.
9494          * Use Move_Any_Value to write back out parameters
9495            after executing the request as it is more efficient
9496            than Copy_Any_Value.
9497          * Build the any containing Extra Formals with the
9498            appropriate typecode.
9499         (PolyORB_Support.Helpers.Append_Record_Traversal): Nothing to do for an
9500         empty Component_List.
9501         (Build_Actual_Object_Declaration): New subprogram. Build and insert into
9502         the tree the declaration for an object that serves as actual parameter
9503         in server-side stubs.
9504         (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
9505         PolyORB_Support.Build_Subprogram_Receiving_Stubs):
9506         Use Build_Actual_Object_Declaration to prepare the actuals.
9507         (Add_Parameter_To_NVList): Set the parameter mode to In for
9508         Extra Constrained Parameters.
9509         (Build_General_Calling_Stubs): Set the parameter type to boolean for
9510         Extra Constrained parameters.
9511         (Build_To_Any_Function, Build_From_Any_Function,
9512         Built_TypeCode_Function): When Typ is implicit, call the correct
9513         function with the first not implicit parent type.
9514         (TC_Rec_Add_Process_Element, FA_Rec_Add_Process_Element,
9515         (FA_Ary_Add_Process_Element): When Datum is an Any, we cannot infer the
9516         typecode from the Etype. Therefore we retrieve the correct typecode
9517         with a call to Get_Any_Type.
9518         (Copy_Specification): Do controlling formal type substitution based on
9519         Is_Controlling_Formal flag, instead of caller-provided object type.
9520         (Build_Subprogram_Calling_Stubs): When retrieveing the original spec for
9521         a RACW primitive operation, we might get a subprogram declaration for an
9522         ancestor of the RACW designated type (not for the designated type
9523         itself), in the case where this operation is inherited. In this case we
9524         have no easy means of determining the original tagged type for which
9525         the primitive was declared, so instead we now rely on
9526         Copy_Specification to use the Is_Controlling_Formal flag to determine
9527         which formals require type substitution.
9528
9529 2007-04-06  Robert Dewar  <dewar@adacore.com>
9530             Ed Schonberg  <schonberg@adacore.com>
9531
9532         * exp_intr.adb (Expand_Exception_Call): Calls to subprograms in
9533         GNAT.Current_Exception are not allowed if pragma Restrictions
9534         (No_Exception_Propagation) is set and in any case make the associated
9535         handler unsuitable as a target for a local raise statement.
9536         (Expand_Dispatching_Constructor_Call): Replace generation of call to the
9537         run-time subprogram CW_Membership by call to Build_CW_Membership.
9538         (Expand_Dispatching_Constructor_Call): If the dispatching tag is given
9539         by a function call, a temporary must be created before expanding the
9540         Constructor_Call itself, to prevent out-of-order elaboration in the
9541         back-end when stack checking is enabled..
9542
9543 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
9544
9545         * exp_pakd.adb (Expand_Packed_Boolean_Operator): The bounds of the
9546         result are the bounds of the left operand, not the right.
9547
9548 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
9549
9550         * exp_strm.adb
9551         (Build_Mutable_Record_Write_Procedure): For an Unchecked_Union type, use
9552          discriminant defaults.
9553         (Build_Record_Or_Elementary_Output_Procedure): Ditto.
9554         (Make_Component_List_Attributes): Ditto.
9555
9556 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
9557             Bob Duff  <duff@adacore.com>
9558
9559         * sem_aggr.adb (Resolve_Record_Aggregate): In semantics-only mode treat
9560         an association with a box as providing a value even though the
9561         initialization procedure for the type is not available.
9562         (Resolve_Record_Aggregate): Check that a choice of an association with a
9563         box corresponds to a component of the type.
9564         (Resolve_Record_Aggregate): Split Is_Abstract flag into
9565         Is_Abstract_Subprogram and Is_Abstract_Type.
9566
9567         * exp_tss.adb (Base_Init_Proc): Use Is_Type instead of Type_Kind for
9568         assert.
9569
9570         * inline.adb (Add_Inlined_Body): Split Is_Abstract flag into
9571         Is_Abstract_Subprogram and Is_Abstract_Type. Make sure these are
9572         called only when appropriate.
9573
9574 2007-04-06  Olivier Hainque  <hainque@adacore.com>
9575
9576         * g-alleve.ads (Low Level Vector type definitions): Map each to the
9577         associated vector view instead of all to the unsigned char view.
9578
9579         * g-altcon.adb (Generic_Conversions): New internal generic package,
9580         offering facilities for all the Vector/View conversion routines
9581         implemented by this unit.
9582         (To_View/To_Vector - all versions): Reimplemented in a systematic
9583         manner, using the internal Generic_Conversions facilities.
9584
9585 2007-04-06  Pascal Obry  <obry@adacore.com>
9586
9587         * g-arrspl.adb (Free) [Element_Access]: New routine to free the source
9588         string.
9589         (Create): Free the source string before storing the new one.
9590
9591 2007-04-06  Vincent Celier  <celier@adacore.com>
9592
9593         * g-debpoo.adb (Validity): New package with a complete new
9594         implementation of subprograms Is_Valid and Set_Valid.
9595         (Is_Valid): Move to local package Validity
9596         (Set_Valid): Move to local package Validity
9597
9598 2007-04-06  Arnaud Charlet  <charlet@adacore.com>
9599             Pablo Oliveira  <oliveira@adacore.com>
9600
9601         * g-expect.adb (Get_Command_Output): When expanding the output buffer
9602         we must ensure that there is enough place for the new data we are going
9603         to copy in.
9604
9605 2007-04-06  Thomas Quinot  <quinot@adacore.com>
9606
9607         * g-md5.ads, g-md5.adb (Digest): Fix off-by-one error in padding
9608         computation.
9609
9610 2007-04-06  Jose Ruiz  <ruiz@adacore.com>
9611             Vincent Celier  <celier@adacore.com>
9612
9613         * gnatcmd.adb (B_Start): Add prefix of binder generated file.
9614         (Stack_String): Add this String that contains the name of the Stack
9615         package in the project file.
9616         (Packages_To_Check_By_Stack): Add this list that contains the packages
9617         to be checked by gnatstack, which are the naming and the stack packages.
9618         (Check_Files): If no .ci files were specified for gnatstack we add all
9619         the .ci files belonging to the projects, including binder generated
9620         files.
9621         (Non_VMS_Usage): Document that gnatstack accept project file switches.
9622         (GNATCmd): Update the B_Start variable if we are in a VMS environment.
9623         Add gnatstack to the list of commands that use project file related
9624         switches, and get the single attribute Switches from the stack package
9625         in a project file when calling gnatstack. Parse the -U flag for
9626         processing files belonging to all projects in the project tree.
9627         Remove all processing for command Setup
9628
9629         * prj-attr.adb: Add new package Stack with single attribute Switches
9630
9631         * vms_conv.ads (Command_Type): Add command Stack.
9632         Move to body declarations that are only used in the body: types Item_Id,
9633         Translation_Type, Item_Ptr, Item and its subtypes.
9634
9635         * vms_conv.adb: (Initialize): Add data for new command Stack.
9636         Add declarations moved from the spec: types Item_Id, Translation_Type,
9637         Item_Ptr, Item and its subtypes.
9638         (Cargs_Buffer): New table
9639         (Cargs): New Boolean global variable
9640         (Process_Buffer): New procedure to create arguments
9641         (Place): Put character in table Buffer or Cargs_Buffer depending on the
9642          value of Cargs.
9643         (Process_Argument): Set Cargs when processing qualifiers for GNAT
9644         COMPILE
9645         (VMS_Conversion): Call Process_Buffer for table Buffer and, if it is not
9646         empty, for table Cargs_Buffer.
9647         (Initialize): Remove component Setup in Command_List
9648
9649 2007-04-06  Vincent Celier  <celier@adacore.com>
9650
9651         * gprep.adb (Process_Files.Process_One_File): Use full file name when
9652         issuing pragma Source_Reference.
9653
9654 2007-04-06  Emmanuel Briot  <briot@adacore.com>
9655
9656         * g-regpat.adb (Parse_Posix_Character_Class): Fix handling of
9657         [[:xdigit:]] character class.
9658         Also raise an exception when an invalid character class is used.
9659
9660 2007-04-06  Pascal Obry  <obry@adacore.com>
9661
9662         * i-cstrea.ads: (fopen): Add encoding parameter.
9663         (freopen): Idem.
9664         Change reference from a-sysdep.c to sysdep.c in comment.
9665         Update copyright notice.
9666         This set of patch add support for the encoding form parameter.
9667
9668         * mingw32.h (S2WSU): New macro to convert from a string to a
9669         wide-string using the UTF-8 encoding. The S2WS macro supports now only
9670         standard 8bits encoding.
9671         (WS2SU): As above but converting from wide-sring to string.
9672         This is needed as it is necessary to have access to both versions in the
9673         runtime for the form parameter encoding support.
9674         This set of patch add support for the encoding form parameter.
9675         (S2WS): Improve implementation to handle cases where the filename is not
9676         UTF-8 encoded. In this case we default to using the current code page
9677         for the conversion.
9678
9679         * s-crtl-vms64.ads, s-crtl.ads (Filename_Encoding): New enumeration
9680         type (UTF8, ASCII_8bits). This enumeration has a rep clause to match
9681         the constants defined in adaint.h.
9682         (fopen): Add encoding parameter.
9683         (freopen): Idem.
9684
9685         * s-ficobl.ads (AFCB): Add Encoding field to record the filename
9686         encoding. This is needed for the Reset routine (freopen low level-call).
9687
9688         * s-fileio.adb (Open): Decode encoding form parameter and set the
9689         corresponding encoding value into AFCB structure.
9690         (Reset): Pass the encoding value to freopen.
9691         (Close): Move the call to Lock_Task to the beginning of the procedure.
9692
9693 2007-04-06  Geert Bosch  <bosch@adacore.com>
9694             Robert Dewar  <dewar@adacore.com>
9695
9696         * i-fortra.ads: Add Double_Complex type.
9697
9698         * impunit.adb: (Is_Known_Unit): New function
9699         Add Gnat.Byte_Swapping
9700         Add GNAT.SHA1
9701         Add new Ada 2005 units
9702         Ada.Numerics.Generic_Complex_Arrays, Ada.Numerics.Generic_Real_Arrays,
9703         Ada.Numerics.Complex_Arrays, Ada.Numerics.Real_Arrays,
9704         Ada.Numerics.Long_Complex_Arrays, Ada.Numerics.Long_Long_Complex_Arrays,
9705         Ada.Numerics.Long_Long_Real_Arrays and Ada.Numerics.Long_Real_Arrays
9706
9707         * impunit.ads (Is_Known_Unit): New function
9708
9709         * a-ngcoar.adb, a-ngcoar.ads, a-ngrear.adb,
9710         a-ngrear.ads, a-nlcoar.ads, a-nllcar.ads, a-nllrar.ads, a-nlrear.ads,
9711         a-nucoar.ads, a-nurear.ads, g-bytswa.adb, g-bytswa-x86.adb,
9712         g-bytswa.ads, g-sha1.adb, g-sha1.ads, i-forbla.ads, i-forlap.ads,
9713         s-gearop.adb, s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb,
9714         s-gecola.ads, s-gerebl.adb, s-gerebl.ads, s-gerela.adb, s-gerela.ads:
9715         New files.
9716
9717         * Makefile.rtl: Add g-bytswa, g-sha1, a-fzteio and a-izteio
9718
9719         * a-fzteio.ads, a-izteio.ads: New Ada 2005 run-time units.
9720
9721 2007-04-06  Eric Botcazou  <botcazou@adacore.com>
9722             Arnaud Charlet  <charlet@adacore.com>
9723
9724         * init.c: Reuse PA/HP-UX code for IA-64/HP-UX, except
9725         __gnat_adjust_context_for_raise.
9726         (__gnat_init_float): on x86 vxworks 5.x and 6.x, we use the same
9727         implementation of floating point operations as native x86 targets.
9728         So the FPU should be initialized in the same way using finit. Fix
9729         floating point operations accuracy issues.
9730         (__gnat_install_handler, case FreeBSD): Use proper type for sa_sigaction
9731         member in struct sigaction, so as to avoid warning for incompatible
9732         pointer types.
9733
9734 2007-04-06 Serguei Rybin  <rybin@adacore.com>
9735
9736         * lib.ads, lib.adb (Tree_Read): Release the memory occupied by the
9737         switches from previously loaded tree
9738
9739 2007-04-06  Thomas Quinot  <quinot@adacore.com>
9740
9741         * lib-writ.adb (Write_With_Lines): Factor duplicated code between the
9742         cases where a given dependency has a body or not.
9743         (Write_With_File_Names): New subprogram, common code for the two cases
9744         above.
9745
9746 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
9747             Javier Miranda  <miranda@adacore.com>
9748
9749         * lib-xref.ads, lib-xref.adb: 
9750         Modify the loop that collects type references, to include interface
9751         types that the type implements. List each of these interfaces when
9752         building the entry for the type.
9753         (Generate_Definition): Initialize component Def and Typ of new entry
9754         in table Xrefs, to avoid to have these components unitialized.
9755         (Output_References): Split Is_Abstract flag into
9756         Is_Abstract_Subprogram and Is_Abstract_Type.
9757         (Generate_Reference): Add barrier to do not generate the warning
9758         associated with Ada 2005 entities with entities generated by the
9759         expander.
9760
9761 2007-04-06  Robert Dewar  <dewar@adacore.com>
9762             Arnaud Charlet  <charlet@adacore.com>
9763             Vincent Celier  <celier@adacore.com>
9764
9765         * gnat_rm.texi, gnat_ugn.texi: Add -gnatyl documentation
9766         Update 'Exception Handling Control' chapter which was outdated.
9767         Minor fix to documentation of -gnatwq
9768         Remove section "Adapting the Run Time to a New C++ Compiler" because
9769         it is now obsolete.
9770         Add passage on need of -nostart-files in some non-ada-main cases.
9771         Document new switch -eS (/STANDARD_OUTPUT_FOR_COMMANDS) for gnatmake
9772         Update documentation about Interfacing with C++
9773         Add documentation for new gnatmake switch -p
9774         Add missing protocol part in URLs.
9775         Document -gnatyA
9776         Document pragma Compile_Time_Error
9777         Add documentation for Object_Size indicating that stand alone
9778         objects can have a larger size in some cases.
9779         Add node for GNAT.Byte_Swapping, GNAT.SHA1
9780         Update reference to the Ravenscar profile.
9781         Document pragma Unreferenced_Objects
9782
9783         * gnat-style.texi: Fix typo
9784
9785 2007-04-06  Vincent Celier  <celier@adacore.com>
9786
9787         * mlib.adb (Building_Library): Only output "building a library..." in
9788         verbose mode
9789
9790         * mlib-prj.adb (Build_Library): Only output lists of object and ALI
9791         files in verbose mode.
9792
9793         * mlib-utl.adb (Ar): Only output the first object files when not in
9794         verbose mode.
9795         (Gcc): Do not display all the object files if not in verbose mode, only
9796         the first one.
9797
9798 2007-04-06  Robert Dewar  <dewar@adacore.com>
9799
9800         * namet.ads, namet.adb (wn): Improve this debugging routine. Calling
9801         it no longer destroys the contents of Name_Buffer or Name_Len and
9802         non-standard and invalid names are handled better.
9803         (Get_Decoded_Name_String): Improve performance by using
9804         Name_Has_No_Encodings flag in the name table.
9805         (Is_Valid_Name): New function to determine whether a Name_Id is valid.
9806         Used for debugging printouts.
9807
9808 2007-04-06  Robert Dewar  <dewar@adacore.com>
9809             Javier Miranda  <miranda@adacore.com>
9810             Bob Duff  <duff@adacore.com>
9811
9812         * par-ch3.adb: (P_Type_Declaration): Set Type_Token_Location
9813         (P_Interface_Type_Definition): Remove the formal Is_Synchronized because
9814         there is no need to generate always a record_definition_node in case
9815         of synchronized interface types.
9816         (P_Type_Declaration): Update calls to P_Interface_Type_Definition.
9817         (P_Null_Exclusion): For AI-447: Remove warnings about "not null" being
9818         illegal in Ada 95, in cases where it is legal. Change the warnings to
9819         errors in other cases. Don't give the error unless the "not null"
9820         parses properly. Correct the source position at which the error occurs.
9821         (P_Known_Discriminant_Part_Opt): Pass Allow_Anonymous_In_95 => True to
9822         P_Null_Exclusion, to suppress "not null" warnings.
9823         (P_Identifier_Declarations): Code cleanup. Removed unrequired label and
9824         associated goto statements.
9825
9826         * par-endh.adb (Pop_End_Context): Allow more flexibility in placement
9827         of END RECORD
9828
9829         * scans.ads (Type_Token_Location): New flag
9830
9831         * par-ch6.adb (P_Mode): Check specifically for case of IN ACCESS
9832         (P_Formal_Part): Pass Allow_Anonymous_In_95 => True to
9833         P_Null_Exclusion, to suppress "not null" warnings.
9834
9835 2007-04-06  Robert Dewar  <dewar@adacore.com>
9836             Javier Miranda  <miranda@adacore.com>
9837             Bob Duff  <duff@adacore.com>
9838             Vincent Celier  <celier@adacore.com>
9839
9840         * par-prag.adb (Prag): Add dummy entry for pragma Compile_Time_Error
9841         (Extensions_Allowed): No longer sets Ada_Version
9842         Entry for pragma Unreferenced_Objects
9843
9844         * sem_prag.adb (Analyze_Pragma, case Priority): Force with of
9845         system.tasking if pragma priority used in a procedure
9846         (Analyze_Pragma, case Warning): Handle dot warning switches
9847         (Process_Compile_Time_Warning_Or_Error): New procedure
9848         (Analyze_Pragma): Add processing for Compile_Time_Error
9849         Add support for extra arguments External_Name and Link_Name.
9850         Remove code associated with pragmas CPP_Virtual and CPP_Vtable.
9851         (Process_Import_Or_Interface): Add support for the use of pragma Import
9852         with tagged types.
9853         (Extensions_Allowed): No longer affects Ada_Version
9854         (Analyze_Pragma): Split Is_Abstract flag into Is_Abstract_Subprogram and
9855         Is_Abstract_Type. Make sure these are called only when appropriate.
9856         Add processing for pragma Unreferenced_Objects
9857
9858         * snames.h, snames.ads, snames.adb: Add entry for pragma
9859         Compile_Time_Error
9860         Add new standard name Minimum_Binder_Options for new gprmake
9861         Add new standard names for gprmake: Archive_Suffix,
9862         Library_Auto_Init_Supported, Library_Major_Minor_Id_Supported,
9863         Library_Support, Library_Version_Options,
9864         Shared_Library_Minimum_Options,
9865         Shared_Library_Prefix, Shared_Library_Suffix, Symbolic_Link_Supported.
9866         Change Name_Call to Name_uCall so that it cannot clash with a legal
9867         subprogram name.
9868         Add new standard names Mapping_Spec_Suffix and Mapping_Body_Suffix
9869         Append C_Plus_Plus to convention identifiers as synonym for CPP
9870         Add new standard names Stack and Builder_Switches
9871         Add new standard names: Compiler_Minimum_Options, Global_Config_File,
9872         Library_Builder, Local_Config_File, Objects_Path, Objects_Path_File,
9873         Run_Path_Option, Toolchain_Version.
9874         Entry for pragma Unreferenced_Objects
9875
9876         * switch-c.adb (Scan_Front_End_Switches): Store correct -gnateD
9877         switches, without repetition of "eD". Make sure that last character of
9878         -gnatep= switch is not taken as -gnat switch character.
9879         Complete rewrite of circuit for handling saving compilation options
9880         Occasioned by need to support dot switchs for -gnatw, but cleans up
9881         things in general.
9882         -gnatX does not affect Ada_Version
9883         Include -gnatyA in -gnatg style switches
9884
9885         * sem_warn.ads, sem_warn.adb (Output_Unreferenced_Messages): Exclude
9886         warnings on return objects.
9887         (Warn_On_Useless_Assignment): Exclude warnings on return objects
9888         (Set_Dot_Warning_Switch): New procedure
9889         (Check_References): Add missing case of test for
9890         Has_Pragma_Unreferenced_Objects
9891         (Output_Unreferenced_Messages): Implement effect of new pragma
9892         Unreferenced_Objects, remove special casing of limited controlled
9893         variables.
9894
9895 2007-04-06  Vincent Celier  <celier@adacore.com>
9896
9897         * prj-ext.adb (Initialize_Project_Path): New procedure that initialize
9898         the default project path, initially done during elaboration of the
9899         package.
9900         If the prefix returned by Sdefault is null, get the prefix from a call
9901         to Executable_Prefix_Path.
9902         (Project_Path): Call Initialize_Project_Path if Current_Project_Path is
9903         null.
9904
9905         * prj-nmsc.adb (Get_Path_Names_And_Record_Sources): Use the non
9906         canonical directory name to open the directory from which files are
9907         retrieved.
9908         (Record_Other_Sources): Idem.
9909         (Locate_Directory): Add the possibility to create automatically missing
9910         directories when Setup_Projects is True.
9911         Call Locate_Directory so that the directory will be created when
9912         Setup_Projects is True, for object dir, library dir, library ALI dir,
9913         library source copy dir and exec dir.
9914
9915         * prj-pp.adb (Max_Line_Length): Set to 255 for compatibility with older
9916         versions of GNAT.
9917
9918 2007-04-06  Robert Dewar  <dewar@adacore.com>
9919
9920         * sem_ch13.ads, sem_ch13.adb (Adjust_Record_For_Reverse_Bit_Order):
9921         Use First/Next_Component_Or_Discriminant
9922         (Analyze_Record_Representation_Clause):
9923         Use First/Next_Component_Or_Discriminant
9924         (Check_Component_Overlap): Use First/Next_Component_Or_Discriminant
9925         (Analyze_Attribute_Definition_Clause, case Value_Size): Reject
9926         definition if type is unconstrained.
9927         (Adjust_Record_For_Reverse_Bit_Order): New procedure
9928         (Analyze_Attribute_Definition_Clause): Split Is_Abstract flag into
9929         Is_Abstract_Subprogram and Is_Abstract_Type.
9930         (Adjust_Record_For_Reverse_Bit_Order): New procedure
9931
9932         * repinfo.adb (List_Record_Info): Use First/
9933         Next_Component_Or_Discriminant.
9934
9935         * style.ads, styleg-c.adb, styleg-c.ads (Check_Array_Attribute_Index):
9936         New procedure.
9937
9938         * stylesw.ads, stylesw.adb: Recognize new -gnatyA style switch
9939         Include -gnatyA in default switches
9940
9941         * opt.ads: (Warn_On_Non_Local_Exception): New flag
9942         (Warn_On_Reverse_Bit_Order): New flag
9943         (Extensions_Allowed): Update the documentation.
9944         (Warn_On_Questionable_Missing_Parens): Now on by default
9945
9946         * usage.adb: Add documentation of -gnatw.x/X switches
9947         Document new -gnatyA style switch
9948         -gnatq warnings are on by default
9949
9950 2007-04-06  Ed Falis  <falis@adacore.com>
9951
9952         * s-carun8.adb, s-carsi8.adb (Compare_Array_?8): modify so that last
9953         full word is no longer compared twice.
9954
9955 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
9956
9957         * sem_ch10.adb (Install_Limited_Context_Clauses.
9958         Expand_Limited_With_Clause): Use a new copy of selector name in the
9959         call to Make_With_Clause. This fixes the tree structure for ASIS
9960         purposes. Nothing is changed in the compiler behaviour.
9961         (Process_Body_Clauses): Handle properly use clauses whose prefix is
9962         a package renaming.
9963         (Install_Limited_With_Clauses): Do not install non-limited view when it
9964         is still incomplete.
9965
9966 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
9967             Gary Dismukes  <dismukes@adacore.com>
9968
9969         * sem_ch12.adb (Check_Generic_Actuals): Use first subtype of actual
9970         when capturing size information, instead of base type, which for a
9971         formal array type will be the unconstrained type.
9972         (Analyze_Formal_Object_Declaration): Add check for illegal default
9973         expressions for a formal in object of a limited type.
9974         (Instantiate_Object): Ditto.
9975         (Check_Formal_Package_Instance): Skip entities that are formal objects,
9976         because they were defaulted in the formal package and no check applies
9977         to them.
9978         (Check_Formal_Package_Instance): Extend conformance check to other
9979         discrete types beyond Integer.
9980         (Process_Default): Copy directly the unmatched formal. A generic copy
9981         has already been performed in Analyze_Formal_Package.
9982         (Analyze_Associations): If a formal subprogram has no match, check for
9983         partial parametrization before looking for a default, to prevent
9984         spurious errors.
9985         (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation): Do
9986         not set the instantiation environment before analyzing the actuals.
9987         Fixes regression on 8515-003 with implementation of AI-133.
9988         Set_Instance_Env checks whether the generic unit is a predefined
9989         unit, in which case the instance must be analyzed with the latest Ada
9990         mode. This setting must take place after analysis of the actuals,
9991         because the actuals must be analyzed and frozen in the Ada mode extant
9992         outside of the current instantiation.
9993         (Save_Env, Restore_Env): Preserve and restore the configuration
9994         parameters so that predefined units can be compiled in the proper Ada
9995         mode.
9996         (Analyze_Formal_Object_Declaration,Analyze_Formal_Subprogram,
9997         Instantiate_Type): Split Is_Abstract flag into Is_Abstract_Subprogram
9998         and Is_Abstract_Type.
9999         (Analyze_Formal_Package): For better error recovery, Add exception
10000         handler to catch Instantion_Error, which can be raised in
10001         Analyze_Associations
10002
10003 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
10004             Bob Duff  <duff@adacore.com>
10005             Gary Dismukes  <dismukes@adacore.com>
10006
10007         * sem_ch4.adb (Try_Primitive_Operation): The call is legal if the
10008         prefix type is a discriminated subtype of the type of the formal.
10009         (Analyze_Allocator): Collect all coextensions regardless of the context.
10010         Whether they can be allocated statically is determined in exp_ch4.
10011         (Analyze_Selected_Component): If the prefix is a limited view and the
10012         non-limited view is available, use the non-limited one.
10013         (Operator_Check): For "X'Access = Y'Access" (which is ambiguous, and
10014         therefore illegal), suggest a qualified expression rather than a type
10015         conversion, because a type conversion would be illegal in this context.
10016         (Anayze_Allocator): Trace recursively all nested allocators so that all
10017         coextensions are on the corresponding list for the root. Do no mark
10018         coextensions if the root allocator is within a declaration for a stack-
10019         allocated object, because the access discriminants will be allocated on
10020         the stack as well.
10021         (Analyze_Call): Remove restriction on calls to limited functions for the
10022         cases of generic actuals for formal objects, defaults for formal objects
10023         and defaults for record components.
10024         (Analyze_Allocator): Before analysis, chain coextensions on the proper
10025         element list. Their expansion is delayed until the enclosing allocator
10026         is processed and its finalization list constructed.
10027         (Try_Primitive_Operation): If the prefix is a concurrent type, looks
10028         for an operation with the given name among the primitive operations of
10029         the corresponding record type.
10030         (Analyze_Selected_Component): If the prefix is a task type that
10031         implements an interface, and there is no entry with the given name,
10032         check whether there is another primitive operation (e.g. a function)
10033         with that name.
10034         (Try_Object_Operation, Analyze_One_Call, Try_Indexed_Call): Handle
10035         properly the indexing of a function call written in prefix form, where
10036         the function returns an array type, and all parameters of the function
10037         except the first have defaults.
10038         (Analyze_Equality_Op): If this is a call to an implicit inequality, keep
10039         the original operands, rather than relocating them, for efficiency and
10040         to work properly when an operand is overloaded.
10041         (Analyze_Allocator,Operator_Check,Remove_Abstract_Operations): Split
10042         Is_Abstract flag into Is_Abstract_Subprogram and Is_Abstract_Type.
10043         (Analyze_Selected_Component): If the prefix is a private extension, only
10044         scan the visible components, not those of the full view.
10045         (Try_Primitive_Operation): If the operation is a procedure, collect all
10046         possible interpretations, as for a function, because in the presence of
10047         classwide parameters several primitive operations of the type can match
10048         the given arguments.
10049
10050 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
10051             Robert Dewar  <dewar@adacore.com>
10052
10053         * sem_ch5.adb (Analyze_Assignment): Reject a right-hand side that is a
10054         tag-indeterminate call to an abstract function, when the left-hand side
10055         is not classwide.
10056         (Analyze_Loop_Statement): Improve detection of infinite loops
10057
10058 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
10059             Thomas Quinot  <quinot@adacore.com>
10060
10061         * sem_ch7.ads, sem_ch7.adb (Inspect_Deferred_Constant_Completion): Move
10062         out of Analyze_Package_Declaration, because processing must be applied
10063         to package bodies as well, for deferred constants completed by pragmas.
10064         (Analyze_Package_Declaration): When the package declaration being
10065         analyzed does not require an explicit body, call Check_Completion.
10066         (May_Need_Implicit_Body): An implicit body is required when a package
10067         spec contains the declaration of a remote access-to-classwide type.
10068         (Analyze_Package_Body): If the package contains RACWs, append the
10069         pending subprogram bodies generated by exp_dist at the end of the body.
10070         (New_Private_Type,Unit_Requires_Body): Split Is_Abstract flag into
10071         Is_Abstract_Subprogram and Is_Abstract_Type.
10072         (Preserve_Full_Attributes): The full entity list is not an attribute
10073         that must be preserved from full to partial view.
10074
10075         * sem_dist.adb (Add_RAS_Dereference_TSS):
10076         Change primitive name to _Call so it cannot clash with any legal
10077         identifier, and be special-cased in Check_Completion.
10078         Mark the full view of the designated type for the RACW associated with
10079         a RAS as Comes_From_Source to get proper view switching when installing
10080         private declarations.
10081         Provite a placeholder nested package body along with the nested spec
10082         to have a place for Append_RACW_Bodies to generate the calling stubs
10083         and stream attributes.
10084
10085 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
10086             Robert Dewar  <dewar@adacore.com>
10087
10088         * sem_ch8.adb (Has_Components): If the argument is an incomplete type
10089         that is a limited view, check the non-limited view if available.
10090         (Undefined): Refine error message for missing with of Text_IO
10091         (Find_Expanded_Name): Use Is_Known_Unit for more accurate error message
10092         to distinguish real missing with cases.
10093         Fix format of all missing with messages
10094         (Analyze_Subprogram_Renaming): Emit proper error message on illegal
10095         renaming as body when renamed entity is abstract.
10096
10097 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
10098             Javier Miranda  <miranda@adacore.com>
10099
10100         * sem_type.ads, sem_type.adb (Has_Abstract_Interpretation): Make
10101         predicate recursive, to handle complex expressions on literals whose
10102         spurious ambiguity comes from the abstract interpretation of some
10103         subexpression.
10104         (Interface_Present_In_Ancestor): Add support to concurrent record
10105         types.
10106         (Add_One_Interp,Disambiguate): Split Is_Abstract flag into
10107         Is_Abstract_Subprogram and Is_Abstract_Type.
10108
10109 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
10110             Javier Miranda  <miranda@adacore.com>
10111
10112         * sem_util.ads, sem_util.adb (Object_Access_Level): If the object is a
10113         dereference of a local object R created as a reference to another
10114         object O, use the access level of O.
10115         (Matches_Prefixed_View_Profile): Use common predicate Conforming_Types,
10116         rather than local Same_Formal_Type, to check whether protected operation
10117         overrides an inherited one.
10118         (Same_Formal_Type): New predicate, used when matching signatures of
10119         overriding synchronized operations, to handle the case when a formal
10120         has a type that is a generic actual.
10121         (Is_Aliased_View): Replace check on E_Task_Type and E_Protected_Type by
10122         predicate Is_Concurrent_Type. This ensures supportin case of subtypes.
10123         (Needs_One_Actual): New predicate, for Ada 2005 use, to resolve
10124         syntactic ambiguities involving indexing of function calls that return
10125         arrays.
10126         (Abstract_Interface_List): New subprogram that returns the list of
10127         abstract interfaces associated with a concurrent type or a
10128         concurrent record type.
10129         (Interface_Present_In_Parent): New subprogram used to check if a
10130         given type or some of its parents implement a given interface.
10131         (Collect_Abstract_Interfaces): Add support for concurrent types
10132         with interface types.
10133         (Has_Abstract_Interfaces): Add support for concurrent types with
10134         interface types.
10135         (Is_Parent): New subprogram that determines whether E1 is a parent
10136         of E2. For a concurrent type its parent is the first element of its
10137         list of interface types; for other types this function provides the
10138         same result than Is_Ancestor.
10139         (Enclosing_Subprogram): Add test for N_Extended_Return_Statement.
10140         (Collect_Synchronized_Interfaces): Removed because the subprogram
10141         Collect_Abstract_Interfaces provides this functionality.
10142         (Collect_Abstract_Interfaces): Minor update to give support to
10143         concurrent types and thus avoid undesired code duplication.
10144         (Get_Subprogram_Entity): Handle entry calls.
10145         (May_Be_Lvalue): Include actuals that appear as in-out parameters in
10146         entry calls.
10147         (Enter_Name): Do not give -gnatwh hiding warning for record component
10148         entities, they never result in hiding.
10149
10150 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
10151             Robert Dewar  <dewar@adacore.com>
10152
10153         * sinfo.ads, sinfo.adb (Coextensions): New element list for allocators,
10154         to chain nested components that are allocators for access discriminants
10155         of the enclosing object.
10156         Add N_Push and N_Pop nodes
10157         New field Exception_Label added
10158         (Local_Raise_Statements): New field in N_Exception_Handler_Node
10159         (Local_Raise_Not_OK): New flag in N_Exception_Handler_Node
10160         (Is_Coextension): New flag for allocators, to mark allocators that
10161         correspond to access discriminants of dynamically allocated objects.
10162         (N_Block_Statement): Document the fact that the corresponding entity
10163         can be an E_Return_Statement.
10164         (Is_Coextension): New flag for allocators.
10165         Remove all code for DSP option
10166
10167         * sprint.ads, sprint.adb: Display basic information for class_wide
10168         subtypes. Add handling of N_Push and N_Pop nodes
10169
10170 2007-04-06  Arnaud Charlet  <charlet@adacore.com>
10171
10172         * s-tpobop.adb (Exceptional_Complete_Entry_Body): Undefer abortion
10173         before propagating exception.
10174
10175 2007-04-06  Olivier Hainque  <hainque@adacore.com>
10176
10177         * tracebak.c (PC_ADJUST - ia64): -4 instead of -16, expected to yield
10178         an address always within the call instruction from a return address.
10179
10180 2007-04-06  Olivier Hainque  <hainque@adacore.com>
10181             Eric Botcazou  <botcazou@adacore.com>
10182
10183         * trans.c (call_to_gnu) <TYPE_RETURNS_BY_TARGET_PTR_P>: Return an
10184         expression with a COMPOUND_EXPR including the call instead of emitting
10185         the call directly here.
10186         (gnat_to_gnu) <N_Slice>: Do not return a non-constant low bound if the
10187         high bound is constant and the slice is empty.  Tidy.
10188         (tree_transform, case N_Op_Not): Handle properly the case where the
10189         operation applies to a private type whose full view is a modular type.
10190         (Case_Statement_To_gnu): If an alternative is an E_Constant with an
10191         Address_Clause, use the associated Expression as the GNAT tree
10192         representing the choice value to ensure the corresponding GCC tree is
10193         of the proper kind.
10194         (maybe_stabilize_reference): Stabilize COMPOUND_EXPRs as a whole
10195         instead of just the operands, as the base GCC stabilize_reference does.
10196         <CALL_EXPR>: New case. Directly stabilize the call if an lvalue is not
10197         requested; otherwise fail.
10198         (addressable_p) <COMPONENT_REF>: Do not test DECL_NONADDRESSABLE_P.
10199
10200 2007-04-06  Thomas Quinot  <quinot@adacore.com>
10201
10202         * uintp.ads, uintp.adb (UI_Div_Rem): New subprogram, extending previous
10203         implementation of UI_Div.
10204         (UI_Div): Reimplement as a call to UI_Div_Rem.
10205         (UI_Rem): Take advantage of the fact that UI_Div_Rem provides the
10206         remainder, avoiding the cost of a multiplication and a subtraction.
10207         (UI_Modular_Inverse): Take advantage of the fact that UI_Div_Rem
10208         provides both quotient and remainder in a single computation.
10209         (UI_Modular_Exponentiation, UI_Modular_Inverse): New modular arithmetic
10210         functions for uint.
10211         (UI_Modular_Inverse): Add a note that the behaviour of this subprogram
10212         is undefined if the given n is not inversible.
10213
10214 2007-04-06  Olivier Hainque  <hainque@adacore.com>
10215
10216         * utils2.c (known_alignment): Handle COMPOUND_EXPR, COND_EXPR and
10217         BIT_AND_EXPR. Handle also VIEW_CONVERT_EXPR, as the other conversion
10218         opcodes.
10219
10220 2007-04-06  Eric Botcazou  <botcazou@adacore.com>
10221             Olivier Hainque  <hainque@adacore.com>
10222
10223         * utils.c (update_pointer_to): Make a copy of the couple of FIELD_DECLs
10224         when updating the contents of the old pointer to an unconstrained array.
10225         (end_subprog_body): Set error_gnat_node to Empty.
10226         (write_record_type_debug_info): Do not be unduly sparing with our bytes.
10227         (unchecked_convert): For subtype to base type conversions, require that
10228         the source be a subtype if it is an integer type.
10229         (builtin_decls): New global, vector of available builtin functions.
10230         (gnat_pushdecl): Add global builtin function declaration nodes to the
10231         builtin_decls list.
10232         (gnat_install_builtins): Adjust comments.
10233         (builtin_function): Set DECL_BUILTIN_CLASS and DECL_FUNCTION_CODE before
10234         calling gnat_pushdecl, so that it knows when it handed a builtin
10235         function declaration node.
10236         (builtin_decl_for): Search the builtin_decls list.
10237
10238 2007-04-06  Eric Botcazou  <botcazou@adacore.com>
10239
10240         * s-stchop-vxworks.adb: 
10241         (Stack_Check): Raise Storage_Error if the argument has wrapped around.
10242
10243 2007-04-06  Robert Dewar  <dewar@adacore.com>
10244             Arnaud Charlet  <charlet@adacore.com>
10245
10246         * a-diroro.ads: Inserted the pragma Unimplemented_Unit
10247
10248         * bindgen.adb (Gen_Output_File_Ada): Generate pragma Ada_95 at start
10249         of files
10250         Add mention of -Sev (set initialize_scalars option from environment
10251         variable at run time) in gnatbind usage message.
10252
10253         * elists.ads, elists.adb: (Append_Unique_Elmt): New procedure
10254
10255         * fname-uf.ads: Minor comment fix
10256
10257         * osint.ads: Change pragma Elaborate to Elaborate_All
10258
10259         * par-load.adb: Add documentation.
10260
10261         * sem_cat.ads, sem_cat.adb: Minor code reorganization
10262
10263         * s-parint.ads (RCI_Locator) : Add 'Version' generic formal
10264
10265         * s-secsta.ads: Extra comments
10266
10267         * s-soflin.ads: Minor comment fixes
10268
10269         * s-stratt.ads (Block_Stream_Ops_OK): Removed.
10270
10271         * s-wchcon.ads: Minor comment addition
10272
10273         * treepr.adb: Minor change in message
10274         (Print_Name,Print_Node): Make these debug printouts more robust: print
10275         "no such..." instead of crashing on bad input.
10276
10277 2007-03-30  Rafael Avila de Espindola  <espindola@google.com>
10278
10279         * trans.c (Attribute_to_gnu): Use get_signed_or_unsigned_type
10280         instead of gnat_signed_or_unsigned_type.
10281         * utils.c (gnat_signed_or_unsigned_type): Remove.
10282         * misc.c (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove
10283         * gigi.h (gnat_signed_or_unsigned_type): Remove
10284
10285 2007-03-09  Roger Sayle  <roger@eyesopen.com>
10286
10287         * cuintp.c (UI_To_gnu): Use fold_buildN calls instead of calling
10288         fold with the result of buildN.
10289         * decl.c (gnat_to_gnu_entity): Likewise.
10290         * trans.c (Attribute_to_gnu, gnat_to_gnu, emit_check): Likewise.
10291         * utils.c (finish_record_type, merge_sizes, max_size, convert):
10292         Likewise.
10293         * utils2.c (gnat_truthvalue_conversion, compare_arrays,
10294         nonbinary_modular_operation, build_binary_op, build_unary_op,
10295         build_cond_expr): Likewise.
10296
10297         * utils.c (convert): Use fold_build1 when casting values to void.
10298         * utils2.c (gnat_truthvalue_conversion): Use build_int_cst and
10299         fold_convert instead of convert when appropriate.
10300
10301 2007-03-01  Brooks Moses  <brooks.moses@codesourcery.com>
10302
10303         * Make-lang.in: Add install-pdf target as copied from
10304         automake v1.10 rules.
10305
10306 2007-02-28  Andreas Schwab  <schwab@suse.de>
10307
10308         * Make-lang.in (doc/gnat_ugn_unw.texi): Depend on
10309         $(gcc_docdir)/include/gcc-common.texi and gcc-vers.texi.
10310         (doc/gnat-style.info): Likewise.
10311
10312 2007-02-26  Brooks Moses  <brooks.moses@codesourcery.com>
10313
10314         * gnat-style.texi: Standardize title page.
10315         * gnat_rm.texi: Likewise.
10316         * gnat_ugn.texi: Likewise.
10317
10318 2007-02-25  Mark Mitchell  <mark@codesourcery.com>
10319
10320         * decl.c (annotate_value): Adjust for refactoring of tree_map
10321         hierarchy.
10322
10323 2007-02-24  Mark Mitchell  <mark@codesourcery.com>
10324
10325         * decl.c (annotate_value): Adjust for refactoring of tree_map
10326         hierarchy.
10327
10328 2007-02-21  Ed Schonberg  <schonberg@adacore.com>
10329
10330         PR ada/18819
10331         * sem_ch3.adb (Create_Constrained_Components): for a subtype of an
10332         untagged derived type, add hidden components to keep discriminant
10333         layout consistent, when a given discriminant of the derived type
10334         constraints several discriminants of the parent type.
10335
10336 2007-02-16  Eric Botcazou  <ebotcazou@adacore.com>
10337             Sandra Loosemore  <sandra@codesourcery.com>
10338
10339         * trans.c (call_to_gnu):  Use build_call_list instead of build3 to
10340         build the call expression.
10341         (gnat_stabilize_reference_1): Handle tcc_vl_exp.
10342         * utils.c (max_size) <tcc_exceptional>: Delete.
10343         <tcc_vl_exp>: New case.
10344         <tcc_expression>: Delete CALL_EXPR subcase.
10345         (build_global_cdtor): Use build_call_nary instead of build3.
10346         * utils2.c (build_call_1_expr): Likewise.
10347         (build_call_2_expr): Likewise.
10348         (build_call_0_expr): Likewise.
10349         (build_call_alloc_dealloc): Likewise.
10350
10351 2007-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
10352
10353         * raise-gcc.c (get_region_description_for, get_call_site_action_for,
10354         get_action_description_for): Replace _Unwind_Word with _uleb128_t 
10355         and _Unwind_SWord with _sleb128_t.
10356
10357 2007-02-06  Paolo Bonzini  <bonzini@gnu.org>
10358
10359         * Make-lang.in (ada/decl.o): Add gt-ada-decl.h dependency.
10360         * decl.c: Include gt-ada-decl.h.
10361         (annotate_value_cache): New.
10362         (annotate_value): Use it instead of TREE_COMPLEXITY.
10363
10364 2007-02-03  Kazu Hirata  <kazu@codesourcery.com>
10365
10366         * misc.c, utils2.c: Fix comment typos.
10367
10368 2007-01-24  Roger Sayle  <roger@eyesopen.com>
10369
10370         * decl.c (gnat_to_gnu_entity): Use TREE_OVERFLOW instead of
10371         TREE_CONSTANT_OVERFLOW.
10372         (allocatable_size_p, annotate_value): Likewise.
10373         * trans.c (gnat_to_gnu): Likewise.
10374         * utils.c (unchecked_convert): Likewise.
10375         * utils2.c (build_simple_component_ref): Likewise.
10376
10377 2007-01-23  Richard Guenther  <rguenther@suse.de>
10378
10379         PR bootstrap/30541
10380         * Make-lang.in: Replace invocations of gnatmake with $(GNATMAKE).
10381         (gnatboot2): Pass staged GNATMAKE instead of STAGE_PREFIX.
10382         (gnatboot3): Likewise.
10383         (GNATBIND): Do not define.
10384         * Makefile.in (GNATBIND): Do not define.
10385
10386 2007-01-08  Richard Guenther  <rguenther@suse.de>
10387
10388         * cuintp.c (build_cst_from_int): Use built_int_cst_type.
10389         * trans.c (gnat_to_gnu): Likewise.
10390
10391 2006-12-07  Geoffrey Keating  <geoffk@apple.com>
10392
10393         * Makefile.in: Replace CROSS_COMPILE with CROSS_DIRECTORY_STRUCTURE.
10394         * adaint.c: Likewise.
10395
10396 2006-12-05  Aldy Hernandez  <aldyh@redhat.com>
10397
10398         Merge from gimple-tuples-branch:
10399         2006-11-02  Aldy Hernandez  <aldyh@redhat.com>
10400
10401         * ada-tree.h (lang_tree_node): Handle gimple tuples.
10402         * trans.c (gnat_gimplify_expr): Replace MODIFY_EXPR with
10403         GIMPLE_MODIFY_STMT.
10404
10405 2006-12-02  Kazu Hirata  <kazu@codesourcery.com>
10406
10407         * Makefile.in, mingw32.h, trans.c: Fix comment typos.
10408         * gnat_rm.texi, gnat_ugn.texi: Follow spelling conventions.
10409         Fix typos.
10410
10411 2006-11-17  Eric Botcazou  <ebotcazou@adacore.com>
10412
10413         PR ada/27936
10414         * trans.c (add_decl_expr): Do not dynamically elaborate padded objects
10415         if the initializer takes into account the padding.
10416
10417 2006-11-11  Richard Guenther  <rguenther@suse.de>
10418
10419         * trans.c (maybe_stabilize_reference): Remove handling of
10420         FIX_CEIL_EXPR, FIX_FLOOR_EXPR and FIX_ROUND_EXPR.
10421
10422 2006-11-05  Arnaud Charlet  <charlet@adacore.com>
10423
10424         PR ada/29707
10425         * s-osinte-linux-alpha.ads, s-osinte-linux-hppa.ads
10426         (To_Target_Priority): New function.
10427
10428 2006-10-31  Robert Dewar  <dewar@adacore.com>
10429
10430         * a-taster.adb, s-traent-vms.adb, a-elchha.ads, a-elchha.adb,
10431         a-exctra.adb, ali-util.adb, exp_disp.ads, s-stalib.ads, s-traent.adb,
10432         s-addope.ads, s-addope.adb, a-rbtgso.adb, a-crbltr.ads, a-coprnu.adb,
10433         a-cgcaso.adb, a-cgarso.adb, a-cgaaso.adb, a-coormu.adb, a-ciormu.adb,
10434         a-rbtgso.ads, a-stunha.adb, a-stunha.adb, a-ciorma.adb, a-coorma.adb,
10435         a-secain.adb, a-slcain.adb, a-shcain.adb, a-stwiha.adb, a-stwiha.adb,
10436         a-strhas.adb, a-strhas.adb, a-stzhas.adb, a-stzhas.adb, a-szuzha.adb,
10437         a-chacon.adb, a-chacon.adb, a-chacon.ads, a-stboha.adb, a-swbwha.adb,
10438         a-szbzha.adb: Minor reformatting. Fix header.
10439
10440         * a-numaux-x86.adb: Add parentheses for use of unary minus
10441         * a-ngcefu.adb: Supply missing parentheses for unary minus
10442         * a-ngcoty.adb: Add parens for use of unary minus
10443         * a-ngelfu.adb: Add missing parens for unary minus
10444         * a-tifiio.adb: Add parentheses for uses of unary minus
10445
10446 2006-10-31  Robert Dewar  <dewar@adacore.com>
10447             Bob Duff  <duff@adacore.com>
10448             Ed Schonberg  <schonberg@adacore.com>
10449
10450         * sem_res.adb (Resolve_Unary_Op): Add warning for use of unary minus
10451         with multiplying operator.
10452         (Expected_Type_Is_Any_Real): New function to determine from the Parent
10453         pointer whether the context expects "any real type".
10454         (Resolve_Arithmetic_Op): Do not give an error on calls to the
10455         universal_fixed "*" and "/" operators when they are used in a context
10456         that expects any real type. Also set the type of the node to
10457         Universal_Real in this case, because downstream processing requires it
10458         (mainly static expression evaluation).
10459         Reword some continuation messages
10460         Add some \\ sequences to continuation messages
10461         (Resolve_Call): Refine infinite recursion case. The test has been
10462         sharpened to eliminate some false positives.
10463         Check for Current_Task usage now includes entry barrier, and is now a
10464         warning, not an error.
10465         (Resolve): If the call is ambiguous, indicate whether an interpretation
10466         is an inherited operation.
10467         (Check_Aggr): When resolving aggregates, skip associations with a box,
10468         which are priori correct, and will be replaced by an actual default
10469         expression in the course of expansion.
10470         (Resolve_Type_Conversion): Add missing support for conversion from
10471         a class-wide interface to a tagged type. Minor code cleanup.
10472         (Valid_Tagged_Converion): Add support for abstact interface type
10473         conversions.
10474         (Resolve_Selected_Component): Call Generate_Reference here rather than
10475         during analysis, and use May_Be_Lvalue to distinguish read/write.
10476         (Valid_Array_Conversion): New procedure, abstracted from
10477         Valid_Conversion, to incorporate accessibility checks for arrays of
10478         anonymous access types.
10479         (Valid_Conversion): For a conversion to a numeric type occurring in an
10480         instance or inlined body, no need to check that the operand type is
10481         numeric, since this has been checked during analysis of the template.
10482         Remove legacy test for scope name Unchecked_Conversion.
10483
10484         * sem_res.ads: Minor reformatting
10485
10486         * a-except.adb, a-except-2005.adb: Turn off subprogram ordering
10487         (PE_Current_Task_In_Entry_Body): New exception code
10488         (SE_Restriction_Violation): Removed, not used
10489
10490         * a-except.ads:  Update comments.
10491
10492         * types.h, types.ads: Add definition for Validity_Check
10493         (PE_Current_Task_In_Entry_Body): New exception code
10494         (SE_Restriction_Violation): Removed, not used
10495
10496 2006-10-31  Thomas Quinot  <quinot@adacore.com>
10497
10498         * g-socthi-vxworks.adb (C_Gethostbyname): Fix wrong test for returned
10499         error status.
10500
10501 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
10502             Jose Ruiz  <ruiz@adacore.com>
10503
10504         * a-calend-vms.adb (Leap_Sec_Ops): Temp body for package in private
10505         part of Ada.Calendar: all subprogram raise Unimplemented.
10506         (Split_W_Offset): Temp function body, raising Unimplemented
10507
10508         * a-calend.ads, a-calend-vms.ads: 
10509         Add imported variable Invalid_TZ_Offset used to designate targets unable
10510         to support time zones.
10511         (Unimplemented): Temporary function raised by the body of new
10512         subprograms below.
10513         (Leap_Sec_Ops): New package in the private part of Ada.Calendar. This
10514         unit provides handling of leap seconds and is used by the new Ada 2005
10515         packages Ada.Calendar.Arithmetic and Ada.Calendar.Formatting.
10516         (Split_W_Offset): Identical spec to that of Ada.Calendar.Split. This
10517         version returns an extra value which is the offset to UTC.
10518
10519         * a-calend.adb (Split_W_Offset): Add call to localtime_tzoff.
10520         (Leap_Sec_Ops): New body for package in private part of Ada.Calendar.
10521         (Split_W_Offset): New function body.
10522         (Time_Of): When a date is close to UNIX epoch, compute the time for
10523         that date plus one day (that amount is later substracted after
10524         executing mktime) so there are no problems with time zone adjustments.
10525
10526         * a-calend-mingw.adb: Remove Windows specific version no longer needed.
10527
10528         * a-calari.ads, a-calari.adb, a-calfor.ads, a-calfor.adb,
10529         a-catizo.ads, a-catizo.adb: New files.
10530
10531         * impunit.adb: Add new Ada 2005 entries
10532
10533         * sysdep.c: Add external variable __gnat_invalid_tz_offset.
10534         Rename all occurences of "__gnat_localtime_r" to
10535         "__gnat_localtime_tzoff".
10536         (__gnat_localtime_tzoff for Windows): Add logic to retrieve the time
10537         zone data and calculate the GMT offset.
10538         (__gnat_localtime_tzoff for Darwin, Free BSD, Linux, Lynx and Tru64):
10539         Use the field "tm_gmtoff" to extract the GMT offset.
10540         (__gnat_localtime_tzoff for AIX, HPUX, SGI Irix and Sun Solaris): Use
10541         the external variable "timezone" to calculate the GMT offset.
10542
10543 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
10544             Jose Ruiz  <ruiz@adacore.com>
10545
10546         * s-osinte-posix.adb, s-osinte-linux.ads, s-osinte-freebsd.adb, 
10547         s-osinte-freebsd.ads, s-osinte-solaris-posix.ads, s-osinte-hpux.ads, 
10548         s-osinte-darwin.adb, s-osinte-darwin.ads, s-osinte-lynxos-3.ads,
10549         s-osinte-lynxos-3.adb (To_Target_Priority): New function maps from
10550         System.Any_Priority to a POSIX priority on the target.
10551
10552         * system-linux-ia64.ads: 
10553         Extend range of Priority types on Linux to use the whole range made
10554         available by the system.
10555
10556         * s-osinte-aix.adb, s-osinte-aix.ads (To_Target_Priority): New
10557         function maps from System.Any_Priority to a POSIX priority on the
10558         target.
10559         (PTHREAD_PRIO_PROTECT): Set real value.
10560         (PTHREAD_PRIO_INHERIT): Now a function.
10561         (SIGCPUFAIL): New signal.
10562         (Reserved): Add SIGALRM1, SIGWAITING, SIGCPUFAIL, since these signals
10563         are documented as reserved by the OS.
10564
10565         * system-aix.ads: Use the full range of priorities provided by the
10566         system on AIX.
10567
10568         * s-taprop-posix.adb: Call new function To_Target_Priority.
10569         (Set_Priority): Take into account Task_Dispatching_Policy and
10570         Priority_Specific_Dispatching pragmas when determining if Round Robin
10571         must be used for scheduling the task.
10572
10573         * system-linux-x86_64.ads, system-linux-x86.ads, 
10574         system-linux-ppc.ads: Extend range of Priority types on Linux to use
10575         the whole range made available by the system.
10576
10577         * s-taprop-vms.adb, s-taprop-mingw.adb, s-taprop-irix.adb, 
10578         s-taprop-tru64.adb, s-taprop-linux.adb, s-taprop-hpux-dce.adb, 
10579         s-taprop-lynxos.adb (Finalize_TCB): invalidate the stack-check cache
10580         when deallocating the TCB in order to avoid potential references to
10581         deallocated data.
10582         (Set_Priority): Take into account Task_Dispatching_Policy and
10583         Priority_Specific_Dispatching pragmas when determining if Round Robin
10584         or FIFO within priorities must be used for scheduling the task.
10585
10586         * s-taprop-vxworks.adb (Enter_Task): Store the user-level task id in
10587         the Thread field (to be used internally by the run-time system) and the
10588         kernel-level task id in the LWP field (to be used by the debugger).
10589         (Create_Task): Reorganize to unify the calls to taskSpawn into a single
10590         instance, and propagate the current task options to the spawned task.
10591         (Set_Priority): Take into account Priority_Specific_Dispatching pragmas.
10592         (Initialize): Set Round Robin dispatching when the corresponding pragma
10593         is in effect.
10594
10595 2006-10-31  Robert Dewar  <dewar@adacore.com>
10596
10597         * system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads, 
10598         system-linux-hppa.ads, system-hpux-ia64.ads, 
10599         system-lynxos-ppc.ads, system-lynxos-x86.ads, system-tru64.ads, 
10600         system-vxworks-sparcv9.ads, system-solaris-x86.ads, 
10601         system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads, 
10602         system-vxworks-m68k.ads, system-vxworks-mips.ads, system-interix.ads, 
10603         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads, 
10604         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads, 
10605         system-vxworks-alpha.ads, system.ads: Add pragma Warnings(Off,
10606         Default_Bit_Order) to kill constant condition warnings for references
10607         to this switch.
10608
10609 2006-10-31  Vincent Celier  <celier@adacore.com>
10610             Eric Botcazou  <ebotcazou@adacore.com>
10611
10612         * mlib-tgt-lynxos.adb, mlib-tgt-mingw.adb, mlib-tgt-tru64.adb,
10613         mlib-tgt-aix.adb, mlib-tgt-irix.adb, mlib-tgt-hpux.adb,
10614         mlib-tgt-linux.adb, mlib-tgt-solaris.adb: Use Append_To, instead of
10615         Ext_To, when building the library file name
10616
10617         * mlib-tgt-vxworks.adb: ditto.
10618         (Get_Target_Suffix): Add support for x86 targets.
10619
10620         * mlib-fil.ads, mlib-fil.adb: (Append_To): New function
10621
10622         * mlib-tgt-darwin.adb: 
10623         Use Append_To, instead of Ext_To, when building the library file name
10624         (Flat_Namespace): New global variable.
10625         (No_Shared_Libgcc_Switch): Rename to No_Shared_Libgcc_Options.
10626         (Shared_Libgcc_Switch): Rename to With_Shared_Libgcc_Options.
10627         (Link_Shared_Libgcc): Delete.
10628         (Build_Dynamic_Library): Adjust for above changes.
10629         Use Opt package.
10630         (Build_Dynamic_Library): Pass -shared-libgcc if GCC 4 or later.
10631
10632 2006-10-31  Eric Botcazou  <ebotcazou@adacore.com>
10633
10634         * s-taprop-solaris.adb: (Time_Slice_Val): Change type to Integer.
10635         (Initialize): Add type conversions required by above change.
10636
10637 2006-10-31  Jose Ruiz  <ruiz@adacore.com>
10638
10639         * s-osinte-vxworks.ads, s-osinte-vxworks.adb: 
10640         (getpid): New body for this function that uses the underlying taskIdSelf
10641         function for VxWorks 5 and VxWorks 6 in kernel mode.
10642         (unsigned_int): New type, modular to allow logical bit operations.
10643         (taskOptionsGet): New imported function.
10644
10645         * s-taspri-vxworks.ads (Private_Data): Change the type for the LWP
10646         field to be compliant with the type used by the corresponding operating
10647         system primitive.
10648
10649 2006-10-31  Pascal Obry  <obry@adacore.com>
10650             Eric Botcazou  <ebotcazou@adacore.com>
10651             Vincent Celier  <celier@adacore.com>
10652
10653         * adaint.c (__gnat_get_libraries_from_registry): Call explicitly the
10654         ASCII version of the registry API. This is needed as the GNAT runtime
10655         is now UNICODE by default.
10656         Include version.h.
10657         (get_gcc_version): Do not hardcode the return value.
10658         (__gnat_file_time_name): On Windows properly set the default returned
10659         value to -1 which corresponds to Invalid_Time.
10660         (__gnat_fopen): New routine. A simple wrapper on all plateforms
10661          except on Windows where it does conversion for unicode support.
10662         (__gnat_freopen): Idem.
10663         (__gnat_locate_exec_on_path): If environment variable PATH does not
10664         exist, return a NULL pointer
10665
10666         * adaint.h: (__gnat_fopen): Declare.
10667         (__gnat_freopen): Likewise.
10668
10669         * mingw32.h (_tfreopen): Define this macro here for older MingW
10670         version.
10671         Activate the unicode support on platforms using a MingW runtime
10672         version 3.9 or newer.
10673
10674         * s-crtl.ads (fopen): Is now an import to the wrapper __gnat_freopen.
10675         This is needed for proper unicode support on Windows.
10676         (freopen): Idem.
10677
10678 2006-10-31  Eric Botcazou  <ebotcazou@adacore.com>
10679             Nicolas Setton  <setton@adacore.com>
10680             Olivier Hainque  <hainque@adacore.com>
10681             Gary Dismukes  <dismukes@adacore.com>
10682
10683         * gigi.h: (tree_code_for_record_type): Declare.
10684         (add_global_renaming_pointer): Rename to record_global_renaming_pointer.
10685         (get_global_renaming_pointers): Rename to
10686         invalidate_global_renaming_pointers.
10687         (static_ctors): Delete.
10688         (static_dtors): Likewise.
10689         (gnat_write_global_declarations): Declare.
10690         (create_var_decl): Adjust descriptive comment to indicate that the
10691         subprogram may return a CONST_DECL node.
10692         (create_true_var_decl): Declare new function, similar to
10693         create_var_decl but forcing the creation of a VAR_DECL node.
10694         (get_global_renaming_pointers): Declare.
10695         (add_global_renaming_pointer): Likewise.
10696
10697         * ada-tree.h (DECL_READONLY_ONCE_ELAB): New macro.
10698
10699         * decl.c (gnat_to_gnu_entity) <case E_Function>: Don't copy the type
10700         tree before setting TREE_ADDRESSABLE for by-reference return mechanism
10701         processing.
10702         (gnat_to_gnu_entity): Remove From_With_Type from computation for
10703         imported_p.
10704         <E_Access_Type>: Use the Non_Limited_View as the full view of the
10705         designated type if the pointer comes from a limited_with clause.  Make
10706         incomplete designated type if it is in the main unit and has a freeze
10707         node.
10708         <E_Incomplete_Type>: Rework to treat Non_Limited_View, Full_View, and
10709         Underlying_Full_View similarly.  Return earlier if the full view already
10710         has an associated tree.
10711         (gnat_to_gnu_entity) <E_Record_Type>: Restore comment.
10712         (gnat_to_gnu_entity) <E_Record_Type>: Do not use a dummy type.
10713         (gnat_to_gnu_entity) <E_Variable>: Set TYPE_REF_CAN_ALIAS_ALL on the
10714         reference type built for objects with an address clause.
10715         Use create_true_var_decl with const_flag set for
10716         DECL_CONST_CORRESPONDING_VARs, ensuring a VAR_DECL is created with
10717         TREE_READONLY set.
10718         (gnat_to_gnu_entity, case E_Enumeration_Type): Set TYPE_NAME
10719         for Character and Wide_Character types. This info is read by the
10720         dwarf-2 writer, and is needed to be able to use the command "ptype
10721         character" in the debugger.
10722         (gnat_to_gnu_entity): When generating a type representing
10723         a Character or Wide_Character type, set the flag TYPE_STRING_FLAG,
10724         so that debug writers can distinguish it from ordinary integers.
10725         (elaborate_expression_1): Test the DECL_READONLY_ONCE_ELAB flag in
10726         addition to TREE_READONLY to assert the constantness of variables for
10727         elaboration purposes.
10728         (gnat_to_gnu_entity, subprogram cases): Change loops on formal
10729         parameters to call new Einfo function First_Formal_With_Extras.
10730         (gnat_to_gnu_entity): In type_annotate mode, replace a discriminant of a
10731         protected type with its corresponding discriminant, to obtain a usable
10732         declaration
10733         (gnat_to_gnu_entity) <E_Access_Protected_Subprogram_Type>: Be prepared
10734         for a multiple elaboration of the "equivalent" type.
10735         (gnat_to_gnu_entity): Adjust for renaming of add_global_renaming_pointer
10736         into record_global_renaming_pointer.
10737         (gnat_to_gnu_entity) <E_Array_Type>: Do not force
10738         TYPE_NONALIASED_COMPONENT to 0 if the element type is an aggregate.
10739         <E_Array_Subtype>: Likewise.
10740         (gnat_to_gnu_entity) <E_Incomplete_Subtype>: Add support for regular
10741         incomplete subtypes and incomplete subtypes of incomplete types visible
10742         through a limited with clause.
10743         (gnat_to_gnu_entity) <E_Array_Subtype>: Take into account the bounds of
10744         the base index type for the maximum size of the array only if they are
10745         constant.
10746         (gnat_to_gnu_entity, renaming object case): Do not wrap up the
10747         expression into a SAVE_EXPR if stabilization failed.
10748
10749         * utils.c (create_subprog_decl): Turn TREE_ADDRESSABLE on the type of
10750         a result decl into DECL_BY_REFERENCE on this decl, now what is expected
10751         by lower level compilation passes.
10752         (gnat_genericize): New function, lowering a function body to GENERIC.
10753         Turn the type of RESULT_DECL into a real reference type if the decl
10754         has been marked DECL_BY_REFERENCE, and adjust references to the latter
10755         accordingly.
10756         (gnat_genericize_r): New function. Tree walking callback for
10757         gnat_genericize.
10758         (convert_from_reference, is_byref_result): New functions. Helpers for
10759         gnat_genericize_r.
10760         (create_type_decl): Call gnat_pushdecl before calling
10761         rest_of_decl_compilation, to make sure that field TYPE_NAME of
10762         type_decl is properly set before calling the debug information writers.
10763         (write_record_type_debug_info): The heuristics which compute the
10764         alignment of a field in a variant record might not be accurate. Add a
10765         safety test to make sure no alignment is set to a smaller value than
10766         the alignment of the field type.
10767         (make_dummy_type): Use the Non_Limited_View as the underlying type if
10768         the type comes from a limited_with clause. Do not loop on the full view.
10769         (GET_GNU_TREE, SET_GNU_TREE, PRESENT_GNU_TREE): New macros.
10770         (dummy_node_table): New global variable, moved from decl.c.
10771         (GET_DUMMY_NODE, SET_DUMMY_NODE, PRESENT_DUMMY_NODE): New macros.
10772         (save_gnu_tree): Use above macros.
10773         (get_gnu_tree): Likewise.
10774         (present_gnu_tree): Likewise.
10775         (init_dummy_type): New function, moved from decl.c. Use above macros.
10776         (make_dummy_type): Likewise.
10777         (tree_code_for_record_type): New function extracted from make_dummy_type
10778         (init_gigi_decls): Set DECL_IS_MALLOC on gnat_malloc.
10779         (static_ctors): Change it to a vector, make static.
10780         (static_dtors): Likewise.
10781         (end_subprog_body): Adjust for above change.
10782         (build_global_cdtor): Moved from trans.c.
10783         (gnat_write_global_declarations): Emit global constructor and
10784         destructor, and call cgraph_optimize before emitting debug info for
10785         global declarations.
10786         (global_decls): New global variable.
10787         (gnat_pushdecl): Store the global declarations in global_decls, for
10788         later use.
10789         (gnat_write_global_declarations): Emit debug information for global
10790          declarations.
10791         (create_var_decl_1): Former create_var_decl, with an extra argument to
10792          state whether the creation of a CONST_DECL is allowed.
10793         (create_var_decl): Behavior unchanged. Now a wrapper around
10794         create_var_decl_1 allowing CONST_DECL creation.
10795         (create_true_var_decl): New function, similar to create_var_decl but
10796         forcing the creation of a VAR_DECL node (CONST_DECL not allowed).
10797         (create_field_decl): Do not always mark the field as addressable
10798         if its type is an aggregate.
10799         (global_renaming_pointers): New static variable.
10800         (add_global_renaming_pointer): New function.
10801         (get_global_renaming_pointers): Likewise.
10802
10803         * misc.c (gnat_dwarf_name): New function.
10804         (LANG_HOOKS_DWARF_NAME): Define to gnat_dwarf_name.
10805         (gnat_post_options): Add comment about structural alias analysis.
10806         (gnat_parse_file): Do not call cgraph_optimize here.
10807         (LANG_HOOKS_WRITE_GLOBALS): Define to gnat_write_global_declarations.
10808
10809         * trans.c (process_freeze_entity): Don't abort if we already have a
10810         non dummy GCC tree for a Concurrent_Record_Type, as it might
10811         legitimately have been elaborated while processing the associated
10812         Concurrent_Type prior to this explicit freeze node.
10813         (Identifier_to_gnu): Do not make a variable referenced in a SJLJ
10814         exception handler volatile if it is of variable size.
10815         (process_type): Remove bypass for types coming from a limited_with
10816         clause.
10817         (call_to_gnu): When processing the copy-out of a N_Type_Conversion GNAT
10818         actual, convert the corresponding gnu_actual to the real destination
10819         type when necessary.
10820         (add_decl_expr): Set the DECL_READONLY_ONCE_ELAB flag on variables
10821         originally TREE_READONLY but whose elaboration cannot be performed
10822         statically.
10823         Part of fix for F504-021.
10824         (tree_transform, subprogram cases): Change loops on formal parameters to
10825         call new Einfo function First_Formal_With_Extras.
10826         (gnat_to_gnu) <N_Op_Shift_Right_Arithmetic>: Ignore constant overflow
10827         stemming from type conversion for the lhs.
10828         (Attribute_to_gnu) <Attr_Alignment>: Also divide the alignment by the
10829         number of bits per unit for components of records.
10830         (gnat_to_gnu) <N_Code_Statement>: Mark operands addressable if needed.
10831         (Handled_Sequence_Of_Statements_to_gnu): Register the cleanup associated
10832         with At_End_Proc after the SJLJ EH cleanup.
10833         (Compilation_Unit_to_gnu): Call elaborate_all_entities only on the main
10834         compilation unit.
10835         (elaborate_all_entities): Do not retest type_annotate_only.
10836         (tree_transform) <N_Abstract_Subprogram_Declaration>: Process the
10837         result type of an abstract subprogram, which may be an itype associated
10838         with an anonymous access result (related to AI-318-02).
10839         (build_global_cdtor): Move to utils.c.
10840         (Case_Statement_to_gnu): Avoid adding the choice of a when statement if
10841         this choice is not a null tree nor an integer constant.
10842         (gigi): Run unshare_save_expr via walk_tree_without_duplicates
10843         on the body of elaboration routines instead of mark_unvisited.
10844         (add_stmt): Do not mark the tree.
10845         (add_decl_expr): Tweak comment.
10846         (mark_unvisited): Delete.
10847         (unshare_save_expr): New static function.
10848         (call_to_gnu): Issue an error when making a temporary around a
10849         procedure call because of non-addressable actual parameter if the
10850         type of the formal is by_reference.
10851         (Compilation_Unit_to_gnu): Invalidate the global renaming pointers
10852         after building the elaboration routine.
10853
10854 2006-10-31  Bob Duff  <duff@adacore.com>
10855
10856         * a-filico.adb (Finalize(List_Controller)): Mark the finalization list
10857         as finalization-started, so we can raise Program_Error on 'new'.
10858
10859         * s-finimp.adb: Raise Program_Error on 'new' if finalization of the
10860         collection has already started.
10861
10862         * s-finimp.ads (Collection_Finalization_Started): Added new special
10863         flag value for indicating that a collection's finalization has started.
10864
10865         * s-tassta.adb (Create_Task): Raise Program_Error on an attempt to
10866         create a task whose master has already waited for dependent tasks.
10867
10868 2006-10-31  Robert Dewar  <dewar@adacore.com>
10869
10870         * lib.adb, lib.ads: (In_Predefined_Unit): New functions
10871
10872         * a-finali.ads, a-ngcoty.ads, a-strbou.ads, a-stream.ads, a-strmap.ads, 
10873         a-strunb.ads, a-stwibo.ads, a-stwima.ads, a-stwiun.ads, a-taside.ads, 
10874         a-coorse.ads, a-convec.ads, a-coinve.ads, a-cohama.ads, a-ciorse.ads, 
10875         a-cihama.ads, a-cihase.ads, a-cohase.ads, a-ciorma.ads, a-coorma.ads, 
10876         a-ciormu.ads, a-coormu.ads, a-stzbou.ads, a-stzmap.ads, a-stzunb.ads, 
10877         a-except-2005.ads: Add pragma Preelaborable_Warning
10878
10879 2006-10-31  Robert Dewar  <dewar@adacore.com>
10880             Jose Ruiz  <ruiz@adacore.com>
10881
10882         * a-dispat.ads, a-dispat.adb, a-diroro.ads, a-diroro.adb: New files.
10883
10884         * ali.adb (Get_Name): Properly handle scanning of wide character names
10885         encoded with brackets notation.
10886         (Known_ALI_Lines): Add S lines to this list.
10887         (Scan_ALI): Acquire S (priority specific dispatching) lines.
10888         New flag Elaborate_All_Desirable in unit table
10889
10890         * ali.ads (Priority_Specific_Dispatching): Add this range of
10891         identifiers to be used for Priority_Specific_Dispatching table entries.
10892         (ALIs_Record): Add First_Specific_Dispatching and
10893         Last_Specific_Dispatching that point to the first and last entries
10894         respectively in the priority specific dispatching table for this unit.
10895         (Specific_Dispatching): Add this table for storing each S (priority
10896         specific dispatching) line encountered in the input ALI file.
10897         New flag Elaborate_All_Desirable in unit table
10898
10899         * bcheck.adb: (Check_Configuration_Consistency): Add call to
10900         Check_Consistent_Dispatching_Policy.
10901         (Check_Consistent_Dispatching_Policy): Add this procedure in charge of
10902         verifying that the use of Priority_Specific_Dispatching,
10903         Task_Dispatching_Policy, and Locking_Policy is consistent across the
10904         partition.
10905
10906         * bindgen.adb: (Public_Version_Warning): function removed.
10907         (Set_PSD_Pragma_Table): Add this procedure in charge of getting the
10908         required information from ALI files in order to initialize the table
10909         containing the specific dispatching policy.
10910         (Gen_Adainit_Ada): Generate the variables required for priority specific
10911         dispatching entries (__gl_priority_specific_dispatching and
10912         __gl_num_specific_dispatching).
10913         (Gen_Adainit_C): Generate the variables required for priority specific
10914         dispatching entries (__gl_priority_specific_dispatching and
10915         __gl_num_specific_dispatching).
10916         (Gen_Output_File): Acquire settings for Priority_Specific_Dispatching
10917         pragma entries.
10918         (Gen_Restrictions_String_1, Gen_Restrictions_String_2): Removed.
10919         (Gen_Restrictions_Ada, Gen_Restrictions_C, Set_Boolean): New procedures.
10920         (Tab_To): Removed.
10921         (Gen_Output_File_Ada/_C): Set directly __gl_xxx variables instead of
10922         a call to gnat_set_globals.
10923         Generate a string containing settings from
10924         Priority_Specific_Dispatching pragma entries.
10925         (Gen_Object_Files_Options): Do not include the runtime libraries when
10926         pragma No_Run_Time is specified.
10927
10928         * init.c (__gnat_install_handler, case FreeBSD): Use SA_SIGINFO, for
10929         consistency with s-intman-posix.adb.
10930         (__gnat_error_handler, case FreeBSD): Account for the fact that the
10931         handler is installed with SA_SIGINFO.
10932         (__gnat_adjust_context_for_raise, FreeBSD case): New function for
10933         FreeBSD ZCX support, copied from Linux version.
10934         Add MaRTE-specific definitions for the linux target. Redefine sigaction,
10935         sigfillset, and sigemptyset so the routines defined by MaRTE.
10936         (__gl_priority_specific_dispatching): Add this variable that stores the
10937         string containing priority specific dispatching policies in the
10938         partition.
10939         (__gl_num_specific_dispatching): Add this variable that indicates the
10940         highest priority for which a priority specific dispatching pragma
10941         applies.
10942         (__gnat_get_specific_dispatching): Add this routine that returns the
10943         priority specific dispatching policy, as set by a
10944         Priority_Specific_Dispatching pragma appearing anywhere in the current
10945         partition. The input argument is the priority number, and the result
10946         is the upper case first character of the policy name.
10947         (__gnat_set_globals): Now a dummy function.
10948         (__gnat_handle_vms_condition): Feed adjust_context_for_raise with
10949         mechargs instead of sigargs, as the latter can be retrieved from the
10950         former and sigargs is not what we want on ia64.
10951         (__gnat_adjust_context_for_raise, alpha-vms): Fetch sigargs from the
10952         mechargs argument.
10953         (__gnat_adjust_context_for_raise, ia64-vms): New function.
10954         (tasking_error): Remove unused symbol.
10955         (_abort_signal): Move this symbol to the IRIX specific part since this
10956         is the only target that uses this definition.
10957         (Check_Abort_Status): Move this symbol to the IRIX specific part since
10958         this is the only target that uses this definition.
10959         (Lock_Task): Remove unused symbol.
10960         (Unlock_Task): Remove unused symbol.
10961
10962         * lib-writ.adb (Write_ALI): Output new S lines for
10963         Priority_Specific_Dispatching pragmas.
10964         Implement new flag BD for elaborate body desirable
10965
10966         * lib-writ.ads: Document S lines for Priority Specific Dispatching.
10967         (Specific_Dispatching): Add this table for storing the entries
10968         corresponding to Priority_Specific_Dispatching pragmas.
10969         Document new BD flag for elaborate body desirable
10970
10971         * par-prag.adb (Prag): Add Priority_Specific_Dispatching to the list
10972         of known pragmas.
10973
10974 2006-10-31  Javier Miranda  <miranda@adacore.com>
10975
10976         * a-tags.ads, a-tags.adb: 
10977         (Predefined_DT): New function that improves readability of the code.
10978         (Get_Predefined_Prim_Op_Address, Set_Predefined_Prim_Op_Address,
10979         Inherit_DT): Use the new function Predefined_DT to improve code
10980         readability.
10981         (Register_Interface_Tag): Update assertion.
10982         (Set_Interface_Table): Update assertion.
10983         (Interface_Ancestor_Tags): New subprogram required to implement AI-405:
10984         determining progenitor interfaces in Tags.
10985         (Inherit_CPP_DT): New subprogram.
10986
10987         * exp_disp.adb (Expand_Interface_Thunk): Suppress checks during the
10988         analysis of the thunk code.
10989         (Expand_Interface_Conversion): Handle run-time conversion of
10990         access to class wide types.
10991         (Expand_Dispatching_Call): When generating the profile for the
10992         subprogram itype for a dispatching operation, properly terminate the
10993         formal parameters chaind list (set the Next_Entity of the last formal
10994         to Empty).
10995         (Collect_All_Interfaces): Removed. This routine has been moved to
10996         sem_util and renamed as Collect_All_Abstract_Interfaces.
10997         (Set_All_DT_Position): Hidden entities associated with abstract
10998         interface primitives are not taken into account in the check for
10999         3.9.3(10); this check is done with the aliased entity.
11000         (Make_DT, Set_All_DT_Position): Enable full ABI compatibility for
11001         interfacing with CPP by default.
11002         (Expand_Interface_Conversion): Add missing support for static conversion
11003         from an interface to a tagged type.
11004         (Collect_All_Interfaces): Add new out formal containing the list of
11005         abstract interface types to cleanup the subprogram Make_DT.
11006         (Make_DT): Update the code to generate the table of interfaces in case
11007         of abstract interface types.
11008         (Is_Predefined_Dispatching_Alias): New function that returns true if
11009         a primitive is not a predefined dispatching primitive but it is an
11010         alias of a predefined dispatching primitive.
11011         (Make_DT): If the ancestor of the type is a CPP_Class and we are
11012         compiling under full ABI compatibility mode we avoid the generation of
11013         calls to run-time services that fill the dispatch tables because under
11014         this mode we currently inherit the dispatch tables in the IP subprogram.
11015         (Write_DT): Emit an "is null" indication for a null procedure primitive.
11016         (Expand_Interface_Conversion): Use an address as the type of the formal
11017         of the internally built function that handles the case in which the
11018         target type is an access type.
11019
11020 2006-10-31  Robert Dewar  <dewar@adacore.com>
11021
11022         * binde.adb (Better_Choice, Worse_Choice): Implement new preferences.
11023
11024 2006-10-31  Robert Dewar  <dewar@adacore.com>
11025
11026         * bindusg.ads, bindusg.adb:
11027         Change to package and rename procedure as Display, which
11028         now ensures that it only outputs usage information once.
11029
11030 2006-10-31  Jose Ruiz  <ruiz@adacore.com>
11031
11032         * cal.c: Use the header sys/time.h for VxWorks 6.2 or greater when
11033         using RTPs.
11034
11035         * mkdir.c: Use a different version of mkdir for VxWorks 6.2 or greater
11036         when using RTPs.
11037
11038 2006-10-31  Robert Dewar  <dewar@adacore.com>
11039             Ed Schonberg  <schonberg@adacore.com>
11040
11041         * treepr.adb: Use new subtype N_Membership_Test
11042
11043         * checks.ads, checks.adb: Add definition for Validity_Check
11044         (Range_Or_Validity_Checks_Suppressed): New function
11045         (Ensure_Valid): Test Validity_Check suppressed
11046         (Insert_Valid_Check): Test Validity_Check suppressed
11047         (Insert_Valid_Check): Preserve Do_Range_Check flag
11048         (Validity_Check_Range): New procedure
11049         (Expr_Known_Valid): Result of membership test is always valid
11050         (Selected_Range_Checks): Range checks cannot be applied to discriminants
11051         by themselves. Disabling those checks must also be done for task types,
11052         where discriminants may be used for the bounds of entry families.
11053         (Apply_Address_Clause_Check): Remove side-effects if address expression
11054         is non-static and is not the name of a declared constant.
11055         (Null_Exclusion_Static_Checks): Extend to handle Function_Specification.
11056         Code cleanup and new error messages.
11057         (Enable_Range_Check): Test for some cases of suppressed checks
11058         (Generate_Index_Checks): Suppress index checks if index checks are
11059         suppressed for array object or array type.
11060         (Apply_Selected_Length_Checks): Give warning for compile-time detected
11061         length check failure, even if checks are off.
11062         (Ensure_Valid): Do not generate a check on an indexed component whose
11063         prefix is a packed boolean array.
11064         * checks.adb: (Alignment_Checks_Suppressed): New function
11065         (Apply_Address_Clause_Check): New procedure, this is a completely
11066         rewritten replacement for Apply_Alignment_Check
11067         (Get_E_Length/Get_E_First_Or_Last): Add missing barrier to ensure that
11068         we request a discriminal value only in case of discriminants.
11069         (Apply_Discriminant_Check): For Ada_05, only call Get_Actual_Subtype for
11070         assignments where the target subtype is unconstrained and the target
11071         object is a parameter or dereference (other aliased cases are known
11072         to be unconstrained).
11073
11074 2006-10-31  Robert Dewar  <dewar@adacore.com>
11075
11076         * clean.adb, gnatname.adb, gnatsym.adb, prep.adb, prep.ads,
11077         prepcomp.adb, prj.ads, prj-strt.adb, sem_maps.ads,
11078         vms_conv.adb: Fix bad table increment values (much too small)
11079
11080         * table.adb (Realloc): Make sure we get at least some new elements
11081         Defends against silly small values for table increment
11082
11083 2006-10-31  Robert Dewar  <dewar@adacore.com>
11084             Ed Schonberg  <schonberg@adacore.com>
11085             Bob Duff  <duff@adacore.com>
11086
11087         * einfo.ads, einfo.adb (Obsolescent_Warning): Now defined on all
11088         entities. Move other fields around to make this possible
11089         (Is_Derived_Type): Add missing call to Is_Type.
11090         (Extra_Formals): New function for subprograms, entries, subprogram
11091         types.
11092         (Set_Extra_Formals): New procedure for subprograms, entries, subp types.
11093         (First_Formal_With_Extras): New function for subprogs, entries, subp
11094         types.
11095         (Write_Field28_Name): New procedure for node display of "Extra_Formals".
11096         Add node information for E_Return_Statement.
11097         (Elaborate_Body_Desirable): New flag
11098         (Is_Return_By_Reference_Type): Rename Is_Return_By_Reference_Type
11099         to be Is_Inherently_Limited_Type, because return-by-reference has
11100         no meaning in Ada 2005.
11101         (E_Return_Statement): New entity kind.
11102         (Return_Applies_To): Field of E_Return_Statement.
11103         (Is_Return_Object): New flag in object entities.
11104         (Is_Dynamic_Scope): Make it True for E_Return_Statement.
11105         (Must_Have_Preelab_Init): New flag
11106         (Known_To_Have_Preelab_Init): New flag
11107         (Is_Formal_Object): Move from Sem_Ch8 body to Einfo
11108         (Is_Visible_Formal): New flag on entities in formal packages.
11109         (Low_Bound_Known): New flag
11110         (Non_Limited_View, Set_Non_Limited_View): Add membership test agains
11111         Incomplete_Kind.
11112         (Write_Field17_Name): Correct spelling of Non_Limited_View. Add name
11113         output when Id is an incomplete subtype.
11114
11115 2006-10-31  Robert Dewar  <dewar@adacore.com>
11116
11117         * errout.ads, errout.adb (Finalize): Implement switch -gnatd.m
11118         Avoid abbreviation Creat
11119         (Finalize): List all sources in extended mail source if -gnatl
11120         switch is active.
11121         Suppress copyright notice to file in -gnatl=f mode if -gnatd7 set
11122         (Finalize): Implement new -gnatl=xxx switch to output listing to file
11123         (Set_Specific_Warning_On): New procedure
11124         (Set_Specific_Warning_Off): New procedure
11125         Add implementation of new insertion \\
11126         (Error_Msg_Internal): Add handling for Error_Msg_Line_Length
11127         (Unwind_Internal_Type): Improve report on anonymous access_to_subprogram
11128         types.
11129         (Error_Msg_Internal): Make sure that we set Last_Killed to
11130         True when a message from another package is suppressed.
11131         Implement insertion character ~ (insert string)
11132         (First_Node): Minor adjustments to get better placement.
11133
11134         * frontend.adb: 
11135         Implement new -gnatl=xxx switch to output listing to file
11136
11137         * gnat1drv.adb: 
11138         Implement new -gnatl=xxx switch to output listing to file
11139
11140         * opt.ads: (Warn_On_Questionable_Missing_Paren): New switch
11141         (Commands_To_Stdout): New flag
11142         Implement new -gnatl=xxx switch to output listing to file
11143         New switch Dump_Source_Text
11144         (Warn_On_Deleted_Code): New warning flag for -gnatwt
11145         Define Error_Msg_Line_Length
11146         (Warn_On_Assumed_Low_Bound): New switch
11147
11148         * osint.ads, osint.adb
11149         (Normalize_Directory_Name): Fix bug.
11150         Implement new -gnatl=xxx switch to output listing to file
11151         (Concat): Removed, replaced by real concatenation
11152         Make use of concatenation now allowed in compiler
11153         (Executable_Prefix.Get_Install_Dir): First get the full path, so that
11154         we find the 'lib' or 'bin' directory even when the tool has been
11155         invoked with a relative path.
11156         (Executable_Name): New function taking string parameters.
11157
11158         * osint-c.ads, osint-c.adb: 
11159         Implement new -gnatl=xxx switch to output listing to file
11160
11161         * sinput-d.adb: Change name Creat_Debug_File to Create_Debug_File
11162
11163         * switch-c.adb: 
11164         Implement new -gnatl=xxx switch to output listing to file
11165         Recognize new -gnatL switch
11166         (no longer keep in old warning about old style usage)
11167         Use concatenation to simplify code
11168         Recognize -gnatjnn switch
11169         (Scan_Front_End_Switches): Clean up handling of -gnatW
11170         (Scan_Front_End_Switches): Include Warn_On_Assumed_Low_Bound for -gnatg
11171
11172 2006-10-31  Robert Dewar  <dewar@adacore.com>
11173
11174         * erroutc.ads, erroutc.adb (Set_Specific_Warning_On): New procedure
11175         (Set_Specific_Warning_Off): New procedure
11176         (Warning_Specifically_Suppressed): New function
11177         (Validate_Specific_Warnings): New procedure
11178         (Output_Msg_Text): Complete rewrite to support -gnatjnn
11179
11180         * err_vars.ads: Implement insertion character ~ (insert string)
11181
11182 2006-10-31  Bob Duff  <duff@adacore.com>
11183             Ed Schonberg  <schonberg@adacore.com>
11184
11185         * exp_aggr.adb (Build_Record_Aggr_Code): For extension aggregates, if
11186         the parent part is a build-in-place function call, generate assignments.
11187         (Expand_Record_Aggregate): Call Convert_To_Assignments if any components
11188         are build-in-place function calls.
11189         (Replace_Self_Reference): New subsidiary of
11190         Make_OK_Assignment_Statement, to replace an access attribute that is a
11191         self-reference into an access to the appropriate component of the
11192         target object. Generalizes previous mechanism to handle self-references
11193         nested at any level.
11194         (Is_Self_Referential_Init): Remove, not needed.
11195         (Is_Self_Referential_Init): New predicate to simplify handling of self
11196         referential components in record aggregates.
11197         (Has_Default_Init_Comps, Make_OK_Assignment_Statement): Add guard to
11198         check for presence of entity before checking for self-reference.
11199         (Has_Default_Init_Comps): Return True if a component association is a
11200         self-reference to the enclosing type, which can only come from a
11201         default initialization.
11202         (Make_OK_Assignment_Statement): If the expression is of the form
11203         Typ'Acc, where Acc is an access attribute, the expression comes from a
11204         default initialized self-referential component.
11205         (Build_Record_Aggr_Code): If the type of the aggregate is a tagged type
11206         that has been derived from several abstract interfaces we must also
11207         initialize the tags of the secondary dispatch tables.
11208
11209 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
11210             Thomas Quinot  <quinot@adacore.com>
11211             Javier Miranda  <miranda@adacore.com>
11212             Robert Dewar  <dewar@adacore.com>
11213
11214         * exp_attr.adb: 
11215         (Expand_Access_To_Protected_Op): If the context indicates that an access
11216         to a local operation may be transfered outside of the object, create an
11217         access to the wrapper operation that must be used in an external call.
11218         (Expand_N_Attribute_Reference, case Attribute_Valid): For the AAMP
11219         target, pass the Valid attribute applied to a floating-point prefix on
11220         to the back end without expansion.
11221         (Storage_Size): Use the new run-time function Storage_Size to retrieve
11222         the allocated storage when it is specified by a per-object expression.
11223         (Expand_N_Attribute_Reference): Add case for Attribute_Stub_Type.
11224         Nothing to do here, the attribute has been rewritten during semantic
11225         analysis.
11226         (Expand_Attribute_Reference): Handle expansion of the new Priority
11227         attribute
11228         (Find_Fat_Info): Handle case of universal real
11229         (Expand_Access_To_Protected_Op): Fix use of access to protected
11230         subprogram from inside the body of a protected entry.
11231         (Expand_Access_To_Protected_Op): Common procedure for the expansion of
11232         'Access and 'Unrestricted_Access, to transform the attribute reference
11233         into a fat pointer.
11234         (Is_Constrained_Aliased_View): New predicate to help determine whether a
11235         subcomponent's enclosing variable is aliased with a constrained subtype.
11236         (Expand_N_Attribute_Reference, case Attribute_Constrained): For Ada_05,
11237         test Is_Constrained_Aliased_View rather than Is_Aliased_View, because
11238         an aliased prefix must be known to be constrained in order to use True
11239         for the attribute value, and now it's possible for some aliased views
11240         to be unconstrained.
11241
11242 2006-10-31  Robert Dewar  <dewar@adacore.com>
11243
11244         * exp_ch2.adb: Change Is_Lvalue to May_Be_Lvalue
11245         (Expand_Entity_Reference): Correct error of not handling subprogram
11246         formals in current_value processing.
11247
11248 2006-10-31  Javier Miranda  <miranda@adacore.com>
11249             Robert Dewar  <dewar@adacore.com>
11250             Ed Schonberg  <schonberg@adacore.com>
11251             Gary Dismukes  <dismukes@adacore.com>
11252
11253         * exp_ch3.ads, exp_ch3.adb (Expand_N_Object_Declaration): Do not
11254         register in the final list objects containing class-wide interfaces;
11255         otherwise we incorrectly register the tag of the interface in the final
11256         list.
11257         (Make_Controlling_Function_Wrappers): Add missing barrier to do not
11258         generate the wrapper if the parent primitive is abstract. This is
11259         required to report the correct error message.
11260         (Expand_N_Subtype_Indication): Do validity checks on range
11261         (Clean_Task_Names): If an initialization procedure includes a call to
11262         initialize a task (sub)component, indicate that the procedure will use
11263         the secondary stack.
11264         (Build_Init_Procedure, Init_Secondary_Tags): Enable full ABI
11265         compatibility for interfacing with CPP by default.
11266         (Expand_N_Object_Declaration): Only build an Adjust call when the
11267         object's type is a nonlimited controlled type.
11268         * exp_ch3.adb: Add with and use of Exp_Ch6.
11269         (Expand_N_Object_Declaration): Check for object initialization that is a
11270         call to build-in-place function and apply Make_Build_In_Place_Call_In_
11271         Object_Declaration to the call.
11272         (Freeze_Type): When the designated type of an RACW was not frozen at the
11273         point where the RACW was declared, validate the primitive operations
11274         with respect to E.2.2(14) when it finally is frozen.
11275         (Build_Initialization_Call,Expand_Record_Controller): Rename
11276         Is_Return_By_Reference_Type to be Is_Inherently_Limited_Type, because
11277         return-by-reference has no meaning in Ada 2005.
11278         (Init_Secondary_Tags): Add missing call to Set_Offset_To_Top
11279         to register tag of the immediate ancestor interfaces in the
11280         run-time structure.
11281         (Init_Secondary_Tags): Moved to the specification to allow the
11282         initialization of extension aggregates with abstract interfaces.
11283         (Build_Master_Renaming): Make public, for use by function declarations
11284         whose return type is an anonymous access type.
11285         (Freeze_Record_Type): Replace call to Insert_List_Before by call to
11286         Insert_List_Before_And_Analyze after the generation of the specs
11287         associated with null procedures.
11288         (Expand_Tagged_Root): Update documentation in its specification.
11289         (Init_Secondary_Tags): Update documentation.
11290         (Build_Init_Procedure): If we are compiling under CPP full ABI compa-
11291         tibility mode and the immediate ancestor is a CPP_Pragma tagged type
11292         then generate code to inherit the contents of the dispatch table
11293         directly from the ancestor.
11294         (Expand_Record_Controller): Insert controller component after tags of
11295         implemented interfaces.
11296         (Freeze_Record_Type): Call new procedure Make_Null_Procedure_Specs to
11297         create null procedure overridings when null procedures are inherited
11298         from interfaces.
11299         (Make_Null_Procedure_Specs): New procedure to generate null procedure
11300         declarations for overriding null primitives inherited from interfaces.
11301         (Is_Null_Interface_Procedure): New function in
11302         Make_Null_Procedure_Specs.
11303         (Make_Predefined_Primitive_Specs/Predefined_Primitive_Bodies): If the
11304         immediate ancestor of a tagged type is an abstract interface type we
11305         must generate the specification of the predefined primitives associated
11306         with controlled types (because the dispatch table of the ancestor is
11307         null and hence these entries cannot be inherited). This is required to
11308         elaborate well the dispatch table.
11309
11310 2006-10-31  Javier Miranda  <miranda@adacore.com>
11311             Ed Schonberg  <schonberg@adacore.com>
11312             Bob Duff  <duff@adacore.com>
11313             Gary Dismukes  <dismukes@adacore.com>
11314             Robert Dewar  <dewar@adacore.com>
11315
11316         * exp_ch4.adb (Expand_N_Type_Conversion): Handle missing interface type
11317         conversion.
11318         (Expand_N_In): Do validity checks on range
11319         (Expand_Selected_Component): Use updated for of Denotes_Discriminant.
11320         (Expand_N_Allocator): For "new T", if the object is constrained by
11321         discriminant defaults, allocate the right amount of memory, rather than
11322         the maximum for type T.
11323         (Expand_Allocator_Expression): Suppress the call to Remove_Side_Effects
11324         when the allocator is initialized by a build-in-place call, since the
11325         allocator is already rewritten as a reference to the function result,
11326         and this prevents an unwanted duplication of the function call.
11327         Add with and use of Exp_Ch6.
11328         (Expand_Allocator_Expresssion): Check for an allocator whose expression
11329         is a call to build-in-place function and apply
11330         Make_Build_In_Place_Call_In_Allocator to the call (for both tagged and
11331         untagged designated types).
11332         (Expand_N_Unchecked_Type_Conversion): Do not do integer literal
11333         optimization if source or target is biased.
11334         (Expand_N_Allocator): Add comments for case of an allocator within a
11335         function that returns an anonymous access type designating tasks.
11336         (Expand_N_Allocator): apply discriminant checks for access
11337         discriminants of anonymous access types (AI-402, AI-416)
11338
11339 2006-10-31  Bob Duff  <duff@adacore.com>
11340             Robert Dewar  <dewar@adacore.com>
11341             Gary Dismukes  <dismukes@adacore.com>
11342             Ed Schonberg  <schonberg@adacore.com>
11343
11344         * exp_ch5.ads (Expand_N_Extended_Return_Statement): New procedure.
11345
11346         * exp_ch5.adb (Expand_N_Loop_Statement): Do validity checks on range
11347         (Expand_N_Assignment_Statement): Call
11348         Make_Build_In_Place_Call_In_Assignment if the right-hand side is a
11349         build-in-place function call. Currently, this can happen only for
11350         assignments that come from aggregates.
11351         Add -gnatd.l --Use Ada 95 semantics for limited function returns,
11352         in order to alleviate the upward compatibility introduced by AI-318.
11353         (Expand_N_Extended_Return_Statement): Add support for handling the
11354         return object as a build-in-place result.
11355         (Expand_Non_Function_Return): Implement simple return statements nested
11356         within an extended return.
11357         (Enable_New_Return_Processing): Turn on the new processing of return
11358         statements.
11359         (Expand_Non_Function_Return): For a return within an extended return,
11360         don't raise Program_Error, because Sem_Ch6 now gives a warning.
11361         (Expand_N_Extended_Return_Statement): Implement AI-318
11362         (Expand_Simple_Function_Return): Ditto.
11363         (Expand_N_If_Statement): Handle new -gnatwt warning
11364         (Expand_N_Case_Statement): Handle new -gnatwt warning
11365         (Expand_N_Assignment): Handle assignment to the Priority attribute of
11366         a protected object.
11367         (Expand_N_Assignment_Statement): Implement -gnatVe/E to control
11368         validity checking of assignments to elementary record components.
11369         (Expand_N_Return_Statement): return Class Wide types on the secondary
11370         stack independantly of their controlled status since with HIE runtimes,
11371         class wide types are not potentially controlled anymore.
11372
11373         * expander.adb (Expand): Add case for new N_Extended_Return_Statement
11374         node kind.
11375
11376         * exp_ch11.adb (Expand_N_Handled_Sequence_Of_Statements): Avoid
11377         Expand_Cleanup_Actions in case of N_Extended_Return_Statement, because
11378         it expects a block, procedure, or task. The return statement will get
11379         turned into a block, and Expand_Cleanup_Actions will happen then.
11380
11381 2006-10-31  Robert Dewar  <dewar@adacore.com>
11382             Ed Schonberg  <schonberg@adacore.com>
11383             Bob Duff  <duff@adacore.com>
11384             Gary Dismukes  <dismukes@adacore.com>
11385
11386         * exp_ch6.ads, exp_ch6.adb: Use new Validity_Check suppression
11387         capability.
11388         (Expand_Inlined_Call): Tagged types are by-reference types, and
11389         therefore should be replaced by a renaming declaration in the expanded
11390         body, as is done for limited types.
11391         (Expand_Call): If this is a call to a function with dispatching access
11392         result, propagate tag from context.
11393         (Freeze_Subprogram): Enable full ABI compatibility for interfacing with
11394         CPP by default.
11395         (Make_Build_In_Place_Call_In_Assignment): New procedure to do
11396         build-in-place when the right-hand side of an assignment is a
11397         build-in-place function call.
11398         (Make_Build_In_Place_Call_In_Allocator): Apply an unchecked conversion
11399         of the explicit dereference of the allocator to the result subtype of
11400         the build-in-place function. This is needed to satisfy type checking
11401         in cases where the caller's return object is created by an allocator for
11402         a class-wide access type and the type named in the allocator is a
11403         specific type.
11404         (Make_Build_In_Place_Call_In_Object_Declaration): Apply an unchecked
11405         conversion of the reference to the declared object to the result subtype
11406         of the build-in-place function. This is needed to satisfy type checking
11407         in cases where the declared object has a class-wide type. Also, in the
11408         class-wide case, change the type of the object entity to the specific
11409         result subtype of the function, to avoid passing a class-wide object
11410         without explicit initialization to the back end.
11411         (Register_Interface_DT_Entry): Moved outside the body of
11412         Freeze_Subprogram because this routine is now public; it is called from
11413         Check_Dispatching_Overriding to handle late overriding of abstract
11414         interface primitives.
11415         (Add_Access_Actual_To_Build_In_Place_Call): New utility procedure for
11416         adding an implicit access actual on a call to a build-in-place function.
11417         (Expand_Actuals): Test for an actual parameter that is a call to a
11418         build-in-place function and apply
11419         Make_Build_In_Place_Call_In_Anonymous_Context to the call.
11420         (Is_Build_In_Place_Function): New function to determine whether an
11421         entity is a function whose calls should be handled as build-in-place.
11422         (Is_Build_In_Place_Function_Call): New function to determine whether an
11423         expression is a function call that should handled as build-in-place.
11424         (Make_Build_In_Place_Call_In_Allocator): New procedure for handling
11425         calls to build-in-place functions as the initialization of an allocator.
11426         (Make_Build_In_Place_Call_In_Anonymous_Context): New procedure for
11427         handling calls to build-in-place functions in contexts that do not
11428         involve init of a separate object (for example, actuals of subprogram
11429         calls).
11430         (Make_Build_In_Place_Call_In_Object_Declaration): New procedure for
11431         handling calls to build-in-place functions as the initialization of an
11432         object declaration.
11433         (Detect_Infinite_Recursion): Add explicit parameter Process to
11434         instantiation of Traverse_Body to avoid unreferenced warning.
11435         (Check_Overriding_Inherited_Interfaces): Removed.
11436         (Register_Interface_DT_Entry): Code cleanup.
11437         (Register_Predefined_DT_Entry): Code cleanup.
11438         (Expand_Inlined_Call.Rewrite_Procedure_Call): Do not omit block around
11439         inlined statements if within a transient scope.
11440         (Expand_Inlined_Call.Process_Formals): When replacing occurrences of
11441         formal parameters with occurrences of actuals in inlined body, establish
11442         visibility on the proper view of the actual's subtype for the body's
11443         context.
11444         (Freeze_Subprogram): Do nothing if we are compiling under full ABI
11445         compatibility mode and we have an imported CPP subprogram because
11446         for now we assume that imported CPP primitives correspond with
11447         objects whose constructor is in the CPP side (and therefore we
11448         don't need to generate code to register them in the dispatch table).
11449         (Expand_Actuals): Introduce copy of actual, only if it might be a bit-
11450         aligned selected component.
11451         (Add_Call_By_Copy_Node): Add missing code to handle the case in which
11452         the actual of an in-mode parameter is a type conversion.
11453         (Expand_Actuals): If the call does not come from source and the actual
11454         is potentially misaligned, let gigi handle it rather than rejecting the
11455         (Expand_N_Subprogram_Body, Freeze_Subprogram): set subprograms returning
11456         Class Wide types as returning by reference independantly of their
11457         controlled status since with HIE runtimes class wide types are not
11458         potentially controlled anymore.
11459
11460 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
11461
11462         * exp_ch9.adb (Update_Prival_Types): Simplify code for entity
11463         references that are private components of the protected object.
11464         (Build_Barrier_Function): Set flag Is_Entry_Barrier_Function
11465         (Update_Prival_Subtypes): Add explicit Process argument to Traverse_Proc
11466         instantiation to deal with warnings.
11467         (Initialize_Protection): If expression for priority is non-static, use
11468         System_Priority as its expected type, in case the expression has not
11469         been analyzed yet.
11470
11471 2006-10-31  Robert Dewar  <dewar@adacore.com>
11472
11473         * exp_dbug.ads, exp_dbug.adb (Get_External_Name): Add missing
11474         initialization of Homonym_Len.
11475         (Fully_Qualify_Name): Remove kludge to eliminate anonymous block
11476         names from fully qualified name. Fixes problem of duplicate
11477         external names differing only in the presence of such a block name.
11478
11479 2006-10-31  Thomas Quinot  <quinot@adacore.com>
11480             Pablo Oliveira  <oliveira@adacore.com>
11481
11482         * exp_dist.adb (Get_Subprogram_Ids): This function will no more assign
11483         subprogram Ids, even if they are not yet assigned.
11484         (Build_Subprogram_Id): It is now this function that will take care of
11485         calling Assign_Subprogram_Ids if necessary.
11486         (Add_Receiving_Stubs_To_Declarations): Checking the subprograms ids
11487         should be done only once they are assigned.
11488         (Build_From_Any_Function, case of tagged types): Add missing call to
11489         Allocate_Buffer.
11490         (Corresponding_Stub_Type): New subprogram. Returns the associated stub
11491         type for an RACW type.
11492         (Add_RACW_Features): When processing an RACW declaration for which the
11493         designated type is already frozen, enforce E.2.2(14) rules immediately.
11494         (GARLIC_Support.Build_Subprogram_Receiving_Stubs): Do not perform any
11495         special reordering of controlling formals.
11496
11497         * exp_dist.ads (Corresponding_Stub_Type): New subprogram. Returns the
11498         associated stub type for an RACW type.
11499
11500 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
11501
11502         * exp_fixd.adb (Rounded_Result_Set): For multiplication and division of
11503         fixed-point operations in an integer context, i.e. as operands of a
11504         conversion to an integer type, indicate that result must be rounded.
11505
11506 2006-10-31  Robert Dewar  <dewar@adacore.com>
11507
11508         * exp_imgv.adb (Expand_Image_Attribute): For Wide_[Wide_]Character
11509         cases, pass the encoding method, since it is now required by the run
11510         time.
11511
11512         * s-valwch.ads, s-valwch.adb (Value_Wide_Wide_Character): Avoid
11513         assumption that Str'First = 1.
11514         (Value_Wide_Character): Takes EM (encoding method) parameter and passes
11515         it on to the Value_Wide_Wide_Character call.
11516         (Value_Wide_Wide_Character): Takes EM (encoding method) parameter and
11517         properly handles a string of the form quote-encoded_wide_char-quote.
11518
11519         * s-wchcnv.adb: Minor reformatting
11520
11521 2006-10-31  Javier Miranda  <miranda@adacore.com>
11522
11523         * exp_intr.adb (Expand_Dispatching_Constructor_Call): Add missing
11524         run-time membership test to ensure that the constructed object
11525         implements the target abstract interface.
11526
11527 2006-10-31  Robert Dewar  <dewar@adacore.com>
11528
11529         * exp_prag.adb (Expand_Pragma_Common_Object): Use a single
11530         Machine_Attribute pragma internally to implement the user pragma.
11531         Add processing for pragma Interface so that it is now completely
11532         equivalent to pragma Import.
11533
11534         * sem_prag.adb (Analyze_Pragma, case Obsolescent): Extend this pragma
11535         so that it can be applied to all entities, including record components
11536         and enumeration literals.
11537         (Analyze_Pragma, case Priority_Specific_Dispatching): Check whether
11538         priority ranges are correct, verify compatibility against task
11539         dispatching and locking policies, and if everything is correct an entry
11540         is added to the table containing priority specific dispatching entries
11541         for this compilation unit.
11542         (Delay_Config_Pragma_Analyze): Delay processing
11543         Priority_Specific_Dispatching pragmas because when processing the
11544         pragma we need to access run-time data, such as the range of
11545         System.Any_Priority.
11546         (Sig_Flags): Add Pragma_Priority_Specific_Dispatching.
11547         Allow pragma Unreferenced as a context item
11548         Add pragma Preelaborable_Initialization
11549         (Analyze_Pragma, case Interface): Interface is extended so that it is
11550         now syntactically and semantically equivalent to Import.
11551         (Analyze_Pragma, case Compile_Time_Warning): Fix error of blowups on
11552         insertion characters.
11553         Add handling for Pragma_Wide_Character_Encoding
11554         (Process_Restrictions_Restriction_Warnings): Ensure that a warning
11555         never supercedes a real restriction, and that a real restriction
11556         always supercedes a warning.
11557         (Analyze_Pragma, case Assert): Set Low_Bound_Known if assert is of
11558         appropriate form.
11559
11560 2006-10-31  Bob Duff  <duff@adacore.com>
11561             Ed Schonberg  <schonberg@adacore.com>
11562             Robert Dewar  <dewar@adacore.com>
11563
11564         * exp_ch7.adb (Build_Array_Deep_Procs, Build_Record_Deep_Procs,
11565         Make_Deep_Record_Body): Rename Is_Return_By_Reference_Type to be
11566         Is_Inherently_Limited_Type, because return-by-reference has no meaning
11567         in Ada 2005.
11568         (Find_Node_To_Be_Wrapped): Use new method of determining the result
11569         type of the function containing a return statement, because the
11570         Return_Type field was removed. We now use the Return_Applies_To field.
11571
11572         * exp_util.ads, exp_util.adb: Use new subtype N_Membership_Test
11573         (Build_Task_Image_Decl): If procedure is not called from an
11574         initialization procedure, indicate that function that builds task name
11575         uses the sec. stack. Otherwise the enclosing initialization procedure
11576         will carry the indication.
11577         (Insert_Actions): Remove N_Return_Object_Declaration. We now use
11578         N_Object_Declaration instead.
11579         (Kill_Dead_Code): New interface to implement -gnatwt warning for
11580         conditional dead code killed, and change implementation accordingly.
11581         (Insert_Actions): Add N_Return_Object_Declaration case.
11582         Correct comment to mention N_Extension_Aggregate node.
11583         (Set_Current_Value_Condition): Call Safe_To_Capture_Value to avoid bad
11584         attempts to save information for global variables which cannot be
11585         safely tracked.
11586         (Get_Current_Value_Condition): Handle conditions the other way round
11587         (constant on left). Also handle right operand of AND and AND THEN
11588         (Set_Current_Value_Condition): Corresponding changes
11589         (Append_Freeze_Action): Remove unnecessary initialization of Fnode.
11590         (Get_Current_Value_Condition): Handle simple boolean operands
11591         (Get_Current_Value_Condition): Handle left operand of AND or AND THEN
11592         (Get_Current_Value_Condition): If the variable reference is within an
11593         if-statement, does not appear in the list of then_statments, and does
11594         not come from source, treat it as being at unknown location.
11595         (Get_Current_Value_Condition): Enhance to allow while statements to be
11596         processed as well as if statements.
11597         (New_Class_Wide_Subtype): The entity for a class-wide subtype does not
11598         come from source.
11599         (OK_To_Do_Constant_Replacement): Allow constant replacement within body
11600         of loop. This is safe now that we fixed Kill_Current_Values.
11601         (OK_To_Do_Constant_Replacement): Check whether current scope is
11602         Standard, before examining outer scopes.
11603
11604 2006-10-31  Vincent Celier  <celier@adacore.com>
11605
11606         * krunch.ads, krunch.adb (Krunch): New Boolean parameter VMS_On_Target.
11607         When True, apply VMS treatment to children of packages A, G, I and S.
11608         For F320-016
11609
11610         * fname-uf.adb (Get_File_Name): Call Krunch with OpenVMS_On_Target
11611
11612 2006-10-31  Robert Dewar  <dewar@adacore.com>
11613             Ed Schonberg  <schonberg@adacore.com>
11614
11615         * freeze.adb: Add handling of Last_Assignment field
11616         (Warn_Overlay): Supply missing continuation marks in error msgs
11617         (Freeze_Entity): Add check for Preelaborable_Initialization
11618
11619         * g-comlin.adb: Add Warnings (Off) to prevent new warning
11620
11621         * g-expect.adb: Add Warnings (Off) to prevent new warning
11622
11623         * lib-xref.adb: Add handling of Last_Assignment field
11624         (Generate_Reference): Centralize handling of pragma Obsolescent here
11625         (Generate_Reference): Accept an implicit reference generated for a
11626         default in an instance.
11627         (Generate_Reference): Accept a reference for a node that is not in the
11628         main unit, if it is the generic body corresponding to an subprogram
11629         instantiation.
11630
11631         * xref_lib.adb: Add pragma Warnings (Off) to avoid new warnings
11632
11633         * sem_warn.ads, sem_warn.adb (Set_Warning_Switch): Add processing for
11634         -gnatwq/Q.
11635         (Warn_On_Useless_Assignment): Suppress warning if enclosing inner
11636         exception handler.
11637         (Output_Obsolescent_Entity_Warnings): Rewrite to avoid any messages on
11638         use clauses, to avoid messages on packages used to qualify, and also
11639         to avoid messages from obsolescent units.
11640         (Warn_On_Useless_Assignments): Don't generate messages for imported
11641         and exported variables.
11642         (Warn_On_Useless_Assignments): New procedure
11643         (Output_Obsolescent_Entity_Warnings): New procedure
11644         (Check_Code_Statement): New procedure
11645
11646         * einfo.ads, einfo.adb (Has_Static_Discriminants): New flag
11647         Change name Is_Ada_2005 to Is_Ada_2005_Only
11648         (Last_Assignment): New field for useless assignment warning
11649
11650 2006-10-31  Olivier Hainque  <hainque@adacore.com>
11651
11652         * g-alleve.adb (lvx, stvx): Ceil-Round the Effective Address to the
11653         closest multiple of VECTOR_ALIGNMENT and not the closest multiple of 16.
11654
11655 2006-10-31  Bob Duff  <duff@adacore.com>
11656             Robert Dewar  <dewar@adacore.com>
11657             Ed Schonberg  <schonberg@adacore.com>
11658
11659         * g-awk.adb (Default_Session, Current_Session): Compile this file in
11660         Ada 95 mode, because it violates the new rules for AI-318.
11661
11662         * g-awk.ads: Use overloaded subprograms in every case where we used to
11663         have a default of Current_Session. This makes the code closer to be
11664         correct for both Ada 95 and 2005.
11665
11666         * g-moreex.adb (Occurrence): Turn off warnings for illegal-in-Ada-2005
11667         code, relying on the fact that the compiler generates a warning
11668         instead of an error in -gnatg mode.
11669
11670         * lib-xref.ads (Xref_Entity_Letters): Add entry for new
11671         E_Return_Statement entity kind.
11672         Add an entry for E_Incomplete_Subtype in Xref_Entity_Letters.
11673
11674         * par.adb (P_Interface_Type_Definition): Addition of one formal to
11675         report an error if the reserved word abstract has been previously found.
11676         (SS_End_Type): Add E_Return for new extended_return_statement syntax.
11677
11678         * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Improve message for
11679         parenthesized range attribute usage
11680         (P_Expression_No_Right_Paren): Add missing comment about error recovery.
11681
11682         * par-ch6.adb (P_Return_Object_Declaration): AI-318: Allow "constant"
11683         in the syntax for extended_return_statement. This is not in the latest
11684         RM, but the ARG is expected to issue an AI allowing this.
11685         (P_Return_Subtype_Indication,P_Return_Subtype_Indication): Remove
11686         N_Return_Object_Declaration. We now use N_Object_Declaration instead.
11687         (P_Return_Object_Declaration, P_Return_Subtype_Indication,
11688         P_Return_Statement): Parse the new syntax for extended_return_statement.
11689
11690         * par-endh.adb (Check_End, Output_End_Deleted, Output_End_Expected,
11691         Output_End_Missing): Add error-recovery code for the new
11692         extended_return_statement syntax; that is, the new E_Return entry on
11693         the scope stack.
11694
11695         * s-auxdec-vms_64.ads, s-auxdec.ads (AST_Handler): Change type from
11696         limited to nonlimited, because otherwise we violate the new Ada 2005
11697         rules about returning limited types in function Create_AST_Handler in
11698         s-asthan.adb.
11699
11700         * sem.adb (Analyze): Add cases for new node kinds
11701         N_Extended_Return_Statement and N_Return_Object_Declaration.
11702
11703         * sem_aggr.adb (Aggregate_Constraint_Checks): Verify that component
11704         type is in the same category as type of context before applying check,
11705         to prevent anomalies in instantiations.
11706         (Resolve_Aggregate): Remove test for limited components in aggregates.
11707         It's unnecessary in Ada 95, because if it has limited components, then
11708         it must be limited. It's wrong in Ada 2005, because limited aggregates
11709         are now allowed.
11710         (Resolve_Record_Aggregate): Move check for limited types later, because
11711         OK_For_Limited_Init requires its argument to have been resolved.
11712         (Get_Value): When copying the component default expression for a
11713         defaulted association in an aggregate, use the sloc of the aggregate
11714         and not that of the original expression, to prevent spurious
11715         elaboration errors, when the expression includes function calls.
11716         (Check_Non_Limited_Type): Correct code for AI-287, extension aggregates
11717         were missing. We also didn't handle qualified expressions. Now also
11718         allow function calls. Use new common routine OK_For_Limited_Init.
11719         (Resolve_Extension_Aggregate): Minor fix to bad error message (started
11720         with space can upper case letter).
11721
11722         * sem_ch3.ads, sem_ch3.adb (Create_Constrained_Components): Set
11723         Has_Static_Discriminants flag
11724         (Record_Type_Declaration): Diagnose an attempt to declare an interface
11725         type with discriminants.
11726         (Process_Range_Expr_In_Decl): Do validity checks on range
11727         (Build_Discriminant_Constraints): Use updated form of
11728         Denotes_Discriminant.
11729         (Process_Subtype): If the subtype is a private subtype whose full view
11730         is a concurrent subtype, introduce an itype reference to prevent scope
11731         anomalies in gigi.
11732         (Build_Derived_Record_Type, Collect_Interface_Primitives,
11733         Record_Type_Declaration):  The functionality of the subprograms
11734         Collect_Abstract_Interfaces and Collect_All_Abstract_Interfaces
11735         is now performed by a single routine.
11736         (Build_Derived_Record_Type): If the type definition includes an explicit
11737         indication of limitedness, then the type must be marked as limited here
11738         to ensure that any access discriminants will not be treated as having
11739         a local anonymous access type.
11740         (Check_Abstract_Overriding): Issue a detailed error message when an
11741         abstract subprogram was not overridden due to incorrect mode of its
11742         first parameter.
11743         (Analyze_Private_Extension_Declaration): Add support for the analysis of
11744         synchronized private extension declarations. Verify that the ancestor is
11745         a limited or synchronized interface or in the generic case, the ancestor
11746         is a tagged limited type or synchronized interface and all progenitors
11747         are either limited or synchronized interfaces.
11748         Derived_Type_Declaration): Check for presence of private extension when
11749         dealing with synchronized formal derived types.
11750         Process_Full_View): Enchance the check done on the usage of "limited" by
11751         testing whether the private view is synchronized.
11752         Verify that a synchronized private view is completed by a protected or
11753         task type.
11754         (OK_For_Limited_Init_In_05): New function.
11755         (Analyze_Object_Declaration): Move check for limited types later,
11756         because OK_For_Limited_Init requires its argument to have been resolved.
11757         Add -gnatd.l --Use Ada 95 semantics for limited function returns,
11758         in order to alleviate the upward compatibility introduced by AI-318.
11759         (Constrain_Corresponding_Record): If the constraint is for a component
11760         subtype, mark the itype as frozen, to avoid out-of-scope references to
11761         discriminants in the back-end.
11762         (Collect_Implemented_Interfaces): Protect the recursive algorithm of
11763         this subprogram against wrong sources.
11764         (Get_Discr_Value, Is_Discriminant): Handle properly references to a
11765         discriminant of limited type completed with a protected type, when the
11766         discriminant is used to constrain a private component of the type, and
11767         expansion is disabled.
11768         (Find_Type_Of_Object): Do not treat a return subtype that is an
11769         anonymous subtype as a local_anonymous_type, because its accessibility
11770         level is the return type of the enclosing function.
11771         (Check_Initialization): In -gnatg mode, turn the error "cannot
11772         initialize entities of limited type" into a warning.
11773         (OK_For_Limited_Init): Return true for generated nodes, since it
11774         sometimes violates the legality rules.
11775         (Make_Incomplete_Declaration): If the type for which an incomplete
11776         declaration is created happens to be the currently visible entity,
11777         preserve the homonym chain when removing it from visibility.
11778         (Check_Conventions): Add support for Ada 2005 (AI-430): Conventions of
11779         inherited subprograms.
11780         (Access_Definition): If this is an access to function that is the return
11781         type of an access_to_function definition, context is a type declaration
11782         and the scope of the anonymous type is the current one.
11783         (Analyze_Subtype_Declaration): Add the defining identifier of a regular
11784         incomplete subtype to the set of private dependents of the original
11785         incomplete type.
11786         (Constrain_Discriminated_Type): Emit an error message whenever an
11787         incomplete subtype is being constrained.
11788         (Process_Incomplete_Dependents): Transform an incomplete subtype into a
11789         corresponding subtype of the full view of the original incomplete type.
11790         (Check_Incomplete): Properly detect invalid usage of incomplete types
11791         and subtypes.
11792
11793 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
11794
11795         * g-catiio.ads, g-catiio.adb (Value): New function.
11796         Given an input String, try and parse a valid Time value.
11797
11798 2006-10-31  Vincent Celier  <celier@adacore.com>
11799
11800         * g-debpoo.adb (Is_Valid): Correctly compute Offset using
11801         Integer_Address arithmetic, as in Set_Valid.
11802
11803 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
11804             Robert Dewar  <dewar@adacore.com>
11805
11806         * gnatcmd.adb (Process_Link): Use Osint.Executable_Name instead of
11807         handling executable extension manually and duplicating code.
11808
11809         * make.adb: Implement new -S switch
11810         (Gnatmake): Use new function Osint.Executable_Name instead
11811         of handling executable extension manually.
11812
11813         * prj-util.adb (Executable_Of): Make sure that if an Executable_Suffix
11814         is specified, the executable name ends with this suffix.
11815         Take advantage of Osint.Executable_Name instead of duplicating code.
11816
11817         * switch-m.adb: Recognize new gnatmake -S switch
11818
11819         * targparm.ads, targparm.adb (Executable_Extension_On_Target): New
11820         variable.
11821         (Get_Target_Parameters): Set Executable_Extension_On_Target if
11822         available.
11823
11824         * makeusg.adb: Add line for gnatmake -S switch
11825
11826 2006-10-31  Vincent Celier  <celier@adacore.com>
11827
11828         * gnatlink.adb (Gnatlink): If gcc is not called with -shared-libgcc,
11829         call it with -static-libgcc, as there are some platforms, such as
11830         Darwin, where one of these two switches is compulsory to link.
11831
11832 2006-10-31  Vincent Celier  <celier@adacore.com>
11833
11834         * gnatls.adb: Take into account GPR_PROJECT_PATH, when it is defined,
11835         instead of ADA_PROJECT_PATH, for the project path.
11836         (Gnatls): When displaying the project path directories, use host dir
11837         specs.
11838
11839         * prj-ext.adb (Prj.Ext elaboration): On VMS, only expand relative path
11840         names in the project path, as absolute paths may correspond to
11841         multi-valued VMS logical names.
11842
11843 2006-10-31  Vincent Celier  <celier@adacore.com>
11844
11845         * g-os_lib.ads, g-os_lib.adb (Locate_Exec_On_Path): Always return an
11846         absolute path name.
11847         (Locate_Regular_File): Ditto
11848         (Change_Dir): Remove, no longer used
11849         (Normalize_Pathname): Do not use Change_Dir to get the drive letter
11850         on Windows. Get it calling Get_Current_Dir.
11851         (OpenVMS): Remove imported boolean, no longer needed.
11852         (Normalize_Pathname)[VMS]: Do not resolve directory names.
11853         (Pid_To_Integer): New function to convert a Process_Id to  Integer
11854
11855 2006-10-31  Thomas Quinot  <quinot@adacore.com>
11856
11857         * g-socket.ads, g-socket.adb (Close_Selector): Once the signalling
11858         sockets are closed, reset the R_Sig_Socket and W_Sig_Socket components
11859         to No_Socket.
11860         (Selector_Type): Add default value of No_Socket for R_Sig_Socket and
11861         W_Sig_Socket.
11862
11863 2006-10-31  Robert Dewar  <dewar@adacore.com>
11864
11865         * g-speche.ads, g-speche.adb: Add special case to recognize misspelling
11866         initial letter o as a zero.
11867
11868 2006-10-31  Robert Dewar  <dewar@adacore.com>
11869
11870         * g-spipat.adb (S_To_PE): Remove incorrect use of 0 instead of Str'First
11871
11872 2006-10-31  Robert Dewar  <dewar@adacore.com>
11873
11874         * layout.adb (Layout_Record_Type): Deal with non-static subtypes of
11875         variant records
11876         (Layout_Variant_Record): Retrieve the discriminants from the entity
11877         rather than from the type definition, because in the case of a full
11878         type for a private type we need to take the discriminants from the
11879         partial view.
11880         (Layout_Component_List): When applying the Max operator to variants with
11881         a nonstatic size, check whether either operand is static and scale that
11882         operand from bits to storage units before applying Max.
11883         (Layout_Type): In VMS, if a C-convention access type has no explicit
11884         size clause (and does not inherit one in the case of a derived type),
11885         then the size is reset to 32 from 64.
11886
11887 2006-10-31  Vincent Celier  <celier@adacore.com>
11888
11889         * lib-load.adb (Load_Unit): Skip the test for a unit not found when
11890         its file has already been loaded, according to the unit being loaded,
11891         not to the current value of Multiple_Unit_Index.
11892
11893 2006-10-31  Thomas Quinot  <quinot@adacore.com>
11894             Eric Botcazou  <ebotcazou@adacore.com>
11895             Arnaud Charlet  <charlet@adacore.com>
11896
11897         * Makefile.in: Set EH mechanism to ZCX for FreeBSD.
11898         (NO_REORDER_ADAFLAGS): New var defined to -fno-toplevel-reorder if
11899         possible.
11900         (a-except.o): Pass it to the compiler.
11901         (gnatlib-shared-vms): Removed -nostartfiles switch in link step.
11902         (LIBGNAT_TARGET_PAIRS for Windows): Avoid the use of the specific
11903         a-calend-mingw.adb version.
11904
11905         * Makefile.rtl: Added s-dsaser.
11906         Add object entries for Ada.Calendar.[Arithmetic/Formatting/Time_Zones]
11907         (GNATRTL_TASKING_OBJS): Add Ada.Dispatching and
11908         Ada.Dispatching.Round_Robin.
11909         Added new unit Ada.Containers.Restricted_Bounded_Doubly_Linked_Lists
11910
11911         * Make-lang.in: Remove all references to gt-ada-decl.h.
11912         Add concatenation (s-strops/s-sopco3/s-sopco4/s-sopco5) to compiler
11913         sources.
11914         Add dependency on ada/s-restri.o for GNAT1 and GNATBIND objects.
11915         Update dependencies.
11916
11917         * system-freebsd-x86.ads: Make ZCX the default EH mechanism for FreeBSD
11918
11919 2006-10-31  Vincent Celier  <celier@adacore.com>
11920
11921         * mlib-utl.adb (Initialized): Remove, no longer used
11922         (Initialize): Remove, no longer used
11923         (Ar): If Ar_Exec is null, get the location of the archive builder and,
11924         if there is one, the archive indexer. Fail if the archive builder cannot
11925         be found.
11926         (Gcc): If the driver path is unknown, get it. Fail if the driver cannot
11927         be found.
11928
11929 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
11930
11931         * sem_ch10.ads, sem_ch10.adb (Check_Redundant_Withs,
11932         Process_Body_Clauses): If the context of a body includes a use clause
11933         for P.Q then a with_clause for P in the same body is not redundant,
11934         even if the spec also has a with_clause on P.
11935         Add missing continuation mark to error msg
11936         (Build_Limited_Views): A limited view of a type is tagged if its
11937         declaration includes a record extension.
11938         (Analyze_Proper_Body): Set Corresponding_Stub field in N_Subunit
11939         node, even if the subunit has errors. This avoids malfunction by
11940         Lib.Check_Same_Extended_Unit in the presence of syntax errors.
11941         (Analyze_Compilation_Unit): Add circuit to make sure we get proper
11942         generation of obsolescent messages for with statements (cannot do
11943         this too early, or we cannot implement avoiding the messages in the
11944         case of obsolescent units withing obsolescent units).
11945         (Install_Siblings): If the with_clause is on a remote descendant of
11946         an ancestor of the current compilation unit, find whether there is
11947         a sibling child unit that is immediately visible.
11948         (Remove_Private_With_Clauses): New procedure, invoked after completing
11949         the analysis of the private part of a nested package, to remove from
11950         visibility the private with_clauses of the enclosing package
11951         declaration.
11952         (Analyze_With_Clause): Remove Check_Obsolescent call, this checking is
11953         now centralized in Generate_Reference.
11954         (Install_Limited_Context_Clauses): Remove superfluous error
11955         message associated with unlimited view visible through use
11956         and renamings. In addition, at the point in which the error
11957         is reported, we add the backslash to the text of the error
11958         to ensure that it is reported as a single error message.
11959         Use new // insertion for some continuation messages
11960         (Expand_Limited_With_Clause): Use copy of name rather than name itself,
11961         to create implicit with_clause for parent unit mentioned in original
11962         limited_with_clause.
11963         (Install_Limited_With_Unit): Set entity of parent identifiers if the
11964         unit is a child unit. For ASIS queries.
11965         (Analyze_Subunit): If the subunit appears within a child unit, make all
11966         ancestor child units directly visible again.
11967
11968 2006-10-31  Robert Dewar  <dewar@adacore.com>
11969
11970         * par-ch10.adb (P_Context_Clause): Minor error message fix
11971
11972 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
11973             Javier Miranda  <miranda@adacore.com>
11974
11975         * par-ch12.adb: Grammar update and cleanup.
11976         (P_Formal_Type_Definition, P_Formal_Derived_Type_Definition): Add
11977         support for synchronized derived type definitions.
11978         Add the new actual Abstract_Present to every call to
11979         P_Interface_Type_Definition.
11980         (P_Formal_Object_Declarations): Update grammar rules. Handle parsing of
11981         a formal object declaration with an access definition or a subtype mark
11982         with a null exclusion.
11983         (P_Generic_Association): Handle association with box, and others_choice
11984         with box, to support Ada 2005 partially parametrized formal packages.
11985
11986 2006-10-31  Robert Dewar  <dewar@adacore.com>
11987             Javier Miranda  <miranda@adacore.com>
11988
11989         * par-ch3.adb (P_Range_Or_Subtype_Mark): Check for bad parentheses
11990         (P_Type_Declaration): Remove barrier against the reserved word "limited"
11991         after "abstract" to give support to the new syntax of AARM 3.4 (2/2).
11992         (P_Type_Declaration): Minor code cleanup. Add support for synchronized
11993         private extensions.
11994         (P_Type_Declaration): Add the new actual Abstract_Present to every call
11995         to P_Interface_Type_Definition.
11996         (P_Interface_Type_Definition): Addition of one formal to report an error
11997         if the reserved word abstract has been previously found.
11998         (P_Identifier_Declarations): Update grammar rules. Handle parsing of an
11999         object renaming declaration with an access definition or subtype mark
12000         with a possible null exclusion.
12001
12002         * par-ch9.adb: Minor error msg fix
12003
12004         * par-load.adb: Add missing continuation mark to error msg
12005
12006         * par-tchk.adb: (Wrong_Token): Code cleanup, use concatenation
12007
12008 2006-10-31  Vincent Celier  <celier@adacore.com>
12009
12010         * prj-dect.adb (Parse_Attribute_Declaration): Do not issue warning for
12011         unknown attribute in unknown package or in package that does not need
12012         to be checked.
12013         (Parse_Package_Declaration): Do not issue warning for unknown package in
12014         quiet output.
12015
12016 2006-10-31  Vincent Celier  <celier@adacore.com>
12017
12018         * prj-makr.adb (Packages_To_Check_By_Gnatname): New global constant
12019         (Make): Call Parse with Packages_To_Check_By_Gnatname for parameter
12020         Packages_To_Check.
12021
12022 2006-10-31  Vincent Celier  <celier@adacore.com>
12023
12024         * prj-nmsc.adb (Check_Ada_Name): For children of package A, G, I and S
12025         on VMS, change "__" to '.' before checking the name.
12026         (Record_Ada_Source): Always add the source file name in the list of
12027         of sources, even if it is not the first time, as it is for another
12028         source index.
12029         (Get_Unit): Replace both '_' (after 'a', 'g', 'i' or 's') with a single
12030         dot, instead of replacing only the first '_'.
12031
12032         * prj-part.adb (Parse): Convert project file path to canonical form
12033
12034         * prj-proc.adb (Recursive_Process): Make sure that, when a project is
12035         extended, the project id of the project extending it is recorded in its
12036         data, even when it has already been processed as an imported project.
12037
12038 2006-10-31  Robert Dewar  <dewar@adacore.com>
12039
12040         * repinfo.adb (List_Entities): Don't list entities from renaming
12041         declarations.
12042
12043 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
12044             Robert Dewar  <dewar@adacore.com>
12045
12046         * restrict.ads, restrict.adb (Restriction_Active): Now returns False if
12047         only a restriction warning is active for the given restriction. This is
12048         desirable because we do not want to modify code in the case where only
12049         a warning is set.
12050         (Set_Profile_Restrictions): Make sure that a Profile_Warnings never
12051         causes overriding of real restrictions.
12052         Take advantage of new No_Restrictions constant.
12053
12054         * raise.h: (__gnat_set_globals): Change profile.
12055
12056 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
12057
12058         * rtsfind.adb: Remove s-polint from comment as it exists no more.
12059
12060         * rtsfind.ads: 
12061         Move entity RE_Get_Active_Partition_Id to package System.DSA_Services.
12062         Move all the entities in obsolete package System.PolyORB_Interface to
12063         System.Partition_Interface.
12064         (RE_Storage_Size): New function in System.Tasking.
12065         (RE_Get_Ceiling): New entity.
12066         (RE_Set_Ceiling): New entity.
12067         (RO_PE_Get_Ceiling): New entity.
12068         (RO_RE_Set_Ceiling): New entity.
12069         (Inherit_CPP_DT): New entity
12070
12071 2006-10-31  Robert Dewar  <dewar@adacore.com>
12072
12073         * scng.adb (Scan, case of numeric literal): Better msg for identifier
12074         starting with a digit.
12075
12076 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
12077             Thomas Quinot  <quinot@adacore.com>
12078             Javier Miranda  <miranda@adacore.com>
12079             Gary Dismukes  <dismukes@adacore.com>
12080
12081         * sem_attr.ads, sem_attr.adb (Analyze_Access_Attribute): Diagnose
12082         properly an attempt to apply Unchecked_Access to a protected operation.
12083         (OK_Self_Reference): New subprogram to check the legality of an access
12084         attribute whose prefix is the type of an enclosing aggregate.
12085         Generalizes previous mechanism to handle attribute references nested
12086         arbitrarily deep within the aggregate.
12087         (Analyze_Access_Attribute): An access attribute whose prefix is a type
12088         can appear in an aggregate if this is a default-initialized aggregate
12089         for a self-referential type.
12090         (Resolve_Attribute, case Access): Ditto.
12091         Add support for new implementation defined attribute Stub_Type.
12092         (Eval_Attribute, case Attribute_Stub_Type): New case.
12093         (Analyze_Attribute, case Attribute_Stub_Type): New case.
12094         (Stream_Attribute_Available): Implement using new subprogram from
12095         sem_cat, Has_Stream_Attribute_Definition, instead of incorrect
12096         Has_Specified_Stream_Attribute flag.
12097         Disallow Storage_Size and Storage_Pool for access to subprogram
12098         (Resolve_Attribute, case 'Access et al): Take into account anonymous
12099         access types of return subtypes in extended return statements. Remove
12100         accessibility checks on anonymous access types when Unchecked_Access is
12101         used.
12102         (Analyze_Attribute): Add support for the use of 'Class to convert
12103         a class-wide interface to a tagged type.
12104         Add support for the attribute Priority.
12105         (Resolve_Attribute, case Attribute_Access): For Ada_05, add test for
12106         whether the designated type is discriminated with a constrained partial
12107         view and require static matching in that case.
12108         Add local variable Des_Btyp. The Designated_Type
12109         of an access to incomplete subtype is either its non-limited view if
12110         coming from a limited with or its etype if regular incomplete subtype.
12111
12112         * sem_cat.ads, sem_cat.adb (Validate_Remote_Access_To_Class_Wide_Type):
12113         Fix predicate to identify and allow cases of (expander-generated)
12114         references to tag of designated object of a RACW.
12115         (Validate_Static_Object_Name): In Ada 2005, a formal object is
12116         non-static, and therefore cannot appear as a primary in a preelaborable
12117         package.
12118         (Has_Stream_Attribute_Definition): New subprogram, abstracted from
12119         Has_Read_Write_Attributes.
12120         (Has_Read_Write_Attributes): Reimplement in termes of
12121         Has_Stream_Attribute_Definition.
12122         (Missing_Read_Write_Attributes): When checking component types in a
12123         record, unconditionally call Missing_Read_Write_Attributes recursively
12124         (remove guard checking for Is_Record_Type / Is_Access_Type).
12125
12126 2006-10-31  Robert Dewar  <dewar@adacore.com>
12127
12128         * sem_ch11.adb (Analyze_Handled_Statements): Move final test for
12129         useless assignments here and conditionalize it on absence of exception
12130         handlers.
12131         (Analyze_Exception_Handlers): Small code reorganization of error
12132         detection code, for new handling of formal packages.
12133
12134 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
12135             Hristian Kirtchev  <kirtchev@adacore.com>
12136
12137         * sem_ch12.ads, sem_ch12.adb (Save_References): If node is an operator
12138         that has been constant-folded, preserve information of original tree,
12139         for ASIS uses.
12140         (Analyze_Formal_Derived_Type): Set the limited present flag of the newly
12141         generated private extension declaration if the formal derived type is
12142         synchronized. Carry synchronized present over to the generated private
12143         extension.
12144         (Validate_Derived_Type_Instance): Ensure that the actual of a
12145         synchronized formal derived type is a synchronized tagged type.
12146         (Instantiate_Formal_Package): When creating the instantiation used to
12147         validate the actual package of a formal declared without a box, check
12148         whether the formal itself depends on a prior actual.
12149         (Instantiate_Formal_Subprogram): Create new entities for the defining
12150         identifiers of the formals in the renaming declaration, for ASIS use.
12151         (Instantiate_Formal_Subprogram, Instantiate_Formal_Type): When creating
12152         a renaming declaration or a subtype declaration for an actual in an
12153         instance, capture location information of declaration in generic, for
12154         ASIS use.
12155         (Instantiate_Formal_Package): Add comments on needed additional tests.
12156         AI-317 (partial parametrization) is fully implemented.
12157         (Validate_Private_Type_Instance): Add check for actual which
12158         must have preelaborable initialization
12159         Use new // insertion for some continuation messages
12160         (Analyze_Formal_Object_Declaration): Change usage of Expression to
12161         Default_Expression. Add type retrieval when the declaration has an
12162         access definition. Update premature usage of incomplete type check.
12163         (Check_Access_Definition): New subsidiary routine. Check whether the
12164         current compilation version is Ada 05 and the supplied node has an
12165         access definition.
12166         (Instantiate object): Alphabetize local variables. Handle the creation
12167         of new renaming declarations with respect to the kind of definition
12168         used - either an access definition or a subtype mark. Guard against
12169         unnecessary error message in the context of anonymous access types after
12170         they have been resolved. Add check for required null exclusion in a
12171         formal object declaration.
12172         (Switch_View): A private subtype of a non-private type needs to be
12173         switched (the base type can have been switched without its private
12174         dependents because of the last branch of Check_Private_View.
12175         (Check_Private_View): Do not recompute Base_Type (T), instead use cached
12176         value from BT.
12177         (Instantiate_Type): Emit an error message whenever a class-wide type of
12178         a tagged incomplete type is used as a generic actual.
12179         (Find_Actual_Type): Extend routine to handle a component type in a child
12180         unit that is imported from a formal package in a parent.
12181         (Validate_Derived_Type_Instance): Check that analyzed formal and actual
12182         agree on constrainedness, rather than checking against ultimate ancestor
12183         (Instantiate_Subprogram_Body): Create a cross-reference link to the
12184         generic body, for navigation purposes.
12185
12186 2006-10-31  Robert Dewar  <dewar@adacore.com>
12187             Thomas Quinot  <quinot@adacore.com>
12188
12189         * sem_ch13.adb: Storage pool cannot be given for access to subprogram
12190         type.
12191         (New_Stream_Subprogram): When processing an attribute definition clause
12192         for a stream-oriented subprogram, record an entity node occurring at
12193         the point of clause to use for checking the visibility of the clause,
12194         as defined by 8.3(23) as amended by AI-195.
12195         (New_Stream_Subprogram): New procedure, factoring behaviour from both
12196          New_Stream_Function and New_Stream_Procedure.
12197         (New_Stream_Function, New_Stream_Procedure): Removed.
12198         (Analyze_Attribute_Definition_Clause, case Address): Check new
12199         Alignment_Check check
12200
12201 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
12202             Javier Miranda  <miranda@adacore.com>
12203             Robert Dewar  <dewar@adacore.com>
12204
12205         * sem_ch4.adb (Try_Primitive_Operation): Code cleanup to ensure that we
12206         generate the same errors compiling under -gnatc.
12207         (Try_Object_Operation): If no candidate interpretation succeeds, but
12208         there is at least one primitive operation with the right name, report
12209         error in call rather than on a malformed selected component.
12210         (Analyze_Selected_Component): If the prefix is an incomplete type from
12211         a limited view, and the full view is available, use the full view to
12212         determine whether this is a prefixed call to a primitive operation.
12213         (Operator_Check): Verify that a candidate interpretation is a binary
12214         operation before checking the type of its second formal.
12215         (Analyze_Call): Add additional warnings for function call contexts not
12216         yet supported.
12217         (Analyze_Allocator): Move the check for "initialization not allowed for
12218         limited types" after analyzing the expression. This is necessary,
12219         because OK_For_Limited_Init looks at the structure of the expression.
12220         Before analysis, we don't necessarily know what sort of expression it
12221         is. For example, we don't know whether F(X) is a function call or an
12222         indexed component; the former is legal in Ada 2005; the latter is not.
12223         (Analyze_Allocator): Correct code for AI-287 -- extension aggregates
12224         were missing. We also didn't handle qualified expressions. Now also
12225         allow function calls. Use new common routine OK_For_Limited_Init.
12226         (Analyze_Type_Conversion): Do not perform some legality checks in an
12227         instance, because the error message will be redundant or spurious.
12228         (Analyze_Overloaded_Selected_Component): Do not do style check when
12229         setting an entity, since we do not know it is the right entity yet.
12230         (Analyze_Selected_Component): Move Generate_Reference call to Sem_Res
12231         (Analyze_Overloaded_Selected_Component): Same change
12232         (Analyze_Selected_Component): Remove unnecessary prefix type retrieval
12233         since regular incomplete subtypes are transformed into corresponding
12234         subtypes of their full views.
12235         (Complete_Object_Operation): Treat name of transformed subprogram call
12236         as coming from source, for browsing purposes.
12237         (Try_Primitive_Operation): If formal is an access parameter, compare
12238         with base type of object to determine whether it is a primitive
12239         operation.
12240         (Operator_Check): If no interpretation of the operator matches, check
12241         whether a use clause on any candidate might make the operation legal.
12242         (Try_Class_Wide_Operation): Check whether the first parameter is an
12243         access type whose designated type is class-wide.
12244
12245 2006-10-31  Robert Dewar  <dewar@adacore.com>
12246             Ed Schonberg  <schonberg@adacore.com>
12247             Gary Dismukes  <dismukes@adacore.com>
12248
12249         * sem_ch5.ads, sem_ch5.adb (Analyze_Loop_Statement): Add circuit to
12250         warn on infinite loops.
12251         Add \\ to some continuation messages
12252         (Analyze_Assignment_Statement): Call Warn_On_Useless_Assignment
12253         (Process_Bounds): If the bounds are integer literals that result from
12254         constant-folding, and they carry a user-defined type, preserve that type
12255         rather than treating this as an integer range.
12256         (Analyze_Exit_Statement): Test for E_Return_Statement in legality check.
12257         (Analyze_Goto_Statement): Test for E_Return_Stateemnt in legality check.
12258         (Analyze_Assignment_Statement): Add call to Check_Elab_Assign for
12259         left hand side of assignment.
12260         (Analyze_Assignment): Add suport to manage assigments to the attribute
12261         priority of a protected object.
12262         (Check_Possible_Current_Value_Condition): Allow fully qualified names
12263         not just identifiers.
12264         (Check_Possible_Current_Value_Condition): Acquire left operand of AND
12265         or AND THEN for possible tracking.
12266         (Analyze_Iteration_Scheme): Check for setting Current_Value for the
12267         case of while loops so we can track values in the loop body.
12268
12269 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
12270             Hristian Kirtchev  <kirtchev@adacore.com>
12271             Bob Duff  <duff@adacore.com>
12272
12273         * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Declaration): A null
12274         procedure cannot be a protected operation (it is a basic_declaration,
12275         not a subprogram_declaration).
12276         (Check_Overriding_Indicator): Rename formal Does_Override to Overridden_
12277         Subp. Add logic for entry processing.
12278         (Check_Synchronized_Overriding): New procedure in New_Overloaded_Entity.
12279         Determine whether an entry or subprogram of a protected or task type
12280         override an inherited primitive of an implemented interface.
12281         (New_Overloaded_Entity): Add calls to Check_Synchronized_Overriding.
12282         Update the actual used in calls to Check_Overriding_Indicator.
12283         (Analyze_Generic_Subprogram_Body): If the subprogram is a child unit,
12284         generate the proper reference to the parent unit, for cross-reference.
12285         (Analyze_Subprogram_Declaration): Protect Is_Controlling_Formal with
12286         Is_Formal.
12287         Add -gnatd.l --Use Ada 95 semantics for limited function returns,
12288         (Add_Extra_Formal): Revise procedure to allow passing in associated
12289         entity, scope, and name suffix, and handle setting of the new
12290         Extra_Formals field.
12291         (Create_Extra_Formals): Change existing calls to Add_Extra_Formal to
12292         pass new parameters. Add support for adding the new extra access formal
12293         for functions whose calls are treated as build-in-place.
12294         (Analyze_A_Return_Statement): Correct casing in error message.
12295         Move Pop_Scope to after Analyze_Function_Return, because an extended
12296         return statement really is a full-fledged scope. Otherwise, visibility
12297         doesn't work right. Correct use of "\" for continuation messages.
12298         (Analyze_Function_Return): Call Analyze on the Obj_Decl, rather than
12299         evilly trying to call Analyze_Object_Declaration directly. Otherwise,
12300         the node doesn't get properly marked as analyzed.
12301         (Analyze_Subprogram_Body): If subprogram is a function that returns
12302         an anonymous access type that denotes a task, build a Master Entity
12303         for it.
12304         (Analyze_Return_Type): Add call to Null_Exclusion_Static_Checks. Verify
12305         proper usage of null exclusion in a result definition.
12306         (Process_Formals): Code cleanup and new error message.
12307         (Process_Formals): Detect incorrect application of null exclusion to
12308         non-access types.
12309         (Conforming_Types): Handle conformance between [sub]types and itypes
12310          generated for entities that have null exclusions applied to them.
12311         (Maybe_Primitive_Operation): Add an additional type retrieval when the
12312          base type is an access subtype. This case arrises with null exclusions.
12313         (New_Overloaded_Entity): Do not remove the overriden entity from the
12314         homonym chain if it corresponds with an abstract interface primitive.
12315         (Process_Formals): Replace membership test agains Incomplete_Kind with a
12316         call to the synthesized predicate Is_Incomplete_Type.
12317         (Analyze_Subprogram_Body): Check wrong placement of abstract interface
12318         primitives.
12319         (Analyze_Subprogram_Declaration): Check that abstract interface
12320         primitives are abstract or null.
12321         (Analyze_Subprogram_Specification): Remove previous check for abstract
12322         interfaces because it was not complete.
12323         (Has_Interface_Formals): Removed.
12324
12325 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
12326             Javier Miranda  <miranda@adacore.com>
12327
12328         * sem_ch7.adb (Check_Anonymous_Access_Types): New procedure, subsidiary
12329         of Analyze_Package_Body, to create Itype references for anonymous
12330         access types created in the package declaration, whose designated types
12331         may have only a limited view.
12332         (Analyze_Package_Specification): For the private part of a nested
12333         package, install private_with_clauses of enclosing compilation unit if
12334         we are in its visible part.
12335         (Declare_Inherited_Private_Subprograms): Complete barrier
12336         to ensure that the primitive operation has an alias to some parent
12337         primitive. This is now required because, after the changes done for the
12338         implementation of abstract interfaces, the contents of the list of
12339         primitives has entities whose alias attribute references entities of
12340         such list of primitives.
12341         (Analyze_Package_Specification): Simplify code that handles parent units
12342         of instances and formal packages.
12343         (Uninstall_Declarations): Check the convention consistency among
12344         primitive overriding operations of a tagged record type.
12345
12346 2006-10-31  Robert Dewar  <dewar@adacore.com>
12347             Hristian Kirtchev  <kirtchev@adacore.com>
12348             Javier Miranda  <miranda@adacore.com>
12349             Ed Schonberg  <schonberg@adacore.com>
12350
12351         * sem_ch8.adb: Minor error msg rewording
12352         (Undefined): When checking for misspellings, invert arguments (to get
12353         expected and found set right)
12354         (Analyze_Subprogram_Renaming): Propagate Is_Pure, Is_Preelaborated
12355         (Analyze_Generic_Renaming): Same fix
12356         (Use_One_Package): Do not take into account the internal entities of
12357         abstract interfaces during the analysis of entities that are marked
12358         as potentially use-visible.
12359         (Find_Type): Handle the case of an attribute reference for
12360         implementation defined attribute Stub_Type (simply let the analysis of
12361         the attribute reference rewrite it).
12362         (Use_One_Type, End_Use_Type): Reject a reference to a limited view of a
12363         type that appears in a Use_Type clause.
12364         (Analyze_Object_Renaming): Add support for renaming of the Priority
12365         attribute.
12366         (Find_Type): In Ada 2005, a task type can be used within its own body,
12367         when it appears in an access definition.
12368         (Analyze_Object_Renaming): Remove warning on null_exclusion.
12369         (Analyze_Object_Renaming): Introduce checks for required null exclusion
12370          in a formal object declaration or in a subtype declaration.
12371         (Analyze_Subprogram_Renaming): Add call to Check_Null_Exclusion.
12372         (Check_Null_Exclusion): New local routine to
12373         Analyze_Subprogram_Renaming. Check whether the formals and return
12374         profile of a renamed subprogram have required null exclusions when
12375         their counterparts of the renaming already impose them.
12376         (In_Generic_Scope): New local routine to Analyze_Object_Renaming.
12377         Determine whether an entity is inside a generic scope.
12378         (In_Open_Scope): First pass of documentation update.
12379         (Find_Expanded_Name): Add support for shadow entities associated with
12380         limited withed packages. This is required to handle nested packages.
12381         (Analyze_Package_Renaming): Remove the restriction imposed by AI-217
12382         that makes a renaming of a limited withed package illegal.
12383
12384 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
12385             Ed Schonberg  <schonberg@adacore.com>
12386
12387         * sem_ch9.adb (Analyze_Protected_Definition): Remove call to
12388         Check_Overriding_Indicator.
12389         (Analyze_Task_Definition): Ditto.
12390         (Analyze_Protected_Type, Analyze_Task_Type): Code cleanup.
12391         (Check_Overriding_Indicator): To find overridden interface operation,
12392         examine only homonyms that have an explicit subprogram declaration, not
12393         inherited operations created by an unrelated type derivation.
12394         (Check_Overriding_Indicator): When checking for the presence of "null"
12395         in a procedure, ensure that the queried node is a procedure
12396         specification.
12397         (Matches_Prefixed_View_Profile): Add mechanism to retrieve the parameter
12398         type when the formal is an access to variable.
12399         (Analyze_Protected_Type): Add check for Preelaborable_Initialization
12400         (Analyze_Task_Type): Same addition
12401         (Analyze_Entry_Declaration): Call Generate_Reference_To_Formals, to
12402         provide navigation capabilities for entries.
12403
12404 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
12405             Ed Schonberg  <schonberg@adacore.com>
12406             Javier Miranda  <miranda@adacore.com>
12407             Gary Dismukes  <dismukes@adacore.com>
12408
12409         * sem_disp.adb (Check_Dispatching_Operation): Do not flag subprograms
12410         inherited from an interface ancestor by another interface in the
12411         context of an instance as 'late'.
12412         (Is_Tag_Indeterminate, Propagate_Tag): Handle properly the dereference
12413         of a call to a function that dispatches on access result.
12414         (Check_Dispatching_Operation): In case of late overriding of a primitive
12415         that covers abstract interface subprograms we register it in all the
12416         secondary dispatch tables associated with abstract interfaces.
12417         (Check_Dispatching_Call): Add check that a dispatching call is not made
12418         to a function with a controlling result of a limited type. This is a
12419         current implementation restriction.
12420         (Check_Controlling_Formal): Remove bogus checks for E.2.2(14).
12421         (Check_Dispatching_Operation): Do no emit a warning if the controlling
12422         argument is an interface type that is a generic formal.
12423         (Is_Interface_Subprogram): Removed.
12424         (Check_Dispatching_Operation): If the subprogram is not a dispatching
12425         operation, check the formals to handle the case in which it is
12426         associated with an abstract interface type.
12427
12428 2006-10-31  Robert Dewar  <dewar@adacore.com>
12429             Ed Schonberg  <schonberg@adacore.com>
12430
12431         * sem_elab.ads, sem_elab.adb (Check_Elab_Assign): New procedure
12432         Add new calls to this procedure during traversal
12433         (Activate_Elaborate_All_Desirable): Do not set elaboration flag on
12434         another unit if expansion is disabled.
12435
12436 2006-10-31  Robert Dewar  <dewar@adacore.com>
12437
12438         * sem_eval.adb (Compile_Time_Compare): Make use of information from
12439         Current_Value in the conditional case, to evaluate additional
12440         comparisons at compile time.
12441
12442 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
12443             Hristian Kirtchev  <kirtchev@adacore.com>
12444             Javier Miranda  <miranda@adacore.com>
12445
12446         * sem_type.adb (Add_One_Interp): If node is an indirect call, preserve
12447         subprogram type to provide better diagnostics in case of ambiguity.
12448         (Covers): Handle coverage of formal and actual anonymous access types in
12449         the context of generic instantiation.
12450         (Covers/Interface_Present_In_Ancestors): Use the base type to manage
12451         abstract interface types; this is required to handle concurrent types
12452         with discriminants and abstract interface types.
12453         (Covers): Include type coverage of both regular incomplete subtypes and
12454         incomplete subtypes of incomplete type visibles through a limited with
12455         clause.
12456
12457 2006-10-31  Robert Dewar  <dewar@adacore.com>
12458             Hristian Kirtchev  <kirtchev@adacore.com>
12459             Ed Schonberg  <schonberg@adacore.com>
12460
12461         * sem_util.ads, sem_util.adb (Enter_Name): Exclude -gnatwh warning
12462         messages for entities in packages which are not used.
12463         (Collect_Synchronized_Interfaces): New procedure.
12464         (Overrides_Synchronized_Primitive): New function.
12465         (Denotes_Discriminant): Extend predicate to apply to task types.
12466         Add missing continuation marks in error msgs
12467         (Unqualify): New function for removing zero or more levels of
12468         qualification from an expression. There are numerous places where this
12469         ought to be used, but we currently only deal properly with zero or one
12470         level.
12471         (In_Instance); The analysis of the actuals in the instantiation of a
12472         child unit is not within an instantiation, even though the parent
12473         instance is on the scope stack.
12474         (Safe_To_Capture_Value): Exclude the case of variables that are
12475         renamings.
12476         (Check_Obsolescent): Removed
12477         (Is_Aliased_View): A reference to an enclosing instance in an aggregate
12478         is an aliased view, even when rewritten as a reference to the target
12479         object in an assignment.
12480         (Get_Subprogram_Entity): New function
12481         (Known_To_Be_Assigned): New function
12482         (Type_Access_Level): Compute properly the access level of a return
12483         subtype that is an anonymous access type.
12484         (Explain_Limited_Type): Correct use of "\" for continuation messages.
12485         (Is_Transfer): The new extended_return_statement causes a transfer of
12486         control.
12487         (Has_Preelaborable_Initialization): New function
12488         (Has_Null_Exclusion): New function. Given a node N, determine whether it
12489         has a null exclusion depending on its Nkind.
12490         Change Is_Lvalue to May_Be_Lvalue
12491         (May_Be_Lvalue): Extensive additional code to deal with subprogram
12492         arguments (IN parameters are not Lvalues, IN OUT parameters are).
12493         (Safe_To_Capture_Value): Extend functionality so it can be used for
12494         the current value condition case.
12495         (Has_Compatible_Alignment): New function
12496         (Is_Dependent_Component_Of_Mutable_Object): Revise the tests for mutable
12497         objects to handle the Ada 2005 case, where aliasedness no longer implies
12498         that the object is constrained. In particular, for dereferenced names,
12499         the designated object must be assumed to be unconstrained.
12500         (Kill_Current_Values): Properly deal with the case where we encounter
12501         a loop in the scope chain.
12502         (Safe_To_Capture_Value): Do not let a loop stop us from capturing
12503         a value.
12504         (Compile_Time_Constraint_Error): Improve error message in error case
12505
12506         * exp_ch13.adb (Expand_N_Freeze_Entity): Remove the freezing node
12507         associated with entities of abstract interface primitives.
12508         Call Apply_Address_Clause_Check instead of Apply_Alignment_Check
12509
12510 2006-10-31  Robert Dewar  <dewar@adacore.com>
12511
12512         * s-osinte-tru64.adb: 
12513         Mark Asm statements Volatile to prevent warnings (seems a
12514         reasonable change anyway)
12515         Fixes new warnings
12516
12517         * s-mastop-irix.adb: Add Volatile to Asm statements
12518         Suppresses warning, and seems appropriate in any case
12519
12520         * s-osinte-vms.adb: Add Volatile to Asm statement
12521
12522         * s-vaflop-vms-alpha.adb: Add Volatile to Asm statements
12523
12524         * exp_code.ads, exp_code.adb (Asm_Input_Value): Note that Error can be
12525         returned.
12526         Add call to Check_Code_Statement
12527
12528 2006-10-31  Robert Dewar  <dewar@adacore.com>
12529             Ed Schonberg  <schonberg@adacore.com>
12530             Bob Duff  <duff@adacore.com>
12531
12532         * sinfo.ads, sinfo.adb (Set_Synchronized_Present,
12533         Synchronized_Present): Add Formal_Derived_Type_Definition and
12534         Private_Extension_Declaration to the list of assertions.
12535         (Is_Entry_Barrier_Function): New flag
12536         (Has_Self_Reference): New flag on aggregates, to indicate that they
12537         contain a reference to the enclosing type, inserted through a default
12538         initialization.
12539         (Next_Rep_Item): Move from Node4 to Node5.
12540         (Entity): Add this field for N_Attribute_Definition_Clause.
12541         (Comes_From_Extended_Return_Statement): New flag on N_Return_Statement
12542         (N_Return_Object_Declaration): Remove this node kind. We now use
12543         N_Object_Declaration instead.
12544         (Actual_Designated_Subtype): Move to a different place to make room in
12545         N_Extended_Return_Statement.
12546         (Procedure_To_Call): Move to a different place to make room in
12547         N_Extended_Return_Statement.
12548         (Return_Type): Removed this field to make room in return statements
12549         (both kinds).
12550         (Return_Statement_Entity): New field in return statements, in part to
12551         replace Return_Type, and in part to support the fact that return
12552         statements are now pushed on the scope stack during semantic analysis.
12553         (Return_Object_Declarations): New field to support extended return
12554         statements.
12555         (N_Extended_Return_Statement): New node for extended_return_statement
12556         nonterminal.
12557         (N_Return_Object_Declaration): New node for part of
12558         extended_return_statement nonterminal. Needed because all the necessary
12559         fields won't fit in N_Extended_Return_Statement.
12560         Generic_associations now carry the Box_Present flag, to indicate a
12561         default for an actual in a partially parametrized formal package.
12562
12563         * snames.h, snames.ads, snames.adb: Add definition for Validity_Check
12564         (Preset_Names): Add entries for Priority_Specific_Dispatching pragma
12565         and for the new predefined dispatching policies: EDF_Across_Priorities,
12566         Non_Preemptive_Within_Priorities, and Round_Robin_Within_Priorities.
12567         Introduce new name Stub_Type for implementation defined attribute.
12568         Add pragma Preelaborable_Initialization
12569         Add entry for Priority attribute.
12570         Add Pragma_Wide_Character_Encoding
12571         (Get_Convention_Name): Given a convention id, this function returns the
12572         corresponding name id from the names table.
12573
12574 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
12575             Robert Dewar  <dewar@adacore.com>
12576             Bob Duff  <duff@adacore.com>
12577
12578         * sprint.adb (Sprint_Node_Actual, case Parameter_Specification): Do not
12579         print null exclusion twice in the case of an access definition,
12580         Implement new -gnatL switch
12581         Remove N_Return_Object_Declaration. We now use
12582         N_Object_Declaration instead. Implement the case for
12583         N_Extended_Return_Statement. Alphabetize the cases.
12584         Add cases for new nodes N_Extended_Return_Statement and
12585         N_Return_Object_Declaration. The code is not yet written.
12586         Update the output for N_Formal_Object_Declaration
12587         and N_Object_Renaming_Declaration.
12588         (Write_Itype): Account for the case of a modular integer subtype whose
12589         base type is private.
12590
12591 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
12592
12593         * s-restri.ads, s-restri.adb: Mark this package as Preelaborate.
12594         Remove elaboration code, now done in the binder.
12595
12596         * s-rident.ads: Make this unit Preelaborate.
12597         (No_Restrictions): New constant used to clean up code and follow
12598         preelaborate constraints.
12599
12600         * s-stalib.adb: 
12601         Add System.Restrictions dependence, referenced directly from the
12602         binder generated file.
12603
12604 2006-10-31  Gary Dismukes  <dismukes@adacore.com>
12605
12606         * s-scaval.adb (Initialize): Add new Boolean flag AFloat that is set
12607         True when AAMP extended floating-point is in use (48-bit). Change type
12608         ByteLF to ByteLLF, add new array type ByteLF and condition the size of
12609         the two byte array types on AFloat. Change type of IV_Ilf overlay
12610         variable from Byte8 to ByteLF. Add appropriate initializations of
12611         floating-point overlays for AAMP cases.
12612
12613 2006-10-31  Javier Miranda  <miranda@adacore.com>
12614
12615         * s-tpoben.ads, s-tpoben.adb, s-taprob.ads, s-taprob.adb
12616         (Get_Ceiling): New subprogram that returns
12617         the ceiling priority of the protected object.
12618         (Set_Ceiling): New subprogram that sets the new ceiling priority of
12619         the protected object.
12620
12621         * s-tarest.adb: (Create_Restricted_Task): Fix potential CE.
12622
12623         * s-taskin.ads, s-taskin.adb: (Storage_Size): New function.
12624
12625 2006-10-31  Jose Ruiz  <ruiz@adacore.com>
12626
12627         * s-tpobop.adb (Requeue_Call): Introduce a dispatching point when
12628         requeuing to the same protected object to give higher priority tasks
12629         the opportunity to execute.
12630
12631 2006-10-31  Robert Dewar  <dewar@adacore.com>
12632
12633         * widechar.adb (Is_Start_Of_Wide_Char): In case of brackets encoding,
12634         add more precise check for the character sequence that follows '[' to
12635         avoid possible confusion in case if '[' is the last character of a
12636         string literals.
12637         (Scan_Wide): Always allow brackets encoding
12638
12639 2006-10-31  Olivier Hainque  <hainque@adacore.com>
12640
12641         * s-stchop.ads: make this unit preelaborate. This is desirable in
12642         general and made mandatory by the use of this unit by s-taprop which
12643         is itself preelaborate.
12644
12645         * s-stchop-vxworks.adb (Set_Stack_Info, Task_Descriptor type): Add
12646         Td_Events component.
12647
12648 2006-10-31  Vincent Celier  <celier@adacore.com>
12649
12650         * a-dirval-vms.adb (Invalid_Character): Specify that digits are allowed
12651         in file names.
12652
12653 2006-10-31  Vincent Celier  <celier@adacore.com>
12654
12655         * a-direct.ads, a-direct.adb (Search): New procedure in Ada 2005
12656
12657 2006-10-31  Vincent Celier  <celier@adacore.com>
12658
12659         * makegpr.adb (Check_Compilation_Needed): Take into account path names
12660         with spaces.
12661         (Check_Compilation_Needed): When checking a C or C++ source, do not
12662         resolve symbolic links.
12663         (Display_Command): New Boolean parameter Ellipse, defaulted to False.
12664         When not in verbose mode and Ellipse is True, display "..." for the
12665         first argument with Display set to False.
12666         (Build_Global_Archive): Always set Display True for the first object
12667         file. Call Display_Command with Ellipse set to True.
12668
12669 2006-10-31  Matt Heaney  <heaney@adacore.com>
12670
12671         * a-crbtgo.ads: Commented each subprogram
12672
12673         * a-crbtgo.adb: Added reference to book from which algorithms were
12674         adapted.
12675
12676         * a-crbtgk.ads, a-crbtgk.adb (Generic_Insert_Post): pass flag to
12677         indicate which child.
12678         (Generic_Conditional_Insert): changed parameter name from "Success" to
12679         "Inserted".
12680         (Generic_Unconditional_Insert_With_Hint): improved algorithm
12681
12682         * a-coorse.adb (Replace_Element): changed parameter name in call to
12683         conditional insert operation.
12684
12685         * a-convec.adb, a-coinve.adb (Insert): removed obsolete comment
12686
12687         * a-cohama.adb (Iterate): manipulate busy-bit here, instead of in
12688         Generic_Iteration
12689
12690         * a-ciorse.adb (Replace_Element): changed parameter name in call to
12691         conditional insert operation.
12692
12693         * a-cihama.adb (Iterate): manipulate busy-bit here, instead of in
12694         Generic_Iteration.
12695
12696         * a-cidlli.ads, a-cidlli.adb (Splice): Position param is now mode in
12697         instead of mode inout.
12698
12699         * a-chtgop.adb (Adjust): modified comments to reflect current AI-302
12700         draft
12701         (Generic_Read): preserve existing buckets array if possible
12702         (Generic_Write): don't send buckets array length anymore
12703
12704         * a-cdlili.ads, a-cdlili.adb (Splice): Position param is now mode in
12705         instead of mode inout.
12706
12707         * a-cihase.adb (Difference): iterate over smaller of Tgt and Src sets
12708         (Iterate): manipulate busy-bit here, instead of in Generic_Iteration
12709
12710         * a-cohase.adb (Difference): iterate over smaller of Tgt and Src sets
12711         (Iterate): manipulate busy-bit here, instead of in Generic_Iteration
12712         (Replace_Element): local operation is now an instantiation
12713
12714         * a-chtgke.ads, a-chtgke.adb (Generic_Conditional_Insert): manually
12715         check current length.
12716         (Generic_Replace_Element): new operation
12717
12718 2006-10-31  Doug Rupp  <rupp@adacore.com>
12719
12720         * g-trasym-vms-alpha.adb: Dummy_User_Act_Proc: New function.
12721         Call TBK$SYMBOLIZE without omitting parameters.
12722
12723 2006-10-31  Vincent Celier  <celier@adacore.com>
12724
12725         * symbols-processing-vms-ia64.adb,
12726         symbols-processing-vms-alpha.adb (Process): Do not include symbols
12727         that come from generic instantiations in bodies.
12728
12729 2006-10-31  Pat Rogers  <rogers@adacore.com>
12730
12731         * a-rttiev.ads, a-rttiev.adb: 
12732         This is a significant redesign primarily for the sake of automatic
12733         timer task termination but also to fix a design flaw.
12734         Therefore we are now using an RTS lock, instead of a protected
12735         object, to provide mutual exclusion to the queue of pending events
12736         and the type Timing_Event is no longer a protected type.
12737
12738 2006-10-31  Robert Dewar  <dewar@adacore.com>
12739             Cyrille Comar  <comar@adacore.com>
12740             Ben Brosgol  <brosgol@adacore.com>
12741
12742         * debug.adb:  Update flags documentation
12743
12744         * gnat_ugn.texi: Add documentation for new -gnatwq switch
12745         Clean up documentation for several other warning switches
12746         Clarify how task stack size can be specified with various
12747         versions of Windows.
12748         Add note that -gnatVo includes ranges including loops
12749         Add documentation for -gnatL switch
12750         Add note on elaboration warning for initializing variables
12751         Add documentation for new -gnatwt warning switch
12752         Document new form of pragma Warnings (On|Off, string)
12753         Add comment on use of pragma Warnings to control warnings
12754         Add documentation for -gnatjnn switch
12755         Modify section on interfacing with C for VMS 64-bit.
12756         Add doc for -gnatVe/E
12757         Add documentation of new warning flags -gnatww/-gnatwW
12758         Add warnings about address clause overlays to list of warnings
12759         (Exception Handling Control): Document that the option --RTS must be
12760         used consistently for gcc and gnatbind.
12761         Clarify that inlining is not always possible
12762         Update documentation on pragma Unchecked_Union.
12763
12764         * gnat_rm.texi: 
12765         Add documentation for new extended version of pragma Obsolescent
12766         Add documentation for implementation defined attribute 'Stub_Type.
12767         Add note on use of Volatile in asm statements
12768         Add documentation on use of pragma Unreferenced in context clause
12769         Document new form of pragma Warnings (On|Off, pattern)
12770         Document pragma Wide_Character_Encoding
12771         Add note that pragma Restrictions (No_Elaboration_Code) is only fully
12772         enforced if code generation is active.
12773         Add section on pragma Suppress to document GNAT specific check
12774         Alignment_Check
12775         Clarify difference between No_Dispatching_Calls & No_Dispatch.
12776         Add documentation for pragma Restrictions (No_Elaboration_Code)
12777
12778         * gnat-style.texi: 
12779         Add comments on layout of subprogram local variables in the
12780         presence of nested subprograms.
12781
12782         * ug_words: Resync.
12783
12784         * elists.ads: Minor reformatting
12785         Node returns Node_Or_Entity_Id (doc change only)
12786
12787         * xgnatugn.adb: Replace ACADEMICEDITION with GPLEDITION
12788
12789         * g-arrspl.ads (Create): Update comments.
12790
12791         * sem.ads: Add details on the handling of the scope stack.
12792
12793         * usage.adb: Update documentation.
12794
12795         * validsw.ads, validsw.adb: 
12796         Add definition of Validity_Check_Components and implement -gnatVe/E
12797
12798         * vms_data.ads: Add missing VMS qualifiers.
12799
12800         * s-addope.ads: Add documentation on overflow and divide by zero
12801
12802 2006-10-31  Robert Dewar  <dewar@adacore.com>
12803             Thomas Quinot  <quinot@adacore.com>
12804             Arnaud Charlet  <charlet@adacore.com>
12805
12806         * fmap.adb: Put routines in alpha order
12807
12808         * g-boumai.ads: Remove redundant 'in' keywords
12809
12810         * g-cgi.adb: Minor reformatting
12811
12812         * g-cgi.ads: Remove redundant 'in' keywords
12813
12814         * get_targ.adb: Put routines in alpha order
12815
12816         * prj-attr.ads: Minor reformatting
12817
12818         * s-atacco.ads: Minor reformatting
12819
12820         * scn.adb: Put routines in alpha order
12821
12822         * sinput-l.adb: Minor comment fix
12823
12824         * sinput-p.adb: Minor comment fix
12825
12826         * s-maccod.ads: Minor reformatting
12827
12828         * s-memory.adb: Minor reformatting
12829
12830         * s-htable.adb: Fix typo in comment.
12831
12832         * s-secsta.adb: Minor comment update.
12833
12834         * s-soflin.adb: Minor reformatting
12835
12836         * s-stoele.ads: 
12837         Add comment about odd qualification in Storage_Offset declaration
12838
12839         * s-strxdr.adb: 
12840         Remove unnecessary 'in' keywords for formal parameters.
12841
12842         * treeprs.adt: Minor reformatting
12843
12844         * urealp.adb: Put routines in alpha order
12845
12846         * s-wchcon.ads, s-wchcon.adb (Get_WC_Encoding_Method): New version
12847         taking string.
12848
12849         * s-asthan-vms-alpha.adb: Remove redundant 'in' keywords
12850
12851         * g-trasym-vms-ia64.adb: Remove redundant 'in' keywords
12852
12853         * env.c (__gnat_unsetenv): Unsetenv is unavailable on LynxOS, so
12854         workaround as on other platforms.
12855
12856         * g-eacodu-vms.adb: Remove redundant 'in' keywords
12857         * g-expect-vms.adb: Remove redundant 'in' keywords
12858
12859         * gnatdll.adb (Add_Files_From_List): Handle Name_Error and report a
12860         clear error message if the list-of-files file cannot be opened.
12861
12862         * g-thread.adb (Unregister_Thread_Id): Add use type Thread_Id so the
12863         equality operator is always visible.
12864
12865         * lang.opt: Woverlength-strings: New option.
12866
12867         * nmake.adt: 
12868         Update copyright, since nmake.ads and nmake.adb have changed.
12869
12870         * osint-b.ads, osint-b.adb (Time_From_Last_Bind): removed function .
12871         (Binder_Output_Time_Stamps_Set): removed.
12872         (Old_Binder_Output_Time_Stamp): idem.
12873         (New_Binder_Output_Time_Stamp): idem.
12874         (Recording_Time_From_Last_Bind): idem.
12875         (Recording_Time_From_Last_Bind): Make constant.
12876
12877         * output.ads, output.adb (Write_Str): Allow LF characters
12878         (Write_Spaces): New procedure
12879
12880         * prepcomp.adb (Preproc_Data_Table): Change Increment from 5% to 100%
12881
12882         * inline.adb: Minor reformatting
12883
12884         * s-asthan-vms-alpha.adb: Remove redundant 'in' keywords
12885
12886         * s-mastop-vms.adb: Remove redundant 'in' keywords
12887
12888         * s-osprim-vms.adb: Remove redundant 'in' keywords
12889
12890         * s-trafor-default.adb: Remove redundant 'in' keywords
12891
12892         * 9drpc.adb: Remove redundant 'in' keywords
12893
12894         * s-osinte-mingw.ads: Minor reformatting
12895
12896         * s-inmaop-posix.adb: Minor reformatting
12897
12898         * a-direio.ads: Remove quotes from Compile_Time_Warning message
12899
12900         * a-exexda.adb: Minor code reorganization
12901
12902         * a-filico.adb: Minor reformatting
12903
12904         * a-finali.adb: Minor reformatting
12905
12906         * a-nudira.ads: Remove quote from Compile_Time_Warning message
12907
12908         * a-numeri.ads: Minor reformatting
12909
12910         * a-sequio.ads: Remove quotes from Compile_Time_Warning message
12911
12912         * exp_pakd.ads: Fix obsolete comment
12913
12914         * a-ztenau.adb, a-ztenio.adb, a-wtenau.adb, a-tienau.adb,
12915         a-wtenio.adb (Put): Avoid assuming low bound of string is 1.
12916         Probably not a bug, but certainly neater and more efficient.
12917
12918         * a-tienio.adb: Minor reformatting
12919
12920         * comperr.adb (Compiler_Abort): Call Cancel_Special_Output at start
12921         Avoid assuming low bound of string is 1.
12922
12923         * gnatbind.adb: Change Bindusg to package and rename procedure as
12924         Display, which now ensures that it only outputs usage information once.
12925         (Scan_Bind_Arg): Avoid assuming low bound of string is 1.
12926
12927         * g-pehage.adb (Build_Identical_Keysets): Replace use of 1 by
12928         Table'First.
12929
12930         * g-regpat.adb (Insert_Operator): Add pragma Warnings (Off) to kill
12931         warning.
12932         (Match): Add pragma Assert to ensure that Matches'First is zero
12933
12934         * g-regpat.ads (Match): Document that Matches lower bound must be zero
12935
12936         * makeutl.adb (Is_External_Assignment): Add pragma Assert's to check
12937         documented preconditions (also kills warnings about bad indexes).
12938
12939         * mdll.adb (Build_Dynamic_Library): Avoid assumption that Afiles'First
12940         is 1.
12941         (Build_Import_Library): Ditto;
12942
12943         * mdll-utl.adb: (Gnatbind): Avoid assumption that Alis'First = 1
12944
12945         * rtsfind.adb (RTE_Error_Msg): Avoid assuming low bound of string is 1.
12946
12947         * sem_case.adb (Analyze_Choices): Add pragma Assert to check that
12948         lower bound of choice table is 1.
12949
12950         * sem_case.ads (Analyze_Choices): Document that lower bound of
12951         Choice_Table is 1.
12952
12953         * s-imgdec.adb (Set_Decimal_Digits): Avoid assuming low bound of
12954         string is 1.
12955
12956         * uintp.adb (Init_Operand): Document that low bound of Vec is always 1,
12957         and add appropriate Assert pragma to suppress warnings.
12958
12959         * atree.h, atree.ads, atree.adb
12960         Change Elist24 to Elist25
12961         Add definitions of Field28 and Node28
12962         (Traverse_Field): Use new syntactic parent table in sinfo.
12963
12964         * cstand.adb: Change name Is_Ada_2005 to Is_Ada_2005_Only
12965
12966         * itypes.adb: Change name Is_Ada_2005 to Is_Ada_2005_Only
12967
12968         * exp_tss.adb: Put routines in alpha order
12969
12970         * fe.h: Remove redundant declarations.
12971
12972 2006-10-23 Rafael Avila de Espindola  <rafael.espindola@gmail.com>
12973
12974         * utils.c (builtin_function): Rename to gnat_builtin_function.
12975         Move common code to add_builtin_function.
12976         * misc.c (LANG_HOOKS_BUILTIN_FUNCTION): Define as
12977         gnat_builtin_function.
12978         * gigi.h (builtin_function): Rename to gnat_builtin_function.
12979         Change the signature.
12980
12981 2006-10-16  Brooks Moses  <bmoses@stanford.edu>
12982
12983         * Makefile.in: Add TEXI2PDF definition.
12984         * Make-lang.in: Add "ada.pdf" target.
12985
12986 2006-10-03  Kazu Hirata  <kazu@codesourcery.com>
12987
12988         * decl.c, utils.c: Fix comment typos.
12989         * utils.c: Fix a typo.
12990
12991 2006-09-28  Eric Botcazou  <ebotcazou@adacore.com>
12992
12993         * decl.c (gnat_to_gnu_entity) <E_Procedure>: Do not set "const" flag
12994         on "pure" Ada subprograms if SJLJ exceptions are used.
12995         * trans.c (Handled_Sequence_Of_Statements_to_gnu): Set TREE_NO_WARNING
12996         on the declaration node of JMPBUF_SAVE.
12997         * utils.c (init_gigi_decls): Set DECL_IS_PURE on the declaration nodes
12998         of Get_Jmpbuf_Address_Soft and Get_GNAT_Exception.
12999         * utils2.c (build_call_0_expr): Do not set TREE_SIDE_EFFECTS.
13000
13001 2006-08-20  Laurent Guerby  <laurent@guerby.net>
13002
13003         PR ada/28716
13004         g-socket.adb (Bind_Socket): Call Set_Address.
13005
13006 2006-09-15  Eric Botcazou  <ebotcazou@adacore.com>
13007
13008         PR ada/15802
13009         * decl.c (same_discriminant_p): New static function.
13010         (gnat_to_gnu_entity) <E_Record_Type>: When there is a parent
13011         subtype and we have discriminants, fix up the COMPONENT_REFs
13012         for the discriminants to make them reference the corresponding
13013         fields of the parent subtype after it has been built.
13014
13015 2006-09-15  Roger Sayle  <roger@eyesopen.com>
13016
13017         PR ada/18817
13018         * utils.c (max_size): Perform constant folding of (A ? B : C) - D
13019         into A ? B - D : C - D when calculating the size of a MINUS_EXPR.
13020
13021 2006-09-13  Olivier Hainque  <hainque@adacore.com>
13022
13023         PR ada/29025
13024         * trans.c (gnat_gimplify_expr) <ADDR_EXPR>: When taking the address
13025         of a SAVE_EXPR, just make the operand addressable/not-readonly and
13026         let the common gimplifier code make and propagate a temporary copy.
13027         (call_to_gnu): Clarify the use of SAVE_EXPR for not addressable
13028         out/in-out actuals and defer setting the addressable/readonly bits
13029         to the gimplifier.
13030
13031 2006-09-13  Eric Botcazou  <ebotcazou@adacore.com>
13032
13033         PR ada/28591
13034         * decl.c (components_to_record): Defer emitting debug info for the
13035         record type associated with the variant until after we are sure to
13036         actually use it.
13037
13038 2006-09-13  Eric Botcazou  <ebotcazou@adacore.com>
13039
13040         PR ada/21952
13041         * gigi.h (gnat_internal_attribute_table): Declare.
13042         * misc.c (LANG_HOOKS_ATTRIBUTE_TABLE): Define to above.
13043         * utils.c (gnat_internal_attribute_table): New global variable.
13044         (builtin_function): Always call decl_attributes on the builtin.
13045         (handle_const_attribute): New static function.
13046         (handle_nothrow_attribute): Likewise.
13047
13048 2006-07-28  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
13049
13050         * Make-lang.in: Use $(HEADER_H) instead of header.h in dependencies.
13051
13052 2006-06-23  Olivier Hainque  <hainque@adacore.com>
13053
13054         * misc.c (gnat_type_max_size): Look at TYPE_ADA_SIZE if we have
13055         not been able to get a constant upper bound from TYPE_SIZE_UNIT.
13056
13057 2006-06-20  James A. Morrison  <phython@gcc.gnu.org>
13058             Eric Botcazou  <ebotcazou@adacore.com>
13059
13060         PR ada/18692
13061         * Make-lang.in: Add check-gnat to lang_checks.  Rename existing
13062         check-gnat into check-acats.
13063
13064 2006-06-17  Karl Berry  <karl@gnu.org>
13065
13066         * gnat-style.texi (@dircategory): Use "Software development"
13067         instead of "Programming", following the Free Software Directory.
13068
13069 2006-06-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13070
13071         PR ada/27944
13072         * s-taprop-hpux-dce.adb: Delete redundant 'with System.Parameters'.
13073
13074 2006-06-06  Laurent Guerby  <laurent@guerby.net>
13075
13076         PR ada/27769
13077         mlib-utl.adb: Use Program_Name.
13078
13079 2006-05-28  Kazu Hirata  <kazu@codesourcery.com>
13080
13081         * decl.c, env.c, gigi.h, init.c, initialize.c, raise-gcc.c,
13082         sem_ch13.adb, sysdep.c, targtyps.c, tb-alvxw.c, tracebak.c,
13083         trans.c, utils.c: Fix comment typos.  Follow spelling
13084         conventions.
13085         * gnat_rm.texi, gnat_ugn.texi, : Fix typos.  Follow spelling
13086         conventions.
13087
13088 2006-05-19  Nicolas Setton  <setton@adacore.com>
13089
13090         * misc.c (gnat_dwarf_name): New function.
13091         (LANG_HOOKS_DWARF_NAME): Define to it.
13092
13093 2006-05-14  H.J. Lu  <hongjiu.lu@intel.com>
13094
13095         * Make-lang.in (ada/decl.o): Replace target.h with $(TARGET_H).
13096         (ada/misc.o): Likewise.
13097         (ada/utils.o): Likewise.
13098
13099 2006-04-08  Aurelien Jarno  <aurel32@debian.org>
13100
13101         * Makefile.in: Add Ada support for GNU/kFreeBSD.
13102         * s-osinte-kfreebsd-gnu.ads: New file.
13103
13104 2006-03-29  Carlos O'Donell  <carlos@codesourcery.com>
13105
13106         * Make-lang.in: Rename docdir to gcc_docdir.
13107
13108 2006-03-04  Eric Botcazou  <ebotcazou@adacore.com>
13109
13110         * gigi.h (get_ada_base_type): Delete.
13111         * utils2.c (get_ada_base_type): Likewise.
13112         * trans.c (convert_with_check): Operate in the real base type.
13113
13114 2006-03-03  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13115
13116         * uintp.adb (Num_Bits): Handle Uint_Int_First specially.
13117
13118 2006-03-02  Richard Sandiford  <richard@codesourcery.com>
13119
13120         * utils.c (create_var_decl): Use have_global_bss_p when deciding
13121         whether to make the decl common.
13122
13123 2006-02-20  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
13124
13125         * Make-lang.in (Ada): Remove.
13126         (.PHONY): Remove Ada
13127
13128 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
13129
13130         * sem_ch4.adb (Find_Boolean_Types): If one of the operands is an
13131         aggregate, check the interpretations of the other operand to find one
13132         that may be a boolean array.
13133
13134         (Analyze_Selected_Component): Fix flow-of-control typo in case where
13135         the prefix is a private extension.
13136
13137 2006-02-17  Eric Botcazou  <botcazou@adacore.com>
13138
13139         PR ada/26315
13140         * utils2.c (find_common_type): If both input types are BLKmode and
13141         have the same constant size, keep using the first one.
13142
13143         * bindgen.adb: (Gen_Versions_Ada): Revert previous workaround.
13144
13145         * decl.c (gnat_to_gnu_entity): Only check TREE_OVERFLOW for a constant.
13146
13147         * misc.c (gnat_handle_option): New case for -Woverlength-strings.
13148
13149 2006-02-17  Jose Ruiz  <ruiz@adacore.com>
13150
13151         * s-taprop-irix.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb, 
13152         s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb, 
13153         s-taprop-posix.adb, s-taprop-vxworks.adb, s-taprop-lynxos.adb, 
13154         s-taprop-tru64.adb (Set_False, Set_True, Suspend_Until_True): Add
13155         Abort_Defer/Undefer pairs to avoid the possibility of a task being
13156         aborted while owning a lock.
13157
13158 2006-02-17  Javier Miranda  <miranda@adacore.com>
13159             Robert Dewar  <dewar@adacore.com>
13160
13161         * exp_ch4.adb (Expand_N_Allocator): If the allocated object is accessed
13162         through an access to class-wide interface we force the displacement of
13163         the pointer to the allocated object to reference the corresponding
13164         secondary dispatch table.
13165         (Expand_N_Op_Divide): Allow 64 bit divisions by small power of 2,
13166         if Long_Shifts are supported on the target, even if 64 bit divides
13167         are not supported (configurable run time mode).
13168         (Expand_N_Type_Conversion): Do validity check if validity checks on
13169         operands are enabled.
13170         (Expand_N_Qualified_Expression): Do validity check if validity checks
13171         on operands are enabled.
13172
13173 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
13174
13175         * exp_dbug.adb (Debug_Renaming_Declaration): Indicate that the entity
13176         must be materialized when the renamed expression is an explicit
13177         dereference.
13178
13179 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
13180
13181         * freeze.adb (Statically_Discriminated_Components): Return false if
13182         the bounds of the type of the discriminant are not static expressions.
13183
13184         * sem_aggr.adb (Check_Static_Discriminated_Subtype): Return false if
13185         the bounds of the discriminant type are not static.
13186
13187 2006-02-17  Robert Dewar  <dewar@adacore.com>
13188
13189         * g-os_lib.adb (Copy_File): Make sure that if From has an Invalid_FD,
13190         then we close To if it is valid.
13191
13192 2006-02-17  Vasiliy Fofanov  <fofanov@adacore.com>
13193
13194         * init.c (facility_resignal_table): new array
13195         (__gnat_default_resignal_p): enhance default predicate to resignal if
13196         VMS condition has one of the predefined facility codes.
13197
13198 2006-02-17  Vasiliy Fofanov  <fofanov@adacore.com>
13199
13200         * Makefile.in: Use VMS64 specialized versions of several units in
13201         Interfaces.C hierarchy to be compatible with HP C default size choices.
13202         Use the default version of Ada.Synchronous_Task_Control for VxWorks 653.
13203
13204 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
13205
13206         * sem_ch10.adb (Analyze_With_Clause): If the unit is a subprogram
13207         instantiation, the corresponding entity is the related_instance of the
13208         wrapper package created for the instance.
13209
13210 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
13211
13212         * sem_ch12.adb (Analyze_Package_Instantiation): Inline_Now is false if
13213         the current instance is nested within another instance in a child unit.
13214
13215 2006-02-17  Javier Miranda  <miranda@adacore.com>
13216             Ed Schonberg  <schonberg@adacore.com>
13217
13218         * sem_ch3.adb (Build_Discriminated_Subtype): In case of concurrent
13219         type we cannot inherit the primitive operations; we inherit the
13220         Corresponding_Record_Type (which has the list of primitive operations).
13221         (Check_Anonymous_Access_Types): When creating anonymous access types for
13222         access components, use Rewrite in order to preserve the tree structure,
13223         for ASIS use.
13224         (Analyze_Object_Declaration): For limited types with access
13225         discriminants with defaults initialized by an aggregate, obtain
13226         subtype from aggregate as for other mutable types.
13227         (Derived_Type_Declaration): If the derived type is a limited interface,
13228         set the corresponding flag (Is_Limited_Record is not sufficient).
13229
13230 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
13231
13232         * sem_ch6.adb (Build_Body_To_Inline): Enforce the rule that in order
13233         to inline a function that returns an unconstrained type, the return
13234         expression must be the first variable declared in the body of the
13235         function.
13236
13237 2006-02-17  Javier Miranda  <miranda@adacore.com>
13238
13239         * sem_res.adb (Resolve_Type_Conversion): In case of conversion to an
13240         abstract interface type, the static analysis is not enough to know if
13241         the interface is implemented or not by the source tagged type. Hence
13242         we must pass the work to the expander to generate the required code to
13243         evaluate the conversion at run-time.
13244         (Resolve_Equality_Op): Do not apply previous
13245         transformation if expansion is disasbled, to prevent anomalies when
13246         locating global references in a generic unit.
13247
13248 2006-02-17  Vincent Celier  <celier@adacore.com>
13249
13250         * snames.ads, snames.adb: New standard names for new project attributes:
13251         archive_builder, archive_indexer, compiler_pic_option,
13252         config_body_file_name, config_body_file_name_pattern,
13253         config_file_switches, config_file_unique, config_spec_file_name,
13254         config_spec_file_name_pattern, default_builder_switches,
13255         default_global_compiler_switches, default_language,
13256         dependency_file_kind, global_compiler_switches, include_path,
13257         include_path_file, language_kind, linker_executable_option,
13258         linker_lib_dir_option, linker_lib_name_option, mapping_file_switches,
13259         roots, runtime_project.
13260
13261 2006-02-17  Matthew Heaney  <heaney@adacore.com>
13262
13263         * a-convec.ads, a-convec.adb: 
13264         (operator "&"): handle potential overflow for large index types
13265         (Insert): removed Contraint_Error when using large index types
13266         (Insert_Space): removed Constraint_Error for large index types
13267         (Length): moved constraint check from Length to Insert
13268
13269         * a-coinve.ads, a-coinve.adb: Stream attribute procedures are declared
13270         as not null access.
13271         Explicit raise statements now include an exception message.
13272         (operator "&"): handle potential overflow for large index types
13273         (Insert): removed Contraint_Error when using large index types
13274         (Insert_Space): removed Constraint_Error for large index types
13275         (Length): moved constraint check from Length to Insert
13276
13277 2006-02-17  Robert Dewar  <dewar@adacore.com>
13278
13279         * s-wchcnv.adb: Document handling of [ on output (we do not change
13280         this to ["5B"] and the new comments say why not.
13281
13282         * gnat_ugn.texi: 
13283         Add note for -gnatVo that this now includes the cases of type
13284         conversions and qualified expressions.
13285         Add comments on handling of brackets encoding for Text_IO
13286
13287 2006-02-17  Ramon Fernandez  <fernandez@adacore.com>
13288             Thomas Quinot  <quinot@adacore.com>
13289             Robert Dewar  <dewar@adacore.com>
13290             Javier Miranda  <miranda@adacore.com>
13291
13292         * expander.adb: Fix typo in comment
13293
13294         * exp_pakd.adb: Fix typo
13295         Minor comment reformatting.
13296
13297         * g-dyntab.adb: Minor reformatting
13298
13299         * exp_ch6.adb (Register_Interface_DT_Entry): Traverse the list of
13300         aliased subprograms to look for the abstract interface subprogram.
13301
13302 2006-02-16  Eric Botcazou  <ebotcazou@adacore.com>
13303
13304         * env.c (__gnat_setenv): Use size_t.
13305         (__gnat_unsetenv): Likewise.
13306         (__gnat_clearenv): Likewise.
13307
13308 2006-02-16  Arnaud Charlet  <charlet@adacore.com>
13309
13310         * opt.ads (Ada_Version_Default): Set to Ada 2005 by default.
13311
13312 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
13313
13314         * a-intnam-os2.ads, a-intnam-unixware.ads, g-soccon-unixware.ads,
13315         g-soliop-unixware.ads, i-os2err.ads, i-os2lib.adb, i-os2lib.ads,
13316         i-os2syn.ads, i-os2thr.ads, s-intman-irix-athread.adb,
13317         s-osinte-aix-fsu.ads, s-osinte-fsu.adb, s-parame-os2.adb,
13318         s-osinte-irix-athread.ads, s-osinte-linux-fsu.ads, s-osinte-os2.adb,
13319         s-osinte-os2.ads, s-osinte-solaris-fsu.ads, s-osinte-unixware.adb,
13320         s-osinte-unixware.ads, s-osprim-os2.adb, s-taprop-irix-athread.adb,
13321         s-taprop-os2.adb, s-tasinf-irix-athread.adb, s-tasinf-irix-athread.ads,
13322         s-taspri-os2.ads, system-os2.ads, system-unixware.ads: Removed,
13323         no longer used.
13324
13325 2006-02-13  Jose Ruiz  <ruiz@adacore.com>
13326
13327         * a-taster.adb (Current_Task_Fallback_Handler): Document why explicit
13328         protection against race conditions is not needed.
13329         (Set_Dependents_Fallback_Handler): Add mutual exclusive access to the
13330         fallback handler.
13331         (Set_Specific_Handler): Add mutual exclusive access to the specific
13332         handler.
13333         (Specific_Handler): Add mutual exclusive access for retrieving the
13334         specific handler.
13335
13336         * s-tarest.adb (Task_Wrapper): Add mutual exclusive access to the fall
13337         back handler.
13338
13339         * s-taskin.ads (Common_ATCB): Remove pragma Atomic for
13340         Fall_Back_Handler and Specific_Handler.
13341
13342         * s-tassta.adb (Task_Wrapper): Add mutual exclusive access to the task
13343         termination handlers.
13344         Set two different owerflow depending on the maximal stack size.
13345
13346         * s-solita.adb (Task_Termination_Handler_T): Document why explicit
13347         protection against race conditions is not needed when executing the
13348         task termination handler.
13349
13350 2006-02-13  Robert Dewar  <dewar@adacore.com>
13351
13352         * s-gloloc-mingw.adb, a-cgaaso.ads, a-stzmap.adb, a-stzmap.adb,
13353         a-stzmap.ads, a-ztcoio.adb, a-ztedit.adb, a-ztedit.ads, a-ztenau.adb,
13354         a-ztenau.ads, a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
13355         a-comlin.adb, a-decima.adb, a-decima.ads, a-direio.adb, a-direio.adb,
13356         a-direio.adb, a-direio.ads, a-ngcoty.adb, a-ngcoty.ads, a-nuflra.adb,
13357         a-nuflra.ads, a-sequio.adb, a-sequio.ads, a-sequio.ads, a-storio.ads,
13358         a-stream.ads, a-ststio.adb, a-ststio.adb, a-ststio.ads, a-ststio.ads,
13359         a-stwima.adb, a-stwima.adb, a-stwima.ads, a-stwise.adb, a-teioed.adb,
13360         a-teioed.ads, a-ticoau.adb, a-ticoau.ads, a-ticoio.adb, a-tasatt.ads,
13361         a-tideau.adb, a-tideau.ads, a-tideio.adb, a-tideio.ads, a-tienau.adb,
13362         a-tienau.ads, a-tienio.adb, a-tienio.ads, a-tifiio.ads, a-tiflau.adb,
13363         a-tiflau.ads, a-tiflio.adb, a-tiflio.adb, a-tiflio.ads, a-tigeau.ads,
13364         a-tiinau.adb, a-tiinau.ads, a-tiinio.adb, a-tiinio.ads, a-timoio.adb,
13365         a-timoio.ads, a-titest.adb, a-titest.ads, a-wtcoio.adb, a-wtdeau.adb,
13366         a-wtdeau.ads, a-wtdeio.adb, a-wtdeio.ads, a-wtedit.adb, a-wtedit.adb,
13367         a-wtedit.ads, a-wtenau.adb, a-wtenau.ads, a-wtenau.ads, a-wtenio.adb,
13368         a-wtenio.ads, a-wtfiio.adb, a-wtfiio.ads, a-wtflau.adb, a-wtflau.ads,
13369         a-wtflio.adb, a-wtflio.adb, a-wtflio.ads, a-wtgeau.ads, a-wtinau.adb,
13370         a-wtinau.ads, a-wtinio.adb, a-wtinio.ads, a-wtmoau.adb, a-wtmoau.ads,
13371         a-wtmoio.adb, a-wtmoio.ads, xref_lib.adb, xref_lib.ads, xr_tabls.adb,
13372         g-boubuf.adb, g-boubuf.ads, g-cgideb.adb, g-io.adb, gnatdll.adb,
13373         g-pehage.adb, i-c.ads, g-spitbo.adb, g-spitbo.ads, mdll.adb,
13374         mlib-fil.adb, mlib-utl.adb, mlib-utl.ads, prj-env.adb, prj-tree.adb,
13375         prj-tree.ads, prj-util.adb, s-arit64.adb, s-asthan.ads, s-auxdec.adb,
13376         s-auxdec.ads, s-chepoo.ads, s-direio.adb, s-direio.ads, s-errrep.adb,
13377         s-errrep.ads, s-fileio.adb, s-fileio.ads, s-finroo.adb, s-finroo.ads,
13378         s-gloloc.adb, s-gloloc.ads, s-io.adb, s-io.ads, s-rpc.adb,
13379         s-rpc.ads, s-shasto.ads, s-sequio.adb, s-stopoo.ads, s-stratt.adb,
13380         s-stratt.ads, s-taasde.adb, s-taasde.ads, s-tadert.adb, s-sequio.ads,
13381         s-taskin.adb, s-tasque.adb, s-tasque.ads, s-wchjis.ads, makegpr.adb,
13382         a-coinve.adb, a-cidlli.adb, eval_fat.adb, exp_dist.ads, exp_smem.adb,
13383         fmap.adb, g-dyntab.ads, g-expect.adb, lib-xref.ads, osint.adb,
13384         par-load.adb, restrict.adb, sinput-c.ads, a-cdlili.adb,
13385         system-vms.ads, system-vms-zcx.ads, system-vms_64.ads: Minor
13386         reformatting.
13387
13388 2006-02-13  Hristian Kirtchev  <kirtchev@adacore.com>
13389
13390         * a-tasatt.adb, s-osinte-lynxos-3.adb, s-osinte-lynxos.adb,
13391         s-osinte-aix.adb, s-interr-sigaction.adb, s-asthan-vms-alpha.adb,
13392         s-interr-vms.adb, s-intman-vms.adb, s-interr-vxworks.adb,
13393         s-intman-vxworks.adb, s-asthan-vms-alpha.adb, a-ztexio.adb,
13394         a-reatim.adb, a-taside.adb, a-textio.adb, a-witeio.adb, prj-attr.adb,
13395         s-intman-irix.adb, s-intman-solaris.adb, s-intman-posix.adb,
13396         a-dynpri.adb, a-interr.adb, g-dynhta.adb, s-asthan.adb, s-interr.adb,
13397         s-pooglo.adb, s-pooloc.adb, s-poosiz.adb, s-tasren.adb, s-tasuti.adb,
13398         s-tataat.adb, s-tpobop.adb: Remove redundant with clauses.
13399
13400 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
13401
13402         * s-osinte-darwin.adb, s-osinte-darwin.ads, s-osinte-vxworks.ads, 
13403         s-osinte-solaris.ads, s-osinte-linux.ads, s-osinte-freebsd.ads, 
13404         s-osinte-solaris-posix.ads, s-osinte-lynxos-3.ads, s-osinte-lynxos.ads, 
13405         s-osinte-tru64.ads, s-osinte-aix.ads, s-osinte-irix.ads, 
13406         s-osinte-hpux-dce.ads, s-osinte-linux-hppa.ads, 
13407         s-osinte-linux-alpha.ads, s-inmaop-posix.adb (sigset_t_ptr): Removed,
13408         replaced by anonymous access type.
13409         (pthread_sigmask): Now take an access sigset_t
13410
13411         * s-osinte-hpux.ads:  Ditto.
13412         (pthread_mutex_t, pthread_cond_t): Update definitions to support
13413         properly 32 and 64 bit ABIs.
13414
13415 2006-02-13  Pascal Obry  <obry@adacore.com>
13416
13417         * s-taprop-posix.adb, s-taprop-vxworks.adb, s-taprop-tru64.adb, 
13418         s-taprop-lynxos.adb, s-taprop-irix.adb, s-taprop-hpux-dce.adb, 
13419         s-taprop-linux.adb, s-taprop-solaris.adb,
13420         s-taprop-vms.adb (Create_Task): Remove task adjustment code. This
13421         adjustement is already done when calling this routine.
13422
13423 2006-02-13  Pascal Obry  <obry@adacore.com>
13424
13425         * system-mingw.ads (Underlying_Priorities): Update the priority mapping
13426         table to take advantage of the 16 priority levels available on Windows
13427         2000 and XP. On NT4 there are only 7 priority levels, this is properly
13428         supported by this new mapping.
13429
13430 2006-02-13  Nicolas Setton  <setton@adacore.com>
13431
13432         * adadecode.h, adadecode.c: (__gnat_decode): Improve support of types.
13433         (get_encoding): New subprogram. Extracts the encodings from an encoded
13434         Ada name.
13435
13436 2006-02-13  Pascal Obry  <obry@adacore.com>
13437             Nicolas Roche  <roche@adacore.com>
13438             Arnaud Charlet  <charlet@adacore.com>
13439
13440         * adaint.h, adaint.c (DIR_SEPARATOR): Use _T() macro for Unicode
13441         support.
13442         (__gnat_try_lock): Add unicode support by using a specific section on
13443         Windows.
13444         (__gnat_get_current_dir): Idem.
13445         (__gnat_open_read): Idem.
13446         (__gnat_open_rw): Idem.
13447         (__gnat_open_create): Idem.
13448         (__gnat_create_output_file): Idem.
13449         (__gnat_open_append): Idem.
13450         (__gnat_open_new): Idem.
13451         (__gnat_file_time_name): Idem.
13452         (__gnat_set_file_time_name): Idem.
13453         (__gnat_stat): Idem.
13454         (win32_no_block_spawn): Idem.
13455         (__gnat_locate_exec_on_path): Idem.
13456         (__gnat_opendir): New routine.
13457         (__gnat_closedir): Idem.
13458         (__gnat_readdir): Add new parameter length (pointer to int). Update
13459         implementation to use it and add specific Win32 code for Unicode
13460         support.
13461         (__gnat_get_env_value_ptr): Remove. Replaced by __gnat_getenv in env.c
13462         (__gnat_set_env_value): Remove. Replaced by __gnat_setenv in env.c
13463         (convert_addresses): Do not define this dummy routine on VMS.
13464
13465         * mingw32.h (GNAT_UNICODE_SUPPORT): New definition, if set the GNAT
13466         runtime Unicode support will be activated.
13467         (S2WS): String to Wide-String conversion. This version just copy a
13468         string in non Unicode version.
13469         (WS2S): Wide-String to String conversion. This version just copy a
13470         string in non Unicode version.
13471
13472         * g-dirope.adb: (Close): Now import __gnat_closedir from adaint.c.
13473         (Open): Now import __gnat_opendir from adaint.c.
13474         (Read): Change the implementation to support unicode characters. It is
13475         not possible to use strlen() on Windows as this version supports only
13476         standard ASCII characters. So the length of the directory entry is now
13477         returned from the imported __gnat_readdir routine.
13478         Update copyright notice.
13479
13480         * s-crtl-vms64.ads, s-crtl.ads: (closedir): Moved to adaint.c.
13481         (opendir): Moved to adaint.c.
13482
13483         * g-os_lib.adb (Copy_Time_Stamp): Fix off-by-one range computation.
13484         (Get_Directory): Fix wrong indexing.
13485         (Getenv): replace __gnat_get_env_value_ptr from adaint.c by
13486         __gnat_getenv from env.c
13487         (Setenv): replace __gnat_set_env_value from adaint.c by __gnat_setenv
13488         from env.c
13489
13490         * env.h, env.c: New file.
13491
13492         * s-scaval.adb (Initialize): Replace __gnat_get_env_value_ptr from
13493         adaint.c by __gnat_getenv from env.c
13494
13495         * s-shasto.adb (Initialize): replace __gnat_get_env_value_ptr from
13496         adaint.c by __gnat_getenv from env.c
13497
13498         * Make-lang.in: Add env.o in the list of C object needed by gnat1
13499         and gnatbind.
13500         Update dependencies.
13501
13502 2006-02-13  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13503             Olivier Hainque  <hainque@adacore.com>
13504             Eric Botcazou  <ebotcazou@adacore.com>
13505
13506         * ada-tree.h: (TYPE_UNCHECKED_UNION_P): Deleted.
13507         
13508         * gigi.h (value_factor_p): Add prototype and description, now public.
13509
13510         * decl.c (gnat_to_gnu_field): Don't attempt BLKmode to integral type
13511         promotion for field with rep clause if the associated size was proven
13512         to be in error.
13513         Expand comments describing attempts to use a packable type.
13514         (gnat_to_gnu_entity) <E_Signed_Integer_Subtype,
13515         E_Floating_Point_Subtype>: Inherit alias set of what we are making a
13516         subtype of to ensure conflicts amongst all subtypes in a hierarchy,
13517         necessary since these are not different types and pointers may
13518         actually designate any subtype in this hierarchy.
13519         (gnat_to_gnu_entity, case E_Record_Type): Always make fields for
13520         discriminants but put them into record only if not Unchecked_Union;
13521         pass flag to components_to_record showing Unchecked_Union.
13522         (make_dummy_type): Use UNION_TYPE only if Unchecked_Union and no
13523         components before variants; don't set TYPE_UNCHECKED_UNION_P.
13524         (components_to_record): New argument UNCHECKED_UNION.
13525         Remove special case code for Unchecked_Union and instead use main code
13526         with small changes.
13527
13528         PR ada/26096
13529         (gnat_to_gnu_entity) <E_Variable>: Do not initialize the aligning
13530         variable with the expression being built, only its inner field.
13531
13532         * trans.c (Handled_Sequence_Of_Statements_to_gnu): Remove call to
13533         emit_sequence_entry_statements.
13534         (emit_sequence_entry_statements, body_with_handlers_p): Delete.
13535         (establish_gnat_vms_condition_handler): Move before
13536         Subprogram_Body_to_gnu.
13537         (Subprogram_Body_to_gnu): On VMS, establish_gnat_vms_condition_handler
13538         for a subprogram if it has a foreign convention or is exported.
13539         (Identifier_to_gnu): Manually unshare the DECL_INITIAL tree when it is
13540         substituted for a CONST_DECL.
13541         (tree_transform, case N_Aggregate): Remove code for UNION_TYPE and pass
13542         Etype to assoc_to_constructor.
13543         (assoc_to_constructor): New argument, GNAT_ENTITY; use it to ignore
13544         discriminants of Unchecked_Union.
13545         (TARGET_ABI_OPEN_VMS): Define to 0 if not defined, so that later uses
13546         don't need cluttering preprocessor directives.
13547         (establish_gnat_vms_condition_handler): New function. Establish the GNAT
13548         condition handler as current in the compiled function.
13549         (body_with_handlers_p): New function. Tell whether a given sequence of
13550         statements node is attached to a package or subprogram body and involves
13551         exception handlers possibly nested within inner block statements.
13552         (emit_sequence_entry_statements): New function, to emit special
13553         statements on entry of sequences when necessary. Establish GNAT
13554         condition handler in the proper cases for VMS.
13555         (Handled_Sequence_Of_Statements_to_gnu): Start block code with
13556         emit_sequence_entry_statements.
13557
13558         * utils2.c (find_common_type): If both input types are BLKmode and
13559         have a constant size, use the smaller one.
13560         (build_simple_component_ref): Also match if FIELD and NEW_FIELD are
13561         the same.
13562
13563         * utils.c (value_factor_p): Make public, to allow uses from other gigi
13564         units.
13565         (create_type_decl): Do not set the flag DECL_IGNORED_P for dummy types.
13566         (convert, case UNION_TYPE): Remove special treatment for unchecked
13567         unions.
13568
13569         PR ada/18659
13570         (update_pointer_to): Update variants of pointer types to unconstrained
13571         arrays by attaching the list of fields of the main variant.
13572
13573 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
13574             Robert Dewar  <dewar@adacore.com>
13575
13576         * a-exexpr.adb, a-exexpr-gcc.adb
13577         (Process_Raise_Exception): Removed, merged with Propagate_Exception.
13578         (Propagate_Exception): Now take extra From_Signal_Handler parameter.
13579         Remove code unused for exception propagation for the compiler itself
13580         from a-except.adb and update to still share separate packages.
13581
13582         * a-except.ads, a-except.adb: Ditto.
13583         Add comments that this version is now used only by the compiler and
13584         other basic tools. The full version that includes the Ada 2005 stuff
13585         is in separate files a-except-2005.ads/adb. The reason is that we do
13586         not want to cause bootstrap problems with compilers not recognizing
13587         Wide_Wide_String.
13588         Add exception reason code PE_Implicit_Return
13589         Add new exception reason code (Null Exception_Id)
13590
13591         * a-except-2005.adb, a-except-2005.ads: New files.
13592
13593         * s-wchcon.ads: (Get_WC_Encoding_Method): New function.
13594
13595         * s-wchcon.adb: New file.
13596
13597         * Makefile.in (LIBGNAT_SRCS): Add tb-gcc.c.
13598         (traceback.o deps): Likewise.
13599         (SPARC/Solaris): Accept sparc[64|v9]-sun-solaris.
13600         Activate build of GMEM instrumentation library on VMS targets.
13601         (gnatlib-sjlj, gnatlib-zcx): Pass EH_MECHANISM to make gnatlib.
13602         Use a-except-2005.ads/adb for all run-time library builds unless
13603         specified otherwise.
13604         [VMS] (LIBGNAT_TARGET_PAIRS_AUX1,2): Rename s-parame-vms.ads to
13605         s-parame-vms-alpha.ads and add s-parame-vms-ia64.ads.
13606         Use s-parame.adb on all native platforms.
13607         Use s-parame-vxworks.adb on all vxworks platforms.
13608         Add env.c env.h in LIBGNAT_SRCS
13609         Add env.o in LIBGNAT_OBJS
13610         (GNATMAKE_OBJS): Remove ctrl_c.o object.
13611         (LIBGNAT_TARGET_PAIRS for x86-vxworks): Use an specialized version of
13612         s-osinte.adb, s-tpopsp.adb, and system.ads for the run time that
13613         supports VxWorks 6 RTPs.
13614         (EXTRA_GNATRTL_NONTASKING_OBJS for x86-vxworks): Remove the use of
13615         i-vxworks and i-vxwoio from the run time that supports VxWorks 6 RTPs.
13616
13617         * types.h, types.ads (Terminate_Program): New exception
13618         Add comment on modifying multiple versions of a-except.adb when the
13619         table of exception reasons is modified.
13620         Add exception reason code PE_Implicit_Return
13621         Add new exception reason code (Null Exception_Id)
13622
13623         * clean.adb (Initialize): Get the target parameters before checking
13624         if target is OpenVMS. Move the OpenVMS specific code here from package
13625         body elaboration code.
13626
13627 2006-02-13  Thomas Quinot  <quinot@adacore.com>
13628             Vincent Celier  <celier@adacore.com>
13629             Robert Dewar  <dewar@adacore.com>
13630
13631         * ali-util.adb (Get_File_Checksum): Update to account for change in
13632         profile of Initialize_Scanner.
13633
13634         * gprep.adb (Gnatprep): Update to account for change in profile of
13635         Initialize_Scanner.
13636         (Process_One_File): Same.
13637
13638         * lib.adb (Get_Code_Or_Source_Unit): New subprogram factoring the
13639         common code between Get_Code_Unit and Get_Source_Unit. Reimplement
13640         that behaviour using the new Unit information recorded in the source
13641         files table, rather than going through all units every time.
13642         (Get_Code_Unit): Reimplement in terms of Get_Code_Or_Source_Unit.
13643         (Get_Source_Unit): Same.
13644
13645         * prepcomp.adb (Parse_Preprocessing_Data_File): Update to account for
13646         change in profile of Initialize_Scanner.
13647         (Prepare_To_Preprocess): Same.
13648
13649         * lib.ads: Fix typo in comment (templace -> template).
13650
13651         * prj-part.adb (Parse_Single_Project): Update to account for change in
13652         profile of Initialize_Scanner.
13653
13654         * scn.adb (Initialize_Scanner): Account for change in profile of
13655         Scng.Initialize_Scanner: set Current_Source_Unit in Scn instead of Scng.
13656         Also record the association of the given Source_File_Index to the
13657         corresponding Unit_Number_Type.
13658
13659         * scng.ads, scng.adb (Initialize_Scanner.Set_Reserved): Remove
13660         procedure.
13661         (Initialize_Scanner): Call Scans.Initialize_Ada_Keywords.
13662         Remove Unit formal for generic scanner: this formal
13663         is only relevant to Scn (the scanner instance used to parse Ada source
13664         files), not to other instances. Update comment accordingly.
13665         (Scan): Use new function Snames.Is_Keyword_Name.
13666
13667         * sinfo-cn.adb: Fix typo in comment.
13668
13669         * sinput.adb (Unit, Set_Unit): Accessors for new source file attribute
13670         Unit.
13671
13672         * sinput.ads (Source_File_Record): New component Unit, used to capture
13673         the unit identifier (if any) associated to a source file.
13674
13675         * sinput-c.adb, sinput-l.adb (Load_File): Initialize new component
13676         Unit in Source_File_Record.
13677
13678         * sinput-p.adb (Source_File_Is_Subunit): Update to account for change
13679         in profile of Initialize_Scanner.
13680
13681         * scans.adb (Initialize_Ada_Keywords): New procedure
13682
13683         * scans.ads (Initialize_Ada_Keywords): New procedure to initialize the
13684         Ada keywords in the Namet table, without the need to call
13685         Initialize_Scanner.
13686
13687         * snames.adb: Add pragma Ada_2005 (synonym for Ada_05)
13688         (Is_Keyword_Name): New function
13689
13690         * snames.ads: Add subtype Configuration_Pragma_Names
13691         Add pragma Ada_2005 (synonym for Ada_05)
13692         (Is_Keyword_Name): New function
13693
13694         * snames.h: Add pragma Ada_2005 (synonym for Ada_05)
13695
13696 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
13697
13698         * a-stwisu.adb, a-strsup.adb, a-stzsup.adb (Super_Slice): Fix slice
13699         index.
13700
13701         * a-stwima.adb (To_Set): Add extra check when N = 0.
13702
13703         * g-regpat.adb: (Match_Simple_Operator): Avoid possible overflow.
13704
13705 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
13706
13707         * s-parame-mingw.adb, s-parame-linux.adb,
13708         s-parame-solaris.adb: Removed, replaced by s-parame.adb
13709
13710         * s-parame-vxworks.ads: Fix typo.
13711
13712         * s-parame-vxworks.adb: New file.
13713
13714         * s-parame.adb: Version now used by all native platforms.
13715         (Default_Stack_Size): Use 2 megs for default stack size and use
13716         __gl_default_stack_size when available.
13717         (Minimum_Stack_Size): Use 12K.
13718
13719         * s-taprop-mingw.adb: Set default stack size linker switch to 2megs.
13720         (Create_Task): Refine implementation taking advantage of the XP stack
13721         size support. On XP, we now create the thread using the flag
13722         STACK_SIZE_PARAM_IS_A_RESERVATION.
13723
13724         * s-osinte-mingw.ads (Stack_Size_Param_Is_A_Reservation): New constant.
13725
13726         * sysdep.c (__gnat_is_windows_xp): New routine, returns 1 on Windows
13727         XP and 0 on older Windows versions.
13728
13729         * interfac-vms.ads: Removed, no longer used.
13730
13731 2006-02-13  Matthew Heaney  <heaney@adacore.com>
13732
13733         * a-rbtgso.adb, a-crbtgo.adb, a-crbtgk.adb, a-coorse.adb, 
13734         a-cohama.adb, a-ciorse.adb, a-cihama.adb, a-cihase.adb, 
13735         a-cohase.adb: All explicit raise statements now include an exception
13736         message.
13737
13738         * a-ciormu.ads, a-ciormu.adb, a-coormu.ads, a-coormu.adb
13739         (Update_Element_Preserving_Key): renamed op to just Update_Element.
13740         Explicit raise statements now include an exception message
13741
13742         * a-cihase.ads, a-cohase.ads: Removed comment.
13743
13744         * a-stboha.ads, a-stboha.adb, a-stfiha.ads, a-envvar.adb,
13745         a-envvar.ads, a-swbwha.ads, a-swbwha.adb, a-swfwha.ads, a-szbzha.ads,
13746         a-szbzha.adb, a-szfzha.ads: New files.
13747
13748 2006-02-13  Matthew Heaney  <heaney@adacore.com>
13749
13750         * a-cgcaso.adb, a-cgaaso.adb: Implemented using heapsort instead of
13751         quicksort.
13752
13753 2006-02-13  Eric Botcazou  <ebotcazou@adacore.com>
13754
13755         * lang.opt: Wvariadic-macros: New option.
13756         Wold-style-definition: Likewise.
13757         Wmissing-format-attribute: Likewise.
13758
13759         * misc.c (gnat_handle_option): New cases for -Wvariadic-macros,
13760         -Wold-style-definition and -Wmissing-format-attribute.
13761
13762 2006-02-13  Robert Dewar  <dewar@adacore.com>
13763
13764         * a-ticoio.ads, a-ticoio.adb: Add use clause (moved here from spec)
13765
13766         * a-coteio.ads, a-lcteio.ads, a-llctio.ads, a-scteio.ads: New files.
13767
13768 2006-02-13  Nicolas Roche  <roche@adacore.com>
13769
13770         * a-envvar.adb, a-envvar.ads: New files.
13771
13772 2006-02-13  Douglas Rupp  <rupp@adacore.com>
13773
13774         * s-parame-vms.ads: Renamed to s-parame-vms-alpha.ads
13775
13776         * s-parame-vms-alpha.ads, s-parame-vms-ia64.ads: New files.
13777
13778 2006-02-13  Pat Rogers  <rogers@adacore.com>
13779
13780         * a-rttiev.adb, a-rttiev.ads: New files.
13781
13782 2006-02-13  Hristian Kirtchev  <kirtchev@adacore.com>
13783
13784         * a-tiboio.adb, a-tiboio.ads, a-wwboio.adb,
13785         a-wwboio.ads, a-zzboio.adb, a-zzboio.ads:  New files.
13786
13787         * impunit.adb, Makefile.rtl: Added new Ada 2005 units.
13788
13789 2006-02-13  Robert Dewar  <dewar@adacore.com>
13790
13791         * rtsfind.adb, exp_prag.adb, lib-writ.adb, par-labl.adb, 
13792         sem_case.adb: Minor code reorganization (not Present should be No)
13793
13794 2006-02-13  Geert Bosch  <bosch@adacore.com>
13795             Gary Dismukes  <dismukes@adacore.com>
13796
13797         * a-tifiio.adb (Put_Digits): Test Last against To'First - 1 instead of
13798         0, since the lower bound of the actual string may be greater than one.
13799
13800         PR ada/20753
13801         * a-tifiio.adb (Put): Fix condition to raise Layout_Error when invalid
13802         layout is requested.
13803
13804 2006-02-13  Vincent Celier  <celier@adacore.com>
13805
13806         * back_end.adb (Scan_Compiler_Arguments): Check if
13807         Search_Directory_Present is True and, if it is, add the argument in
13808         the source search directory path.
13809
13810         * switch-c.adb (Scan_Front_End_Switches): Accept switch "-I". Set
13811         Search_Directory_Present to True.
13812
13813 2006-02-13  Joel Brobecker  <brobecke@adacore.com>
13814
13815         * bindgen.adb (Gen_Main_C): declare the ensure_reference variable as
13816         volatile, to tell the compiler to preserve this variable at any level
13817         of optimization.
13818         (Gen_Versions_Ada): Temporarily work around codegen bug.
13819
13820 2006-02-13  Vincent Celier  <celier@adacore.com>
13821
13822         * gnatlink.adb (Process_Binder_File): If -shared is specified, invoke
13823         gcc to link with option -shared-libgcc.
13824         (Gnatlink): Remove duplicate switches -shared-libgcc
13825
13826 2006-02-13  Robert Dewar  <dewar@adacore.com>
13827
13828         * gnatvsn.ads (Current_Year): New constant, used to easily update
13829         copyright on all GNAT tools.
13830
13831         * gnatls.adb, gnatname.adb, vms_conv.adb: Add 2006 to displayed
13832         copyright notice.
13833
13834 2006-02-13  Robert Dewar  <dewar@adacore.com>
13835
13836         * erroutc.ads, erroutc.adb (Set_Message_Blank): Don't insert space
13837         after hyphen (small aesthetic change useful for a range of numbers
13838         using ^-^.
13839         Suppress range checks for a couple of assignments which otherwise
13840         cause validity checks with validity checking turned on.
13841
13842         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Size):
13843         Improvement in error message for object.
13844         (Rep_Item_Too_Late): Remove '!' in warning message.
13845
13846 2006-02-13  Robert Dewar  <dewar@adacore.com>
13847             Eric Botcazou  <ebotcazou@adacore.com>
13848
13849         * err_vars.ads: Suppress range checks for a couple of assignments
13850         which otherwise cause validity checks with validity checking turned on.
13851         Update comments.
13852
13853         * errout.adb (Error_Msg_Internal): Do not suppress warning messages.
13854         Make message unconditional if it is a warning.
13855         (Error_Msg_NEL): Always output warning messages.
13856         Suppress range checks for a couple of assignments which otherwise
13857         cause validity checks with validity checking turned on.
13858
13859         * errout.ads (Message Insertion Characters): Document that '!' is
13860         implied by '?' in error messages.
13861
13862         * gnat1drv.adb: (Bad_Body): Remove '!' in warning message.
13863         (Gnat1drv): Use a goto to end of main subprogram instead of
13864         Exit_Program (E_Success) so that finalization can occur normally.
13865
13866 2006-02-13  Eric Botcazou  <ebotcazou@adacore.com>
13867
13868         * s-stchop.adb (Stack_Check): Raise Storage_Error if the argument has
13869         wrapped around.
13870
13871 2006-02-13  Vincent Celier  <celier@adacore.com>
13872
13873         * a-direct.adb (Duration_To_Time, OS_Time_To_Long_Integer): New
13874         Unchecked_Conversion functions.
13875         (Modification_Time): Use direct conversion of OS_Time to Calendar time
13876         when OpenVMS returns False.
13877
13878         * a-dirval-mingw.adb, a-dirval-vms.adb, a-dirval.ads,
13879         a-dirval.adb (OpenVMS): New Boolean function
13880
13881 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
13882             Thomas Quinot  <quinot@adacore.com>
13883
13884         * checks.adb (Build_Discriminant_Checks): If the expression being
13885         checks is an aggregate retrieve the values of its discriminants to
13886         generate the check, rather than creating a temporary and a reference
13887         to it.
13888         (Apply_Access_Check): Rewritten to handle new Is_Known_Null flag
13889         (Install_Null_Excluding_Check): Ditto
13890         (Selected_Length_Checks): Build actual subtype for the original Ck_Node,
13891         not for the renamed object, so that the actual itype is attached in the
13892         proper context.
13893
13894 2006-02-13  Robert Dewar  <dewar@adacore.com>
13895             Vincent Celier  <celier@adacore.com>
13896
13897         * debug.adb: Eliminate numeric switches for binder/gnatmake
13898
13899         * switch-m.adb (Normalize_Compiler_Switches): Record numeric debug
13900         switches for the compiler.
13901         (Scan_Make_Switches): Do not allow numeric debug switches for gnatmake
13902         (Scan_Make_Switches): When failing with an illegal switch, output an
13903         error message with the full switch.
13904         Eliminate numeric switches for binder/gnatmake
13905
13906         * switch.ads, switch.adb (Bad_Switch): New procedure
13907
13908         * switch-b.adb (Scan_Binder_Switches): Do not accept combined switches.
13909         Remove 0-9 as debug flag character possibilities
13910         -d is now controlling the primary stack size when its value is a
13911         positive. Also add checks against invalid values, and support for kb,
13912         mb. Ditto for -D switch.
13913
13914 2006-02-13  Robert Dewar  <dewar@adacore.com>
13915             Serguei Rybin  <rybin@adacore.com>
13916
13917         * opt.ads opt.adb: Add Ada_Version_Explicit_Config along with
13918         save/restore routines.
13919         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
13920         were not always properly handled previously.
13921         Since we are changing the tree format anyway, also get rid of the
13922         junk obsolete Immediate_Errors flag.
13923         (Tree_Read): Change the way of reading Tree_Version_String - now we
13924         read the version string from the tree even if its length is not the
13925         same as the length of the version string computed from Gnatvsn.
13926         (Search_Directory_Present): New Boolean flag for the compiler.
13927         Define Tree_Version_String as a dynamic string.
13928         (Default_Stack_Size): new variable, used to handle switch -d.
13929
13930         * par-prag.adb: 
13931         For pragma Ada_2005, remove stuff about setting Ada_Version_Explicit
13932         only for main unit.
13933         Add pragma Ada_2005 (synonym for Ada_05)
13934         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
13935         were not always properly handled previously.
13936
13937         * directio.ads, ioexcept.ads, sequenio.ads, text_io.ads: Change
13938         explicit Ada_95 to Ada_2005.
13939
13940 2006-02-13  Javier Miranda  <miranda@adacore.com>
13941             Robert Dewar  <dewar@adacore.com>
13942             Ed Schonberg  <schonberg@adacore.com>
13943
13944         * einfo.ads, einfo.adb (First_Tag_Component): Protect the frontend
13945         against errors in the source program: a private types for which the
13946         corresponding full type declaration is missing and pragma CPP_Virtual
13947         is used.
13948         (Is_Unchecked_Union): Check flag on Implementation_Base_Type.
13949         (Is_Known_Null): New flag
13950         (Has_Pragma_Pure): New flag
13951         (No_Return): Present in all entities, set only for procedures
13952         (Is_Limited_Type): A type whose ancestor is an interface is limited if
13953         explicitly declared limited.
13954         (DT_Offset_To_Top_Func): New attribute that is present in E_Component
13955         entities. Only used for component marked Is_Tag. If present it stores
13956         the Offset_To_Top function used to provide this value in tagged types
13957         whose ancestor has discriminants.
13958
13959         * exp_ch2.adb: Update status of new Is_Known_Null flag
13960
13961         * sem_ch7.adb: Maintain status of new Is_Known_Null flag
13962
13963         * sem_cat.adb (Get_Categorization): Don't treat function as Pure in
13964         the categorization sense if Is_Pure was set by pragma Pure_Function.
13965
13966 2006-02-13  Quentin Ochem  <ochem@adacore.com>
13967             Olivier Hainque  <hainque@adacore.com>
13968
13969         * bindusg.adb: Updated documentation for -d and -D switches.
13970
13971         * raise.h (__gnat_set_globals): added new parameter for
13972         Default_Stack_Size.
13973
13974         * init.c (__gnat_adjust_context_for_raise) <alpha-vms case>: Implement.
13975         (__gnat_handle_vms_condition): Adjust context before raise.
13976         (__gnat_install_handler): Restore the global vector setup for GCC
13977         versions before 3.4, as the frame based circtuitry is not available
13978         in this case.
13979         (__gnat_set_globals): added a parameter default_stack_size
13980         (__gl_default_stack_size): new variable.
13981
13982 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
13983
13984         * exp_aggr.adb (Build_Array_Aggr_Code): Rename variable
13985         "Others_Mbox_Present" to "Others_Box_Present" because the mbox concept
13986         does not exist in the Ada RM.
13987         (Compatible_Int_Bounds): Determine whether two integer range bounds
13988         are of equal length and have the same start and end values.
13989         (Is_Int_Range_Bounds): Determine whether a node is an integer range.
13990         (Build_Record_Aggr_Code): Perform proper sliding of a nested array
13991         aggregate when it is part of an object declaration.
13992         (Build_Record_Aggr_Code)  If the aggregate ttype is a derived type that
13993         constrains discriminants of its parent, add explicitly the discriminant
13994         constraints of the ancestor by retrieving them from the
13995         stored_constraint of the parent.
13996
13997 2006-02-13  Robert Dewar  <dewar@adacore.com>
13998
13999         * exp_attr.adb (Expand_N_Attribute_Reference, case Mechanism_Code): If
14000         attribute Mechanism_Code is applied to renamed subprogram, modify
14001         prefix to point to base subprogram.
14002         Max/Min attributes now violate Restriction No_Implicit_Conditionals
14003
14004         * sinfo.ads: Document that Mechanism_Code cannot be applied to
14005         renamed subprograms so that the front-end must replace the prefix
14006         appropriately.
14007
14008 2006-02-13  Javier Miranda  <miranda@adacore.com>
14009             Gary Dismukes  <dismukes@adacore.com>
14010
14011         * exp_ch3.adb (Component_Needs_Simple_Initialization): Add check for
14012         availability of RE_Interface_Tag.
14013         (Build_Initialization_Call): Fix wrong access to the discriminant value.
14014         (Freeze_Record_Type): Do not generate the tables associated with
14015         timed and conditional dispatching calls through synchronized
14016         interfaces if compiling under No_Dispatching_Calls restriction.
14017         When compiling for Ada 2005, for a nonabstract
14018         type with a null extension, call Make_Controlling_Function_Wrappers
14019         and insert the wrapper function declarations and bodies (the latter
14020         being appended as freeze actions).
14021         (Predefined_Primitive_Bodies): Do not generate the bodies of the
14022         predefined primitives associated with timed and conditional
14023         dispatching calls through synchronized interfaces if we are
14024         compiling under No_Dispatching_Calls.
14025         (Build_Init_Procedure):  Use RTE_Available to check if a run-time
14026         service is available before generating a call.
14027         (Make_Controlling_Function_Wrappers): New procedure.
14028         (Expand_N_Full_Type_Declaration): Create a class-wide master for
14029         access-to-limited-interfaces because they can be used to reference
14030         tasks that implement such limited interface.
14031         (Build_Offset_To_Top_Functions): Build the tree corresponding to the
14032         procedure spec and body of the Offset_To_Top function that is generated
14033         when the parent of a type with discriminants has secondary dispatch
14034         tables.
14035         (Init_Secondary_Tags): Handle the case in which the parent of the type
14036         containing secondary dispatch tables has discriminants to generate the
14037         correct arguments to call Set_Offset_To_Top.
14038         (Build_Record_Init_Proc): Add call to Build_Offset_To_Top_Functions.
14039
14040         * a-tags.ads, a-tags.adb: (Check_Index): Removed.
14041         Add Wide_[Wide_]Expanded_Name.
14042         (Get_Predefined_Prim_Op_Address): New subprogram that provides exactly
14043         the same functionality of Get_Prim_Op_Address but applied to predefined
14044         primitive operations because the pointers to the predefined primitives
14045         are now saved in a separate table.
14046         (Parent_Size): Modified to get access to the separate table of primitive
14047         operations or the parent type.
14048         (Set_Predefined_Prim_Op_Address): New subprogram that provides the same
14049         functionality of Set_Prim_Op_Address but applied to predefined primitive
14050         operations.
14051         (Set_Signature): New subprogram used to store the signature of a DT.
14052         (Displace): If the Offset_To_Top value is not static then call the
14053         function generated by the expander to get such value; otherwise use
14054         the value stored in the table of interfaces.
14055         (Offset_To_Top): The type of the actual has been changed to Address to
14056         give the correct support to tagged types with discriminants. In this
14057         case this value is stored just immediately after the tag field.
14058         (Set_Offset_To_Top): Two new formals have been added to indicate if the
14059         offset_to_top value is static and hence pass this value to the run-time
14060         to store it in the table of interfaces, or else if this value is dynamic
14061         and then pass to the run-time the address of a function that is
14062         generated by the expander to provide this value for each object of the
14063         type.
14064
14065         * rtsfind.ads (Default_Prin_Op_Count): Removed.
14066         (Default_Prim_Op_Count): New entity
14067         (Get_Predefined_Prim_Op_Address): New entity
14068         (Set_Predefined_Prim_Op_Address): New entity
14069         (RE_Set_Signature): New entity
14070
14071 2006-02-13  Thomas Quinot  <quinot@adacore.com>
14072             Ed Schonberg  <schonberg@adacore.com>
14073
14074         * exp_ch4.adb (Expand_Allocator_Expression): Pass Allocator => True to
14075         Make_Adjust_Call done for a newly-allocated object.
14076
14077         * exp_ch7.ads, exp_ch7.adb (Expand_Cleanup_Actions): If the statements
14078         in a subprogram are wrapped in a cleanup block, indicate that the
14079         subprogram contains an inner block with an exception handler.
14080         (Make_Adjust_Call): New Boolean formal Allocator indicating whether the
14081         Adjust call is for a newly-allocated object. In that case we must not
14082         assume that the finalization list chain pointers are correct (since they
14083         come from a bit-for-bit copy of the original object's pointers) so if
14084         the attach level would otherwise be zero (no change), we set it to 4
14085         instead to cause the pointers to be reset to null.
14086
14087         * s-finimp.adb (Attach_To_Final_List): New attach level: 4, meaning
14088         reset chain pointers to null.
14089
14090 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
14091
14092         * exp_ch5.adb (Expand_Assign_Array): If the right-hand side is a
14093         string, and the context requires a loop for the assignment (e.g.
14094         because the left-hand side is packed), generate a unique name for the
14095         temporary that holds the string, to prevent spurious name clashes.
14096
14097 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
14098             Javier Miranda  <miranda@adacore.com>
14099             Robert Dewar  <dewar@adacore.com>
14100             Gary Dismukes  <dismukes@adacore.com>
14101
14102         * exp_ch6.adb (Expand_Inlined_Call): Handle calls to functions that
14103         return unconstrained arrays.
14104         Update comments.
14105         (Expand_Call):  An indirect call through an access parameter of a
14106         protected operation is not a protected call.
14107         Add circuit to raise CE in Ada 2005 mode following call
14108         to Raise_Exception.
14109         (Register_DT_Entry): Do nothing if
14110         the run-time does not give support to abstract interfaces.
14111         (Freeze_Subprogram): In case of dispatching operations, do not generate
14112         code to register the operation in the dispatch table if the source
14113         is compiled with No_Dispatching_Calls.
14114         (Register_Predefined_DT_Entry): Generate code that calls the new
14115         run-time subprogram Set_Predefined_Prim_Op_Address instead of
14116         Set_Prim_Op_Address.
14117
14118         * sem_ch5.adb (Analyze_Assignment_Statement): Do not apply length checks
14119         on array assignments if the right-hand side is a function call that has
14120         been inlined. Check is performed on the assignment in the block.
14121         (Process_Bounds): If bounds and range are overloaded, apply preference
14122         rule for root operations to disambiguate, and diagnose true ambiguity.
14123         (Analyze_Assignment): Propagate the tag for a class-wide assignment with
14124         a tag-indeterminate right-hand side even when Expander_Active is True.
14125         Needed to ensure that dispatching calls to T'Input are allowed and
14126         get the tag of the target class-wide object.
14127
14128         * sem_ch6.adb (New_Overloaded_Entity): Handle entities that override
14129         an inherited primitive operation that already overrides several
14130         abstract interface primitives. For transitivity, the new entity must
14131         also override all the abstract interface primitives covered by the
14132         inherited overriden primitive.
14133         Emit warning if new entity differs from homograph in same scope only in
14134         that one has an access parameter and the other one has a parameter of
14135         a general access type with the same designated type, at the same
14136         position in the signature.
14137         (Make_Inequality_Operator): Use source locations of parameters and
14138         subtype marks from corresponding equality operator when creating the
14139         tree structure for the implicit declaration of "/=". This does not
14140         change anything in behaviour except that the decoration of the
14141         components of the subtree created for "/=" allows ASIS to get the
14142         string images of the corresponding identifiers.
14143         (Analyze_Return_Statement): Remove '!' in warning message.
14144         (Check_Statement_Sequence): Likewise.
14145         (Analyze_Subprogram_Body): For an access parameter whose designated type
14146         is an incomplete type imported through a limited_with clause, use the
14147         type of the corresponding formal in the body.
14148         (Check_Returns): Implicit return in No_Return procedure now raises
14149         Program_Error with a compile time warning, instead of beging illegal.
14150         (Has_Single_Return):  Function returning unconstrained type cannot be
14151         inlined if expression in unique return statement is not an identifier.
14152         (Build_Body_To_Inline): It is possible to inline a function call that
14153         returns an unconstrained type if all return statements in the function
14154         return the same local variable. Subsidiary procedure Has_Single_Return
14155         verifies that the body conforms to this restriction.
14156
14157         * sem_res.adb (Resolve_Equality_Op): If the operands do not have the
14158         same type, and  one of them is of an anonymous access type, convert
14159         the other operand to it, so that this is a valid binary operation for
14160         gigi.
14161         (Resolve_Type_Conversion): Handle subtypes of protected types and
14162         task types when accessing to the corresponding record type.
14163         (Resolve_Allocator): Add '\' in 2-line warning message.
14164         Remove '!' in warning message.
14165         (Resolve_Call): Add '\' in 2-line warning message.
14166         (Valid_Conversion): Likewise.
14167         (Resolve_Overloaded_Selected_Component): If disambiguation succeeds, the
14168         resulting type may be an access type with an implicit dereference.
14169         Obtain the proper component from the designated type.
14170         (Make_Call_Into_Operator): Handle properly a call to predefined equality
14171         given by an expanded name with prefix Standard, when the operands are
14172         of an anonymous access type.
14173         (Check_Fully_Declared_Prefix): New procedure, subsidiary of Resolve_
14174         Explicit_Dereference and Resolve_Selected_Component, to verify that the
14175         prefix of the expression is not of an incomplete type. Allows full
14176         diagnoses of all semantic errors.
14177         (Resolve_Actuals): If the actual is an allocator whose directly
14178         designated type is a class-wide interface we build an anonymous
14179         access type to use it as the type of the allocator. Later, when
14180         the subprogram call is expanded, if the interface has a secondary
14181         dispatch table the expander will add a type conversion to force
14182         the displacement of the pointer.
14183         (Resolve_Call): If a function that returns an unconstrained type is
14184         marked Inlined_Always and inlined, the call will be inlined and does
14185         not require the creation of a transient scope.
14186         (Check_Direct_Boolean_Op): Removed
14187         (Resolve_Comparison_Op): Remove call to above
14188         (Resolve_Equality_Op): Remove call to above
14189         (Resolve_Logical_Op): Inline above, since this is only call.
14190         (Valid_Conversion): Handle properly conversions between arrays of
14191         convertible anonymous access types.
14192
14193         PR ada/25885
14194         (Set_Literal_String_Subtype): If the lower bound is not static, wrap
14195         the literal in an unchecked conversion, because GCC 4.x needs a static
14196         value for a string bound.
14197
14198 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
14199             Hristian Kirtchev  <kirtchev@adacore.com>
14200
14201         * exp_ch9.adb (Expand_N_Protected_Type_Declaration): When creating the
14202         components of the corresponding record, take into account component
14203         definitions that are access definitions.
14204         (Expand_N_Asynchronous_Select): A delay unit statement rewritten as a
14205         procedure is not considered a dispatching call and will be expanded
14206         properly.
14207
14208 2006-02-13  Javier Miranda  <miranda@adacore.com>
14209
14210         * exp_disp.ads, exp_disp.adb (Expand_Dispatching_Call): If the
14211         controlling argument of the dispatching call is an abstract interface
14212         class-wide type then we use it directly.
14213         Check No_Dispatching_Calls restriction.
14214         (Default_Prim_Op_Position): Remove the code that looks for the last
14215         entity in the list of aliased subprograms. This code was wrong in
14216         case of renamings.
14217         (Fill_DT_Entry): Add assertion to avoid the use of this subprogram
14218         when the source is compiled with the No_Dispatching_Calls restriction.
14219         (Init_Predefined_Interface_Primitives): No need to inherit primitives
14220         if we are compiling with restriction No_Dispatching_Calls.
14221         (Make_Disp_XXX): Addition of assertion to avoid the use of all these
14222         subprograms if we are compiling under No_Dispatching_Calls restriction.
14223         (Make_DT): Generate a dispatch table with a single dummy entry if
14224         we are compiling with the No_Dispatching_Calls restriction. In
14225         addition, in this case we don't generate code that calls to the
14226         following run-time subprograms: Set_Type_Kind, Inherit_DT.
14227         (Make_Select_Specific_Data_Table): Add assertion to avoid the use
14228         of this subprogram if compiling with the No_Dispatching_Calls
14229         restriction.
14230         (Expand_Type_Conversion): Instead of using the actual parameter,
14231         the argument passed as parameter to the conversion function was
14232         erroneously referenced by the expander.
14233         (Ada_Actions): Addition of Get_Predefined_Prim_Op_Address,
14234         Set_Predefined_Primitive_Op_Address and Set_Signature.
14235         (Expand_Dispatching_Call): Generate call to
14236         Get_Predefined_Prim_Op_Address for predefined primitives.
14237         (Fill_DT_Entry): Generate call to Set_Predefined_Prim_Op_Address for
14238         predefined primitives.
14239         (Make_DT, Make_Secondary_DT): If the tagged type has no user defined
14240         primitives we reserve one dummy entry to ensure that the tag does not
14241         point to some memory that is associated with some other object. In
14242         addition, remove all the old code that generated the assignments
14243         associated with the signature of the dispatch table and replace them
14244         by a call to the new subprogram Set_Signature.
14245         (Set_All_DT_Position): Change the algorithm because now we have a
14246         separate dispatch table associated with predefined primitive operations.
14247         (Expand_Interface_Conversion): In case of non-static offset_to_top
14248         add explicit dereference to get access to the object after the call
14249         to displace the pointer to the object.
14250         (Expand_Interface_Thunk): Modify the generation of the actual used
14251         in the calls to the run-time function Offset_To_Top to fulfil its
14252         new interface.
14253         (Make_DT): Add the new actuals required to call Set_Offset_To_Top.
14254
14255 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
14256
14257         * exp_dist.adb (Copy_Specification): For access parameters, copy
14258         Null_Exclusion flag, which will have been set for stream subprograms
14259         in Ada2005 mode.
14260
14261 2006-02-13  Pascal Obry  <obry@adacore.com>
14262
14263         * expect.c (__gnat_expect_portable_execvp): New implementation. The
14264         previous implementation was using the C runtime spawnve routine but
14265         the corresponding wait was using directly the Win32 API. This was
14266         causing some times a lock when waiting for an event using
14267         WaitForSingleObject in __gnat_waitpid. This new implementation uses
14268         the Win32 CreateProcess routine. Avoiding mixing C runtime and Win32
14269         API fixes this problem.
14270
14271 2006-02-13  Robert Dewar  <dewar@adacore.com>
14272
14273         * exp_intr.adb (Expand_Unc_Deallocation): Correct error of bad analyze
14274         call.
14275
14276 2006-02-13  Thomas Quinot  <quinot@adacore.com>
14277
14278         * exp_pakd.ads: Fix typos in comments.
14279
14280         * exp_pakd.adb (Convert_To_PAT_Type): For the case of a bit packed
14281         array reference that is an explicit dereference, mark the converted
14282         (packed) array reference as analyzed to prevent a forthcoming
14283         reanalysis from resetting its type to the original (non-packed) array
14284         type.
14285
14286 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
14287             Javier Miranda  <miranda@adacore.com>
14288             Eric Botcazou  <ebotcazou@adacore.com>
14289
14290         * exp_util.ads, exp_util.adb (Find_Prim_Op,
14291         Is_Predefined_Primitive_Operation): When
14292         searching for the predefined equality operator, verify that operands
14293         have the same type.
14294         (Is_Predefined_Dispatching_Operation): Remove the code that looks
14295         for the last entity in the list of aliased subprograms. This code
14296         was wrong in case of renamings.
14297         (Set_Renamed_Subprogram): New procedure
14298         (Remove_Side_Effects): Replace calls to Etype (Exp) with use of the
14299         Exp_Type constant computed when entering this subprogram.
14300         (Known_Null): New function
14301         (OK_To_Do_Constant_Replacement): New function
14302         (Known_Non_Null): Check scope before believing Is_Known_Non_Null flag
14303         (Side_Effect_Free): An attribute reference 'Input is not free of
14304         side effect, unlike other attributes that are functions. (from code
14305         reading).
14306         (Remove_Side_Effects): Expressions that involve packed arrays or records
14307         are copied at the point of reference, and therefore must be marked as
14308         renamings of objects.
14309         (Is_Predefined_Dispatching_Operation): Return false if the operation is
14310         not a dispatching operation.
14311
14312         PR ada/18819
14313         (Remove_Side_Effects): Lift enclosing type conversion nodes for
14314         elementary types in all cases.
14315
14316 2006-02-13  Javier Miranda  <miranda@adacore.com>
14317
14318         * freeze.adb (Freeze_Entity): Handle subtypes of protected types and
14319         task types when accessing to the corresponding record type.
14320         Remove '!' in warning message.
14321
14322 2006-02-13  Olivier Hainque  <hainque@adacore.com>
14323
14324         * g-altive.ads (VECTOR_ALIGNMENT): Set to Min (16, Max_Alignment),
14325         to avoid useless and space inefficient overalignments on targets where
14326         Max_Alignment is larger than 16.
14327
14328 2006-02-13  Pascal Obry  <obry@adacore.com>
14329
14330         * g-catiio.adb (Sec_Number): New type used to compute the number of
14331         seconds since 1-1-1970.
14332         (Image) [Natural]: The parameter was an Integer, as we can't deal with
14333         negative numbers (years, months...) it is better to have a Natural here.
14334         Code clean-up.
14335         (Image) [Number]: Change parameter from Long_Integer to Number.
14336         (Image): Use Number type to compute the seconds since 1-1-1970 to fix an
14337         overflow for dates past year 2038.
14338
14339 2006-02-13  Matthew Heaney  <heaney@adacore.com>
14340
14341         *  g-dyntab.adb (Index_Of): conversion from Natural can no longer raise
14342         Constraint_Error.
14343
14344 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
14345
14346         * gnatbind.adb (Scan_Bind_Arg): Replace error by warning on -M and
14347         native platforms.
14348         (Gnatbind): Do not call Exit_Program (E_Success) at the end, so that
14349         finalization can occur normally.
14350
14351 2006-02-13  Vincent Celier  <celier@adacore.com>
14352
14353         * gnatcmd.adb (Rules_Switches): New table
14354         (Add_To_Rules_Switches): New procedure
14355         (GNATCmd): For command CHECK, put all options following "-rules" in the
14356         Rules_Switches table. Append these -rules switches after the -cargs
14357         switches.
14358
14359 2006-02-13  Robert Dewar  <dewar@adacore.com>
14360
14361         * g-spipat.adb (Image, case PC_Assign_Imm and case PC_Assign_OnM):
14362         These two cases were generating incorrect output, and if this unit
14363         was built with checks on, generated a discriminant mismatch constraint
14364         error.
14365
14366 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
14367             Robert Dewar  <dewar@adacore.com>
14368
14369         * lib-xref.adb (Get_Type_Reference): For a private type whose full
14370         view is an array type, indicate the component type as well, for
14371         navigation purposes.
14372         (Generate_Reference): Don't consider array ref on LHS to be a case
14373         of violating pragma Unreferenced.
14374         Do not give Ada 2005 warning except on real reference.
14375
14376 2006-02-13  Vincent Celier  <celier@adacore.com>
14377
14378         * make.adb (Collect_Arguments_And_Compile): For VMS, when compiling the
14379         main source, add switch -mdebug-main=_ada_ so that the executable can
14380         be debugged by the standard VMS debugger.
14381         (Gnatmake): Set No_Main_Subprogram to True when there is no main
14382         subprogram, to avoid issuing -mdebug-main=_ada_ for VMS uselessly.
14383         Exit the Multi_Main_Loop when Unique_Compile is True after compilation
14384         of the last source, as the binding and linking phases are never
14385         performed.
14386         Set all executable obsolete when rebuilding a library.
14387
14388         * makeutl.adb (Linker_Options_Switches): Do not process empty linker
14389         options.
14390
14391 2006-02-13  Javier Miranda  <miranda@adacore.com>
14392
14393         PR ada/23973
14394         * par-ch3.adb (P_Derived_Type_Def_Or_Private_Ext_Decl): Reorganize the
14395         code to improve the error message reported when the program has
14396         declarations of abstract interface types and it is not compiled with
14397         the -gnat05 switch.
14398         (P_Access_Definition): Reorganize the code to improve the error
14399         message reported when the new Ada 2005 syntax for anonymous
14400         access types is used and the program is not compiled with the
14401         -gnat05 switch.
14402
14403 2006-02-13  Robert Dewar  <dewar@adacore.com>
14404
14405         * par-ch6.adb, style.ads, styleg.adb, styleg.ads, stylesw.adb,
14406         stylesw.ads, usage.adb, vms_data.ads: Implement -gnatyI switch
14407         (MODE_IN)
14408
14409 2006-02-13  Javier Miranda  <miranda@adacore.com>
14410
14411         * par-endh.adb (Explicit_Start_Label): Add code to protect the parser
14412         against source containing syntax errors.
14413
14414 2006-02-13  Vincent Celier  <celier@adacore.com>
14415
14416         * prj.adb (Reset): Initialize the first element of table Namings with
14417         the standard naming data.
14418
14419 2006-02-13  Vincent Celier  <celier@adacore.com>
14420
14421         * prj.ads (Error_Warning): New enumeration type
14422
14423         * prj-nmsc.ads, prj-nmsc.adb (Error_Msg): If location parameter is
14424         unknown, use the location of the project to report the error.
14425         (When_No_Sources): New global variable
14426         (Report_No_Ada_Sources): New procedure
14427         (Check): New parameter When_No_Sources. Set value of global variable
14428         When_No_Sources,
14429         (Find_Sources): Call Report_No_Ada_Sources when appropriate
14430         (Get_Sources_From_File): Ditto
14431         (Warn_If_Not_Sources): Better warning messages indicating the unit name
14432         and the file name.
14433
14434         * prj-pars.ads, prj-pars.adb (Parse): New parameter When_No_Sources.
14435         Call Prj.Proc.Process with parameter When_No_Sources.
14436
14437         * prj-proc.ads, prj-proc.adb (Check): New parameter When_No_Sources.
14438         Call Recursive_Check with parameter When_No_Sources.
14439         (Recursive_Check): New parameter When_No_Sources. Call itself and
14440         Prj.Nmsc.Check with parameter When_No_Sources.
14441         (Process): New parameter When_No_Sources. Call Check with parameter
14442         When_No_Sources.
14443         (Copy_Package_Declarations): New procedure to copy renamed parameters
14444         and setting the location of the declared attributes to the location
14445         of the renamed package.
14446         (Process_Declarative_Items): Call Copy_Package_Declarations for renamed
14447         packages.
14448
14449 2006-02-13  Vincent Celier  <celier@adacore.com>
14450
14451         * prj-makr.adb (Make): Preserve the comments from the original project
14452         file.
14453         When removing nodes (attributes Source_Dirs, Source_Files,
14454         Source_List_File and package Naming), save the comments and attach the
14455         saved comments to the newly created nodes.
14456         Do not add a with clause for the naming package if one already exists.
14457
14458 2006-02-13  Javier Miranda  <miranda@adacore.com>
14459             Gary Dismukes  <dismukes@adacore.com>
14460             Robert Dewar  <dewar@adacore.com>
14461
14462         * restrict.ads (No_Dispatching_Calls): New GNAT restriction.
14463
14464         * sem_disp.adb (Override_Dispatching_Operation): Traverse the list of
14465         aliased entities to look for the overriden abstract interface
14466         subprogram.
14467         (Is_Interface_Subprogram): Complete documentation.
14468         (Check_Dispatching_Operation): Do not generate code to register the
14469         operation in the dispatch table if the source is compiled with
14470         restriction No_Dispatching_Calls.
14471         (Override_Dispatching_Operation): Check for illegal attempt to override
14472         No_Return procedure with procedure that is not No_Return
14473         (Check_Dispatching_Call): Suppress the check for an abstract operation
14474         when the original node of an actual is a tag-indeterminate attribute
14475         call, since the attribute, which must be 'Input, can never be abstract.
14476         (Is_Tag_Indeterminate): Handle checking of tag indeterminacy of a
14477         call to the Input attribute (even when rewritten).
14478         (Propagate_Tag): Augment comment to indicate the possibility of a call
14479         to an Input attribute.
14480
14481         * sem_disp.ads (Override_Dispatching_Operation): Moved to spec to allow
14482         calling it from Exp_Ch3.Make_Controlling_Function_Wrappers.
14483
14484         * s-rident.ads: (No_Dispatching_Calls): New GNAT restriction.
14485         No_Wide_Characters is no longer partition-wide
14486         No_Implementation_Attributes/Pragmas are now Ada 2005 (AI-257)
14487         rather than GNAT
14488
14489 2006-02-13  Douglas Rupp  <rupp@adacore.com>
14490
14491         * s-auxdec-vms_64.ads (Short_Address): Wrap it in a type.
14492
14493 2006-02-13  Javier Miranda  <miranda@adacore.com>
14494
14495         * sem_aggr.adb (Resolve_Record_Aggregate): Restructure the code that
14496         handles default-initialized components to keep separate the management
14497         of this feature but also avoid the unrequired resolution and
14498         expansion of components that do not have partially initialized
14499         values.
14500         (Collect_Aggr_Bounds): Add '\' in 2-line warning message.
14501         (Check_Bounds): Likewise.
14502         (Check_Length): Likewise.
14503
14504 2006-02-13  Javier Miranda  <miranda@adacore.com>
14505             Ed Schonberg  <schonberg@adacore.com>
14506
14507         * sem_attr.adb (Analyze_Attribute): In case of 'Class applied to an
14508         abstract interface type call analyze_and_resolve to expand the type
14509         conversion into the corresponding displacement of the
14510         reference to the base of the object.
14511         (Eval_Attribute, case Width): For systems where IEEE extended precision
14512         is supported, the maximum exponent occupies 4 decimal digits.
14513         (Accessibility_Message): Add '\' in 2-line warning message.
14514         (Resolve_Attribute): Likewise.
14515         (case Attribute_Access): Significantly revise checks
14516         for illegal access-to-subprogram Access attributes to properly enforce
14517         the rules of 3.10.2(32/2).
14518         Diagnose use of current instance with an illegal attribute.
14519
14520         * sem_util.ads, sem_util.adb (Enclosing_Generic_Body): Change formal
14521         to a Node_Id.
14522         (Enclosing_Generic_Unit): New function to return a node's innermost
14523         enclosing generic declaration node.
14524         (Compile_Time_Constraint_Error): Remove '!' in warning messages.
14525         (Type_Access_Level): The accessibility level of anonymous acccess types
14526         associated with discriminants is that of the current instance of the
14527         type, and that's deeper than the type itself (AARM 3.10.2 (12.3.21)).
14528         (Compile_Time_Constraint_Error): Handle case of conditional expression.
14529         (Kill_Current_Values_For_Entity): New function
14530         (Enter_Name): Change formal type to Entity_Id
14531
14532 2006-02-13  Hristian Kirtchev  <kirtchev@adacore.com>
14533             Ed Schonberg  <schonberg@adacore.com>
14534             Gary Dismukes  <dismukes@adacore.com>
14535
14536         * sem_ch10.adb (Check_Redundant_Withs): New procedure in
14537         Analyze_Compilation_Unit.
14538         Detect and warn on redundant with clauses detected in a package spec
14539         and/or body when -gnatwr is used.
14540         (Analyze_Context): Analyze config pragmas before other items
14541         (Install_Context_Items): Don't analyze config pragmas here
14542         (Install_Limited_Withed_Unit): Set limited entity of package in
14543         with_clause so that cross-reference information or warning messages on
14544         unused packages can be properly generated
14545         (Is_Visible_Through_Renamings): Return false if the limited_with_clause
14546         has Error_Posted set. Prevent infinite loops in illegal programs.
14547         (Check_Private_Child_Unit): Move test for a nonprivate with clause down
14548         to the point of the error test requiring the current unit to be private.
14549         This ensures that private with clauses are not exempted from the basic
14550         checking for being a descendant of the same library unit parent as a
14551         withed private descendant unit.
14552         (Check_Private_Limited_Withed_Unit): Revise the checking algorithm to
14553         handle private with clauses properly, as well as to account for cases
14554         where the withed unit is a public descendant of a private ancestor
14555         (in which case the current unit must be a descendant of the private
14556         ancestor's parent). The spec comments were updated accordingly. Also,
14557         the old error message in this subprogram was replaced with error
14558         messages that mirror the errors tested and reported by
14559         Check_Private_Child_Unit.
14560         Parameter and variable names improved for readability.
14561         (Install_Limited_Context_Clauses): Remove test for a withed unit being
14562         private as the precondition for calling
14563         Check_Private_Limited_Withed_Unit since that subprogram has been
14564         revised to test public units as well as private units.
14565
14566 2006-02-13  Thomas Quinot  <quinot@adacore.com>
14567             Robert Dewar  <dewar@adacore.com>
14568             Ed Schonberg  <schonberg@adacore.com>
14569             Javier Miranda  <miranda@adacore.com>
14570
14571         * sem_ch12.adb (Inline_Instance_Body): Remove erroneous assumption
14572         that Scope_Stack.First = 1.
14573         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
14574         were not always properly handled previously.
14575         (Formal_Entity): Complete rewrite, to handle properly some complex case
14576         with multiple levels of parametrization by formal packages.
14577         (Analyze_Formal_Derived_Type): Propagate Ada 2005 "limited" indicator
14578         to the corresponding derived type declaration for proper semantics.
14579
14580         * sem_prag.adb (Analyze_Pragma): Remove '!' in warning message.
14581         (Check_Component): Enforce restriction on components of
14582         unchecked_unions: a component in a variant cannot contain tasks or
14583         controlled types.
14584         (Unchecked_Union): Allow nested variants and multiple discriminants, to
14585         conform to AI-216.
14586         Add pragma Ada_2005 (synonym for Ada_05)
14587         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
14588         were not always properly handled previously.
14589         Document that pragma Propagate_Exceptions has no effect
14590         (Analyze_Pragma, case Pure): Set new flag Has_Pragma_Pure
14591         (Set_Convention_From_Pragma): Check that if a convention is
14592         specified for a dispatching operation, then it must be
14593         consistent with the existing convention for the operation.
14594         (CPP_Class): Because of the C++ ABI compatibility, the programmer is no
14595         longer required to specify an vtable-ptr component in the record. For
14596         compatibility reasons we leave the support for the previous definition.
14597         (Analyze_Pragma, case No_Return): Allow multiple arguments
14598
14599         * sem_ch3.ads, sem_ch3.adb (Check_Abstract_Overriding): Flag a
14600         non-overrideen inherited operation with a controlling result as
14601         illegal only its implicit declaration comes from the derived type
14602         declaration of its result's type.
14603         (Check_Possible_Deferred_Completion): Relocate the object definition
14604         node of the subtype indication of a deferred constant completion rather
14605         than directly analyzing it. The analysis of the generated subtype will
14606         correctly decorate the GNAT tree.
14607         (Record_Type_Declaration): Check whether this is a declaration for a
14608         limited derived record before analyzing components.
14609         (Analyze_Component_Declaration): Diagnose record types  not explicitly
14610         declared limited when a component has a limited type.
14611         (Build_Derived_Record_Type): Code reorganization to check if some of
14612         the inherited subprograms of a tagged type cover interface primitives.
14613         This check was missing in case of a full-type associated with a private
14614         type declaration.
14615         (Constant_Redeclaration): Check that the subtypes of the partial and the
14616         full view of a constrained deferred constant statically match.
14617         (Mentions_T): A reference to the current type in an anonymous access
14618         component declaration  must be an entity name.
14619         (Make_Incomplete_Type_Declaration): If type is tagged, set type of
14620         class_wide type to refer to full type, not to the incomplete one.
14621         (Add_Interface_Tag_Components): Do nothing if RE_Interface_Tag is not
14622         available. Required to give support to the certified run-time.
14623         (Analyze_Component_Declaration): In case of anonymous access components
14624         perform missing checks for AARM 3.9.2(9) and 3.10.2 (12.2).
14625         (Process_Discriminants): For an access discriminant, use the
14626         discriminant specification as the associated_node_for_itype, to
14627         simplify accessibility checks.
14628
14629 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
14630             Javier Miranda  <miranda@adacore.com>
14631
14632         * sem_ch4.adb (Remove_Abstract_Interpretations): Even if there are no
14633         abstract interpretations on an operator, remove interpretations that
14634         yield Address or a type derived from it, if one of the operands is an
14635         integer literal.
14636         (Try_Object_Operation.Try_Primitive_Operation,
14637         Try_Object_Operation.Try_Class_Wide_Operation): Set proper source
14638         location when creating the new reference to a primitive or class-wide
14639         operation as a part of rewriting a subprogram call.
14640         (Try_Primitive_Operations): If context requires a function, collect all
14641         interpretations after the first match, because there may be primitive
14642         operations of the same type with the same profile and different return
14643         types. From code reading.
14644         (Try_Primitive_Operation): Use the node kind to choose the proper
14645         operation when a function and a procedure have the same parameter
14646         profile.
14647         (Complete_Object_Operation): If formal is an access parameter and prefix
14648         is an object, rewrite as an Access reference, to match signature of
14649         primitive operation.
14650         (Find_Equality_Type, Find_One_Interp): Handle properly equality given
14651         by an expanded name with prefix Standard, when the operands are of an
14652         anonymous access type.
14653         (Remove_Abstract_Operations): If the operation is abstract because it is
14654         inherited by a user-defined type derived from Address, remove it as
14655         well from the set of candidate interpretations of an overloaded node.
14656         (Analyze_Membership_Op): Membership test not applicable to cpp-class
14657         types.
14658
14659 2006-02-13  Bob Duff  <duff@adacore.com>
14660
14661         * sem_ch8.adb (Note_Redundant_Use): Suppress unhelpful warning about
14662         redundant use clauses.
14663         In particular, if the scope of two use clauses overlaps, but one is not
14664         entirely included in the other, we should not warn.  This can happen
14665         with nested packages.
14666         (Analyze_Subprogram_Renaming): Protect the compiler against previously
14667         reported errors. The bug was reported when the compiler was built
14668         with assertions enabled.
14669         (Find_Type): If the node is a 'Class reference and the prefix is a
14670         synchronized type without a corresponding record, return the type
14671         itself.
14672
14673 2006-02-13  Javier Miranda  <miranda@adacore.com>
14674
14675         * sem_ch9.adb (Analyze_Protected_Type, Analyze_Task_Type): Check that
14676         if this is the full-declaration associated with a private declaration
14677         that implement interfaces, then the private type declaration must be
14678         limited.
14679         (Analyze_Single_Protected, Analyze_Single_Task): Do not mark the object
14680         as aliased. The use of the 'access attribute is not available for such
14681         object (for this purpose the object should be explicitly marked as
14682         aliased, but being an anonymous type this is not possible).
14683
14684 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
14685             Robert Dewar  <dewar@adacore.com>
14686
14687         * sem_elab.adb (Same_Elaboration_Scope): A package that is a
14688         compilation unit is an elaboration scope.
14689         (Add_Task_Proc): Add '\' in 2-line warning message.
14690         (Activate_All_Desirable): Deal with case of unit with'ed by parent
14691
14692 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
14693             Javier Miranda  <miranda@adacore.com>
14694
14695         * sem_type.adb (Write_Overloads): Improve display of candidate
14696         interpretations.
14697         (Add_One_Interp): Do not add to the list of interpretations aliased
14698         entities corresponding with an abstract interface type that is an
14699         immediate ancestor of a tagged type; otherwise we have a dummy
14700         conflict between this entity and the aliased entity.
14701         (Disambiguate): The predefined equality on universal_access is not
14702         usable if there is a user-defined equality with the proper signature,
14703         declared in the same declarative part as the designated type.
14704         (Find_Unique_Type): The universal_access equality operator defined under
14705         AI-230 does not cover pool specific access types.
14706         (Covers): If one of the types is a generic actual subtype, check whether
14707         it matches the partial view of the other type.
14708
14709 2006-02-13  Thomas Quinot  <quinot@adacore.com>
14710
14711         * sinput-d.adb (Write_Line): Update the Source_Index_Table after each
14712         line. This is necessary to allow In_Extended_Main_Unit to provide
14713         correct results for itypes while writing out expanded source.
14714         (Close_File): No need to update the source_index_table here since it's
14715         now done for each line.
14716
14717 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
14718             Robert Dewar  <dewar@adacore.com>
14719
14720         * sprint.adb (Write_Itype): Preserve Sloc of declaration, if any, to
14721         preserve the source unit where the itype is declared, and prevent a
14722         backend abort.
14723         (Note_Implicit_Run_Time_Call): New procedure
14724         (Write_Itype): Handle missing cases (E_Class_Wide_Type and
14725         E_Subprogram_Type)
14726
14727         * sprint.ads: Document use of $ for implicit run time routine call
14728
14729 2006-02-13  Quentin Ochem  <ochem@adacore.com>
14730
14731         * s-stausa.adb (Initialize_Analyzer): fixed error in assignment of
14732         task name.
14733
14734 2006-02-13  Bob Duff  <duff@adacore.com>
14735
14736         * s-valint.adb (Scan_Integer): Call Scan_Raw_Unsigned instead of
14737         Scan_Unsigned, so we do not scan leading blanks and sign twice.
14738         Integer'Value("- 5") and Integer'Value("-+5") now correctly
14739         raise Constraint_Error.
14740
14741         * s-vallli.adb (Scan_Long_Long_Integer): Call
14742         Scan_Raw_Long_Long_Unsigned instead of Scan_Long_Long_Unsigned, so we
14743         do not scan leading blanks and sign twice.
14744         Integer'Value("- 5") and Integer'Value("-+5") now correctly
14745         raise Constraint_Error.
14746
14747         * s-valllu.ads, s-valllu.adb (Scan_Raw_Long_Long_Unsigned,
14748         Scan_Long_Long_Unsigned): Split out most of the processing from
14749         Scan_Long_Long_Unsigned out into
14750         Scan_Raw_Long_Long_Unsigned, so that Val_LLI can call the Raw_ version.
14751         This prevents scanning leading blanks and sign twice.
14752         Also fixed a bug: Modular'Value("-0") should raise Constraint_Error
14753         See RM-3.5(44).
14754
14755         * s-valuns.ads, s-valuns.adb (Scan_Raw_Unsigned, Scan_Unsigned): Split
14756         out most of the processing from Scan_Unsigned out into
14757         Scan_Raw_Unsigned, so that Val_LLI can call the Raw_ version.
14758         This prevents scanning leading blanks and sign twice.
14759
14760         * s-valuti.ads, s-valuti.adb (Scan_Plus_Sign): Add Scan_Plus_Sign, for
14761         use with Modular'Value attribute.
14762         (Scan_Plus_Sign): Add Scan_Plus_Sign, for use with Modular'Value
14763         attribute.
14764
14765 2006-02-13  Robert Dewar  <dewar@adacore.com>
14766
14767         * s-wchjis.adb (JIS_To_EUC): Raise Constraint_Error for invalid value
14768
14769 2006-02-13  Eric Botcazou  <ebotcazou@adacore.com>
14770
14771         * tracebak.c (PPC AIX/Darwin): Define FORCE_CALL to 1.
14772         (PPC VxWorks): Likewise.
14773         (Generic unwinder): Define FORCE_CALL to 0 if not already defined.
14774         (forced_callee): Make non-inlinable and non-pure.
14775         (__gnat_backtrace): Call forced_callee if FORCE_CALL is set to 1.
14776
14777 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
14778             Ben Brosgol  <brosgol@adacore.com>
14779             Robert Dewar  <dewar@adacore.com>
14780
14781         * gnat_rm.texi, gnat_ugn.texi: Remove limitations with sparc m64
14782         support.
14783         Document that gnatbind -M option is for cross environments only.
14784         Added description of using gnatmem to trace gnat rtl allocs and deallocs
14785         Add note on use of $ to label implicit run time calls
14786         Add documentation for -gnatyI (check mode IN)
14787         Updated chapter on compatibility with HP Ada
14788         VMS-oriented edits.
14789         Ran spell and corrected errors
14790         Add documentation for gnatbind -d and rework documentation of -D
14791         at the same time.
14792         Add subprogram/data elimination section.
14793         Minor editing of annex A.
14794         Add section for gnatcheck.
14795         Add documentation for restriction No_Dispatching_Calls
14796         Add documentation for pragma Ada_2005
14797         Remove mention of obsolete pragma Propagate_Exceptions
14798         Document that pragma Unreferenced can appear after DO in ACCEPT
14799         Clarify Pure_Function for library level units
14800         Mention Max/Min in connection with No_Implicit_Conditionals
14801         No_Wide_Characters restriction is no longer partition-wide
14802         Add a nice example for Universal_Literal_String attribute
14803         Document that pragma No_Return can take multiple arguments
14804
14805         * ug_words: Added entry for gnatcheck
14806
14807         * g-ctrl_c.ads (Install_Handler): Enhance comments
14808
14809         * g-os_lib.ads: Add comments to OS_Exit that it is abrupt termination
14810
14811         * g-trasym.ads: Add documentation on how to do off line symbolic
14812         traceback computation.
14813
14814         * s-fatgen.adb: Add comments for Unaligned_Valid
14815
14816         * stand.ads: Fix typo in comment
14817
14818 2006-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14819
14820         * Make-lang.in (check-gnat): Run run_acats with $(SHELL).
14821
14822 2006-02-06  Roger Sayle  <roger@eyesopen.com>
14823
14824         * decl.c (gnat_substitute_in_type): Don't handle CHAR_TYPE.
14825
14826 2006-02-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14827
14828         PR target/25926
14829         * initialize.c (__gnat_initialize): Provide HP-UX 10 host and target
14830         implementation that calls __main.
14831
14832 2006-01-25  Peter O'Gorman  <peter@pogma.com>
14833
14834         PR bootstrap/25859
14835         * Makefile.in (GCC_LINK): Remove quotes.
14836         (tools targets): Link with either $(GNATLINK) --GCC="$(GCC_LINK)"
14837         or $(GCC_LINK).
14838
14839         (powerpc-darwin): Pass -shared-libgcc when building shared library.
14840
14841 2006-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14842
14843         PR ada/24533
14844         * s-osinte-linux-hppa.ads: Reduce alignment of atomic_lock_t to 8.
14845
14846 2005-12-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14847
14848         * s-osinte-linux-hppa.ads: Correct alignment of atomic_lock_t.
14849
14850 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
14851
14852         * Makefile.in: Remove dummy setting of GCC_FOR_TARGET, no longer
14853         needed.
14854
14855 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
14856
14857         * Make-lang.in: Update dependencies
14858
14859 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
14860
14861         * Make-lang.in: Add rule for ada/exp_sel.o
14862
14863 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
14864
14865         * Makefile.in (mingw section): Remove EH_MECHANISM setting.
14866
14867 2005-12-09  Arnaud Charlet  <charlet@adacore.com>
14868
14869         * gnatvsn.ads (Library_Version): Bump to version 4.2
14870         (ASIS_Version_Number): Bumped.
14871
14872 2005-12-09  Doug Rupp  <rupp@adacore.com>
14873
14874         * mlib-tgt-vms-ia64.adb, mlib-tgt-vms-alpha.adb (Is_Interface): Change
14875         Ada bind file prefix on VMS from b$ to b__.
14876         (Build_Dynamic_Library): Change Init file suffix on VMS from $init to
14877         __init.
14878
14879         * prj-nmsc.adb: Change some Hostparm.OpenVMS checks to
14880         Targparm.OpenVMS_On_Target.
14881         (Object_Suffix): Initialize with target object suffix.
14882         (Get_Unit): Change Ada bind file prefix on VMS from b$ to b__.
14883
14884         * butil.adb: Change some Hostparm.OpenVMS checks to
14885         Targparm.OpenVMS_On_Target.
14886
14887         * clean.adb: Change some Hostparm.OpenVMS checks to
14888         Targparm.OpenVMS_On_Target.
14889         (Object_Suffix): Initialize with call to Get_Target_Object_Suffix.
14890         ({declaraction},Delete_Binder_Generated_Files,{initialization}): Change
14891         Ada bind file prefix on VMS from b$ to b__.
14892
14893         * gnatlink.adb (Process_Args): Call Add_Src_Search_Dir for -I in
14894         --GCC so that Get_Target_Parameters can find system.ads.
14895         (Gnatlink): Call Get_Target_Parameters in mainline.
14896         Initialize standard packages for Targparm.
14897         Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target.
14898         (Process_Args): Also Check for object files with target object
14899         extension.
14900         (Make_Binder_File_Names): Create with target object extension.
14901         (Make_Binder_File_Names): Change Ada bind file prefix on VMS from b$
14902         to b__.
14903
14904         * mlib-prj.adb: Change some Hostparm.OpenVMS checks to
14905         Targparm.OpenVMS_On_Target.
14906         ({declaration},Build_Library,Check_Library): Change Ada bind file
14907         prefix on VMS from b$ to b__.
14908
14909         * osint-b.adb: Change some Hostparm.OpenVMS checks to
14910         Targparm.OpenVMS_On_Target.
14911         (Create_Binder_Output): Change Ada bind file prefix on VMS from b$ to
14912         b__.
14913
14914         * targext.c: New file.
14915
14916         * Makefile.in: add support for vxworks653 builds
14917         (../../vxaddr2line): gnatlink with targext.o.
14918         (TOOLS_LIBS): Move targext.o to precede libgnat.
14919         (init.o, initialize.o): Minor clean up in dependencies.
14920         (GNATLINK_OBJS): Add targparm.o, snames.o
14921         Add rules fo building targext.o and linking it explicitly with all
14922         tools.
14923         Also add targext.o to gnatlib.
14924
14925         * Make-lang.in: Add rules for building targext.o and linking it in
14926         with gnat1 and gnatbind.
14927         Add entry for exp_sel.o.
14928
14929         * osint.adb Change some Hostparm.OpenVMS checks to
14930         Targparm.OpenVMS_On_Target.
14931         (Object_File_Name): Use target object suffix.
14932
14933         * osint.ads (Object_Suffix): Remove, no longer used.
14934         (Target_Object_Suffix): Initialize with target object suffix.
14935
14936         * rident.ads: Add special exception to license.
14937
14938         * targparm.adb (Get_Target_Parameters): Set the value of
14939         Multi_Unit_Index_Character after OpenVMS_On_Target gets its definitive
14940         value.
14941         (Get_Target_Parameters): Set OpenVMS_On_Target if openvms.
14942         
14943         * targparm.ads: Add special exception to license.
14944
14945         * g-os_lib.ads, g-os_lib.adb (Get_Target_Debuggable_Suffix): New
14946         function.
14947         (Copy_File): Make sure from file is closed if error on to file
14948         (Get_Target_Executable_Suffix, Get_Target_Object_Suffix): New functions.
14949
14950         * make.adb (Object_Suffix): Intialize with Get_Target_Object_Suffix.
14951         (Executable_Suffix): Intialize with Get_Target_Executable_Suffix.
14952
14953         * osint-c.adb (Set_Output_Object_File_Name): Initialize extension with
14954         target object suffix.
14955
14956 2005-12-09  Jose Ruiz  <ruiz@adacore.com>
14957             Quentin Ochem  <ochem@adacore.com>
14958             Florian Villoing  <villoing@adacore.com>
14959
14960         * a-taster.ads, a-taster.adb: New files.
14961
14962         * a-elchha.adb (Last_Chance_Handler): Change the task termination soft
14963         link to the version that does nothing. This way the task termination
14964         routine is not executed twice for the environment task when finishing
14965         because of an unhandled exception.
14966
14967         * a-exextr.adb (Notify_Unhandled_Exception): Call the task termination
14968         handler because of an unhandled exception.
14969
14970         * a-taside.adb (Abort_Tasks): Call the Abort_Tasks procedure from
14971         System.Tasking.Utilities instead of that in System.Tasking.Stages.
14972
14973         * s-finimp.adb (initialization code): Modify the soft link for the
14974         finalization of the global list instead of Adafinal.
14975
14976         * s-soflin.ads, s-soflin.adb (Task_Termination_NT): Add this
14977         non-tasking version of the soft link for task termination. We do
14978         nothing since if we are using the non-tasking version it
14979         means that the task termination functionality is not used.
14980         (Null_Finalize_Global_List): Add this null version for the procedure
14981         in charge of finalizing the global list for controlled objects.
14982         (Null_Adafinal): Remove this procedure. Adafinal_NT has been created
14983         instead for handling run-time termination in a more flexible way.
14984         (Adafinal_NT): This new procedure will take care of finalizing the
14985         global list for controlled objects if needed, but no tasking
14986         finalization.
14987
14988         * s-tarest.adb (Task_Lock): Do not try to lock again the
14989         Global_Task_Lock if we already own it. Otherwise, we get blocked in
14990         some run-time operations.
14991         (Task_Unlock): Do not try to actually unlock the Global_Task_Lock
14992         until all nested locks have been released.
14993         (Task_Wrapper): Call the fall-back task termination handler. It
14994         applies to all tasks but the environment task.
14995         (Finalize_Global_Tasks): Add the call for the task termination
14996         procedure for the environment task.
14997         (Task_Wrapper): suppress warnings around declaration of
14998         Secondary_Stack_Address.
14999
15000         * s-tasini.adb (Final_Task_Unlock): Global_Task_Lock_Nesting has been
15001         moved to the Common_ATCB record.
15002         (Task_Lock): Global_Task_Lock_Nesting has been moved to the
15003         Common_ATCB record.
15004         (Task_Unlock): Global_Task_Lock_Nesting has been moved to the
15005         Common_ATCB record.
15006
15007         * s-taskin.adb (Initialize_ATCB): Initialize Global_Task_Lock_Nesting,
15008         Fall_Back_Handler, and Specific_Handler.
15009
15010         * s-taskin.ads (Cause_Of_Termination): Redefine this type here, already
15011         defined in Ada.Task_Termination, to avoid circular dependencies.
15012         (Termination_Handler): Redefine this type here, alredy defined in
15013         Ada.Task_Termination, for avoiding circular dependencies.
15014         (Common_ATCB): Add the Fall_Back_Handler and Specific_Handler required
15015         for storing task termination handlers. In addition,
15016         Global_Task_Lock_Nesting has been moved from Ada_Task_Control_Block to
15017         Common_ATCB because it is used by both the regular and the restricted
15018         run times.
15019         (Ada_Task_Control_Block): Move Global_Task_Lock_Nesting from here to
15020         Common_ATCB because it is used by both the regular and the restricted
15021         run times.
15022         (Common_ATCB): Added a dynamic task analyzer field.
15023
15024         * s-tassta.adb (Abort_Tasks): Move the code in charge of checking
15025         potentially blocking operations to System.Tasking.Utilities.Abort_Tasks.
15026         (Task_Wrapper): Call the task termination handler. It applies to all
15027         tasks but the environment task.
15028         (Finalize_Global_Tasks): Call the task termination procedure for the
15029         environment task. The call to Finalize_Global_List is now performed
15030         using the soft links mechanism.
15031         (Task_Wrapper): added dynamic stack analysis.
15032
15033         * s-tasuti.adb (Abort_Tasks): The code in charge of checking
15034         potentially blocking operations has been moved from
15035         System.Tasking.Stages.Abort_Tasks to this procedure. There can be
15036         direct calls to System.Tasking.Utilities.Abort_Tasks that do not pass
15037         through System.Tasking.Stages.Abort_Tasks, and we do not want to miss
15038         this run-time check.
15039
15040         * s-solita.adb (Task_Termination_Handler_T): Add this task-safe version
15041         of task termination procedure.
15042         (Init_Tasking_Soft_Links): Install the task-safe version of the soft
15043         link for the task termination procedure.
15044
15045         * bindusg.adb: (Bindusg): Added documentation for -u option.
15046
15047         * bindgen.adb (Get_Main_Ada) Added handling of dynamic stack analysis.
15048         (Get_Main_C): Add handling of dynamic stack analysis.
15049         (Gen_Output_File_C): Add external functions for dynamic stack analysis.
15050
15051         * Makefile.rtl: Add entry for a-taster (Ada.Task_Termination).
15052         (GNATRTL_NONTASKING_OBJS) Added entries for dynamic stack analysis
15053         (GNATRTL_NONTASKING_OBJS): Add AltiVec files.
15054
15055         * opt.ads: Added flags used by dynamic stack measurement.
15056         (Max_Line_Length): Remove (not used anymore)
15057
15058         * s-io.ads, s-io.adb (Standard_Error): new subprogram
15059         (Standart_Output): new subprogram
15060         (Set_Output): new subprogram
15061         (Put): now uses the value of Current_Out to know if the output has to be
15062         send to stderr or stdout.
15063         
15064         * s-stausa.ads: Complete implementation.
15065
15066         * switch-b.adb: Added handling of -u switch for dynamic stack analysis.
15067         
15068         * impunit.adb (Non_Imp_File_Names_05): Add Ada.Task_Termination to the
15069         list of Ada 05 files.
15070         (GNAT Library Units): Add AltiVec files.
15071
15072         * g-allein.ads, g-alleve.adb, g-alleve.ads, g-altcon.adb,
15073         g-altcon.ads, g-altive.ads, g-alveop.adb, g-alveop.ads
15074         g-alvety.ads, g-alvevi.ads: New files providing altivec API.
15075
15076 2005-12-09  Nicolas Setton  <setton@adacore.com>
15077
15078         * adaint.c (__gnat_locate_regular_file): Return immediately if
15079         file_name is empty.
15080
15081 2005-12-09  Javier Miranda  <miranda@adacore.com>
15082             Hristian Kirtchev  <kirtchev@adacore.com>
15083
15084         * a-tags.ads, a-tags.adb (Offset_To_Top): Moved from the package body
15085         to the specification because the frontend generates code that uses this
15086         subprogram.
15087         (Set_Interface_Table): Add missing assertion.
15088         Update documentation describing the run-time structure.
15089         (Displace): New subprogram that displaces the pointer to the object
15090         to reference one of its secondary dispatch tables.
15091         (IW_Membership): Modified to use the new table of interfaces.
15092         (Inherit_TSD): Modified to use the new table of interfaces.
15093         (Register_Interface_Tag): Use the additional formal to fill the
15094         contents of the new table of interfaces.
15095         (Set_Interface_Table): New subprogram that stores in the TSD the
15096         pointer to the table of interfaces.
15097         (Set_Offset_To_Top): Use the additional formal to save copy of
15098         the offset value in the table of interfaces.
15099         Update structure of GNAT Primary and Secondary dispatch table diagram.
15100         Add comment section on GNAT dispatch table prologue.
15101         (Offset_To_Signature): Update the constant value of the Signature field.
15102         (Dispatch_Table): Update comment on hidden fields in the prologue.
15103         (Get_Entry_Index, Get_Prim_Op_Kind, Get_Offset_Index, OSD,
15104         Set_Entry_Index, Set_Offset_Index, Set_Prim_Op_Kind, SSD, TSD): Change
15105         the type of formal parameter T to Tag, introduce additional assertions.
15106         (Get_Num_Prim_Ops, Set_Num_Prim_Ops): Remove an unnecessary type
15107         conversion.
15108         (Get_Tagged_Kind, Set_Tagged_Kind): New bodies.
15109
15110         * exp_ch6.adb (Register_Interface_DT_Entry): Remove the Thunk_Id actual
15111         in all the calls to Expand_Interface_Thunk. Instead of referencing the
15112         record component containing the tag of the secondary dispatch table we
15113         have to use the Offset_To_Top run-time function to get this information;
15114         otherwise if the pointer to the base of the object has been displace
15115         we get a wrong value if we use the 'position attribute.
15116
15117         * exp_disp.adb (Expand_Interface_Thunk): Remove the Thunk_Id actual in
15118         all the calls to Expand_Interface_Thunk.
15119         (Make_Secondary_DT): Secondary dispatch tables do not have a table of
15120         interfaces; hence the call to Set_Interface_Table was clearly wrong.
15121         (Collect_All_Interfaces): Modify the internal subprogram Collect to
15122         ensure that the interfaces implemented by the ancestors are placed
15123         at the header of the generated list.
15124         (Expand_Interface_Conversion): Handle the case in which the displacement
15125         associated with the interface conversion is not statically known. In
15126         this case we generate a call to the new run-time subprogram Displace.
15127         (Make_DT): Generate and fill the new table of interfaces.
15128         (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Add entries for
15129         Get_Tagged_Kind and Set_Tagged_Kind.
15130         (Tagged_Kind): New function that determines the tagged kind of a type
15131         with respect to limitedness and concurrency and returns a reference to
15132         RE_Tagged_Kind.
15133         (Make_Disp_Asynchronous_Select_Body, Make_Disp_Conditional_Select_Body,
15134         Make_Disp_Timed_Select_Body): Correctly retrieve the pointer to the
15135         primary dispatch table for a type.
15136         (Make_DT, Make_Secondary_DT): Set the tagged kind in the primary and
15137         secondary dispatch table respectively of a tagged type.
15138
15139         * exp_disp.ads (Expand_Interface_Thunk): Remove Thunk_Id formal.
15140         (Expand_Interface_Conversion): New subprogram to indicate if the
15141         displacement of the type conversion is statically known.
15142         (DT_Access_Action): Add values Get_Tagged_Kind and Set_Tagged_Kind.
15143
15144         * rtsfind.ads (RE_Offset_To_Top): New entity
15145         (RTU_Id): Add Ada_Task_Termination to the list so that it is made
15146         accessible to users.
15147         (Re_Displace): New entity
15148         (RE_Interface_Data): New entity
15149         (RE_Set_Interface_Data): New_Entity
15150         (RE_Id, RE_Unit_Table): Add entry for RE_Get_Tagged_Kind,
15151         Set_Tagged_Kind, RE_Tagged_Kind, RE_TK_Abstract_Limited_Tagged,
15152         RE_TK_Abstract_Tagged, RE_TK_Limited_Tagged, RE_TK_Protected,
15153         RE_TK_Tagged, RE_TK_Task.
15154
15155         * exp_ch3.adb (Init_Secondary_Tags): Modify the subprogram
15156         Init_Secondary_Tags_Internal to allow its use with interface types and
15157         also to generate the code for the new additional actual required
15158         by Set_Offset_To_Top.
15159         (Build_Init_Statements): In case of components associated with abstract
15160         interface types there is no need to generate a call to its IP.
15161         (Freeze_Record_Type): Generate Select Specific Data tables only for
15162         concurrent types.
15163         (Make_Predefined_Primitive_Specs, Predefined_Primitive_Bodies): Generate
15164         the bodies and specifications of the predefined primitive operations
15165         dealing with dispatching selects and abort, 'Callable, 'Terminated only
15166         for concurrent types.
15167
15168         * exp_sel.ads, exp_sel.adb: New files.
15169
15170         * exp_ch9.adb (Build_Protected_Entry, Expand_N_Protected_Body,
15171         Expand_N_Protected_Type_Declaration, Make_Initialize_Protection): Handle
15172         properly protected objects and attach handler in the case of the
15173         restricted profile.
15174         Move embeded package Select_Expansion_Utilities into a separate external
15175         package.
15176         (Expand_N_Asynchronous_Select, Expand_N_Conditional_Select,
15177         Expand_N_Timed_Entry_Call): Correct calls external package Exp_Sel.
15178         (Build_K, Build_S_Assignment): New subprograms, part of the select
15179         expansion utilities.
15180         (Expand_N_Asynchronous_Select, Expand_N_Conditional_Entry_Call,
15181         Expand_N_Timed_Entry_Call): Optimize expansion of select statements
15182         where the trigger is a dispatching procedure of a limited tagged type.
15183
15184 2005-12-09  Olivier Hainque  <hainque@adacore.com>
15185
15186         * decl.c (gnat_to_gnu_entity, renaming object case): Don't early expand
15187         pointer initialization values. Make a SAVE_EXPR instead. Add comments
15188         about the use and expansion of SAVE_EXPRs in the various possible
15189         renaming handling cases.
15190         (components_to_record, compare_field_bitpos): Sort by DECL_UID, not by
15191         abusing DECL_FCONTEXT.
15192
15193 2005-12-09  Matthew Heaney  <heaney@adacore.com>
15194
15195         * a-convec.adb (Merge): Added assertions to check whether vector params
15196         are sorted.
15197
15198         * a-coinve.adb (Merge): Added assertions to check whether vector params
15199         are sorted.
15200
15201         * a-cohama.ads (Cursor'Write): raises Program_Error per latest AI-302
15202         draft.
15203         (Cursor'Read): raises PE
15204
15205         * a-cohama.adb (Insert.New_Node): Uses box-style syntax to init elem
15206         to its default value.
15207
15208         * a-cihama.adb: Manually check whether cursor's key and elem are
15209         non-null
15210
15211         * a-cidlli.ads, a-cidlli.adb (Splice): Changed param name and param mode
15212         (Merge): Assert that target and source lists are in order
15213         (Swap): Declare non-const temporaries, to pass to Splice
15214
15215         * a-cdlili.ads: (Splice): Changed param name and param mode
15216
15217         * a-cdlili.adb: (Splice): Changed param name and param mode
15218         (Merge): Assert that target and source lists are in order
15219         (Swap): Declare non-const temporaries, to pass to Splice
15220
15221         * a-ciorma.ads, a-coorma.ads: (Read): declare Stream param as not null
15222         (Write): declare Stream param as not null
15223
15224         * a-ciorma.adb, a-coorma.adb: All explicit raise statements now include
15225         an exception message.
15226
15227 2005-12-09  Thomas Quinot  <quinot@adacore.com>
15228             Robert Dewar  <dewar@adacore.com>
15229
15230         * hostparm.ads (Max_Line_Length): Set to Types.Column_Number'Last - 1,
15231         which is the absolute maximum length we can support.
15232
15233         * frontend.adb: For the processing of configuration pragma files,
15234         remove references to Opt.Max_Line_Length, which is not checked anymore.
15235
15236         * namet.ads (Name_Buffer): Adjust size to reflect increase on max line
15237         length.
15238
15239         * scn.adb, scng.adb: 
15240         Always check line length against the absolute supported maximum,
15241         Hostparm.Max_Line_Length.
15242
15243         * stylesw.adb (Set_Style_Check_Options, case M): The maximum supported
15244         value for the maximum line length is Max_Line_Length (not
15245         Column_Number'Last).
15246         Minor error msg update
15247         (Set_Style_Check_Options): New interface returning error msg
15248         Minor code reorganization (processing for 'M' was out of alpha order)
15249
15250         * switch-c.adb: New interface for Set_Style_Check_Options
15251
15252         * stylesw.ads (Set_Style_Check_Options): New interface returning error
15253         msg.
15254
15255 2005-12-09  Javier Miranda  <miranda@adacore.com>
15256
15257         * exp_aggr.adb (Build_Record_Aggr_Code): Default-initialialized records
15258         with IP subprogram were only supported if there were limited types.
15259
15260         * sem_aggr.adb (Resolve_Record_Aggregate): Default-initialialized
15261         records with IP subprogram were only supported if there were limited
15262         types.
15263
15264 2005-12-09  Olivier Hainque  <hainque@adacore.com>
15265             Eric Botcazou  <ebotcazou@adacore.com>
15266
15267         * trans.c (tree_transform, emit_check): Adjust calls to
15268         build_call_raise, passing the now expected GNAT_NODE argument.
15269
15270         * gigi.h (build_call_raise): Add a GNAT_NODE argument to convey better
15271         source line information than what the current global locus indicates
15272         when appropriate.
15273
15274         * utils2.c (build_simple_component_ref): Return 0 if the offset of the
15275         field has overflowed.
15276         (build_call_raise): Add a GNAT_NODE argument to convey better source
15277         line information than what the current global locus indicates when
15278         appropriate.
15279         (build_component_ref): Adjust call to build_call_raise.
15280
15281 2005-12-09  Pascal Obry  <obry@adacore.com>
15282
15283         * g-diopit.adb (Find): Fix test to exit the iterator and make sure that
15284         the iterator is quitting iteration on parent directory.
15285
15286 2005-12-09  Javier Miranda  <miranda@adacore.com>
15287
15288         * exp_ch5.adb (Expand_N_Assignment_Statement): In case of tagged types
15289         and the assignment to a class-wide object, before the assignment we
15290         generate a run-time check to ensure that the tag of the Target is
15291         covered by the tag of the source.
15292
15293 2005-12-09  Robert Dewar  <dewar@adacore.com>
15294
15295         * exp_imgv.adb (Expand_Image_Attribute): Generate extra boolean
15296         parameter in call to Image_Wide_Character.
15297
15298         * s-imgwch.ads, s-imgwch.adb (Image_Wide_Character): Add boolean
15299         parameter Ada_2005 to deal with annoying FFFE/FFFF inconsistency.
15300         (Image_Wide_Character): Add boolean parameter Ada_2005 to deal with
15301         annoying FFFE/FFFF inconsistency.
15302
15303 2005-12-09  Robert Dewar  <dewar@adacore.com>
15304             Javier Miranda  <miranda@adacore.com>
15305             Ed Schonberg  <schonberg@adacore.com>
15306
15307         * exp_util.ads, exp_util.adb (Is_Ref_To_Bit_Packed_Slice): Handle case
15308         of type conversion.
15309         (Find_Interface): New subprogram that given a tagged type and one of its
15310         component associated with the secondary table of an abstract interface
15311         type, return the entity associated with such abstract interface type.
15312         (Make_Subtype_From_Expr): If type has unknown discriminants, always use
15313         base type to create anonymous subtype, because entity may be a locally
15314         declared subtype or generic actual.
15315         (Find_Interface): New subprogram that given a tagged type and one of its
15316         component associated with the secondary table of an abstract interface
15317         type, return the entity associated with such abstract interface type.
15318
15319         * sem_res.adb (Resolve_Type_Conversion): Handle the case in which the
15320         conversion cannot be handled at compile time. In this case we pass this
15321         information to the expander to generate the appropriate code.
15322
15323 2005-12-09  Robert Dewar  <dewar@adacore.com>
15324             Ed Schonberg  <schonberg@adacore.com>
15325             Gary Dismukes  <dismukes@adacore.com>
15326             Javier Miranda  <miranda@adacore.com>
15327             Hristian Kirtchev  <kirtchev@adacore.com>
15328
15329         * einfo.adb (Itype_Printed): New flag
15330         (Is_Limited_Type): Derived types do not inherit limitedness from
15331         interface progenitors.
15332         (Is_Return_By_Reference_Type): Predicate does not apply to limited
15333         interfaces.
15334
15335         * einfo.ads (Itype_Printed): New flag
15336         Move Is_Wrapper_Package to proper section
15337         Add missing Inline for Is_Volatile
15338
15339         * output.ads, output.adb (Write_Erase_Char): New procedure
15340         (Save/Restore_Output_Buffer): New procedures
15341         (Save/Restore_Output_Buffer): New procedures
15342
15343         * sprint.ads, sprint.adb (Write_Itype): Handle case of record itypes
15344         Add missing support for anonymous access type
15345         (Write_Id): Insert calls to Write_Itype
15346         (Write_Itype): New procedure to output itypes
15347
15348         * par-ch12.adb (P_Formal_Derived_Type_Definition): In Ada 2005, handle
15349         use of "limited" in declaration.
15350
15351         * sinfo.ads, sinfo.adb: 
15352         Formal derived types can carry an explicit "limited" indication.
15353
15354         * sem_ch3.adb: Add with and use of Targparm.
15355         (Create_Component): If Frontend_Layout_On_Target is True and the
15356         copied component does not have a known static Esize, then reset
15357         the size and positional fields of the new component.
15358         (Analyze_Component_Declaration): A limited component is
15359         legal within a protected type that implements an interface.
15360         (Collect_Interfaces): Do not add to the list the interfaces that
15361         are implemented by the ancestors.
15362         (Derived_Type_Declaration): If the parent of the full-view is an
15363         interface perform a transformation of the tree to ensure that it has
15364         the same parent than the partial-view. This simplifies the job of the
15365         expander in order to generate the correct object layout, and it is
15366         needed because the list of interfaces of the full-view can be given in
15367         any order.
15368         (Process_Full_View): The parent of the full-view does not need to be
15369         a descendant of the parent of the partial view if both parents are
15370         interfaces.
15371         (Analyze_Private_Extension_Declaration): If declaration has an explicit
15372         "limited" the parent must be a limited type.
15373         (Build_Derived_Record_Type): A derived type that is explicitly limited
15374         must have limited ancestor and progenitors.
15375         (Build_Derived_Type): Ditto.
15376         (Process_Full_View): Verify that explicit uses of "limited" in partial
15377         and full declarations are consistent.
15378         (Find_Ancestor_Interface): Remove function.
15379         (Collect_Implemented_Interfaces): New procedure used to gather all
15380         implemented interfaces by a type.
15381         (Contain_Interface): New function used to check whether an interface is
15382         present in a list.
15383         (Find_Hidden_Interface): New function used to determine whether two
15384         lists of interfaces constitute a set equality. If not, the first
15385         differing interface is returned.
15386         (Process_Full_View): Improve the check for the "no hidden interface"
15387         rule as defined by AI-396.
15388
15389 2005-12-09  Robert Dewar  <dewar@adacore.com>
15390
15391         * freeze.adb (Freeze_Record_Type): Only test for useless pack on record
15392         types, not on record subtypes.
15393         (Freeze_Entity): Code cleanup. Add barrier to the loop
15394         that generates the references for primitive operations. This allows to
15395         remove an unnecessary exception handler.
15396         Code reformatting and comment clean ups.
15397
15398 2005-12-09  Vincent Celier  <celier@adacore.com>
15399
15400         * gnatcmd.adb (GNATCmd): GNAT CHECK accepts switch -U
15401         If GNAT CHECK is called with a project file, but with no
15402         source on the command line, call gnatcheck with all the compilable
15403         sources of the project.
15404         Take into account the new command Check, for gnatcheck. Treat as for
15405         other ASIS tools: take into account project, specific package Check and
15406         Compiler switches.
15407         For ASIS tools, add the switches in package Compiler for
15408         the invocation of the compiler.
15409
15410         * prj-attr.adb: Add package Check and its attributes
15411
15412         * vms_conv.ads (Command_Type): New command Check, for gnatcheck
15413
15414         * vms_conv.adb (Initialize): Change Params of command Check to
15415         unlimited files.
15416         Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target.
15417         Add data for new command Check
15418
15419         * vms_data.ads: Add project related qualifiers for GNAT CHECK and GNAT
15420         ELIM.
15421         Add qualifiers for Check command options
15422         (Command_Type): New command Check
15423
15424 2005-12-09  Thomas Quinot  <quinot@adacore.com>
15425
15426         * mlib-utl.adb (Ar): Use Output.Buffer_Max to determine whether a
15427         command line switch overruns the output buffer.
15428
15429 2005-12-09  Robert Dewar  <dewar@adacore.com>
15430
15431         * sem_prag.adb: Processing for new pragma Complete_Representation
15432         (Analyze_Pragma, case Debug): Implement two argument form.
15433
15434         * par-prag.adb: Entry for new pragma Complete_Representation
15435         (Prag, case Debug): Recognize two argument form of pragma Debug
15436         New interface for Set_Style_Check_Options.
15437
15438         * sem_ch13.adb: Implement new pragma Complete_Representation.
15439
15440         * snames.adb, snames.ads, snames.h: Entry for new pragma
15441         Complete_Representation.
15442
15443 2005-12-09  Gary Dismukes  <dismukes@adacore.com>
15444
15445         * sem_cat.adb (Validate_RCI_Subprogram_Declaration): Revise test for
15446         available user-specified stream attributes on limited parameters to
15447         also test the type directly rather than only its underlying type (for
15448         Ada 95) and, in the case of Ada 2005, to check that the user-specified
15449         attributes are visible at the point of the subprogram declaration.
15450         For Ada 2005, the error message is modified to indicate that the
15451         type's stream attributes must be visible (again, only for -gnat05).
15452
15453 2005-12-09  Ed Schonberg  <schonberg@adacore.com>
15454
15455         * sem_ch12.adb (Subtypes_Match): Handle properly Ada05 arrays of
15456         anonymous access types.
15457
15458         * sem_eval.adb (Subtypes_Statically_Match): Implement new rules for
15459         matching of anonymous access types and anonymous access to subprogram
15460         types. 'R'M 4.9.1 (2/2).
15461
15462 2005-12-09  Ed Schonberg  <schonberg@adacore.com>
15463
15464         * sem_ch4.adb (Remove_Abstract_Operations): Do not apply preference
15465         rule prematurely when operands are universal, remaining ambiguities
15466         will be removed during resolution.
15467         Code cleanup.
15468
15469         * sem_type.adb (Disambiguate): In Ada95 mode, discard interpretations
15470         that are Ada 2005 functions.
15471         (Has_Abstract_Interpretation): Subsidiary to
15472         Remove_Conversions, to remove ambiguities caused by abstract operations
15473         on numeric types when operands are universal.
15474
15475 2005-12-09  Robert Dewar  <dewar@adacore.com>
15476
15477         * sem_ch6.adb (Analyze_Subprogram_Body): Properly check categorization
15478         for case where spec is categorized.
15479
15480 2005-12-09  Javier Miranda  <miranda@adacore.com>
15481
15482         * sem_ch8.adb (Find_Type): In case of tagged types that are concurrent
15483         types use the corresponding record type. This was not needed before
15484         the implementation of Ada 2005 synchronized types because
15485         concurrent types were never tagged types in Ada 95.
15486
15487 2005-12-09  Ed Schonberg  <schonberg@adacore.com>
15488
15489         * sem_ch9.adb (Analyze_Delay_Alternative, Analyze_Delay_Until): Use the
15490         first subtype of the type of the expression to verify that it is a
15491         legal Time type.
15492
15493 2005-12-09  Robert Dewar  <dewar@adacore.com>
15494
15495         * sem_util.ads, sem_util.adb (Full_Qualified_Name): Now provides
15496         decoded names.
15497
15498 2005-12-09  Quentin Ochem  <ochem@adacore.com>
15499             Robert Dewar  <dewar@adacore.com>
15500             Ed Falis  <falis@adacore.com>
15501             Florian Villoing  <villoing@adacore.com>
15502             Thomas Quinot  <quinot@adacore.com>
15503             Arnaud Charlet  <charlet@adacore.com>
15504
15505         * gnat_ugn.texi: Created section "Stack Related Tools"
15506         Moved "Stack Overflow Checking" subsection from "Switches for gcc" to
15507         "Stack Related Tools"
15508         Added subsection "Static Stack Usage Analysis"
15509         Added subsection "Dynamic Stack Usage Analysis"
15510         Include documentation of itypes in sprint listing (-gnatG)
15511         Documented gnatbind -D switch (default sec stack size for fixed sec
15512         stacks).
15513         Added Interrupt_State and Persistent_BSS to list of configuration
15514         pragmas.
15515         Add missing doc for maximum value of nnn in -gnatyMnnn
15516
15517         * gnat_rm.texi: Document the AltiVec binding.
15518         Add documentation for pragma Complete_Representation
15519         Shortened an overly long line (> 79 chars)
15520         Clarify documentation of unchecked conversion in implementation
15521         defined cases.
15522         Document two argument form of pragma Debug
15523
15524         * types.ads (Column_Number): Update documentation.
15525
15526         * exp_ch7.ads (Make_Adjust_Call): Document the special processing for
15527         library level Finalize_Storage_Only objects (these are not attached to
15528         any finalization list).
15529
15530         * system-mingw.ads: (Underlying_Priorities): Update comment.
15531
15532 2005-12-09  Robert Dewar  <dewar@adacore.com>
15533
15534         * i-c.adb, i-cexten.ads, i-cobol.adb, i-cobol.ads, i-cpoint.ads,
15535         i-cpp.adb, i-cpp.ads, i-cstrea.ads, i-cstrin.adb, i-cstrin.ads,
15536         inline.adb, interfac.ads, i-os2err.ads, i-os2lib.ads, i-os2syn.ads,
15537         i-os2thr.ads, itypes.adb, itypes.adb, itypes.ads, krunch.ads,
15538         krunch.adb, lib.adb, lib.ads, lib-list.adb, lib-load.adb,
15539         lib-load.ads, lib-sort.adb, live.adb, make.ads, i-cstrea-vms.adb,
15540         interfac-vms.ads, makegpr.adb, indepsw-gnu.adb, indepsw.ads,
15541         s-wchcon.ads, sdefault.ads, sem_ch10.adb, sem_eval.ads: Minor
15542         reformatting.
15543
15544 2005-12-09  Robert Dewar  <dewar@adacore.com>
15545
15546         * s-vaflop-vms-alpha.adb: (Ne_F): New function
15547         (Ne_G): New function
15548
15549         * exp_ch4.adb (Expand_Allocator_Expression): Factor duplicated code
15550         for tag assignment.
15551         (Rewrite_Comparison): Handle case where operation is not a comparison
15552         and ignore, and also handle type conversion case.
15553
15554 2005-12-09  Thomas Quinot  <quinot@adacore.com>
15555
15556         * exp_aggr.ads: Fix typo in comment.
15557         ???-mark Convert_Aggr_In_Assignment as needing documentation.
15558
15559 2005-12-09  Gary Dismukes  <dismukes@adacore.com>
15560
15561         * layout.adb: Replace various uses of byte by storage unit throughout.
15562         (Get_Max_SU_Size): Name changed from Get_Max_Size. In the case of a
15563         static size, convert to storage units before returning, to conform to
15564         spec.
15565
15566 2005-12-09  Matthew Gingell  <gingell@adacore.com>
15567
15568         * g-exctra.ads: Fix typo in comment.
15569
15570 2005-12-09  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15571
15572         * utils.c: Minor reformatting.
15573
15574 2005-12-09  Robert Dewar  <dewar@adacore.com>
15575
15576         * g-soccon.ads: 
15577         Further comment fixes to make the status of the default file clear
15578
15579         * s-bitops.adb: Clarify comment for Bits_Array
15580
15581 2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
15582
15583         * Make-lang.in (ada.install-normal): Remove.
15584
15585 2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
15586
15587         * Make-lang.in: Remove all dependencies on s-gtype.
15588
15589 2005-12-05  Richard Guenther  <rguenther@suse.de>
15590
15591         * utils.c (convert): Use fold_convert where appropriate.
15592
15593 2005-12-05  Paolo Bonzini  <bonzini@gnu.org>
15594
15595         * Makefile.in (gnatlib): Fix regex, using \. instead of . when
15596         a period is meant.
15597
15598 2005-12-02  Richard Guenther  <rguenther@suse.de>
15599
15600         * trans.c (gnat_gimplify_expr): Use buildN instead of build.
15601
15602 2005-12-01  Roger Sayle  <roger@eyesopen.com>
15603
15604         * utils.c (max_size): Only test for TREE_OVERFLOW on INTEGER_CST
15605         nodes.
15606
15607 2005-11-23  Laurent Guerby  <laurent@guerby.net>
15608
15609         * mlib-prj.adb (Build_Library): Initialize Delete.
15610
15611 2005-11-21  Joel Sherrill  <joel.sherrill@oarcorp.com>
15612
15613         * socket.c: Add extern int h_errno for rtems since networking header
15614         files are not available at this point in a tool bootstrap. Newlib
15615         only has basic C library header files.
15616
15617 2005-11-19  Richard Guenther  <rguenther@suse.de>
15618         Roger Sayle  <roger@eyesopen.com>
15619
15620         PR ada/23717
15621         * misc.c (internal_error_function): Don't use vsprintf to format
15622         the error message text, instead use pp_format_text and the new
15623         pretty printer APIs.  This allows handling of %qs, %w, etc.
15624
15625 2005-11-18  Laurent Guerby  <laurent@guerby.net>
15626
15627         PR ada/24857
15628         * Makefile.in: Use s-auxdec-empty for RTEMS.
15629
15630 2005-11-17  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15631
15632         PR ada/22333
15633         * trans.c (gnat_gimplify_expr, case ADDR_EXPR): Always make
15634         a temporary if taking the address of something that is neither
15635         reference, declaration, or constant, since the gimplifier
15636         can't handle that case.
15637
15638 2005-11-17  Laurent Guerby  <laurent@guerby.net>
15639
15640         PR ada/24857
15641         * s-auxdec-empty.ads, s-auxdec-empty.adb: New files.
15642
15643 2005-11-16  Richard Guenther  <rguenther@suse.de>
15644
15645         * Makefile.in: Add EH_MECHANISM=-gcc to s390(x) linux.
15646
15647 2005-11-16  Joel Sherrill  <joel.sherrill@oarcorp.com>
15648
15649         PR ada/24855
15650         * raise-gcc.c: Add missing stdarg.h include.
15651  
15652 2005-11-16  Richard Guenther  <rguenther@suse.de>
15653
15654         * Make-lang.in (ada/decl.o): Add $(EXPR_H) dependency.
15655         (ada/misc.o): Likewise.
15656
15657 2005-11-14  Thomas Quinot  <quinot@adacore.com>
15658
15659         * g-soccon.ads: Minor reformatting. Update comments.
15660
15661         * gsocket.h: Include <sys/times.h> in the VxWorks case, in order to
15662         gain visibility on the declaration of struct timeval.
15663
15664         * g-soccon-freebsd.ads,
15665         g-soccon-darwin.ads,
15666         g-soccon-tru64.ads,
15667         g-soccon-aix.ads,
15668         g-soccon-irix.ads,
15669         g-soccon-hpux.ads,
15670         g-soccon-solaris.ads,
15671         g-soccon-vms.ads,
15672         g-soccon-mingw.ads,
15673         g-soccon-vxworks.ads (SIZEOF_tv_sec, SIZEOF_tv_usec): New constants.
15674
15675         * g-soccon-hpux-ia64.ads, g-soccon-linux-ppc.ads,
15676         g-soccon-solaris-64.ads, g-soccon-linux-64.ads,
15677         g-soccon-linux-x86.ads: New files.
15678
15679         * g-socthi-mingw.adb: 
15680         (Socket_Error_Message): Remove redundant use of GNAT.Sockets.Constants
15681
15682         * g-socthi-vxworks.ads, g-socthi-vms.ads, g-socthi-mingw.ads
15683         (time_t, suseconds_t): New types constructed to match the tv_sec
15684         and tv_usec fields of C struct timeval.
15685         (Timeval): Construct structure in terms of the new types.
15686         (Host_Errno): New function (imported from socket.c), returns last hosts
15687         database error.
15688
15689         * g-socthi-vxworks.adb:  Add error handling circuitry.
15690
15691         * g-socket.ads, g-socket.adb (To_Timeval): Reflect change of type for
15692         components of struct timeval.
15693         (Get_Host_By_Name, Get_Host_By_Address): Fix error reporting circuitry.
15694         (Check_Selector): In error conditions, clear internal socket sets to
15695         avoid a memory leak.
15696         (Get_Socket_Option, Set_Socket_Option): Support for Multicast_If,
15697         Send_Timeout, Receive_Timeout.
15698
15699         * g-socthi.ads (time_t, suseconds_t): New types constructed to match
15700         the tv_sec and tv_usec fields of C struct timeval.
15701         (Timeval): Construct structure in terms of the new types.
15702         (Host_Errno): New function (imported from socket.c), returns last hosts
15703         database error.
15704
15705         * socket.c (__gnat_get_h_errno): New function to retrieve h_errno, the
15706         hosts database last error code.
15707
15708         * gen-soccon.c: Complete value expansion should not be performed on
15709         TARGET, as it has the form of a math expression, and some components
15710         may be platform-defined macros.
15711         For VxWorks, generate the OK and ERROR values.
15712         New constants giving the sizes of the components of C struct timeval.
15713
15714 2005-11-14  Robert Dewar  <dewar@adacore.com>
15715             Ed Schonberg  <schonberg@adacore.com>
15716
15717         PR ada/18434
15718         * types.ads: Include All_Checks in Suppress_Array
15719
15720         * checks.adb (Check_Needed): Remove kludge for a/=b rewritten as
15721         not(a=b), since we no longer do this rewriting, and hence it is not
15722         needed.
15723         (Elaboration_Checks_Suppressed): Add special casing to
15724         deal with different cases of static and dynamic elaboration checks (all
15725         checks does not count in the first case, but does in the second).
15726         (Expr_Known_Valid): Do not assume that the result of any arbitrary
15727         function call is valid, since this is not the case.
15728         (Ensure_Valid): Do not apply validity check to a real literal
15729         in a universal or fixed context
15730
15731         * exp_ch4.adb (Expand_N_Op_Ne): Don't expand a/=b to not(a=b) for
15732         elementary types using the operator in standard. It is cleaner not to
15733         modify the programmers intent, especially in the case of floating-point.
15734         (Rewrite_Comparison): Fix handling of /= (this was always wrong, but
15735         it did not matter because we always rewrote a/=b to not(a=b).
15736         (Expand_Allocator_Expression): For an allocator expression whose nominal
15737         subtype is an unconstrained packed type, convert the expression to its
15738         actual constrained subtype.
15739         Implement warning for <= or >= where < or > not possible
15740         Fix to Vax_Float tests (too early in many routines, causing premature
15741         Vax_Float expansions.
15742
15743         * sem_prag.adb (Analyze_Pragma, case Obsolescent): Allow this pragma
15744         to be used with packages and generic packages as well as with
15745         subprograms.
15746         (Suppress): Set All_Checks, but not Elaboration_Check, for case
15747         of pragma Suppress (All_Checks)
15748         (Analyze_Pragma, case Warnings): Implement first argument allowed to be
15749         a string literal for precise control over warnings.
15750         Avoid raise of pragma in case of unrecognized pragma and just return
15751         instead.
15752
15753         * sem_prag.ads: Minor reformatting
15754
15755         * switch-c.adb (Scan_Front_End_Switches): Replace "raise Bad_Switch;"
15756         with call to new procedure Bad_Switch. Call Scan_Pos with new parameter
15757         Switch. Do not handle any exception.
15758         Include -gnatwx as part of -gnatg (warn on redundant parens)
15759         Allow optional = after -gnatm
15760         (Scan_Front_End_Switches): The -gnatp switch sets All_Checks, but no
15761         longer sets Elaboration_Checks.
15762         Code to set warning mode moved to Sem_Warn
15763         so that it can be shared by pragma processing.
15764
15765         * s-mastop-tru64.adb (Pop_Frame): Remove redundant parentheses in if
15766         statement.
15767
15768         * s-taprop-solaris.adb: 
15769         Change some <= to =, to avoid new warning
15770
15771         * a-exexda.adb, prj-proc.adb: 
15772         Fix obvious typo (Num_Tracebacks compared <= 0 instead of < 0)
15773         Fix obvious typo (Total_Errors_Detected <= 0 should be = 0)
15774
15775 2005-11-14  Robert Dewar  <dewar@adacore.com>
15776
15777         * exp_vfpt.adb: Handle /= case
15778         (Expand_Vax_Conversion): Properly recognize Conversion_OK flag
15779         so that we do not get duplicate scaling for fixed point conversions.
15780
15781         * s-vaflop.ads, s-vaflop.adb: (Ne_F): New function
15782
15783 2005-11-14  Matthew Gingell  <gingell@adacore.com>
15784
15785         * system-lynxos-ppc.ads, system-lynxos-x86.ads: 
15786         Increase default priority on Lynx from 15 to 17, and meet the Ada
15787         requirement that Default_Priority be ((Priority'First +
15788         Priority'Last) / 2) by increasing the range of Interrupt_Priority.
15789
15790 2005-11-14  Vincent Celier  <celier@adacore.com>
15791
15792         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
15793         mlib-tgt-hpux.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
15794         mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-alpha.adb,
15795         mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb,
15796         mlib-tgt-darwin.adb, mlib-tgt.adb, mlib-tgt.ads,
15797         mlib-tgt-lynxos.adb (DLL_Prefix): New function
15798
15799 2005-11-14  Doug Rupp  <rupp@adacore.com>
15800
15801         * system-vms.ads, system-vms_64.ads: ADA$GNAT: New exported object in
15802         private part.
15803
15804 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
15805
15806         * s-traces-default.adb, s-trafor-default.ads,
15807         s-tratas-default.adb: Fix compilation errors.
15808
15809 2005-11-14  Jose Ruiz  <ruiz@adacore.com>
15810
15811         * s-taprop-posix.adb (Initialize_Lock): Destroy mutex attribute before
15812         raising the exception so the memory used is freed.
15813
15814 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
15815
15816         * adaint.h, adaint.c (__gnat_is_cross_compiler): New constant.
15817         (Gnat_Install_Locks, __gnatlib_install_locks): Removed, no longer used.
15818         (convert_address): Update comments and list of platforms using this.
15819
15820         * s-tasini.adb (Gnat_Install_Locks, __gnatlib_install_locks): Removed,
15821         no longer used.
15822
15823 2005-11-14  Pascal Obry  <obry@adacore.com>
15824             Vincent Celier  <celier@adacore.com>
15825
15826         * gnatdll.adb (Parse_Command_Line): Remove redundant use of
15827         GNAT.Command_Line.
15828
15829         * memroot.adb: Remove redundant with/use clause on
15830         System.Storage_Elements.
15831
15832 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
15833
15834         * a-except.adb (Zero_Cost_Exceptions): Removed, no longer used.
15835         (builtin_longjmp, Process_Raise_Exceeption): Move setjmp/longjmp
15836         related code to a-exexpr.adb
15837         (Save_Occurrence_And_Private): Move GCC EH related code to
15838         a-exexpr-gcc.adb
15839         (Raise_Current_Excep): Add new variable Id with pragma
15840         volatile, to ensure that the variable lives on stack.
15841
15842         * a-exexpr-gcc.adb, raise-gcc.c: New file.
15843
15844         * a-exexpr.adb (builtin_longjmp, Propagate_Exception): Moved here code
15845         from a-except.adb.
15846         Move GCC EH related code to a-exexpr-gcc.adb
15847
15848         * Makefile.in: Add or update g-soccon LIBGNAT pairs for Linux/PPC and
15849         64-bit Solaris
15850         Split the Linux version of g-soccon into separate variants for 32 and 64
15851         bit platforms.
15852         (gnatlib): Use $(AR_FOR_TARGET) and $(RANLIB_FOR_TARGET)
15853         vice $(AR) and $(RANLIB). Remove use of host variable $(RANLIB_FLAGS).
15854         install-gnatlib: Use $(RANLIB_FOR_TARGET) vice $(RANLIB). Remove use
15855         of host variable $(RANLIB_FLAGS).
15856         (alpha64-dec-*vms*): Fix translations for 64 bit compiler.
15857         Code clean up: remove unused/obsolete targets.
15858         (EH_MECHANISM): New variable introduced to differenciate between the
15859         two EH mechanisms statically.
15860         (gnatlib-zcx, gnatlib-sjlj): Force EH_MECHANISM manually.
15861         (LIBGNAT_OBJS): Add raise-gcc.o
15862         (LIBGNAT_TARGET_PAIRS for ppc-vxworks): Use an specialized version of
15863         s-osinte.adb, s-tpopsp.adb, and system.ads for the run time that
15864         supports VxWorks 6 RTPs.
15865         (EXTRA_GNATRTL_NONTASKING_OBJS for ppc-vxworks): Remove the use of
15866         i-vxworks and i-vxwoio from the run time that supports VxWorks 6 RTPs.
15867
15868         * raise.c: Move all GCC EH-related routines to raise-gcc.c
15869
15870 2005-11-14  Jose Ruiz  <ruiz@adacore.com>
15871
15872         * s-tassta.adb (Create_Task): Move the code in charge of resetting the
15873         deferral level, when abort is not allowed, to a later stage (the
15874         Task_Wrapper).
15875         (Task_Wrapper): If Abort is not allowed, reset the deferral level since
15876         it will not get changed by the generated code. It was previously done
15877         in Create_Task.
15878
15879 2005-11-14  Thomas Quinot  <quinot@adacore.com>
15880             Olivier Hainque  <hainque@adacore.com>
15881             Eric Botcazou  <ebotcazou@adacore.com>
15882
15883         * decl.c:
15884         Factor common code to build a storage type for an unconstrained object
15885         from a fat or thin pointer type and a constrained object type.
15886         (annotate_value): Handle BIT_AND_EXPR.
15887         (annotate_rep): Don't restrict the back annotation of inherited
15888         components to the type_annotate_only case.
15889         (gnat_to_gnu_entity) <E_Array_Type>: Do not invoke create_type_decl if
15890         we are not defining the type.
15891         <E_Record_Type>: Likewise.
15892         (gnat_to_gnu_entity) <object, renaming>: Adjust comments and structure
15893         to get advantage of the new maybe_stabilize_reference interface, to
15894         ensure that what we reference is indeed stabilized instead of relying
15895         on assumptions on what the stabilizer does.
15896         (gnat_to_gnu_entity) <E_Incomplete_Type>: If the entity is an incomplete
15897         type imported through a limited_with clause, use its non-limited view.
15898         (Has_Stdcall_Convention): New macro, to centralize the Windows vs others
15899         differentiation.
15900         (gnat_to_gnu_entity): Use Has_Stdcall_Convention instead of a spread mix
15901         of #if sections + explicit comparisons of convention identifiers.
15902         (gnat_to_gnu_entity) <E_Variable>: Decrement force_global if necessary
15903         before early-returning for certain types when code generation is
15904         disabled.
15905         (gnat_to_gnu_entity) <object>: Adjust comment attached to the
15906         nullification of gnu_expr we do for objects with address clause and
15907         that we are not defining.
15908         (elaborate_expression_1): Do not create constants when creating
15909         variables needed by the debug info: the dwarf2 writer considers that
15910         CONST_DECLs is used only to represent enumeration constants, and emits
15911         nothing for them.
15912         (gnat_to_gnu_entity) <object>: When turning a non-definition of an
15913         object with an address clause into an indirect reference, drop the
15914         initializing expression.
15915         Include "expr.h".
15916         (STACK_CHECK_BUILTIN): Delete.
15917         (STACK_CHECK_PROBE_INTERVAL): Likewise.
15918         (STACK_CHECK_MAX_FRAME_SIZE): Likewise.
15919         (STACK_CHECK_MAX_VAR_SIZE): Likewise.
15920         (gnat_to_gnu_entity): If gnat_entity is a renaming, do not mark the tree
15921         corresponding to the renamed object as ignored for debugging purposes.
15922
15923         * trans.c (tree_transform, case N_Attribute_Reference, case Attr_Size &
15924         related): For a prefix that is a dereference of a fat or thin pointer,
15925         if there is an actual subtype provided by the front-end, use that
15926         subtype to build an actual type with bounds template.
15927         (tree_transform, case N_Free_Statement): If an Actual_Designated_Subtype
15928         is provided by the front-end, use that subtype to compute the size of
15929         the deallocated object.
15930         (gnat_to_gnu): When adding a statement into an elaboration procedure,
15931         check for a potential violation of a No_Elaboration_Code restriction.
15932         (maybe_stabilize_reference): New function, like gnat_stabilize_reference
15933         with extra arguments to control whether to recurse through non-values
15934         and to let the caller know if the stabilization has succeeded.
15935         (gnat_stabilize_reference): Now a simple wrapper around
15936         maybe_stabilize, for common uses without restriction on lvalues and
15937         without need to check for the success indication.
15938         (gnat_to_gnu, call_to_gnu): Adjust calls to gnat_stabilize_reference, to
15939         pass false instead of 0 as the FORCE argument which is a bool.
15940         (Identifier_to_gnu): Remove checks ensuring that an renamed object
15941         attached to a renaming pointer has been properly stabilized, as no such
15942         object is attached otherwise.
15943         (call_to_gnu): Invoke create_var_decl to create the temporary when the
15944         function uses the "target pointer" return mechanism.
15945         Reinstate conversion of the actual to the type of the formal
15946         parameter before any other specific treatment based on the passing
15947         mechanism. This turns out to be necessary in order for PLACEHOLDER
15948         substitution to work properly when the latter type is unconstrained.
15949
15950         * gigi.h (build_unc_object_type_from_ptr): New subprogram, factoring a
15951         common pattern.
15952         (maybe_stabilize_reference): New function, like gnat_stabilize_reference
15953         with extra arguments to control whether to recurse through non-values
15954         and to let the caller know if the stabilization has succeeded.
15955
15956         * utils2.c (gnat_build_constructor): Only sort the fields for possible
15957         static output of record constructor if all the components are constant.
15958         (gnat_build_constructor): For a record type, sort the list of field
15959         initializers in increasing bit position order.
15960         Factor common code to build a storage type for an unconstrained object
15961         from a fat or thin pointer type and a constrained object type.
15962         (build_unary_op) <ADDR_EXPR>: Always recurse down conversions between
15963         types variants, and process special cases of VIEW_CONVERT expressions
15964         as their NOP_EXPR counterpart to ensure we get to the
15965         CORRESPONDING_VARs associated with CONST_DECls.
15966         (build_binary_op) <MODIFY_EXPR>: Do not strip VIEW_CONVERT_EXPRs
15967         on the right-hand side.
15968
15969         * utils.c (build_unc_object_type_from_ptr): New subprogram, factoring
15970         a common pattern.
15971         (convert) <VIEW_CONVERT_EXPR>: Return the inner operand directly if we
15972         are converting back to its original type.
15973         (convert) <JM input>: Fallthrough regular conversion code instead of
15974         extracting the object if converting to a type variant.
15975         (create_var_decl): When a variable has an initializer requiring code
15976         generation and we are at the top level, check for a potential violation
15977         of a No_Elaboration_Code restriction.
15978         (create_var_decl): call expand_decl for CONST_DECLs, to set MODE, ALIGN
15979         SIZE and SIZE_UNIT which we need for later back-annotations.
15980         * utils.c: (convert) <STRING_CST>: Remove obsolete code.
15981         <VIEW_CONVERT_EXPR>: Do not lift the conversion if the target type
15982         is an unchecked union.
15983         (pushdecl): Set DECL_NO_STATIC_CHAIN on imported nested functions.
15984         (convert) <VIEW_CONVERT_EXPR>: When the types have the same
15985         main variant, just replace the VIEW_CONVERT_EXPR.
15986         <UNION_TYPE>: Revert 2005-03-02 change.
15987
15988         * repinfo.h, repinfo.ads: Add tcode for BIT_AND_EXPR.
15989
15990         * repinfo.adb (Print_Expr, Rep_Value): Handle Bit_And_Expressions.
15991
15992 2005-11-14  Matthew Heaney  <heaney@adacore.com>
15993
15994         * a-crbtgo.ads, a-crbtgo.adb, a-coorse.ads, a-coorse.adb, a-convec.ads, 
15995         a-convec.adb, a-coinve.ads, a-coinve.adb, a-cohama.ads, a-cohama.adb, 
15996         a-ciorse.ads, a-ciorse.adb, a-cihama.ads, a-cihama.adb, a-cidlli.ads, 
15997         a-cidlli.adb, a-cdlili.ads, a-cdlili.adb, a-coormu.adb, a-ciormu.adb, 
15998         a-cihase.adb, a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads, 
15999         a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-ciorma.adb, a-coorma.adb: 
16000         Compiles against the spec for ordered maps described in sections
16001         A.18.6 of the most recent (August 2005) AI-302 draft.
16002
16003 2005-11-14  Olivier Hainque  <hainque@adacore.com>
16004
16005         * cuintp.c (UI_To_gnu): Use a proper type for intermediate computations
16006         to ensure bias adjustments take place when need be and to prevent
16007         occurrences of intermediate overflows.
16008
16009 2005-11-14  Matthew Gingell  <gingell@adacore.com>
16010             Olivier Hainque  <hainque@adacore.com>
16011
16012         * tb-gcc.c (trace_callback): Work around problem with _Unwind_GetIP on
16013         ia64 HP-UX.
16014
16015         * tracebak.c (ia64 configuration): Enable _Unwind_Backtrace driven
16016         tracebacks on ia64 HP-UX and provide explanatory comment.
16017         Enable backtraces on ia64 GNU/Linux.
16018         (x86 configuration): Bump FRAME_LEVEL to 1 to ensure we retrieve a real
16019         base pointer from builtin_frame_address. Adjust BASE_SKIP accordingly.
16020
16021 2005-11-14  Hristian Kirtchev  <kirtchev@adacore.com>
16022             Javier Miranda  <miranda@adacore.com>
16023
16024         * rtsfind.ads, exp_util.adb, exp_util.ads, exp_disp.adb, exp_disp.ads,
16025         exp_ch7.adb, sem_ch9.adb, snames.adb, snames.ads,
16026         exp_ch9.adb, exp_ch9.ads, exp_ch6.adb, exp_ch3.adb, exp_ch3.ads,
16027         einfo.ads, einfo.adb: Complete support for Ada 2005 interfaces.
16028
16029         * a-tags.ads, a-tags.adb: Major rewrite and additions to implement
16030         properly new Ada 2005 interfaces (AI-345) and add run-time checks (via
16031         assertions).
16032
16033         * exp_dbug.ads, exp_dbug.adb (Get_Secondary_DT_External_Name): New
16034         subprogram that generates the external name associated with a
16035         secondary dispatch table.
16036         (Get_Secondary_DT_External_Name): New subprogram that generates the
16037         external name associated with a secondary dispatch table.
16038
16039 2005-11-14  Emmanuel Briot  <briot@adacore.com>
16040
16041         * xref_lib.adb (Parse_Identifier_Info): It is possible for an entity
16042         line in the ALI file to include both an instantiation reference, and a
16043         returned value.
16044
16045 2005-11-14  Vincent Celier  <celier@adacore.com>
16046
16047         * clean.adb (Check_Project): Look for Ada code in extending project,
16048         even if Ada is not specified as a language.
16049         Use new function DLL_Prefix for DLL_Name
16050         (Clean_Interface_Copy_Directory): New procedure
16051         (Clean_Library_Directory): New procedure
16052         (Clean_Directory): Remove procedure, no longer used
16053         (Clean_Project): Do not delete any file in an externally built project
16054
16055         * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Add the object
16056         directory of an extending project, even when there are no Ada source
16057         present.
16058         (Ada_Objects_Path.Add): Add Library_ALI_Dir, not Library_Dir to the path
16059         (Set_Ada_Paths.Add.Recursive_Add): Ditto
16060
16061         * mlib-prj.adb (Check_Library): For all library projects, get the
16062         library file timestamp.
16063         (Build_Library): Copy ALI files in Library_ALI_Dir, not in Library_Dir
16064         (Build_Library): Use new function DLL_Prefix for the DLL_Name
16065         (Clean): Remove procedure, no longer used
16066         (Ultimate_Extension_Of): New function
16067         (Build_Library): When cleaning the library directory, only remove an
16068         existing library file and any ALI file of a source of the project.
16069         When cleaning the interface copy directory, remove any source that
16070         could be a source of the project.
16071
16072         * prj.ads, prj.adb (Project_Empty): Add values of new components
16073         Library_TS and All_Imported_Projects.
16074         (Project_Empty): Add values for new components of Project_Data:
16075         Library_ALI_Dir and Display_Library_ALI_Dir
16076
16077         * prj-attr.adb: New project level attribute name Library_ALI_Dir
16078
16079         * prj-nmsc.adb (Check_Library_Attributes): Take into account new
16080         attribute Library_ALI_Dir.
16081         (Check_Library_Attributes): The library directory cannot be the same as
16082         any source directory of the project tree.
16083         (Check_Stand_Alone_Library): The interface copy directory cannot be
16084         the same as any source directory of the project tree.
16085
16086         * mlib.adb: Use Prj.Com.Fail, instead of Osint.Fail directly, to delete
16087         all temporary files.
16088
16089 2005-11-14  Robert Dewar  <dewar@adacore.com>
16090             Ed Schonberg  <schonberg@adacore.com>
16091
16092         * sem_elab.adb: Change name Is_Package to Is_Package_Or_Generic_Package
16093         (Check_Elab_Call): A call within a protected body is never an
16094         elaboration call, and does not require checking.
16095         (Same_Elaboration_Scope): Take into account protected types for both
16096         entities.
16097         (Activate_Elaborate_All_Desirable): New procedure
16098
16099         * ali.ads, ali.adb: Implement new AD/ED for Elaborate_All/Elaborate
16100         desirable
16101
16102         * binde.adb: Implement new AD/ED for Elaborate_All/Elaborate desirable
16103         (Elab_Error_Msg): Use -da to include internal unit links, not -de.
16104
16105         * lib-writ.ads, lib-writ.adb: 
16106         Implement new AD/ED for Elaborate_All/Elaborate desirable
16107         Use new Elaborate_All_Desirable flag in N_With_Clause node
16108
16109         * sinfo.ads, sinfo.adb (Actual_Designated_Subtype): New attribute for
16110         N_Free_Statement nodes.
16111         Define new class N_Subprogram_Instantiation
16112         Add Elaborate_Desirable flag to N_With_Clause node
16113         Add N_Delay_Statement (covering two kinds of delay)
16114
16115         * debug.adb: Introduce d.f flag for compiler
16116         Add -da switch for binder
16117
16118 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
16119             Cyrille Comar  <comar@adacore.com>
16120
16121         * exp_aggr.adb (Build_Record_Aggr_Code): Do not create master entity
16122         for task component, in the case of a limited aggregate. The enclosed
16123         object declaration will create it earlier. Otherwise, in the case of a
16124         nested aggregate, the object may appear in the wrong scope.
16125         (Convert_Aggr_In_Object_Decl): Create a transient scope when needed.
16126         (Gen_Assign): If the component being assigned is an array type and the
16127         expression is itself an aggregate, wrap the assignment in a block to
16128         force finalization actions on the temporary created for each row of the
16129         enclosing object.
16130         (Build_Record_Aggr_Code): Significant rewrite insuring that ctrl
16131         structures are initialized after all discriminants are set so that
16132         they can be accessed even when their offset is dynamic.
16133
16134 2005-11-14  Robert Dewar  <dewar@adacore.com>
16135             Hristian Kirtchev  <kirtchev@adacore.com>
16136
16137         * sem_attr.adb: Implement Machine_Rounding attribute
16138         (Analyze_Access_Attribute): The access attribute may appear within an
16139         aggregate that has been expanded into a loop.
16140         (Check_Task_Prefix): Add semantic check for attribute 'Callable and
16141         'Terminated whenever the prefix is of a task interface class-wide type.
16142         (Analyze_Attribute): Add semantic check for attribute 'Identity whenever
16143         the prefix is of a task interface class-wide type.
16144
16145         * s-vaflop-vms-alpha.adb: Valid_D, Valid_F, Valid_G: Make Val constant
16146         to avoid warnings.
16147
16148         * s-fatgen.ads, s-fatgen.adb (Machine_Rounding): New function
16149         Remove pragma Inline for [Unaligned_]Valid.
16150         Add comments that Valid routines do not work for Vax_Float
16151
16152         * exp_attr.adb: Implement Machine_Rounding attribute
16153
16154         * snames.h: Add entry for Machine_Rounding attribute
16155
16156 2005-11-14  Javier Miranda  <miranda@adacore.com>
16157             Robert Dewar  <dewar@adacore.com>
16158             Hristian Kirtchev  <kirtchev@adacore.com>
16159
16160         * exp_attr.adb (Expand_N_Attribute_Reference, cases of Attribute_Size
16161         and related): For a prefix that is an explicit dereference of an
16162         access to unconstrained packed array type, annotate the dereference
16163         with an actual subtype so GIGI can make a correct size computation.
16164         (Expand_N_Attribute_Reference): In case of 'Unchecked_Access and
16165         'Unrestricted_Access, if the designated type is an interface we
16166         add a type conversion to force the displacement of the pointer
16167         to the secondary dispatch table.
16168         Use Universal_Real instead of Long_Long_Float when we need a high
16169         precision float type for the generated code (prevents gratuitous
16170         Vax_Float stuff when pragma Float_Representation (Vax_Float) used)
16171         (Expand_N_Attribute_Reference): Add support for attribute 'Callable and
16172         'Terminated for task interface class-wide objects. Generate a call to
16173         the predefined dispatching routine used to retrieve the _task_id from
16174         a task corresponding record.
16175         (Expand_Fpt_Attribute): Major change to properly handle Vax_Float
16176
16177         * sem_disp.adb: Change name Is_Package to Is_Package_Or_Generic_Package
16178         (Check_Dispatching_Operation): Protect the frontend againts
16179         previously detected errors.
16180
16181         * Makefile.rtl: Add new instantiations of system.fat_gen
16182
16183         * s-fatflt.ads, s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads: 
16184         Change name of instantiated package for better consistency
16185         with newly added system.fat_gen instantiations.
16186
16187         * s-filofl.ads, s-fishfl.ads, s-fvadfl.ads, s-fvaffl.ads,
16188         s-fvagfl.ads: New files.
16189
16190 2005-11-14  Cyrille Comar  <comar@adacore.com>
16191             Thomas Quinot  <quinot@adacore.com>
16192
16193         * exp_ch5.adb (Expand_N_Assignment_Statement, Tagged_Case): For an
16194         assignment of a value of a tagged type that has been rewritten to a
16195         block statement, it is known by construction that no checks are
16196         necessary for the statements within the block: analyze it with checks
16197         suppressed.
16198         (Expand_N_If_Statement): When killing a dead then-branch in an
16199         if-statement that has elsif_parts, recompute the Current_Value node
16200         for any entity whose value is known from the condition of the first
16201         elsif_part.
16202         (Expand_N_Return_Statement): When returning a mutable record, convert
16203         the return value into its actual subtype in order to help the backend
16204         to return the actual size instead of the maximum. This is another
16205         aftermath of not returning mutable records on the sec-stack anymore.
16206
16207         * sem_ch5.ads, sem_ch5.adb (Analyze_Iteration_Scheme): Minor change to
16208         handling of error msg for suspicious reverse range iteration.
16209         (Check_Possible_Current_Value_Condition): Move declaration from body to
16210         spec, to allow this subprogram to be called from exp_ch5.
16211
16212 2005-11-14  Thomas Quinot  <quinot@adacore.com>
16213
16214         * exp_dist.adb (Append_Array_Traversal): Modify constrained case to
16215         generate a set of nested array aggregates instead of a single flat
16216         aggregate for multi-dimensional arrays.
16217
16218 2005-11-14  Pascal Obry  <obry@adacore.com>
16219
16220         * expect.c (__gnat_kill) [Win32]: Fix implementation, the pid returned
16221         by spawnve is a process handle, no need to convert. Add a parameter
16222         close to control wether the process handle must be closed.
16223         (__gnat_waitpid): Fix implementation, the pid returned by spawnve is
16224         a process handle, not need to convert.
16225         (__gnat_kill) [*]: Add dummy parameter close to match the Win32 spec.
16226
16227         * g-expect.adb: (Kill): Document the new close parameter.
16228         (Close): Do not release the process handle in the kill there as
16229         waitpid() is using it.
16230         (Send_Signal): Release the process handle.
16231
16232 2005-11-14  Robert Dewar  <dewar@adacore.com>
16233
16234         * exp_fixd.adb: Use Universal_Real instead of Long_Long_Float when we
16235         need a high precision float type for the generated code (prevents
16236         gratuitous Vax_Float stuff when pragma Float_Representation (Vax_Float)
16237         used).
16238
16239         * exp_imgv.adb: Use Universal_Real instead of Long_Long_Float when we
16240         need a high precision float type for the generated code (prevents
16241         gratuitous Vax_Float stuff when pragma Float_Representation (Vax_Float)
16242         used).
16243         (Expand_Width_Attribute): In configurable run-time, the attribute is not
16244         allowed on non-static enumeration subtypes. Force a load error to emit
16245         the correct diagnostic.
16246
16247 2005-11-14  Thomas Quinot  <quinot@adacore.com>
16248             Robert Dewar  <dewar@adacore.com>
16249             Ed Schonberg  <schonberg@adacore.com>
16250
16251         * exp_intr.adb (Expand_Unc_Deallocation): If GIGI needs an actual
16252         subtype to compute the size of the designated object at run-time,
16253         create such a subtype and store it in the Actual_Designated_Subtype
16254         attribute of the N_Free_Statement.
16255         Generate itype for classwide designated object in both cases of
16256         user-specified storage pool: specific and class-wide, not only in the
16257         specific case.
16258         Raise CE when trying to set a not null access type object to null.
16259         (Expand_Dispatching_Constructor_Call): Retrieve subprogram actual with
16260         an explicit loop, because freeze nodes make its position variable.
16261
16262         * sem_intr.adb (Check_Intrinsic_Call): Given warning for freeing not
16263         null object.
16264
16265 2005-11-14  Javier Miranda  <miranda@adacore.com>
16266
16267         * exp_strm.adb (Build_Stream_Attr_Profile, Build_Stream_Function,
16268         Build_Stream_Procedure): Add the null-excluding attribute to the first
16269         formal.
16270         This has no semantic meaning under Ada95 mode but it is a
16271         requirement under Ada05 mode.
16272
16273         * par-ch3.adb (P_Access_Definition): Addition of warning message if
16274         the null exclusion is used under Ada95 mode
16275         (P_Null_Exclusion): The qualifier has no semantic meaning in Ada 95.
16276         (P_Access_Definition): Remove assertion that forbids the use of
16277         the null-exclusion feature in Ada95.
16278
16279 2005-11-14  Robert Dewar  <dewar@adacore.com>
16280
16281         * impunit.adb: Exclude container helper units not intended for use by
16282         users.
16283
16284 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
16285
16286         * freeze.adb (Freeze_Entity): For an access formal that is an access
16287         to subprogram, freeze the anonymous subprogram type at the same time,
16288         to prevent later freezing in the wrong scope, such as the enclosing
16289         subprogram body.
16290         (Freeze_Entity): Freeze the equivalent_type of an access_to_protected_
16291         subprogram whenever available.
16292
16293 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
16294
16295         PR ada/23732
16296         * gnatvsn.ads (Library_Version): Bump to 4.1
16297
16298 2005-11-14  Robert Dewar  <dewar@adacore.com>
16299
16300         * g-debpoo.adb (Set_Valid): Use Integer_Address instead of
16301         Storage_Offset to avoid wrap around causing invalid results.
16302
16303 2005-11-14  Pascal Obry  <obry@adacore.com>
16304
16305         * gnatbind.adb (Is_Cross_Compiler): New function returning True for
16306         cross-compiler.
16307         (Scan_Bind_Arg): Fail with an error message if -M option is used
16308         on a native compiler.
16309
16310 2005-11-14  Robert Dewar  <dewar@adacore.com>
16311             Vincent Celier  <celier@adacore.com>
16312
16313         * gprep.adb: Implement -C switch to scan comments
16314
16315         * scng.adb: Scan comment symbol separately if Replace_In_Comments set
16316
16317         * scans.ads: Comment updates (including new use of Tok_Comment in
16318         preprocessing)
16319
16320         * opt.ads: Add documentation for flags that are used by gprmake,
16321         currently and in the next version of gprmake.
16322         (Verbosity_Level): New variable
16323         Add Replace_In_Comments switch
16324
16325         * vms_data.ads: Add VMS equivalent for new gnatmake switches -vl, -vm
16326         and -vm.
16327         Add /REPLACE_IN_COMMENTS for gnatprep -C switch
16328
16329 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
16330
16331         * g-regpat.adb (Fail): raise Expression_Error including the diagnostic
16332         message, friendlier.
16333
16334 2005-11-14  Robert Dewar  <dewar@adacore.com>
16335
16336         * g-spitbo.adb: (Hash): Rotate by 3 instead of 1
16337
16338 2005-11-14  Doug Rupp  <rupp@adacore.com>
16339
16340         * init.c [VMS]: Don't install __gnat_error_handler if DBG$TDBG defined.
16341
16342 2005-11-14  Robert Dewar  <dewar@adacore.com>
16343
16344         * interfac.ads: Change declarations of IEEE float types so that we no
16345         longer need a separate version of this package for VMS.
16346
16347 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
16348
16349         * lib-xref.adb (Generate_Definition, Generate_Reference): Treat the
16350         internal entity created for the declaration of a child subprogram body
16351         with no spec as coming from source, to generate proper cross-reference
16352         information.
16353
16354 2005-11-14  Vincent Celier  <celier@adacore.com>
16355
16356         * make.adb (Compile_Sources): Change verbose message to minimum
16357         verbosity level High for "is in an Ada library", "is a read-only
16358         library" and "is an internal library",
16359         (Create_Binder_Mapping_File): Path name of ALI file for library project
16360         must include the library directory, not the object directory.
16361         (Scan_Make_Arg): Make sure that Switch.M.Scan_Make_Switches is called
16362         for new switches -vl, -vm and -vh.
16363         (Verbose_Msg): Add new defaulted parameter Minimum_Verbosity
16364         (Check): Use minimum verbosity Medium for some Verbose_Msg calls
16365         (Compile_Sources): Do not attempt to compile if an ALI file is missing
16366         in a project that is externally built.
16367         (Compute_All_Imported_Projects): New procedure
16368         (Gnatmake): Check if importing libraries should be regenerated because
16369         at least an imported library is more recent.
16370         (Initialize): For each project compute the list of the projects it
16371         imports directly or indirectly.
16372         (Add_Library_Search_Dir): New procedure, used in place of
16373         Add_Lib_Search_Dir in procedure Scan_Make_Arg so that absolute paths are
16374         put in the search paths.
16375         (Add_Source_Search_Dir): New procedure, used in place of
16376         Add_Src_Search_Dir in procedure Scan_Make_Arg so that absolute paths are
16377         put in the search paths.
16378         (Mark_Directory): Resolve the absolute path the directory before marking
16379         it.
16380
16381         * switch-m.adb (Scan_Make_Switches): Replace "raise Bad_Switch;" with
16382         call to new procedure Bad_Switch. Call Scan_Pos with new parameter
16383         Switch. Do not handle any exception.
16384         (Scan_Make_Switches): Increment Ptr for new switches -vl, -vm and -vh
16385         so that the switch is recognized as valid.
16386         (Scan_Make_Switches): Implement new switches -vl, -vm and -vh.
16387
16388 2005-11-14  GNAT Script  <nobody@adacore.com>
16389
16390         * Make-lang.in: Makefile automatically updated
16391
16392 2005-11-14  Pascal Obry  <obry@adacore.com>
16393
16394         * mdll.adb (Build_Reloc_DLL): Fix parameter handling when a map file is
16395         used.
16396         (Ada_Build_Reloc_DLL): Fix parameter handling when a map file is used.
16397         In both cases the last argument was dropped.
16398
16399 2005-11-14  Eric Botcazou  <ebotcazou@adacore.com>
16400
16401         * namet.h: (Column_Numbe): New type.
16402         (Get_Column_Number): Define to sinput__get_column_number.
16403         (Instantiation): Define to sinput__instantiation.
16404         (Get_Column_Number): Declare.
16405         (Instantiation): Likewise.
16406
16407 2005-11-14  Robert Dewar  <dewar@adacore.com>
16408
16409         * par-ch10.adb (P_Compilation_Unit): Add defenses against junk unit
16410         syntax, which could cause compiler hangs.
16411
16412 2005-11-14  Vincent Celier  <celier@adacore.com>
16413
16414         * prj-ext.adb: Take into account new environment variable
16415         GPR_PROJECT_PATH. Warn if both GPR_PROJECT_PATH and ADA_PROJECT_PATH
16416         are defined.
16417         (Prj.Ext elaboration): For each directory in the ADA_PROJECT_PATH,
16418         normalize its path name, making it absolute and resolving symbolic
16419         links, and replace the original if resolved path is different.
16420
16421 2005-11-14  Vincent Celier  <celier@adacore.com>
16422
16423         * prj-part.adb (Create_Virtual_Extending_Project): Put virtual project
16424         into Prj.Tree.Tree_Private_Part.Projects_Htable for GPS.
16425
16426 2005-11-14  Emmanuel Briot  <briot@adacore.com>
16427
16428         * prj-pp.adb (Print): Do not output the with statement if the
16429         associated name is empty, which happens for virtual extending projects.
16430         (Print): Preserve the "extends all" attribute when printing the project.
16431
16432         * prj-tree.ads (String_Value_Of): Add comment about returned value for
16433         a virtual extending project.
16434
16435 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
16436
16437         * sem_aggr.adb (Resolve_Aggregate): An others choice is legal on the
16438         rhs of an assignment even if the type is unconstrained, when the
16439         context is non-expanding.
16440         In an inlined body, if the context type is private,
16441         resolve with its full view, which must be a composite type.
16442
16443 2005-11-14  Robert Dewar  <dewar@adacore.com>
16444             Ed Schonberg  <schonberg@adacore.com>
16445
16446         * sem_ch10.adb: Change name Is_Package to Is_Package_Or_Generic_Package
16447         Do not give obsolescent warning on with of subprogram (since we
16448         diagnose calls)
16449         (Analyze_With_Clause): Add test for obsolescent package
16450         (Install_Context_Clauses): If the unit is the body of a child unit, do
16451         not install twice the private declarations of the parents, to prevent
16452         circular lists of Use_Clauses in a parent.
16453         (Implicit_With_On_Parent): Do add duplicate with_clause on parent when
16454         compiling body of child unit.
16455         Use new class N_Subprogram_Instantiation
16456         (Expand_With_Clause): If this is a private with_clause for a child unit,
16457         appearing in the context of a package declaration, then the implicit
16458         with_clauses generated for parent units are private as well.
16459         (License_Check): Do not generate message if with'ed unit is internal
16460
16461 2005-11-14  Gary Dismukes  <dismukes@adacore.com>
16462             Ed Schonberg  <schonberg@adacore.com>
16463             Thomas Quinot  <quinot@adacore.com>
16464
16465         * sem_ch12.ads, sem_ch12.adb (Map_Entities): Exclude entities whose
16466         names are internal, because they will not have a corresponding partner
16467         in the actual package.
16468         (Analyze_Formal_Package): Move the setting of the formal package spec's
16469         Generic_Parent field so that it occurs prior to analyzing the package,
16470         to allow proper operation of Install_Parent_Private_Declarations.
16471         (Analyze_Package_Instantiation): Set the instantiated package entity's
16472         Package_Instantiation field.
16473         (Get_Package_Instantiation_Node): Move declaration to package spec.
16474         Retrieve the N_Package_Instantiation node when the Package_Instantiation
16475         field is present.
16476         (Check_Generic_Child_Unit): Within an inlined call, the only possible
16477         instantiation is Unchecked_Conversion, for which no parents are needed.
16478         (Inline_Instance_Body): Deinstall and record the use_clauses for all
16479         parent scopes of a scope being removed prior to inlining an instance
16480         body.
16481         (Analyze_Package_Instantiation): Do not perform front-end inlining when
16482         the current context is itself an instance within a non-instance child
16483         unit, to prevent scope stack errors.
16484         (Save_References): If the node is an aggregate that is an actual in a
16485         call, rewrite as a qualified expression to preserve some type
16486         information, to resolve possible ambiguities in the instance.
16487         (Instance_Parent_Unit): New global variable to record the ultimate
16488         parent unit associated with a generic child unit instance (associated
16489         with the existing Parent_Unit_Visible flag).
16490         (type Instance_Env): New component Instance_Parent_Unit for stacking
16491         parents recorded in the global Instance_Parent_Unit.
16492         (Init_Env): Save value of Instance_Parent_Unit in the Instance_Env
16493         stack.
16494         (Install_Spec): Save the parent unit entity in Instance_Parent_Unit when
16495         it's not a top-level unit, and only do this if Instance_Parent_Unit is
16496         not already set. Replace test of Is_Child_Unit with test of parent's
16497         scope against package Standard. Add comments and a ??? comment.
16498         (Remove_Parent): Revise condition for resetting Is_Immediately_Visible
16499         on a child instance parent to test that the parent equals
16500         Instance_Parent rather than simply checking that the unit is not a
16501         child unit.
16502         (Restore_Env): Restore value of Instance_Parent_Unit from Instance_Env.
16503         (Validate_Derived_Interface_Type_Instance): Verify that all ancestors of
16504         a formal interface are ancestors of the corresponding actual.
16505         (Validate_Formal_Interface_Type): Additional legality checks.
16506         (Analyze_Formal_Derived_Interface_Type): New procedure to handle formal
16507         interface types with ancestors.
16508         (Analyze_Formal_Package): If formal is a renaming, use renamed entity
16509         to diagnose attempts to use generic within its own declaration.
16510
16511 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
16512             Javier Miranda  <miranda@adacore.com>
16513
16514         * sem_ch3.ads, sem_ch3.adb (Build_Discriminal): Add link to original
16515         discriminant.
16516         (Build_Private_Derived_Type): The entity of the created full view of the
16517         derived type does not come from source. If after installing the private
16518         declarations of the parent scope the parent is still private, use its
16519         full view to construct the full declaration of the derived type.
16520         (Build_Derived_Record_Type): Relax the condition that controls the
16521         execution of the check that verifies that the partial view and
16522         the full view agree in the set of implemented interfaces. In
16523         addition, this test now only takes into account the progenitors.
16524         (Derive_Interface_Subprograms): No need to derive subprograms
16525         of ancestors that are interfaces.
16526         (Derive_Subprograms): Remove formal No_Predefined_Prims and the
16527         associated code.
16528         Change name Is_Package to Is_Package_Or_Generic_Package
16529         (Complete_Subprograms_Derivation): Handle the case in which the full
16530         view is a transitive derivation of the ancestor of the partial view.
16531         (Process_Full_View): Rename local subprogram Find_Interface_In_
16532         Descendant to Find_Ancestor_Interface to leave the code more clear.
16533         Remove wrong code that avoids the generation of an error message
16534         when the immediate ancestor of the partial view is an interface.
16535         In addition some minor reorganization of the code has been done to
16536         leave it more clear.
16537         (Analyze_Type_Declaration): If type has previous incomplete tagged
16538         partial view, inherit properly its primitive operations.
16539         (Collect_Interfaces): Make public, for analysis of formal
16540         interfaces.
16541         (Analyze_Interface_Declaration): New procedure for use for regular and
16542         formal interface declarations.
16543         (Build_Derived_Record_Type): Add support for private types to the code
16544         that checks if a tagged type implements abstract interfaces.
16545         (Check_Aliased_Component_Type): The test applies in the spec of an
16546         instance as well.
16547         (Access_Type_Declaration): Clean up declaration of malformed type
16548         declared as an access to its own classwide type, to prevent cascaded
16549         crash.
16550         (Collect_Interfaces): For private extensions and for derived task types
16551         and derived protected types, the parent may be an interface that must
16552         be included in the interface list.
16553         (Access_Definition): If the designated type is an interface that may
16554         contain tasks, create Master_Id for it before analyzing the expression
16555         of the declaration, which may be an allocator.
16556         (Record_Type_Declaration): Set properly the interface kind, for use
16557         in allocators, the creation of master id's for task interfaces, etc.
16558
16559 2005-11-14  Javier Miranda  <miranda@adacore.com>
16560             Ed Schonberg  <schonberg@adacore.com>
16561
16562         * sem_ch6.adb (Check_Conformance): The null-exclusion feature can be
16563         omitted in case of stream attribute subprograms.
16564         (Check_Inline_Pragma): Handle Inline and Inline_Always pragmas that
16565         appear immediately after a subprogram body, when there is no previous
16566         subprogram declaration.
16567         Change name Is_Package to Is_Package_Or_Generic_Package
16568         (Process_Formals): A non null qualifier on a non null named access
16569         type is not an error, and is a warning only if Redundant_Constructs
16570         are flagged.
16571
16572 2005-11-14  Gary Dismukes  <dismukes@adacore.com>
16573             Ed Schonberg  <schonberg@adacore.com>
16574
16575         * sem_ch7.adb (Install_Parent_Private_Declarations): New procedure
16576         nested within Analyze_Package_Specification to install the private
16577         declarations and use clauses within each of the parent units of a
16578         package instance of a generic child package.
16579         (Analyze_Package_Specification): When entering a private part of a
16580         package associated with a generic instance or formal package, the
16581         private declarations of the parent must be installed (by calling new
16582         procedure Install_Parent_Private_Declarations).
16583         Change name Is_Package to Is_Package_Or_Generic_Package
16584         (Preserve_Full_Attributes): For a synchronized type, the corresponding
16585         record is absent in a generic context, which does not indicate a
16586         compiler error.
16587
16588 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
16589
16590         * sem_ch8.adb (Analyze_Subprogram_Renaming): In a generic context, do
16591         not try to rewrite a renamed stream attribute, because the operations
16592         on the type may not have been generated.
16593         Handle properly a renaming_as_body generated for a stream operation
16594         whose default is abstract because the object type itself is abstract.
16595         (Find_Type): If the type is incomplete and appears as the prefix of a
16596         'Class reference, it is tagged, and its list of primitive operations
16597         must be initialized properly.
16598         (Chain_Use_Clauses): When chaining the use clauses that appear in the
16599         private declaration of a parent unit, prior to compiling the private
16600         part of a child unit, find on the scope stack the proper parent entity
16601         on which to link the use clause.
16602         (Note_Redundant_Use): Emit a warning when a redundant use clause is
16603         detected.
16604         (Analyze_Object_Renaming): An attribute reference is not a legal object
16605         if it is not a function call.
16606
16607 2005-11-14  Robert Dewar  <dewar@adacore.com>
16608             Ed Schonberg  <schonberg@adacore.com>
16609
16610         * sem_eval.adb: Implement d.f flag
16611         (Subtype_Statically_Match): A generic actual type has unknown
16612         discriminants when the corresponding actual has a similar partial view.
16613         If the routine is called to validate the signature of an inherited
16614         operation in a child instance, the generic actual matches the full view,
16615
16616 2005-11-14  Hristian Kirtchev  <kirtchev@adacore.com>
16617             Ed Schonberg  <schonberg@adacore.com>
16618             Robert Dewar  <dewar@adacore.com>
16619             Thomas Quinot  <quinot@adacore.com>
16620
16621         * sem_res.adb (Resolve_Call): Provide a better error message whenever
16622         a procedure call is used as a select statement trigger and is not an
16623         entry renaming or a primitive of a limited interface.
16624         (Valid_Conversion): If the operand has a single interpretation do not
16625         remove address operations.
16626         (Check_Infinite_Recursion): Skip freeze nodes when looking for a raise
16627         statement to inhibit warning.
16628         (Resolve_Unary_Op): Do not produce a warning when
16629         processing an expression of the form -(A mod B)
16630         Use Universal_Real instead of Long_Long_Float when we need a high
16631         precision float type for the generated code (prevents gratuitous
16632         Vax_Float stuff when pragma Float_Representation (Vax_Float) used)
16633         (Resolve_Concatenation_Arg): Improve error message when argument is an
16634         ambiguous call to a function that returns an array.
16635         (Make_Call_Into_Operator, Operand_Type_In_Scope): Do not check that
16636         there is an implicit operator in the given scope if we are within an
16637         instance: legality check has been performed on the generic.
16638         (Resolve_Unary_Op): Apply warnings checks on argument of Abs operator
16639         after resolving operand, to avoid false warnings on overloaded calls.
16640
16641 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
16642             Javier Miranda  <miranda@adacore.com>
16643
16644         PR ada/15604
16645         * sem_type.adb (Covers): In an inlined body, a composite type matches
16646         a private type whose full view is a composite type.
16647         (Interface_Present_In_Ancestor): Protect the frontend against
16648         previously detected errors to ensure that its compilation
16649         with assertions enabled gives the same output that its
16650         compilation without assertions.
16651         (Interface_Present_In_Ancestor): Add support for private types.
16652         Change name In_Actual to In_Generic_Actual (clean up)
16653         (Disambiguate): New predicate In_Actual, to recognize expressions that
16654         appear in the renaming declaration generated for generic actuals, and
16655         which must be resolved in the outer context.
16656
16657 2005-11-14  Robert Dewar  <dewar@adacore.com>
16658             Thomas Quinot  <quinot@adacore.com>
16659             Hristian Kirtchev  <kirtchev@adacore.com>
16660             Ed Schonberg  <schonberg@adacore.com>
16661
16662         * sem_util.ads, sem_util.adb: Change name Is_Package to
16663         Is_Package_Or_Generic_Package.
16664         (Check_Obsolescent): New procedure.
16665         (Set_Is_Public): Remove obsolete junk test.
16666         (Set_Public_Status): Do not set Is_Public on an object whose declaration
16667         occurs within a handled_sequence_of_statemets.
16668         (Is_Controlling_Limited_Procedure): Factor some of the logic, account
16669         for a parameterless procedure.
16670         (Enter_Name): Recognize renaming declarations created for private
16671         component of a protected type within protected operations, so that
16672         the source name of the component can be used in the debugger.
16673
16674 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
16675             Robert Dewar  <dewar@adacore.com>
16676
16677         * sem_warn.ads, sem_warn.adb (Publicly_Referenceable): Generic formals
16678         of a generic subprogram are not visible outside the body.
16679         (Set_Warning_Switch): New procedure (code to set warning mode moved
16680         here from Switch.C so that it can be shared by pragma processing.
16681         (Check_References): Special case warning for non-modified non-imported
16682         volatile objects.
16683         * par-prag.adb: Modify processing of pragma Warnings to accomodate new
16684         form with a string literal argument
16685
16686 2005-11-14  Javier Miranda  <miranda@adacore.com>
16687
16688         * s-finroo.ads, s-finroo.adb (Read): Addition of "not null" to the
16689         anonymous access.
16690         (Write): Addition of "not null" to the anonymous access.
16691         (Read): Addition of "not null" to the anonymous access.
16692         (Write): Addition of "not null" to the anonymous access.
16693
16694         * s-strxdr.adb, s-stratt.ads, s-stratt.adb (I_AD, I_AS, I_B, I_C, I_F,
16695         I_I, I_LF, I_LI, I_LLF, I_LLI, I_LLU, I_LU, I_SF, I_SI, I_SSI, I_SSU,
16696         I_SU, I_U, I_WC): Addition of "not null" to the anonymous access.
16697         (W_AD, W_AS, W_B, W_C, W_F, W_I, W_LF, W_LI, W_LLF, W_LLI, W_LLU,
16698         W_LU, W_SF, W_SI, W_SSI, W_SSU, W_SU, W_U, W_WC): Addition of
16699         "not null" to the anonymous access.
16700
16701 2005-11-14  Robert Dewar  <dewar@adacore.com>
16702
16703         * s-stoele.adb: Fix code for Address mod Storage_Offset for negative
16704         offset values
16705
16706 2005-11-14  Vincent Celier  <celier@adacore.com>
16707
16708         * switch.adb (Bad_Switch): New procedure
16709         (Scan_Nat, Scan_Pos): Directly call Osint.Fail with the appropriate
16710         message when in error.
16711
16712         * switch.ads (Bad_Switch, Bad_Switch_Value, Missing_Switch_Value,
16713         Too_Many_Output_Files): Remove declarations, no longer used.
16714         (Scan_Nat): New parameter Switch
16715         (Scan_Pos): Ditto
16716         (Bad_Switch): New procedure
16717
16718         * switch-b.adb (Scan_Binder_Switches): Replace "raise Bad_Switch;"
16719         with call to new procedure Bad_Switch. Call Scan_Pos and Scan_Natwith
16720         new parameter Switch. Replace "raise Too_Many_Output_Files;" with call
16721         to Osint.Fail. Do not handle any exception.
16722
16723 2005-11-14  Vincent Celier  <celier@adacore.com>
16724
16725         * tempdir.adb (Tempdir): Do not use environment variable TMPDIR if it
16726         designates a non existent directory.
16727
16728 2005-11-14  Robert Dewar  <dewar@adacore.com>
16729
16730         * xgnatugn.adb: Replace invalid membership test by 'Valid
16731
16732 2005-11-14  Vincent Celier  <celier@adacore.com>
16733
16734         * makegpr.adb (Gprmake): Do not attempt to build the global archive if
16735         there is no object directory.
16736
16737 2005-11-14  Robert Dewar  <dewar@adacore.com>
16738
16739         * usage.adb: Minor adjustment to output format, use nn instead of nnn
16740         (so that -gnateInnn does not run into next column)
16741
16742 2005-11-14  Ed Falis  <falis@adacore.com>
16743
16744         * s-bitops.adb (Bits_Array): corrected comment: "unconstrained" =>
16745         "constrained"
16746
16747 2005-11-14  Cyrille Comar  <comar@adacore.com>
16748
16749         * s-chepoo.ads: Add comments on Dereference.
16750         Remove unnecessary inherited abstract primitives.
16751         Cosmetic cleanup.
16752
16753 2005-11-14  Robert Dewar  <dewar@adacore.com>
16754
16755         * sem_cat.ads (Validate_Access_Type_Declaration): Remove declaration
16756         node parameter, not needed, since it is available as Declaration_Node.
16757
16758 2005-11-14  Geert Bosch  <bosch@adacore.com>
16759
16760         * s-exnllf.adb (Exn_LLF): Fix comment to be more precise and
16761         grammatically correct.
16762
16763 2005-11-14  Vincent Celier  <celier@adacore.com>
16764
16765         * s-fileio.ads: Correct spelling error in comment
16766
16767 2005-11-14  Cyrille Comar  <comar@adacore.com>
16768             Robert Dewar  <dewar@adacore.com>
16769             Vincent Celier  <celier@adacore.com>
16770             Ben Brosgol  <brosgol@adacore.com>
16771             Jose Ruiz  <ruiz@adacore.com>
16772             Pascal Obry  <obry@adacore.com>
16773
16774         * gnat_ugn.texi: 
16775         Document that -fstack-check is needed for strict compliance with the
16776         Ada 95 Reference Manual.
16777         Correct reference to VAX systems to meet HP guidelines
16778         Add documentation for new gnatmake switches -vl, -vm and -vh
16779         Replace DEC Ada by HP Ada
16780         Replace DIGITAL by HP
16781         Remove empty section on tools in compatibility section
16782         Clarify the Windows convention semantics.
16783         Document the Win32 calling convention.
16784         The Stdcall, Win32 and DLL convention are synonyms.
16785         Add a note in -gnatR description about zero size record components
16786         Note on new >= and <= warnings for -gnatwc
16787         Document that equal sign after -gnatm is optional.
16788         Note that strip is working fine on DLL built with a Library
16789         Project. The restriction apply only to DLL built with gnatdll.
16790         Update section about the way to debug a DLL.
16791         Update information about the DLL convention.
16792         Document -C switch for gnatprep
16793         Document new attribute Library_ALI_Dir
16794         Update elaboration doc to include implicit Elaborate pragmas now
16795         generated for subprogram instantiations.
16796         Document limitation on executable names that include spaces for --GCC,
16797         --GNATBIND, and --GNATLINK switches.
16798         Document that -w causes -gnatws to be added at start of gcc switches
16799
16800         * gnat_rm.texi: Document that -mieee is needed for generating infinite
16801         and NaN values in case of overflow on machines that are not fully
16802         compliant with the IEEE floating-point standard.
16803         Create a section describing the set of compiler options needed for
16804         strict compliance with the Ada 95 Reference Manual.
16805         Add documentation for pragma Obsolescent applied to a package
16806         Clarify potential issues of mixed language programs related to the
16807         I/O buffering enabling in the elaboration of the GNAT runtime.
16808         Add extra documentation for pragma Restrictions (No_Elaboration_Code)
16809         This documentation only patch adds extra documentsion for pragma
16810         Restrictions (No_Elaboration_Code), explaining why it is not possible
16811         to document this restriction in terms of allowed source constructs.
16812         Document string literal form of pragma Warnings
16813         Document new attribute Library_ALI_Dir
16814         Add documentation on stable attributes in project files that was missing
16815
16816         * gnat-style.texi: Indicate that paragraphs within a single comment
16817         should be separated by empty comment lines
16818
16819         * ug_words: Added replacements for -gnat95 and -gnat05 (/95 and
16820         /05 respectively)
16821
16822         * bindusg.adb: Minor cleanup, put -m before -M for consistency
16823
16824 2005-11-14  Robert Dewar  <dewar@adacore.com>
16825
16826         * a-secain.adb, a-slcain.adb, a-shcain.adb, a-chtgke.ads, a-chtgke.adb,
16827         a-stwiha.adb, a-strhas.adb, a-chzla1.ads, a-chzla9.ads, a-stzbou.adb,
16828         a-stzbou.ads, a-stzfix.adb, a-stzhas.adb, a-stzmap.adb, a-stzmap.ads,
16829         a-stzsea.adb, a-stzsea.ads, a-stzsup.adb, a-stzsup.ads, a-stzunb.adb,
16830         a-stzunb.ads, a-szuzha.adb, a-szuzha.ads, a-szuzti.adb, a-szuzti.ads,
16831         a-ztcoau.adb, a-ztcoau.ads, a-ztcoio.adb, a-ztcstr.adb, a-ztcstr.ads,
16832         a-ztdeau.adb, a-ztdeau.ads, a-ztdeio.adb, a-ztdeio.ads, a-ztedit.adb,
16833         a-ztedit.ads, a-ztenau.ads, a-ztenio.adb, a-ztenio.ads, a-ztexio.adb,
16834         a-ztexio.ads, a-ztfiio.adb, a-ztfiio.ads, a-ztflau.adb, a-ztflau.ads,
16835         a-ztflio.adb, a-ztflio.ads, a-ztgeau.adb, a-ztgeau.ads, a-ztinau.adb,
16836         a-ztinau.ads, a-ztinio.adb, a-ztmoau.ads, a-ztmoio.adb, a-ztmoio.ads,
16837         a-zttest.adb, g-enblsp-vms-alpha.adb, g-enblsp-vms-alpha.adb,
16838         g-enblsp-vms-ia64.adb, g-enblsp-vms-ia64.adb, system-linux-hppa.ads,
16839         a-chacon.adb, a-chacon.ads, a-wichun.adb, a-wichun.ads, a-zchuni.adb,
16840         a-zchuni.ads, g-trasym-vms-alpha.adb, g-trasym-vms-ia64.adb,
16841         system-hpux-ia64.ads, g-soccon-unixware.ads, g-soliop-unixware.ads,
16842         g-soccon-interix.ads, g-soliop-solaris.ads, g-eacodu-vms.adb,
16843         g-expect-vms.adb, g-socthi-vms.adb, g-soliop-mingw.ads,
16844         a-intnam-unixware.ads, a-intnam-lynxos.ads, a-intnam-tru64.ads,
16845         a-intnam-aix.ads, a-intnam-linux.ads, a-intnam-linux.ads,
16846         a-intnam-dummy.ads, a-numaux-libc-x86.ads, a-intnam-interix.ads,
16847         a-intnam-solaris.ads, a-calend-vms.adb, a-calend-vms.ads,
16848         a-intnam-vms.ads, a-calend-mingw.adb, a-intnam-mingw.ads,
16849         a-intnam-vxworks.ads, a-numaux-vxworks.ads, system-unixware.ads,
16850         system-linux-ia64.ads, a-intnam-freebsd.ads, system-freebsd-x86.ads,
16851         system-lynxos-ppc.ads, system-linux-x86_64.ads, a-stunha.adb,
16852         a-cgaaso.ads, a-cgaaso.adb, a-chtgop.adb, a-cgcaso.adb, a-cgarso.adb,
16853         a-cohata.ads, a-crbtgk.adb, a-crbltr.ads, a-coprnu.adb, a-rbtgso.adb,
16854         a-intnam-darwin.ads, system-darwin-ppc.ads, gprmake.adb, makegpr.ads,
16855         system-tru64.ads, system-aix.ads, system-solaris-x86.ads,
16856         system-irix-o32.ads, s-interr-sigaction.adb, system-irix-n32.ads,
16857         s-parame-mingw.adb, system-hpux.ads, s-traceb-hpux.adb,
16858         system-linux-x86.ads, s-inmaop-dummy.adb, system-os2.ads,
16859         system-interix.ads, system-solaris-sparc.ads,
16860         system-solaris-sparcv9.ads, s-inmaop-vms.adb,
16861         s-mastop-vms.adb, expander.adb, expander.ads, s-gloloc-mingw.adb,
16862         system-mingw.ads, system-vms-zcx.ads, s-osinte-fsu.adb,
16863         s-traceb-mastop.adb, a-exextr.adb, a-exstat.adb, a-filico.ads,
16864         a-finali.ads, a-interr.ads, a-intsig.adb, a-intsig.ads,
16865         a-except.ads, a-numaux-x86.ads, a-astaco.adb, a-calend.adb,
16866         a-calend.ads, a-chahan.adb, a-chahan.ads, a-chlat9.ads,
16867         a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
16868         a-comlin.adb, a-comlin.ads, a-cwila1.ads, a-cwila9.ads,
16869         a-elchha.adb, a-decima.adb, a-decima.ads, a-diocst.ads,
16870         a-direio.adb, a-direio.ads, a-excach.adb, a-excach.adb,
16871         a-exctra.ads, ali-util.adb, a-ngcefu.adb, a-ngcoty.adb,
16872         a-ngcoty.ads, a-nudira.adb, a-nudira.ads, a-nuflra.adb,
16873         a-numaux.ads, a-reatim.ads, a-sequio.adb, a-sequio.ads,
16874         a-siocst.ads, a-ssicst.ads, a-stmaco.ads, a-storio.adb,
16875         a-strbou.adb, a-strbou.ads, a-stream.ads, a-strfix.adb,
16876         a-strmap.adb, a-strmap.ads, a-strsea.adb, a-strsea.ads,
16877         a-strsup.adb, a-strsup.ads, a-strunb.adb, a-strunb.ads,
16878         a-stwibo.adb, a-stwibo.ads, a-stwifi.adb, a-stwima.adb,
16879         a-stwima.ads, a-stwise.adb, a-stwise.ads, a-stwisu.adb,
16880         a-stwisu.ads, a-stwiun.adb, a-stwiun.ads, a-suteio.adb,
16881         a-suteio.ads, a-swmwco.ads, a-swuwti.adb, a-swuwti.ads,
16882         a-sytaco.adb, a-sytaco.ads, a-tasatt.adb, a-taside.adb,
16883         a-taside.ads, a-teioed.adb, a-textio.adb, a-textio.ads,
16884         a-ticoau.adb, a-ticoau.ads, a-ticoio.adb, a-tideau.adb,
16885         a-tideio.adb, a-tienau.adb, a-tienio.adb, a-tifiio.adb,
16886         a-tiflio.adb, a-tigeau.adb, a-tigeau.ads, a-tiinau.adb,
16887         a-tiinio.adb, a-timoau.adb, a-timoio.adb, a-timoio.ads,
16888         a-tiocst.ads, a-titest.adb, atree.adb, a-witeio.adb,
16889         a-witeio.ads, a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb,
16890         a-wtcstr.ads, a-wtdeau.adb, a-wtdeio.adb, a-wtedit.adb,
16891         a-wtedit.ads, a-wtenau.adb, a-wtenio.adb, a-wtfiio.adb,
16892         a-wtflio.adb, a-wtgeau.adb, a-wtinau.adb, a-wtinio.adb,
16893         a-wtmoau.adb, a-wtmoio.adb, a-wttest.adb, back_end.adb,
16894         bindgen.adb, butil.adb, butil.ads, checks.ads, cio.c, comperr.adb,
16895         csets.ads, cstand.adb, debug.ads, elists.ads, errno.c, errout.adb,
16896         errout.ads, erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
16897         errutil.ads, err_vars.ads, eval_fat.adb, exp_ch11.adb, exp_ch11.ads,
16898         exp_ch2.adb, exp_ch7.ads, exp_imgv.ads, exp_pakd.adb, exp_prag.adb,
16899         exp_prag.ads, exp_tss.adb, exp_tss.ads, exp_vfpt.ads, fe.h, fmap.adb,
16900         freeze.ads, frontend.adb, frontend.ads, g-arrspl.adb, g-arrspl.ads,
16901         g-awk.adb, g-awk.ads, g-boumai.ads, g-calend.adb, g-calend.ads,
16902         g-catiio.adb, g-comlin.adb, g-comlin.ads, g-comlin.ads, g-comlin.ads,
16903         g-comver.adb, g-crc32.adb, g-crc32.ads, g-ctrl_c.ads, g-curexc.ads,
16904         g-debpoo.ads, g-debuti.adb, g-diopit.adb, g-diopit.ads, g-dirope.adb,
16905         g-dirope.ads, g-dyntab.adb, g-dyntab.ads, g-excact.adb, g-excact.ads,
16906         g-except.ads, g-exctra.adb, g-exctra.ads, g-expect.ads, g-flocon.ads,
16907         g-hesorg.ads, g-io.adb, g-locfil.ads, g-md5.adb, g-md5.ads, g-md5.ads,
16908         g-moreex.adb, g-signal.ads, g-signal.adb, gnatbind.ads, gnatchop.adb,
16909         gnatcmd.adb, gnatfind.adb, gnatlbr.adb, gnatmake.ads, gnatmem.adb,
16910         gnatprep.adb, gnatprep.ads, gnatsym.adb, gnatxref.adb, g-os_lib.adb,
16911         g-os_lib.ads, g-pehage.adb, g-pehage.ads, gprep.ads, g-regexp.adb,
16912         g-regexp.ads, g-regist.adb, g-regist.ads, g-regpat.ads, g-semaph.adb,
16913         g-socthi.adb, g-soliop.ads, g-spipat.adb, g-spipat.ads, g-sptabo.ads,
16914         g-sptain.ads, g-sptavs.ads, g-string.ads, g-tasloc.adb, g-tasloc.ads,
16915         g-trasym.adb, g-trasym.ads, i-fortra.adb, i-fortra.ads, inline.adb,
16916         layout.adb, live.adb, make.ads, makeutl.ads, makeutl.adb, mdll-fil.adb,
16917         mdll-fil.ads, mdll-utl.ads, memroot.ads, memtrack.adb, mlib.ads,
16918         mlib-fil.adb, mlib-fil.ads, mlib-prj.ads, mlib-utl.adb, mlib-utl.ads,
16919         nlists.adb, nlists.ads, osint.adb, osint.ads, osint-c.adb, osint-l.adb,
16920         osint-l.ads, osint-m.ads, output.adb, par.adb, par.adb, par.ads,
16921         par-ch11.adb, par-ch12.adb, par-ch2.adb, par-ch4.adb, par-ch5.adb,
16922         par-ch6.adb, par-ch9.adb, par-endh.adb, par-labl.adb, par-load.adb,
16923         par-tchk.adb, prep.adb, prepcomp.adb, prepcomp.ads, prj-attr.ads,
16924         prj-com.ads, prj-dect.adb, prj-dect.ads, prj-env.ads, prj-err.ads,
16925         prj-ext.ads, prj-makr.adb, prj-makr.ads, prj-nmsc.ads, prj-pars.adb,
16926         prj-pars.ads, prj-part.ads, prj-pp.ads, prj-proc.ads, prj-strt.adb,
16927         prj-strt.ads, prj-tree.adb, prj-util.adb, prj-util.ads, rtsfind.adb,
16928         sem.adb, sem.ads, sem_case.adb, sem_case.ads, sem_ch11.adb,
16929         sem_ch4.adb, sem_ch6.ads, sem_ch7.ads, sem_dist.ads, sem_elab.ads,
16930         sem_elim.ads, sem_eval.ads, sem_intr.ads, sem_maps.adb, sem_maps.ads,
16931         sem_maps.ads, sem_res.ads, sem_type.ads, sfn_scan.adb, sfn_scan.ads,
16932         s-imgwch.ads, s-imgwiu.adb, s-imgwiu.ads, s-inmaop.ads, sinput.adb,
16933         sinput.ads, s-pack03.adb, s-pack03.ads, s-pack05.adb, s-pack05.ads,
16934         s-pack06.adb, s-pack06.ads, s-pack07.adb, s-pack07.ads, s-pack09.adb,
16935         s-pack09.ads, s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads,
16936         s-pack12.adb, s-pack12.ads, s-pack13.adb, s-pack13.ads, s-pack14.adb,
16937         s-pack14.ads, s-pack15.adb, s-pack15.ads, s-pack17.adb, s-pack17.ads,
16938         s-pack18.adb, s-pack18.ads, s-pack19.adb, s-pack19.ads, s-pack20.adb,
16939         s-pack20.ads, s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads,
16940         s-pack23.adb, s-pack23.ads, s-pack24.adb, s-pack24.ads, s-pack25.adb,
16941         s-pack25.ads, s-pack26.adb, s-pack26.ads, s-pack27.adb, s-pack27.ads,
16942         s-pack28.adb, s-pack28.ads, s-pack29.adb, s-pack29.ads, s-pack30.adb,
16943         s-pack30.ads, s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads,
16944         s-pack34.adb, s-pack34.ads, s-pack35.adb, s-pack35.ads, s-pack36.adb,
16945         s-pack36.ads, s-pack37.adb, s-pack37.ads, s-pack38.adb, s-pack38.ads,
16946         s-pack39.adb, s-pack39.ads, s-pack40.adb, s-pack40.ads, s-pack41.adb,
16947         s-pack41.ads, s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads,
16948         s-pack44.adb, s-pack44.ads, s-pack45.adb, s-pack45.ads, s-pack46.adb,
16949         s-pack46.ads, s-pack47.adb, s-pack47.ads, s-pack48.adb, s-pack48.ads,
16950         s-pack49.adb, s-pack49.ads, s-pack50.adb, s-pack50.ads, s-pack51.adb,
16951         s-pack51.ads, s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads,
16952         s-pack54.adb, s-pack54.ads, s-pack55.adb, s-pack55.ads, s-pack56.adb,
16953         s-pack56.ads, s-pack57.adb, s-pack57.ads, s-pack58.adb, s-pack58.ads,
16954         s-pack59.adb, s-pack59.ads, s-pack60.adb, s-pack60.adb, s-pack60.ads,
16955         s-pack61.adb, s-pack61.ads, s-pack62.adb, s-pack62.ads, s-pack63.adb,
16956         s-pack63.ads, s-parint.adb, s-parint.adb, s-parint.ads, sprint.ads,
16957         s-purexc.ads, s-restri.ads, s-restri.adb, s-scaval.adb, s-scaval.ads,
16958         s-secsta.adb, s-secsta.ads, s-sequio.adb, s-sequio.ads, stand.ads,
16959         s-tasuti.adb, s-traceb.adb, s-traceb.ads, stringt.adb, stringt.ads,
16960         styleg.ads, s-valboo.adb, s-valboo.ads, s-valcha.adb, s-valcha.ads,
16961         s-valdec.adb, s-valdec.ads, s-valint.adb, s-valint.ads, s-valint.ads,
16962         s-vallld.adb, s-vallld.ads, s-vallli.adb, s-vallli.ads, s-valllu.adb,
16963         s-valllu.ads, s-valrea.adb, s-valrea.ads, s-valuns.adb, s-valuns.ads,
16964         s-valuti.adb, s-valuti.ads, s-valwch.ads, s-veboop.adb, s-veboop.ads,
16965         s-vercon.adb, s-vercon.ads, s-wchcnv.adb, s-wchcnv.ads, s-wchcon.ads,
16966         s-wchjis.adb, s-wchjis.ads, s-wchstw.adb, s-wchstw.adb, s-wchstw.ads,
16967         s-wchwts.adb, s-wchwts.ads, s-widboo.adb, s-widboo.ads, s-widcha.adb,
16968         s-widcha.ads, s-widenu.adb, s-widenu.ads, s-widlli.adb, s-widlli.ads,
16969         s-widllu.adb, s-widllu.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb,
16970         s-wwdcha.ads, s-wwdenu.adb, s-wwdenu.ads, symbols.adb, symbols.ads,
16971         table.ads, targparm.adb, targparm.ads, tb-alvms.c, tb-alvxw.c,
16972         tbuild.adb, tree_io.ads, treepr.adb, treeprs.adt, ttypef.ads,
16973         ttypes.ads, types.adb, uintp.adb, uintp.ads, uname.ads, urealp.ads,
16974         usage.ads, validsw.ads, vxaddr2line.adb, widechar.adb, widechar.ads,
16975         xeinfo.adb, xnmake.adb, xref_lib.ads, xr_tabls.adb, xr_tabls.ads,
16976         xsinfo.adb, xtreeprs.adb, xsnames.adb, vms_conv.ads, vms_conv.adb,
16977         a-dirval.ads, a-dirval.adb, a-dirval-mingw.adb, a-direct.ads,
16978         a-direct.adb, indepsw.ads, prj-attr-pm.ads, system-linux-ppc.ads,
16979         a-numaux-darwin.ads, a-numaux-darwin.adb,
16980         a-swuwha.ads, a-stunha.ads: Minor reformatting
16981
16982 2005-11-14  Robert Dewar  <dewar@adacore.com>
16983
16984         PR ada/18434
16985         * osint-m.adb: Add pragma Elaborate_All for Osint
16986
16987 2005-11-10  Eric Botcazou  <ebotcazou@adacore.com>
16988
16989         PR ada/23995
16990         * trans.c (call_to_gnu): Restore statement lost in translation.
16991
16992 2005-11-08  Eric Botcazou  <ebotcazou@adacore.com>
16993
16994         * init.c: Use the Linux-specific section for the IA-64/Linux target.
16995         (__gnat_adjust_context_for_raise): Add conditional code so that the
16996         IA-64 is also supported.
16997
16998 2005-11-03  James E Wilson  <wilson@specifix.com>
16999
17000         PR ada/23427
17001         * trans.c (gnat_to_gnu): Use TYPE_SIZE_UNIT not TYPE_SIZE in
17002         TREE_OVERFLOW check.
17003
17004 2005-09-21  Olivier Hainque  <hainque@adacore.com>
17005
17006         PR ada/22418
17007         * decl.c (maybe_pad_type): Use proper bitsizetype for XVZ objects,
17008         as we create them to store a size in bits.
17009
17010 2005-10-21  Eric Botcazou  <ebotcazou@adacore.com>
17011
17012         PR ada/21937
17013         PR ada/22328
17014         PR ada/22381
17015         PR ada/22383
17016         PR ada/22419
17017         PR ada/22420
17018         * utils2.c (build_return_expr): New helper function.
17019         * gigi.h (build_return_expr): Declare it.
17020         * trans.c (Subprogram_Body_to_gnu): Use build_return_expr instead
17021         of manually building the RETURN_EXPR tree.
17022         (call_to_gnu): Pass MODIFY_EXPR through build_binary_op.
17023         (gnat_to_gnu) <N_Return_Statement>: Pass MODIFY_EXPR through
17024         build_binary_op for the "target pointer" case.  Use build_return_expr
17025         instead of manually building the RETURN_EXPR tree.
17026
17027 2005-09-16  Laurent Guerby  <laurent@guerby.net>
17028
17029         PR ada/23788
17030         * s-tpinop.ads: Make this unit Preelaborate.
17031
17032 2005-09-16  Andreas Jaeger  <aj@suse.de>
17033
17034         * socket.c: Add string.h for memcpy.
17035
17036 2005-09-05  Arnaud Charlet  <charlet@adacore.com>
17037
17038         * dec-io.ads, dec-io.adb: Removed, no longer used.
17039
17040 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
17041
17042         * a-calend-mingw.adb: Add call to OS_Primitives.Initialize;
17043
17044         * s-taprop-mingw.adb, s-taprop-vms.adb, s-taprop-solaris.adb,
17045         s-taprop-os2.adb, s-taprop-irix-athread.adb, s-taprop-linux.adb,
17046         s-taprop-hpux-dce.adb, s-taprop-irix.adb, s-taprop-tru64.adb,
17047         s-taprop-lynxos.adb: Move with clauses outside Warnings Off now that
17048         dependent units are Preelaborate.
17049         (Initialize): Call Interrupt_Managemeent.Initialize and
17050         OS_Primitives.Initialize to ensure proper initialization of this unit.
17051         Remove use of System.Soft_Links
17052         Make this unit Preelaborate.
17053
17054         * s-stache.ads, s-taspri-vxworks.ads, s-taspri-mingw.ads,
17055         s-taspri-vms.ads, s-tasinf-solaris.ads, s-taspri-os2.ads,
17056         s-taspri-lynxos.ads, s-taspri-hpux-dce.ads, s-taspri-tru64.ads,
17057         s-tasinf-tru64.ads, s-tasinf-irix.ads, s-tasinf-irix-athread.ads,
17058         s-proinf-irix-athread.adb, s-proinf-irix-athread.ads,
17059         s-tratas.ads, s-tasinf.ads: Minor reformatting.
17060         Add pragma Preelaborate, since these packages are suitable for this
17061         categorization.
17062         Update comments.
17063
17064         * s-traent-vms.ads, s-intman-dummy.adb,
17065         s-taprop-dummy.adb: Make this unit Preelaborate.
17066
17067         * s-osprim-vxworks.adb, s-osprim-vms.adb, s-osprim-vms.ads,
17068         s-osprim-mingw.adb, s-intman-vxworks.ads, s-intman-vxworks.adb,
17069         s-intman-vms.adb, s-intman-mingw.adb, s-intman-vms.ads,
17070         s-osprim-unix.adb, s-osprim-os2.adb, s-osprim-solaris.adb,
17071         s-intman-solaris.adb, s-intman-irix-athread.adb,
17072         s-intman-irix.adb: Mark this unit Preelaborate.
17073         (Initialize): New procedure.
17074         Update comments.
17075
17076         * s-taspri-linux.ads: Removed.
17077
17078         * s-tpopsp-solaris.adb (Initialize): Create the key in this procedure,
17079         as done by other implementations (e.g. posix).
17080
17081         * s-taprop.ads (Timed_Delay): Update spec since the caller now is
17082         responsible for deferring abort.
17083         Mark this unit Preelaborate.
17084
17085         * s-taprob.adb, s-tarest.adb: Call System.Tasking.Initialize to ensure
17086         proper initialization of the tasking run-time.
17087
17088         * s-tasdeb.ads: Mark this unit Preelaborate.
17089         (Known_Tasks): Add explicit default value to avoid elaboration code.
17090
17091         * s-inmaop-vms.adb (Elaboration code): Add call to
17092         Interrupt_Management.Initialize since the elaboration code depends on
17093         proper initialization of this package.
17094
17095         * s-intman.ads, s-inmaop-posix.adb, s-intman-posix.adb,
17096         s-osprim.ads, s-taprop-posix.adb, s-taspri-posix.ads,
17097         s-osprim-posix.adb: Make this unit Preelaborate.
17098
17099         * a-calend.adb: Add call to OS_Primitives.Initialize
17100
17101         * a-elchha.adb: Update use of Except.Id.Full_Name.
17102         Minor reformatting.
17103         Remove use of Ada.Exceptions.Traceback when possible, cleaner.
17104
17105         * a-dynpri.adb, a-sytaco.adb, a-sytaco.ads:
17106         Move with clauses outside Warnings Off now that dependent units are
17107         Preelaborate.
17108         Use raise xxx with "..."; Ada 2005 form.
17109
17110         * a-taside.ads, a-taside.adb:
17111         Remove some dependencies, to make it easier to make this unit truly
17112         Preelaborate.
17113         Rewrite some code to be conformant with Preelaborate rules.
17114
17115         * g-os_lib.adb: Remove non-preelaborate code so that this unit can be
17116         marked Preelaborate in the future.
17117
17118         * s-proinf.ads, g-string.ads, s-auxdec.ads, s-auxdec-vms_64.ads: Make
17119         these units Preelaborate.
17120
17121         * s-exctab.adb: Update use of Except.Id.Full_Name.
17122
17123         * s-soflin.ads, s-soflin.adb: Mark this unit Preelaborate_05.
17124         (Set_Exc_Stack_Addr_Soft, Get_Exc_Stack_Addr_NT, Set_Exc_Stack_Addr_NT,
17125         Set_Exc_Stack_Addr): Removed, no longer used.
17126         Remove reference to *Machine_State_Addr*, no longer needed.
17127
17128         * s-stalib.ads: Mark this unit as Preelaborate[_05].
17129         (Exception_Data): Full_Name is now a System.Address so that this unit
17130         can be made Preelaborate.
17131         Clean up/simplify code thanks to Full_Name being a System.Address.
17132         Remove obsolete pragma Suppress (All_Checks), no longer needed.
17133
17134         * s-taskin.ads, s-taskin.adb:
17135         Move with clauses outside Warnings Off now that dependent units are
17136         Preelaborate.
17137         Make this unit Preelaborate.
17138         (Initialize): New proceduure, replace elaboration code and makes the
17139         set up of the tasking run-time cleaner.
17140         (Detect_Blocking): Now a function instead of a deferred boolean, to
17141         obey Preelaborate rules.
17142
17143         * s-tassta.adb (Finalize_Global_Tasks): Remove Get/Set_Exc_Stack_Addr
17144         soft links, no longer used.
17145
17146         * s-traces.ads, s-traent.ads: Add pragma Preelaborate, since these
17147         packages are suitable for this categorization.
17148
17149         * s-solita.adb: Replace use of Ada.Exception by raise xxx with "..."
17150         since we compile run-time sources in Ada 2005 mode.
17151         (Timed_Delay_T): Call Abort_Defer/Undefer around Timed_Delay, to
17152         avoid having s-taprop*.adb depend on s-soflin and to avoid code
17153         duplication.
17154         Remove reference to *Machine_State_Addr*, no longer needed.
17155
17156 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
17157
17158         * s-mastop-tru64.adb, s-mastop-irix.adb, s-mastop-vms.adb
17159         (Enter_Handler, Set_Signal_Machine_State): Removed, no longer used.
17160         Remove reference to System.Exceptions.
17161
17162         * s-mastop-x86.adb: Removed, no longer used.
17163
17164         * s-traceb-mastop.adb: Adjust calls to Pop_Frame.
17165
17166         * a-excach.adb: Minor reformatting.
17167
17168         * a-except.ads, a-except.adb: Remove global Warnings (Off) pragma, and
17169         instead fix new warnings that were hidden by this change.
17170         (AAA, ZZZ): Removed, replaced by...
17171         (Code_Address_For_AAA, Code_Address_For_ZZZ): ... these functions, who
17172         are used instead of constants, to help make Ada.Exception truly
17173         preelaborate.
17174         (Rcheck_*, Raise_Constraint_Error, Raise_Program_Error,
17175         Raise_Storage_Error): File is now a System.Address, to simplify code.
17176         (Elab code): Removed, no longer used.
17177         (Null_Occurrence): Remove Warnings Off and make this construct
17178         preelaborate.
17179         Remove code related to front-end zero cost exception handling, since
17180         it is no longer used.
17181         Remove -gnatL/-gnatZ switches.
17182
17183         * a-exexda.adb (Append_Info_Exception_Name, Set_Exception_C_Msg):
17184         Update use of Except.Msg.
17185
17186         * gnat1drv.adb, inline.adb, bindgen.adb, debug.adb, exp_ch11.ads,
17187         freeze.adb, frontend.adb, lib.adb, exp_ch11.adb: Remove code related
17188         to front-end zero cost exception handling, since it is no longer used.
17189         Remove -gnatL/-gnatZ switches.
17190
17191         * lib-writ.ads: Minor reformatting
17192         Remove doc of UX
17193
17194         * Makefile.rtl: Remove references to s-except*, s-mastop-x86*
17195
17196         * Make-lang.in: Remove references to s-except.ads
17197
17198         * s-except.ads: Removed, no longer used.
17199
17200         * s-mastop.ads, s-mastop.adb:
17201         (Enter_Handler, Set_Signal_Machine_State): Removed, no longer used.
17202         Remove reference to System.Exceptions.
17203
17204         * raise.h, usage.adb, targparm.adb, targparm.ads, switch-m.adb,
17205         switch-b.adb: Remove code related to front-end zero cost exception
17206         handling, since it is no longer used.
17207         Remove -gnatL/-gnatZ switches.
17208
17209 2005-09-01  Robert Dewar  <dewar@adacore.com>
17210             Gary Dismukes  <dismukes@adacore.com>
17211             Javier Miranda  <miranda@adacore.com>
17212
17213         * exp_ch4.adb (Expand_N_In): Replace test of expression in its own
17214         type by valid test and generate warning.
17215         (Tagged_Membership): Generate call to the run-time
17216         subprogram IW_Membership in case of "Iface_CW_Typ in Typ'Class"
17217         Change formal name Subtype_Mark to Result_Definition in several calls to
17218         Make_Function_Specification.
17219         (Expand_Allocator_Expression): Add tests for suppression of the AI-344
17220         check for proper accessibility of the operand of a class-wide allocator.
17221         The check can be left out if checks are suppressed or if the expression
17222         has a specific tagged type whose level is known to be safe.
17223
17224         * exp_ch5.adb (Expand_N_Assignment_Statement): Simplify the code that
17225         generates the run-time check associated with null-excluding entities.
17226         (Expand_N_Return_Statement): Add tests to determine if the accessibility
17227         check on the level of the return expression of a class-wide function
17228         can be elided. The check usually isn't needed if the expression has a
17229         specific type (unless it's a conversion or a formal parameter). Also
17230         add a test for whether accessibility checks are suppressed. Augment
17231         the comments to describe the conditions for performing the check.
17232
17233 2005-09-01  Hristian Kirtchev  <kirtchev@adacore.com>
17234             Javier Miranda  <miranda@adacore.com>
17235             Gary Dismukes  <dismukes@adacore.com>
17236             Ed Schonberg  <schonberg@adacore.com>
17237
17238         * a-tags.adb (IW_Membership): Give support to
17239         "Iface_CW_Typ in T'Class". For this purpose the functionality of this
17240         subprogram has been extended to look for the tag in the ancestors tag
17241         table.
17242         Update the structure of the GNAT Dispatch Table to reflect the
17243         additional two tables used in dispatching selects.
17244         Introduce appropriate array types and record components in
17245         Type_Specific_Data to reflect the two tables.
17246         (Get_Entry_Index, Set_Entry_Index): Retrieve and set the entry index in
17247         the TSD of a tag, indexed by position.
17248         (Get_Prim_Op_Kind, Set_Prim_Op_Kind): Retrieve and set the primitive
17249         operation kind in the TSD of a tag, indexed by position.
17250
17251         * a-tags.ads: Introduce an enumeration type to capture different
17252         primitive operation kinds. Define a constant reflecting the number of
17253         predefined primitive operations.
17254         (Get_Entry_Index, Set_Entry_Index): Set and retrieve the entry index
17255         of an entry wrapper.
17256         (Get_Prim_Op_Kind, Set_Prim_Op_Kind): Set and retrieve the kind of
17257         callable entity of a primitive operation.
17258
17259         * exp_ch3.adb (Freeze_Record_Type): Generate the declarations of the
17260         primitive operations used in dispatching selects for limited
17261         interfaces, limited tagged, task and protected types what implement a
17262         limited interface.
17263         (Freeze_Type): Generate the bodies of the primitive operations used in
17264         dispatching selects for limited tagged, task and protected types that
17265         implement a limited interface. Generate statements to populate the two
17266         auxiliary tables used for dispatching in select statements.
17267         (Freeze_Record_Type): Add call to initialize the dispatch table entries
17268         associated with predefined interface primitive operations.
17269         (Build_Dcheck_Function): Change Set_Subtype_Mark to
17270         Set_Result_Definition.
17271         (Build_Variant_Record_Equality): Change Subtype_Mark to
17272         Result_Definition.
17273         (Freeze_Enumeration_Type): Change Subtype_Mark to Result_Definition.
17274         (Predef_Spec_Or_Body): Change Subtype_Mark to Result_Definition.
17275         (Build_Assignment): Simplify the code that adds the run-time-check.
17276         (Expand_N_Object_Declaration): Code cleanup.
17277
17278         * exp_ch7.adb (Make_Clean): Select the appropriate type for locking
17279         entries when there is a protected type that implements a limited
17280         interface.
17281
17282         * exp_ch9.adb: Add package Select_Expansion_Utilities that contains
17283         common routines used in expansion of dispatching selects.
17284         (Add_Private_Declarations): Select the appropriate protection type when
17285         there is a protected type that implements a limited interface.
17286         (Build_Parameter_Block): Generate a wrapped parameter block.
17287         (Build_Protected_Subprogram_Body): Select the appropriate type for
17288         locking entries when there is a protected type that implements a
17289         limited interface.
17290         (Build_Wrapper_Spec): Set the flag and wrapped entity for procedures
17291         classified as entry wrappers.
17292         (Expand_N_Asynchronous_Select): Add support for expansion of dispatching
17293         asynchronous selects.
17294         (Expand_N_Conditional_Entry_Call): Add support for expansion of
17295         dispatching conditional selects.
17296         (Expand_N_Protected_Type_Declaration): Select the appropriate type for
17297         protection when there is a protected type that implements limited
17298         interfaces.
17299         (Expand_N_Timed_Entry_Call): Add support for expansion of dispatching
17300         timed selects.
17301         (Extract_Dispatching_Call): Extract the entity of the name of a
17302         dispatching call, the object parameter, actual parameters and
17303         corresponding formals.
17304         (Make_Initialize_Protection): Correct logic of protection initialization
17305         when there is a protected type that implements a limited interface.
17306         (Parameter_Block_Pack): Populate a wrapped parameter block with the
17307         values of actual parameters.
17308         (Parameter_Block_Unpack): Retrieve the values from a wrapped parameter
17309         block and assign them to the original actual parameters.
17310
17311         * exp_ch9.ads (Subprogram_Protection_Mode): New type.
17312         (Build_Protected_Sub_Specification): Change the type and name of the
17313         last formal to account for the increased variety of protection modes.
17314
17315         * einfo.ads, einfo.adb (Was_Hidden): New attribute. Present in all
17316         entities. Used to save the value of the Is_Hidden attribute when the
17317         limited-view is installed.
17318         (Is_Primitive_Wrapper, Set_Is_Primitive_Wrapper): Retrieve and change
17319         the attribute of procedures classified as entry wrappers.
17320         (Wrapped_Entity, Set_Wrapped_Entity): Retrieve and change the wrapped
17321         entity of a primitive wrapper.
17322         (Write_Entity_Flags): Output the name and value of the
17323         Is_Primitive_Wrapper attribute.
17324         (Write_Field27_Name): Output the name and entity of the field Wrapped_
17325         Entity.
17326         (Underlying_Type): If we have an incomplete entity that comes from
17327         the limited view then we return the Underlying_Type of its non-limited
17328         view if it is already available.
17329         (Abstract_Interface_Alias): Flag applies to all subrogram kinds,
17330         including operators.
17331         (Write_Field26_Name): Add entry for Overridden_Operation
17332         (Overridden_Operation): New attribute of functions and procedures.
17333
17334         * exp_disp.ads, exp_disp.adb (Default_Prim_Op_Position): Return a
17335         predefined position in the dispatch table for the primitive operations
17336         used in dispatching selects.
17337         (Init_Predefined_Interface_Primitives): Remove the hardcoded number of
17338         predefined primitive operations and replace it with
17339         Default_Prim_Op_Count.
17340         (Make_Disp_Asynchronous_Select_Spec, Make_Disp_Conditional_Select_Spec,
17341         Make_Disp_Get_Prim_Op_Kind_Spec, Make_Disp_Timed_Select_Spec): Update
17342         the names of the generated primitive operations used in dispatching
17343         selects.
17344         (Init_Predefined_Interface_Primitives): No need to inherit primitives in
17345         case of abstract interface types. They will be inherit by the objects
17346         implementing the interface.
17347         (Make_DT): There is no need to inherit the dispatch table of the
17348         ancestor interface for the elaboration of abstract interface types.
17349         The dispatch table will be inherited by the object implementing the
17350         interface.
17351         (Copy_Secondary_DTs): Add documentation.
17352         (Validate_Position): Improve this static check in case of
17353         aliased subprograms because aliased subprograms must have
17354         the same position.
17355         (Init_Predefined_Interface_Primitives): New subprogram that initializes
17356         the entries associated with predefined primitives of all the secondary
17357         dispatch tables.
17358         (Build_Anonymous_Access_Type): Removed.
17359         (Expand_Interface_Actuals): With the previous cleanup there is no need
17360         to build an anonymous access type. This allows further cleanup in the
17361         code generated by the expander.
17362         (Expand_Interface_Conversion): If the actual is an access type then
17363         build an internal function to handle the displacement. If the actual
17364         is null this function returns null because no displacement is
17365         required; otherwise performs a type conversion that will be
17366         expanded in the code that returns the value of the displaced actual.
17367         (Expand_Interface_Actuals): Avoid the generation of unnecessary type
17368         conversions that have no effect in the generated code because no
17369         displacement is required. Code cleanup; use local variables to
17370         avoid repeated calls to the subprogram directly_designated_type().
17371
17372         * exp_util.ads, exp_util.adb (Is_Predefined_Dispatching_Operation):
17373         Classify the primitive operations used in dispatching selects as
17374         predefined.
17375         (Implements_Limited_Interface): Determine whether some type either
17376         directly implements a limited interface or extends a type that
17377         implements a limited interface.
17378         (Build_Task_Image_Function): Change Subtype_Mark to Result_Definition.
17379         (Expand_Subtype_From_Expr): Do not build actual subtype if the
17380         expression is limited.
17381         (Find_Interface_Tag): Add code to handle class-wide types and
17382         entities from the limited-view.
17383
17384         * rtsfind.ads: Add entries in RE_Id and RE_Unit_Table for
17385         Get_Entry_Index, Get_Prim_Op_Kind, POK_Function, POK_Procedure,
17386         POK_Protected_Entry, POK_Protected_Function, POK_Protected_Procedure,
17387         POK_Task_Entry, POK_Task_Procedure, Prim_Op_Kind, Set_Entry_Index,
17388         Set_Prim_Op_Kind.
17389
17390         * sem_ch9.adb (Analyze_Triggering_Alternative): Check for legal type
17391         of procedure name or prefix that appears as a trigger in a triggering
17392         alternative.
17393
17394         * uintp.ads: Introduce constants Uint_11 and Uint_13.
17395
17396 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
17397
17398         * s-tataat.adb, a-tasatt.adb:
17399         Replace calls to Defer/Undefer_Abortion by Defer/Undefer_Abort.
17400
17401         * s-tasini.ads, s-tasini.adb (Defer_Abortion, Undefer_Abortion): Moved
17402         these procedures to body, and renamed Abort_Defer, Abort_Undefer.
17403         (Get_Exc_Stack_Addr, Set_Exc_Stack_Addr): Removed, no
17404         longer used.
17405
17406 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
17407             Jose Ruiz  <ruiz@adacore.com>
17408
17409         * s-taprop-vxworks.adb:
17410         Move with clauses outside Warnings Off now that dependent units are
17411         Preelaborate.
17412         (Initialize): Call Interrupt_Managemeent.Initialize to ensure proper
17413         initialization of this unit.
17414         (Specific): Add new procedures Initialize and Delete so that this
17415         package can be used for VxWorks 5.x and 6.x
17416         (ATCB_Key, ATCB_Key_Address): Moved to Specific package body to hide
17417         differences between VxWorks 5.x and 6.x
17418         Minor reformatting.
17419         (Timed_Delay): Remove calls to Defer/Undefer_Abort, now performed by
17420         caller.
17421         Use only Preelaborate-compatible constructs.
17422
17423         * s-tpopsp-vxworks.adb (ATBC_Key, ATCB_Key_Addr): Moved from
17424         Primitives.Operations.
17425         (Delete, Initialize): New procedures.
17426
17427         * s-osinte-vxworks.adb: Body used to handle differences between
17428         VxWorks 5.x and 6.x
17429         (kill, Set_Time_Slice, VX_FP_TASK): New functions.
17430
17431         * s-osinte-vxworks.ads: Minor reformatting.
17432         Add VxWworks 6.x specific functions (only called from VxWorks 6 files).
17433         (VX_FP_TASK): Now a function, to handle differences between VxWorks 5
17434         and 6.
17435         (Set_Time_Slice): New function, replacing kerneltimeSlice to share code
17436         between Vxworks 5 and 6.
17437         (taskLock, taskUnlock): Removeed, no longer used.
17438
17439         * adaint.c: The wait.h header is not located in the sys directory on
17440         VxWorks when using RTPs.
17441         (__gnat_set_env_value): Use setenv instead of putenv on VxWorks when
17442         using RTPs.
17443         (__gnat_dup): dup is available on Vxworks when using RTPs.
17444         (__gnat_dup2): dup2 is available on Vxworks when using RTPs.
17445
17446         * cal.c: Use the header time.h for Vxworks 6.0 when using RTPs.
17447
17448         * expect.c: The wait.h header is not located in the sys directory on
17449         VxWorks when using RTPs.
17450
17451 2005-09-01  Thomas Quinot  <quinot@adacore.com>
17452
17453         * g-soccon-vms.adb: Renamed to g-soccon-vms.ads
17454
17455         * g-soccon-vms.ads: Renamed from g-soccon-vms.adb
17456
17457         * g-soccon.ads, g-soccon-tru64.ads, g-soccon-aix.ads,
17458         g-soccon-darwin.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
17459         g-soccon-solaris.ads, g-soccon-mingw.ads, g-soccon-vxworks.ads,
17460         g-soccon-freebsd.ads: Add new constants:
17461          IP_MULTICAST_IF
17462          SO_RCVTIMEO/SO_SNDTIMEO
17463          IOV_MAX
17464
17465         * gen-soccon.c:
17466         Move all target-specific file inclusions and macro definitions to
17467         gsocket.h, in order to ensure that any C code in socket.c will see a
17468         set of constants that is consistent with the contents of g-soccon.ads.
17469
17470         * gsocket.h: Code imported from gen-soccon.c:
17471         Move all target-specific file inclusions and macro definitions to
17472         gsocket.h, in order to ensure that any C code in socket.c will see a set
17473         of constants that is consistent with the contents of g-soccon.ads.
17474         This change also makes gen-soccon self-contained (removing dependencies
17475         upon GCC internal headers).
17476
17477         * g-socket.adb (Send_Vector): Make calls to Writev at most IOV_MAX
17478         iovecs at a time.
17479         (To_Inet_Addr): Now a procedure instead of a function, more efficient.
17480
17481         * socket.c: Minor reformatting.
17482
17483 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
17484             Thomas Quinot  <quinot@adacore.com>
17485
17486         * fname-sf.adb, mlib-tgt.ads,
17487         back_end.adb, casing.adb, g-debpoo.adb, g-excact.adb, g-spipat.adb,
17488         g-spipat.ads, g-thread.adb, lib-list.adb, makeutl.adb, mlib.adb,
17489         osint.adb, par-ch10.adb, par-load.adb, prep.adb, prj.adb, prj-attr.ads,
17490         prj-env.ads, prj-err.adb, prj-err.ads, prj-ext.adb, prj-ext.ads,
17491         prj-makr.adb, prj-makr.ads, prj-pars.ads, prj-part.adb, prj-strt.adb,
17492         prj-tree.ads, prj-util.ads, sem_dist.adb, sinput-c.ads, sinput-l.ads,
17493         sinput-p.ads, styleg-c.ads, xr_tabls.adb, prj-attr-pm.ads,
17494         makegpr.adb: Remove redundant use_clauses.
17495
17496 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
17497
17498         * s-stoele.ads, s-stopoo.ads, s-stratt.ads, s-strops.ads, s-unstyp.ads,
17499         s-valboo.ads, s-valcha.ads, s-valdec.ads, s-valenu.ads, s-valint.ads,
17500         s-vallld.ads, s-vallli.ads, s-valllu.ads, s-valrea.ads, s-valuns.ads,
17501         s-valuti.ads, s-valwch.ads, s-veboop.ads, s-vector.ads, s-vercon.ads,
17502         s-wchcnv.ads, s-wchcon.ads, s-wchjis.ads, s-wchstw.ads, s-wchwts.ads,
17503         s-widboo.ads, s-widcha.ads, s-widenu.ads, s-widlli.ads, s-widllu.ads,
17504         s-widwch.ads, s-wwdcha.ads, s-wwdenu.ads, s-wwdwch.ads, system.ads,
17505         table.ads, types.ads, system-vms_64.ads, s-crtl-vms64.ads,
17506         s-addope.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
17507         s-vxwork-x86.ads, system-linux-ppc.ads, i-vxwork-x86.ads,
17508         a-numaux-darwin.ads, a-crbtgo.ads, a-crbtgk.ads, a-crbltr.ads,
17509         a-coprnu.ads, a-convec.ads, a-contai.ads, a-coinve.ads, a-cohata.ads,
17510         a-cohama.ads, a-cihama.ads, a-cidlli.ads, a-cdlili.ads,
17511         a-numaux-libc-x86.ads, a-numaux-vxworks.ads, system-linux-ia64.ads,
17512         system-freebsd-x86.ads, system-unixware.ads, system-lynxos-ppc.ads,
17513         system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
17514         s-vxwork-alpha.ads, system-aix.ads, system-vxworks-sparcv9.ads,
17515         system-solaris-x86.ads, system-irix-o32.ads, system-irix-n32.ads,
17516         s-parame-hpux.ads, system-hpux.ads, system-vxworks-m68k.ads,
17517         s-vxwork-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads,
17518         s-vxwork-mips.ads, system-os2.ads, system-interix.ads,
17519         s-vxwork-ppc.ads, system-solaris-sparc.ads, s-vxwork-sparcv9.ads,
17520         system-solaris-sparcv9.ads, s-parame-vms.ads, system-vms.ads,
17521         s-osinte-mingw.ads, system-mingw.ads, s-parame-vms-restrict.ads,
17522         system-vms-zcx.ads, s-parame-ae653.ads, system-vxworks-ppc.ads,
17523         s-parame-vxworks.ads, system-vxworks-alpha.ads, interfac-vms.ads,
17524         a-numaux-x86.ads, a-astaco.ads, a-chahan.ads, a-charac.ads,
17525         a-chlat1.ads, a-chlat9.ads, a-colire.adb, a-colire.ads, a-comlin.ads,
17526         a-cwila1.ads, a-cwila9.ads, ada.ads, a-decima.ads, a-exextr.adb,
17527         a-filico.ads, a-finali.ads, a-interr.ads, a-ioexce.ads, a-dynpri.ads,
17528         a-ngcefu.ads, a-ngcefu.adb, a-ngcoty.adb, a-ngcoty.ads, a-ngelfu.ads,
17529         a-nudira.adb, a-nudira.ads, a-nuflra.adb, a-numaux.ads, a-numeri.ads,
17530         a-reatim.adb, a-stmaco.ads, a-storio.ads, a-strbou.ads, a-stream.ads,
17531         a-strfix.ads, a-string.ads, a-strmap.ads, a-strsea.ads, a-strsup.ads,
17532         a-strunb.ads, a-stunau.ads, a-stwibo.ads, a-stwifi.ads, a-stwima.ads,
17533         a-stwise.ads, a-stwisu.ads, a-stwiun.ads, a-swmwco.ads, a-textio.ads,
17534         csets.ads, debug.ads, dec.ads, g-curexc.ads, get_targ.ads,
17535         g-except.ads, system-linux-hppa.ads, a-chacon.ads, a-widcha.ads,
17536         a-zchara.ads, system-hpux-ia64.ads, a-ciorma.ads, a-coorma.ads,
17537         a-ciormu.ads, a-coormu.ads, a-rbtgso.ads, a-chzla1.ads, a-chzla9.ads,
17538         a-stzbou.ads, a-stzfix.ads, a-stzmap.ads, a-stzsea.ads, a-stzsup.ads,
17539         a-stzunb.ads, a-swunau.ads, a-szunau.ads, gnat.ads, g-regpat.ads,
17540         g-speche.ads, g-spitbo.ads, g-table.ads, g-tasloc.ads, g-trasym.ads,
17541         i-c.ads, i-cpoint.ads, i-cpp.ads, i-cstrin.ads, i-fortra.ads,
17542         interfac.ads, i-os2err.ads, i-os2lib.ads, i-os2syn.ads, i-os2thr.ads,
17543         i-vxwork.ads, output.ads, s-arit64.ads, s-atacco.ads, s-boarop.ads,
17544         s-casuti.ads, s-crtl.ads, s-exctab.ads, s-exnint.ads, s-exnllf.ads,
17545         s-exnlli.ads, s-expint.ads, s-explli.ads, s-expllu.ads, s-expmod.ads,
17546         s-expuns.ads, s-fatflt.ads, s-fatgen.ads, s-fatlfl.ads, s-fatllf.ads,
17547         s-fatsfl.ads, s-finimp.ads, s-finroo.ads, s-fore.ads, s-geveop.ads,
17548         s-htable.ads, s-imgbiu.ads, s-imgboo.ads, s-imgcha.ads, s-imgdec.ads,
17549         s-imgenu.ads, s-imgint.ads, s-imgllb.ads, s-imglld.ads, s-imglli.ads,
17550         s-imgllu.ads, s-imgllw.ads, s-imgrea.ads, s-imguns.ads, s-imgwch.ads,
17551         s-imgwiu.ads, s-io.ads, s-maccod.ads, s-mantis.ads, s-memcop.ads,
17552         s-pack03.ads, s-pack05.ads, s-pack06.ads, s-pack07.ads, s-pack09.ads,
17553         s-pack10.ads, s-pack11.ads, s-pack12.ads, s-pack13.ads, s-pack14.ads,
17554         s-pack15.ads, s-pack17.ads, s-pack18.ads, s-pack19.ads, s-pack20.ads,
17555         s-pack21.ads, s-pack22.ads, s-pack23.ads, s-pack24.ads, s-pack25.ads,
17556         s-pack26.ads, s-pack27.ads, s-pack28.ads, s-pack29.ads, s-pack30.ads,
17557         s-pack31.ads, s-pack33.ads, s-pack34.ads, s-pack35.ads, s-pack36.ads,
17558         s-pack37.ads, s-pack38.ads, s-pack39.ads, s-pack40.ads, s-pack41.ads,
17559         s-pack42.ads, s-pack43.ads, s-pack44.ads, s-pack45.ads, s-pack46.ads,
17560         s-pack47.ads, s-pack48.ads, s-pack49.ads, s-pack50.ads, s-pack51.ads,
17561         s-pack52.ads, s-pack53.ads, s-pack54.ads, s-pack55.ads, s-pack56.ads,
17562         s-pack57.ads, s-pack58.ads, s-pack59.ads, s-pack60.ads, s-pack61.ads,
17563         s-pack62.ads, s-pack63.ads, s-parame.ads, s-pooglo.ads, s-pooloc.ads,
17564         s-poosiz.ads, s-powtab.ads, s-purexc.ads, s-sopco3.ads, s-sopco4.ads,
17565         s-sopco5.ads: Minor reformatting: reindent pragma Pure/Preelaborate
17566         and always use the no parameter form for consistency.
17567
17568         * gnat-style.texi: Document rules about Preelaborate/Pure pragmas.
17569
17570 2005-09-01  Robert Dewar  <dewar@adacore.com>
17571
17572         * binde.adb: Minor reformatting
17573         (Find_Elab_Order): Output warning if -p used with static elab order
17574
17575 2005-09-01  Robert Dewar  <dewar@adacore.com>
17576
17577         * checks.adb (Check_Needed): New procedure, deals with removing checks
17578         based on analysis of short-circuited forms. Also generates warnings for
17579         improper use of non-short-circuited forms.
17580         Code clean ups.
17581
17582 2005-09-01  Robert Dewar  <dewar@adacore.com>
17583
17584         * a-ztexio.adb, a-textio.adb, a-witeio.adb: Replace bad range checks
17585         with 'Valid tests.
17586
17587 2005-09-01  Robert Dewar  <dewar@adacore.com>
17588
17589         * errout.ads, errout.adb (Fix Error_Msg_F): Fix implementation to meet
17590         spec.
17591         Implement new insertion char < (conditional warning)
17592         * errutil.adb, erroutc.adb: Implement new insertion char <
17593         (conditional warning).
17594         * sem_elab.adb, prj-dect.adb, erroutc.ads, err_vars.ads
17595         (Error_Msg_Warn): New variable for < insertion char.
17596         * prj-nmsc.adb: Implement new errout insertion char < (conditional
17597         warning).
17598         (Check_For_Source): Change value of Source_Id only after the current
17599         source has been dealt with.
17600
17601 2005-09-01  Robert Dewar  <dewar@adacore.com>
17602             Doug Rupp  <rupp@adacore.com>
17603
17604         * exp_attr.adb: Handle vax fpt for 'Valid attribute
17605         * exp_vfpt.ads, exp_vfpt.adb: (Expand_Vax_Valid): New procedure
17606         * s-vaflop-vms-alpha.adb, s-vaflop.ads, s-vaflop.adb
17607         (Valid_D, Valid_F, Valid_G): New functions
17608
17609 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
17610             Hristian Kirtchev  <kirtchev@adacore.com>
17611             Javier Miranda  <miranda@adacore.com>
17612
17613         * exp_ch6.adb (Expand_Call): If an actual is a function call rewritten
17614         from object notation, the original node is unanalyzed and carries no
17615         semantic information, so that accessiblity checks must be performed on
17616         the type of the actual itself.
17617         (Expand_N_Subprogram_Declaration): Change last actual parameter for
17618         compatibility with Build_Protected_Sub_Specification.
17619         (Check_Overriding_Inherited_Interfaces): Add suport to handle
17620         overloaded primitives.
17621         (Register_Interface_DT_Entry): Use the new name of the formal
17622         the the calls to Expand_Interface_Thunk
17623
17624         * exp_dbug.ads: Augment comments on encoding of protected types to
17625         include the generation of dispatching subprograms when the type
17626         implements at least one interface.
17627
17628         * lib.ads: Extend information in Load_Stack to include whether a given
17629         load comes from a Limited_With_Clause.
17630
17631         * lib-load.adb (From_Limited_With_Chain): New predicate to determine
17632         whether a potential circularity is harmless, because it includes units
17633         loaded through a limited_with clause. Extends previous treatment which
17634         did not handle properly arbitrary combinations of limited and
17635         non-limited clauses.
17636
17637 2005-09-01  Nicolas Setton  <setton@adacore.com>
17638
17639         * exp_dbug.adb (Get_Encoded_Name): Fixed bug that caused biaised types
17640         to be encoded as typ___XBLU_lowerbound__upperbound instead of
17641         typ___XB_lowerbound__upperbound.
17642
17643 2005-09-01  Thomas Quinot  <quinot@adacore.com>
17644
17645         * exp_dist.adb (Add_RACW_TypeCode, Add_RAS_TypeCode): Do not generate
17646         dummy access formal for RACW/RAS TypeCode TSS.
17647         (Build_TypeCode_Call): Do not generate dummy null access actual for
17648         calls to the TypeCode TSS.
17649
17650 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
17651
17652         * exp_intr.adb (Expand_Source_Name): For Enclosing_Entity, generate
17653         fully qualified name, to distinguish instances with the same local name.
17654
17655         * g-souinf.ads (Enclosing_Entity): Document that entity name is now
17656         fully qualified.
17657
17658 2005-09-01  Robert Dewar  <dewar@adacore.com>
17659
17660         * exp_pakd.adb (Create_Packed_Array_Type): Properly handle very large
17661         packed arrays.
17662
17663 2005-09-01  Jerome Lambourg  <lambourg@adacore.com>
17664
17665         * g-expect.adb (Non_Blocking_Spawn): Initialize the filters field to
17666         (Free): New deallocation procedure for filter elements
17667         (Close): Deallocate any existing filter for the concerned connection
17668
17669 2005-09-01  Laurent Pautet  <pautet@adacore.com>
17670
17671         * g-pehage.ads, g-pehage.adb (Select_Char_Position): When no character
17672         position set is provided, we compute one in order to reduce the maximum
17673         length of the keys.  This computation first selects a character
17674         position between 1 and the minimum length of the keys in order to
17675         avoid reducing one of the keys to an empty string.
17676         (Initialize, Compute): When the ratio V to K is too low, the algorithm
17677         does not converge. The initialization procedure now comes with a
17678         maximum number of iterations such that when exceeded, an exception is
17679         raised in Compute. The user can initialize this ratio to another value
17680         and try again
17681         Reformating and updated headers.
17682
17683 2005-09-01  Javier Miranda  <miranda@adacore.com>
17684
17685         * itypes.ads, itypes.adb (Create_Null_Excluding_Itype): New subprogram
17686         that given an entity T creates and returns an Itype that duplicates the
17687         contents of T. The returned Itype has the null-exclusion
17688         attribute set to True, and its Etype attribute references T
17689         to keep the association between the two entities.
17690         Update copyright notice
17691
17692         * sem_aggr.adb (Check_Can_Never_Be_Null,
17693         Aggregate_Constraint_Checks, Resolve_Aggregate,
17694         Resolve_Array_Aggregate, Resolve_Record_Aggregate): Code cleanup.
17695
17696         * sem_ch5.adb (Analyze_Assignment): Code cleanup.
17697
17698 2005-09-01  Gary Dismukes  <dismukes@adacore.com>
17699             Robert Dewar  <dewar@adacore.com>
17700             Hristian Kirtchev  <kirtchev@adacore.com>
17701
17702         * layout.adb (SO_Ref_From_Expr): Change Subtype_Mark to
17703         Result_Definition.
17704
17705         * par-ch6.adb (P_Subprogram): Handle parsing of Access_Definitions in
17706         function specs.
17707         Call Set_Result_Definition instead of Set_Subtype_Mark.
17708         (P_Subprogram_Specification): Add parsing of anonymous access result
17709         plus null exclusions. Call Set_Result_Definition instead of
17710         Set_Subtype_Mark.
17711
17712         * par-ch3.adb: Add support for LIMITED NEW for Ada 2005 AI-419
17713         (P_Access_Type_Definition): Add parsing for an anonymous access result
17714         subtype, plus parsing for null exclusions. Call Set_Result_Definition
17715         instead of Set_Subtype_Mark.
17716
17717         * sinfo.adb: Add support for LIMITED NEW for Ada 2005 AI-419
17718         (Null_Exclusion_Present): Allow this flag for N_Function_Specification.
17719         (Result_Definition): New function for N_Function_Specifications.
17720         (Subtype_Mark): No longer allowed for N_Access_Function_Definition and
17721         N_Function_Specification.
17722         (Set_Null_Exclusion_Present): Allow this flag for
17723         N_Function_Specification.
17724         (Set_Result_Definition): New procedure for N_Function_Specifications.
17725         (Set_Subtype_Mark): No longer allowed for N_Access_Function_Definition
17726         and N_Function_Specification.
17727
17728         * sinfo.ads: Update grammar rules for 9.7.2: Entry_Call_Alternative,
17729         Procedure_Or_Entry_Call; 9.7.4: Triggering_Statement.
17730         Add support for LIMITED NEW for Ada 2005 AI-419
17731         Update the syntax of PARAMETER_AND_RESULT_PROFILE to reflect the new
17732         syntax for anonymous access results.
17733         Replace Subtype_Mark field by Result_Definition in
17734         N_Function_Specification and N_Access_Definition specs.
17735         Add Null_Exclusion_Present to spec of N_Function_Specification.
17736         (Result_Definition): New function for N_Function_Specification and
17737         N_Access_Function_Definition.
17738         (Set_Result_Definition): New procedure for N_Function_Specification and
17739         N_Access_Function_Definition.
17740
17741         * sprint.adb (S_Print_Node_Actual): Change Subtype_Mark calls to
17742         Result_Definition for cases of N_Access_Function_Definition and
17743         N_Function_Specification.
17744         Print "not null" if Null_Exclusion_Present on N_Function_Specification.
17745
17746 2005-09-01  Vincent Celier  <celier@adacore.com>
17747
17748         * lib-writ.adb: Update Copyright notice
17749         (Write_With_Lines): On platforms where file names are case-insensitive,
17750         record the file names in lower case.
17751         (Write_ALI): For D lines, on platforms where file names are
17752         case-insensitive, record the file names in lower case.
17753
17754 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
17755             Emmanuel Briot  <briot@adacore.com>
17756
17757         * lib-xref.adb (Output_Overridden_Op): Display information on
17758         overridden operation.
17759
17760         * lib-xref.ads: Add documentation on overridden operations.
17761
17762         * ali.ads (Xref_Entity_Record): Add support for storing the overriding
17763         information.
17764
17765         * ali.adb (Get_Typeref): New subprogram. Adds support for parsing the
17766         overriding entity information.
17767
17768 2005-09-01  Vincent Celier  <celier@adacore.com>
17769
17770         * mlib-prj.adb (Copy_Interface_Sources): Copy all interface sources,
17771         including those that are inherited.
17772
17773 2005-09-01  Robert Dewar  <dewar@adacore.com>
17774
17775         * opt.ads, opt.adb: Add new switches Debug_Pragmas_Enabled[_Config]
17776
17777         * par-prag.adb: Implement new pragma Debug_Policy
17778
17779         * sem_prag.adb Implement new pragma Debug_Policy
17780         (Analyze_Pragma, case Pack): do not let pragma Pack override an explicit
17781         Component_Size attribute specification. Give warning for ignored pragma
17782         Pack.
17783
17784         * snames.h, snames.ads, snames.adb: Introduce entries in
17785         Preset_Names for Name_Disp_Asynchronous_Select,
17786         Name_Disp_Conditional_Select, Name_Disp_Get_Prim_Op_Kind,
17787         Name_Disp_Timed_Select.
17788         New pragma Debug_Policy
17789
17790         * switch-c.adb (Scan_Front_End_Switches): Set Ada 2005 mode
17791         explicitly.
17792         Switch -gnata also sets Debug_Pragmas_Enabled
17793
17794         * sem.adb, par.adb (Set_Opt_Config_Switch): Add parameter Main_Unit to
17795         handle an explicit -gnata when compiling predefined files.
17796
17797 2005-09-01  Vincent Celier  <celier@adacore.com>
17798
17799         * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Do not add the object
17800         directories of projects that have no Ada sources.
17801
17802 2005-09-01  Robert Dewar  <dewar@adacore.com>
17803
17804         * scng.adb (Check_End_Of_Line): Count characters, rather than bytes
17805         (makes a difference for wide characters)
17806
17807         * widechar.adb, widechar.ads:
17808         Add Wide_Char_Byte_Count feature to count chars vs bytes
17809
17810 2005-09-01  Thomas Quinot  <quinot@adacore.com>
17811             Ed Schonberg  <schonberg@adacore.com>
17812             Robert Dewar  <dewar@adacore.com>
17813
17814         * sem_attr.adb (Resolve_Attribute, case 'Address): For an illegal
17815         'Address attribute reference with an overloaded prefix, use the
17816         location of the prefix (not the location of the attribute reference) as
17817         the error location.
17818         (Analyze_Attribute, case 'Size): The name of an enumeration literal, or
17819         a function renaming thereof, is a valid prefix for 'Size (where it is
17820         intepreted as a function call).
17821         (Statically_Denotes_Entity): New predicate to determine whether the
17822         prefix of an array attribute can be considered static.
17823
17824         PR ada/9087
17825         (Eval_Attr): Fix failure to evaluate Component_Size for
17826         unconstrained arrays (resulted in wrong value in packed case, since
17827         back end cannot handle this case)
17828
17829 2005-09-01  Robert Dewar  <dewar@adacore.com>
17830
17831         * sem_cat.adb (Check_Categorization_Dependencies): Add more detail to
17832         error msgs for most common cases.
17833         Use new errout insertion char < (conditional warning)
17834
17835 2005-09-01  Javier Miranda  <miranda@adacore.com>
17836             Ed Schonberg  <schonberg@adacore.com>
17837
17838         * sem_ch10.adb (In_Chain): Moved from the scope of a subprogram to
17839         become local to the whole package.
17840         (Install_Limited_Withed_Unit): Instead of unchaining real entities if
17841         the package was already analyzed the new algorithm "replaces" the
17842         real entities by the shadow ones. This is required to ensure that
17843         the order of these entities in the homonym chains does not change;
17844         otherwise we can have undefined references at linking time because
17845         in case of conflicts the external name of the entities will have
17846         a suffix that depends on the order of the entities in the chain.
17847         (Remove_Limited_With_Clause): Complementary code that completes the
17848         new algorithm and replaces the shadow entities by the real ones.
17849         (Install_Limited_Withed_Unit): When unchaining entities before the
17850         installation of the shadow entities, only regular entities of the
17851         public part must be taken into account. This is required to
17852         keep this routine in synch with the work done by Remove_Limited_
17853         With_Clause
17854         (Install_Limited_With_Clause): Introduce implicit limited_with_clause
17855         even if unit is analyzed, because the analysis of the unit is
17856         idempotent in any case, and the limited view of the unit may have to
17857         be installed for proper visibility.
17858         (Expand_Limited_With_Clause): Even if the unit in the implicit
17859         with_clause has been analyzed already, a limited view of the package
17860         must be built for the current context, if it does not exist yet.
17861
17862 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
17863             Javier Miranda  <miranda@adacore.com>
17864             Gary Dismukes  <dismukes@adacore.com>
17865
17866         * sem_ch12.adb (Instantiate_Subprogram_Body): When creating the
17867         defining entity for the instance body, make a new defining identifier
17868         rather than copying the entity of the spec, to prevent accidental
17869         sharing of the entity list.
17870         (Check_Private_View): When exchanging views of private types, build the
17871         list of exchanged views as a stack, to ensure that on exit the exchanges
17872         are undone in the proper order.
17873         (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation):
17874         Restore the compilation environment in case of instantiation_error.
17875         (Analyze_Generic_Subprogram_Declaration): Handle creation of type entity
17876         for an anonymous access result.
17877         (Instantiate_Generic_Subprogram): Subtype_Mark => Result_Definition
17878         (Formal_Entity): Handle properly the case of a formal package that
17879         denotes a generic package renaming.
17880
17881 2005-09-01  Thomas Quinot  <quinot@adacore.com>
17882
17883         * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Reject the
17884         clause if the array aggregate is surrounded by parentheses.
17885
17886 2005-09-01  Cyrille Comar  <comar@adacore.com>
17887             Gary Dismukes  <dismukes@adacore.com>
17888             Ed Schonberg  <schonberg@adacore.com>
17889             Javier Miranda  <miranda@adacore.com>
17890
17891         * sem_ch3.ads, sem_ch3.adb (Analyze_Object_Declaration): Go to the
17892         underlying type
17893         to check if a type is Constrained in cases related to code generation
17894         (rather than semantic checking) since otherwise we do not generate
17895         similar code for mutable private types depending if their
17896         discriminants are visible or not.
17897         (Check_Abstract_Overriding): Do not complain about failure to override
17898         the primitive operations used in dispatching selects since they will
17899         always be overriden at the freeze point of the type.
17900         (Access_Definition): Separate out handling for resetting the scope
17901         of an anonymous access function result type. Retrieve the scope
17902         of the associated function rather than using Current_Scope, which
17903         does not have a consistent value (depends on whether we're in the
17904         middle of analyzing formal parameters). Add ??? comment about
17905         finding a cleaner way to handle the special cases of scope setting.
17906         (Process_Incomplete_Dependents): A protected operation is never a
17907         dispatching operation (only its wrapper may be).
17908         (Build_Derived_Record_Type): In case of tagged private types that
17909         implement interfaces add derivation of predefined primitive
17910         operations.
17911         (Derive_Subprograms): Replace the Is_Interface_Derivation parameter
17912         by two parameters that are used in case of derivation from abstract
17913         interface types: No_Predefined_Prims is used to avoid the derivation
17914         of predefined primitives from the interface, and Predefined
17915         Prims_Only is used to complete the derivation predefined primitives
17916         in case of private tagged types implementing interfaces.
17917         Fix typo in comments
17918         (Find_Interface_In_Descendant): Protect the frontend against
17919         wrong code with large circularity chains.
17920         (Is_Private_Overriding): Add support for entities overriding interface
17921         subprograms. The test failed because Entities associated with overriden
17922         interface subprograms are always marked as hidden (and used to build
17923         the secondary dispatch table); in this case the overriden entity is
17924         available through the field abstract_interface_alias (cf. override_
17925         dispatching_operation)
17926         (Access_Definition): Set the scope of the type to Current_Scope for the
17927         case of a function with an anonymous access result type.
17928         (Access_Subprogram_Declaration): Handle creation of the type entity for
17929         an access-to-function type with an anonymous access result.
17930         (Check_Anonymous_Access_Types): Change Subtype_Mark to Result_Definition
17931         in handling for N_Access_Function_Definition.
17932         (Analyze_Subtype_Declaration): Modify the text of error message.
17933         (Derived_Type_Declaration): Modify the text of error message.
17934         (Process_Subtype): Modify the text of error message plus cleanup
17935         of one redundant error message.
17936         (Analyze_Component_Declaration): Code cleanup.
17937         (Analyze_Object_Declaration): Code cleanup.
17938         (Analyze_Subtype_Declaration): Propagate the null-exclusion
17939         attribute in case of access types. Code cleanup.
17940         (Array_Type_Declaration): Code cleanup.
17941         (Process_Discriminants): Create the new null-excluding itype
17942         if required. Code cleanup.
17943         (Process_Subtype): Create the new null-excluding itype if
17944         required. Code cleanup.
17945         (Build_Derived_Record_Type): Code cleanup to avoid calling
17946         twice the subprogram derive_subprograms in case of private
17947         types that implement interfaces. In this particular case the
17948         subprogram Complete_Subprograms_Derivation already does the
17949         job associated with the second call.
17950
17951         * exp_strm.adb (Build_Elementary_Input_Call): Add an explicit
17952         conversion to the full view when generating an operation for a
17953         discriminant whose type may currently be private.
17954
17955 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
17956             Javier Miranda  <miranda@adacore.com>
17957
17958         * sem_ch4.adb (Transform_Object_Operation): In a context off the form
17959         V (Obj.F), the rewriting does not involve the indexed component, but
17960         only the selected component itself.
17961         Do not apply the transformation if the analyzed node is an actual of a
17962         call to another subprogram.
17963         (Complete_Object_Operation): Retain the entity of the
17964         dispatching operation in the selector of the rewritten node. The
17965         entity will be used in the expansion of dispatching selects.
17966         (Analyze_One_Call): Improve location of the error message associated
17967         with interface.
17968         (Analyze_Selected_Component): No need to resolve prefix when it is a
17969         function call, resolution is done when parent node is resolved, as
17970         usual.
17971         (Analyze_One_Call): Add a flag to suppress analysis of the first actual,
17972         when attempting to resolve a call transformed from its object notation.
17973         (Try_Object_Operation, Transform_Object_Operastion): Avoid makind copies
17974         of the argument list for each interpretation of the operation.
17975         (Try_Object_Operation): The designated type of an access parameter may
17976         be an incomplete type obtained through a limited_with clause, in which
17977         case the primitive operations of the type are retrieved from its full
17978         view.
17979         (Analyze_Call): If this is an indirect call, and the return type of the
17980         access_to_subprogram is incomplete, use its full view if available.
17981
17982 2005-09-01  Javier Miranda  <miranda@adacore.com>
17983             Gary Dismukes  <dismukes@adacore.com>
17984
17985         * sem_ch6.ads, sem_ch6.adb (Check_Conformance): In case of anonymous
17986         access types the null-exclusion and access-to-constant attributes must
17987         also match.
17988         (Analyze_Return_Statement): When the result type is an anonymous access
17989         type, apply a conversion of the return expression to the access type
17990         to ensure that appropriate accessibility checks are performed.
17991         (Analyze_Return_Type): For the case of an anonymous access result type,
17992         generate the Itype and set Is_Local_Anonymous_Access on the type.
17993         Add ??? placeholder for check to disallow returning a limited object
17994         in Ada 2005 unless it's an aggregate or a result of a function call.
17995         Change calls from Subtype_Mark to Result_Definition.
17996         (Analyze_Subprogram_Body): Change formal Subtype_Mark to
17997         Result_Definition in call to Make_Function_Specification.
17998         (Build_Body_To_Inline): Change Set_Subtype_Mark to
17999         Set_Result_Definition.
18000         (Make_Inequality_Operator): Change formal Subtype_Mark to
18001         Result_Definition in call to Make_Function_Specification.
18002         (Process_Formals): Create the new null-excluding itype if required.
18003         (New_Overloaded_Entity): For an entity overriding an interface primitive
18004         check if the entity also covers other abstract subprograms in the same
18005         scope. This is required to handle the general case, that is, overriding
18006         other interface primitives and overriding abstract subprograms inherited
18007         from some abstract ancestor type.
18008         (New_Overloaded_Entity): For an overriding entity that comes from
18009         source, note the operation that it overrides.
18010         (Check_Conformance, Type_Conformant): Addition of one new formal
18011         to skip controlling formals in the analysis. This is used to
18012         handle overloading of abstract interfaces.
18013         (Base_Types_Match): Add missing case for types imported from
18014         limited-with clauses
18015         (New_Overloaded_Entity): Add barrier to protect the use of
18016         the "alias" attribute.
18017
18018 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
18019
18020         * sem_ch8.adb (Analyze_Renamed_Entry): For a renaming_as_declaration,
18021         verify that the procedure and the entry are mode conformant.
18022         (Analyze_Subprogram_Renaming): Emit a warning if an operator is renamed
18023         as a different operator, which is often a cut-and-paste error.
18024
18025 2005-09-01  Javier Miranda  <miranda@adacore.com>
18026             Ed Schonberg  <schonberg@adacore.com>
18027
18028         * sem_disp.adb (Check_Controlling_Formals): Anonymous access types
18029         used in controlling parameters exclude null because it is necessary to
18030         read the tag to dispatch, and null has no tag.
18031         (Override_Dispatching_Operation): If the previous operation is inherited
18032         from an interface, it becomes hidden  and does not participate in later
18033         name resolution.
18034
18035 2005-09-01  Javier Miranda  <miranda@adacore.com>
18036             Ed Schonberg  <schonberg@adacore.com>
18037             Gary Dismukes  <dismukes@adacore.com>
18038
18039         * sem_res.adb (Resolve_Membership_Op): In case of the membership test
18040         "Iface_CW_Typ in T'Class" we have nothing else to do in the frontend;
18041         the expander will generate the corresponding run-time check to evaluate
18042         the expression.
18043         (Resolve_Call): Check for legal type of procedure name or prefix that
18044         appears as a trigger in a triggering alternative.
18045         (Valid_Conversion): If expression is ambiguous and the context involves
18046         an extension of System, remove System.Address interpretations.
18047         (Resolve_Qualified_Expression): Reject the case of a specific-type
18048         qualification applied to a class-wide argument. Enhance comment
18049         to explain checking of Original_Node.
18050         (Resolve_Type_Conversion): The location of the error message was not
18051         general enough to handle the general case and hence it has been removed.
18052         In addition, this patch improves the text of the message.
18053         (Resolve_Type_Conversion): Add missing support for access to interface
18054         types.
18055         (Resolve_Type_Conversion): If the target is a class-wide interface type,
18056         do not expand if the expression is the actual in a call, because proper
18057         expansion will take place when the call itself is expanded.
18058         (Resolve_Allocator): If the context is an unchecked conversion, the
18059         allocator inherits its storage pool, if any, from the target type of
18060         the conversion.
18061
18062 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
18063             Javier Miranda  <miranda@adacore.com>
18064
18065         * sem_type.adb (Add_One_Interp): If a candidate operation is an
18066         inherited interface operation that has an implementation, use the
18067         implementation to avoid spurious ambiguities.
18068         (Interface_Present_In_Ancestor): In case of concurrent types we can't
18069         use the Corresponding_Record_Typ attribute to look for the interface
18070         because it is set by the expander (and hence it is not always
18071         available). For this reason we traverse the list of interfaces
18072         (available in the parent of the concurrent type).
18073         (Interface_Present_In_Ancestor): Handle entities from the limited view
18074
18075 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
18076
18077         * sem_util.ads, sem_util.adb (Gather_Components): Omit interface tags
18078         from the list of required components.
18079         (Is_Controlling_Limited_Procedure): Determine whether an entity is a
18080         primitive procedure of a limited interface with a controlling first
18081         parameter.
18082         (Is_Renamed_Entry): Determine whether an entry is a procedure renaming
18083         of an entry.
18084         (Safe_To_Capture_Value): A value (such as non_null) is not safe to
18085         capture if it is generated in the second operand of a short-circuit
18086         operation.
18087         Do not capture values for variables with address clauses.
18088         (Is_Object_Reference): Treat a function call as an object reference only
18089         if its type is not Standard_Void_Type.
18090
18091 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
18092
18093         * sem_warn.adb (Warn_On_Known_Condition): Refine warning when applied
18094         to a variable that is statically known to be constant.
18095
18096 2005-09-01  Geert Bosch  <bosch@adacore.com>
18097             Robert Dewar  <dewar@adacore.com>
18098
18099         * ttypef.ads (VAXDF_Safe_First): Use correct value for constant.
18100         (VAXGF_Safe_First): Idem.
18101
18102 2005-09-01  Robert Dewar  <dewar@adacore.com>
18103             Arnaud Charlet  <charlet@adacore.com>
18104
18105         * g-dirope.ads: Minor reformatting
18106         Document that bounds of result of Base_Name match the input index
18107         positions.
18108         Add documentation on environment variable syntax for Expand_Path
18109
18110         * gnat_ugn.texi: Update documentation to include mention of -m switches
18111         Document new treatment of wide characters in max line length
18112         style check.
18113         Remove -gnatL/-gnatZ switches, no longer used.
18114         Add note on pragmas Assertion_Policy and Debug_Policy in discussion
18115         of -gnata switch.
18116
18117         * gnat_rm.texi: Add doc for two argument form of pragma
18118         Float_Representation.
18119         Add documentation for pragma No_Strict_Aliasing
18120         Add note that explicit component clause overrides pragma Pack.
18121         Add documentation of pragma Debug_Policy
18122
18123 2005-09-01  Matthew Heaney  <heaney@adacore.com>
18124
18125         * a-cihase.adb, a-coorse.ads, a-coorse.adb, a-cohama.adb,
18126         a-ciorse.ads, a-ciorse.adb, a-cihama.adb, a-cdlili.adb,
18127         a-cidlli.adb, a-chtgop.adb, a-cihase.adb, a-cihase.ads,
18128         a-cohase.adb, a-cohase.adb, a-cohase.ads: Synchronized with latest
18129         draft (Draft 13, August 2005) of Ada Amendment 1.
18130
18131 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
18132
18133         * Makefile.in: Adjust the libgnat target pairs for Xscale to ARM.
18134         Note that the platform-specific version of g-soccon.ads for VMS is now
18135         named g-soccon-vms.ads (it was previously g-soccon-vms.adb, although it
18136         really is a package spec).
18137         Replace s-taspri-linux.ads by s-taspri-posix.ads
18138         Remove references to s-mastop-x86.adb
18139
18140         * system-vxworks-xscale.ads: Removed, no longer used.
18141         * s-vxwork-xscale.ads: Removed, no longer used.
18142
18143 2005-09-01  Robert Dewar  <dewar@adacore.com>
18144
18145         * a-dirval-mingw.adb, a-direct.adb, a-coinve.adb,
18146         g-dynhta.adb, g-dynhta.ads, cstand.adb, exp_smem.adb, g-debuti.ads,
18147         g-dirope.adb, g-table.adb, lib-sort.adb, sem_maps.adb,
18148         exp_fixd.adb, exp_aggr.adb, a-intnam-mingw.ads, a-intnam-vxworks.ads,
18149         g-arrspl.adb, g-arrspl.ads, g-awk.adb, g-awk.ads, g-boubuf.ads,
18150         g-boubuf.ads, g-boubuf.ads, g-bubsor.ads, g-bubsor.adb, g-busora.adb,
18151         g-busora.ads, g-busorg.adb, g-busorg.ads, g-calend.adb, g-calend.ads,
18152         g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads, g-cgi.adb,
18153         g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads, g-cgideb.adb, g-cgideb.ads,
18154         g-comlin.adb, g-comver.ads, g-semaph.ads, g-socthi.ads,
18155         sem_ch7.adb, a-direio.adb, a-caldel.ads, i-cstrea-vms.adb,
18156         a-ztedit.adb, a-ztenau.adb, g-socthi-vms.adb, g-socthi-vms.ads,
18157         g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vxworks.ads,
18158         a-intnam-irix.ads, a-intnam-irix.ads, a-intnam-hpux.ads,
18159         a-intnam-os2.ads, a-intnam-os2.ads, a-caldel-vms.adb, a-calend-vms.adb,
18160         a-calend-vms.ads, g-heasor.adb, g-heasor.ads, g-hesora.adb,
18161         g-hesora.ads, g-hesorg.adb, g-hesorg.ads, g-htable.adb, g-htable.ads,
18162         g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads, g-locfil.ads,
18163         g-memdum.adb, g-memdum.ads, g-traceb.adb, g-traceb.ads, i-cobol.adb,
18164         i-cobol.ads, i-cstrea.ads, i-cstrin.adb, a-wtedit.adb, a-tifiio.adb,
18165         a-wtenau.adb, a-wtenau.adb, a-teioed.adb: Minor reformatting
18166
18167 2005-08-29  Arnaud Charlet  <charlet@adacore.com>
18168
18169         PR ada/23187
18170         * adaint.c
18171         (GNAT_MAXPATH_LEN): Use default value if MAXPATHLEN is undefined.
18172
18173 2005-08-29  Arnaud Charlet  <charlet@adacore.com>
18174             Doug Rupp  <rupp@adacore.com>
18175
18176         * s-stalib.adb: Add missing pragma Warnings (On) to reenable Warnings
18177         when needed.
18178         (Inside_Elab_Final_Code): Moved to init.c to avoid having to keep
18179         this code in the GNAT run-time.
18180
18181         * decl.c, fe.h: Replace GCC_ZCX by Back_End_Exceptions.
18182
18183         PR ada/21053
18184         * init.c (__gnat_error_handler [many]): Mark "msg" as const
18185         (__gnat_error_handler [HPUX]): Mark siginfo parameter as unused
18186
18187         (__gnat_inside_elab_final_code): Moved here from
18188         Standard_Library and only defined for the compiler.
18189         __gnat_error_handler [VMS]: Adjust sigargs to account for PC & PSL.
18190         (__gnat_inum_to_ivec): Do not define this function on VxWorks when
18191         using RTPs because directly vectored Interrupt routines are not
18192         supported on this configuration.
18193         (getpid): Do not redefine this function on VxWorks when using RTPs
18194         because this primitive is well supported by the RTP libraries.
18195         (copy_msg): Correct the code that checks for buffer overflow.
18196         Discovered during code reading.
18197
18198 2005-08-29  Olivier Hainque  <hainque@adacore.com>
18199
18200         * decl.c (gnat_to_gnu_entity) <E_Variable>: When allocating storage for
18201         a library level mutable variable with an initializer, tell
18202         build_allocator to ignore the initializer's size. It may not be large
18203         enough for all the values that might be assigned to the variable later
18204         on.
18205
18206 2005-08-29  Arnaud Charlet  <charlet@adacore.com>
18207             Eric Botcazou  <ebotcazou@adacore.com>
18208
18209         * trans.c: Protect < in error msg with quote
18210         Replace GCC_ZCX by Back_End_Exceptions.
18211         (addressable_p) <COMPONENT_REF>: Also return 1 if the field
18212         has been sufficiently aligned in the record.
18213
18214 2005-08-15  James E. Wilson  <wilson@specifix.com>
18215
18216         * system-linux-alpha.ads: Change ia64 to alpha.
18217
18218 2005-08-01  Kazu Hirata  <kazu@codesourcery.com>
18219
18220         * decl.c, utils.c: Fix comment typos.
18221
18222 2005-07-29  Kazu Hirata  <kazu@codesourcery.com>
18223
18224         * decl.c, init.c, initialize.c: Fix comment typos.
18225
18226 2005-07-20  Giovanni Bajo  <giovannibajo@libero.it>
18227
18228         Make CONSTRUCTOR use VEC to store initializers.
18229         * decl.c (gnat_to_gnu_entity): Update to cope with VEC in
18230         CONSTRUCTOR_ELTS.
18231         * trans.c (extract_values): Likewise.
18232         * utils.c (convert, remove_conversions): Likewise.
18233         * utils2.c (contains_save_expr_p, build_binary_op, build_unary_op,
18234         gnat_build_constructor): Likewise.
18235
18236 2005-07-09  Andrew Pinski  <pinskia@physics.uc.edu>
18237
18238         * decl.c (components_to_record): Use DECL_FCONTEXT instead of
18239         DECL_SECTION_NAME.
18240         (compare_field_bitpos): Likewise.
18241
18242 2005-07-09  Andrew Pinski  <pinskia@physics.uc.edu>
18243
18244         * utils.c (create_var_decl): Only set DECL_COMMON on
18245         VAR_DECLs. Only set SET_DECL_ASSEMBLER_NAME on
18246         VAR_OR_FUNCTION_DECL_P.
18247
18248 2005-07-08  Daniel Berlin  <dberlin@dberlin.org>
18249
18250         * utils.c (create_param_decl): DECL_ARG_TYPE_AS_WRITTEN is
18251         removed.
18252
18253 2005-07-07  Pascal Obry  <obry@adacore.com>
18254
18255         * g-socthi-mingw.adb (C_Inet_Addr): New body used to convert the
18256         returned type on Windows.
18257
18258         * g-socthi-mingw.ads (C_Inet_Addr): Remove pragma Import for this
18259         routine.
18260
18261         * g-socket.adb (Inet_Addr): Check for empty Image and raises an
18262         exception in this case.
18263         Simplify the code as "Image (Image'Range)" = "Image".
18264
18265 2005-07-07  Vincent Celier  <celier@adacore.com>
18266
18267         * bindgen.adb (Gen_Output_File_C): When switch -a was specified, put
18268         the destructor/constructor attributes for <lib>final/<lib>init.
18269
18270         * gnatbind.adb (Gnatbind): Allow -a to be used in conjunction with -C
18271
18272 2005-07-07  Eric Botcazou  <ebotcazou@adacore.com>
18273
18274         * decl.c (gnat_to_gnu_entity) <E_Procedure>: Do not strip the padding
18275         type if the parameter is not passed by copy but reference by default.
18276
18277 2005-07-07  Javier Miranda  <miranda@adacore.com>
18278
18279         * exp_ch3.adb (Build_Record_Init_Proc/Freeze_Record_Type):
18280         Reimplementation of the support for abstract interface types in order
18281         to leave the code more clear and easy to maintain.
18282
18283         * exp_ch6.adb (Freeze_Subprogram): Reimplementation of the support for
18284         abstract interface types in order to leave the code clearer and easier
18285         to maintain.
18286
18287         * exp_disp.ads, exp_disp.adb (Fill_DT_Entry): Part of its functionality
18288         is now implemented by the new subprogram Fill_Secondary_DT_Entry.
18289         (Fill_Secondary_DT_Entry): Generate the code necessary to fill the
18290         appropriate entry of the secondary dispatch table.
18291         (Make_DT): Add code to inherit the secondary dispatch tables of
18292         the ancestors.
18293
18294         * exp_util.adb (Find_Interface_Tag/Find_Interface_ADT): Instead of
18295         implementing both functionalities by means of a common routine, each
18296         routine has its own code.
18297
18298 2005-07-07  Javier Miranda  <miranda@adacore.com>
18299
18300         * freeze.adb (Freeze_Entity): Check wrong uses of tag incomplete types.
18301
18302         * par-ch3.adb (P_Type_Declaration): Give support to tagged incomplete
18303         types:
18304         --
18305           type DEFINING_IDENTIFIER [DISCRIMINANT_PART] [IS TAGGED];
18306         --
18307
18308         * sem_attr.adb (Check_Not_Incomplete_Type): Additional checks for wrong
18309         use of tag incomplete types.
18310
18311         * sem_ch3.adb (Analyze_Incomplete_Type): Add mininum decoration to
18312         give support to tagged incomplete types.
18313
18314         * sem_ch5.adb (Analyze_Case_Statement): In generated code, if the
18315         expression is a discriminant reference and its type is private, as can
18316         happen within a stream operation for a mutable record, use the full
18317         view of the type to resolve the case alternatives.
18318         (Analyze_Assignment): Check wrong dereference of incomplete types.
18319
18320         * sem_ch6.adb (Process_Formals): Allow the use of tagged incomplete
18321         types.
18322
18323         * sem_res.adb (Resolve_Explicit_Dereference): Allow the use of tagged
18324         incomplete types.
18325
18326         * sinfo.adb (Taggged_Present/Set_Taggged_Present): Applicable to
18327         N_Incomplete_Type_Declaration nodes.
18328
18329         * sinfo.ads (N_Incomplete_Type_Declaration): Addition of attribute
18330         Tag_Present to give support to tagged incomplete types:
18331         --
18332           type DEFINING_IDENTIFIER [DISCRIMINANT_PART] [IS TAGGED];
18333         --
18334
18335 2005-07-07  Olivier Hainque  <hainque@adacore.com>
18336
18337         PR ada/22301
18338         * raise.c: Only include unwind.h if IN_RTS, and provide dummy type
18339         definitions for the Unwind wrappers in the compiler case.
18340
18341 2005-07-07  Ed Schonberg  <schonberg@adacore.com>
18342             Javier Miranda  <miranda@adacore.com>
18343
18344         * par-load.adb (Load): If a child unit is loaded through a limited_with
18345         clause, each parent must be loaded as a limited unit as well.
18346
18347         * sem_ch10.adb (Previous_Withed_Unit): Better name for
18348         Check_Withed_Unit. Return true if there is a previous with_clause for
18349         this unit, whether limited or not.
18350         (Expand_Limited_With_Clause): Do not generate a limited_with_clause on
18351         the current unit.
18352         (Is_Visible_Through_Renamings): New local subprogram of install_limited
18353         _withed_unit that checks if some package installed through normal with
18354         clauses has a renaming declaration of package whose limited-view is
18355         ready to be installed. This enforces the check of the rule 10.1.2 (21/2)
18356         of the current Draft document for Ada 2005.
18357         (Analyze_Context): Complete the list of compilation units that
18358         are allowed to contain limited-with clauses. It also contains
18359         checks that were previously done by Install_Limited_Context_Clauses.
18360         This makes the code more clear and easy to maintain.
18361         (Expand_Limited_With_Clause) It is now a local subprogram of
18362         Install_Limited_Context_Clauses, and contains the code that adds
18363         the implicit limited-with clauses for parents of child units.
18364         This functionality was prevously done by Analyze_Context.
18365
18366         * sem_ch4.adb (Analyze_Selected_Component): Check wrong use of
18367         incomplete type.
18368
18369         * sem_ch7.adb (Analyze_Package_Declaration): Check if the package has
18370         been erroneously named in a limited-with clause of its own context.
18371         In this case the error has been previously notified by Analyze_Context.
18372
18373 2005-07-07  Ed Schonberg  <schonberg@adacore.com>
18374
18375         * sem_ch8.adb (Find_Direct_Name): Handle properly the case of a
18376         generic package that contains local declarations with the same name.
18377         (Analyze_Object_Renaming): Check wrong renaming of incomplete type.
18378
18379 2005-07-07  Bernard Banner  <banner@adacore.com>
18380
18381         * tracebak.c: Refine tracebacks to use Unwind_Backtrace scheme on
18382         ia64 platform only on platforms that you the GCC unwind library
18383         rather than the system unwind library.
18384
18385 2005-07-07  Thomas Quinot  <quinot@adacore.com>
18386
18387         * expect.c: Minor reformatting
18388
18389 2005-07-07  Sergey Rybin  <rybin@adacore.com>
18390
18391         * vms_data.ads: Add VMS qualifiers for new gnatpp switch
18392         --no-separate-is
18393
18394         * gnat_ugn.texi: Add description for new gnatpp option
18395         (--no-separate-is)
18396
18397 2005-07-04  Thomas Quinot  <quinot@adacore.com>
18398
18399         * g-expect-vms.adb, g-expect.ads, g-expect.adb
18400         (Get_Command_Output): New subprogram to launch a process and get its
18401         standard output as a string.
18402
18403 2005-07-04  Eric Botcazou  <ebotcazou@adacore.com>
18404             Olivier Hainque  <hainque@adacore.com>
18405
18406         * s-mastop-tru64.adb (Pop_Frame): Use exc_lookup_function_entry to
18407         fetch a code-range descriptor associated with the machine state. On
18408         failure set the machine state's PC to 0; on success, pass the
18409         descriptor to exc_virtual_unwind.
18410
18411         * init.c (Tru64 section): New function __gnat_set_code_loc.
18412
18413 2005-07-04  Vincent Celier  <celier@adacore.com>
18414
18415         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
18416         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
18417         mlib-tgt-mingw.adb, mlib-tgt-darwin.adb (Build_Dynamic_Library):
18418         Remove all auto-initialization code, as this is now done through the
18419         constructor mechanism.
18420
18421         * adaint.h, adaint.c (__gnat_binder_supports_auto_init,
18422         __gnat_sals_init_using_constructors): New functions.
18423
18424         * bindgen.adb (Gen_Output_File_Ada): Generate pragmas
18425         Linker_Constructor and Linker_Destructor when switch -a is used.
18426
18427         * bindusg.adb: Add line for new switch -a
18428
18429         * gnatbind.adb (Gnatbind_Supports_Auto_Init): New Boolean function
18430         (Gnatbind): When switch -a is used, check if it is allowed
18431
18432         * switch-b.adb (Scan_Binder_Switches): Process new switch -a
18433
18434 2005-07-04  Joel Brobecker  <brobecker@adacore.com>
18435
18436         * a-tags.adb (Type_Specific_Data): Define Tags_Table as a small array.
18437         This prevents us from hitting a limitation during the debug info
18438         generation when using stabs.
18439         (Prims_Ptr): Likewise.
18440
18441 2005-07-04  Gary Dismukes  <dismukes@adacore.com>
18442             Ed Schonberg  <schonberg@adacore.com>
18443             Javier Miranda  <miranda@adacore.com>
18444
18445         * checks.adb (Null_Exclusion_Static_Checks): In the case of
18446         N_Object_Declaration, only perform the checks if the Object_Definition
18447         is not an Access_Definition.
18448
18449         * sem_ch3.adb (Access_Subprogram_Declaration): Add test for the case
18450         where the parent of an the access definition is an N_Object_Declaration
18451         when determining the Associated_Node_For_Itype and scope of an
18452         anonymous access-to-subprogram type.
18453
18454         * exp_ch6.adb (Expand_N_Subprogram_Declaration): Set the
18455         Corresponding_Spec on the body created for a null procedure. Add ???
18456         comment. Remove New_Copy_Tree call on body argument to
18457         Set_Body_To_Inline.
18458
18459         * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): For an out parameter with
18460         discriminants, use the type of the actual as well, because the
18461         discriminants may be read by the called subprogram.
18462
18463         * sem_ch3.adb (Access_Type_Declaration): If the designated type is an
18464         access type we do not need to handle non-limited views.
18465         (Build_Derived_Record_Type): Additional check to check that in case of
18466         private types, interfaces are only allowed in private extensions.
18467
18468 2005-07-04  Eric Botcazou  <ebotcazou@adacore.com>
18469
18470         * decl.c (prepend_attributes) <Pragma_Linker_Constructor>: New case.
18471         <Pragma_Linker_Destructor>: Likewise.
18472
18473         * einfo.ads (Has_Gigi_Rep_Item): Document Pragma_Linker_Constructor and
18474         Pragma_Linker_Destructor.
18475
18476         * gigi.h (attr_type): Add ATTR_LINK_CONSTRUCTOR and
18477         ATTR_LINK_DESTRUCTOR.
18478         (static_ctors, static_dtors): New variables.
18479
18480         * misc.c (gnat_expand_body): Output current function as constructor
18481         and destructor if requested.
18482
18483         * par-prag.adb: Add processing for pragma Linker_Constructor and
18484         Linker_Destructor.
18485
18486         * sem_prag.adb (Find_Unique_Parameterless_Procedure): New function
18487         extracted from Check_Interrupt_Or_Attach_Handler.
18488         (Check_Interrupt_Or_Attach_Handler): Invoke it.
18489         Implement pragma Linker_Constructor and Linker_Destructor with the
18490         help of Find_Unique_Parameterless_Procedure.
18491         Replace Name_Alias with Name_Target for pragma Linker_Alias.
18492
18493         * snames.h, snames.ads, snames.adb:
18494         Add Name_Linker_Constructor and Name_Linker_Destructor.
18495         Add Pragma_Linker_Constructor and Pragma_Linker_Destructor.
18496         * snames.adb: Remove Name_Alias.
18497
18498         * trans.c: Include cgraph.h.
18499         (build_global_cdtor): New function.
18500         (Compilation_Unit_to_gnu): Build global constructor and destructor if
18501         needed.
18502         (tree_transform) <N_Identifier>: Substitute renaming of view-conversions
18503         of objects too.
18504         (addressable_p) <COMPONENT_REF>: Unconditionally test
18505         DECL_NONADDRESSABLE_P on STRICT_ALIGNMENT platforms.
18506
18507         * utils.c (process_attributes) <ATTR_LINK_ALIAS>: Do not assemble the
18508         variable if it is external.
18509
18510         (static_ctors, static_dtors): New global variables.
18511         (process_attributes) <ATTR_LINK_CONSTRUCTOR>: New case.
18512         <ATTR_LINK_DESTRUCTOR>: Likewise.
18513         (end_subprog_body): Chain function as constructor and destructor
18514         if requested.
18515
18516         * exp_util.adb (Force_Evaluation): Unconditionally invoke
18517         Remove_Side_Effects with Variable_Ref set to true.
18518         (Remove_Side_Effects): Handle scalar types first. Use a renaming
18519         for non-scalar types even if Variable_Ref is true and for class-wide
18520         expressions.
18521
18522 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
18523
18524         * exp_attr.adb (Mod): Evaluate condition expression with checks off,
18525         to prevent spurious warnings.
18526
18527 2005-07-04  Thomas Quinot  <quinot@adacore.com>
18528
18529         * exp_dist.adb (Build_TypeCode_Call): Remove incorrect processing for
18530         Itypes. Itypes are really unexpected there.
18531         (Build_TypeCode_Function): Generalise special processing for Itypes to
18532         handle the case of numeric implicit base types as well as enumerated
18533         ones.
18534
18535 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
18536
18537         * exp_intr.adb (Expand_Unc_Deallocation): If the designated type is
18538         controlled, indicate the expected type of the dereference that is
18539         created for the call to Deep_Finalize, to prevent spurious errors when
18540         the designated type is private and completed with a derivation from
18541         another private type.
18542
18543 2005-07-04  Vincent Celier  <celier@adacore.com>
18544
18545         * make.adb (Change_To_Object_Directory): When unable to change the
18546         current dir to the object directory, output the full path of the
18547         directory.
18548
18549 2005-07-04  Matthew Gingell  <gingell@adacore.com>
18550
18551         * Makefile.in: Replace indepsw-linux.adb by indepsw-gnu.adb
18552
18553         * indepsw-linux.adb: Replace by...
18554
18555         * indepsw-gnu.adb: ...this new file
18556
18557 2005-07-04  Vincent Celier  <celier@adacore.com>
18558
18559         * mlib-prj.adb (Auto_Initialize): New constant String
18560         (SALs_Use_Constructors): New Boolean function
18561         (Build_Library): Call gnatbind with Auto_Initialize switch when
18562         SALs_Use_Constructors returns True.
18563
18564         * mlib-tgt.ads: Minor reformatting
18565
18566         * mlib-utl.ads: Minor reformatting
18567
18568         * opt.ads: (Use_Pragma_Linker_Constructor): New Boolean flag
18569
18570 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
18571
18572         * par-ch9.adb (P_Task, P_Protected): Indicate that single task and
18573         single protected declarations can have an interface list.
18574         (P_Entry_Declaration): Add handler for Error_Resync, which can be raised
18575         with seriously malformed entry declarations, and lead to compilation
18576         abandoned messages.
18577
18578 2005-07-04  Javier Miranda  <miranda@adacore.com>
18579
18580         * par-load.adb: Load the context items in two rounds.
18581
18582 2005-07-04  Robert Dewar  <dewar@adacore.com>
18583
18584         * scng.adb: Do not consider Mod used as an attribute to be a keyword
18585
18586 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
18587             Javier Miranda  <miranda@adacore.com>
18588
18589         * sem_ch10.adb (Build_Limited_Views): A type declared with a private
18590         type extension needs a limited view.
18591         Remove previous restriction on private types available through the
18592         limited-view (only tagged private types were previously allowed).
18593         (Install_Withed_Unit): In the code that implements the
18594         legality rule given in AI-377, exclude a child unit with the name
18595         Standard, because it is a homonym of the Standard environment package.
18596
18597 2005-07-04  Thomas Quinot  <quinot@adacore.com>
18598
18599         * sem_ch4.adb (Transform_Object_Operation): For an actual that is an
18600         overloaded function call, carry interpretations from the original tree
18601         to the copy.
18602
18603 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
18604
18605         * sem_ch6.adb (Conforming_Types): If the types are anonymous access
18606         types check whether some designated type is a limited view, and use
18607         the non-limited view if available.
18608
18609 2005-07-04  Gary Dismukes  <dismukes@adacore.com>
18610
18611         * sem_eval.adb (Subtypes_Statically_Match): Use the discriminant
18612         constraint of full view of a private view T1 if present, when T2 is a
18613         discriminated full view.
18614
18615 2005-07-04  Thomas Quinot  <quinot@adacore.com>
18616
18617         * sem_res.adb (Resolve_Actuals): Do not resolve the expression of an
18618         actual that is a view conversion of a bit packed array reference.
18619
18620 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
18621
18622         * sem_type.adb (Covers): Verify that Corresponding_Record_Type is
18623         present before checking whether an interface type covers a synchronized
18624         type.
18625
18626 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
18627
18628         * sem_util.adb (Is_Object_Reference): An indexed or selected component
18629         whose prefix is an implicit dereference is an object reference. Removes
18630         spurious errors when compiling with -gnatc.
18631
18632 2005-07-04  Robert Dewar  <dewar@adacore.com>
18633
18634         PR ada/22039
18635         * s-sopco3.ads, s-sopco4.ads, s-sopco5.ads: Minor documentation fix
18636
18637 2005-07-04  Matthew Gingell  <gingell@adacore.com>
18638
18639         * tracebak.c: Enable tracebacks on ia64 platforms
18640
18641 2005-07-04  Vincent Celier  <celier@adacore.com>
18642
18643         * vms_conv.adb (Initialize): Allow multiple ALI files to be given to
18644         the GNAT BIND command, as gnatbind accepts multiples ALI files with
18645         the -L or -n switches.
18646
18647 2005-07-04  Vincent Celier  <celier@adacore.com>
18648
18649         * makegpr.adb (Build_Global_Archive): Make sure the list of sources is
18650         correctly computed and the main project data is not modified while
18651         doing so.
18652         (Add_C_Plus_Plus_Link_For_Gnatmake): Always link with the C++ compiler
18653         (Choose_C_Plus_Plus_Link_Process): Do not generate shell script
18654         c++linker as this does not work on some platforms.
18655
18656 2005-07-04  Matthew Heaney  <heaney@adacore.com>
18657
18658         * a-convec.ads, a-coinve.ads: Declaration of subtype Extended_Index
18659         was changed.
18660         * a-coinve.adb: Perform constraint checks explicitly.
18661
18662 2005-07-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18663             Thomas Quinot  <quinot@adacore.com>
18664
18665         * Make-lang.in: (ada/targtyps.o): Add missing TREE_H dependency.
18666         new target gen-soccon.
18667
18668 2005-07-04  Robert Dewar  <dewar@adacore.com>
18669
18670         * s-mastop-irix.adb, s-mastop-vms.adb: Minor reformatting
18671
18672 2005-07-04  Thomas Quinot  <quinot@adacore.com>
18673
18674         * g-socket.ads (Check_Selector): Minor rewording of comment.
18675
18676 2005-07-04  Vincent Celier  <celier@adacore.com>
18677
18678         * vms_data.ads: Add VMS qualifiers for new gnatpp switch --eol=
18679
18680 2005-07-04  Thomas Quinot  <quinot@adacore.com>
18681
18682         * gen-soccon.c: Add constants SO_SNDTIMEO and SO_RCVTIMEO.
18683
18684 2005-07-04  Sergey Rybin  <rybin@adacore.com>
18685
18686         * gnat_ugn.texi: Add description of --eol gnatpp option
18687
18688 2005-07-04  Eric Botcazou  <ebotcazou@adacore.com>
18689             Thomas Quinot  <quinot@adacore.com>
18690
18691         * gnat_rm.texi: Add a note that pragma Unreferenced is not appropriate
18692         if the user wants all calls of a subprogram to be flagged,
18693         independently of whether they are made from within the same unit or
18694         another unit.
18695         Mention restriction for pragma Linker_Alias on some platforms.
18696         Document pragma Linker_Constructor and Linker_Destructor.
18697         Rewrite documentation of Weak_External, Linker_Section and
18698         Linker_Alias pragmas.
18699
18700 2005-07-04  Arnaud Charlet  <charlet@adacore.com>
18701
18702         * s-stausa.ads, s-stausa.adb: New files.
18703
18704 2005-06-30  Kelley Cook
18705
18706         * all files:  Update FSF address in copyright headers.
18707         * gen-soccon.co (main): Output new FSF address in generated files.
18708
18709 2005-06-28  Paul Brook  <paul@codesourcery.com>
18710
18711         * misc.c (gnat_init_gcc_eh): Call default_init_unwind_resume_libfunc.
18712
18713 2005-06-14  Olivier Hainque  <hainque@adacore.com>
18714             Eric Botcazou  <ebotcazou@adacore.com>
18715
18716         * s-mastop-irix.adb (Pop_Frame): Revert shorcuts avoiding calls to
18717         exc_unwind, now that we are generating proper .debug_frame output for
18718         that target.
18719
18720         * tracebak.c: Remove the mips-irix section, as we are now using the
18721         s-mastop based unwinder again.
18722         Under SPARC/Solaris, take into account the stack bias to compute the
18723         frame offset.  The stack bias is 0 for the V8 ABI and 2047 for the V9
18724         ABI.
18725
18726 2005-06-14  Doug Rupp  <rupp@adacore.com>
18727
18728         * g-trasym-vms.adb: renamed g-trasym-vms-alpha.adb
18729
18730         * g-trasym-vms-alpha.adb, g-trasym-vms-ia64.adb: New files
18731
18732 2005-06-14  Pascal Obry  <obry@adacore.com>
18733
18734         * a-strhas.ads, a-secain.adb, a-secain.ads, a-rbtgso.ads, a-cgaaso.adb,
18735         a-cgaaso.ads, a-cgarso.adb, a-cgcaso.adb, a-cgarso.ads, a-cgcaso.ads,
18736         a-contai.ads, a-coprnu.ads, a-coprnu.adb: Fix header style (spaces in
18737         package name).
18738
18739         * a-intnam-lynxos.ads, a-intnam-unixware.ads, a-intnam-tru64.ads,
18740         a-intnam-aix.ads, a-intnam-irix.ads, a-excpol-interix.adb,
18741         a-intnam-hpux.ads, a-intnam-linux.ads, a-intnam-dummy.ads,
18742         a-intnam-os2.ads, a-numaux-libc-x86.ads, a-intnam-interix.ads,
18743         a-intnam-solaris.ads, a-caldel-vms.adb, a-calend-vms.ads,
18744         a-intnam-vms.ads, a-excpol-abort.adb, a-intnam-mingw.ads,
18745         a-intnam-vxworks.ads, a-numaux-vxworks.ads, s-osinte-unixware.adb,
18746         s-osinte-unixware.ads, s-osinte-lynxos-3.adb, s-osinte-lynxos-3.ads,
18747         s-osinte-hpux.ads, s-osinte-solaris-posix.ads, a-intnam-freebsd.ads,
18748         s-osinte-freebsd.adb, s-osinte-freebsd.ads, s-osinte-lynxos.adb,
18749         s-osinte-lynxos.ads, s-tpopsp-lynxos.adb, s-osinte-tru64.adb,
18750         s-osinte-tru64.ads, s-tpopsp-posix-foreign.adb, s-vxwork-alpha.ads,
18751         s-osinte-aix.adb, s-osinte-aix.ads, s-osinte-aix-fsu.ads,
18752         s-osinte-irix.adb, s-osinte-irix.ads, s-interr-sigaction.adb,
18753         s-osinte-irix-athread.ads, s-osinte-hpux-dce.adb,
18754         s-osinte-hpux-dce.ads, s-osinte-posix.adb, s-osinte-linux.ads,
18755         s-vxwork-m68k.ads, s-osinte-linux-fsu.ads, s-vxwork-mips.ads,
18756         s-osinte-dummy.ads, s-interr-dummy.adb, s-osinte-os2.adb,
18757         s-osinte-os2.ads, s-osprim-os2.adb, s-osinte-interix.ads,
18758         s-osprim-unix.adb, s-vxwork-ppc.ads, s-osinte-solaris.adb,
18759         s-osinte-solaris.ads, s-osprim-solaris.adb, s-tpopsp-solaris.adb,
18760         s-vxwork-sparcv9.ads, s-osinte-solaris-fsu.ads, s-interr-vms.adb,
18761         s-osinte-vms.adb, s-osinte-vms.ads, s-osprim-vms.adb,
18762         s-osprim-vms.ads, s-tpopde-vms.adb, s-tpopde-vms.ads,
18763         s-osprim-mingw.adb, s-vxwork-xscale.ads, s-interr-vxworks.adb,
18764         s-osinte-vxworks.adb, s-osinte-vxworks.ads, s-osprim-vxworks.adb,
18765         s-tfsetr-vxworks.adb, s-tpopsp-vxworks.adb, s-intman-posix.adb,
18766         s-osinte-fsu.adb, s-osprim-posix.adb, s-tfsetr-default.adb,
18767         s-tpopsp-posix.adb, s-traces-default.adb, s-trafor-default.adb,
18768         s-trafor-default.ads, s-tratas-default.adb, a-numaux-x86.adb,
18769         a-numaux-x86.ads, a-astaco.adb, a-astaco.ads, a-caldel.adb,
18770         a-caldel.ads, a-charac.ads, a-chlat1.ads, a-chlat9.ads, a-colien.adb,
18771         a-colien.ads, a-colire.adb, a-colire.ads, a-comlin.adb, a-cwila1.ads,
18772         a-cwila9.ads, ada.ads, a-decima.adb, a-diocst.ads, a-direio.adb,
18773         a-dynpri.adb, a-dynpri.ads, a-excpol.adb, a-flteio.ads, a-fwteio.ads,
18774         a-inteio.ads, a-interr.adb, a-intnam.ads, a-intsig.adb, a-intsig.ads,
18775         a-ioexce.ads, a-iwteio.ads, a-lfteio.ads, a-lfwtio.ads, a-liteio.ads,
18776         a-liwtio.ads, a-llftio.ads, a-llfwti.ads, a-llitio.ads, a-lliwti.ads,
18777         a-ncelfu.ads, a-ngcefu.adb, a-ngcefu.ads, a-ngcoty.adb, a-ngelfu.adb,
18778         a-ngelfu.ads, a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads,
18779         a-nllcty.ads, a-nllefu.ads, a-nscefu.ads, a-nscoty.ads, a-nselfu.ads,
18780         a-nucoty.ads, a-nudira.adb, a-nuelfu.ads, a-nuflra.adb, a-numaux.ads,
18781         a-numeri.ads, a-reatim.adb, a-retide.adb, a-retide.ads, a-sequio.adb,
18782         a-sequio.ads, a-sfteio.ads, a-sfwtio.ads, a-siocst.ads, a-siteio.ads,
18783         a-siwtio.ads, a-ssicst.ads, a-ssitio.ads, a-ssiwti.ads, a-stmaco.ads,
18784         a-storio.adb, a-strbou.adb, a-strfix.adb, a-string.ads, a-strmap.adb,
18785         a-strsea.adb, a-strsup.adb, a-strunb.ads, a-ststio.adb, a-stunau.adb,
18786         a-stunau.ads, a-stwibo.adb, a-stwifi.adb, a-stwifi.ads, a-stwima.adb,
18787         a-stwise.adb, a-stwisu.adb, a-suteio.adb, a-suteio.ads, a-swuwti.adb,
18788         a-swuwti.ads, a-teioed.adb, a-ticoau.adb, a-ticoau.ads, a-ticoio.adb,
18789         a-tideau.adb, a-tideio.adb, a-tienau.adb, a-tienio.adb, a-tifiio.adb,
18790         a-tiflio.adb, a-tigeau.adb, a-tigeau.ads, a-tiinio.adb, a-timoau.adb,
18791         a-timoio.adb, a-timoio.ads, a-tiocst.ads, a-titest.adb, a-titest.ads,
18792         a-witeio.adb, a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads,
18793         a-wtcstr.ads, a-wtdeau.adb, a-wtdeio.adb, a-wtenau.adb, a-wtenio.adb,
18794         a-wtfiio.adb, a-wtflio.adb, a-wtgeau.adb, a-wtinau.adb, a-wtinio.adb,
18795         a-wtinio.ads, a-wtmoau.adb, a-wtmoio.adb, a-wttest.adb, calendar.ads,
18796         dec.ads, dec-io.adb, dec-io.ads, directio.ads, errno.c, g-bubsor.adb,
18797         g-bubsor.ads, g-busora.adb, g-busora.ads, g-busorg.adb, g-busorg.ads,
18798         g-casuti.adb, g-casuti.ads, g-debuti.ads, g-heasor.adb, g-heasor.ads,
18799         g-hesora.adb, g-hesora.ads, g-hesorg.adb, g-hesorg.ads, g-htable.adb,
18800         g-htable.ads, g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads,
18801         g-memdum.adb, g-memdum.ads, g-sestin.ads, g-signal.ads, g-signal.adb,
18802         gnat.ads, g-souinf.ads, g-speche.adb, g-speche.ads, g-table.adb,
18803         g-table.ads, g-thread.adb, g-thread.ads, ioexcept.ads, i-vxwoio.adb,
18804         i-vxwoio.ads, math_lib.adb, s-assert.adb, s-assert.ads, s-asthan.ads,
18805         s-bitops.adb, s-bitops.ads, s-boarop.ads, s-carsi8.adb, s-carsi8.ads,
18806         s-carun8.adb, s-carun8.ads, s-casi16.adb, s-casi16.ads, s-casi32.adb,
18807         s-casi32.ads, s-casi64.adb, s-casi64.ads, s-casuti.adb, s-casuti.ads,
18808         s-caun16.adb, s-caun16.ads, s-caun32.adb, s-caun32.ads, s-caun64.adb,
18809         s-caun64.ads, s-direio.adb, s-direio.ads, sequenio.ads, s-errrep.adb,
18810         s-errrep.ads, s-exnint.adb, s-exnint.ads, s-exnllf.adb, s-exnllf.ads,
18811         s-exnlli.adb, s-exnlli.ads, s-expint.adb, s-expint.ads, s-explli.adb,
18812         s-explli.ads, s-expllu.adb, s-expllu.ads, s-expmod.adb, s-expmod.ads,
18813         s-expuns.adb, s-expuns.ads, s-fore.adb, s-fore.ads, s-geveop.adb,
18814         s-geveop.ads, s-htable.adb, s-htable.ads, s-imgbiu.adb, s-imgbiu.ads,
18815         s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads, s-imgdec.adb,
18816         s-imgdec.ads, s-imgenu.adb, s-imgenu.ads, s-imgint.adb, s-imgint.ads,
18817         s-imgllb.adb, s-imgllb.ads, s-imglld.adb, s-imglld.ads, s-imglli.adb,
18818         s-imglli.ads, s-imgllu.adb, s-imgllu.ads, s-imgllw.adb, s-imgllw.ads,
18819         s-imgrea.ads, s-imguns.adb, s-imguns.ads, s-imgwiu.adb, s-imgwiu.ads
18820         s-interr.ads, s-io.adb, s-mantis.adb, s-mantis.ads, s-osprim.ads,
18821         s-pack03.adb, s-pack03.ads, s-pack05.adb, s-pack05.ads, s-pack06.adb,
18822         s-pack06.ads, s-pack07.adb, s-pack07.ads, s-pack09.adb, s-pack09.ads,
18823         s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads, s-pack12.adb,
18824         s-pack12.ads, s-pack13.adb, s-pack13.ads, s-pack14.adb, s-pack14.ads,
18825         s-pack15.adb, s-pack15.ads, s-pack17.adb, s-pack17.ads, s-pack18.adb,
18826         s-pack18.ads, s-pack19.adb, s-pack19.ads, s-pack20.adb, s-pack20.ads,
18827         s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads, s-pack23.adb,
18828         s-pack23.ads, s-pack24.adb, s-pack24.ads, s-pack25.adb, s-pack25.ads,
18829         s-pack26.adb, s-pack26.ads, s-pack27.adb, s-pack27.ads, s-pack28.adb,
18830         s-pack28.ads, s-pack29.adb, s-pack29.ads, s-pack30.adb, s-pack30.ads,
18831         s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads, s-pack34.adb,
18832         s-pack34.ads, s-pack35.adb, s-pack35.ads, s-pack36.adb, s-pack36.ads,
18833         s-pack37.adb, s-pack37.ads, s-pack38.adb, s-pack38.ads, s-pack39.adb,
18834         s-pack39.ads, s-pack40.adb, s-pack40.ads, s-pack41.adb, s-pack41.ads,
18835         s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads, s-pack44.adb,
18836         s-pack44.ads, s-pack45.adb, s-pack45.ads, s-pack46.adb, s-pack46.ads,
18837         s-pack47.adb, s-pack47.ads, s-pack48.adb, s-pack48.ads, s-pack49.adb,
18838         s-pack49.ads, s-pack50.adb, s-pack50.ads, s-pack51.adb, s-pack51.ads,
18839         s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads, s-pack54.adb,
18840         s-pack54.ads, s-pack55.adb, s-pack55.ads, s-pack56.adb, s-pack56.ads,
18841         s-pack57.adb, s-pack57.ads, s-pack58.adb, s-pack58.ads, s-pack59.adb,
18842         s-pack59.ads, s-pack60.adb, s-pack60.ads, s-pack61.adb, s-pack61.ads,
18843         s-pack62.adb, s-pack62.ads, s-pack63.adb, s-pack63.ads, s-scaval.adb,
18844         s-scaval.ads, s-sequio.adb, s-sequio.ads, s-stache.adb, s-stache.ads,
18845         s-stratt.adb, s-stratt.ads, s-strcom.adb, s-strcom.ads, s-strops.adb,
18846         s-strops.ads, s-taasde.ads, s-tadeca.adb, s-tadeca.ads, s-tadert.adb,
18847         s-tadert.ads, s-taenca.adb, s-taenca.ads, s-taprob.adb, s-taprob.ads,
18848         s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads, s-tasini.adb,
18849         s-tasini.ads, s-taskin.adb, s-taskin.ads, s-tasque.adb, s-tasque.ads,
18850         s-tasren.ads, s-tasres.ads, s-tassta.adb, s-tassta.ads, s-tasuti.adb,
18851         s-tasuti.ads, s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
18852         s-tpoben.adb, s-tpoben.ads, s-tpobop.ads, s-tporft.adb, s-tposen.ads,
18853         s-traces.adb, s-traces.ads, s-tratas.adb, s-tratas.ads, s-valint.ads,
18854         s-unstyp.ads, s-veboop.adb, s-veboop.ads, s-vector.ads, s-vercon.adb,
18855         s-vercon.ads, s-wchcnv.adb, s-wchcnv.ads, s-wchjis.adb, s-wchjis.ads,
18856         s-wchstw.adb, s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, s-widboo.adb,
18857         s-widboo.ads, s-widcha.adb, s-widcha.ads, s-widenu.adb, s-widenu.ads,
18858         s-widlli.adb, s-widlli.ads, s-widllu.adb, s-widllu.ads, s-wwdcha.ads,
18859         s-wwdenu.adb, s-wwdwch.ads, text_io.ads, s-stchop.ads, s-stchop.adb,
18860         s-stchop-vxworks.adb, a-intnam-darwin.ads, s-osinte-darwin.adb,
18861         s-osinte-darwin.ads, s-vxwork-x86.ads, a-numaux-darwin.ads,
18862         a-numaux-darwin.adb, a-chzla1.ads, a-chzla9.ads, a-lfztio.ads,
18863         a-liztio.ads, a-llfzti.ads, a-llizti.ads, a-sfztio.ads, a-siztio.ads,
18864         a-ssizti.ads, a-stzbou.adb, a-stzfix.adb, a-stzfix.ads, a-stzmap.adb,
18865         a-stzsea.adb, a-stzsup.adb, a-swunau.adb, a-swunau.ads, a-szuzti.adb,
18866         a-szuzti.ads, a-tiunio.ads, a-wwunio.ads, a-ztcoau.adb, a-ztcoau.ads,
18867         a-ztcoio.adb, a-ztcoio.ads, a-ztcstr.ads, a-ztdeau.adb, a-ztdeio.adb,
18868         a-ztenio.adb, a-ztexio.adb, a-ztfiio.adb, a-ztflio.adb, a-ztgeau.adb,
18869         a-ztinau.adb, a-ztinio.adb, a-ztinio.ads, a-ztmoau.adb, a-ztmoio.adb,
18870         a-zttest.adb, a-zzunio.ads, g-utf_32.adb: Fix header style.
18871         "GNU Ada" to GNAT, use proper casing for RUN-TIME.
18872
18873 2005-06-14  Jose Ruiz  <ruiz@adacore.com>
18874             Arnaud Charlet  <charlet@adacore.com>
18875
18876         * a-sytaco.ads, a-sytaco.adb (Suspension_Object): These objects are no
18877         longer protected objects. They have been replaced by lower-level
18878         suspension objects made up by a mutex and a condition variable (or
18879         their equivalent given a particular OS) plus some internal data to
18880         reflect the state of the suspension object.
18881         (Initialize, Finalize): Add this initialization procedure for
18882         Suspension_Object, which is a controlled type.
18883         (Finalize): Add the finalization procedure for Suspension_Object,
18884         which is a controlled type.
18885
18886         * a-sytaco-vxworks.ads, a-sytaco-vxworks.adb: Remove this version of
18887         Ada.Synchronous_Task_Control because there is no longer a need for a
18888         VxWorks specific version of this package. Target dependencies
18889         has been moved to System.Task_Primitives.Operations.
18890
18891         * s-osinte-mingw.ads (pCRITICAL_SECTION): Remove this type which is no
18892         longer needed.
18893         (InitializeCriticalSection, EnterCriticalSection,
18894         LeaveCriticalSection, DeleteCriticalSection): Replace the type
18895         pCriticalSection by an anonymous access type so that we avoid problems
18896         of accessibility to local objects.
18897
18898         * s-taprop.ads, s-taprop-posix.adb, s-taprop-vxworks.adb,
18899         s-taprop-mingw.adb, s-taprop-vms.adb, s-taprop-solaris.adb,
18900         s-taprop-os2.adb, s-taprop-dummy.adb, s-taprop-hpux-dce.adb,
18901         s-taprop-linux.adb, s-taprop-irix.adb, s-taprop-irix-athread.adb,
18902         s-taprop-tru64.adb, s-taprop-lynxos.adb (Elaboration Code): No longer
18903         set the environment task mask here.
18904         (Current_State): Add this function that returns the state of the
18905         suspension object.
18906         (Set_False): Add this procedure that sets the state of the suspension
18907         object to False.
18908         (Set_True): Add this procedure that sets the state of the suspension
18909         object to True, releasing the task that was suspended, if any.
18910         (Suspend_Until_True): Add this procedure that blocks the calling task
18911         until the state of the object is True. Program_Error is raised if
18912         another task is already waiting on that suspension object.
18913         (Initialize): Add this procedure for initializing the suspension
18914         object. It initializes the mutex and the condition variable which are
18915         used for synchronization and queuing, and it sets the internal state
18916         to False.
18917         (Finalize): Add this procedure for finalizing the suspension object,
18918         destroying the mutex and the condition variable.
18919
18920         * s-taspri-posix.ads, s-taspri-vxworks.ads, s-taspri-mingw.ads,
18921         s-taspri-vms.ads, s-taspri-solaris.ads, s-taspri-os2.ads,
18922         s-taspri-dummy.ads, s-taspri-hpux-dce.ads, s-taspri-linux.ads,
18923         s-taspri-tru64.ads, s-taspri-lynxos.ads (Suspension_Object): New object
18924         which provides a low-level abstraction (using operating system
18925         primitives) for Ada.Synchronous_Task_Control.
18926         This object is made up by a mutex (for ensuring mutual exclusion), a
18927         condition variable (for queuing threads until the condition is
18928         signaled), a Boolean (State) indicating whether the object is open,
18929         and a Boolean (Waiting) reflecting whether there is a task already
18930         suspended on this object.
18931
18932         * s-intman.ads, s-intman-irix.adb, s-intman-irix-athread.adb,
18933         s-intman-dummy.adb, s-intman-solaris.adb, s-intman-vms.adb,
18934         s-intman-vms.ads, s-intman-mingw.adb,
18935         (Initialize_Interrupts): Removed, no longer used.
18936
18937         * s-inmaop-posix.adb, s-inmaop-vms.adb, s-inmaop-dummy.adb,
18938         (Setup_Interrupt_Mask): New procedure.
18939
18940         * s-intman-vxworks.ads, s-intman-vxworks.adb:  Update comments.
18941
18942         * s-inmaop.ads (Setup_Interrupt_Mask): New procedure
18943
18944         * s-interr.adb: Add explicit call to Setup_Interrupt_Mask now that
18945         this is no longer done in the body of s-taprop
18946         (Server_Task): Explicitely test for Pending_Action in case
18947         System.Parameters.No_Abort is True.
18948
18949         * s-taasde.adb: Add explicit call to Setup_Interrupt_Mask now that this
18950         is no longer done in the body of s-taprop
18951
18952 2005-06-14  Robert Dewar  <dewar@adacore.com>
18953
18954         * system-unixware.ads, system-linux-ia64.ads, system-freebsd-x86.ads,
18955         system-lynxos-ppc.ads, system-lynxos-x86.ads, system-linux-x86_64.ads,
18956         system-tru64.ads, system-aix.ads, system-vxworks-sparcv9.ads,
18957         system-vxworks-xscale.ads, system-solaris-x86.ads, system-irix-o32.ads,
18958         system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
18959         system-linux-x86.ads, system-vxworks-mips.ads, system-vxworks-mips.ads,
18960         system-os2.ads, system-interix.ads, system-solaris-sparc.ads,
18961         system-solaris-sparcv9.ads, system-vms.ads, system-mingw.ads,
18962         system-vms-zcx.ads, system-vxworks-ppc.ads, system.ads,
18963         system-darwin-ppc.ads, system-vxworks-x86.ads, system-linux-ppc.ads,
18964         system-linux-hppa.ads, system-vms_64.ads,
18965         system-vxworks-alpha.ads: Minor comment update for
18966         AI-362 (unit is Pure).
18967
18968         * a-chahan.ads, a-chahan.adb: Move Wide_Wide functions to Conversions
18969         Add pragma Pure_05 for AI-362
18970         Make remaining conversion functions obsolescent in Ada 95
18971
18972         * impunit.adb: Change a-swunha to a-swuwha and a-szunha to a-szuzha
18973         Make Ada.Wide_Characters[.Unicode] available in Ada 95 mode
18974         Add entries for a-wichun and a-zchuni
18975         Add a-widcha a-zchara for AI-395
18976         Add a-chacon (Ada.Characters.Conversions) to list of Ada 2005 routines
18977
18978         * Makefile.rtl: Change a-swunha to a-swuwha and a-szunha to a-szuzha
18979         Add entries for a-wichun.o and a-zchuni.o
18980         Entries for a-widcha.o and a-zchara.o
18981         Add entry for a-chacon.o
18982
18983         * a-ztenau.adb: Add with of Ada.Characters.Conversions
18984
18985         * a-chacon.ads, a-chacon.adb: New files.
18986
18987         * a-taside.adb, a-exstat.adb, a-excach.adb: Add warnings off to allow
18988         categorization violations.
18989
18990         * a-strmap.ads: Add pragma Pure_05 for AI-362
18991         * a-strmap.ads: Add note on implicit categorization for AI-362
18992
18993         * a-tgdico.ads, a-taside.ads: Add pragma Preelaborate_05 for AI-362
18994
18995         * par-prag.adb: Dummy entry for pragma Persistent_BSS
18996         Set Ada_Version_Explicit, for implementation of AI-362
18997         Add processing for pragma Pure_05 and Preelaborate_05
18998         Add entry for Assertion_Policy pragma
18999
19000         * sem.adb: Make sure predefined units are compiled with GNAT_Mode true
19001         when needed for proper processing of categorization stuff
19002
19003         * sem_cat.adb:
19004         For several cases, make errors in preealborate units warnings,
19005         instead of errors, if GNAT_Mode is set. For AI-362.
19006
19007         * sem_elab.adb (Check_Elab_Call): Call to non-static subprogram in
19008         preelaborate unit is now warning if in GNAT mode
19009
19010         * s-stoele.ads: Document AI-362 for pragma preelaborate
19011
19012 2005-06-14  Doug Rupp  <rupp@adacore.com>
19013
19014         * s-parame-vms.ads, s-parame-hpux.ads, s-parame-vms-restrict.ads,
19015         s-parame-ae653.ads, s-parame.ads, s-parame-vxworks.ads:
19016         Default_Exception_Msg_Max_Length: new parameter.
19017
19018         * a-except.ads: (Exception_Msg_Max_Length): Set to
19019         System.Parameters.Default_Exception_Msg_Max_Length
19020         Add pragma Preelaborate_05 for AI-362
19021         Add warnings off to allow categorization violations for AI-362
19022
19023 2005-06-14  Vincent Celier  <celier@adacore.com>
19024
19025         * gnatsym.adb: Adapt to modification of package Symbols: procedure
19026         Process is now in package Processing.
19027
19028         * symbols.ads, symbols.adb:
19029         (Processing): New package, containing procedure Process
19030
19031         * symbols-vms-alpha.adb:
19032         Replaced by symbols-vms.adb and symbols-processing-vms-alpha.adb
19033
19034         * symbols-vms.adb, symbols-processing-vms-alpha.adb,
19035         symbols-processing-vms-ia64.adb: New files.
19036
19037 2005-06-14  Pascal Obry  <obry@adacore.com>
19038
19039         * mlib-tgt-mingw.adb (Build_Dynamic_Library): Replace the previous
19040         implementation. This new version generates the proper DllMain routine
19041         to initialize the SAL. The DllMain is generated in Ada and compiled
19042         before being added as option to the library build command.
19043
19044 2005-06-14  Doug Rupp  <rupp@adacore.com>
19045             Pascal Obry  <obry@adacore.com>
19046
19047         * adaint.c (__gnat_to_canonical_file_spec): Check for error returns in
19048         call to decc$translate_vms.
19049         (__gnat_locate_regular_file): Check if the path_val contains quotes. We
19050         need to remove those quotes before catenating the filename.
19051         (__gnat_locate_exec_on_path): improvements to the Win32 section:
19052         * avoid allocating the memory twice for better efficiency;
19053         * allocate 32K buffer for environment expansion as suggested by MSDN;
19054         * prepend ".;" to the path so that current directory is searched too.
19055
19056 2005-06-14  Robert Dewar  <dewar@adacore.com>
19057
19058         * a-except.adb (Exception_Identity): return Null_Id for null occurrence
19059         instead of raising CE (AI-241)
19060         Add warnings off to allow categorization violations for AI-362
19061
19062 2005-06-14  Robert Dewar  <dewar@adacore.com>
19063
19064         * ali-util.adb, gnatbind.adb: Remove references to
19065         Force_RM_Elaboration_Order.
19066
19067         * switch-b.adb: Remove recognition of -f switch
19068
19069 2005-06-14  Pascal Obry  <obry@adacore.com>
19070
19071         * a-stzunb.adb, a-stwiun.adb, a-strunb.adb (Realloc_For_Chunk): New
19072         implementation which is slightly more efficient.
19073
19074 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
19075             Javier Miranda  <miranda@adacore.com>
19076             Ed Schonberg  <schonberg@adacore.com>
19077             Hristian Kirtchev  <kirtchev@adacore.com>
19078
19079         * exp_ch4.adb (Expand_Allocator_Expression): When an initialized
19080         allocator's designated type is a class-wide type, and compiling for
19081         Ada 2005, emit a run-time check that the accessibility level of the
19082         type given in the allocator's expression is not deeper than the level
19083         of the allocator's access type.
19084
19085         (Tagged_Membership): Modified to gives support to abstract interface
19086         types.
19087
19088         * a-tags.ads, a-tags.adb (type Type_Specific_Data): Add component
19089         Access_Level.
19090         (Descendant_Tag): New predefined function
19091         (Is_Descendant_At_Same_Level): New predefined function
19092         (Get_Access_Level): New private function
19093         (Set_Access_Level): New private procedure
19094         (IW_Membership): New function. Given the tag of an object and the tag
19095         associated with an interface, evaluate if the object implements the
19096         interface.
19097         (Register_Interface_Tag): New procedure used to initialize the table of
19098         interfaces used by the IW_Membership function.
19099         (Set_Offset_To_Top): Initialize the Offset_To_Top field in the prologue
19100         of the dispatch table.
19101         (Inherit_TSD): Modified to copy the table of ancestor tags plus the
19102         table of interfaces of the parent.
19103         (Expanded_Name): Raise Tag_Error if the passed tag equals No_Tag.
19104         (External_Tag): Raise Tag_Error if the passed tag equals No_Tag.
19105         (Parent_Tag): Return No_Tag in the case of a root-level tagged type,
19106         and raise Tag_Error if the passed tag equalis No_Tag, to conform with
19107         Ada 2005 semantics for the new predefined function.
19108
19109         * exp_attr.adb (Expand_N_Attribute, case Attribute_Input): Generate
19110         call to Descendant_Tag rather than Internal_Tag.
19111         (Expand_N_Attribute, case Attribute_Output): Emit a check to ensure that
19112         the accessibility level of the attribute's Item parameter is not deeper
19113         than the level of the attribute's prefix type. Tag_Error is raised if
19114         the check fails. The check is only emitted for Ada_05.
19115         (Find_Stream_Subprogram): If a TSS exists on the type itself for the
19116         requested stream attribute, use it.
19117         (Expand_N_Attribute_Reference): If the designated type is an interface
19118         then rewrite the referenced object as a conversion to force the
19119         displacement of the pointer to the secondary dispatch table.
19120         (Expand_N_Attribute_Reference, case 'Constrained): Return false if this
19121         is a dereference of an object with a constrained partial view.
19122
19123         * exp_ch5.adb (Expand_N_Return_Statement): When a function's result
19124         type is a class-wide type, emit a run-time check that the accessibility
19125         level of the returned object is not deeper than the level of the
19126         function's master (only when compiling for Ada 2005).
19127
19128         * exp_disp.ads, exp_disp.adb (Ada_Actions, Action_Is_Proc,
19129         Action_Nb_Arg): Add entries for new Get_Access_Level and
19130         Set_Access_Level routines in these tables.
19131         (Make_DT): Generate a call to set the accessibility level of the
19132         tagged type in its TSD.
19133         (Make_DT): Code cleanup. The functionality of generating all the
19134         secondary dispatch tables has been moved to freeze_record_type.
19135         (Make_Abstract_Interface_DT): Minor code cleanup.
19136         (Set_All_DT_Position): Code cleanup. As part of the code cleanup
19137         this subprogram implements a new algorithm that provides the
19138         same functionality and it is more clear in case of primitives
19139         associated with abstract interfaces.
19140         (Set_All_Interfaces_DTC_Entity): Removed. As part of the code
19141         clean up, the functionality of this subprogram is now provided
19142         by Set_All_DT_Position.
19143         (Write_DT): New subprogram: a debugging procedure designed to be called
19144         within gdb to display the dispatch tables associated with a tagged
19145         type.
19146         (Collect_All_Interfaces): New subprogram that collects the whole list
19147         of interfaces that are directly or indirectly implemented by a tagged
19148         type.
19149         (Default_Prim_Op_Position): New subprogram that returns the fixed
19150         position in the dispatch table of the default primitive operations.
19151         (Expand_Interface_Actuals): New subprogram to generate code that
19152         displaces all the actuals corresponding to class-wide interfaces to
19153         reference the interface tag of the actual object.
19154         (Expand_Interface_Conversion): New subprogram. Reference the base of
19155         the object to give access to the interface tag associated with the
19156         secondary dispatch table.
19157         (Expand_Interface_Thunk): New subprogram that generates the code of the
19158         thunk. This is required for compatibility with the C+ ABI.
19159         (Make_Abstract_Interface_DT): New subprogram that generate the
19160         declarations for the secondary dispatch tables associated with an
19161         abstract interface.
19162         (Set_All_Interfaces_DTC_Entity): New subprogram that sets the DTC_Entity
19163         attribute for each primitive operation covering interface subprograms
19164         (Expand_Dispatching_Call, Fill_DT_Entry, Make_DT, Set_All_DT_Position):
19165         These subprograms were upgraded to give support to abstract interfaces
19166
19167         * rtsfind.ads (type RE_Id): Add RE_Descendant_Tag,
19168         RE_Is_Descendant_At_Same_Level, RE_Get_Access_Level, and
19169         RE_Set_Access_Level.
19170         (RE_Unit_Table): Add entries for new Ada.Tags operations.
19171         Add support to call the followig new run-time subprograms:
19172         IW_Membership, Register_Interface_Tag, and Set_Offset_To_Top
19173
19174         * sem_ch3.adb (Constant_Redeclaration): Allow a deferred constant to
19175         match its full declaration when both have an access definition with
19176         statically matching designated subtypes.
19177         (Analyze_Component_Declaration): Delete commented out code that was
19178         incorrectly setting the scope of an anonymous access component's type.
19179         (Process_Discriminants): Set Is_Local_Anonymous_Access for the type of
19180         an access discriminant when the containing type is nonlimited.
19181         (Make_Incomplete_Type_Declaration): Create an incomplete type
19182         declaration for a record type that includes self-referential access
19183         components.
19184         (Check_Anonymous_Access_Types): Before full analysis of a record type
19185         declaration, create anonymous access types for each self-referential
19186         access component.
19187         (Analyze_Component_Declaration, Array_Type_Declaration): Indicate that
19188         an access component in this context is a Local_Anonymous_Access, for
19189         proper accessibility checks.
19190         (Access_Definition): Set properly the scope of the anonymous access type
19191         created for a stand-alone access object.
19192         (Find_Type_Of_Object): An object declaration may be given with an access
19193         definition.
19194         (Complete_Subprograms_Derivation): New subprogram used to complete
19195         type derivation of private tagged types implementing interfaces.
19196         In this case some interface primitives may have been overriden
19197         with the partial-view and, instead of re-calculating them, they
19198         are included in the list of primitive operations of the full-view.
19199         (Build_Derived_Record_Type): Modified to give support to private
19200         types implemening interfaces.
19201         (Access_Definition): Reject ALL on anonymous access types.
19202         (Build_Derived_Record_Type): In the case of Ada 2005, allow a tagged
19203         type derivation to occur at a deeper accessibility level than the
19204         parent type.
19205         For the case of derivation within a generic body however, disallow the
19206         derivation if the derived type has an ancestor that is a formal type
19207         declared in the formal part of an enclosing generic.
19208         (Analyze_Object_Declaration): For protected objects, remove the check
19209         that they cannot contain interrupt handlers if not declared at library
19210         level.
19211         (Add_Interface_Tag_Components): New subprogram to add the tag components
19212         corresponding to all the abstract interface types implemented by a
19213         record type or a derived record type.
19214         (Analyze_Private_Extension_Declaration, Build_Derived_Record_Type,
19215         Derived_Type_Declaration, Find_Type_Name, Inherit_Components,
19216         Process_Full_View, Record_Type_Declaration): Modified to give
19217         support to abstract interface types
19218         (Collect_Interfaces): New subprogram that collects the list of
19219         interfaces that are not already implemented by the ancestors
19220         (Process_Full_View): Set flag Has_Partial_Constrained_View appropriately
19221         when partial view has no discriminants and full view has defaults.
19222         (Constrain_Access): Reject a constraint on a general access type
19223         if the discriminants of the designated type have defaults.
19224         (Access_Subprogram_Declaration): Associate the Itype node with the inner
19225         full-type declaration or subprogram spec. This is required to handle
19226         nested anonymous declarations.
19227         (Analyze_Private_Extension_Declaration, Build_Derived_Record_Type,
19228         Derived_Type_Declaration, Find_Type_Name, Inherit_Components,
19229         Process_Full_View, Record_Type_Declaration): Modified to give
19230         support to abstract interface types
19231         (Derive_Subprograms): Addition of a new formal to indicate if
19232         we are in the case of an abstact-interface derivation
19233         (Find_Type_Of_Subtype_Indic): Moved from the body of the package
19234         to the specification because it is requied to analyze all the
19235         identifiers found in a list of interfaces
19236
19237         * debug.adb: Complete documentation of flag "-gnatdZ"
19238
19239         * exp_ch3.adb: Implement config version of persistent_bss pragma
19240         (Check_Stream_Attributes): Use Stream_Attribute_Available instead of
19241         testing for TSS presence to properly enforce visibility rules.
19242         (Freeze_Record_Type): Code cleanup. Modified to call the subprogram
19243         Make_Abstract_Interfaces_DT to generate the secondary tables
19244         associated with abstract interfaces.
19245         (Build_Init_Procedure): Modified to initialize all the tags
19246         corresponding.
19247         (Component_Needs_Simple_Initialization): Similar to other tags,
19248         interface tags do not need initialization.
19249         (Freeze_Record_Type): Modified to give support to abstract interface
19250         types.
19251         (Expand_N_Object_Declaration): Do not generate an initialization for
19252         a scalar temporary marked as internal.
19253
19254         * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): Handle properly an
19255         in-out parameter that is a component in an initialization procedure,
19256         whose constraint might depend on discriminants, and that may be
19257         misaligned because of packing or representation clauses.
19258         (Is_Legal_Copy): New predicate to determine whether a possibly
19259         misaligned in-out actual can actually be passed by copy/return. This
19260         is an error in case the type is by_reference, and a warning if this is
19261         the consequence of a DEC import pragma on the subprogram.
19262         (Expand_Call, Freeze_Subprogram): Modified to give support to abstract
19263         interface types
19264         (Expand_Inlined_Call): Mark temporary generated for the return value as
19265         internal, so that no useless scalar normalization is generated for it.
19266         (Expand_N_Subprogram_Declaration): Save unanalyzed body so calls to
19267         null procedure can always be inlined.
19268         (Expand_N_Subprogram_Declaration): If this is the declaration of a null
19269         procedure, generate an explicit empty body for it.
19270
19271         * exp_util.ads, exp_util.adb (Find_Interface_ADT): New subprogram.
19272         Given a type implementing an interface, returns the corresponding
19273         access_disp_table value.
19274         (Find_Interface_Tag): New subprogram. Given a type implementing an
19275         interface, returns the record component containing the tag of the
19276         interface.
19277         (Find_Interface_Tag): New overloaded subprogram. Subsidiary to the
19278         previous ones that return the corresponding tag and access_disp_table
19279         entities.
19280         (Is_Predefined_Dispatching_Operation): Determines if a subprogram
19281         is a predefined primitive operation.
19282         (Expand_Subtype_From_Expr): If the expression is a selected component
19283         within an initialization procedure, compute its actual subtype, because
19284         the component may depend on the discriminants of the enclosing record.
19285
19286         * i-cpp.ads, i-cpp.adb:
19287         This package has been left available for compatibility with previous
19288         versions of the frontend. As part of the new layout this is now a
19289         dummy package that uses declarations available at a-tags.ads
19290
19291         * par-ch3.adb (P_Identifier_Declarations): Give an error for use of
19292         "constant access" and "aliased [constant] access" when not compiling
19293         with -gnat05.
19294         Suppress Ada 2005 keyword warning if -gnatwY used
19295         (P_Identifier_Declarations): Add support for object declarations with
19296         access definitions.
19297         (Private_Extension_Declaration): Complete the documentation
19298         (P_Derived_Type_Def_Or_Private_Ext_Decl): Fill the inteface_list
19299         attribute in case of private extension declaration
19300         (P_Type_Declaration): Mark as "abstract" the type declarations
19301         corresponding with protected, synchronized and task interfaces
19302         (P_Declarative_Items): "not" and "overriding" are overriding indicators
19303         for a subprogram or instance declaration.
19304
19305         * sem_ch12.adb (Analyze_Subprogram_Instantiation): Verify that an
19306         instantiation that is a dispatching operation has controlling access
19307         parameters that are null excluding.
19308         Save and restore Ada_Version_Explicit, for implementation of AI-362
19309         (Validate_Derived_Type_Instance): Add check for abstract interface
19310         types.
19311         (Analyze_Formal_Package): Establish Instantiation source for the copy of
19312         the generic that is created to represent the formal package.
19313         (Analyze_Package_Instantiation): Instantiate body immediately if the
19314         package is a predefined unit that contains inlined subprograms, and
19315         we are compiling for a Configurable_Run_Time.
19316         (Instantiate_Formal_Subprogram): Indicate that null default subprogram
19317         If the program has a null default, generate an empty body for it.
19318
19319         * sem_ch6.adb, sem_ch9.adb (Analyze_Subprograms_Declaration): Update
19320         error message condition, null procedures are correctly detected now.
19321         (New_Overloaded_Entity): Bypass trivial overriding indicator check
19322         for subprograms in the context of protected types. Instead, the
19323         indicator is examined in Sem_Ch9 while analysing the subprogram
19324         declaration.
19325         (Check_Overriding_Indicator): Check consistency of overriding indicator
19326         on subprogram stubs as well.
19327         (Analyze_Subprogram_Declaration): Diagnose null procedures declared at
19328         the library level.
19329         (Analize_Subprogram_Specification): When analyzing a subprogram in which
19330         the type of the first formal is a concurrent type, replace this type
19331         by the corresponding record type.
19332         (Analyze_Subprogram_Body): Undo the previous work.
19333         (Analyze_Procedure_Call): If the call has the form Object.Op, the
19334         analysis of the prefix ends up analyzing the call itself, after which
19335         we are done.
19336         (Has_Interface_Formals): New subprogram subsidiary to analyze
19337         subprogram_specification that returns true if some non
19338         class-wide interface subprogram is found
19339         (New_Overloaded_Entity): Modified to give support to abstract
19340         interface types
19341         (Conforming_Types): In Ada 2005 mode, conformance checking of anonymous
19342         access to subprograms must be recursive.
19343         (Is_Unchecked_Conversion): Improve the test that recognizes
19344         instantiations of Unchecked_Conversion, and allows them in bodies that
19345         are to be inlined by the front-end. When the body comes from an
19346         instantiation, a reference to Unchecked_Conversion will be an
19347         Expanded_Name, even though the body has not been analyzed yet.
19348         Replace Is_Overriding and Not_Overriding in subprogram_indication with
19349         Must_Override and Must_Not_Override, to better express intent of AI.
19350         (Analyze_Subprogram_Body): If an overriding indicator is given, check
19351         that it is consistent with the overrinding status of the subprogram
19352         at this point.
19353         (Analyze_Subprogram_Declaration): Indicate that a null procedure is
19354         always inlined.
19355         If the subprogram is a null procedure, indicate that it does not need
19356         a completion.
19357
19358         * sem_disp.adb (Check_Controlling_Type): Give support to entities
19359         available through limited-with clauses.
19360         (Check_Dispatching_Operation): A stub acts like a body, and therefore is
19361         allowed as the last primitive of a tagged type if it has no previous
19362         spec.
19363         (Override_Dispatching_Operation, Check_Dispatching_Operation): Modified
19364         to give support to abstract interface types
19365
19366         * sem_res.adb (Valid_Conversion): Perform an accessibility level check
19367         in the case where the target type is an anonymous access type of an
19368         object or component (that is, when Is_Local_Anonymous_Access is true).
19369         Prevent the special checks for conversions of access discriminants in
19370         the case where the discriminant belongs to a nonlimited type, since
19371         such discriminants have their accessibility level defined in the same
19372         way as a normal component of an anonymous access type.
19373         (Resolve_Allocator): When an allocator's designated type is a class-wide
19374         type, check that the accessibility level of type given in the
19375         allocator's expression or subtype indication is not statically deeper
19376         than the level of the allocator's access type.
19377         (Check_Discriminant_Use): Diagnose discriminant given by an expanded
19378         name in a discriminant constraint of a record component.
19379         (Resolve_Explicit_Dereference): Do not check whether the type is
19380         incomplete when the dereference is a use of an access discriminant in
19381         an initialization procedure.
19382         (Resolve_Type_Conversion): Handle conversions to abstract interface
19383         types.
19384         (Valid_Tagged_Conversion): The conversion of a tagged type to an
19385         abstract interface type is always valid.
19386         (Valid_Conversion): Modified to give support to abstract interface types
19387         (Resolve_Actuals): Enable full error reporting on view conversions
19388         between unrelated by_reference array types.
19389         The rule for view conversions of arrays with aliased components is
19390         weakened in Ada 2005.
19391         Call to obsolescent subprogram is now considered to be a violation of
19392         pragma Restrictions (No_Obsolescent_Features).
19393         (Check_Direct_Boolean_Operator): If the boolean operation has been
19394         constant-folded, there is nothing to check.
19395         (Resolve_Comparison_Op, Resolve_Equality_Op, Resolve_Boolean_Op): Defer
19396         check on possible violation of restriction No_Direct_Boolean_Operators
19397         until after expansion of operands, to prevent spurious errors when
19398         operation is constant-folded.
19399
19400         * sem_type.ads, sem_type.adb (Covers, Intersect_Types, Specific_Type,
19401         Has_Compatible_Type): Modified to give support to abstract interface
19402         types.
19403         (Interface_Present_In_Ancestor): New function to theck if some ancestor
19404         of a given type implements a given interface
19405
19406         * sem_ch4.adb (Analyze_Call): Handle properly an indirect call whose
19407         prefix is a parameterless function that returns an access_to_procedure.
19408         (Transform_Object_Operation): Handle properly function calls of the
19409         form Obj.Op (X), which prior to analysis appear as indexed components.
19410         (Analyze_One_Call): Complete the error notification to help new Ada
19411         2005 users.
19412         (Analyze_Allocator): For an allocator without an initial value, where
19413         the designated type has a constrained partial view, a discriminant
19414         constraint is illegal.
19415
19416 2005-06-14  Robert Dewar  <dewar@adacore.com>
19417
19418         * a-textio.adb (Set_Col): Fix two errors noticed recently, having to
19419         do with treatment of Set_Col when positioned at end of line character.
19420
19421 2005-06-14  Robert Dewar  <dewar@adacore.com>
19422
19423         * atree.adb: (Elist*): Protect against uninitialized field
19424
19425 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
19426
19427         * checks.adb (Install_Null_Excluding_Check): Do not generate checks
19428         for an attribute reference that returns an access type.
19429         (Apply_Discriminant_Check): No need for check if (designated) type has
19430         constrained partial view.
19431
19432         (Apply_Float_Conversion_Check): Generate a short-circuit expression for
19433         both bound checks, rather than a conjunction.
19434         (Insert_Valid_Check): If the expression is an actual that is an indexed
19435         component of a bit-packed array, force expansion of the packed element
19436         reference, because it is specifically inhibited elsewhere.
19437
19438 2005-06-14  Vincent Celier  <celier@adacore.com>
19439
19440         * clean.adb (Clean_Project): Correctly delete executable specified as
19441         absolute path names.
19442
19443         * make.adb (Gnatmake): Allow relative executable path names with
19444         directory information even when project files are used.
19445         (Change_To_Object_Directory): Fail gracefully when unable to change
19446         current working directory to object directory of a project.
19447         (Gnatmake): Remove exception handler that could no longer be exercized
19448         (Compile_Sources.Compile): Use deep copies of arguments, as some of them
19449         may be deallocated by Normalize_Arguments.
19450         (Collect_Arguments): Eliminate empty arguments
19451
19452         * gnatcmd.adb (All_Projects): New Boolean flag, initialized to False,
19453         and set to True when -U is used for GNAT PRETTY or GNAT METRIC.
19454         (Check_Project): Return False when Project is No_Project. Return True
19455         when All_Projects is True.
19456         (GNATCmd): Recognize switch -U for GNAT PRETTY and GNAT METRIC and set
19457         All_Projects to True.
19458         Minor reformatting
19459
19460 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
19461             Javier Miranda  <miranda@adacore.com>
19462             Thomas Quinot  <quinot@adacore.com>
19463             Robert Dewar  <dewar@adacore.com>
19464             Hristian Kirtchev  <kirtchev@adacore.com>
19465             Gary Dismukes  <dismukes@adacore.com>
19466
19467         * einfo.ads, einfo.adb (Is_Local_Anonymous_Access): New flag on
19468         anonymous access types, to indicate that the accessibility level of
19469         the type is determined by that of the enclosing declaration.
19470         (Has_Persistent_BSS): New flag
19471         (Set_Is_Primitive_Wrapper): Upgrade the barrier to allow the usage
19472         of this attribute with functions.
19473         (Is_Primitive_Wrapper): Remove the barrier.
19474         (Has_Specified_Stream_Input, Has_Specified_Stream_Output,
19475         Has_Specified_Stream_Read, Has_Specified_Stream_Write):
19476         New subprograms.
19477         (Set_Has_Specified_Stream_Input, Set_Has_Specified_Stream_Output,
19478         Set_Has_Specified_Stream_Read, Set_Has_Specified_Stream_Write):
19479         New subprograms.
19480         (Is_Pure_Unit_Access_Type): New flag
19481         (Abstract_Interfaces): Complete the assertion to cover all usages.
19482         (Set_Is_Interface): Complete the assertion to cover all usages.
19483         (Is_Primitive_Wrapper): New attribute.
19484         (Is_Obsolescent): Now applies to all entities (though it is only set
19485         for subprograms currently)
19486         New flag:  Has_Constrained_Partial_View, to implemente Ada 2005 AI-363,
19487         which solves various problems concerning access subtypes.
19488         (Has_Persistent_BSS): New flag
19489         (Is_Primitive_Wrapper, Set_Primitive_Wrapper): Code cleanup.
19490         Remove these subprograms because this attribute is currently
19491         not used.
19492         New entity flags:
19493         Has_Specified_Stream_Input (Flag190)
19494         Has_Specified_Stream_Output (Flag191)
19495         Has_Specified_Stream_Read (Flag192)
19496         Has_Specified_Stream_Write (Flag193)
19497         Present in all type and subtype entities. Set for a given view if the
19498         corresponding stream-oriented attribute has been defined by an
19499         attribute definition clause. When such a clause occurs, a TSS is set
19500         on the underlying full view; the flags are used to track visibility of
19501         the attribute definition clause for partial or incomplete views.
19502         (Is_Pure_Unit_Access_Type): New flag
19503         Clarify use of Is_Internal.
19504         (Is_Primitive_Wrapper): New attribute present in primitive subprograms
19505         internally generated to wrap the invocation of tasks and protected
19506         types that implement interfaces.
19507         (Implementation_Base_Type): Documentation correction
19508         (Is_Obsolescent): Now applies to all entities (though it is only set
19509         for subprograms currently)
19510         New flag:  Has_Constrained_Partial_View, to implement Ada 2005 AI-363,
19511         which solves various problems concerning access subtypes.
19512
19513         * exp_ch9.adb (Type_Conformant_Parameters): Introduce mode conformance
19514         for examined parameters. Identify unequal parameter list lengths as
19515         non-conformant parameters.
19516         (Overriding_Possible): Do not check for "All" qualifier in declaration
19517         of controlling access parameter, following prescription of AI-404.
19518         (Build_Entry_Wrapper_Spec, Build_Entry_Wrapper_Body): New subprograms
19519         that build the procedure body that wraps an entry invocation
19520         (Build_Corresponding_Record, Build_Protected_Sub_Specification,
19521         Expand_N_Protected_Body, Expand_N_Protected_Type_Declaration,
19522         Expand_N_Task_Body, Expand_N_Task_Type_Declaration): Modified to
19523         give support to abstract interface types
19524
19525         * freeze.adb (Freeze_Entity): Issue error message if
19526         Is_Pure_Unit_Access_Type set, unless we are in Ada 2005 mode and the
19527         type has no storage pool (Ada 2005) AI-366.
19528         Also modified to give support to abstract interface types
19529         (Freeze_Subprogram): Issue an error for a dispatching subprogram with an
19530         Inline_Always pragma.
19531
19532         * par-ch9.adb (P_Task_Items): Reserved words "not" or "overriding" may
19533         now begin an entry declaration.
19534         (P_Entry_Or_Subprogram_With_Indicator): New procedure in
19535         P_Protected_Operation_Declaration_Opt. Parse an entry declaration or
19536         a subprogram declaration preceded by an overriding indicator.
19537         (P_Protected_Operation_Declaration_Opt): Add case for parsing entry
19538         declarations or subprogram declarations preceded by reserved words
19539         "not" or "overriding".
19540         (P_Entry_Declaration): Update comment. Parse and check overriding
19541         indicator, set semantic flags of entry declarations.
19542         (P_Task): New error message in case of private applied
19543         to a task type declaration.
19544         (P_Protected): New error message in case of private applied
19545         to a task type declaration.
19546
19547         * sem_ch7.adb (Preserve_Full_Attributes): Modified to handle the case
19548         in which the full view of a type implementing an interface is a
19549         concurrent type.
19550         (Has_Overriding_Pragma): Remove obsolete implementation of AI-218.
19551         Declare_Inherited_Private_Subprograms): If an explicit operation
19552         overrides an operation that is inherited in the private part, mark the
19553         explicit one as overriding, to enable overriding indicator checks.
19554         (Preserve_Full_Attributes): Propagate Is_Unchecked_Union attribute from
19555         full view to partial view, to simplify handling in back-end.
19556
19557         * sprint.adb: Print interface lists where needed: derived types,
19558         protected types, task types.
19559         output "is null" for null procedures. Part of implementation of
19560
19561         * sem_cat.adb (Validate_Access_Type_Declaration): Implement AI-366
19562         relaxation of rules for access types in pure, shared passive partitions.
19563
19564         * exp_strm.adb (Build_Mutable_Record_Read_Procedure): Reorganize to
19565         first read discriminants into temporary objects, performing checks on
19566         the read values, then possibly performing discriminant checks on the
19567         actual (if it is constrained), and only finally reading the components
19568         into a constrained temporary object.
19569         (Build_Elementary_Input_Call): Adjust the specific circuitry for the
19570         case of reading discriminants of a mutable record type to recognize
19571         the new form of the code generated by
19572         Build_Mutable_Record_Read_Procedure.
19573
19574         * exp_tss.ads, exp_tss.adb (Make_Init_Proc_Name): Reimplement in terms
19575         of a simple call to Make_TSS_Name.
19576         (Make_TSS_Name_Local): Add the TSS name as the last thing in the name
19577         buffer, in order for Is_TSS to work correctly on local TSS names.
19578
19579         * sem_attr.ads, sem_attr.adb (Resolve_Attribute, case 'Access): Use flag
19580         Is_Local_Anonymous_Access to check legaliy of attributes in the
19581         context of  access components and stand-alone access objects.
19582         (Stream_Attribute_Available): In Ada 95 mode, a stream attribute is
19583         treated as available for a limited private type if there is an
19584         attribute_definition_clause that applies to its full view, but not in
19585         other cases where the attribute is available for the full view
19586         (specifically, the sole fact that the full view is non-limited does not
19587         make the attribute available for the partial view).
19588         (Build_Access_Subprogram_Type): Diagnose attempt to apply 'access to a
19589         non-overloaded intrinsic subprogram.
19590         (Check_Stream_Attribute): Reject an attribute reference for an
19591         unavailable stream attribute even if the prefix is not a limited type
19592         (case of a 'Input attribute reference for an abstract, non-classwide
19593         type)
19594         (Stream_Attribute_Available): New function to determine whether a stream
19595         attribute is available at a place.
19596         (Check_Attribute): Use Stream_Attribute_Available instead of just
19597         testing for TSS presence on the implementation base type.
19598         (Analyze_Attribute): Modified to give support to task interfaces.
19599         (Analyze_Access_Attribute): Add error check for use of an Access (or
19600         Unrestricted_Access) attribute with a subprogram marked as
19601         Inline_Always.
19602         (Analyze_Attribute, case Attribute_Address): Add error check for use of
19603         an Address attribute with a subprogram marked as Inline_Always.
19604         Update Eval_Attribute to handle new value of Width from AI-395
19605
19606         * sem_ch13.adb (Analyze_Stream_TSS_Definition): New subprogram.
19607         (Analyze_Attribute_Definition_Clause, cases Input, Output, Read, Write):
19608         Factor common code across the stream-oriented attribute circcuits into
19609         a new subprogram, Analyze_Stream_TSS_Definition. The new uniform
19610         processing is functionally identical to the previous duplicated one,
19611         except that an expression that denotes an abstract subprogram will now
19612         be rejected, as mandated by AI-195 item 5.
19613
19614         * sem_util.ads, sem_util.adb (Type_Access_Level): Use flag
19615         Is_Local_Anonymous_Access to apply accessibility checks to access
19616         components and stand-alone access objects.
19617         (Has_Discriminant_Dependent_Constraint): Moved to spec for use
19618         elsewhere.
19619         (Is_Potentially_Persistent_Type): New function
19620         (Is_Dependent_Component_Of_Mutable_Object): If the enclosing object is
19621         a heap-object whose type has a constrained partial view, the object is
19622         unconstrained and the component may depend on a discriminant, making its
19623         renaming illegal.
19624
19625         * sinfo.ads, sinfo.adb
19626         (Must_Not_Override): Flag applicable to N_Entry_Declaration.
19627         (Must_Override): Flag applicable to N_Entry_Declaration.
19628         Indicate that interface_list can appear in single task and single
19629         protected declarations.
19630         Replace Is_Overriding and Not_Overriding with Must_Override and
19631         Must_Not_Override, to better express intent of AI.
19632         Is_Overriding, Not_Overriding: Ada2005 flags that indicate the presence
19633         of an overriding indicator in a subprogram or instance.
19634         Ada 2005 (AI-248) Null_Present can appear in a procedure specification.
19635         Add the overriding indicator [[not] overriding] construct to the
19636         following grammar productions:
19637          ENTRY_DECLARATION
19638          GENERIC_INSTANTIATION
19639          SUBPROGRAM_SPECIFICATION
19640
19641         * par-ch10.adb (P_Compilation_Unit): Subprogram declaration or body
19642         can start with an overriding indicator.
19643
19644         * par-ch6.adb (P_Subprogram): Recognize overriding indicator, and set
19645         flags accordingly on subrogram specifications or instances.
19646
19647         * sem_ch8.adb:
19648         (Analyze_Subprogram_Renaming): For a renaming_as_body, verify that the
19649         overriding_indicator, if present, is consistent with status of spec.
19650         Improve error message for null-excluding checks on controlling access
19651         parameters.
19652         (Check_In_Previous_With_Clause): Protect the frontend against
19653         previously reported critical errors in the context clauses.
19654         Save and restore Ada_Version_Explicit, for implementation of AI-362
19655         (Analyze_Subprogram_Renaming): If the new entity is a dispatching
19656         operation verify that controlling formals of the renamed entity that
19657         are access parameters are explicitly non-null.
19658         (Find_Expanded_Name): Improve error message when prefix is an illegal
19659         reference to a private child unit.
19660
19661         * exp_imgv.adb, s-imgwch.ads, s-imgwch.adb, s-valwch.adb,
19662         s-valwch.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb, s-wwdwch.adb:
19663         Rewrite to correspond to new wide character names in AI-395
19664
19665         * par-ch12.adb (P_Formal_Subprogram_Declaration): Recognize null
19666         default procedures.
19667
19668 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
19669             Robert Dewar  <dewar@adacore.com>
19670
19671         * errout.ads, errout.adb (Error_Msg_NW): Only emit warning on user
19672         code, not on the bodies of predefined operations, to cut down on
19673         spurious noise.
19674
19675 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
19676
19677         * exp_aggr.adb (Aggr_Size_OK): An array with no components can always
19678         be expanded in place. The size computation does not require a
19679         subtraction, which would raise an exception on a compiler built with
19680         assertions when the upper bound is Integer'first.
19681         (Flatten): For an array of composite components, take into account the
19682         size of the components to determine whether it is safe to expand the
19683         array into a purely positional representation.
19684
19685 2005-06-14  Thomas Quinot  <quinot@adacore.com>
19686
19687         * exp_ch2.adb (Param_Entity): Take the case of an expanded_name
19688         denoting a formal parameter into account.
19689
19690 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
19691
19692         * exp_ch7.adb (Find_Node_To_Be_Wrapped): If the node appears within
19693         the entry_call alternative of a conditional entry call, wrap the
19694         conditional entry call itself.
19695
19696 2005-06-14  Nicolas Setton  <setton@adacore.com>
19697             Ed Schonberg  <schonberg@adacore.com>
19698
19699         * exp_dbug.ads, exp_dbug.adb (Get_Variant_Part): Fix the encoding of
19700         the "simple_choice" member in a variant record, in accordance with the
19701         description in the package spec: the information output for a constant
19702         should be "S number", not "SS number".
19703         (Get_Encoded_Name): Return at once if not generating code. Avoids name
19704         overflow problem when compiling with -gnatct, for ASIS/gnatmetrics.
19705
19706 2005-06-14  Thomas Quinot  <quinot@adacore.com>
19707
19708         * exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): For an
19709         RACW without any primitives, do not generate the if statement for
19710         dispatching by name in the PolyORB/DSA case, as it would be malformed
19711         (it would have an Elsif_Parts list that is not No_List, but with a
19712         length of 0).
19713
19714 2005-06-14  Robert Dewar  <dewar@adacore.com>
19715
19716         * exp_intr.adb, par-ch5.adb: Minor fix to error message text
19717
19718 2005-06-14  Jose Ruiz  <ruiz@adacore.com>
19719
19720         * fe.h: Add entry for Opt.Exception_Locations_Suppressed so that gigi
19721         can determine whether pragma Suppress_Exception_Locations is in effect.
19722
19723         * utils2.c (build_call_raise): Do not pass the file name to the
19724         exception handler if pragma Suppress_Exception_Locations is in effect.
19725         (build_allocator): Add and process arg IGNORE_INIT_TYPE.
19726
19727 2005-06-14  Emmanuel Briot  <briot@adacore.com>
19728
19729         * g-debpoo.adb (Deallocate, Dereference): Improve output.
19730
19731 2005-06-14  Nicolas Roche  <roche@adacore.com>
19732
19733         * g-diopit.adb (Wildcard_Iterator): Return directly if Path is equal
19734         to ""
19735         (Next_Level): Fix minor bug in handling of ../dir case
19736         (Read): Add dir separator to Directory name so that "" is understood as
19737          "/"
19738
19739 2005-06-14  Pascal Obry  <obry@adacore.com>
19740
19741         * g-dynhta.ads, g-dynhta.adb (Reset): Free the table itself after
19742         releasing the items.
19743
19744 2005-06-14  Vincent Celier  <celier@adacore.com>
19745             Cyrille Comar  <comar@adacore.com>
19746
19747         * g-os_lib.ads, g-os_lib.adb (Non_Blocking_Spawn): Two new versions
19748         with output file descriptor and with output file name.
19749         (Dup, Dup2): Now global procedures as they are used by two subprograms
19750         (Copy): Allocate the 200K buffer on the heap rather than on the stack.
19751
19752 2005-06-14  Thomas Quinot  <quinot@adacore.com>
19753
19754         PR ada/6717
19755         * g-socket.ads, g-socket.adb (Inet_Addr): Special case the all-ones
19756         broadcast address.
19757         (Create_Selector): Bind listening socket used to create the signalling
19758         socket pair to 127.0.0.1 to limit the scope for 'theft' of connection.
19759         Set listen backlog to 1 to ensure that we detect socket theft by a
19760         failure of our own connect(2) call.
19761         (Check_Selector): Improve documentation of the selector mechanism.
19762         (Broadcast_Inet_Addr): New constant.
19763
19764 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
19765
19766         * layout.adb (Discrimify): Remove resetting of Vtype to the underlying
19767         type which turns out to be an incomplete and incorrect fix.
19768         (Layout_Array_Type): Use Underlying_Type when checking whether the scope
19769         of the type is declared in a record (for determination of insertion
19770         type).
19771         (SO_Ref_From_Expr): Test whether Vtype denotes a partial or full view of
19772         a private type and ensure that the primary entity is used for the type
19773         of the newly created function's V formal by taking the Etype of the
19774         view.
19775
19776 2005-06-14  Javier Miranda  <miranda@adacore.com>
19777             Jose Ruiz  <ruiz@adacore.com>
19778             Robert Dewar  <dewar@adacore.com>
19779             Ed Schonberg  <schonberg@adacore.com>
19780
19781         * lib-load.ads, lib-load.adb (Load_Unit): Addition of a new parameter
19782         that indicates if we are parsing a compilation unit found in a
19783         limited-with clause.
19784         It is use to avoid the circularity check.
19785
19786         * par.ads, par.adb (Par): Addition of a new parameter to indicate if
19787         we are parsing a compilation unit found in a limited-with clause. This
19788         is use to avoid the circularity check.
19789
19790         * par-load.adb (Load): Indicate Lib.Load_Unit if we are loading the
19791         unit as a consequence of parsing a limited-with clause. This is used
19792         to avoid the circularity check.
19793
19794         * sem_ch10.adb: Suppress Ada 2005 unit warning if -gnatwY used
19795         (Analyze_Context): Limited-with clauses are now allowed
19796         in more compilation units.
19797         (Analyze_Subunit_Context, Check_Parent): Protect the frontend
19798         againts previously reported critical errors in context clauses
19799         (Install_Limited_Withed_Unit): Code cleanup plus static detection
19800         of two further errors: renamed subprograms and renamed packages
19801         are not allowed in limited with clauses.
19802         (Install_Siblings): Do not install private_with_clauses on the package
19803         declaration for a non-private child unit.
19804         (Re_Install_Parents): When a parent of the subunit is reinstalled,
19805         reset visibility of child units properly.
19806         (Install_Withed_Unit): When a child unit appears in a with_clause of its
19807         parent, it is immediately visible.
19808
19809 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
19810             Emmanuel Briot  <briot@adacore.com>
19811
19812         * lib-xref.ads, lib-xref.adb (Generate_Definition): Treat any entity
19813         declared within an inlined body as referenced, to prevent spurious
19814         warnings.
19815         (Output_One_Ref): If an entity renames an array component, indicate in
19816         the ALI file that this aliases (renames) the array. Capture as well
19817         function renamings that rename predefined operations.
19818         Add information about generic parent for package and subprogram
19819         instances.
19820         (Get_Type_Reference): For a subtype that is the renaming of an actual in
19821         an instantiation, use the first_subtype to ensure that we don't generate
19822         cross-reference information for internal types.
19823         For objects and parameters of a generic private type, retain the '*'
19824         indicator to distinguish such an entity from its type.
19825
19826         * ali.ads (Xref_Entity_Record): New fields Iref_File_Num and Iref_Line,
19827         to store information about instantiated entities.
19828
19829         * ali.adb (Scan_ALI): Add support for parsing the reference to the
19830         generic parent
19831
19832         * xref_lib.adb (Skip_To_Matching_Closing_Bracket): New subprogram
19833         (Parse_Identifier_Info, Parse_Token): Add support for the generic parent
19834         information.
19835
19836 2005-06-10  Doug Rupp  <rupp@adacore.com>
19837             Arnaud Charlet  <charlet@adacore.com>
19838             Olivier Hainque  <hainque@adacore.com>
19839             Jose Ruiz  <ruiz@adacore.com>
19840
19841         * Make-lang.in: Add initialize.o when needed.
19842         Remove obsolete references to RT_FLAGS.
19843         Add missing dependencies for sdefault.o
19844
19845         * initialize.c: New file.
19846
19847         * init.c [VMS] Declare ADA$ externs weak to fix build problem in IVMS.
19848         [VMS] cond_signal_table: Fix problem in declaration.
19849         [VMS] __gnat_error_handler: rewrite.
19850         Move all __gnat_initialize() routines to initialize.c
19851         Specialize the former "hpux" section to "hppa hpux", as this is what the
19852         section really is here for and we now have other hpux ports that need
19853         different contents.
19854         (__gnat_adjust_context_for_raise) i386-linux: First version of this
19855         function for this target. Adjust PC by one in the machine context. This
19856         adjustment was previously done in the MD_FALLBACK_FRAME_STATE_FOR, but
19857         it is more reliable to do that in the signal handler itself.
19858         (__gnat_install_handler) i386-linux: Set SA_SIGINFO in the sigaction
19859         flags, so that the handler is passed the context structure to adjust
19860         prior to the raise.
19861         (__gnat_error_handler) i386-linux: Adjust the signature to match what a
19862         SA_SIGINFO sigaction should look like. Call
19863         __gnat_adjust_context_for_raise before actually raising. Cleanup unused
19864         Machine_State_Operations stuff.
19865         Add conditional code so that the x86_64 is also supported.
19866
19867 2005-06-14  Pascal Obry  <obry@adacore.com>
19868
19869         * mdll.adb (Get_Dll_Name): New routine that returns the DLL name given
19870         the library name.
19871
19872 2005-06-14  Robert Dewar  <dewar@adacore.com>
19873
19874         * opt.ads, opt.adb: New flags for persistent_bss mode
19875         Add Ada_Version_Explicit, for implementation of AI-362
19876         Add Assertions_Enabled_Config and associated handling
19877         Needed since setting can be changed with Assertion_Policy pragma
19878         Add new flag Warn_On_Ada_2005_Compatibility
19879
19880         * switch-c.adb: Recognize -gnatwy/Y
19881         Set Ada_Version_Explicit, for implementation of AI-362
19882         The -gnatg switch now includes -gnatyu
19883
19884         * usage.adb: Add -gnatwy/Y
19885         Remove wrong asterisk on -gnatwX line
19886         Add line for -gnatyu switch
19887
19888 2005-06-14  Vincent Celier  <celier@adacore.com>
19889
19890         * osint.adb (Add_Default_Search_Dirs): Put source and object
19891         directories of project files before directories coming from
19892         ADA_INCLUDE_PATH and ADA_OBJECTS_PATH.
19893
19894 2005-06-14  Robert Dewar  <dewar@adacore.com>
19895
19896         PR ada/15613
19897         * par-ch2.adb (Scan_Pragma_Argument): New procedure
19898         (P_Pragma): Implement RM 2.8(4) check for no pos args after named args
19899
19900 2005-06-14  Vincent Celier  <celier@adacore.com>
19901
19902         * prep.adb (Preprocess): Ignore error when scanning the first token of
19903         a line.
19904
19905 2005-06-14  Vincent Celier  <celier@adacore.com>
19906
19907         * prj-nmsc.adb (Suffix_For): Change default suffix for C++ to ".cpp"
19908         (Check_Stand_Alone_Library): If the specified reference symbol file does
19909         not exist, only issue a warning when the symbol policy is not
19910         Controlled. And, when symbol policy is Compliant, set the symbol
19911         policy to Autonomous.
19912
19913 2005-06-14  Vincent Celier  <celier@adacore.com>
19914
19915         * prj-part.adb (Pre_Parse_Context_Clause): Call Set_Is_Not_Last_In_List
19916         when the project file in a with clause is not the last one, that is the
19917         project file name is followed by a comma.
19918         * prj-pp.adb: (First_With_In_List): New Boolean global variable
19919         (Print): Issue list of project files separated by commas in with clauses
19920         according to the values returned by Is_Not_Last_In_List.
19921         * prj-tree.ads, prj-tree.adb: (Is_Not_Last_In_List): New function
19922         (Set_Is_Not_Last_In_List): New procedure
19923
19924 2005-06-14  Eric Botcazou  <ebotcazou@adacore.com>
19925
19926         * s-atacco.ads: Put a pragma No_Strict_Aliasing on Object_Pointer.
19927
19928 2005-06-14  Robert Dewar  <dewar@adacore.com>
19929
19930         * scng.adb: Add call to new Check_EOF routine
19931         (Accumulate_Checksum): Properly handle wide wide char >= 2 ** 24
19932         Add some comments regarding wide character handling
19933
19934         * style.ads, styleg.ads, styleg.adb: Implement new style switch -gnatyu
19935
19936         * stylesw.ads, stylesw.adb: Implement new style switch -gnatyu
19937
19938         * g-utf_32.ads, g-utf_32.adb (Is_UTF_32_Non_Graphic): Other_Format
19939         characters are now considered graphic characters and hence yield false
19940         in this call.
19941
19942         * nmake.adt: Modify header so that xnmake does not generate output
19943         files with multiple blank lines.
19944
19945         * treeprs.adt: Remove a blank line so that output from xtreeprs does
19946         not have an extra blank line
19947
19948 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
19949
19950         * sem_aggr.adb (Aggregate_Constraint_Checks): Apply a conversion to the
19951         expression when the component type is an anonymous access type to
19952         ensure that appropriate accessibility checks are done.
19953
19954         * sem_ch5.adb (Analyze_Assignment): Apply a implicit conversion to the
19955         expression of an assignment when the target object is of an anonymous
19956         access type. This ensures that required accessibility checks are done.
19957         (One_Bound): Move the check for type Universal_Integer to
19958         Process_Bounds.
19959         (Process_Bounds): Check whether the type of the preanalyzed range is
19960         Universal_Integer, and in that case set Typ to Integer_Type prior
19961         to setting the type of the original range and the calls to One_Bound.
19962
19963 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
19964
19965         * sem_case.adb (Expand_Others_Choice): Improve warning.
19966
19967 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
19968
19969         * sem_eval.adb (Subtypes_Statically_Match): Use discriminant
19970         constraint of full view if present, when other type is discriminated.
19971         (Eval_Relational_Op): Recognize tests of pointer values against Null,
19972         when the pointer is known to be non-null, and emit appropriate warning.
19973
19974 2005-06-14  Robert Dewar  <dewar@adacore.com>
19975             Ed Schonberg  <schonberg@adacore.com>
19976
19977         PR ada/10671
19978         * sem_prag.adb: Implement pragma Persistent_BSS
19979         Remove obsolete pragma Persistent_Data, Persistent_Object
19980         Set Ada_Version_Explicit, for implementation of AI-362
19981         Test Ada_Version_Explicit for Preelaborate_05 and Pure_05
19982         Add processing for pragma Pure_05 and Preelaborate_05
19983         Add processing for Assertion_Policy pragma
19984         Add pragma identifiers for Assert
19985         (Analyze_Pragma, case Assert): Check number of arguments
19986         (Process_Inline): Additional guard against an illegal program, where the
19987         argument of the pragma is undefined, and warnings on redundant
19988         constructs are enabled.
19989         (Analyze_Pragma, case Obsolescent): Allow an optional second argument
19990         Ada_05 to this pragma, specifying that the pragma is only active in
19991         Ada_05 mode.
19992         (Check_Arg_Order): New procedure
19993         Add appropriate calls to this procedure throughout
19994         Also throughout, check entity name before doing any other checks
19995
19996         * snames.h snames.ads, snames.adb: Add pragma Persistent_BSS
19997         Remove obsolete pragma Persistent_Data, Persistent_Object
19998         Add entries for pragma Pure_05 and Preelaborate_05
19999         Add entries for Assertion_Policy pragma and associated names
20000         Add some names for pragma argument processing
20001
20002         * tbuild.ads, tbuild.adb: (Make_Linker_Section_Pragma): New function
20003
20004 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
20005
20006         * sem_warn.adb (Warn_On_Known_Condition): If the constant expression
20007         appears within a negation (either from source or as a rewriting of
20008         inequality) adjust text of warning accordingly.
20009
20010 2005-06-14  Thomas Quinot  <quinot@adacore.com>
20011
20012         * s-strxdr.adb: Follow AI95-00132
20013
20014 2005-06-14  Arnaud Charlet  <charlet@adacore.com>
20015
20016         * s-tasren.adb (Exceptional_Complete_Rendezvous): Fix race condition.
20017
20018 2005-06-14  Arnaud Charlet  <charlet@adacore.com>
20019             Jose Ruiz  <ruiz@adacore.com>
20020
20021         * s-tposen.adb, s-tpobop.adb
20022         (Exceptional_Complete_Rendezvous): Save the occurrence and not only
20023         the exception id.
20024         (PO_Do_Or_Queue): Before queuing a task on an entry queue we check that
20025         there is no violation of the Max_Entry_Queue_Length restriction (if it
20026         has been set); Program_Error is raised otherwise.
20027         (Requeue_Call): Before requeuing the task on the target entry queue we
20028         check that there is no violation of the Max_Entry_Queue_Length
20029         restriction (if it has been set); Program_Error is raised otherwise.
20030
20031 2005-06-14  Robert Dewar  <dewar@adacore.com>
20032
20033         * styleg.adb: Fix several remaining problems in -gnatyu switch
20034         Blank line count not reset at start
20035         Scanning outside source buffer in some cases
20036         Confusing message for blanks at end of file
20037         Non-empty blank lines not recognized
20038
20039         * nmake.adt: Modify header so that xnmake does not generate output
20040         files with multiple blank lines.
20041
20042         * treeprs.adt: Remove a blank line so that output from xtreeprs does
20043         not have an extra blank line
20044
20045 2005-06-14  Sergey Rybin  <rybin@adacore.com>
20046
20047         * styleg-c.adb (Body_With_No_Spec): Remove ':' from warning message.
20048
20049 2005-06-14  Doug Rupp  <rupp@adacore.com>
20050             Vincent Celier  <celier@adacore.com>
20051
20052         * vms_conv.ads, vms_conv.adb: Remove "Library" command.
20053         Update copyright.
20054
20055         * vms_data.ads: Add entry for -gnaty/Y [NO]ADA_2005_COMPATIBILITY
20056         Remove "Library" command.
20057         Change keyword for style check -gnatyd from NOCRLF to
20058         DOS_LINE_ENDINGS.
20059         Remove useless second style check keyword NONE
20060         Remove help documentation for inexistent style check keyword
20061         RM_COLUMN_LAYOUT.
20062         Add help documentation for style check keywords DOS_LINE_ENDINGS,
20063         UNNECESSARY_BLANK_LINES and XTRA_PARENS
20064         Add UNNECESSARY_BLANK_LINES for -gnatyu
20065         Add qualifiers /ALL_PROJECTS (-U) for GNAT PRETTY and GNAT METRIC
20066
20067         * ug_words: Add entry for -gnaty/Y [NO]ADA_2005_COMPATIBILITY
20068
20069 2005-06-14  Vincent Celier  <celier@adacore.com>
20070
20071         * makegpr.adb (Compile_Link_With_Gnatmake): Invoke gnatmake with -d if
20072         gprmake was invoked with -d.
20073         (Compile_Sources): If -d was used, output the "completed ..." message
20074         for each compilation.
20075         (Scan_Arg): Recognize new switch -d
20076         When -c and at least one main is specified, set
20077         Unique_Compile to True to guarantee that no other sources will be
20078         compiled.
20079
20080 2005-06-14  Matthew Heaney  <heaney@adacore.com>
20081
20082         * a-swunha.ads, a-swunha.adb: Removed. Replaced by a-swuwha.ad[sb]
20083         * a-swuwha.ads, a-swuwha.adb: New files
20084
20085         * a-szunha.ads, a-szunha.adb: Removed, replaced by a-szuzha.ad[sb]
20086         * a-szuzha.ads, a-szuzha.adb: New files.
20087
20088         * a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb, a-crbtgk.ads,
20089         a-crbtgk.adb, a-crbltr.ads, a-coorse.ads, a-coorse.adb, a-convec.ads,
20090         a-convec.adb, a-coinve.ads, a-coinve.adb, a-cohata.ads, a-cohama.ads,
20091         a-cohama.adb, a-ciorse.ads, a-ciorse.adb, a-cihama.ads, a-cihama.adb,
20092         a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cdlili.ads,
20093         a-cdlili.adb, a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cohase.adb,
20094         a-cohase.ads, a-ciorma.ads, a-coorma.ads, a-ciormu.ads, a-coormu.ads,
20095         a-swunha.adb, a-stunha.adb, a-ciorma.adb, a-coorma.adb, a-shcain.ads,
20096         a-shcain.adb, a-chtgke.ads, a-chtgke.adb, a-stwiha.ads, a-stwiha.adb,
20097         a-strhas.adb, a-stzhas.adb: synchronized to the latest version of the
20098         Ada 2005 RM.
20099
20100 2005-06-10  Eric Botcazou  <ebotcazou@adacore.com>
20101             Olivier Hainque  <hainque@adacore.com>
20102             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20103             Pascal Obry  <obry@adacore.com>
20104
20105         * gigi.h: (build_allocator): Add arg IGNORE_INIT_TYPE.
20106
20107         * trans.c (call_to_gnu): Issue a warning for users of Starlet when
20108         making a temporary around a procedure call because of non-addressable
20109         actual parameter.
20110         (process_freeze_entity): If entity is a private type, capture size
20111         information that may have been computed for the full view.
20112         (tree_transform, case N_Allocator): If have initializing expression,
20113         check type for Has_Constrained_Partial_View and pass that to
20114         build_allocator.
20115         (tree_transform, case N_Return_Statement): Pass extra arg to
20116         build_allocator.
20117
20118         * decl.c (annotate_value): Remove early return if -gnatR is not
20119         specified.
20120         (gnat_to_gnu_field): Don't make a packable type for a component clause
20121         if the position is byte aligned, the field is aliased, and the clause
20122         size isn't a multiple of the packable alignment. It serves no useful
20123         purpose packing-wise and would be rejected later on.
20124         (gnat_to_gnu_entity, case object): Pass extra arg to build_allocator.
20125
20126         PR ada/20515
20127         (gnat_to_gnu_entity): Remove use of macro _WIN32 which is wrong in the
20128         context of cross compilers. We use TARGET_DLLIMPORT_DECL_ATTRIBUTES
20129         instead.
20130         (create_concat_name): Idem.
20131
20132 2005-06-10  Robert Dewar  <dewar@adacore.com>
20133             Eric Botcazou  <ebotcazou@adacore.com>
20134             Ben Brosgol  <brosgol@adacore.com>
20135             Cyrille Comar  <comar@adacore.com>
20136             Sergey Rybin  <rybin@adacore.com>
20137             Pascal Obry  <obry@adacore.com>
20138
20139         * gnat_rm.texi: Add documentation for pragma Persistent_BSS
20140         Document second argument (Ada_05) of pragma Obsolescent
20141         Add note that call to subprogram marked with pragma Obsolescent
20142         is now considered to be a violation of program Restrictions
20143         (No_Obsolescent_Features).
20144         (Implementation Defined Pragmas) <Machine_Attribute>: Make it clear
20145         that only machine-dependent attributes are supported.
20146
20147         * gnat_ugn.texi:
20148         Commented out menu lines and empty section for gnatclean examples
20149         Document -gnatwy/Y
20150         Fix some over long lines
20151         Clarify and enhance documentation of ADA_PROJECT_PATH.
20152         Rework section 2.11.2(3) about linking with a non-GNU compiler.
20153         Mention new switch -fcallgraph-info.
20154         Mention new switch -fstack-usage.
20155         For gnatpp, replace '-notab' with '-N' and add this option to Index
20156         Corrected VMS example.
20157         VMS keyword for style check -gnatyd is DOS_LINE_ENDINGS, no NOCRLF
20158         Minor reformatting
20159         Add documentation for -gnatyu switch (unnecessary blank lines)
20160         Document new switch -U for GNAT PRETTY and GNAT METRIC
20161         Add note about Stdcall being handled as C convention on non Windows OS.
20162         Remove some junk typo in description of gnatbind -S switch
20163         Remove reference to Extensions_Allowed pragma
20164         Document the new order of the directories to be searched (source and
20165         object directories of project files before directories in ADA_*_PATH
20166         environment variables.
20167
20168         * g-trasym.ads: Document that IRIX is supported
20169
20170 2005-06-10  Arnaud Charlet  <charlet@adacore.com>
20171
20172         * Makefile.in: Add initialize.o when needed.
20173         Adapt to new VMS package body Symbols and subunits
20174         No specialized version of a-sytaco is needed for VxWorks.
20175
20176         * a-wichun.ads, a-wichun.adb, a-zchuni.ads, a-zchuni.adb: New files.
20177         * a-zchara.ads, a-widcha.ads: New files.
20178
20179         * system-hpux-ia64.ads: New file.
20180
20181         * i-vxwork-x86.ads, i-vxwork.ads (intContext): Add this function which
20182         is imported from the VxWorks kernel.
20183
20184 2005-06-14  Robert Dewar  <dewar@adacore.com>
20185
20186         * g-soliop-mingw.ads, g-soccon-vms.adb, a-swmwco.ads, exp_smem.adb,
20187         fmap.adb, a-szmzco.ads, s-traent-vms.adb, s-traent-vms.ads,
20188         a-direio.ads, a-exctra.ads, a-exexda.adb, a-exextr.adb, a-stream.ads,
20189         s-restri.ads, s-restri.adb, s-traent.adb, s-traent.ads, a-slcain.adb,
20190         a-stzhas.ads, a-tiinau.adb, comperr.adb, exp_ch11.adb, g-boubuf.adb,
20191         g-calend.adb, g-debpoo.ads, g-moreex.ads, gprep.adb, g-regpat.ads,
20192         i-cexten.ads, i-os2thr.ads, makeutl.ads, memroot.adb, mlib-prj.adb,
20193         namet.adb, namet.ads, prj-makr.adb, prj-proc.adb, sem_dist.adb,
20194         sem_elim.ads, s-valint.adb, s-vallli.adb, s-vallli.adb, s-vallli.ads,
20195         s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads, scn.adb,
20196         s-tasinf.adb, targparm.adb, uname.adb, uname.ads, xnmake.adb,
20197         xsinfo.adb, a-direct.ads: Remove extra blank lines. Minor reformatting.
20198
20199 2005-06-14  Thomas Quinot  <quinot@adacore.com>
20200
20201         * xeinfo.adb: Fix typo in comment
20202
20203 2005-06-14  Javier Miranda  <miranda@adacore.com>
20204
20205         * repinfo.ads: Fix typo in comment
20206
20207 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
20208
20209         * s-finimp.adb (Parent_Tag): Delete this imported function (function
20210         Parent_Tag is now in the visible part of Ada.Tags).
20211         (Get_Deep_Controller): Call Ada.Tags.Parent_Tag directly instead of
20212         using imported function.
20213
20214 2005-06-14  Bernard Banner  <banner@adacore.com>
20215
20216         * vxaddr2line.adb: Add support for Windows hosted x86 vxworks. Should
20217         also apply for handling support for VxSim 653.
20218
20219 2005-06-14  Eric Botcazou  <ebotcazou@adacore.com>
20220
20221         * xsnames.adb: Add automatic generation of snames.h.
20222
20223 2005-06-14  Thomas Quinot  <quinot@adacore.com>
20224
20225         * gen-soccon.c: Add IP_MULTICAST_IF constant
20226         Minor reformatting and adjustments to prevent warnings.
20227
20228 2005-06-14  Pascal Obry  <obry@adacore.com>
20229
20230         * seh_init.c: Do not include <sys/stat.h>. This is not needed.
20231
20232 2005-06-03  Andrew Pinski  <pinskia@physics.uc.edu>
20233
20234         * trans.c (gnat_gimplify_expr): Call
20235         recompute_tree_invarant_for_addr_expr when we change
20236         the operand of the ADDR_EXPR.
20237
20238 2005-05-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20239
20240         * misc.c: Don't include errors.h.
20241
20242 2005-05-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20243
20244         * raise.c (db): Add ATTRIBUTE_PRINTF_2.
20245
20246 2005-05-29  Kazu Hirata  <kazu@cs.umass.edu>
20247
20248         * cal.c, decl.c, init.c, raise.c, trans.c, utils2.c: Fix
20249         comment typos.
20250         * gnat_rm.texi, gnat_ugn.texi: Fix typos.
20251
20252 2005-05-16  Nathanael Nerode  <neroden@gcc.gnu.org>
20253
20254         PR ada/20270
20255         * Makefile.in: Make TGT_LIB behave correctly.
20256
20257 2005-04-23  DJ Delorie  <dj@redhat.com>
20258
20259         * misc.c: Adjust warning() callers.
20260
20261 2005-04-16  Laurent Guerby  <laurent@guerby.net>
20262
20263         PR ada/18847
20264         * a-nudira.adb (Value): Check for valid string.
20265         * a-nuflra.adb (Value): Likewise.
20266
20267 2005-04-11  Richard Sandiford  <rsandifo@redhat.com>
20268
20269         * lang.opt: Refer to the GCC internals documentation instead of c.opt.
20270
20271 2005-04-10  Kazu Hirata  <kazu@cs.umass.edu>
20272
20273         * adaint.c, init.c, tracebak.c: Fix comment typos.
20274         * gnat-style.texi, gnat_rm.texi, gnat_ugn.texi: Fix typos.
20275
20276 2005-04-07  Laurent Guerby  <laurent@guerby.net>
20277             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20278
20279         * Makefile.in: Add make ifeq define for hppa linux tasking support.
20280         * system-hpux.ads: Define Signed_Zeros to be True.
20281         * system-linux-hppa.ads, s-osinte-linux-hppa.ads: New files.
20282
20283 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
20284
20285         * adaint.c, cal.c, decl.c, gigi.h, gmem.c, init.c, link.c,
20286         raise.c, tracebak.c, trans.c, utils2.c, utils.c: Fix comment
20287         typos.
20288
20289 2005-03-30  Tom Tromey  <tromey@redhat.com>
20290
20291         * decl.c (gnat_substitute_in_type): Don't handle FILE_TYPE.
20292
20293 2005-03-30  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
20294
20295         * adaint.c (_gnat_set_close_on_exec): Mark parameters unused.
20296
20297 2005-03-29  Robert Dewar  <dewar@adacore.com>
20298
20299         * sem_res.adb (Resolve_Real_Literal): Generate warning if static
20300         fixed-point expression has value that is not a multiple of the Small
20301         value.
20302
20303         * opt.ads (Warn_On_Bad_Fixed_Value): New flag
20304
20305         * s-taprop-tru64.adb (RT_Resolution): Return an integer number of
20306         nanoseconds.
20307
20308         * ug_words: Add entry for [NO_]BAD_FIXED_VALUES for -gnatwb/-gnatwB
20309
20310 2005-03-29  Vincent Celier  <celier@adacore.com>
20311
20312         * mlib-tgt-vms-ia64.adb, mlib-tgt-vms-alpha.adb
20313         (Build_Dynamic_Library.Version_String): Return the empty string when
20314         Lib_Version is empty or when the symbol policy is not Autonomous.
20315
20316         * symbols-vms-alpha.adb (Finalize): For symbol policy Compliant, when
20317         a symbol is not in the reference symbol file, increase the Major ID
20318         and set the Minor ID to 0.
20319         Use gsmatch=lequal instead of gsmatch=equal
20320
20321 2005-03-29  Doug Rupp  <rupp@adacore.com>
20322
20323         * adaint.c (__gnat_to_canonical_file_spec [VMS]): Check for logical
20324         name and translate.
20325
20326 2005-03-29  Javier Miranda  <miranda@adacore.com>
20327
20328         * a-tags.ads, a-tags.adb (Get_TSD): Subprogram removed.
20329         (Inherit_DT): The first formal has been redefined as a Tag.
20330         This allows us the removal of the subprogram Get_TSD.
20331         (TSD): Replace the call to Get_TSD by the actual code.
20332
20333         * exp_disp.ads, exp_disp.adb: Remove support to call Get_TSD.
20334         (Make_DT): Upgrade the call to Inherit_TSD according to the
20335         new interface: the first formal is now a Tag.
20336
20337         * i-cpp.ads, i-cpp.adb (CPP_Inherit_DT): The first formal has been
20338         redefined as a Tag.
20339         This change allows us to remove the subprogram Get_TSD.
20340         (CPP_Get_TSD): Subprogram removed.
20341         (TSD): Replace the call to CPP_Get_TSD by the actual code.
20342
20343         * rtsfind.ads: Remove support to call the run-time
20344         subprogram Get_TSD
20345
20346 2005-03-29  Robert Dewar  <dewar@adacore.com>
20347
20348         * errutil.adb, errout.adb:
20349         Minor comment updates on Line_Terminator references
20350
20351         * par-ch10.adb: Add ??? comment about line terminator
20352
20353         * styleg.adb (Check_Line_Terminator): Add check for new switch -gnatyd
20354         (check dos line terminator).
20355         (Check_Line_Max_Length): New procedure, split off from the existing
20356         Check_Line_Terminator routine. Separating this out allows -gnatyf to
20357         be properly recognized.
20358
20359         * styleg.adb: Add ??? comment for line terminator reference
20360
20361         * scng.adb (Check_End_Of_Line): Fix bug of -gnatyf being ignored
20362         (Check_End_Of_Line): Add -gnatyd handling (check dos line terminators)
20363
20364         * styleg.ads (Check_Line_Terminator): Add check for new switch -gnatyd
20365         (check dos line terminator).
20366         (Check_Line_Max_Length): New procedure, split off from the existing
20367         Check_Line_Terminator routine. Separating this out allows -gnatyf to
20368         be properly recognized.
20369
20370         * stylesw.ads, stylesw.adb:
20371         Add handling for new -gnatyd switch (check dos line terminator)
20372
20373         * switch-c.adb: Recognize new -gnatyd switch (check dos line terminator)
20374         Recognize -gnatwb/-gnatwB switches
20375         Include Warn_On_Bad_Fixed_Value for -gnatg
20376
20377         * usage.adb:
20378         Add line for new -gnatyd switch (check dos line terminator)
20379
20380         * usage.adb: Add lines for -gnatwb/-gnatwB
20381
20382         * vms_data.ads: Add entry for NOCRLF (-gnatyd)
20383
20384         * vms_data.ads: [NO_]BAD_FIXED_VALUES synonym for -gnatwb/-gnatwB
20385
20386         * gnat_ugn.texi: Fix overlong lines
20387         Document new -gnatyd switch
20388         Document new -gnatwb/-gnatwB switches
20389
20390 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
20391
20392         * exp_ch4.adb (Has_Unconstrained_UU_Component): Use the base type in
20393         order to retrieve the component list of the type, before examining
20394         individual components.
20395
20396         * sem_type.adb (Covers): Types are compatible if one is the base type
20397         of the other, even though their base types might differ when private
20398         views are involved.
20399
20400 2005-03-29  Thomas Quinot  <quinot@adacore.com>
20401
20402         * exp_dist.adb (Add_RAST_Features, PolyORB version): Set the From_Any,
20403         To_Any and TypeCode TSSs on RAS types directly using Set_TSS, instead
20404         of using Set_Renaming_TSS. This ensures that the TSS bodies are not
20405         analyzed if expansion is disabled (which could otherwise cause spurious
20406         error messages if expansion has been disabled due to previous
20407         (unrelated) errors).
20408
20409         * sem_prag.adb (Analyze_Pragma, case Asynchronous): If RAS expansion
20410         is disabled, the entity denoted by the argument is the access type
20411         itself, not an underlying record type, so there is no need to go back
20412         to the Corresponding_Remote_Type.
20413
20414 2005-03-29  Gary Dismukes  <dismukes@adacore.com>
20415             Robert Dewar  <dewar@adacore.com>
20416
20417         * exp_intr.adb (Expand_Dispatching_Constructor_Call): New procedure to
20418         expand a call to an instance of
20419         Ada.Tags.Generic_Dispatching_Constructor into a dispatching call to the
20420         Constructor actual of the instance. A class-wide membership
20421         check is also generated, to ensure that the tag passed to the instance
20422         denotes a type in the class.
20423         (Expand_Intrinsic_Call): Call Expand_Dispatching_Constructor in the case
20424         of Name_Generic_Dispatching_Constructor.
20425
20426         * Makefile.rtl: Add a-tgdico.ads to the list of library units (new Ada
20427         05 unit for AI-260-02).
20428
20429         * a-tgdico.ads: New file.
20430
20431         * impunit.adb (Non_Imp_File_Names_05): Add entry "a-tgdico" for new
20432         predefined Ada 05 generic unit Ada.Tags.Generic_Dispatching_Constructor.
20433
20434         * snames.ads, snames.adb (Preset_Names): Add entry for
20435         Generic_Dispatching_Constructor.
20436
20437         PR ada/20300
20438         * sem_ch8.adb (Find_Direct_Name): Go to root type for check of
20439         character type cases.
20440         (Analyze_Subprogram_Renaming): Add special handling for
20441         the case of renaming of stream attributes when the renaming denotes a
20442         generic formal subprogram association for an abstract formal subprogram.
20443         Check that the attribute is a primitive stream attribute (and not
20444         a class-wide stream attribute) and then rewrite the attribute name
20445         as the name of the appropriate compiler-generated stream primitive.
20446
20447 2005-03-29  Robert Dewar  <dewar@adacore.com>
20448
20449         * exp_util.adb (Remove_Side_Effects): Properly propagate arguments to
20450         recursive calls.
20451         (Is_Possibly_Unaligned_Object): Correct typo that
20452         resulted in inaccurate result for unaligned scalars within records.
20453
20454 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
20455
20456         * freeze.adb (Freeze_Record_Type): If the type of the component is an
20457         itype whose parent is controlled and not yet frozen, do not create a
20458         freeze node for the itype if expansion is disabled.
20459
20460 2005-03-29  Vincent Celier  <celier@adacore.com>
20461
20462         * make.adb (Gnatmake): Don't fail if the main project file is declared
20463         as having no Ada sources. Do not display message "no sources to
20464         compile" in quiet output.
20465
20466 2005-03-29  Doug Rupp  <rupp@adacore.com>
20467
20468         * Makefile.in [VMS] (EXTRA_GNATTOOLS): Add vms_help and gnat.hlp as
20469         extra tools.
20470
20471 2005-03-29  Robert Dewar  <dewar@adacore.com>
20472
20473         * par-ch12.adb (P_Generic): Give better msg for illegal private generic
20474         child.
20475
20476 2005-03-29  Robert Dewar  <dewar@adacore.com>
20477
20478         * par-ch3.adb (P_Type_Declaration): Fix bad error recovery after
20479         missing TYPE Improve the error message generated when compiling a
20480         limited interface in Ada83 or Ada95 mode.
20481
20482 2005-03-29  Robert Dewar  <dewar@adacore.com>
20483
20484         * par-ch4.adb (P_Name): When a bad attribute is returned, return error,
20485         rather than proceed ahead using a junk attribute name.
20486
20487 2005-03-29  Vincent Celier  <celier@adacore.com>
20488
20489         * prj.ads, prj.adb: (Project_Data): Add new component Display_Name
20490
20491         * prj-part.adb (Parse_Single_Project): Set the location of a project
20492         on its defining identifier, rather than on the reserved word "project".
20493
20494         * prj-proc.adb (Expression): Adapt to the fact that default of external
20495         references may be string expressions, not always literal strings.
20496         (Recursive_Process): Set Display_Name equal to Name
20497         when Location is No_Location, that is when there is no actual file.
20498         Get the Display_Name of the project from the source, when it is not a
20499         virtual project.
20500         (Process): Use the Display_Name in error messages
20501
20502         * prj-strt.adb (External_Reference): Allow default to be string
20503         expressions, not only literal strings.
20504
20505 2005-03-29  Vincent Celier  <celier@adacore.com>
20506
20507         * prj-nmsc.adb (Check_Stand_Alone_Library): Do not forbid the symbol
20508         file and the reference symbol file to be the same file.
20509
20510 2005-03-29  Thomas Quinot  <quinot@adacore.com>
20511
20512         * sem_cat.adb (Validate_Remote_Types_Type_Conversion): Perform check to
20513         forbid conversion of a local access-to-subprogram type to a remote one.
20514
20515         * sem_util.adb (Wrong_Type): For a record type that is the expanded
20516         equivalent type for a remote access-to-subprogram type, go back to the
20517         original RAS entity when displaying an error message, so the casing is
20518         the original source casing.
20519
20520 2005-03-29  Robert Dewar  <dewar@adacore.com>
20521
20522         * sem_ch11.adb (Analyze_Raise_Statement): Change message for warning
20523         on param update.
20524
20525 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
20526
20527         * sem_ch4.adb (Analyze_Selected_Component): Do not generate an actual
20528         subtype if code is being pre-analyzed, to prevent un-expanded
20529         references to protected formals, among others.
20530         (Analyze_Explicit_Dereference): If the overloaded prefix includes some
20531         interpretation that can be a call, include the result of the call as a
20532         possible interpretation of the dereference.
20533
20534         * sem_ch5.adb (Process_Bounds): Determine type of range by
20535         pre-analyzing a copy of the original range, and then analyze the range
20536         with the expected type.
20537
20538         * sem_res.adb (Check_Parameterless_Call): For an explicit dereference
20539         with an overloaded prefix where not all interpretations yield an
20540         access to subprogram, do not rewrite node as a call.
20541         (Resolve_Explicit_Dereference): Recognize the previous case and rewrite
20542         the node as a call once the context identifies the interpretation of
20543         the prefix whose call yields the context type.
20544         (Valid_Conversion): For the case of a conversion between
20545         local access-to-subprogram types, check subtype conformance using
20546         Check_Subtype_Conformant instead of Subtype_Conformant, to have a more
20547         detailed error message.
20548
20549 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
20550
20551         * sem_ch6.adb (Set_Formal_Mode): If the subtype has a non_null
20552         indicator, indicate that the formal can never be null.
20553         (Process_Formals): If a formal has a non_null indicator, insert the
20554         resulting subtype immediately before the enclosing subprogram decl,
20555         and not at the beginning of the corresponding declarative part, to
20556         prevent access before elaboration (Ada2005).
20557
20558 2005-03-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20559
20560         PR ada/19956
20561         * utils.c (finish_record_type): Use variable_size when setting sizes.
20562
20563 2005-03-29  Robert Dewar  <dewar@adacore.com>
20564
20565         * xtreeprs.adb, xnmake.adb: Use Stream_IO instead of Text_IO to
20566         guarantee Unix style line terminators for the output files, even when
20567         running on windows.
20568
20569 2005-03-29  Robert Dewar  <dewar@adacore.com>
20570
20571         * a-direct.ads, a-direct.adb (Start_Search): Free allocated search
20572         buffer if an exception is raised.
20573
20574 2005-03-29  Ed Falis  <falis@adacore.com>
20575
20576         * cio.c: Undefine putchar and getchar for VTHREADS: incompatible with
20577         VxWorks 653 1.4
20578
20579 2005-03-29  Robert Dewar  <dewar@adacore.com>
20580
20581         * sem_util.ads: Minor reformatting
20582         * gnat_rm.texi: Minor editing.
20583
20584 2005-03-29  Eric Botcazou  <ebotcazou@adacore.com>
20585
20586         * decl.c (gnat_to_gnu_entity) <E_Variable>: Rework comment.
20587         * trans.c (tree_transform) <N_Identifier>: Use correct predicates.
20588
20589 2005-03-24  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
20590
20591         * adaint.c (__gnat_portable_spawn): Adjust cast.
20592
20593 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
20594
20595         * misc.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
20596
20597 2005-03-17  Pascal Obry  <obry@adacore.com>
20598
20599         * adaint.h, adaint.c (__gnat_waitpid): Moved to expect.c where it is
20600         used.
20601
20602         * expect.c (__gnat_waitpid): Moved here from adaint.c.
20603         Reimplement under Win32 using Win32 API.
20604
20605         (__gnat_kill) [Win32]: Properly close the process handle before leaving
20606         this routine.
20607
20608 2005-03-17  Eric Botcazou  <ebotcazou@adacore.com>
20609
20610         * ada-tree.h: (DECL_RENAMING_GLOBAL_P): New predicate.
20611         (DECL_RENAMED_OBJECT): New accessor macro.
20612         (SET_DECL_RENAMED_OBJECT): New setter macro.
20613
20614         * decl.c (gnat_to_gnu_entity) <E_Variable>: Stabilize the renamed
20615         object in all cases.  Attach the renamed object to the VAR_DECL.
20616         (gnat_to_gnu_field): Do not lift the record wrapper if the size of the
20617         field is not prescribed.
20618
20619         * misc.c (gnat_handle_option): Handle -gnatO separately.
20620         (gnat_print_decl) <VAR_DECL>: New case.
20621         Print the DECL_RENAMED_OBJECT node.
20622
20623         * lang.opt:  Declare separate -gnatO option.
20624
20625         * trans.c (tree_transform) <N_Identifier>: If the object is a renaming
20626         pointer, replace it with the renamed object.
20627         <N_Validate_Unchecked_Conversion>: Warn for a conversion to a fat
20628         pointer type if the source is not a fat pointer type whose underlying
20629         array has the same non-zero alias set as that of the destination array.
20630
20631 2005-03-17  Javier Miranda  <miranda@adacore.com>
20632
20633         * a-tags.ads, a-tags.adb (Get_Expanded_Name): Removed.
20634         (Get_Inheritance_Depth): Removed.
20635         (Set_Inheritance_Depth): Removed.
20636
20637         * rtsfind.ads, exp_disp.ads, exp_disp.adb: Remove support to call the
20638         subprogram Get_Expanded_Name because it is not referenced by the
20639         frontend.
20640
20641         * i-cpp.ads, i-cpp.adb (CPP_Get_Expanded_Name): Removed.
20642         (CPP_Get_Inheritance_Depth): Removed.
20643         (CPP_Set_Inheritance_Depth): Removed.
20644
20645         * tbuild.ads, tbuild.adb (Make_DT_Component): Removed.
20646
20647 2005-03-17  Robert Dewar  <dewar@adacore.com>
20648
20649         * checks.adb (Apply_Array_Size_Check): Completely remove this for GCC
20650         3, since we now expect GCC 3 to do all the work.
20651
20652 2005-03-17  Javier Miranda  <miranda@adacore.com>
20653
20654         * einfo.adb (First_Private_Entity, Set_First_Private_Entity): Addition
20655         of one barrier to avoid wrong usage of this attribute.
20656
20657         * sem_ch12.adb (Formal_Entity): Fix erroneous usage of the attribute
20658         First_Private_Entity.
20659
20660         * sem_ch7.adb (Install_Visible_Declarations): Add a barrier to protect
20661         the subprogram against wrong usage.
20662         Adapt the code to traverse the entities in the
20663         scope of a record_type because in addition to its usage regarding
20664         packages, this subprogram is also called by Expand_N_Freeze_Entity
20665         to install the visible declarations of the enclosing scope of a
20666         record_type_with_private to establish the proper visibility before
20667         freezing the entity and related subprograms.
20668
20669 2005-03-17  Ed Schonberg  <schonberg@adacore.com>
20670
20671         * exp_ch2.adb (In_Assignment_Context): Recognize slice assignments to
20672         entry formals.
20673
20674 2005-03-17  Thomas Quinot  <quinot@adacore.com>
20675
20676         * exp_ch3.adb (Check_Attr): New subprogram.
20677         (Check_Stream_Attribute): Move the code for 13.13.2(9/1) enforcement
20678         into a new Check_Attr subprogram, in order to provide a more
20679         explanatory error message (including the name of the missing attribute).
20680         (Stream_Operation_OK): Renamed from Stream_Operations_OK. This
20681         subprogram determines whether a default implementation exists for a
20682         given stream attribute.
20683         (Make_Predefined_Primitive_Specs, Predefined_Primitive_Bodies):
20684         Determine whether to generate a default implementation for each stream
20685         attribute separately, as this depends on the specific attribute.
20686
20687         * exp_strm.adb (Make_Field_Attribute): For the case of an illegal
20688         limited extension where a stream attribute is missing for a limited
20689         component (which will have been flagged in Exp_Ch3.Sem_Attr), do not
20690         generate a bogus reference to the missing attribute to prevent
20691         cascaded errors. Instead, generate a null statement.
20692
20693         * sem_attr.adb (Check_Stream_Attribute): A stream attribute is
20694         available for a limited type if it has been specified for an ancestor
20695         of the type.
20696
20697 2005-03-17  Ed Schonberg  <schonberg@adacore.com>
20698
20699         * exp_ch6.adb (Expand_Inlined_Call): handle the case when the renamed
20700         entity is an operator.
20701
20702 2005-03-17  Thomas Quinot  <quinot@adacore.com>
20703
20704         * exp_dist.adb (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist
20705         spec, to make this predicate available to other units.
20706
20707         * rtsfind.adb (Check_RPC): Use Sem_Dist.Get_PCS_Name instead of
20708         reimplementing it.
20709
20710         * sem_ch8.adb: Disable expansion of remote access-to-subprogram types
20711         when no distribution runtime library is available.
20712
20713         * sem_res.adb, sem_dist.adb: Disable expansion of remote
20714         access-to-subprogram types when no distribution runtime library is
20715         available.
20716         (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist spec, to make this
20717         predicate available to other units.
20718
20719         * sem_dist.ads (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist
20720         spec, to make this predicate available to other units.
20721
20722 2005-03-17  Vincent Celier  <celier@adacore.com>
20723
20724         * make.adb (Insert_Project_Sources): Make sure the Q is always
20725         initialized.
20726
20727         * prj-nmsc.adb (Check_Ada_Naming_Scheme_Validity): Check Naming against
20728         the default for the tree, not the global default naming.
20729
20730         * prj-proc.adb (Recursive_Process): No need to put the default naming
20731         in the project data, it's already there.
20732
20733 2005-03-17  Doug Rupp  <rupp@adacore.com>
20734
20735         * Makefile.in: (ia64-hp-*vms*): Use s-crtl-vms64.ads.
20736
20737         * 5xcrtl.ads: Renamed to...
20738         * s-crtl-vms64.ads: ...this new file
20739
20740 2005-03-17  Robert Dewar  <dewar@adacore.com>
20741
20742         PR ada/19519
20743         * namet.adb (Copy_One_Character): Set proper wide character encoding
20744         for upper half character if we have upper half encoding.
20745
20746 2005-03-17  Robert Dewar  <dewar@adacore.com>
20747
20748         * par.adb (Par): Improved msg for attempt to recompile predefined unit
20749
20750 2005-03-17  Thomas Quinot  <quinot@adacore.com>
20751
20752         * sem_ch13.adb (New_Stream_Function, New_Stream_Procedure): For a
20753         tagged limited type, the TSS is a newly built renaming declaration:
20754         insert it using Set_TSS, not Copy_TSS.
20755
20756 2005-03-17  Javier Miranda  <miranda@adacore.com>
20757
20758         * sem_ch4.adb (Try_Primitive_Operation, Class_Wide_Operation and
20759         Try_Object_Operation): Analyze the object that is accessible
20760         through the prefix of the subprogram call before we apply
20761         the transformation of the object-operation notation.
20762
20763 2005-03-17  Jose Ruiz  <ruiz@adacore.com>
20764
20765         * s-taprob.adb (Initialize_Protection): Initialize the protected
20766         object's owner to Null_Task.
20767         (Lock): If pragma Detect_Blocking is in effect and the caller of this
20768         procedure is already the protected object's owner then Program_Error
20769         is raised. In addition the protected object's owner is updated.
20770         (Lock_Read_Only): If pragma Detect_Blocking is in effect and the caller
20771         of this procedure is already the protected object's owner then
20772         Program_Error is raised.
20773         In addition the protected object's owner is updated.
20774         (Unlock): Remove the ownership of the protected object.
20775
20776         * s-taprob.ads (Protection): Add the field Owner, used to store the
20777         protected object's owner.
20778         This component is needed for detecting one type of potentially blocking
20779         operations (external calls on a protected subprogram with the same
20780         target object as that of the protected action). Document the rest of
20781         the components.
20782
20783         * s-tposen.adb, s-tpoben.adb (Initialize_Protection_Entries):
20784         Initialize the protected object's owner to Null_Task.
20785         (Lock_Read_Only_Entries): If pragma Detect_Blocking is in effect and the
20786         caller of this procedure is already the protected object's owner then
20787         Program_Error is raised.
20788         Do not raise Program_Error when this procedure is called from a
20789         protected action.
20790         (Unlock_Entries): Remove the ownership of the protected object.
20791         (Lock_Entries): If pragma Detect_Blocking is in effect and the caller
20792         of this procedure is already the protected object's owner then
20793         Program_Error is raised.
20794         Do not raise Program_Error when this procedure is called from
20795         a protected action.
20796
20797         * s-tposen.ads, s-tpoben.ads (Protection_Entries): Add the field Owner,
20798         used to store the protected object's owner.
20799
20800         * s-tpobop.adb (Protected_Entry_Call): If pragma Detect_Blocking is in
20801         effect and this procedure (a potentially blocking operation) is called
20802         from whithin a protected action, Program_Error is raised.
20803         (Timed_Protected_Entry_Call): If pragma Detect_Blocking is in effect
20804         and this procedure (a potentially blocking operation) is called from
20805         whithin a protected action, Program_Error is raised.
20806
20807 2005-03-17  Vincent Celier  <celier@adacore.com>
20808             Nicolas Setton  <setton@adacore.com>
20809
20810         * mlib-tgt-darwin.adb (Build_Dynamic_Library): Remove the "-fini"
20811         switch, not supported by the linker on Darwin. Add '_' before
20812         <library>init, as this character is added unconditionally by the
20813         compiler.
20814         (Is_Archive_Ext): Replace the wrong library extension ".dyld" by the
20815         correct one ".dylib". This fixes detection of the archive files when
20816         building library projects.
20817
20818 2005-03-17  Vincent Celier  <celier@adacore.com>
20819
20820         * switch-m.adb (Normalize_Compiler_Switches): Recognize switches
20821         -gnat83, -gnat95 and -gnat05.
20822
20823 2005-03-17  Vasiliy Fofanov  <fofanov@adacore.com>
20824
20825         * gnat_ugn.texi: Document gnatmem restriction
20826
20827 2005-03-17  Thomas Quinot  <quinot@adacore.com>
20828
20829         * snames.adb: Document new TSS names introduced by exp_dist/exp_tss
20830         cleanup
20831
20832 2005-03-17  Robert Dewar  <dewar@adacore.com>
20833
20834         * s-interr.ads, s-interr.adb, sem_ch3.adb, prj.ads, prj.adb,
20835         a-interr.adb, a-interr.ads, s-interr-sigaction.adb, s-interr-dummy.adb,
20836         s-interr-vms.adb, s-interr-vxworks.adb: Minor reformatting
20837
20838         * casing.adb: Comment improvements
20839
20840 2005-03-17  Pascal Obry  <obry@adacore.com>
20841
20842         * g-expect.adb: Minor reformatting.
20843
20844 2005-03-15  Zack Weinberg  <zack@codesourcery.com>
20845
20846         * Make-lang.in (doc/gnat_ugn_unw.info, doc/gnat_rm.info)
20847         (doc/gnat_ugn_unw.dvi, doc/gnat_rm.dvi): Add gcc-vers.texi
20848         to dependencies.
20849
20850 2005-03-15  Vincent Celier  <celier@adacore.com>
20851
20852         * mlib-tgt-darwin.adb (Library_Exist_For, Library_File_Name_For):
20853         Add new parameter In_Tree to specify the project tree: needed
20854         by the project manager. Adapt to changes in project manager
20855         using new parameter In_Tree.
20856
20857 2005-03-15  Jakub Jelinek  <jakub@redhat.com>
20858
20859         * Make-lang.in (ada/treeprs.ads, ada/einfo.h, ada/sinfo.h,
20860         ada/nmake.adb, ada/nmake.ads): Use unique subdirectories of
20861         ada/bldtools to avoid make -jN failures.
20862
20863 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
20864
20865         * trans.c (gnat_to_gnu) <N_Return_Statement>: Set gnu_result
20866         to NULL_TREE on entry.
20867
20868 2005-03-15  Robert Dewar  <dewar@adacore.com>
20869
20870         * system-unixware.ads, system-linux-ia64.ads, system-freebsd-x86.ads,
20871         system-lynxos-ppc.ads, system-lynxos-x86.ads, system-linux-x86_64.ads,
20872         system-tru64.ads, system-aix.ads, system-vxworks-sparcv9.ads,
20873         system-vxworks-xscale.ads, system-solaris-x86.ads, system-irix-o32.ads,
20874         system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
20875         system-linux-x86.ads, system-vxworks-mips.ads, system-os2.ads,
20876         system-interix.ads, system-solaris-sparc.ads,
20877         system-solaris-sparcv9.ads, system-vms.ads, system-mingw.ads,
20878         system-vms-zcx.ads, system-vxworks-ppc.ads, system-vxworks-alpha.ads,
20879         system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
20880         system-linux-ppc.ads, system-linux-alpha.ads, system-linux-sparc.ads,
20881         system-linux-s390.ads, system-linux-s390x.ads: Add line defining
20882         Compiler_System_Version to be False.
20883
20884         * opt.ads: Add new flag Opt.Address_Is_Private
20885
20886         * targparm.ads, targparm.adb: Set new flag Opt.Address_Is_Private
20887         Add new parameter Compiler_System_Version to avoid checking for
20888         completeness of parameters when compiler is compiling itself.
20889         Allows old versions of GNAT to be compiled with new compiler.
20890
20891 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
20892
20893         * s-osinte-tru64.ads, s-osinte-tru64.adb (Get_Stack_Base): New function
20894         (Hide_Yellow_Zone): New procedure to hide the Yellow Zone of the
20895         calling thread.
20896         (Stack_Base_Available): New flag.
20897         (Get_Page_Size): New overloaded functions imported from C.
20898         (PROT_NONE, PROT_READ, PROT_WRITE, PROT_EXEC, PROT_ALL,
20899         PROT_ON, PROT_OFF): New constants.
20900         (mprotect): New function imported from C.
20901         (pthread_teb_t): New record type.
20902
20903         * s-taprop-tru64.adb: (Enter_Task): Invoke Hide_Yellow_Zone.
20904         (Create_Task): Account for the Yellow Zone and the guard page.
20905
20906 2005-03-15  Vincent Celier  <celier@adacore.com>
20907
20908         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
20909         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
20910         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb,
20911         mlib-tgt-vxworks.adb, mlib-tgt-lynxos.adb (Library_Exist_For,
20912         Library_File_Name_For): Add new parameter In_Tree
20913         to specify the project tree: needed by the project manager.
20914         Adapt to changes in project manager using new parameter In_Tree.
20915         Remove local imports, use functions in System.CRTL.
20916
20917         * make.adb, clean.adb, gnatcmd.adb (Project_Tree): New constant needed
20918         to use the project manager.
20919
20920         * makeutl.ads, makeutl.adb (Linker_Options_Switches): New parameter
20921         In_Tree to designate the project tree. Adapt to changes in the project
20922         manager, using In_Tree.
20923
20924         * mlib-prj.ads, mlib-prj.adb (Build_Library, Check_Library,
20925         Copy_Interface_Sources): Add new parameter In_Tree to specify the
20926         project tree: needed by the project manager.
20927         (Build_Library): Check that Arg'Length >= 6 before checking if it
20928         contains "--RTS=...".
20929
20930         * mlib-tgt.ads, mlib-tgt.adb (Library_Exist_For,
20931         Library_File_Name_For): Add new parameter In_Tree to specify the
20932         project tree: needed by the project manager.
20933
20934         * prj.ads, prj.adb: Major modifications to allow several project trees
20935         in memory at the same time.
20936         Change tables to dynamic tables and hash tables to dynamic hash
20937         tables. Move tables and hash tables from Prj.Com (in the visible part)
20938         and Prj.Env (in the private part). Move some constants from the visible
20939         part to the private part. Make other constants deferred.
20940         (Project_Empty): Make it a variable, not a function
20941         (Empty_Project): Add parameter Tree. Returns the data with the default
20942         naming data of the project tree Tree.
20943         (Initialize): After updating Std_Naming_Data, copy its value to the
20944         component Naming of Project Empty.
20945         (Register_Default_Naming_Scheme): Use and update the default naming
20946         component of the project tree, instead of the global variable
20947         Std_Naming_Data.
20948         (Standard_Naming_Data): Add defaulted parameter Tree. If project tree
20949         Tree is not defaulted, return the default naming data of the Tree.
20950         (Initial_Buffer_Size): Constant moved from private part
20951         (Default_Ada_Spec_Suffix_Id, Default_Ada_Body_Suffix_Id, Slash_Id); new
20952         variables initialized in procedure Initialize.
20953         (Add_To_Buffer): Add two in out parameters to replace global variables
20954         Buffer and Buffer_Last.
20955         (Default_Ada_Spec_Suffix, Default_Body_Spec_Suffix, Slash): New
20956         functions.
20957         Adapt to changes to use new type Project_Tree_Ref and dynamic tables and
20958         hash tables.
20959         (Initialize, Reset, register-Default_Namng-Scheme): Add a new parameter
20960         for the project tree.
20961         (Project_Tree_Data, Project_Tree_Ref, No_Project): Declare types and
20962         constant at the beginning of the package spec, so that they cane be used
20963         in subprograms before their full declarations.
20964         (Standard_Naming_Data): Add defaulted parameter of type Project_Node_Ref
20965         (Empty_Project): Add parameter of type Project_Node_Ref
20966         (Private_Project_Tree_Data): Add component Default_Naming of type
20967         Naming_Data.
20968         (Buffer, Buffer_Last): remove global variables
20969         (Add_To_Buffer): Add two in out parameters to replace global variables
20970         Buffer and Buffer_Last.
20971         (Current_Packages_To_Check): Remove global variable
20972         (Empty_Name): Move to private part
20973         (No-Symbols): Make it a constant
20974         (Private_Project_Tree_Data): New type for the private part of the
20975         project tree data.
20976         (Project_Tree_Data): New type for the data of a project tree
20977         (Project_Tree_Ref): New type to designate a project tree
20978         (Initialize, Reset, register-Default_Namng-Scheme): Add a new parameter
20979         for the project tree.
20980
20981         * prj-attr.ads: Add with Table; needed, as package Prj no longer
20982         imports package Table.
20983
20984         * prj-com.adb: Remove empty, no longer needed body
20985
20986         * prj-com.ads: Move most of the content of this package to package Prj.
20987
20988         * prj-dect.ads, prj-dect.adb (Parse): New parameters In_Tree to
20989         designate the project node tree and Packages_To_Check to replace
20990         global variable Current_Packages_To_Check.
20991         Add new parameters In_Tree and Packages_To_Check to local subprograms,
20992         when needed. Adapt to changes in project manager with project node tree
20993         In_Tree.
20994
20995         * prj-env.ads, prj-env.adb: Add new parameter In_Tree to designate the
20996         project tree to most subprograms. Move tables and hash tables to
20997         private part of package Prj.
20998         Adapt to changes in project manager using project tree In_Tree.
20999
21000         * prj-makr.adb (Tree): New constant to designate the project node tree
21001         Adapt to change in project manager using project node tree Tree
21002
21003         * prj-nmsc.ads, prj-nmsc.adb (Check_Stand_Alone_Library): Correctly
21004         display the Library_Src_Dir and the Library_Dir.
21005         Add new parameter In_Tree to designate the project node tree to most
21006         subprograms. Adapt to changes in the project manager, using project tree
21007         In_Tree.
21008         (Check_Naming_Scheme): Do not alter the casing on platforms where
21009         the casing of file names is not significant.
21010         (Check): Add new parameter In_Tree to designate the
21011
21012         * prj-pars.ads, prj-pars.adb (Parse): Add new parameter In_Tree to
21013         designate the project tree.
21014         Declare a project node tree to call Prj.Part.Parse and Prj.Proc.Process
21015
21016         * prj-part.ads, prj-part.adb (Buffer, Buffer_Last): Global variables,
21017         to replace those that were in the private part of package Prj.
21018         Add new parameter In__Tree to designate the project node tree to most
21019         subprograms. Adapt to change in Prj.Tree with project node tree In_Tree.
21020         (Post_Parse_Context_Clause): When specifying the project node of a with
21021         clause, indicate that it is a limited with only if there is "limited"
21022         in the with clause, not necessarily when In_Limited is True.
21023         (Parse): Add new parameter In_Tree to designate the project node tree
21024
21025         * prj-pp.ads, prj-pp.adb (Pretty_Print): Add new parameter In_Tree to
21026         designate the project node tree. Adapt to change in Prj.Tree with
21027         project node tree In_Tree.
21028
21029         * prj-proc.ads, prj-proc.adb (Recursive_Process): Specify the project
21030         tree In_Tree in the call to function Empty_Process to give its initial
21031         value to the project data Processed_Data.
21032         Add new parameters In_Tree to designate the project tree and
21033         From_Project_Node_Tree to designate the project node tree to several
21034         subprograms. Adapt to change in project manager with project tree
21035         In_Tree and project node tree From_Project_Node_Tree.
21036
21037         * prj-strt.ads, prj-strt.adb (Buffer, Buffer_Last): Global variables,
21038         to replace those that were in the private part of package Prj.
21039         Add new parameter In_Tree to designate the project node tree to most
21040         subprograms. Adapt to change in Prj.Tree with project node tree In_Tree.
21041
21042         * prj-tree.ads, prj-tree.adb: Add new parameter of type
21043         Project_Node_Tree_Ref to most subprograms.
21044         Use this new parameter to store project nodes in the designated project
21045         node tree.
21046         (Project_Node_Tree_Ref): New type to designate a project node tree
21047         (Tree_Private_Part): Change table to dynamic table and hash tables to
21048         dynamic hash tables.
21049
21050         * prj-util.ads, prj-util.adb: Add new parameter In_Tree to designate
21051         the project tree to most subprograms. Adapt to changes in project
21052         manager using project tree In_Tree.
21053
21054         * makegpr.adb (Project_Tree): New constant needed to use project
21055         manager.
21056
21057 2005-03-15  Olivier Hainque  <hainque@adacore.com>
21058
21059         * s-intman-posix.adb (Notify_Exception): Adjust signature, as handler
21060         for sigactions with SA_SIGINFO set. Call
21061         __gnat_adjust_context_for_raise before raising, to perform the
21062         potentially required adjustments to the machine context for the GCC
21063         unwinder.
21064
21065         * raise.h (__gnat_adjust_context_for_raise): New prototype.
21066
21067         * init.c (__gnat_adjust_context_for_raise) HPUX: Initial revision.
21068         Adjust PC by one in the provided machine context.
21069         (__gnat_install_handler) HPUX: Set SA_SIGINFO in the sigaction flags,
21070         so that the handler is passed the context structure to adjust prior to
21071         the raise.
21072         (__gnat_error_handler) HPUX: Adjust the signature to match what an
21073         SA_SIGINFO sigaction should look like. Call
21074         __gnat_adjust_context_for_raise before actually raising.
21075         (__gnat_adjust_context_for_raise): Default noop to help PC
21076         adjustments before raise from signal handlers.
21077         (__gnat_error_handler): Indirectly call a predicate function to
21078         determine if a condition should be resignaled or not.
21079         (__gnat_set_resignal_predicate): User interface to modify the predicate.
21080         (__gnat_default_resignal_p): Default GNAT predicate.
21081
21082 2005-03-15  Doug Rupp  <rupp@adacore.com>
21083
21084         * adaint.c: Prefix #include of VMS system header files with vms/
21085         [VMS] (HOST_EXECUTABLE_SUFFIX, HOST_OBJECT_SUFFIX): Define for VMS.
21086         Do not define a dummy function "convert_addresses" under Darwin,
21087         not needed.
21088
21089         * tb-alvms.c, expect.c: Prefix #include of VMS system header files
21090         with vms/
21091
21092 2005-03-15  Nicolas Setton  <setton@adacore.com>
21093
21094         * tracebak.c: Under Darwin, use the same unwinding mechanisms as under
21095         PPC/AIX.
21096
21097 2005-03-15  Robert Dewar  <dewar@adacore.com>
21098
21099         * a-reatim.ads, a-reatim.adb: Add functions Minutes and Seconds for
21100         AI-386.
21101
21102         * a-retide.ads: Minor comment changes
21103
21104 2005-03-15  Robert Dewar  <dewar@adacore.com>
21105
21106         * a-stzunb.adb, a-stzunb.adb a-stzunb.ads, a-stzunb.ads,
21107         a-stwiun.ads, a-stwiun.adb, a-strunb.ads, a-strunb.adb: Move
21108         Realloc_For_Chunk to private part of package.
21109         New subprograms for AI-301
21110
21111         * a-szuzti.adb, a-suteio.adb, a-swuwti.adb: Improve efficiency of
21112         Get_Line procedure.
21113         Avoid unnecessary use of Get/Set_Wide_String
21114
21115 2005-03-15  Robert Dewar  <dewar@adacore.com>
21116
21117         PR ada/13470
21118         * a-stunau.ads, a-stunau.adb:
21119         Change interface to allow efficient (and correct) implementation
21120         The previous changes to allow extra space in unbounded strings had
21121         left this interface a bit broken.
21122
21123         * a-suteio.adb: Avoid unnecessary use of Get/Set_String
21124
21125         * g-spipat.ads, g-spipat.adb: New interface for Get_String
21126         Minor reformatting (function specs)
21127
21128         * g-spitbo.adb: New interface for Get_String
21129
21130         * g-spitbo.ads: Minor reformatting
21131
21132         * a-swunau.ads, a-swunau.adb: New interface for Get_Wide_String
21133
21134         * a-szunau.ads, a-szunau.adb: New interface for Get_Wide_Wide_String
21135
21136 2005-03-15  Javier Miranda  <miranda@adacore.com>
21137             Robert Dewar  <dewar@adacore.com>
21138             Thomas Quinot  <quinot@adacore.com>
21139             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
21140
21141         * atree.ads, atree.adb: Add support for Elist24 field
21142
21143         * atree.h: Fix wrong definition of Field27
21144         Add support for Elist16 field
21145         Add support for Elist24 field
21146
21147         * einfo.ads, einfo.adb (Abstract_Interfaces,
21148         Set_Abstract_Interfaces): New subprograms.
21149         (Abstract_Interface_Alias, Set_Abstract_Interface_Alias): New
21150         subprograms.
21151         (Access_Disp_Table, Set_Access_Disp_Table): Modified to handle a list of
21152         entities rather than a single node.
21153         (Is_Interface, Set_Is_Interface): New subprogram
21154         (First_Tag_Component): New syntesized attribute
21155         (Next_Tag_Component): New synthesized attribute
21156         (Write_Entity_Flags): Upgraded to write Is_Interface
21157         (Write_Field24_Name): Upgraded to write Abstract_Interfaces
21158         (Write_Field25_Name): Upgraded to write Abstract_Interface_Alias
21159         (Task_Body_Procedure): New subprogram to read this attribute.
21160         (Set_Task_Body_Procedure): New subprogram to set this attribute.
21161         (Has_Controlled_Component): Now applies to all entities.
21162         This is only a documentation change, since it always worked to apply
21163         this to other than composite types (yielding false), but now this is
21164         official.
21165         Update documentation on Must_Be_Byte_Aligned for new spec
21166
21167         * tbuild.adb, exp_dist.adb, exp_disp.adb, exp_ch3.ads, exp_ch3.adb,
21168         exp_attr.adb, exp_aggr.adb, exp_ch4.adb, exp_ch5.adb: Upgrade all the
21169         uses of the Access_Disp_Table attribute to reference the first dispatch
21170         table associated with a tagged type. As
21171         part of the implementation of abstract interface types,
21172         Access_Disp_Table has been redefined to contain a list of dispatch
21173         tables (rather than a single dispatch table).
21174         Similarly, upgrade all the references to Tag_Component by the
21175         new attribute First_Tag_Component.
21176         (Find_Inherited_TSS): Moved to exp_tss.
21177         Clean up test in Expand_N_Object_Declaration for cases
21178         where we need to do a separate assignment of the initial value.
21179         (Expand_N_Object_Declaration): If the expression in the
21180         declaration of a tagged type is an aggregate, no need to generate an
21181         additional tag assignment.
21182         (Freeze_Type): Now a function that returns True if the N_Freeze_Entity
21183         is to be deleted.
21184         Bit packed array ops are only called if operands are known to be
21185         aligned.
21186         (Component_Equality): When returning an N_Raise_Program_Error statement,
21187         ensure that its Etype is set to Empty to avoid confusing GIGI (which
21188         expects that only expressions have a bona fide type).
21189         (Make_Tag_Ctrl_Assignment): Use Build_Actual_Subtype to correctly
21190         determine the amount of data to be copied.
21191
21192         * par.adb (P_Interface_Type_Definition): New subprogram that parses the
21193         new syntax rule of Ada 2005 interfaces (for AI-251 and AI-345):
21194             INTERFACE_TYPE_DEFINITION ::=
21195               [limited | task | protected | synchronized] interface
21196                 [AND interface_list]
21197
21198         * par-ch3.adb (P_Type_Declaration): Modified to give support to
21199         interfaces.
21200         (P_Derived_Type_Def_Or_Private_Ext_Decl): Modified to give support to
21201         interfaces.
21202         (P_Interface_Type_Definition): New subprogram that parses the new
21203         syntax rule of Ada 2005 interfaces
21204         (P_Identifier_Declarations): fix two occurrences of 'RENAMES' in error
21205         messages by the correct RENAMES (quotes removed).
21206
21207         * sem_prag.adb: Upgrade all the references to Tag_Component by the new
21208         attribute First_Tag_Component.
21209
21210         * sinfo.ads, sinfo.adb: Remove OK_For_Stream flag, not used, not needed
21211         (Interface_List, Set_Interface_List): New subprograms.
21212         (Interface_Present, Set_Interface_Present): New subprograms.
21213         (Limited_Present, Set_Limited_Present): Available also in derived
21214         type definition nodes.
21215         (Protected_Present, Set_Protected_Present): Available also in
21216         record type definition and
21217         derived type definition nodes.
21218         (Synchronized_Present, Set_Synchronized_Present): New subprograms.
21219         (Task_Present, Set_Task_Present): New subprogram.
21220         (Task_Body_Procedure): Removed.
21221         (Set_Task_Body_Procedure): Removed.
21222         These subprogram have been removed because the attribute
21223         Task_Body_Procedure has been moved to the corresponding task type
21224         or task subtype entity to leave a field free to store the list
21225         of interfaces implemented by a task (for AI-345)
21226         Add Expression field to N_Raise_Statement node for Ada 2005 AI-361
21227         (Null_Exclusion_Present): Change to Flag11, to avoid conflict with
21228         expression flag Do_Range_Check
21229         (Exception_Junk): Change to Flag7 to accomodate above change
21230         (Box_Present, Default_Name, Specification, Set_Box_Present,
21231         Set_Default_Name, Set_Specification): Expand the expression
21232         "X in N_Formal_Subprogram_Declaration" into the corresponding
21233         two comparisons. Required to use the csinfo tool.
21234
21235         * exp_ch11.adb (Expand_N_Raise_Statement): Deal with case where
21236         "with string" given.
21237
21238         * sem_ch11.adb (Analyze_Raise_Statement): Handle case where string
21239         expression given.
21240
21241         * par-ch11.adb (P_Raise_Statement): Recognize with string expression
21242         in 2005 mode
21243
21244         * exp_ch9.adb (Build_Task_Proc_Specification): Modified to use entity
21245         attribute Task_Body_Procedure rather than the old semantic field that
21246         was available in the task_type_declaration node.
21247
21248         * par-ch12.adb (P_Formal_Type_Definition): Modified to handle formal
21249         interface type definitions.
21250         (P_Formal_Derived_Type_Definition): Modified to handle the list of
21251         interfaces.
21252
21253         * par-ch9.adb (P_Task): Modified to handle the list of interfaces in a
21254         task type declaration.
21255         (P_Protected): Modified to handle the list of interfaces in a
21256         protected type declaration.
21257
21258 2005-03-15  Doug Rupp  <rupp@adacore.com>
21259             Vincent Celier  <celier@adacore.com>
21260
21261         * bindgen.adb (Gen_Main_C): Change WBI __posix_exit to decc$posix_exit
21262         (Gen_Output_File_C): Likewise.
21263         (Gen_Main_C): Issue #include <stdlib.h> to avoid warning
21264
21265 2005-03-15  Thomas Quinot  <quinot@adacore.com>
21266
21267         * checks.adb (Get_E_First_Or_Last): When the expression being retrieved
21268         is an N_Raise_Constraint_Error node, create a new copy of it without
21269         going through a call to Duplicate_Subexpr.
21270
21271 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
21272             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
21273             Nicolas Setton  <setton@adacore.com>
21274             Ed Schonberg  <schonberg@adacore.com>
21275
21276         PR ada/19900
21277         PR ada/19408
21278         PR ada/19140
21279         PR ada/20255
21280         * decl.c (gnat_to_gnu_field): Reject aliased components with a
21281         representation clause that prescribes a size not equal to the rounded
21282         size of their types.
21283         (gnat_to_gnu_entity, case E_Component): Always look at
21284         Original_Record_Component if Present and not the entity.
21285         (gnat_to_gnu_entity, case E_Record_Subtype): Rework handling of subtypes
21286         of tagged extension types by not making field for components that are
21287         inside the parent.
21288         (gnat_to_gnu_entity) <E_Record_Type>: Fix typo in the alignment formula
21289         (gnat_to_gnu_entity) <E_Variable>: Do not convert again the
21290         expression to the type of the object when the object is constant.
21291         Reverse defer_debug_incomplete_list before traversing it, so that trees
21292         are processed in the order at which they were added to the list. This
21293         order is important when using the stabs debug format.
21294         If we are deferring the output of debug information, also defer this
21295         output for a function return type.
21296         When adding fields to a record, prevent emitting debug information
21297         for incomplete records, emit the information only when the record is
21298         complete.
21299         (components_to_record): New parameter defer_debug.
21300         (gnat_to_gnu_entity, case E_Array_Subtype): Call copy_alias_set.
21301         (gnat_to_gnu_field_decl): New function.
21302         (substitution_list, annotate_rep): Call it.
21303         (gnat_to_gnu_entity, case E_Record_Subtype): Likewise.
21304         (gnat_to_gnu_entity, case E_Record_Type): Likewise.
21305         No longer update discriminants to not be a COMPONENT_REF.
21306         (copy_alias_set): Strip padding from input type; also handle
21307         unconstrained arrays properly.
21308
21309         * gigi.h (write_record_type_debug_info): New function.
21310         Convert to use ANSI-style prototypes. Remove unused
21311         declarations for emit_stack_check, elab_all_gnat and
21312         set_second_error_entity.
21313         (gnat_to_gnu_field_decl): New decl.
21314
21315         * utils.c (write_record_type_debug_info): New function.
21316         (finish_record_type): Delegate generation of debug information to
21317         write_record_type_debug_info.
21318         (update_pointer_to): Remove unneeded calls to rest_of_decl_compilation.
21319         (update_pointer_to): Fix pasto.
21320         (convert) <UNION_TYPE>: Accept slight type variations when
21321         converting to an unchecked union type.
21322
21323         * exp_ch13.adb (Expand_N_Freeze_Entity): If Freeze_Type returns True,
21324         replace the N_Freeze_Entity with a null statement.
21325
21326         * freeze.adb (Freeze_Expression): If the freeze nodes are generated
21327         within a constrained subcomponent of an enclosing record, place the
21328         freeze nodes in the scope stack entry for the enclosing record.
21329         (Undelay_Type): New Subprogram.
21330         (Set_Small_Size): Pass T, the type to modify; all callers changed.
21331         (Freeze_Entity, Freeze_Record_Type): Change the way we handle types
21332         within records; allow them to have freeze nodes if their base types
21333         aren't frozen yet.
21334
21335         * exp_util.adb (Remove_Side_Effects): Properly test for
21336         Expansion_Delayed and handle case when it's inside an
21337         N_Qualified_Expression.
21338
21339         * sem_ch3.adb (Derived_Type_Declaration): New predicate
21340         Comes_From_Generic, to recognize accurately that the parent type in a
21341         derived type declaration can be traced back to a formal type, because
21342         it is one or is derived from one, or because its completion is derived
21343         from one.
21344         (Constrain_Component_Type): If component comes from source and has no
21345         explicit constraint, no need to constrain in in a subtype of the
21346         enclosing record.
21347         (Constrain_Access, Constrain_Array): Allow itypes to be delayed.
21348         Minor change to propagate Is_Ada_2005 flag
21349
21350         * trans.c (gnat_to_gnu, case N_Aggregate): Verify that
21351         Expansion_Delayed is False.
21352         (assoc_to_constructor): Ignore fields that have a
21353         Corresponding_Discriminant.
21354         (gnat_to_gnu) <N_Return_Statement>: Restructure. If the
21355         function returns "by target", dereference the target pointer using the
21356         type of the actual return value.
21357         <all>: Be prepared for a null gnu_result.
21358         (processed_inline_subprograms): Check flag_really_no_inline
21359         instead of flag_no_inline.
21360         (set_second_error_entity): Remove unused function.
21361         (gnat_to_gnu, case N_Selected_Component): Call
21362         gnat_to_gnu_field_decl.
21363         (assoc_to_constructor): Likewise.
21364
21365 2005-03-15  Robert Dewar  <dewar@adacore.com>
21366             Ed Schonberg  <schonberg@adacore.com>
21367             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
21368
21369         * exp_pakd.adb (Create_Packed_Array_Type): Do not set
21370         Must_Be_Byte_Aligned for cases where we do not need to use a
21371         System.Pack_nn unit.
21372
21373         * exp_ch6.adb (Expand_Call): Call Expand_Actuals for functions as well
21374         as procedures.
21375         Needed now that we do some processing for IN parameters as well. This
21376         may well fix some unrelated errors.
21377         (Expand_Call): Handle case of unaligned objects (in particular those
21378         that come from packed arrays).
21379         (Expand_Inlined_Call): If the subprogram is a renaming as body, and the
21380         renamed entity is an inherited operation, re-expand the call using the
21381         original operation, which is the one to call.
21382         Detect attempt to inline parameterless recursive subprogram.
21383         (Represented_As_Scalar): Fix to work properly with private types
21384         (Is_Possibly_Unaligned_Object): Major rewrite to get a much more
21385         accurate estimate. Yields True in far fewer cases than before,
21386         improving the quality of code that depends on this test.
21387
21388         * exp_util.adb (Kill_Dead_Code): For a package declaration, iterate
21389         over both visible and private declarations to remove them from tree,
21390         and mark subprograms declared in package as eliminated, to prevent
21391         spurious use in subsequent compilation of generic units in the context.
21392
21393         * exp_util.ads: Minor cleanup in variable names
21394
21395         * sem_eval.ads, sem_eval.adb: Minor reformatting
21396         (Compile_Time_Known_Bounds): New function
21397
21398 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
21399
21400         * exp_ch7.adb (Convert_View): Use base types of underlying types when
21401         determining whether an unchecked conversion is needed for the argument
21402         of an initialization call.
21403
21404 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
21405
21406         * exp_intr.adb (Expand_Unc_Conversion): As a target type, use the type
21407         that appears in the instantiation rather than the internal subtype
21408         generated in the wrapper package, to avoid anomalies in gigi when the
21409         target is derived from a private type whose full view is an access type.
21410
21411 2005-03-15  Robert Dewar  <dewar@adacore.com>
21412
21413         * exp_smem.adb, sem_attr.adb: Remove OK_For_Stream flag, not used,
21414         not needed.
21415         Add documentation to replace the use of this flag
21416         Fix kludge for Maximum_Alignment on x86 so that it does not apply to
21417         the x86_64.
21418
21419 2005-03-15  Thomas Quinot  <quinot@adacore.com>
21420
21421         * exp_tss.ads, exp_tss.adb (Find_Inherited_TSS): New subprogram, moved
21422         here from exp_attr so it can be shared between exp_attr and exp_dist.
21423         (TSS_Names): Renamed from OK_TSS_Names. This array contains the list of
21424         all TSS names, not a subset thereof, and the previous name introduced
21425         an unnecessarily confusion that a distinction might exist between
21426         "OK" TSS names and some "not OK" TSS names.
21427
21428 2005-03-15  Doug Rupp  <rupp@adacore.com>
21429
21430         * gnatchop.adb (Locate_Executable): Normalize the possibly VMS style
21431         Command_Name.
21432
21433 2005-03-15  Pascal Obry  <obry@adacore.com>
21434             Eric Botcazou  <ebotcazou@adacore.com>
21435
21436         PR ada/20226
21437         PR ada/20344
21438         * init.c (__gnat_initialize): Do not call __gnat_install_SEH_handler()
21439         when IN_RTS. This is to work around a bootstrap path problem.
21440
21441         * misc.c (gnat_parse_file): Create a SEH (Structured Exception Handler)
21442         table and pass it to __gnat_install_SEH_handler().
21443         (gnat_handle_option): Accept OPT_fRTS_, not OPT_fRTS.
21444
21445         * lang.opt: Fix specification of -fRTS=.
21446
21447 2005-03-15  Doug Rupp  <rupp@adacore.com>
21448             Bernard Banner  <banner@adacore.com>
21449             Vincent Celier  <celier@adacore.com>
21450             Arnaud Charlet  <charlet@adacore.com>
21451
21452         PR ada/6852
21453         This change works fine when gnatlib is built from the gcc directory,
21454         but does not work when using the libada Makefile, since GCC_FOR_TARGET
21455         is not passed to ada/Makefile.in, so more work is needed by a
21456         Makefile/configure expert.
21457
21458         * Makefile.in(gnatlib): Use $(GCC_FOR_TARGET) for compiling library.
21459         set GMEM_LIB on ia64 linux to add optional support for gnatmem.
21460         Setup gnatlink switch -M for x86_64 linux, as it is already setup
21461         for Linux x86.
21462         (gnatlib-shared-default): Use GNATLIBCFLAGS as well.
21463         Run ranlib on libgccprefix.a
21464         Define PREFIX_OBJS for Darwin, to build libgccprefix.
21465         (ADA_INCLUDE_SRCS): Split Ada packages.
21466
21467 2005-03-15  Robert Dewar  <dewar@adacore.com>
21468
21469         * Make-lang.in: Add g-utf_32 unit for gnat and gnatbind
21470
21471         * impunit.adb: Add GNAT.UTF_32
21472
21473         * scng.adb: Use gnat.utf_32 instead of widechar for utf_32 stuff
21474
21475         * widechar.ads, widechar.adb: Remove redundant UTF-32 tables (scng
21476         now uses GNAT.UTF_32).
21477
21478         * g-utf_32.ads, g-utf_32.adb: This is a new unit with full
21479         capabilities for categorizing characters using Unicode categories
21480
21481 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
21482
21483         * sem_ch10.adb (Build_Ancestor_Name): If the ancestor is an
21484         instantiation that has been rewritten as a package body, retrieve spec
21485         to generate proper name for implicit_with_clause.
21486         (Install_Parents): Recognize a parent that is an instantiation but has
21487         been rewritten as a package declaration during analysis.
21488
21489 2005-03-15  Javier Miranda  <miranda@adacore.com>
21490             Ed Schonberg  <schonberg@adacore.com>
21491
21492         * sem_ch12.adb (Instantiate_Object): If the analysis of the actual
21493         parameter reported some error we immediately return. This improves the
21494         behaviour of the frontend in case of errors.
21495         (Install_Parent, Remove_Parent): Introduce new flag
21496         Parent_Unit_Visible, to preserve the proper visibility of the ultimate
21497         ancestor of a generic child unit, when the child is being instantiated.
21498         (Inline_Instance_Body): If we are compiling the private
21499         part or the body of a child unit, restore the proper visibility of the
21500         parents after compiling the instance body.
21501
21502 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
21503             Javier Miranda  <miranda@adacore.com>
21504
21505         PR ada/15608
21506         * sem_util.adb (Get_Task_Body_Procedure): Type may be the completion
21507         of a private type, in which case it is underlying_type that denotes
21508         the proper task. Also modified to use the new entity attribute
21509         that is directly available in the task type and task subtype entities
21510         (Build_Actual_Subtype_Of_Component): Handle properly multidimensional
21511         arrays when other dimensions than the first are constrained by
21512         discriminants of an enclosing record.
21513         (Insert_Explicit_Dereference): If the prefix is an indexed component or
21514         a combination of indexed and selected components, find ultimate entity
21515         and generate the appropriate reference for it, to suppress spurious
21516         warnings.
21517         (Note_Possible_Modification): If an entity name has no entity, return.
21518         (Is_Variable): A function call never denotes a variable.
21519         (Requires_Transient_Scope): For record types, recurse only on
21520         components, not on internal subtypes that may have been generated for
21521         constrained components.
21522
21523 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
21524
21525         * sem_ch4.adb (Analyze_Concatenation): Do not consider operators marked
21526         Eliminated as candidates for resolution. Both efficient, and avoids
21527         anomalies with operators declared in deleted code.
21528         (Process_Implicit_Dereference_Prefix): Use this procedure whenever
21529         expansion is disabled (as when compiling a generic) to prevent spurious
21530         warnings on prefixes of selected components.
21531
21532 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
21533
21534         * sem_ch6.adb (Is_Private_Declaration): Verify that the declaration is
21535         attached to a list before checking whether it appears in the private
21536         declarations of the current package.
21537         (Make_Inequality_Operator): Insert declaration in proper declarative
21538         list rather than just setting the Parent field, so that
21539         Is_Private_Declaration can handle it properly.
21540
21541 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
21542
21543         * sem_ch8.adb (Analyze_Subprogram_Renaming): In a generic, if this is
21544         a renaming a body, check that the renamed subprogram in not intrinsic.
21545         (Find_Direct_Name): If several use_visible entities hide
21546         each other, and the context is a predefined file compiled through
21547         rtsfind, keep only the entity that comes from a predefined file.
21548
21549 2005-03-15  Geert Bosch  <bosch@adacore.com>
21550
21551         * s-fatgen.adb (Valid): Extend special exceptions to account for long
21552         long float padding to also cover AMD64 and IA64.
21553
21554 2005-03-15  Gary Dismukes  <dismukes@adacore.com>
21555
21556         * s-imgwch.adb: Add with and use of Interfaces.
21557         (Img_Wide_Character): Change type of Val to Unsigned_16.
21558         (Img_Wide_Wide_Character): Change type of Val to Unsigned_32.
21559
21560 2005-03-15  Matthew Gingell  <gingell@adacore.com>
21561
21562         * sysdep.c: Implement __gnat_localtime_r as call to localtime_r on AIX.
21563
21564 2005-03-15  Robert Dewar  <dewar@adacore.com>
21565
21566         * usage.adb: Add missing lines for -gnat95 and -gnat05 switches
21567
21568         * sem_ch7.adb: Minor change to propagate Is_Ada_2005 flag
21569
21570         * i-c.adb: Clarify that AI-258 behavior is also intended in Ada 95
21571
21572 2005-03-15  Robert Dewar  <dewar@adacore.com>
21573
21574         * s-bitops.adb, s-bitops.ads,
21575         s-taprop-os2.adb, s-intman-vms.ads, s-intman-vxworks.ads,
21576         s-taprop-vxworks.adb, a-caldel.ads, a-calend.adb, a-tasatt.adb,
21577         tbuild.ads, s-finimp.adb, s-imgwch.adb, s-intman.ads, s-intman.ads,
21578         s-memory.adb, s-soflin.ads, s-taasde.ads, s-taprob.adb, s-taprop.ads,
21579         s-taprop.ads, s-tasini.adb, s-tasini.ads, s-tasini.ads, s-tasini.ads,
21580         s-taskin.ads, s-tasren.adb, s-tassta.adb, s-tassta.ads, s-tassta.ads,
21581         s-tasuti.ads, s-tataat.ads, s-tataat.ads, s-tataat.ads, s-tataat.ads,
21582         s-tpoben.adb, s-tpoben.adb, s-tpobop.ads: Update comments. Minor
21583         reformatting.
21584
21585 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
21586
21587         * utils2.c (build_binary_op): Fix typo.
21588
21589 2005-03-15  Doug Rupp  <rupp@adacore.com>
21590
21591         * s-crtl.ads (popen,pclose): New imports.
21592
21593 2005-03-15  Cyrille Comar  <comar@adacore.com>
21594
21595         * comperr.adb (Compiler_Abort): remove references to obsolete
21596         procedures in the bug boxes for various GNAT builds.
21597
21598 2005-03-15  Vincent Celier  <celier@adacore.com>
21599
21600         * snames.ads, snames.adb: Save as Unix text file, not as DOS text file
21601
21602 2005-03-15  Geert Bosch  <bosch@adacore.com>
21603             Arnaud Charlet  <charlet@adacore.com>
21604             Robert Dewar  <dewar@adacore.com>
21605             Cyrille Comar  <comar@adacore.com>
21606             Sergey Rybin  <rybin@adacore.com>
21607
21608         * gnat_ugn.texi: Remove extended inline assembly example, as it was far
21609         too specific and long-winded to be appropriate for the GNAT User's
21610         Guide.
21611         Warn about use of GCC switches not documented in the GNAT User's Guide,
21612         as these may cause generated code to not conform to Ada semantics.
21613         Remove mention of -gdwarf-2 for sparc64, since this is now the default.
21614         Add documentation for -gnat95 and -gnat05 switches
21615         Remove paragraph documenting obsolete way to refer to third party
21616         libraries.
21617         Add a few references to Ada_05 that were missing.
21618         Update documentation on -gnatZ/-gnatL.
21619         Document limitation when using -m64 under Solaris.
21620         Change the "Name Casing" subsection of the pretty-printer section
21621         according to the changes in the dictionary processing.
21622
21623         * gnat_rm.texi: Document the Ada_05 pragma.
21624         Section on record representation clauses describes the new more
21625         relaxed rules about placement of large packed bit array components.
21626         Add documentation of GNAT.UTF_32
21627
21628 2005-03-12  Daniel Berlin  <dberlin@dberlin.org>
21629
21630         * misc.c (gnat_post_options): Turn off structural
21631         aliasing for now.
21632
21633 2005-03-08  Laurent Guerby  <laurent@guerby.net>
21634
21635         * system-linux-sparc.ads: Fix typo in previous commit.
21636
21637 2005-03-07  James A. Morrison  <phython@gcc.gnu.org>
21638             Laurent Guerby  <laurent@guerby.net>
21639
21640         PR ada/20035
21641         * system-linux-sparc.ads: New.
21642         * Makefile.in: Add sparc linux entry.
21643
21644 2005-02-27  Danny Smith  <dannysmith@users.sourceforge.net>
21645
21646         * seh_init.c (__gnat_SEH_error_handler): Mark third and fourth
21647         parameters as unused.
21648
21649 2005-02-26  Nathanael Nerode  <neroden@gcc.gnu.org>
21650         Partial merge from libada-gnattools-branch:
21651
21652         2004-12-02  Nathanael Nerode  <neroden@gcc.gnu.org>
21653         * Makefile.in: Move gnattools{1,1re,2,3,4} and corresponding flags
21654         into code in gnattools/Makefile.in.  Remove direct dependencies on
21655         stamp-tools by tools clauses.
21656         2004-12-02  Nathanael Nerode  <neroden@gcc.gnu.org>
21657         * config-lang.in: Add gnattools to $lang_dirs.
21658
21659 2005-02-13  Andrew Pinski  <pinskia@physics.uc.edu>
21660
21661         PR ada/19942
21662         * utils.c (gnat_type_for_mode): Return null instead of ICE because
21663         we asked for an unknown mode.
21664
21665 2005-02-12  Richard Henderson  <rth@redhat.com>
21666
21667         * utils.c (gnat_type_for_mode): Return NULL for COMPLEX modes;
21668         validate SCALAR_INT_MODE_P before calling gnat_type_for_size.
21669
21670 2005-02-10  Andreas Jaeger  <aj@suse.de>
21671
21672         * init.c (__gnat_initialize): Mark parameter as unused.
21673
21674 2005-02-09  Doug Rupp  <rupp@adacore.com>
21675
21676         * g-expect-vms.adb (Non_Blocking_Spawn): Separate out.
21677         * g-enblsp-vms-alpha.adb g-enblsp-vms-ia64.adb: New subunits.
21678
21679 2005-02-09  Doug Rupp  <rupp@adacore.com>
21680
21681         * gnatchop.adb (dup, dup2),
21682         g-dirope.adb (closedir, opendir, rmdir): Reference via System.CRTL.
21683
21684         * gnatlbr.adb (mkdir),
21685         mlib-tgt-vms-ia64.adb (popen, plose):  Import with decc$ prefix.
21686
21687         * s-crtl.ads (closdir, dup, dup2, opendir, rmdir): Import.
21688
21689 2005-02-09  Doug Rupp  <rupp@adacore.com>
21690
21691         * s-tpopde-vms.adb: Add pragma Warnings (Off) for Task_Id conversions.
21692
21693 2005-02-09  Robert Dewar  <dewar@adacore.com>
21694             Thomas Quinot  <quinot@adacore.com>
21695             Javier Miranda  <miranda@adacore.com>
21696             Pascal Obry  <obry@adacore.com>
21697             Ed Schonberg  <schonberg@adacore.com>
21698             Doug Rupp  <rupp@adacore.com>
21699             Gary Dismukes  <dismukes@adacore.com>
21700             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
21701
21702         * g-zstspl.ads: New file.
21703
21704         * a-chahan.ads, a-chahan.adb: Add declarations from AI-285
21705
21706         * a-string.ads: Add pragma Ada_05 for wide_wide_space to get warning in
21707         Ada 95 mode
21708         Add definition of Wide_Wide_Space for AI-285
21709
21710         * impunit.ads, impunit.adb, sem_ch10.adb: Complete rewrite and new
21711         interface (to support Ada 95 and Ada 2005 units).
21712         Add Unbounded_IO files
21713         Add entries for Wide_Wide packages for AI-285
21714         Add list of containers packages to Ada 2005 unit list
21715
21716         * a-swuwti.ads, a-swuwti.adb, a-suteio.ads, a-suteio.adb: Updates to
21717         support new Unbounded_IO package cleanly.
21718
21719         * g-utf_32.ads, g-utf_32.adb: New files.
21720
21721         * Makefile.rtl: Add entry for g-utf_32
21722         Add new files for Unbounded_IO
21723         Adjust make file for new AI-285 wide wide packages
21724         Add AI-302 containers to the run time.
21725
21726         * a-stwibo.adb, a-stwibo.ads, a-stwisu.adb, a-stwisu.ads,
21727         a-strbou.ads, a-strbou.adb, a-strsup.ads, a-strsup.adb: New
21728         subprograms for AI-301.
21729
21730         * a-stwiun.adb, a-stwiun.ads: Minor reformatting.
21731
21732         * a-stunau.ads: Minor comment correction
21733
21734         * rtsfind.ads, rtsfind.adb: Add definitions for Wide_Wide attributes
21735         etc.
21736         Also extend Text_IO_Kludge to support Wide_Wide_Text_IO
21737         (Check_RPC): Update to match changes in expanded code.
21738         Clean up unused entity.
21739
21740         * exp_ch3.ads, exp_ch3.adb: Fix various places where Wide_Wide_String
21741         was not taken into account.
21742         This includes proper initialization with Normalize_Scalars.
21743         (Get_Simple_Init_Val): Major rewrite for initialize scalars and
21744         normalize scalars cases (particularly the latter) to do a better job
21745         of finding invalid representations.
21746
21747         * s-scaval.ads, s-scaval.adb: Add values for zero invalid values
21748
21749         * s-strops.ads, s-strops.adb: Remove string normalize routines, never
21750         used
21751
21752         * exp_dist.adb: Add support for wide wide character type
21753         (Expand_Receiving_Stubs_Bodies): For a package declaration that has a
21754         private part, generate stub bodies at the end of the private part,
21755         not the visible part.
21756         (Add_RACW_Primitive_Operations_And_Bodies): Add last missing code for
21757         PolyORB support.
21758         (Add_Obj_RPC_Receiver_Completion): Add PCS-specific subprograms and
21759         generic wrapper to execute final processing after completing the
21760         expansion of the RPC receiver for an RACW.
21761
21762         * snames.h, snames.ads, snames.adb: Add definitions for wide_wide
21763         packages and attributes.
21764         (Preset_Names): Addition of the new reserved words of Ada 2005,
21765         that is interface, overriding and synchronized.
21766         (Get_Pragma_Id): Give support to the use of the new reserved word
21767         "interface" as a pragma name.
21768         (Is_Pragma_Name): Give support to the use of the new reserved word
21769         "interface" as a pragma name.
21770         (Preset_Names): Add stream_size string for the Stream_Size Ada2005
21771         attribute implementation.
21772
21773         * exp_attr.adb (Expand_Attribute_Reference): Do not apply validity
21774         checks to entities that are output parameters of Asm operations.
21775         Handle the Stream_Size attribute.
21776         Add implementation of Wide_Wide_Value, Wide_Wide_Image, Wide_Wide_Width
21777
21778         * exp_imgv.ads, exp_imgv.adb: Add support for wide wide character type
21779
21780         * sem_attr.adb (Eval_Attribute): Raise compile-time constraint error
21781         for second parameter being 0.0.
21782         Add support for wide wide character type.
21783         (Analyze_Attribute, Eval_Attribute): Handle the Stream_Size attribute.
21784
21785         * s-valwch.adb, s-valwch.ads, s-imgwch.ads, s-imgwch.adb,
21786         s-wchstw.ads, s-wchstw.adb, s-wchwts.adb, s-wchwts.ads,
21787         s-widwch.adb, s-widwch.ads, s-wwdcha.adb, s-wwdcha.ads,
21788         s-wwdenu.adb, s-wwdenu.ads, s-wwdwch.adb, s-wwdwch.ads: Add support
21789         for wide wide character cases.
21790
21791         * cstand.adb: Create entities for Wide_Wide_Character and
21792         Wide_Wide_String.
21793
21794         * i-c.ads, i-c.adb: Fix not raising CE for null wide strings in
21795         accordance with AI-258.
21796         Add new declarations for 16/32 bit C character types (Part of AI285)
21797
21798         * einfo.ads, einfo.adb (Is_Obsolescent, Is_Ada_2005): New flag
21799         (Obsolescent_Warning): New field
21800         (Rep_Clause): New local subprogram used to share code. Returns the rep
21801         clause for which the name is given in parameter.
21802         (Has_Stream_Size_Clause): New routine.
21803         (Stream_Size_Clause): Idem. Implementation is based on Rep_Clause.
21804         (Address_Clause): Implementation is now using Rep_Clause.
21805         (Alignment_Clause): Idem.
21806         (Size_Clause): Idem.
21807
21808         * lib-xref.adb (Generate_Reference): Test for reference to Ada 2005
21809         entity in non-Ada 2005 mode and generate warning.
21810
21811         * par-prag.adb: Add handling of one argument form for pragma Ada_05.
21812         (Prag): Code cleanup. Remove old gnat pragma "overriding"
21813
21814         * sem_prag.adb: Add handling of one argument form for pragma Ada_05
21815         (Analyze_Pragma, case Elaborate, Elaborate_All): Do not disable warnings
21816         on the named unit if the pragma is not in the current compilation unit,
21817         so that elaboration calls in the current unit can set up an elaboration
21818         dependency on the named unit, as needed.
21819         (Analyze_Pragma, case Obsolescent): Allow pragma to be used for library
21820         subprogram as well as for subprograms declared within a package.
21821         (Analyze_Pragma, Sig_Flags): Code cleanup. Remove support for the GNAT
21822         pragma overriding.
21823
21824         * krunch.ads, krunch.adb: Add special handling of Wide_Wide (krunched
21825         to z) to avoid some instances of duplication for Wide_Wide packages.
21826
21827         * namet.ads, namet.adb: Implement encoding (WWhhhhhhhh) for wide wide
21828         characters.
21829
21830         * scn.adb: Char_Literal_Value field is now a Uint
21831
21832         * scng.adb: Significant rewrite to handle new Ada 2005 features
21833         allowing wide and wide wide characters in program text, e.g. for
21834         identifiers, as described in AI-285.
21835         (Set_Reserved): New procedure, makes setting up keywords cleaner.
21836         (Initialize_Scanner): Register the new reserved words of Ada 2005.
21837         (Scan): Give support to the new reserved words.
21838
21839         * par-ch2.adb (P_Identifier): Compiling in Ada95 mode, generate a
21840         warning notifying that interface, overriding, and synchronized are
21841         new reserved words.
21842         (P_Pragma): Allow the use of the new reserved word "interface" as
21843         a pragma name.
21844
21845         * gnatls.adb, gnatbind.adb,
21846         ali-util.adb, binde.adb, ali.ads, ali.adb: Code cleanup. Rename
21847         identifiers named "interface" to "SAL_Interface".
21848
21849         * bindgen.adb (Gen_Main_Ada): Add support for the new SEH
21850         (Structured Exception handling).
21851         (Gen_Main_C): Idem.
21852
21853         * bindgen.adb:
21854         (Gen_Main_Ada): Set the default exit code if specified.
21855         (Gen_Main_C): Likewise.
21856         Part of *DC20-006.
21857         (Gen_Output_File_C): Remove redundant output of gnat_exit_status.
21858         Code cleanup. Rename identifiers named "interface" to "SAL_Interface"
21859
21860         * switch-b.adb, bindusg.adb, opt.ads, vms_data.ads: Add handling of
21861         new -Xnnn switch.
21862
21863         * mlib-prj.adb, mlib.adb: Code cleanup. Rename one identifier that
21864         has a collision with the new Ada 2005 "interface" reserved word.
21865
21866         * par-ch3.adb (P_Defining_Identifier): Compiling in Ada95 mode,
21867         generate a warning notifying that interface, overriding, and
21868         synchronized are new reserved words.
21869
21870         * scans.ads (Token_Type): Addition of the tokens corresponding to the
21871         new reserved words of Ada 2005: Tok_Interface, Tok_Overriding
21872         and Tok_Synchronized.
21873
21874         * sem_res.adb (Resolve_Actuals): Change error messages to refer to
21875         "dispatching" rather than "primitive" operations, since dispatching
21876         calls are now allowed to abstract formal subprograms (which are not
21877         primitive).
21878         Char_Literal_Value field is now a Uint
21879         (Resolve_Slice): If the prefix is an access to an unconstrained array,
21880         compute the actual subtype of the designated object to impose the proper
21881         index constraints.
21882         (Resolve_Selected_Component): Do not insert an access check if the
21883         prefix is an access type: such a node is expanded into an explicit
21884         dereference, on which the access check is performed anyway. Removes
21885         expensive duplicate checks.
21886         (Resolve_Call): Use new flag Is_Obsolescent and field
21887         Obsolescent_Warning so that pragma Obsolescent works on library
21888         subprograms.
21889         Add support for wide wide character type
21890         (Resolve_Allocator): Replace the error message on wrong null-exclusion
21891         value by a warning message.
21892         (Resolve_Type_Conversion): If the mixed-mode expression is interpreted
21893         as fixed-point, and one of the operands is non-static and universal, it
21894         can only be an illegal exponentiation operation, in which case there is
21895         no real value to retrieve.
21896
21897         * exp_strm.adb: Add support for wide wide character type
21898         (Build_Elementary_Input_Call): Compute the size of the stream element by
21899         querying the rep chain to find the Stream_Attribute attribute value.
21900         (Build_Elementary_Write_Call): Ditto.
21901
21902         * sem_aggr.adb: Char_Literal_Value field is now a Uint
21903         Add support for wide wide character type
21904         Replace the error messages on wrong null-exclusion value by warnings
21905         as described in Ada 2005.
21906         (Resolve_Extension_Aggregate): Document the fact that the error
21907         message on class-wide expressions in extensions aggregates.
21908
21909         * sem_case.adb: Add support for wide wide character type
21910
21911         * sem_ch13.adb: Add support for wide wide character type
21912         (Analyze_Attribute_Definition_Clause): Handle the Stream_Size attribute.
21913
21914         * sem_ch3.adb: Add support for wide wide character type
21915         (Process_Subtype): If constraint is illegal for the type, set Ekind of
21916         now-useless Itype, to prevent cascaded errors on a compiler built
21917         without -gnatp.
21918
21919         * sem_ch8.adb: Add with and use of Sem_Disp.
21920         (Analyze_Subprogram_Renaming): Replace unclean uses of
21921         Corresponding_Spec with Corresponding_Formal_Spec (and delete setting
21922         of Corresponding_Spec to Empty).
21923         (Attribute_Renaming): Replace use of Corresponding_Spec with
21924         Corresponding_ Formal_Spec and simplify condition.
21925         (Use_One_Package): Check that scope of homonym of identifier is defined,
21926         before checking whether it is a wrapper package.
21927         Add support for wide wide character type
21928
21929         * sem_eval.adb: Add support for wide wide character type.
21930         (Eval_Arithmetic_Op): Check for compile time known signed integer
21931         overflow in the non-static case.
21932         (Subtypes_Statically_Match): A formal scalar type and its base type do
21933         not statically match.
21934
21935         * sem_util.adb (Collect_Primitive_Operations): Minor change of "/=" to
21936         "not in" for test of N_Formal_Subprogram_Declaration (which is now a
21937         subtype).
21938         (Unit_Declaration_Node): Ditto.
21939         (Is_Variable_Prefix):  For the case of an indexed component whose prefix
21940         has a packed array type, the prefix has been rewritten into a type
21941         conversion. Determine variable-ness from the converted expression.
21942         Handle wide wide character cases.
21943
21944         * stand.ads: Add types Wide_Wide_Character and Wide_Wide_String
21945
21946         * stringt.ads, stringt.adb: Handle full UTF-32 range.
21947         Remove ["0A"] from comment, since it can look like a line terminator.
21948         Currently we don't permit this, but this is under discussion by the
21949         ARG, and it is easy enough to use a different example.
21950
21951         * s-wchcon.ads, s-wchcnv.ads, s-wchcnv.adb: Add new subprograms for
21952         handling UTF-32 encoding for wide wide character.
21953         Implement new brackets coding ["hhhhhhhh"]
21954         Add UTF-8 encodings for full UTF-32 range
21955
21956         * ttypes.ads: Add definition of Standard_Wide_Wide_Character_Size
21957
21958         * types.h, types.ads, types.adb: Wide_Wide_Character now has full 31
21959         bit range Add full UTF-32 support.
21960         (RT_Exception_Code): Addition of CE_Null_Not_Allowed; used to
21961         notify that constraint error will be raised at run-time
21962         because a null value is assigned to a null-excluding object.
21963         Remove some obsolete declarations and make Char_Code
21964         unsigned.
21965
21966         * a-except.adb (Rcheck_30): New subprogram. Addition of the message
21967         corresponding to CE_Null_Not_Allowed, and adjust the output of all the
21968         Rcheck subprograms.
21969
21970         * checks.adb (Check_Null_Not_Allowed): Replace the error message on
21971         wrong null-exclusion value by a warning message.
21972         (Enable_Range_Check): Do range check if the prefix is an
21973         explicit dereference whose designated object is an unconstrained array.
21974         Current algorithm for removing duplicate checks is over-eager in this
21975         case.
21976
21977         * sem_ch5.adb (Analyze_Assignment): Replace the error messages on wrong
21978         null-exclusion value by a warning message
21979
21980         * atree.h, atree.ads, atree.adb: Remove Char_Code field support
21981         completely. Add support for Uint2 field
21982
21983         sem_ch2.adb, exp_ch11.adb, exp_dbug.adb,
21984         exp_prag.adb: Char_Literal_Value field is now a Uint.
21985
21986         * exp_util.adb (Insert_Actions): Replace
21987         N_Formal_Subprogram_Declaration by
21988         N_Formal_{Abstract|Concrete}_Subprogram_Declaration.
21989         Char_Literal_Value field is now a Uint.
21990
21991         * sinfo.ads, sinfo.adb (Corresponding_Formal_Spec): New function
21992         defined for subprogram renaming declarations. When set, the field
21993         indicates the defining entity of a corresponding formal subprogram
21994         when the renaming corresponds to a formal subprogram association in an
21995         instantiation.
21996         (Set_Corresponding_Formal_Spec): New procedure to return
21997         Corresponding_Formal_Spec field.
21998         Minor changes of "=" to "in" in tests of N_Formal_Subprogram_Declaration
21999         (which is now a subtype).
22000         Char_Literal_Value field is now a Uint
22001
22002         * exp_disp.ads, exp_disp.adb (Make_DT): Generate code that moves the
22003         pointer to the base of the dispatch table.
22004         Minor changes to comments.
22005         (Controlling_Type): New function for determining the tagged type
22006         associated with a tagged primitive subprogram.
22007         (Expand_Dispatching_Call): Add support for a controlling actual that is
22008         directly a value of type Ada.Tag rather than a tagged object.
22009
22010         * i-cpp.ads, i-cpp.adb, a-tags.ads, a-tags.adb: Update documentation
22011         describing the new layout.
22012         (Dispatch_Table): The expander computes the actual array size, allocates
22013         the Dispatch_Table record accordingly, and generates code that displaces
22014         the base of the record after the Typeinfo_Ptr component. The access to
22015         these components is done by means of local functions.
22016         (Offset_To_Top): New function.
22017         (Typeinfo_Ptr): New function.
22018         (Get_TSD): Modified to access the new position of the TSD.
22019         (Set_TSD): Modified to save the TSD in its new position.
22020
22021         * par-ch12.adb (P_Formal_Subprogram_Declaration): Add parsing for the
22022         case of formal abstract subprograms. Add check and message for -gnat05.
22023         Update comments.
22024
22025         * sem_ch12.adb: Add with and use for Sem_Disp.
22026         (Analyze_Associations): Minor change from "=" to "in" for use of
22027         N_Formal_Subtype_Declaration (which is now a subtype).
22028         (Set_Analyzed_Formal): Minor changes from "=" to "in" for uses of
22029         N_Formal_Subtype_Declaration (which is now a subtype).
22030         (Analyze_Formal_Subprogram): Add handling for
22031         N_Formal_Abstract_Subprogram, marking the formal as abstract and
22032         dispatching, setting the controlling status of the formal parameters
22033         and result, and issuing an error if there is no controlling type for
22034         the formal subprogram.
22035         (Instantiate_Formal_Subprogram): Rather than setting Corresponding_Spec,
22036         which is an unclean use of that field, we set the new field
22037         Corresponding_Formal_Spec to make the formal subprogram available to
22038         processing in Analyze_Subprogram_Declaration.
22039         (Analyze_Formal_{Discrete, Decimal_Fixed_Point, Fixed_Point,
22040         Floating_Point, Modular_Integer, Signed_Integer}_Type: Make formal type
22041         Constrained, so that it is is does not statically match its anonymous
22042         base type.
22043
22044         * sem_ch6.adb (Analyze_Subprogram_Specification): Include test for
22045         abstract formal subprograms in error check for functions returning
22046         abstract types. Set scope of new designator for
22047         a parameterless subprogram, so that it is available when checking the
22048         body for nested subprograms, before full analysis of said body.
22049         (Analyze_Subprogram_Body): Warn on inlining bodies with nested
22050         subprogram only if inner one comes from source.
22051         (Analyze_Function_Call): If the call is given in object notation, the
22052         analysis of the name rewrites the node and analyzes it with the proper
22053         argument list. After analyzing the name, if the call has been rewritten
22054         and the result type is set, no further analysis is needed.
22055         (Analyze_Return_Type): Subsidiary to Process_Formals: analyze subtype
22056         mark in function specification, in a context where the formals are
22057         visible and hide outer homographs.
22058
22059         * sem_disp.adb (Check_Controlling_Type): Relax the check for same scope
22060         as the tagged type for the cases of abstract formal subprograms and
22061         renamings of those.  Clean up spec comments.
22062         (Check_Dispatching_Context): Add error message to indicate "abstract
22063         procedure", covering the case of a call to a formal abstract procedure
22064         that has statically tagged operands.
22065         (Check_Dispatching_Call): Check for the case of an actual given by
22066         a tag-indeterminate function call whose type is an ancestor of the
22067         containing call's associated tagged type. This situation can occur
22068         for inherited primitives with function defaults. In this case we
22069         use the tagged type's tag directly as the controlling argument for
22070         the calls.
22071         (Expand_Call): Name change on call to Expand_Dispatch_Call.
22072
22073         * sprint.adb (Sprint_Node_Actual): Split
22074         N_Formal_Subprogram_Declaration into two alternatives for the new
22075         cases N_Formal_Abstract_Subprogram_Declaration and
22076         N_Formal_Concrete_Subprogram_Declaration.
22077         Char_Literal_Value field is now a Uint.
22078
22079         * trans.c: Get rid of junk Uint2 reference.
22080         Char_Literal_Value field is now a Uint.
22081         (gnat_to_gnu, case N_Aggregate): Check TYPE_UNCHECKED_UNION_P.
22082         (gigi): Correct third arg to gimplify_body.
22083
22084         * ada-tree.h: (TYPE_UNCHECKED_UNION_P): New flag.
22085         (TYPE_LANG_FLAG_0): Check for record or union.
22086
22087         * treepr.adb: Char_Literal_Value field is now a Uint
22088
22089         * uintp.h, uintp.ads, uintp.adb: Add new routines UI_To_CC and
22090         UI_From_CC.
22091
22092         * widechar.ads, widechar.adb (Is_UTF_32_Non_Graphic): New function
22093         Add full UTF-32 support
22094         Char_Code is now 32 bits
22095
22096         * sinput.ads, sinput.adb (Skip_Line_Terminators): Extend to deal with
22097         wide character UTF_32 line terminators.
22098         Initialize Main_Source_File to avoid error when no main
22099         source is loaded.
22100
22101         * errout.adb (Finalize): Do not check Num_SRef_Pragmas
22102         (Main_Source_File) when no main source has been loaded, to avoid
22103         potential crash.
22104
22105 2005-02-09  Robert Dewar  <dewar@adacore.com>
22106
22107         * a-strunb.ads, a-strunb.adb: Add missing pragma Ada_05 statements
22108         Fix name of Set routine
22109
22110         * a-strfix.ads, a-strfix.adb: Add new index functions from AI-301 to
22111         fixed packages.
22112
22113         * a-stwise.ads, a-stwise.adb, a-stwifi.ads, a-stwifi.adb,
22114         a-strsea.ads, a-strsea.adb: Add new index functions from AI-301 to
22115         fixed packages
22116
22117         * a-witeio.ads, a-witeio.adb, a-textio.ads, a-textio.adb: New function
22118         forms of Get_Line subprograms for AI-301.
22119
22120         * a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads,
22121         a-wtedit.adb, a-wtedit.adb, a-wtedit.ads, a-wttest.adb,
22122         a-wttest.ads, a-strmap.ads, a-strmap.adb, a-stwima.adb,
22123         a-stwima.ads: Minor reformatting.
22124
22125 2005-02-09  Doug Rupp  <rupp@adacore.com>
22126             Thomas Quinot  <quinot@adacore.com>
22127
22128         * adaint.c, adaint.h
22129         [VMS] (to_ptr32): New function.
22130         (MAYBE_TO_PTR32): New macro.
22131         (__gnat_portable_spawn,__gnat_portable_no_block_spawn): Adjust argv
22132         for pointer size.
22133         [VMS] (descriptor_s, ile_s): Use __char_ptr32 for adr field.
22134         [VMS] (#define fork()): Remove since unneccessary.
22135         (__gnat_set_close_on_exec): New routine to support
22136         GNAT.OS_Lib.Set_Close_On_Exec.
22137
22138         * g-expect.adb (Set_Up_Communications): Mark the pipe descriptors for
22139         the parent side as close-on-exec so that they are not inherited by the
22140         child.
22141
22142         * g-os_lib.ads, g-os_lib.adb (Set_Close_On_Exec): New subprogram to
22143         set or clear the FD_CLOEXEC flag on a file descriptor.
22144
22145 2005-02-09  Eric Botcazou  <ebotcazou@adacore.com>
22146             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
22147
22148         PR ada/19386
22149         * decl.c:
22150         (gnat_to_gnu_field): Do not necessarily invoke make_packable_type
22151         on the field if Pragma Component_Alignment (Storage_Unit).
22152         (gnat_to_gnu_entity, case object): Do not treat a renaming that has
22153         side-effects as if it were a constant; also make SAVE_EXPR to protect
22154         side-effects.
22155         (gnat_to_gnu_entity, case E_Record_Subtype): If have _Parent, make a
22156         UNION_TYPE.
22157         (make_dummy_type): Set TYPE_UNCHECKED_UNION_P.
22158         (components_to_record): Test it.
22159         Fix improper usage of REFERENCE_CLASS_P.
22160
22161         * utils2.c (build_binary_op, case MODIFY_EXPRP): Treat UNION_TYPE as
22162         RECORD_TYPE.
22163
22164         * utils2.c: Minor reformatting.
22165
22166         * utils.c (convert, case UNION_TYPE): Check TYPE_UNCHECKED_UNION;
22167         handle other cases like RECORD_TYPE.
22168
22169         * utils.c (gnat_pushdecl): Set TREE_NO_WARNING.
22170
22171 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
22172
22173         * exp_aggr.adb (Gen_Assign): If the expression is an aggregate for a
22174         component of an array of arrays in an assignment context, and the
22175         aggregate has component associations that require sliding on
22176         assignment, force reanalysis of the aggregate to generate a temporary
22177         before the assignment.
22178         (Must_Slide): Make global to the package, for use in Gen_Assign.
22179
22180 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
22181
22182         * exp_ch4.adb (Expand_Composite_Equality): If a component is an
22183         unchecked union with no inferable discriminants, return a
22184         Raise_Program_Error node, rather than inserting it at the point the
22185         type is frozen.
22186         (Expand_Record_Equality, Component_Equality): Handle properly the case
22187         where some subcomponent is an unchecked union whose generated equality
22188         code raises program error.
22189
22190 2005-02-09  Doug Rupp  <rupp@adacore.com>
22191
22192         * gnatbl.c: [VMS] (_POSIX_EXIT): Define.
22193         [VMS] (#define exit hack): Remove.
22194
22195 2005-02-09  Pascal Obry  <obry@adacore.com>
22196             Arnaud Charlet  <charlet@adacore.com>
22197
22198         * init.c (__gnat_initialize): Add a new parameter eh which contains the
22199         address of the exception registration. The Win32 version of this
22200         routine calls __gnat_install_SEH_handler() to initialize the SEH
22201         (Structured Exception Handling) handler.
22202         (__gnat_error_handler) [Win32]: Removed. Not needed as we use
22203         SEH (Structured Exception Handling) now.
22204         (__gnat_install_handler) [Win32]: Nothing to do now as we use SEH.
22205         (__gnat_initialize for ppc-vxworks): Adjust comments and the
22206         preprocessor condition protecting the call to the extra eh setup
22207         subprogram, which is only available for the ppc target.
22208         (__gnat_clear_exception_count): replaced reference to
22209         variable taskIdCurrent by call to taskIdSelf(), cleaner.
22210
22211         * seh_init.c: New file.
22212
22213         * Make-lang.in: (GNAT_ADA_OBJS): Add seh_init.o.
22214         (GNATBIND_OBJS): Idem.
22215
22216         * misc.c (gnat_parse_file): Update call to __gnat_initialize. This
22217         routine takes a new parameter (a pointer to the exception registration
22218         for the SEH (Structured Exception Handling) support.
22219
22220         * raise.h: (__gnat_install_SEH_handler): New prototype.
22221         Update copyright notice.
22222
22223         * s-tassta.adb (Task_Wrapper): Declare the exception registration
22224         record and initialize it by calling __gnat_install_SEH_handler.
22225
22226 2005-02-09  Vincent Celier  <celier@adacore.com>
22227
22228         * make.adb (Gnatmake): Do not fail when the main project has no object
22229         directory.
22230
22231 2005-02-09  Doug Rupp  <rupp@adacore.com>
22232
22233         * Makefile.in [VMS] (LN,LN_S): Define as cp -p
22234         Rename s-asthan-vms.adb to s-asthan-vms-alpha.adb.
22235         [VMS]: Add translations for g-enblsp.adb.
22236
22237         * s-asthan-vms.adb: Removed.
22238         * s-asthan-vms-alpha.adb: Added.
22239
22240 2005-02-09  Pascal Obry  <obry@adacore.com>
22241
22242         * Makefile.in (LIBGNAT_SRCS): Add seh_init.c.
22243         (LIBGNAT_OBJS): Add seh_init.o.
22244
22245 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
22246
22247         PR ada/16592
22248         * Makefile.in: Link all gnat tools with -static-libgcc, since
22249         -shared-libgcc is now used by default on some systems (e.g. linux with
22250         recent binutils).
22251         Remove references to Makefile.prolog/generic, no longer used.
22252
22253 2005-02-09  Vincent Celier  <celier@adacore.com>
22254
22255         * prj-makr.adb (Process_Directory): Put file name in canonical case
22256         before matching against the patterns.
22257         If gnatname has been invoked as <prefix>-gnatname
22258         then invoke the compiler as <prefix>-gcc, not just "gcc".
22259
22260 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
22261
22262         * sem_ch4.adb (Analyze_Selected_Component): Create Actual_Subtype even
22263         with expansion disabled. The actual subtype is needed among other
22264         places when the selected component appears in the context of a loop
22265         bound, and denotes a packed array.
22266         (Operator_Check): Always use the first subtype in the
22267         error message, to avoid the appearance of internal base types.
22268         (Transform_Object_Operation): Copy each actual in full
22269         to the parameter associations of the constructed call, rather than
22270         using the shallow copy mechanism of New_Copy_List. This ensures that
22271         the chaining of named associations is done properly.
22272         (Complete_Object_Operation): Rewrite node, rather than
22273         replacing it, so that we can trace back to the original selected
22274         component.
22275
22276         * sem_elab.adb (Set_Elaboration_Constraint): For initialization calls,
22277         and calls that use object notation, if the called function is not
22278         declared  in a withed unit, place the elaboration constraint on the
22279         unit in the context that makes the function accessible.
22280         (Check_Elab_Subtype_Declaration): Check whether a subtype declaration
22281         imposes an elaboration constraint between two packages.
22282
22283 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
22284
22285         * sem_ch7.adb (Uninstall_Declarations): Exchange full and private
22286         views of a private type after handling its private dependents, to
22287         maintain proper stack discipline between entry and exit from the
22288         package.
22289
22290 2005-02-09  Cyrille Comar  <comar@adacore.com>
22291
22292         * s-finimp.adb: (Finalize_List): Optimize in the no-abort case.
22293         Minor reformatting.
22294
22295 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
22296
22297         * s-tporft.adb (Register_Foreign_Thread): Initialize Task_Image[_Len]
22298         fields for foreign threads.
22299
22300 2005-02-09  Doug Rupp  <rupp@adacore.com>
22301
22302         * s-vaflop.adb: Add pragma Warnings (Off) to eliminate infinite
22303         recursion warnings when compiled with -gnatdm.
22304
22305 2005-02-09  Robert Dewar  <dewar@adacore.com>
22306
22307         * usage.adb: Add line for switch -gnat05 (allow Ada 2005 extensions)
22308         Slight fix to documentation of -gnaty with no parameters
22309
22310         * xr_tabls.ads: Add ??? comment for missing overall comment
22311
22312         * xsinfo.adb: Make default file name be sinfo.h, since this is what
22313         we now use by default.
22314
22315         * xsnames.adb: Adjust end of file test to look for five space followed
22316         by '#' instead of six spaces. The format of xsnames.adb was modified
22317         in the last update.
22318
22319         * a-numeri.ads: Add reference to AI-388 for greek letter pi
22320         identifier.
22321
22322         * clean.adb: Minor reformatting.
22323
22324         * gnat1drv.adb, gnatfind.adb, gnatlink.adb, gnatmem.adb,
22325         gnatname.adb: Minor reformatting
22326         Add 2005 to copyright output when utility is run
22327
22328         * csets.adb: Eliminate obsolete comment
22329
22330         * debug.adb, g-socket.ads, i-cobol.adb: Minor reformatting throughout
22331         Update comments.
22332
22333         * sem_eval.ads (Eval_Integer_Literal): Do not inline this, not useful.
22334
22335 2005-02-09  Sergey Rybin  <rybin@adacore.com>
22336
22337         * gnat_ugn.texi: Add to the gnatpp section the paragraph describing
22338         the difference between compact and incompact layout and add the record
22339         representation clause to the example illustrating different layouts.
22340         Add the description of '-A5' gnatpp option ("align 'AT' keywords in
22341         component clauses").
22342
22343 2005-02-09  Florian Villoing  <villoing@adacore.com>
22344
22345         * gnat_ugn.texi: Fix typos.
22346         Use @command to display 'gcc', 'gnatbind', etc. insted of @code or
22347         @file.
22348         Make proper use of @ref, @xref and @pxref to avoid duplication of "see"
22349         in the generated documentation.
22350
22351 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
22352
22353         * gnat_ugn.texi: Remove all mentions of FSU threads, which are no
22354         longer supported.
22355         Update linker wrapper when linking with non GNU C++.
22356
22357 2005-02-09  Pascal Obry  <obry@adacore.com>
22358
22359         * gnat_ugn.texi:
22360         Document the procedure to debug the DllMain routine on Windows.
22361         Add note about -funwind-tables and mixed Ada and C/C++ programming in
22362         ZCX mode.
22363         Document new BIND qualifer /RETURN_CODES=VMS.
22364
22365 2005-02-09  Ben Brosgol  <brosgol@adacore.com>
22366
22367         * gnat_ugn.texi: Wordsmithing of "GNAT and Libraries" chapter
22368         Edited gnatmetric chapter
22369
22370 2005-02-09  Robert Dewar  <dewar@adacore.com>
22371
22372         * gnat_rm.texi:
22373         Changes to document new wide wide character support
22374         For AI-285
22375         Update documentation on Normalize_Scalars and Initialize_Scalars
22376
22377 2005-02-09  Pascal Obry  <obry@adacore.com>
22378
22379         * s-taprop-mingw.adb, s-soflin.ads: Minor reformatting.
22380
22381 2005-02-09  Jose Ruiz  <ruiz@adacore.com>
22382
22383         * s-osinte-vxworks.ads (taskPriorityGet): Add this function (imported
22384         from the VxWorks kernel) that is needed for getting the active
22385         priority of the different tasks.
22386
22387         * s-atacco.ads, s-atacco.adb (Nothing): Remove this dummy procedure.
22388         Use a pragma Elaborate_Body in the spec file instead.
22389         Noticed by code reading.
22390
22391 2005-02-09  Thomas Quinot  <quinot@adacore.com>
22392
22393         * exp_util.ads: Minor correction in comment.
22394
22395 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
22396
22397         * s-taprop.ads (Initialize): Update comments. Remove pragma Inline,
22398         since this procedure is now too complex to be worth inlining.
22399
22400 2005-02-09  Richard Henderson  <rth@redhat.com>
22401
22402         * utils.c (gnat_define_builtin): Remove.
22403         (gnat_install_builtins): Use build_common_builtin_nodes.
22404
22405 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
22406
22407         * a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb, a-crbtgk.ads,
22408         a-crbtgk.adb, a-crbltr.ads, a-coprnu.ads, a-coprnu.adb,
22409         a-coorse.ads, a-coorse.adb, a-convec.ads, a-convec.adb,
22410         a-contai.ads, a-coinve.ads, a-coinve.adb, a-cohata.ads,
22411         a-cohama.ads, a-cohama.adb, a-ciorse.ads, a-ciorse.adb,
22412         a-cihama.ads, a-cihama.adb, a-cidlli.ads, a-cidlli.adb,
22413         a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads, a-cgcaso.adb,
22414         a-cgarso.ads, a-cgarso.adb, a-cdlili.ads, a-cdlili.adb,
22415         a-cgaaso.adb, a-coormu.adb, a-ciormu.adb, a-cihase.adb,
22416         a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads,
22417         a-coorma.ads, a-swunha.ads, a-stunha.ads, a-ciormu.ads,
22418         a-coormu.ads, a-rbtgso.ads, a-swunha.adb, a-stunha.adb,
22419         a-cgaaso.ads, a-ciorma.adb, a-coorma.adb, a-secain.adb,
22420         a-secain.ads, a-slcain.ads, a-slcain.adb, a-shcain.ads,
22421         a-shcain.adb, a-chtgke.ads, a-chtgke.adb, a-stwiha.ads,
22422         a-stwiha.adb, a-strhas.ads, a-strhas.adb, a-chzla1.ads,
22423         a-chzla9.ads, a-lfztio.ads, a-liztio.ads, a-llfzti.ads,
22424         a-llizti.ads, a-sfztio.ads, a-siztio.ads, a-ssizti.ads,
22425         a-stzbou.adb, a-stzbou.ads, a-stzfix.adb, a-stzfix.ads,
22426         a-stzhas.adb, a-stzhas.ads, a-stzmap.adb, a-stzmap.ads,
22427         a-stzsea.adb, a-stzsea.ads, a-stzsup.adb, a-stzsup.ads,
22428         a-stzunb.adb, a-stzunb.ads, a-swunau.adb, a-swunau.ads,
22429         a-szmzco.ads, a-szunau.adb, a-szunau.ads, a-szunha.adb,
22430         a-szunha.ads, a-szuzti.adb, a-szuzti.ads, a-tiunio.ads,
22431         a-wwunio.ads, a-ztcoau.adb, a-ztcoau.ads, a-ztcoio.adb,
22432         a-ztcoio.ads, a-ztcstr.adb, a-ztcstr.ads, a-ztdeau.adb,
22433         a-ztdeau.ads, a-ztdeio.adb, a-ztdeio.ads, a-ztedit.adb,
22434         a-ztedit.ads, a-ztenau.adb, a-ztenau.ads, a-ztenio.adb,
22435         a-ztenio.ads, a-ztexio.adb, a-ztexio.ads, a-ztfiio.adb,
22436         a-ztfiio.ads, a-ztflau.adb, a-ztflau.ads, a-ztflio.adb,
22437         a-ztflio.ads, a-ztgeau.adb, a-ztgeau.ads, a-ztinau.adb,
22438         a-ztinau.ads, a-ztinio.adb, a-ztinio.ads, a-ztmoau.adb,
22439         a-ztmoau.ads, a-ztmoio.adb, a-ztmoio.ads, a-zttest.adb,
22440         a-zttest.ads, a-zzunio.ads: New files. Part of new Ada 2005
22441         library.
22442
22443 2005-01-27  Laurent Guerby  <laurent@guerby.net>
22444
22445         * Makefile.in: Fix a-intnam.ads from previous commit,
22446         add 2005 to copyright.
22447         * a-intman-rtems.ads: Renamed to...
22448         * a-intnam-rtems.ads:
22449
22450 2005-01-27  Laurent Guerby  <laurent@guerby.net>
22451
22452         * Makefile.in: Rename GNAT RTEMS specific files.
22453         * 5rtpopsp.adb, 4rintnam.ads, 5rosinte.adb,
22454         5rosinte.ads, 5rparame.adb: Replaced by files below.
22455         * s-tpopsp-rtems.adb, a-intman-rtems.ads, s-osinte-rtems.adb,
22456         s-osinte-rtems.ads, s-parame-rtems.adb: Replace files above.
22457
22458 2005-01-27  Joel Sherrill  <joel.sherrill@oarcorp.com>
22459             Laurent Guerby  <laurent@guerby.net>
22460
22461         PR ada/19488
22462         * 5rosinte.ads: Add No_Key constant.
22463         * 5rtpopsp.adb: Initialize ATCB_Key with No_Key and fix style.
22464         * gsocket.h: Do not include <sys/socket.h> with RTEMS either.
22465
22466 2005-01-26  Laurent Guerby  <laurent@guerby.net>
22467
22468         PR ada/19414
22469         * i-cobol.adb (Valid_Numeric): Handle zero length case.
22470
22471 2005-01-20  Richard Henderson  <rth@redhat.com>
22472
22473         * Makefile.in (alpha-linux, LIBGNAT_TARGET_PAIRS): Use
22474         a-intnam-linux.ads and system-linux-alpha.ads.
22475         * a-intnam-linux-alpha.ads: Remove file.
22476         * s-osinte-linux-alpha.ads (SIGUNUSED, SIGSTKFLT, SIGLOST): New.
22477         * system-linux-alpha.ads: New file.
22478
22479 2005-01-18  Jakub Jelinek  <jakub@redhat.com>
22480
22481         PR ada/13470
22482         * a-stunau.adb (Get_String): Don't return U.Reference, but Ret that is
22483         set to the new string.
22484
22485 2005-01-18  Toon Moene  <toon@moene.indiv.nluug.nl>
22486
22487         * system-linux-ppc.ads: Set ZCX_By_Default and GCC_ZCX_Support
22488         to True.
22489
22490 2005-01-18  Richard Henderson  <rth@redhat.com>
22491
22492         * Makefile.in (LIBGNAT_TARGET_PAIRS, TOOLS_TARGET_PAIRS, MISCLIB,
22493         THREADSLIB, GNATLIB_SHARED, PREFIX_OBJS, LIBRARY_VERSION): Specialize
22494         for alpha-linux.
22495         * s-osinte-linux-alpha.ads, a-intnam-linux-alpha.ads: New files.
22496
22497 2005-01-14  Andrew Pinski  <pinskia@physics.uc.edu>
22498
22499         * system-darwin-ppc.ads (ZCX_By_Default): Change to True.
22500         (GCC_ZCX_Support): Likewise.
22501
22502 2005-01-11  Bastian Blank  <waldi@debian.org>
22503
22504         * system-linux-s390.ads: Define Preallocated_Stacks.
22505         * system-linux-s390x.ads: Likewise.
22506
22507 2005-01-04  Arnaud Charlet  <charlet@adacore.com>
22508
22509         * gnat_ugn.texi: Fix texi errors with null variables.
22510
22511 2005-01-03  Thomas Quinot  <quinot@adacore.com>
22512
22513         * gen-soccon.c: New utility program to generate g-soccon.ads
22514         automatically.
22515
22516         * socket.c, gsocket.h: Split inclusion of system header files into a
22517         gsocket.h file separated from socket.c, to allow reuse in gen-soccon.c.
22518
22519         * g-soccon.ads, g-soccon-unixware.ads, g-soccon-tru64.ads,
22520         g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
22521         g-soccon-interix.ads, g-soccon-solaris.ads, g-soccon-mingw.ads,
22522         g-soccon-vxworks.ads, g-soccon-freebsd.ads: Note that these files
22523         should not be edited by hand anymore, but should be regenerated using
22524         gen-soccon.
22525
22526 2005-01-03  Robert Dewar  <dewar@adacore.com>
22527             Ed Schonberg  <schonberg@adacore.com>
22528             Vincent Celier  <celier@adacore.com>
22529
22530         * s-atacco.ads, a-direio.adb: Protect use of 'Constrained by warnings
22531         on/off, since this is an obsolescent feature, for which we now generate
22532         a warning.
22533
22534         * sem_attr.adb (Analyze_Attribute, case Constrained): Issue warning if
22535         warning mode is set and obsolescent usage of this attribute occurs.
22536         (Resolve_Access, case 'Access): Note that GNAT uses the context type to
22537         disambiguate overloaded prefixes, in accordance with AI-235. GNAT code
22538         predates, and partly motivates, the adoption of the AI.
22539         Implement new Ada 2005 attribute Mod
22540
22541         * exp_attr.adb (Expand_N_Attribute_Reference): Implement Ada 2005
22542         attribute Mod.
22543
22544         * par-ch4.adb (P_Name): In Ada 2005 mode, recognize new attribute Mod
22545
22546         * snames.h, snames.ads, snames.adb: Add entry for No_Dependence for
22547         pragma restrictions.
22548         New entry for Ada 2005 attribute Mod.
22549
22550         * par-prag.adb:
22551         Add recognition of new pragma Restrictions No_Dependence
22552         Recognize restriction No_Obsolescent_Features at parse time
22553
22554         * bcheck.adb: Add circuitry for checking for consistency of
22555         No_Dependence restrictions.
22556
22557         * lib-writ.ads, lib-writ.adb: Output new R lines for No_Dependence
22558         restrictions.
22559
22560         * restrict.ads, restrict.adb: Add subprograms to deal with
22561         No_Dependence restrictions.
22562
22563         * rtsfind.adb: Check that implicit with's do not violate No_Dependence
22564         restrictions.
22565
22566         * sem_ch3.adb, sem_ch11.adb, sem_ch13.adb, lib-xref.adb,
22567         sem_attr.adb: Add check for new restriction No_Obsolescent_Features
22568
22569         * scn.ads, prj-err.ads, prj-err.adb, ali-util.adb, gprep.adb: Add new
22570         dummy parameter to scng instantiation.
22571         Needed for new restriction No_Obsolescent_Features
22572
22573         * scn.adb: (Obsolescent_Check): New procedure
22574         Needed for new restriction No_Obsolescent_Features
22575
22576         * scng.ads, scng.adb: Always allow wide characters in Ada 2005 mode, as
22577         specified by AI-285, needed for implementation of AI-388 (adding greek
22578         pi to Ada.Numerics).
22579         Add new generic formal to scng, needed for new restriction
22580         No_Obsolescent_Features.
22581
22582         * s-rident.ads: Add new restriction No_Obsolescent_Features.
22583
22584         * ali.ads, ali.adb: Adjustments for reading new No_Dependence
22585         restrictions lines.
22586         (Scan_ALI): When finding an unexpected character on an R line, raise
22587         exception Bad_R_Line, instead of calling Fatal_Error, so that, when
22588         Ignore_Errors is True, default restrictions are set and scanning of the
22589         ALI file continues with the next line. Also, when Bad_R_Line is raised
22590         and Ignore_Errors is True, skip to the end of le line.
22591
22592         * sem_ch10.adb: Check that explicit with's do not violate
22593         No_Dependence restrictions.
22594         (Install_Withed_Unit): Add code to implement AI-377 and diagnose
22595         illegal context clauses containing child units of instance.
22596
22597         * sem_prag.adb: Processing and checking for new No_Dependence
22598         restrictions.
22599         (Analyze_Pragma, case Psect_Object): Call Check_Arg_Is_External_Name to
22600         analyze and check the External argument.
22601
22602         * a-numeri.ads: Add greek letter pi as alternative spelling of Pi
22603
22604 2005-01-03  Robert Dewar  <dewar@adacore.com>
22605
22606         * atree.adb: Add a fifth component to entities
22607         This allows us to add 32 flags and four new fields
22608
22609         * atree.ads: Add a fifth component to entities
22610         This allows us to add 32 flags and four new fields
22611
22612         * einfo.ads, einfo.adb: Document new fields and new flags now available
22613         Add routines for printing new fields
22614
22615         * treepr.adb: Call routines to print out additional fields if present
22616
22617 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
22618
22619         * bld.ads, bld.adb, bld-io.ads, bld-io.adb, gprcmd.adb,
22620         gpr2make.ads, gpr2make.adb: Remove gpr2make, replaced by gprmake.
22621
22622         * Makefile.in: Add support to build shared Ada libraries on solaris x86
22623         Remove gpr2make, replaced by gprmake.
22624         Remove references to gnatmem and libaddr2line.
22625         Add indepsw.adb<indepsw-linux.adb to TOOLS_TARGET_PAIRS for IA64 linux.
22626         (gnatlib-shared-darwin): Add "-fno-common" to GNATLIBCFLAGS.
22627         Add support for specialized version of Ada.Numerics.Aux for Darwin: use
22628         a-numaux-darwin.ads and a-numaux-darwin.adb
22629         Enable mlib-tgt-lynxos.adb on lynxos.
22630
22631         * Make-lang.in: Remove rules for gpr2make.
22632         When generating sdefault.adb, do not call Relocate_Path
22633         on S3 for function Target_Name, as it is not a path.
22634         Remove references to gnatmem and libaddr2line.
22635
22636         * a-numaux-darwin.ads, a-numaux-darwin.adb, g-soccon-darwin.ads: New
22637         files.
22638
22639 2005-01-03  Samuel Tardieu  <tardieu@adacore.com>
22640
22641         * checks.adb (Apply_Alignment_Check): Generate a warning if an object
22642         address is incompatible with its base type alignment constraints when
22643         this can be decided statically.
22644
22645 2005-01-03  Olivier Hainque  <hainque@adacore.com>
22646
22647         * decl.c (compatible_signatures_p): New function. The intended purpose
22648         is to check if two function signatures for a call-site and a callee are
22649         compatible enough for the call to be valid. The underlying purpose is
22650         to check if a call to a mapped builtin is using the right interface.
22651         The current code actually does not check antyhing - this a placeholder
22652         for future refinements.
22653         (gnat_to_gnu_entity) <E_Subprogram_Call>: Add preliminary bits to handle
22654         builtin calls for convention Intrinsic.
22655
22656         * gigi.h (builtin_decl_for): Declare (new function).
22657
22658         * utils.c (gnat_install_builtins): Install the target specific builtins.
22659         (builtin_decl_for): New function, provide a dummy body for now.
22660
22661 2005-01-03  Geert Bosch  <bosch@adacore.com>
22662
22663         * eval_fat.adb: (Eps_Model,Eps_Denorm): Remove, no longer used.
22664         (Succ): Re-implement using Scaling, Exponent and Ceiling attributes.
22665         (Pred): Implement in terms of Succ.
22666
22667         * trans.c (convert_with_check): Reimplement conversion of float to
22668         integer.
22669
22670 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
22671             Vincent Celier  <celier@adacore.com>
22672
22673         * exp_aggr.adb (Packed_Array_Aggregate_Handled): The values of the
22674         bounds can be negative, and must be declared Int, not Nat.
22675
22676         * sem_elim.adb (Line_Num_Match): Correct wrong code when index in an
22677         array is checked after using the index in the array.
22678
22679         * makegpr.adb (Add_Switches): Check if there is a package for the
22680         processor. If there is no package, do not look for switches.
22681
22682 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
22683
22684         * exp_ch3.adb (Stream_Operations_OK): Predicate to determine when the
22685         generation of predefined stream operations (specs and bodies) should
22686         proceed. Under various restrictions these subprograms must not be
22687         generated.
22688
22689 2005-01-03  Thomas Quinot  <quinot@adacore.com>
22690
22691         * exp_dist.adb:
22692         Declare subprogram index in Build_RPC_Receiver_Body, to reduce the
22693         amount of PCS-specific code in RACW stubs generation.
22694         (Copy_Specification): Set Etype on copied formal parameter entities, as
22695         this information is needed for PolyORB stubs generation.
22696         (PolyORB_Support.Build_Subprogram_Receiving_Stubs): Remove unused
22697         variable Dynamic_Async.
22698         (Build_Subprogram_Receiving_Stubs): Make PCS-specific
22699         (Build_RPC_Receiver_Specification): Make generic again, as recent
22700         changes have allowed RPC receivers to have the same profile for both
22701         variants of the PCS.
22702         Reorganise RPC receiver generation to reduce differences between the
22703         structure of GARLIC and PolyORB RPC receivers.
22704         (Add_Receiving_Stubs_To_Declarations): Make this subprogram
22705         PCS-specific.
22706         Simplify elaboration code for RCI packages.
22707
22708         * s-parint.ads, s-parint.adb, rtsfind.ads: Reorganise RPC receiver
22709         generation to reduce differences between the structure of GARLIC and
22710         PolyORB RPC receivers.
22711
22712         * s-stratt.adb: Fix typo in comment.
22713
22714 2005-01-03  Thomas Quinot  <quinot@adacore.com>
22715
22716         * exp_ch7.ads (Make_Final_Call): Rewrite comment (was incorrectly
22717         copied from Make_Init_Call).
22718
22719         * exp_strm.adb (Build_Mutable_Record_Read_Procedure): Do component
22720         reads and assignments on a temporary variable declared with appropriate
22721         discriminants.
22722
22723 2005-01-03  Robert Dewar  <dewar@adacore.com>
22724
22725         * i-c.adb (To_C): Raise CE if string is null and Append_Null
22726
22727 2005-01-03  Robert Dewar  <dewar@adacore.com>
22728
22729         * i-cstrin.adb (Update): Do not append a null in form called with a
22730         String. This avoids unintended behavior.
22731
22732 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
22733
22734         PR ada/17527
22735         * init.c: Fix warnings on Free BSD section.
22736
22737 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
22738
22739         PR ada/16949
22740         * sinfo.ads: Fix obsolete reference to xsinfo.spt (replaced by
22741         xsinfo.adb).
22742
22743 2005-01-03  Vincent Celier  <celier@adacore.com>
22744
22745         * make.adb (Collect_Arguments_And_Compile): Do not attempt to build
22746         libraries when Unique_Compile is True (-u switch).
22747         (Gnatmake): ditto.
22748
22749 2005-01-03  Robert Dewar  <dewar@adacore.com>
22750
22751         * namet.adb (Get_Decoded_Name_With_Brackets): Fix case of not allowing
22752         upper case letter or underscore after W, as allowed by spec.
22753
22754 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
22755
22756         * s-osinte-darwin.ads, s-osinte-darwin.adb: Clean up
22757         darwin port by using proper type definitions from header files.
22758         Use SIGTERM instead of SIGABRT for SIGADAABORT.
22759
22760 2005-01-03  Robert Dewar  <dewar@adacore.com>
22761
22762         * par.adb: Enhance error message handling for configuration file
22763         pragmas.
22764
22765 2005-01-03  Robert Dewar  <dewar@adacore.com>
22766
22767         * s-arit64.adb (Double_Divide): Put back changes that got accidentally
22768         removed during the previous update (test properly for case of dividing
22769         largest negative number by -1, which generates overflow).
22770
22771 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
22772             Sergey Rybin  <rybin@adacore.com>
22773
22774         * sem_ch12.adb (Analyze_Package_Instantiation): Create a separate node
22775         to use as the defining identifier for a formal package.
22776         (Remove_Parent): If the instance takes place within (an instance of)
22777         a sibling, preserve private declarations of common parent.
22778
22779 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
22780
22781         * sem_ch4.adb (Has_Fixed_Op): New predicate in Check_Arithmetic_Pair,
22782         to determine whether one of the operands is a fixed-point type for
22783         which a user-defined multiplication or division operation might be
22784         defined.
22785
22786         * sem_res.adb (Valid_Conversion): The legality rules for conversions
22787         of access types are symmetric in Ada 2005: either designated type can
22788         be unconstrained.
22789
22790 2005-01-03  Vincent Celier  <celier@adacore.com>
22791
22792         * s-fileio.adb (Temp_File_Record): Change length of string component
22793         Name from L_tmpnam + 1 to max_path_len + 1.
22794
22795 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
22796
22797         * s-tasini.ads, s-tasini.adb (Undefer_Abortion): Handle case of
22798         Self_Id.Deferral_Level = 0.
22799         (Do_Pending_Action): Move this function to the spec.
22800
22801         * s-tasren.adb (Selective_Wait [Terminate_Selected]): Call
22802         Do_Pending_Action explicitely when needed, in case we're using
22803         No_Abort restrictions.
22804
22805         * s-tassta.adb (Create_Task): If Abort is not allowed, reset the
22806         deferral level since it will not get changed by the generated code.
22807         Keeping a default value of 1 would prevent some operations (e.g.
22808         select or delay) to proceed successfully.
22809
22810 2005-01-03  Ben Brosgol  <brosgol@adacore.com>
22811             Robert Dewar  <dewar@adacore.com>
22812             Cyrille Comar  <comar@adacore.com>
22813
22814         * ug_words, gnat_ugn.texi: Added alpha-ivms transitioning section to
22815         porting guide chapter (vms version).
22816         Revised doc title (removed "for native platforms") and subtitle.
22817         Add discussion on warning flag for obsolescent features. First we
22818         note that it applies to obsolete GNAT features, which was previously
22819         omitted. Second we contrast the behavior with that of the new
22820         Ada 2005 AI-368 restriction No_Obsolescent_Features.
22821         Preliminary rewriting of GNAT & libraries chapter in order to take
22822         into account default project locations & new project manager
22823         capabilities.
22824
22825 2005-01-03  Robert Dewar  <dewar@adacore.com>
22826
22827         * cstand.adb (Create_Operators): Clean up format and documentation of
22828         unary and binary operator result tables. No change in code, just
22829         reformatting and addition of comments.
22830
22831         * errout.ads, gnatfind.adb, s-maccod.ads, sem.adb,
22832         sem_ch2.adb: Minor reformatting
22833
22834         * atree.ads, elists.ads, lib.ads, namet.ads, nlists.ads, repinfo.ads,
22835         sinput.ads, stringt.ads, uintp.ads, urealp.ads: Minor clarification to
22836         comments for Tree_Read and Tree_Write.
22837
22838 2005-01-03  Pascal Obry  <obry@adacore.com>
22839
22840         * exp_attr.ads: Minor reformatting.
22841
22842 2005-01-03  Romain Berrendonner  <berrendo@adacore.com>
22843
22844         * comperr.adb (Compiler_Abort): Add specialized message for GAP
22845         versions.
22846
22847 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
22848
22849         * exp_pakd.adb (Create_Packed_Array_Type): Add a guard to check
22850         whether the ancestor type is private, as may be the case with nested
22851         instantiations.
22852
22853 2004-12-30  Sohail Somani  <sohail@sohailsomani.com>
22854
22855         PR ada/19128
22856         * trans.c (gnat_to_gnu): Fix typo: Use correct return variable.
22857
22858 2004-12-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
22859
22860         * trans.c (Attribute_to_gnu): Adjust call to get_inner_reference.
22861         * utils2.c (build_unary_op): Likewise.
22862
22863 2004-12-22  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
22864
22865         * trans.c (mark_visited): Set TYPE_SIZES_GIMPLIFIED.
22866
22867 2004-12-19  Richard Henderson  <rth@redhat.com>
22868
22869         * trans.c (gigi): Update gimplify_body call.
22870
22871 2004-12-09  Nathan Sidwell  <nathan@codesourcery.com>
22872
22873         * decl.c (gnat_substitute_in_type): Remove SET_TYPE case.
22874
22875 2004-12-07  Ed Falis  <falis@adacore.com>
22876
22877         * s-intman-vxworks.adb (Notify_Exception): removed useless check for
22878         current task being suspended.
22879
22880         * init.c (__gnat_clear_exception): added to reset VxWorks exception
22881         count.
22882         (__gnat_map_signal): removed test for current task being suspended.
22883
22884 2004-12-07  Gary Dismukes  <dismukes@adacore.com>
22885
22886         * a-exexpr.adb (Others_Value, All_Others_Value): Change initial values
22887         from 16#BEEF# to 16#7FFF# to avoid exceeding Integer'Last on 16-bit
22888         targets (such as AAMP).
22889
22890 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
22891
22892         * atree.adb (Visit_Itype): Create a new name for the generated itype,
22893         because the back-end may otherwise treat it as a redefinition of the
22894         old symbol.
22895
22896 2004-12-07  Eric Botcazou  <ebotcazou@adacore.com>
22897
22898         * back_end.adb (Scan_Back_End_Switches): Accept --param.
22899
22900         * lang-specs.h: Accept --param.
22901
22902 2004-12-07  Vincent Celier  <celier@adacore.com>
22903
22904         * make.adb (Check_Mains, Switches_Of): Adapt to name changes in
22905         package Prj (Current_Spec_Suffix => Ada_Spec_Suffix,
22906         Current_Body_Suffix => Ada_Body_Suffix).
22907         Take into account Externally_Built attribute.
22908
22909         * clean.adb (In_Extension_Chain): Always return False when one of the
22910         parameter is No_Project.
22911         (Clean_Project): Adapt to changes in package Prj (Lang_Ada =>
22912         Ada_Language_Index).
22913         (Gnatclean): Adapt to change in package Prj.Pars (no parameter
22914         Process_Languages for procedure Parse).
22915
22916         * gnatcmd.adb (Carg_Switches): New table.
22917         (GNATCmd): Put all switches following -cargs in the Carg_Switches table.
22918         Adapt to name changes in package Prj (Current_Spec_Suffix =>
22919         Ada_Spec_Suffix, Current_Body_Suffix => Ada_Body_Suffix).
22920
22921         * mlib-prj.adb: Adapt to changes in packages Prj and Prj.Com: type
22922         Header_Num and function Hash are now declared in package Prj,
22923         not Prj.Com.
22924
22925         * prj.adb (Suffix_Of): New function.
22926         (Set (Suffix)): New procedure.
22927         (Hash): One function moved from Prj.Com
22928         (Is_Present, Language_Processing_Data_Of): New functions
22929         (Set): Two new procedures
22930         (Add_Language_Name, Display_Language_Name): New procedures
22931
22932         * prj.ads: (Suffix_Of): New function
22933         (Set (Suffix)): New procedure
22934         Add several types and tables for multi-language support.
22935         (Header_Num): Type moved from Prj.Com
22936         (Hash): Two functions moved from Prj.Com
22937         (Is_Present, Language_Processing_Data_Of): New functions
22938         (Set): Two new procedures
22939         (Add_Language_Name, Display_Language_Name): New procedures
22940         (Naming): Component name changes:
22941         Current_Spec_Suffix => Ada_Spec_Suffix,
22942         Current_Body_Suffix => Ada_Body_Suffix. Add new components:
22943         Impl_Suffixes, Supp_Suffixes.
22944         (Project_Data): New components: Externally_Built, Supp_Languages,
22945         First_Language_Processing, Supp_Language_Processing, Default_Linker,
22946         Default_Linker_Path.
22947
22948         * prj-attr.adb: Add new attributes Ada_Roots and Externally_Built and
22949         new package Language_Processing with its attributes (Compiler_Driver,
22950         Compiler_Kind, Dependency_Option, Compute_Dependency, Include_Option,
22951         Binder_Driver, Default_Linker).
22952
22953         * prj-com.ads, prj-com.adb (Hash): Function moved to package Prj.
22954         (Header_Num): Type moved to package Prj
22955
22956         * prj-env.adb: Adapt to name changes in package Prj
22957         (Current_Spec_Suffix => Ada_Spec_Suffix,
22958         Current_Body_Suffix => Ada_Body_Suffix).
22959
22960         * prj-ext.adb: Add the default project dir (<prefix>/log/gnat) by
22961         default to the project path, except the "-" is one of the directories
22962         in env var ADA_PROJECT_PATH.
22963         (Current_Project_Path): Global variable, replacing Project_Path
22964         that was in the body of Prj.Part.
22965         (Project_Path): New function
22966         (Set_Project_Path): New procedure
22967         Initialize Current_Project_Path during elaboration of the package
22968         Remove dependency on Prj.Com, no longer needed
22969
22970         * prj-ext.ads (Project_Path): New function
22971         (Set_Project_Path): New procedure
22972
22973         * prj-nmsc.adb (Body_Suffix_Of): New function. Returns .<lang> when no
22974         suffix is defined for language <lang>.
22975         (Find_Sources, Record_Other_Sources): Use Body_Suffix_Of, instead of
22976         accessing directly the components of Naming.
22977         (Look_For_Sources): Use Set (Suffix) to set the suffix of a language.
22978         Reorganise of this package.
22979         Break procedure Check in several procedures.
22980
22981         * prj-nmsc.ads: Replace all procedures (Ada_Check,
22982         Other_Languages_Check and Language_Independent_Check) with a single
22983         procedure Check.
22984
22985         * prj-pars.ads, prj-pars.adb (Parse): Remove parameter
22986         Process_Languages, no longer needed.
22987
22988         * prj-part.adb (Project_Path): Move to the body of Prj.Ext as
22989         Current_Project_Path.
22990         Remove elaboration code, moved to the body of Prj.Ext
22991         Use new function Prj.Ext.Project_Path instead of old variable
22992         Project_Path.
22993         (Post_Parse_Context_Clause): Get Resolved_Path as a case-sensitive path.
22994         When comparing with project paths on the stack, first put the resolved
22995         path in canonical case.
22996         (Parse_Single_Project): Set the path name of the project file in the
22997         tree to the normalized path.
22998
22999         * prj-proc.ads, prj-proc.adb (Check, Recursive_Check, Process): Remove
23000         parameter Process_Languages, no longer needed.
23001         (Recursive_Check): Call Prj.Nmsc.Check, instead of Ada_Check and
23002         Other_Languages_Check.
23003
23004         * prj-tree.ads (Project_Name_And_Node): New component Canonical_Path
23005         to store the resolved canonical path of the project file.
23006         Remove dependency to Prj.Com, no longer needed
23007
23008         * prj-util.adb: Adapt to name changes in package Prj
23009         (Current_Spec_Suffix => Ada_Spec_Suffix, Current_Body_Suffix =>
23010         Ada_Body_Suffix).
23011
23012         * snames.ads, snames.adb: New standard names: Ada_Roots, Binder_Driver,
23013         Compiler_Driver, Compiler_Kind, Compute_Dependency, Default_Linker,
23014         Externally_Built, Include_Option, Language_Processing.
23015
23016         * makegpr.adb: Numerous changes due to changes in packages
23017         Prj and Prj.Nmsc.
23018
23019         * gnatls.adb: Add the default project dir (<prefix>/log/gnat) by
23020         default to the project path, except whe "-" is one of the directories
23021         in env var ADA_PROJECT_PATH.
23022         (Gnatls): In verbose mode, add the new section "Project Search Path:"
23023
23024 2004-12-07  Robert Dewar  <dewar@adacore.com>
23025
23026         * debug.adb: Document that -gnatdA automatically sets -gnatR3m
23027
23028         * gnat1drv.adb (Gnat1drv): If debug flag A set, then automatically
23029         set -gnatR3m mode.
23030
23031         * repinfo.adb (List_Rep_Info): Remove special handling of -gnatdA
23032         flag. No longer needed now that we handle this in gnat1drv.adb.
23033
23034         * repinfo.ads: Minor reformatting
23035
23036 2004-12-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
23037             Olivier Hainque  <hainque@adacore.com>
23038             Eric Botcazou  <ebotcazou@adacore.com>
23039
23040         * decl.c (maybe_pad_type): Use TYPE_SIZE_UNIT of the input type for
23041         TYPE_SIZE_UNIT of result type if SIZE is not specified.
23042         (make_aligning_type): Pass -1 as ADDRESSABLE to prevent the creation
23043         of a bitfield, which we know is useless and causes trouble because of
23044         alignment implications.
23045
23046         * utils.c (create_var_decl): Set DECL_COMMON again on targets without
23047         BSS sections.
23048         (process_attributes): Clear DECL_COMMON again when a section attribute
23049         is present.
23050         (finish_record_type): Independently track if RECORD_TYPE has SIZE and/or
23051         SIZE_UNIT already set and use to compute final SIZE and SIZE_UNIT.
23052         (create_field_decl): Special case ADDRESSABLE negative to mean
23053         "no bitfield creation", to be used by make_aligning_type. Don't
23054         restrict bitfield creation to !ADDRESSABLE any more, as some BLKmode
23055         fields claimed addressable still have to be bitfields. Use
23056         value_factor_p instead of a raw binop construction to check for the
23057         position's alignment.
23058
23059 2004-12-07  Geert Bosch  <bosch@adacore.com>
23060
23061         * eval_fat.adb: Revert previous change.
23062
23063 2004-12-07  Thomas Quinot  <quinot@adacore.com>
23064             Ed Schonberg  <schonberg@adacore.com>
23065
23066         * exp_ch4.adb (Expand_N_Indexed_Component): For an indexed component
23067         with an implicit dereference as its prefix, use
23068         Insert_Explicit_Dereference instead of merely rewriting the prefix into
23069         an explicit dereference. This ensures that a reference to the original
23070         prefix is generated, if appropriate.
23071
23072         * sem_util.adb (Insert_Explicit_Dereference): When an implicit
23073         dereference is rewritten to an explicit one, generate a reference to
23074         the entity denoted by its prefix using the original prefix node, so
23075         the dereference can be properly recorded as a read of the denoted
23076         access value, if appropriate.
23077
23078         * sem_warn.adb (Output_Unreferenced_Messages): Do not abstain from
23079         emitting 'assigned but never read' warning on a variable on the basis
23080         that it has an access type.
23081         (Check_References): Emit unreferenced warning when the scope is a
23082         subprogram body.
23083
23084 2004-12-07  Robert Dewar  <dewar@adacore.com>
23085             Ed Schonberg  <schonberg@adacore.com>
23086
23087         * exp_ch6.adb (Expand_Call): Add comment on handling of back end
23088         intrinsic
23089
23090         * exp_intr.adb (Expand_Intrinsic_Call): Ignore unrecognized intrinsic,
23091         leaving call unchanged.
23092         This deals with the case where the pragma Import specified
23093         an external name, to be handled by the back end.
23094
23095         * sem_prag.adb (Process_Import_Or_Interface): Do not check validity of
23096         subprogram which is Imported with convention Intrinsic if an
23097         External_Name argument is specified.
23098         (Process_Import_Or_Interface): Properly diagnose link name argument.
23099         (Inlining_Not_Possible): New name for Cannot_Inline, to avoid confusion
23100         with Sem_Ch6.Cannot_Inline.
23101         (Process_Inline): Provide separate warning for inapplicable inline
23102         pragma.
23103         (Cannot_Inline): Reject subprograms that have an at_end handler, so that
23104         treatment is uniform on different targets.
23105
23106 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
23107
23108         * exp_ch7.adb (Expand_Cleanup_Actions): If statement sequence of
23109         construct is rewritten, preserve end label to permit source navigation.
23110
23111 2004-12-07  Thomas Quinot  <quinot@adacore.com>
23112
23113         * exp_dist.adb (Specific_Build_General_Calling_Stubs,
23114         Specific_Build_Stub_Target): New subprograms.
23115         (Build_Subprogram_Calling_Stubs): Make this procedure independent from
23116         the PCS implementation used, using the above PCS-customized subprograms.
23117         Minor reformatting.
23118         (PolyORB_Support.Helpers): New subunit containing supporting subprograms
23119         for generation of DSA code targeted to the PolyORB PCS.
23120         (Add_Stub_Type): Rewrite to isolate the parts that are specific to one
23121         implementation of the partition communication subsystem in ancillary
23122         subprograms.
23123         (Specific_Build_Stub_Type, GARLIC_Support.Build_Stub_Type,
23124         PolyORB_Support.Build_Stub_Type): New subrograms containing the
23125         PCS-specific part of Add_Stub_Type.
23126         (Insert_Partition_Check): Use runtime library function to perform
23127         E.4(19) check.
23128
23129         * rtsfind.ads: New entity System.PolyORB_Interface.Make_Ref
23130         (RE_Same_Partition): New entity, from s-parint.
23131
23132         * s-parint.ads, s-parint.adb (Same_Partition): New subprogram.
23133
23134 2004-12-07  Gary Dismukes  <dismukes@adacore.com>
23135
23136         * gnatmem.adb, gnatname.adb, gnatsym.adb, gprcmd.adb, vms_conv.adb:
23137         Output the copyright message on a separate line from the version
23138         message.
23139
23140 2004-12-07  Joel Brobecker  <brobecker@adacore.com>
23141
23142         * g-os_lib.adb (Spawn): Explicitly initialize Saved_Error to avoid a
23143         compile-time warning.
23144
23145 2004-12-07  Robert Dewar  <dewar@adacore.com>
23146
23147         * g-regpat.adb: (Match): Change a misuse of or to or else
23148
23149 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
23150
23151         * lib-xref.adb:
23152         (Generate_Reference): Handle properly a reference to an entry formal,
23153          when an accept statement has a pragma Unreferenced for it.
23154
23155         * sem_ch9.adb (Analyze_Accept_Statement): Reset the Is_Referenced flag
23156         and the Has_Pragma_Unreferenced flag for each formal before analyzing
23157         the body, to ensure that warnings are properly emitted for each accept
23158         statement of a given task entry.
23159
23160 2004-12-07  Vasiliy Fofanov  <fofanov@adacore.com>
23161
23162         * Makefile.in: Add support for foreign threads on VMS.
23163
23164 2004-12-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
23165
23166         * misc.c (gnat_types_compatible_p, LANG_HOOKS_TYPES_COMPATIBLE_P):
23167         Remove.
23168         (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): New.
23169
23170         * adaint.h: (__gnat_dup, __gnat_dup2): Add missing decls.
23171
23172         * trans.c (Exception_Handler_to_gnu_sjlj): Also handle renamed
23173         exception.
23174         (call_to_gnu): Convert to actual DECL_ARG_TYPE, not variant of it.
23175
23176 2004-12-07  Robert Dewar  <dewar@adacore.com>
23177
23178         * nlists.adb (Prepend_Debug): Remove parameters and nest within
23179         Prepend.
23180         (Remove_Next_Debug): Same fix
23181
23182         * nlists.ads: Correct bad comments for Prev and Prev_Non_Pragma (we do
23183         maintain back pointers now, though we did not used to, and comments
23184         were out of date).
23185         (Prepend): Remove pragma Inline.
23186         (Remove_Next): Same cleanup
23187
23188 2004-12-07  Thomas Quinot  <quinot@adacore.com>
23189
23190         * sem_ch4.adb (Process_Implicit_Dereference_Prefix): New subprogram
23191         used to record an implicit dereference as a read operation on its
23192         prefix when operating under -gnatc. Necessary to avoid spurious
23193         'variable assigned but never read' warnings in that mode.
23194         (Process_Indexed_Component, Analyze_Selected_Component): When the prefix
23195         is a non-overloaded implicit dereference, call the above subprogram to
23196         ensure proper recording of references.
23197
23198 2004-12-07  Gary Dismukes  <dismukes@adacore.com>
23199
23200         * sem_ch5.adb (One_Bound): Remove call to Resolve, as the bound needs
23201         to be resolved later as part of Analyze_Iteration_Scheme's call to
23202         Make_Index.
23203
23204 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
23205
23206         * sem_ch8.adb (Find_Type): If node is a reference to 'Base and the
23207         prefix is not a scalar type, place error message on prefix, not on
23208         type entity.
23209
23210 2004-12-07  Bernard Banner  <banner@adacore.com>
23211
23212         * vxaddr2line.adb: Add support for x86 vxworks
23213
23214 2004-12-07  Thomas Quinot  <quinot@adacore.com>
23215
23216         * g-socket.ads (Get_Host_By_Address, Get_Host_By_Name): Clarify
23217         documentation of the behaviour of these functions when passed an IP
23218         address that has no record in the system hosts database and no reverse
23219         record in the DNS.
23220
23221         * cstand.adb, a-tags.ads: Fix typos in comment.
23222
23223 2004-12-07  Robert Dewar  <dewar@adacore.com>
23224
23225         * exp_ch2.adb, exp_ch3.adb, exp_ch5.adb, exp_ch8.adb,
23226         exp_ch9.adb, exp_pakd.adb, interfac.ads, sem_ch6.adb,
23227         sem_ch7.adb, sem_ch10.adb, sem_ch13.adb, sem_ch3.adb,
23228         s-poosiz.ads: Minor reformatting
23229
23230         * make.adb: Minor reformatting
23231         Add some ??? comments asking for more comments
23232
23233         * s-poosiz.adb: Minor reformatting
23234         Add comments on alignment requirement
23235
23236         * sinfo.ads: Remove obsolete comment and fix typo.
23237
23238 2004-12-07  Vincent Celier  <celier@adacore.com>
23239             Sergey Rybin  <rybin@adacore.com>
23240
23241         * gnat_ugn.texi: Update the section "The GNAT Driver and Project
23242         Files" with the new tool and package names.
23243         Reformatting to suppress most of the warnings for line too long
23244         Document the new section "Project Search Path:" in the output of
23245         gnatls -v.
23246         Add gnatmetric section
23247
23248 2004-12-07  Vincent Celier  <celier@adacore.com>
23249
23250         * vms_data.ads: Correct GNAT METRIC qualifiers: -I-, -Idir and
23251         -gnatec= are not direct switches of gnatmetric. Changed -eis to -eps
23252         and -eit to -ept. Added qualifier
23253         /ELEMENT_METRICS=CONSTRUCT_NESTING_MAX for new switch -ec.
23254
23255 2004-11-27  Andreas Schwab  <schwab@suse.de>
23256
23257         * Make-lang.in (ada/trans.o): Depend on $(EXPR_H).
23258
23259 2004-11-25  Arnaud Charlet  <charlet@adacore.com>
23260
23261         * g-socthi-mingw.ads, g-socthi-vms.ads: Remove C_Read and C_Write from
23262         internal implementation unit GNAT.Sockets.Thin,
23263         as their usage for sockets is non-portable (using the read and write
23264         functions from the system runtime library is fine on UNIX but won't
23265         work under Windows).
23266
23267         * mingw32.h: Update copyright notice.
23268
23269 2004-11-25  Arnaud Charlet  <charlet@adacore.com>
23270
23271         * ada-tree.h: Minor reformatting of previous change to avoid lines
23272         longer than 79 characters.
23273
23274 2004-11-25  Olivier Hainque  <hainque@adacore.com>
23275
23276         * tb-gcc.c: GCC infrastructure based implementation of
23277         __gnat_backtrace.
23278
23279 2004-11-24  Steven Bosscher  <stevenb@suse.de>
23280
23281         * misc.c (gnat_post_options): Don't clear
23282         flag_inline_functions.
23283
23284 2004-11-22  Andrew Pinski  <pinskia@physics.uc.edu>
23285
23286         PR ada/17986
23287         * ada-tree.h (lang_tree_node): Set chain_next to be the chain of the
23288         tree.
23289
23290 2004-11-21  Andreas Jaeger  <aj@suse.de>
23291
23292         * stylesw.adb: Change Style_Check_Subprogram_Order to
23293         Style_Check_Order_Subprograms.
23294
23295 2004-11-18  Arnaud Charlet  <charlet@adacore.com>
23296
23297         * adaint.h, adaint.c
23298         (__gnat_portable_spawn): Fix cast of spawnvp third parameter
23299         to avoid warnings.
23300         Add also a cast to kill another warning.
23301         (win32_no_block_spawn): Initialize CreateProcess's dwCreationFlags
23302         parameter with the priority class of the parent process instead of
23303         always using the NORMAL_PRIORITY_CLASS.
23304         (__gnat_dup): New function.
23305         (__gnat_dup2): New function.
23306         (__gnat_is_symbolic_link): Enable the effective body of this
23307         function when __APPLE__ is defined.
23308
23309         * g-os_lib.ads, g-os_lib.adb (Spawn): Two new procedures.
23310         Update comments.
23311
23312 2004-11-18  Olivier Hainque  <hainque@adacore.com>
23313
23314         * a-exexpr.adb (Others_Value, All_Others_Value): New variables, the
23315         address of which may be used to represent "others" and "all others"
23316         choices in exception tables, instead of the current harcoded
23317         (void *)0 and (void *)1.
23318         (Setup_Exception): Do nothing in the GNAT SJLJ case.
23319
23320         * gigi.h (others_decl, all_others_decl): New decls representing the
23321         new Others_Value and All_Others_Value objects.
23322         (struct attrib): Rename "arg" component as "args", since GCC expects a
23323         list of arguments in there.
23324
23325         * raise.c (GNAT_OTHERS, GNAT_ALL_OTHERS): Are now the address of the
23326         corresponding objects exported by a-exexpr, instead of hardcoded dummy
23327         addresses.
23328
23329         * trans.c (Exception_Handler_to_gnu_zcx): Use the address of
23330         others_decl and all_others_decl instead of hardcoded dummy addresses
23331         to represent "others" and "all others" choices, which is cleaner and
23332         more flexible with respect to the possible eh pointer encoding policies.
23333
23334         * utils.c (init_gigi_decls): Initialize others_decl and all_others_decl.
23335         (process_attributes): Account for the naming change of the "args"
23336         attribute list entry component.
23337
23338         * decl.c (build_attr_list): Rename into prepend_attributes to allow
23339         cumulating attributes for different entities into a single list.
23340         (gnat_to_gnu_entity): Use prepend_attributes to build the list of
23341         attributes for the current entity and propagate first subtype
23342         attributes to other subtypes.
23343         <E_Procedure>: Attribute arguments are attr->args and not
23344         attr->arg any more.
23345         (build_attr_list): Ditto. Make attr->args a TREE_LIST when there is an
23346         argument provided, as this is what GCC expects. Use NULL_TREE instead
23347         of 0 for trees.
23348
23349 2004-11-18  Robert Dewar  <dewar@adacore.com>
23350
23351         * a-stmaco.ads, exp_util.ads, exp_util.adb, i-cpp.ads, i-cpp.adb:
23352         Minor reformatting througout (including new function specs)
23353         Add ??? comments asking for clarification.
23354
23355 2004-11-18  Thomas Quinot  <quinot@adacore.com>
23356
23357         * butil.ads, butil.adb, bindgen.adb (Get_Unit_Name_String): Remove
23358         incomplete duplicate implementation of this subprogram from butil.
23359
23360 2004-11-18  Thomas Quinot  <quinot@adacore.com>
23361
23362         * exp_dist.adb (Build_RPC_Receiver_Body): New subprogram. This
23363         procedures factors the common processing for building an RPC receiver
23364         for an RCI package or an RACW type.
23365         Stylistic cleanup: change '/= Empty' to 'Present ()'; move body of
23366         Build_Remote_Subprogram_Proxy_Type into proper alphabetical order.
23367         (Get_PCS_Name): New subprogram. Returns the name of the PCS currently
23368         in use.
23369         (Specific_Add_RACW_Features): New subprogram. PCS-specific part of
23370         Add_RACW_Features.
23371         (Specific_Add_RAST_Features): New subprogram. PCS-specific part of
23372         Add_RAST_Features.
23373         (Assign_Subprogram_Identifier): New subprogram. Provision for assigning
23374         distribution subprogram identifiers that are either subprogram numbers
23375         or strings.
23376         (Get_Subprogram_Ids): New subprogram. Retrieve both the numeric and
23377         string distribution identifiers assigned to a given subprogram.
23378         (Get_Subprogram_Id): Reimplement in terms of Get_Subprogram_Ids.
23379         (Add_RAS_Dereference_TSS): Add comments.
23380         (Build_General_Calling_Stubs): Note that the RACW_Type formal parameter
23381         is not referenced yet because it will be used by the PolyORB DSA
23382         implementation.
23383         (Insert_Partition_Check): Remove fossile code.
23384         (First_RCI_Subprogram_Id): Document this constant.
23385         (Add_RAS_Access_TSS): Correct the setting of the Etype of the
23386         RAS_Access TSS.
23387         (Get_Pkg_Name_String): Remove subprogram. Usage occurrences are
23388         replaced with calls to Get_Library_Unit_Name_String. Previously there
23389         were several instances of the same code in different locations in the
23390         compiler; this checkin completes the replacement of all of these
23391         instances with calls to a common subprogram.
23392         Minor reformatting.
23393
23394         * sem_dist.adb: Remove comment noting that RPC receiver generation
23395         should be disabled for RACWs that implement RASs.
23396         (Process_Partition_Id): Use new subprogram Get_Library_Unit_Name_String.
23397
23398         * sem_util.ads, sem_util.adb (Has_Stream): New function
23399         (Get_Library_Unit_Name_String): New subprogram to retrieve the fully
23400         qualified name of a library unit into the name buffer.
23401         (Note_Possible_Modification): Generate a reference only
23402         if the context comes from source.
23403
23404         * snames.ads (PCS_Names): New subtype corresponding to names of
23405         supported implementations of the Partition Communication Subsystem
23406         (PCS) (i.e. the runtime library support modules for the distributed
23407         systems annex).
23408
23409 2004-11-18  Robert Dewar  <dewar@adacore.com>
23410             Ed Schonberg  <schonberg@adacore.com>
23411
23412         * einfo.ads, einfo.adb: Remove Is_Psected flag, no longer used
23413         (Has_Rep_Pragma): New function
23414         (Has_Attribute_Definition_Clause): New function
23415         (Record_Rep_Pragma): Moved here from sem_ch13.adb
23416         (Get_Rep_Pragma): Remove junk kludge for Stream_Convert pragma
23417
23418         * sem_ch13.ads, sem_ch13.adb (Record_Rep_Pragma): Moved to einfo.adb
23419
23420         * exp_prag.adb: (Expand_Pragma_Common_Object): New procedure
23421         (Expand_Pragma_Psect_Object): New procedure
23422         These procedures contain the revised and cleaned up processing for
23423         these two pragmas. This processing was formerly in Sem_Prag, but
23424         is more appropriately moved here. The cleanup involves making sure
23425         that the pragmas are properly attached to the tree, and that no
23426         nodes are improperly shared.
23427
23428         * sem_prag.adb: Move expansion of Common_Object and Psect_Object
23429         pragmas to Exp_Prag, which is more appropriate.
23430         Attach these two pragmas to the Rep_Item chain Use Rep_Item chain to
23431         check for duplicates Remove use of Is_Psected flag, no longer needed.
23432         Use new Make_String_Literal function with string.
23433
23434         * exp_attr.adb (Expand_Fpt_Attribute): The floating-point attributes
23435         that are functions return universal values, that have to be converted
23436         to the context type.
23437         Use new Make_String_Literal function with string.
23438         (Get_Stream_Convert_Pragma): New function, replaces the use of
23439         Get_Rep_Pragma, which had to be kludged to work in this case.
23440
23441         * freeze.adb: Use new Has_Rep_Pragma function
23442
23443         * exp_intr.adb, exp_ch3.adb, sem_attr.adb: Use new Make_String_Literal
23444         function with string.
23445         Use new Has_Rep_Pragma function.
23446
23447         * tbuild.ads, tbuild.adb (Make_String_Literal): New function, takes
23448         string argument.
23449
23450 2004-11-18  Robert Dewar  <dewar@adacore.com>
23451
23452         * errout.ads, errout.adb: (First_Sloc): New function
23453
23454         * par-ch5.adb (P_Condition): Check for redundant parens is now a style
23455         check (-gnatyx) instead of being included as a redundant construct
23456         warning.
23457
23458         * sem_ch6.adb: Change name Style_Check_Subprogram_Order to
23459         Style_Check_Order_Subprograms.
23460
23461         * style.ads, styleg.ads, styleg.adb, styleg-c.adb, stylesw.ads,
23462         stylesw.adb: Add Style_Check_Xtra_Parens
23463
23464         * usage.adb: Add line for -gnatyx (check extra parens)
23465
23466         * vms_data.ads: Add entry for STYLE_CHECKS=XTRA_PARENS => -gnatyx
23467
23468 2004-11-18  Ed Schonberg  <schonberg@adacore.com>
23469             Robert Dewar  <dewar@adacore.com>
23470
23471         * exp_ch4.adb (Expand_N_Selected_Component): If the component is the
23472         discriminant of a constrained subtype, analyze the copy of the
23473         corresponding constraint, because in some cases it may be only
23474         partially analyzed.
23475         Removes long-lived ??? comments.
23476
23477         * exp_ch7.adb (Establish_Transient_Scope): Remove complex code that
23478         handled controlled or secondary-stack expressions within the
23479         iteration_scheme of a loop.
23480
23481         * sem_ch5.adb (Analyze_Iteration_Scheme): Build a block to evaluate
23482         bounds that may contain functions calls, to prevent memory leaks when
23483         the bound contains a call to a function that uses the secondary stack.
23484         (Check_Complex_Bounds): Subsidiary of Analyze_Iteration_Scheme, to
23485         generate temporaries for loop bounds that might contain function calls
23486         that require secondary stack and/or finalization actions.
23487
23488         * sem_ch4.adb (Analyze_Indexed_Component_Form): If the prefix is a
23489         selected component and the selector is overloadable (not just a
23490         function) treat as function call, Analyze_Call will disambiguate if
23491         necessary.
23492         (Analyze_Selected_Component): Do not generate an actual subtype for the
23493         selected component if expansion is disabled. The actual subtype is only
23494         needed for constraint checks.
23495         (Analyze_Allocator): If restriction No_Streams is set, then do
23496         not permit objects to be declared of a stream type, or of a
23497         composite type containing a stream.
23498
23499         * restrict.ads: Remove the a-stream entry from Unit_Array, since
23500         No_Streams no longer prohibits with'ing this package.
23501
23502         * sem_ch3.adb (Build_Derived_Record_Type): If the parent type has
23503         discriminants, but the parent base has unknown discriminants, there is
23504         no discriminant constraint to inherit. Such a discrepancy can arise
23505         when the actual for a formal type with unknown discriminants is a
23506         similar private type whose full view has discriminants.
23507         (Analyze_Object_Declaration): If restriction No_Streams is set, then
23508         do not permit objects to be declared of a stream type, or of a
23509         composite type containing a stream.
23510
23511 2004-11-18  Ed Schonberg  <schonberg@adacore.com>
23512
23513         * exp_dbug.ads: Update documentation to reflect simpler encoding for
23514         protected operations.
23515
23516         * exp_ch9.adb (Build_Selected_Name): Do not include "PT" suffix in
23517         generated name, it complicates decoding in gdb and hinders debugging
23518         of protected operations.
23519         (Build_Barrier_Function_Specification): Set the Needs_Debug_Info
23520         flag for the protected entry barrier function.
23521         (Build_Protected_Entry_Specification): Set the Needs_Debug_Info
23522         flag for the protected entry function.
23523
23524 2004-11-18  Nicolas Setton  <setton@adacore.com>
23525
23526         * expect.c: Define __unix__ when __APPLE__ is defined.
23527
23528         * Makefile.in: Inform the value of the variable GMEM_LIB in the
23529         Darwin-specific section.
23530
23531         * lang-specs.h: Change the placement of the %1 marker.
23532         Works around the fact that gcc adds -fPIC by default under Darwin.
23533
23534 2004-11-18  Ed Schonberg  <schonberg@adacore.com>
23535
23536         * exp_pakd.adb (Convert_To_PAT_Type): After replacing the original
23537         type of the object with the packed array type, set the Analyzed flag
23538         on the object if it is an entity or simple indexed component, to avoid
23539         spurious type errors.
23540
23541 2004-11-18  Gary Dismukes  <dismukes@adacore.com>
23542
23543         * gnat1drv.adb, gnatbind.adb, gnatchop.adb, gnatfind.adb, gnatlink.adb,
23544         gnatls.adb, gnatxref.adb, gprep.adb: Output the copyright message on a
23545         separate line from the version message.
23546
23547 2004-11-18  Ed Falis  <falis@adacore.com>
23548
23549         * init.c (__gnat_map_signal): map SIGSEGV to Storage_Error for AE653
23550         vthreads.
23551         (init_float): Eliminate initialization of floating point status for
23552         AE653. The instructions have no effect for vThreads.
23553
23554 2004-11-18  Vincent Celier  <celier@adacore.com>
23555
23556         * make.adb (Gnatmake): Invoke gnatlink with -shared-libgcc when
23557         gnatbind is invoked with -shared.
23558
23559 2004-11-18  Jose Ruiz  <ruiz@adacore.com>
23560
23561         * s-tposen.adb (Lock_Entry): Remove the code for raising Program_Error
23562         for Detect_Blocking which is redundant with the check done within the
23563         procedure Protected_Single_Entry_Call.
23564         (Lock_Read_Only_Entry): Remove the code for raising Program_Error for
23565         Detect_Blocking which is redundant with the check done within the
23566         procedure Protected_Single_Entry_Call.
23567
23568 2004-11-18  Vincent Celier  <celier@adacore.com>
23569
23570         * makegpr.adb (Compile): Put the compiling switches (in package
23571         Compiler and on the command line) immediately after "-c", instead of
23572         at the end of the command line invocation of the compiler, when
23573         compiling a non-Ada file.
23574         (Build_Global_Archive): When there is no need to rebuild the archive,
23575         set Global_Archive_Exists, so that the archive is passed to the linker
23576         if one is needed.
23577
23578 2004-11-18  Robert Dewar  <dewar@adacore.com>
23579             Sergey Rybin  <rybin@adacore.com>
23580
23581         * gnat_ugn.texi:
23582         Remove extra paren check from list of checks for redundant constructs
23583         Add documentation of new -gnatyx style check (check extra parens)
23584         Remove paragraph about gnatelim debug options.
23585
23586         * gnat_rm.texi: Document that Ada.Streams now forbids creating stream
23587         objects rather than forbidding dependencies on the package Ada.Streams.
23588
23589         * sinfo.ads: Add ??? note that we should document pragmas passed to
23590         back end.
23591
23592         * g-expect.ads: Fix a few typos in the comments.
23593
23594 2004-11-09  Joseph S. Myers  <joseph@codesourcery.com>
23595
23596         * misc.c (gnat_handle_option): Use %< and %> for quoting in
23597         warning message.
23598
23599 2004-11-08  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
23600
23601         * a-numaux-x86.adb (Tan): Fix fdivp syntax.
23602
23603 2004-11-07  Andreas Schwab  <schwab@suse.de>
23604
23605         * Makefile.in (install-gnatlib): Remove spurious hyphen.
23606
23607 2004-11-02  Andrew Pinski  <pinskia@physics.uc.edu>
23608
23609         PR ada/18228
23610         * Makefile.in (darwin): Set soext to .dylib.
23611
23612 2004-10-26  Vincent Celier  <celier@gnat.com>
23613             Thomas Quinot   <quinot@act-europe.fr>
23614
23615         * g-socthi-vms.adb, g-socthi-mingw.adb, g-socthi-vxworks.ads:
23616         (C_Writev): Change MSG_Forced_Flags to Constants.MSG_Forced_Flags as
23617         there is no use of GNAT.Sockets.Constants.
23618         Remove remaining pragma Import for C_Write
23619         Remove C_Read and C_Write from internal implementation unit
23620         GNAT.Sockets.Thin, as their usage for sockets is non-portable (using
23621         the read and write functions from the system runtime library is fine
23622         on UNIX but won't work under Windows).
23623
23624         * g-socket.adb: (Abort_Selector): Use C_Send instead of C_Write.
23625         (Check_Selector): Use C_Recv instead of C_Read.
23626         Selectors are the GNAT.Sockets abstraction to perform a select()
23627         call on a set of descriptors. To allow abortion of an ongoing
23628         select operation, some data is written to a dedicated socket that
23629         is always monitored.
23630         Under Windows, the write and read library functions cannot operate
23631         on sockets, so we need to use send and recv instead, which is portable
23632         across all supported platforms.
23633
23634         * g-socthi.ads: Remove C_Read and C_Write from internal implementation
23635         unit GNAT.Sockets.Thin, as their usage for sockets is non-portable
23636         (using the read and write functions from the system runtime library is
23637         fine on UNIX but won't work under Windows).
23638
23639 2004-10-26  Nicolas Setton  <setton@act-europe.fr>
23640
23641         * mlib-tgt-darwin.adb: New file.
23642
23643         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
23644         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
23645         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
23646         mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb (Archive_Indexer_Options): New
23647         subprogram body.
23648
23649         * Makefile.in: Add support for building shared libraries under Darwin.
23650         (EXTRA_GNATRTL_NONTASKING_OBJS, ppc-vxworks): Add s-vxwexc.o, containing
23651         the low level EH init subprogram to be called from __gnat_initialize.
23652
23653         * mlib-tgt.ads, mlib-tgt.adb (Archive_Indexer_Options): New subprogram,
23654         indicates which options to pass to the archive indexer.
23655
23656         * mlib-utl.adb: Add support for calling ranlib with additional
23657         options. This is needed for instance under Mac OS X.
23658         (Ranlib_Options): New global variable, used to store the potential
23659         options to pass to ranlib.
23660         (Ar): Use Ranlib_Options when spawning ranlib.
23661         (Initialize): Set the value of ranlib option.
23662
23663 2004-10-26  Olivier Hainque  <hainque@act-europe.fr>
23664
23665         * s-parame-linux.adb (Minimum_Stack_Size): Adjust to return 12K
23666         instead of 8K, to reflect the real potential needs for stack-checking
23667         in the ZCX case.
23668
23669 2004-10-26  Pascal Obry  <obry@gnat.com>
23670
23671         * s-parame-mingw.adb (Default_Stack_Size): Add some comments.
23672
23673         * s-taprop-mingw.adb (Create_Task): Set initial stack size to 1024. On
23674         Windows only the initial thread stack size can be set so it is good to
23675         start we a low stack size.
23676         The OS will adjust the size as needed.
23677
23678 2004-10-26  Olivier Hainque  <hainque@act-europe.fr>
23679             Nicolas Setton  <setton@act-europe.fr>
23680
23681         * expect.c, adaint.c, link.c, sysdep.c (unix sections): Guard with
23682         "__unix__" instead of "unix".
23683         The latter is implicitly defined by gcc3.2 but not by gcc >= 3.4, so the
23684         sections were just mistakenly ignored. The former is
23685         implicitely defined by gcc2.8, gcc3.2 and gcc3.4.
23686         Update #ifdef preprocessor macro to detect the symbol __hpux__ instead
23687         of hpux. This prevents an unwanted definition of the symbol
23688         convert_addresses in adaint.o.
23689
23690 2004-10-26  Gary Dismukes  <dismukes@gnat.com>
23691
23692         * a-exexpr.adb (Setup_Key): Change initial value to 16#DEAD#, for
23693         compatibility with type Unwind_Word on 16-bit targets such as AAMP.
23694
23695 2004-10-26  Cyrille Comar  <comar@act-europe.fr>
23696
23697         * a-filico.ads, a-filico.adb: fix incorrect header.
23698
23699 2004-10-26  Javier Miranda  <miranda@gnat.com>
23700
23701         * a-ststio.ads: Fix typo in identifier
23702
23703 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
23704
23705         * sem_ch4.adb: Minor reformatting.
23706
23707 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
23708
23709         * checks.adb (Expr_Known_Valid): If floating-point validity checks are
23710         enabled, check the result of unary and binary operations when the
23711         expression is the right-hand side of an assignment.
23712
23713 2004-10-26  Vincent Celier  <celier@gnat.com>
23714
23715         * clean.adb (Delete): Do not output warnings when in quiet output and
23716         not in verbose mode.
23717         (Force_Deletions): New Boolean flag, defaulted to False
23718         (Delete): Only delete a file if it is writable, and when
23719         Force_Deletions is True.
23720         (Parse_Cmd_Line): New switch -f: set Force_Deletions to True
23721         (Usage): Line for new switch -f
23722         (Clean_Directory): Use GNAT.OS_Lib.Set_Writable instead of rolling our
23723         own.
23724
23725 2004-10-26  Eric Botcazou  <ebotcazou@act-europe.fr>
23726
23727         * decl.c (gnat_to_gnu_field): Use the type of the inner object for a
23728         JM type only if its size matches that of the wrapper.  When a size is
23729         prescribed and the field is not aliased, remove the wrapper of a JM
23730         type only if the size is not greater than that of the packed array.
23731         (gnat_to_gnu_entity): Change the extension of packed array wrappers
23732         from LJM to JM.
23733
23734 2004-10-26  Geert Bosch  <bosch@gnat.com>
23735
23736         * eval_fat.adb (Eps_Model,Eps_Denorm): Remove, no longer used.
23737         (Succ): Re-implement using Scaling, Exponent and Ceiling attributes.
23738         (Pred): Implement in terms of Succ.
23739
23740 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
23741
23742         * exp_aggr.adb (Safe_Component): An aggregate component that is an
23743         unchecked conversion is safe for in-place use if the expression of the
23744         conversion is safe.
23745         (Expand_Array_Aggregate): An aggregate that initializes an allocator may
23746         be expandable in place even if the aggregate does not come from source.
23747         (Convert_Array_Aggr_In_Allocator): New procedure to initialize the
23748         designated object of an allocator in place, rather than building it
23749         first on the stack. The previous scheme forces a full copy of the array,
23750         and may be altogether unsusable if the size of the array is too large
23751         for stack allocation.
23752
23753 2004-10-26  Robert Dewar  <dewar@gnat.com>
23754
23755         * exp_ch4.adb (Expand_N_Op_Eq): Make sure we expand a loop for array
23756         compares if the component is atomic.
23757
23758         * exp_ch5.adb (Expand_Assign_Array): Make sure we expand a loop for
23759         array assignment if the component type is atomic.
23760
23761 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
23762             Eric Botcazou  <ebotcazou@act-europe.fr>
23763
23764         * exp_ch6.adb (Expand_Actuals): If the actual for an in-out parameter
23765         is aliased and is a by_reference type, do not pass by copy.
23766         (Expand_N_Function_Call) <Rhs_Of_Assign_Or_Decl>: New function to
23767         detect whether the call is in the right side of an assignment or
23768         the expression of an object declaration.  Recurse on component
23769         association within aggregates.
23770         Call it in the condition that determines whether the temporary is
23771         necessary for correct stack-checking.
23772
23773 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
23774
23775         * exp_dist.adb (Build_General_Calling_Stubs): New formal parameter
23776         RACW_Type, used in the PolyORB version.
23777         Rename RCI_Info to RCI_Locator, for consistency between the PolyORB
23778         version and the GARLIC version.
23779
23780         * snames.ads, snames.adb, s-parint.ads, s-parint.adb:
23781         Rename RCI_Info to RCI_Locator for better consistency between the
23782         GARLIC and PolyORB versions of the distributed systems annex.
23783         (DSA_Implementation_Name): This enumeration lists the possible
23784         implementations of the Partition Communication Subsystem for the
23785         Distributed Systems Annex (DSA). The three available implementations
23786         are the dummy stub implementation (No_DSA), and two versions based on
23787         two different distribution runtime libraries: GARLIC and PolyORB. Both
23788         the GARLIC PCS and the PolyORB PCS are part of the GLADE distribution
23789         technology.
23790         Change the literal GLADE_DSA to GARLIC_DSA to accurately describe
23791         that organization.
23792
23793         * rtsfind.ads: Rename RCI_Info to RCI_Locator for better consistency
23794         between the GARLIC and PolyORB versions of the distributed systems
23795         annex.
23796         Remove RE_Unbounded_Reclaim_Pool since it is unused.
23797
23798 2004-10-26  Gary Dismukes  <dismukes@gnat.com>
23799
23800         * gnat1drv.adb: Suppress calling the back end when
23801         Frontend_Layout_On_Target is true.
23802
23803 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
23804
23805         * g-os_lib.ads, g-os_lib.adb (Set_Executable, Set_Writable,
23806         Set_Read_Only): New subprograms.
23807         These new routines allow the user to set or unset the Owner execute
23808         and Owner write permission flags on a file.
23809
23810         * makegpr.adb, mlib.adb, mlib-prj.adb: Use
23811         GNAT.OS_Lib.Set_Executable instead of rolling our own.
23812
23813 2004-10-26  Matthew Gingell  <gingell@gnat.com>
23814
23815         * i-cpp.ads, i-cpp.adb: Change layout of VTable for new C++ ABI.
23816
23817 2004-10-26  Pascal Obry  <obry@gnat.com>
23818
23819         * init.c (__gnat_error_handler) [Win32]: Instead of trying to read the
23820         memory before the faulting page we properly test the process read
23821         access for this address using appropriate Win32 routine.
23822         (HPUX sections): guard with "__hpux__" instead of "hpux".
23823
23824 2004-10-26  Robert Dewar  <dewar@gnat.com>
23825
23826         * lib-xref.adb (Generate_Reference): Don't complain about reference to
23827         entry parameter if pragma Unreferenced set, since we do not properly
23828         handle the case of multiple parameters.
23829
23830 2004-10-26  Vincent Celier  <celier@gnat.com>
23831
23832         * prj-env.adb: (Contains_ALI_Files): New Boolean function
23833         (Ada_Objects_Path.Add): For a library project, add to the object path
23834         the library directory only if there is no object directory or if the
23835         library directory contains ALI files.
23836         (Set_Ada_Paths.Add.Recursive_Add): Ditto
23837
23838 2004-10-26  Vincent Celier  <celier@gnat.com>
23839
23840         * prj-nmsc.adb (Language_Independent_Check): Do not forbid virtual
23841         extension of library projects.
23842
23843         * prj-part.adb: If env var ADA_PROJECT_PATH is not defined, project
23844         path defaults to ".:<prefix>/lib/gnat".
23845         (Parse): For an extending all project, allow direct import of a project
23846         that is virtually extended.
23847
23848         * prj-proc.adb (Imported_Or_Extended_Project_From): If a project with
23849         the specified name is directly imported, return its ID. Otherwise, if
23850         an extension of this project is imported, return the ID of the
23851         extension.
23852
23853 2004-10-26  Robert Dewar  <dewar@gnat.com>
23854
23855         * s-arit64.adb: (Le3): New function, used by Scaled_Divide
23856         (Sub3): New procedure, used by Scaled_Divide
23857         (Scaled_Divide): Substantial rewrite, avoid duplicated code, and also
23858         correct more than one instance of failure to propagate carries
23859         correctly.
23860         (Double_Divide): Handle overflow case of largest negative number
23861         divided by minus one.
23862
23863         * s-arit64.ads (Double_Divide): Document that overflow can occur in
23864         the case of a quotient value out of range.
23865         Fix comments.
23866
23867 2004-10-26  Robert Dewar  <dewar@gnat.com>
23868
23869         * s-bitops.adb (Bit_Eq): Remove redundant check.
23870
23871         * s-bitops.ads: Minor comment updates
23872         Change some occurrences of Address to System.Address
23873
23874         * s-carsi8.ads: Fix minor cut-and-paste error in comments
23875
23876 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
23877
23878         * sem_attr.adb (Resolve_Attribute, case 'Access): Apply proper
23879         accessibility check to prefix that is a protected operation.
23880
23881 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
23882
23883         * sem_ch10.adb (Optional_Subunit): If file of expected subunit is
23884         empty, post message on stub.
23885
23886 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
23887             Javier Miranda  <miranda@gnat.com>
23888
23889         * sem_ch12.adb (In_Main_Context): Predicate to determine whether the
23890         current instance appears within a unit that is directly in the context
23891         of the main unit.
23892         Used to determine whether the body of the instance should be analyzed
23893         immediately after its spec, to make its subprogram bodies available
23894         for front-end inlining.
23895         (Analyze_Formal_Array_Type): Cleanup condition that checks that range
23896         constraint is not allowed on the component type (AARM 12.5.3(3))
23897
23898 2004-10-26  Cyrille Comar  <comar@act-europe.fr>
23899
23900         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case
23901         'Storage_Pool): enhance, document & limit detection of non-sharable
23902         internal pools.
23903
23904         * impunit.adb: Make System.Pool_Global and System.Pool_Local visible.
23905
23906         * s-pooglo.ads: Add more documentation now that this pool is properly
23907         documented.
23908
23909 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
23910
23911         * sem_ch3.adb (Complete_Private_Subtype): If the full view is a task
23912         or protected type with discriminants, do not constrain the
23913         corresponding record type if the subtype declaration has no
23914         discriminant constraints. This can be the case in source code, or in
23915         the subtype declaration created to rename an actual type within an
23916         instantiation.
23917
23918 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
23919
23920         * sem_ch6.adb (Analyze_Subprogram_Body): If body is a subunit for a
23921         different kind of stub (possibly wrong name for file), do not check
23922         for conformance.
23923         (Uses_Secondary_Stack): New subsidiary to Build_Body_To_Inline. If body
23924         includes call to some function that returns an unconstrained type, do
23925         not inline.
23926
23927 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
23928
23929         * sem_elab.adb (Check_Elab_Call): Do not check a call that does not
23930         appear in the code for the main unit. Dependencies among units in the
23931         context of the main unit are established when those other units are
23932         compiled. Otherwise spurious elaboration constraints can generate
23933         incorrect elaboration circularities.
23934
23935 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
23936             Ed Schonberg   <schonberg@gnat.com>
23937
23938         * sem_util.adb (Is_Aliased_View): Defend against the case where this
23939         subprogram is called with a parameter that is not an object name. This
23940         situation arises for some cases of illegal code, which is diagnosed
23941         later, and in this case it is wrong to call Is_Aliased, as that might
23942         cause a compiler crash.
23943         (Explain_Limited_Type): Refine previous fix to include
23944         inherited components of derived types, to provide complete information.
23945
23946         * exp_ch9.adb (Set_Privals): Set the Ekind of the actual object that
23947         is the prival for a protected object.
23948         It is necessary to mark this entity as a variable, in addition to
23949         flagging it as Aliased, because Sem_Util.Is_Aliased_View has been
23950         modified to avoid checking the Aliased flag on entities that are not
23951         objects. (Checking that flag for non-objects is erroneous and could
23952         lead to a compiler crash).
23953
23954 2004-10-26  Robert Dewar  <dewar@gnat.com>
23955
23956         * s-fatgen.adb (Pred): Fix redundant test for X > 0.0, since if
23957         X_Frac = 0.5, then we know that the number X must be positive.
23958         (Succ): Remove the same redundant test, and also fix the primary test
23959         to test for X_Frac = -0.5 (used to be 0.5) which is clearly wrong.
23960         Minor reformatting
23961         (Decompose): Add fuller comments to spec
23962
23963 2004-10-26  Pascal Obry  <obry@gnat.com>
23964
23965         * tracebak.c (IS_BAD_PTR): Use IsBadCodePtr on Win32 to check for ptr
23966         validity (process must have read access). Set to 0 in all other cases.
23967         (STOP_FRAME): Now check for ptr validity to avoid a segmentation
23968         violation on Win32.
23969         (VALID_STACK_FRAME): Check for ptr validity on Win32 to avoid a
23970         segmentation violation.
23971
23972 2004-10-26  Eric Botcazou  <ebotcazou@act-europe.fr>
23973
23974         * trans.c (call_to_gnu): For an (in-)out parameter passed by reference
23975         whose type is a constructed subtype of an aliased object with an
23976         unconstrained nominal subtype, convert the actual to the constructed
23977         subtype before taking its address.
23978
23979 2004-10-26  Vincent Celier  <celier@gnat.com>
23980
23981         * a-dirval.ads, a-dirval.adb, a-dirval-vms.adb, a-dirval-mingw.adb
23982         (Is_Path_Name_Case_Sensitive): New function
23983
23984         * a-direct.adb (To_Lower_If_Case_Insensitive): New procedure
23985         (Base_Name, Simple_Name, Current_Directory, Compose,
23986         Containing_Directory, Full_Name): Call To_Lower_If_Case_Insensitive on
23987         the result.
23988
23989 2004-10-26  Cyrille Comar    <comar@act-europe.fr>
23990             Vasiliy Fofanov  <fofanov@act-europe.fr>
23991             Vincent Celier   <celier@gnat.com>
23992
23993         * gnat_ugn.texi: Generalize "finding memory problems" section into a
23994         "memory management issues" section and document some of the useful
23995         memory pools provided as part of the GNAT library.
23996         Remove "virtual" from declaration of A::method2 in
23997         the simple example of Ada/C++ mixed system.
23998         Library Projects may be virtually extended: their virtual extensions
23999         are not Library Projects.
24000         Added section on extending project hierarchies.
24001
24002 2004-10-19  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
24003
24004         * adaint.c (__gnat_get_libraries_from_registry): Cast value
24005         to LPBYTE.
24006         (__gnat_portable_spawn): Remove const.
24007
24008         * mingw32.h (MAXPATHLEN): Check for previous definition.
24009
24010 2004-10-17  Matthias Klose  <doko@debian.org>
24011
24012         * gnatvsn.ads: Set gnat library version to 4.0.
24013
24014 2004-10-05  Vincent Celier  <celier@gnat.com>
24015
24016         * mlib-tgt.ads: (Build_Dynamic_Library): New parameter Options_2
24017
24018 2004-10-04  Laurent Guerby  <laurent@guerby.net>
24019
24020         PR ada/15156
24021         * Makefile.in: Define and use RANLIB_FLAGS.
24022
24023 2004-10-04  Pascal Obry  <obry@gnat.com>
24024
24025         * tracebak.c: Always set LOWEST_ADDR to 0 on Win32 (as done on all
24026         other x86 platforms).
24027
24028 2004-10-04  Olivier Hainque  <hainque@act-europe.fr>
24029
24030         * s-tassta.adb (Task_Wrapper): Make it Convention C, which makes sense
24031         in general and triggers stack alignment adjustment for thread entry
24032         points on targets where this is necessary.
24033
24034 2004-10-04  Bernard Banner  <banner@gnat.com>
24035
24036         PR ada/13897
24037         * Makefile.in: Add section for powerpc linux
24038         Add variant i-vxwork-x86.ads
24039
24040         * i-vxwork-x86.ads, system-linux-ppc.ads: New files.
24041
24042 2004-10-04  Olivier Hainque  <hainque@act-europe.fr>
24043
24044         * init.c (__gnat_initialize): Call an Ada subprogram to perform the
24045         table registration calls when need be. Ensures no reference to the crt
24046         ctors symbol are issued in the SJLJ case, which avoids possible
24047         undefined symbol errors in the case of modules to be statically linked
24048         with the kernel.
24049
24050 2004-10-04  Javier Miranda  <miranda@gnat.com>
24051
24052         * sem_ch4.adb (Try_Object_Operation): Reformat the code to expand
24053         in-line the code corresponding to subprogram Analyze_Actuals. In
24054         addition, analyze the actuals only in case of subprogram call.
24055
24056 2004-10-04  Ed Falis  <falis@gnat.com>
24057
24058         * s-vxwork-x86.ads: (FP_CONTEXT): Defined to be correct size
24059
24060 2004-10-04  Sergey Rybin  <rybin@act-europe.fr>
24061
24062         * g-dirope.ads (Base_Name): Clarify the meaning of the Suffix parameter
24063         in the documentation.
24064
24065 2004-10-04  Robert Dewar  <dewar@gnat.com>
24066
24067         * sem_ch5.adb (Unblocked_Exit_Count): Now used for blocks as well as
24068         IF and CASE.
24069         (Analyze_Block_Statement): Add circuitry to detect following dead code
24070         (Check_Unreachable_Code): Handle case of block exit
24071
24072 2004-10-04  Robert Dewar  <dewar@gnat.com>
24073
24074         * g-spipat.adb: (XMatch): Avoid warning for Logic_Error call
24075         (XMatchD): Avoid warning for Logic_Error call
24076
24077 2004-10-04  Robert Dewar  <dewar@gnat.com>
24078
24079         * exp_ch4.adb (Is_Procedure_Actual): Correct so that this does not
24080         consider expressions buried within a procedure actual to be an actual.
24081         This caused some blowups with uses of packed slices within a procedure
24082         actual.
24083
24084 2004-10-04  Robert Dewar  <dewar@gnat.com>
24085
24086         * exp_ch3.adb (Needs_Simple_Initialization): Modular packed arrays no
24087         longer need to be initialized to zero.
24088         (Get_Simple_Init_Val): Modular packed arrays no longer need to be
24089         initialized to zero.
24090
24091         * checks.adb (Expr_Known_Valid): Packed arrays are now always
24092         considered valid, even if the representation is modular. That's correct
24093         now that we no longer initialize packed modular arrays to zero.
24094
24095         * exp_dbug.ads: Clarify documentation on handling of PAD and JM
24096         suffixes. These are now documented as the only cases in which the
24097         debugger ignores outer records.
24098         Previously, the spec allowed arbitrary suffixes for this purpose.
24099         Change name of LJM to JM for packed array pad records
24100         Create separate section on packed array handling, and add a whole new
24101         set of comments to this section describing the situation with packed
24102         modular types and justification requirements depending on endianness.
24103
24104 2004-10-04  Robert Dewar  <dewar@gnat.com>
24105
24106         * a-except.adb: Add a comment for last change
24107
24108         * einfo.ads: Minor spelling correction in comment
24109
24110         * exp_pakd.adb, gnatdll.adb, prj-attr.ads: Minor reformatting
24111
24112         * sem_ch11.adb: Fix a case of using | instead of \ for continuation
24113         messages.
24114
24115         * sem_util.ads: Minor comment update
24116
24117 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
24118
24119         * sem_ch6.adb (Analyze_Subprogram_Body): Do not treat Inline as
24120         Inline_Always when in Configurable_Run_Time mode.
24121
24122         * sem_prag.adb (Process_Convention): If entity is an inherited
24123         subprogram, apply convention to parent subprogram if in same scope.
24124         (Analyze_Pragma, case Inline): Do not treat Inline as Inline_Always
24125         when in Configurable_Run_Time mode.
24126
24127 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
24128
24129         * sem_ch3.adb (Build_Derived_Record_Type): Set First/Last entity of
24130         class_wide type after component list has been inherited.
24131
24132 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
24133
24134         * sem_ch12.adb (Check_Generic_Actuals): New predicate
24135         Denotes_Previous_Actual, to handle properly the case of a private
24136         actual that is also the component type of a subsequent array actual.
24137         The visibility status of the first actual is not affected when the
24138         second is installed.
24139         (Process_Nested_Formal): Subsidiary of Instantiate_Formal_Package, to
24140         make fully recursive the treatment of formals of packages declared
24141         with a box.
24142         (Restore_Nested_Formal): Subsidiary of Restore_Private_Views, to undo
24143         the above on exit from an instantiation.
24144         (Denotes_Formal_Package): When called from Restore_Private_Views, ignore
24145         current instantiation which is now complete.
24146         (Analyze_Package_Instantiation): No instantiated body is needed if the
24147         main unit is generic. Efficient, and avoid anomalies when a instance
24148         appears in a package accessed through rtsfind.
24149
24150 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
24151
24152         * exp_ch6.adb (Expand_N_Function_Call): If stack checking is enabled,
24153         do not generate a declaration for a temporary if the call is part of a
24154         library-level instantiation.
24155
24156 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
24157
24158         * sem_util.adb (Explain_Limited_Type): Ignore internal components when
24159         searching for a limited component to flag.
24160
24161         * exp_attr.adb (Freeze_Stream_Subprogram): Subsidiary procedure to
24162         expansion of Input, to account for the fact that the implicit call
24163         generated by the attribute reference must freeze the user-defined
24164         stream subprogram. This is only relevant to 'Input, because it can
24165         appear in an object declaration, prior to the body of the subprogram.
24166
24167         * sem_ch13.adb (Rep_Item_Too_Late): Make the error non-serious, so that
24168         expansion can proceed and further errors uncovered.
24169         (Minor clean up): Fix cases of using | instead of \ for continuation
24170         messages.
24171
24172 2004-10-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
24173
24174         * cuintp.c, decl.c, utils2.c: Use gcc_assert and gcc_unreachable.
24175
24176         * trans.c (assoc_to_constructor): Fix unused var warning if no checking.
24177         (gnat_gimplify_expr, case ADDR_EXPR): Fix error in last change.
24178         Use gcc_assert and gcc_unreachable.
24179
24180         * decl.c (gnat_to_gnu_entity, case object): Check and process a
24181         specified alignment before validating size.
24182         (gnat_to_gnu_entity) <E_Modular_Integer_Subtype>: Create a
24183         stripped-down declaration for the type of the inner field when making
24184         a JM type.
24185
24186         * utils.c (finish_record_type): Do not compute the size in units
24187         incrementally. Instead compute it once for the rep clause case.
24188         Use gcc_assert and gcc_unreachable.
24189
24190 2004-10-04  Vincent Celier  <celier@gnat.com>
24191
24192         * a-dirval-mingw.adb (Invalid_Character): Add '\' as invalid character
24193         in file name.
24194         (Is_Valid_Path_Name): Take '/' as a directory separator.
24195
24196 2004-10-04  Vincent Celier  <celier@gnat.com>
24197
24198         * prj-part.adb (Parse_Single_Project): Call Is_Extending_All
24199         (Extended_Project) only if Extended_Project is defined, to avoid
24200         assertion error.
24201         (Post_Parse_Context_Clause): Always call Set_Path_Name_Of with a
24202         resolved path.
24203         (Parse_Single_Project): Ditto.
24204
24205         * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Do not call
24206         Add_To_Project_Path for virtual projects.
24207
24208 2004-10-04  Vincent Celier  <celier@gnat.com>
24209
24210         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
24211         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
24212         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb,
24213         mlib-tgt-vxworks.adb, mlib-tgt.adb (Build_Dynamic_Library): New
24214         parameter Options_2.
24215
24216         * mlib-prj.ads, mlib-prj.adb (Build_Library): Call
24217         Build_Dynamic_Library with an empty Options_2.
24218
24219         * mlib-utl.ads, mlib-utl.adb (Gcc): Parameter Options_2 has no
24220         default anymore.
24221
24222         * makegpr.adb (Get_Imported_Directories.add): Remove trailing
24223         directory separator, if any.
24224         (Gprmake): Do not allow mains on the command line for library projects.
24225         Do not attempt to link when the project is a library project.
24226         (Library_Opts): New table to store Library_Options.
24227         (Build_Library): If Library_Options is specified, pass these options
24228         when building a shared library.
24229
24230 2004-10-04  Jose Ruiz  <ruiz@act-europe.fr>
24231
24232         * s-tposen.adb (Service_Entry): The object must be always unlocked at
24233         the end of this procedure now that the unlock operation was inserted
24234         by the expander.
24235
24236 2004-10-04  Jose Ruiz  <ruiz@act-europe.fr>
24237
24238         * targparm.ads, targparm.adb (Targparm_Tags): Add PAS value
24239         corresponding to the Preallocated_Stacks flags in System.
24240         (Get_Target_Parameters): Including the processing for
24241         Preallocated_Stacks.
24242
24243         * system.ads, system-vxworks-x86.ads, system-darwin-ppc.ads,
24244         system-vms_64.ads, system-unixware.ads, system-linux-ia64.ads,
24245         system-freebsd-x86.ads, system-lynxos-ppc.ads, system-lynxos-x86.ads,
24246         system-linux-x86_64.ads, system-tru64.ads, system-aix.ads,
24247         system-vxworks-sparcv9.ads, system-vxworks-xscale.ads,
24248         system-solaris-x86.ads, system-irix-o32.ads, system-irix-n32.ads,
24249         system-hpux.ads, system-vxworks-m68k.ads, system-linux-x86.ads,
24250         system-vxworks-mips.ads, system-os2.ads, system-interix.ads,
24251         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
24252         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
24253         system-vxworks-alpha.ads: Add the flag Preallocated_Stacks, that is
24254         used to signal whether the compiler creates the required stacks and
24255         descriptors for the different tasks (when True) or it is done by the
24256         underlying operating system at run time (when False).
24257         It is initially set to False in all targets.
24258
24259         * exp_ch9.adb (Expand_N_Task_Type_Declaration): Create the task stack
24260         if it is supported by the target.
24261         (Make_Task_Create_Call): Pass the stack address if it has been
24262         previously created. Otherwise pass a Null_Address.
24263
24264         * snames.adb: Add _stack.
24265
24266         * snames.ads: Add Name_uStack. Required to allow the expander to
24267         statically allocated task stacks.
24268
24269         * s-tarest.ads, s-tarest.adb (Create_Restricted_Task): Add
24270         Stack_Address argument.
24271         Check that its value is equal to Null_Address because this target does
24272         not support the static stack allocation.
24273
24274 2004-10-04  Thomas Quinot  <quinot@act-europe.fr>
24275
24276         * usage.adb: Change "pragma inline" to "pragma Inline" in information
24277         and error messages
24278
24279 2004-10-04  Thomas Quinot  <quinot@act-europe.fr>
24280
24281         * exp_dist.adb: Split declaration of asynchronous flag out of
24282         Add_RACW_Read_Attribute.
24283         Minor reformatting for better alignment with PolyORB version.
24284         Store the entity for the asynchronous flag of an RACW, rather than the
24285         expression, in the asynchronous flags table. This will allow this flag
24286         to be used in other subprograms beside Add_RACW_Read_Attribute.
24287
24288 2004-10-04  Thomas Quinot  <quinot@act-europe.fr>
24289
24290         * g-socket.ads, g-socket.adb, g-socthi.adb, socket.c,
24291         g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
24292         g-soccon-interix.ads, g-soccon-solaris.ads, g-soccon-vms.adb,
24293         g-soccon-mingw.ads, g-soccon-vxworks.ads, g-soccon-freebsd.ads,
24294         g-soccon.ads, g-soccon-unixware.ads, g-soccon-tru64.ads:  Add new
24295         sockets constant MSG_NOSIGNAL (Linux-specific).
24296         Add new sockets constant MSG_Forced_Flags, list of flags to be set on
24297         all Send operations.
24298         For Linux, set MSG_NOSIGNAL on all send operations to prevent them
24299         from trigerring SIGPIPE.
24300         Rename components to avoid clash with Ada 2005 possible reserved
24301         word 'interface'.
24302         (Check_Selector): When the select system call returns with an error
24303         condition, propagate Socket_Error to the caller.
24304
24305 2004-10-01  Jan Hubicka  <jh@suse.cz>
24306
24307         * misc.c (gnat_expand_body): Update call of tree_rest_of_compilation.
24308
24309 2004-09-23  Robert Dewar  <dewar@gnat.com>
24310
24311         PR ada/17540
24312         * sem_prag.adb (Process_Import_Or_Interface): Don't set Is_Public here,
24313         instead do this at freeze time (we won't do it if there is an address
24314         clause).
24315         Change "pragma inline" to "pragma Inline" in information and error
24316         messages.
24317         Minor reformatting.
24318
24319         * freeze.adb (Check_Address_Clause): Remove previous change, not the
24320         right way of doing things after all.
24321         (Freeze_Entity): For object, set Is_Public for imported entities
24322         unless there is an address clause present.
24323
24324 2004-09-21  Olivier Hainque  <hainque@act-europe.fr>
24325
24326         * decl.c (gnat_to_gnu_entity) <E_General_Access_Type>: Check for a
24327         dummy designated type via TYPE_MODE instead of COMPLETE_TYPE_P. This
24328         ensures proper handling of types with rep clauses, which might have
24329         their TYPE_SIZE set already.
24330
24331 2004-09-21  Robert Dewar  <dewar@gnat.com>
24332
24333         * decl.c (gnat_to_gnu_type, case E_Modular_Integer_Type): Wrap modular
24334         packed array types in both little- and big-endian cases. This change
24335         ensures that we no longer count on the unused bits being initialized
24336         for such types (and in particular ensures that equality testing will
24337         only read the relevant bits).
24338         Change name TYPE_LEFT_JUSTIFIED_MODULAR_P to TYPE_JUSTIFIED_MODULAR_P
24339         These changes mean that we no longer need to initialize small packed
24340         arrays.
24341         (gnat_to_gnu_entity) <E_Record_Subtype>: Apply the same
24342         optimization to an LJM field as to its parent field.
24343
24344         * ada-tree.h, trans.c, utils.c, utils2.c:
24345         Change name TYPE_LEFT_JUSTIFIED_MODULAR_P to TYPE_JUSTIFIED_MODULAR_P
24346
24347 2004-09-20  Jan Hubicka  <jh@suse.cz>
24348
24349         * utils.c (gnat_finalize): Remove.
24350         (end_subprog_body): Directly call cgraph_finalize_function;
24351         do not lower the nested functions.
24352
24353 2004-09-20  Robert Dewar  <dewar@gnat.com>
24354
24355         PR ada/17540
24356         * freeze.adb (Check_Address_Clause): Reset Is_Imported and Is_Public
24357         if an address clause is present, since that means that the Import
24358         should be ignored.
24359
24360 2004-09-20  Arnaud Charlet  <charlet@act-europe.fr>
24361
24362         * 5tsystem.ads: Removed, no longer used.
24363
24364 2004-09-17  Jeffrey D. Oldham  <oldham@codesourcery.com>
24365             Zack Weinberg  <zack@codesourcery.com>
24366
24367         * ada-tree.def: Use tree_code_class enumeration constants
24368         instead of code letters.
24369         * ada-tree.h, decl.c, misc.c, trans.c, utils.c, utils2.c:
24370         Update for new tree-class enumeration constants.
24371
24372 2004-09-17  Vincent Celier  <celier@gnat.com>
24373
24374         * prj-attr-pm.ads, prj-attr-pm.adb: New files, to split some private
24375         capabilities of the general project manager.
24376
24377 2004-09-09  Vincent Celier  <celier@gnat.com>
24378
24379         * a-direct.ads: Add pragma Ada_05
24380         (Directory_Entry_Type): Give default value to component Kind to avoid
24381         not initialized warnings.
24382
24383         * a-direct.adb (Current_Directory): Remove directory separator at the
24384         end.
24385         (Delete_Directory, Delete_Tree): Raise Name_Error if Directory is not
24386         an existing directory.
24387         (Fetch_Next_Entry): Give default value to variable Kind to avoid warning
24388         (Size (String)): Function C_Size returns Long_Integer, not File_Size.
24389         Convert the result to File_Size.
24390
24391         * prj.ads: (Project_Error): New exception
24392
24393         * prj-attr.adb: Except in procedure Initialize, Fail comes from
24394         Prj.Com, not from Osint.
24395         (Attrs, Package_Attributes): Tables moved to private part of spec
24396         (Add_Attribute, Add_Unknown_Package): Moved to new child package
24397         Prj.Attr.PM.
24398         (Register_New_Package (Name, Attributes), Register_New_Attribute): Raise
24399         Prj.Project_Error after call to Fail.
24400         (Register_New_Package (Name, Id)): Set Id to Empty_Package after calling
24401         Fail. Check that package name is not already in use.
24402
24403         * prj-attr.ads: Comment updates to indicate that all subprograms may be
24404         used by tools, not only by the project manager, and to indicate that
24405         exception Prj.Prj_Error may be raised in case of problem.
24406         (Add_Unknown_Package, Add_Attribute): Moved to new child package
24407         Prj.Attr.PM.
24408         (Attrs, Package_Attributes): Table instantiations moved from the body to
24409         the private part to be accessible from Prj.Attr.PM body.
24410
24411         * prj-dect.adb (Parse_Package_Declaration): Call Add_Unknown_Package
24412         from new package Prj.Attr.PM.
24413         (Parse_Attribute_Declaration): Call Add_Attribute from new package
24414         Prj.Attr.PM.
24415
24416         * Makefile.in: Add prj-attr-pm.o to gnatmake object list
24417
24418         * gnatbind.adb (Gnatbind): Correct warning message (Elaboration_Check
24419         instead of Elaboration_Checks).
24420
24421         * a-calend.adb: Minor reformatting
24422
24423 2004-09-09  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
24424
24425         * gigi.h (maybe_pad_type): New declaration.
24426         (create_subprog_type): New arg RETURNS_BY_TARGET_PTR.
24427
24428         * ada-tree.h: (TYPE_RETURNS_BY_TARGET_PTR_P): New macro.
24429
24430         * cuintp.c: Convert to use buildN.
24431
24432         * decl.c (maybe_pad_type): No longer static.
24433         (gnat_to_gnu_entity, case E_Function): Handle case of returning by
24434         target pointer.
24435         Convert to use buildN.
24436
24437         * trans.c (call_to_gnu): Add arg GNU_TARGET; support
24438         TYPE_RETURNS_BY_TARGET_PTR_P.  All callers changed.
24439         (gnat_to_gnu, case N_Assignment_Statement): Call call_to_gnu if call on
24440         RHS.
24441         (gnat_to_gnu, case N_Return): Handle TYPE_RETURN_BY_TARGET_PTR_P.
24442         (gnat_gimplify_expr, case ADDR_EXPR): New case.
24443         Convert to use buildN.
24444
24445         * utils2.c (gnat_build_constructor): Also set TREE_INVARIANT and
24446         TREE_READONLY for const.
24447         Convert to use buildN.
24448
24449         * utils.c (create_subprog_type): New operand RETURNS_BY_TARGET_PTR.
24450         (create_var_decl): Refine when TREE_STATIC is set.
24451         Convert to use buildN.
24452
24453 2004-09-09  Gary Dismukes  <dismukes@gnat.com>
24454
24455         * gnat_ugn.texi: Delete text relating to checking of ali and object
24456         consistency.
24457
24458         * a-except.adb (Rcheck_*): Add pragmas No_Return for each of these
24459         routines.
24460
24461 2004-09-09  Jose Ruiz  <ruiz@act-europe.fr>
24462
24463         * gnat_ugn.texi: Add Detect_Blocking to the list of configuration
24464         pragmas recognized by GNAT.
24465
24466         * gnat_rm.texi: Document pragma Detect_Blocking.
24467
24468         * s-solita.adb (Timed_Delay_T): When pragma Detect_Blocking is active,
24469         raise Program_Error if called from a protected operation.
24470
24471         * s-taprob.adb (Lock): When pragma Detect_Blocking is active increase
24472         the protected action nesting level.
24473         (Lock_Read_Only): When pragma Detect_Blocking is active increase the
24474         protected action nesting level.
24475         (Unlock): When pragma Detect_Blocking is active decrease the protected
24476         action nesting level.
24477
24478         * s-taskin.adb (Initialize_ATCB): Initialize to 0 the
24479         Protected_Action_Nesting.
24480
24481         * s-taskin.ads: Adding the field Protected_Action_Nesting to the
24482         Common_ATCB record. It contains the dynamic level of protected action
24483         nesting for each task. It is needed for checking whether potentially
24484         blocking operations are called from protected operations.
24485         (Detect_Blocking): Adding a Boolean constant reflecting whether pragma
24486         Detect_Blocking is active or not in the partition.
24487
24488         * s-tasren.adb (Call_Simple): When pragma Detect_Blocking is active,
24489         raise Program_Error if called from a protected operation.
24490         (Task_Entry_Call): When pragma Detect_Blocking is active, raise
24491         Program_Error if called from a protected operation.
24492         (Timed_Task_Entry_Call): When pragma Detect_Blocking is active, raise
24493         Program_Error if called from a protected operation.
24494
24495         * s-tassta.adb (Abort_Tasks): When pragma Detect_Blocking is active,
24496         raise Program_Error if called from a protected operation.
24497
24498         * s-tpoben.adb (Lock_Entries): When pragma Detect_Blocking is active,
24499         raise Program_Error if called from a protected operation, and increase
24500         the protected action nesting level.
24501         (Lock_Read_Only_Entries): When pragma Detect_Blocking is active, raise
24502         Program_Error if called from a protected operation, and increase the
24503         protected action nesting level.
24504         (Unlock_Entries): When pragma Detect_Blocking is active decrease the
24505         protected action nesting level.
24506
24507         * s-tposen.adb (Lock_Entry): When pragma Detect_Blocking is active,
24508         raise Program_Error if called from a protected operation, and increase
24509         the protected action nesting level.
24510         (Lock_Read_Only_Entry): When pragma Detect_Blocking is active, raise
24511         Program_Error if called from a protected operation, and increase the
24512         protected action nesting level.
24513         (Protected_Single_Entry_Call): When pragma Detect_Blocking is active,
24514         raise Program_Error if called from a protected operation.
24515         (Timed_Protected_Single_Entry_Call): When pragma Detect_Blocking is
24516         active, raise Program_Error if called from a protected operation.
24517         (Unlock_Entry): When pragma Detect_Blocking is active decrease the
24518         protected action nesting level.
24519
24520         * sem_util.adb (Check_Potentially_Blocking_Operation): Remove the
24521         insertion of the statement raising Program_Error. The run time
24522         contains the required machinery for handling that.
24523
24524         * sem_util.ads: Change comment associated to procedure
24525         Check_Potentially_Blocking_Operation.
24526         This procedure does not insert a call for raising the exception because
24527         that is currently done by the run time.
24528
24529         * raise.h (__gnat_set_globals): Pass the detect_blocking parameter.
24530
24531         * init.c: Add the global variable __gl_detect_blocking that indicates
24532         whether pragma Detect_Blocking is active (1) or not (0). Needed for
24533         making the pragma available at run time.
24534         (__gnat_set_globals): Pass and update the detect_blocking parameter.
24535
24536         * lib-writ.adb (Write_ALI): Set the DB flag in the ali file if
24537         pragma Detect_Blocking is active.
24538
24539         * lib-writ.ads: Document the Detect_Blocking flag (DB) in ali files.
24540
24541         * ali.adb (Scan_ALI): Set the Detect_Blocking value to true if the flag
24542         DB is found in the ali file. Any unit compiled with pragma
24543         Detect_Blocking active forces its effect in the whole partition.
24544
24545         * a-retide.adb (Delay_Until): Raise Program_Error if pragma
24546         Detect_Blocking is active and delay is called from a protected
24547         operation.
24548
24549         * bindgen.adb (Gen_Adainit_Ada): When generating the call to
24550         __gnat_set_globals, pass 1 as Detect_Blocking parameter if pragma
24551         Detect_Blocking is active (0 otherwise).
24552         (Gen_Adainit_C): When generating the call to __gnat_set_globals, pass 1
24553         as Detect_Blocking parameter if pragma Detect_Blocking is active (0
24554         otherwise).
24555
24556 2004-09-09  Thomas Quinot  <quinot@act-europe.fr>
24557
24558         * gnat_rm.texi: Rename GNAT.Perfect_Hash.Generators to
24559         GNAT.Perfect_Hash_Generators, and remove the empty GNAT.Perfect_Hash
24560         package.
24561
24562         * s-parint.ads, s-parint.adb (Get_RAS_Info): New subprogram.
24563         (Register_Receiving_Stub): Add Subp_Info formal parameter.
24564         Update API in placeholder implemetation of s-parint to reflect changes
24565         in distribution runtime library.
24566
24567         * sem_ch3.adb (Expand_Derived_Record): Rename to
24568         Expand_Record_Extension.
24569
24570         * sem_disp.adb (Check_Controlling_Formals): Improve error message for
24571         primitive operations of potentially distributed object types that have
24572         non-controlling anonymous access formals.
24573
24574         * sem_dist.ads, sem_dist.adb (Build_RAS_Primitive_Specification): New
24575         subprogram.
24576         New implementation of expansion for remote access-to-subprogram types,
24577         based on the RACW infrastructure.
24578         This version of sem_dist is compatible with PolyORB/DSA as well as
24579         GLADE.
24580
24581         * sem_prag.adb (Analyze_Pragma, case Pragma_Asynchronous): For a pragma
24582         Asynchrronous that applies to a remote access-to-subprogram type, mark
24583         the underlying RACW type as asynchronous.
24584
24585         * link.c: FreeBSD uses GNU ld: set __gnat_objlist_file_supported and
24586          __gnat_using_gnu_linker to 1.
24587
24588         * Makefile.rtl, impunit.adb, g-perhas.ads, g-pehage.ads,
24589         g-pehage.adb: Rename GNAT.Perfect_Hash.Generators to
24590         GNAT.Perfect_Hash_Generators, and remove the empty
24591         GNAT.Perfect_Hash package.
24592
24593         * atree.adb: Minor reformatting
24594
24595         * exp_ch3.adb (Expand_Derived_Record): Rename to
24596         Expand_Record_Extension.
24597         (Build_Record_Init_Proc.Build_Assignment): The default expression in
24598         a component declaration must remain attached at that point in the
24599         tree so New_Copy_Tree copies it if the enclosing record type is derived.
24600         It is therefore necessary to take a copy of the expression when building
24601         the corresponding assignment statement in the init proc.
24602         As a side effect, in the case of a derived record type, we now see the
24603         original expression, without any rewriting that could have occurred
24604         during expansion of the ancestor type's init proc, and we do not need
24605         to go back to Original_Node.
24606
24607         * exp_ch3.ads (Expand_Derived_Record): Rename to
24608         Expand_Record_Extension.
24609
24610         * exp_dist.ads, exp_dist.adb (Underlying_RACW_Type): New subprogram.
24611         Returns the RACW type used to implement a remote access-to-subprogram
24612         type.
24613         (Add_RAS_Proxy_And_Analyze, Build_Remote_Subprogram_Proxy_Type):
24614         New subprograms. Used to create a proxy tagged object for a remote
24615         subprogram. The proxy object is used as the designated object
24616         for RAS values on the same partition (unless All_Calls_Remote applies).
24617         (Build_Get_Unique_RP_Call): New subprogram. Build a call to
24618         System.Partition_Interface.Get_Unique_Remote_Pointer.
24619         (Add_RAS_Access_TSS, Add_RAS_Dereference_TSS):
24620         Renamed from Add_RAS_*_Attribute.
24621         (Add_Receiving_Stubs_To_Declarations): Generate a table of local
24622         subprograms.
24623         New implementation of expansion for remote access-to-subprogram types,
24624         based on the RACW infrastructure.
24625
24626         * exp_dist.ads (Copy_Specification): Update comment to note that this
24627         function can copy the specification from either a subprogram
24628         specification or an access-to-subprogram type definition.
24629
24630 2004-09-09  Ed Schonberg  <schonberg@gnat.com>
24631
24632         * sem_type.adb (Disambiguate): Handle properly an accidental ambiguity
24633         in an instance, between an explicit subprogram an one inherited from a
24634         type derived from an actual.
24635
24636         * exp_ch6.adb (Expand_N_Subprogram_Body): If polling is enabled, do not
24637         add a polling call if the subprogram is to be inlined by the back-end,
24638         to avoid repeated calls with multiple inlinings.
24639
24640         * checks.adb (Apply_Alignment_Check): If the expression in the address
24641         clause is a call whose name is not a static entity (e.g. a dispatching
24642         call), treat as dynamic.
24643
24644 2004-09-09  Robert Dewar  <dewar@gnat.com>
24645
24646         * g-trasym.ads: Minor reformatting
24647
24648         * exp_ch3.adb (Component_Needs_Simple_Initialization): Don't except
24649         packed arrays, since unused bits are expected to be zero for a
24650         comparison.
24651
24652 2004-09-09  Eric Botcazou  <ebotcazou@act-europe.fr>
24653
24654         * exp_pakd.ads: Fix an inacurracy and a couple of typos in the head
24655         comment.
24656
24657 2004-09-09  Pascal Obry  <obry@gnat.com>
24658
24659         * mdll.ads, mdll.adb (Build_Dynamic_Library): New parameter Map_File to
24660         enable map file generation. Add the right option to generate the map
24661         file if Map_File is set to True.
24662
24663         * gnatdll.adb (Gen_Map_File): New variable.
24664         (Syntax): Add info about new -m (Map_File) option.
24665         (Parse_Command_Line): Add support for -m option.
24666         (gnatdll): Pass Gen_Map_File to Build_Dynamic_Library calls.
24667         Minor reformatting.
24668
24669 2004-09-09  Laurent Pautet  <pautet@act-europe.fr>
24670
24671         * gnatls.adb: Add a very verbose mode -V. Such mode is required by the
24672         new gnatdist implementation.
24673         Define a subpackage isolating the output routines specific to this
24674         verbose mode.
24675
24676 2004-09-09  Joel Brobecker  <brobecker@gnat.com>
24677
24678         * Makefile.rtl: (GNATRTL_NONTASKING_OBJS): Add g-dynhta.
24679
24680         * gnat_ugn.texi (Main Subprograms): Fix typo. Deduced, not deducted.
24681
24682 2004-09-09  Cyrille Comar  <comar@act-europe.fr>
24683
24684         * opt.adb (Set_Opt_Config_Switches): Use Ada_Version_Runtime to compile
24685         internal unit.
24686
24687         * opt.ads: Add Ada_Version_Runtime constant used to decide which
24688         version of the language is used to compile the run time.
24689
24690 2004-09-09  Arnaud Charlet  <charlet@act-europe.fr>
24691
24692         * sem_util.adb (Requires_Transient_Scope): Re-enable handling
24693         of variable length temporaries for function return now that the
24694         back-end and gigi support it.
24695
24696 2004-09-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
24697
24698         * misc.c (gnat_print_type): Use TYPE_RM_SIZE_NUM.
24699
24700         * trans.c (struct stmt_group): Delete field GLOBAL.
24701         (gnat_init_stmt_group): Do not initialize it.
24702         (call_to_gnu): Use save_expr, not protect_multiple_eval.
24703         (Exception_Handler_to_gnu_sjlj): Call build_int_cst, not build_int_2
24704         (gnat_to_gnu, case N_Character_Literal, N_String_Literal): Likewise.
24705         (gnat_to_gnu, case N_Compilation_Unit): Do not set GLOBAL in stmt group.
24706         (start_stmt_group): Likewise.
24707         (add_stmt, add_decl_expr): Rework handling of global DECL_EXPRs.
24708
24709         * utils2.c (ggc.h): Include.
24710         (build_call_raise): Call build_int_cst, not build_int_2.
24711
24712         * utils.c (gnat_init_decl_processing): Fix arg to
24713         build_common_tree_nodes.
24714         (create_subprog_type): Do not use SET_TYPE_CI_CO_LIST.
24715         (gnat_define_builtin): Set built_in_decls.
24716         (init_gigi_decls): Call build_int_cst, not build_int_2.
24717
24718         * ada-tree.h (struct lang_decl, struct lang_type): Field is type tree.
24719         (GET_TYPE_LANG_SPECIFIC, SET_TYPE_LANG_SPECIFIC): New macros.
24720         (GET_DECL_LANG_SPECIFIC, SET_DECL_LANG_SPECIFIC): Likewise.
24721         (TYPE_CI_CO_LIST, SET_TYPE_CI_CO_LIST, TYPE_MODULE,
24722         SET_TYPE_MODULE): Use them.
24723         (TYPE_INDEX_TYPE, SET_TYPE_INDEX_TYPE, TYPE_DIGITS_VALUE): Likewise.
24724         (SET_TYPE_DIGITS_VALUE, TYPE_UNCONSTRAINED_ARRAY): Likewise.
24725         (SET_TYPE_UNCONSTRAINED_ARRAY, TYPE_ADA_SIZE,
24726         SET_TYPE_ADA_SIZE): Likewise.
24727         (TYPE_ACTUAL_BOUNDS, SET_TYPE_ACTUAL_BOUNDS): Likewise.
24728         (DECL_CONST_CORRESPONDING_VAR,
24729         SET_DECL_CONST_CORRESPONDING_VAR): Likewise.
24730         (DECL_ORIGINAL_FIELD, SET_DECL_ORIGINAL_FIELD): Likewise.
24731         (TYPE_RM_SIZE_INT, TYPE_RM_SIZE_ENUM, SET_TYPE_RM_SIZE_ENUM): Deleted.
24732         (TYPE_RM_SIZE_NUM): New macro.
24733         (TYPE_RM_SIZE): Modified to use above.
24734
24735         * cuintp.c: (build_cst_from_int): New function.
24736         (UI_To_gnu): Use it.
24737
24738         * decl.c (gnat_to_gnu_entity): Use TYPE_RM_SIZE_NUM.
24739         (make_type_from_size): Avoid changing TYPE_UNSIGNED of a type.
24740         (gnat_substitute_in_type, case ARRAY_TYPE): If old had a
24741         MIN_EXPR for the size, copy it into new.
24742
24743 2004-09-01  Robert Dewar  <dewar@gnat.com>
24744
24745         * exp_ch6.adb (Expand_Call): Properly handle validity checks for
24746         packed indexed component where array is an IN OUT formal. This
24747         generated garbage code previously.
24748
24749         * gnat_ugn.texi: Document -fverbose-asm
24750
24751         * gnat-style.texi: Minor updates (note that boolean constants and
24752         variables are joined with AND/OR rather than short circuit forms).
24753
24754 2004-09-01  Ed Schonberg  <schonberg@gnat.com>
24755
24756         * exp_util.adb (Safe_Unchecked_Type_Conversion): Conversion is safe if
24757         it is an upward conversion of an untagged type with no representation
24758         change.
24759
24760 2004-09-01  Thomas Quinot  <quinot@act-europe.fr>
24761
24762         * rtsfind.ads: Move RCI_Subp_Info and RCI_Subp_Info_Array to
24763         System.Partition_Interface.
24764
24765         * checks.adb (Apply_Access_Checks): Do not generate checks when
24766         expander is not active (but check for unset reference to prefix of
24767         dereference).
24768
24769         * sem_prag.adb (Analyze_Pragma, case Pragma_Debug): Uniformly rewrite
24770         pragma Debug as an if statement with a constant condition, for
24771         consistent treatment of entity references contained within the
24772         enclosed procedure call.
24773
24774 2004-09-01  Vincent Celier  <celier@gnat.com>
24775
24776         * bindgen.adb: (Set_EA_Last): New procedure
24777         (Gen_Exception_Table_Ada, Gen_Exception_Table_C): Use new procedure
24778         Set_EA_Last.
24779         (Gen_Adafinal_Ada): If no finalization, adafinal does nothing
24780         (Gen_Output_File_Ada): Always call Gen_Adafinal_Ada, so that SAL can be
24781         linked without errors.
24782         (Gen_Exception_Table_Ada): Correct bugs when generating code for arrays
24783         ST and EA.
24784         (Gen_Exception_Table_C): Correct same bugs
24785
24786         * vms_data.ads: Add new qualifier /VERBOSE_ASM to GCC_Switches
24787
24788         * g-os_lib.adb (Normalize_Pathname.Get_Directory): When Dir is empty,
24789         on Windows, make sure that the drive letter is in upper case.
24790
24791         * g-os_lib.ads (Normalize_Pathname): Add a comment to indicate that on
24792         Windows, when the drive letter is added and Case_Sensitive is True, the
24793         drive letter is forced to upper case.
24794
24795         * mlib-tgt-irix.adb (Build_Dynamic_Library): Transfer all -lxxx options
24796         to Options_2 for the call to MLib.Utl.Gcc.
24797
24798         * bld.adb (Put_Include_Project): Use '/', not '\' on Windows as
24799         directory separator when defining BASE_DIR.
24800
24801 2004-09-01  Pascal Obry  <obry@gnat.com>
24802
24803         * gprcmd.adb (Extend): Do not output trailing directory separator. This
24804         is not needed and it confuses Windows GNU/make which does not report
24805         directory terminated by a slash as a directory.
24806         (gprcmd): Idem for "pwd" internal command.
24807
24808         * Makefile.generic: Use __GPRCOLON__ instead of pipe character in
24809         target names rewrite to fix regressions with recent version of
24810         GNU/make. Starting with GNU/make 3.80 the pipe character was not
24811         handled properly anymore.
24812
24813 2004-09-01  Andreas Schwab  <schwab@suse.de>
24814
24815         * Make-lang.in (EXTRA_GNATBIND_OBJS): Revert last change.
24816         * raise.c [!IN_RTS]: Undef abort.
24817
24818 2004-08-27  Nathan Sidwell  <nathan@codesourcery.com>
24819
24820         * utils2.c (build_allocator): Use ssize_int.
24821
24822         * utils.c (gnat_init_decl_processing): Ada has a signed sizetype.
24823
24824 2004-08-27  Andreas Schwab  <schwab@suse.de>
24825
24826         * Make-lang.in (EXTRA_GNATBIND_OBJS): Add errors.o.
24827
24828 2004-08-25  Nathan Sidwell  <nathan@codesourcery.com>
24829             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
24830
24831         * ada-tree.h (TYPE_RM_SIZE_INT): Use TYPE_LANG_SLOT_1.
24832
24833 2004-08-25  Nathan Sidwell  <nathan@codesourcery.com>
24834
24835         * cuintp.c (UI_To_gnu): Adjust build_int_cst calls.
24836         * trans.c (Exception_Handler_to_gnu_sjlj, gnat_to_gnu): Likewise.
24837         * utils.c (init_gigi_decls): Likewise.
24838         * utils2.c (build_call_raise, build_allocator): Likewise.
24839
24840 2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
24841
24842         * utils.c (gnat_init_decl_processing): Adjust
24843         build_common_tree_nodes call.
24844
24845 2004-08-20  Nathan Sidwell  <nathan@codesourcery.com>
24846
24847         * utils2.c (build_allocator): Use build_int_cst for negative
24848         size types.
24849
24850 2004-08-18  Richard Henderson  <rth@redhat.com>
24851
24852         * misc.c (LANG_HOOKS_HONOR_READONLY): Remove.
24853
24854 2004-08-16  Nathan Sidwell  <nathan@codesourcery.com>
24855
24856         * cuintp.c (UI_To_gnu): Be more conservative with build_int_cst
24857         call.s
24858         * trans.c (Exception_Handler_to_gnu_sjlj): Likewise.
24859         (gnat_to_gnu): Likewise.
24860
24861 2004-08-16  Pascal Obry  <obry@gnat.com>
24862
24863         * adaint.c (__gnat_prj_add_obj_files): Set to 0 only on Win32 for GCC
24864         backend prior to GCC 3.4. With GCC 3.4 we are using the GCC's shared
24865         option and not mdll anymore. Update comment.
24866
24867 2004-08-16  Pascal Obry  <obry@gnat.com>
24868
24869         * bld.adb (Put_Include_Project): Properly handle directory separators
24870         on Windows.
24871
24872 2004-08-16  Ed Schonberg  <schonberg@gnat.com>
24873
24874         * sem_ch4.adb (Try_Object_Operation): Restructure code. Optimize by
24875         decreasing the number of allocated junk nodes while searching for the
24876         appropriate subprogram.
24877
24878 2004-08-15  Nathan Sidwell  <nathan@codesourcery.com>
24879
24880         * cuintp.c (UI_To_gnu): Use build_int_cst..
24881         * trans.c (Exception_Handler_to_gnu_sjlj, gnat_to_gnu): Likewise.
24882         * utils.c (init_gigi_decls): Likewise.
24883         * utils2.c (build_call_raise): Likewise.
24884
24885 2004-08-13  Olivier Hainque  <hainque@act-europe.fr>
24886
24887         * decl.c (gnat_to_gnu_entity) <E_Variable>: When building an allocator
24888         for a global aliased object with a variable size and an unconstrained
24889         nominal subtype, pretend there is no initializer if the one we have is
24890         incomplete, and avoid referencing an inexistant component in there. The
24891         part we have will be rebuilt anyway and the reference may confuse
24892         further operations.
24893
24894 2004-08-13  Thomas Quinot  <quinot@act-europe.fr>
24895
24896         * einfo.ads: Minor reformatting
24897
24898         * lib-writ.adb (Output_Main_Program_Line): Do not set parameter
24899         restrictions in the ALI if we only want to warn about violations.
24900
24901 2004-08-13  Vincent Celier  <celier@gnat.com>
24902
24903         * ali.adb (Scan_ALI): Initialize component Body_Needed_For_SAL to False
24904         when creating a new Unit_Record in table Units.
24905
24906         * gnatls.adb (Output_Unit): In verbose mode, output the restrictions
24907         that are violated, if any.
24908
24909         * prj-nmsc.adb (Ada_Check.Get_Path_Names_And_Record_Sources): Do not
24910         add directory separator if path already ends with a directory separator.
24911
24912 2004-08-13  Ed Schonberg  <schonberg@gnat.com>
24913
24914         * rtsfind.adb (Entity_Not_Defined): If the error ocurrs in a predefined
24915         unit, this is an attempt to inline a construct that is not available in
24916         the current restricted mode, so abort rather than trying to continue.
24917
24918         * sem_ch3.adb (Build_Underlying_Full_View): If the new type has
24919         discriminants that rename those of the parent, recover names of
24920         original discriminants for the constraint on the full view of the
24921         parent.
24922         (Complete_Private_Subtype): Do not create a subtype declaration if the
24923         subtype is an itype.
24924
24925         * gnat_rm.texi: Added section on implementation of discriminated
24926         records with default values for discriminants.
24927
24928 2004-08-13  Ed Schonberg  <schonberg@gnat.com>
24929
24930         PR ada/15601
24931         * sem_res.adb (Make_Call_Into_Operator): Handle properly the case where
24932         the second operand is overloaded.
24933
24934 2004-08-10  Richard Henderson  <rth@redhat.com>
24935
24936         * utils.c (gnat_install_builtins): Remove __builtin_stack_alloc,
24937         add __builtin_alloca.
24938
24939 2004-08-10  Richard Henderson  <rth@redhat.com>
24940
24941         * config-lang.in (boot_language): Yes.
24942
24943 2004-08-09  Thomas Quinot  <quinot@act-europe.fr>
24944
24945         * g-socket.adb (Abort_Selector): Initialize Buf to prevent valgrind
24946         from complaining on potential uninitialized reference.
24947         Change calls to GNAT.Sockets.Thin.Is_Socket_In_Set to account for
24948         new specification and test explicitly for non-zero return value.
24949
24950         * g-socthi.ads (Is_Socket_In_Set): Declare imported function as
24951         returning C.int, to avoid using a derived boolean type.
24952
24953         * exp_ch5.adb (Make_Tag_Ctrl_Assignments): Use
24954         Duplicate_Subexpr_No_Checks in preference to direct use of
24955         Remove_Side_Effects and New_Copy_Tree.
24956         Clear Comes_From_Source on prefix of 'Size attribute reference.
24957
24958         * g-socthi.adb, g-socthi-vms.adb, g-socthi-mingw.adb,
24959         g-socthi-vxworks.adb: Change calls to
24960         GNAT.Sockets.Thin.Is_Socket_In_Set to account for new specification
24961         and test explicitly for non-zero return value.
24962
24963         * g-socthi-vms.ads, g-socthi-mingw.ads, g-socthi-vxworks.ads:
24964         (Is_Socket_In_Set): Declare imported function as returning C.int, to
24965         avoid using a derived boolean type.
24966
24967 2004-08-09  Albert Lee  <lee@gnat.com>
24968
24969         * system-irix-n32.ads: Refine tasking priority constants for IRIX.
24970
24971 2004-08-09  Pascal Obry  <obry@gnat.com>
24972
24973         * gnat_ugn.texi: Document new way to build DLLs on Windows using
24974         GCC's -shared option.
24975
24976         * mlib-tgt-mingw.adb (Build_Dynamic_Library): Pass GCC's options into
24977         Options_2 parameter (options put after object files).
24978
24979 2004-08-09  Olivier Hainque  <hainque@act-europe.fr>
24980
24981         * decl.c (gnat_to_gnu_entity) <E_Array_Subtype>: Adjust condition to
24982         ignore overflows on low and high bounds of an index to also account for
24983         differences in signedness between sizetype and gnu_index_subtype.
24984         These are as legitimate as the ones caused by a lower TYPE_PRECISION
24985         on sizetype.
24986
24987 2004-08-09  Robert Dewar  <dewar@gnat.com>
24988
24989         * s-solita.ads, s-solita.adb: Minor reformatting
24990
24991         * gnat_rm.texi: Add documentation for pragma Profile (Restricted)
24992         Move pragma Restricted_Run_Time, No_Run_Time, Ravenscar to new
24993         obsolescent section
24994         Add note that No_Implicit_Conditionals does not suppress
24995         run time constraint checks.
24996
24997         * vms_conv.ads: Minor reformatting
24998
24999         * s-secsta.adb: Use SS_Ptr instead of Mark_Id as stack pointer (cleanup
25000         and necessary for following change).
25001         (Mark): Return new format Mark_Id containing sec stack address
25002         (Release): Use sec stack address from Mark_Id avoiding Self call
25003
25004         * s-secsta.ads: Define SS_Ptr to be used instead of Mark_Id as stack
25005         pointer (cleanup and necessary for following change).
25006         Define Mark_Id as record containing address of secondary stack, that way
25007         Release does not need to find the stack again, decreasing the number of
25008         calls to Self and improving efficiency.
25009
25010         * sem_util.ads: Add a ??? comment for Is_Local_Variable_Reference
25011
25012         * sem_ch5.adb (Analyze_Case_Statement): Add circuitry to track value of
25013         case variable into the individual case branches when possible.
25014
25015         * sem_ch11.adb: Minor reformatting
25016
25017         * prj.ads: Correct spelling of suffixs
25018
25019         * prj-nmsc.adb: Minor reformatting
25020         Correct spelling suffixs throughout (also in identifiers)
25021
25022         * freeze.adb: Minor spelling correction
25023
25024         * exp_ch2.adb: Cleanups to handling of Current_Value
25025         (no functional effect).
25026
25027         * bld.adb: Correct spelling of suffixs
25028
25029         * einfo.adb (Enclosing_Dynamic_Scope): Defend against junk argument
25030
25031 2004-08-09  Ed Schonberg  <schonberg@gnat.com>
25032
25033         PR ada/15408
25034         * sem_ch7.adb (Install_Private_Declarations): In the body of the
25035         package or of a child, private entities are both immediately_visible
25036         and not hidden.
25037
25038 2004-08-09  Ed Schonberg  <schonberg@gnat.com>
25039
25040         * sem_eval.adb (Eval_Integer_Literal): If the context is Any_Integer,
25041         there are no range checks on the value of the literal.
25042
25043         * exp_ch7.adb (Insert_Actions_In_Scope_Around): If the node being
25044         wrapped is the triggering alternative of an asynchronous select, action
25045         statements mustbe inserted before the select itself.
25046
25047         * sem_attr.adb (Analyze_Attribute, case 'Size): Handle properly the
25048         case where the prefix is a protected function call.
25049         (Resolve_Attribute, case 'Access): The attribute reference on a
25050         subprogram is legal in a generic body if the subprogram is declared
25051         elsewhere.
25052
25053 2004-08-09  Vincent Celier  <celier@gnat.com>
25054
25055         * makegpr.adb (Build_Library): Link with g++ if C++ is one of the
25056         languages, otherwise building the library may fail with unresolved
25057         symbols.
25058         (Compile_Sources): Do not build libraries if -c switch is used
25059
25060         * gnatlink.adb (Process_Args): New switches -M and -Mmap
25061         (Write_Usage): If map file creation is supported, output new switches
25062         -M and -Mmap.
25063         (Gnatlink): When -M is specified, add the necessary switch(es) to the
25064         gcc call, when supported.
25065
25066         * Makefile.in: Added indepsw.o to the object list for gnatlink
25067         Specified the AIX, GNU/Linux and Windows versions of indepsw.adb
25068
25069         * indepsw-aix.adb, indepsw-linux.adb, indepsw-mingw.adb,
25070         indepsw.adb, indepsw.ads: New files.
25071
25072 2004-08-09  Bernard Banner  <banner@gnat.com>
25073
25074         * system-vxworks-x86.ads, s-vxwork-x86.ads: New files.
25075
25076         * Makefile.in: add section for vxworks x86
25077
25078 2004-08-09  Hristian Kirtchev  <kirtchev@gnat.com>
25079
25080         * exp_ch3.adb (Build_Init_Statements): Add extra condition to deal with
25081         per-object constrained components where the discriminant is of an
25082         Access type.
25083         (Build_Record_Init_Proc): Add condition to prevent the inheritance of
25084         the parent initialization procedure for derived Unchecked_Unions.
25085         Instead, derived Unchecked_Unions build their own initialization
25086         procedure.
25087         (Build_Variant_Record_Equality): Implement Unchecked_Union equality.
25088         Check the body of the subprogram for details.
25089         (Freeze_Record_Type): Prevent the inheritance of discriminant checking
25090         functions for derived Unchecked_Union types by introducing a condition.
25091         Allow the creation of TSS equality functions for Unchecked_Unions.
25092         (Make_Eq_Case): Rename formal parameter Node to E in function signature.
25093         Add formal parameter Discr to function signature. Discr is used to
25094         control the generated case statement for Unchecked_Union types.
25095         (Make_Eq_If): Rename formal parameter Node to E in function signature.
25096
25097         * exp_ch4.adb (Build_Equality_Call): Implement equality calls for
25098         Unchecked_Unions.
25099         Check the body of the subprogram for details.
25100         (Expand_Composite_Equality): Augment composite type equality to include
25101         correct handling of Unchecked_Union components.
25102         (Expand_N_In): Add condition to detect illegal membership tests when the
25103         subtype mark is a constrained Unchecked_Union and the expression lacks
25104         inferable discriminants, and build a Raise_Program_Error node.
25105         (Expand_N_Op_Eq): Add function Has_Unconstrained_UU_Component. Used
25106         to detect types that contain components of unconstrained Unchecked_Union
25107         subtype. Add condition to detect equality between types that have an
25108         unconstrained Unchecked_Union component, and build a Raise_Program_Error
25109         node. Add condition to detect equality between Unchecked_Union types
25110         that lack inferable discriminants, and build a Raise_Program_Error node.
25111         Otherwise build a TSS equality function call.
25112         (Expand_N_Type_Conversion): Add condition to detect illegal conversions
25113         from a derived Unchecked_Union to an unconstrained non-Unchecked_Union
25114         with the operand lacking inferable discriminants, and build a Raise_
25115         Program_Error node.
25116         (Expand_Record_Equality): Remove guard that prevents Unchecked_Union
25117         composite equality.
25118         (Has_Inferable_Discriminants): Implement new predicate for objects and
25119         expressions of Unchecked_Union type. Check the body of subprogram for
25120         details.
25121         (Has_Unconstrained_UU_Components): Add function
25122         Component_Is_Unconstrained_UU. It is used to detect whether a single
25123         component is of an unconstrained Unchecked_Union subtype. Add function
25124         Variant_Is_Unconstrained_UU. It is used to detect whether a single
25125         component inside a variant is of an unconstrained Unchecked_Union type.
25126
25127         * exp_ch5.adb (Expand_Assign_Record): Add condition to copy the
25128         inferred discriminant values. Add condition to generate a case
25129         statement with an inferred discriminant as the switch.
25130         (Make_Component_List_Assign): Introduce a Boolean flag that determines
25131         the behaviour of the subprogram in the presence of an Unchecked_Union.
25132         Add condition to trigger the usage of the inferred discriminant value
25133         as the generated case statement switch.
25134         (Make_Field_Assign): Introduce a Boolean flag that determines the
25135         behaviour of the subprogram in the presence of an Unchecked_Union. Add
25136         condition to trigger the usage of the inferred discriminant value as
25137         the right-hand side of the generated assignment.
25138
25139         * exp_ch6.adb (Expand_Call): Add condition to skip extra actual
25140         parameter generation when dealing with Unchecked_Unions.
25141
25142         * checks.adb (Apply_Discriminant_Check): Do not apply discriminant
25143         checks for Unchecked_Unions.
25144
25145         * einfo.ads: Update comment on usage of flag Has_Per_Object_Constraint
25146
25147         * exp_attr.adb (Expand_N_Attribute_Reference): Produce
25148         Raise_Program_Error nodes for the execution of Read and Write
25149         attributes of Unchecked_Union types and the execution of Input and
25150         Output attributes of Unchecked_Union types that lack default
25151         discriminant values.
25152
25153         * sem_prag.adb (Analyze_Pragma): Remodel the analysis of pragma
25154         Unchecked_Union. Add procedure Check_Component. It is used to inspect
25155         per-object constrained components of Unchecked_Unions for being
25156         Unchecked_Unions themselves. Add procedure Check_Variant. It is used to
25157         check individual components withing a variant.
25158
25159         * sem_res.adb (Resolve_Comparison_Op): Remove guard that prevents
25160         comparison of Unchecked_Unions.
25161         (Resolve_Equality_OP): Remove guard that prevents equality between
25162         Unchecked_Unions.
25163
25164         * sem_util.adb (Build_Component_Subtype): Add guard to prevent creation
25165         of component subtypes for Unchecked_Union components.
25166         (Get_Actual_Subtype): Add condition that returs the Unchecked_Union type
25167         since it is the actual subtype.
25168
25169         * sem_ch12.adb (Instantiate_Type): Add condition to detect the correct
25170         pass of Unchecked_Union subtypes as generic actuals to formal types
25171         that lack known_discriminant_parts or that are derived Unchecked_Union
25172         types, and do nothing. In any other case, produce an error message.
25173
25174         * sem_ch3.adb (Analyze_Component_Declaration): Add function
25175         Contains_POC. It determines whether a constraint uses the discriminant
25176         of an enclosing record type.
25177         Add condition to detect per-object constrained component and set the
25178         appropriate flag.
25179         (Derived_Type_Declaration): Remove guard that prevents derivation from
25180         Unchecked_Union types.
25181         (Process_Subtype): Remove quard that prevents the creation of Unchecked_
25182         Union subtypes.
25183
25184         * sem_ch4.adb (Analyze_Selected_Component): Correct the detection of
25185         references to Unchecked_Union discriminants.
25186
25187         * sem_ch6.adb (Create_Extra_Formals): Add condition to skip extra
25188         formal generation when dealing with Unchecked_Unions.
25189         (Set_Actual_Subtypes): Add condition to prevent generation of actual
25190         subtypes for Unchecked_Unions.
25191
25192         * sem_ch7.adb (Analyze_Package_Specification): Add procedure
25193         Inspect_Unchecked_Union_Completion. It is used to detect incorrect
25194         completions of discriminated partial views by Unchecked_Unions and
25195         produce an error message.
25196
25197 2004-08-09  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
25198
25199         * trans.c (struct stmt_group): New field, GLOBAL.
25200         (global_stmt_group, gnu_elab_proc_decl, build_unit_elab): Deleted.
25201         (struct elab_info): New struct.
25202         (elab_info_list, gnu_elab_proc_stack): New variables.
25203         (Compilation_Unit_to_gnu): New procedure.
25204         (gigi): Call it and also handle elaboration procs we've saved.
25205         (gnat_init_stmt_group): Don't set global_stmt_group; instead initialize
25206         global field from parent.
25207         (gnat_to_gnu): Get decl from gnu_elab_proc_stack.
25208         (gnat_to_gnu, case N_Compilation_Unit): Call Compilation_Unit_to_gnu.
25209         (start_stmt_group): Initialize global field from parent.
25210         (add_decl_expr): Set to global for current statement group.
25211         (gnat_gimplify_expr, case NULL_EXPR): Add operand 0 to pre list, not
25212         post.
25213
25214         * utils.c (global_bindings_p): True when no current_function_decl; no
25215         longer check current_binding_level.
25216
25217 2004-08-09  Ben Brosgol  <brosgol@gnat.com>
25218
25219         * xgnatugn.adb: Added logic to deal with @ifset/@ifclear for edition
25220         choice.
25221
25222         * gnat_rm.texi, gnat_ugn.texi: Added edition conditionalization logic.
25223
25224 2004-08-06  Andreas Schwab  <schwab@suse.de>
25225
25226         * utils.c (gnat_define_builtin): Remove second parameter of
25227         make_decl_rtl.
25228         (begin_subprog_body): Likewise.
25229
25230 2004-07-26  Arnaud Charlet  <charlet@act-europe.fr>
25231
25232         * sem_util.adb (Requires_Transient_Scope): Temporarily disable
25233         optimization, not supported by the tree-ssa back-end.
25234
25235 2004-07-26  Olivier Hainque  <hainque@act-europe.fr>
25236
25237         * s-mastop-irix.adb: Update comments.
25238
25239         * a-except.adb (Exception_Information): Raise Constraint_Error if
25240         exception Id is Null_Id.
25241         This is required behavior, which is more reliably and clearly checked
25242         at the top level interface level.
25243
25244 2004-07-26  Javier Miranda  <miranda@gnat.com>
25245
25246         * exp_aggr.adb (Build_Array_Aggr_Code): Do not build the initialization
25247         call if a component has no default_expression and the box is used.
25248
25249         * sem_aggr.adb (Resolve_Array_Aggregate): If a component has no
25250         default_expression and you use box, it behaves as if you had declared a
25251         stand-alone object.
25252         (Resolve_Record_Aggregate): If a component has no default_expression and
25253         you use box, it behaves as if you had declared a stand-alone object.
25254
25255         * sem_ch10.adb (Install_Siblings): Do not make visible the private
25256         entities of private-with siblings.
25257
25258 2004-07-26  Ed Schonberg  <schonberg@gnat.com>
25259
25260         * sem_ch3.adb (Build_Underlying_Full_View): If this is the full view
25261         for a component of an itype, set the parent pointer for analysis,
25262         there is no list in which to insert it.
25263
25264         * sem_res.adb (Resolve): Call Rewrite_Renamed_Operator only for
25265         bona-fide renamings, not for inherited operations.
25266
25267         * exp_ch4.adb (Expand_Allocator_Expression): If the allocator is an
25268         actual for a formal that is an access parameter, create local
25269         finalization list even if the expression is not an aggregate.
25270
25271 2004-07-26  Ed Schonberg  <schonberg@gnat.com>
25272
25273         PR ada/16213
25274         * sem_ch8.adb (Attribute_Renaming, Check_Library_Level_Renaming):
25275         Diagnose properly illegal subprogram renamings that are library units.
25276
25277 2004-07-26  Ed Schonberg  <schonberg@gnat.com>
25278
25279         PR ada/15588
25280         * sem_util.adb (Is_OK_Variable_For_Out_Formal): If actual is a type
25281         conversion rewritten as an unchecked conversion, check that original
25282         expression is a variable.
25283
25284         * exp_ch4.adb (Expand_N_Type_Conversion): If rewriting as an
25285         unchecked_conversion, create new node rather than rewriting in place,
25286         to preserve original construct.
25287
25288 2004-07-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
25289
25290         * gigi.h (gnat_expand_body): Deleted.
25291
25292         * Make-lang.in: (trans.o): Depends on function.h.
25293
25294         * misc.c: (gnat_expand_body): Moved to here.
25295
25296         * trans.c (gnat_expand_body_1): Deleted.
25297         (gnat_expand_body): Moved from here.
25298         (gnat_to_gnu): N_Implicit_Label_Declaration forces being in elab proc.
25299         (add_stmt): Check for marked visited with global_bindings_p.
25300         (gnat_gimplify_expr, case COMPONENT_REF): New case.
25301         (gnat_gimplify_expr, case NULL_EXPR): Set TREE_NO_WARNING for temp.
25302
25303         * utils2.c (build_binary_op, case MODIFY_EXPR): Put LHS in a
25304         VIEW_CONVERT_EXPR if not operation type.
25305
25306         * utils.c (update_pointer_to): Set DECL_ORIGINAL_FIELD for
25307         fat pointer.
25308
25309         * decl.c, cuintp.c, gigi.h, misc.c, trans.c, utils.c, utils2.c: Minor
25310         changes: reformatting of negation operators, removing unneeded
25311         inequality comparison with zero, converting equality comparisons with
25312         zero to negations, changing int/0/1 to bool/false/true, replace calls
25313         to gigi_abort with abort, and various other similar changes.
25314
25315 2004-07-26  Vincent Celier  <celier@gnat.com>
25316
25317         * gnatcmd.adb (GNATCmd): Add processing for new built-in command
25318         "setup".
25319
25320         * make.adb (Gnatmake): Fail when a library is not present and there is
25321         no object directory.
25322
25323         * mlib-prj.adb (Check_Library): No need to check if the library needs
25324         to be rebuilt if there is no object directory, hence no object files
25325         to build the library.
25326
25327         * opt.ads (Setup_Projects): New Boolean flag.
25328
25329         * prj-nmsc.adb (Locate_Directory): New parameter Project, Kind and
25330         Location.
25331         Create directory when Kind /= "" and in "gnat setup". Report error if
25332         directory cannot be created.
25333         (Ada_Check): Create library interface copy dir if it does not exist
25334         and we are in "gnat setup".
25335         (Find_Sources): No error if in "gnat setup" and no Ada sources were
25336         found.
25337         (Language_Independent_Check): Create object directory, exec directory
25338         and/or library directory if they do not exist and we are in
25339         "gnat setup".
25340
25341         * vms_conv.ads: (Command_Type): New command Setup.
25342
25343         * vms_conv.adb (Initialize): Add Setup component of Cammand_List.
25344
25345         * vms_data.ads: Add qualifiers/switches for new built-in command
25346         "setup".
25347
25348 2004-07-25  Richard Henderson  <rth@redhat.com>
25349
25350         * utils.c (create_subprog_decl): Set DECL_ARTIFICIAL and
25351         DECL_IGNORED_P on RESULT_DECL.
25352
25353 2004-07-20  Olivier Hainque  <hainque@act-europe.fr>
25354
25355         * a-elchha.adb (Last_Chance_Handler): Remove the bogus buffer dynamic
25356         allocation and potentially overflowing update with
25357         Tailored_Exception_Information. Use the sec-stack free procedural
25358         interface to output Exception_Information instead.
25359
25360         * a-except.adb (To_Stderr): New subprogram for character, and string
25361         version moved from a-exextr to be visible from other separate units.
25362         (Tailored_Exception_Information): Remove the procedural version,
25363         previously used by the default Last_Chance_Handler and not any more.
25364         Adjust various comments.
25365
25366         * a-exexda.adb: Generalize the exception information procedural
25367         interface, to minimize the use of secondary stack and the need for
25368         local buffers when the info is to be output to stderr:
25369         (Address_Image): Removed.
25370         (Append_Info_Character): New subprogram, checking for overflows and
25371         outputing to stderr if buffer to fill is of length 0.
25372         (Append_Info_String): Output to stderr if buffer to fill is of length 0.
25373         (Append_Info_Address, Append_Info_Exception_Name,
25374         Append_Info_Exception_Message, Append_Info_Basic_Exception_Information,
25375         Append_Info_Basic_Exception_Traceback,
25376         Append_Info_Exception_Information): New subprograms.
25377         (Append_Info_Nat, Append_Info_NL): Use Append_Info_Character.
25378         (Basic_Exception_Info_Maxlength, Basic_Exception_Tback_Maxlength,
25379         Exception_Info_Maxlength, Exception_Name_Length,
25380         Exception_Message_Length): New subprograms.
25381         (Exception_Information): Use Append_Info_Exception_Information.
25382         (Tailored_Exception_Information): Use
25383         Append_Info_Basic_Exception_Information.
25384         Export services for the default Last_Chance_Handler.
25385
25386         * a-exextr.adb (To_Stderr): Remove. Now in a-except to be usable by
25387         other separate units.
25388
25389 2004-07-20  Vincent Celier  <celier@gnat.com>
25390
25391         * clean.adb, mlib-utl.adb, osint.adb, makegpr.adb: Minor reformatting.
25392
25393 2004-07-20  Ed Schonberg  <schonberg@gnat.com>
25394
25395         * freeze.adb (Freeze_Entity): If entity is a discriminated record type,
25396         emit itype references for the designated types of component types that
25397         are declared outside of the full record declaration, and that may
25398         denote a partial view of that record type.
25399
25400 2004-07-20  Ed Schonberg  <schonberg@gnat.com>
25401
25402         PR ada/15607
25403         * sem_ch3.adb (Build_Discriminated_Subtype): Do not attach a subtype
25404         which is the designated type in an access component declaration, to the
25405         list of incomplete dependents of the parent type, to avoid elaboration
25406         issues with out-of-scope subtypes.
25407         (Complete_Private_Subtype): Recompute Has_Unknown_Discriminants from the
25408         full view of the parent.
25409
25410 2004-07-20  Ed Schonberg  <schonberg@gnat.com>
25411
25412         PR ada/15610
25413         * sem_ch8.adb (Find_Expanded_Name): If name is overloaded, reject
25414         entities that are hidden, such as references to generic actuals
25415         outside an instance.
25416
25417 2004-07-20  Javier Miranda  <miranda@gnat.com>
25418
25419         * sem_ch4.adb (Try_Object_Operation): New subprogram that gives
25420         support to the new notation.
25421         (Analyze_Selected_Component): Add call to Try_Object_Operation.
25422
25423 2004-07-20  Jose Ruiz  <ruiz@act-europe.fr>
25424
25425         * s-taprob.adb: Adding the elaboration code required for initializing
25426         the tasking soft links that are common to the full and the restricted
25427         run times.
25428
25429         * s-tarest.adb (Init_RTS): Tasking soft links that are shared with the
25430         restricted run time has been moved to the package
25431         System.Soft_Links.Tasking.
25432
25433         * s-tasini.adb (Init_RTS): Tasking soft links that are shared with the
25434         restricted run time has been moved to the package
25435         System.Soft_Links.Tasking.
25436
25437         * Makefile.rtl: Add entry for s-solita.o in run-time library list.
25438
25439         * s-solita.ads, s-solita.adb: New files.
25440
25441 2004-07-20  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
25442
25443         * trans.c (Identifier_to_gnu, Pragma_to_gnu, Attribute_to_gnu,
25444         Case_Statement_to_gnu): Split off from gnat_to_gnu.
25445         (Loop_Statement_to_gnu, Subprogram_Body_to_gnu, call_to_gnu,
25446         Handled_Sequence_Of_Statements_to_gnu, Exception_Handler_to_gnu_sjlj,
25447         Exception_Handler_to_gnu_zcx): Likewise.
25448
25449 2004-07-17  Joseph S. Myers  <jsm@polyomino.org.uk>
25450
25451         * gigi.h (builtin_function): Declare.
25452
25453 2004-07-15  Robert Dewar  <dewar@gnat.com>
25454
25455         * makegpr.adb, s-secsta.ads, sem_ch3.adb, sem_case.adb: Minor
25456         reformatting
25457
25458         * gnat_ugn.texi: Add instantiation of direct_io or sequential_io with
25459         access values as an example of a warning.
25460
25461         * gnat_rm.texi: Document new attribute Has_Access_Values
25462
25463         * gnat-style.texi: Document that box comments belong on nested
25464         subprograms
25465
25466         * sem_util.ads (Has_Access_Values): Improved documentation
25467
25468         * s-finimp.ads, s-finimp.adb: Fix spelling error in comment
25469
25470         * sem_prag.adb (Check_Duplicated_Export_Name): New procedure
25471         (Process_Interface_Name): Call to this new procedure
25472         (Set_Extended_Import_Export_External_Name): Call to this new procedure
25473
25474         * s-mastop-x86.adb, 9drpc.adb: Fix spelling error in comment
25475
25476         * a-direio.ads, a-sequio.ads: Warn if Element_Type has access values
25477
25478         * einfo.ads: Minor comment typo fixed
25479
25480 2004-07-15  Jose Ruiz  <ruiz@act-europe.fr>
25481
25482         * snames.adb: Add _atcb.
25483
25484         * snames.ads: Add Name_uATCB.
25485
25486         * s-tarest.adb (Create_Restricted_Task): ATCBs are always preallocated
25487         (in the expanded code) when using the restricted run time.
25488
25489         * s-tarest.ads (Create_Restricted_Task): Created_Task transformed into
25490         a in parameter in order to allow ATCBs to be preallocated (in the
25491         expanded code).
25492
25493         * s-taskin.adb (Initialize_ATCB): T converted into a in parameter in
25494         order to allow ATCBs to be preallocated. In case of error, the ATCB is
25495         deallocated in System.Tasking.Stages.
25496
25497         * s-taskin.ads (Initialize_ATCB): T converted into a in parameter in
25498         order to allow ATCBs to be preallocated.
25499
25500         * s-tassta.adb (Create_Task): In case of error the ATCB is deallocated
25501         here. It was previously done in Initialize_ATCB.
25502
25503         * rtsfind.ads: Make the Ada_Task_Control_Block visible.
25504
25505         * exp_ch9.adb: Preallocate the Ada_Task_Control_Block when using the
25506         Restricted run time.
25507
25508         * exp_ch3.adb: When using the Restricted run time, pass the
25509         preallocated Ada_Task_Control_Block when creating a task.
25510
25511 2004-07-15  Ed Schonberg  <schonberg@gnat.com>
25512
25513         * sem_util.adb (Normalize_Actuals): If there are no actuals on a
25514         function call that is itself an actual in an enclosing call, diagnose
25515         problem here rather than assuming that resolution will catch it.
25516
25517         * sem_ch7.adb (Analyze_Package_Specification): If the specification is
25518         the local copy of a generic unit for a formal package, and the generic
25519         is a child unit, install private part of ancestors before compiling
25520         private part of spec.
25521
25522         * sem_cat.adb (Validate_Categorization_Dependency): Simplify code to
25523         use scope entities rather than tree structures, to handle properly
25524         parent units that are instances rewritten as bodies for inlining
25525         purposes.
25526
25527         * sem_ch10.adb (Get_Parent_Entity, Implicit_With_On_Parent,
25528         Remove_Parents): Handle properly a parent unit that is an
25529         instantiation, when the unit has been rewritten as a body for inlining
25530         purposes.
25531
25532         * par.adb (Goto_List): Global variable to collect goto statements in a
25533         given unit, for use in detecting natural loops.
25534
25535         * par-ch5.adb (P_Goto_Statement): Add goto to global Goto_List, for
25536         use in detecting natural loops.
25537
25538         * par-labl.adb (Find_Natural_Loops): Recognize loops create by
25539         backwards goto's, and rewrite as a infinite loop, to improve locality
25540         of temporaries.
25541
25542         * exp_util.adb (Force_Evaluation): Recognize a left-hand side
25543         subcomponent that includes an indexed reference, to prevent the
25544         generation of copies that would miscompile the desired assignment
25545         statement.
25546         (Build_Task_Image_Decls): Add a numeric suffix to
25547         generated name for string variable, to avoid spurious conflicts with
25548         the name of the type of a single protected object.
25549
25550         * exp_ch4.adb (Expand_Array_Equality): If indices are distinct, use a
25551         loop with an explicit exit statement, to avoid generating an
25552         out-of-range value with 'Succ leading to spurious constraint_errors
25553         when compiling with -gnatVo.
25554
25555 2004-07-15  Thomas Quinot  <quinot@act-europe.fr>
25556
25557         * sem_ch4.adb (Analyze_Slice): Always call Analyze on the prefix: it
25558         might not be analyzed yet, even if its Etype is already set (case of an
25559         unchecked conversion built using Unchecked_Convert_To, for example).
25560         If the prefix has already been analyzed, this will be a nop anyway.
25561
25562         * exp_ch5.adb (Make_Tag_Ctrl_Assignment): For an assignment of a
25563         controller type, or an assignment of a record type with controlled
25564         components, copy only user data, and leave the finalization chain
25565         pointers untouched.
25566
25567 2004-07-15  Vincent Celier  <celier@gnat.com>
25568
25569         * make.adb (Collect_Arguments): Improve error message when attempting
25570         to compile a source not part of any project, when -x is not used.
25571
25572         * prj.ads: (Defined_Variable_Kind): New subtype
25573
25574         * prj-attr.adb (Register_New_Package): Two new procedures to register
25575         a package with or without its attributes.
25576         (Register_New_Attribute): Mew procedure to register a new attribute in a
25577         package.
25578         New attribute oriented subprograms: Attribute_Node_Id_Of,
25579         Attribute_Kind_Of, Set_Attribute_Kind_Of, Attribute_Name_Of,
25580         Variable_Kind_Of, Set_Variable_Kind_Of, Optional_Index_Of,
25581         Next_Attribute.
25582         New package oriented subprograms: Package_Node_Id_Of,
25583         Add_Unknown_Package, First_Attribute_Of, Add_Attribute.
25584
25585         * prj-attr.ads (Attribute_Node_Id): Now a private, self initialized
25586         type.
25587         (Package_Node_Id): Now a private, self initialized type
25588         (Register_New_Package): New procedure to register a package with its
25589         attributes.
25590         New attribute oriented subprograms: Attribute_Node_Id_Of,
25591         Attribute_Kind_Of, Set_Attribute_Kind_Of, Attribute_Name_Of,
25592         Variable_Kind_Of, Set_Variable_Kind_Of, Optional_Index_Of,
25593         Next_Attribute.
25594         New package oriented subprograms: Package_Node_Id_Of,
25595         Add_Unknown_Package, First_Attribute_Of, Add_Attribute.
25596
25597         * prj-dect.adb (Parse_Attribute_Declaration,
25598         Parse_Package_Declaration): Adapt to new spec of Prj.Attr.
25599
25600         * prj-makr.adb (Make): Parse existing project file before creating
25601         other files. Fail if there was an error during parsing.
25602
25603         * prj-proc.adb (Add_Attributes, Process_Declarative_Items): Adapt to
25604         new spec of Prj.Attr.
25605
25606         * prj-strt.adb (Attribute_Reference, Parse_Variable_Reference): Adapt
25607         to new spec of Prj.Attr.
25608
25609 2004-07-15  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
25610
25611         * utils2.c: Fix typo in comment.
25612
25613 2004-07-14  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
25614
25615         * trans.c (add_decl_expr): Clear TREE_READONLY if clear DECL_INITIAL.
25616         * utils.c (unchecked_convert): Don't do two VIEW_CONVERT_EXPRs.
25617
25618 2004-07-14  Andreas Schwab  <schwab@suse.de>
25619
25620         * trans.c (gnat_init_stmt_group): Remove duplicate definition.
25621
25622 2004-07-13  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
25623
25624         * decl.c: (gnat_to_gnu_entity, object case): Convert initializer to
25625         object type.
25626         (gnat_to_gnu_entity, case E_Record_Subtype): Properly set
25627         TYPE_STUB_DECL.
25628
25629         * misc.c (gnat_types_compatible_p): New function.
25630         (LANG_HOOKS_TYPES_COMPATIBLE_P): New hook, to use it.
25631         (LANG_HOOKS_TYPE_MAX_SIZE, gnat_type_max_size): New.
25632
25633         * trans.c (gigi): Move processing of main N_Compilation_Unit here.
25634         (gnat_to_gnu, case N_Compilation_Unit): Just handle nested case here.
25635         (add_stmt): Force walking of sizes and DECL_INITIAL for DECL_EXPR.
25636         (mark_visited): Don't mark dummy type.
25637         (tree_transform <N_Procedure_Call_Statement>): Unless this is an In
25638         parameter, we must remove any LJM building from GNU_NAME.
25639         (gnat_to_gnu, case N_String_Literal): Fill in indices in CONSTRUCTOR.
25640         (pos_to_constructor): Use int_const_binop.
25641         (gnat_to_gnu, case N_Identifier): Don't reference DECL_INITIAL of
25642         PARM_DECL.
25643
25644         * utils.c (gnat_init_decl_processing): Don't make two "void" decls.
25645         (gnat_pushlevel): Set TREE_USE on BLOCK node.
25646         (gnat_install_builtins): Add __builtin_memset.
25647
25648 2004-07-13  Olivier Hainque  <hainque@act-europe.fr>
25649
25650         * decl.c (gnat_to_gnu_entity <E_Variable>): If we are making a pointer
25651         for a renaming, stabilize the initialization expression if we are at a
25652         local level.  At the local level, uses of the renaming may be performed
25653         by a direct dereference of the initializing expression, and we don't
25654         want possible variables there to be evaluated for every use.
25655
25656         * trans.c (gnat_stabilize_reference, gnat_stabilize_reference_1):
25657         Propagate TREE_SIDE_EFFECTS and TREE_THIS_VOLATILE to avoid loosing
25658         them on the way.  Account for the fact that we may introduce side
25659         effects in the process.
25660
25661 2004-07-13  Richard Henderson  <rth@redhat.com>
25662
25663         * misc.c (default_pass_by_ref): Use pass_by_reference.
25664
25665 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
25666
25667         * misc.c (LANG_HOOKS_CLEAR_BINDING_STACK, LANG_HOOKS_PUSHLEVEL,
25668         LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
25669
25670 2004-07-08  Richard Henderson  <rth@redhat.com>
25671
25672         * trans.c (gnat_to_gnu <N_Handled_Sequence_Of_Statements>): Update
25673         commentary.
25674
25675 2004-07-06  Vincent Celier  <celier@gnat.com>
25676
25677         * vms_conv.ads: Minor reformatting.
25678         Alphabetical order for enumerated values of type Command_Type, to have
25679         the command in alphabetical order for the usage.
25680
25681         * vms_conv.adb (Process_Argument): Set Keep_Temporary_Files to True for
25682         the special qualifier /KEEP_TEMPORARY_FILES (minimum 6 characters).
25683
25684         * gnat_ugn.texi: Document new switch -dn for the GNAT driver.
25685
25686         * makegpr.adb (Global_Archive_Exists): New global Boolean variable
25687         (Add_Archive_Path): Only add the global archive if there is one.
25688         (Build_Global_Archive): Set Global_Archive_Exists depending if there is
25689         or not any object file to put in the global archive, and don't build
25690         a global archive if there is none.
25691         (X_Switches): New table
25692         (Compile_Link_With_Gnatmake): Pass to gnatmake the -X switches stored
25693         in the X_Switches table, if any.
25694         (Initialize): Make sure the X_Switches table is empty
25695         (Scan_Arg): Record -X switches in table X_Switches
25696
25697         * opt.ads (Keep_Temporary_Files): New Boolean flag, defaulted to False.
25698
25699         * make.adb: Minor comment fix
25700
25701         * gnatname.adb (Gnatname): When not on VMS, and gnatname has been
25702         invoked with directory information, add the directory in front of the
25703         path.
25704
25705         * gnatchop.adb (Gnatchop): When not on VMS, and gnatchop has been
25706         invoked with directory information, add the directory in front of the
25707         path.
25708
25709         * gnatcmd.adb (Delete_Temp_Config_Files): Only delete temporary files
25710         when Keep_Temporary_Files is False.
25711         (GNATCmd): When not on VMS, and the GNAT driver has been invoked with
25712         directory information, add the directory in front of the path.
25713         When not on VMS, handle new switch -dn before the command to set
25714         Keep_Temporary_Files to True.
25715         (Non_VMS_Usage): Use lower case for the non VMS usage: this is valid
25716         everywhere.
25717
25718         * gnatlink.adb (Gnatlink): When not on VMS, and gnatlink has been
25719         invoked with directory information, add the directory in front of the
25720         path.
25721
25722 2004-07-06  Thomas Quinot  <quinot@act-europe.fr>
25723
25724         * snames.ads, snames.adb (Name_Stub): New name for the distributed
25725         systems annex.
25726
25727         * rtsfind.ads: New RTE TC_Object, for DSA/PolyORB.
25728         New RTEs RAS_Proxy_Type and RAS_Proxy_Type_Access, for DSA.
25729
25730         * g-socket.adb (To_Timeval): Fix incorrect conversion of
25731         Selector_Duration to Timeval for the case of 0.0.
25732
25733         * exp_util.ads (Evolve_Or_Else): Fix overenthusiastic copy/paste of
25734         documentation from Evolve_And_Then.
25735
25736 2004-07-06  Jose Ruiz  <ruiz@act-europe.fr>
25737
25738         * s-taprop-tru64.adb, s-taprop-os2.adb,
25739         s-taprop-mingw.adb, s-taprop-posix.adb: Update comment.
25740
25741 2004-07-06  Robert Dewar  <dewar@gnat.com>
25742
25743         * s-osinte-hpux.ads, s-osinte-freebsd.ads,
25744         s-osinte-lynxos.ads, s-taprop-lynxos.adb, s-osinte-tru64.ads,
25745         s-osinte-aix.ads, s-osinte-irix.ads, s-taprop-irix.adb,
25746         s-interr-sigaction.adb, s-taprop-irix-athread.adb,
25747         s-osinte-hpux-dce.adb, s-taprop-hpux-dce.adb,
25748         s-taprop-linux.adb, s-taprop-dummy.adb, s-taprop-solaris.adb,
25749         s-interr-vms.adb, s-osinte-vms.ads, s-taprop-vms.adb,
25750         s-osinte-vxworks.ads, s-osprim-vxworks.adb, a-numaux-x86.adb,
25751         a-except.adb, a-exexpr.adb, a-intsig.adb, a-tags.adb,
25752         a-tags.ads, bindgen.ads, checks.adb, checks.adb,
25753         csets.ads, einfo.ads, einfo.ads, elists.adb, exp_ch4.adb,
25754         exp_ch7.adb, exp_dist.adb, exp_util.adb, freeze.adb,
25755         g-dynhta.adb, gnatmem.adb, g-regexp.adb, inline.adb,
25756         i-os2thr.ads, osint.adb, prj.adb, scng.adb, sem_cat.adb,
25757         sem_ch10.adb, sem_ch12.adb, sem_ch4.adb, sem_ch7.adb,
25758         sem_ch8.adb, sem_disp.adb, sem_prag.adb, sem_res.adb,
25759         sem_type.adb, sem_type.ads, sem_warn.adb, s-ficobl.ads,
25760         s-finimp.adb, s-htable.adb, sinfo.ads, sinput-l.ads,
25761         s-interr.adb, s-interr.ads, sprint.adb, s-tarest.adb,
25762         s-tasini.ads, s-taskin.ads, s-taskin.ads, uname.adb,
25763         vms_data.ads: Minor reformatting,
25764         Fix bad box comment format.
25765
25766         * gnat_rm.texi: Fix minor grammatical error
25767
25768         * sem_attr.adb, exp_attr.adb: New attribute Has_Access_Values
25769
25770         * sem_util.ads, sem_util.adb (Requires_Transient_Scope): Allow many
25771         more cases of discriminated records to be recognized as not needing a
25772         secondary stack.
25773         (Has_Access_Values): New function.
25774
25775         * snames.h, snames.adb, snames.ads: New attribute Has_Access_Values
25776
25777         * cstand.adb, layout.ads, layout.adb, sem_ch13.ads: Change name
25778         Set_Prim_Alignment to Set_Elem_Alignment (more accurate correspondence
25779         with LRM terminology).
25780         Change terminology in comments primitive type => elementary type.
25781
25782 2004-07-06  Ed Schonberg  <schonberg@gnat.com>
25783
25784         PR ada/15602
25785         * sem_ch7.adb (Unit_Requires_Body): For a generic package, the formal
25786         parameters do not impose any requirements on the presence of a body.
25787
25788 2004-07-06  Ed Schonberg  <schonberg@gnat.com>
25789
25790         PR ada/15593
25791         * sem_ch12.adb (Analyze_Package_Instantiation): If the generic is not a
25792         compilation unit and is in an open scope at the point of instantiation,
25793         assume that a body may be present later.
25794
25795 2004-07-06  Ed Schonberg  <schonberg@gnat.com>
25796
25797         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case 'Size):
25798         Improve error message when specified size is not supported.
25799
25800         * sem_ch6.adb (Maybe_Primitive_Operation): A library-level subprogram
25801         is never a primitive operation.
25802
25803 2004-07-05  Andreas Schwab  <schwab@suse.de>
25804
25805         * ada-tree.h (TYPE_LEFT_JUSTIFIED_MODULAR_P): Use
25806         RECORD_OR_UNION_CHECK.
25807         (TYPE_CONTAINS_TEMPLATE_P): Likewise.
25808
25809 2004-07-04  Kelley Cook  <kcook@gcc.gnu.org>
25810
25811         * Make-lang.in (doc/gnat_ugn_unw.texi): Eliminate explicit
25812         dependency on xgnatugn, instead build it via a submake.
25813         (ADA_INFOFILES): Add doc/gnat_ugn_unw.texi.
25814
25815 2004-07-04  Richard Henderson  <rth@redhat.com>
25816
25817         * utils2.c (gnat_mark_addressable): Don't put_var_into_stack.
25818
25819 2004-07-01  Richard Henderson  <rth@redhat.com>
25820
25821         * trans.c (gnat_stabilize_reference): Don't handle RTL_EXPR.
25822         * utils.c (max_size): Likewise.
25823
25824 2004-06-28  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
25825
25826         * decl.c: Remove calls to add_decl_expr, pushdecl, rest_of_compilation,
25827         and rest_of_type_compilation; add arg to create_*_decl.
25828         (annotate_decl_with_node): Deleted.
25829         (gnat_to_gnu_entity, case E_Array_Type): Set location of fields.
25830         * gigi.h (get_decls, block_has_vars, pushdecl): Deleted.
25831         (get_current_block_context, gnat_pushdecl): New declarations.
25832         (gnat_init_stmt_group): Likewise.
25833         (create_var_decl, create_type_decl, create_subprog_decl): Add new arg.
25834         * misc.c (LANG_HOOKS_CLEAR_BINDING_STACK): Deleted.
25835         (LANG_HOOKS_GETDECLS, LANG_HOOKS_PUSHDECL): Deleted.
25836         (gnat_init): Call gnat_init_stmt_group.
25837         * trans.c (global_stmt_group, gnu_elab_proc_decl): New variables.
25838         (gnu_pending_elaboration_list): Deleted.
25839         (mark_visited, mark_unvisited, gnat_init_stmt_group): New functions.
25840         (gigi): Rearrange initialization calls and move some to last above.
25841         (gnat_to_gnu): If statement and not in procedure, go into elab proc.
25842         Delete calls to add_decl_expr; add arg to create_*_decl.
25843         (gnat_to_gnu, case N_Loop): Recalculate side effects on COND_EXPR.
25844         (gnat_to_gnu, case N_Subprogram_Body): Move some code to
25845         begin_subprog_body and call it.
25846         Don't push and pop ggc context.
25847         (gnat_to_gnu, case N_Compilation_Unit): Rework to support elab proc.
25848         (add_stmt): Remove handling of DECL_EXPR from here.
25849         If not in function, mark visited.
25850         (add_decl_expr): Put global at top level.
25851         Check for cases of DECL_INITIAL we have to handle here.
25852         (process_type): Add extra arg to create_type_decl.
25853         (build_unit_elab): Rework to just gimplify.
25854         * utils.c (pending_elaborations, elist_stack, getdecls): Deleted.
25855         (block_has_vars, mark_visited, add_pending_elaborations): Likewise.
25856         (get_pending_elaborations, pending_elaborations_p): Likewise.
25857         (push_pending_elaborations, pop_pending_elaborations): Likewise.
25858         (get_elaboration_location, insert_elaboration_list): Likewise.
25859         (gnat_binding_level): Renamed from ada_binding_level.
25860         (init_gnat_to_gnu): Don't clear pending_elaborations.
25861         (global_bindings_p): Treat as global if no current_binding_level.
25862         (set_current_block_context): New function.
25863         (gnat_pushdecl): Renamed from pushdecl; major rework.
25864         All callers changed.
25865         (create_type_decl, create_var_decl, create_subprog_decl): Add new arg.
25866         (finish_record_type): Call call pushdecl for stub decl.
25867         (function_nesting_depth): Deleted.
25868         (begin_subprog_body): Delete obsolete code.
25869         * utils2.c (build_call_alloc_dealloc): Add new arg to create_var_decl.
25870
25871 2004-06-28  Robert Dewar  <dewar@gnat.com>
25872
25873         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
25874         mlib-tgt-irix.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
25875         mlib-tgt-linux.adb, mlib-tgt-solaris.adb, mlib-tgt-solaris.adb,
25876         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
25877         a-strmap.adb, a-strmap.ads, clean.adb: Minor reformatting
25878
25879         * exp_util.adb (Is_Possibly_Unaligned_Slice): Completely rewritten, to
25880         deal with problem of inefficient slices on machines with strict
25881         alignment, when the slice is a component of a composite.
25882
25883         * checks.adb (Apply_Array_Size_Check): Do not special case 64-bit
25884         machines, we need the check there as well.
25885
25886 2004-06-28  Ed Schonberg  <schonberg@gnat.com>
25887
25888         * exp_ch5.adb (Expand_Assign_Array): Use correct condition to
25889         determine safe copying direction for overlapping slice assignments
25890         when component is controlled.
25891
25892         * sem_ch12.adb (Instantiate_Formal_Package): Implicit operations of a
25893         formal derived type in the actual for a formal package are visible in
25894         the enclosing instance.
25895
25896 2004-06-28  Ed Schonberg  <schonberg@gnat.com>
25897
25898         PR ada/15600
25899         * sem_util.adb (Trace_Components): Diagnose properly an illegal
25900         circularity involving a private type whose completion includes a
25901         self-referential component.
25902         (Enter_Name): Use Is_Inherited_Operation to distinguish a source
25903         renaming or an instantiation from an implicit derived operation.
25904
25905 2004-06-28  Pascal Obry  <obry@gnat.com>
25906
25907         * mlib-tgt-mingw.adb: (Library_Exists_For): Remove "lib" prefix from
25908         DLL.
25909         (Library_File_Name_For): Idem.
25910
25911 2004-06-28  Matthew Gingell  <gingell@gnat.com>
25912
25913         * g-traceb.ads: Add explanatory note on the format of addresses
25914         expected by addr2line.
25915
25916 2004-06-28  Jerome Guitton  <guitton@act-europe.fr>
25917
25918         * Makefile.in: Force debugging information on s-tasdeb.adb,
25919         a-except.adb and s-assert.adb needed by the debugger.
25920
25921 2004-06-28  Vincent Celier  <celier@gnat.com>
25922
25923         * make.adb (Collect_Arguments_And_Compile): Change Flag1 to
25924         Need_To_Build_Lib.
25925         (Gnatmake): Ditto.
25926
25927         * mlib-prj.adb (Check_Library): Replace Flag1 with Need_To_Build_Lib
25928
25929         * prj.adb: Minor reformatting
25930         (Project_Empty): Change Flag1 to Need_To_Build_Lib. Remove Flag2.
25931
25932         * prj.ads: Comment updates
25933         Minor reformatting
25934         (Project_Data): Change Flag1 to Need_To_Build_Lib.
25935         Remove Flag2: not used.
25936
25937         * prj-dect.adb (Parse_Declarative_Items): Accept "null" as a
25938         declaration.
25939
25940         * gnat_ugn.texi: Put a "null;" declaration in one project file example
25941
25942         * gnat_rm.texi: Document Empty declarations "null;".
25943
25944         * makegpr.adb (Compile_Link_With_Gnatmake): Put the global archives in
25945         front of the linker options.
25946         (Link_Foreign): Put the global archives and the libraries in front of
25947         the linker options.
25948
25949 2004-06-28  Javier Miranda  <miranda@gnat.com>
25950
25951         * rtsfind.adb: (Get_Unit_Name): Fix typo in comment
25952         (RTU_Loaded): Code cleanup
25953         (Set_RTU_Loaded): New procedure to register as *loaded* explicitly
25954         withed predefined units.
25955
25956         * rtsfind.ads (Set_RTU_Loaded): New procedure to register as *loaded*
25957         explicitly withed predefined units.
25958         Fix typo in comment
25959
25960         * sem_ch10.adb (Analyze_Compilation_Unit): Register as *loaded*
25961         explicitly withed predefined units.
25962
25963 2004-06-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
25964
25965         * ada-tree.def (DECL_STMT): Deleted.
25966         * ada-tree.h (IS_ADA_STMT): Now test against STMT_STMT.
25967         (DECL_STMT_VAR): Deleted.
25968         * decl.c: add_decl_stmt now add_decl_expr.
25969         * gigi.h: Likewise.
25970         * trans.c: Likewise.
25971         (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Deleted.
25972         (gnat_to_gnu, case N_Subprogram_Body): Set cfun->function_end_locus.
25973         (add_stmt): Only handle padded type here.
25974         (add_stmt_with_node): Allow gnat_node to not be present.
25975         (gnat_gimplify_stmt, case USE_STMT): Set *STMT_P to null.
25976         (gnat_gimplify_stmt, case DECL_STMT): Deleted.
25977         (gnat_stabilize_reference_1): If COMPONENT_REF of fat pointer,
25978         make a SAVE_EXPR for the entire fat pointer.
25979         * utils.c (pushdecl): Walk a DECL_EXPR in global case.
25980         (create_index_type): Make a DECL_EXPR.
25981         (end_subprog_body): Don't call allocate_struct_function here but
25982         do clear cfun.
25983
25984 2004-06-25  Pascal Obry  <obry@gnat.com>
25985
25986         * makegpr.adb (Build_Library): Remove parameter Lib_Address and
25987         Relocatable from Build_Dynamic_Library call.
25988
25989         * gnat_ugn.texi: Change documentation about Library_Kind. Dynamic and
25990         Relocatable are now synonym.
25991
25992         * Makefile.in: Use s-parame-mingw.adb on MingW platform.
25993
25994         * mlib-prj.adb (Build_Library): Remove DLL_Address constant definition.
25995         Remove parameter Lib_Address and Relocatable from Build_Dynamic_Library
25996         call.
25997
25998         * mlib-tgt.ads, mlib-tgt.adb (Build_Dynamic_Library): Remove parameter
25999         Lib_Address and Relocatable.
26000         (Default_DLL_Address): Removed.
26001
26002         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
26003         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
26004         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-vxworks.adb:
26005         (Build_Dynamic_Library): Remove parameter Lib_Address and Relocatable.
26006         (Default_DLL_Address): Removed.
26007
26008         * mlib-tgt-mingw.adb: Ditto.
26009         (Build_Dynamic_Library): Do not add "lib" prefix to the DLL name.
26010
26011         * s-taprop-mingw.adb (Create_Task): Use Adjust_Storage_Size to compute
26012         the initial thread stack size.
26013
26014         * a-strmap.ads: Move package L to private part as it is not used in
26015         the spec. Found while reading code.
26016
26017 2004-06-25  Olivier Hainque  <hainque@act-europe.fr>
26018
26019         * tracebak.c: Introduce support for a GCC infrastructure based
26020         implementation of __gnat_backtrace.
26021
26022         * raise.c: Don't rely on a C mapping of the GNAT_GCC_Exception record
26023         any more. Use accessors instead. This eases maintenance and relaxes
26024         some alignment constraints.
26025         (_GNAT_Exception structure): Remove the Ada specific fields
26026         (EID_For, Adjust_N_Cleanups_For): New accessors, exported by
26027         a-exexpr.adb.
26028         (is_handled_by, __gnat_eh_personality): Replace component references to
26029         exception structure by use of the new accessors.
26030
26031         * init.c (__gnat_initialize): Adjust comments to match the just
26032         reverted meaning of the -static link-time option.
26033
26034         * adaint.c (convert_addresses): Arrange not to define a stub for
26035         mips-irix any more, as we now want to rely on a real version from a
26036         recent libaddr2line.
26037
26038         * a-exexpr.adb: Provide new accessors to a GNAT_GCC occurrence, so that
26039         the personality routine can use them and not have to rely on a C
26040         counterpart of the record anymore. This simplifies maintenance and
26041         relaxes the constraint of having Standard'Maximum_Alignment match
26042         BIGGEST_ALIGNMENT.
26043         Update comments, and add a section on the common header alignment issue.
26044
26045 2004-06-25  Geert Bosch  <bosch@gnat.com>
26046
26047         * a-ngelfu.adb (Tanh): Use full 20 digit precision for constants in
26048         polynomial approximation. Fixes inconsistency with Cody/Waite algorithm.
26049
26050 2004-06-25  Robert Dewar  <dewar@gnat.com>
26051
26052         * gnat_rm.texi: Fix section on component clauses to indicate that the
26053         restriction on byte boundary placement still applies for bit packed
26054         arrays.
26055         Add comment on stack usage from Initialize_Scalars
26056
26057         * gnat_ugn.texi: Add documentation for -gnatyLnnn
26058
26059         * stylesw.ads, stylesw.adb: Implement new -gnatyLnnn option for
26060         limiting nesting level.
26061
26062         * usage.adb: Add line for -gnatyLnnn switch
26063
26064         * g-debpoo.ads, xtreeprs.adb, sinput.ads, sem_ch13.ads,
26065         sem_ch13.adb, exp_aggr.adb: Minor reformatting
26066
26067         * sem_prag.adb (Process_Atomic_Shared_Volatile): Set Is_Atomic on base
26068         type as well as on the subtype. This corrects a problem in freeze in
26069         setting alignments of atomic types.
26070
26071         * sem_eval.ads: Minor comment typo fixed
26072
26073         * par-util.adb (Push_Scope_Stack): Check for violation of max nesting
26074         level.  Minor reformatting.
26075
26076         * fname.adb (Is_Predefined_File_Name): Require a letter after the
26077         minus sign. This means that file names like a--b.adb will not be
26078         considered predefined.
26079
26080         * freeze.adb: Propagate new flag Must_Be_On_Byte_Boundary to containing
26081         record Test new flag and give diagnostic for bad component clause.
26082         (Freeze_Entity): Set alignment of array from component alignment in
26083         cases where this is safe to do.
26084
26085         * exp_pakd.adb: Set new flag Must_Be_On_Byte_Boundary for large packed
26086         arrays.
26087
26088         * cstand.adb: (Create_Standard): Set alignment of String to 1
26089
26090         * einfo.ads, einfo.adb: Introduce new flag Must_Be_On_Byte_Boundary
26091
26092         * exp_ch4.adb (Expand_Array_Equality): Improve efficiency of generated
26093         code in the common constrained array cases.
26094
26095         * a-storio.adb: Change implementation to avoid possible alignment
26096         problems on machines requiring strict alignment (data should be moved
26097         as type Buffer, not type Elmt).
26098
26099         * checks.adb (Apply_Array_Size_Check): Improve these checks by
26100         killing the overflow checks which we really do not need (64-bits is
26101         enough).
26102
26103 2004-06-25  Vincent Celier  <celier@gnat.com>
26104
26105         * makegpr.adb (Is_Included_In_Global_Archive): New Boolean function
26106         (Add_Archives.Recursive_Add_Archives): Call Add_Archive_Path
26107         inconditionally for the main project.
26108         (Recursive_Add_Archives.Add_Archive_Path): New procedure
26109         (Link_Executables.Check_Time_Stamps): New procedure
26110         (Link_Executables.Link_Foreign): New procedure
26111         Changes made to reduce nesting level of this package
26112         (Check): New procedure
26113         (Add_Switches): When not in quiet output, check that a switch is not
26114         the concatenation of several valid switches. If it is, issue a warning.
26115         (Build_Global_Archive): If the global archive is rebuilt, linking need
26116         to be done.
26117         (Compile_Sources): Rebuilding a library archive does not imply
26118         rebuilding the global archive.
26119         (Build_Global_Archive): New procedure
26120         (Build_Library): New name for Build_Archive, now only for library
26121         project
26122         (Check_Archive_Builder): New procedure
26123         (Create_Global_Archive_Dependency_File): New procedure
26124         (Gprmake): Call Build_Global_Archive before linking
26125         * makegpr.adb: Use Other_Sources_Present instead of Sources_Present
26126         throughout.
26127         (Scan_Arg): Display the Copyright notice when -v is used
26128
26129         * gnat_ugn.texi: Document new switch -files= (VMS qualifier /FILES=)
26130         for gnatls.
26131
26132         * vms_data.ads: Add qualifier /MAX_NESTING=nnn (-gnatyLnnn) for GNAT
26133         COMPILE.
26134         Add new GNAT LIST qualifier /FILES=
26135         Added qualifier /DIRECTORY= to GNAT METRIC
26136         Added qualifier /FILES= to GNAT METRIC
26137         Added qualifier /FILES to GNAT PRETTY
26138
26139         * switch.adb (Is_Front_End_Switch): Refine the test for --RTS or -fRTS,
26140         to take into account both versions of the switch.
26141
26142         * switch-c.adb (Scan_Front_End_Switches): New switch -gnatez. Should
26143         always be the last switch to the gcc driver. Disable switch storing so
26144         that switches automatically added by the gcc driver are not put in the
26145         ALI file.
26146
26147         * prj.adb (Project_Empty): Take into account changes in components of
26148         Project_Data.
26149
26150         * prj.ads (Languages_Processed): New enumaration value All_Languages.
26151
26152         * prj.ads (Project_Data): Remove component Lib_Elaboration: never
26153         used. Split Boolean component Ada_Sources_Present in two Boolean
26154         components Ada_Sources_Present and Other_Sources_Present.
26155         Minor reformatting
26156
26157         * prj-env.adb (For_All_Source_Dirs.Add): Use Ada_Sources_Present
26158         instead of Sources_Present.
26159         (Set_Ada_Paths.Add.Recursive_Add): Ditto
26160
26161         * prj-nmsc.adb: Minor reformatting
26162         (Check_Ada_Naming_Scheme): New name of procedure Check_Naming_Scheme
26163         (Check_Ada_Naming_Scheme_Validity): New name of previous procedure
26164         Check_Ada_Naming_Scheme.
26165         Change Sources_Present to Ada_Sources_Present or Other_Sources_Present
26166         throughout.
26167
26168         * prj-part.adb (Post_Parse_Context_Clause): New Boolean parameter
26169         In_Limited.
26170         Make sure that all cycles where there is at least one "limited with"
26171         are detected.
26172         (Parse_Single_Project): New Boolean parameter In_Limited
26173
26174         * prj-proc.adb (Recursive_Check): When Process_Languages is
26175         All_Languages, call first Prj.Nmsc.Ada_Check, then
26176         Prj.Nmsc.Other_Languages_Check.
26177
26178         * prj-proc.adb (Process): Use Ada_Sources_Present or
26179         Other_Sources_Present (instead of Sources_Present) depending on
26180         Process_Languages.
26181
26182         * lang-specs.h: Keep -g and -m switches in the same order, and as the
26183         last switches.
26184
26185         * lib.adb (Switch_Storing_Enabled): New global Boolean flag
26186         (Disable_Switch_Storing): New procedure. Set Switch_Storing_Enabled to
26187         False.
26188         (Store_Compilation_Switch): Do nothing if Switch_Storing_Enabled is
26189         False.
26190
26191         * lib.ads (Disable_Switch_Storing): New procedure.
26192
26193         * make.adb: Modifications to reduce nesting level of this package.
26194         (Check_Standard_Library): New procedure
26195         (Gnatmake.Check_Mains): New procedure
26196         (Gnatmake.Create_Binder_Mapping_File): New procedure
26197         (Compile_Sources.Compile): Add switch -gnatez as the last option
26198         (Display): Never display -gnatez
26199
26200         * Makefile.generic:
26201         When using $(MAIN_OBJECT), always use $(OBJ_DIR)/$(MAIN_OBJECT)
26202
26203         * gnatcmd.adb (Check_Project): New function
26204         (Process_Link): New procedure to reduce nesting depth
26205         (Check_Files): New procedure to reduce the nesting depth.
26206         For GNAT METRIC, include the inherited sources in extending projects.
26207         (GNATCmd): When GNAT LS is invoked with a project file and no files,
26208         add the list of files from the sources of the project file. If this list
26209         is too long, put it in a temp text files and use switch -files=
26210         (Delete_Temp_Config_Files): Delete the temp text file that contains
26211         a list of source for gnatpp or gnatmetric, if one has been created.
26212         (GNATCmd): For GNAT METRIC and GNAT PRETTY, if the number of sources
26213         in the project file is too large, create a temporary text file that
26214         list them and pass it to the tool with "-files=<temp text file>".
26215         (GNATCmd): For GNAT METRIC add "-d=<abject dir>" as the first switch
26216
26217         * gnatlink.adb (Gnatlink): Do not compile with --RTS= when the
26218         generated file is in not in Ada.
26219
26220         * gnatls.adb: Remove all parameters And_Save that are no longer used.
26221         (Scan_Ls_Arg): Add processing for -files=
26222         (Usage): Add line for -files=
26223
26224         * g-os_lib.adb (On_Windows): New global constant Boolean flag
26225         (Normalize_Pathname): When on Windows and the path starts with a
26226         directory separator, make sure that the resulting path will start with
26227         a drive letter.
26228
26229         * clean.adb (Clean_Archive): New procedure
26230         (Clean_Project): When there is non-Ada code, delete the global archive,
26231         the archive dependency files, the object files and their dependency
26232         files, if they exist.
26233         (Gnatclean): Call Prj.Pars.Parse for All_Languages, not for Ada only.
26234
26235 2004-06-25  Thomas Quinot  <quinot@act-europe.fr>
26236
26237         * sinfo.ads: Fix typo in comment.
26238
26239         * sem_dist.adb (Process_Remote_AST_Attribute): Simplify code that uses
26240         the TSS for remote access-to-subprogram types, since these TSS are
26241         always present once the type has been analyzed.
26242         (RAS_E_Dereference): Same.
26243
26244         * sem_attr.adb (Analyze_Attribute): When analysis of an attribute
26245         reference raises Bad_Attribute, mark the reference as analyzed so the
26246         node (and any children resulting from rewrites that could have occurred
26247         during the analysis that ultimately failed) is not analyzed again.
26248
26249         * exp_ch7.ads (Find_Final_List): Fix misaligned comment.
26250
26251         * exp_dist.adb: Minor comment fix.
26252
26253         * exp_ch4.adb (Expand_N_Allocator): For an allocator whose expected
26254         type is an anonymous access type, no unchecked deallocation of the
26255         allocated object can occur. If the object is controlled, attach it with
26256         a count of 1. This allows attachment to the Global_Final_List, if
26257         no other relevant list is available.
26258         (Get_Allocator_Final_List): For an anonymous access type that is
26259         the type of a discriminant or record component, the corresponding
26260         finalisation list is the one of the scope of the type.
26261
26262 2004-06-25  Ed Schonberg  <schonberg@gnat.com>
26263
26264         * sem_ch3.adb (Replace_Type): When computing the signature of an
26265         inherited subprogram, use the first subtype if the derived type
26266         declaration has no constraint.
26267
26268         * exp_ch6.adb (Add_Call_By_Copy_Code): Check that formal is an array
26269         before applying previous optimization. Minor code cleanup.
26270
26271         * exp_util.adb (Is_Possibly_Unaligned_Slice): If the component is
26272         placed at the beginning of an unpacked record without explicit
26273         alignment, a slice of it will be aligned and does not need a copy when
26274         used as an actual.
26275
26276 2004-06-25  Ed Schonberg  <schonberg@gnat.com>
26277
26278         PR ada/15591
26279         PR ada/15592
26280         * sem_ch8.adb (Attribute_Renaming): Reject renaming if the attribute
26281         reference is written with expressions mimicking parameters.
26282
26283 2004-06-25  Hristian Kirtchev  <kirtchev@gnat.com>
26284
26285         PR ada/15589
26286         * sem_ch3.adb (Build_Derived_Record_Type): Add additional check to
26287         STEP 2a. The constraints of a full type declaration of a derived record
26288         type are checked for conformance with those declared in the
26289         corresponding private extension declaration. The message
26290         "not conformant with previous declaration" is emitted if an error is
26291         detected.
26292
26293 2004-06-25  Vasiliy Fofanov  <fofanov@act-europe.fr>
26294
26295         * g-traceb.ads: Document the need for -E binder switch in the spec.
26296
26297         * g-trasym.ads: Document the need for -E binder switch in the spec.
26298
26299 2004-06-25  Jose Ruiz  <ruiz@act-europe.fr>
26300
26301         * sem_prag.adb: Add handling of pragma Detect_Blocking.
26302
26303         * snames.h, snames.ads, snames.adb: Add entry for pragma
26304         Detect_Blocking.
26305
26306         * s-rident.ads: Change reference to pragma Detect_Blocking.
26307
26308         * targparm.ads, targparm.adb: Allow pragma Detect_Blocking in
26309         system.ads.
26310
26311         * opt.ads (Detect_Blocking): New Boolean variable (defaulted to False)
26312         to indicate whether pragma Detect_Blocking is active.
26313
26314         * par-prag.adb: Add entry for pragma Detect_Blocking.
26315
26316         * rtsfind.adb (RTU_Loaded): Fix the temporary kludge to get past bug
26317         of not handling WITH.
26318         Note that this replaces the previous update which was incorrect.
26319
26320 2004-06-25  Javier Miranda  <miranda@gnat.com>
26321
26322         * sem_ch10.adb (Re_Install_Use_Clauses): Force the installation of the
26323         use-clauses to have a clean environment.
26324
26325         * sem_ch8.adb (Install_Use_Clauses): Addition of a new formal to force
26326         the installation of the use-clauses to stablish a clean environment in
26327         case of compilation of a separate unit; otherwise the call to
26328         use_one_package is protected by the barrier Applicable_Use.
26329
26330         * sem_ch8.ads (Install_Use_Clauses): Addition of a new formal to force
26331         the installation of the use-clauses to stablish a clean environment in
26332         case of compilation of a separate unit.
26333         (End_Use_Clauses): Minor comment cleanup.
26334
26335 2004-06-25  Sergey Rybin  <rybin@act-europe.fr>
26336
26337         * gnat_ugn.texi: Add description of the gnatpp 'files' switch
26338
26339 2004-06-23  Richard Henderson  <rth@redhat.com>
26340
26341         * trans.c (gnat_gimplify_stmt): Update gimplify_type_sizes call.
26342
26343 2004-06-20  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
26344
26345         * decl.c (elaborate_expression, elaborate_expression_1): Arguments
26346         now bool instead of int.
26347         (gnat_to_gnu_entity, elaborate_expression_1): New arg to COMPONENT_REF.
26348         * trans.c (gnu_switch_label_stack): New function.
26349         (gnat_to_gnu, N_Object_Renaming_Declaration): Result is what the
26350         elaboration of renamed entity returns.
26351         (gnat_to_gnu, case N_Case_Statement): Add branches to end label.
26352         (add_decl_stmt): Don't add TYPE_DECL for UNCONSTRAINED_ARRAY_TYPE.
26353         (gnat_gimplify_stmt): Use alloc_stmt_list, not build_empty_stmt.
26354         (gnat_gimplify_stmt, case DECL_STMT): gimplify DECL_SIZE and
26355         DECL_SIZE_UNIT and simplify variable-sized case.
26356         (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Deleted.
26357         Callers changes to call gimplify_type_sizes and gimplify_one_sizepos.
26358         (gnat_stabilize_reference): Add arg to COMPONENT_REF.
26359         (build_unit_elab): Disable for now.
26360         * utils.c (mark_visited): New function.
26361         (pushdecl): Walk tree to call it for global decl.
26362         (update_pointer_to): Update all variants of pointer and ref types.
26363         Add arg to COMPONENT_REF.
26364         (convert): Likewise.
26365         Move check for converting between variants lower down.
26366         * utils2.c (build_simple_component_ref): Add arg to COMPONENT_REF.
26367         (build_allocator): Don't force type of MODIFY_EXPR.
26368         (gnat_mark_addressable, case VAR_DECL): Unconditionally call
26369         put_var_into_stack.
26370
26371 2004-06-14  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
26372
26373         * ada-tree.def (LOOP_STMT, EXIT_STMT): Update documentation.
26374         * ada-tree.h (EXIT_STMT_LABEL): Renamed from EXIT_STMT_LOOP.
26375         * decl.c (gnat_to_gnu_entity): Also set force_global for imported
26376         subprograms.
26377         * trans.c (gnu_loop_label_stack): Renamed from gnu_loop_stmt_stack;
26378         all callers changed.
26379         (gnat_to_gnu, case N_Loop_Statement, case N_Exit_Statement): Change
26380         the way that EXIT_STMT finds the loop label.
26381         (gnat_gimplify_stmt, case LOOP_STMT, EXIT_STMT): Likewise.
26382         (gnat_gimplify_stmt, case DECL_STMT): Handle variable-sized decls here.
26383         (add_stmt): Use annotate_with_locus insted of setting directly.
26384         (pos_to_construct): Set TREE_PURPOSE of each entry to index.
26385         (gnat_stabilize_reference, case ARRAY_RANGE_REF): Merge with ARRAY_REF.
26386         * utils.c (gnat_install_builtins): Install __builtin_memcmp.
26387         (build_vms_descriptor): Add extra args to ARRAY_REF.
26388         (convert): Use VIEW_CONVERT_EXPR between aggregate types.
26389         * utils2.c (gnat_truthvalue_conversion, case INTEGER_CST, REAL_CST):
26390         New cases.
26391         (build_binary_op): Don't make explicit CONVERT_EXPR.
26392         Add extra rgs to ARRAY_REF.
26393
26394 2004-06-14  Pascal Obry  <obry@gnat.com>
26395
26396         * gnat_ugn.texi: Document relocatable vs. dynamic Library_Kind on
26397         Windows.  Fix minor typo.
26398
26399         * mlib-tgt-mingw.adb: New implementation using the GCC -shared option
26400         which is now supported on Windows. With this implementation using the
26401         Library Project feature is no different on Windows than on UNIX.
26402
26403 2004-06-14  Vincent Celier  <celier@gnat.com>
26404
26405         * makegpr.adb (Compile_Sources): Nothing to do when there are no
26406         non-Ada sources.
26407
26408         * mlib-tgt-vxworks.adb (Library_Exists_For): Remove incorrect comment
26409
26410         * prj-part.adb (Parse_Single_Project): When a duplicate project name is
26411         found, show the project name and the path of the previously parsed
26412         project file.
26413
26414 2004-06-14  Ed Schonberg  <schonberg@gnat.com>
26415
26416         * exp_ch6.adb (Add_Call_By_Copy_Code): For an out-parameter that is an
26417         array, avoid copying the actual before the call.
26418
26419 2004-06-14  Thomas Quinot  <quinot@act-europe.fr>
26420
26421         * g-debpoo.adb: Remove alignment assumptions from GNAT.Debug_Pools.
26422         Instead, allocate memory on worst-case alignment assumptions, and then
26423         return an aligned address within the allocated zone.
26424
26425 2004-06-14  Robert Dewar  <dewar@gnat.com>
26426
26427         * bindgen.adb (Gen_Adainit_Ada): Do not generate external references to
26428         elab entities in predefined units in No_Run_Time_Mode.
26429         (Gen_Adainit_C): Same fix
26430         (Gen_Elab_Calls_Ada): Do not generate calls to elaborate predefined
26431         units in No_Run_Time_Mode
26432         (Gen_Elab_Calls_C): Same fix
26433
26434         * symbols-vms-alpha.adb: Minor reformatting
26435
26436         * g-debpoo.ads: Minor reformatting
26437
26438         * lib.adb (In_Same_Extended_Unit): Version working on node id's
26439
26440         * lib.ads (In_Same_Extended_Unit): Version working on node id's
26441
26442         * lib-xref.adb: Minor cleanup, use new version of In_Same_Extended_Unit
26443         working on nodes.
26444
26445         * make.adb: Minor reformatting
26446
26447         * par-ch12.adb: Minor reformatting
26448
26449         * par-prag.adb: Add dummy entry for pragma Profile_Warnings
26450
26451         * prj-strt.adb: Minor reformatting
26452
26453         * restrict.ads, restrict.adb: Redo handling of profile restrictions to
26454         be more general.
26455
26456         * sem_attr.adb: Minor reformatting
26457
26458         * sem_ch7.adb: Minor reformatting
26459
26460         * sem_elab.adb (Check_A_Call): Deal with problem of calling init proc
26461         for type in the same unit as the object declaration.
26462
26463         * sem_prag.adb (Check_Arg_Is_External_Name): New procedure, allows
26464         static string expressions and not just string literals.
26465         Minor reformatting
26466         (Set_Warning): Reset restriction warning flag for restriction pragma
26467         Implement pragma Profile_Warnings
26468         Implement pragma Profile (Restricted)
26469         Give obolescent messages for old restrictions and pragmas
26470
26471         * snames.h, snames.ads, snames.adb: Add new entry for pragma
26472         Profile_Warnings.
26473
26474         * s-rident.ads: Add declarations for restrictions required by profile
26475         Restricted and profile Ravenscar.
26476
26477         * targparm.ads, targparm.adb: Allow pragma Profile in system.ads
26478
26479         * gnat_ugn.texi: Correct some missing entries in the list of GNAT
26480         configuration pragmas.
26481
26482 2004-06-11  Vincent Celier  <celier@gnat.com>
26483
26484         * mlib-tgt-vms-alpha.adb (Build_Dynamic_Library): Issue switch -R to
26485         gnatsym, when symbol policy is Restricted.
26486
26487         * mlib-tgt-vms-ia64.adb (Build_Dynamic_Library): Issue switch -R to
26488         gnatsym, when symbol policy is Restricted.
26489
26490         * symbols-vms-alpha.adb (Initialize): When symbol policy is Restricted,
26491         read the symbol file.
26492         (Finalize): Fail in symbol policy Restricted if a symbol in the original
26493         symbol file is not in the object files. Do not create a new symbol file
26494         when symbol policy is Restricted.
26495
26496         * gnatbind.adb (Gnatbind): Initialize Snames, because Snames is used
26497         in Scng.
26498
26499         * gnatsym.adb (Parse_Vmd_Line): Process new switch -R for symbol policy
26500         Restricted.
26501         (Usage): Line for new switch -R
26502
26503         * make.adb (Initialize): When the platform is not VMS, add the
26504         directory where gnatmake is invoked in the front of the path, if
26505         gnatmake is invoked with directory information.  Change the Scan_Args
26506         while loop to a for loop.
26507         (Recursive_Compute_Depth): Remove parameter Visited. Improve efficiency:
26508         if Depth is equal or greater than the proposed depth, there is nothing
26509         to do.
26510         (Initialize): Call Recursive_Compute_Depth with initial Depth equal to 1
26511         instead of 0.
26512
26513         * prj.ads: Add new symbol policy Restricted.
26514
26515         * prj-dect.adb (Parse_Case_Construction): Call End_Case_Construction
26516         with the new parameters Check_All_Labels and Case_Location.
26517
26518         * prj-nmsc.adb (Ada_Check): Process new symbol policy Restricted
26519         (Library_Symbol_File needs to be defined).
26520
26521         * prj-strt.adb (End_Case_Construction): New parameters Check_All_Labels
26522         and Case_Location If Check_All_Labels is True, check that all values of
26523         the string type are used, and output warning(s) if they are not.
26524
26525         * prj-strt.ads (End_Case_Construction): New parameters Check_All_Labels
26526         and Case_Location.
26527
26528         * gnat_ugn.texi: Reorder subclauses in menus "Switches for gcc"
26529
26530         * gnat_ugn.texi: Update documentation about the library directory in
26531         Library Projects.
26532
26533         * makegpr.adb (Display_Command): In verbose mode, also display the
26534         value of the CPATH env var, when the compiler is gcc.
26535         (Initialize): Change the Scan_Args while loop to a for loop
26536         (Compile_Individual_Sources): Change directory to object directory
26537         before compilations.
26538
26539         * symbols.ads: New symbol policy Restricted.
26540
26541 2004-06-11  Olivier Hainque  <hainque@act-europe.fr>
26542
26543         * a-except.adb (Raise_After_Setup family): Remove. The responsibility
26544         is now taken care of internally in the Exception_Propagation package
26545         and does not require clients assistance any more.
26546
26547         * a-exexpr.adb (Is_Setup_And_Not_Propagated,
26548         Set_Setup_And_Not_Propagated, and Clear_Setup_And_Not_Propagated): New
26549         functions. Helpers to maintain a predicate required in the handling of
26550         occurrence transfer between tasks.
26551         This is now handled internally and does not require clients assistance
26552         for the setup/propagate separation anymore.
26553         (Setup_Exception, Propagate_Exception): Simplify the Private_Data
26554         allocation strategy, handle the Setup_And_Not_Propagated predicate and
26555         document.
26556
26557         * s-taenca.adb (Check_Exception): Use raise_with_msg instead of
26558         raise_after_setup, now that everything is handled internally within the
26559         setup/propagation engine.
26560
26561 2004-06-11  Hristian Kirtchev  <kirtchev@gnat.com>
26562
26563         * exp_ch6.adb (Expand_Inlined_Call): Add function Formal_Is_Used_Once.
26564         Add additional conditions for the case of an actual being a simple
26565         name or literal. Improve inlining by preventing the generation
26566         of temporaries with a short lifetime (one use).
26567
26568 2004-06-11  Hristian Kirtchev  <kirtchev@gnat.com>
26569
26570         PR ada/15587
26571         * einfo.ads: Minor comment updates for Has_Completion and
26572         E_Constant list of flags.
26573
26574         * sem_ch3.adb (Analyze_Object_Declaration): Full constant declarations
26575         and constant redeclarations now set the Has_Completion flag of their
26576         defining identifiers.
26577
26578         * sem_ch7.adb (Analyze_Package_Spec): Add procedure
26579         Inspect_Deferred_Constant_Completion.
26580         Used to detect private deferred constants that have not been completed
26581         either by a constant redeclaration or pragma Import. Emits error message
26582         "constant declaration requires initialization expression".
26583
26584         * sem_prag.adb (Process_Import_Or_Interface): An Import pragma now
26585         completes a deferred constant.
26586
26587 2004-06-11  Geert Bosch  <bosch@gnat.com>
26588
26589         * eval_fat.adb (Decompose_Int): Fix rounding of negative numbers.
26590
26591         * s-fatgen.adb (Gradual_Scaling): Correct off-by-one error in
26592         calculating exponent for scaling denormal numbers.
26593         (Leading_Part): Properly raise Constraint_Error for zero or negative
26594         Adjustment.
26595         (Remainder): Properly raise Constraint_Error for zero divisor.
26596
26597 2004-06-11  Thomas Quinot  <quinot@act-europe.fr>
26598
26599         * sem_util.adb: Minor reformatting.
26600
26601         * exp_ch2.adb (Expand_Entry_Parameter): Generate an explicit
26602         dereference when accessing the entry parameter record.
26603         (Check_Array_Type): Always check for possible implicit dereference.
26604         (maybe_implicit_dereference): Rename to check_no_implicit_derefence.
26605         Abort if a pointer is still present (denoting that an implicit
26606         dereference was left in the tree by the front-end).
26607
26608         * sem_attr.adb (Expand_Entry_Parameter): Generate an explicit
26609         dereference when accessing the entry parameter record.
26610         (Check_Array_Type): Always check for possible implicit dereference.
26611         (maybe_implicit_dereference): Rename to check_no_implicit_derefence.
26612         Abort if a pointer is still present (denoting that an implicit
26613         dereference was left in the tree by the front-end).
26614
26615 2004-06-11  Emmanuel Briot  <briot@act-europe.fr>
26616
26617         * g-debpoo.adb (Deallocate, Dereference): Add prefix "error:" to error
26618         message, like the compiler itself does. Easier to parse the output.
26619
26620         * g-debpoo.ads: (Allocate, Deallocate, Dereference): Add comments.
26621
26622         * gnat_ugn.texi (gnatxref, gnatfind): Clarify that source names should
26623         be base names, and not includes directories.
26624
26625 2004-06-11  Arnaud Charlet  <charlet@act-europe.fr>
26626
26627         * Makefile.generic ($(EXEC)): Depend on $(OBJECTS), not $(OBJ_FILES),
26628         so that dependencies are properly taken into account by make.
26629
26630 2004-06-11  Arnaud Charlet  <charlet@act-europe.fr>
26631
26632         PR ada/15622
26633         * s-unstyp.ads, s-maccod.ads, sem_ch8.adb, s-auxdec.ads,
26634         exp_intr.adb, s-auxdec-vms_64.ads: Fix typo: instrinsic -> intrinsic
26635
26636 2004-06-11  Jerome Guitton  <guitton@act-europe.fr>
26637
26638         * Makefile.in (install-gnatlib): install target-specific run-time files.
26639
26640         * Make-lang.in: Remove obsolete targets.
26641
26642 2004-06-11  Ed Schonberg  <schonberg@gnat.com>
26643
26644         * par-ch12.adb (P_Generic): Add scope before analyzing subprogram
26645         specification, to catch misuses of program unit names.
26646
26647         * sem_res.adb (Resolve_Type_Conversion): Do not emit warnings on
26648         superfluous conversions in an instance.
26649
26650 2004-06-11  Ed Schonberg  <schonberg@gnat.com>
26651
26652         PR ada/15403
26653         * sem_ch12.adb (Save_References): If operator node has been folded to
26654         enumeration literal, associated_node must be discarded.
26655
26656 2004-06-11  Jose Ruiz  <ruiz@act-europe.fr>
26657
26658         * s-stchop-vxworks.adb: Add required pragma Convention to
26659         Task_Descriptor because it is updated by a C function.
26660
26661 2004-06-08  Arnaud Charlet  <charlet@act-europe.fr>
26662
26663         PR ada/15568
26664         * Makefile.in: Remove target specific SO_OPT on IRIX
26665
26666 2004-06-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
26667
26668         * ada-tree.def (TRANSFORM_EXPR, ALLOCATE_EXPR, USE_EXPR): Deleted.
26669         (GNAT_NOP_EXPR, GNAT_LOOP_ID, EXPR_STMT, NULL_STMT): Likewise.
26670         (BLOCK_STMT, IF_STMT, GOTO_STMT, LABEL_STMT, RETURN_STMT): Likewise.
26671         (ASM_STMT, BREAK_STMT, REGION_STMT,HANDLER_STMT): Likewise.
26672         (STMT_STMT, USE_STMT): New statement codes.
26673         (LOOP_STMT, EXIT_STMT): Make slight semantic changes.
26674         * ada-tree.h: Reflect above changes.
26675         (struct tree_loop_id): Deleted.
26676         (union lang_tree_node, struct lang_decl, struct lang_type):
26677         Now just contains a tree node; update macros using TYPE_LANG_SPECIFIC
26678         and DECL_LANGUAGE_SPECIFIC to reflect these changes.
26679         (DECL_INIT_BY_ASSIGN_P, TRE_LOOP_NODE_ID, TREE_SLOC): Deleted.
26680         (IS_ADA_STMT): New macro.
26681         * decl.c (annotate_decl_with_node): New function.
26682         (gnat_to_gnu_entity): Use it and Sloc_to_locus instead of set_lineno.
26683         (gnat_to_gnu_entity, case object): Remove call to expand CONVERT_EXPR.
26684         Call add_stmt_with_node to do needed assignments.
26685         Add call to update setjmp buffer directly, not via EXPR_STMT.
26686         (maybe_variable): Argment GNAT_NODE deleted.
26687         * gigi.h (maybe_variable): Likewise.
26688         (make_transform, add_stmt_with_node, set_block_for_group): New.
26689         (gnat_gimplify_expr, gnat_expand_body, Sloc_to_locus): Likewise.
26690         (set_block_jmpbuf_decl, get_block_jmpbuf_decl): Likewise.
26691         (discard_file_names, gnu_block_stack, gnat_to_code): Deleted.
26692         (set_lineno, set_lineno_from_sloc): Likewise.
26693         (record_code_position, insert_code_for): Likewise.
26694         (gnat_poplevel): Now returns void.
26695         (end_subprog_body): Now takes argument.
26696         * misc.c (cgraph.h, tree-inline.h): New includes.
26697         (gnat_tree_size, LANG_HOOKS_TREE_SIZE): Deleted.
26698         (gnat_post_options, LANG_HOOKS_POST_OPTIONS): New.
26699         (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Likewise.
26700         (LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_GIMPLIFY_EXPR): Likewise.
26701         (gnat_parse_file): Don't set immediate_size_expand.
26702         Call cgraph functions.
26703         (gnat_expand_expr): Remove most cases.
26704         (record_code_position, insert_code_for): Remove from here.
26705         * trans.c (toplev.h, tree-gimple.h): Now included.
26706         (discard_file_names): Deleted.
26707         (gnu_block_stack, gnu_block_stmt_node, gnu_block_stmt_free_list): Del.
26708         (first_nondeleted_insn, make_expr_stmt_from_rtl): Likewise.
26709         (struct stmt_group, current_stmt_group, stmt_group_free_list): New.
26710         (gnu_stack_free_list, record_cost_position, insert_code_for): Likewise.
26711         (add_cleanup, push_stack, gnat_gimplify_stmt, add_cleanup): Likewise.
26712         (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Likewise.
26713         (gnat_expand_body_1, gnat_gimplify_expr, annotate_with_node): Likewise.
26714         (set_block_for_group, add_stmt_list): Likewise.
26715         (start_stmt_group): Renamed from start_block_stmt.
26716         (end_stmt_group): Likewise, from end_block_stmt.
26717         (build_stmt_group): Likewise, from build_block_stmt, also add arg.
26718         (gigi): Don't set discard_file_names or call set_lineno.
26719         Disallow front end ZCX; call gnat_to_gnu, not gnat_to_code.
26720         (tree_transform): Deleted, now renamed to be gnat_to_gnu.
26721         Numerous changes throughout to reflect new names and complete
26722         function-at-a-time implementation.
26723         (gnat_expand_stmt): Delete or comment out all cases.
26724         (process_inlined_subprograms): Use add_stmt.
26725         (process_decls): Use gnat_to_gnu, not gnat_to_code, and don't
26726         call set_lineno; also remove unneeded block handling.
26727         (process_type): Remove unneeded block handling.
26728         (build_unit_elab): Remove calls to deleted functions.
26729         * utils.c (cgraph.h, tree-inline.h, tree-gimple.h): Now include.
26730         (tree-dump.h): Likewise.
26731         (struct ada_binding_level): Add field jmpbuf_decl.
26732         (gnat_define_builtin, gnat_install_builtins): New.
26733         (gnat_gimplify_function, gnat_finalize): Likewise.
26734         (gnat_poplevel): No longer return BLOCK, set it instead.
26735         Remove code dealing with nested functions.
26736         (gnat_init_decl_processing): Also set size_type_node.
26737         Call gnat_install_builtins.
26738         (create_var_decl): Don't set DECL_INIT_BY_ASSIGN.
26739         (create_subprog_decl): Change handling of inline_flag; set TREE_STATIC.
26740         Remove special-case for "main".
26741         (end_subprog_body): Add arg and rework for tree-ssa.
26742         (convert): Don't use GNAT_NOP_EXPR or look for TRANSFORM_EXPR.
26743         Add case for BOOLEAN_TYPE.
26744         * utils2.c (rtl.h): Now include.
26745         (build_call_raise): Test Debug_Flag_NN directly.
26746         (build_call_alloc_dealloc): Don't use local stack allocation for now.
26747         (gnat_mark_addressable, case GNAT_NOP_EXPR): Deleted.
26748         (gnat_mark_addressable, case VAR_DECL): Handle both early & late cases.
26749
26750 2004-06-07  Robert Dewar  <dewar@gnat.com>
26751
26752         * a-direct.ads, einfo.ads: Minor comment updates
26753
26754         * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
26755         s-taprop-irix-athread.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
26756         s-taprop-dummy.adb, s-taprop-os2.adb, s-taprop-solaris.adb,
26757         s-taprop-vms.adb, s-taprop-mingw.adb, s-taprop-vxworks.adb,
26758         s-taprop-posix.adb, s-taprop.ads, exp_dbug.adb: Minor reformatting.
26759
26760         * s-interr-sigaction.adb: Remove unreferenced variable
26761         (Attached_Interrupts).  Minor reformatting.
26762         Avoid use of variable I (replace by J).
26763
26764         * par-ch10.adb: Fix text of one error message
26765
26766         * checks.adb, checks.ads, cstand.adb, vms_data.ads, errout.ads,
26767         exp_aggr.adb, exp_ch3.adb, exp_ch3.ads, exp_ch5.adb, exp_ch6.adb,
26768         exp_ch9.adb, exp_code.adb, gnat1drv.adb, lib-load.adb, lib-writ.adb,
26769         opt.adb, par.adb, opt.ads, par-ch11.adb, par-ch3.adb, par-ch4.adb,
26770         par-ch5.adb, par-ch6.adb, par-ch8.adb, par-ch9.adb, par-prag.adb,
26771         par-util.adb, scng.adb, sem_aggr.adb, sem_attr.adb, sem_cat.adb,
26772         sem_ch10.adb, sem_ch10.adb, sem_ch11.adb, sem_ch12.adb, sem_ch2.adb,
26773         sem_ch3.adb, sem_ch3.ads, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb,
26774         sem_ch7.adb, sem_ch8.adb, sem_ch9.adb, sem_eval.adb, sem_prag.adb,
26775         sem_res.adb, sem_type.adb, sem_util.adb, sinfo.ads, snames.adb,
26776         snames.ads, snames.h, sprint.adb, switch-c.adb: Modifications for Ada
26777         2005 support.
26778
26779 2004-06-07  Doug Rupp  <rupp@gnat.com>
26780
26781         * mlib-tgt-vms.adb: Rename mlib-tgt-vms.adb mlib-tgt-vms-alpha.adb
26782
26783         * s-vaflop-vms.adb: Rename s-vaflop-vms.adb to s-vaflop-vms-alpha.adb
26784
26785         * mlib-tgt-vms-ia64.adb: New file.
26786
26787         * Makefile.in: Rename mlib-tgt-vms.adb to mlib-tgt-vms-alpha.adb
26788         Add mlib-tgt-vms-ia64.adb
26789         Rename s-vaflop-vms.adb to s-vaflop-vms-alpha.adb.
26790         Move to alpha specific ifeq section.
26791         Add VMS specific versions of symbols.adb
26792         Renaming of 5q vms files.
26793
26794         * 5qsystem.ads renamed to system-vms_64.ads.
26795
26796 2004-06-07  Vincent Celier  <celier@gnat.com>
26797
26798         * a-calend.ads: Add a GNAT Note comment after function Time_Of to
26799         explain that when a time of day corresponding to the non existing hour
26800         on the day switching to DST is specified, Split may return a different
26801         value for Seconds.
26802
26803         * gnatcmd.adb: Add processing of GNAT METRIC (for gnatmetric), similar
26804         to GNAT PRETTY.
26805
26806         * g-os_lib.adb (OpenVMS): New Boolean value imported from System.
26807         (Normalize_Pathname): Only resolve VMS logical names when on VMS.
26808
26809         * mlib-prj.adb (Build_Library): New flag Gtrasymobj_Needed, initialize
26810         to False.
26811         If Gtrasymobj_Needed is True, add the full path of g-trasym.obj to
26812         the linking options.
26813         (Build_Library.Check_Libs): On VMS, if there is a dependency on
26814         g-trasym.ads, set Gtrasymobj_Needed to True.
26815
26816         * prj-attr.adb: Add new package Metrics for gnatmetric
26817
26818         * prj-nmsc.adb (Record_Other_Sources): Put source file names in
26819         canonical case to take into account files with upper case characters on
26820         Windows.
26821         (Ada_Check): Load the reference symbol file name in the name buffer to
26822         check it, not the symbol file name.
26823
26824         * snames.ads, snames.adb: Add standard name Metrics (name of project
26825         file package for gnatmetric).
26826
26827         * vms_conv.ads: Add Metric to Comment_Type
26828
26829         * vms_conv.adb (Initialize): Add component dor Metric in Command_List
26830
26831         * vms_data.ads: Add qualifiers for GNAT METRIC
26832
26833         * makegpr.adb (Link_Executables): Take into account the switches
26834         specified in package Linker of the main project.
26835
26836 2004-06-07  Thomas Quinot  <quinot@act-europe.fr>
26837
26838         * bindgen.adb (Set_Unit_Number): Units is an instance of Table, and so
26839         the index of the last element is Units.Last, not Units.Table'Last
26840         (which is usually not a valid index within the actually allocated
26841         storage for the table).
26842
26843         * exp_ch4.adb (Insert_Dereference_Action): Change predicate that
26844         determines whether to generate a call to a checked storage pool
26845         Dereference action.
26846         Generate such a call only for a dereference that either comes from
26847         source, or is the result of rewriting a dereference that comes from
26848         source.
26849
26850 2004-06-07  Romain Berrendonner  <berrendo@act-europe.fr>
26851
26852         * bindgen.adb (Gen_Output_File): Add support for GAP builds.
26853
26854 2004-06-07  Eric Botcazou  <ebotcazou@act-europe.fr>
26855
26856         (gnat_to_gnu_entity) <E_Array_Subtype>: For multi-dimensional arrays at
26857         file level, elaborate the stride for inner dimensions in alignment
26858         units, not bytes.
26859
26860         * exp_ch5.adb: Correct wrong reference to Component_May_Be_Bit_Aligned
26861         in a comment.
26862
26863 2004-06-07  Javier Miranda  <miranda@gnat.com>
26864
26865         * exp_ch6.adb: Correct wrong modification in previous patch
26866
26867 2004-06-07  Vasiliy Fofanov  <fofanov@act-europe.fr>
26868
26869         * g-trasym.ads: Corrected comment to properly reflect level of support
26870         on VMS.
26871
26872 2004-06-07  Hristian Kirtchev  <kirtchev@gnat.com>
26873
26874         * lib-xref.adb (Generate_Reference): Add nested function Is_On_LHS. It
26875         includes case of a variable referenced on the left hand side of an
26876         assignment, therefore remove redundant code. Variables and prefixes of
26877         indexed or selected components are now marked as referenced on left
26878         hand side. Warnings are now properly emitted when variables or prefixes
26879         are assigned but not read.
26880
26881         * sem_warn.adb (Output_Unreferenced_Messages): Add additional checks to
26882         left hand side referenced variables. Private access types do not
26883         produce the warning "variable ... is assigned but never read".
26884         Add also additional checks to left hand side referenced variables.
26885         Aliased, renamed objects and access types do not produce the warning
26886         "variable ... is assigned but never read" since other entities may read
26887         the memory location.
26888
26889 2004-06-07  Jerome Guitton  <guitton@act-europe.fr>
26890
26891         * Makefile.in: In the powerpc/vxworks-specific section, restore
26892         EXTRA_GNATRTL_NONTASKING_OBJS and EXTRA_GNATRTL_TASKING_OBJS (removed
26893         by mistake).
26894
26895 2004-06-07  Ed Schonberg  <schonberg@gnat.com>
26896
26897         * sem_ch4.adb (Remove_Abstract_Operations): Refine the removal of
26898         predefined operators.
26899         Removes spurious type errors from g-trasym-vms.adb.
26900
26901         * sem_res.adb (Rewrite_Renamed_Operator): If intrinsic operator is
26902         distinct from the operator appearing in the source, call appropriate
26903         routine to insert conversions when needed, and complete resolution of
26904         node.
26905         (Resolve_Intrinsic_Operator): Fix cut-and-paste bug on transfer of
26906         interpretations for rewritten right operand.
26907         (Set_Mixed_Mode_Operand): Handle properly a universal real operand when
26908         the other operand is overloaded and the context is a type conversion.
26909
26910 2004-06-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
26911
26912         * ada-tree.def (BLOCK_STMT): Now has two operands.
26913         (BREAK_STMT): New.
26914
26915         * ada-tree.h: (BLOCK_STMT_BLOCK): New macro.
26916
26917         * gigi.h: (gnat_poplevel): Now returns a tree.
26918
26919         * trans.c (end_block_stmt): Add arg; all callers changed.
26920         (tree_transform, case N_Case_Statement): Make a BLOCK_STMT for a WHEN.
26921         (start_block_stmt): Clear BLOCK_STMT_BLOCK.
26922         (add_stmt): Set TREE_TYPE.
26923         (gnat_expand_stmt, case BLOCK_STMT): Handle BLOCK_STMT_BLOCK.
26924         (gnat_expand_stmt, case BREAK_STMT): New case.
26925
26926         * utils.c (gnat_poplevel): Return a BLOCK, if we made one.
26927
26928 2004-06-07  Jose Ruiz  <ruiz@act-europe.fr>
26929
26930         * s-stchop.adsm s-stchop.adb, s-stchop-vxworks.adb: Remove the
26931         procedure Set_Stack_Size that is not needed.
26932
26933 2004-06-07  Sergey Rybin  <rybin@act-europe.fr>
26934
26935         * gnat_ugn.texi: Clarify the case when non-standard naming scheme is
26936         used for gnatpp input file and for the files upon which it depends
26937
26938 2004-06-07  Ben Brosgol  <brosgol@gnat.com>
26939
26940         * gnat_ugn.texi: Wordsmithing of "GNAT and Libraries" chapter
26941
26942 2004-06-07  Arnaud Charlet  <charlet@act-europe.fr>
26943
26944         * gnatvsn.ads: Bump version numbers appropriately.
26945         Add new build type.
26946
26947 2004-06-07  Pascal Obry  <obry@gnat.com>
26948
26949         * gnat_ugn.texi: Improve comments about imported names and link names
26950         on Windows. Add a note about the requirement to use -k gnatdll's option
26951         when working with a DLL which has stripped stdcall symbols (no @nn
26952         suffix).
26953
26954 2004-05-27  Vincent Celier  <celier@gnat.com>
26955
26956         * vms_data.ads: Add new GNAT PRETTY qualifiers /NO_BACKUP and
26957         COMMENTS_LAYOUT=UNTOUCHED
26958
26959         * symbols-vms.adb, symbols-vms-alpha.adb: Renamed symbols-vms.adb to
26960         symbols-vms-alpha.adb
26961
26962 2004-05-27  Thomas Quinot  <quinot@act-europe.fr>
26963
26964         * sem.ads: Clarify documentation on checks suppression.
26965
26966         * einfo.ads (Is_Known_Non_Null): Minor comment typo fix and rephrasing.
26967
26968 2004-05-27  Ed Schonberg  <schonberg@gnat.com>
26969
26970         * sem_util.adb (Is_Descendent_Of): Examine properly all ancestors in
26971         the case of multiple derivations.
26972         (Is_Object_Reference): For a selected component, verify that the prefix
26973         is itself an object and not a value.
26974
26975         * sem_ch12.adb (Same_Instantiated_Constant): New name for
26976         Same_Instantiated_Entity.
26977         (Same_Instantiated_Variable): Subsidiary to
26978         Check_Formal_Package_Instance, to recognize actuals for in-out generic
26979         formals that are obtained from a previous formal package.
26980         (Instantiate_Subprogram_Body): Emit proper error when
26981         generating code and the proper body of a stub is missing.
26982
26983         * sem_ch4.adb (Remove_Address_Interpretations): If the operation still
26984         has a universal interpretation, do the disambiguation here.
26985
26986         * exp_ch4.adb (Expand_N_Type_Conversion,
26987         Expand_N_Unchecked_Type_Conversion): Special handling when target type
26988         is Address, to avoid typing anomalies when Address is a visible integer
26989         type.
26990
26991         * exp_ch6.adb (Expand_N_Subprogram_Body): Use Is_Descendent_Of_Address
26992         to determine whether a subprogram should not be marked Pure, even when
26993         declared in a pure package.
26994
26995 2004-05-27  Jose Ruiz  <ruiz@act-europe.fr>
26996
26997         * gnat_ugn.texi: Replace pragma Ravenscar by pragma Profile.
26998
26999         * gnat_rm.texi: Replace Max_Entry_Queue_Depth by Max_Entry_Queue_Length
27000         Document No_Dynamic_Attachment, that supersedes No_Dynamic_Interrupts.
27001         Update the documentation about the Ravenscar profile, following the
27002         definition found in AI-249.
27003
27004         * sem_prag.adb: Use FIFO_Within_Priorities and Ceiling_Locking when
27005         setting the Profile (Ravenscar). This must be done in addition to
27006         setting the required restrictions.
27007
27008         * rtsfind.ads: Add the set of operations defined in package
27009         Ada.Interrupts.
27010
27011         * exp_ch6.adb: Check whether we are violating the No_Dynamic_Attachment
27012         restriction.
27013
27014 2004-05-27  Eric Botcazou  <ebotcazou@act-europe.fr>
27015
27016         lang-specs.h: Always require -c or -S and always redirect to /dev/null
27017         if -gnatc or -gnats is passed.
27018
27019 2004-05-27  Hristian Kirtchev  <kirtchev@gnat.com>
27020
27021         * sem_prag.adb (Sig_Flags): A Pragma_Unchecked_Union does not count as
27022         a significant reference. Warnings are now properly emitted when a
27023         discriminated type is not referenced.
27024
27025         * lib-xref.adb (Generate_Reference): A deferred constant completion,
27026         record representation clause or record type discriminant does not
27027         produce a reference to its corresponding entity. Warnings are now
27028         properly emitted when deferred constants and record types are not
27029         referenced.
27030
27031 2004-05-27  Geert Bosch  <bosch@gnat.com>
27032
27033         * Makefile.in: Use long version of libm routines on ia64 gnu/linux.
27034         Fixes ACATS Annex G tests.
27035
27036 2004-05-27  Robert Dewar  <dewar@gnat.com>
27037
27038         * rtsfind.adb (RTU_Loaded): Temporary kludge to get past bug of not
27039         handling WITH
27040
27041 2004-05-27  Arnaud Charlet  <charlet@act-europe.fr>
27042
27043         * s-interr.adb (Server_Task): Take into account case of early return
27044         from sigwait under e.g. linux.
27045
27046 2004-05-27  Sergey Rybin  <rybin@act-europe.fr>
27047
27048         * gnat_ugn.texi: Add description for the new gnatpp options:
27049          -rnb - replace the original source without creating its backup copy
27050          -c0 - do not format comments
27051
27052 2004-05-24  Geert Bosch  <bosch@gnat.com>
27053
27054         * a-numaux-x86.adb (Reduce): Reimplement using an approximation of Pi
27055         with 192 bits of precision, sufficient to reduce a double-extended
27056         arguments X with a maximum relative error of T'Machine_Epsilon, for X
27057         in -2.0**32 .. 2.0**32.
27058         (Cos, Sin):  Always reduce arguments of 1/4 Pi or larger, to prevent
27059         reduction by the processor, which only uses a 68-bit approximation of
27060         Pi.
27061         (Tan): Always reduce arguments and compute function either using
27062         the processor's fptan instruction, or by dividing sin and cos as needed.
27063
27064 2004-05-24  Doug Rupp  <rupp@gnat.com>
27065
27066         * adaint.c (__gnat_readdir): Cast CRTL function retun value to avoid
27067         gcc error on 32/64 bit VMS.
27068
27069 2004-05-24  Olivier Hainque  <hainque@act-europe.fr>
27070
27071         * init.c (__gnat_error_handler): Handle EEXIST as EACCES for SIGSEGVs,
27072         since this is what we get for stack overflows although not documented
27073         as such.
27074         Document the issues which may require adjustments to our signal
27075         handlers.
27076
27077 2004-05-24  Ed Schonberg  <schonberg@gnat.com>
27078
27079         * inline.adb (Add_Scope_To_Clean): Do not add cleanup actions to the
27080         enclosing dynamic scope if the instantiation is within a generic unit.
27081
27082 2004-05-24  Arnaud Charlet  <charlet@act-europe.fr>
27083
27084         * exp_dbug.ads: Fix typo.
27085
27086         * Makefile.in: s-osinte-linux-ia64.ads was misnamed.
27087         Rename it to its proper name: system-linux-ia64.ads
27088         (stamp-gnatlib1): Remove extra target specific run time files when
27089         setting up the rts directory.
27090
27091 2004-05-24  Javier Miranda  <miranda@gnat.com>
27092
27093         * einfo.ads, einfo.adb (Limited_Views): Removed.
27094         (Limited_View): New attribute that replaces the previous one. It is
27095         now a bona fide package with the limited-view list through the
27096         first_entity and first_private attributes.
27097
27098         * sem_ch10.adb (Install_Private_With_Clauses): Give support to
27099         limited-private-with clause.
27100         (Install_Limited_Withed_Unit): Install the private declarations of a
27101         limited-private-withed package. Update the installation of the shadow
27102         entities according to the new structure (see Build_Limited_Views)
27103         (Build_Limited_Views): Replace the previous implementation of the
27104         limited view by a package entity that references the first shadow
27105         entity plus the first shadow private entity (required for limited-
27106         private-with clause)
27107         (New_Internal_Shadow_Entity): Code cleanup.
27108         (Remove_Limited_With_Clause): Update the implementation to undo the
27109         new work carried out by Build_Limited_Views.
27110         (Build_Chain): Complete documentation.
27111         Replace Ada0Y by Ada 0Y in comments
27112         Minor reformating
27113
27114         * sem_ch3.adb (Array_Type_Declaration): In case of anonymous access
27115         types the level of accessibility depends on the enclosing type
27116         declaration.
27117
27118         * sem_ch8.adb (Find_Expanded_Name): Fix condition to detect shadow
27119         entities. Complete documentation of previous change.
27120
27121 2004-05-24  Robert Dewar  <dewar@gnat.com>
27122
27123         * namet.adb: Minor reformatting
27124         Avoid use of name I (replace by J)
27125         Minor code restructuring
27126
27127         * sem_ch6.adb: Minor reformatting
27128
27129         * lib-writ.adb: Do not set restriction as active if this is a
27130         Restriction_Warning case.
27131
27132         * sem_prag.adb: Reset restriction warning flag if real pragma
27133         restriction encountered.
27134
27135         * s-htable.adb: Minor reformatting
27136         Change rotate count to 3 in Hash (improves hash for small strings)
27137
27138         * 5qsystem.ads: Add comments for type Address (no literals allowed).
27139
27140         * gnat_ugn.texi: Add new section of documentation "Code Generation
27141         Control", which describes the use of -m switches.
27142
27143 2004-05-24  Eric Botcazou  <ebotcazou@act-europe.fr>
27144
27145         trans.c (tree_transform) <N_Identifier>: Do the dereference directly
27146         through the DECL_INITIAL for renamed variables.
27147
27148 2004-05-24  Arnaud Charlet  <charlet@act-europe.fr>
27149
27150         * s-osinte-linux-ia64.ads: Renamed system-linux-ia64.ads
27151
27152 2004-05-19  Joel Brobecker  <brobecker@gnat.com>
27153
27154         * exp_dbug.ads: Correct comments concerning handling of overloading,
27155         since we no longer use $ anymore.
27156
27157 2004-05-19  Sergey Rybin  <rybin@act-europe.fr>
27158
27159         * sem_ch10.adb (Optional_Subunit): When loading a subunit, do not
27160         ignore errors if ASIS_Mode is set. This prevents creating ASIS trees
27161         with illegal subunits.
27162
27163 2004-05-19  Ed Schonberg  <schonberg@gnat.com>
27164
27165         * sem_ch6.adb (Check_Following_Pragma): When compiling a subprogram
27166         body with front-end inlining enabled, check whether an inline pragma
27167         appears immediately after the body and applies to it.
27168
27169         * sem_prag.adb (Cannot_Inline): Emit warning if front-end inlining is
27170         enabled and the pragma appears after the body of the subprogram.
27171
27172 2004-05-17  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
27173
27174         Part of function-at-a-time conversion
27175
27176         * misc.c (adjust_decl_rtl): Deleted.
27177         (LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK):
27178         Define.
27179
27180         * gigi.h: (adjust_decl_rtl, kept_level_p, set_block): Deleted.
27181         (add_decl_stmt, add_stmt, block_has_vars): New functions.
27182         (gnat_pushlevel, gnat_poplevel): Renamed from pushlevel and poplevel.
27183
27184         * decl.c (elaborate_expression, maybe_pad_type): Call add_decl_stmt
27185         when making a decl.
27186         (gnat_to_gnu_entity): Likewise.
27187         Use add_stmt to update setjmp buffer.
27188         Set TREE_ADDRESSABLE instead of calling put_var_into_stack and
27189         flush_addressof.
27190         No longer call adjust_decl_rtl.
27191         (DECL_INIT_BY_ASSIGN_P): New macro.
27192         (DECL_STMT_VAR): Likewise.
27193
27194         * trans.c (gigi): Call start_block_stmt to make the outermost
27195         BLOCK_STMT.
27196         (gnat_to_code, gnu_to_gnu, tree_transform, process_decls, process_type):
27197         Call start_block_stmt and end_block_stmt temporarily.
27198         Use gnat_expand_stmt instead of expand_expr_stmt.
27199         (add_decl_stmt): New function.
27200         (tree_transform): Call it.
27201         (add_stmt): Also emit initializing assignment for DECL_STMT if needed.
27202         (end_block_stmt): Set type and NULL_STMT.
27203         (gnat_expand_stmt): Make recursize call instead of calling
27204         expand_expr_stmt.
27205         (gnat_expand_stmt, case DECL_STMT): New case.
27206         (set_lineno_from_sloc): Do nothing if global.
27207         (gnu_block_stmt_node, gnu_block_stmt_free_list): New variables.
27208         (start_block_stmt, add_stmt, end_block_stmt): New functions.
27209         (build_block_stmt): Call them.
27210         (gnat_to_code): Don't expand NULL_STMT.
27211         (build_unit_elab): Rename pushlevel and poplevel to gnat_* and change
27212         args.
27213         (tree_transform): Likewise.
27214         (tree_transform, case N_Null_Statement): Return NULL_STMT.
27215         (gnat_expand_stmt, case NULL_STMT): New case.
27216         (gnat_expand_stmt, case IF_STMT): Allow nested IF_STMT to have no
27217         IF_STMT_TRUE.
27218
27219         * utils2.c (gnat_mark_addressable, case VAR_DECL): Do not set
27220         TREE_ADDRESSABLE.
27221
27222         * utils.c (create_var_decl): Do not call expand_decl or
27223         expand_decl_init.
27224         Set TREE_ADDRESSABLE instead of calling gnat_mark_addressable.
27225         Set DECL_INIT_BY_ASSIGN_P when needed and do not generate MODIFY_EXPR
27226         here.
27227         (struct e_stack): Add chain_next to GTY.
27228         (struct binding_level): Deleted.
27229         (struct ada_binding_level): New struct.
27230         (free_block_chain): New.
27231         (global_binding_level, clear_binding_level): Deleted.
27232         (global_bindings_p): Rework to see if no chain.
27233         (kept_level_p, set_block): Deleted.
27234         (gnat_pushlevel): Renamed from pushlevel and extensive reworked to use
27235         new data structure and work directly on BLOCK node.
27236         (gnat_poplevel): Similarly.
27237         (get_decls): Look at BLOCK_VARS.
27238         (insert_block): Work directly on BLOCK node.
27239         (block_has_var): New function.
27240         (pushdecl): Rework for new binding structures.
27241         (gnat_init_decl_processing): Rename and rework calls to pushlevel and
27242         poplevel.
27243         (build_subprog_body): Likewise.
27244         (end_subprog_body): Likewise; also set up BLOCK in DECL_INITIAL.
27245
27246         * ada-tree.def (DECL_STMT, NULL_STMT): New codes.
27247
27248         * ada-tree.h: (DECL_INIT_BY_ASSIGN_P): New macro.
27249         (DECL_STMT_VAR): Likewise.
27250
27251 2004-05-17  Robert Dewar  <dewar@gnat.com>
27252
27253         * restrict.ads, restrict.adb (Process_Restriction_Synonym): New
27254         procedure
27255
27256         * sem_prag.adb (Analyze_Pragma, case Restrictions): Cleanup handling
27257         of restriction synonyums by using
27258         Restrict.Process_Restriction_Synonyms.
27259
27260         * snames.ads, snames.adb: Add entries for Process_Restriction_Synonym
27261
27262         * s-restri.ads (Tasking_Allowed): Correct missing comment
27263
27264         * s-rident.ads: Add entries for restriction synonyms
27265
27266         * ali.adb: Fix some problems with badly formatted ALI files that can
27267         result in infinite loops.
27268
27269         * s-taprop-lynxos.adb, s-tpopsp-lynxos.adb, s-taprop-tru64.adb,
27270         s-tpopsp-posix-foreign.adb, s-taprop-irix.adb, s-interr-sigaction.adb,
27271         s-taprop-irix-athread.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
27272         s-taprop-dummy.adb, s-interr-dummy.adb, s-taprop-os2.adb,
27273         s-taprop-solaris.adb, s-tpopsp-solaris.adb, s-asthan-vms.adb,
27274         s-inmaop-vms.adb, s-interr-vms.adb, s-taprop-vms.adb,
27275         s-tpopde-vms.adb, s-taprop-mingw.adb, s-interr-vxworks.adb,
27276         s-taprop-vxworks.adb, s-tpopsp-vxworks.adb, s-taprop-posix.adb,
27277         s-tpopsp-posix.adb, s-tratas-default.adb, a-dynpri.adb,
27278         a-tasatt.adb, a-taside.adb, a-taside.ads, exp_attr.adb,
27279         exp_ch9.adb, g-thread.adb, rtsfind.ads, sem_attr.adb,
27280         s-interr.adb, s-interr.ads, s-soflin.ads, s-taasde.adb,
27281         s-taasde.ads, s-taenca.adb, s-taenca.ads, s-taprop.ads,
27282         s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads,
27283         s-tasini.adb, s-tasini.ads, s-taskin.adb, s-taskin.ads,
27284         s-tasque.adb, s-tasque.ads, s-tasren.adb, s-tasren.ads,
27285         s-tassta.adb, s-tassta.ads, s-tasuti.adb, s-tasuti.ads,
27286         s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
27287         s-tpoben.adb, s-tpobop.adb, s-tpobop.ads, s-tporft.adb,
27288         s-tposen.adb, s-tposen.ads, s-tratas.adb, s-tratas.ads: Change Task_ID
27289         to Task_Id (minor cleanup).
27290
27291 2004-05-17  Vincent Celier  <celier@gnat.com>
27292
27293         * g-os_lib.adb (Normalize_Pathname.Final_Value): Remove trailing
27294         directory separator.
27295
27296         * prj-proc.adb (Recursive_Process): Inherit attribute Languages from
27297         project being extended, if Languages is not declared in extending
27298         project.
27299
27300 2004-05-17  Javier Miranda  <miranda@gnat.com>
27301
27302         * sem_ch10.adb (Install_Limited_Withed_Unit): Do not install the
27303         limited view of a visible sibling.
27304
27305 2004-05-14  Robert Dewar  <dewar@gnat.com>
27306
27307         * gnat_ugn.texi: Minor change to -gnatS documentation
27308
27309         * sprint.adb: Remove some instances of Assert (False) and for this
27310         purpose replace them by output of a ??? string.
27311
27312         * checks.adb, exp_aggr.adb, sem_elim.adb: Remove useless pragma
27313         Assert (False).
27314
27315         * lib-writ.adb, lib-load.adb, lib.ads, lib.adb: Remove Dependent_Unit
27316         flag processing. This was suppressing required dependencies in
27317         No_Run_Time mode and is not needed since the binder does not generate
27318         references for things in libgnat anyway.
27319
27320         * sem_ch3.adb (Access_Type_Declaration): Reorganize code to avoid GCC
27321         warning.
27322
27323 2004-05-14  Thomas Quinot  <quinot@act-europe.fr>
27324
27325         * gnat_ugn.texi: Document AIX-specific issue with initialization of
27326         resolver library.
27327
27328         * exp_ch4.adb (Insert_Dereference_Action): Do not generate dereference
27329         action for the case of an actual parameter in an init proc call.
27330
27331 2004-05-14  Ed Schonberg  <schonberg@gnat.com>
27332
27333         * sem_ch4.adb (Analyze_Selected_Component): If prefix is a protected
27334         subtype, check visible entities in base type.
27335
27336         * exp_ch7.adb (Clean_Simple_Protected_Objects): Do not generate cleanup
27337         actions if the object is a renaming.
27338
27339         * sem_ch12.adb (Same_Instantiated_Entity): Predicate for
27340         Check_Formal_Package_Instance, to determine more precisely when the
27341         formal and the actual denote the same entity.
27342
27343 2004-05-14  Javier Miranda  <miranda@gnat.com>
27344
27345         * par-ch10.adb (P_Context_Clause): Complete documentation on AI-262
27346
27347         * sem_ch10.adb (Analyze_With_Clause): After analyzed, the entity
27348         corresponding to a private_with must be removed from visibility; it
27349         will be made visible later, just before we analyze the private part of
27350         the package.
27351         (Check_Private_Child_Unit): Allow private_with clauses in public
27352         siblings.
27353         (Install_Siblings): Make visible the private entities of private-withed
27354         siblings.
27355         (Install_Withed_Unit): Do not install the private withed unit if we
27356         are compiling a package declaration and the Private_With_OK flag was
27357         not set by the caller. These declarations will be installed later,
27358         just before we analyze the private part of the package.
27359
27360         * sem_ch3.adb (Analyze_Object_Declaration): In case of errors detected
27361         during the evaluation of the expression that initializes the object,
27362         decorate it with the expected type to avoid cascade errors.
27363         Code cleanup.
27364
27365         * sem_ch6.adb (Analyze_Subprogram_Body): If we are compiling a library
27366         subprogram we have to install the private_with clauses after its
27367         specification has been analyzed (as documented in AI-262.TXT).
27368
27369         * sem_ch8.adb (Has_Private_With): New function. Determines if the
27370         current compilation unit has a private with on a given entity.
27371         (Find_Direct_Name): Detect the Beaujolais problem described in
27372         AI-262.TXT
27373
27374         * sem_utils.ads, sem_util.adb (Is_Ancestor_Package): New function. It
27375         provides the functionality of the function Is_Ancestor that was
27376         previously available in sem_ch10. It has been renamed to avoid
27377         overloading.
27378
27379         * sprint.adb (Sprint_Node_Actual): Print limited_with clauses
27380
27381 2004-05-14  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
27382
27383         * utils.c (build_vms_descriptor): Use SImode pointers.
27384
27385 2004-05-14  Vasiliy Fofanov  <fofanov@act-europe.fr>
27386
27387         * gnat_ugn.texi: Revised chapter "GNAT and Libraries".
27388
27389 2004-05-14  GNAT Script  <nobody@gnat.com>
27390
27391         * Make-lang.in: Makefile automatically updated
27392
27393 2004-05-14  Arnaud Charlet  <charlet@act-europe.fr>
27394
27395         Renaming of target specific files for clarity
27396
27397         * Makefile.in: Rename GNAT target specific files.
27398
27399         * 31soccon.ads, 31soliop.ads 35soccon.ads, 3asoccon.ads,
27400         3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3psoccon.ads,
27401         3ssoccon.ads, 3ssoliop.ads, 3veacodu.adb, 3vexpect.adb,
27402         3vsoccon.ads, 3vsocthi.adb, 3vsocthi.ads, 3vtrasym.adb,
27403         3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads, 3wsoliop.ads,
27404         3zsoccon.ads, 3zsocthi.adb, 3zsocthi.ads, 41intnam.ads,
27405         42intnam.ads, 45intnam.ads, 4aintnam.ads, 4cintnam.ads,
27406         4gintnam.ads, 4hexcpol.adb, 4hintnam.ads, 4lintnam.ads,
27407         4nintnam.ads, 4ointnam.ads, 4onumaux.ads, 4pintnam.ads,
27408         4sintnam.ads, 4vcaldel.adb, 4vcalend.adb, 4vcalend.ads,
27409         4vintnam.ads, 4wcalend.adb, 4wexcpol.adb, 4wintnam.ads,
27410         4zintnam.ads, 4znumaux.ads, 4zsytaco.adb, 4zsytaco.ads,
27411         51osinte.adb, 51osinte.ads, 51system.ads,
27412         52osinte.adb, 52osinte.ads, 53osinte.ads, 54osinte.ads,
27413         55osinte.adb, 55osinte.ads, 55system.ads, 56osinte.adb,
27414         56osinte.ads, 56system.ads, 56taprop.adb, 56taspri.ads,
27415         56tpopsp.adb, 57system.ads, 58system.ads,
27416         5amastop.adb, 5aml-tgt.adb, 5aosinte.adb, 5aosinte.ads,
27417         5asystem.ads, 5ataprop.adb, 5atasinf.ads, 5ataspri.ads,
27418         5atpopsp.adb, 5avxwork.ads, 5bml-tgt.adb, 5bosinte.adb,
27419         5bosinte.ads, 5bsystem.ads, 5cosinte.ads, 5csystem.ads,
27420         5dsystem.ads, 5esystem.ads, 5fintman.adb, 5fosinte.adb,
27421         5fosinte.ads, 5fsystem.ads, 5ftaprop.adb, 5ftasinf.ads,
27422         5ginterr.adb, 5gintman.adb, 5gmastop.adb, 5gml-tgt.adb,
27423         5gosinte.ads, 5gproinf.adb, 5gproinf.ads, 5gsystem.ads,
27424         5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads, 5gtpgetc.adb,
27425         5hml-tgt.adb, 5hosinte.adb, 5hosinte.ads, 5hparame.ads,
27426         5hsystem.ads, 5htaprop.adb, 5htaspri.ads, 5htraceb.adb,
27427         5iosinte.adb, 5iosinte.ads, 5itaprop.adb, 5itaspri.ads,
27428         5ksystem.ads, 5kvxwork.ads, 5lml-tgt.adb, 5losinte.ads,
27429         5lparame.adb, 5lsystem.ads, 5msystem.ads, 5mvxwork.ads,
27430         5ninmaop.adb, 5nintman.adb, 5nosinte.ads, 5nsystem.ads,
27431         5ntaprop.adb, 5ntaspri.ads, 5ointerr.adb, 5omastop.adb,
27432         5oosinte.adb, 5oosinte.ads, 5oosprim.adb, 5oparame.adb,
27433         5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5posinte.ads,
27434         5posprim.adb, 5psystem.ads, 5pvxwork.ads, 5sintman.adb,
27435         5sml-tgt.adb, 5sosinte.adb, 5sosinte.ads, 5sosprim.adb,
27436         5sparame.adb, 5ssystem.ads, 5staprop.adb, 5stasinf.adb,
27437         5stasinf.ads, 5staspri.ads, 5stpopsp.adb, 5svxwork.ads,
27438         5tosinte.ads, 5usystem.ads, 5vasthan.adb, 5vdirval.adb,
27439         5vinmaop.adb, 5vinterr.adb, 5vintman.adb, 5vintman.ads,
27440         5vmastop.adb, 5vml-tgt.adb, 5vosinte.adb, 5vosinte.ads,
27441         5vosprim.adb, 5vosprim.ads, 5vparame.ads, 5vsymbol.adb,
27442         5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads, 5vtpopde.adb,
27443         5vtpopde.ads, 5vtraent.adb, 5vtraent.ads, 5vvaflop.adb,
27444         5wdirval.adb, 5wgloloc.adb, 5wintman.adb, 5wmemory.adb,
27445         5wml-tgt.adb, 5wosinte.ads, 5wosprim.adb, 5wsystem.ads,
27446         5wtaprop.adb, 5wtaspri.ads, 5xparame.ads, 5xsystem.ads,
27447         5xvxwork.ads, 5yparame.ads, 5ysystem.ads, 5zinterr.adb,
27448         5zintman.adb, 5zintman.ads, 5zml-tgt.adb, 5zosinte.adb,
27449         5zosinte.ads, 5zosprim.adb, 5zparame.ads, 5zstchop.adb,
27450         5zsystem.ads, 5ztaprop.adb, 5ztaspri.ads, 5ztfsetr.adb,
27451         5ztpopsp.adb, 6vcpp.adb, 6vcstrea.adb, 6vinterf.ads,
27452         7sinmaop.adb, 7sintman.adb, 7sosinte.adb, 7sosprim.adb,
27453         7staprop.adb, 7staspri.ads, 7stfsetr.adb, 7stpopsp.adb,
27454         7straceb.adb, 7straces.adb, 7strafor.adb, 7strafor.ads,
27455         7stratas.adb, 86numaux.adb, 86numaux.ads: Replaced by files below.
27456
27457         * a-caldel-vms.adb, a-calend-mingw.adb, a-calend-vms.adb,
27458         a-calend-vms.ads, a-dirval-mingw.adb, a-dirval-vms.adb,
27459         a-excpol-abort.adb, a-excpol-interix.adb, a-intnam-aix.ads,
27460         a-intnam-dummy.ads, a-intnam-freebsd.ads, a-intnam-hpux.ads,
27461         a-intnam-interix.ads, a-intnam-irix.ads, a-intnam-linux.ads,
27462         a-intnam-lynxos.ads, a-intnam-mingw.ads, a-intnam-os2.ads,
27463         a-intnam-solaris.ads, a-intnam-tru64.ads, a-intnam-unixware.ads,
27464         a-intnam-vms.ads, a-intnam-vxworks.ads, a-numaux-libc-x86.ads,
27465         a-numaux-vxworks.ads, a-numaux-x86.adb, a-numaux-x86.ads,
27466         a-sytaco-vxworks.adb, a-sytaco-vxworks.ads, g-eacodu-vms.adb,
27467         g-expect-vms.adb, g-soccon-aix.ads, g-soccon-freebsd.ads,
27468         g-soccon-hpux.ads, g-soccon-interix.ads, g-soccon-irix.ads,
27469         g-soccon-mingw.ads, g-soccon-solaris.ads, g-soccon-tru64.ads,
27470         g-soccon-unixware.ads, g-soccon-vms.adb, g-soccon-vxworks.ads,
27471         g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vms.adb,
27472         g-socthi-vms.ads, g-socthi-vxworks.adb, g-socthi-vxworks.ads,
27473         g-soliop-mingw.ads, g-soliop-solaris.ads, g-soliop-unixware.ads,
27474         g-trasym-vms.adb, i-cpp-vms.adb, i-cstrea-vms.adb,
27475         interfac-vms.ads, mlib-tgt-aix.adb, mlib-tgt-hpux.adb,
27476         mlib-tgt-irix.adb, mlib-tgt-linux.adb, mlib-tgt-mingw.adb,
27477         mlib-tgt-solaris.adb, mlib-tgt-tru64.adb, mlib-tgt-vms.adb,
27478         mlib-tgt-vxworks.adb, s-asthan-vms.adb, s-gloloc-mingw.adb,
27479         s-inmaop-dummy.adb, s-inmaop-posix.adb, s-inmaop-vms.adb,
27480         s-interr-dummy.adb, s-interr-sigaction.adb, s-interr-vms.adb,
27481         s-interr-vxworks.adb, s-intman-dummy.adb, s-intman-irix.adb,
27482         s-intman-irix-athread.adb, s-intman-mingw.adb, s-intman-posix.adb,
27483         s-intman-solaris.adb, s-intman-vms.adb, s-intman-vms.ads,
27484         s-intman-vxworks.adb, s-intman-vxworks.ads, s-mastop-irix.adb,
27485         s-mastop-tru64.adb, s-mastop-vms.adb, s-mastop-x86.adb,
27486         s-memory-mingw.adb, s-osinte-aix.adb, s-osinte-aix.ads,
27487         s-osinte-aix-fsu.ads, s-osinte-dummy.ads, s-osinte-freebsd.adb,
27488         s-osinte-freebsd.ads, s-osinte-fsu.adb, s-osinte-hpux.ads,
27489         s-osinte-hpux-dce.adb, s-osinte-hpux-dce.ads, s-osinte-interix.ads,
27490         s-osinte-irix.adb, s-osinte-irix.ads, s-osinte-irix-athread.ads,
27491         s-osinte-linux.ads, s-osinte-linux-fsu.ads, s-osinte-linux-ia64.ads,
27492         s-osinte-lynxos-3.adb, s-osinte-lynxos-3.ads, s-osinte-lynxos.adb,
27493         s-osinte-lynxos.ads, s-osinte-mingw.ads, s-osinte-os2.adb,
27494         s-osinte-os2.ads, s-osinte-posix.adb, s-osinte-solaris.adb,
27495         s-osinte-solaris.ads, s-osinte-solaris-fsu.ads,
27496         s-osinte-solaris-posix.ads, s-osinte-tru64.adb, s-osinte-tru64.ads,
27497         s-osinte-unixware.adb, s-osinte-unixware.ads, s-osinte-vms.adb,
27498         s-osinte-vms.ads, s-osinte-vxworks.adb,
27499         s-osinte-vxworks.ads, s-osprim-mingw.adb,
27500         s-osprim-os2.adb, s-osprim-posix.adb, s-osprim-solaris.adb,
27501         s-osprim-unix.adb, s-osprim-vms.adb, s-osprim-vms.ads,
27502         s-osprim-vxworks.adb, s-parame-ae653.ads, s-parame-hpux.ads,
27503         s-parame-linux.adb, s-parame-os2.adb, s-parame-solaris.adb,
27504         s-parame-vms.ads, s-parame-vms-restrict.ads, s-parame-vxworks.ads,
27505         s-proinf-irix-athread.adb, s-proinf-irix-athread.ads,
27506         s-stchop-vxworks.adb, s-taprop-dummy.adb,
27507         s-taprop-hpux-dce.adb, s-taprop-irix.adb,
27508         s-taprop-irix-athread.adb, s-taprop-linux.adb, s-taprop-lynxos.adb,
27509         s-taprop-mingw.adb, s-taprop-os2.adb, s-taprop-posix.adb,
27510         s-taprop-solaris.adb, s-taprop-tru64.adb, s-taprop-vms.adb,
27511         s-taprop-vxworks.adb, s-tasinf-irix.ads, s-tasinf-irix-athread.adb,
27512         s-tasinf-irix-athread.ads, s-tasinf-solaris.adb, s-tasinf-solaris.ads,
27513         s-tasinf-tru64.ads, s-taspri-dummy.ads, s-taspri-hpux-dce.ads,
27514         s-taspri-linux.ads, s-taspri-lynxos.ads, s-taspri-mingw.ads,
27515         s-taspri-os2.ads, s-taspri-posix.ads, s-taspri-solaris.ads,
27516         s-taspri-tru64.ads, s-taspri-vms.ads, s-taspri-vxworks.ads,
27517         s-tfsetr-default.adb, s-tfsetr-vxworks.adb, s-tpopde-vms.adb,
27518         s-tpopde-vms.ads, s-tpopsp-lynxos.adb, s-tpopsp-posix.adb,
27519         s-tpopsp-posix-foreign.adb, s-tpopsp-solaris.adb, s-tpopsp-vxworks.adb,
27520         s-traceb-hpux.adb, s-traceb-mastop.adb, s-traces-default.adb,
27521         s-traent-vms.adb, s-traent-vms.ads, s-trafor-default.adb,
27522         s-trafor-default.ads, s-tratas-default.adb, s-vaflop-vms.adb,
27523         s-vxwork-alpha.ads, s-vxwork-m68k.ads, s-vxwork-mips.ads,
27524         s-vxwork-ppc.ads, s-vxwork-sparcv9.ads, s-vxwork-xscale.ads,
27525         symbols-vms.adb, system-aix.ads, system-freebsd-x86.ads,
27526         system-hpux.ads, system-interix.ads, system-irix-n32.ads,
27527         system-irix-o32.ads, system-linux-x86_64.ads,
27528         system-linux-x86.ads, system-lynxos-ppc.ads, system-lynxos-x86.ads,
27529         system-mingw.ads, system-os2.ads, system-solaris-sparc.ads,
27530         system-solaris-sparcv9.ads, system-solaris-x86.ads, system-tru64.ads,
27531         system-unixware.ads, system-vms.ads, system-vms-zcx.ads,
27532         system-vxworks-alpha.ads, system-vxworks-m68k.ads,
27533         system-vxworks-mips.ads, system-vxworks-ppc.ads,
27534         system-vxworks-sparcv9.ads, system-vxworks-xscale.ads: Replace files
27535         above.
27536
27537 2004-05-13  Zack Weinberg  <zack@codesourcery.com>
27538
27539         * trans.c (gnat_stabilize_reference_1): Remove case 'b'.
27540
27541 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
27542
27543         Merge from tree-ssa-20020619-branch.
27544
27545         * config-lang.in (boot_language, build_by_default): Set
27546         to no.
27547         * utils.c (unchecked_convert): Use OEP_ONLY_CONST.
27548         (max_size): Add static chain op for call_expr.
27549
27550 2004-05-12  Richard Sandiford  <rsandifo@redhat.com>
27551
27552         PR target/15331
27553         * 5gmastop.adb (Roff): Choose between '4' and '0', not '4' and ' '.
27554
27555 2004-05-11  Roger Sayle  <roger@eyesopen.com>
27556
27557         * utils.c (max_size): Use MIN_EXPR to find the minimum value of a
27558         COND_EXPR.
27559
27560 2004-05-10  Doug Rupp  <rupp@gnat.com>
27561
27562         * 5qsystem.ads: Remove Short_Address subtype declaration. Moved to
27563         system.aux_dec.
27564
27565         * s-auxdec.ads: Add Short_Address subtype (moved here from System).
27566
27567         * Makefile.in: [VMS]: Add translation for 5qauxdec.ads.
27568
27569         * init.c: [VMS] Macroize LIB$ calls for IA64 and Alpha.
27570         Fixes undefined symbols in IA64 gnatlib.
27571
27572         * 5vinmaop.adb: Reference s-auxdec for Short_Address.
27573
27574         * 5xsystem.ads, 5vsystem.ads: Back out last change (addition of subtype
27575         Short_Address). This will be moved to system.auxdec.
27576
27577 2004-05-10  Thomas Quinot  <quinot@act-europe.fr>
27578
27579         * sem_util.adb: Replace test for presence of a node that is always
27580         present with a call to Discard_Node.
27581
27582         * sem_ch10.adb (Analyze_Compilation_Unit): Remove superfluous call to
27583         Analyze on the library unit node after generation of distribution stub
27584         constructs.  The call was a no-op because Unit_Node has already been
27585         Analyzed, and the tree fragments for the distribution stubs are
27586         analyzed as they are inserted in Exp_Dist.
27587         Update comment regarding to distribution stubs to reflect that we
27588         do not generate stub in separate files anymore.
27589
27590         * einfo.ads: Clarify the fact that a tagged private type has the
27591         E_Record_Type_With_Private Ekind.
27592
27593         * erroutc.adb: Minor reformatting
27594
27595         * erroutc.ads (Max_Msg_Length): Increase to cover possible larger
27596         values if line length is increased using -gnatyM (noticed during code
27597         reading).
27598
27599         * eval_fat.adb: Minor reformatting
27600         Put spaces around exponentiation operator
27601
27602 2004-05-10  Ed Schonberg  <schonberg@gnat.com>
27603
27604         PR ada/15005
27605         * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): If prefix
27606         has been rewritten as an explicit dereference, retrieve type of
27607         original node to check for possibly unconstrained record type.
27608
27609 2004-05-10  Ed Schonberg  <schonberg@gnat.com>
27610
27611         * exp_ch7.adb (Check_Visibly_Controlled): If given operation is not
27612         overriding, use the operation of the parent unconditionally.
27613
27614         * sem_ch4.adb (Remove_Address_Interpretations): Remove address
27615         operation when either operand is a literal, to avoid further
27616         ambiguities.
27617
27618         * sem_ch6.adb (New_Overloaded_Entity): If new entity is inherited and
27619         overridden by a previous explicit declaration, mark the previous entity
27620         as overriding.
27621
27622         * sem_disp.adb (Check_Dispatching_Operation): New predicate
27623         Is_Visibly_Controlled, to determine whether a declaration of a
27624         primitive control operation for a derived type overrides an inherited
27625         one. Add warning if the explicit declaration does not override.
27626
27627 2004-05-10  Vincent Celier  <celier@gnat.com>
27628
27629         * gnatls.adb (Gnatls): Initialize Snames, to avoid assertion error in
27630         some cases when the sources are no longer present.
27631
27632         * make.adb (Collect_Arguments): Fail if an external source, not part
27633         of any project need to be compiled, when switch -x has not been
27634         specified.
27635
27636         * makeusg.adb: Document new switch -x
27637
27638         * opt.ads (External_Unit_Compilation_Allowed): New Boolean flag,
27639         defaulted to False.
27640
27641         * switch-m.adb (Scan_Make_Switches): New switch -x
27642
27643         * vms_data.ads: Add VMS qualifier /NON_PROJECT_UNIT_COMPILATION for
27644         gnatmake switch -x.
27645
27646         * gnat_ugn.texi: Document new gnatmake switch -x
27647
27648 2004-05-10  Eric Botcazou  <ebotcazou@act-europe.fr>
27649
27650         * misc.c (gnat_init_options): Set flag_zero_initialized_in_bss to 0.
27651
27652         * utils.c (create_var_decl): Do not modify the DECL_COMMON flag.
27653         (process_attributes): Likewise.
27654
27655 2004-05-10  Joel Brobecker  <brobecker@gnat.com>
27656
27657         * s-inmaop.ads: Fix spelling mistake in one of the comments.
27658
27659 2004-05-10  Robert Dewar  <dewar@gnat.com>
27660
27661         * gnat_ugn.texi: Document that for config pragma files, the maximum
27662         line length is always 32767.
27663
27664         * gnat_rm.texi: For pragma Eliminate, note that concatenation of string
27665         literals is now allowed.
27666
27667         * gnat-style.texi: Remove statement about splitting long lines before
27668         an operator rather than after, since we do not follow this rule at all.
27669         Clarify rule (really lack of rule) for spaces around exponentiation
27670
27671         * sem_elim.adb: Allow concatenation of string literals as well as a
27672         single string literal for pragma arguments.
27673
27674         * sem_prag.ads, sem_prag.adb: (Is_Config_Static_String): New function
27675
27676         * a-textio.adb (Terminate_Line): Do not add line feed if nothing
27677         written for append case.
27678
27679         * frontend.adb: Changes to avoid checking max line length in config
27680         pragma files.
27681
27682         * g-os_lib.ads: Minor reformatting
27683
27684         * mlib-utl.adb: Do not define Max_Line_Length locally (definition was
27685         wrong in any case. Instead use standard value. Noticed during code
27686         reading.
27687
27688         * opt.ads (Max_Line_Length): New field, used to implement removal of
27689         limitation on length of lines when scanning config pragma files.
27690
27691         * osint.ads, prj-dect.adb, prj-strt.adb, prj-tree.adb,
27692         makeutl.ads, makeutl.adb: Minor reformatting
27693
27694         * scn.adb: Do not check line length while scanning config pragma files
27695         Do not check line length while scanning out license information
27696
27697         * scng.adb: Changes to avoid line length checks while parsing config
27698         pragma files.
27699
27700 2004-05-10  GNAT Script  <nobody@gnat.com>
27701
27702         * Make-lang.in: Makefile automatically updated
27703
27704 2004-05-05  Arnaud Charlet  <charlet@act-europe.fr>
27705
27706         * osint.adb (Find_Program_Name): Fix handling of VMS version
27707         number.
27708
27709 2004-05-05  Emmanuel Briot  <briot@act-europe.fr>
27710
27711         * g-os_lib.ads (Invalid_Time): New constant
27712
27713         * adaint.h, adaint.c (__gnat_file_time_name, __gnat_file_time_fd): Now
27714         return OS_Time instead of time_t to match what is imported by Ada.
27715         Now return -1 if the file doesn't exist, instead of a random value
27716
27717 2004-05-05  Robert Dewar  <dewar@gnat.com>
27718
27719         * usage.adb: Add line for -gnatR?s switch
27720
27721         * sem_ch13.adb, exp_ch2.adb: Minor reformatting
27722
27723         * g-regpat.ads, g-regpat.adb: Add documentation on handling of Size
27724         and for Match (Data_First, Data_last)
27725
27726         * lib-writ.adb (Write_With_Lines): Ensure that correct index number is
27727         written when we are dealing with multi-unit files.
27728
27729 2004-05-05  Jerome Guitton  <guitton@act-europe.fr>
27730
27731         * Makefile.in: Remove unused targets and variables.
27732
27733 2004-05-05  Vincent Celier  <celier@gnat.com>
27734
27735         * switch-m.adb: New gnatmake switch -eI
27736
27737         * vms_data.ads: Add VMS equivalents of new gnatclean swith -innn and
27738         of new gnatmake switch -eInnn.
27739
27740         * makegpr.adb: Take into account new parameters Index and Src_Index in
27741         Prj.Util.
27742
27743         * clean.adb: Implement support for multi-unit sources, including new
27744         switch -i.
27745
27746         * gnatcmd.adb (GNATCmd): Call Prj.Util.Value_Of with new parameter
27747         Src_Index.
27748
27749         * make.ads, make.adb (Insert_Q): New parameter Index, defaulted to 0
27750         (Extract_From_Q): New out parameter Index
27751         (Mark, Is_Marked): Subprograms moved to Makeutl
27752         (Switches_Of): New parameter Source_Index
27753         (Add_Switch): New parameter Index
27754         (Check): New parameter Source_Index
27755         (Collect_Arguments): New parameter Source_Index
27756         (Collect_Arguments_And_Compile): New parameter Source_Index
27757         (Compile): New parameter Source_Index
27758         Put subprograms in alphabetical order
27759         Add support for multi-source sources, including in project files.
27760
27761         * makeutl.ads, makeutl.adb (Unit_Index_Of): New function
27762         (Mark, Is_Marked, Delete_All_Marks): New subprograms, moved from
27763         Make.
27764
27765         * makeusg.adb: New gnatmake switch -eInnn
27766
27767         * mlib-prj.adb (Build_Library): Add new parameter Src_Index to call to
27768         Prj.Util.Value_Of.
27769
27770         * opt.ads (Main_Index): New variable, defaulted to 0.
27771
27772         * osint.ads, osinte.adb (Add_File): New parameter Index
27773         (Current_Source_Index): New function
27774
27775         * prj.adb: Take into account new components Index and Src_Index
27776
27777         * prj.ads (String_Element): New component Index
27778         (Variable_Value): New component Index
27779         (Array_Element): New component Src_Index
27780
27781         * prj-attr.adb: Indicate that optional index may be specified for
27782         attributes Main, Executable, Spec, Body and some of Switches.
27783
27784         * prj-attr.ads (Attribute_Kind): New values for optional indexes
27785         (Attribute_Record): New component Optional_Index
27786
27787         * prj-com.ads (File_Name_Data): New component Index
27788
27789         * prj-dect.adb (Parse_Attribute_Declaration): Process optional index
27790
27791         * prj-env.adb (Put): Output optional index
27792
27793         * prj-makr.adb: Put indexes for multi-unit sources in SFN pragmas and
27794         attributes Spec and Body.
27795
27796         * prj-nmsc.adb: Process optional indexes
27797
27798         * prj-pp.adb: Ouput "at" for optional indexes
27799
27800         * prj-proc.adb: Take into account optional indexes
27801
27802         * prj-strt.ads, prj-strt.adb (Terms): New Boolean parameter
27803         Optional_Index. For string literal,
27804         process optional index when Optional_Index is True.
27805         (Parse_Expresion): New Boolean parameter Optional_Index
27806
27807         * prj-tree.ads, prj-tree.adb (Source_Index_Of): New function
27808         (Set_Source_Index_Of): New procedure
27809
27810         * prj-util.adb (Executable_Of, Value_Of): Take into account optional
27811         index.
27812
27813         * prj-util.ads (Executable_Of): New parameter Index
27814         (Value_Of (Name_Id, Array_Element_Id) returning Variable_Value):
27815         New parameter Src_Index, defaulted to 0.
27816
27817 2004-05-05  Ed Schonberg  <schonberg@gnat.com>
27818
27819         PR ada/15257
27820         * sem_ch3.adb (Access_Definition): If this is an access parameter
27821         whose designated type is imported through a limited_with clause, do
27822         not add the enclosing subprogram to the list of private dependents of
27823         the type.
27824
27825 2004-05-05  Ed Schonberg  <schonberg@gnat.com>
27826
27827         PR ada/15258
27828         * sem_ch6.adb (Base_Types_Match): True if one type is imported through
27829         a limited_with clause, and the other is its non-limited view.
27830
27831 2004-05-05  Thomas Quinot  <quinot@act-europe.fr>
27832
27833         * cstand.adb (Create_Standard): Initialize Stand.Boolean_Literals.
27834
27835         * exp_attr.adb, exp_ch5.adb, exp_ch9.adb, exp_disp.adb,
27836         exp_fixd.adb, sem_attr.adb, sem_dist.adb, sem_util.adb: Use
27837         Stand.Boolean_Literals to produce references to entities
27838         Standard_False and Standard_True from compile-time computed boolean
27839         values.
27840
27841         * stand.ads (Boolean_Literals): New variable, provides the entity
27842         values for False and True, for use by the expander.
27843
27844 2004-05-05  Doug Rupp  <rupp@gnat.com>
27845
27846         * 5vinmaop.adb, 5[vx]system.ads: Add Short_Address subtype
27847         5vinmaop.adb: Unchecked convert Short_Address vice Address
27848
27849         * adaint.c, raise.c: Caste CRTL function return value
27850         to avoid gcc error on 32/64 bit IVMS.
27851
27852         * Makefile.in [VMS]: Use iar archiver if host = Alpha/VMS and
27853         target = IA64/VMS.
27854
27855         * init.c[VMS]: Only call Alpha specific __gnat_error_prehandler IN_RTS.
27856
27857         * 5qsystem.ads (Address): Declare as Long_Integer
27858         (Short_Address): Declare as 32 bit subtype of Address
27859         Declare  abstract address operations to avoid gratuitous ambiguities.
27860
27861 2004-05-05  Jose Ruiz  <ruiz@act-europe.fr>
27862
27863         * gnat_rm.texi: Use the new restriction Simple_Barriers (AI-249)
27864         instead of the old Boolean_Entry_Barriers.
27865         Ditto for No_Task_Attributes_Package instead of No_Task_Attributes.
27866
27867 2004-05-05  GNAT Script  <nobody@gnat.com>
27868
27869         * Make-lang.in: Makefile automatically updated
27870
27871 2004-05-03  Arnaud Charlet  <charlet@act-europe.fr>
27872
27873         * 50system.ads, 59system.ads, s-thread.ads: Removed, no longer used.
27874
27875 2004-05-03  Olivier Hainque  <hainque@act-europe.fr>
27876
27877         PR ada/15152
27878         * exp_ch2.adb (Expand_Current_Value): Leave Machine_Code Asm arguments
27879         alone. Replacing object references by literals is inappropriate in a
27880         so low level context.
27881
27882 2004-05-03  Arnaud Charlet  <charlet@act-europe.fr>
27883
27884         * a-exexpr.adb: Add comments
27885
27886 2004-05-03  Joel Brobecker  <brobecker@gnat.com>
27887
27888         * a-tags.adb (Tag_Table): Add Index_Check pragma Suppress. Allows us to
27889         declare the Ancestor_Tags array in Type_Specific_Data with a small size
27890         without risking a bounds check error when accessing one of its
27891         components.
27892         (Type_Specific_Data): Define Ancestor_Tags as a small array.
27893         This prevents us from hitting a limitation during the debug info
27894         generation when using stabs.
27895
27896         * a-tags.adb (Dispatch_Table): Define the Prims_Ptr component as a
27897         small array.
27898         This prevents us from hitting a limitation during the debug info
27899         generation when using stabs.
27900
27901 2004-05-03  Eric Botcazou  <ebotcazou@act-europe.fr>
27902
27903         lang-specs.h: Remove -gnatz* from specs.
27904
27905 2004-05-03  Vincent Celier  <celier@gnat.com>
27906
27907         * gprmake.adb, makegpr.ads, makegpr.adb: New files.
27908
27909         * Make-lang.in, Makefile.in: Add gprmake
27910
27911 2004-05-03  Thomas Quinot  <quinot@act-europe.fr>
27912
27913         * sem_aggr.adb: Fix typo in comment.
27914
27915 2004-05-03  Robert Dewar  <dewar@gnat.com>
27916
27917         * make.adb: Minor reformatting
27918
27919         * rtsfind.ads, rtsfind.adb: (RTU_Loaded): New function
27920
27921         * sem_attr.adb (Eval_Attribute, case Type_Class): Fix check for address
27922         so that it works when address is not a private type.
27923
27924         * sem_ch13.adb (Check_Expr_Constants, case N_Integer_Literal): Deal
27925         properly with rewritten unchecked conversions. This prevents
27926         order-of-elaboration issues that can otherwise arise.
27927         (Minimum_Size): Don't check size of access types under VMS
27928
27929         * sem_ch4.adb (Remove_Address_Interpretation): New circuit to remove
27930         interpretations of integer literals as type System.Address.
27931
27932         * sem_util.ads, sem_util.adb (Is_Descendent_Of_Address): New function
27933         (Is_Descendent_Of): New function
27934
27935 2004-05-03  Jose Ruiz  <ruiz@act-europe.fr>
27936
27937         * sem_prag.adb: Boolean_Entry_Barriers is a synonym of Simple_Barriers.
27938         Max_Entry_Queue_Depth is a synonym of Max_Entry_Queue_Length.
27939         No_Dynamic_Interrupts is a synonym of No_Dynamic_Attachment.
27940
27941         * sem_res.adb: Use the new restriction Max_Entry_Queue_Length instead
27942         of the old Max_Entry_Queue_Depth.
27943
27944         * snames.adb: Boolean_Entry_Barriers is a synonym of Simple_Barriers.
27945         Max_Entry_Queue_Depth is a synonym of Max_Entry_Queue_Length
27946         No_Dynamic_Interrupts is a synonym of No_Dynamic_Attachment
27947
27948         * snames.ads: New entry for proper handling of Boolean_Entry_Barriers.
27949         New entry for proper handling of Max_Entry_Queue_Depth.
27950         New entry for proper handling of No_Dynamic_Interrupts.
27951
27952         * s-rident.ads: Adding restriction Simple_Barriers (AI-00249) that
27953         supersedes the GNAT specific restriction Boolean_Entry_Barriers.
27954         Adding restriction Max_Entry_Queue_Length (AI-00249) that supersedes
27955         the GNAT specific restriction Max_Entry_Queue_Depth.
27956         Adding restriction No_Dynamic_Attachment (AI-00249) that supersedes
27957         the GNAT specific restriction No_Dynamic_Interrupts.
27958
27959         * restrict.ads, restrict.adb: Use the new restriction Simple_Barriers
27960         instead of the old Boolean_Entry_Barriers.
27961         Use the new restriction No_Dynamic_Attachment instead of the old
27962         No_Dynamic_Interrupts.
27963
27964         * exp_ch9.adb: Check restriction Simple_Barriers (AI-00249) that
27965         supersedes the GNAT specific restriction Boolean_Entry_Barriers.
27966
27967         * gnatbind.adb: Use the new restriction Max_Entry_Queue_Length instead
27968         of the old Max_Entry_Queue_Depth.
27969
27970 2004-05-03  GNAT Script  <nobody@gnat.com>
27971
27972         * Make-lang.in: Makefile automatically updated
27973
27974 2004-04-29  Ed Schonberg  <schonberg@gnat.com>
27975
27976         * checks.adb (Enable_Range_Check): If the prefix of an index component
27977         is an access to an unconstrained array, perform check unconditionally.
27978
27979 2004-04-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
27980
27981         * decl.c (gnat_to_gnu_field): Also call make_packable_type if
27982         Component_Clause.
27983
27984 2004-04-29  Olivier Hainque  <hainque@act-europe.fr>
27985
27986         * init.c (__gnat_install_handler, __gnat_error_handler): Remove
27987         alternate stack setting. There was no support for the tasking cases
27988         and the changes eventually caused a number of side-effect failures in
27989         the non-tasking case too.
27990
27991 2004-04-29  Eric Botcazou  <ebotcazou@act-europe.fr>
27992
27993         lang-specs.h: Redirect output to /dev/null if -gnatc or -gnatz or
27994         -gnats is passed.
27995
27996 2004-04-29  Vincent Celier  <celier@gnat.com>
27997
27998         * make.adb (Gnatmake): Increase max size of argument array for
27999         gnatbind for the potential addition of -F.
28000         If there are Stand-Alone Library projects, invoke gnatbind with -F to
28001         be sure that elaboration flags will be checked.
28002
28003         * switch-c.adb: Correct call to Scan_Pos for -gnateI
28004
28005 2004-04-29  Thomas Quinot  <quinot@act-europe.fr>
28006
28007         * sem_warn.adb (Check_References): Move '<access-variable> may be
28008         null' warning out of under Warn_On_No_Value_Assigned.
28009
28010 2004-04-29  Ed Falis  <falis@gnat.com>
28011
28012         * gnat_ugn.texi: Fixed texi error
28013
28014 2004-04-29  Robert Dewar  <dewar@gnat.com>
28015
28016         * sem_ch4.adb (Remove_Abstract_Operations): Unconditionally remove
28017         abstract operations if they come from predefined files.
28018
28019         * gnat_rm.texi: Fix bad doc for pragma Elaboration_Checks (should be
28020         Dynamic, not RM).
28021
28022         * s-addope.adb: Correct obvious error in mod function
28023
28024 2004-04-28  Andrew W. Reynolds  <awreynolds@mac.com>
28025
28026         * Makefile.in: Add target pairs for powerpc darwin*
28027         tasking support.
28028
28029         * a-intnam-darwin.ads, s-osinte-darwin.adb,
28030         s-osinte-darwin.ads, system-darwin-ppc.ads: New files.
28031
28032 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
28033
28034         * Makefile.in: Add target macro definitions for s390*-linux*.
28035         * system-linux-s390.ads: New file.
28036         * system-linux-s390x.ads: New file.
28037
28038 2004-04-28  Joseph S. Myers  <jsm@polyomino.org.uk>
28039
28040         * gnat_ugn.texi: Correct argument to @setfilename.
28041
28042 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
28043
28044         * a-exexpr.adb (Unwind_Word): New data type.
28045         (Unwind_Exception): Use it as type of Private1 and Private2.
28046
28047         * raise.c (db_action_for): Fix debug printf.
28048
28049 2004-04-27  Ed Schonberg  <schonberg@gnat.com>
28050
28051         * a-wtmoio.ads: Formal type must be a modular type, not a signed
28052         integer type.
28053
28054 2004-04-27  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
28055
28056         * decl.c (gnat_to_gnu_entity, case object): Call
28057         __builtin_update_setjmp_buf.
28058
28059         * gigi.h (update_setjmp_buf): Deleted.
28060         (ADT_update_setjmp_buf_decl, update_setjmp_buf_decl): New.
28061
28062         * misc.c: (update_setjmp_buf): Deleted.
28063
28064         * trans.c (gnat_to_gnu): Call do_pending_stack_adjust and emit_queue
28065         around block of RTL.
28066
28067         * utils.c (init_gigi_decls): Initialize update_setjmp_buf.
28068
28069 2004-04-26  Thomas Quinot  <quinot@act-europe.fr>
28070
28071         * sem_dist.adb, exp_dist.adb: When constructing a RAS value for a local
28072         subprogram for which no pragma All_Calls_Remote applies, store the
28073         address of the real subprogram in the underlying record type, so local
28074         dereferences do not go through the PCS.
28075
28076 2004-04-26  Robert Dewar  <dewar@gnat.com>
28077
28078         * i-c.ads: Add some type qualifications to avoid ambiguities when
28079         compiling with s-auxdec.ads and a non-private address type.
28080
28081 2004-04-26  Arnaud Charlet  <charlet@act-europe.fr>
28082
28083         * Makefile.rtl: Fix error in previous check-in:
28084         Add s-addope.o to non tasking object list (rather than tasking object
28085         list).
28086
28087 2004-04-26  Javier Miranda  <miranda@gnat.com>
28088
28089         * sem_aggr.adb: Fix typo in comments
28090         (Resolve_Aggr_Expr): Propagate the type to the nested aggregate.
28091         Required to check the null-exclusion attribute.
28092
28093         * sem_attr.adb (Resolve_Attribute): Check the accessibility level in
28094         case of anonymous access types in record and array components. For a
28095         component definition the level is the same of the enclosing composite
28096         type.
28097
28098         * sem_ch3.adb (Analyze_Component_Declaration): In case of components
28099         that are anonymous access types the level of accessibility depends on
28100         the enclosing type declaration. In order to have this information, set
28101         the scope of the anonymous access type to the enclosing record type
28102         declaration.
28103         (Array_Type_Declaration): In case of components that are anonymous
28104         access types the level of accessibility depends on the enclosing type
28105         declaration. In order to have this information, set the scope of the
28106         anonymous access type to the enclosing array type declaration.
28107
28108         * sem_ch3.adb (Array_Type_Declaration): Set the scope of the anonymous
28109         access type.
28110
28111         * sem_ch8.adb (Analyze_Object_Renaming): Add check to verify that
28112         renaming of anonymous access-to-constant types allowed if and only if
28113         the renamed object is access-to-constant.
28114
28115         * sem_util.adb (Type_Access_Level): In case of anonymous access types
28116         that are component_definition or discriminants of a nonlimited type,
28117         the level is the same as that of the enclosing component type.
28118
28119 2004-04-26  Sergey Rybin  <rybin@act-europe.fr>
28120
28121         * sem_elim.adb: Some minor code reorganization from code reading. Fix
28122         misprint in the function name (File_Name_Match).
28123
28124 2004-04-23  Laurent Guerby  <laurent@guerby.net>
28125
28126         * Makefile.in: Remove RANLIB_TEST, use -$(RANLIB) including after
28127         install.
28128
28129 2004-04-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
28130
28131         * Make-lang.in (GNATBIND_OBJS): Add s-addope.o.
28132
28133 2004-04-23  Emmanuel Briot  <briot@act-europe.fr>
28134
28135         * adaint.c (__gnat_try_lock): No longer requires that the parent
28136         directory be writable, the directory itself is enough.
28137         (gnat_is_absolute_path): Change profile, so that the call from
28138         GNAT.OS_Lib can be made more efficient.
28139
28140         * adaint.h (gnat_is_absolute_path): Change profile, so that the call
28141         from GNAT.OS_Lib can be made more efficient.
28142
28143         * g-os_lib.adb (Is_Absolute_Path): More efficient implementation, avoid
28144         one copy of the file name. Found by code reading.
28145
28146 2004-04-23  Vincent Celier  <celier@gnat.com>
28147
28148         * gnat_ugn.texi: Add documentation for gnatmake switch -eL
28149         Correct documentation on gnatmake switches transmitted to the compiler
28150
28151         * ali.ads: Minor comment fix
28152
28153 2004-04-23  Javier Miranda  <miranda@gnat.com>
28154
28155         * sem_ch6.adb: (Confirming Types): Code cleanup
28156
28157         * decl.c (gnat_to_gnu_entity): Give support to anonymous access to
28158         subprogram types: E_Anonymous_Access_Subprogram_Type and
28159         E_Anonymous_Access_Protected_Subprogram_Type.
28160
28161 2004-04-23  Thomas Quinot  <quinot@act-europe.fr>
28162
28163         * sem_dist.adb: Add a new paramter to the RAS_Access TSS indicating
28164         whether a pragma All_Calls_Remote applies to the subprogram on which
28165         'Access is taken.
28166         No functional change is introduced by this revision; the new parameter
28167         will be used to allow calls to local RCI subprograms to be optimized
28168         to not use the PCS in the case where no pragma All_Calls_Remote applies,
28169         as is already done in the PolyORB implementation of the DSA.
28170
28171         * exp_dist.adb: Add a new paramter to the RAS_Access TSS indicating
28172         whether a pragma All_Calls_Remote applies to the subprogram on which
28173         'Access is taken.
28174         No functional change is introduced by this revision; the new parameter
28175         will be used to allow calls to local RCI subprograms to be optimized
28176         to not use the PCS in the case where no pragma All_Calls_Remote applies,
28177         as is already done in the PolyORB implementation of the DSA.
28178
28179 2004-04-23  Robert Dewar  <dewar@gnat.com>
28180
28181         * Makefile.rtl: Add entry for s-addope.o in run time library list
28182         * Make-lang.in: Add entry for s-addope.o to GNAT1 objects
28183         * s-addope.ads, s-addope.adb: New files.
28184
28185         * s-carsi8.adb, s-carun8.adb, s-casi16.adb, s-casi32.adb,
28186         s-casi64.adb, s-caun16.adb, s-caun32.adb, s-caun64.adb,
28187         s-finimp.adb, s-geveop.adb, s-stoele.adb: Modifications to allow
28188         System.Address to be non-private and signed.
28189
28190         * sem_elim.adb: Minor reformatting (fairly extensive)
28191         Some minor code reorganization from code reading
28192         Add a couple of ??? comments
28193
28194 2004-04-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
28195
28196         * trans.c (tree_transform, build_unit_elab): Don't call getdecls.
28197         (tree_transform, case N_If_Statement): Remove non-determinism.
28198
28199         * utils.c (begin_subprog_body): Just set DECL_CONTEXT in PARM_DECL.
28200
28201 2004-04-23  Sergey Rybin  <rybin@act-europe.fr>
28202
28203         * gnat_rm.texi: Small fixes in the changes made in the 'pragma
28204         Eliminate' section.
28205
28206         * snames.ads, snames.adb: Remove Name_Homonym_Number (Homonym_Number is
28207         no longer used as a parameter name for Eliminate pragma).
28208
28209 2004-04-22  Laurent Guerby  <laurent@guerby.net>
28210
28211         PR optimization/14984
28212         PR optimization/14985
28213         * trans.c (gigi): Fix non determinism leading to bootstrap
28214         comparison failures.
28215
28216 2004-04-21  Pascal Obry  <obry@gnat.com>
28217
28218         * adaint.c (__gnat_portable_spawn): Quote first argument (argv[0])
28219         passed to spawnvp() to properly handle program pathname with spaces on
28220         Win32.
28221
28222 2004-04-21  Emmanuel Briot  <briot@act-europe.fr>
28223
28224         * g-debpoo.adb (Print_Info): Avoid extra work if Display_Slots is False.
28225         (Allocate, Deallocate, Free_Physically): Make sure the tasks are
28226         unlocked in case of exceptions.
28227
28228 2004-04-21  Joel Brobecker  <brobecker@gnat.com>
28229
28230         * gigi.h (get_target_no_dollar_in_label): Remove extern declaration.
28231         This function does not exist anymore.
28232
28233 2004-04-21  Thomas Quinot  <quinot@act-europe.fr>
28234
28235         * gnatbind.adb, gnatlink.adb: Update name of imported C symbol.
28236
28237         * link.c: Move variables to the __gnat name space.
28238
28239         * Makefile.in: list link.o explicitly when needed.
28240
28241         * mlib.adb: Remove pragma Linker_Option for "link.o" from mlib.
28242
28243 2004-04-21  Javier Miranda  <miranda@gnat.com>
28244
28245         * einfo.adb (Original_Access_Type): New subprogram
28246         (Set_Original_Access_Type): New subprogram
28247         (Write_Field21_Name): Write the name of the new field
28248
28249         * einfo.ads (Original_Access_Type): New field present in access to
28250         subprogram types.
28251         Addition of two new entities: E_Anonymous_Access_Subprogram_Type, and
28252         E_Anonymous_Access_Protected_Subprogram_Type.
28253
28254         * lib-xref.adb (Output_One_Ref): Give support to anonymous access to
28255         subprogram types.
28256
28257         * lib-xref.ads (Xref_Entity_Letters): Initialize values corresponding
28258         to anonymous access to subprogram types.
28259
28260         * sem_attr.adb (Resolve_Attribute): Give support to anonymous access
28261         to subprogram types.
28262
28263         * sem_ch3.adb (Access_Definition): Complete decoration of entities
28264         corresponding to anonymous access to subprogram types.
28265         (Analyze_Component_Declaration): Add new actual to the call to
28266         subprogram replace_anonymous_access_to_protected_subprogram.
28267         (Array_Type_Declaration): Add new actual to the call to subprogram
28268         replace_anonymous_access_to_protected_subprogram.
28269         (Process_Discriminants): Add new actual to the call to subprogram
28270         replace_anonymous_access_to_protected_subprogram.
28271         (Replace_Anonymous_Access_To_Protected_Subprogram): New formal.
28272
28273         * sem_ch3.ads (Replace_Anonymous_Access_To_Protected_Subprogram): New
28274         formal.
28275
28276         * sem_ch6.adb, sem_type.adb, sem_res.adb: Give support to anonymous
28277         access to subprogram types.
28278
28279         * sem_util.adb (Has_Declarations): Addition of package_specification
28280         nodes.
28281
28282 2004-04-21  Ed Schonberg  <schonberg@gnat.com>
28283
28284         * sem_prag.adb (Make_Inline): If subprogram is a renaming, propagate
28285         inlined flags to renamed entity only if in current unit.
28286
28287 2004-04-21  Thomas Quinot  <quinot@act-europe.fr>
28288
28289         * s-parint.ads: Add DSA implementation marker.
28290
28291         * rtsfind.ads, rtsfind.adb, snames.ads, snames.adb, s-rpc.adb: Use the
28292         value of System.Partition_Interface.DSA_Implementation to determine
28293         what version of the distributed systems annex is available (no
28294         implementation, GLADE, or PolyORB).
28295
28296 2004-04-21  Joel Brobecker  <brobecker@gnat.com>
28297
28298         * targtyps.c (get_target_no_dollar_in_label): Remove, no longer used.
28299
28300 2004-04-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
28301
28302         * utils.c (convert, case CONSTRUCTOR, COMPONENT_REF): Do not make node
28303         with new type if alias sets differ.
28304         Fixes ACATS c41103b.
28305
28306 2004-04-21  Vincent Celier  <celier@gnat.com>
28307
28308         * prj.ads: Remove FORTRAN as an accepted language: not tested yet.
28309         Add array Lang_Args for the language specific compiling argument
28310         switches.
28311
28312         * gnat_ugn.texi: Explain in more details when a library is rebuilt.
28313
28314 2004-04-21  Sergey Rybin  <rybin@act-europe.fr>
28315
28316         * gnat_rm.texi: Update the descripton of the Eliminate pragma
28317         according to the recent changes in the format of the parameters of the
28318         pragma (replacing Homonym_Number with Source_Location).
28319
28320 2004-04-19  Arnaud Charlet  <charlet@act-europe.fr>
28321
28322         * 5isystem.ads: Removed, unused.
28323
28324         * gnat_rm.texi: Redo 1.13 change.
28325
28326 2004-04-19  Robert Dewar  <dewar@gnat.com>
28327
28328         * s-stoele.ads: Clean up definition of Storage_Offset (the new
28329         definition is cleaner, avoids the kludge of explicit Standard operator
28330         references, and also is consistent with a visible System.Address with
28331         no visible operations.
28332
28333         * s-geveop.adb: Add declarations to avoid assumption of visible
28334         operations on type System.Address (since these might not be available
28335         if Address is a non-private type for which the operations
28336         are made abstract).
28337
28338         * sem_eval.adb: Minor reformatting
28339
28340         * s-carsi8.ads, s-carun8.ads, s-casi16.ads, s-casi32.ads,
28341         s-casi64.ads, s-caun16.ads, s-caun32.ads, s-caun64.ads: Minor
28342         reformatting (new function spec format).
28343
28344         * s-auxdec.adb, s-carsi8.adb, s-carun8.adb, s-casi16.adb,
28345         s-casi32.adb, s-casi64.adb, s-caun16.adb, s-caun32.adb,
28346         s-caun64.adb: Add declarations to avoid assumption of visible
28347         operations on type System.Address (since these might not be available
28348         if Address is a non-private type for which the operations are made
28349         abstract).
28350
28351         * lib.ads, lib.adb (Synchronize_Serial_Number): New procedure.
28352
28353         * exp_intr.adb: Minor comment update
28354
28355         * exp_aggr.adb, exp_attr.adb, exp_ch13.adb: Minor reformatting.
28356
28357         * 5omastop.adb: Add declarations to avoid assumption of visible
28358         operations on type System.Address (since these might not be available
28359         if Address is a non-private type for which the operations
28360         are made abstract).
28361
28362 2004-04-19  Vincent Celier  <celier@gnat.com>
28363
28364         * switch-m.adb: (Scan_Make_Switches): Process new switch -eL
28365
28366         * prj-pars.ads (Parse): New Boolean parameter Process_Languages,
28367         defaulted to Ada.
28368
28369         * prj-proc.adb (Process): New Boolean parameter Process_Languages,
28370         defaulted to Ada.
28371         Call Check with Process_Languages.
28372         (Check): New Boolean parameter Process_Languages. Call Recursive_Check
28373         with Process_Languages.
28374         (Recursive_Check): New Boolean parameter Process_Languages. Call
28375         Nmsc.Ada_Check or Nmsc.Other_Languages_Check according to
28376         Process_Languages.
28377
28378         * prj-proc.ads (Process): New Boolean parameter Process_Languages,
28379
28380         * prj-util.ads, prj-util.adb (Executable_Of): New Boolean
28381         parameter Ada_Main, defaulted to True.
28382         Check for Ada specific characteristics only when Ada_Main is True.
28383
28384         * opt.ads: (Follow_Links): New Boolean flag for gnatmake
28385
28386         * prj.adb: (Project_Empty): Add new Project_Data components.
28387
28388         * prj.ads: New types and tables for non Ada languages.
28389         (Project_Data): New components Languages, Impl_Suffixes,
28390         First_Other_Source, Last_Other_Source, Imported_Directories_Switches,
28391         Include_Path, Include_Data_Set.
28392
28393         * prj-env.ads, prj-env.adb: Minor reformatting
28394
28395         * prj-nmsc.ads, prj-nmsc.adb: (Other_Languages_Check): New procedure
28396         Put subprograms in alphabetical order
28397
28398         * prj-pars.adb (Parse): New Boolean parameter Process_Languages,
28399         defaulted to Ada; Call Prj.Proc.Process with Process_Languages and
28400         Opt.Follow_Links.
28401
28402         * mlib-prj.adb: Back out modification in last version, as they are
28403         incorrect.
28404         (Build_Library.Check_Libs): Remove useless pragma Warnings (Off)
28405
28406         * make.adb: (Mains): Moved to package Makeutl
28407         (Linker_Opts): Moved to package Makeutl
28408         (Is_External_Assignment): Moved to package Makeutl
28409         (Test_If_Relative_Path): Moved to package Makeutl
28410         (Gnatmake): Move sorting of linker options to function
28411         Makeutl.Linker_Options_Switches.
28412
28413         * makeutl.ads, makeutl.adb: New files.
28414
28415         * Makefile.in: Add makeutl.o to the object files for gnatmake
28416
28417         * makeusg.adb: Add line for new switch -eL.
28418
28419         * gnatls.adb (Image): New function.
28420         (Output_Unit): If in verbose mode, output the list of restrictions
28421         specified by pragmas Restrictions.
28422
28423         * 5bml-tgt.adb, 5vml-tgt.adb (Build_Dynamic_Library): Do not use
28424         Text_IO.
28425
28426         * a-calend.adb (Split): Shift the date by multiple of 56 years, if
28427         needed, to put it in the range 1970 (included) - 2026 (excluded).
28428         (Time_Of): Do not shift Unix_Min_Year (1970).
28429         Shift the date by multiple of 56 years, if needed, to put it in the
28430         range 1970 (included) - 2026 (excluded).
28431
28432         * adaint.h, adaint.c (__gnat_set_executable): New function.
28433
28434 2004-04-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
28435
28436         * trans.c (tree_transform, case N_Subprogram_Body): Temporarily push
28437         and pop GC context.
28438         (tree_transform, case N_Procedure_Call): Fix typo in setting TREE_TYPE.
28439         (tree_transform, case N_Label): Don't set LABEL_STMT_FIRST_IN_EH.
28440         (tree_transform, case N_Procedure_Call_Statement): Build a tree.
28441         (tree_transform, case N_Code_Statement): Likewise.
28442         (gnat_expand_stmt, case LABEL_STMT): Don't look at
28443         LABEL_STMT_FIRST_IN_EH.
28444         (gnat_expand_stmt, case ASM_STMT): New case.
28445
28446         * utils2.c (build_unary_op): Properly set TREE_READONLY of
28447         UNCONSTRAINED_ARRAY_REF.
28448
28449         * utils.c (poplevel): Temporarily push/pop GC context around inline
28450         function expansion.
28451
28452         * decl.c (maybe_variable): Properly set TREE_READONLY of
28453         UNCONSTRAINED_ARRAY_REF.
28454         (make_packable_type): Only reference TYPE_IS_PADDING_P for RECORD_TYPE.
28455
28456         * ada-tree.def: (ASM_STMT): New.
28457
28458         * ada-tree.h: (LABEL_STMT_FIRST_IN_EH): Deleted.
28459         (ASM_STMT_TEMPLATE, ASM_STMT_OUTPUT, ASM_STMT_ORIG_OUT,
28460         ASM_STMT_INPUT): New.
28461         (ASM_STMT_CLOBBER): Likewise.
28462
28463 2004-04-19  Thomas Quinot  <quinot@act-europe.fr>
28464
28465         * a-except.adb, s-parint.ads, s-parint.adb, types.ads, types.h: Use
28466         general rcheck mechanism to raise Program_Error for E.4(18), instead
28467         of a custom raiser in System.Partition_Interface.
28468         Part of general cleanup work before PolyORB integration.
28469
28470         * snames.ads, snames.adb: Add new runtime library entities and names
28471         for PolyORB DSA.
28472
28473         * sem_dist.ads, sem_dist.adb (Get_Subprogram_Id): Move from sem_dist to
28474         exp_dist.
28475         (Build_Subprogram_Id): New subprogram provided by exp_dist
28476         Code reorganisation in preparation for PolyORB integration.
28477
28478         * exp_dist.ads, exp_dist.adb (Get_Subprogram_Id): Move from sem_dist to
28479         exp_dist.
28480         (Build_Subprogram_Id): New subprogram provided by exp_dist
28481
28482         * sem_ch4.adb (Analyze_One_Call): Fix error message for mismatch in
28483         actual parameter types for call to dereference of an
28484         access-to-subprogram type.
28485
28486         * rtsfind.ads: Add new runtime library entities and names for PolyORB
28487         DSA.
28488
28489         * gnatlink.adb (Value): Remove. Use Interfaces.C.Strings.Value
28490         instead, which has the same behaviour here since we never pass it a
28491         NULL pointer.
28492
28493         * link.c (run_path_option, Solaris case): Use -Wl, as for other
28494         platforms.
28495
28496         * Makefile.in: adjust object file lists for gnatlink and gnatmake
28497         to account for new dependency upon Interfaces.C.Strings + link.o
28498         For x86 FreeBSD, use 86numaux.
28499
28500         * make.adb, gnatcmd.adb: Linker_Library_Path_Option has been moved up
28501         from Mlib.Tgt to Mlib.
28502
28503         * mlib.ads, mlib.adb (Linker_Library_Path_Option): New subprogram, now
28504         target-independent.
28505
28506         * mlib-tgt.ads, mlib-tgt.adb (Linker_Library_Path_Option): Remove
28507         target-specific versions of this subprogram, now implemented as a
28508         target-independent function in Mlib.
28509
28510         * 5aml-tgt.adb, 5bml-tgt.adb, 5gml-tgt.adb, 5hml-tgt.adb, 5lml-tgt.adb,
28511         5sml-tgt.adb, 5vml-tgt.adb, 5zml-tgt.adb, 5wml-tgt.adb
28512         (Linker_Library_Path_Option): Remove target-specific versions of this
28513         subprogram, now implemented as a target-independent function in Mlib.
28514
28515         * atree.adb: (Allocate_Initialize_Node): New subprogram.
28516         Factors out node table slots allocation.
28517         (Fix_Parents): New subprogram.
28518         Encapsulate the pattern of fixing up parent pointers for syntactic
28519         children of a rewritten node.
28520         (New_Copy_Tree): Use New_Copy to copy non-entity nodes.
28521         (Rewrite): Use New_Copy when creating saved copy of original node.
28522         (Replace): Use Copy_Node to copy nodes.
28523
28524 2004-04-19  Javier Miranda  <miranda@gnat.com>
28525
28526         * sprint.adb (Sprint_Node_Actual): Give support to the new
28527         Access_To_Subprogram node available in Access_Definition nodes. In
28528         addition, give support to the AI-231 node fields: null-exclusion,
28529         all-present, constant-present.
28530
28531         * sem_util.ads, sem_util.adb: (Has_Declarations): New subprogram
28532
28533         * sinfo.ads, sinfo.adb:
28534         New field Access_To_Subprogram_Definition in Access_Definition nodes
28535
28536         * sem_ch6.adb (Process_Formals): Move here the code that creates and
28537         decorates internal subtype declaration corresponding to the
28538         null-excluding formal. This code was previously in Set_Actual_Subtypes.
28539         In addition, carry out some code cleanup on this code. In case of
28540         access to protected subprogram call
28541         Replace_Anonymous_Access_To_Protected_Subprogram.
28542         (Set_Actual_Subtypes): Code cleanup.
28543
28544         * sem_ch8.adb (Analyze_Object_Renaming): Remove un-necessary call to
28545         Find_Type in case of anonymous access renamings. Add warning in case of
28546         null-excluding attribute used in anonymous access renaming.
28547
28548         * sem_ch3.ads (Replace_Anonymous_Access_To_Protected_Subprogram): New
28549         subprogram
28550
28551         * sem_ch3.adb (Replace_Anonymous_Access_To_Protected_Subprogram): New
28552         subprogram.
28553         (Access_Definition): In case of anonymous access to subprograms call
28554         the corresponding semantic routine to decorate the node.
28555         (Access_Subprogram_Declaration): Addition of some comments indicating
28556         some code that probably should be added here. Detected by comparison
28557         with the access_definition subprogram.
28558         (Analyze_Component_Declaration): In case of access to protected
28559         subprogram call Replace_Anonymous_Access_To_Protected.
28560         (Array_Type_Declaration): In case of access to protected subprogram call
28561         Replace_Anonymous_Access_To_Protected_Subprogram.
28562         (Process_Discriminants): In case of access to protected subprogram call
28563         Replace_Anonymous_Access_To_Protected_Subprogram.
28564
28565         * par.adb (P_Access_Definition): New formal that indicates if the
28566         null-exclusion part was present.
28567         (P_Access_Type_Definition): New formal that indicates if the caller has
28568         already parsed the null-excluding part.
28569
28570         * par-ch3.adb (P_Subtype_Declaration): Code cleanup.
28571         (P_Identifier_Declarations): Code cleanup and give support to renamings
28572         of anonymous access to subprogram types.
28573         (P_Derived_Type_Def_Or_Private_Ext_Decl): Code cleanup.
28574         (P_Array_Type_Definition): Give support to AI-254.
28575         (P_Component_Items): Give support to AI-254.
28576         (P_Access_Definition): New formal that indicates if the header was
28577         already parsed by the caller.
28578         (P_Access_Type_Definition): New formal that indicates if the caller has
28579         already parsed the null-excluding part.
28580
28581         * par-ch6.adb (P_Formal_Part): Add the null-excluding parameter to the
28582         call to P_Access_Definition.
28583
28584 2004-04-19  Geert Bosch  <bosch@gnat.com>
28585
28586         * checks.adb (Apply_Float_Conversion_Check): New procedure to implement
28587         the delicate semantics of floating-point to integer conversion.
28588         (Apply_Type_Conversion_Checks): Use Apply_Float_Conversion_Check.
28589
28590         * eval_fat.adb (Machine_Mantissa): Moved to spec.
28591         (Machine_Radix): New function.
28592
28593         * eval_fat.ads (Machine_Mantissa): Moved from body for use in
28594         conversion checks.
28595         (Machine_Radix): New function also for use in conversion checks.
28596
28597 2004-04-19  Ed Schonberg  <schonberg@gnat.com>
28598
28599         * par-prag.adb (Source_File_Name_Project): Fix typo in error message.
28600
28601         * exp_ch9.adb (Expand_Access_Protected_Subprogram_Type): Call analyze
28602         to decorate the access-to-protected subprogram and the equivalent type.
28603
28604         * checks.adb (Null_Exclusion_Static_Checks): Code cleanup. Give support
28605         to anonymous access to subprogram types.
28606
28607         * exp_ch4.adb (Expand_N_In): Preserve Static flag before
28608         constant-folding, for legality checks in contexts that require an RM
28609         static expression.
28610
28611         * exp_ch6.adb (Expand_N_Function_Call): If call may generate large
28612         temporary but stack checking is not enabled, increment serial number
28613         to so that symbol generation is consistent with and without stack
28614         checking.
28615
28616         * exp_util.ads, exp_util.adb (May_Generate_Large_Temp): Predicate is
28617         independent on whether stack checking is enabled, caller must check
28618         the corresponding flag.
28619
28620         * sem_ch3.adb (Constrain_Index): Index bounds given by attributes need
28621         range checks.
28622         (Build_Derived_Concurrent_Type): Inherit Is_Constrained flag from
28623         parent if it has discriminants.
28624         (Build_Derived_Private_Type): Constructed full view does
28625         not come from source.
28626         (Process_Discriminants): Default discriminants on a tagged type are
28627         legal if this is the internal completion of a private untagged
28628         derivation.
28629
28630         * sem_ch6.adb (Set_Actual_Subtypes): The generated declaration needs
28631         no constraint checks, because it corresponds to an existing object.
28632
28633         * sem_prag.adb (Process_Convention): Pragma applies
28634         only to subprograms in the same declarative part, i.e. the same unit,
28635         not the same scope.
28636
28637         * sem_res.adb (Valid_Conversion): In an instance or inlined body,
28638         ignore type mismatch on a numeric conversion if expression comes from
28639         expansion.
28640
28641 2004-04-19  Sergey Rybin  <rybin@act-europe.fr>
28642
28643         * sem_elim.adb (Process_Eliminate_Pragma): Remove the processing for
28644         Homonym_Number parameter, add processing for Source_Location parameter
28645         corresponding.
28646         (Check_Eliminated): Remove the check for homonym numbers, add the check
28647         for source location traces.
28648
28649         * sem_elim.ads (Process_Eliminate_Pragma): Replace Arg_Homonym_Number
28650         with Arg_Source_Location corresponding to the changes in the format of
28651         the pragma.
28652
28653         * sem_prag.adb: (Analyze_Pragma): Changes in the processing of
28654         Eliminate pragma corresponding to the changes in the format of the
28655         pragma: Homonym_Number is replaced with Source_Location, two ways of
28656         distinguishing homonyms are mutially-exclusive.
28657
28658 2004-04-19  Joel Brobecker  <brobecker@gnat.com>
28659
28660         * get_targ.ads (Get_No_Dollar_In_Label): Remove.
28661
28662         * exp_dbug.adb (Output_Homonym_Numbers_Suffix): Remove use of
28663         No_Dollar_In_Label, no longer necessary, as it is always True.
28664         (Strip_Suffixes): Likewise.
28665
28666 2004-04-19  Gary Dismukes  <dismukes@gnat.com>
28667
28668         * s-stalib.ads (type Exception_Code): Use Integer'Size for exponent of
28669         modulus for compatibility with size clause on targets with 16-bit
28670         Integer.
28671
28672         * layout.adb (Discrimify): In the case of private types, set Vtyp to
28673         full type to fix type mismatches on calls to size functions for
28674         discriminant-dependent array components.
28675
28676 2004-04-19  Jerome Guitton  <guitton@act-europe.fr>
28677
28678         * Makefile.in (gnatlib-zcx): New target, for building a ZCX run-time
28679         lib.
28680
28681 2004-04-19  Pascal Obry  <obry@gnat.com>
28682
28683         * mdll-utl.adb (Locate): New version is idempotent.
28684
28685 2004-04-17  Laurent Guerby  <laurent@guerby.net>
28686
28687         PR ada/14988 (partial)
28688         * impunit.adb: Fix typo.
28689
28690 2004-04-14  Nathanael Nerode  <neroden@gcc.gnu.org>
28691
28692         * Make-lang.in: Remove obsolete rts-none, rts-cert, install-rts-none,
28693         and install-rts-cert targets.  Remove all gnatlib and gnattools
28694         targets and all other rts-* targets (moved to libada).  Remove (now)
28695         unused Make variables CHMOD, CHMOD_AX_FLAGS, shext, THREAD_KIND,
28696         TRACE, GNATLIBFLAGS, GNATLIBCFLAGS.
28697
28698 2004-04-08  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
28699
28700         * trans.c (tree_transform): Shortcut returning error_mark_node for
28701         statements in annotate_only_mode.
28702         (tree_transform, case N_Label, case N_Return_Statement,
28703         N_Goto_Statement): Make statement tree instead of generating code.
28704         (tree_transform, case N_Assignment_Statement): No longer check
28705         type_annotate_only.
28706         (gnat_expand_stmt, case GOTO_STMT, case LABEL_STMT, case
28707         RETURN_STMT): New.
28708         (first_nondeleted_insn, build_block_stmt, make_expr_stmt_from_rtl):
28709         New fcns.
28710         (gnat_to_gnu): Collect any RTL generated and deal with it.
28711         (tree_transform, case N_And_Then): Refine when have non-null RTL_EXPR.
28712         (tree_transform case N_If_Statement): Rewrite to make IF_STMT.
28713         (gnat_expand_stmt, case BLOCK_STMT, IF_STMT): New cases.
28714
28715         * ada-tree.def (GOTO_STMT, LABEL_STMT, RETURN_STMT): New tree nodes.
28716
28717         * ada-tree.def (EXPR_STMT): Fix typo in name.
28718         (BLOCK_STMT, IF_STMT): New nodes.
28719
28720         * ada-tree.h (GOTO_STMT_LABEL, LABEL_STMT_LABEL,
28721         LABEL_STMT_FIRST_IN_EH): New macros.
28722         (RETURN_STMT_EXPR): Likewise.
28723
28724         * ada-tree.h: (BLOCK_STMT_LIST, IF_STMT_COND, IF_STMT_TRUE,
28725         IF_STMT_ELSEIF, IF_STMT_ELSE): New macros.
28726
28727 2004-04-08  Thomas Quinot  <quinot@act-europe.fr>
28728
28729         * atree.ads: Correct documentation on extended nodes.
28730
28731         * link.c: Set run_path_option for FreeBSD.
28732
28733 2004-04-08  Vincent Celier  <celier@gnat.com>
28734
28735         * mlib-prj.adb (Build_Library.Check_Libs): On OpenVMS, if dec.ali is
28736         one of the ALI file, do not link with DEC lib.
28737
28738         * par.adb Remove the last two characters ("%s" or "%b") when checking
28739         if a language defined unit may be recompiled.
28740
28741 2004-04-08  Ed Schonberg  <schonberg@gnat.com>
28742
28743         * sem_ch4.adb (Remove_Abstract_Operations): Improve error message when
28744         removal of abstract operation leaves no possible interpretation for
28745         expression.
28746
28747         * sem_eval.adb (Eval_Qualified_Expression): Use
28748         Set_Raises_Constraint_Error on node when needed, so that it does not
28749         get optimized away by subsequent optimizations.
28750
28751         * sem_res.adb (Resolve_Intrinsic_Operator): Save interpretations of
28752         operands even when they are not wrapped in a type conversion.
28753
28754 2004-04-08  Olivier Hainque  <hainque@act-europe.fr>
28755
28756         * sem_prag.adb (Set_Exported): Warn about making static as result of
28757         export only when the export is coming from source. This may be not
28758         be true e.g. on VMS where we expand export pragmas for exception codes
28759         together with imported or exported exceptions, and we don't want the
28760         user to be warned about something he didn't write.
28761
28762 2004-04-08  Thomas Quinot  <quinot@act-europe.fr>
28763
28764         * sem_util.adb (Note_Possible_Modification): Reorganize to remove code
28765         duplication between normal entities and those declared as renamings.
28766         No functional change.
28767
28768         * s-fileio.ads (Form): Remove pragma Inline, as we cannot currently
28769         inline functions returning an unconstrained result.
28770
28771 2004-04-08  Eric Botcazou  <ebotcazou@act-europe.fr>
28772
28773         * utils.c (type_for_mode): Handle BLKmode and VOIDmode properly, to
28774         conform to what other front-ends do.
28775
28776 2004-04-08  Doug Rupp  <rupp@gnat.com>
28777
28778         * 5vml-tgt.adb: Use Gas instead of VMS Macro to build auto init shared
28779         libraries.
28780
28781 2004-04-06  Pascal Obry  <obry@gnat.com>
28782
28783         * adaint.c (DIR_SEPARATOR): Properly set DIR_SEPARATOR on Win32.
28784
28785         * osint.adb (Program_Name): Do not look past a directory separator.
28786
28787 2004-04-06  Thomas Quinot  <quinot@act-europe.fr>
28788
28789         * atree.adb: Update comment (Rewrite_Substitute_Node no longer exists).
28790
28791         * exp_ch6.adb (Rewrite_Function_Call): Clarify documentation of
28792         requirement for preserving a copy of the original assignment node.
28793
28794         * sinfo.ads: Update comment (Original_Tree -> Original_Node).
28795
28796 2004-04-06  Olivier Hainque  <hainque@act-europe.fr>
28797
28798         (__gnat_initialize [Vxworks]): Enable references to the crtstuff bits
28799         when supported.
28800
28801 2004-04-06  Ed Schonberg  <schonberg@gnat.com>
28802
28803         * sem_ch4.adb (Remove_Abstract_Operations): Extend previous changes to
28804         operator calls in functional notation, and apply
28805         Universal_Interpretation to operands, not to their type.
28806
28807 2004-04-06  Robert Dewar  <dewar@gnat.com>
28808
28809         * 5wdirval.adb: Minor reformatting
28810
28811 2004-04-06  Ed Falis  <falis@gnat.com>
28812
28813         * gnat_rm.texi: Improve a reference to the GCC manual
28814
28815 2004-04-05  Vincent Celier  <celier@gnat.com>
28816
28817         * adaint.h, adaint.c: Add function __gnat_named_file_length
28818
28819         * impunit.adb: Add Ada.Directories to the list
28820
28821         * Makefile.in: Add VMS and Windows versions of
28822         Ada.Directories.Validity package body.
28823
28824         * Makefile.rtl: Add a-direct and a-dirval
28825
28826         * mlib-tgt.ads: Minor comment update.
28827
28828         * a-dirval.ads, a-dirval.adb, 5vdirval.adb, 5wdirval.adb,
28829         a-direct.ads, a-direct.adb: New files.
28830
28831 2004-04-05  Vincent Celier  <celier@gnat.com>
28832
28833         PR ada/13620
28834         * make.adb (Scan_Make_Arg): Pass any -fxxx switches to gnatlink, not
28835         just to the compiler.
28836
28837 2004-04-05  Robert Dewar  <dewar@gnat.com>
28838
28839         * a-except.adb (Exception_Name_Simple): Make sure lower bound of
28840         returned string is 1.
28841
28842         * ali-util.adb: Use proper specific form for Warnings (Off, entity)
28843
28844         * eval_fat.ads: Minor reformatting
28845
28846         * g-curexc.ads: Document that lower bound of returned string values
28847         is always one.
28848
28849         * gnatlink.adb: Add ??? comment for previous change
28850         (need to document why this is VMS specific)
28851
28852         * s-stoele.ads: Minor reformatting
28853
28854         * tbuild.ads: Minor reformatting throughout (new function specs)
28855
28856         * par-ch10.adb (P_Context_Clause): Handle comma instead of semicolon
28857         after WITH.
28858
28859         * scng.adb: Minor reformatting
28860
28861 2004-04-05  Geert Bosch  <bosch@gnat.com>
28862
28863         * eval_fat.adb (Machine): Remove unnecessary suppression of warning.
28864         (Leading_Part): Still perform truncation to machine number if the
28865         specified radix_digits is greater or equal to machine_mantissa.
28866
28867 2004-04-05  Javier Miranda  <miranda@gnat.com>
28868
28869         * par-ch3.adb: Complete documentation of previous change
28870         Correct wrong syntax documentation of the OBJECT_DECLARATION rule
28871         (aliased must appear before constant).
28872
28873         * par-ch4.adb: Complete documentation of previous change.
28874
28875         * par-ch6.adb: Complete documentation of previous change.
28876
28877         * sinfo.ads: Fix typo in commment.
28878
28879 2004-04-05  Ed Schonberg  <schonberg@gnat.com>
28880
28881         * sem_ch3.adb (Inherit_Components): If derived type is private and has
28882         stored discriminants, use its discriminants to constrain parent type,
28883         as is done for non-private derived record types.
28884
28885         * sem_ch4.adb (Remove_Abstract_Operations): New subprogram to implement
28886         Ada 2005 AI-310: an abstract non-dispatching operation is not a
28887         candidate interpretation in an overloaded call.
28888
28889         * tbuild.adb (Unchecked_Convert_To): Preserve conversion node if
28890         expression is Null and target type is not an access type (e.g. a
28891         non-private address type).
28892
28893 2004-04-05  Thomas Quinot  <quinot@act-europe.fr>
28894
28895         * exp_ch6.adb (Rewrite_Function_Call): When rewriting an assignment
28896         statement whose right-hand side is an inlined call, save a copy of the
28897         original assignment subtree to preserve enough consistency for
28898         Analyze_Assignment to proceed.
28899
28900         * sem_ch5.adb (Analyze_Assignment): Remove a costly copy of the
28901         complete assignment subtree which is now unnecessary, as the expansion
28902         of inlined call has been improved to preserve a consistent assignment
28903         tree.  Note_Possible_Modification must be called only
28904         after checks have been applied, or else unnecessary checks will
28905         be generated.
28906
28907         * sem_util.adb (Note_Possible_Modification): Reorganise the handling
28908         of explicit dereferences that do not Come_From_Source:
28909          - be selective on cases where we must go back to the dereferenced
28910            pointer (an assignment to an implicit dereference must not be
28911            recorded as modifying the pointer);
28912          - do not rely on Original_Node being present (Analyze_Assignment
28913            calls Note_Possible_Modification on a copied tree).
28914
28915         * sem_warn.adb (Check_References): When an unset reference to a pointer
28916         that is never assigned is encountered, prefer '<pointer> may be null'
28917         warning over '<pointer> is never assigned a value'.
28918
28919 2004-04-05  Ramon Fernandez  <fernandez@gnat.com>
28920
28921         * tracebak.c: Change STOP_FRAME in ppc vxworks to be compliant with
28922         the ABI.
28923
28924 2004-04-05  Olivier Hainque  <hainque@act-europe.fr>
28925
28926         * 5gmastop.adb (Pop_Frame): Comment out the pragma Linker_Option for
28927         libexc. We currently don't reference anything in this library and
28928         linking it in triggers linker warnings we don't want to see.
28929
28930         * init.c: Update comments.
28931
28932 2004-04-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
28933
28934         * decl.c (gnat_to_gnu_entity): Use TYPE_READONLY.
28935         * utils.c (create_field_decl): Likewise.
28936         * utils2.c (build_unary_op, gnat_build_constructor): Likewise.
28937
28938 2004-04-02  Arnaud Charlet  <charlet@act-europe.fr>
28939
28940         * gnat-style.texi, gnat_rm.texi, gnat_ugn.texi: Remove RCS tags.
28941         Replace ifinfo by ifnottex, to make makeinfo --html happy again.
28942         Add info directory entry and category.
28943
28944 2004-04-02  Jan Hubicka  <jh@suse.cz>
28945
28946         * utils.c: Include function.h
28947         (end_subprog_body): Clear DECL_STRUCT_FUNCTION.
28948
28949 2004-04-01  Arnaud Charlet  <charlet@act-europe.fr>
28950
28951         PR ada/14150
28952         * Make-lang.in: Clean up generation of documentation
28953
28954         * gnat-style.texi, gnat_rm.texi, ug_words: Resync with AdaCore version
28955
28956         * xgnatug.adb: Removed, replaced by xgnatugn.adb
28957
28958         * xgnatugn.adb: Replaces xgnatug.adb
28959
28960         * gnat_ug.texi: Removed, replaced by gnat_ugn.texi
28961
28962         * gnat_ugn.texi: Replaces gnat_ug.texi. Resync with AdaCore version
28963
28964         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
28965         gnat_ug_wnt.texi: Removed.
28966
28967 2004-04-01  Arnaud Charlet  <charlet@act-europe.fr>
28968
28969         * utils2.c: Update copyright notice.
28970
28971 2004-04-01  Robert Dewar  <dewar@gnat.com>
28972
28973         * checks.adb: Minor reformatting throughout
28974         Note that prev checkin added RM reference to alignment warning
28975
28976 2004-04-01  Ed Schonberg  <schonberg@gnat.com>
28977
28978         * exp_aggr.adb (Get_Component_Val): Treat a string literal as
28979         non-static when building aggregate for bit-packed array.
28980
28981         * exp_ch4.adb (Expand_N_Slice): If a packed slice is an actual of a
28982         function call that is itself the actual in a procedure call, build
28983         temporary for it.
28984
28985         * exp_pakd.adb (Expand_Bit_Packed_Element_Set): If right-hand side is
28986         a string literal, create a temporary for it, constant folding only
28987         handles scalars here.
28988
28989 2004-04-01  Vincent Celier  <celier@gnat.com>
28990
28991         * ali-util.adb (Post_Scan, Error_Msg, Error_Msg_S, Error_Msg_SC,
28992         Error_Msg_SP): New empty procedures to instantiate the Scanner.
28993         (Style, Scanner): Instantiations of Styleg and Scng to be able to scan
28994         tokens.
28995         (Accumulate_Checksum, Initialize_Checksum): Remove procedures.
28996         (Get_File_Checksum): Use the instantiated scanner to scan all the tokens
28997         and get the checksum.
28998
28999         * make.adb (Gnatmake): Do not insert into Q the Main_Source if it is
29000         already in the Q.
29001         Increase the Marking_Label at the end of the Multiple_Main_Loop,
29002         instead of at the beginning.
29003
29004         * osint.adb (Lib_File_Name): Use Multi_Unit_Index_Character, not '~'
29005         directly.
29006         (Osint package elaboration): Change Multi_Unit_Index_Character to '$' if
29007         on VMS.
29008
29009         * osint.ads (Multi_Unit_Index_Character): New Character global variable
29010
29011         * osint-c.adb (Set_Library_Info_Name): Use Multi_Unit_Index_Character,
29012         not '~' directly.
29013
29014         * par.adb: Remove test on file name to detect language defined units.
29015         Add test on unit name, after parsing, to detect language defined units
29016         that are not compiled with -gnatg (except System.RPC and its children)
29017
29018         * par-ch10.adb (P_Compilation_Unit): In multi-unit sources, scan the
29019         following units without style checking.
29020
29021         * switch-c.adb: Change -gnatC to -gnateI
29022
29023         * usage.adb: Document new switch -gnateInnn
29024
29025         * scng.adb (Accumulate_Token_Checksum): New procedure
29026         (Scan): Call Accumulate_Token_Checksum after each identifier, reserved
29027         word or literal number.
29028         (Scan.Nlit.Scan_Integer): Do not accumulate internal '_' in litteral
29029         numbers.
29030
29031 2004-04-01  Thomas Quinot  <quinot@act-europe.fr>
29032
29033         * a-tasatt.adb,
29034         g-comlin.adb, sinput-c.adb, s-secsta.adb, s-tpobop.adb,
29035         switch-m.adb, 56taprop.adb, 5ginterr.adb, 5gmastop.adb,
29036         5staprop.adb, 5vinterr.adb, 5vtaprop.adb, 5vtpopde.adb,
29037         5vtpopde.adb: Add missing 'constant' keywords.
29038
29039 2004-04-01  Javier Miranda  <miranda@gnat.com>
29040
29041         * par-ch4.adb: (P_Allocator): Code cleanup
29042
29043         * sem_ch3.adb (Access_Definition): Properly set the null-excluding
29044         attribute.
29045
29046         * sinfo.ads: Complete documentation of previous change
29047
29048 2004-04-01  Pascal Obry  <obry@gnat.com>
29049
29050         * gnatlink.adb (Process_Binder_File): Remove duplicate linker options
29051         only on VMS.  This special handling was done because an old GNU/ld bug
29052         on Windows which has been fixed.
29053
29054 2004-04-01  GNAT Script  <nobody@gnat.com>
29055
29056         * Make-lang.in: Makefile automatically updated
29057
29058 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
29059
29060         * decl.c (gnat_to_gnu_entity, make_type_from_size):
29061         Use TYPE_UNSIGNED, not TREE_UNSIGNED.
29062         * trans.c (tree_transform, convert_with_check): Likewise.
29063         * utils.c (gnat_signed_or_unsigned_type): Likewise.
29064         (build_vms_descriptor, unchecked_convert): Likewise.
29065         * utils2.c (nonbinary_modular_operation): Likewise.
29066
29067 2004-03-29  Javier Miranda  <miranda@gnat.com>
29068
29069         * checks.adb (Null_Exclusion_Static_Checks): New subprogram
29070         (Install_Null_Excluding_Check): Local subprogram that determines whether
29071         an access node requires a runtime access check and if so inserts the
29072         appropriate run-time check.
29073         (Apply_Access_Check): Call Install_Null_Excluding check if required
29074         (Apply_Constraint_Check): Call Install_Null_Excluding check if required
29075
29076         * checks.ads: (Null_Exclusion_Static_Checks): New subprogram
29077
29078         * einfo.ads: Fix typo in comment
29079
29080         * exp_ch3.adb (Build_Assignment): Generate conversion to the
29081         null-excluding type to force the corresponding run-time check.
29082         (Expand_N_Object_Declaration): Generate conversion to the null-excluding
29083         type to force the corresponding run-time check.
29084
29085         * exp_ch5.adb (Expand_N_Assignment_Statement): Generate conversion to
29086         the null-excluding type to force the corresponding run-time check.
29087
29088         * exp_ch6.adb (Expand_Call): Do not generate the run-time check in
29089         case of access types unless they have the null-excluding attribute.
29090
29091         * sprint.adb (Sprint_Node_Actual): Give support to the null-exclusing
29092         part.
29093
29094         * exp_util.ads: Fix typo in comment
29095
29096         * par.adb (P_Null_Exclusion): New subprogram
29097         (P_Subtype_Indication): New formal that indicates if the null-excluding
29098         part has been scanned-out and it was present
29099
29100         * par-ch3.adb, par-ch4.adb, par-ch6.adb: Give support to AI-231
29101
29102         * sem_aggr.adb: (Check_Can_Never_Be_Null): New subprogram
29103         (Aggregate_Constraint_Checks): Generate conversion to the null-excluding
29104         type to force the corresponding run-time check
29105         (Resolve_Aggregate): Propagate the null-excluding attribute to the array
29106         components
29107         (Resolve_Array_Aggregate): Carry out some static checks
29108         (Resolve_Record_Aggregate.Get_Value): Carry out some static check
29109
29110         * sem_ch3.adb (Access_Definition): In Ada 0Y the Can_Never_Be_Null
29111         attribute must be set only if specified by means of the null-excluding
29112         part. In addition, we must also propagate the access-constant attribute
29113         if present.
29114         (Access_Subprogram_Declaration, Access_Type_Declaration,
29115         Analyze_Component_Declaration, Analyze_Object_Declaration,
29116         Array_Type_Declaration, Process_Discriminants,
29117         Analyze_Subtype_Declaration): Propagate the null-excluding attribute
29118         and carry out some static checks.
29119         (Build_Derived_Access_Type): Set the null-excluding attribute
29120         (Derived_Type_Declaration, Process_Subtype): Carry out some static
29121         checks.
29122
29123         * sem_ch4.adb (Analyze_Allocator): Carry out some static checks
29124
29125         * sem_ch5.adb (Analyze_Assignment): Carry out some static checks
29126
29127         * sem_ch6.adb (Process_Formals): Carry out some static checks.
29128         (Set_Actual_Subtypes): Generate null-excluding subtype if the
29129         null-excluding part was present; it is not required to be done here in
29130         case of anonymous access types.
29131         (Set_Formal_Mode): Ada 0Y allows anonymous access to have the null
29132         value.
29133
29134         * sem_res.adb (Resolve_Actuals): Carry out some static check
29135         (Resolve_Null): Allow null in anonymous access
29136
29137         * sinfo.adb: New subprogram Null_Exclusion_Present
29138         All_Present and Constant_Present available on access_definition nodes
29139
29140         * sinfo.ads: New flag Null_Exclusion_Present on subtype_declaration,
29141         object_declaration, derived_type_definition, component_definition,
29142         discriminant_specification, access_to_object_definition,
29143         access_function_definition, allocator, access_procedure_definition,
29144         access_definition, parameter_specification, All_Present and
29145         Constant_Present flags available on access_definition nodes.
29146
29147 2004-03-29  Robert Dewar  <dewar@gnat.com>
29148
29149         * fname.adb, fname.ads, fname-sf.adb, fname-uf.adb, fname-uf.ads,
29150         gnat1drv.adb, lib.adb, lib.ads, lib-load.adb, lib-writ.adb,
29151         opt.ads, osint.adb, osint.ads, osint-c.adb, par.adb,
29152         par-ch10.adb, par-load.adb, par-prag.adb, sfn_scan.adb,
29153         sfn_scan.ads, sinput-l.adb, sinput-l.ads, switch-c.adb,
29154         sem_prag.adb: Updates to handle multiple units/file
29155
29156         * par.adb: Change test for s-rpc to s-rp for detecting rpc and children
29157
29158         * par.adb, memtrack.adb, prj-makr.adb, prj-part.adb,
29159         sem_util.adb: Minor reformatting
29160
29161         * sem_ch12.adb: Add comment for previous change
29162
29163 2004-03-29  Laurent Pautet  <pautet@act-europe.fr>
29164
29165         * osint.adb (Executable_Prefix): Set Exec_Name to the current
29166         executable name when not initialized. Otherwise, use its current value.
29167
29168         * osint.ads (Exec_Name): Move Exec_Name from body to spec in order to
29169         initialize it to another executable name than the current one. This
29170         allows to configure paths for an executable name (gnatmake) different
29171         from the current one (gnatdist).
29172
29173 2004-03-29  Ed Schonberg  <schonberg@gnat.com>
29174
29175         * exp_ch6.adb (Expand_Call): A call to a function declared in the
29176         current unit cannot be inlined if it appears in the body of a withed
29177         unit, to avoid order of elaboration problems in gigi.
29178
29179         * exp_ch9.adb (Build_Protected_Sub_Specification): Generate debugging
29180         information for protected (wrapper) operation as well, to simplify gdb
29181         use.
29182
29183         * sem_ch6.adb (Analyze_Subprogram_Body): For a private operation in a
29184         protected body, indicate that the entity for the generated spec comes
29185         from source, to ensure that references are properly generated for it.
29186         (Build_Body_To_Inline): Do not inline a function that returns a
29187         controlled type.
29188
29189         * sem_prag.adb (Process_Convention): If subprogram is overloaded, only
29190         apply convention to homonyms that are declared explicitly.
29191
29192         * sem_res.adb (Make_Call_Into_Operator): If the operation is a function
29193         that renames an equality operator and the operands are overloaded,
29194         resolve them with the declared formal types, before rewriting as an
29195         operator.
29196
29197 2004-03-29  GNAT Script  <nobody@gnat.com>
29198
29199         * Make-lang.in: Makefile automatically updated
29200
29201 2004-03-25  Vasiliy Fofanov  <fofanov@act-europe.fr>
29202
29203         * memtrack.adb: Log realloc calls, which are treated as free followed
29204         by alloc.
29205
29206 2004-03-25  Vincent Celier  <celier@gnat.com>
29207
29208         * prj-makr.adb (Process_Directories): Detect when a file contains
29209         several units. Do not include such files in the config pragmas or
29210         in the naming scheme.
29211
29212         * prj-nmsc.adb (Record_Source): New parameter Trusted_Mode.
29213         Resolve links only when not in Trusted_Mode.
29214         (Find_Sources, Recursive_Find_Dirs, Find_Source_Dirs, Locate_Directory):
29215         Do not resolve links for the display names.
29216
29217         * prj-part.adb (Parse_Single_Project, Project_Path_Name_Of): Do not
29218         resolve links when computing the display names.
29219
29220 2004-03-25  Thomas Quinot  <quinot@act-europe.fr>
29221
29222         * sem_attr.adb (Check_Dereference): When the prefix of a 'Tag
29223         attribute reference does not denote a subtype, it can be any
29224         expression that has a classwide type, potentially after an implicit
29225         dereference.  In particular, the prefix can be a view conversion for
29226         a classwide type (for which Is_Object_Reference holds), but it can
29227         also be a value conversion for an access-to-classwide type. In the
29228         latter case, there is an implicit dereference, and the original node
29229         for the prefix does not verify Is_Object_Reference.
29230
29231         * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): A view
29232         conversion of a discriminant-dependent component of a mutable object
29233         is one itself.
29234
29235 2004-03-25  Ed Schonberg  <schonberg@gnat.com>
29236
29237         * freeze.adb (Freeze_Entity): When an inherited subprogram is
29238         inherited, has convention C, and has unconstrained array parameters,
29239         place the corresponding warning on the derived type declaration rather
29240         than the original subprogram.
29241
29242         * sem_ch12.adb (Instantiate_Formal_Subprogram): Set From_Default
29243         indication on renaming declaration, if formal has a box and actual
29244         is absent.
29245
29246         * sem_ch8.adb (Analyze_Subprogram_Renaming): Use From_Default flag to
29247         determine whether to generate an implicit or explicit reference to
29248         the renamed entity.
29249
29250         * sinfo.ads, sinfo.adb: New flag From_Default, to indicate that a
29251         subprogram renaming comes from a defaulted formal subprogram in an
29252         instance.
29253
29254 2004-03-25  Gary Dismukes  <dismukes@gnat.com>
29255
29256         * sem_elab.adb (Check_Elab_Call): Refine loop that checks for default
29257         value expressions to ensure that calls within a component definition
29258         will be checked (since those are evaluated during the record type's
29259         elaboration).
29260
29261 2004-03-25  Arnaud Charlet  <charlet@act-europe.fr>
29262
29263         * s-tpobop.adb: Code clean up:
29264         (Requeue_Call): Extract from PO_Service_Entries to remove duplicated
29265         code.
29266         (PO_Do_Or_Queue): Remove duplicated code and use Requeue_Call.
29267
29268 2004-03-25  Jose Ruiz  <ruiz@act-europe.fr>
29269
29270         * Makefile.in: Clean up in the ravenscar run time.
29271
29272 2004-03-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
29273
29274         * decl.c (gnat_to_gnu_entity, case E_Access_Type): Pass value
29275         of No_Strict_Aliasing to build_pointer_type_for_mode.
29276         * utils.c (update_pointer_to): Walk pointer and ref chains.
29277
29278 2004-03-22  Cyrille Comar  <comar@act-europe.fr>
29279
29280         * ali.ads: Fix Comment about Dynamic_Elab.
29281
29282         * gnatls.adb (Output_Unit): Add output of many flags (Dynamic_Elab,
29283         Has_RACW, Is_Generic, etc.)
29284         (Output_Object, Gnatls): Take into account ALI files not attached to
29285         an object.
29286
29287 2004-03-22  Vincent Celier  <celier@gnat.com>
29288
29289         * gprep.adb: Change all String_Access to Name_Id
29290         (Is_ASCII_Letter): new function
29291         (Double_File_Name_Buffer): New procedure
29292         (Preprocess_Infile_Name): New procedure
29293         (Process_Files): New procedure
29294         (Gnatprep): Check if output and input are existing directories.
29295         Call Process_Files to do the real job.
29296
29297 2004-03-22  Robert Dewar  <dewar@gnat.com>
29298
29299         * prj-env.adb, prj-nmsc.ads, prj-proc.ads,
29300         s-stache.ads, s-stache.adb: Comment updates. Minor reformatting.
29301
29302 2004-03-22  Sergey Rybin  <rybin@act-europe.fr>
29303
29304         * scn.adb (Contains): Add check for EOF, is needed for a degenerated
29305         case when the source contains only comments.
29306
29307 2004-03-22  Ed Schonberg  <schonberg@gnat.com>
29308
29309         * sem_ch10.adb (Analyze_Compilation_Unit): When generating a
29310         declaration for a child subprogram body that acts as a spec, indicate
29311         that the entity in the declaration needs debugging information.
29312
29313         * sem_ch3.adb (Complete_Private_Subtype): Do not build an underlying
29314         full view if the subtype is created for a constrained record component;
29315         gigi has enough information to construct the record, and there is no
29316         place in the tree for the declaration.
29317
29318         * sem_ch6.adb (Build_Body_To_Inline): Use an internal name without
29319         serial number for the dummy body that is built for analysis, to avoid
29320         inconsistencies in the generation of internal names when compiling
29321         with -gnatN.
29322
29323 2004-03-22  Thomas Quinot  <quinot@act-europe.fr>
29324
29325         * sem_util.adb (Is_Object_Reference): A view conversion denotes an
29326         object.
29327
29328 2004-03-22  GNAT Script  <nobody@gnat.com>
29329
29330         * Make-lang.in: Makefile automatically updated
29331
29332 2004-03-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
29333
29334         * decl.c (gnat_to_gnu_entity): Use SUBSTITUTE_PLACEHOLDER_IN_EXPR.
29335         * trans.c (tree_transform, emit_index_check): Likewise.
29336         * utils.c (build_template): Likewise.
29337         (max_size, convert): Remove handling of WITH_RECORD_EXPR.
29338         (maybe_unconstrained_array, unchecked_convert): Likewise.
29339         * utils2.c (gnat_truthvalue_conversion, build_binary_op): Likewise.
29340         (build_unary_op): Likewise.
29341         (compare_arrays, build_allocator): Use SUBSTITUTE_PLACEHOLDER_IN_EXPR.
29342         (fill_vms_descriptor): Likewise.
29343         (build_call_alloc_dealloc): Likewise.
29344         ALIGN is unsigned.
29345         * gigi.h (build_call_alloc_dealloc): Alignment is unsigned.
29346
29347 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
29348
29349         PR other/14630
29350         * gnat_ug.texi: Add info directory category and entry.
29351         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
29352         gnat_ug_wnt.texi: Regenerate.
29353
29354 2004-03-19  Arnaud Charlet  <charlet@act-europe.fr>
29355
29356         * ada-tree.h: Update copyright notice.
29357         Minor reformatting.
29358
29359 2004-03-19  Olivier Hainque  <hainque@act-europe.fr>
29360
29361         * decl.c (gnat_to_gnu_entity, case E_Exception): Handle VMS exceptions
29362         as regular exception objects and not as mere integers representing the
29363         condition code.  The latter approach required some dynamics to mask off
29364         severity bits, which did not fit well into the GCC table based model.
29365         (gnat_to_gnu_entity, objects): Don't supply an external name for VMS
29366         exception data objects. We don't it and it would conflict with the other
29367         external symbol we have to generate for such exceptions.
29368
29369         * trans.c (tree_transform, case N_Exception_Handler): Remove part of
29370         the special code for VMS exceptions, since these are now represented
29371         as regular exceptions objects.
29372
29373 2004-03-19 Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
29374
29375         * decl.c (debug_no_type_hash): Remove.
29376         (gnat_to_gnu_entity, case E_Array_Type): Don't set and clear it.
29377         * misc.c (LANG_HOOK_HASH_TYPE): Redefine.
29378
29379 2004-03-19  Laurent Guerby  <laurent@guerby.net>
29380
29381         * sem_prag.adb (Suppress_Unsuppress_Echeck): use loop instead of
29382         aggregate, allows bootstrap from 3.3 on powerpc-darwin.
29383
29384 2004-03-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
29385
29386         * ada-tree.h (TYPE_LEFT_JUSTIFIED_MODULAR_P): Add checking.
29387         (TYPE_CONTAINS_TEMPLATE_P, TYPE_OBJECT_RECORD_TYPE): Likewise.
29388         (TYPE_RM_SIZE_INT): Directly use type.values.
29389         (TREE_LOOP_ID): Clean up check.
29390         * decl.c (gnat_to_gnu_entity, case E_Enumeration_Type): Use
29391         TYPE_VALUES, not TYPE_FIELDS.
29392         * trans.c (convert_with_check): Delay access of bounds of basetype
29393         until sure is numeric.
29394
29395 2004-03-18  Arnaud Charlet  <charlet@act-europe.fr>
29396
29397         * 5atpopsp.adb: Remove RTEMS from list of platforms using this file.
29398
29399         Code clean up:
29400         * 5ataprop.adb, 5ftaprop.adb, 5htaprop.adb, 5itaprop.adb, 5staprop.adb,
29401         5vtaprop.adb, 5wtaprop.adb, 7staprop.adb (Finalize_TCB): Use
29402         Specific.Set instead of direct call to e.g pthread_setspecific.
29403
29404 2004-03-18  Thomas Quinot  <quinot@act-europe.fr>
29405
29406         * adaint.c: Update comments.
29407
29408         * Makefile.in: set PREFIX_OBJS, SYMLIB, THREADSLIB, and
29409         GNATLIB_SHARED for FreeBSD.
29410
29411 2004-03-18  Jose Ruiz  <ruiz@act-europe.fr>
29412
29413         * init.c [VxWorks]: Do not fix the stack size for the environment task.
29414         When needed (stack checking) the stack size is retrieved
29415         from the VxWorks kernel.
29416
29417         * Makefile.in: Flag -nostdinc is required when building the run time
29418         for avoiding looking for files in the base compiler.
29419         Add the VxWorks specific version of the package body for
29420         System.Stack_checking.Operations (5zstchop.adb).
29421
29422         * Make-lang.in: Add the object file for
29423         System.Stack_Checking.Operations.
29424
29425         * Makefile.rtl: Add object file for the package
29426         System.Stack_Checking.Operations.
29427
29428         * s-stchop.ads, s-stchop.adb, 5zstchop.adb: New files.
29429
29430         * s-stache.ads, s-stache.adb: Move the operations related to stack
29431         checking from this package to package System.Stack_Checking.Operations.
29432         This way, stack checking operations are only linked in the final
29433         executable when using the -fstack-check flag.
29434
29435 2004-03-18  Doug Rupp  <rupp@gnat.com>
29436
29437         * Makefile.in [VMS]: Handle 64 bit specs (5qsystem.ads, 5xcrtl.ads).
29438         Reorganize ifeq's.
29439
29440         * 5qsystem.ads, 5xcrtl.ads: New files.
29441
29442 2004-03-18  Vincent Celier  <celier@gnat.com>
29443
29444         * prj.adb (Reset): Reset hash table Files_Htable
29445
29446         * prj-env.adb (Source_Paths, Object_Paths): New tables.
29447         (Add_To_Source_Path, Add_To_Object_Path): New procedures, to replace
29448         the procedures Add_To_Path_File.
29449         (Set_Ada_Paths): Accumulate source and object dirs in the tables,
29450         making sure that each directory is present only once and, for object
29451         dirs, when a directory already present is added, the duplicate is
29452         removed and the directory is always put as the last in the table.
29453         Write the path files at the end of these accumulations.
29454
29455         * prj-nmsc.adb (Record_Source): Add source file name in hash table
29456         Files_Htable for all sources.
29457
29458         * prj-proc.adb (Process): Remove restrictions between not directly
29459         related extending projects.
29460
29461 2004-03-18  Emmanuel Briot  <briot@act-europe.fr>
29462
29463         * prj-nmsc.ads, prj-nmsc.adb (Ada_Check): New parameter Trusted_Mode.
29464         (Find_Sources): Minor speed optimization.
29465
29466         * prj-proc.ads, prj-proc.adb (Check, Recursive_Check, Process): New
29467         parameter Trusted_Mode.
29468
29469 2004-03-18  Sergey Rybin  <rybin@act-europe.fr>
29470
29471         * scn.adb (Determine_License): Take into account a degenerated case
29472         when the source contains only comments.
29473
29474 2004-03-18  Ed Schonberg  <schonberg@gnat.com>
29475
29476         * sem_warn.adb (Check_References): For a warning on a selected
29477         component that does not come from source, locate an uninitialized
29478         component of the record type to produce a more precise error message.
29479
29480 2004-03-15  Jerome Guitton  <guitton@act-europe.fr>
29481
29482         * 3zsoccon.ads: Fix multicast options.
29483
29484         * s-thread.ads: Move unchecked conversion from ATSD_Access to Address
29485         in the spec.
29486
29487 2004-03-15  Robert Dewar  <dewar@gnat.com>
29488
29489         * sem_prag.adb: Make sure No_Strict_Aliasing flag is set right when
29490         pragma used for a private type.
29491
29492         * lib-xref.adb (Generate_Reference): Do not generate warning if
29493         reference is in a different unit from the pragma Unreferenced.
29494
29495         * 5vtpopde.adb: Minor reformatting
29496         Fix casing of To_Task_ID
29497
29498         * sem_ch13.adb (Validate_Unchecked_Conversion): Set No_Strict_Aliasing
29499         flag if we have an unchecked conversion to an access type in the same
29500         unit.
29501
29502 2004-03-15  Geert Bosch  <bosch@gnat.com>
29503
29504         * a-ngcoty.adb (Modulus): In alternate formula for large real or
29505         imaginary parts, use Double precision throughout.
29506
29507         * a-tifiio.adb (Put_Scaled): Remove remaining pragma Debug. Not only
29508         we want to be able to compile run-time with -gnata for testing, but
29509         this may also be instantiated in user code that is compiled with -gnata.
29510
29511 2004-03-15  Olivier Hainque  <hainque@act-europe.fr>
29512
29513         * s-stalib.ads (Exception_Code): New type, to represent Import/Export
29514         codes. Having a separate type for this is useful to enforce consistency
29515         throughout the various run-time units.
29516         (Exception_Data): Use Exception_Code for Import_Code.
29517
29518         * s-vmextra.ads, s-vmexta.adb: Use Exception_Code instead of a mix of
29519         Natural and Integer in various places.
29520         (Register_VMS_Exception): Use Base_Code_In to compute the exception code
29521         with the severity bits masked off.
29522         (Register_VMS_Exception): Handle the additional exception data pointer
29523         argument.
29524
29525         * raise.c (_GNAT_Exception structure): Remove the handled_by_others
29526         component, now reflected by an exported accessor.
29527         (is_handled_by): New routine to compute whether the propagated
29528         occurrence matches some handler choice specification. Extracted out of
29529         get_action_description_for, and expanded to take care of the VMS
29530         specifities.
29531         (get_action_description_for): Use is_handled_by instead of an explicit
29532         complex condition to decide if the current choice at hand catches the
29533         propagated occurrence.
29534
29535         * raise.h (Exception_Code): New type for C.
29536
29537         * rtsfind.ads (RE_Id, RE_Unit_Table): Add
29538         System.Standard_Library.Exception_Code, to allow references from the
29539         pragma import/export expander.
29540
29541         * a-exexpr.adb (Is_Handled_By_Others, Language_For, Import_Code_For):
29542         New accessors to allow easy access to GNAT exception data
29543         characteristics.
29544         (GNAT_GCC_Exception record, Propagate_Exception): Get rid of the
29545         redundant Handled_By_Others component, helper for the personality
29546         routine which will now be able to call the appropriate exception data
29547         accessor instead.
29548
29549         * cstand.adb (Create_Standard): Adjust the type of the Import_Code
29550         component of Standard_Exception_Type to be the closest possible to
29551         Exception_Code in System.Standard_Library, that we cannot get at this
29552         point. Expand a ??? comment to notify that this type node should
29553         probably be rewritten later on.
29554
29555         * exp_prag.adb (Expand_Pragma_Import_Export_Exception): Adjust the
29556         registration call to include a pointer to the exception object in the
29557         arguments.
29558
29559         * init.c (__gnat_error_handler): Use Exception_Code and Base_Code_In
29560         instead of int and explicit bitmasks.
29561
29562 2004-03-15  Vincent Celier  <celier@gnat.com>
29563
29564         * vms_data.ads: Add new GNAT BIND qualifier /STATIC. Makes /NOSHARED
29565         equivalent to /STATIC and /NOSTATIC equivalent to /SHARED.
29566
29567         * a-tasatt.adb (To_Access_Code): Remove this UC instantiation, no
29568         longer needed now that it is in the spec of
29569         System.Tasking.Task_Attributes.
29570
29571         * adaint.h, adaint.c: (__gnat_create_output_file): New function
29572
29573         * gnatcmd.adb: Fix bug introduced in previous rev: /= instead of =
29574
29575         * g-os_lib.ads, g-os_lib.adb (Create_Output_Text_File): New function.
29576
29577         * make.adb (Gnatmake): Do not check the executable suffix; it is being
29578         taken care of in Scan_Make_Arg.
29579         (Scan_Make_Arg): Add the executable suffix only if the argument
29580         following -o, in canonical case, does not end with the executable
29581         suffix.  When in verbose mode and executable file name does not end
29582         with executable suffix, output the executable name, in canonical case.
29583
29584         * s-tataat.ads (Access_Dummy_Wrapper): Add pragma No_Strict_Aliasing
29585         to avoid warnings when instantiating Ada.Task_Attributes.
29586         Minor reformating.
29587
29588         * mlib-prj.adb (Process_Imported_Libraries): Get the imported libraries
29589         in the correct order.
29590
29591         * prj-makr.adb (Process_Directory): No longer use GNAT.Expect, but
29592         redirect standard output and error to a file for the invocation of the
29593         compiler, then read the file.
29594
29595         * prj-nmsc.adb (Find_Sources): Use the Display_Value for each
29596         directory, instead of the Value.
29597         (Find_Source_Dirs): Remove useless code & comments.
29598
29599 2004-03-15  Ed Schonberg  <schonberg@gnat.com>
29600
29601         * exp_ch3.adb (Freeze_Record_Type): If a primitive operation of a
29602         tagged type is inherited, and the parent operation is not frozen yet,
29603         force generation of a freeze node for the inherited operation, so the
29604         corresponding dispatch entry is properly initialized.
29605         (Make_Predefined_Primitive_Specs): Check that return type is Boolean
29606         when looking for user-defined equality operation.
29607
29608         * exp_ch4.adb (Expand_Composite_Equality): Check that return type is
29609         boolean when locating primitive equality of tagged component.
29610
29611         * exp_ch5.adb (Expand_Assign_Array): If the left-hand side is a
29612         bit-aligned field and the right-hand side a string literal, introduce
29613         a temporary before expanding assignment into a loop.
29614
29615         * exp_ch9.adb (Expand_N_Task_Type_Declaration): Copy expression for
29616         priority in full, to ensure that any expanded subepxressions of it are
29617         elaborated in the scope of the init_proc.
29618
29619         * exp_prag.adb (Expand_Pragma_Import): Search for initialization call
29620         after object declaration, skipping over code that may have been
29621         generated for validity checks.
29622
29623         * sem_ch12.adb (Validate_Private_Type_Instance): If type has unknown
29624         discriminants, ignore the known discriminants of its full view, if
29625         any, to check legality.
29626
29627         * sem_ch3.adb (Complete_Private_Subtype): Do not create constrained
29628         component if type has unknown discriminants.
29629         (Analyze_Private_Extension_Declaration): Discriminant constraint is
29630         null if type has unknown discriminants.
29631
29632         * sem_ch6.adb (Analyze_Generic_Subprogram_Body): Generate reference
29633         for end label when present.
29634
29635         * s-fileio.adb (Open): When called with a C_Stream, use given name for
29636         temporary file, rather than an empty string.
29637
29638 2004-03-15  Ed Falis  <falis@gnat.com>
29639
29640         * s-thread.adb: Removed, no longer used.
29641
29642 2004-03-15  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
29643
29644         * decl.c (target.h): Now include.
29645         (gnat_to_gnu_entity, case E_Access_Type): Use mode derived from ESIZE
29646         in new build_pointer_from_mode calls for non-fat/non-thin pointer.
29647         (validate_size): For POINTER_TYPE, get smallest size permitted on
29648         machine.
29649
29650         * fe.h: Sort Einfo decls and add Set_Mechanism.
29651
29652         * Makefile.in: (LIBGNAT_SRCS): Remove types.h.
29653         (ada/decl.o): Depends on target.h.
29654
29655         * trans.c (tree_transform, N_Unchecked_Type_Conversion): Do not use
29656         FUNCTION_BOUNDARY; always use TYPE_ALIGN.
29657
29658 2004-03-15  Thomas Quinot  <quinot@act-europe.fr>
29659
29660         * 5ztpopsp.adb, 56tpopsp.adb: Fix spelling of Task_ID.
29661
29662         * exp_ch4.adb (Expand_N_Indexed_Component): Do not call
29663         Insert_Dereference_Action when rewriting an implicit dereference into
29664         an explicit one, this will be taken care of during expansion of the
29665         explicit dereference.
29666         (Expand_N_Slice): Same. Always do the rewriting, even for the case
29667         of non-packed slices, since the dereference action generated by
29668         expansion of the explicit dereference is needed in any case.
29669         (Expand_N_Selected_Component): When rewriting an implicit dereference,
29670         analyze and resolve the rewritten explicit dereference so it is seen
29671         by the expander.
29672         (Insert_Dereference_Action): This procedure is now called only for the
29673         expansion of an N_Explcit_Dereference_Node. Do insert a check even for
29674         dereferences that do not come from source (including explicit
29675         dereferences resulting from rewriting implicit ones), but do not
29676         recursively insert a check for the dereference nodes contained within
29677         the check.
29678         (Insert_Dereference_Action): Clarify and correct comment.
29679
29680 2004-03-08  Paolo Bonzini  <bonzini@gnu.org>
29681
29682         PR ada/14131
29683         Move language detection to the top level.
29684         * config-lang.in: Build by default.
29685
29686 2004-03-05  Robert Dewar  <dewar@gnat.com>
29687
29688         * 56taprop.adb, 5ataprop.adb: Remove unneeded unchecked conversions
29689
29690         * a-tags.adb, a-tags.ads, s-finimp.adb, s-finroo.ads,
29691         i-cpoint.ads, i-cpoint.adb, i-cstrin.adb, i-cstrin.ads,
29692         5iosinte.ads, 5sosinte.ads, 5staspri.ads, 5itaprop.adb,
29693         5staprop.adb, 5wtaprop.adb, s-tataat.ads, s-tataat.adb: Move
29694         unchecked conversion to spec to avoid warnings.
29695
29696         * s-tasini.adb, s-taskin.ads, 5atpopsp.adb: Correct spelling Task_Id
29697         to Task_ID
29698
29699         * 7stpopsp.adb: Correct casing in To_Task_ID call
29700
29701         * a-strsea.ads, a-strsea.adb: Minor reformatting
29702
29703         * einfo.ads, einfo.adb: Define new flag No_Strict_Aliasing
29704
29705         * errout.ads: Switch for VMS is now NO_STRICT_ALIASING.
29706         Adjust Max_Msg_Length to be clearly large enough.
29707
29708         * fe.h: Define In_Same_Source_Unit
29709
29710         * osint.adb: Add pragma Warnings Off to suppress warnings
29711         * g-dyntab.adb, g-table.adb, g-thread.adb: Add Warnings (Off) to kill
29712         aliasing warnings.
29713
29714         * opt.ads: Put entries in alpha order. Add entry for No_Strict_Aliasing
29715
29716         * par-prag.adb: Add dummy entry for No_Strict_Aliasing pragma
29717
29718         * sem_ch13.adb: Generate validate unchecked conversion nodes for gcc.
29719
29720         * sem_ch3.adb: Set No_Strict_Aliasing flag if config pragma set.
29721
29722         * sem_prag.adb: Implement pragma No_Strict_Aliasing.
29723
29724         * sinfo.ads: Remove obsolete comment on validate unchecked conversion
29725         node. We now do generate them for gcc back end.
29726
29727         * table.adb, sinput.adb: Add pragma Warnings Off to suppress aliasing
29728         warning.
29729
29730         * sinput-c.adb: Fix bad name in header.
29731         Add pragma Warnings Off to suppress aliasing warning.
29732
29733         * sinput-l.adb: Add pragma Warnings Off to suppress aliasing warning.
29734
29735         * snames.h, snames.ads, snames.adb: Add entry for pragma
29736         No_Strict_Aliasing.
29737
29738 2004-03-05  Vincent Celier  <celier@gnat.com>
29739
29740         * prj-com.ads: Add hash table Files_Htable to check when a file name
29741         is already a source of another project.
29742
29743         * prj-nmsc.adb (Record_Source): Before recording a new source, check
29744         if its file name is not already a source of another project. Report an
29745         error if it is.
29746
29747         * gnatcmd.adb: When GNAT PRETTY is invoked with a project file and no
29748         source file name, call gnatpp with all the sources of the main project.
29749
29750         * vms_conv.adb (Initialize): GNAT PRETTY may be called with any number
29751         of file names.
29752
29753         * vms_data.ads: Correct documentation of new /OPTIMIZE keyword
29754         NO_STRICT_ALIASING. Add new qualifier for GNAT PRETTY:
29755         /RUNTIME_SYSTEM=, converted to --RTS=
29756         /NOTABS, converted to -notabs
29757
29758 2004-03-05  Pascal Obry  <obry@gnat.com>
29759
29760         * make.adb: Minor reformatting.
29761
29762 2004-03-05  Ed Schonberg  <schonberg@gnat.com>
29763
29764         Part of implemention of AI-262.
29765         * par-ch10.adb (P_Context_Clause): Recognize private with_clauses.
29766
29767         * sem_ch10.ads, sem_ch10.adb: (Install_Private_With_Clauses): New
29768         procedure.
29769
29770         * sem_ch3.adb (Analyze_Component_Declaration): Improve error message
29771         when component type is a partially constrained class-wide subtype.
29772         (Constrain_Discriminated_Type): If parent type has unknown
29773         discriminants, a constraint is illegal, even if full view has
29774         discriminants.
29775         (Build_Derived_Record_Type): Inherit discriminants when deriving a type
29776         with unknown discriminants whose full view is a discriminated record.
29777
29778         * sem_ch7.adb (Preserve_Full_Attributes): Preserve Has_Discriminants
29779         flag, to handle properly derivations of tagged types with unknown
29780         discriminants.
29781         (Analyze_Package_Spec, Analyze_Package_Body): Install
29782         Private_With_Clauses before analyzing private part or body.
29783
29784         * einfo.ads: Indicate that both Has_Unknown_Discriminants and
29785         Has_Discriminants can be true for a given type (documentation).
29786
29787 2004-03-05  Arnaud Charlet  <charlet@act-europe.fr>
29788
29789         * s-restri.ads: Fix license (GPL->GMGPL).
29790
29791         * s-tassta.adb: Minor reformatting.
29792
29793         * s-tasren.adb: Replace manual handling of Self_Id.ATC_Nesting_Level
29794         by calls to Exit_One_ATC_Level, since additional clean up is performed
29795         by this function.
29796
29797         * s-tpobop.adb: Replace manual handling of Self_Id.ATC_Nesting_Level
29798         by calls to Exit_One_ATC_Level, since additional clean up is performed
29799         by this function.
29800
29801 2004-03-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
29802
29803         * trans.c: Reflect GCC changes to fix bootstrap problem.
29804         Add warning for suspicious aliasing unchecked conversion.
29805
29806 2004-03-05  GNAT Script  <nobody@gnat.com>
29807
29808         * Make-lang.in: Makefile automatically updated
29809
29810 2004-03-02  Emmanuel Briot  <briot@act-europe.fr>
29811
29812         * ali.adb (Read_Instantiation_Instance): Do not modify the
29813         current_file_num when reading information about instantiations, since
29814         this corrupts files in later references.
29815
29816 2004-03-02  Vincent Celier  <celier@gnat.com>
29817
29818         * bcheck.adb (Check_Consistency): Get the full path of an ALI file
29819         before checking if it is read-only.
29820
29821         * bld.adb (Recursive_Process): Concatenate <PROJECT>.src_dirs in front
29822         of SRC_DIRS and eliminate duplicates.
29823
29824         * gprcmd.adb: Replace command "path" with command "path_sep" to return
29825         the path separator.
29826         (Usage): Document path_sep
29827
29828         * Makefile.generic: For Ada and GNU C++ cases, link directly with the
29829         C++ compiler. No need for a script.
29830         Replace use of C*_INCLUDE_PATH env var for GCC compilers with CPATH.
29831         Do not call gprcmd to build the C*_INCLUDE_PATHs, do it with function
29832         subst.
29833
29834         * prj-env.adb (For_All_Source_Dirs): Only add source dirs in project
29835         where there are Ada sources.
29836         (Set_Ada_Paths): Only add to the include path the source dirs of project
29837         with Ada sources.
29838         (Add_To_Path): Add the Display_Values of the directories, not their
29839         Values.
29840
29841         * prj-nmsc.adb (Find_Sources): Set flag Sources_Present in the project
29842         data.
29843
29844         * prj-nmsc.adb (Add_ALI_For): Make sure that the element Display_Value
29845         is not No_Name.
29846         (Find_Source_Dirs): Set Display_Value to a non canonicalized value, only
29847         Value is canonicalized.
29848         (Language_Independent_Check): Do not copy Value to Display_Value when
29849         canonicalizing Value.
29850
29851         * prj-part.adb (Post_Parse_Context_Clause): Compare canonical cased
29852         path to find limited with cycles.
29853         (Parse_Single_Project): Use canonical cased path to find the end of a
29854         with cycle.
29855
29856 2004-03-02  Ed Schonberg  <schonberg@gnat.com>
29857
29858         * sem_ch10.adb (Optional_Subunit): Verify that unit contains a subunit
29859         and not a child unit.
29860
29861         * sinfo.ads, sinfo.adb: Rearrange flags so that Private_Present can
29862         appear in a with_clause.
29863
29864         * decl.c (gnat_to_gnu_type): If entity is a generic type, which can
29865         only happen in type_annotate mode, do not try to elaborate it.
29866
29867         * exp_util.adb (Force_Evaluation): If expression is a selected
29868         component on the left of an assignment, use a renaming rather than a
29869         temporary to remove side effects.
29870
29871         * freeze.adb (Freeze_Entity): Do not freeze a global entity within an
29872         inlined instance body, which is analyzed before the end of the
29873         enclosing scope.
29874
29875 2004-03-02  Robert Dewar  <dewar@gnat.com>
29876
29877         * par-ch10.adb, par-ch3.adb, par-ch4.adb, scng.adb,
29878         sem_ch4.adb: Use new feature for substitution of keywords in VMS
29879
29880         * errout.ads, errout.adb: Implement new circuit for substitution of
29881         keywords in VMS.
29882
29883         * sem_case.adb (Analyze_Choices): Place message properly when case is
29884         a subtype reference rather than an explicit range.
29885
29886         * sem_elim.adb, s-tpobop.ads, exp_ch2.adb: Minor reformatting
29887
29888 2004-03-02  Doug Rupp  <rupp@gnat.com>
29889
29890         * init.c (__gnat_initialize)[VMS]: Resignal RDB-E-STREAM_EOF.
29891
29892 2004-03-02  Thomas Quinot  <quinot@act-europe.fr>
29893
29894         * s-tporft.adb: Add missing locking around call to Initialize_ATCB.
29895
29896 2004-03-02  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
29897
29898         * utils.c (finish_record_type): Do not set DECL_NONADDRESSABLE for a
29899         BLKmode bitfield.
29900
29901 2004-02-25  Robert Dewar  <dewar@gnat.com>
29902
29903         * 51osinte.ads, 52osinte.ads, 53osinte.ads, 54osinte.ads,
29904         55osinte.ads, 56osinte.ads, 5aosinte.ads, 5bosinte.ads,
29905         5cosinte.ads, 5fosinte.ads, 5gosinte.ads, 5hosinte.ads,
29906         5iosinte.ads, 5losinte.ads, 5nosinte.ads, 5oosinte.ads,
29907         5posinte.ads, 5sosinte.ads, 5tosinte.ads, 5vosinte.ads,
29908         5wosinte.ads, 5zosinte.ads: Move instances of Unchecked_Conversion to
29909         the defining instance of the type to avoid aliasing problems.
29910         Fix copyright header.  Fix bad comments in package header.
29911
29912         * exp_util.adb, prj-part.adb, prj-part.adb: Minor reformatting
29913
29914 2004-02-25  Ed Schonberg  <schonberg@gnat.com>
29915
29916         * exp_ch2.adb (Param_Entity): Handle properly formals that have been
29917         rewritten as references when aliased through an address clause.
29918
29919         * sem_ch4.adb (Try_Indirect_Call): Normalize actuals before checking
29920         whether call can be interpreted as an indirect call to the result of a
29921         parameterless function call returning an access subprogram.
29922
29923 2004-02-25  Arnaud Charlet  <charlet@act-europe.fr>
29924
29925         Code clean up:
29926         * exp_ch7.adb (Make_Clean): Remove generation of calls to
29927         Unlock[_Entries], since this is now done by Service_Entries directly.
29928
29929         * exp_ch9.adb (Build_Protected_Subprogram_Body): ditto.
29930
29931         * s-tpobop.ads, s-tpobop.adb (PO_Service_Entries): New nested procedure
29932         Requeue_Call for better code readability. Change spec and update calls:
29933         PO_Service_Entries now unlock the PO on exit.
29934         (Protected_Entry_Call, Timed_Protected_Entry_Call): Update calls to
29935         PO_Service_Entries.
29936
29937         * s-tposen.ads, s-tposen.adb (Service_Entry): Now unlock the PO on exit.
29938
29939         * s-taenca.adb, s-tasren.adb: Update calls to PO_Service_Entries.
29940
29941 2004-02-25  Sergey Rybin  <rybin@act-europe.fr>
29942
29943         * exp_ch9.adb (Build_Simple_Entry_Call): Prevent expanding the
29944         protected subprogram call and analyzing the result of such expanding
29945         in case when the called protected subprogram is eliminated.
29946
29947         * sem_elim.adb (Check_Eliminated): Skip blocks when comparing scope
29948         names.
29949
29950 2004-02-25  Jerome Guitton  <guitton@act-europe.fr>
29951
29952         * Makefile.in: Clean ups.
29953
29954 2004-02-23  Ed Schonberg  <schonberg@gnat.com>
29955
29956         * exp_ch6.adb (Expand_N_Subprogram_Declaration): Do not create
29957         protected operations if original subprogram is flagged as eliminated.
29958         (Expand_N_Subprogram_Body): For a protected operation, create
29959         discriminals for next operation before checking whether the operation
29960         is eliminated.
29961
29962         * exp_ch9.adb (Expand_N_Protected_Body,
29963         Expand_N_Protected_Type_Declaration): Do not generate specs and bodies
29964         for internal protected operations if the original subprogram is
29965         eliminated.
29966
29967         * sem_elim.adb (Check_Eliminated): Handle properly protected operations
29968         declared in a single protected object.
29969
29970 2004-02-23  Vincent Celier  <celier@gnat.com>
29971
29972         * prj-attr.adb: Make attribute Builder'Executable an associative array,
29973         case insensitive if file names are case insensitive, instead of a
29974         standard associative array.
29975
29976         * prj-attr.adb (Initialize): For 'b' associative arrays, do not set
29977         them as case insensitive on platforms where the file names are case
29978         sensitive.
29979
29980         * prj-part.adb (Parse_Single_Project): Make sure, when checking if
29981         project file has already been parsed that canonical path are compared.
29982
29983 2004-02-23  Robert Dewar  <dewar@gnat.com>
29984
29985         * sinput-c.ads: Correct bad unit title in header
29986
29987         * freeze.adb: Minor reformatting
29988
29989 2004-02-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
29990
29991         * trans.c (tree_transform, case N_Procedure_Call_Statement): For
29992         nonaddressable COMPONENT_REF that is removing padding that we are
29993         taking the address of, take the address of the padded record instead
29994         if item is variable size.
29995
29996 2004-02-20  Robert Dewar  <dewar@gnat.com>
29997
29998         * bld.adb, exp_util.adb, gprcmd.adb: Minor reformatting
29999
30000 2004-02-20  Ed Schonberg  <schonberg@gnat.com>
30001
30002         * freeze.adb (Freeze_Record_Type): Generalize mechanism that generates
30003         itype references for the constrained designated type of a component
30004         whose base type is already frozen.
30005
30006 2004-02-20  Arnaud Charlet  <charlet@act-europe.fr>
30007
30008         * init.c (__gnat_error_handler [tru64]): Rewrite previous change to
30009         avoid GCC warnings.
30010
30011 2004-02-20  Sergey Rybin  <rybin@act-europe.fr>
30012
30013         * sem_ch12.adb (Analyze_Formal_Package): Create a new defining
30014         identifier for a phantom package that rewrites the formal package
30015         declaration with a box. The Add semantic decorations for the defining
30016         identifier from the original node (that represents the formal package).
30017
30018 2004-02-19  Matt Kraai  <kraai@alumni.cmu.edu>
30019
30020         * Make-lang.in (ada/stamp-sdefault): Use the top level
30021         move-if-change.
30022
30023 2004-02-19  Richard Henderson  <rth@redhat.com>
30024
30025         * misc.c (record_code_position): Add third build arg for RTL_EXPR.
30026
30027 2004-02-18  Emmanuel Briot  <briot@act-europe.fr>
30028
30029         * ali.ads, ali.adb (First_Sdep_Entry): No longer a constant, so that
30030         Scan_ALI can be used for multiple ALI files without reinitializing
30031         between calls.
30032
30033 2004-02-18  Robert Dewar  <dewar@gnat.com>
30034
30035         * debug.adb: Minor reformatting.
30036
30037 2004-02-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
30038
30039         * decl.c (gnat_to_gnu_entity, case object): Set DECL_POINTER_ALIAS_SET
30040         to zero if there is an address clause.
30041
30042 2004-02-18  Thomas Quinot  <quinot@act-europe.fr>
30043
30044         * exp_util.adb (Side_Effect_Free): Any literal is side effects free.
30045
30046 2004-02-18  Gary Dismukes  <dismukes@gnat.com>
30047
30048         * layout.adb (Layout_Component_List): Revise generation of call to
30049         discriminant-checking function to pass selections of all of the type's
30050         discriminants rather than just the variant-controlling discriminant.
30051
30052 2004-02-18  Olivier Hainque  <hainque@act-europe.fr>
30053
30054         * 5gmastop.adb (Pop_Frame): Do not call exc_unwind, which is bound to
30055         fail in the current setup and triggers spurious system error messages.
30056         Pretend it occurred and failed instead.
30057
30058 2004-02-18  Vincent Celier  <celier@gnat.com>
30059
30060         * bld.adb: Mark FLDFLAGS as saved
30061         (Process_Declarative_Items): Add Linker'Linker_Options to FLDFLAGS when
30062         it is not the root project.  Put each directory to be
30063         extended between double quotes to prevent it to be expanded on Windows.
30064         (Recursive_Process): Reset CFLAGS/CXXFLAGS to nothing before processing
30065         the project file. Set them back to their initial values if they have not
30066         been set in the project file.
30067
30068         * gprcmd.adb: (Gprdebug, Debug): New global variables
30069         (Display_Command): New procedure
30070         (Usage): Document new command "linkopts"
30071         Call Display_Command when env var GPRDEBUG has the value "TRUE"
30072         Implement new command "linkopts"
30073         Remove quotes that may be around arguments for "extend"
30074         Always call Normalize_Pathname with arguments formatted for the platform
30075
30076         * Makefile.generic: Link C/C++ mains with $(FLDFLAGS)
30077         Change @echo to @$(display) in target clean to be able to clean silently
30078
30079         * Makefile.prolog: Save FLDFLAGS and give it an initial empty value
30080
30081         * prj-part.adb (Project_Path_Name_Of): Do not put final result in
30082         canonical case.
30083
30084         * prj-part.adb (Parse_Single_Project): Always call with From_Extended
30085         = Extending_All when current project is an extending all project.
30086
30087         * vms_conv.adb (Output_File_Expected): New Boolean global variable,
30088         set to True only for LINK command, after Unix switch -o.
30089         (Process_Arguments): Set Output_File_Expected to True for LINK command
30090         after Unix switch -o. When Output_File_Expected is True, never add an
30091         extension to a file name.
30092
30093         * 5vml-tgt.adb (Build_Dynamic_Library): Do not append "/OPTIONS" to the
30094         option file name, only to the --for-linker= switch.
30095         (Option_File_Name): If option file name do not end with ".opt", append
30096         "/OPTIONS".
30097
30098 2004-02-18  GNAT Script  <nobody@gnat.com>
30099
30100         * Make-lang.in: Makefile automatically updated
30101
30102 2004-02-17  Matt Kraai  <kraai@alumni.cmu.edu>
30103
30104         * Make-lang.in (stamp-sdefault): Do not depend on
30105         move-if-change.
30106
30107 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
30108
30109         * config-lang.in: Disable Ada by default until probe logic for
30110         a bootstrap Ada compiler can be moved to the top level configure
30111         script.
30112
30113 2004-02-12  Olivier Hainque  <hainque@act-europe.fr>
30114
30115         * decl.c (components_to_record): Don't claim that the internal fields
30116         we make to hold the variant parts are semantically addressable, because
30117         they are not.
30118
30119         * exp_pakd.adb (Create_Packed_Array_Type): Rename Esiz into PASize and
30120         adjust the comment describing the modular type form when we can use it.
30121         (Install_PAT): Account for the Esiz renaming.
30122
30123         * init.c (__gnat_error_handler for alpha-tru64): Arrange to clear the
30124         sc_onstack context indication before raising the exception to which
30125         the signal is mapped. Allows better handling of later signals possibly
30126         triggered by the resumed user code if the exception is handled.
30127
30128 2004-02-12  Arnaud Charlet  <charlet@act-europe.fr>
30129
30130         * 5zinit.adb: Removed, no longer used.
30131
30132 2004-02-12  Robert Dewar  <dewar@gnat.com>
30133
30134         * ali.adb: Remove separating space between parameters on R line. Makes
30135         format consistent with format used by the binder for Set_Globals call.
30136
30137         * atree.ads, atree.adb: Minor reformatting (new function header format)
30138
30139         * bindgen.adb: Add Run-Time Globals documentation section containing
30140         detailed documentation of the globals passed from the binder file to
30141         the run time.
30142
30143         * gnatls.adb: Minor reformatting
30144
30145         * init.c (__gnat_set_globals): Add note pointing to documentation in
30146         bindgen.
30147
30148         * lib-writ.ads, lib-writ.adb: Remove separating space between
30149         parameters on R line.
30150         Makes format consistent with format used by the binder for Set_Globals
30151         call.
30152
30153         * osint.ads: Add 2004 to copyright notice
30154         Minor reformatting
30155
30156         * snames.ads: Correct capitalization of FIFO_Within_Priorities
30157         Noticed during code reading, documentation issue only
30158
30159         * usage.adb: Remove junk line for obsolete C switch
30160         Noticed during code reading
30161
30162 2004-02-12  Vincent Celier  <celier@gnat.com>
30163
30164         * bld.adb (Process_Declarative_Items): For Source_Dirs call gprcmd
30165         extend for each directory, so that multiple /** directories are
30166         extended individually.
30167         (Recursive_Process): Set the default for LANGUAGES to ada
30168
30169         * gprcmd.adb: Define new command "ignore", to do nothing.
30170         Implement new comment "path".
30171
30172         * Makefile.generic: Suppress output when SILENT is set
30173         Make sure that when compiler for C/C++ is gcc, the correct -x switch is
30174         used, so that the correct compiler is invoked.
30175         When compiler is gcc/g++, put search path in env vars C_INCLUDE_PATH/
30176         CXX_INCLUDE_PATH, to avoid failure with too long command lines.
30177
30178 2004-02-12  Jerome Guitton  <guitton@act-europe.fr>
30179
30180         * Makefile.in: Clean ups and remove obsolete targets.
30181
30182 2004-02-12  Ed Schonberg  <schonberg@gnat.com>
30183
30184         * exp_ch5.adb: Remove Possible_Unligned_Slice, in favor of the similar
30185         predicate declared in exp_util.
30186
30187         * exp_util.adb: Add comments.
30188
30189         * sem_ch10.adb (Analyze_Subunit): Remove ultimate parent unit from
30190         visibility before compiling context of the subunit.
30191
30192         * sem_res.adb (Check_Parameterless_Call): If the context expects a
30193         value but the name is a procedure, do not attempt to analyze as a call,
30194         in order to obtain more telling diagnostics.
30195
30196         * sem_util.adb (Wrong_Type): Further enhancement to diagnose missing
30197         'Access on parameterless function calls.
30198         (Normalize_Actuals): For a parameterless function call with missing
30199         actuals, defer diagnostic until resolution of enclosing call.
30200
30201         * sem_util.adb (Wrong_Type): If the context type is an access to
30202         subprogram and the expression is a procedure name, suggest a missing
30203         'attribute.
30204
30205 2004-02-10  Arnaud Charlet  <charlet@act-europe.fr>,
30206             Nathanael Nerode  <neroden@gcc.gnu.org>
30207
30208         PR ada/6637
30209         PR ada/5911
30210         Merge with libada-branch:
30211         * config-lang.in: Build libada only when ada is built.
30212
30213 2004-02-09  Ed Schonberg  <schonberg@gnat.com>
30214
30215         * exp_ch4.adb (Expand_N_Op_Eq): When looking for the primitive equality
30216         for a tagged type, verify that both formals have the same type.
30217
30218         * exp_ch6.adb (Add_Call_By_Copy_Code): Initialize properly the
30219         temporary when the formal is an in-parameter and the actual a possibly
30220         unaligned slice.
30221
30222         * exp_ch9.adb (Expand_Entry_Barrier): Resolve barrier expression even
30223         when expansion is disabled, to ensure proper name capture with
30224         overloaded literals.  Condition can be of any boolean type, resolve
30225         accordingly.
30226
30227         * sem_ch8.adb (Analyze_Subprogram_Renaming): Emit warning if the
30228         renaming is for a formal subprogram with a default operator name, and
30229         there is a usable operator that is visible at the point of
30230         instantiation.
30231
30232 2004-02-09  Robert Dewar  <dewar@gnat.com>
30233
30234         * ali.adb (Scan_Ali) Add Ignore_Errors argument. This is a major
30235         rewrite to ignore errors in ali files, intended to allow tools downward
30236         compatibility with new versions of ali files.
30237
30238         * ali.ads: Add new parameter Ignore_Errors
30239
30240         * bcheck.adb (Check_Consistent_Restrictions): Fix error of sometimes
30241         duplicating the error message giving the file with restrictions.
30242
30243         * debug.adb: Add debug flag I for gnatbind
30244
30245         * errout.adb (Set_Msg_Insertion_Node): Suppress extra quotes around
30246         operators for the case where the operator is a defining operator.
30247
30248         * exp_ch3.adb: Minor reformatting (new function spec format).
30249
30250         * exp_ch4.adb: Add comment for previous change, and make minor
30251         adjustment to loop to always check for improper loop termination.
30252         Minor reformatting throughout (new function spec format).
30253
30254         * gnatbind.adb: Implement -di debug flag for gnatbind
30255
30256         * gnatlink.adb: Call Scan_ALI with Ignore_Errors set to True
30257
30258         * gnatls.adb: Call Scan_ALI with Ignore_Errors set to True
30259
30260         * lib-load.adb: Fix bad assertion.
30261         Found by testing and code reading.
30262         Minor reformatting.
30263
30264         * lib-load.ads: Minor reformatting.
30265
30266         * lib-writ.adb: There is only one R line now.
30267
30268         * lib-writ.ads: Add documentation on making downward compatible changes
30269         to ali files so old tools work with new ali files.
30270         There is only one R line now.
30271         Add documentation on format incompatibilities (with special GPS note)
30272
30273         * namet.ads, namet.adb: (Is_Operator_Name): New procedure
30274
30275         * par-load.adb: Minor reformatting
30276
30277         * sem_ch8.adb: Fix to error message from last update
30278         Minor reformatting and restructuring of code from last update
30279
30280         * par-prag.adb, snames.adb, snames.ads, snames.h,
30281         sem_prag.adb: Implement pragma Profile.
30282
30283         * stylesw.adb: Implement -gnatyN switch to turn off all style check
30284         options.
30285
30286         * usage.adb: Add line for -gnatyN switch
30287
30288         * vms_data.ads: Add entry STYLE_CHECKS=NONE for -gnatyN
30289
30290 2004-02-09  Albert Lee  <lee@gnat.com>
30291
30292         * errno.c: define _SGI_MP_SOURCE for task-safe errno on IRIX
30293
30294 2004-02-09  Ed Schonberg  <schonberg@gnat.com>
30295
30296         * exp_ch3.adb (Build_Slice_Assignment): Handle properly case of null
30297         slices.
30298
30299         * exp_ch6.adb (Expand_Call): Do not inline a call when the subprogram
30300         is nested in an instance that is not frozen yet, to avoid
30301         order-of-elaboration problems in gigi.
30302
30303         * sem_attr.adb (Analyze_Attribute, case 'Access): Within an inlined
30304         body the attribute is legal.
30305
30306 2004-02-09  Robert Dewar  <dewar@gnat.com>
30307
30308         * s-rident.ads: Minor comment correction
30309
30310         * targparm.adb: Remove dependence on uintp completely. There was
30311         always a bug in Make in that it called Targparm before initializing
30312         the Uint package. The old code appeared to get away with this, but
30313         the new code did not! This caused an assertion error in gnatmake.
30314
30315         * targparm.ads: Fix bad comment, restriction pragmas with parameters
30316         are indeed fully supported.
30317
30318 2004-02-06  Alan Modra  <amodra@bigpond.net.au>
30319
30320         * misc.c (default_pass_by_ref): Update INIT_CUMULATIVE_ARGS call.
30321
30322 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
30323
30324         * ada/utils.c (create_param_decl): Replace PROMOTE_PROTOTYPES
30325         with targetm.calls.promote_prototypes.
30326
30327 2004-02-04  Robert Dewar  <dewar@gnat.com>
30328
30329         * 5gtasinf.adb, 5gtasinf.ads, 5gtaprop.adb, ali.adb,
30330         ali.ads, gprcmd.adb: Minor reformatting
30331
30332         * bindgen.adb: Output restrictions string for new style restrictions
30333         handling
30334
30335         * impunit.adb: Add s-rident.ads (System.Rident) and
30336         s-restri (System.Restrictions)
30337
30338         * lib-writ.adb: Fix bug in writing restrictions string (last few
30339         entries wrong)
30340
30341         * s-restri.ads, s-restri.adb: Change name Restrictions to
30342         Run_Time_Restrictions to avoid conflict with package name.
30343         Add circuit to read and acquire run time restrictions.
30344
30345 2004-02-04  Jose Ruiz  <ruiz@act-europe.fr>
30346
30347         * restrict.ads, restrict.adb: Use the new restriction
30348         No_Task_Attributes_Package instead of the old No_Task_Attributes.
30349
30350         * sem_prag.adb: No_Task_Attributes is a synonym of
30351         No_Task_Attributes_Package.
30352
30353         * snames.ads, snames.adb: New entry for proper handling of
30354         No_Task_Attributes.
30355
30356         * s-rident.ads: Adding restriction No_Task_Attributes_Package
30357         (AI-00249) that supersedes the GNAT specific restriction
30358         No_Task_Attributes.
30359
30360 2004-02-04  Ed Schonberg  <schonberg@gnat.com>
30361
30362         * sem_prag.adb:
30363         (Analyze_Pragma, case Warnings): In an inlined body, as in an instance
30364          body, an identifier may be wrapped in an unchecked conversion.
30365
30366 2004-02-04  Vincent Celier  <celier@gnat.com>
30367
30368         * lib-writ.ads: Comment update for the W lines
30369
30370         * bld.adb: (Expression): An empty string list is static
30371
30372         * fname-uf.adb: Minor comment update
30373
30374         * fname-uf.ads: (Get_File_Name): Document new parameter May_Fail
30375
30376         * gnatbind.adb: Initialize Cumulative_Restrictions with the
30377         restrictions on the target.
30378
30379 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
30380
30381         * ada/trans.c (gigi): Use gen_rtx_SYMBOL_REF instead of
30382         gen_rtx.
30383
30384 2004-02-02  Arnaud Charlet  <charlet@gnat.com>
30385
30386         * Makefile.in: Remove setting of THREADSLIB on mips o32, unneeded.
30387
30388 2004-02-02  Vincent Celier  <celier@gnat.com>
30389
30390         * gprcmd.adb (Check_Args): If condition is false, print the invoked
30391         comment before the usage.
30392         Gprcmd: Fail when command is not recognized.
30393         (Usage): Document command "prefix"
30394
30395         * g-md5.adb (Digest): Process last block.
30396         (Update): Do not process last block. Store remaining characters and
30397         length in Context.
30398
30399         * g-md5.ads (Update): Document that several call to update are
30400         equivalent to one call with the concatenated string.
30401         (Context): Add fields to allow new Update behaviour.
30402
30403         * fname-uf.ads/adb (Get_File_Name): New Boolean parameter May_Fail,
30404         defaulted to False.
30405         When May_Fail is True and no existing file can be found, return No_File.
30406
30407         * 6vcstrea.adb: Inlined functions are now wrappers to implementation
30408         functions.
30409
30410         * lib-writ.adb (Write_With_Lines): When body file does not exist, use
30411         spec file name instead on the W line.
30412
30413 2004-02-02  Robert Dewar  <dewar@gnat.com>
30414
30415         * ali.adb: Read and acquire info from new format restrictions lines
30416
30417         * bcheck.adb: Add circuits for checking restrictions with parameters
30418
30419         * bindgen.adb: Output dummy restrictions data
30420         To be changed later
30421
30422         * ali.ads, checks.adb, exp_aggr.adb, exp_attr.adb, exp_ch11.adb,
30423         exp_ch3.adb, exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_util.adb,
30424         freeze.adb, gnat1drv.adb, sem_attr.adb, sem_ch10.adb, sem_ch11.adb,
30425         sem_ch12.adb, targparm.adb, targparm.ads, tbuild.adb, sem_ch2.adb,
30426         sem_elab.adb, sem_res.adb: Minor changes for new restrictions handling.
30427
30428         * exp_ch9.adb (Build_Master_Entity): Cleanup the code (also suppresses
30429         the warning message on access to possibly uninitialized variable S)
30430         Minor changes for new restrictions handling.
30431
30432         * gnatbind.adb: Minor reformatting
30433         Minor changes for new restrictions handling
30434         Move circuit for -r processing here from bcheck (cleaner)
30435
30436         * gnatcmd.adb, gnatlink.adb: Minor reformatting
30437
30438         * lib-writ.adb: Output new format restrictions lines
30439
30440         * lib-writ.ads: Document new R format lines for new restrictions
30441         handling.
30442
30443         * s-restri.ads/adb: New files
30444
30445         * Makefile.rtl: Add entry for s-restri.ads/adb
30446
30447         * par-ch3.adb: Fix bad error messages starting with upper case letter
30448         Minor reformatting
30449
30450         * restrict.adb: Major rewrite throughout for new restrictions handling
30451         Major point is to handle restrictions with parameters
30452
30453         * restrict.ads: Major changes in interface to handle restrictions with
30454         parameters. Also generally simplifies setting of restrictions.
30455
30456         * snames.ads/adb: New entry for proper handling of No_Requeue
30457
30458         * sem_ch3.adb (Count_Tasks): New circuitry for implementing Max_Tasks
30459         restriction counting.
30460         Other minor changes for new restrictions handling
30461
30462         * sem_prag.adb: No_Requeue is a synonym for No_Requeue_Statements.
30463         Restriction_Warnings now allows full parameter notation
30464         Major rewrite of Restrictions for new restrictions handling
30465
30466 2004-02-02  Javier Miranda  <miranda@gnat.com>
30467
30468         * par-ch3.adb (P_Identifier_Declarations): Give support to the Ada 0Y
30469         syntax rule for object renaming declarations.
30470         (P_Array_Type_Definition): Give support for the Ada 0Y syntax rule for
30471         component definitions.
30472
30473         * sem_ch3.adb (Analyze_Component_Declaration): Give support to access
30474         components.
30475         (Array_Type_Declaration): Give support to access components. In addition
30476         it was also modified to reflect the name of the object in anonymous
30477         array types. The old code did not take into account that it is possible
30478         to have an unconstrained anonymous array with an initial value.
30479         (Check_Or_Process_Discriminants): Allow access discriminant in
30480         non-limited types.
30481         (Process_Discriminants): Allow access discriminant in non-limited types
30482         Initialize the new Access_Definition field in N_Object_Renaming_Decl
30483         node.  Change Ada0Y to Ada 0Y in comments
30484
30485         * sem_ch4.adb (Find_Equality_Types): Allow anonymous access types in
30486         equality operators.
30487         Change Ada0Y to Ada 0Y in comments
30488
30489         * sem_ch8.adb (Analyze_Object_Renaming): Give support to access
30490         renamings Change Ada0Y to Ada 0Y in comments
30491
30492         * sem_type.adb (Find_Unique_Type): Give support to the equality
30493         operators for universal access types
30494         Change Ada0Y to Ada 0Y in comments
30495
30496         * sinfo.adb (Access_Definition, Set_Access_Definition): New subprograms
30497
30498         * sinfo.ads (N_Component_Definition): Addition of Access_Definition
30499         field.
30500         (N_Object_Renaming_Declaration): Addition of Access_Definition field
30501         Change Ada0Y to Ada 0Y in comments
30502
30503         * sprint.adb (Sprint_Node_Actual): Give support to the new syntax for
30504         component definition and object renaming nodes
30505         Change Ada0Y to Ada 0Y in comments
30506
30507 2004-02-02  Jose Ruiz  <ruiz@act-europe.fr>
30508
30509         * restrict.adb: Use the new restriction identifier
30510         No_Requeue_Statements instead of the old No_Requeue for defining the
30511         restricted profile.
30512
30513         * sem_ch9.adb (Analyze_Requeue): Check the new restriction
30514         No_Requeue_Statements.
30515
30516         * s-rident.ads: Adding restriction No_Requeue_Statements (AI-00249)
30517         that supersedes the GNAT specific restriction No_Requeue. The later is
30518         kept for backward compatibility.
30519
30520 2004-02-02  Ed Schonberg  <schonberg@gnat.com>
30521
30522         * lib.ads, i-cobol.ads, * s-stoele.ads, s-thread.ads, style.ads,
30523         5staprop.adb, atree.adb, atree.ads, g-crc32.ads: Remove redundant
30524         pragma and fix incorrect ones.
30525
30526         * sem_prag.adb For pragma Inline and pragma Pure_Function, emit a
30527         warning if the pragma is redundant.
30528
30529 2004-02-02  Thomas Quinot  <quinot@act-europe.fr>
30530
30531         * 5staprop.adb: Add missing 'constant' keywords.
30532
30533         * Makefile.in: use consistent value for SYMLIB on
30534         platforms where libaddr2line is supported.
30535
30536 2004-02-02  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
30537
30538         * utils.c (end_subprog_body): Do not call rest_of_compilation if just
30539         annotating types.
30540
30541 2004-02-02  Olivier Hainque  <hainque@act-europe.fr>
30542
30543         * init.c (__gnat_install_handler): Setup an alternate stack for signal
30544         handlers in the environment thread. This allows proper propagation of
30545         an exception on stack overflows in this thread even when the builtin
30546         ABI stack-checking scheme is used without support for a stack reserve
30547         region.
30548
30549         * utils.c (create_field_decl): Augment the head comment about bitfield
30550         creation, and don't account for DECL_BIT_FIELD in DECL_NONADDRESSABLE_P
30551         here, because the former is not accurate enough at this point.
30552         Let finish_record_type decide instead.
30553         Don't make a bitfield if the field is to be addressable.
30554         Always set a size for the field if the record is packed, to ensure the
30555         checks for bitfield creation are triggered.
30556         (finish_record_type): During last pass over the fields, clear
30557         DECL_BIT_FIELD when possible in the !STRICT_ALIGNMENT case, as this is
30558         not covered by the calls to layout_decl.  Adjust DECL_NONADDRESSABLE_P
30559         from DECL_BIT_FIELD.
30560
30561 2004-01-30  Kelley Cook  <kcook@gcc.gnu.org>
30562
30563         * Make-lang.in (doc/gnat_ug_unx.dvi): Use $(abs_docdir).
30564         (doc/gnat_ug_vms.dvi, doc/gnat_ug_unx.dvi): Likewise.
30565         (doc/gnat_ug_unx.dvi, doc/gnat-style.dvi): Likewise.
30566
30567 2004-01-26  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
30568
30569         * Makefile.in (mips-sgi-irix5): Remove -lathread from THREADSLIB.
30570
30571         * 5fsystem.ads (Functions_Return_By_DSP): Set to False.
30572         (ZCX_By_Default): Likewise.
30573         (Front_End_ZCX_Support): Likewise.
30574
30575         * 5gtaprop.adb (Stack_Guard): Mark T, On unreferenced.
30576         (Initialize_Lock): Mark Level unreferenced.
30577         (Sleep): Mark Reason unreferenced.
30578         (Timed_Sleep): Likewise.
30579         (Wakeup): Likewise.
30580         (Exit_Task): Use Result.
30581         (Check_No_Locks): Mark Self_ID unreferenced.
30582
30583         * 5gtasinf.adb (New_Sproc): Make Attr constant.
30584         (Bound_Thread_Attributes): Make Sproc constant.
30585         (New_Bound_Thread_Attributes): Likewise.
30586
30587 2004-01-26  Ed Schonberg  <schonberg@gnat.com>
30588
30589         * exp_ch3.adb (Build_Slice_Assignment): New TSS procedure for
30590         one-dimensional array an slice assignments, when component type is
30591         controlled.
30592
30593         * exp_ch5.adb (Expand_Assign_Array): If array is one-dimensional,
30594         component type is controlled, and control_actions are in effect, use
30595         TSS procedure rather than generating inline code.
30596
30597         * exp_tss.ads (TSS_Slice_Assign): New TSS procedure for one-dimensional
30598         arrays with controlled components.
30599
30600 2004-01-26  Vincent Celier  <celier@gnat.com>
30601
30602         * gnatcmd.adb (GNATCmd): Add specification of argument file on the
30603         command line for the non VMS case.
30604
30605         * gnatlink.adb (Process_Binder_File): When building object file, if
30606         GNU linker is used, put all object paths between quotes, to prevent ld
30607         error when there are unusual characters (such as '!') in the paths.
30608
30609         * Makefile.generic: When there are sources in Ada and the main is in
30610         C/C++, invoke gnatmake with -B, instead of -z.
30611
30612         * vms_conv.adb (Preprocess_Command_Data): New procedure, extracted
30613         from VMS_Conversion.
30614         (Process_Argument): New procedure, extracted from VMS_Conversion. Add
30615         specification of argument file on the command line.
30616
30617 2004-01-26  Bernard Banner  <banner@gnat.com>
30618
30619         * Makefile.in: Enable GMEM_LIB and SYMLIB for x86_64
30620
30621 2004-01-26  Ed Schonberg  <schonberg@gnat.com>
30622
30623         * snames.adb: Update copyright notice.
30624         Add info on slice assignment for controlled arrays.
30625
30626 2004-01-23  Robert Dewar  <dewar@gnat.com>
30627
30628         * exp_aggr.adb: Minor reformatting
30629
30630         * exp_ch9.adb: Minor code clean up
30631         Minor reformatting
30632         Fix bad character in comment
30633
30634         PR ada/13471
30635         * targparm.adb (Get_Target_Parameters): Give clean abort error on
30636         unexpected end of file, along with more detailed message.
30637
30638 2004-01-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
30639
30640         * exp_pakd.adb (Install_PAT): Clear Freeze_Node for PAT and Etype of
30641         PAT.
30642
30643         * decl.c (copy_alias_set): New function.
30644         (gnat_to_gnu_entity, make_aligning_type, make_packable_type): Use it.
30645
30646 2004-01-23  Doug Rupp  <rupp@gnat.com>
30647
30648         * Makefile.in (install-gnatlib): Change occurrences of lib$$file to
30649         lib$${file} in case subsequent character is not a separator.
30650
30651 2004-01-23  Vincent Celier  <celier@gnat.com>
30652
30653         * 5vml-tgt.adb (Build_Dynamic_Library): Invoke gcc with -shared-libgcc
30654         when the GCC version is at least 3.
30655
30656         * make.adb: (Scan_Make_Arg): Pass -B to Scan_Make_Switches
30657         Remove all "Opt.", to prepare for opt split
30658
30659         * prj-part.adb (Parse_Single_Project): New Boolean out parameter
30660         Extends_All. Set to True when the project parsed is an extending all
30661         project. Fails for importing an extending all project only when the
30662         imported project is an extending all project.
30663         (Post_Parse_Context_Clause): Set Is_Extending_All to the with clause,
30664         depending on the value of Extends_All returned.
30665
30666         * prj-proc.adb (Process): Check that no project shares its object
30667         directory with a project that extends it, directly or indirectly,
30668         including a virtual project.
30669         Check that no project extended by another project shares its object
30670         directory with another also extended project.
30671
30672         * prj-tree.adb (Is_Extending_All, Set_Is_Extending_All): Allow for
30673         Kind = N_With_Clause
30674
30675         * prj-tree.ads: Minor reformatting
30676         Indicate that Flag2 also applies to N_With_Clause (Is_Extending_All).
30677
30678 2004-01-23  Ed Schonberg  <schonberg@gnat.com>
30679
30680         * sem_ch13.adb (Analyze_Attribute_Definition_Clause): If the attribute
30681         applies to a type with an incomplete view, use full view in Name of
30682         clause, for consistency with uses of Get_Attribute_Definition_Clause.
30683
30684 2004-01-23  Arnaud Charlet  <charlet@act-europe.fr>
30685
30686         * 5itaprop.adb (Set_Priority): Reset the priority to 0 when using
30687         SCHED_RR, since other values are not supported by this policy.
30688         (Initialize): Move initialization of mutex attribute to package
30689         elaboration, to prevent early access to this variable.
30690
30691         * Makefile.in: Remove mention of Makefile.adalib, unused.
30692
30693         * Makefile.adalib, 1aexcept.adb, 1aexcept.ads, 1ic.ads, 1ssecsta.adb,
30694         1ssecsta.ads: Removed, unused.
30695
30696 2004-01-21  Javier Miranda  <miranda@gnat.com>
30697
30698         * exp_aggr.adb (Build_Record_Aggr_Code): Do not build the master
30699         entity if already built in the current scope.
30700
30701         * exp_ch9.adb (Build_Master_Entity): Do not set the has_master_entity
30702         reminder in internal scopes. Required for nested limited aggregates.
30703
30704 2004-01-21  Doug Rupp  <rupp@gnat.com>
30705
30706         * Makefile.in (hyphen): New variable, default value '-'. Set to '_' on
30707         VMS. Replace all occurences of libgnat- and libgnarl- with
30708         libgnat$(hyphen) and libgnarl$(hyphen).
30709         Fixed shared library build problem on VMS.
30710
30711 2004-01-21  Robert Dewar  <dewar@gnat.com>
30712
30713         * mlib-prj.adb: Minor reformatting
30714
30715 2004-01-21  Thomas Quinot  <quinot@act-europe.fr>
30716
30717         * prj-tree.adb, 7staprop.adb, vms_conv.adb, xr_tabls.adb: Add missing
30718         'constant' keywords for declaration of pointers that are not modified.
30719
30720         * exp_pakd.adb: Fix English in comment.
30721
30722 2004-01-21  Ed Schonberg  <schonberg@gnat.com>
30723
30724         PR ada/10889
30725         * sem_ch3.adb (Analyze_Subtype_Declaration): For an array subtype,
30726         copy all attributes of the parent, including the foreign language
30727         convention.
30728
30729 2004-01-21  Sergey Rybin  <rybin@act-europe.fr>
30730
30731         PR ada/10565
30732         * sem_ch9.adb (Analyze_Delay_Alternative): Add expression type check
30733         for 'delay until' statement.
30734
30735 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
30736
30737         * Make-lang.in: Replace $(docdir) with doc.
30738         (doc/gnat_ug_unx.info, doc/gnat_ug_vwx.info, doc/gnat_ug_vms.info
30739         doc/gnat_ug_wnt.info, doc/gnat_rm.info, doc/gnat-style.info): Update
30740         to use consistent MAKEINFO rule.
30741         (ada.man, ada.srcman): Dummy entry.
30742         (ADA_INFOFILES): Define.
30743         (ada.info, ada.srcinfo): New rules.
30744
30745 2004-01-19  Arnaud Charlet  <charlet@act-europe.fr>
30746
30747         * utils.c: Update copyright notice, missed in previous change.
30748
30749 2004-01-19  Vincent Celier  <celier@gnat.com>
30750
30751         * mlib-prj.adb (Build_Library.Add_ALI_For): Only add the ALI to the
30752         args if Bind is True. Set First_ALI, if not already done.
30753         (Build_Library): For Stand Alone Libraries, extract from one ALI file
30754         an eventual --RTS switch, for gnatbind, and all backend switches +
30755         --RTS, for linking.
30756
30757 2004-01-19  Robert Dewar  <dewar@gnat.com>
30758
30759         * sem_attr.adb, memtrack.adb: Minor reformatting
30760
30761 2004-01-19  Ed Schonberg  <schonberg@gnat.com>
30762
30763         * exp_ch6.adb (Expand_Call): Remove code to fold calls to functions
30764         that rename enumeration literals. This is properly done in sem_eval.
30765
30766         * sem_eval.ads, sem_eval.adb (Eval_Call): New procedure to fold calls
30767         to functions that rename enumeration literals.
30768
30769         * sem_res.adb (Resolve_Call): Use Eval_Call to fold static calls to
30770         functions that rename enumeration literals.
30771
30772 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
30773
30774         * Make-lang.in (utils.o): Depend on target.h.
30775         * utils.c: Include target.h.
30776         (process_attributes): Use targetm.have_named_sections instead
30777         of ASM_OUTPUT_SECTION_NAME.
30778
30779 2004-01-16  Andreas Jaeger  <aj@suse.de>
30780
30781         * Makefile.in: Add $(DESTDIR).
30782
30783 2004-01-15  Olivier Hainque  <hainque@act-europe.fr>
30784
30785         * decl.c (gnat_to_gnu_entity, E_Variable): Retrieve the object size
30786         also when not defining if a Size clause applies. That information is
30787         not to be ignored.
30788
30789 2004-01-15  Arnaud Charlet  <charlet@act-europe.fr>
30790
30791         * Makefile.in (install-gnatlib, gnatlib-shared-default): Set up
30792         symbolic links for the shared gnat run time when needed.
30793
30794 2004-01-15  Vasiliy Fofanov  <fofanov@act-europe.fr>
30795
30796         * memtrack.adb (Gmem_Initialize): check that gmem.out could be opened
30797         for writing, and terminate with an error message if not.
30798
30799 2004-01-15  Ed Schonberg  <schonberg@gnat.com>
30800
30801         * sem_attr.adb (Resolve_Attribute, case 'Access): Remove spurious
30802         warning on an access to subprogram in an instance, when the target
30803         type is declared in the same generic unit.
30804         (Eval_Attribute): If 'access is known to fail accessibility check,
30805         rewrite as a raise statement.
30806
30807 2004-01-15  GNAT Script  <nobody@gnat.com>
30808
30809         * Make-lang.in: Makefile automatically updated
30810
30811 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
30812
30813         * Make-lang.in (ada.srcextra): Dummy entry.
30814
30815 2004-01-14  Kelley Cook  <kcook@gcc.gnu.org>
30816
30817         * Make-lang.in: Only regenerate texi files if --enable-maintainer-mode.
30818
30819 2004-01-13  Ed Schonberg  <schonberg@gnat.com>
30820
30821         * exp_ch3.adb (Build_Assignment): Fix bug in handling of controlled
30822         components that are initialized with aggregates.
30823
30824 2004-01-13  Vincent Celier  <celier@gnat.com>
30825
30826         * gnatlink.adb (Process_Binder_File): To find directory of shared
30827         libgcc, if "gcc-lib" is not a subdirectory, look for the last
30828         subdirectory "lib" in the path of the shared libgnat or libgnarl.
30829
30830         * make.adb (Gnatmake): If GCC version is at least 3, link with
30831         -shared-libgcc, when there is at least one shared library project.
30832
30833         * opt.ads (GCC_Version): New integer constant.
30834
30835         * adaint.c (get_gcc_version): New function.
30836
30837 2004-01-13  Robert Dewar  <dewar@gnat.com>
30838
30839         * sem_dist.adb, sem_res.adb, sem_util.adb,
30840         sprint.adb, 3zsocthi.adb, einfo.adb, cstand.adb,
30841         exp_ch4.adb, exp_ch9.adb, exp_dist.adb: Minor reformatting
30842
30843 2004-01-13  Thomas Quinot  <quinot@act-europe.fr>
30844
30845         * s-interr.adb, s-stache.adb, s-taenca.adb, g-regpat.adb,
30846         g-spitbo.adb, 5itaprop.adb: Add missing 'constant' keywords in object
30847         declarations.
30848
30849 2004-01-12  Arnaud Charlet  <charlet@act-europe.fr>
30850
30851         * misc.c: Remove trailing spaces.
30852         Update copyright notice missed in previous change.
30853
30854         PR ada/13572
30855         * bld.adb (Recursive_Process): Reference prefix/share/gnat instead of
30856         prefix/share/make
30857
30858         * Makefile.generic: Update copyright.
30859         Add license notice.
30860
30861         * Makefile.in (ADA_SHARE_MAKE_DIR): Set to prefix/share/gnat instead
30862         of prefix/share/make.
30863
30864         * Makefile.prolog: Update copyright.
30865         Add license notice.
30866
30867 2004-01-12  Laurent Pautet  <pautet@act-europe.fr>
30868
30869         * 3vsocthi.adb, 3vsocthi.ads, 3wsocthi.adb,
30870         3wsocthi.ads, 3zsocthi.adb, 3zsocthi.ads, g-socthi.adb,
30871         g-socthi.ads (Socket_Error_Message): Return C.Strings.chars_ptr
30872         instead of String.
30873
30874         * g-socket.adb (Raise_Socket_Error): Use new Socket_Error_Message
30875         signature.
30876
30877 2004-01-12  Javier Miranda  <miranda@gnat.com>
30878
30879         * cstand.adb, exp_aggr.adb, exp_ch3.adb, exp_ch9.adb, exp_dist.adb,
30880         exp_imgv.adb, exp_pakd.adb, exp_util.adb, par-ch3.adb, sem.adb,
30881         sem_ch12.adb, sem_ch3.adb, sem_dist.adb, sem_prag.adb, sem_res.adb,
30882         sem_util.adb, sinfo.adb, sinfo.ads, sprint.adb: Addition of
30883         Component_Definition node.
30884
30885 2004-01-12  Ed Falis  <falis@gnat.com>
30886
30887         * impunit.adb: Add GNAT.Secondary_Stack_Info as user-visible unit
30888
30889 2004-01-12  Thomas Quinot  <quinot@act-europe.fr>
30890
30891         * link.c: Change default libgnat kind to STATIC for FreeBSD.
30892
30893 2004-01-12  Bernard Banner  <banner@gnat.com>
30894
30895         * Makefile.in: map 86numaux to a-numaux for x86_64
30896
30897 2004-01-12  Ed Schonberg  <schonberg@gnat.com>
30898
30899         * lib-xref.adb (Get_Type_Reference): If the type is the subtype entity
30900         generated to rename a generic actual, go to the actual itself, the
30901         subtype is not a user-visible entity.
30902
30903         * sem_ch7.adb (Uninstall_Declarations): If an entity in the visible
30904         part is a private subtype, reset the visibility of its full view, if
30905         any, to be consistent.
30906
30907         PR ada/13417
30908         * sem_ch12.adb (Analyze_Formal_Package): Diagnose properly an attempt
30909         to use a generic package G as a formal package for another generic
30910         declared within G.
30911
30912 2004-01-12  Robert Dewar  <dewar@gnat.com>
30913
30914         * trans.c (Eliminate_Error_Msg): New procedure called to generate msg
30915
30916         * usage.adb: Remove mention of obsolete -gnatwb switch
30917         Noticed during code reading
30918
30919 2004-01-12  Jerome Guitton  <guitton@act-europe.fr>
30920
30921         * 1ssecsta.adb: Minor changes for -gnatwa warnings
30922
30923 2004-01-12  GNAT Script  <nobody@gnat.com>
30924
30925         * Make-lang.in: Makefile automatically updated
30926
30927 2004-01-09  Mark Mitchell  <mark@codesourcery.com>
30928
30929         * misc.c (gnat_expand_expr): Add alt_rtl parameter.
30930
30931 2004-01-07  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
30932
30933         * link.c [sgi] (shared_libgnat_default): Change to STATIC.
30934
30935 2004-01-05  Kelley Cook  <kcook@gcc.gnu.org>
30936
30937         * Make-lang.in: Revert stamp-xgnatug change from 2003-12-18.
30938         Update comment and copyright date.
30939         * stamp-xgnatug: Delete.
30940
30941 2004-01-05  Robert Dewar  <dewar@gnat.com>
30942
30943         * 1ssecsta.ads: Default_Secondary_Stack is not a constant since it may
30944         be modified by the binder generated main program if the -D switch is
30945         used.
30946
30947         * 4onumaux.ads, 4znumaux.ads: Add Pure_Function pragmas for all
30948         imported functions (since now we expect this to be done for imported
30949         functions)
30950
30951         * 5vtaprop.adb: Add several ??? for sections requiring more comments
30952         Minor reformatting throughout
30953
30954         * 5zinit.adb: Minor reformatting
30955         Add 2004 to copyright date
30956         Minor changes to avoid -gnatwa warnings
30957         Correct some instances of using OR instead of OR ELSE (noted while
30958         doing reformatting)
30959
30960         * sprint.adb: Minor updates to avoid -gnatwa warnings
30961
30962         * s-secsta.ads, s-secsta.adb:
30963         (SS_Get_Max): New function to obtain high water mark for ss stack
30964         Default_Secondary_Stack is not a constant since it may be modified by
30965         the binder generated main program if the -D switch is used.
30966
30967         * switch-b.adb: New -Dnnn switch for binder
30968
30969         * switch-c.adb:
30970         Make -gnatg imply all warnings currently in -gnatwa
30971
30972         * vms_conv.adb: Minor reformatting
30973         Add 2004 to copyright notice
30974         Add 2004 to printed copyright notice
30975
30976         * 3vexpect.adb, 4zsytaco.adb, 3wsocthi.adb, 3zsocthi.adb,
30977         3zsocthi.adb, 56taprop.adb, 56tpopsp.adb, 5amastop.adb,
30978         5aml-tgt.adb, 5ataprop.adb, 5ataprop.adb, 5atpopsp.adb,
30979         5ftaprop.adb, 5ginterr.adb, 5gmastop.adb, 5gml-tgt.adb,
30980         5gtaprop.adb, 5hml-tgt.adb, 5hml-tgt.adb, 5hml-tgt.adb,
30981         5htaprop.adb, 5htraceb.adb, 5itaprop.adb, 5lml-tgt.adb,
30982         5sml-tgt.adb, 5staprop.adb, 5staprop.adb, 5stpopsp.adb,
30983         5vasthan.adb, 5vinmaop.adb, 5vinterr.adb, 5vtaprop.adb,
30984         5vml-tgt.adb, 5vtaprop.adb, 5wosprim.adb, 5wtaprop.adb,
30985         5zinterr.adb, 5zintman.adb, 5zml-tgt.adb, 5ztaprop.adb,
30986         6vcpp.adb, 6vcstrea.adb, 7staprop.adb, 7stpopsp.adb,
30987         vxaddr2line.adb, vxaddr2line.adb, xref_lib.adb, xr_tabls.adb,
30988         xr_tabls.ads, s-tasdeb.adb, s-tasdeb.adb, sem_res.ads,
30989         sem_util.adb, sem_util.adb, sem_util.ads, s-interr.adb,
30990         checks.adb, clean.adb, cstand.adb, einfo.ads,
30991         einfo.adb, exp_aggr.adb, exp_ch11.adb, exp_ch3.adb,
30992         exp_ch4.adb, exp_ch5.adb, exp_ch7.adb, exp_ch9.adb,
30993         prj-nmsc.adb, prj-pp.adb, prj-util.adb, sem_attr.adb,
30994         sem_ch10.adb, sem_ch12.adb, sem_ch4.adb, g-dirope.adb,
30995         g-dirope.ads, gnatlbr.adb, i-cstrea.adb, inline.adb,
30996         lib-xref.adb, sem_ch5.adb, sem_ch7.adb, sem_ch8.adb:
30997         Minor reformatting and code clean ups.
30998         Minor changes to prevent -gnatwa warnings
30999
31000         * ali.adb: Minor reformatting and cleanup of code
31001         Acquire new SS indication of secondary stack use from ali files
31002
31003         * a-numaux.ads: Add Pure_Function pragmas for all imported functions
31004         (since now we expect this to be done for imported functions)
31005
31006         * bindgen.adb: Generate call to modify default secondary stack size if
31007         -Dnnn switch given
31008
31009         * bindusg.adb: Add line for new -D switch
31010
31011         * exp_aggr.adb (Type_May_Have_Bit_Aligned_Components): More appropriate
31012         replacement name for Type_May_Have_Non_Bit_Aligned_Components!
31013         Add circuitry for both records and arrays to avoid gigi
31014         processing if the type involved has non-bit-aligned components
31015
31016         * exp_ch5.adb (Expand_Assign_Array): Avoid assumption that
31017         N_String_Literal node always references an E_String_Literal_Subtype
31018         entity. This may not be true in the future.
31019         (Possible_Bit_Aligned_Component): Move processing of
31020         Component_May_Be_Bit_Aligned from exp_ch5 to exp_util
31021
31022         * exp_ch6.adb (Expand_Thread_Body): Pick up
31023         Default_Secondary_Stack_Size as variable so that we get value modified
31024         by possible -Dnnn binder parameter.
31025
31026         * exp_util.adb (Component_May_Be_Bit_Aligned): New function.
31027         (Type_May_Have_Bit_Aligned_Components): New function.
31028
31029         * exp_util.ads (Component_May_Be_Bit_Aligned): New function.
31030         (Type_May_Have_Bit_Aligned_Components): New function.
31031
31032         * fe.h: (Set_Identifier_Casing): Fix prototype.
31033         Add declaration for Sem_Elim.Eliminate_Error_Msg.
31034         Minor reformatting.
31035
31036         * freeze.adb (Freeze_Entity): Add RM reference to error message about
31037         importing constant atomic/volatile objects.
31038         (Freeze_Subprogram): Reset Is_Pure indication for imported subprogram
31039         unless explicit Pure_Function pragma given, to avoid insidious bug of
31040         call to non-pure imported function getting eliminated.
31041
31042         * gnat1drv.adb, gnatbind.adb, gnatchop.adb, gnatfind.adb,
31043         gnatls.adb, gnatlink.adb, gnatmem.adb, gnatname.adb, gnatsym.adb,
31044         gnatxref.adb, gprcmd.adb, gprep.adb, make.adb: Minor reformatting
31045         Add 2004 to printed copyright notice
31046
31047         * lib-writ.ads, lib-writ.adb: Put new SS flag in ali file if secondary
31048         stack used.
31049
31050         * Makefile.rtl: Add entry for g-sestin.o
31051         g-sestin.ads: New file.
31052
31053         * mdll.adb: Minor changes to avoid -gnatwa warnings
31054
31055         * mlib-tgt.adb: Minor reformatting
31056
31057         * opt.ads: New parameter Default_Secondary_Stack_Size (GNATBIND)
31058         New switch Sec_Stack_Used (GNAT, GNATBIND)
31059         Make Default_Secondary_Stack_Size a variable instead of a constant,
31060         so that it can be modified by the new -Dnnn bind switch.
31061
31062         * rtsfind.adb (Load_Fail): Give full error message in configurable
31063         run-time mode if all_errors mode is set. This was not done in the case
31064         of a file not found, which was an oversight.
31065         Note if secondary stack unit is used by compiler.
31066
31067         * sem_elab.adb (Check_A_Call): Rewrite to avoid trying to put
31068         ineffective elaborate all pragmas on non-visible packages (this
31069         happened when a renamed subprogram was called). Now the elaborate all
31070         always goes on the package containing the renaming rather than the one
31071         containing the renamed subprogram.
31072
31073         * sem_elim.ads, sem_elim.adb (Eliminate_Error_Msg): New procedure
31074         (Process_Eliminate_Pragma): Add parameter to capture pragma location.
31075
31076         * sem_eval.adb (Eval_String_Literal): Do not assume that string literal
31077         has an Etype that references an E_String_Literal.
31078         (Eval_String_Literal): Avoid assumption that N_String_Literal node
31079         always references an E_String_Literal_Subtype entity. This may not
31080         be true in the future.
31081
31082         * sem_prag.adb (Process_Eliminate_Pragma): Add parameter to capture
31083         pragma location.
31084
31085         * sem_res.adb (Resolve): Specialize msg for function name used in proc
31086         call.
31087
31088 2004-01-05  Ed Falis  <falis@gnat.com>
31089
31090         * g-debuti.adb: Replaced direct boolean operator with short-circuit
31091         form.
31092
31093 2004-01-05  Vincent Celier  <celier@gnat.com>
31094
31095         * bld.adb: Minor comment updates
31096         (Process_Declarative_Items): Correct incorrect name (Index_Name instead
31097         of Item_Name).
31098
31099         * make.adb (Gnatmake): Special process for files to compile/check when
31100         -B is specified. Fail when there are only foreign mains in attribute
31101         Main of the project file and -B is not specified. Do not skip bind/link
31102         steps when -B is specified.
31103
31104         * makeusg.adb: Document new switch -B
31105
31106         * opt.ads (Build_Bind_And_Link_Full_Project): New Boolean flag
31107
31108         * switch-m.adb: (Scan_Make_Switches): Process -B switch
31109
31110         * vms_data.ads: Add new GNAT PRETTY qualifier
31111         /FORM_FEED_AFTER_PRAGMA_PAGE for switch -ff
31112
31113 2004-01-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
31114
31115         * trans.c (tree_transform, case N_Free_Statement): Handle thin pointer
31116         case.
31117
31118         * misc.c (gnat_printable_name): If VERBOSITY is 2, call
31119         Set_Identifier_Casing.
31120
31121         * decl.c (gnat_to_gnu_entity, E_Function): Give error if return type
31122         has size that overflows.
31123
31124 2004-01-05  Gary Dismukes  <dismukes@gnat.com>
31125
31126         * exp_ch4.adb (Expand_Array_Comparison): Add Boolean constant to avoid
31127         -gnatwa warning on static condition.
31128
31129 2004-01-05  Doug Rupp  <rupp@gnat.com>
31130
31131         * link.c: (shared_libgnat_default) [VMS]: Change to STATIC.
31132
31133 2004-01-05  Arnaud Charlet  <charlet@act-europe.fr>
31134
31135         * Makefile.in: Install ali files using INSTALL_DATA_DATE to preserve
31136         all attributes, including read-only attribute.
31137
31138 2004-01-05  Pascal Obry  <obry@gnat.com>
31139
31140         * bindgen.adb (Gen_Object_Files_Options): Generate the new shared
31141         library naming scheme.
31142
31143         * mlib-prj.adb (Build_Library): Generate different names for the static
31144         or dynamic version of the GNAT runtime. This is needed to support the
31145         new shared library naming scheme.
31146         (Process_Binder_File): Add detection of shared library in binder file
31147         based on the new naming scheme.
31148
31149         * gnatlink.adb (Process_Binder_File): Properly detect the new naming
31150         scheme for the shared runtime libraries.
31151
31152         * Makefile.in:
31153         (LIBRARY_VERSION) [VMS]: Convert all . to _ to conform to new naming
31154         scheme.
31155         (install-gnatlib): Do not create symlinks for shared libraries.
31156         (gnatlib-shared-default): Idem.
31157         (gnatlib-shared-dual-win32): New target. Not used for now as the
31158         auto-import feature does not support arrays/records.
31159         (gnatlib-shared-win32): Do not create copy for the shared libraries.
31160         (gnatlib-shared-vms): Fix shared runtime libraries names.
31161
31162         * osint.ads, osint.adb (Shared_Lib): New routine, returns the target
31163         dependent runtime shared library name.
31164
31165 2004-01-05  Vasiliy Fofanov  <fofanov@act-europe.fr>
31166
31167         * osint.adb (Read_Library_Info): Remove bogus check if ALI is older
31168         than the object.
31169
31170 2004-01-05  Ed Schonberg  <schonberg@gnat.com>
31171
31172         * sem_ch4.adb (Analyze_Allocator): Check restriction on dynamic
31173         protected objects when allocator has a subtype indication, not a
31174         qualified expression. Note that qualified expressions may have to be
31175         checked when limited aggregates are implemented.
31176
31177         * sem_prag.adb (Analyze_Pragma, case Import): If enclosing package is
31178         pure, emit warning.
31179         (Analyze_Pragma, case Pure_Function): If enclosing package is pure and
31180         subprogram is imported, remove warning.
31181
31182 2004-01-05  Geert Bosch  <bosch@gnat.com>
31183
31184         * s-poosiz.adb: Update copyright notice.
31185         (Allocate): Use Task_Lock to protect against concurrent access.
31186         (Deallocate): Likewise.
31187
31188 2004-01-05  Joel Brobecker  <brobecker@gnat.com>
31189
31190         * s-stalib.adb (Elab_Final_Code): Add missing year in date inside ???
31191         comment.
31192
31193 2003-12-23  Kelley Cook  <kcook@gcc.gnu.org>
31194
31195         * gnat_ug.texi: Force a CVS commit by updating copyright.
31196         * gnat_ug_vxw.texi: Regenerate.
31197         * gnat_ug_wnt.texi: Regenerate.
31198         * gnat_ug_vms.texi: Regenerate.
31199         * gnat_ug_unx.texi: Regenerate.
31200
31201 2003-12-20  Kazu Hirata  <kazu@cs.umass.edu>
31202
31203         * trans.c: Remove uses of "register" specifier in
31204         declarations of local variables.
31205
31206 2003-12-18  Kelley Cook  <kcook@gcc.gnu.org>
31207
31208         * stamp-xgnatug: New stamp file.
31209         * Make-lang.in (stamp-xgnatug):  New stamp file and comment.
31210         (ada/doctools/xgnatug): Add $(build_exeext).
31211         (ada/gnat_ug_unx.texi, ada/gnat_ug_vwx.texi, ada/gnat_ug_vms.texi
31212         ada/gnat_ug_wnt.texi): Update to depend on stamp-xgnatug.
31213
31214 2003-12-17  Ed Falis  <falis@gnat.com>
31215
31216         * a-elchha.adb (Tailored_Exception_Information): made Info constant to
31217         eliminate warning.
31218
31219         * a-exextr.adb: Add context clause for
31220         Ada.Exceptions.Last_Chance_Handler.
31221
31222 2003-12-17  Sergey Rybin  <rybin@act-europe.fr>
31223
31224         * cstand.adb (Create_Standard): Change the way how the declaration of
31225         the Duration type is created (making it the same way as it is for all
31226         the other standard types).
31227
31228 2003-12-17  Robert Dewar  <dewar@gnat.com>
31229
31230         * s-crtl.ads: Fix header format
31231         Change Pure to Preelaborate
31232
31233 2003-12-17  Ed Schonberg  <schonberg@gnat.com>
31234
31235         * checks.adb (Selected_Length_Checks): Generate an Itype reference for
31236         the expression type only if it is declared in the current unit.
31237
31238         * sem_ch3.adb (Constrain_Index): Handle properly a range whose bounds
31239         are universal and already analyzed, as can occur in constrained
31240         subcomponents that depend on discriminants, when one constraint is a
31241         subtype mark.
31242
31243         * sem_res.adb (Resolve_Type_Conversion): Any arithmetic expression of
31244         type Any_Fixed is legal as the argument of a conversion, if only one
31245         fixed-point type is in context.
31246
31247 2003-12-17  GNAT Script  <nobody@gnat.com>
31248
31249         * Make-lang.in: Makefile automatically updated
31250
31251 2003-12-15  Robert Dewar  <dewar@gnat.com>
31252
31253         * exp_ch6.adb (Expand_Thread_Body): Fix error in picking up default
31254         sec stack size.
31255
31256 2003-12-15  Vincent Celier  <celier@gnat.com>
31257
31258         * gnatchop.adb: (Error_Msg): Do not exit on error for a warning
31259         (Gnatchop): Do not set failure status when reporting the number of
31260         warnings.
31261
31262 2003-12-15  Doug Rupp  <rupp@gnat.com>
31263
31264         * s-ctrl.ads: New file.
31265
31266         * Makefile.rtl (GNAT_RTL_NONTASKING_OBJS): Add s-crtl$(objext).
31267
31268         * Make-lang.in: (GNAT_ADA_OBJS): Add ada/s-crtl.o.
31269         (GNATBIND_OBJS): Add ada/s-crtl.o.
31270
31271         * Makefile.in [VMS]: Clean up ifeq rules.
31272
31273         * gnatlink.adb, 6vcstrea.adb, a-direio.adb, a-sequio.adb,
31274         a-ststio.adb, a-textio.adb, g-os_lib.adb, a-witeio.adb,
31275         g-os_lib.ads, i-cstrea.adb, i-cstrea.ads, s-direio.adb,
31276         s-fileio.adb, s-memcop.ads, s-memory.adb, s-stache.adb,
31277         s-tasdeb.adb: Update copyright.
31278         Import System.CRTL.
31279         Make minor modifications to use System.CRTL declared functions instead
31280         of importing locally.
31281
31282 2003-12-15  GNAT Script  <nobody@gnat.com>
31283
31284         * Make-lang.in: Makefile automatically updated
31285
31286 2003-12-11  Ed Falis  <falis@gnat.com>
31287
31288         * 5zinit.adb: Clean up.
31289
31290         * 5zintman.adb (Notify_Exception): replaced case statement with a call
31291         to __gnat_map_signal, imported from init.c to support
31292         signal -> exception mappings that depend on the vxWorks version.
31293
31294         * init.c:
31295         Created and exported __gnat_map_signal to support signal -> exception
31296         mapping that is dependent on the VxWorks version.
31297         Change mapping of SIGBUS from Program_Error to Storage_Error on VxWorks
31298
31299 2003-12-11  Vasiliy Fofanv  <fofanov@act-europe.fr>
31300
31301         * 5wosinte.ads: Link with -mthreads switch.
31302
31303 2003-12-11  Arnaud Charlet  <charlet@act-europe.fr>
31304
31305         * init.c (__gnat_install_handler [NetBSD]): Set
31306         __gnat_handler_installed, as done on all other platforms.
31307         Remove duplicated code.
31308
31309 2003-12-11  Jerome Guitton  <guitton@act-europe.fr>
31310
31311         * Makefile.in (rts-zfp, rts-ravenscar): Create libgnat.a.
31312
31313 2003-12-11  Thomas Quinot  <quinot@act-europe.fr>
31314
31315         * sinfo.ads: Fix inconsistent example code in comment.
31316
31317 2003-12-11  Robert Dewar  <dewar@gnat.com>
31318
31319         * a-tiinau.adb: Add a couple of comments
31320
31321         * sem_ch3.adb: Minor reformatting
31322
31323         * sem_prag.adb:
31324         Fix bad prototype of Same_Base_Type in body (code reading cleanup)
31325         Minor reformatting throughout
31326
31327 2003-12-11  Ed Schonberg  <schonberg@gnat.com>
31328
31329         * exp_ch7.adb (Establish_Transient_Scope): If the call is within the
31330         bounds of a loop, create a separate block in order to generate proper
31331         cleanup actions to prevent memory leaks.
31332
31333         * sem_res.adb (Resolve_Call): After a call to
31334         Establish_Transient_Scope, the call may be rewritten and relocated, in
31335         which case no further processing is needed.
31336
31337         * sem_util.adb: (Wrong_Type): Refine previous fix.
31338          Fixes ACATS regressions.
31339
31340         PR ada/13353
31341         * sem_prag.adb (Back_End_Cannot_Inline): A renaming_as_body can always
31342         be inlined.
31343
31344 2003-12-08  Jerome Guitton  <guitton@act-europe.fr>
31345
31346         * 5ytiitho.adb, 5zthrini.adb, 5ztiitho.adb, i-vthrea.adb,
31347         i-vthrea.ads, s-tpae65.adb, s-tpae65.ads: Cleanup: Remove a bunch of
31348         obsolete files.
31349
31350         * Makefile.in: (rts-ravenscar): Generate an empty libgnat.a.
31351         (rts-zfp): Ditto.
31352
31353 2003-12-08  Robert Dewar  <dewar@gnat.com>
31354
31355         * 7sintman.adb: Minor reformatting
31356
31357         * bindgen.adb: Configurable_Run_Time mode no longer suppresses the
31358         standard linker options to get standard libraries linked. We now plan
31359         to provide dummy versions of these libraries to match the appropriate
31360         configurable run-time (e.g. if a library is not needed at all, provide
31361         a dummy empty library).
31362
31363         * targparm.ads: Configurable_Run_Time mode no longer affects linker
31364         options (-L parameters and standard libraries). What we plan to do is
31365         to provide dummy libraries where the libraries are not required.
31366
31367         * gnatbind.adb: Minor comment improvement
31368
31369 2003-12-08  Javier Miranda  <miranda@gnat.com>
31370
31371         * exp_aggr.adb (Build_Record_Aggr_Code): Do not remove the expanded
31372         aggregate in the parent. Otherwise constants with limited aggregates
31373         are not supported. Add new formal to pass the component type (Ctype).
31374         It is required to call the corresponding IP subprogram in case of
31375         default initialized components.
31376         (Gen_Assign): In case of default-initialized component, generate a
31377         call to the IP subprogram associated with the component.
31378         (Build_Record_Aggr_Code): Remove the aggregate from the parent in case
31379         of aggregate with default initialized components.
31380         (Has_Default_Init_Comps): Improve implementation to recursively check
31381         all the present expressions.
31382
31383         * exp_ch3.ads, exp_ch3.adb (Build_Initialization_Call): Add new formal
31384         to indicate that the initialization call corresponds to a
31385         default-initialized component of an aggregate.
31386         In case of default initialized aggregate with tasks this parameter is
31387         used to generate a null string (this is just a workaround that must be
31388         improved later). In case of discriminants, this parameter is used to
31389         generate a selected component node that gives access to the discriminant
31390         value.
31391
31392         * exp_ch9.ads, exp_ch9.adb (Build_Task_Allocate_Block_With_Stmts): New
31393         subprogram, based on Build_Task_Allocate_Block, but adapted to expand
31394         allocated aggregates with default-initialized components.
31395
31396         * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Improve error message if
31397         the box notation is used in positional aggregates.
31398
31399 2003-12-08  Samuel Tardieu  <tardieu@act-europe.fr>
31400
31401         * lib.ads: Fix typo in comment
31402
31403 2003-12-08  Vincent Celier  <celier@gnat.com>
31404
31405         * prj.adb (Project_Empty): New component Unkept_Comments
31406         (Scan): Remove procedure; moved to Prj.Err.
31407
31408         * prj.ads (Project_Data): New Boolean component Unkept_Comments
31409         (Scan): Remove procedure; moved to Prj.Err.
31410
31411         * prj-dect.adb: Manage comments for the different declarations.
31412
31413         * prj-part.adb (With_Record): New component Node
31414         (Parse): New Boolean parameter Store_Comments, defaulted to False.
31415         Set the scanner to return ends of line and comments as tokens, if
31416         Store_Comments is True.
31417         (Pre_Parse_Context_Clause): Create the N_With_Clause nodes so that
31418         comments are associated with these nodes. Store the node IDs in the
31419         With_Records.
31420         (Post_Parse_Context_Clause): Use the N_With_Clause nodes stored in the
31421         With_Records.
31422         (Parse_Single_Project): Call Pre_Parse_Context_Clause before creating
31423         the N_Project node. Call Tree.Save and Tree.Reset before scanning the
31424         current project. Call Tree.Restore afterwards. Set the various nodes
31425         for comment storage (Next_End, End_Of_Line, Previous_Line,
31426         Previous_End).
31427
31428         * prj-part.ads (Parse): New Boolean parameter Store_Comments,
31429         defaulted to False.
31430
31431         * prj-pp.adb (Write_String): New Boolean parameter Truncated, defaulted
31432         to False. When Truncated is True, truncate the string, never go to the
31433         next line.
31434         (Write_End_Of_Line_Comment): New procedure
31435         (Print): Process comments for nodes N_With_Clause,
31436         N_Package_Declaration, N_String_Type_Declaration,
31437         N_Attribute_Declaration, N_Typed_Variable_Declaration,
31438         N_Variable_Declaration, N_Case_Construction, N_Case_Item.
31439         Process nodes N_Comment.
31440
31441         * prj-tree.ads, prj-tree.adb (Default_Project_Node): If it is a node
31442         without comments and there are some comments, set the flag
31443         Unkept_Comments to True.
31444         (Scan): If there are comments, set the flag Unkept_Comments to True and
31445         clear the comments.
31446         (Project_Node_Kind): Add enum values N_Comment_Zones, N_Comment
31447         (Next_End_Nodes: New table
31448         (Comment_Zones_Of): New function
31449         (Scan): New procedure; moved from Prj. Accumulate comments in the
31450         Comments table and set end of line comments, comments after, after end
31451         and before end.
31452         (Add_Comments): New procedure
31453         (Save, Restore, Seset_State): New procedures
31454         (There_Are_Unkept_Comments): New function
31455         (Set_Previous_Line_Node, Set_Previous_End_Node): New procedures
31456         (Set_End_Of_Line, Set_Next_End_Node, Remove_Next_End_Node): New
31457         procedures.
31458         (First_Comment_After, First_Comment_After_End): New functions
31459         (First_Comment_Before, First_Comment_Before_End): New functions
31460         (Next_Comment): New function
31461         (End_Of_Line_Comment, Follows_Empty_Line,
31462         Is_Followed_By_Empty_Line): New functions
31463         (Set_First_Comment_After, Set_First_Comment_After_End): New procedures
31464         (Set_First_Comment_Before, Set_First_Comment_Before_End): New procedures
31465         (Set_Next_Comment): New procedure
31466         (Default_Project_Node): Associate comment before if the node can store
31467         comments.
31468
31469         * scans.ads (Token_Type): New enumeration value Tok_Comment
31470         (Comment_Id): New global variable
31471
31472         * scng.ads, scng.adb (Comment_Is_Token): New Boolean global variable,
31473         defaulted to False.
31474         (Scan): Store position of start of comment. If comments are tokens, set
31475         Comment_Id and set Token to Tok_Comment when scanning a comment.
31476         (Set_Comment_As_Token): New procedure
31477
31478         * sinput-p.adb: Update Copyright notice
31479         (Source_File_Is_Subunit): Call Prj.Err.Scanner.Scan instead of Prj.Scan
31480         that no longer exists.
31481
31482 2003-12-08  Javier Miranda  <miranda@gnat.com>
31483
31484         * sem_aggr.adb: Add dependence on Exp_Tss package
31485         Correct typo in comment
31486         (Resolve_Aggregate): In case of array aggregates set the estimated
31487         type of the aggregate before calling resolve. This is needed to know
31488         the name of the corresponding IP in case of limited array aggregates.
31489         (Resolve_Array_Aggregate): Delay the resolution to the expansion phase
31490         in case of default initialized array components.
31491
31492         * sem_ch12.adb (Analyze_Formal_Object_Declaration): Allow limited
31493         types. Required to give support to limited aggregates in generic
31494         formals.
31495
31496 2003-12-08  Ed Schonberg  <schonberg@gnat.com>
31497
31498         * sem_ch3.adb (Check_Initialization): For legality purposes, an
31499         inlined body functions like an instantiation.
31500         (Decimal_Fixed_Point_Declaration): Do not set kind of first subtype
31501         until bounds are analyzed, to diagnose premature use of type.
31502
31503         * sem_util.adb (Wrong_Type): Improve error message when the type of
31504         the expression is used prematurely.
31505
31506 2003-12-08  GNAT Script  <nobody@gnat.com>
31507
31508         * Make-lang.in: Makefile automatically updated
31509
31510 2003-12-08  Arnaud Charlet  <charlet@act-europe.fr>
31511
31512         * sinfo.h, einfo.h, nmake.ads, nmake.adb, treeprs.ads: Removed, since
31513         they are automatically generated by Make-lang.in and cause nothing but
31514         maintenance troubles.
31515
31516 2003-12-05  Thomas Quinot  <quinot@act-europe.fr>
31517
31518         * 3ssoliop.ads: Fix comment (this is the Solaris, not the UnixWare,
31519         version of this unit).
31520
31521 2003-12-05  Olivier Hainque  <hainque@act-europe.fr>
31522
31523         * 53osinte.ads, 54osinte.ads, 55osinte.ads, 56osinte.ads, 5bosinte.ads,
31524         5cosinte.ads, 5hosinte.ads, 5iosinte.ads, 5losinte.ads,
31525         5tosinte.ads: Define the SA_SIGINFO constant, to allow references from
31526         the body of System.Interrupt_Management common to several targets.
31527         Update copyright notice when appropriate.
31528
31529         * 52osinte.ads, 5posinte.ads: Define a dummy value for the SA_SIGINFO
31530         constant.
31531
31532         * 7sintman.adb (elaboration): Set SA_SIGINFO in the sigaction flags,
31533         to ensure that the kernel fills in the interrupted context structure
31534         before calling a signal handler, which is necessary to be able to
31535         unwind past it. Update the copyright notice.
31536
31537 2003-12-05  Jerome Guitton  <guitton@act-europe.fr>
31538
31539         * a-elchha.ads: New file.
31540
31541         * a-elchha.adb: New default last chance handler. Contents taken from
31542         Ada.Exceptions.Exception_Traces.Unhandled_Exception_Terminate.
31543
31544         * a-exextr.adb (Unhandled_Exception_Terminate): Most of this routine
31545         is moved to a-elchha.adb to provide a target-independent default last
31546         chance handler.
31547
31548         * Makefile.rtl: Add a-elchha.o
31549
31550         * Make-lang.in (GNAT_ADA_OBJS, GNATBIND_OBJS): Add a-elchha.o.
31551
31552 2003-12-05  Ed Schonberg  <schonberg@gnat.com>
31553
31554         * exp_ch6.adb (Expand_Call): If the subprogram is inlined and is
31555         declared in an instance, do not inline the call if the instance is not
31556         frozen yet, to prevent order of elaboration problems.
31557
31558         * sem_prag.adb: Add comments for previous fix.
31559
31560 2003-12-05  Samuel Tardieu  <tardieu@act-europe.fr>
31561
31562         * g-table.adb: Use the right variable in Set_Item.
31563         Update copyright notice.
31564
31565 2003-12-05  Arnaud Charlet  <charlet@act-europe.fr>
31566
31567         * Makefile.in: Remove unused rules.
31568
31569 2003-12-05  Vincent Celier  <celier@gnat.com>
31570
31571         * switch-c.adb (Scan_Front_End_Switches): Remove processing of
31572         -nostdlib. Not needed here after all.
31573
31574 2003-12-03  Thomas Quinot  <quinot@act-europe.fr>
31575
31576         PR ada/11724
31577         * adaint.h, adaint.c, g-os_lib.ads:
31578         Do not assume that the offset argument to lseek(2) is a 32 bit integer,
31579         on some platforms (including FreeBSD), it is a 64 bit value.
31580         Introduce a __gnat_lseek wrapper in adaint.c to allow for portability.
31581
31582 2003-12-03  Arnaud Charlet  <charlet@act-europe.fr>
31583
31584         * gnatvsn.ads (Library_Version): Now contain only the relevant
31585         version info.
31586         (Verbose_Library_Version): New constant.
31587
31588         * g-spipat.adb, g-awk.adb, g-debpoo.adb,
31589         g-memdum.adb, g-thread.adb, s-geveop.adb, s-interr.adb,
31590         s-taskin.adb, s-tassta.adb: Make code compile with -gnatwa.
31591
31592         * gnatlbr.adb: Clean up: replace Library_Version by
31593         Verbose_Library_Version.
31594
31595         * make.adb, lib-writ.adb, exp_attr.adb:
31596         Clean up: replace Library_Version by Verbose_Library_Version.
31597
31598         * 5lintman.adb: Removed.
31599
31600         * Makefile.in:
31601         Update and simplify computation of LIBRARY_VERSION.
31602         Fix computation of GSMATCH_VERSION.
31603         5lintman.adb is no longer used: replaced by 7sintman.adb.
31604
31605 2003-12-03  Robert Dewar  <dewar@gnat.com>
31606
31607         * exp_ch5.adb:
31608         (Possible_Bit_Aligned_Component): Maybe_Bit_Aligned_Large_Component new
31609         name. Modified to consider small non-bit-packed arrays as troublesome
31610         and in need of component-by-component assigment expansion.
31611
31612 2003-12-03  Vincent Celier  <celier@gnat.com>
31613
31614         * lang-specs.h: Process nostdlib as nostdinc
31615
31616         * back_end.adb: Update Copyright notice
31617         (Scan_Compiler_Arguments): Process -nostdlib directly.
31618
31619 2003-12-03  Jose Ruiz  <ruiz@act-europe.fr>
31620
31621         * Makefile.in:
31622         When defining LIBGNAT_TARGET_PAIRS for bare board targets, remove the
31623         redundant inclusion of EXTRA_HIE_NONE_TARGET_PAIRS, which is always
31624         included in HIE_NONE_TARGET_PAIRS.
31625
31626 2003-12-03  Ed Schonberg  <schonberg@gnat.com>
31627
31628         * sem_attr.adb:
31629         (Legal_Formal_Attribute): Attribute is legal in an inlined body, as it
31630         is legal in an instance, because legality is cheched in the template.
31631
31632         * sem_prag.adb:
31633         (Analyze_Pragma, case Warnings): In an inlined body, the pragma may be
31634         appplied to an unchecked conversion of a formal parameter.
31635
31636         * sem_warn.adb:
31637         (Output_Unreferenced_Messages): Suppress "not read" warnings on imported
31638         variables.
31639
31640 2003-12-03  Olivier Hainque  <hainque@act-europe.fr>
31641
31642         * tb-alvms.c (unwind_regular_code, unwind_kernel_handler): New
31643         routines. The second one is new functionality to deal with backtracing
31644         through signal handlers.
31645         (unwind): Split into the two separate subroutines above.
31646         Update the documentation, and deal properly with sizeof (REG) different
31647         from sizeof (void*).
31648
31649 2003-12-01  Nicolas Setton  <setton@act-europe.fr>
31650
31651         * a-except.adb (Raise_Current_Excep): Add a pragma Inspection_Point,
31652         so that the debugger can reliably access the value of the parameter,
31653         and therefore is able to display the exception name when an exception
31654         breakpoint is reached.
31655
31656 2003-12-01  Thomas Quinot  <quinot@act-europe.fr>
31657
31658         * fmap.adb: Fix typo in warning message.
31659
31660         * g-socket.ads, g-socket.adb: Make Free a visible instance of
31661         Ada.Unchecked_Deallocation (no need to wrap it in a subprogram).
31662
31663 2003-12-01  Vincent Celier  <celier@gnat.com>
31664
31665         * mlib-prj.adb (Build_Library.Process): Do not check a withed unit if
31666         ther is no Afile.
31667         (Build_Library): Get the switches only if Default_Switches is declared
31668         in package Binder.
31669
31670 2003-12-01  Ed Schonberg  <schonberg@gnat.com>
31671
31672         * exp_ch6.adb (Expand_Actuals): When applying validity checks to
31673         actuals that are indexed components, reanalyze actual to ensure that
31674         packed array references are properly expanded.
31675
31676         * sem_ch5.adb (Diagnose_Non_Variable_Lhs): Add special case for
31677         attempted assignment to a discriminant.
31678
31679 2003-12-01  Robert Dewar  <dewar@gnat.com>
31680
31681         * rtsfind.adb, exp_ch4.adb, s-exnint.ads, s-exnint.adb: Minor
31682         reformatting.
31683
31684         * switch-c.adb: Minor reformatting of comments
31685
31686 2003-12-01  Arnaud Charlet  <charlet@act-europe.fr>
31687
31688         * Makefile.in: Clean ups.
31689
31690 2003-12-01  GNAT Script  <nobody@gnat.com>
31691
31692         * Make-lang.in: Makefile automatically updated
31693
31694 2003-12-01  Arnaud Charlet  <charlet@act-europe.fr>
31695
31696         * 5wsystem.ads: Disable zero cost exception, not ready yet.
31697
31698 2003-11-29  Ulrich Weigand  <uweigand@de.ibm.com>
31699
31700         * Make-lang.in (nmake.ads): Add dependency on ada/nmake.adb
31701         to force serialization.
31702
31703 2003-11-26  Thomas Quinot  <quinot@act-europe.fr>
31704
31705         * g-socket.ads, g-socket.adb:
31706         Clarify documentation of function Stream. Introduce a Free procedure
31707         to release the returned Stream once it becomes unused.
31708
31709         * 5asystem.ads: For Alpha Tru64, enable ZCX by default.
31710
31711 2003-11-26  Arnaud Charlet  <charlet@act-europe.fr>
31712
31713         (Cond_Timed_Wait): Introduce new constant Time_Out_Max,
31714         since NT 4 cannot handle timeout values that are too large,
31715         e.g. DWORD'Last - 1.
31716
31717 2003-11-26  Ed Schonberg  <schonberg@gnat.com>
31718
31719         * exp_ch4.adb:
31720         (Expand_N_Slice): Recognize all cases of slices that appear as actuals
31721         in procedure calls and whose expansion must be deferred.
31722
31723         * exp_ch6.adb (Add_Call_By_Copy_Node): Remove previous fix. Proper fix
31724         is in exp_ch4.
31725
31726         * sem_ch3.adb:
31727         (Build_Derived_Array_Type): Create operator for unconstrained type
31728         if ancestor is unconstrained.
31729
31730 2003-11-26  Vincent Celier  <celier@gnat.com>
31731
31732         * make.adb (Project_Object_Directory): New global variable
31733         (Change_To_Object_Directory): New procedure
31734         (Collect_Arguments_And_Compile): Call Change_To_Object_Directory instead
31735         of Change_Dir directly. Do not change working directory to object
31736         directory of main project after each compilation.
31737         (Gnatmake): Use Change_To_Object_Directory instead of Change_Dir
31738         directly.
31739         Change to object directory of main project before binding step.
31740         (Initialize): Initialize Project_Object_Directory to No_Project
31741
31742         * mlib-prj.adb:
31743         (Build_Library): Take into account Builder'Default_Switches ("Ada") when
31744         binding a Stand-Alone Library.
31745
31746         * output.adb: Update Copyright notice
31747         (Write_Char): Output buffer when full
31748
31749 2003-11-26  Robert Dewar  <dewar@gnat.com>
31750
31751         * sem_ch13.adb: (Check_Size): Reset size if size is too small
31752
31753         * sem_ch13.ads:
31754         (Check_Size): Fix documentation to include bit-packed array case
31755
31756         * sem_res.adb: Implement restriction No_Direct_Boolean_Operators
31757
31758         * s-rident.ads: Put No_Direct_Boolean_Operators in proper order
31759
31760         * s-rident.ads: Add new restriction No_Direct_Boolean_Operators
31761
31762 2003-11-24  Arnaud Charlet  <charlet@act-europe.fr>
31763
31764         PR ada/13142
31765         * utils.c (init_gigi_decls): Change name of built-in setjmp to
31766         __builtin_setjmp, since this is apparently needed by recent
31767         non Ada changes.
31768
31769 2003-11-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
31770
31771         * adadecode.c: Only include ctype.h if not IN_GCC.
31772         (__gnat_decode): Use ISDIGIT from safe-ctype.h.
31773
31774 2003-11-24  Jose Ruiz  <ruiz@act-europe.fr>
31775
31776         * Makefile.in:
31777         Use 5zintman.ads for VxWorks targets. This file avoid confusion between
31778         signals and interrupts.
31779
31780         * 5zintman.ads: New File.
31781
31782         * 5zintman.adb: Replace Exception_Interrupts by Exception_Signals, and
31783         add exception signals to the set of unmasked signals.
31784
31785         * 5ztaprop.adb:
31786         Use Abort_Task_Signal instead of Abort_Task_Interrupt to avoid confusion
31787         between signals and interrupts.
31788         Add to Unblocked_Signal_Mask the set of signals that are in
31789         Keep_Unmasked.
31790
31791         * 7sinmaop.adb:
31792         Adding a check to see whether the Interrupt_ID we want to unmask is in
31793         the range of Keep_Unmasked (in procedure Interrupt_Self_Process). The
31794         reason is that the index type of the Keep_Unmasked array is not always
31795         Interrupt_ID; it may be a subtype of Interrupt_ID.
31796
31797 2003-11-24  Gary Dismukes  <dismukes@gnat.com>
31798
31799         * exp_util.adb:
31800         (Remove_Side_Effects): Condition constantness of object created for a
31801          an unchecked type conversion on the constantness of the expression
31802          to ensure the correct value for 'Constrained when passing components
31803          of view-converted class-wide objects.
31804
31805 2003-11-24  Robert Dewar  <dewar@gnat.com>
31806
31807         * par-load.adb (Load): Improve handling of misspelled and missing units
31808         Removes several cases of compilation abandoned messages
31809
31810         * lib.adb: (Remove_Unit): New procedure
31811
31812         * lib.ads: (Remove_Unit): New procedure
31813
31814         * lib-load.adb: Minor reformatting
31815
31816 2003-11-24  Vincent Celier  <celier@gnat.com>
31817
31818         * make.adb:
31819         (Gnatmake, Initialize): Call Usage instead of Makeusg directly
31820         (Marking_Label): Label to mark processed source files. Incremented for
31821         each executable.
31822         (Gnatmake): Increase Marking_Labet for each executable
31823         (Is_Marked): Compare against marking label
31824         (Mark): Mark with marking label
31825
31826 2003-11-24  Jerome Guitton  <guitton@act-europe.fr>
31827
31828         * s-thread.ads:
31829         Move the declaration of the TSD for System.Threads to System.Soft_Links.
31830         Add some comments.
31831
31832         * Makefile.in: Added target pair for s-thread.adb for cert runtime.
31833         (rts-cert): build a single relocatable object for the run-time lib.
31834         Fix perms.
31835
31836 2003-11-24  Vasiliy Fofanov  <fofanov@act-europe.fr>
31837
31838         * Make-lang.in:
31839         Use gnatls rather than gcc to obtain the location of GNAT RTL for
31840         crosstools build.
31841
31842 2003-11-24  Sergey Rybin  <rybin@act-europe.fr>
31843
31844         * opt.adb (Tree_Write): Gnat_Version_String is now a function, so we
31845         can not use it as before (that is, as a variable) when dumping it into
31846         the tree file. Add a local variable to store the result of this
31847         function and to be used as the string to be written into the tree.
31848
31849         * scn.adb (Initialize_Scanner): Add comments explaining the recent
31850         changes.
31851
31852         * sinput.adb (Source_First, Source_Last): In case of
31853         Internal_Source_File, replace returning attributes of
31854         Internal_Source_Ptr (which is wrong) with returning attributes of
31855         Internal_Source.
31856
31857 2003-11-24  Ed Schonberg  <schonberg@gnat.com>
31858
31859         * sem_ch3.adb:
31860         (New_Concatenation_Op): Proper name for New_Binary_Operator, only
31861         used for implicit concatenation operators.
31862         Code cleanup.
31863
31864         * sem_elab.adb:
31865         (Check_Elab_Call): Set No_Elaboration_Check appropriately on calls in
31866         task bodies that are in the scope of a Suppress pragma.
31867         (Check_A Call): Use the flag to prevent spurious elaboration checks.
31868
31869         * sinfo.ads, sinfo.adb:
31870         New flag No_Elaboration_Check on function/procedure calls, to properly
31871         suppress checks on calls in task bodies that are within a local suppress
31872         pragma.
31873
31874         * exp_ch4.adb:
31875         (Expand_Concatenate_Other): Use the proper integer type for the
31876         expression for the upper bound, to avoid universal_integer computations
31877         when possible.
31878
31879 2003-11-21  Kelley Cook  <kcook@gcc.gnu.org>
31880
31881         * .cvsignore: Delete.
31882
31883 2003-11-21  Andreas Schwab  <schwab@suse.de>
31884
31885         * 55system.ads: Set ZCX_By_Default and GCC_ZCX_Support to True.
31886
31887 2003-11-21  Vasiliy Fofanov  <fofanov@act-europe.fr>
31888
31889         * 5wsystem.ads: Enable zero cost exception.
31890
31891 2003-11-21  Jerome Guitton  <guitton@act-europe.fr>
31892
31893         * 5ztiitho.adb: Remove an unreferenced variable.
31894
31895 2003-11-21  Thomas Quinot  <quinot@act-europe.fr>
31896
31897         * adaint.c: For FreeBSD, use mkstemp.
31898
31899 2003-11-21  Arnaud Charlet  <charlet@act-europe.fr>
31900
31901         * gnatlbr.adb: Now reference Gnat_Static_Version_String.
31902
31903 2003-11-21  Robert Dewar  <dewar@gnat.com>
31904
31905         * bld.adb: Remove useless USE of gnatvsn
31906
31907         * gnatchop.adb: Minor reformatting
31908         Clean up version handling to be more consistent
31909
31910         * gnatxref.adb: Minor reformatting
31911
31912         * gprcmd.adb: Minor reformatting
31913         Fix output of copyright to be more consistent with other tools
31914
31915 2003-11-21  Vincent Celier  <celier@gnat.com>
31916
31917         * make.adb (Scan_Make_Args): Do not transmit --RTS= to gnatlink
31918
31919 2003-11-21  Sergey Rybin  <rybin@act-europe.fr>
31920
31921         * atree.adb (Initialize): Add initializations for global variables
31922         used in New_Copy_Tree.
31923
31924         * cstand.adb (Create_Standard): Add call to Initialize_Scanner (with
31925         Internal_Source_File as the actual).
31926         Put the set of statements creating Any_Character before the set of
31927         statements creating Any_Array to have Any_Character fully initialized
31928         when it is used in creating Any_Array.
31929
31930         * scn.adb (Initialize_Scanner): Do not set Comes_From_Source ON and do
31931         not call Scan in case if the actual is Internal_Source_File
31932         Add 2003 to copyright note.
31933
31934         * sinput.adb (Source_First, Source_Last, Source_Text): Add code for
31935         processing Internal_Source_File.
31936
31937         * types.ads: Add the constant Internal_Source_File representing the
31938         source buffer for artificial source-code-like strings created within
31939         the compiler (the definition of Source_File_Index is changed).
31940
31941 2003-11-20  Arnaud Charlet  <charlet@act-europe.fr>
31942
31943         * 35soccon.ads, 45intnam.ads, 55osinte.adb, 55osinte.ads,
31944         56system.ads: New file, FreeBSD version.
31945
31946 2003-11-20  Joseph S. Myers  <jsm@polyomino.org.uk>
31947
31948         * Make-lang.in (ada.extraclean): Delete.
31949
31950 2003-11-19  Arnaud Charlet  <charlet@act-europe.fr>
31951
31952         * gnatmem.adb: Clean up verbose output.
31953
31954         * gprcmd.adb: Change copyright to FSF.
31955
31956 2003-11-19  Vincent Celier  <celier@gnat.com>
31957
31958         * symbols.adb: (Initialize): New parameters Reference, Symbol_Policy
31959         and Version (ignored).
31960
31961         * symbols.ads: (Policy): New type
31962         (Initialize): New parameter Reference, Symbol_Policy and
31963         Library_Version.
31964         Remove parameter Force.
31965         Minor reformatting.
31966
31967         * snames.ads, snames.adbadb: New standard names
31968         Library_Reference_Symbol_File and Library_Symbol_Policy
31969
31970         * mlib-prj.adb:
31971         (Build_Library): Call Build_Dinamic_Library with the Symbol_Data of the
31972         project.
31973
31974         * mlib-tgt.adb:
31975         (Build_Dynamic_Library): New parameter Symbol_Data (ignored)
31976
31977         * mlib-tgt.ads: (Build_Dynamic_Library): New parameter Symbol_Data
31978
31979         * prj.adb: (Project_Empty): New component Symbol_Data
31980
31981         * prj.ads: (Policy, Symbol_Record): New types
31982         (Project_Data): New component Symbol_Data
31983
31984         * prj-attr.adb:
31985         New attributes Library_Symbol_File, Library_Symbol_Policy and
31986         Library_Reference_Symbol_File.
31987
31988         * prj-nmsc.adb:
31989         (Ada_Check): When project is a Stand-Alone library project, process
31990         attribute Library_Symbol_File, Library_Symbol_Policy and
31991         Library_Reference_Symbol_File.
31992
31993         * 5aml-tgt.adb, 5bml-tgt.adb, 5gml-tgt.adb, 5hml-tgt.adb,
31994         5wml-tgt.adb, 5zml-tgt.adb, 5lml-tgt.adb,
31995         5sml-tgt.adb (Build_Dynamic_Library): New parameter
31996         Symbol_Data (ignored).
31997
31998         * 5vml-tgt.adb (VMS_Options): Remove --for-linker=gsmatch=equal,1,0
31999         (Build_Dynamic_Library): New parameter Symbol_Data. New internal
32000         functions Option_File_Name and Version_String. Set new options of
32001         gnatsym related to symbol file, symbol policy and reference symbol
32002         file.
32003
32004         * 5vsymbol.adb:
32005         Extensive modifications to take into account the reference symbol file,
32006         the symbol policy, the library version and to put in the symbol file the
32007         minor and major IDs.
32008
32009         * bld.adb (Process_Declarative_Items): Put second argument of
32010         gprcmd to_absolute between single quotes, to avoid problems with
32011         Windows.
32012
32013         * bld-io.adb: Update Copyright notice.
32014         (Flush): Remove last character of a line, if it is a back slash, to
32015         avoid make problems.
32016
32017         * gnatsym.adb:
32018         Implement new scheme with reference symbol file and symbol policy.
32019
32020         * g-os_lib.ads: (Is_Directory): Clarify comment
32021
32022 2003-11-19  Robert Dewar  <dewar@gnat.com>
32023
32024         * atree.adb: Move New_Copy_Tree global variables to head of package
32025
32026         * errout.adb: Minor reformatting
32027
32028 2003-11-19  Javier Miranda  <miranda@gnat.com>
32029
32030         * sem_ch4.adb: (Diagnose_Call): Improve error message.
32031         Add reference to Ada0Y (AI-50217)
32032
32033         * sem_ch6.adb, sem_ch8.adb, sem_type.adb,
32034         sem_util.adb: Add reference to AI-50217
32035
32036         * sinfo.ads: (N_With_Clause): Document fields referred to AI-50217
32037
32038         * sprint.adb: Add reference to Ada0Y (AI-50217, AI-287)
32039
32040         * sem_aggr.adb: Complete documentation of AI-287 changes
32041
32042         * par-ch4.adb: Document previous changes.
32043
32044         * lib-load.adb, lib-writ.adb, einfo.ads, par-ch10.adb,
32045         sem_cat.adb, sem_ch3.adb, sem_ch10.adb, sem_ch12.adb: Add references to
32046         Ada0Y (AI-50217)
32047
32048         * exp_aggr.adb: Add references to AI-287 in previous changes
32049
32050 2003-11-19  Ed Schonberg  <schonberg@gnat.com>
32051
32052         * exp_ch6.adb:
32053         (Add_Call_By_Copy_Node): Do not original node of rewritten expression
32054         in the rewriting is the result of an inlined call.
32055
32056         * exp_ch6.adb (Add_Call_By_Copy_Node): If actual for (in-)out
32057         parameter is a type conversion, use original node to construct the
32058         post-call assignment, because expression may have been rewritten, e.g.
32059         if it is a packed array.
32060
32061         * sem_attr.adb:
32062         (Resolve_Attribute, case 'Constrained): Attribute is legal in an inlined
32063         body, just as it is in an instance.
32064         Categorization routines
32065
32066         * sem_ch12.adb (Analyze_Association, Instantiate_Formal_Subprogram,
32067         Instantiate_Object): Set proper sloc reference for message on missing
32068         actual.
32069
32070 2003-11-19  Thomas Quinot  <quinot@act-europe.fr>
32071
32072         * Makefile.in: Add FreeBSD libgnat pairs.
32073
32074         * usage.adb: Fix typo in usage message.
32075
32076 2003-11-19  Jerome Guitton  <guitton@act-europe.fr>
32077
32078         * Makefile.in: On powerpc-wrs-vxworksae: Add s-thread.ad?,
32079         s-thrini.ad? and s-tiitho.adb to the full runtime, to support the
32080         pragma Thread_Body.
32081         Remove i-vthrea.ad? and s-tpae65.ad?, not needed anymore.
32082
32083         * s-thread.adb: This file is now a dummy implementation of
32084         System.Thread.
32085
32086 2003-11-19  Sergey Rybin  <rybin@act-europe.fr>
32087
32088         * rtsfind.adb (Initialize): Add initialization for RTE_Is_Available
32089
32090 2003-11-19  Emmanuel Briot  <briot@act-europe.fr>
32091
32092         * xref_lib.adb (Parse_Identifier_Info): Add handling of generic
32093         instanciation references in the parent type description.
32094
32095 2003-11-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
32096
32097         * ada-tree.def: (ALLOCATE_EXPR): Class is "2", not "s".
32098
32099         * decl.c (gnat_to_gnu_entity, case E_Floating_Point_Subtype): Set
32100         TYPE_PRECISION directly from esize.
32101
32102 2003-11-18  Thomas Quinot  <quinot@act-europe.fr>
32103
32104         * cstreams.c:
32105         Use realpath(3) on FreeBSD. Fix typo in comment while we are at it.
32106
32107         * init.c: Initialization routines for FreeBSD
32108
32109         * link.c: Link info for FreeBSD
32110
32111         * sysdep.c: Add the case of FreeBSD
32112
32113 2003-11-17  Jerome Guitton  <guitton@act-europe.fr>
32114
32115         * 5zthrini.adb: Remove the call to Init_RTS at elaboration, as it is
32116         already called in System.Threads.
32117
32118         * 5ztiitho.adb (Initialize_Task_Hooks): Remove the registration of the
32119         environment task, as it has been moved to System.Threads.Initialization.
32120
32121 2003-11-17  Arnaud Charlet  <charlet@act-europe.fr>
32122
32123         * adaint.c (__gnatlib_install_locks): Only reference
32124         __gnat_install_locks on VMS, since other platforms can avoid using
32125         --enable-threads=gnat
32126
32127 2003-11-17  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
32128
32129         * ada-tree.h: (TYPE_IS_PACKED_ARRAY_TYPE_P): New macro.
32130
32131         * decl.c (gnat_to_gnu_entity, case E_Array_Subtype): Set
32132         TYPE_PACKED_ARRAY_TYPE_P.
32133         (validate_size): Do not verify size if TYPE_IS_PACKED_ARRAY_TYPE_P.
32134
32135         Part of PR ada/12806
32136         * utils.c (float_type_for_precision): Renamed from float_type_for_size.
32137         Use GET_MODE_PRECISION instead of GET_MODE_BITSIZE.
32138
32139 2003-11-17  Vincent Celier  <celier@gnat.com>
32140
32141         * gnatchop.adb (Error_Msg): New Boolean parameter Warning, defaulted
32142         to False.
32143         Do not set exit status to Failure when Warning is True.
32144         (Gnatchop): Make errors "no compilation units found" and
32145         "no source files written" warnings only.
32146
32147         * make.adb (Gnatmake): When using a project file, set
32148         Look_In_Primary_Dir to False.
32149         (Configuration_Pragmas_Switch): Check for Global_Configuration_Pragmas
32150         and Local_Configuration_Pragmas in the project where they are declared
32151         not an extending project which might have inherited them.
32152
32153         * osint.adb (Locate_File): If Name is already an absolute path, do not
32154         look for a directory.
32155
32156         * par-ch10.adb (P_Compilation_Unit): If source contains no token, and
32157         -gnats (Check_Syntax) is used, issue only a warning, not an error.
32158
32159         * prj.adb (Register_Default_Naming_Scheme): Add new component Project
32160         in objects of type Variable_Value.
32161
32162         * prj.ads: (Variable_Value): New component Project
32163
32164         * prj-nmsc.adb (Ada_Check.Warn_If_Not_Sources): No warning if source
32165         is in a project extended by Project.
32166
32167         * prj-proc.adb (Add_Attributes): New parameter Project. Set component
32168         Project of Variable_Values to this new parameter value.
32169         (Expression): Set component Project of Variable_Values.
32170         (Process_Declarative_Items): Call Add_Attributes with parameter Project.
32171         Set the component Project in array elements.
32172
32173 2003-11-17  Sergey Rybin  <rybin@act-europe.fr>
32174
32175         * errout.adb: (Initialize): Add initialization for error nodes.
32176
32177         * sem_ch12.adb (Initialize): Add missing initializations for
32178         Exchanged_Views and Hidden_Entities.
32179
32180 2003-11-17  Ed Schonberg  <schonberg@gnat.com>
32181
32182         * sem_ch12.adb (Copy_Generic_Node): Preserve entity when copying an
32183         already instantiated tree for use in subsequent inlining.
32184         (Analyze_Associations, Instantiate_Formal_Subprogram,
32185         Instantiate_Object): improve error message for mismatch in
32186         instantiations.
32187
32188         * sem_ch6.adb (Build_Body_To_Inline): Major cleanup to handle
32189         instantiations of subprograms declared in instances.
32190
32191 2003-11-17  Javier Miranda  <miranda@gnat.com>
32192
32193         * sem_ch4.adb (Analyze_Allocator): Previous modification must be
32194         executed only under the Extensions_Allowed flag.
32195
32196 2003-11-17  Robert Dewar  <dewar@gnat.com>
32197
32198         * a-exexda.adb (Address_Image): Fix documentation to indicate leading
32199         zeroes suppressed.
32200         (Address_Image): Fix bug of returning 0x instead of 0x0
32201         Minor reformatting (function specs).
32202
32203         * einfo.ads: Minor fix for documentation of Is_Bit_Packed_Array
32204         (missed case of 33-63)
32205
32206         * freeze.adb, sem_ch13.adb: Properly check size of packed bit array
32207
32208         * s-thread.adb: Add comments for pragma Restriction
32209
32210         * exp_aggr.adb, g-debuti.adb, par-ch4.adb, sem_aggr.adb,
32211         sem_ch6.adb, sprint.adb, xref_lib.adb: Minor reformatting
32212
32213 2003-11-17  Ed Falis  <falis@gnat.com>
32214
32215         * s-thread.adb: Added No_Tasking restriction for this implementation.
32216
32217 2003-11-17  Emmanuel Briot  <briot@act-europe.fr>
32218
32219         * xref_lib.adb (Parse_Identifier_Info): Add handling of generic
32220         instanciation references in the parent type description.
32221
32222 2003-11-17  GNAT Script  <nobody@gnat.com>
32223
32224         * Make-lang.in: Makefile automatically updated
32225
32226 2003-11-16  Jason Merrill  <jason@redhat.com>
32227
32228         * Make-lang.in (ada.tags): Create TAGS.sub files in each directory
32229         and TAGS files that include them for each front end.
32230
32231 2003-11-14  Andreas Jaeger  <aj@suse.de>
32232
32233         * lang.opt: Change -Wno-long-long to -Wlong-long since the latter
32234         is the canonical version.
32235         * misc.c (gnat_handle_option): Likewise.
32236
32237         * Makefile.in (LIBGNAT_TARGET_PAIRS): Add rules for x86_64-linux.
32238
32239         * 5nsystem.ads: New file for x86_64-linux-gnu.
32240
32241 2003-11-14  Arnaud Charlet  <charlet@act-europe.fr>
32242
32243         * nmake.ads, nmake.adb, sinfo.h, treeprs.ads: Regenerated.
32244
32245         * comperr.adb: Fix logic in previous change.
32246
32247 2003-11-13  Vincent Celier  <celier@gnat.com>
32248
32249         * 5bml-tgt.adb (Build_Dynamic_Library): Use
32250         Osint.Include_Dir_Default_Prefix instead of
32251         Sdefault.Include_Dir_Default_Name.
32252
32253         * gnatlbr.adb: Update Copyright notice
32254         (Gnatlbr): : Use Osint.Include_Dir_Default_Prefix instead of
32255         Sdefault.Include_Dir_Default_Name and Osint.Object_Dir_Default_Prefix
32256         instead of Sdefault.Object_Dir_Default_Name
32257
32258         * gnatlink.adb:
32259         (Process_Binder_File): Never suppress the option following -Xlinker
32260
32261         * mdll-utl.adb:
32262         (Gcc): Use Osint.Object_Dir_Default_Prefix instead of
32263         Sdefault.Object_Dir_Default_Name.
32264
32265         * osint.ads, osint.adb:
32266         (Include_Dir_Default_Prefix, Object_Dir_Default_Prefix): New functions
32267         Minor reformatting.
32268
32269         * vms_conv.ads: Minor reformating
32270         Remove GNAT STANDARD and GNAT PSTA
32271
32272         * vms_conv.adb:
32273         Allow GNAT MAKE to have several files on the command line.
32274         (Init_Object_Dirs): Use Osint.Object_Dir_Default_Prefix instead of
32275         Sdefault.Object_Dir_Default_Name.
32276         Minor Reformating
32277         Remove data for GNAT STANDARD
32278
32279         * vms_data.ads:
32280         Add new compiler qualifier /PRINT_STANDARD (-gnatS)
32281         Remove data for GNAT STANDARD
32282         Remove options and documentation for -gnatwb/-gnatwB: these warning
32283         options no longer exist.
32284
32285 2003-11-13  Ed Falis  <falis@gnat.com>
32286
32287         * 5zthrini.adb: (Init_RTS): Made visible
32288
32289         * 5zthrini.adb:
32290         (Register): Removed unnecessary call to taskVarGet that checked whether
32291          an ATSD was already set as a task var for the argument thread.
32292
32293         * s-thread.adb:
32294         Updated comment to reflect that this is a VxWorks version
32295         Added context clause for System.Threads.Initialization
32296         Added call to System.Threads.Initialization.Init_RTS
32297
32298 2003-11-13  Jerome Guitton  <guitton@act-europe.fr>
32299
32300         * 5zthrini.adb:
32301         (Init_RTS): New procedure, for the initialization of the run-time lib.
32302
32303         * s-thread.adb:
32304         Remove dependancy on System.Init, so that this file can be used in the
32305         AE653 sequential run-time lib.
32306
32307 2003-11-13  Robert Dewar  <dewar@gnat.com>
32308
32309         * bindgen.adb: Minor reformatting
32310
32311 2003-11-13  Ed Schonberg  <schonberg@gnat.com>
32312
32313         * checks.adb:
32314         (Apply_Discriminant_Check): Do no apply check if target type is derived
32315         from source type with no applicable constraint.
32316
32317         * lib-writ.adb:
32318         (Ensure_System_Dependency): Do not apply the style checks that may have
32319         been specified for the main unit.
32320
32321         * sem_ch8.adb:
32322         (Find_Selected_Component): Further improvement in error message, with
32323         RM reference.
32324
32325         * sem_res.adb:
32326         (Resolve): Handle properly the case of an illegal overloaded protected
32327         procedure.
32328
32329 2003-11-13  Javier Miranda  <miranda@gnat.com>
32330
32331         * exp_aggr.adb:
32332         (Has_Default_Init_Comps): New function to check the presence of
32333         default initialization in an aggregate.
32334         (Build_Record_Aggr_Code): Recursively expand the ancestor in case of
32335         extension aggregate of a limited record. In addition, a new formal
32336         was added to do not initialize the record controller (if any) during
32337         this recursive expansion of ancestors.
32338         (Init_Controller): Add support for limited record components.
32339         (Expand_Record_Aggregate): In case of default initialized components
32340         convert the aggregate into a set of assignments.
32341
32342         * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Update the comment
32343         describing the new syntax.
32344         Nothing else needed to be done because this subprogram delegates part of
32345         its work to P_Precord_Or_Array_Component_Association.
32346         (P_Record_Or_Array_Component_Association): Give support to the new
32347         syntax for default initialization of components.
32348
32349         * sem_aggr.adb:
32350         (Resolve_Aggregate): Relax the strictness of the frontend in case of
32351         limited aggregates.
32352         (Resolve_Record_Aggregate): Give support to default initialized
32353         components.
32354         (Get_Value): In case of default initialized components, duplicate
32355         the corresponding default expression (from the record type
32356         declaration). In case of default initialization in the *others*
32357         choice, do not check that all components have the same type.
32358         (Resolve_Extension_Aggregate): Give support to limited extension
32359         aggregates.
32360
32361         * sem_ch3.adb:
32362         (Check_Initialization): Relax the strictness of the front-end in case
32363         of aggregate and extension aggregates. This test is now done in
32364         Get_Value in a per-component manner.
32365
32366         * sem_ch4.adb (Analyze_Allocator): Don't post an error if the
32367         expression corresponds to a limited aggregate. This test is now done
32368         in Get_Value.
32369
32370         * sinfo.ads, sinfo.adb (N_Component_Association): Addition of
32371         Box_Present flag.
32372
32373         * sprint.adb (Sprint_Node_Actual): Modified to print an mbox if
32374         present in an N_Component_Association node
32375
32376 2003-11-13  Thomas Quinot  <quinot@act-europe.fr>
32377
32378         * sem_ch9.adb (Analyze_Accept_Statement): A procedure hides a
32379         type-conformant entry only if they are homographs.
32380
32381 2003-11-13  GNAT Script  <nobody@gnat.com>
32382
32383         * Make-lang.in: Makefile automatically updated
32384
32385 2003-11-12  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
32386
32387         * adadecode.c: Use <> form of include for ctype.h.
32388         * sysdep.c [IN_RTS]: Use <> form of include for time.h.
32389
32390 2003-11-12  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
32391
32392         * 5gsystem.ads (Functions_Return_By_DSP): Set to False.
32393         Works around PR middle-end/6552.
32394
32395 2003-11-10  Ed Falis  <falis@gnat.com>
32396
32397         * 5ytiitho.adb: (procStartHookAdd): Definition and call deleted
32398
32399         * 5zinit.adb: (Install_Handler): Moved back to spec
32400         (Install_Signal_Handlers): Deleted
32401
32402         * 5zthrini.adb: Added context clause for System.Storage_Elements
32403         (Register): Only handles creation of taskVar; initialization moved to
32404         Thread_Body_Enter.
32405         (Reset_TSD): Deleted; replaced by Thread_Body_Enter
32406         Added declaration of environment task secondary stack and
32407         initialization.
32408
32409         * s-thread.adb: Implement bodies for thread body processing
32410
32411         * s-thread.ads:
32412         Added comment identifying supported targets for pragma Thread_Body.
32413
32414 2003-11-10  Pascal Obry  <obry@gnat.com>
32415
32416         * adaint.c (_gnat_stat) [WIN32]: Check if name is not bigger than
32417         GNAT_MAX_PATH_LEN.
32418
32419         * s-fileio.adb:
32420         (Open): Properly check for string length before copying into the buffer.
32421         Raises Name_Error if buffer is too small. Note that this was a potential
32422         buffer overflow.
32423
32424 2003-11-10  Romain Berrendonner  <berrendo@act-europe.fr>
32425
32426         * bindgen.adb, comperr.adb: Code clean ups.
32427         * gnatvsn.ads, gnatvsn.adb (Get_Gnat_Version_Type): New function.
32428
32429 2003-11-10  Sergey Rybin  <rybin@act-europe.fr>
32430
32431         * gnat1drv.adb: Add call to Sem_Elim.Initialize.
32432
32433 2003-11-10  Vincent Celier  <celier@gnat.com>
32434
32435         * gprcmd.adb:
32436         (Gprcmd): Add new command "prefix" to get the prefix of the GNAT
32437         installation.
32438
32439         * make.adb (Scan_Make_Arg): Transmit -nostdlib to the compiler
32440
32441         * prj.adb: (Project_Empty): Add new boolean component Virtual
32442
32443         * prj.ads: (Virtual_Prefix): New constant string
32444         (Project_Data): New boolean component Virtual
32445
32446         * prj-nmsc.adb (Language_Independent_Check): Adjust error message when
32447         a library project is extended by a virtual extending project.
32448
32449         * prj-part.adb:
32450         Modifications throughout to implement extending-all project, including:
32451         (Virtual_Hash, Processed_Hash): New hash tables
32452         (Create_Virtual_Extending_Project): New procedure
32453         (Look_For_Virtual_Projects_For): New procedure
32454
32455         * prj-proc.adb:
32456         (Process): After checking the projects, if main project is an
32457         extending-all project, set the object directory of all virtual extending
32458         project to the object directory of the main project.
32459         Adjust error message when a virtual extending project has the same
32460         object directory as an project being extended.
32461         (Recursive_Process): If name starts with the virtual prefix, set Virtual
32462         to True in the project data.
32463
32464         * prj-tree.adb:
32465         (Default_Project_Node): Add new boolean component Extending_All
32466         (Is_Extending_All): New function
32467         (Set_Is_Extending_All): New procedure
32468
32469         * prj-tree.ads: (Is_Extending_All): New function
32470         (Set_Is_Extending_All): New procedure
32471         (Project_Node_Record): New boolean component Extending_All
32472
32473         * switch-c.adb: (Scan_Front_End_Switches): Process -nostdlib
32474
32475         * vms_data.ads:
32476         Add qualifier /NOSTD_LIBRARIES (-nostdlib) for the compiler
32477
32478         * bld.adb (Recursive_Process): If MAKE_ROOT is not defined, call
32479         "gprcmd prefix" to define it.
32480
32481 2003-11-10  Thomas Quinot  <quinot@act-europe.fr>
32482
32483         * einfo.ads: Fix a typo and remove an extraneous word in comments.
32484
32485         * lib-load.adb:
32486         (Create_Dummy_Package_Unit): Set the scope of the entity for the
32487         created dummy package to Standard_Standard, not to itself, to
32488         defend other parts of the front-end against encoutering a cycle in
32489         the scope chain.
32490
32491         * sem_ch10.adb:
32492         (Analyze_With_Clause): When setting the entities for the successive
32493         N_Expanded_Names that constitute the name of a child unit, do not
32494         attempt to go further than Standard_Standard in the chain of scopes.
32495         This case arises from the placeholder units created by
32496         Create_Dummy_Package_Unit in the case of a with_clause for a
32497         nonexistent child unit.
32498
32499 2003-11-10  Ed Schonberg  <schonberg@gnat.com>
32500
32501         * exp_ch6.adb:
32502         (Expand_Thread_Body): Place subprogram on scope stack, so that new
32503         declarations are given the proper scope.
32504
32505         * sem_ch13.adb:
32506         (Check_Expr_Constants): Reject an expression that contains a constant
32507         created during expansion, and that appears after the object to which
32508         the address clause applies.
32509
32510         * sem_ch5.adb (Check_Controlled_Array_Attribute): Subsidiary of
32511         Analyze_Iteration_Scheme, to rewrite a loop parameter specification
32512         that uses 'Range of a function call with controlled components, so
32513         that the function result can be finalized before starting the loop.
32514
32515         * sem_ch8.adb:
32516         (Find_Selected_Component): Improve error message when prefix is
32517         an implicit dereference of an incomplete type.
32518
32519 2003-11-10  Robert Dewar  <dewar@gnat.com>
32520
32521         * opt.ads: New Print_Standard flag for -gnatS switch
32522
32523         * sem_ch13.adb: Remove some additional checks for unaligned arrays
32524
32525         * cstand.adb (Create_Standard): Print out package standard if -gnatS
32526         switch set
32527
32528         * debug.adb: Update doc for -gnatds to discuss relationship with new
32529         -gnatS flag
32530
32531         * sinfo.adb: Add new field Entity_Or_Associated_Node
32532
32533         * sinfo.ads: Add new field Entity_Or_Associated_Node
32534         Update documentation for Associated_Node and Entity fields to clarify
32535         relationship and usage.
32536
32537         * sprint.adb:
32538         (Write_Id): Properly process Associated_Node field in generic template
32539
32540         * switch-c.adb:
32541         Recognize new -gnatS switch for printing package Standard
32542         This replaces gnatpsta
32543
32544         * usage.adb:
32545         Add line for  new -gnatS switch for printing package Standard
32546         This replaces gnatpsta
32547
32548 2003-11-10  Andreas Jaeger  <aj@suse.de>
32549
32550         * 7sosprim.adb: tv_usec of struct_timeval and time_t are long
32551         integer.
32552
32553 2003-11-10  Arnaud Charlet  <charlet@act-europe.fr>
32554
32555         * misc.c, lang.opt: Add handling of -nostdlib, now recognized/needed
32556         by gnat1.
32557
32558 2003-11-10  Arnaud Charlet  <charlet@act-europe.fr>
32559
32560         * Makefile.in, Make-lang.in: Remove build of gnat_wrapper and gnatpsta,
32561         no longer needed.
32562
32563         * gnatpsta.adb, gnat_wrapper.adb: Removed, no longer needed.
32564
32565         * sysdep.c: Add handling of cygwin.
32566
32567 2003-11-10  GNAT Script  <nobody@gnat.com>
32568
32569         * Make-lang.in: Makefile automatically updated
32570
32571 2003-11-10  Arnaud Charlet  <charlet@act-europe.fr>
32572
32573         PR 12950
32574         * osint.ads, osint.adb (Relocate_Path, Executable_Suffix): New
32575         functions. Used to handle dynamic prefix relocation, via set_std_prefix.
32576         Replace GNAT_ROOT by GCC_ROOT.
32577
32578         * Make-lang.in: Use new function Relocate_Path to generate sdefault.adb
32579
32580 2003-11-06  Zack Weinberg  <zack@codesourcery.com>
32581
32582         * misc.c (fp_prec_to_size, fp_size_to_prec): Use GET_MODE_PRECISION
32583         and update for changed meaning of GET_MODE_BITSIZE.
32584
32585 2003-11-04  Doug Rupp  <rupp@gnat.com>
32586
32587         * sysdep.c: Problem discovered during IA64 VMS port.
32588         [VMS] #include <unixio.h> to get proper prototypes.
32589
32590         * adaint.c:
32591         Issues discovered/problems fixed during IA64 VMS port.
32592         [VMS] #define _POSIX_EXIT for proper semantics.
32593         [VMS] #include <unixio.h> for proper prototypes.
32594         [VMS] (fork): #define IA64 version.
32595         (__gnat_os_exit): Remove unnecessary VMS specific code.
32596
32597 2003-11-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
32598
32599         Part of PR ada/12806
32600         * ada-tree.h (TYPE_DIGITS_VALUE, SET_TYPE_DIGITS_VALUE): Save count as
32601         tree, not integer.
32602
32603         * decl.c:
32604         (gnat_to_gnu_entity, case E_Floating_Point_Type): Save count as tree,
32605         not integer.
32606
32607         * targtyps.c, decl.c, misc.c,
32608         gigi.h (fp_prec_to_size, fp_size_to_prec): Temporary
32609         routines to work around change in FP sizing semantics in GCC.
32610
32611         * utils.c:
32612         (build_vms_descriptor): TYPE_DIGITS_VALUE is tree, not integer.
32613
32614         * gigi.h: (enumerate_modes): New function.
32615
32616         * Make-lang.in: (ada/misc.o): Add real.h.
32617
32618         * misc.c: (enumerate_modes): New function.
32619
32620 2003-11-04  Robert Dewar  <dewar@gnat.com>
32621
32622         * 3vtrasym.adb: Minor reformatting
32623         Use terminology encoded/decoded name, rather than C++ specific notion
32624         of mangling (this is the terminology used throughout GNAT).
32625
32626         * einfo.h: Regenerated
32627
32628         * einfo.ads, einfo.adb: Add new flag Is_Thread_Body
32629
32630         * exp_ch6.adb:
32631         (Expand_N_Subprogram_Body): Handle expansion of thread body procedure
32632
32633         * par-prag.adb: Add dummy entry for Thread_Body pragma
32634
32635         * rtsfind.ads:
32636         Add entries for System.Threads entities for thread body processing
32637
32638         * sem_attr.adb:
32639         (Analyze_Pragma, Access attributes): Check these are not applied to a
32640         thread body, since this is not permitted
32641
32642         * sem_prag.adb: Add processing for Thread_Body pragma.
32643         Minor comment fix.
32644
32645         * sem_res.adb:
32646         (Resolve_Call): Check for incorrect attempt to call a thread body
32647          procedure with a direct call.
32648
32649         * snames.ads, snames.adb: Add entry for Thread_Body pragma
32650         Add names associated with thread body expansion
32651
32652         * snames.h: Add entry for Thread_Body pragma
32653
32654         * s-thread.adb: Add entries for thread body processing
32655         These are dummy bodies so far
32656
32657         * s-thread.ads: Add documentation on thread body handling.
32658         Add entries for thread body processing.
32659
32660 2003-11-04  Javier Miranda  <miranda@gnat.com>
32661
32662         * sem_ch10.adb:
32663         (Build_Limited_Views): Return after posting an error in case of limited
32664         with_clause on subprograms, generics, instances or generic renamings
32665         (Install_Limited_Withed_Unit): Do nothing in case of limited with_clause
32666         on subprograms, generics, instances or generic renamings
32667
32668 2003-11-04  Arnaud Charlet  <charlet@act-europe.fr>
32669
32670         * raise.c (setup_to_install): Correct mistake in last revision; two
32671         arguments out of order.
32672
32673         * trans.c, cuintp.c, argv.c, aux-io.c, cal.c, errno.c, exit.c,
32674         gnatbl.c, init.c, stringt.h, utils.c, utils2.c: Update copyright
32675         notice, missed in previous change.
32676         Remove trailing blanks and other style errors introduced in previous
32677         change.
32678
32679 2003-11-04  Olivier Hainque  <hainque@act-europe.fr>
32680
32681         * decl.c (gnat_to_gnu_field): Adjust the conditions under which we get
32682         rid of the wrapper for a LJM type, ensuring we don't do that if the
32683         field is addressable.  This avoids potential low level type view
32684         mismatches later on, for instance in a by-reference argument passing
32685         process.
32686
32687 2003-11-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
32688
32689         * decl.c (gnat_to_gnu_field): No longer check for BLKmode being
32690         aligned at byte boundary.
32691
32692 2003-11-04  Joel Brobecker  <brobecker@gnat.com>
32693
32694         * decl.c (components_to_record): Do not delete the empty variants from
32695         the end of the union type.
32696
32697 2003-11-04  Ed Schonberg  <schonberg@gnat.com>
32698
32699         * exp_ch4.adb (Expand_N_Op_Eq): Use base type when locating primitive
32700         operation for a derived type, an explicit declaration may use a local
32701         subtype of Boolean.
32702
32703 2003-11-04  Vincent Celier  <celier@gnat.com>
32704
32705         * make.adb (Gnatmake): Allow main sources on the command line with a
32706         library project when it is only for compilation (no binding or
32707         linking).
32708
32709 2003-11-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
32710
32711         * Makefile.in: Remove many duplicate variables.
32712
32713 2003-11-03  Kelley Cook  <kcook@gcc.gnu.org>
32714
32715         * Make-lang.in (dvi): Move targets to $(docobjdir).
32716         (gnat_ug_vms.dvi): Simplify rule and adjust target.
32717         (gnat_ug_wnt.dvi): Likewise.
32718         (gnat_ug_unx.dvi): Likewise.
32719         (gnat_ug_vxw.dvi): Likewise.
32720         (gnat_rm.dvi): Likewise.
32721         (gnat-style.dvi): Likewise.
32722
32723 2003-10-31  Kelley Cook  <kcook@gcc.gnu.org>
32724
32725         * gigi.h: Missed commit from update for C90.
32726
32727 2003-10-31  Kelley Cook  <kcook@gcc.gnu.org>
32728
32729         * Makefile.in (ada/b_gnat1.o): Compile with -Wno-error.
32730
32731 2003-10-31  Andreas Schwab  <schwab@suse.de>
32732
32733         * raise.c (get_action_description_for): Fix typo in last change.
32734
32735 2003-10-31  Nathanael Nerode  <neroden@gcc.gnu.org>
32736
32737         PR ada/12761
32738         * ada/Make-lang.in: Move default definitions of X_ADA_CFLAGS,
32739         T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS from here to master Makefile.in.
32740
32741 2003-10-30  Kelley Cook  <kcook@gcc.gnu.org>
32742
32743         * adadecode.c, adaint.c, argv.c, aux-io.c, cal.c, cio.c, cstreams.c,
32744         ctrl_c.c, cuintp.c, decl.c, errno.c, exit.c, expect.c, final.c,
32745         gigi.h, gmem.c, gnatbl.c, init.c, misc.c, mkdir.c, raise.c, socket.c,
32746         sysdep.c, sysdep.c, targtyps.c, tb-alvms.c, tb-alvxw.c, tracebak.c,
32747         trans.c, utils.c, utils2.c: Convert function prototypes to C90.
32748
32749 2003-10-30  Vasiliy Fofanov  <fofanov@act-europe.fr>
32750
32751         * 3vtrasym.adb:
32752         Demangle Ada symbols returned by TBK$SYMBOLIZE. Correctly align line
32753         numbers when symbol name is too long.
32754
32755 2003-10-30  Ed Falis  <falis@gnat.com>
32756
32757         * g-signal.ads, g-signal.adb: New files
32758
32759         * impunit.adb: (Non_Imp_File_Names): Added "g-signal"
32760
32761         * Makefile.rtl: Introduce GNAT.Signals
32762
32763 2003-10-30  Robert Dewar  <dewar@gnat.com>
32764
32765         * freeze.adb: Minor reformatting
32766
32767         * lib-writ.adb (Write_ALI): Never write ali file if -gnats is specified
32768
32769         * par.adb, par-ch12.adb, par-ch13.adb, par-ch2.adb, par-ch3.adb,
32770         par-ch5.adb, par-ch6.adb, par-ch9.adb, par-util.adb:
32771         New handling of Id_Check parameter to improve recognition of keywords
32772         used as identifiers.
32773         Update copyright notice to include 2003
32774
32775 2003-10-29  Robert Dewar  <dewar@gnat.com>
32776
32777         * 3vtrasym.adb, 5vtraent.ads, sprint.adb,
32778         sem_ch10.adb: Minor reformatting
32779
32780         * exp_ch5.adb (Expand_Assign_Array): Test for bit unaligned operands
32781         (Expand_Assign_Record): Test right hand side for bit unaligned as well
32782
32783 2003-10-29  Vasiliy Fofanov  <fofanov@act-europe.fr>
32784
32785         * 3vtrasym.adb, 5vtraent.adb, 5vtraent.ads, tb-alvms.c:
32786         Support for TBK$SYMBOLIZE-based symbolic traceback.
32787
32788 2003-10-29  Jose Ruiz  <ruiz@act-europe.fr>
32789
32790         * exp_disp.adb:
32791         Revert previous change, that did not work well when pragma No_Run_Time
32792         was used in conjunction with a run-time other than ZFP.
32793
32794 2003-10-29  Vincent Celier  <celier@gnat.com>
32795
32796         * make.adb:
32797         (Gnatmake): When there are no Ada mains in attribute Main, disable the
32798          bind and link steps only is switch -z is not used.
32799
32800 2003-10-29  Arnaud Charlet  <charlet@act-europe.fr>
32801
32802         * Makefile.generic: Remove duplicated setting of CC.
32803
32804         * Makefile.prolog: Set CC to gcc by default, to override make's
32805         default (cc).
32806
32807         * einfo.h: Regenerated.
32808
32809 2003-10-29  Ed Schonberg  <schonberg@gnat.com>
32810
32811         * sem_ch10.adb (Analyze_Subunit): Restore state of suppress flags for
32812         current body, after compiling subunit.
32813
32814         * itypes.adb (Create_Itype): In ASIS_Mode, do not freeze the itype
32815         when in deleted code, because gigi needs properly ordered freeze
32816         actions to annotate types.
32817
32818         * freeze.adb (Is_Fully_Defined): Predicate must be recursive, to
32819         prevent the premature freezing of record type that contains
32820         subcomponents with a private type that does not yet have a completion.
32821
32822 2003-10-29  Javier Miranda  <miranda@gnat.com>
32823
32824         * sem_ch12.adb:
32825         (Analyze_Package_Instantiation): Check that instances can not be used in
32826         limited with_clauses.
32827
32828         * sem_ch8.adb:
32829         (Analyze_Package_Renaming): Check that limited withed packages cannot
32830         be renamed. Improve text on error messages related to limited
32831         with_clauses.
32832
32833         * einfo.adb, einfo.ads: Remove Non_Limited_Views attribute.
32834
32835         * sprint.adb: (Sprint_Node_Actual): Print limited with_clauses.
32836         Update copyright notice.
32837
32838         * sem_ch10.adb: (Build_Limited_Views): Complete its documentation.
32839         (Install_Limited_Context_Clauses): New subprogram that isolates all the
32840         checks required for limited context_clauses and installs the limited
32841         view.
32842         (Install_Limited_Withed_Unit): Complete its documentation.
32843         (Analyze_Context): Check that limited with_clauses are only allowed in
32844         package specs.
32845         (Install_Context): Call Install_Limited_Context_Clauses after the
32846         parents have been installed.
32847         (Install_Limited_Withed_Unit): Add documentation. Mark the installed
32848         package as 'From_With_Type'; this mark indicates that the limited view
32849         is installed. Used to check bad usages of limited with_clauses.
32850         (Build_Limited_Views): Do not add shadow entities to the scope's list
32851         of entities. Do not add real entities to the Non_Limited_Views chain.
32852         Improve error notification.
32853         (Remove_Context_Clauses): Remove context clauses in two phases:
32854         limited views first and regular views later (to maintain the
32855         stack model).
32856         (Remove_Limited_With_Clause): If the package is analyzed then reinstall
32857         its visible entities.
32858
32859 2003-10-29  Thomas Quinot  <quinot@act-europe.fr>
32860
32861         * sem_type.adb (Specific_Type): Type Universal_Fixed is compatible
32862         with any type that Is_Fixed_Point_Type.
32863
32864         * sinfo.ads: Fix documentation for Associated_Node attribute.
32865
32866 2003-10-29  Sergey Rybin  <rybin@act-europe.fr>
32867
32868         * switch-c.adb (Scan_Front_End_Switches): ASIS_Mode is set now when
32869         both '-gnatc' and '-gnatt' are specified.
32870
32871         * atree.adb (Initialize): Add initialization for Node_Count (set to
32872         zero).
32873
32874 2003-10-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
32875
32876         * decl.c (gnat_to_gnu_entity, case E_Subprogram): If no return value,
32877         do not consider as Pure.
32878
32879         Part of implementation of function-at-a-time:
32880
32881         * trans.c (gnat_to_gnu_code): If IS_STMT, call expand_expr_stmt.
32882         (tree_transform): Add new argument to build_component_ref.
32883         (tree_transform, case N_Assignment_Statement): Make and return an
32884         EXPR_STMT.
32885         (tree_transform): If result IS_STMT, set flags and return it.
32886         (gnat_expand_stmt, set_lineno_from_sloc): New functions.
32887
32888         * utils2.c (build_simple_component_ref, build_component_ref): Add new
32889         arg, NO_FOLD_P.
32890         (build_binary_op, case EQ_EXPR): Pass additional arg to it.
32891         (build_allocator): Likewise.
32892
32893         * utils.c (convert_to_fat_pointer, convert_to_thin_pointer, convert):
32894         Add new arg to build_component_ref.
32895         (maybe_unconstrained_array, unchecked_convert): Likewise.
32896
32897         * ada-tree.def (EXPR_STMT): New code.
32898
32899         * ada-tree.h (IS_STMT, TREE_SLOC, EXPR_STMT_EXPR): New macros.
32900
32901         * decl.c (gnat_to_gnu_entity, case object): Add extra arg to
32902         build_component_ref calls.
32903
32904         * misc.c (gnat_expand_expr): If IS_STMT, call gnat_expand_stmt.
32905
32906         * gigi.h (gnat_expand_stmt, set_lineno_from_sloc): New functions.
32907         (build_component_ref): Add new argument, NO_FOLD_P.
32908
32909 2003-10-27  Arnaud Charlet  <charlet@act-europe.fr>
32910
32911         * Makefile.generic: Add missing substitution on object_deps handling.
32912
32913         PR ada/5909
32914         * Make-lang.in (check-ada): Enable ACATS test suite.
32915
32916 2003-10-27  Robert Dewar  <dewar@gnat.com>
32917
32918         * exp_ch3.adb:
32919         (Freeze_Array_Type): We do not need an initialization routine for types
32920         derived from String or Wide_String. They should be treated the same
32921         as String and Wide_String themselves. This caused problems with the
32922         use of Initialize_Scalars.
32923
32924         * exp_ch5.adb:
32925         (Expand_Assign_Record): Do component-wise assignment of non-byte aligned
32926         composites. This allows use of component clauses that are not byte
32927         aligned.
32928
32929         * sem_prag.adb:
32930         (Analyze_Pragma, case Pack): Generate warning and ignore pack if there
32931         is an attempt to pack an array of atomic objects.
32932
32933         * make.adb, prj-env.adb, prj-env.ads: Minor reformatting
32934
32935 2003-10-27  Pascal Obry  <obry@gnat.com>
32936
32937         * g-dirope.adb:
32938         (Basename): Check for drive letters in a pathname only on DOS based OS.
32939
32940 2003-10-27  Vincent Celier  <celier@gnat.com>
32941
32942         * make.adb:
32943         (Gnatmake): When unable to change dir to the object dir, display the
32944         content of the parent dir of the obj dir, to try to understand why this
32945         happens.
32946
32947 2003-10-27  GNAT Script  <nobody@gnat.com>
32948
32949         * Make-lang.in: Makefile automatically updated
32950
32951 2003-10-27  Ed Schonberg  <schonberg@gnat.com>
32952
32953         * sem_ch12.adb:
32954         (Inline_Instance_Body): Indicate that the save/restore of use_clauses
32955         should not be done in Save/Restore_Scope_Stack, because it is performed
32956         locally.
32957
32958         * sem_ch8.adb:
32959         (Save_Scope_Stack, Restore_Scope_Stack): Add parameter to indicate
32960         whether use clauses should be removed/restored.
32961
32962         * sem_ch8.ads:
32963         (Save_Scope_Stack, Restore_Scope_Stack): Add parameter to indicate
32964         whether use clauses should be removed/restored.
32965
32966 2003-10-26  Andreas Jaeger  <aj@suse.de>
32967
32968         * Makefile.in: Remove duplicated lines.
32969
32970 2003-10-24  Arnaud Charlet  <charlet@act-europe.fr>
32971
32972         * gnatvsn.ads (Gnat_Static_Version_String): New constant, used to
32973         minimize the differences with ACT tree.
32974
32975         * gnatkr.adb, gnatlink.adb, gnatls.adb, gnatmake.adb,
32976         gnatprep.adb, gnatpsta.adb, gnatvsn.ads: Take advantage of
32977         Gnatvsn.Gnat_Static_Version_String to reduce differences between
32978         ACT and FSF trees.
32979
32980 2003-10-24  Pascal Obry  <obry@gnat.com>
32981
32982         PR ada/12014
32983         * adadecode.c (ostrcpy): New function.
32984         (__gnat_decode): Use ostrcpy of strcpy.
32985         (has_prefix): Set first parameter a const.
32986         (has_suffix): Set first parameter a const.
32987         Update copyright notice. Fix source name in header.
32988         Removes a trailing space.
32989
32990 2003-10-24  Jose Ruiz  <ruiz@act-europe.fr>
32991
32992         * exp_disp.adb:
32993         Remove the test against being in No_Run_Time_Mode before generating a
32994         call to Register_Tag. It is redundant with the test against the
32995         availability of the function Register_Tag.
32996
32997 2003-10-24  Vincent Celier  <celier@gnat.com>
32998
32999         * g-catiio.adb: (Month_Name): Correct spelling of February
33000
33001         * make.adb: (Mains): New package
33002         (Initialize): Call Mains.Delete
33003         (Gnatmake): Check that each main on the command line is a source of a
33004         project file and, if there are several mains, each of them is a source
33005         of the same project file.
33006         (Gnatmake): When a foreign language is specified in attribute Languages,
33007         no main is specified on the command line and attribute Mains is not
33008         empty, only build the Ada main. If there is no Ada main, just compile
33009         the Ada sources and their closure.
33010         (Gnatmake): If a main is specified on the command line with directory
33011         information, check that the source exists and, if it does, that the path
33012         is the actual path of a source of a project.
33013
33014         * prj-env.adb:
33015         (File_Name_Of_Library_Unit_Body): New Boolean parameter Full_Path. When
33016         Full_Path is True, return the full path instead of the simple file name.
33017         (Project_Of): New function
33018
33019         * prj-env.ads:
33020         (File_Name_Of_Library_Unit_Body): New Boolean parameter Full_Path,
33021         defaulted to False.
33022         (Project_Of): New function
33023
33024 2003-10-24  Arnaud Charlet  <charlet@act-europe.fr>
33025
33026         * Makefile.generic:
33027         Ensure objects of main project are always checked and rebuilt if needed.
33028         Set CC to gcc by default.
33029         Prepare new handling of link by creating a global archive (not activated
33030         yet).
33031
33032         * adadecode.h, atree.h, elists.h, nlists.h, raise.h,
33033         stringt.h: Update copyright notice. Remove trailing blanks.
33034         Fix source name in header.
33035
33036 2003-10-24  Robert Dewar  <dewar@gnat.com>
33037
33038         * sem_ch12.adb: Minor reformatting
33039
33040         * sem_ch3.adb:
33041         Minor reformatting (including new function return style throughout)
33042
33043         * sem_ch3.ads:
33044         Minor reformatting (including new function return style throughout)
33045
33046 2003-10-24  Arnaud Charlet  <charlet@act-europe.fr>
33047
33048         * adadecode.h, atree.h, elists.h, nlists.h, raise.h,
33049         stringt.h: Update copyright notice. Remove trailing blanks.
33050         Fix source name in header.
33051
33052 2003-10-24  GNAT Script  <nobody@gnat.com>
33053
33054         * Make-lang.in: Makefile automatically updated
33055
33056 2003-10-23  Nathanael Nerode  <neroden@gcc.gnu.org>
33057
33058         * adadecode.h, atree.h, elists.h, namet.h, nlists.h, raise.h,
33059         stringt.h: Convert to ISO C90 declarations and definitions.
33060
33061 2003-10-23  Thomas Quinot  <quinot@act-europe.fr>
33062
33063         PR ada/11978
33064         * exp_ch13.adb (Expand_N_Freeze_Entity): Do not consider inherited
33065         External_Tag attribute definition clauses.
33066
33067 2003-10-23  Ed Schonberg  <schonberg@gnat.com>
33068
33069         PR ada/7613
33070         * exp_dbug.adb (Debug_Renaming_Declaration): For the renaming of a
33071         child unit, generate a fully qualified name to avoid spurious errors
33072         when the context contains renamings of different child units with
33073         the same simple name.
33074
33075         * exp_dbug.ads: Add documentation on name qualification for renamings
33076         of child units.
33077
33078 2003-10-23  Robert Dewar  <dewar@gnat.com>
33079
33080         * g-regpat.ads, g-regpat.adb: Minor reformatting
33081
33082 2003-10-23  Jose Ruiz  <ruiz@act-europe.fr>
33083
33084         * Makefile.in: Use the file 1atags.ads with the ZFP and cert run-times.
33085
33086 2003-10-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
33087
33088         * trans.c: (tree_transform, case N_Real_Literal): Add extra arg to
33089         Machine call.
33090
33091         * urealp.h: (Machine): Update to proper definition.
33092
33093 2003-10-23  Arnaud Charlet  <charlet@act-europe.fr>
33094
33095         * init.c, adaint.c: Minor reformatting.
33096
33097 2003-10-23  Danny Smith  <dannysmith@users.sourceforge.net>
33098
33099         * adaint.c (w32_epoch_offset): Define static const at file level.
33100         (win32_filetime): Replace offset with w32_epoch_offset. Use NULL
33101         rather than t_create, t_access in call to GetFileTime. Use union
33102         to convert between FILETIME and  unsigned long long.
33103         (__gnat_file_time_name): Test for invalid file handle.
33104         (__gnat_set_filetime_name): Support win32 targets using
33105         w32api SetFileTime.
33106
33107 2003-10-22  Danny Smith  <dannysmith@users.sourceforge.net>
33108
33109         * sysdep.c: Include conio.h if __MINGW32__ and !OLD_MINGW.
33110
33111         * ctrl_c.c (__gnat_int_handler): Remove declaration.
33112
33113         * decl.c (creat_concat_name):  Const-ify prefix.
33114
33115         * adaint.c: Include ctype.h if __MINGW32__.
33116         (__gnat_readlink): Mark arguments as possibly unused.
33117         (__gnat_symlink): Likewise.
33118         (__gnat_is_symbolic_link): Likewise.
33119         (__gnat_portable_spawn): Likewise.  Cast last arg of spawnvp to match
33120         declaration
33121         (__gnat_file_time_name): Don't declare struct stat statbuf when
33122         not needed.
33123         (__gnat_is_absolute_path): Add parenthesis around condition of
33124         'if' statement to avoid warning.
33125         (__gnat_plist_init): Specify void as parameter.
33126         (plist_enter): Likewise.
33127         (plist_leave): Likewise.
33128         (remove_handle): Make static. Initialize prev.
33129
33130 2003-10-22  Arnaud Charlet  <charlet@act-europe.fr>
33131
33132         PR ada/10110
33133         * Makefile.in: Disable build of gnatpsta.
33134         * cstreams.c (__gnat_full_name): Minor improvements and clean up
33135         of previous change.
33136
33137 2003-10-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
33138
33139         * tracebak.c (MAX): Avoid redefinition warning.
33140
33141         * init.c [sgi] (__gnat_error_handler): Remove i, unused.
33142         Change msg to const char *.
33143         (__gnat_install_handler): Remove ss, unused.
33144         [sun && __SVR4 && !__vxworks] (__gnat_error_handler): Change msg
33145         to const char *.
33146         * cstreams.c (__gnat_full_name): Declare p only when used.
33147         (__gnat_full_name) [sgi] Return buffer.
33148
33149 2003-10-22  Arnaud Charlet  <charlet@act-europe.fr>
33150
33151         * mingw32.h: New file.
33152         * gnat_wrapper.adb: New file.
33153
33154 2003-10-22  Jerome Roussel  <roussel@act-europe.fr>
33155
33156         * g-regpat.ads, g-regpat.adb (Match): new function, to know if a
33157         string match a pre compiled regular expression (the corresponding
33158         version of the function working on a raw regular expression)
33159         Fix typos in various comments
33160         Update copyright notice in spec
33161
33162 2003-10-21  Gary Dismukes  <dismukes@gnat.com>
33163
33164         * exp_ch3.adb:
33165         (Component_Needs_Simple_Initialization): Return False when the type is a
33166         packed bit array. Revise spec comments to document this case.
33167
33168         * exp_prag.adb:
33169         (Expand_Pragma_Import): Set any expression on the imported object to
33170         empty to avoid initializing imported objects (in particular this
33171         covers the case of zero-initialization of bit arrays).
33172         Update copyright notice.
33173
33174 2003-10-21  Ed Schonberg  <schonberg@gnat.com>
33175
33176         * sem_ch12.adb:
33177         (Load_Parent_Of_Generic): If parent is compilation unit, stop search,
33178         a subunit is missing.
33179         (Instantiate_Subprogram_Body): If body of function is missing, set type
33180         of return expression explicitly in dummy body, to prevent cascaded
33181         errors when a subunit is missing.
33182         Fixes PR 5677.
33183
33184         * sem_ch3.adb:
33185         (Access_Subprogram_Declaration): Verify that return type is valid.
33186         Fixes PR 8693.
33187
33188         * sem_elab.adb:
33189         (Check_Elab_Calls): Do not apply elaboration checks if the main unit is
33190         generic.
33191         Fixes PR 12318.
33192
33193         * sem_util.adb:
33194         (Corresponding_Discriminant): If the scope of the discriminant is a
33195         private type without discriminant, use its full view.
33196         Fixes PR 8247.
33197
33198 2003-10-21  Arnaud Charlet  <charlet@act-europe.fr>
33199
33200         * 3psoccon.ads, 3veacodu.adb, 3vexpect.adb, 3vsoccon.ads,
33201         3vsocthi.adb, 3vsocthi.ads, 3vtrasym.adb, 3zsoccon.ads,
33202         3zsocthi.adb, 3zsocthi.ads, 50system.ads, 51system.ads,
33203         55system.ads, 56osinte.adb, 56osinte.ads, 56taprop.adb,
33204         56taspri.ads, 56tpopsp.adb, 57system.ads, 58system.ads,
33205         59system.ads, 5aml-tgt.adb, 5bml-tgt.adb, 5csystem.ads,
33206         5dsystem.ads, 5fosinte.adb, 5gml-tgt.adb, 5hml-tgt.adb,
33207         5isystem.ads, 5lparame.adb, 5msystem.ads, 5psystem.ads,
33208         5sml-tgt.adb, 5sosprim.adb, 5stpopsp.adb, 5tsystem.ads,
33209         5usystem.ads, 5vml-tgt.adb, 5vsymbol.adb, 5vtraent.adb,
33210         5vtraent.ads, 5wml-tgt.adb, 5xparame.ads, 5xsystem.ads,
33211         5xvxwork.ads, 5yparame.ads, 5ytiitho.adb, 5zinit.adb,
33212         5zml-tgt.adb, 5zparame.ads, 5ztaspri.ads, 5ztfsetr.adb,
33213         5zthrini.adb, 5ztiitho.adb, 5ztpopsp.adb, 7stfsetr.adb,
33214         7straces.adb, 7strafor.adb, 7strafor.ads, 7stratas.adb,
33215         a-excach.adb, a-exexda.adb, a-exexpr.adb, a-exextr.adb,
33216         a-exstat.adb, a-strsup.adb, a-strsup.ads, a-stwisu.adb,
33217         a-stwisu.ads, bld.adb, bld.ads, bld-io.adb,
33218         bld-io.ads, clean.adb, clean.ads, ctrl_c.c,
33219         erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
33220         err_vars.ads, final.c, g-arrspl.adb, g-arrspl.ads,
33221         g-boubuf.adb, g-boubuf.ads, g-boumai.ads, g-bubsor.adb,
33222         g-bubsor.ads, g-comver.adb, g-comver.ads, g-ctrl_c.ads,
33223         g-dynhta.adb, g-dynhta.ads, g-eacodu.adb, g-excact.adb,
33224         g-excact.ads, g-heasor.adb, g-heasor.ads, g-memdum.adb,
33225         g-memdum.ads, gnatclean.adb, gnatsym.adb, g-pehage.adb,
33226         g-pehage.ads, g-perhas.ads, gpr2make.adb, gpr2make.ads,
33227         gprcmd.adb, gprep.adb, gprep.ads, g-semaph.adb,
33228         g-semaph.ads, g-string.adb, g-string.ads, g-strspl.ads,
33229         g-wistsp.ads, i-vthrea.adb, i-vthrea.ads, i-vxwoio.adb,
33230         i-vxwoio.ads, Makefile.generic, Makefile.prolog, Makefile.rtl,
33231         prep.adb, prep.ads, prepcomp.adb, prepcomp.ads,
33232         prj-err.adb, prj-err.ads, s-boarop.ads, s-carsi8.adb,
33233         s-carsi8.ads, s-carun8.adb, s-carun8.ads, s-casi16.adb,
33234         s-casi16.ads, s-casi32.adb, s-casi32.ads, s-casi64.adb,
33235         s-casi64.ads, s-casuti.adb, s-casuti.ads, s-caun16.adb,
33236         s-caun16.ads, s-caun32.adb, s-caun32.ads, s-caun64.adb,
33237         s-caun64.ads, scng.adb, scng.ads, s-exnint.adb,
33238         s-exnllf.adb, s-exnlli.adb, s-expint.adb, s-explli.adb,
33239         s-geveop.adb, s-geveop.ads, s-hibaen.ads, s-htable.adb,
33240         s-htable.ads, sinput-c.adb, sinput-c.ads, s-memcop.ads,
33241         socket.c, s-purexc.ads, s-scaval.adb, s-stopoo.adb,
33242         s-strcom.adb, s-strcom.ads, s-strxdr.adb, s-rident.ads,
33243         s-thread.adb, s-thread.ads, s-tpae65.adb, s-tpae65.ads,
33244         s-tporft.adb, s-traent.adb, s-traent.ads, styleg.adb,
33245         styleg.ads, styleg-c.adb, styleg-c.ads, s-veboop.adb,
33246         s-veboop.ads, s-vector.ads, symbols.adb, symbols.ads,
33247         tb-alvms.c, tb-alvxw.c, tempdir.adb, tempdir.ads,
33248         vms_conv.ads, vms_conv.adb, vms_data.ads,
33249         vxaddr2line.adb: Files added. Merge with ACT tree.
33250
33251         * 4dintnam.ads, 4mintnam.ads, 4uintnam.ads, 52system.ads,
33252         5dosinte.ads, 5etpopse.adb, 5mosinte.ads, 5qosinte.adb,
33253         5qosinte.ads, 5qstache.adb, 5qtaprop.adb, 5qtaspri.ads,
33254         5stpopse.adb, 5uintman.adb, 5uosinte.ads, adafinal.c,
33255         g-enblsp.adb, io-aux.c, scn-nlit.adb, scn-slit.adb,
33256         s-exnflt.ads, s-exngen.adb, s-exngen.ads, s-exnlfl.ads,
33257         s-exnlin.ads, s-exnsfl.ads, s-exnsin.ads, s-exnssi.ads,
33258         s-expflt.ads, s-expgen.adb, s-expgen.ads, s-explfl.ads,
33259         s-explin.ads, s-expllf.ads, s-expsfl.ads, s-expsin.ads,
33260         s-expssi.ads, style.adb: Files removed. Merge with ACT tree.
33261
33262         * 1ic.ads, 31soccon.ads, 31soliop.ads, 3asoccon.ads,
33263         3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3ssoccon.ads,
33264         3ssoliop.ads, 3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads,
33265         3wsoliop.ads, 41intnam.ads, 42intnam.ads, 4aintnam.ads,
33266         4cintnam.ads, 4gintnam.ads, 4hexcpol.adb, 4hintnam.ads,
33267         4lintnam.ads, 4nintnam.ads, 4ointnam.ads, 4onumaux.ads,
33268         4pintnam.ads, 4sintnam.ads, 4vcaldel.adb, 4vcalend.adb,
33269         4vintnam.ads, 4wexcpol.adb, 4wintnam.ads, 4zintnam.ads,
33270         51osinte.adb, 51osinte.ads, 52osinte.adb, 52osinte.ads,
33271         53osinte.ads, 54osinte.ads, 5aosinte.adb, 5aosinte.ads,
33272         5asystem.ads, 5ataprop.adb, 5atasinf.ads, 5ataspri.ads,
33273         5atpopsp.adb, 5avxwork.ads, 5bosinte.adb, 5bosinte.ads,
33274         5bsystem.ads, 5cosinte.ads, 5esystem.ads, 5fintman.adb,
33275         5fosinte.ads, 5fsystem.ads, 5ftaprop.adb, 5ftasinf.ads,
33276         5ginterr.adb, 5gintman.adb, 5gmastop.adb, 5gosinte.ads,
33277         5gproinf.ads, 5gsystem.ads, 5gtaprop.adb, 5gtasinf.ads,
33278         5gtpgetc.adb, 5hosinte.adb, 5hosinte.ads, 5hsystem.ads,
33279         5htaprop.adb, 5htaspri.ads, 5htraceb.adb, 5iosinte.adb,
33280         5itaprop.adb, 5itaspri.ads, 5ksystem.ads, 5kvxwork.ads,
33281         5lintman.adb, 5lml-tgt.adb, 5losinte.ads, 5lsystem.ads,
33282         5mvxwork.ads, 5ninmaop.adb, 5nintman.adb, 5nosinte.ads,
33283         5ntaprop.adb, 5ntaspri.ads, 5ointerr.adb, 5omastop.adb,
33284         5oosinte.adb, 5oosinte.ads, 5oosprim.adb, 5oparame.adb,
33285         5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5posinte.ads,
33286         5posprim.adb, 5pvxwork.ads, 5sintman.adb, 5sosinte.adb,
33287         5sosinte.ads, 5ssystem.ads, 5staprop.adb, 5stasinf.ads,
33288         5staspri.ads, 5svxwork.ads, 5tosinte.ads, 5vasthan.adb,
33289         5vinmaop.adb, 5vinterr.adb, 5vintman.adb, 5vintman.ads,
33290         5vmastop.adb, 5vosinte.adb, 5vosinte.ads, 5vosprim.adb,
33291         5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads, 5vtpopde.adb,
33292         5vtpopde.ads, 5wgloloc.adb, 5wintman.adb, 5wmemory.adb,
33293         5wosprim.adb, 5wsystem.ads, 5wtaprop.adb, 5wtaspri.ads,
33294         5ysystem.ads, 5zinterr.adb, 5zintman.adb, 5zosinte.adb,
33295         5zosinte.ads, 5zosprim.adb, 5zsystem.ads, 5ztaprop.adb,
33296         6vcpp.adb, 6vcstrea.adb, 6vinterf.ads, 7sinmaop.adb,
33297         7sintman.adb, 7sosinte.adb, 7sosprim.adb, 7staprop.adb,
33298         7staspri.ads, 7stpopsp.adb, 7straceb.adb, 9drpc.adb,
33299         a-caldel.adb, a-caldel.ads, a-charac.ads, a-colien.ads,
33300         a-comlin.adb, adaint.c, adaint.h, ada-tree.def,
33301         a-diocst.adb, a-diocst.ads, a-direio.adb, a-except.adb,
33302         a-except.ads, a-excpol.adb, a-exctra.adb, a-exctra.ads,
33303         a-filico.adb, a-interr.adb, a-intsig.adb, a-intsig.ads,
33304         ali.adb, ali.ads, ali-util.adb, ali-util.ads,
33305         a-ngcefu.adb, a-ngcoty.adb, a-ngelfu.adb, a-nudira.adb,
33306         a-nudira.ads, a-nuflra.adb, a-nuflra.ads, a-reatim.adb,
33307         a-reatim.ads, a-retide.ads, a-sequio.adb, a-siocst.adb,
33308         a-siocst.ads, a-ssicst.adb, a-ssicst.ads, a-strbou.adb,
33309         a-strbou.ads, a-strfix.adb, a-strmap.adb, a-strsea.ads,
33310         a-strunb.adb, a-strunb.ads, a-ststio.adb, a-stunau.adb,
33311         a-stunau.ads, a-stwibo.adb, a-stwibo.ads, a-stwifi.adb,
33312         a-stwima.adb, a-stwiun.adb, a-stwiun.ads, a-tags.adb,
33313         a-tags.ads, a-tasatt.adb, a-taside.adb, a-teioed.adb,
33314         a-textio.adb, a-textio.ads, a-tienau.adb, a-tifiio.adb,
33315         a-tiflau.adb, a-tiflio.adb, a-tigeau.adb, a-tigeau.ads,
33316         a-tiinau.adb, a-timoau.adb, a-tiocst.adb, a-tiocst.ads,
33317         atree.adb, atree.ads, a-witeio.adb, a-witeio.ads,
33318         a-wtcstr.adb, a-wtcstr.ads, a-wtdeio.adb, a-wtedit.adb,
33319         a-wtenau.adb, a-wtflau.adb, a-wtinau.adb, a-wtmoau.adb,
33320         bcheck.adb, binde.adb, bindgen.adb, bindusg.adb,
33321         checks.adb, checks.ads, cio.c, comperr.adb,
33322         comperr.ads, csets.adb, cstand.adb, cstreams.c,
33323         debug_a.adb, debug_a.ads, debug.adb, decl.c,
33324         einfo.adb, einfo.ads, errout.adb, errout.ads,
33325         eval_fat.adb, eval_fat.ads, exp_aggr.adb, expander.adb,
33326         expander.ads, exp_attr.adb, exp_ch11.adb, exp_ch13.adb,
33327         exp_ch2.adb, exp_ch3.adb, exp_ch3.ads, exp_ch4.adb,
33328         exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch7.ads,
33329         exp_ch8.adb, exp_ch9.adb, exp_code.adb, exp_dbug.adb,
33330         exp_dbug.ads, exp_disp.adb, exp_dist.adb, expect.c,
33331         exp_fixd.adb, exp_imgv.adb, exp_intr.adb, exp_pakd.adb,
33332         exp_prag.adb, exp_strm.adb, exp_strm.ads, exp_tss.adb,
33333         exp_tss.ads, exp_util.adb, exp_util.ads, exp_vfpt.adb,
33334         fe.h, fmap.adb, fmap.ads, fname.adb,
33335         fname.ads, fname-uf.adb, fname-uf.ads, freeze.adb,
33336         freeze.ads, frontend.adb, g-awk.adb, g-awk.ads,
33337         g-busora.adb, g-busora.ads, g-busorg.adb, g-busorg.ads,
33338         g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads,
33339         g-cgi.adb, g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads,
33340         g-cgideb.adb, g-cgideb.ads, g-comlin.adb, g-comlin.ads,
33341         g-crc32.adb, g-crc32.ads, g-debpoo.adb, g-debpoo.ads,
33342         g-debuti.adb, g-debuti.ads, g-diopit.adb, g-diopit.ads,
33343         g-dirope.adb, g-dirope.ads, g-dyntab.adb, g-dyntab.ads,
33344         g-except.ads, g-exctra.adb, g-exctra.ads, g-expect.adb,
33345         g-expect.ads, g-hesora.adb, g-hesora.ads, g-hesorg.adb,
33346         g-hesorg.ads, g-htable.adb, g-htable.ads, gigi.h,
33347         g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads,
33348         g-locfil.adb, g-locfil.ads, g-md5.adb, g-md5.ads,
33349         gmem.c, gnat1drv.adb, gnatbind.adb, gnatchop.adb,
33350         gnatcmd.adb, gnatfind.adb, gnatkr.adb, gnatlbr.adb,
33351         gnatlink.adb, gnatls.adb, gnatmake.adb, gnatmem.adb,
33352         gnatname.adb, gnatprep.adb, gnatprep.ads, gnatpsta.adb,
33353         gnatxref.adb, g-os_lib.adb, g-os_lib.ads, g-regexp.adb,
33354         g-regexp.ads, g-regist.adb, g-regist.ads, g-regpat.adb,
33355         g-regpat.ads, g-soccon.ads, g-socket.adb, g-socket.ads,
33356         g-socthi.adb, g-socthi.ads, g-soliop.ads, g-souinf.ads,
33357         g-speche.adb, g-speche.ads, g-spipat.adb, g-spipat.ads,
33358         g-spitbo.adb, g-spitbo.ads, g-sptabo.ads, g-sptain.ads,
33359         g-sptavs.ads, g-table.adb, g-table.ads, g-tasloc.adb,
33360         g-tasloc.ads, g-thread.adb, g-thread.ads, g-traceb.adb,
33361         g-traceb.ads, g-trasym.adb, g-trasym.ads, hostparm.ads,
33362         i-c.ads, i-cobol.adb, i-cpp.adb, i-cstrea.ads,
33363         i-cstrin.adb, i-cstrin.ads, impunit.adb, init.c,
33364         inline.adb, interfac.ads, i-pacdec.ads, itypes.adb,
33365         itypes.ads, i-vxwork.ads, lang.opt, lang-specs.h,
33366         layout.adb, lib.adb, lib.ads, lib-list.adb,
33367         lib-load.adb, lib-load.ads, lib-sort.adb, lib-util.adb,
33368         lib-writ.adb, lib-writ.ads, lib-xref.adb, lib-xref.ads,
33369         link.c, live.adb, make.adb, make.ads,
33370         Makefile.adalib, Makefile.in, Make-lang.in, makeusg.adb,
33371         mdll.adb, mdll-fil.adb, mdll-fil.ads, mdll-utl.adb,
33372         mdll-utl.ads, memroot.adb, memroot.ads, memtrack.adb,
33373         misc.c, mkdir.c, mlib.adb, mlib.ads,
33374         mlib-fil.adb, mlib-fil.ads, mlib-prj.adb, mlib-prj.ads,
33375         mlib-tgt.adb, mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads,
33376         namet.adb, namet.ads, namet.h, nlists.ads,
33377         nlists.h, nmake.adt, opt.adb, opt.ads,
33378         osint.adb, osint.ads, osint-b.adb, osint-c.adb,
33379         par.adb, par-ch10.adb, par-ch11.adb, par-ch2.adb,
33380         par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb,
33381         par-ch9.adb, par-endh.adb, par-labl.adb, par-load.adb,
33382         par-prag.adb, par-sync.adb, par-tchk.adb, par-util.adb,
33383         prj.adb, prj.ads, prj-attr.adb, prj-attr.ads,
33384         prj-com.adb, prj-com.ads, prj-dect.adb, prj-dect.ads,
33385         prj-env.adb, prj-env.ads, prj-ext.adb, prj-ext.ads,
33386         prj-makr.adb, prj-makr.ads, prj-nmsc.adb, prj-nmsc.ads,
33387         prj-pars.adb, prj-pars.ads, prj-part.adb, prj-part.ads,
33388         prj-pp.adb, prj-pp.ads, prj-proc.adb, prj-proc.ads,
33389         prj-strt.adb, prj-strt.ads, prj-tree.adb, prj-tree.ads,
33390         prj-util.adb, prj-util.ads, raise.c, raise.h,
33391         repinfo.adb, repinfo.h, restrict.adb, restrict.ads,
33392         rident.ads, rtsfind.adb, rtsfind.ads, s-addima.ads,
33393         s-arit64.adb, s-assert.adb, s-assert.ads, s-atacco.adb,
33394         s-atacco.ads, s-auxdec.adb, s-auxdec.ads, s-bitops.adb,
33395         scans.ads, scn.adb, scn.ads, s-crc32.adb,
33396         s-crc32.ads, s-direio.adb, sem.adb, sem.ads,
33397         sem_aggr.adb, sem_attr.adb, sem_attr.ads, sem_case.adb,
33398         sem_case.ads, sem_cat.adb, sem_cat.ads, sem_ch10.adb,
33399         sem_ch11.adb, sem_ch12.adb, sem_ch12.ads, sem_ch13.adb,
33400         sem_ch13.ads, sem_ch3.adb, sem_ch3.ads, sem_ch4.adb,
33401         sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
33402         sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads,
33403         sem_ch9.adb, sem_disp.adb, sem_disp.ads, sem_dist.adb,
33404         sem_elab.adb, sem_eval.adb, sem_eval.ads, sem_intr.adb,
33405         sem_maps.adb, sem_mech.adb, sem_prag.adb, sem_prag.ads,
33406         sem_res.adb, sem_res.ads, sem_type.adb, sem_type.ads,
33407         sem_util.adb, sem_util.ads, sem_warn.adb, s-errrep.adb,
33408         s-errrep.ads, s-exctab.adb, s-exctab.ads, s-exnint.ads,
33409         s-exnllf.ads, s-exnlli.ads, s-expint.ads, s-explli.ads,
33410         s-expuns.ads, s-fatflt.ads, s-fatgen.adb, s-fatgen.ads,
33411         s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads, s-fileio.adb,
33412         s-fileio.ads, s-finimp.adb, s-finimp.ads, s-finroo.adb,
33413         s-finroo.ads, sfn_scan.adb, s-gloloc.adb, s-gloloc.ads,
33414         s-imgdec.adb, s-imgenu.adb, s-imgrea.adb, s-imgwch.adb,
33415         sinfo.adb, sinfo.ads, s-inmaop.ads, sinput.adb,
33416         sinput.ads, sinput-d.adb, sinput-l.adb, sinput-l.ads,
33417         sinput-p.adb, sinput-p.ads, s-interr.adb, s-interr.ads,
33418         s-intman.ads, s-maccod.ads, s-mastop.adb, s-mastop.ads,
33419         s-memory.adb, s-memory.ads, snames.adb, snames.ads,
33420         snames.h, s-osprim.ads, s-parame.ads, s-parint.ads,
33421         s-pooloc.adb, s-pooloc.ads, s-poosiz.adb, sprint.adb,
33422         s-proinf.ads, s-scaval.ads, s-secsta.adb, s-secsta.ads,
33423         s-sequio.adb, s-shasto.adb, s-shasto.ads, s-soflin.ads,
33424         s-stache.adb, s-stache.ads, s-stalib.adb, s-stalib.ads,
33425         s-stoele.ads, s-stopoo.ads, s-stratt.adb, s-stratt.ads,
33426         s-strops.adb, s-strops.ads, s-taasde.adb, s-taasde.ads,
33427         s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads,
33428         s-taenca.adb, s-taenca.ads, s-taprob.adb, s-taprob.ads,
33429         s-taprop.ads, s-tarest.adb, s-tarest.ads, s-tasdeb.adb,
33430         s-tasdeb.ads, s-tasinf.adb, s-tasinf.ads, s-tasini.adb,
33431         s-tasini.ads, s-taskin.adb, s-taskin.ads, s-tasque.adb,
33432         s-tasque.ads, s-tasren.adb, s-tasren.ads, s-tasres.ads,
33433         s-tassta.adb, s-tassta.ads, s-tasuti.adb, s-tasuti.ads,
33434         s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
33435         s-tpoben.adb, s-tpoben.ads, s-tpobop.adb, s-tpobop.ads,
33436         s-tposen.adb, s-tposen.ads, s-traceb.adb, s-traceb.ads,
33437         stringt.adb, stringt.ads, stringt.h, style.ads,
33438         stylesw.adb, stylesw.ads, s-unstyp.ads, s-vaflop.ads,
33439         s-valrea.adb, s-valuti.adb, s-vercon.adb, s-vmexta.adb,
33440         s-wchcnv.ads, s-wchcon.ads, s-widcha.adb, switch.adb,
33441         switch.ads, switch-b.adb, switch-c.adb, switch-m.adb,
33442         s-wwdcha.adb, s-wwdwch.adb, sysdep.c, system.ads,
33443         table.adb, table.ads, targparm.adb, targparm.ads,
33444         targtyps.c, tbuild.adb, tbuild.ads, tracebak.c,
33445         trans.c, tree_io.adb, treepr.adb, treeprs.adt,
33446         ttypes.ads, types.ads, types.h, uintp.adb,
33447         uintp.ads, uintp.h, uname.adb, urealp.adb,
33448         urealp.ads, urealp.h, usage.adb, utils2.c,
33449         utils.c, validsw.adb, validsw.ads, widechar.adb,
33450         xeinfo.adb, xnmake.adb, xref_lib.adb, xref_lib.ads,
33451         xr_tabls.adb, xr_tabls.ads, xtreeprs.adb, xsnames.adb,
33452         einfo.h, sinfo.h, treeprs.ads, nmake.ads, nmake.adb,
33453         gnatvsn.ads: Merge with ACT tree.
33454
33455         * gnatvsn.adb: Rewritten in a simpler and more efficient way.
33456
33457 2003-10-20  Mark Mitchell  <mark@codesourcery.com>
33458
33459         * Make-lang.in (gnat_ug_unx.info): Add dependency on stmp-docobjdir.
33460         (gnat_ug_vmx.info): Likewise.
33461         (gnat_ug_vxw.info): Likewise.
33462         (gnat_ug_wnt.info): Likewise.
33463         (gnat_rm.info): Likewise.
33464         (gnat-style.info): Likewise.
33465
33466         * Make-lang.in (ada.install-info): Remove target.
33467         (info): New target.
33468         (install-info): Likewise.
33469         (gnat_ug_unx.info): Simplify rule.
33470         (gnat_ug_vmx.info): Likewise.
33471         (gnat_ug_vxw.info): Likewise.
33472         (gnat_ug_wnt.info): Likewise.
33473         (gnat_rm.info): Likewise.
33474         (gnat-style.info): Likewise.
33475
33476 2003-10-14  Nathanael Nerode  <neroden@gcc.gnu.org>
33477
33478         * Make-lang.in: Replace uses of $(target_alias) with
33479         $(target_noncanonical).
33480         * ada/Makefile.in: Remove unused mention of $(target_alias).
33481
33482 2003-10-06  Mark Mitchell  <mark@codesourcery.com>
33483
33484         * Make-lang.in (ada.info): Replace with ...
33485         (info): ... this.
33486         (ada.dvi): Replace with ...
33487         (dvi): ... this.
33488
33489 2003-09-29  Zack Weinberg  <zack@codesourcery.com>
33490
33491         * trans.c (gigi): Use REAL_ARITHMETIC, not REAL_VALUE_ATOF, to
33492         initialize dconstp5 and dconstmp5.
33493
33494 2003-09-28  Richard Henderson  <rth@redhat.com>
33495
33496         * trans.c (tree_transform): Update call to expand_asm_operands.
33497
33498 2003-09-21  Richard Henderson  <rth@redhat.com>
33499
33500         * trans.c, utils.c: Revert.
33501
33502 2003-09-21  Richard Henderson  <rth@redhat.com>
33503
33504         * trans.c, utils.c: Update for DECL_SOURCE_LOCATION rename and
33505         change to const.
33506
33507 2003-09-04  Michael Matz  <matz@suse.de>
33508
33509         * misc.c: Include "target.h".
33510         * Make-lang.in (misc.o): Add dependency on target.h.
33511
33512 2003-09-03  DJ Delorie  <dj@redhat.com>
33513
33514         * misc.c (default_pass_by_ref): Convert to calls.return_in_memory
33515         hook.
33516
33517 2003-08-30  Zack Weinberg  <zack@codesourcery.com>
33518
33519         * Makefile.in: Update substitutions to match changes to
33520         configure.  Use include directives instead of @-insertions
33521         to read in host and target fragments.  Add a rule to
33522         regenerate ada/Makefile.
33523
33524 2003-07-18  Neil Booth  <neil@daikokuya.co.uk>
33525
33526         * lang-options.h: Remove.
33527         * lang.opt: Add help text.
33528
33529 2003-07-07  Nathan Sidwell  <nathan@codesourcery.com>
33530
33531         * trans.c (build_unit_elab, set_lineno): Adjust emit_line_note
33532         calls.
33533
33534 2003-07-06  Neil Booth  <neil@daikokuya.co.uk>
33535
33536         * misc.c (gnat_handle_option): Don't handle filenames.
33537
33538 2003-07-04  H.J. Lu  <hongjiu.lu@intel.com>
33539
33540         * Make-lang.in: Replace PWD with PWD_COMMAND.
33541         * Makefile.adalib: Likewise.
33542         * Makefile.in: Likewise.
33543
33544 2003-07-04  Matt Kraai  <kraai@alumni.cmu.edu>
33545
33546         * misc.c (gnat_argv): Revert last change.
33547         (gnat_handle_option, gnat_init_options): Copy arguments.
33548
33549 2003-07-03  Neil Booth  <neil@daikokuya.co.uk>
33550
33551         * misc.c (gnat_argv): Make const.
33552
33553 2003-07-02  Neil Booth  <neil@daikokuya.co.uk>
33554
33555         * misc.c (save_argc, save_argv): Keep non-static!
33556
33557 2003-07-02  Neil Booth  <neil@daikokuya.co.uk>
33558
33559         * misc.c (save_argc, save_argv): Make static.
33560         (gnat_init_options): New prototype.
33561         (gnat_init_options): Update.
33562
33563 2003-07-01  Matt Kraai  <kraai@alumni.cmu.edu>
33564
33565         * gnat_ug.texi: Remove unlikely characters from @vars.
33566         * gnat_ug_vms.texi: Regenerate.
33567
33568 2003-06-27  Nathan Sidwell  <nathan@codesourcery.com>
33569
33570         * misc.c (record_code_position): Adjust emit_note call.
33571
33572 2003-06-26  Neil Booth  <neil@daikokuya.co.uk>
33573
33574         * misc.c (gnat_handle_option): Don't check for missing arguments.
33575
33576 2003-06-20  Nathan Sidwell  <nathan@codesourcery.com>
33577
33578         * utils.c (end_subprog_body): Adjust expand_function_end call.
33579
33580 2003-06-16  Matt Kraai  <kraai@alumni.cmu.edu>
33581
33582         * bindgen.adb (Gen_Main_Ada, Gen_Main_C): Do not test
33583         Bind_Main_Program.
33584
33585 2003-06-15  Neil Booth  <neil@daikokuya.co.uk>
33586
33587         * lang.opt: Declare Ada.
33588         * misc.c (gnat_init_options): Update.
33589
33590 2003-06-14  Nathan Sidwell  <nathan@codesourcery.com>
33591
33592         * utils.c (begin_subprog_body): Adjust init_function_start call.
33593
33594 2003-06-14  Neil Booth  <neil@daikokuya.co.uk>
33595
33596         * Make-lang.in: Update to use options.c and options.h.
33597         * misc.c: Include options.h not aoptions.h.
33598         (gnat_handle_option): Abort on unrecognized switch.
33599         (gnat_init_options): Request Ada switches.
33600
33601 2003-06-14  Neil Booth  <neil@daikokuya.co.uk>
33602
33603         * lang.opt: Add -Wall.
33604         * misc.c (gnat_handle_option): Handle it.
33605
33606 2003-06-12  Neil Booth  <neil@daikokuya.co.uk>
33607
33608         * misc.c (gnat_handle_option): Fix warnings.
33609
33610 2003-06-11  Matt Kraai  <kraai@alumni.cmu.edu>
33611
33612         * Make-lang.in (gnatbind): Remove $(LIBIBERTY).
33613
33614 2003-06-11  Neil Booth  <neil@daikokuya.co.uk>
33615
33616         * Make-lang.in: Update to handle command-line options.
33617         * lang.opt: New file.
33618         * misc.c: Include aoptions.h.
33619         (cl_options_count, cl_options): Remove.
33620         (gnat_handle_option): New.
33621         (gnat_decode_option): Remove.
33622         (LANG_HOOKS_DECODE_OPTION): Remove.
33623         (LANG_HOOKS_HANDLE_OPTION): Override.
33624
33625 2003-06-10  Nathanael Nerode  <neroden@gcc.gnu.org>
33626
33627         * init.c, misc.c, trans.c, utils.c: Remove dead code.
33628
33629 2003-06-09  Nathanael Nerode  <neroden@gcc.gnu.org>
33630
33631         * Makefile.in: Replace "host_canonical" with "host" for autoconf
33632         substitution.
33633
33634 2003-06-08  Neil Booth  <neil@daikokuya.co.uk>
33635
33636         * Make-lang.in: Update.
33637         * misc.c: Include opts.h. Define cl_options_count and cl_options.
33638
33639 2003-06-07  Neil Booth  <neil@daikokuya.co.uk>
33640
33641         * misc.c (gnat_init_options): Update.
33642
33643 2003-06-05  Matt Kraai  <kraai@alumni.cmu.edu>
33644
33645         * Make-lang.in (ada/b_gnatb.o-warn): Remove.
33646         * bindgen.adb (Gen_Main_C): Mark ensure_reference with
33647         __attribute__ ((__unused__)).
33648
33649 2003-06-05  Jan Hubicka  <jh@suse.cz>
33650
33651         * Make-lang.in:  Add support for stageprofile and stagefeedback
33652
33653 2003-06-05  Matt Kraai  <kraai@alumni.cmu.edu>
33654
33655         * bindgen.adb (Gen_Adafinal_C, Gen_Adainit_C, Gen_Elab_Defs_C)
33656         (Gen_Main_C, Gen_Output_File_C): Generate ISO C.
33657
33658 2003-06-04  Matt Kraai  <kraai@alumni.cmu.edu>
33659
33660         * gnat_ug.texi (The GNAT Run-Time Library Builder gnatlbr):
33661         Remove non-VMS directive.
33662         (Switches for gnatlbr, Optimization Levels): Remove non-VMS
33663         alternatives.
33664         (Examples of gnatls Usage): Remove VMS alternative.
33665
33666 2003-06-04  Olivier Hainque  <hainque@act-europe.fr>
33667
33668         PR ada/9953
33669         * 5hsystem.ads: Remove pragma Linker_Option for pthreads library,
33670         and turn ZCX_By_Default back to False since the underlying support
33671         is not quite there yet.
33672
33673 2003-06-01  Andreas Jaeger  <aj@suse.de>
33674
33675         * utils.c (finish_record_type): Remove usages of ROUND_TYPE_SIZE
33676         and ROUND_TYPE_SIZE_UNIT.
33677
33678 2003-05-22   Geert Bosch  <bosch@gnat.com>
33679
33680         * gnat_rm.texi : Remove reference to Ada Core Technologies.
33681
33682 2003-05-03  Nathan Sidwell  <nathan@codesourcery.com>
33683
33684         * trans.c (tree_transform): Use location_t and input_location
33685         directly.
33686         (build_unit_elab): Likewise.
33687         * utils.c (create_label_decl): Likewise.
33688
33689 2003-05-01  Nathan Sidwell  <nathan@codesourcery.com>
33690
33691         * trans.c (tree_transform, build_unit_elab,
33692         set_lineno): Rename lineno to input_line.
33693         * utils.c (pushdecl, create_label_decl, begin_subprog_body,
33694         end_subprog_body): Likewise.
33695         * utils2.c (build_call_raise): Likewise.
33696
33697 2003-05-01  Laurent Guerby  <guerby@acm.org>
33698
33699         PR ada/10546
33700         * 5iosinte.ads: Increase pthread_cond_t size to match recent
33701         LinuxThread and NPTL version, merge from ACT.
33702
33703 2003-04-28  Zack Weinberg  <zack@codesourcery.com>
33704
33705         * utils.c (convert): No need to clear TREE_CST_RTL.
33706
33707 2003-04-23   Geert Bosch  <bosch@gnat.com>
33708
33709         * 1aexcept.adb, 1aexcept.ads, 1ic.ads, 1ssecsta.adb,
33710         1ssecsta.ads, 31soccon.ads, 31soliop.ads, 3asoccon.ads,
33711         3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3ssoccon.ads,
33712         3ssoliop.ads, 3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads,
33713         3wsoliop.ads, 41intnam.ads, 42intnam.ads, 4aintnam.ads,
33714         4cintnam.ads, 4dintnam.ads, 4gintnam.ads, 4hexcpol.adb,
33715         4hintnam.ads, 4lintnam.ads, 4mintnam.ads, 4nintnam.ads,
33716         4ointnam.ads, 4onumaux.ads, 4pintnam.ads, 4rintnam.ads,
33717         4sintnam.ads, 4uintnam.ads, 4vcaldel.adb, 4vcalend.adb,
33718         4vcalend.ads, 4vintnam.ads, 4wcalend.adb, 4wexcpol.adb,
33719         4wintnam.ads, 4zintnam.ads, 4znumaux.ads, 4zsytaco.adb,
33720         4zsytaco.ads, 51osinte.adb, 51osinte.ads, 52osinte.adb,
33721         52osinte.ads, 52system.ads, 53osinte.ads, 54osinte.ads,
33722         5amastop.adb, 5aosinte.adb, 5aosinte.ads, 5asystem.ads,
33723         5ataprop.adb, 5atasinf.ads, 5ataspri.ads, 5atpopsp.adb,
33724         5avxwork.ads, 5bosinte.adb, 5bosinte.ads, 5bsystem.ads,
33725         5cosinte.ads, 5dosinte.ads, 5esystem.ads, 5etpopse.adb,
33726         5fintman.adb, 5fosinte.ads, 5fsystem.ads, 5ftaprop.adb,
33727         5ftasinf.ads, 5ginterr.adb, 5gintman.adb, 5gmastop.adb,
33728         5gosinte.ads, 5gproinf.adb, 5gproinf.ads, 5gsystem.ads,
33729         5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads, 5gtpgetc.adb,
33730         5hosinte.adb, 5hosinte.ads, 5hparame.ads, 5hsystem.ads,
33731         5htaprop.adb, 5htaspri.ads, 5htraceb.adb, 5iosinte.adb,
33732         5iosinte.ads, 5itaprop.adb, 5itaspri.ads, 5ksystem.ads,
33733         5kvxwork.ads, 5lintman.adb, 5lml-tgt.adb, 5losinte.ads,
33734         5lsystem.ads, 5mosinte.ads, 5mvxwork.ads, 5ninmaop.adb,
33735         5nintman.adb, 5nosinte.ads, 5ntaprop.adb, 5ntaspri.ads,
33736         5ointerr.adb, 5omastop.adb, 5oosinte.adb, 5oosinte.ads,
33737         5oosprim.adb, 5oparame.adb, 5osystem.ads, 5otaprop.adb,
33738         5otaspri.ads, 5posinte.ads, 5posprim.adb, 5pvxwork.ads,
33739         5qosinte.adb, 5qosinte.ads, 5qstache.adb, 5qtaprop.adb,
33740         5qtaspri.ads, 5rosinte.adb, 5rosinte.ads, 5rparame.adb,
33741         5sintman.adb, 5sosinte.adb, 5sosinte.ads, 5sparame.adb,
33742         5ssystem.ads, 5staprop.adb, 5stasinf.adb, 5stasinf.ads,
33743         5staspri.ads, 5stpopse.adb, 5svxwork.ads, 5tosinte.ads,
33744         5uintman.adb, 5uosinte.ads, 5vasthan.adb, 5vinmaop.adb,
33745         5vinterr.adb, 5vintman.adb, 5vintman.ads, 5vmastop.adb,
33746         5vosinte.adb, 5vosinte.ads, 5vosprim.adb, 5vosprim.ads,
33747         5vparame.ads, 5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads,
33748         5vtpopde.adb, 5vtpopde.ads, 5vvaflop.adb, 5wgloloc.adb,
33749         5wintman.adb, 5wmemory.adb, 5wosinte.ads, 5wosprim.adb,
33750         5wsystem.ads, 5wtaprop.adb, 5wtaspri.ads, 5ysystem.ads,
33751         5zinterr.adb, 5zintman.adb, 5zosinte.adb, 5zosinte.ads,
33752         5zosprim.adb, 5zsystem.ads, 5ztaprop.adb, 6vcpp.adb,
33753         6vcstrea.adb, 6vinterf.ads, 7sinmaop.adb, 7sintman.adb,
33754         7sosinte.adb, 7sosprim.adb, 7staprop.adb, 7staspri.ads,
33755         7stpopsp.adb, 7straceb.adb, 86numaux.adb, 86numaux.ads,
33756         9drpc.adb, a-astaco.adb, a-astaco.ads, a-caldel.adb,
33757         a-caldel.ads, a-calend.adb, a-calend.ads, a-chahan.adb,
33758         a-chahan.ads, a-charac.ads, a-chlat1.ads, a-chlat9.ads,
33759         a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
33760         a-comlin.adb, a-comlin.ads, a-cwila1.ads, a-cwila9.ads,
33761         a-decima.adb, a-decima.ads, a-diocst.adb, a-diocst.ads,
33762         a-direio.adb, a-direio.ads, a-dynpri.adb, a-dynpri.ads,
33763         a-einuoc.adb, a-einuoc.ads, a-except.adb, a-except.ads,
33764         a-excpol.adb, a-exctra.adb, a-exctra.ads, a-filico.adb,
33765         a-filico.ads, a-finali.adb, a-finali.ads, a-flteio.ads,
33766         a-fwteio.ads, a-inteio.ads, a-interr.adb, a-interr.ads,
33767         a-intnam.ads, a-intsig.adb, a-intsig.ads, a-ioexce.ads,
33768         a-iwteio.ads, a-lfteio.ads, a-lfwtio.ads, a-liteio.ads,
33769         a-liwtio.ads, a-llftio.ads, a-llfwti.ads, a-llitio.ads,
33770         a-lliwti.ads, a-ncelfu.ads, a-ngcefu.adb, a-ngcefu.ads,
33771         a-ngcoty.adb, a-ngcoty.ads, a-ngelfu.adb, a-ngelfu.ads,
33772         a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads,
33773         a-nllcty.ads, a-nllefu.ads, a-nscefu.ads, a-nscoty.ads,
33774         a-nselfu.ads, a-nucoty.ads, a-nudira.adb, a-nudira.ads,
33775         a-nuelfu.ads, a-nuflra.adb, a-nuflra.ads, a-numaux.ads,
33776         a-numeri.ads, a-reatim.adb, a-reatim.ads, a-retide.adb,
33777         a-retide.ads, a-sequio.adb, a-sequio.ads, a-sfteio.ads,
33778         a-sfwtio.ads, a-siocst.adb, a-siocst.ads, a-siteio.ads,
33779         a-siwtio.ads, a-ssicst.adb, a-ssicst.ads, a-ssitio.ads,
33780         a-ssiwti.ads, a-stmaco.ads, a-storio.adb, a-storio.ads,
33781         a-strbou.adb, a-strbou.ads, a-stream.ads, a-strfix.adb,
33782         a-strfix.ads, a-string.ads, a-strmap.adb, a-strmap.ads,
33783         a-strsea.adb, a-strsea.ads, a-strunb.adb, a-strunb.ads,
33784         a-ststio.adb, a-ststio.ads, a-stunau.adb, a-stunau.ads,
33785         a-stwibo.adb, a-stwibo.ads, a-stwifi.adb, a-stwifi.ads,
33786         a-stwima.adb, a-stwima.ads, a-stwise.adb, a-stwise.ads,
33787         a-stwiun.adb, a-stwiun.ads, a-suteio.adb, a-suteio.ads,
33788         a-swmwco.ads, a-swuwti.adb, a-swuwti.ads, a-sytaco.adb,
33789         a-sytaco.ads, a-tags.adb, a-tags.ads, a-tasatt.adb,
33790         a-tasatt.ads, a-taside.adb, a-taside.ads, a-teioed.adb,
33791         a-teioed.ads, a-textio.adb, a-textio.ads, a-ticoau.adb,
33792         a-ticoau.ads, a-ticoio.adb, a-ticoio.ads, a-tideau.adb,
33793         a-tideau.ads, a-tideio.adb, a-tideio.ads, a-tienau.adb,
33794         a-tienau.ads, a-tienio.adb, a-tienio.ads, a-tifiio.adb,
33795         a-tifiio.ads, a-tiflau.adb, a-tiflau.ads, a-tiflio.adb,
33796         a-tiflio.ads, a-tigeau.adb, a-tigeau.ads, a-tiinau.adb,
33797         a-tiinau.ads, a-tiinio.adb, a-tiinio.ads, a-timoau.adb,
33798         a-timoau.ads, a-timoio.adb, a-timoio.ads, a-tiocst.adb,
33799         a-tiocst.ads, a-titest.adb, a-titest.ads, a-unccon.ads,
33800         a-uncdea.ads, a-witeio.adb, a-witeio.ads, a-wtcoau.adb,
33801         a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads, a-wtcstr.adb,
33802         a-wtcstr.ads, a-wtdeau.adb, a-wtdeau.ads, a-wtdeio.adb,
33803         a-wtdeio.ads, a-wtedit.adb, a-wtedit.ads, a-wtenau.adb,
33804         a-wtenau.ads, a-wtenio.adb, a-wtenio.ads, a-wtfiio.adb,
33805         a-wtfiio.ads, a-wtflau.adb, a-wtflau.ads, a-wtflio.adb,
33806         a-wtflio.ads, a-wtgeau.adb, a-wtgeau.ads, a-wtinau.adb,
33807         a-wtinau.ads, a-wtinio.adb, a-wtinio.ads, a-wtmoau.adb,
33808         a-wtmoau.ads, a-wtmoio.adb, a-wtmoio.ads, a-wttest.adb,
33809         a-wttest.ads, ada-tree.h, ada.ads, ada.h,
33810         adadecode.c, adadecode.h, ali-util.adb, ali-util.ads,
33811         ali.adb, ali.ads, alloc.ads, argv.c,
33812         atree.adb, atree.ads, atree.h, aux-io.c,
33813         back_end.adb, back_end.ads, bcheck.adb, bcheck.ads,
33814         binde.adb, binde.ads, binderr.adb, binderr.ads,
33815         bindgen.adb, bindgen.ads, bindusg.adb, bindusg.ads,
33816         butil.adb, butil.ads, cal.c, calendar.ads,
33817         casing.adb, casing.ads, ceinfo.adb, checks.adb,
33818         checks.ads, cio.c, comperr.adb, comperr.ads,
33819         config-lang.in, csets.adb, csets.ads, csinfo.adb,
33820         cstand.adb, cstand.ads, cuintp.c, debug.adb,
33821         debug.ads, debug_a.adb, debug_a.ads, dec-io.adb,
33822         dec-io.ads, dec.ads, deftarg.c, directio.ads,
33823         einfo.adb, einfo.ads, elists.adb, elists.ads,
33824         elists.h, errno.c, errout.adb, errout.ads,
33825         eval_fat.adb, eval_fat.ads, exit.c, exp_aggr.adb,
33826         exp_aggr.ads, exp_attr.adb, exp_attr.ads, exp_ch10.ads,
33827         exp_ch11.adb, exp_ch11.ads, exp_ch12.adb, exp_ch12.ads,
33828         exp_ch13.adb, exp_ch13.ads, exp_ch2.adb, exp_ch2.ads,
33829         exp_ch3.adb, exp_ch3.ads, exp_ch4.adb, exp_ch4.ads,
33830         exp_ch5.adb, exp_ch5.ads, exp_ch6.adb, exp_ch6.ads,
33831         exp_ch7.adb, exp_ch7.ads, exp_ch8.adb, exp_ch8.ads,
33832         exp_ch9.adb, exp_ch9.ads, exp_code.adb, exp_code.ads,
33833         exp_dbug.adb, exp_dbug.ads, exp_disp.adb, exp_disp.ads,
33834         exp_dist.adb, exp_dist.ads, exp_fixd.adb, exp_fixd.ads,
33835         exp_imgv.adb, exp_imgv.ads, exp_intr.adb, exp_intr.ads,
33836         exp_pakd.adb, exp_pakd.ads, exp_prag.adb, exp_prag.ads,
33837         exp_smem.adb, exp_smem.ads, exp_strm.adb, exp_strm.ads,
33838         exp_tss.adb, exp_tss.ads, exp_util.adb, exp_util.ads,
33839         exp_vfpt.adb, exp_vfpt.ads, expander.adb, expander.ads,
33840         fmap.adb, fmap.ads, fname-sf.adb, fname-sf.ads,
33841         fname-uf.adb, fname-uf.ads, fname.adb, fname.ads,
33842         freeze.adb, freeze.ads, frontend.adb, frontend.ads,
33843         g-awk.adb, g-awk.ads, g-busora.adb, g-busora.ads,
33844         g-busorg.adb, g-busorg.ads, g-calend.adb, g-calend.ads,
33845         g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads,
33846         g-cgi.adb, g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads,
33847         g-cgideb.adb, g-cgideb.ads, g-comlin.adb, g-comlin.ads,
33848         g-crc32.adb, g-crc32.ads, g-curexc.ads, g-debpoo.adb,
33849         g-debpoo.ads, g-debuti.adb, g-debuti.ads, g-diopit.adb,
33850         g-diopit.ads, g-dirope.adb, g-dirope.ads, g-dyntab.adb,
33851         g-dyntab.ads, g-enblsp.adb, g-except.ads, g-exctra.adb,
33852         g-exctra.ads, g-expect.adb, g-expect.ads, g-flocon.ads,
33853         g-hesora.adb, g-hesora.ads, g-hesorg.adb, g-hesorg.ads,
33854         g-htable.adb, g-htable.ads, g-io.adb, g-io.ads,
33855         g-io_aux.adb, g-io_aux.ads, g-locfil.ads, g-md5.adb,
33856         g-md5.ads, g-moreex.adb, g-moreex.ads, g-os_lib.adb,
33857         g-os_lib.ads, g-regexp.adb, g-regexp.ads, g-regist.ads,
33858         g-regpat.adb, g-regpat.ads, g-soccon.ads, g-socket.adb,
33859         g-socket.ads, g-socthi.adb, g-socthi.ads, g-soliop.ads,
33860         g-souinf.ads, g-speche.adb, g-speche.ads, g-spipat.adb,
33861         g-spipat.ads, g-spitbo.adb, g-spitbo.ads, g-sptabo.ads,
33862         g-sptain.ads, g-sptavs.ads, g-table.adb, g-table.ads,
33863         g-tasloc.adb, g-tasloc.ads, g-thread.adb, g-thread.ads,
33864         g-traceb.adb, g-traceb.ads, g-trasym.adb, g-trasym.ads,
33865         get_targ.adb, get_targ.ads, gnat-style.texi, gnat.ads,
33866         gnat1drv.adb, gnat1drv.ads, gnatbind.adb, gnatbind.ads,
33867         gnatbl.c, gnatchop.adb, gnatcmd.adb, gnatcmd.ads,
33868         gnatdll.adb, gnatfind.adb, gnatkr.adb, gnatkr.ads,
33869         gnatlbr.adb, gnatlink.adb, gnatlink.ads, gnatls.adb,
33870         gnatls.ads, gnatmake.adb, gnatmake.ads, gnatmem.adb,
33871         gnatname.adb, gnatname.ads, gnatprep.adb, gnatprep.ads,
33872         gnatpsta.adb, gnatvsn.adb, gnatvsn.ads, gnatxref.adb,
33873         hlo.adb, hlo.ads, hostparm.ads, i-c.adb,
33874         i-c.ads, i-cexten.ads, i-cobol.adb, i-cobol.ads,
33875         i-cpoint.adb, i-cpoint.ads, i-cpp.adb, i-cpp.ads,
33876         i-cstrea.adb, i-cstrea.ads, i-cstrin.adb, i-cstrin.ads,
33877         i-fortra.adb, i-fortra.ads, i-os2err.ads, i-os2lib.adb,
33878         i-os2lib.ads, i-os2syn.ads, i-os2thr.ads, i-pacdec.adb,
33879         i-pacdec.ads, i-vxwork.ads, impunit.adb, impunit.ads,
33880         inline.adb, inline.ads, interfac.ads, ioexcept.ads,
33881         itypes.adb, itypes.ads, krunch.adb, krunch.ads,
33882         layout.adb, layout.ads, lib-list.adb, lib-load.adb,
33883         lib-load.ads, lib-sort.adb, lib-util.adb, lib-util.ads,
33884         lib-writ.adb, lib-writ.ads, lib-xref.adb, lib-xref.ads,
33885         lib.adb, lib.ads, live.adb, live.ads,
33886         machcode.ads, make.adb, make.ads, makeusg.adb,
33887         makeusg.ads, math_lib.adb, mdll-fil.adb, mdll-fil.ads,
33888         mdll-utl.adb, mdll-utl.ads, mdll.adb, mdll.ads,
33889         memroot.adb, memroot.ads, memtrack.adb, mlib-fil.adb,
33890         mlib-fil.ads, mlib-prj.adb, mlib-prj.ads, mlib-tgt.adb,
33891         mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads, mlib.adb,
33892         mlib.ads, namet.adb, namet.ads, nlists.adb,
33893         nlists.ads, opt.adb, opt.ads, osint-b.adb,
33894         osint-b.ads, osint-c.adb, osint-c.ads, osint-l.adb,
33895         osint-l.ads, osint-m.adb, osint-m.ads, osint.adb,
33896         osint.ads, output.adb, output.ads, par-ch10.adb,
33897         par-ch11.adb, par-ch12.adb, par-ch13.adb, par-ch2.adb,
33898         par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb,
33899         par-ch7.adb, par-ch8.adb, par-ch9.adb, par-endh.adb,
33900         par-labl.adb, par-load.adb, par-prag.adb, par-sync.adb,
33901         par-tchk.adb, par-util.adb, par.adb, par.ads,
33902         prj-attr.adb, prj-attr.ads, prj-com.adb, prj-com.ads,
33903         prj-dect.adb, prj-dect.ads, prj-env.adb, prj-env.ads,
33904         prj-ext.adb, prj-ext.ads, prj-makr.adb, prj-makr.ads,
33905         prj-nmsc.adb, prj-nmsc.ads, prj-pars.adb, prj-pars.ads,
33906         prj-part.adb, prj-part.ads, prj-pp.adb, prj-pp.ads,
33907         prj-proc.adb, prj-proc.ads, prj-strt.adb, prj-strt.ads,
33908         prj-tree.adb, prj-tree.ads, prj-util.adb, prj-util.ads,
33909         prj.adb, prj.ads, repinfo.adb, repinfo.ads,
33910         restrict.adb, restrict.ads, rident.ads, rtsfind.adb,
33911         rtsfind.ads, s-addima.adb, s-addima.ads, s-arit64.adb,
33912         s-arit64.ads, s-assert.adb, s-assert.ads, s-asthan.adb,
33913         s-asthan.ads, s-atacco.adb, s-atacco.ads, s-auxdec.adb,
33914         s-auxdec.ads, s-bitops.adb, s-bitops.ads, s-chepoo.ads,
33915         s-crc32.adb, s-crc32.ads, s-direio.adb, s-direio.ads,
33916         s-errrep.adb, s-errrep.ads, s-except.ads, s-exctab.adb,
33917         s-exctab.ads, s-exnflt.ads, s-exngen.adb, s-exngen.ads,
33918         s-exnint.ads, s-exnlfl.ads, s-exnlin.ads, s-exnllf.ads,
33919         s-exnlli.ads, s-exnsfl.ads, s-exnsin.ads, s-exnssi.ads,
33920         s-expflt.ads, s-expgen.adb, s-expgen.ads, s-expint.ads,
33921         s-explfl.ads, s-explin.ads, s-expllf.ads, s-explli.ads,
33922         s-expllu.adb, s-expllu.ads, s-expmod.adb, s-expmod.ads,
33923         s-expsfl.ads, s-expsin.ads, s-expssi.ads, s-expuns.adb,
33924         s-expuns.ads, s-fatflt.ads, s-fatgen.adb, s-fatgen.ads,
33925         s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads, s-ficobl.ads,
33926         s-fileio.adb, s-fileio.ads, s-finimp.adb, s-finimp.ads,
33927         s-finroo.adb, s-finroo.ads, s-fore.adb, s-fore.ads,
33928         s-gloloc.adb, s-gloloc.ads, s-imgbiu.adb, s-imgbiu.ads,
33929         s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads,
33930         s-imgdec.adb, s-imgdec.ads, s-imgenu.adb, s-imgenu.ads,
33931         s-imgint.adb, s-imgint.ads, s-imgllb.adb, s-imgllb.ads,
33932         s-imglld.adb, s-imglld.ads, s-imglli.adb, s-imglli.ads,
33933         s-imgllu.adb, s-imgllu.ads, s-imgllw.adb, s-imgllw.ads,
33934         s-imgrea.adb, s-imgrea.ads, s-imguns.adb, s-imguns.ads,
33935         s-imgwch.adb, s-imgwch.ads, s-imgwiu.adb, s-imgwiu.ads,
33936         s-inmaop.ads, s-interr.adb, s-interr.ads, s-intman.ads,
33937         s-io.adb, s-io.ads, s-maccod.ads, s-mantis.adb,
33938         s-mantis.ads, s-mastop.adb, s-mastop.ads, s-memory.adb,
33939         s-memory.ads, s-osprim.ads, s-pack03.adb, s-pack03.ads,
33940         s-pack05.adb, s-pack05.ads, s-pack06.adb, s-pack06.ads,
33941         s-pack07.adb, s-pack07.ads, s-pack09.adb, s-pack09.ads,
33942         s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads,
33943         s-pack12.adb, s-pack12.ads, s-pack13.adb, s-pack13.ads,
33944         s-pack14.adb, s-pack14.ads, s-pack15.adb, s-pack15.ads,
33945         s-pack17.adb, s-pack17.ads, s-pack18.adb, s-pack18.ads,
33946         s-pack19.adb, s-pack19.ads, s-pack20.adb, s-pack20.ads,
33947         s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads,
33948         s-pack23.adb, s-pack23.ads, s-pack24.adb, s-pack24.ads,
33949         s-pack25.adb, s-pack25.ads, s-pack26.adb, s-pack26.ads,
33950         s-pack27.adb, s-pack27.ads, s-pack28.adb, s-pack28.ads,
33951         s-pack29.adb, s-pack29.ads, s-pack30.adb, s-pack30.ads,
33952         s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads,
33953         s-pack34.adb, s-pack34.ads, s-pack35.adb, s-pack35.ads,
33954         s-pack36.adb, s-pack36.ads, s-pack37.adb, s-pack37.ads,
33955         s-pack38.adb, s-pack38.ads, s-pack39.adb, s-pack39.ads,
33956         s-pack40.adb, s-pack40.ads, s-pack41.adb, s-pack41.ads,
33957         s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads,
33958         s-pack44.adb, s-pack44.ads, s-pack45.adb, s-pack45.ads,
33959         s-pack46.adb, s-pack46.ads, s-pack47.adb, s-pack47.ads,
33960         s-pack48.adb, s-pack48.ads, s-pack49.adb, s-pack49.ads,
33961         s-pack50.adb, s-pack50.ads, s-pack51.adb, s-pack51.ads,
33962         s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads,
33963         s-pack54.adb, s-pack54.ads, s-pack55.adb, s-pack55.ads,
33964         s-pack56.adb, s-pack56.ads, s-pack57.adb, s-pack57.ads,
33965         s-pack58.adb, s-pack58.ads, s-pack59.adb, s-pack59.ads,
33966         s-pack60.adb, s-pack60.ads, s-pack61.adb, s-pack61.ads,
33967         s-pack62.adb, s-pack62.ads, s-pack63.adb, s-pack63.ads,
33968         s-parame.adb, s-parame.ads, s-parint.adb, s-parint.ads,
33969         s-pooglo.adb, s-pooglo.ads, s-pooloc.adb, s-pooloc.ads,
33970         s-poosiz.adb, s-poosiz.ads, s-powtab.ads, s-proinf.adb,
33971         s-proinf.ads, s-rpc.adb, s-rpc.ads, s-scaval.ads,
33972         s-secsta.adb, s-secsta.ads, s-sequio.adb, s-sequio.ads,
33973         s-shasto.adb, s-shasto.ads, s-soflin.adb, s-soflin.ads,
33974         s-sopco3.adb, s-sopco3.ads, s-sopco4.adb, s-sopco4.ads,
33975         s-sopco5.adb, s-sopco5.ads, s-stache.adb, s-stache.ads,
33976         s-stalib.adb, s-stalib.ads, s-stoele.adb, s-stoele.ads,
33977         s-stopoo.ads, s-stratt.adb, s-stratt.ads, s-strops.adb,
33978         s-strops.ads, s-taasde.adb, s-taasde.ads, s-tadeca.adb,
33979         s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-taenca.adb,
33980         s-taenca.ads, s-taprob.adb, s-taprob.ads, s-taprop.ads,
33981         s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads,
33982         s-tasinf.adb, s-tasinf.ads, s-tasini.adb, s-tasini.ads,
33983         s-taskin.adb, s-taskin.ads, s-tasque.adb, s-tasque.ads,
33984         s-tasren.adb, s-tasren.ads, s-tasres.ads, s-tassta.adb,
33985         s-tassta.ads, s-tasuti.adb, s-tasuti.ads, s-tataat.adb,
33986         s-tataat.ads, s-tpinop.adb, s-tpinop.ads, s-tpoben.adb,
33987         s-tpoben.ads, s-tpobop.adb, s-tpobop.ads, s-tposen.adb,
33988         s-tposen.ads, s-traceb.adb, s-traceb.ads, s-traces.adb,
33989         s-traces.ads, s-tratas.adb, s-tratas.ads, s-unstyp.ads,
33990         s-vaflop.adb, s-vaflop.ads, s-valboo.adb, s-valboo.ads,
33991         s-valcha.adb, s-valcha.ads, s-valdec.adb, s-valdec.ads,
33992         s-valenu.adb, s-valenu.ads, s-valint.adb, s-valint.ads,
33993         s-vallld.adb, s-vallld.ads, s-vallli.adb, s-vallli.ads,
33994         s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads,
33995         s-valuns.adb, s-valuns.ads, s-valuti.adb, s-valuti.ads,
33996         s-valwch.adb, s-valwch.ads, s-vercon.adb, s-vercon.ads,
33997         s-vmexta.adb, s-vmexta.ads, s-wchcnv.adb, s-wchcnv.ads,
33998         s-wchcon.ads, s-wchjis.adb, s-wchjis.ads, s-wchstw.adb,
33999         s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, s-widboo.adb,
34000         s-widboo.ads, s-widcha.adb, s-widcha.ads, s-widenu.adb,
34001         s-widenu.ads, s-widlli.adb, s-widlli.ads, s-widllu.adb,
34002         s-widllu.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb,
34003         s-wwdcha.ads, s-wwdenu.adb, s-wwdenu.ads, s-wwdwch.adb,
34004         s-wwdwch.ads, scans.adb, scans.ads, scn-nlit.adb,
34005         scn-slit.adb, scn.adb, scn.ads, sdefault.ads,
34006         sem.adb, sem.ads, sem_aggr.adb, sem_aggr.ads,
34007         sem_attr.adb, sem_attr.ads, sem_case.adb, sem_case.ads,
34008         sem_cat.adb, sem_cat.ads, sem_ch10.adb, sem_ch10.ads,
34009         sem_ch11.adb, sem_ch11.ads, sem_ch12.adb, sem_ch12.ads,
34010         sem_ch13.adb, sem_ch13.ads, sem_ch2.adb, sem_ch2.ads,
34011         sem_ch3.adb, sem_ch3.ads, sem_ch4.adb, sem_ch4.ads,
34012         sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
34013         sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads,
34014         sem_ch9.adb, sem_ch9.ads, sem_disp.adb, sem_disp.ads,
34015         sem_dist.adb, sem_dist.ads, sem_elab.adb, sem_elab.ads,
34016         sem_elim.adb, sem_elim.ads, sem_eval.adb, sem_eval.ads,
34017         sem_intr.adb, sem_intr.ads, sem_maps.adb, sem_maps.ads,
34018         sem_mech.adb, sem_mech.ads, sem_prag.adb, sem_prag.ads,
34019         sem_res.adb, sem_res.ads, sem_smem.adb, sem_smem.ads,
34020         sem_type.adb, sem_type.ads, sem_util.adb, sem_util.ads,
34021         sem_vfpt.adb, sem_vfpt.ads, sem_warn.adb, sem_warn.ads,
34022         sequenio.ads, sfn_scan.adb, sfn_scan.ads, sinfo-cn.adb,
34023         sinfo-cn.ads, sinfo.adb, sinfo.ads, sinput-d.adb,
34024         sinput-d.ads, sinput-l.adb, sinput-l.ads, sinput-p.adb,
34025         sinput-p.ads, sinput.adb, sinput.ads, snames.adb,
34026         snames.ads, sprint.adb, sprint.ads, stand.adb,
34027         stand.ads, stringt.adb, stringt.ads, style.adb,
34028         style.ads, stylesw.adb, stylesw.ads, switch-b.adb,
34029         switch-b.ads, switch-c.adb, switch-c.ads, switch-m.adb,
34030         switch-m.ads, switch.adb, switch.ads, system.ads,
34031         table.adb, table.ads, targparm.adb, targparm.ads,
34032         tbuild.adb, tbuild.ads, text_io.ads, trans.c,
34033         tree_gen.adb, tree_gen.ads, tree_in.adb, tree_in.ads,
34034         tree_io.adb, tree_io.ads, treepr.adb, treepr.ads,
34035         ttypef.ads, ttypes.ads, types.adb, types.ads,
34036         uintp.adb, uintp.ads, uname.adb, uname.ads,
34037         unchconv.ads, unchdeal.ads, urealp.adb, urealp.ads,
34038         usage.adb, usage.ads, validsw.adb, validsw.ads,
34039         widechar.adb, widechar.ads, xeinfo.adb, xnmake.adb,
34040         xr_tabls.adb, xr_tabls.ads, xref_lib.adb, xref_lib.ads,
34041         xsinfo.adb, xsnames.adb, xtreeprs.adb : Merge header,
34042         formatting and other trivial changes from ACT.
34043
34044 2003-04-12  Zack Weinberg  <zack@codesourcery.com>
34045
34046         * gigi.h, utils2.c (build_constructor):
34047         Rename gnat_build_constructor. Use build_constructor.
34048         * decl.c (gnat_to_gnu_entity)
34049         * trans.c (tree_transform, pos_to_constructor, extract_values)
34050         * ada/utils.c (build_template, convert_to_fat_pointer, convert)
34051         (unchecked_convert)
34052         * ada/utils2.c (build_binary_op, build_call_raise, build_allocator)
34053         (fill_vms_descriptor):
34054         Update to match.
34055
34056 2003-04-06  Zack Weinberg  <zack@codesourcery.com>
34057
34058         * ada-tree.def: Make fourth element for GNAT_LOOP_ID zero.
34059         * misc.c (gnat_tree_size): New function.
34060         (LANG_HOOKS_TREE_SIZE): Override.
34061
34062 2003-04-03  Jason Merrill  <jason@redhat.com>
34063
34064         * misc.c (gnat_adjust_rli): #if 0.
34065
34066 2003-03-31   Geert Bosch  <bosch@gnat.com>
34067
34068         PR ada/10020
34069         * link.c : Fix misspelled "const" keyword
34070
34071 2003-03-23  Mark Mitchell  <mark@codesourcery.com>
34072
34073         PR c++/7086
34074         * utils2.c: Adjust calls to put_var_into_stack.
34075
34076 2003-03-12  Nathanael Nerode  <neroden@gcc.gnu.org>
34077
34078         * Make-lang.in, Makefile.in, config-lang.in: GCC, not GNU CC.
34079
34080 2003-03-08  Neil Booth  <neil@daikokuya.co.uk>
34081
34082         * misc.c (gnat_init): Update for new prototype.
34083
34084 2003-03-05  Olivier Hainque  <hainque@gnat.com>
34085
34086         ada/9961
34087         * raise.c (__gnat_Unwind_RaiseException): Add prototype to avoid
34088         warning, and fix return type for the IN_RTS && !SJLJ case.
34089
34090 2003-03-04  Tom Tromey  <tromey@redhat.com>
34091
34092         * Make-lang.in (ada.tags): New target.
34093
34094 2003-03-04  Olivier Hainque  <hainque@act-europe.fr>
34095
34096         ada/9911
34097         * a-except.adb (Unwind_RaiseException): Import a GNAT specific
34098         wrapper, which name remains constant whatever underlying GCC
34099         scheme.
34100
34101         * raise.c (__gnat_Unwind_RaiseException): New wrappers, providing
34102         the stable interface needed for a-except.
34103
34104 2003-03-02  Andreas Jaeger  <aj@suse.de>
34105
34106         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
34107         gnat_ug_wnt.texi: Regenerate.
34108
34109 2003-03-02  Laurent Guerby  <guerby@acm.org>
34110
34111         * Makefile.in (install-gnatlib): Match previous change there
34112         so it works.
34113
34114 2003-02-28  Andreas Schwab  <schwab@suse.de>
34115
34116         * Make-lang.in (install-gnatlib): Change to ada directory before
34117         running make instead of using ada/Makefile directly.
34118
34119 2003-02-18  Ben Elliston  <bje@redhat.com>
34120
34121         Part of PR ada/9406
34122         * gnat_ug.texi (Binder output file): Grammar fix.
34123
34124 2003-02-18  Ben Elliston  <bje@redhat.com>
34125
34126         PR other/7350
34127         * 5qtaprop.adb (Sleep): Fix typo in comment.
34128
34129 2003-02-04  Joseph S. Myers  <jsm@polyomino.org.uk>
34130
34131         * gnat_rm.texi, gnat_ug.texi: Update to GFDL 1.2.
34132         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
34133         gnat_ug_wnt.texi: Regenerate.
34134
34135 2003-02-03  Christian Cornelssen  <ccorn@cs.tu-berlin.de>
34136
34137         * Make-lang.in (ada.install-info): Let $(DESTDIR)$(infodir)
34138         be created if necessary.
34139         (ada.install-common): Let $(DESTDIR)$(bindir) be created
34140         if necessary.  Remove erroneous and redundant gnatchop
34141         installation commands.  Test for gnatdll before attempting
34142         to install it.
34143         (ada.uninstall): Also uninstall gnatfind, gnatxref, gnatlbr,
34144         and gnatdll from all plausible locations.
34145
34146 2003-02-01  Richard Sandiford  <rsandifo@redhat.com>
34147
34148         * utils2.c (build_unary_op): Don't check flag_volatile.
34149         * gnat_ug.texi: Remove -fvolatile from example.
34150         * gnat_ug_vxw.texi: Likewise.
34151
34152 2003-01-29  Laurent Guerby  <guerby@acm.org>
34153
34154         PR ada/8344
34155         * final.c: rename to adafinal.c to avoid file name conflicts with gcc file.
34156         * Makefile.in: match previous change.
34157         * Make-lang.in: match previous change.
34158
34159 2003-01-29  Joel Sherrill  <joel@OARcorp.com>
34160
34161         * 5rosinte.ads: Add SIGXCPU.
34162         * 5rtpopsp.adb: New file.
34163         * Make-lang.in: Do not build gnatpsta and gnatpsys when cross.
34164         * Makefile.in: Recognize more RTEMS targets and add the RTEMS
34165         specific file 5rtpopsp.adb.
34166         * adaint.h: Add include of <stdio.h> when target is RTEMS.  This
34167         is likely needed for all newlib targets.
34168         * init.c: Add RTEMS specific version of __gnat_initialize().
34169
34170 2003-01-28  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
34171
34172         * adaint.c, adaint.h, gmem.c, init.c: Update copyright year.
34173
34174 2003-01-27  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
34175
34176         * init.c (__gnat_error_handler): Make msg const.
34177
34178         * gmem.c (convert_addresses): Move declaration ...
34179         * adaint.h: ... here.
34180         * adaint.c (convert_addresses): Adapt addrs type to match
34181         prototype.
34182
34183         * adaint.c (__gnat_try_lock): Cast pid_t to long, adapt format.
34184
34185 2003-01-24  Andreas Schwab  <schwab@suse.de>
34186
34187         * ada-tree.h (SET_TYPE_DIGITS_VALUE): Add intermediate cast to
34188         size_t to avoid warning.
34189
34190 2003-01-21  Zack Weinberg  <zack@codesourcery.com>
34191
34192         * Make-lang.in: Disable -Werror for tracebak.c and b_gnatb.c.
34193
34194 2003-01-09  Geoffrey Keating  <geoffk@apple.com>
34195
34196         * gnat_rm.texi: Remove RCS version number.
34197
34198         * ada-tree.h (union lang_tree_node): Add chain_next option.
34199
34200 2003-01-09  Christian Cornelssen  <ccorn@cs.tu-berlin.de>
34201
34202         * Make-lang.in (ada.install-info, ada.install-common,
34203         ada.uninstall): Prepend $(DESTDIR) to the destination
34204         directory in all (un)installation commands.
34205         * Makefile.in (install-gnatlib, install-rts): Ditto.
34206
34207 2002-12-28  Joseph S. Myers  <jsm@polyomino.org.uk>
34208
34209         * gnat_rm.texi, gnat_ug.texi: Use @copying.
34210         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
34211         gnat_ug_wnt.texi: Regenerate.
34212
34213 2002-12-23  Joseph S. Myers  <jsm@polyomino.org.uk>
34214
34215         * gnat_rm.texi: Include gcc-common.texi.  Use GCC version number
34216         only.
34217         * Make-lang.in ($(srcdir)/ada/gnat_ug_unx.info,
34218         $(srcdir)/ada/gnat_ug_vms.info, $(srcdir)/ada/gnat_ug_vxw.info,
34219         $(srcdir)/ada/gnat_ug_wnt.info, $(srcdir)/ada/gnat_rm.info,
34220         ada/gnat_ug_unx.dvi, ada/gnat_ug_vms.dvi, ada/gnat_ug_vxw.dvi,
34221         ada/gnat_ug_wnt.dvi, ada/gnat_rm.dvi): Depend on
34222         $(srcdir)/doc/include/gcc-common.texi.
34223
34224 2002-12-15   Geert Bosch  <bosch@gnat.com>
34225
34226         * sem_ch6.adb (Analyze_Subprogram_Body): Fix typo and formatting
34227
34228 2002-12-14   Geert Bosch  <bosch@gnat.com>
34229
34230         PR ada/5690
34231         * sem_ch6.adb (Analyze_Subprogram_Body): Recognize additional
34232         case of a body created for a Renaming_As_Body, on which
34233         conformance checks are not performed.
34234
34235 2002-11-30  Zack Weinberg  <zack@codesourcery.com>
34236
34237         * cuintp.c, decl.c, deftarg.c, misc.c, targtyps.c, trans.c,
34238         utils.c, utils2.c: Include coretypes.h and tm.h, and system.h when
34239         not already included.
34240         * Make-lang.in: Update dependencies.
34241
34242 2002-11-18  Nathanael Nerode  <neroden@gcc.gnu.org>
34243         * adaint.c (__gnat_tmp_name): Better, but good enough for now,
34244         solution to buffer overflow bug on GNU/Linux.
34245
34246 2002-11-14  Nathanael Nerode  <neroden@gcc.gnu.org>
34247
34248         PR ada/5856
34249         PR ada/6919
34250         * bindgen.adb: Remove all references to Public_Version.
34251         * comperr.adb: Remove all references to Public_Version and
34252         GNATPRO_Version; correct bug reporting instructions.
34253         * comperr.ads: Change to match bug box.
34254         * gnatvsn.ads: Remove all references to Public version and
34255         GNATPRO version.
34256
34257 2002-11-13  Nathanael Nerode  <neroden@gcc.gnu.org>
34258
34259         PR ada/6919
34260         * adaint.c (__gnat_tmp_name): Remove buffer overflow bug on
34261         GNU/Linux.
34262
34263         PR ada/6558
34264         * config-lang.in: Remove diff_excludes.
34265
34266 2002-11-05  Graham Stott  <graham.stott@btinternet.com>
34267
34268         PR ada/8358
34269         * trans.c (gnu_pending_elaboration_lists): New GC root.
34270         (build_unit_elab): Use..
34271
34272 2002-10-30   Geert Bosch  <bosch@gnat.com>
34273
34274         PR ada/6558
34275         * misc.c : Include optabs.h
34276
34277         * Make-lang.in (misc.o): Add dependency on optabs.h
34278
34279 2002-10-29   Geert Bosch  <bosch@gnat.com>
34280
34281         PR ada/6558
34282         * Make-lang.in (gnatbind): Depend on CONFIG_H
34283
34284 2002-10-29  Geert bosch  <bosch@gnat.com>
34285
34286         PR ada/6558
34287         * misc.c: Unrevert misc.c (1.13)
34288
34289 2002-10-28  Nathanael Nerode  <neroden@gcc.gnu.org>
34290
34291         * a-chlat9.ads a-cwila9.ads a-dynpri.adb a-retide.adb: Update
34292         maintainership comments.
34293
34294 2002-09-25  Nathanael Nerode  <neroden@gcc.gnu.org>
34295
34296         PR ada/5904
34297         * 5ataprop.adb 5atpopsp.adb 5bosinte.adb 5ftaprop.adb
34298         5gtaprop.adb 5htaprop.adb 5rosinte.ads 5staprop.adb
34299         5stpopse.adb 5vtaspri.ads 5zintman.adb 5ztaprop.adb
34300         7staprop.adb: Correct statements in comments about
34301         maintainership of GNAT.
34302
34303         PR ada/5904
34304         * 1ssecsta.adb 1ssecsta.ads adadecode.c adadecode.h aux-io.c
34305         gnatname.adb gnatname.ads mkdir.c osint-b.adb osint-b.ads
34306         osint-c.adb osint-c.ads osint-l.adb osint-l.ads osint-m.adb
34307         osint-m.ads prj-makr.adb prj-makr.ads prj-pp.adb prj-pp.ads
34308         s-atacco.ads s-traceb.adb s-traceb.ads s-traces.adb
34309         s-traces.ads s-tratas.adb s-tratas.ads sinput-d.adb
34310         sinput-d.ads switch-b.adb switch-b.ads switch-c.adb
34311         switch-c.ads switch-m.adb switch-m.ads: Correct statements in
34312         comments about maintainership of GNAT.
34313
34314         PR ada/6919 (forward port of patch for PR ada/5904)
34315         * 1aexcept.adb 1aexcept.ads 41intnam.ads 42intnam.ads
34316         4aintnam.ads 4cintnam.ads 4dintnam.ads 4hexcpol.adb
34317         4lintnam.ads 4mintnam.ads 4nintnam.ads 4onumaux.ads
34318         4pintnam.ads 4rintnam.ads 4sintnam.ads 4uintnam.ads
34319         4vcalend.adb 4vintnam.ads 4wcalend.adb 4wexcpol.adb
34320         4wintnam.ads 4zintnam.ads 4znumaux.ads 4zsytaco.adb
34321         4zsytaco.ads 51osinte.adb 51osinte.ads 52osinte.adb
34322         52osinte.ads 52system.ads 53osinte.ads 5aosinte.ads
34323         5asystem.ads 5atasinf.ads 5ataspri.ads 5avxwork.ads
34324         5bosinte.ads 5bsystem.ads 5cosinte.ads 5dosinte.ads
34325         5esystem.ads 5fosinte.ads 5fsystem.ads 5ftasinf.ads
34326         5ginterr.adb 5gmastop.adb 5gosinte.ads 5gproinf.adb
34327         5gproinf.ads 5gsystem.ads 5gtasinf.adb 5gtasinf.ads
34328         5gtpgetc.adb 5hparame.ads 5hsystem.ads 5htaspri.ads
34329         5iosinte.ads 5itaspri.ads 5ksystem.ads 5kvxwork.ads
34330         5losinte.ads 5lsystem.ads 5mosinte.ads 5mvxwork.ads
34331         5ninmaop.adb 5nintman.adb 5nosinte.ads 5ntaspri.ads
34332         5oosprim.adb 5oparame.adb 5osystem.ads 5posinte.ads
34333         5posprim.adb 5pvxwork.ads 5rosinte.ads 5rparame.adb
34334         5sintman.adb 5sosinte.ads 5sparame.adb 5ssystem.ads
34335         5stasinf.adb 5stasinf.ads 5staspri.ads 5svxwork.ads
34336         5tosinte.ads 5uosinte.ads 5vasthan.adb 5vinterr.adb
34337         5vintman.ads 5vosinte.ads 5vosprim.adb 5vosprim.ads
34338         5vparame.ads 5vsystem.ads 5vtaspri.ads 5vtpopde.adb
34339         5vtpopde.ads 5vvaflop.adb 5wintman.adb 5wmemory.adb
34340         5wosinte.ads 5wosprim.adb 5wsystem.ads 5wtaprop.adb
34341         5wtaspri.ads 5ysystem.ads 5zinterr.adb 5zosinte.adb
34342         5zosinte.ads 5zosprim.adb 5zsystem.ads 6vcpp.adb 6vcstrea.adb
34343         7sosprim.adb 86numaux.adb 86numaux.ads 9drpc.adb a-astaco.adb
34344         a-caldel.ads a-calend.adb a-calend.ads a-chahan.adb
34345         a-chahan.ads a-colien.adb a-colien.ads a-colire.adb
34346         a-colire.ads a-comlin.adb a-comlin.ads a-cwila1.ads
34347         a-decima.adb a-decima.ads a-diocst.adb a-diocst.ads
34348         a-direio.adb a-direio.ads a-einuoc.adb a-einuoc.ads
34349         a-except.adb a-except.ads a-excpol.adb a-exctra.adb
34350         a-exctra.ads a-filico.adb a-filico.ads a-finali.adb
34351         a-finali.ads a-interr.ads a-intsig.adb a-intsig.ads
34352         a-ngcefu.adb a-ngcoty.adb a-ngcoty.ads a-ngelfu.adb
34353         a-nudira.adb a-nudira.ads a-nuflra.adb a-nuflra.ads
34354         a-numaux.ads a-reatim.ads a-retide.ads a-sequio.adb
34355         a-sequio.ads a-siocst.adb a-siocst.ads a-ssicst.adb
34356         a-ssicst.ads a-stmaco.ads a-storio.adb a-strbou.adb
34357         a-strbou.ads a-stream.ads a-strfix.adb a-strfix.ads
34358         a-strmap.adb a-strmap.ads a-strsea.adb a-strsea.ads
34359         a-strunb.adb a-strunb.ads a-ststio.adb a-ststio.ads
34360         a-stunau.adb a-stunau.ads a-stwibo.adb a-stwibo.ads
34361         a-stwifi.adb a-stwima.adb a-stwima.ads a-stwise.adb
34362         a-stwise.ads a-stwiun.adb a-stwiun.ads a-suteio.adb
34363         a-suteio.ads a-swmwco.ads a-swuwti.adb a-swuwti.ads
34364         a-sytaco.adb a-sytaco.ads a-tags.adb a-tags.ads a-tasatt.ads
34365         a-taside.adb a-taside.ads a-teioed.adb a-teioed.ads
34366         a-textio.adb a-textio.ads a-ticoau.adb a-ticoau.ads
34367         a-ticoio.adb a-ticoio.ads a-tideau.adb a-tideau.ads
34368         a-tideio.adb a-tideio.ads a-tienau.adb a-tienau.ads
34369         a-tienio.adb a-tienio.ads a-tifiio.adb a-tifiio.ads
34370         a-tiflau.adb a-tiflau.ads a-tiflio.adb a-tiflio.ads
34371         a-tigeau.adb a-tigeau.ads a-tiinau.adb a-tiinau.ads
34372         a-tiinio.adb a-tiinio.ads a-timoau.adb a-timoau.ads
34373         a-timoio.adb a-timoio.ads a-tiocst.adb a-tiocst.ads
34374         a-titest.adb a-witeio.adb a-witeio.ads a-wtcoau.adb
34375         a-wtcoau.ads a-wtcoio.adb a-wtcstr.adb a-wtcstr.ads
34376         a-wtdeau.adb a-wtdeau.ads a-wtdeio.adb a-wtdeio.ads
34377         a-wtedit.adb a-wtedit.ads a-wtenau.adb a-wtenau.ads
34378         a-wtenio.adb a-wtenio.ads a-wtfiio.adb a-wtfiio.ads
34379         a-wtflau.adb a-wtflau.ads a-wtflio.adb a-wtflio.ads
34380         a-wtgeau.adb a-wtgeau.ads a-wtinau.adb a-wtinau.ads
34381         a-wtinio.adb a-wtmoau.adb a-wtmoau.ads a-wtmoio.adb
34382         a-wtmoio.ads a-wttest.adb ada-tree.def ada-tree.h ada.h
34383         adaint.c adaint.h ali-util.adb ali-util.ads ali.adb ali.ads
34384         alloc.ads argv.c atree.adb atree.ads atree.h back_end.adb
34385         back_end.ads bcheck.adb bcheck.ads binde.adb binde.ads
34386         binderr.adb binderr.ads bindgen.adb bindgen.ads bindusg.adb
34387         bindusg.ads butil.adb butil.ads cal.c casing.adb casing.ads
34388         ceinfo.adb checks.adb checks.ads cio.c comperr.adb comperr.ads
34389         csets.adb csets.ads csinfo.adb cstand.adb cstand.ads
34390         cstreams.c cuintp.c debug.adb debug.ads debug_a.adb
34391         debug_a.ads dec-io.adb dec-io.ads dec.ads decl.c deftarg.c
34392         einfo.adb einfo.ads einfo.h elists.adb elists.ads elists.h
34393         errno.c errout.adb errout.ads eval_fat.adb eval_fat.ads exit.c
34394         exp_aggr.adb exp_aggr.ads exp_attr.adb exp_attr.ads
34395         exp_ch10.ads exp_ch11.adb exp_ch11.ads exp_ch12.adb
34396         exp_ch12.ads exp_ch13.adb exp_ch13.ads exp_ch2.adb exp_ch2.ads
34397         exp_ch3.adb exp_ch3.ads exp_ch4.adb exp_ch4.ads exp_ch5.adb
34398         exp_ch5.ads exp_ch6.adb exp_ch6.ads exp_ch7.adb exp_ch7.ads
34399         exp_ch8.adb exp_ch8.ads exp_ch9.adb exp_ch9.ads exp_code.adb
34400         exp_code.ads exp_dbug.adb exp_dbug.ads exp_disp.adb
34401         exp_disp.ads exp_dist.adb exp_dist.ads exp_fixd.adb
34402         exp_fixd.ads exp_imgv.adb exp_imgv.ads exp_intr.adb
34403         exp_intr.ads exp_pakd.adb exp_pakd.ads exp_prag.adb
34404         exp_prag.ads exp_smem.adb exp_smem.ads exp_strm.adb
34405         exp_strm.ads exp_tss.adb exp_tss.ads exp_util.adb exp_util.ads
34406         exp_vfpt.adb exp_vfpt.ads expander.adb expander.ads fe.h
34407         final.c fmap.adb fmap.ads fname-sf.adb fname-sf.ads
34408         fname-uf.adb fname-uf.ads fname.adb fname.ads freeze.adb
34409         freeze.ads frontend.adb frontend.ads g-calend.ads g-comlin.adb
34410         g-debpoo.adb g-debpoo.ads g-locfil.adb g-os_lib.ads
34411         g-regist.adb g-regist.ads get_targ.adb get_targ.ads gigi.h
34412         gmem.c gnat1drv.adb gnat1drv.ads gnat_ug.texi gnatbind.adb
34413         gnatbind.ads gnatbl.c gnatcmd.adb gnatcmd.ads gnatdll.adb
34414         gnatfind.adb gnatkr.adb gnatkr.ads gnatlbr.adb gnatlink.adb
34415         gnatlink.ads gnatls.adb gnatls.ads gnatmake.adb gnatmake.ads
34416         gnatmem.adb gnatprep.adb gnatprep.ads gnatpsta.adb gnatvsn.ads
34417         gnatxref.adb hlo.adb hlo.ads hostparm.ads i-c.adb i-cexten.ads
34418         i-cobol.adb i-cobol.ads i-cpoint.adb i-cpoint.ads i-cpp.adb
34419         i-cpp.ads i-cstrea.adb i-cstrea.ads i-cstrin.adb i-cstrin.ads
34420         i-fortra.adb i-os2err.ads i-os2lib.adb i-os2lib.ads
34421         i-os2syn.ads i-os2thr.ads i-pacdec.adb i-pacdec.ads
34422         impunit.adb impunit.ads init.c inline.adb inline.ads io-aux.c
34423         itypes.adb itypes.ads krunch.adb krunch.ads lang-options.h
34424         lang-specs.h layout.adb layout.ads lib-list.adb lib-load.adb
34425         lib-load.ads lib-sort.adb lib-util.adb lib-util.ads
34426         lib-writ.adb lib-writ.ads lib-xref.adb lib-xref.ads lib.adb
34427         lib.ads link.c live.adb live.ads make.adb make.ads makeusg.adb
34428         makeusg.ads math_lib.adb mdll.adb mdll.ads memtrack.adb misc.c
34429         namet.adb namet.ads namet.h nlists.adb nlists.ads nlists.h
34430         nmake.adb nmake.ads nmake.adt opt.adb opt.ads osint.adb
34431         osint.ads output.adb output.ads par-ch10.adb par-ch11.adb
34432         par-ch12.adb par-ch13.adb par-ch2.adb par-ch3.adb par-ch4.adb
34433         par-ch5.adb par-ch6.adb par-ch7.adb par-ch8.adb par-ch9.adb
34434         par-endh.adb par-labl.adb par-load.adb par-prag.adb
34435         par-sync.adb par-tchk.adb par-util.adb par.adb par.ads
34436         prj-attr.adb prj-attr.ads prj-com.adb prj-com.ads prj-dect.adb
34437         prj-dect.ads prj-env.adb prj-env.ads prj-ext.adb prj-ext.ads
34438         prj-nmsc.adb prj-nmsc.ads prj-pars.adb prj-pars.ads
34439         prj-part.adb prj-part.ads prj-proc.adb prj-proc.ads
34440         prj-strt.adb prj-strt.ads prj-tree.adb prj-tree.ads
34441         prj-util.adb prj-util.ads prj.adb prj.ads raise.c raise.h
34442         repinfo.adb repinfo.ads repinfo.h restrict.adb restrict.ads
34443         rident.ads rtsfind.adb rtsfind.ads s-addima.adb s-addima.ads
34444         s-arit64.adb s-arit64.ads s-assert.adb s-assert.ads
34445         s-asthan.adb s-asthan.ads s-atacco.adb s-auxdec.adb
34446         s-auxdec.ads s-bitops.adb s-bitops.ads s-chepoo.ads
34447         s-direio.adb s-direio.ads s-except.ads s-exctab.adb
34448         s-exctab.ads s-exnflt.ads s-exngen.adb s-exngen.ads
34449         s-exnint.ads s-exnlfl.ads s-exnlin.ads s-exnllf.ads
34450         s-exnlli.ads s-exnsfl.ads s-exnsin.ads s-exnssi.ads
34451         s-expflt.ads s-expgen.adb s-expgen.ads s-expint.ads
34452         s-explfl.ads s-explin.ads s-expllf.ads s-explli.ads
34453         s-expllu.adb s-expllu.ads s-expmod.adb s-expmod.ads
34454         s-expsfl.ads s-expsin.ads s-expssi.ads s-expuns.adb
34455         s-expuns.ads s-fatflt.ads s-fatgen.adb s-fatgen.ads
34456         s-fatlfl.ads s-fatllf.ads s-fatsfl.ads s-ficobl.ads
34457         s-fileio.adb s-fileio.ads s-finimp.adb s-finimp.ads
34458         s-finroo.adb s-finroo.ads s-fore.adb s-fore.ads s-imgbiu.adb
34459         s-imgbiu.ads s-imgboo.adb s-imgboo.ads s-imgcha.adb
34460         s-imgcha.ads s-imgdec.adb s-imgdec.ads s-imgenu.adb
34461         s-imgenu.ads s-imgint.adb s-imgint.ads s-imgllb.adb
34462         s-imgllb.ads s-imglld.adb s-imglld.ads s-imglli.adb
34463         s-imglli.ads s-imgllu.adb s-imgllu.ads s-imgllw.adb
34464         s-imgllw.ads s-imgrea.adb s-imgrea.ads s-imguns.adb
34465         s-imguns.ads s-imgwch.adb s-imgwch.ads s-imgwiu.adb
34466         s-imgwiu.ads s-inmaop.ads s-interr.adb s-interr.ads
34467         s-intman.ads s-io.adb s-io.ads s-maccod.ads s-mantis.adb
34468         s-mantis.ads s-memory.adb s-memory.ads s-osprim.ads
34469         s-pack03.adb s-pack03.ads s-pack05.adb s-pack05.ads
34470         s-pack06.adb s-pack06.ads s-pack07.adb s-pack07.ads
34471         s-pack09.adb s-pack09.ads s-pack10.adb s-pack10.ads
34472         s-pack11.adb s-pack11.ads s-pack12.adb s-pack12.ads
34473         s-pack13.adb s-pack13.ads s-pack14.adb s-pack14.ads
34474         s-pack15.adb s-pack15.ads s-pack17.adb s-pack17.ads
34475         s-pack18.adb s-pack18.ads s-pack19.adb s-pack19.ads
34476         s-pack20.adb s-pack20.ads s-pack21.adb s-pack21.ads
34477         s-pack22.adb s-pack22.ads s-pack23.adb s-pack23.ads
34478         s-pack24.adb s-pack24.ads s-pack25.adb s-pack25.ads
34479         s-pack26.adb s-pack26.ads s-pack27.adb s-pack27.ads
34480         s-pack28.adb s-pack28.ads s-pack29.adb s-pack29.ads
34481         s-pack30.adb s-pack30.ads s-pack31.adb s-pack31.ads
34482         s-pack33.adb s-pack33.ads s-pack34.adb s-pack34.ads
34483         s-pack35.adb s-pack35.ads s-pack36.adb s-pack36.ads
34484         s-pack37.adb s-pack37.ads s-pack38.adb s-pack38.ads
34485         s-pack39.adb s-pack39.ads s-pack40.adb s-pack40.ads
34486         s-pack41.adb s-pack41.ads s-pack42.adb s-pack42.ads
34487         s-pack43.adb s-pack43.ads s-pack44.adb s-pack44.ads
34488         s-pack45.adb s-pack45.ads s-pack46.adb s-pack46.ads
34489         s-pack47.adb s-pack47.ads s-pack48.adb s-pack48.ads
34490         s-pack49.adb s-pack49.ads s-pack50.adb s-pack50.ads
34491         s-pack51.adb s-pack51.ads s-pack52.adb s-pack52.ads
34492         s-pack53.adb s-pack53.ads s-pack54.adb s-pack54.ads
34493         s-pack55.adb s-pack55.ads s-pack56.adb s-pack56.ads
34494         s-pack57.adb s-pack57.ads s-pack58.adb s-pack58.ads
34495         s-pack59.adb s-pack59.ads s-pack60.adb s-pack60.ads
34496         s-pack61.adb s-pack61.ads s-pack62.adb s-pack62.ads
34497         s-pack63.adb s-pack63.ads s-parame.adb s-parame.ads
34498         s-parint.adb s-parint.ads s-pooglo.adb s-pooglo.ads
34499         s-pooloc.adb s-pooloc.ads s-poosiz.adb s-poosiz.ads
34500         s-powtab.ads s-proinf.adb s-proinf.ads s-rpc.adb s-rpc.ads
34501         s-scaval.ads s-secsta.adb s-secsta.ads s-sequio.adb
34502         s-sequio.ads s-shasto.adb s-shasto.ads s-soflin.adb
34503         s-soflin.ads s-sopco3.adb s-sopco3.ads s-sopco4.adb
34504         s-sopco4.ads s-sopco5.adb s-sopco5.ads s-stache.adb
34505         s-stache.ads s-stalib.adb s-stalib.ads s-stoele.adb
34506         s-stopoo.ads s-stratt.adb s-stratt.ads s-strops.adb
34507         s-strops.ads s-taprob.ads s-taprop.ads s-tarest.ads
34508         s-tasdeb.adb s-tasdeb.ads s-tasinf.adb s-tasinf.ads
34509         s-tasini.ads s-taskin.ads s-tasren.ads s-tasres.ads
34510         s-tassta.ads s-tpinop.adb s-tpinop.ads s-tpoben.ads
34511         s-tpobop.ads s-unstyp.ads s-vaflop.adb s-vaflop.ads
34512         s-valboo.adb s-valboo.ads s-valcha.adb s-valcha.ads
34513         s-valdec.adb s-valdec.ads s-valenu.adb s-valenu.ads
34514         s-valint.adb s-valint.ads s-vallld.adb s-vallld.ads
34515         s-vallli.adb s-vallli.ads s-valllu.adb s-valllu.ads
34516         s-valrea.adb s-valrea.ads s-valuns.adb s-valuns.ads
34517         s-valuti.adb s-valuti.ads s-valwch.adb s-valwch.ads
34518         s-vercon.adb s-vercon.ads s-vmexta.adb s-vmexta.ads
34519         s-wchcnv.adb s-wchcnv.ads s-wchcon.ads s-wchjis.adb
34520         s-wchjis.ads s-wchstw.adb s-wchstw.ads s-wchwts.adb
34521         s-wchwts.ads s-widboo.adb s-widboo.ads s-widcha.adb
34522         s-widcha.ads s-widenu.adb s-widenu.ads s-widlli.adb
34523         s-widlli.ads s-widllu.adb s-widllu.ads s-widwch.adb
34524         s-widwch.ads s-wwdcha.adb s-wwdcha.ads s-wwdenu.adb
34525         s-wwdenu.ads s-wwdwch.adb s-wwdwch.ads scans.adb scans.ads
34526         scn-nlit.adb scn-slit.adb scn.adb scn.ads sdefault.ads sem.adb
34527         sem.ads sem_aggr.adb sem_aggr.ads sem_attr.adb sem_attr.ads
34528         sem_case.adb sem_case.ads sem_cat.adb sem_cat.ads sem_ch10.adb
34529         sem_ch10.ads sem_ch11.adb sem_ch11.ads sem_ch12.adb
34530         sem_ch12.ads sem_ch13.adb sem_ch13.ads sem_ch2.adb sem_ch2.ads
34531         sem_ch3.adb sem_ch3.ads sem_ch4.adb sem_ch4.ads sem_ch5.adb
34532         sem_ch5.ads sem_ch6.adb sem_ch6.ads sem_ch7.adb sem_ch7.ads
34533         sem_ch8.adb sem_ch8.ads sem_ch9.adb sem_ch9.ads sem_disp.adb
34534         sem_disp.ads sem_dist.adb sem_dist.ads sem_elab.adb
34535         sem_elab.ads sem_elim.adb sem_elim.ads sem_eval.adb
34536         sem_eval.ads sem_intr.adb sem_intr.ads sem_maps.adb
34537         sem_maps.ads sem_mech.adb sem_mech.ads sem_prag.adb
34538         sem_prag.ads sem_res.adb sem_res.ads sem_smem.adb sem_smem.ads
34539         sem_type.adb sem_type.ads sem_util.adb sem_util.ads
34540         sem_vfpt.adb sem_vfpt.ads sem_warn.adb sem_warn.ads
34541         sfn_scan.adb sfn_scan.ads sinfo-cn.adb sinfo-cn.ads sinfo.adb
34542         sinfo.ads sinfo.h sinput-l.adb sinput-l.ads sinput-p.adb
34543         sinput-p.ads sinput.adb sinput.ads snames.adb snames.ads
34544         snames.h sprint.adb sprint.ads stand.adb stand.ads stringt.adb
34545         stringt.ads stringt.h style.adb style.ads stylesw.adb
34546         stylesw.ads switch.adb switch.ads sysdep.c system.ads
34547         table.adb table.ads targparm.adb targparm.ads targtyps.c
34548         tbuild.adb tbuild.ads trans.c tree_gen.adb tree_gen.ads
34549         tree_in.adb tree_in.ads tree_io.adb tree_io.ads treepr.adb
34550         treepr.ads treeprs.ads treeprs.adt ttypef.ads ttypes.ads
34551         types.adb types.ads types.h uintp.adb uintp.ads uintp.h
34552         uname.adb uname.ads urealp.adb urealp.ads urealp.h usage.adb
34553         usage.ads utils.c utils2.c validsw.adb validsw.ads
34554         widechar.adb widechar.ads xeinfo.adb xnmake.adb xr_tabls.adb
34555         xr_tabls.ads xref_lib.adb xref_lib.ads xsinfo.adb xsnames.adb
34556         xtreeprs.adb: Correct statements in comments about maintainership
34557         of GNAT.
34558
34559 2002-09-23  Zack Weinberg  <zack@codesourcery.com>
34560
34561         * Make-lang.in (EXTRA_GNATBIND_OBJS): Add version.o.
34562         * Makefile.in (TOOLS_LIBS): Add ../../version.o.
34563         * gnatvsn.ads: Gnat_Version_String is now a function.
34564         * gnatvsn.adb: New file.  When asked for Gnat_Version_String,
34565         copy the C version_string into a String and return it.
34566         * gnatcmd.adb, gnatkr.adb, gnatlbr.adb, gnatlink.adb,
34567         gnatls.adb,gnatmake.adb, gnatprep.adb, gnatpsta.adb:
34568         Remove pragma Ident (Gnat_Version_String).  If this was the
34569         sole use of package Gnatvsn, remove the with statement too.
34570         * gnat1drv.adb: Tweak -gnatv output.
34571
34572 2002-09-17  Richard Henderson  <rth@redhat.com>
34573
34574         * trans.c (tree_transform): Use real_ldexp not REAL_VALUE_LDEXP.
34575         * config/dsp16xx/dsp16xx.md (fixuns_trunchfhi2): Use real_2expN.
34576         * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
34577         (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
34578         * config/m68k/m68k.c (floating_exact_log2): Use real_exponent
34579         and real_2expN instead of a loop.
34580         * doc/tm.texi (REAL_VALUE_LDEXP): Remove.
34581         (REAL_VALUE_RNDZINT, REAL_VALUE_UNSIGNED_RNDZINT): Remove.
34582
34583 2002-08-25  Andre Leis  <a.leis@gmx.net>
34584             David Billinghurst  <David.Billinghurst@riotinto.com>
34585
34586         * sysdep.c (__gnat_ttyname): include <termios.h> on cygwin
34587
34588 2002-08-13  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
34589
34590         * Make-lang.in (gnatbind$(exeext)): Link with $(SYSLIBS).
34591         Remove $(CONFIG_H) dependency.
34592
34593 2002-08-08  Nathan Sidwell  <nathan@codesourcery.com>
34594
34595         * ada/Make-lang.in (ada.mostlyclean): Remove coverage files.
34596
34597 2002-07-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
34598
34599         * adadecode.c (ada_demangle): Use xstrdup in lieu of
34600         xmalloc/strcpy.
34601         * misc.c (gnat_decode_option): Likewise.
34602
34603 2002-07-15  Florian Weimer  <fw@deneb.enyo.de>
34604
34605         * make.adb (Add_Switch): Make Generic_Position a procedure.  The
34606         function approach did not work well because of a side effect (the
34607         function call could reallocate the table which was being indexed
34608         using its result). Fixes ada/4851. [RESURRECTED]
34609
34610 2002-07-01  Roger Sayle  <roger@eyesopen.com>
34611
34612         * ada/utils.c (builtin_function): Accept an additional parameter.
34613
34614 2002-06-28  Andreas Jaeger  <aj@suse.de>
34615
34616         PR ada/7144
34617         * Makefile.in: Fix typo in comment, patch by Adrian Knoth
34618         <adi@thur.de>.
34619
34620 2002-06-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
34621
34622         * Makefile.in (SHELL): Set to @SHELL@.
34623
34624 2002-06-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
34625
34626         * utils.c (init_gigi_decls): Use ARRAY_SIZE in lieu of explicit
34627         array size calculation.
34628
34629 2002-06-04  Andreas Jaeger  <aj@suse.de>
34630
34631         * Make-lang.in (gnatbind): Readd rule that has been lost in last
34632         patch.
34633
34634 2002-06-03  Geoffrey Keating  <geoffk@redhat.com>
34635
34636         Merge from pch-branch:
34637
34638         * config-lang.in (gtfiles): Add ada-tree.h.
34639         * ada-tree.h (SET_TYPE_CI_CO_LIST): New.
34640         (SET_TYPE_MODULUS): New.
34641         (SET_TYPE_INDEX): New.
34642         (SET_TYPE_DIGITS_VALUE): New.
34643         (SET_TYPE_RM_SIZE): New.
34644         (SET_TYPE_UNCONSTRAINED_ARRAY): New.
34645         (SET_TYPE_ADA_SIZE): New.
34646         (SET_TYPE_ACTUAL_BOUNDS): New.
34647         (SET_DECL_CONST_CORRESPONDING_VAR): New.
34648         (SET_DECL_ORIGINAL_FIELD): New.
34649         (TREE_LOOP_ID): Correct typo.
34650         * decl.c: Use new macros.
34651         * utils.c: Include debug.h, use new macros.
34652         * utils2.c: Use new macros.
34653
34654         * ada-tree.h: Update all macros for new tree description.
34655         (struct tree_loop_id): New.
34656         (union lang_tree_node): New.
34657         (struct lang_decl): New.
34658         (struct lang_type): New.
34659         * misc.c (gnat_mark_tree): Delete.
34660         (LANG_HOOKS_MARK_TREE): Delete.
34661         * trans.c (tree_transform): No longer any need to cast
34662         for TREE_LOOP_ID.
34663
34664         * utils.c (struct language_function): New dummy structure.
34665
34666         * Makefile.in (decl.o): gt-ada-<filename.h> is in objdir, not srcdir.
34667         (misc.o): Likewise.
34668         (utils.o): Likewise; also gtype-ada.h.
34669         * Make-lang.in (gnat1): Add dependency on s-gtype.
34670         (gnatbind): Add dependency on $(CONFIG_H).
34671         * utils.c: Correct last #include.
34672         (stuct e_stack): Remove unnecessary 'static'.
34673         (mark_e_stack): Remove unused prototype.
34674
34675         * scn-nlit.adb: Remove whitespace after version number to
34676         keep lines under 80 chars.
34677         * snames.adb: Likewise.
34678         * treepr.ads: Likewise.
34679
34680         * Makefile.in (decl.o): Include gt-ada-<filename>.h.
34681         (misc.o): Likewise.
34682         (utils.o): Include gt-ada-<filename>.h and gtype-ada.h.
34683         * config-lang.in (gtfiles): New.
34684         * decl.c: Use gengtype for roots.
34685         * gigi.h: Use gengtype for roots.
34686         * trans.c: Use gengtype for roots.
34687         * utils.c: Use gengtype for roots, marking.  Include gtype-ada.h.
34688
34689 2002-06-02  Gabriel Dos Reis  <gdr@codesourcery.com>
34690
34691         * misc.c (gnat_init): Adjust setting of internal_error_function.
34692
34693 2002-06-01  Joseph S. Myers  <jsm28@cam.ac.uk>
34694
34695         * gnat_ug.texi: Use @ifnottex instead of @ifinfo.
34696         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
34697         gnat_ug_wnt.texi: Regenerate.
34698
34699 2002-05-31  Florian Weimer  <fw@deneb.enyo.de>
34700
34701         * 5ntaprop.adb (with System.OS_Primitives): Remove.
34702
34703         * cstreams.c (max_path_len): Move from here ...
34704         * adaint.c (__gnat_max_path_len): ... to here.
34705         * adaint.c (__gnat_max_path_len): Declare.
34706         * g-dirope.adb (Max_Path): Adjust.
34707         * g-os_lib.adb (Normalize_Pathname.Max_Path): Adjust.
34708         * i-cstrea.ads (max_path_len): Adjust.
34709         * osint.adb (Get_RTS_Search_Dir.Max_Path): Adjust.
34710         * xr_tabls.adb (Dir_Name.Max_Path: Adjust.
34711
34712         * Makefile.in, Make-lang.in: Documentation is now built in
34713         Make-lang.in.  Store Info and generated Texinfo files in the
34714         source directory.
34715         * gnat_ug.texi: Remove CVS keywords, correct version number.
34716         Set file name correctly.
34717
34718         * gnat_ug_*.texi: Add.
34719         * .cvsignore: Ignore generated Texinfo files.
34720
34721 2002-05-30  Zack Weinberg  <zack@codesourcery.com>
34722
34723         * ada.h: Add MI guard macro.
34724         (SUBTYPE): Define constants with an anonymous enum, not static
34725         const variables.
34726         (IN): Cast constants to appropriate type before use.
34727
34728 2002-05-26  Joseph S. Myers  <jsm28@cam.ac.uk>
34729
34730         * gnatvsn.ads (Gnat_Version_String): Change to "3.2 20020526
34731         (experimental)".
34732
34733 2002-05-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
34734
34735         * Make-lang.in (CP, ECHO): Copy from Makefile.in.
34736         (X_ADA_CFLAGS, T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS): Likewise.
34737         (ALL_ADAFLAGS, FORCE_DEBUG_ADAFLAGS, ADA_CFLAGS): Likewise.
34738         (ALL_ADA_CFLAGS): Likewise.
34739         (ADA_INCLUDES): Likewise.
34740         Adapt for new working dir.
34741         (GNATBIND): Use Makefile.in version.
34742         (.SUFFIXES): Copy from Makefile.in.
34743         (ada-warn): Define.
34744         (.adb.o, .ads.o): Copy from Makefile.in.
34745         Added $(OUTPUT_OPTION).
34746         (GNAT1_C_OBJS): Moved from Makefile.in.
34747         Prefix with ada subdir.
34748         (GNAT_ADA_OBJS, GNAT1_ADA_OBJS, GNAT1_OBJS, GNATBIND_OBJS): Likewise.
34749         (EXTRA_GNAT1_OBJS): Moved from Makefile.in.
34750         Adapt for new working dir.
34751         (EXTRA_GNATBIND_OBJS): Likewise.
34752         (ADA_BACKEND): Moved from Makefile.in.
34753         Renamed to avoid conflict with global BACKEND.
34754         Use that one.
34755         (TARGET_ADA_SRCS): Moved from Makefile.in.
34756         (gnat1$(exeext)): Replaced recursive rule with Makefile.in version.
34757         Use ADA_BACKEND.
34758         (gnatbind$(exeext)): Replaced recursive rule with Makefile.in version.
34759         (ada_extra_files): Moved from Makefile.in.
34760         Prefix with ada subdir.
34761         (ada/b_gnat1.c, ada/b_gnat1.o, ada/b_gnatb.c, ada/b_gnatb.o): Likewise.
34762         (ada/treeprs.ads, ada/einfo.h, ada/sinfo.h, ada/nmake.adb): Likewise.
34763         (ada/nmake.ads): Likewise.
34764         (update-sources): Moved from Makefile.in.
34765         Prefix with ada subdir.
34766         (ada/sdefault.adb, ada/stamp-sdefault, ada/sdefault.o): Likewise.
34767         (ADA_TREE_H): Likewise.
34768         (ada/a-except.o, ada/s-assert.o, ada/s-memory.o): Likewise.
34769         (ada/memtrack.o): Likewise.
34770         (ada/adadecode.o): Likewise.
34771         Update dependencies.
34772         (ada/adaint.o): New.
34773         (ada/argv.o): Moved from Makefile.in.
34774         Prefix with ada subdir.
34775         Update dependencies.
34776         (ada/cstreams.o, ada/exit.o, ada/final.o, ada/link.o): Likewise.
34777         (ada/cio.o, ada/init.o, ada/raise.o, ada/tracebak.o): Likewise.
34778         (ada/cuintp.o, ada/decl.o, ada/misc.o): Moved from Makefile.in.
34779         Prefix with ada subdir.
34780         (ada/targtyps.o, ada/trans.o, ada/utils.o, ada/utils2.o): Likewise.
34781         (GNAT DEPENDENCIES): Regenerate.
34782         * Makefile.in (MACHMODE_H, RTL_H, TREE_H): Removed, provided by
34783         toplevel Makefile.in.
34784         (EXTRA_GNAT1_OBJS, EXTRA_GNATBIND_OBJS): Removed.
34785         (TARGET_ADA_SRCS): Removed.
34786         (GNAT1_C_OBJS, GNAT_ADA_OBJS, GNAT1_ADA_OBJS, GNAT1_OBJS): Likewise.
34787         (GNATBIND_OBJS): Likewise.
34788         (ADA_INCLUDE_DIR, ADA_RTL_OBJ_DIR): Moved here.
34789         (BACKEND): Removed.
34790         (../gnat1$(exeext), ../gnatbind$(exeext)): Likewise.
34791         (TREE_H): Likewise.
34792         (ada_extra_files): Likewise.
34793         (b_gnat1.c, b_gnat1.o, b_gnatb.c, b_gnatb.o): Likewise.
34794         (treeprs.ads, einfo.h, sinfo.h, nmake.adb, nmake.ads): Likewise.
34795         (update-sources): Likewise.
34796         (sdefault.adb, stamp-sdefault, sdefault.o): Likewise
34797         (ADA_TREE_H): Likewise.
34798         (adadecoce.o): Likewise.
34799         (cuintp.o, decl.o, misc.o, trans.o, utils.o, utils2.o): Likewise.
34800         (GNAT DEPENDENCIES): Likewise.
34801
34802 2002-05-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
34803
34804         * Makefile.adalib: Allow for PWDCMD to override hardcoded pwd.
34805         * Makefile.in: Likewise.
34806
34807 2002-05-14  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
34808
34809         * Make-lang.in (gnat1$(exeext), gnatbind$(exeext), gnattools):
34810         Restore $(CONFIG_H) and prefix.o dependencies.
34811         (ada.stage[1-4]): Depend on stage?-start.
34812
34813         * Makefile.in (b_gnatb.c): Depend on interfac.o.
34814
34815 2002-05-02  Jim Wilson  <wilson@redhat.com>
34816
34817         * utils.c (finish_record_type): Change record_size to record_type.
34818
34819 2001-05-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
34820
34821         * ada/Makefile.in (X_ADA_CFLAGS, T_ADA_CFLAGS): New fragment overrides.
34822         (ALL_ADA_CFLAGS): Define.  Replace ADA_CFLAGS with ALL_ADA_CFLAGS in
34823         ALL_ADAFLAGS, MOST_ADAFLAGS, and all compilations using CC.
34824
34825 2002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>
34826
34827         * misc.c (gnat_parse_file): Update.
34828
34829 2002-04-24  Neil Booth  <neil@daikokuya.demon.co.uk>
34830
34831         * misc.c (gnat_init): Don't set lang_attribute_common.
34832
34833 2002-04-21  Joseph S. Myers  <jsm28@cam.ac.uk>
34834
34835         * gnat_rm.texi: Use @ifnottex instead of @ifinfo.
34836
34837 2002-04-21  Florian Weimer  <fw@deneb.enyo.de>
34838
34839         * gnat_ug.texi: New file.
34840
34841         * gnat_rm.texi: Do not include texiplus.texi.  Include fdl.texi
34842         instead of gfdl.texi
34843
34844         * xgnatug.adb, ug_words: New files.
34845
34846         * Makefile.in (doc, dvi): New targets.  Build gnat_ug_*,
34847         gnat_rm and gnat-style manuals.
34848
34849 2002-04-18  Neil Booth  <neil@daikokuya.demon.co.uk>
34850
34851         * gigi.h (incomplete_type_error): Remove.
34852         * utils.c (incomplete_type_error): Remove.
34853
34854 2002-04-16  Mark Mitchell  <mark@codesourcery.com>
34855
34856         * trans.c (tree_transform): Add has_scope argument to
34857         expand_start_stmt_expr.
34858
34859 2002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>
34860
34861         * gigi.h (truthvalue_conversion): Rename.
34862         * misc.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
34863         * trans.c (tree_transform): Update.
34864         * utils2.c (truthvalue_conversion): Rename, update.
34865         (build_binary_op, build_unary_op): Update.
34866
34867 2002-04-04  Laurent Guerby  <guerby@acm.org>
34868
34869         * make.adb: Implement -margs, remove restriction about file name placement.
34870         * makeusg.adb: Documentation update.
34871         * Makefile.in (TOOLS_FLAGS_TO_PASS): Add VPATH=$(fsrcdir).
34872         * Makefile.in (gnattools3): Comment out, gnatmem does not build without libaddr2line.
34873
34874 2002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>
34875
34876         * utils.c (create_subprog_decl): Use SET_DECL_ASSEMBLER_NAME.
34877         (builtin_function): Similarly.
34878
34879 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
34880
34881         * decl.c (gnat_to_gnu_entity): Update.
34882         * gigi.h (mark_addressable): Rename.
34883         * misc.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
34884         * trans.c (tree_transform): Update.
34885         * utils.c (create_var_decl): Update.
34886         * util2.c (build_binary_op, build_unary_op,
34887         fill_vms_descriptor): Update.
34888         (mark_addressable): Rename, update.
34889
34890 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
34891
34892         * gigi.h (unsigned_type, signed_type, signed_or_unsigned_type):
34893         Rename.
34894         * misc.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
34895         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
34896         * trans.c (tree_transform, convert_with_check): Update.
34897         * utils.c (unsigned_type, signed_type, signed_or_unsigned_type):
34898         Rename.
34899
34900 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
34901
34902         * gigi.h (finish_incomplete_decl): Rename.
34903         * misc.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL): Redefine.
34904         * utils.c (gnat_init_decl_processing): Don't set hook.
34905         (finish_incomplete_decl): Rename.
34906
34907 2002-03-29  Andreas Schwab  <schwab@suse.de>
34908
34909         * Makefile.in: Pass VPATH=$(fsrcdir) when calling make in rts
34910         directory.
34911
34912 2001-03-28  Robert Dewar  <dewar@gnat.com>
34913
34914         * checks.ads:
34915         (Remove_Checks): New procedure
34916
34917         * checks.adb:
34918         (Remove_Checks): New procedure
34919
34920         * exp_util.adb:
34921         Use new Duplicate_Subexpr functions
34922         (Duplicate_Subexpr_No_Checks): New procedure
34923         (Duplicate_Subexpr_No_Checks_Orig): New procedure
34924         (Duplicate_Subexpr): Restore original form (checks duplicated)
34925         (Duplicate_Subexpr): Call Remove_Checks
34926
34927         * exp_util.ads:
34928         (Duplicate_Subexpr_No_Checks): New procedure
34929         (Duplicate_Subexpr_No_Checks_Orig): New procedure
34930         Add 2002 to copyright notice
34931
34932         * sem_util.adb: Use new Duplicate_Subexpr functions
34933
34934         * sem_eval.adb:
34935         (Eval_Indexed_Component): This is the place to call
34936         Constant_Array_Ref and to replace the value. We simply merge
34937         the code of this function in here, since it is now no longer
34938         used elsewhere. This fixes the problem of the back end not
34939         realizing we were clever enough to see that this was
34940         constant.
34941         (Expr_Val): Remove call to Constant_Array_Ref
34942         (Expr_Rep_Val): Remove call to Constant_Array_Ref
34943         Minor reformatting
34944         (Constant_Array_Ref): Deal with string literals (patch
34945         suggested by Zack Weinberg on the gcc list)
34946
34947 2001-03-28  Ed Schonberg  <schonber@gnat.com>
34948
34949         * exp_util.adb: Duplicate_Subexpr_No_Checks_Orig =>
34950         Duplicate_Subexpr_Move_Checks.
34951
34952         * exp_util.ads: Duplicate_Subexpr_No_Checks_Orig =>
34953         Duplicate_Subexpr_Move_Checks.
34954
34955         * sem_eval.adb: (Constant_Array_Ref): Verify that constant
34956         value of array exists before retrieving it (it may a private
34957         protected component in a function).
34958
34959 2002-03-28   Geert Bosch  <bosch@gnat.com>
34960
34961         * prj-pp.adb : New file.
34962
34963         * prj-pp.ads : New file.
34964
34965 2002-03-28  Andreas Jaeger  <aj@suse.de>
34966
34967         * Makefile.in (stamp-sdefault): Fix path for Makefile.
34968
34969 2002-03-28  Neil Booth  <neil@daikokuya.demon.co.uk>
34970
34971         * misc.c (gnat_expand_expr): Move prototype.
34972
34973 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
34974
34975         * misc.c (insert_default_attributes): Remove.
34976
34977 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
34978
34979         * misc.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
34980         (gnat_init): Don't set hook.
34981         (gnat_expand_expr): Fix prototype.
34982
34983 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
34984
34985         * misc.c (ggc_p): Remove.
34986
34987 2002-03-27  Geert Bosch  <bosch@gnat.com>
34988
34989         * prj-makr.ads, prj-makr.adb : New files.
34990
34991 2002-03-26  Neil Booth  <neil@daikokuya.demon.co.uk>
34992
34993         * misc.c (LANG_HOOKS_MARK_TREE): Redefine.
34994         (lang_mark_tree): Make static, rename.
34995
34996 2002-03-25  Neil Booth  <neil@daikokuya.demon.co.uk>
34997
34998         * misc.c (maybe_build_cleanup): Remove.
34999
35000 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
35001
35002         * gigi.h (yyparse): Remove.
35003
35004 2002-03-23  Florian Weimer  <fw@deneb.enyo.de>
35005
35006         From Ben Brosgol  <brosgol@gnat.com>
35007         * gnat_rm.texi: Sync with ACT version.
35008
35009 2002-03-20  Neil Booth  <neil@daikokuya.demon.co.uk>
35010
35011         * misc.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
35012         (gnat_init): Remove old hook.
35013
35014 2002-03-17  Neil Booth  <neil@daikokuya.demon.co.uk>
35015
35016         * misc.c (LANG_HOOKS_PARSE_FILE): Redefine.
35017         (yyparse): Rename gnat_parse_file.
35018
35019 2002-03-14  Geoffrey Keating  <geoffk@redhat.com>
35020
35021         Delete all lines containing "$Revision:".
35022         * xeinfo.adb: Don't look for revision numbers.
35023         * xnmake.adb: Likewise.
35024         * xsinfo.adb: Likewise.
35025         * xsnames.adb: Likewise.
35026         * xtreeprs.adb: Likewise.
35027
35028 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
35029
35030         * misc.c (gnat_tree_code_type, gnat_tree_code_length,
35031         gnat_tree_code_name): Delete.
35032         (tree_code_type, tree_code_length, tree_code_name): Define.
35033         (gnat_init): Don't try to copy into the various tree_code
35034         arrays.
35035
35036 2002-03-11  Richard Henderson  <rth@redhat.com>
35037
35038         * Makefile.in (.NOTPARALLEL): Add fake tag.
35039
35040 2002-03-07  Geert Bosch  <bosch@gnat.com>
35041
35042         * adadecode.c, adadecode.h, aux-io.c, s-traces.adb, s-traces.ads,
35043         s-tratas.adb, s-tratas.ads, sinput-d.adb, sinput-d.ads,
35044         switch-b.adb, switch-b.ads, switch-c.adb, switch-c.ads,
35045         switch-m.adb, switch-m.ads : New files.
35046
35047 2002-03-07  Geert Bosch  <bosch@gnat.com>
35048
35049         * 41intnam.ads, 42intnam.ads, 4aintnam.ads, 4cintnam.ads,
35050         4dintnam.ads, 4gintnam.ads, 4hintnam.ads, 4lintnam.ads,
35051         4mintnam.ads, 4pintnam.ads, 4rintnam.ads, 4sintnam.ads,
35052         4uintnam.ads, 4vcalend.adb, 4zintnam.ads, 52system.ads,
35053         5amastop.adb, 5asystem.ads, 5ataprop.adb, 5atpopsp.adb,
35054         5avxwork.ads, 5bosinte.adb, 5bsystem.ads, 5esystem.ads,
35055         5fsystem.ads, 5ftaprop.adb, 5ginterr.adb, 5gmastop.adb,
35056         5gsystem.ads, 5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads,
35057         5hparame.ads, 5hsystem.ads, 5htaprop.adb, 5htraceb.adb,
35058         5itaprop.adb, 5ksystem.ads, 5kvxwork.ads, 5lintman.adb,
35059         5lsystem.ads, 5mvxwork.ads, 5ninmaop.adb, 5nosinte.ads,
35060         5ntaprop.adb, 5ointerr.adb, 5omastop.adb, 5oosinte.adb,
35061         5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5pvxwork.ads,
35062         5qtaprop.adb, 5sintman.adb, 5ssystem.ads, 5staprop.adb,
35063         5stpopse.adb, 5svxwork.ads, 5tosinte.ads, 5uintman.adb,
35064         5vasthan.adb, 5vinmaop.adb, 5vinterr.adb, 5vintman.adb,
35065         5vmastop.adb, 5vparame.ads, 5vsystem.ads, 5vtaprop.adb,
35066         5vtpopde.adb, 5wmemory.adb, 5wsystem.ads, 5wtaprop.adb,
35067         5ysystem.ads, 5zinterr.adb, 5zintman.adb, 5zosinte.adb,
35068         5zosinte.ads, 5zsystem.ads, 5ztaprop.adb, 6vcpp.adb, 6vcstrea.adb,
35069         7sintman.adb, 7staprop.adb, 7stpopsp.adb, 9drpc.adb,
35070         Make-lang.in, Makefile.in, a-caldel.adb, a-comlin.ads,
35071         a-dynpri.adb, a-except.adb, a-except.ads, a-finali.adb,
35072         a-ncelfu.ads, a-reatim.adb, a-retide.adb, a-stream.ads,
35073         a-ststio.adb, a-ststio.ads, a-stwifi.adb, a-tags.adb, a-tasatt.adb,
35074         a-textio.adb, a-tideau.adb, a-tiflau.adb, a-tigeau.adb,
35075         a-tigeau.ads, a-tiinau.adb, a-timoau.adb, a-witeio.adb,
35076         a-wtdeau.adb, a-wtenau.adb, a-wtflau.adb, a-wtgeau.adb,
35077         a-wtgeau.ads, a-wtinau.adb, a-wtmoau.adb, ada-tree.def, ada-tree.h,
35078         adaint.c, adaint.h, ali-util.adb, ali.adb, ali.ads, atree.adb,
35079         atree.ads, atree.h, back_end.adb, bcheck.adb, bindgen.adb,
35080         bindusg.adb, checks.adb, comperr.adb, config-lang.in, csets.adb,
35081         csets.ads, cstand.adb, cstreams.c, debug.adb, debug.ads, decl.c,
35082         einfo.adb, einfo.ads, einfo.h, elists.h, errout.adb, errout.ads,
35083         eval_fat.adb, exp_aggr.adb, exp_attr.adb, exp_ch11.adb,
35084         exp_ch12.adb, exp_ch13.adb, exp_ch2.adb, exp_ch3.adb, exp_ch3.ads,
35085         exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch7.ads,
35086         exp_ch9.adb, exp_ch9.ads, exp_dbug.adb, exp_dbug.ads, exp_disp.ads,
35087         exp_dist.adb, exp_fixd.adb, exp_intr.adb, exp_pakd.adb,
35088         exp_prag.adb, exp_strm.adb, exp_util.adb, exp_util.ads,
35089         expander.adb, expect.c, fe.h, fmap.adb, fmap.ads, fname-uf.adb,
35090         freeze.adb, frontend.adb, g-awk.adb, g-cgideb.adb, g-comlin.adb,
35091         g-comlin.ads, g-debpoo.adb, g-dirope.adb, g-dirope.ads,
35092         g-dyntab.adb, g-expect.adb, g-expect.ads, g-io.ads, g-io_aux.adb,
35093         g-io_aux.ads, g-locfil.adb, g-locfil.ads, g-os_lib.adb,
35094         g-os_lib.ads, g-regexp.adb, g-regpat.adb, g-socket.adb,
35095         g-socket.ads, g-spipat.adb, g-table.adb, g-trasym.adb,
35096         g-trasym.ads, gigi.h, gmem.c, gnat1drv.adb, gnatbind.adb, gnatbl.c,
35097         gnatchop.adb, gnatcmd.adb, gnatdll.adb, gnatfind.adb, gnatlbr.adb,
35098         gnatlink.adb, gnatls.adb, gnatmem.adb, gnatprep.adb, gnatvsn.ads,
35099         gnatxref.adb, hlo.adb, hostparm.ads, i-cobol.adb, i-cpp.adb,
35100         i-cstrea.ads, i-cstrin.adb, i-pacdec.adb, i-vxwork.ads,
35101         impunit.adb, init.c, inline.adb, io-aux.c, layout.adb, lib-load.adb,
35102         lib-util.adb, lib-writ.adb, lib-writ.ads, lib-xref.adb,
35103         lib-xref.ads, lib.adb, lib.ads, make.adb, makeusg.adb, mdll.adb,
35104         memroot.adb, misc.c, mlib-tgt.adb, mlib-utl.adb, mlib-utl.ads,
35105         mlib.adb, namet.adb, namet.ads, namet.h, nlists.h, nmake.adb,
35106         nmake.ads, nmake.adt, opt.adb, opt.ads, osint.adb, osint.ads,
35107         output.adb, output.ads, par-ch2.adb, par-ch3.adb, par-ch5.adb,
35108         par-prag.adb, par-tchk.adb, par-util.adb, par.adb, prj-attr.adb,
35109         prj-dect.adb, prj-env.adb, prj-env.ads, prj-nmsc.adb, prj-part.adb,
35110         prj-proc.adb, prj-strt.adb, prj-tree.adb, prj-tree.ads, prj.adb,
35111         prj.ads, raise.c, raise.h, repinfo.adb, restrict.adb, restrict.ads,
35112         rident.ads, rtsfind.adb, rtsfind.ads, s-arit64.adb, s-asthan.adb,
35113         s-atacco.adb, s-atacco.ads, s-auxdec.adb, s-crc32.adb, s-crc32.ads,
35114         s-direio.adb, s-fatgen.adb, s-fileio.adb, s-finimp.adb,
35115         s-gloloc.adb, s-gloloc.ads, s-interr.adb, s-mastop.adb,
35116         s-mastop.ads, s-memory.adb, s-parame.ads, s-parint.adb,
35117         s-pooglo.adb, s-pooloc.adb, s-rpc.adb, s-secsta.adb, s-sequio.adb,
35118         s-shasto.adb, s-soflin.adb, s-soflin.ads, s-stache.adb,
35119         s-taasde.adb, s-taasde.ads, s-tadeca.adb, s-tadeca.ads,
35120         s-tadert.adb, s-tadert.ads, s-taenca.adb, s-taenca.ads,
35121         s-taprob.adb, s-taprop.ads, s-tarest.adb, s-tasdeb.adb,
35122         s-tasini.adb, s-tasini.ads, s-taskin.adb, s-taskin.ads,
35123         s-tasque.adb, s-tasque.ads, s-tasren.adb, s-tasren.ads,
35124         s-tassta.adb, s-tasuti.adb, s-tasuti.ads, s-tataat.adb,
35125         s-tataat.ads, s-tpoben.adb, s-tpoben.ads, s-tpobop.adb,
35126         s-tposen.adb, s-tposen.ads, s-traceb.adb, s-traceb.ads,
35127         s-unstyp.ads, s-widenu.adb, scn-nlit.adb, scn.adb, sem.adb,
35128         sem_aggr.adb, sem_attr.adb, sem_attr.ads, sem_case.adb,
35129         sem_ch10.adb, sem_ch11.adb, sem_ch11.ads, sem_ch12.adb,
35130         sem_ch13.adb, sem_ch13.ads, sem_ch2.adb, sem_ch3.adb, sem_ch3.ads,
35131         sem_ch4.adb, sem_ch5.adb, sem_ch6.adb, sem_ch6.ads, sem_ch7.adb,
35132         sem_ch8.adb, sem_ch8.ads, sem_ch9.adb, sem_disp.adb, sem_dist.adb,
35133         sem_elab.adb, sem_elim.adb, sem_elim.ads, sem_eval.adb,
35134         sem_intr.adb, sem_mech.adb, sem_prag.adb, sem_res.adb,
35135         sem_type.adb, sem_util.adb, sem_util.ads, sem_vfpt.adb,
35136         sem_warn.adb, sinfo.adb, sinfo.ads, sinfo.h, sinput-l.adb,
35137         sinput-l.ads, sinput.adb, sinput.ads, snames.adb, snames.ads,
35138         snames.h, sprint.adb, sprint.ads, stringt.adb, stringt.ads,
35139         stringt.h, style.adb, switch.adb, switch.ads, sysdep.c, system.ads,
35140         table.adb, targparm.adb, targparm.ads, targtyps.c, tbuild.adb,
35141         tbuild.ads, tracebak.c, trans.c, tree_gen.adb, tree_io.adb,
35142         treepr.adb, treepr.ads, treeprs.ads, treeprs.adt, ttypes.ads,
35143         types.adb, types.ads, types.h, uintp.ads, urealp.ads, usage.adb,
35144         utils.c, utils2.c, validsw.adb, xnmake.adb, xr_tabls.adb,
35145         xr_tabls.ads, xref_lib.adb, xref_lib.ads : Merge in ACT changes.
35146
35147         * 1ssecsta.adb, 1ssecsta.ads, a-chlat9.ads, a-cwila9.ads,
35148         g-enblsp.adb, g-md5.adb, g-md5.ads, gnatname.adb, gnatname.ads,
35149         mkdir.c, osint-b.adb, osint-b.ads, osint-c.adb, osint-c.ads,
35150         osint-l.adb, osint-l.ads, osint-m.adb, osint-m.ads : New files
35151
35152         * 3lsoccon.ads, 5qparame.ads, 5qvxwork.ads, 5smastop.adb,
35153         5zparame.ads, gnatmain.adb, gnatmain.ads, gnatpsys.adb : Removed
35154
35155         * mdllfile.adb, mdllfile.ads, mdlltool.adb, mdlltool.ads : Renamed
35156         to mdll-fil.ad[bs] and mdll-util.ad[bs]
35157
35158         * mdll-fil.adb, mdll-fil.ads, mdll-utl.adb, mdll-utl.ads : Renamed
35159         from mdllfile.ad[bs] and mdlltool.ad[bs]
35160
35161 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
35162
35163         * utils.c (init_gnat_to_gnu, init_gigi_decls): Use ARRAY_SIZE in
35164         lieu of explicit sizeof/sizeof.
35165
35166 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
35167
35168         * misc.c (copy_lang_decl): Remove.
35169
35170 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
35171
35172         * misc.c: Delete traditional-mode-related code copied from the
35173         C front end but not used, or used only to permit the compiler
35174         to link.
35175
35176 2002-02-07  Richard Henderson  <rth@redhat.com>
35177
35178         * adaint.c (__gnat_to_gm_time): First arg is int, not time_t.
35179         * adaint.h (__gnat_to_gm_time): Update prototype.
35180
35181 2002-01-30  Richard Henderson  <rth@redhat.com>
35182
35183         * trans.c (tree_transform) [N_Loop_Statement]: Use
35184         expand_exit_loop_top_cond.
35185
35186 2001-12-23  Richard Henderson  <rth@redhat.com>
35187
35188         * utils.c (end_subprog_body): Push GC context around
35189         rest_of_compilation for nested functions.
35190
35191 2001-12-23  Richard Henderson  <rth@redhat.com>
35192
35193         * 5nosinte.ads: Get definition of "int" from Interfaces.C.
35194
35195 2001-12-23  Florian Weimer  <fw@deneb.enyo.de>
35196
35197         * gnat-style.texi (Declarations and Types): Remove ancient style
35198         rule which was mandated by code generation issues.
35199
35200         * gnat-style.texi (header): Add @dircategory, @direntry.
35201         (title page): Remove date.
35202         (general) Add @./@: where approriate, and two spaces after the
35203         full stop at the end of a sentence.  Use @samp markup when
35204         referring concrete lexical entities (keywords, attribute names
35205         etc.), and @syntax for ARM grammar elements. Use @r for English
35206         text in comments.  Use @emph for emphasis.  Change "if-statements"
35207         etc. to "if statements" (without @samp). Break long lines.  Make
35208         casing of section names consistent.
35209         (Identifiers): Use @samp markup for variable names.
35210         (Comments): Use @samp markup for comment characters. Line-end
35211         comments may follow any Ada code, not just statements.  Fix
35212         misspelling of "Integer" as "integer".
35213         (Loop statements): Do not use variable name "I", use "J".
35214         (Subprogram Declarations): Document alignment.
35215         (Subprogram Bodies, Block statements): Document empty line before
35216         "begin".
35217
35218 2001-12-22  Florian Weimer  <fw@deneb.enyo.de>
35219
35220         * make.adb (Add_Switch): Make Generic_Position a procedure.  The
35221         function approach did not work well because of a side effect (the
35222         function call could reallocate the table which was being indexed
35223         using its result). Fixes ada/4851.
35224
35225 2001-12-19  Robert Dewar  <dewar@gnat.com>
35226
35227         * bindgen.adb: Minor reformatting
35228
35229         * cstand.adb: Minor reformatting
35230
35231         * fmap.adb: Minor reformatting
35232         Change name from Add for Add_To_File_Map (Add is much too generic)
35233         Change Path_Name_Of to Mapped_Path_Name
35234         Change File_Name_Of to Mapped_File_Name
35235         Fix copyright dates in header
35236
35237         * fmap.ads:
35238         Change name from Add for Add_To_File_Map (Add is much too generic)
35239         Change Path_Name_Of to Mapped_Path_Name
35240         Change File_Name_Of to Mapped_File_Name
35241         Fix copyright dates in header
35242
35243         * fname-uf.adb: Minor reformatting.  New names of stuff in Fmap.
35244         Add use clause for Fmap.
35245
35246         * make.adb: Minor reformatting
35247
35248         * osint.adb: Minor reformatting.  Change of names in Fmap.
35249         Add use clause for Fmap.
35250
35251         * prj-env.adb: Minor reformatting
35252
35253         * prj-env.ads: Minor reformatting
35254
35255         * switch.adb: Minor reformatting.  Do proper raise of Bad_Switch if
35256         error found (there were odd exceptions to this general rule in
35257         -gnatec/-gnatem processing)
35258
35259 2001-12-19  Olivier Hainque  <hainque@gnat.com>
35260
35261         * raise.c (__gnat_eh_personality): Exception handling personality
35262         routine for Ada.  Still in rough state, inspired from the C++ version
35263         and still containing a bunch of debugging artifacts.
35264         (parse_lsda_header, get_ttype_entry): Local (static) helpers, also
35265         inspired from the C++ library.
35266
35267         * raise.c (eh_personality): Add comments. Part of work for the GCC 3
35268         exception handling integration.
35269
35270 2001-12-19  Arnaud Charlet  <charlet@gnat.com>
35271
35272         * Makefile.in: Remove use of 5smastop.adb which is obsolete.
35273         (HIE_SOURCES): Add s-secsta.ad{s,b}.
35274         (HIE_OBJS): Add s-fat*.o
35275         (RAVEN_SOURCES): Remove files that are no longer required. Add
35276         interrupt handling files.
35277         (RAVEN_MOD): Removed, no longer needed.
35278
35279 2001-12-19  Robert Dewar  <dewar@gnat.com>
35280
35281         * a-ngelfu.adb: Remove ??? comment for inappropriate Inline_Always
35282         Add 2001 to copyright date
35283
35284         * g-regpat.adb: Change pragma Inline_Always to Inline. There is no
35285         need to force universal inlining for these cases.
35286
35287 2001-12-19  Arnaud Charlet  <charlet@gnat.com>
35288
35289         * s-taprob.adb: Minor clean ups so that this unit can be used in
35290         Ravenscar HI.
35291
35292         * exp_ch7.adb: Allow use of secondary stack in HI mode.
35293         Disallow it when pragma Restrictions (No_Secondary_Stack) is specified.
35294
35295 2001-12-19  Vincent Celier  <celier@gnat.com>
35296
35297         * prj-tree.ads (Project_Node_Record): Add comments for components
35298         Pkg_Id and Case_Insensitive.
35299
35300 2001-12-19  Pascal Obry  <obry@gnat.com>
35301
35302         * g-socket.adb: Minor reformatting. Found while reading code.
35303
35304 2001-12-19  Robert Dewar  <dewar@gnat.com>
35305
35306         * prj-tree.ads: Minor reformatting
35307
35308 2001-12-20  Joseph S. Myers  <jsm28@cam.ac.uk>
35309
35310         * config-lang.in (diff_excludes): Remove.
35311
35312 2001-12-17  Ed Schonberg  <schonber@gnat.com>
35313
35314         * sem_res.adb (Resolve_Selected_Component): do not generate a
35315         discriminant check if the selected component is a component of
35316         the argument of an initialization procedure.
35317
35318         * trans.c (tree_transform, case of arithmetic operators): If result
35319         type is private, the gnu_type is the base type of the full view,
35320         given that the full view itself may be a subtype.
35321
35322 2001-12-17  Robert Dewar  <dewar@gnat.com>
35323
35324         * sem_res.adb: Minor reformatting
35325
35326         * trans.c (tree_transform, case N_Real_Literal): Add missing third
35327         parameter in call to Machine (unknown horrible effects from this
35328         omission).
35329
35330         * urealp.h: Add definition of Round_Even for call to Machine
35331         Add third parameter for Machine
35332
35333 2001-12-17  Ed Schonberg  <schonber@gnat.com>
35334
35335         * sem_warn.adb (Check_One_Unit): Suppress warnings completely on
35336         predefined units in No_Run_Time mode.
35337
35338 2001-12-17  Richard Kenner  <kenner@gnat.com>
35339
35340         * misc.c (insn-codes.h): Now include.
35341
35342 2001-12-17  Olivier Hainque  <hainque@gnat.com>
35343
35344         * a-except.adb: Preparation work for future integration of the GCC 3
35345         exception handling mechanism
35346         (Notify_Handled_Exception, Notify_Unhandled_Exception): New routines
35347         to factorize previous code sequences and make them externally callable,
35348         e.g. for the Ada personality routine when the GCC 3 mechanism is used.
35349         (Propagate_Exception, Raise_Current_Excep, Raise_From_Signal_Handler):
35350         Use the new notification routines.
35351
35352 2001-12-17  Emmanuel Briot  <briot@gnat.com>
35353
35354         * prj-tree.ads (First_Choice_Of): Document the when others case
35355
35356 2001-12-17  Arnaud Charlet  <charlet@gnat.com>
35357
35358         * bindgen.adb (Gen_Ada_Init_*): Set priority of environment task in
35359         HI-E mode, in order to support Ravenscar profile properly.
35360
35361         * cstand.adb (Create_Standard): Duration is a 32 bit type in HI-E
35362         mode on 32 bits targets.
35363
35364 2001-12-17  Vincent Celier  <celier@gnat.com>
35365
35366         * fmap.adb: Initial version.
35367
35368         * fmap.ads: Initial version.
35369
35370         * fname-uf.adb (Get_File_Name): Use mapping if unit name mapped.
35371         If search is successfully done, add to mapping.
35372
35373         * frontend.adb: Initialize the mapping if a -gnatem switch was used.
35374
35375         * make.adb:
35376         (Gnatmake): Add new local variable Mapping_File_Name.
35377          Create mapping file when using project file(s).
35378          Delete mapping file before exiting.
35379
35380         * opt.ads (Mapping_File_Name): New variable
35381
35382         * osint.adb (Find_File): Use path name found in mapping, if any.
35383
35384         * prj-env.adb (Create_Mapping_File): New procedure
35385
35386         * prj-env.ads (Create_Mapping_File): New procedure.
35387
35388         * switch.adb (Scan_Front_End_Switches): Add processing for -gnatem
35389         (Mapping_File)
35390
35391         * usage.adb: Add entry for new switch -gnatem.
35392
35393         * Makefile.in: Add dependencies for fmap.o.
35394
35395 2001-12-17  Ed Schonberg  <schonber@gnat.com>
35396
35397         * sem_ch10.adb (Analyze_With_Clause): Retrieve proper entity when unit
35398         is a package instantiation rewritten as a package body.
35399         (Install_Withed_Unit): Undo previous change, now redundant.
35400
35401 2001-12-17  Gary Dismuke  <dismukes@gnat.com>
35402
35403         * layout.adb:
35404         (Compute_Length): Move conversion to Unsigned to callers.
35405         (Get_Max_Size): Convert Len expression to Unsigned after calls to
35406         Compute_Length and Determine_Range.
35407         (Layout_Array_Type): Convert Len expression to Unsigned after calls to
35408         Compute_Length and Determine_Range.
35409         Above changes fix problem with length computation for supernull arrays
35410         where Max (Len, 0) wasn't getting applied due to the Unsigned
35411         conversion used by Compute_Length.
35412
35413 2001-12-17  Arnaud Charlet  <charlet@gnat.com>
35414
35415         * rtsfind.ads:
35416         (OK_To_Use_In_No_Run_Time_Mode): Allow Ada.Exceptions and
35417          System.Secondary_Stack.
35418         (OK_To_Use_In_Ravenscar_Mode): New table needed to implement Ravenscar
35419          in HI-E mode.
35420         Remove unused entity RE_Exception_Data.
35421
35422         * rtsfind.adb (RTE): Allow Ravenscar Profile in HI mode.
35423
35424         * rident.ads (No_Secondary_Stack): New restriction.
35425
35426 2001-12-17  Joel Brobecker  <brobecke@gnat.com>
35427
35428         * gnat_rm.texi: Fix minor typos. Found while reading the section
35429         regarding "Bit_Order Clauses" that was sent to a customer.
35430         Very interesting documentation!
35431
35432 2001-12-17  Robert Dewar  <dewar@gnat.com>
35433
35434         * sem_case.adb (Choice_Image): Avoid creating improper character
35435         literal names by using the routine Set_Character_Literal_Name. This
35436         fixes bombs in certain error message cases.
35437
35438 2001-12-17  Arnaud Charlet  <charlet@gnat.com>
35439
35440         * a-reatim.adb: Minor reformatting.
35441
35442 2001-12-17  Ed Schonberg  <schonber@gnat.com>
35443
35444         * sem_ch12.adb (Validate_Derived_Type_Instance): Handle properly the
35445         case where the formal is an extension of another formal in the current
35446         unit or in a parent generic unit.
35447
35448 2001-12-17  Arnaud Charlet  <charlet@gnat.com>
35449
35450         * s-tposen.adb: Update comments.  Minor reformatting.
35451         Minor code clean up.
35452
35453         * s-tarest.adb: Update comments.  Minor code reorganization.
35454
35455 2001-12-17  Gary Dismukes  <dismukes@gnat.com>
35456
35457         * exp_attr.adb (Attribute_Tag): Suppress expansion of <type_name>'Tag
35458         when Java_VM.
35459
35460 2001-12-17  Robert Dewa  <dewar@gnat.com>
35461
35462         * exp_attr.adb: Minor reformatting
35463
35464 2001-12-17  Ed Schonberg  <schonber@gnat.com>
35465
35466         * sem_ch3.adb (Build_Derived_Private_Type): Refine check to handle
35467         derivations nested within a child unit: verify that the parent
35468         type is declared in an outer scope.
35469
35470 2001-12-17  Robert Dewar  <dewar@gnat.com>
35471
35472         * sem_ch12.adb: Minor reformatting
35473
35474 2001-12-17  Ed Schonberg  <schonber@gnat.com>
35475
35476         * sem_warn.adb (Check_One_Unit): In No_Run_Time mode, do not post
35477         warning if current unit is a predefined one, from which bodies may
35478         have been deleted.
35479
35480 2001-12-17  Robert Dewar  <dewar@gnat.com>
35481
35482         * eval_fat.ads: Add comment that Round_Even is referenced in Ada code
35483         Fix header format. Add 2001 to copyright date.
35484
35485         * exp_dbug.adb (Get_Encoded_Name): Fix out of bounds reference,
35486         which caused CE during compilation if checks were enabled.
35487
35488 2001-12-17  Vincent Celier  <celier@gnat.com>
35489
35490         * make.adb:
35491         (Switches_Of): New function
35492         (Test_If_Relative_Path): New procedure
35493         (Add_Switches): Use new function Switches_Of
35494         (Collect_Arguments_And_Compile): Use new function Switches_Of.
35495         When using a project file, test if there are any relative
35496         search path. Fail if there are any.
35497         (Gnatmake): Only add switches for the primary directory when not using
35498         a project file. When using a project file, change directory to the
35499         object directory of the main project file. When using a project file,
35500         test if there are any relative search path. Fail if there are any.
35501         When using a project file, fail if specified executable is relative
35502         path with directory information, and prepend executable, if not
35503         specified as an absolute path, with the exec directory.  Make sure
35504         that only one -o switch is transmitted to the linker.
35505
35506         * prj-attr.adb (Initialization_Data): Add project attribute Exec_Dir
35507
35508         * prj-nmsc.adb:
35509         (Ada_Check): Get Spec_Suffix_Loc and Impl_Suffix_Loc,
35510         when using a non standard naming scheme.
35511         (Check_Ada_Naming_Scheme): Make sure that error messages
35512         do not raise exceptions.
35513         (Is_Illegal_Append): Return True if there is no dot in the suffix.
35514         (Language_Independent_Check): Check the exec directory.
35515
35516         * prj.adb (Project_Empty): Add new component Exec_Directory
35517
35518         * prj.ads:
35519         (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Add defaults.
35520         (Project_Data): Add component Exec_Directory
35521
35522         * snames.adb: Updated to match snames.ads revision 1.215
35523
35524         * snames.ads: Added Exec_Dir
35525
35526 2001-12-17  Robert Dewar  <dewar@gnat.com>
35527
35528         * make.adb: Minor reformatting
35529
35530         * prj-nmsc.adb: Minor reformatting
35531
35532         * snames.adb: Updated to match snames.ads
35533
35534         * snames.ads: Alphebetize entries for project file
35535
35536 2001-12-17  Ed Schonberg  <schonber@gnat.com>
35537
35538         * trans.c (process_freeze_entity): Do nothing if the entity is a
35539         subprogram that was already elaborated.
35540
35541 2001-12-17  Richard Kenner  <kenner@gnat.com>
35542
35543         * decl.c (gnat_to_gnu_entity, object): Do not back-annotate Alignment
35544         and Esize if object is referenced via pointer.
35545
35546 2001-12-17  Ed Schonberg  <schonber@gnat.com>
35547
35548         * sem_ch3.adb (Analyze_Variant_Part): check that type of discriminant
35549         is discrete before analyzing choices.
35550
35551 2001-12-17  Joel Brobecker  <brobecke@gnat.com>
35552
35553         * bindgen.adb (Gen_Output_File_Ada): Generate a new C-like string
35554         containing the name of the Ada Main Program. This string is mainly
35555         intended for the debugger.
35556         (Gen_Output_File_C): Do the equivalent change when generating a C file.
35557
35558 2001-12-17  Robert Dewar  <dewar@gnat.com>
35559
35560         * ali.adb: Set new Dummy_Entry field in dependency entry
35561
35562         * ali.ads: Add Dummy_Entry field to source dependency table
35563
35564         * bcheck.adb (Check_Consistency): Ignore dummy D lines
35565
35566         * lib-writ.adb (Writ_ALI): Write dummy D lines for missing source files
35567
35568         * lib-writ.ads: Document dummy D lines for missing files.
35569
35570         * types.ads: (Dummy_Time_Stamp): New value for non-existant files
35571
35572 2001-12-17  Robert Dewar  <dewar@gnat.com>
35573
35574         * ali.adb: Type reference does not reset current file.
35575
35576         * ali.adb: Recognize and scan renaming reference
35577
35578         * ali.ads: Add spec for storing renaming references.
35579
35580         * lib-xref.ads: Add documentation for handling of renaming references
35581
35582         * lib-xref.adb: Implement output of renaming reference.
35583
35584         * checks.adb:
35585         (Determine_Range): Document local variables
35586         (Determine_Range): Make sure Hbound is initialized. It looks as though
35587          there could be a real problem here with an uninitialized reference
35588          to Hbound, but no actual example of failure has been found.
35589
35590 2001-12-17  Laurent Pautet  <pautet@gnat.com>
35591
35592         * g-socket.ads:
35593         Fix comment of Shutdown_Socket and Close_Socket. These functions
35594         should not fail silently because if they are called twice, this
35595         probably means that there is a race condition in the user program.
35596         Anyway, this behaviour is consistent with the rest of this unit.
35597         When an error occurs, an exception is raised with the error message
35598         as exception message.
35599
35600 2001-12-17  Robert Dewar  <dewar@gnat.com>
35601
35602         * frontend.adb: Move call to Check_Unused_Withs from Frontend, so
35603         that it happens before modification of Sloc values for -gnatD.
35604
35605         * gnat1drv.adb: Move call to Check_Unused_Withs to Frontend,
35606         so that it happens before modification of Sloc values for -gnatD.
35607
35608         * switch.adb: Minor reformatting
35609
35610 2001-12-15  Richard Henderson  <rth@redhat.com>
35611
35612         * sem_ch7.adb: Wrap comment.
35613
35614 2001-12-16  Joseph S. Myers  <jsm28@cam.ac.uk>
35615
35616         * 5ataprop.adb, 5atpopsp.adb, 5ftaprop.adb, 5gmastop.adb,
35617         5gtaprop.adb, 5htaprop.adb, 5itaprop.adb, 5lintman.adb,
35618         5omastop.adb, 5oosinte.adb, 5otaprop.adb, 5staprop.adb,
35619         5vinterr.adb, 5vtaprop.adb, 5vtpopde.adb, 5wintman.adb,
35620         5wtaprop.adb, 5zinterr.adb, 5ztaprop.adb, 6vcstrea.adb,
35621         7sintman.adb, 7staprop.adb, 9drpc.adb, ChangeLog, Makefile.in,
35622         a-except.adb, a-tags.ads, a-tasatt.adb, a-teioed.adb,
35623         a-textio.ads, a-witeio.ads, a-wtedit.adb, ali.ads, comperr.adb,
35624         cstand.adb, einfo.ads, errout.adb, exp_ch11.adb, exp_ch2.adb,
35625         exp_ch3.adb, exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch9.adb,
35626         exp_util.adb, exp_util.ads, fname-uf.adb, g-cgi.ads, g-exctra.ads,
35627         g-expect.ads, g-regist.adb, g-spipat.adb, gnatchop.adb,
35628         gnatlink.adb, gnatls.adb, gnatmain.adb, gnatmem.adb, init.c,
35629         make.adb, make.ads, mdlltool.adb, nlists.ads, osint.ads,
35630         par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb, par.adb,
35631         repinfo.adb, s-fatflt.ads, s-fatlfl.ads, s-fatllf.ads,
35632         s-fatsfl.ads, s-finimp.adb, s-finimp.ads, s-interr.adb,
35633         s-secsta.ads, s-shasto.ads, s-stalib.adb, s-stalib.ads,
35634         s-tarest.ads, s-tasdeb.adb, s-tassta.adb, s-tassta.ads,
35635         s-vaflop.ads, scans.ads, scn.adb, sem.ads, sem_aggr.adb,
35636         sem_attr.adb, sem_case.ads, sem_ch10.adb, sem_ch12.adb,
35637         sem_ch13.adb, sem_ch3.adb, sem_ch3.ads, sem_ch5.adb, sem_ch7.adb,
35638         sem_ch8.adb, sem_ch8.ads, sem_type.adb, sem_util.ads, sinfo.ads,
35639         sprint.adb, tbuild.ads, types.ads, utils.c, xeinfo.adb: Fix
35640         spelling errors.
35641
35642 2001-12-14  Vincent Celier  <celier@gnat.com>
35643
35644         * osint.adb(Create_Debug_File): When an object file is specified,
35645         put the .dg file in the same directory as the object file.
35646
35647 2001-12-14  Robert Dewar  <dewar@gnat.com>
35648
35649         * osint.adb: Minor reformatting
35650
35651         * lib-xref.adb (Output_Instantiation): New procedure to generate
35652         instantiation references.
35653
35654         * lib-xref.ads: Add documentation of handling of generic references.
35655
35656         * ali.adb (Read_Instantiation_Ref): New procedure to read
35657         instantiation references
35658
35659         * ali.ads: Add spec for storing instantiation references
35660
35661         * bindusg.adb: Minor reformatting
35662
35663         * switch.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
35664
35665         * usage.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
35666
35667         * gnatcmd.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
35668
35669         * csets.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
35670
35671         * csets.ads:
35672         Fix header format
35673         Add 2001 to copyright date
35674         Add entry for Latin-5 (Cyrillic ISO-8859-5)
35675
35676 2001-12-14  Matt Gingell  <gingell@gnat.com>
35677
35678         * adaint.c: mktemp is a macro on Lynx and can not be used as an
35679         expression.
35680
35681 2001-12-14  Richard Kenner  <kenner@gnat.com>
35682
35683         * misc.c (gnat_expand_constant): Do not strip UNCHECKED_CONVERT_EXPR
35684         if operand is CONSTRUCTOR.
35685
35686 2001-12-14  Ed Schonberg  <schonber@gnat.com>
35687
35688         * trans.c (tree_transform, case N_Assignment_Statement): Set lineno
35689         before emiting check on right-hand side, so that exception information
35690         is correct.
35691
35692 2001-12-14  Richard Kenner  <kenner@gnat.com>
35693
35694         * utils.c (create_var_decl): Throw away initializing expression
35695         if just annotating types and non-constant.
35696
35697 2001-12-14  Vincent Celier  <celier@gnat.com>
35698
35699         * prj-nmsc.adb: (Ada_Check): Migrate drom Ada_Default_... to
35700         Default_Ada_...
35701
35702         * prj.adb: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
35703         Remove functions.
35704         (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Move to spec.
35705
35706         * prj.ads: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
35707         Remove functions.
35708         (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Move from body.
35709
35710 2001-12-16  Joseph S. Myers  <jsm28@cam.ac.uk>
35711
35712         * ChangeLog: Remove piece of diff output.
35713
35714 2001-12-14  Geert Bosch  <bosch@gnat.com>
35715
35716         * config-lang.in: Update copyright notice
35717
35718         * layout.adb: Remove commented out code.
35719
35720         * mdllfile.ads: Update copyright notice. Fix header format.
35721
35722         * sem_case.ads: Likewise.
35723
35724         * sem_ch3.adb: Minor reformatting.
35725
35726 2001-12-12  Geert Bosch  <bosch@gnat.com>
35727
35728         * freeze.ads: Update copyright date.
35729
35730         * g-comlin.ads: Minor reformatting.
35731
35732         * gnat-style.texi: Fix typo.
35733
35734 2001-12-12  Geert Bosch  <bosch@gnat.com>
35735
35736         *  einfo.h: Regenerate.
35737
35738 2001-12-12  Ed Schonberg  <schonber@gnat.com>
35739
35740         * sem_ch12.adb (Save_Entity_Descendant): Use syntactic field names
35741         on known node types, rather than untyped fields. Further cleanups.
35742
35743 2001-12-12  Robert Dewar  <dewar@gnat.com>
35744
35745         * sem_ch12.adb:
35746         (Save_Entity_Descendant): Minor comment update.
35747         (Copy_Generic_Node): Deal with incorrect reference to Associated_Node
35748          of an N_Attribute_Reference node. As per note below, this does not
35749         eliminate need for Associated_Node in attribute ref nodes.
35750         (Associated_Node): Documentation explicitly mentions attribute
35751         reference nodes, since this field is used in such nodes.
35752
35753         * sem_ch12.adb (Associated_Node): Minor documentation cleanup.
35754
35755 2001-12-12  Robert Dewar  <dewar@gnat.com>
35756
35757         * s-stalib.adb: Add more comments on with statements being needed
35758
35759         * par-ch12.adb: Minor reformatting
35760
35761         * prj-dect.ads: Fix copyright header
35762
35763         * s-arit64.adb (Multiply_With_Ovflo_Check): Fix case where both
35764         inputs fit in 32 bits, but the result still overflows.
35765
35766         * s-fatgen.ads: Minor comment improvement
35767
35768 2001-12-12  Ed Schonberg  <schonber@gnat.com>
35769
35770         * sem_ch4.adb (Analyze_Selected_Component): If the prefix is of a
35771         formal derived type, look for an inherited component from the full
35772         view of the parent, if any.
35773
35774 2001-12-12  Robert Dewar  <dewar@gnat.com>
35775
35776         * checks.ads (Apply_Alignment_Check): New procedure.
35777
35778         * exp_ch13.adb (Expand_N_Freeze_Entity): Generate dynamic check to
35779         ensure that the alignment of objects with address clauses is
35780         appropriate, and raise PE if not.
35781
35782         * exp_util.ads (Must_Be_Aligned): Removed, replaced by
35783         Exp_Pakd.Known_Aligned_Enough
35784
35785         * mdllfile.ads: Minor reformatting
35786
35787         * mlib-fil.ads: Minor reformatting
35788
35789 2001-12-12  Ed Schonberg  <schonber@gnat.com>
35790
35791         * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Extend previous
35792         fix to any component reference if enclosing record has non-standard
35793         representation.
35794
35795 2001-12-12  Vincent Celier  <celier@gnat.com>
35796
35797         * g-dirope.ads (Find, Wildcard_Iterator): Moved to child package
35798         Iteration
35799
35800 2001-12-12  Ed Schonberg  <schonber@gnat.com>
35801
35802         * freeze.ads: Make Freeze_Fixed_Point_Type visible, for use in
35803         sem_attr.
35804
35805 2001-12-12  Robert Dewar  <dewar@gnat.com>
35806
35807         * impunit.adb: Add entry for GNAT.Directory_Operations.Iteration
35808
35809 2001-12-12  Emmanuel Briot  <briot@gnat.com>
35810
35811         * g-regexp.adb: Remove all debug code, since it isn't required anymore,
35812         and it adds dependencies to system.io.
35813
35814 2001-12-12  Pascal Obry  <obry@gnat.com>
35815
35816         * g-dirope.adb (Expand_Path.Var): Correctly detect end of
35817         variable name.
35818
35819 2001-12-11  Ed Schonberg  <schonber@gnat.com>
35820
35821         * sem_ch10.adb (Install_Withed_Unit): If the unit is a generic instance
35822         that is the parent of other generics, the instance body replaces the
35823         instance node.  Retrieve the instance of the spec, which is the one
35824         that is visible in clients and within the body.
35825
35826 2001-12-11  Vincent Celier  <celier@gnat.com>
35827
35828         * gnatmain.adb: Initial version.
35829
35830         * gnatmain.ads: Initial version.
35831
35832         * prj-attr.adb (Initialisation_Data): Add package Gnatstub.
35833
35834         * snames.adb: Updated to match snames.ads.
35835
35836         * snames.ads: Added Gnatstub.
35837
35838 2001-12-11  Vincent Celier  <celier@gnat.com>
35839
35840         * prj-attr.adb (Initialization_Data): Change name from
35841         Initialisation_Data.
35842
35843 2001-12-11  Emmanuel Briot  <briot@gnat.com>
35844
35845         * g-regpat.adb (Parse_Literal): Properly handle simple operators ?,
35846         + and * applied to backslashed expressions like \r.
35847
35848 2001-12-11  Vasiliy Fofanov  <fofanov@gnat.com>
35849
35850         * g-os_lib.ads: String_List type added, Argument_List type is now
35851         subtype of String_List.
35852
35853 2001-12-11  Robert Dewar  <dewar@gnat.com>
35854
35855         * g-os_lib.ads: Change copyright to FSF
35856         Add comments for String_List type
35857
35858 2001-12-11  Vincent Celier  <celier@gnat.com>
35859
35860         * g-dirope.adb (Expand_Path): Fix bug. (wrong length when adding a
35861         string to the buffer).
35862
35863 2001-12-11  Ed Schonberg  <schonber@gnat.com>
35864
35865         * freeze.adb: Make Freeze_Fixed_Point_Type visible, for use in
35866         sem_attr.
35867
35868         * sem_attr.adb: Simplify previous fix for Address.
35869         (Set_Bounds): If prefix is a non-frozen fixed-point type, freeze now,
35870         to avoid anomalies where the bound of the type appears to raise
35871         constraint error.
35872
35873 2001-12-11  Robert Dewar  <dewar@gnat.com>
35874
35875         * lib-xref.adb (Output_Refs): Make sure pointers are always properly
35876         handled.
35877
35878 2001-12-11  Ed Schonber   <schonber@gnat.com>
35879
35880         * sem_ch12.adb (Analyze_Subprogram_Instantiation): Check for a
35881         renamed unit before checking for recursive instantiations.
35882
35883 2001-12-11  Emmanuel Briot  <briot@gnat.com>
35884
35885         * prj.ads: Add comments for some of the fields.
35886
35887 2001-12-11  Robert Dewar  <dewar@gnat.com>
35888
35889         * lib-xref.adb (Output_Refs): Don't output type references outside
35890         the main unit if they are not otherwise referenced.
35891
35892 2001-12-11  Ed Schonberg  <schonber@gnat.com>
35893
35894         * sem_attr.adb (Analyze_attribute, case Address and Size): Simplify
35895         code and diagnose additional illegal uses
35896
35897         * sem_util.adb (Is_Object_Reference): An indexed component is an
35898         object only if the prefix is.
35899
35900 2001-12-11  Vincent Celier  <celier@gnat.com>
35901
35902         * g-diopit.adb: Initial version.
35903
35904         * g-diopit.ads: Initial version.
35905
35906         * g-dirope.adb:
35907         (Expand_Path): Avoid use of Unbounded_String
35908         (Find, Wildcard_Iterator): Moved to child package Iteration
35909
35910         * Makefile.in: Added g-diopit.o to GNATRTL_NONTASKING_OBJS
35911
35912 2001-12-11  Robert Dewar  <dewar@gnat.com>
35913
35914         * sem_attr.adb: Minor reformatting
35915
35916 2001-12-11  Ed Schonberg  <schonber@gnat.com>
35917
35918         * sem_ch3.adb: Clarify some ???.
35919
35920 2001-12-11  Robert Dewar  <dewar@gnat.com>
35921
35922         * exp_util.adb (Must_Be_Aligned): Removed, replaced by
35923         Exp_Pakd.Known_Aligned_Enough
35924
35925         * sem_ch13.adb (Check_Address_Alignment): Removed, extended
35926         version is moved to Exp_Ch13.
35927
35928 2001-12-11  Robert Dewar  <dewar@gnat.com>
35929
35930         * einfo.ads: Minor reformatting
35931
35932         * exp_ch5.adb: Add comment for previous.change
35933
35934         * ali.adb: New interface for extended typeref stuff.
35935
35936         * ali.ads: New interface for typeref stuff.
35937
35938         * checks.adb (Apply_Alignment_Check): New procedure.
35939
35940         * debug.adb: Add -gnatdM for modified ALI output
35941
35942         * exp_pakd.adb (Known_Aligned_Enough): Replaces Known_Aligned_Enough.
35943
35944         * lib-xref.adb: Extend generation of <..> notation to cover
35945         subtype/object types. Note that this is a complete rewrite,
35946         getting rid of the very nasty quadratic algorithm previously
35947         used for derived type output.
35948
35949         * lib-xref.ads: Extend description of <..> notation to cover
35950         subtype/object types. Uses {..} for these other cases.
35951         Also use (..) for pointer types.
35952
35953         * sem_util.adb (Check_Potentially_Blocking_Operation): Slight cleanup.
35954
35955         * exp_pakd.adb: Minor reformatting.  Note that prevous RH should say:
35956         (Known_Aligned_Enough): Replaces Must_Be_Aligned.
35957
35958 2001-12-11  Vincent Celier  <celier@gnat.com>
35959
35960         * gnatcmd.adb:
35961         Changed /COMPILE_ONLY to /ACTIONS=COMPILE
35962         Changed /BIND_ONLY to /ACTIONS=BIND
35963         Changed /LINK_ONLY to /ACTIONS=LINK
35964
35965 2001-12-11  Ed Schonberg  <schonber@gnat.com>
35966
35967         * sem_ch8.adb (Find_Selected_Component): improved search for a
35968         candidate package in case of error.
35969
35970         * sem_ch12.adb (Inline_Instance_Body): place head of use_clause
35971         chain back on scope stack before reinstalling use clauses.
35972
35973         * exp_ch5.adb (Expand_N_If_Statement): if Constant_Condition_Warnings
35974         is enabled, do not kill the code for the condition, to preserve
35975         warning.
35976
35977 2001-12-11  Robert Dewar  <dewar@gnat.com>
35978
35979         * checks.adb (Insert_Valid_Check): Apply validity check to expression
35980         of conversion, not to result of conversion.
35981
35982 2001-12-11  Ed Schonberg  <schonber@gnat.com>
35983
35984         * sem_ch3.adb (Build_Derived_Record_Type): set Controlled flag
35985         before freezing parent. If the declarations are mutually recursive,
35986         an access to the current record type may be frozen before the
35987         derivation is complete.
35988
35989 2001-12-05  Vincent Celier  <celier@gnat.com>
35990
35991         * gnatcmd.adb: (MAKE): Add new translations: -b /BIND_ONLY,
35992         -c /COMPILE_ONLY, -l /LINK_ONLY
35993
35994         * opt.ads:
35995         (Bind_Only): New Flag
35996         (Link_Only): New flag
35997
35998         * switch.adb (Scan_Make_Switches): Add processing for -b (Bind_Only)
35999         and -l (Link_Only)
36000
36001         * makeusg.adb: Add new switches -b and -l. Update Copyright notice.
36002
36003         * make.adb:
36004         (Do_Compile_Step, Do_Bind_Step, Do_Link_Step): New flags.
36005         (Gnatmake): Set the step flags. Only perform a step if the
36006         corresponding step flag is True.
36007         (Scan_Make_Arg): Reset the bind and link step flags when -u
36008         or -gnatc has been specified.
36009
36010 2001-12-05  Ed Schonberg  <schonber@gnat.com>
36011
36012         * sem_eval.adb (Eval_Concatenation): If left operand is a null string,
36013         get bounds from right operand.
36014
36015         * sem_eval.adb: Minor reformatting
36016
36017         * exp_util.adb (Make_Literal_Range): use bound of literal rather
36018         than Index'First, its lower bound may be different from 1.
36019
36020         * exp_util.adb: Undo earlier change, fixes ACVC regressions C48009B
36021         and C48009J
36022
36023 2001-12-05  Vincent Celier  <celier@gnat.com>
36024
36025         * prj-nmsc.adb Minor reformatting
36026
36027         * prj-nmsc.adb (Language_Independent_Check): Reset Library flag if
36028         set and libraries are not supported.
36029
36030 2001-12-05  Ed Schonberg  <schonber@gnat.com>
36031
36032         * sem_ch3.adb (Build_Derived_Private_Type): set Public status of
36033         private view explicitly, so the back-end can treat as a global
36034         when appropriate.
36035
36036 2001-12-05  Ed Schonberg  <schonber@gnat.com>
36037
36038         * sem_ch12.adb (Instantiate_Package_Body): if instance is a compilation
36039          unit, always replace instance node with new body, for ASIS use.
36040
36041 2001-12-05  Vincent Celier  <celier@gnat.com>
36042
36043         * prj-nmsc.adb (Language_Independent_Check): Issue a warning if
36044         libraries are not supported and both attributes Library_Name and
36045         Library_Dir are specified.
36046
36047         * prj-proc.adb (Expression): Set location of Result to location of
36048         first term.
36049
36050         * Makefile.in: Add mlib.o, mlib-fil.o, mlib-tgt and mlib-utl to GNATLS.
36051         (prj-nmsc is now importing MLib.Tgt)
36052
36053         * prj-proc.adb: Put the change indicated above that was forgotten.
36054
36055 2001-12-05  Robert Dewar  <dewar@gnat.com>
36056
36057         * Makefile.in: Add dependencies for System.IO for GNAT.Regexp
36058
36059 2001-12-05  Ed Schonberg  <schonber@gnat.com>
36060
36061         * sem_ch3.adb (Build_Derived_Concurrent_Type): If derivation imposes a
36062         constraint, introduce explicit subtype declaration and derive from it.
36063
36064         * sem_ch3.adb: Minor reformatting
36065
36066 2001-12-05  Robert Dewar  <dewar@gnat.com>
36067
36068         * checks.adb (Determine_Range): Increase cache size for checks.
36069         Minor reformatting
36070
36071         * exp_ch6.adb: Minor reformatting
36072         (Expand_N_Subprogram_Body): Reset Is_Pure for any subprogram that has
36073         a parameter whose root type is System.Address, since treating such
36074         subprograms as pure in the code generator is almost surely a mistake
36075         that will lead to unexpected results.
36076
36077         * exp_util.adb (Remove_Side_Effects): Clean up old ??? comment and
36078         change handling of conversions.
36079
36080         * g-regexp.adb: Use System.IO instead of Ada.Text_IO.
36081
36082 2001-12-05  Ed Schonberg  <schonber@gnat.com>
36083
36084         * sem_ch3.adb (Analyze_Object_Declaration): If expression is an
36085         aggregate with static wrong size, attach generated Raise node to
36086         declaration.
36087
36088 2001-12-05  Robert Dewar  <dewar@gnat.com>
36089
36090         * sem_attr.adb (Analyze_Attribute): Defend against bad Val attribute.
36091         Fixes compilation abandoned bomb in B24009B.
36092
36093 2001-12-05  Ed Schonberg  <schonber@gnat.com>
36094
36095         * sem_ch12.adb:
36096         Document use of Associated_Node on Selected_Components.
36097         (Save_Global_Operand_Descendants): Change to Save_Entity_Descendants,
36098         to clarify use of untyped descendant fields.
36099
36100 2001-12-05  Robert Dewar  <dewar@gnat.com>
36101
36102         * prj-dect.ads: Add ??? comment
36103         Add 2001 to copyright notice (was not done in after all)
36104
36105         * prj-part.adb: Minor reformatting. Reword one awkward error message.
36106
36107         * prj.ads: Minor reformatting throughout, and add some ??? comments
36108
36109         * snames.ads: Minor reformatting
36110
36111 2001-12-05  Geert Bosch  <bosch@gnat.com>
36112
36113         * snames.adb: Autoupdate
36114
36115 2001-12-05  Vincent Celier  <celier@gnat.com>
36116
36117         * prj-dect.adb (Parse): Rename parameter Modifying to Extends.
36118
36119         * prj-dect.ads (Parse): Rename parameter Modifying to Extends.
36120
36121         * prj-env.adb: Minor comment changes (modifying -> extends).
36122
36123         * prj-nmsc.adb: Minor comment changes (modifying -> extends).
36124
36125         * prj-part.adb (Parse_Single_Project): Change Tok_Modifying to
36126         Tok_Extends.
36127
36128         * prj.adb (Initialize): Change Modifying to Extends.
36129
36130         * scans.ads (Token_Type): Change Tok_Modifying to Tok_Extends.
36131
36132         * prj.ads: Minor comment change (Modifying -> extending).
36133
36134         * snames.ads: Change modifying to extends.
36135
36136 2001-12-05  Robert Dewar  <dewar@gnat.com>
36137
36138         * sem_warn.adb: Remove stuff for conditionals, we are not going to
36139         do this after all.
36140
36141         * sem_warn.ads: Remove stuff for conditionals, we are not going to
36142         do this after all.  Add 2001 to copyright notice
36143
36144 2001-12-04  Geert Bosch  <bosch@gnat.com>
36145
36146         *  einfo.h, sinfo.h, treeprs.ads: Regenerate.
36147
36148 2001-12-04  Robert Dewar  <dewar@gnat.com>
36149
36150         * errout.adb (Error_Msg): Ignore attempt to put error msg at junk
36151         location if we already have errors. Stops some cases of cascaded
36152         errors.
36153
36154         * errout.adb: Improve comment.
36155
36156 2001-12-04  Robert Dewar  <dewar@gnat.com>
36157
36158         * sem_ch12.adb:
36159         (Analyze_Formal_Type_Definition): Defend against Error.
36160         (Analyze_Formal_Subprogram): Defend against Error.
36161
36162         * par-ch12.adb (F_Formal_Type_Declaration): In case of error,
36163         remove following semicolon if present. Removes cascaded error.
36164
36165 2001-12-04  Douglas B. Rupp  <rupp@gnat.com>
36166
36167         * bindgen.adb:
36168         (Gen_Exception_Table_Ada): Write "begin" and then return if Num
36169          exceptions equals 0.
36170         (Gen_Exception_Table_C): Return if Num exceptions equals 0.
36171         Fixes PIWG E tests (which have to be run with -gnatL).
36172
36173 2001-12-04  Robert Dewar  <dewar@gnat.com>
36174
36175         * einfo.ads: Minor reformatting
36176
36177 2001-12-04  Ed Schonberg  <schonber@gnat.com>
36178
36179         * einfo.ads: Block_Node points to the identifier of the block, not to
36180         the block node itself, to preserve the link when the block is
36181         rewritten, e.g. within an if-statement with a static condition.
36182
36183         * inline.adb (Cleanup_Scopes): recover block statement from block
36184         entity using new meaning of Block_Node.
36185
36186         * sem_ch5.adb (Analyze_Block_Statement): set Block_Node to point to
36187         identifier of block node, rather than to node itself.
36188
36189 2001-12-04  Gary Dismukes  <dismukes@gnat.com>
36190
36191         * layout.adb:
36192         (Get_Max_Size): Fix "start of processing" comment to say Get_Max_Size.
36193         (Discrimify): Go back to setting the Etypes of the selected component
36194         because the Vname component does not exist at this point and will
36195         fail name resolution. Also set Analyzed.
36196         Remove with and use of Sem_Res.
36197
36198 2001-12-04  Arnaud Charlet  <charlet@gnat.com>
36199
36200         * Makefile.in: (HIE_SOURCES): add s-fat*.
36201
36202 2001-12-04  Robert Dewar  <dewar@gnat.com>
36203
36204         * sem_attr.adb:
36205         (Compile_Time_Known_Attribute): New procedure.
36206         (Eval_Attribute, case Size): Use Compile_Time_Known_Attribute to ensure
36207          proper range check.
36208
36209 2001-12-04  Ed Schonberg  <schonber@gnat.com>
36210
36211         * sem_ch7.adb (New_Private_Type): Set Is_Tagged_Type flag before
36212         processing discriminants to diagnose illegal default values.
36213
36214 2001-12-04  Ed Schonberg  <schonber@gnat.com>
36215
36216         * sem_attr.adb (Resolve_Attribute): Handle properly an non-classwide
36217         access discriminant within a type extension that constrains its
36218         parent discriminants.
36219
36220 2001-12-04  Ed Schonberg  <schonber@gnat.com>
36221
36222         * sem_ch3.adb (Find_Type_Of_Subtype_Indic): If subtype indication
36223         is malformed, use instance of Any_Id to allow analysis to proceed.
36224
36225         * par-ch12.adb (P_Formal_Type_Declaration): Propagate Error if
36226         type definition is illegal.
36227         (P_Formal_Derived_Type_Definition): Better recovery when TAGGED is
36228         misplaced.
36229
36230 2001-12-04  Ed Schonberg  <schonber@gnat.com>
36231
36232         * sem_warn.adb (Output_Unreferenced_Messages): Extend previous fix to
36233         constants.
36234
36235 2001-12-04  Robert Dewar  <dewar@gnat.com>
36236
36237         * errout.adb: Minor reformatting
36238
36239 2001-12-04  Robert Dewar  <dewar@gnat.com>
36240
36241         * exp_util.adb: Minor reformatting from last change
36242
36243         * errout.adb (Check_For_Warning): For a Raised_Constraint_Error node
36244         which is a rewriting of an expression, traverse the original
36245         expression to remove warnings that may have been posted on it.
36246
36247 2001-12-04  Ed Schonberg  <schonber@gnat.com>
36248
36249         * exp_util.adb (Must_Be_Aligned): Return false for a component of a
36250         record that has other packed components.
36251
36252 2001-12-04  Douglass B. Rupp  <rupp@gnat.com>
36253
36254         * adaint.c: Minor cleanups.
36255
36256 2001-12-04  Douglass B. Rupp  <rupp@gnat.com>
36257
36258         * adaint.c: Do not use utime.h on vxworks.
36259
36260 2001-12-04  Arnaud Charlet  <charlet@gnat.com>
36261
36262         * Makefile.adalib: Clarify step 3 (use of gnat.adc) as it causes
36263         more confusion than it solves.
36264
36265 2001-12-04  Geert bosch  <bosch@gnat.com>
36266
36267         * einfo.h, nmake.adb, nmake.ads, sinfo.h treeprs.ads: Regenerate.
36268
36269 2001-12-04  Geert Bosch  <bosch@gnat.com>
36270
36271         * Makefile.in (update-sources): New target.
36272         For use by gcc_release script.
36273
36274 2001-12-04  Ed Schonberg  <schonber@gnat.com>
36275
36276         * sem_prag.adb (Analyze_Pragma, case Validity_Checks): do not treat as
36277         a configuration pragma, it is now legal wherever a pragma can appear.
36278
36279 2001-12-04  Zack Weinberg  <zack@codesourcery.com>
36280
36281         * Makefile.in: Don't set ALL.  Delete @cross_defines@,
36282         @cross_overrides@, @build_overrides@ stanzas.  INTERNAL_CFLAGS
36283         is now @CROSS@ -DIN_GCC; update comment.
36284
36285 2001-12-04  Robert Dewar  <dewar@gnat.com>
36286
36287         * einfo.adb (Has_Pragma_Pure_Function): New flag.
36288         Fix problem that stopped ceinfo from working
36289
36290         * einfo.ads (Has_Pragma_Pure_Function): New flag.
36291
36292         * sem_prag.adb (Pure_Function): Set new flag Has_Pragma_Pure_Function.
36293
36294 2001-12-04  Douglas B. Rupp  <rupp@gnat.com>
36295
36296         * gnatchop.adb:
36297         (File_Time_Stamp): New procedure.
36298         (Preserve_Mode): New boolean.
36299         (Write_Unit): Pass time stamp.
36300         Implement -p switch (preserve time stamps).
36301
36302         * gnatcmd.adb (CHOP): Add translation for -p (/PRESERVE).
36303
36304         * gnatchop.adb: Do usage info for -p switch
36305
36306         * adaint.h (__gnat_set_file_time_name): New function
36307
36308         * adaint.c (__gnat_set_file_time_name): Implement
36309
36310         * adaint.h: Fix typo
36311
36312 2001-12-03  Robert Dewar  <dewar@gnat.com>
36313
36314         * sinfo.ads: Minor reformatting. N_Freeze_Entity node does not
36315         have Associated_Node.
36316
36317 2001-12-03  Robert Dewar  <dewar@gnat.com>
36318
36319         * prj-proc.adb: Minor reformatting
36320
36321         * make.adb: Minor reformatting
36322
36323 2001-12-03  Geert Bosch  <bosch@gnat.com>
36324
36325         * make.adb: Minor reformatting.
36326
36327 2001-12-03 Robert Dewar  <dewar@gnat.com>
36328
36329         * sem_ch12.adb: Minor reformatting
36330
36331 2001-12-03  Ed Schonberg  <schonber@gnat.com>
36332
36333         * sem_ch12.adb (Inline_Instance_Body): Use Save_Scope_Stack and
36334         push Standard on the stack before analyzing the instance body,
36335         in order to have a clean visibility environment.
36336
36337         * sem_ch12.adb (Inline_Instance_Body): Remove redundant code.
36338
36339 2001-12-03  Ed Schonberg  <schonber@gnat.com>
36340
36341         * sem_ch12.adb (Instantiate_Package_Body): Protect against double
36342         instantiation of a body that contains an inlined body.
36343
36344 2001-12-03  Ed Schonberg  <schonber@gnat.com>
36345
36346         * sem_ch12.adb:
36347         (Analyze_generic_subprogram_Declaration): Set outer_generic_scope,
36348         to prevent freezing within formal packages.
36349         (Freeze_Subprogram_Body): If body comes from another instance that
36350         appeared before its own body, place freeze node at end of current
36351         declarative part, to prevent a back-end crash.
36352         (Inline_Instance_Body): Handle properly a package instance within
36353         a subprogram instance that is a child unit.
36354
36355 2001-12-01  Graham Stott  <grahams@redhat.com>
36356
36357         * Makefile.in (misc.o): Add missing $(srcdir) prefix
36358         and add optabs.h dependency.
36359
36360         * misc.c: Include optabs.h
36361         (gnat_tree_code_type): Make static and const.
36362         (gnat_tree_code_length): Likewise.
36363         (gnat_tree_code_name): Likewise.
36364         (update_setjmp_buf): Obtain operands mode from insn_data.
36365
36366 2001-11-29  Richard Henderson  <rth@redhat.com>
36367
36368         * init.c: Remove obsolete dwarf2 frame.h section.
36369
36370 2001-11-29  Joseph S. Myers  <jsm28@cam.ac.uk>
36371
36372         * Make-lang.in (ada.generated-manpages): New dummy target.
36373
36374 2001-11-29  Ed Schonberg  <schonber@gnat.com>
36375
36376         * g-os_lib.adb (Add_To_Command): use explicit loop to move string
36377         into Command, an array conversion is illegal here. Uncovered by
36378         ACATS B460005.
36379
36380 2001-11-28  Geert Bosch  <bosch@gnat.com>
36381
36382         * init.c: Minor whitespace changes.
36383
36384 2001-11-28  Doug Rupp  <rupp@gnat.com>
36385
36386         * init.c: (__gnat_install_handler,VMS): Increase size of alternate
36387         signal stack.
36388
36389 2001-11-28  Zack Weinberg  <zack@codesourcery.com>
36390
36391         * misc.c (gnat_expand_constant): Move declaration above
36392         definition of lang_hooks.
36393         (LANG_HOOKS_EXPAND_CONSTANT): Set to gnat_expand_constant.
36394         (gnat_init): lang_expand_constant no longer exists.
36395
36396         (internal_error_function): Remove #ifdef HAVE_VPRINTF.  We
36397         always have vprintf.
36398         (gnat_init): Always call set_internal_error_function.
36399
36400 2001-11-27  Andreas Jaeger  <aj@suse.de>
36401
36402         * Makefile.in (stamp-tool_src_dir): Use symbolic link.
36403
36404 2001-11-27  Laurent Guerby  <guerby@acm.org>
36405
36406         * Makefile.in: Regenerate Ada dependencies.
36407
36408 2001-11-26  Richard Henderson  <rth@redhat.com>
36409
36410         * Make-lang.in (gnatbind, gnatmake, gnatbl, gnatchop, gnatcmd,
36411         gnatlink, gnatkr, gnatls, gnatmem, gnatprep, gnatpsta, gnatpsys,
36412         gnatxref, gnatfind, gnatlbr): Depend on CONFIG_H and prefix.o.
36413
36414 2001-11-25  Laurent Guerby  <guerby@acm.org>
36415
36416         * sysdep.c (rts_get_*): Fix style.
36417
36418 2001-11-19  Laurent Guerby  <guerby@acm.org>
36419
36420         * Makefile.in (INCLUDES_FOR_SUBDIR): Remove redundant system include
36421         since it is of no apparent use and cause warnings.
36422
36423 2001-11-18  Neil Booth  <neil@daikokuya.demon.co.uk>
36424
36425         * misc.c (gnat_decode_option, gnat_init_options): Make definitions
36426         static too.
36427         (gnat_init): Don't return NULL.
36428         (finish_parse): Remove.
36429
36430 2001-11-17  Laurent Guerby  <guerby@acm.org>
36431
36432         * Make-lang.in (GNATLIBFLAGS): Add -W -Wall.
36433         * gigi.h (init_decl_processing): Rename to gnat_init_decl_processing.
36434         * io-aux.c: Provide K&R prototypes to all functions, reformat code.
36435         * lang-spec.h: Add missing struct field to silence warnings.
36436         * sysdep.c (rts_get_*): Provide K&R prototype.
36437         * sysdep.c (Unlock_Task, Lock_Task): Move to K&R prototype.
36438         * traceback.c (Unlock_Task, Lock_Task): Likewise.
36439         * tracebak.c (__gnat_backtrace): Remove unused variable.
36440         * utils.c (end_subprog_body): Move to K&R style.
36441
36442 Thu Nov 15 18:16:17 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
36443
36444         * trans.c, utils2.c: Remove PALIGN parameter to get_inner_reference.
36445
36446 2001-11-15  Neil Booth  <neil@daikokuya.demon.co.uk>
36447
36448         * misc.c (gnat_init): Change prototype.  Include the
36449         functionality of the old init_parse and init_decl_processing.
36450         (gnat_init_decl_processing): New prototype.
36451         (init_parse): Remove.
36452         * utils.c (init_decl_processing): Rename gnat_init_decl_processing.
36453
36454 2001-11-09  Neil Booth  <neil@daikokuya.demon.co.uk>
36455
36456         * misc.c (gnat_print_decl, gnat_print_type): Renamed.
36457         (LANG_HOOKS_PRINT_DECL, LANG_HOOKS_PRINT_TYPE): Override.
36458         (print_lang_statistics, lang_print_xnode, print_lang_identifier,
36459         set_yydebug): Remove.
36460
36461 2001-11-09  Neil Booth  <neil@daikokuya.demon.co.uk>
36462
36463         * misc.c (LANG_HOOKS_NAME, LANG_HOOKS_IDENTIFIER_SIZE): Override.
36464         (struct lang_hooks): Constify.
36465         (language_string, lang_identify): Remove.
36466         * utils.c (init_decl_processing): Update.
36467
36468 2001-11-06  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
36469
36470         * misc.c: Include langhooks-def.h.
36471         * Makefile.in: Update.
36472
36473 2001-10-30  Robert Dewar  <dewar@gnat.com>
36474
36475         * style.adb:
36476         (Check_Identifier): Rewrite circuit to be compatible with use of letters
36477         in the upper half of ASCII.
36478         (Check_Identifier): Minor reformatting
36479
36480 2001-10-30  Geert Bosch  <bosch@gnat.com>
36481
36482         * (Associated_Node, Set_Associated_Node): Do not check for
36483         Freeze_Entity.
36484
36485 2001-10-30  Robert Dewar  <dewar@gnat.com>
36486
36487         * a-reatim.ads: Minor reformatting
36488
36489 2001-10-30  Robert Dewar  <dewar@gnat.com>
36490
36491         * gnatdll.adb: Minor reformatting throughout. Many ??? added for
36492         undocumented declarations.
36493
36494 2001-10-30  Pascal Obry  <obry@gnat.com>
36495
36496         * gnatdll.adb (Parse_Command_Line): handle -g option to be passed
36497         to the binder and linker.
36498         Minor style fix.
36499
36500         * mdll.ads: Fix layout.  Update copyright notice.
36501
36502         * mdll.adb: Fix layout.  Update copyright notice.
36503
36504 2001-10-30  Robert Dewar  <dewar@gnat.com>
36505
36506         * usage.adb: Minor fix to output for -gnaty.
36507
36508 2001-10-30  Ed Schonberg  <schonber@gnat.com>
36509
36510         * a-reatim.ads: Makes Seconds_Count into a 64-bit integer,
36511         to accommodate all its possible values.
36512
36513         * a-reatim.adb (Split): Special-case handling of Time_Span_First
36514         and of small absolute values of T.
36515
36516 2001-10-30  Richard Kenner  <kenner@gnat.com>
36517
36518         * misc.c (gnat_expand_expr, case NULL_EXPR): Remove call to
36519         set_mem_attributes since not needed and wrong if RESULT if a REG;
36520         fixes ACATS failures.
36521
36522 2001-10-30  Geert Bosch  <bosch@gnat.com>
36523
36524         * 86numaux.adb, a-tigeau.ads, a-wtgeau.ads, fname-sf.ads, g-traceb.ads,
36525         s-tasdeb.ads, sem_maps.ads: Add 2001 to copyright notice.
36526
36527 2001-10-30  Robert Dewar  <dewar@gnat.com>
36528
36529         * bindusg.adb: Undocument -f switch.
36530
36531         * gnatcmd.adb: Remove /FULL_ELABORATION.
36532
36533         * opt.ads (Force_RM_Elaboration_Order): Document that this is
36534         obsolescent.
36535
36536         * gnatbind.adb: Output new warning for use of obsolescent -f switch.
36537
36538         * gnatbind.adb: Minor update of warning msg.
36539
36540 2001-10-30  Vincent Celier  <celier@gnat.com>
36541
36542         * gnatcmd.adb (MAKE, BIND, LINK, LIST, FIND, XREF): Add translations
36543         for project file switches (-P (/PROJECT_FILE=),
36544          -X (/EXTERNAL_REFERENCE=) and -vPx (/PROJECT_FILE_VERBOSITY=DEFAULT
36545         or MEDIUM or HIGH)
36546
36547 2001-10-30  Geert Bosch  <bosch@gnat.com>
36548
36549         * decl.c: Minor whitespace fixes.
36550
36551 2001-10-30  Richard Kenner  <kenner@gnat.com>
36552
36553         * utils2.c (build_allocator): Test for SIZE overflow in array case too
36554
36555 2001-10-30  Geert Bosch  <bosch@gnat.com>
36556
36557         * ali-util.adb (Initialize_Checksum): Use out-mode instead of in out.
36558         Found due to GCC 3.0 warning of using uninitialized value.
36559
36560         * layout.adb:
36561         (Get_Max_Size): Use variant record for tracking value/expression.
36562          Makes logic clearer and prevents warnings for uninitialized variables.
36563         (Layout_Array_Type): Use variant record for tracking value/expression.
36564          Makes logic clearer and prevents warnings for uninitialized variables.
36565
36566 2001-10-30  Robert Dewar  <dewar@gnat.com>
36567
36568         * lib.adb: Minor reformatting
36569
36570         * s-taprop.ads: Minor reformatting
36571
36572 2001-10-29  Laurent Guerby  <guerby@acm.org>
36573
36574         * init.c:
36575         (Raise_From_Signal_Handler, Propagate_Signal_Exception): Make arg
36576         const.
36577         (_gnat_error_handler): Make MSG const.
36578
36579 2001-10-29  Richard Kenner  <kenner@gnat.com>
36580
36581         * sysdep.c: Fix localtime_r problem on LynxOS.
36582         Also remove #elif to avoid warnings.
36583
36584         * misc.c (yyparse): Don't set up and register jmpbuf; remove decls
36585         used by this.
36586
36587         * decl.c (annotate_value): Make SIZE unsigned to avoid warning.
36588
36589 2001-10-28  Joseph S. Myers  <jsm28@cam.ac.uk>
36590
36591         * 86numaux.adb, a-tigeau.ads, a-wtgeau.ads, decl.c, exp_ch6.adb,
36592         exp_ch9.adb, exp_util.adb, fname-sf.ads, freeze.ads, g-awk.adb,
36593         g-comlin.ads, g-dirope.adb, g-dyntab.ads, g-socket.ads,
36594         g-table.ads, g-traceb.ads, gnat-style.texi, gnatchop.adb, init.c,
36595         layout.adb, layout.ads, mdllfile.ads, mlib-fil.ads, osint.ads,
36596         s-fatgen.adb, s-imgrea.adb, s-taprop.ads, s-tasdeb.ads,
36597         sem_aggr.adb, sem_attr.adb, sem_case.ads, sem_ch13.adb,
36598         sem_ch3.adb, sem_elab.adb, sem_maps.ads, sem_res.adb,
36599         sem_util.ads, sinfo.ads, sinput.ads, table.adb, table.ads,
36600         types.ads, urealp.adb: Fix spelling errors.
36601
36602 2001-10-27  Laurent Guerby  <guerby@acm.org>
36603
36604         * trans.c (gigi): Fix non determinism leading to bootstrap
36605         comparison failures for debugging information.
36606
36607 2001-10-26  Florian Weimer  <fw@deneb.enyo.de>
36608
36609         * gnat_rm.texi: Use @./@: where appropriate.
36610
36611 2001-10-26  Robert Dewar  <dewar@gnat.com>
36612
36613         * sinfo.adb: Define Associated_Node to overlap Entity field. Cleanup.
36614
36615 2001-10-26  Richard Kenner  <kenner@gnat.com>
36616
36617         * gmem.c (__gnat_gmem_read_next): Properly check for EOF
36618
36619 2001-10-26  Richard Kenner  <kenner@gnat.com>
36620
36621         * decl.c (validate_size): Modify message for bad size to avoid
36622         implication that compiler is modifying the size.
36623
36624 2001-10-26  Robert Dewar  <dewar@gnat.com>
36625
36626         * prj-util.adb: Minor reformatting. Fix bad header format.
36627
36628 2001-10-26  Robert Dewar  <dewar@gnat.com>
36629
36630         * sinfo.ads: Define Associated_Node to overlap Entity field. Cleanup.
36631
36632         * sinfo.ads: Clarify use of Associated_Node (documentation only).
36633
36634         * sem_ch12.adb: Change Node4 to Associated_Node. Change
36635         Associated_Node to Get_Associated_Node. Put use of Unchecked_Access
36636         much more narrowly in places where needed. These are cleanups.
36637
36638 2001-10-26  Joel Brobecker  <brobecke@gnat.com>
36639
36640         * 5zosinte.ads (null_pthread): new constant.
36641
36642         * 5ztaprop.adb:
36643         (Initialize_TCB): Initialize thread ID to null, to be able to verify
36644          later that this field has been set.
36645         (Finalize_TCB): ditto.
36646         (Suspend_Task): Verify that the thread ID is not null before using it.
36647         (Resume_Task): ditto.
36648
36649         * s-tasdeb.adb:
36650         (Resume_All_Tasks): Lock the tasks list before using it.
36651         (Suspend_All_Tasks): ditto.
36652
36653 2001-10-26  Richard Kenner  <kenner@gnat.com>
36654
36655         * decl.c (gnat_to_gnu_entity, case E_General_Access_Type):
36656         Make constant variant of designated type for Is_Access_Constant.
36657         Call update_pointer_to with main variant.
36658
36659         * trans.c (process_freeze_entity, process_type):
36660         Call update_pointer_to on main variant.
36661
36662         * utils.c (update_pointer_to): Make corresponding variant for NEW_TYPE.
36663         If main variant, update all other variants.
36664
36665         * utils2.c (build_unary_op, case INDIRECT_REF): No longer set
36666         TREE_STATIC.
36667
36668 2001-10-26  Robert Dewar  <dewar@gnat.com>
36669
36670         * prj-util.adb: Minor reformatting
36671
36672 2001-10-26  Robert Dewar  <dewar@gnat.com>
36673
36674         * prj-util.adb: Minor reformatting
36675
36676 2001-10-26  Robert Dewar  <dewar@gnat.com>
36677
36678         * prj-attr.adb: Minor reformatting throughout
36679
36680 2001-10-26  Robert Dewar  <dewar@gnat.com>
36681
36682         * prj-attr.ads: Minor reformatting
36683         Add ??? comment (this whole spec has almost no comments)
36684
36685 2001-10-26  Vincent Celier  <celier@gnat.com>
36686
36687         * g-os_lib.adb (Normalize_Pathname): Preserve the double slash
36688         ("//") that precede the drive letter on Interix.
36689
36690 2001-10-26  Geert Bosch  <bosch@gnat.com>
36691
36692         * gnat_rm.texi: Add GNAT Reference Manual.
36693
36694 2001-10-25  Robert Dewar  <dewar@gnat.com>
36695
36696         * sem_ch8.adb (Analyze_Package_Renaming): Skip analysis if Name
36697         is Error. Similar change for other renaming cases.
36698
36699 2001-10-25  Robert Dewar  <dewar@gnat.com>
36700
36701         * s-atacco.ads: Add pragma Inline_Always for functions.
36702         Fix header format. Add copyright 2001
36703
36704 2001-10-25  Ed Schonberg  <schonber@gnat.com>
36705
36706         * par-ch3.adb (P_Subtype_Mark_Resync): for an anonymous array
36707         return Error rather than Empty so that analysis can proceed.
36708
36709 2001-10-25  Ed Schonberg  <schonber@gnat.com>
36710
36711         * sem_util.adb (Enter_Name): better handling of cascaded error
36712         messages when a unit appears in its own context.
36713
36714 2001-10-25  Ed Schonberg  <schonber@gnat.com>
36715
36716         * sem_util.adb (Defining_Entity): in case of error, attach created
36717         entity to specification, so that semantic analysis can proceed.
36718
36719 2001-10-25  Robert Dewar  <dewar@gnat.com>
36720
36721         * sem_util.adb
36722         (Defining_Entity): Deal with Error.
36723         (Process_End_Label): Deal with bad end label for.
36724
36725 2001-10-25  Ed Schonberg  <schonber@gnat.com>
36726
36727         * sem_elab.adb (Check_A_Call): refine message when call is in an
36728         instance but callee is not declared in the generic unit.
36729
36730 2001-10-25  Ed Schonberg  <schonber@gnat.com>
36731
36732         * sem_elab.adb (Check_A_Call): check for renaming before finding the
36733         enclosing unit, which may already be different from the calling unit.
36734
36735 2001-10-25  Geert Bosch  <bosch@gnat.com>
36736
36737         * 4gintnam.ads: fix header format.
36738
36739 2001-10-25  Ed Schonberg  <schonber@gnat.com>
36740
36741         * sem_res.adb (Resolve_Call): if the call is actually an indexing
36742         operation on the result of a parameterless call, perform elaboration
36743         check after the node has been properly rewritten.
36744
36745         * sem_ch12.adb (Copy_Generic_Node): after the proper body has been
36746         inlined within the generic tree, the defining identifier is not a
36747         compilation_unit.
36748
36749 2001-10-25  Ed Schonberg  <schonber@gnat.com>
36750
36751         * sem_res.adb (Resolve): special-case resolution of Null in an
36752          instance or an inlined body to avoid view conflicts.
36753
36754         * sem_ch12.adb (Copy_Generic_Node): for allocators, check for view
36755          compatibility by retrieving the access type of the generic copy.
36756
36757 2001-10-25  Robert Dewar  <dewar@gnat.com>
36758
36759         * sem_ch3.adb:
36760         (Analyze_Number_Declaration): Handle error expression.
36761         (Signed_Integer_Type_Declaration): Handle error bound.
36762         (Analyze_Subtype_Indication): Handle error range.
36763
36764         * sem_util.adb (Get_Index_Bounds): Check for Error.
36765
36766 2001-10-25  Robert Dewar  <dewar@gnat.com>
36767
36768         * restrict.adb (Set_No_Run_Time_Mode): Set Discard_Names as default
36769         in no run time mode.
36770
36771 2001-10-25  Pascal Obry  <obry@gnat.com>
36772
36773         * gnatmem.adb (Read_Next): fix Curs2 value to properly handle quiet
36774         mode case for ALLOC case.
36775
36776         * gnatmem.adb (Read_Next): correctly fix parsing in Quiet mode on
36777         all platforms. Improvement of last change.
36778
36779 2001-10-25  Robert Dewar  <dewar@gnat.com>
36780
36781         * exp_ch4.adb (Expand_N_Allocator): Minor reformatting.
36782
36783 2001-10-25  Geert Bosch  <bosch@gnat.com>
36784
36785         * osint.adb (Is_Relative): Remove duplicate.
36786
36787 2001-10-25  Pascal Obry  <obry@gnat.com>
36788
36789         * osint.adb (Read_Default_Search_Dirs): correctly detect relative
36790         pathnames in UNIX and DOS style with drive letter.
36791         (Is_Relative): new routine.
36792
36793         * osint.adb: Minor reformatting
36794
36795         * osint.adb (Is_Relative): implementation using
36796         GNAT.OS_Lib.Is_Absolute_Path. Better fix.
36797
36798 2001-10-25  Pascal Obry  <obry@gnat.com>
36799
36800         * g-dirope.adb (Basename): correctly compute offset between the
36801         original Path and the translated one.
36802
36803         * g-dirope.adb: (Base_Name): add some comments.
36804
36805 2001-10-25  Robert Dewar  <dewar@gnat.com>
36806
36807         * exp_imgv.adb (Expand_Image_Attribute): Defend against bad use
36808         in HIE mode, avoids compilation abandoned message
36809
36810         * exp_imgv.adb: Correct typo in previous change
36811
36812         * exp_imgv.adb: Correct typo in previous change (not my day!)
36813
36814 2001-10-25  Robert Dewar  <dewar@gnat.com>
36815
36816         * s-tpinop.ads: Add 2001 to copyright notice. Fix header format.
36817
36818 2001-10-25  Pascal Obry  <obry@gnat.com>
36819
36820         * g-awk.ads: Move all pragma inlines next to the routine
36821          declarations. This is more uniform with other GNAT spec.
36822
36823 2001-10-22  Geert Bosch  <bosch@gnat.com>
36824
36825         * Make-lang.in (gnattools, cross-gnattools): Remove gnatmem.
36826
36827 2001-10-19  Geert Bosch  <bosch@gnat.com>
36828
36829         * Makefile.in (tools, gnattools): Remove gnatmem.
36830
36831 2001-10-17  Richard Henderson  <rth@redhat.com>
36832
36833         * Makefile.in (misc.o): Depend on langhooks.h.
36834         * misc.c: Include it.
36835         (LANG_HOOKS_INIT, LANG_HOOKS_INIT_OPTIONS): New.
36836         (LANG_HOOKS_DECODE_OPTION): New.
36837         (lang_hooks): Use LANG_HOOKS_INITIALIZER.
36838
36839 2001-10-16  Florian Weimer  <fw@deneb.enyo.de>
36840
36841         * trans.c (tree_transform): Adjust to recent change in
36842         expand_asm_operands to implement named asm operands.
36843
36844 2001-10-11  Ed Schonberg  <schonber@gnat.com>
36845
36846         * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Bugfix in
36847         renaming of discriminant for mutable record type.
36848
36849 2001-10-11  Robert Dewar  <dewar@gnat.com>
36850
36851         * validsw.adb: Properly save -gnatVn status.
36852
36853 2001-10-11  Robert Dewar  <dewar@gnat.com>
36854
36855         * usage.adb: Add lines for V switch.
36856
36857         * gnatcmd.adb (COMPILE): Revise translations for -gnatV
36858         (/VALIDITY_CHECKING).
36859
36860 2001-10-11  Ed Schonberg  <schonber@gnat.com>
36861
36862         * sem_type.adb (Add_One_Interp): an operator for a type declared in
36863         an extension of System is known to be visible.
36864
36865 2001-10-11  Ed Schonberg  <schonber@gnat.com>
36866
36867         * sem_eval.adb (Compare_Fixup): get the bounds of a String_Literal
36868         properly. Fixes regression on ACATS C34005G.
36869
36870 2001-10-11  Robert Dewar  <dewar@gnat.com>
36871
36872         * sem_ch5.adb (Analyze_Iteration_Scheme): Suppress warning on null
36873         loop in generic instance, since this is likely not very useful.
36874
36875 2001-10-11  Robert Dewar  <dewar@gnat.com>
36876
36877         * restrict.adb (Disallow in No_Run_Time_Mode): Properly specialize
36878         the error message for high integrity mode.
36879
36880         * rtsfind.adb (RTE): Give message if we try to find an entity that
36881         is not available in high integrity mode.
36882
36883         * rtsfind.ads:
36884         (OK_To_Use_In_HIE_Mode): New array.
36885         (RTE): May return Empty in high integrity mode.
36886
36887         * rtsfind.ads (OK_To_Use_In_No_Run_Time_Mode): New name for
36888         OK_To_Use_In_HIE_Mode, now includes System_FAT_xxx.
36889
36890         * sem_ch6.adb (Analyze_Subprogram_Body): Kill body in predefined
36891         unit if not inlined always and in no runtime mode. Fixes problem
36892         caused by new Rtsfind changes.
36893
36894         * sem_ch6.adb (Analyze_Subrogram_Body): Do not Check_References if
36895         body is deleted.
36896
36897         * rtsfind.adb (RTE): Make sure we do not try to load unit after
36898         giving message for entity not available in high integrity mode.
36899
36900 2001-10-11  Pascal Obry  <obry@gnat.com>
36901
36902         * impunit.adb: Add GNAT.CRC32.
36903
36904 2001-10-11  Ed Schonberg  <schonber@gnat.com>
36905
36906         * exp_fixd.adb (Expand_Multiply_Fixed_By_Fixed_Giving_Fixed): handle
36907         properly the case where one universal operand in a non-static
36908         exponentiation of a real literal.
36909
36910 2001-10-11  Ed Schonberg  <schonber@gnat.com>
36911
36912         * exp_ch7.adb (Find_Final_List): for a type appearing in a with_type
36913         clause, return the gobal finalization list, for lack of anthing else.
36914
36915 2001-10-11  Ed Schonberg  <schonber@gnat.com>
36916
36917         * exp_ch7.adb (Make_Transient_Block): if statement is within
36918         exception handler, always use new transient scope to place Clean
36919         procedure.
36920
36921 2001-10-11  Pascal Obry  <obry@gnat.com>
36922
36923         * Makefile.in:
36924         (GNAT_ADA_OBJS): add g-crc32.o, a-tags.o, a-stream.o
36925         (GNATBIND_OBJS): add g-crc32.o, a-tags.o, a-stream.o
36926         (GNATLS_RTL_OBJS): add g-crc32.o
36927         (GNATMAKE_RTL_OBJS): add g-crc32.o
36928
36929         * ali-util.adb:
36930         (CRC_Match): new function.
36931         (Get_File_Checksum): renamed Get_File_CRC. Use the GNAT.CRC32 unit
36932         instead of the previous simple checksum algorithm.
36933         (Time_Stamp_Mismatch): use CRC_Match for comparison.
36934         (Set_Source_Table): idem.
36935
36936         * ali-util.ads:
36937         (Get_File_Checksum): renamed Get_File_CRC as now we compute CRC
36938         instead of simple checksum.
36939         (CRC_Match): new function.
36940         (CRC_Error): new constant.
36941
36942         * ali.adb (Scan_ALI): rename variable Chk to CRC as we are handling
36943         a CRC now and not a simple checksum. A CRC uses lower-case hex
36944         letters, fixes ambiguity in parsing.
36945
36946         * ali.ads (Sdep_Record.Checksum): renamed Sdep_Record.CRC as this
36947         is what this variable will store.
36948
36949         * bcheck.adb: Change reference to chechsum in comments by CRC.
36950         (Check_Consistency): Rename Get_File_Checksum to Get_File_CRC.
36951         rename All_Checksum_Match to All_CRC_Match. Change due to API
36952         renaming since now GNAT does not use a simple checksum but a
36953         CRC using GNAT.CRC32.
36954
36955         * gnatls.adb: Rename Checksum to CRC in many places, we use a CRC
36956         now and not anymore a simple checksum.
36957
36958         * lib-load.adb: Use Source_CRC instead of Source_Checksum in many
36959         places.
36960
36961         * lib-writ.adb (Write_ALI): Use Source_CRC instead of Source_Checksum.
36962
36963         * scans.adb:
36964         (Restore_Scan_State): rename Checksum to CRC.
36965         (Save_Scan_State): idem.
36966
36967         * scans.ads:
36968         With GNAT.CRC32.
36969         (Checksum): rename to CRC.
36970         (Saved_Scan_State): Save_Checksum field renamed to Save_CRC
36971
36972         * scn-nlit.adb: Rename many Accumulate_Checksum to Update (from
36973         GNAT.CRC32).  Update copyright notice.
36974
36975         * scn-slit.adb: Rename many Accumulate_Checksum to Update (from
36976         GNAT.CRC32).  Update copyright notice.
36977
36978         * scn.adb:
36979         (Accumulate_Checksum): removed.
36980         (Update): new procedure. Add a wide-character into the CRC.
36981
36982         * sinput-l.adb:
36983         (Complete_Source_File_Entry): use CRC32 instead of simple checksum.
36984         (Load_File): fix initialization of S (change Source_Checksum to
36985         Source_CRC)
36986
36987         * sinput-p.adb (Load_Project_File): rename Source_Checksum to
36988         Source_CRC in S initialization.
36989
36990         * sinput.adb (Source_Checksum): renamed to Source_CRC.
36991
36992         * sinput.ads (Source_Checksum): renamed to Source_CRC.
36993         Update comments for the CRC.
36994
36995         * types.adb (Hex): Use lowercase for the letter part.
36996
36997         * types.ads (Get_Hex_String): Returns the hexadecimal representation
36998         for a word. This is currently used only for CRC. In previous version,
36999         the checksum was using a representation with all letter being
37000         upper-case. With the new implementation (using CRC) we do not remove
37001         the 32th bit of the CRC, so we can have an upper-case starting letter
37002         in the CRC. This is not possible to parse in Scan_ALI (ali.adb).
37003         It is ambigous since the CRC was optional and could be followed by
37004         options like EB, EE. So now this routines uses lower-case letter for
37005         the hexadecimal representation. Strange enough only lower case letters
37006         where checked in Scan_ALI (even if this was not a possible case).
37007
37008         * gnatvsn.ads (Library_Version): changed to 3.15a.
37009
37010         * s-crc32.ads: Initial version from GNAT.CRC32. This is the version
37011         for the compiler.
37012
37013         * s-crc32.adb: Initial version from GNAT.CRC32. This is the version
37014         for the compiler.
37015
37016         * ali-util.adb: Redo previous change to avoid using word CRC everywhere
37017         Add 2001 to copyright notice
37018         (Accumulate_Checksum): Modify to use System.CRC32.
37019
37020         * ali-util.ads: Redo changes of previous revision to continue to use
37021         the word Checksum. Add 2001 to copyright notice.
37022
37023         * ali.adb: Undo some of previous changes, not needed.
37024         Keep the change for lower case letters in the checksum.
37025
37026         * ali.ads: Undo previous change not needed.
37027
37028         * bcheck.adb: Undo most of previous change, not needed.
37029         But do use Checksums_Match for checksum comparison.
37030
37031         * gnatls.adb: Undo most of previous change, not needed.
37032         But do use Checksums_Match for comparing checksums.
37033
37034         * lib-load.adb: Undo previous change, not needed.
37035
37036         * lib-writ.adb: Undo previous change, not needed.
37037
37038         * lib-writ.ads: Document that checksums use lower case,
37039         not upper case letters.
37040
37041         * scans.adb: Undo previous change, not needed
37042
37043         * scans.ads: Undo previous change, not needed.
37044
37045         * scn-nlit.adb: Undo previous changes, not needed.
37046
37047         * scn-slit.adb: Undo previous change, not needed.  Fix header format.
37048
37049         * scn.adb:
37050         (Accumulate_Checksum): Use System.CRC32.
37051         (Initialize_Checksum): New procedure.
37052         Remove other changes of previous revision.
37053
37054         * sinput-p.adb: Undo previous change, not needed.
37055
37056         * sinput.adb: Undo previous change, not needed.
37057
37058         * sinput-l.adb: Undo previous change, not needed.
37059
37060         * sinput.ads: Undo previous change, not needed.  Keep only comment
37061         on new checksum algorithm
37062
37063         * Makefile.in: Add s-crc32 as needed, remove g-crc32.
37064         Also remove a-tags and a-stream from GNAT sources.
37065
37066         * ali.adb (Scan_ALI): fix typo introduce in latest check-in.
37067
37068         * Makefile.in (GNATRTL_NONTASKING_OBJS): Add g-crc32.o.
37069
37070 2001-10-11  Geert Bosch  <bosch@gnat.com>
37071
37072         * einfo.h: Regenerate.
37073
37074         * nmake.ads: Regenerate.
37075
37076         * nmake.adb: Regenerate.
37077
37078         * sinfo.h: Regenerate.
37079
37080         * treeprs.adb: Regenerate.
37081
37082 2001-10-10  Geert Bosch  <bosch@gnat.com>
37083
37084         * gnat-style.texi: New file describing coding guidelines for Ada.
37085
37086 2001-10-10  Ed Schonberg  <schonber@gnat.com>
37087
37088         * einfo.adb (Write_Entity_Flags): Elaboration_Entity_Required
37089         is Flag174.
37090
37091 2001-10-10  Geert Bosch  <bosch@gnat.com>
37092
37093         * snames.ads: Add new names for project facility.
37094
37095         * snames.adb: Update to reflect snames.ads changes.
37096
37097         * snames.h: Update to reflect snames.ads changes.
37098
37099 2001-10-10  Vincent Celier  <celier@gnat.com>
37100
37101         * make.adb:
37102         (Add_Switches): reflect the changes for the switches attributes
37103         Default_Switches indexed by the programming language,
37104         Switches indexed by the file name.
37105         (Collect_Arguments_And_Compile): Idem.
37106         Reflect the attribute name changes.
37107
37108         * prj-attr.adb:
37109         (Initialisation_Data): Change the names of some packages and
37110         attributes.
37111         (Initialize): process case insensitive associative arrays.
37112
37113         * prj-attr.ads:
37114         (Attribute_Kind): Remove Both, add Case_Insensitive_Associative_Array.
37115
37116         * prj-dect.adb:
37117         (Parse_Attribute_Declaration): For case insensitive associative
37118          arrays, set the index string to lower case.
37119
37120         * prj-env.adb:
37121         Reflect the changes of the project attributes.
37122
37123         * prj-nmsc.adb:
37124         Replace Check_Naming_Scheme by Ada_Check and
37125         Language_Independent_Check.
37126
37127         * prj-nmsc.ads:
37128         Replaced Check_Naming_Scheme by 2 procedures:
37129         Ada_Check and Language_Independent_Check.
37130
37131         * prj-proc.adb:
37132         (Process_Declarative_Items): For case-insensitive associative
37133         arrays, set the index string to lower case.
37134         (Recursive_Check): Call Prj.Nmsc.Ada_Check, instead of
37135         Prj.Nmsc.Check_Naming_Scheme.
37136
37137         * prj-tree.adb:
37138         (Case_Insensitive): New function
37139         (Set_Case_Insensitive): New procedure
37140
37141         * prj-tree.ads:
37142         (Case_Insensitive): New function
37143         (Set_Case_Insensitive): New procedure
37144         (Project_Node_Record): New flag Case_Insensitive.
37145
37146         * prj-util.adb:
37147         (Value_Of): new function to get the string value of a single
37148         string variable or attribute.
37149
37150         * prj-util.ads:
37151         (Value_Of): new function to get the string value of a single
37152         string variable or attribute.
37153
37154         * prj.adb:
37155         (Ada_Default_Spec_Suffix): New function
37156         (Ada_Default_Impl_Suffix): New function
37157         Change definitions of several constants to reflect
37158         new components of record types.
37159
37160         * prj.ads:
37161         (Naming_Data): Change several components to reflect new
37162         elements of naming schemes.
37163         (Project_Data): New flags Sources_Present and
37164         Language_Independent_Checked.
37165         (Ada_Default_Spec_Suffix): New function.
37166         (Ada_Default_Impl_Suffix): New function.
37167
37168         * snames.ads:
37169         Modification of predefined names for project manager: added
37170         Implementation, Specification_Exceptions, Implementation_Exceptions,
37171         Specification_Suffix, Implementation_Suffix, Separate_Suffix,
37172         Default_Switches, _Languages, Builder, Cross_Reference,
37173         Finder. Removed Body_Part, Specification_Append, Body_Append,
37174         Separate_Append, Gnatmake, Gnatxref, Gnatfind, Gnatbind,
37175         Gnatlink.
37176
37177         * prj.ads: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
37178         Add comments.
37179
37180         * prj-nmsc.adb (Ada_Check): Test that Separate_Suffix is defaulted,
37181         not that it is Nil_Variable_Value.
37182
37183         * prj.ads: Add ??? for uncommented declarations
37184
37185 2001-10-10  Ed Schonberg  <schonber@gnat.com>
37186
37187         * sem_prag.adb: (Analyze_Pragma, case External): If entity is a
37188         constant, do not indicate possible modification, so that gigi can
37189         treat it as a bona fide constant.
37190
37191 2001-10-10  Robert Dewar  <dewar@gnat.com>
37192
37193         * sem_prag.adb: Add processing for pragma External.
37194
37195         * snames.ads: Add entry for pragma External.
37196
37197         * par-prag.adb: Add pragma External.
37198
37199         * snames.adb: Updated to match snames.ads.
37200
37201 2001-10-10  Ed Schonberg  <schonber@gnat.com>
37202
37203         * exp_ch4.adb (Expand_N_Allocator): Generate meaningful names for
37204         a dynamic task if the allocator appears in an indexed assignment
37205         or selected component assignment.
37206
37207         * exp_util.adb (Build_Task_Array_Image, Build_Task_Record_Image):
37208         For a dynamic task in an assignment statement, use target of
37209         assignment to generate meaningful name.
37210
37211 2001-10-10  Ed Schonberg  <schonber@gnat.com>
37212
37213         * einfo.adb (Write_Field19_Name): Body_Entity is also defined for
37214         a generic package.
37215
37216         * einfo.ads: Body_Entity is also defined for generic package.
37217         Documentation change only
37218
37219         * exp_aggr.adb (Build_Array_Aggr_Code): When expanding an
37220         others_choice for a discriminated component initialization,
37221         convert discriminant references into the corresponding discriminals.
37222
37223         * exp_ch3.adb (Get_Simple_Init_Val): Add qualification to aggregate
37224         only if original type is private and expression has to be wrapped
37225         in a conversion.
37226
37227         * checks.adb:
37228         (Apply_Constraint_Check): Do not perform length check
37229         if expression is an aggregate with only an others_choice.
37230         (Length_N_Cond): two references to the same in_parameter
37231         (typically the discriminal in an init_proc) denote the same value.
37232         Two useful optimization uncovered by bugfixes above.
37233
37234 2001-10-10  Robert Dewar  <dewar@gnat.com>
37235
37236         * xeinfo.adb: Change int to char in translation of enumeration types.
37237         This fixes a problem in the C representation of component alignment.
37238         Add 2001 to copyright notice
37239
37240 2001-10-10  Richard Kenner  <kenner@gnat.com>
37241
37242         * decl.c: (validate_size): Do check size of object of integral type
37243         if it is a packed array type.
37244
37245 2001-10-10  Richard Kenner  <kenner@gnat.com>
37246
37247         * decl.c: (gnat_to_gnu_entity, case object): Also materialize
37248         VAR_DECL for constant if not Is_Public but -O0.
37249
37250 2001-10-10  Richard Kenner  <kenner@gnat.com>
37251
37252         * misc.c (struct lang_hooks): Add new initializer to match GCC change.
37253
37254 2001-10-10  Geert Bosch  <bosch@gnat.com>
37255
37256         * xnmake.adb (XNmake): Fix handling of -s/-b options.  No longer
37257         use '/' as switch character, allowing for absolute file names.
37258
37259 2001-10-09  Joseph S. Myers  <jsm28@cam.ac.uk>
37260
37261         * 4gintnam.ads, Make-lang.in, Makefile.in, config-lang.in: Update
37262         FSF address.
37263
37264 2001-10-08  Geert Bosch  <bosch@gnat.com>
37265
37266         * Makefile.in (treeprs.ads, einfo.h, sinfo.h, nmake.adb, nmake.ads):
37267         Automatically build utilities when files need to be regenerated.
37268
37269 2001-10-08  Geert Bosch  <bosch@gnat.com>
37270
37271         * xsnames.adb: New utility for updating snames.ads and snames.adb
37272
37273 2001-10-08  Zack Weinberg  <zack@codesourcery.com>
37274
37275         * Make-lang.in (ADAFLAGS): Add -W -Wall.
37276         (ADA_FLAGS_TO_PASS): Set ADA_CFLAGS=$(CFLAGS) also.
37277         (gnat1): Also depend on attribs.o.
37278         (gnatlib, gnatlib-shared): Set CC and ADAC in recursive make.
37279         * Makefile.in (X_ADAFLAGS, T_ADAFLAGS): New.
37280         (ADAC): Set to @ADAC@ in stage1, $(CC) later.
37281         (ADAFLAGS): Add -W -Wall.
37282         (ALL_ADAFLAGS, MOST_ADAFLAGS): Add X_ADAFLAGS and T_ADAFLAGS;
37283         take out CFLAGS.
37284
37285         (.adb.o, .ads.o, a-numaux.o, a-teioed.o, s-interr.o,
37286         s-taskin.o, sdefault.o, s-tasdeb.o, s-vaflop.o, a-except.o,
37287         s-assert.o, s-stalib.o, s-memory.o, memtrack.o, mlib-tgt.o):
37288         Use $(ADAC), not $(CC), as compilation command.
37289
37290         (gnattools): Depend directly on tools to build, don't use
37291         recursive make.
37292         (gnatlib): Set ADA_CFLAGS=$(GNATLIBCFLAGS) in recursive make.
37293
37294         * einfo.h, sinfo.h: New files (autogenerated).
37295
37296 2001-10-08  Richard Henderson  <rth@redhat.com>
37297
37298         * comperr.adb (Abort_In_Progress): New.
37299         (Compiler_Abort): Use it to prevent recursion.
37300
37301 2001-10-08  Robert Dewar  <dewar@gnat.com>
37302
37303         * atree.adb: Set Error_Posted in Error node, helps error recovery.
37304
37305         * par-endh.adb (Output_End_Expected): We should also not test
37306         Error_Posted on the Error node, since now it is always set.
37307
37308         * cstand.adb (Create_Standard): Set Etype of Error to Any_Type
37309         to help error recovery. Part of general work on 9407-004.
37310
37311         * par.adb: Add ??? for misuse of error
37312
37313         * sem_res.adb:
37314         (Resolve): Defend against Error, fixes 9407-003.
37315         (Resolve_Discrete_Subtype_Indication): Defend against Error.
37316
37317         * sinfo.ads (N_Error): Now has Etype field (which will be set
37318         to Any_Type to help error recovery).
37319
37320 2001-10-08  Richard Kenner  <kenner@gnat.com>
37321
37322         * misc.c (gnat_expand_expr, case UNCHECKED_CONVERT_EXPR):
37323         Consistently set MEM attributes from expression; fixes
37324         bootstrap failure on x86.
37325
37326 2001-10-08  Geert Bosch  <bosch@gnat.com>
37327
37328         * 5oosinte.adb: Add 2001 to copyright notice.
37329
37330 2001-10-08  Geert Bosch  <bosch@gnat.com>
37331
37332         * ceinfo.adb: Add utility for consistency checking of einfo.ad[bs].
37333
37334         * csinfo.adb: Add utility for consistency checking of sinfo.ad[bs].
37335
37336 2001-10-07  Joseph S. Myers  <jsm28@cam.ac.uk>
37337
37338         * 5oosinte.adb: Fix spelling error of "separate" as "seperate".
37339
37340 2001-10-05  Geert Bosch  <bosch@gnat.com>
37341
37342         * adaint.h: Small formatting fix.
37343
37344 2001-10-04  Geert Bosch  <bosch@gnat.com>
37345
37346         * sysdep.c (__gnat_set_binary_mode, __gnat_set_text_mode):
37347         Arg is int, not FILE *, in dummy version of functions.
37348
37349         * adaint.h (__gnat_set_binary_mode, __gnat_set_text_mode):
37350         Arg is int, not FILE *.
37351
37352 2001-10-04  Geert Bosch  <bosch@gnat.com>
37353
37354         * 3lsoccon.ads: Added file, missed with initial check ins.
37355
37356         * 4lintnam.ads: Fix header format.
37357         Change Linux to GNU/Linux.
37358
37359         * 5iosinte.adb: Change Linux to GNU/Linux.
37360
37361         * 5iosinte.ads: Change Linux to GNU/Linux.
37362
37363         * 5itaprop.adb: Change Linux to GNU/Linux.
37364
37365         * 5itaspri.ads: Change Linux to GNU/Linux.
37366         Update copyright notice.
37367
37368         * 5lintman.adb: Change Linux to GNU/Linux.
37369
37370         * 5lml-tgt.adb: Change Linux to GNU/Linux.
37371
37372         * 5losinte.ads: Change Linux to GNU/Linux.
37373
37374         * 5lsystem.ads: Change Linux to GNU/Linux.
37375
37376         * 5qosinte.adb: Change Linux to GNU/Linux.
37377
37378         * 5qosinte.ads: Change Linux to GNU/Linux.
37379
37380         * 5qparame.ads: Change Linux to GNU/Linux.
37381
37382         * 5qtaprop.adb: Change Linux to GNU/Linux.
37383
37384         * 5qtaspri.ads: Change Linux to GNU/Linux.
37385         Add 2001 to copyright notice.
37386
37387         * 5vintman.ads: Change Linux to GNU/Linux.
37388         Fix header format.  Add 2001 to copyright notice.
37389
37390         * g-soccon.ads: Change Linux to GNU/Linux.
37391
37392         * g-trasym.ads: Change Linux to GNU/Linux.
37393         Add 2001 to copyright notice.
37394
37395         * memtrack.adb: Change Linux to GNU/Linux.
37396
37397         * s-intman.ads: Change Linux to GNU/Linux.
37398         Add 2001 to copyright notice.  Fix header format.
37399
37400         * s-stache.adb: Change Linux to GNU/Linux.
37401
37402         * adaint.c: Change Linux to GNU/Linux.
37403
37404         * cio.c: Change Linux to GNU/Linux.
37405
37406         * cstreams.c: Change Linux to GNU/Linux.
37407
37408         * init.c: Change Linux to GNU/Linux.
37409
37410         * gmem.c: Change Linux to GNU/Linux.
37411
37412         * tracebak.c: Change Linux to GNU/Linux.
37413
37414
37415 2001-10-02  Geert Bosch  <bosch@gnat.com>
37416
37417         * misc.c (insert_default_attributes): Add dummy version.