OSDN Git Service

c4ed0e7df24d2cf6c0530b25346a9623e899b226
[pf3gnuchains/gcc-fork.git] / gcc / ada / ChangeLog
1 2008-04-07  Aurelien Jarno  <aurelien@aurel32.net>
2
3         * s-osinte-linux-kfreebsd.ads (SC_NPROCESSORS_ONLN): New 
4         constant constant for sysconf call.
5         (bit_field): New packed boolean type used by cpu_set_t.
6         (cpu_set_t): New type corresponding to the C type with
7         the same name. Note that on the Ada side we use a bit
8         field array for the affinity mask. There is not need
9         for the C macro for setting individual bit.
10         (pthread_setaffinity_np): New imported routine.
11         * Makefile.in: Use s-tasinf-linux.ads and s-tasinf-linux.adb
12         on GNU/kFreeBSD.
13
14 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
15
16         * utils2.c (build_binary_op): Fold ARRAY_REF and ARRAY_RANGE_REF too.
17
18 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
19
20         * gigi.h (create_subprog_type): Remove returns_with_dsp parameter.
21         * decl.c (gnat_to_gnu_entity): Adjust for above new prototype.
22         * utils.c (create_subprog_type): Remove returns_with_dsp parameter.
23         * trans.c (gnat_to_gnu) <N_Return_Statement>: Remove code dealing with
24         Return by Depressed Stack Pointer.
25
26 2008-04-06  Eric Botcazou  <ebotcazou@adacore.com>
27
28         * decl.c (is_variable_size): Do not unconditionally return false
29         on non-strict alignment platforms.
30
31 2008-04-06  Eric Botcazou  <ebotcazou@adacore.com>
32
33         * decl.c (rest_of_type_decl_compilation_no_defer): New local function
34         used to process all the variants of the specified type.
35         (gnat_to_gnu_entity): Invoke rest_of_type_decl_compilation for enumeral
36         types too.  Call rest_of_type_decl_compilation_no_defer if undeferring.
37         (rest_of_type_decl_compilation): Likewise.
38         * utils.c (gnat_pushdecl): Propagate the name to all variants of type.
39
40 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
41
42         * gigi.h (insert_block): Kill.
43         * utils.c (insert_block): Kill.
44
45 2008-04-02  Eric Botcazou  <ebotcazou@adacore.com>
46
47         * decl.c (gnat_to_gnu_entity) <object>: For a constant object whose
48         type has self-referential size, get the size from the initializing
49         expression directly if it is also a constant whose nominal type
50         has self-referential size.
51
52 2008-04-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
53
54         PR ada/33688
55         * g-soccon-darwin.ads: Define new constant IP_PKTINFO.
56
57         PR ada/33857
58         * env.c: Always include crt_externs.h if __APPLE__ is defined.
59         (__gnat_setenv): Use setenv instead of putenv if __APPLE__ is defined.
60
61 2008-04-01  Andreas Jaeger  <aj@suse.de>
62
63         * g-soccon-linux-ppc.ads: Add new constants SO_REUSEPORT and
64         IP_PKTINFO.
65
66 2008-03-31  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
67
68         * g-table.adb, g-tasloc.adb, g-traceb.ads,
69         g-trasym.adb, g-utf_32.adb, gen-soccon.c, gigi.h, gmem.c,
70         gnatbind.adb, gnatchop.adb, gnatcmd.adb,
71         gnatcmd.ads, gnatdll.adb, gnatfind.adb,
72         gnatlink.adb, gnatmem.adb, gprep.adb,
73         i-cstrea-vms.adb, i-cstrin.adb, i-pacdec.ads,
74         i-vxwork.ads, impunit.adb, init.c, initialize.c, inline.adb,
75         layout.adb, lib-writ.adb, lib-writ.ads, lib-xref.adb,
76         lib-xref.ads, lib.adb, link.c, live.ads,
77         make.adb, makegpr.adb, makeutl.adb, math_lib.adb,
78         mdll-utl.adb, mdll.ads, memroot.adb, memroot.ads,
79         misc.c, mlib-prj.adb, mlib-tgt-hpux.adb,
80         mlib-tgt-linux.adb, mlib-tgt-tru64.adb, mlib-tgt.ads,
81         namet.adb, namet.h, nlists.adb, nlists.ads,
82         nlists.h, opt.ads, osint-b.ads, osint-c.adb,
83         osint-c.ads, osint.adb, osint.ads, output.ads,
84         par-ch10.adb, par-ch12.adb, par-ch2.adb, par-ch3.adb,
85         par-ch4.adb, par-ch5.adb, par-ch6.adb, par-ch9.adb,
86         par-endh.adb, par-labl.adb, par-prag.adb,
87         par-sync.adb, par-tchk.adb, par-util.adb,
88         par.adb, prep.adb, prep.ads, prepcomp.adb, prj-attr.ads,
89         prj-dect.adb, prj-env.adb, prj-ext.adb, prj-nmsc.adb,
90         prj-nmsc.ads, prj-pp.adb, prj-proc.adb,
91         prj-strt.ads, prj-tree.ads, prj.adb, prj.ads: Fix comment typos.
92
93 2008-03-31  Eric Botcazou  <ebotcazou@adacore.com>
94
95         * decl.c (gnat_to_gnu_entity) <object>: Do not force a non-null
96         size if it has overflowed.
97
98 2008-03-31  Olivier Hainque  <hainque@adacore.com>
99             Eric Botcazou  <ebotcazou@adacore.com>
100
101         * utils2.c (find_common_type): Document assumption on t1/t2 vs
102         lhs/rhs. Force use of lhs type if smaller, whatever the modes.
103
104 2008-03-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
105
106         * a-textio.ads, a-witeio.ads, a-ztexio.ads, ali.ads,
107         einfo.ads, erroutc.adb, erroutc.ads, exp_attr.adb,
108         exp_imgv.adb, exp_intr.adb, exp_pakd.adb,
109         exp_pakd.ads, exp_prag.adb, exp_smem.adb,
110         exp_tss.ads, exp_util.adb, exp_util.ads,
111         exp_vfpt.adb, freeze.adb, freeze.ads,
112         frontend.adb, g-alleve.adb, g-altcon.adb,
113         g-altive.ads, g-alveop.ads, g-alvevi.ads,
114         g-arrspl.adb, g-busorg.ads, g-calend.adb,
115         g-calend.ads, g-casuti.ads, g-cgideb.adb,
116         g-comlin.adb, g-comlin.ads, g-curexc.ads,
117         g-debpoo.adb, g-debpoo.ads, g-decstr.adb,
118         g-dirope.adb, g-dirope.ads, g-dynhta.ads,
119         g-dyntab.adb, g-encstr.ads, g-excact.ads,
120         g-except.ads, g-expect.ads, g-heasor.adb,
121         g-hesora.adb, g-hesorg.adb, g-htable.ads,
122         g-locfil.ads, g-md5.adb, g-md5.ads,
123         g-memdum.ads, g-moreex.ads, g-os_lib.adb,
124         g-pehage.adb, g-pehage.ads, g-regexp.adb,
125         g-regexp.ads, g-regpat.adb, g-regpat.ads,
126         g-soccon-aix.ads, g-soccon-darwin.ads,
127         g-soccon-freebsd.ads, g-soccon-hpux-ia64.ads,
128         g-soccon-hpux.ads, g-soccon-irix.ads,
129         g-soccon-linux-64.ads, g-soccon-linux-ppc.ads,
130         g-soccon-linux-x86.ads, g-soccon-lynxos.ads,
131         g-soccon-mingw.ads, g-soccon-solaris-64.ads,
132         g-soccon-solaris.ads, g-soccon-tru64.ads,
133         g-soccon-vms.ads, g-soccon-vxworks.ads,
134         g-soccon.ads, g-socket.adb, g-socket.ads,
135         g-socthi-mingw.adb, g-socthi-vms.adb,
136         g-socthi-vxworks.adb, g-soliop-mingw.ads,
137         g-soliop-solaris.ads, g-soliop.ads, g-spipat.adb,
138         g-spipat.ads, g-string.adb, g-stsifd-sockets.adb: Fix comment
139         typos.
140
141 2008-03-27  Eric Botcazou  <ebotcazou@adacore.com>
142
143         * decl.c (gnat_to_gnu_entity) <E_Procedure>: Also set the public flag
144         if the procedure is imported.
145
146 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
147
148         * adaint.c: Fix warnings.
149
150 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
151
152         * g-dirope.ads, g-dirope.adb: (Dir_Type_Value): Moved to spec.
153
154 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
155
156         * a-witeio.adb: Fix problem with Current_Output (introduce Self).
157         Fix problem of status check for null file
158
159 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
160
161         * s-proinf-irix-athread.ads, s-vxwork-mips.ads,
162         s-traces.ads, s-vxwork-arm.ads, s-vxwork-ppc.ads, s-vxwork-sparcv9.ads,
163         s-tasinf-mingw.ads, s-tasinf-linux.ads, s-tasdeb.ads, mlib-tgt.ads,
164         i-cstrin.ads, uintp.adb, g-catiio.adb, s-vmexta.ads,
165         s-trafor-default.ads, s-vxwork-m68k.ads: Minor reformatting. Update
166         comments.
167
168 2008-03-26  Thomas Quinot  <quinot@adacore.com>
169
170         PR ada/33688
171         * g-socket.ads, g-socket.adb (Options, Set_Socket_Option,
172         Get_Socket_Option): Add support for Receive_Packet_Info.
173
174         * g-soccon.ads, g-soccon-tru64.ads, g-soccon-aix.ads,
175         g-soccon-irix.ads, g-soccon-hpux.ads, g-soccon-solaris.ads,
176         g-soccon-vms.ads, g-soccon-mingw.ads, g-soccon-freebsd.ads,
177         g-soccon-hpux-ia64.ads, g-soccon-solaris-64.ads, g-soccon-darwin.ads,
178         g-soccon-lynxos.ads, g-soccon-linux-64.ads, g-soccon-linux-x86.ads: Add
179         new constants SO_REUSEPORT and IP_PKTINFO
180
181 2008-03-26  Robert Dewar  <dewar@adacore.com>
182
183         * a-taster.adb, s-shasto.adb, s-soflin.adb, s-taasde.adb, s-taenca.adb,
184         a-sytaco.adb, a-sytaco.ads, a-tasatt.adb, a-taside.adb,
185         a-intnam-lynxos.ads, a-retide.adb, a-intnam-tru64.ads, a-intnam-aix.ads,
186         a-intnam-irix.ads, a-intnam-hpux.ads, a-intnam-linux.ads,
187         a-intnam-solaris.ads, a-caldel-vms.adb, a-intnam-vms.ads,
188         a-excpol-abort.adb, a-intnam-mingw.ads, s-interr.adb, s-interr.ads,
189         s-intman.ads, s-gloloc.adb, s-osinte-lynxos-3.ads,
190         s-interr-sigaction.adb, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
191         a-intnam-freebsd.ads, s-osinte-freebsd.ads, s-osinte-lynxos.ads,
192         s-taspri-lynxos.ads, s-osinte-tru64.ads, s-osinte-tru64.ads,
193         s-taspri-tru64.ads, s-osinte-aix.ads, s-osinte-irix.ads,
194         s-osinte-hpux-dce.ads, s-taprop-hpux-dce.adb, s-taspri-hpux-dce.ads,
195         s-osinte-linux.ads, s-osinte-dummy.ads, s-taprop-dummy.adb,
196         s-taspri-dummy.ads, s-interr-dummy.adb, s-osinte-solaris.ads,
197         s-osinte-mingw.ads, s-taprop-solaris.adb, s-taspri-solaris.ads,
198         s-inmaop-vms.adb, s-interr-vms.adb, s-intman-vms.ads, s-osinte-vms.ads,
199         s-osinte-vms.ads, s-taprop-vms.adb, s-taspri-vms.ads,
200         s-taspri-mingw.ads, s-interr-vxworks.adb, s-inmaop-posix.adb,
201         s-intman-vxworks.ads, s-osinte-vxworks.ads, s-osprim-vxworks.adb,
202         s-taspri-vxworks.ads, s-taspri-posix.ads, a-caldel.adb, a-calend.adb,
203         a-elchha.adb, a-dynpri.adb, a-except.adb, a-except.ads, a-interr.ads,
204         a-textio.adb, a-tigeau.ads, atree.adb, s-taprob.adb, s-taprop.ads,
205         s-tarest.adb, s-tarest.ads, s-tasini.adb, s-taskin.adb, s-taskin.ads,
206         s-tasque.adb, s-tasren.adb, s-tasren.ads, s-tassta.adb, s-tassta.ads,
207         s-tasuti.adb, s-tataat.adb, s-tataat.ads, s-tpoben.adb, s-tpoben.ads,
208         s-tpobop.adb, s-tpobop.ads, s-tposen.adb, s-tposen.ads, s-valrea.adb,
209         s-valuti.adb, a-intnam-darwin.ads, s-osinte-darwin.ads, s-solita.adb,
210         a-ztinau.ads, s-osinte-linux-hppa.ads, a-except-2005.adb,
211         a-except-2005.ads, a-rttiev.adb, s-osinte-vxworks6.ads, s-regexp.adb,
212         s-tasloc.adb: Minor reformatting.
213         Update comments.
214         Remove "used for" sections from comments.
215
216 2008-03-26  Robert Dewar  <dewar@adacore.com>
217
218         * s-tpopsp-posix.adb, s-tpopsp-solaris.adb, s-tpopsp-posix-foreign.adb,
219         s-tpopsp-lynxos.adb, s-tpopde-vms.ads, s-tpopde-vms.adb,
220         s-tpopsp-vxworks.adb, s-casi16.adb, s-caun16.adb, s-inmaop.ads,
221         s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-tpinop.adb,
222         s-tpinop.ads, s-tporft.adb, a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb,
223         a-crbtgk.ads, a-crbtgk.adb, a-ciorse.adb, a-cihama.ads, a-cihama.adb,
224         a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads,
225         a-cgcaso.adb, a-cgaaso.adb, a-ciormu.adb, a-cihase.adb, a-swuwha.ads,
226         a-rbtgso.ads, a-cgaaso.ads, a-cgaaso.ads, a-ciorma.adb, a-chtgke.ads,
227         a-chtgke.adb, a-llfzti.ads, a-ztenau.adb, a-ztenau.ads, a-stzhas.ads,
228         a-szbzha.ads, a-szbzha.adb, a-crdlli.ads, a-crdlli.ads, a-crdlli.adb,
229         i-forbla-darwin.adb, i-forbla.ads, s-regexp.adb, a-nllrar.ads,
230         a-nlrear.ads, a-nucoar.ads, a-nurear.ads, i-forlap.ads, s-gearop.adb,
231         s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb, s-gecola.ads,
232         s-gerebl.adb, s-gerela.ads, a-swuwha.adb, i-forbla-unimplemented.ads,
233         double spaced if it fits on one line and otherwise single spaced.
234
235 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
236
237         * s-taprop-irix.adb, s-taprop-tru64.adb, s-taprop-lynxos.adb, 
238         s-taprop-linux.adb, s-taprop-mingw.adb, s-taprop-vxworks.adb, 
239         s-taprop-posix.adb (Create_Task): Do not attempt to set task priority
240         or task info if the thread could not be created.
241
242 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
243
244         * gnatvsn.ads (Library_Version): Bump to 4.4.
245         (Current_Year): Bump to 2008.
246
247 2008-03-26  Robert Dewar  <dewar@adacore.com>
248
249         * ali.ads, ali.adb (Optimize_Alignment_Setting): New field in ALI record
250
251         * bcheck.adb (Check_Consistent_Optimize_Alignment): New procedure
252
253         * debug.adb: Add debug flags d.r and d.v
254         Add debug flag .T (Optimize_Alignment (Time))
255         Add debug flag .S (Optimize_Alignment (Space))
256
257         * freeze.adb (Freeze_Record_Type): Set OK_To_Reorder_Components
258         depending on setting of relevant debug flags.
259         Replace use of Warnings_Off by Has_Warnings_Off
260         (Freeze_Entity): In circuit for warning on suspicious convention
261         actuals, do not give warning if subprogram has same entity as formal
262         type, or if subprogram does not come from source.
263         (Freeze_Entity): Don't reset Is_Packed for fully rep speced record
264         if Optimize_Alignment set to Space.
265
266         * frontend.adb: Add call to Sem_Warn.Initialize
267         Add call to Sem_Warn.Output_Unused_Warnings_Off_Warnings
268         Reset Optimize_Alignment mode from debug switches .S and .T
269
270         * layout.adb (Layout_Composite_Object): Rewritten for
271         Optimize_Aligment pragma.
272
273         * lib-writ.ads, lib-writ.adb: New Ox parameter for Optimize_Alignment
274         mode.
275
276         * opt.ads, opt.adb: (Optimize_Alignment): New global switch
277
278         * par-prag.adb (N_Pragma): Chars field removed, use Chars
279         (Pragma_Identifier (..  instead, adjustments throughout to accomodate
280         this change. Add entry for pragma Optimize_Alignment
281
282         * sem_prag.adb (N_Pragma): Chars field removed, use Chars
283         (Pragma_Identifier (..
284         instead, adjustments throughout to accomodate this change.
285         (Process_Compile_Time_Warning_Or_Error): Use !! for generated msg
286         (Favor_Top_Level): Use new function Is_Access_Subprogram_Type
287         Add implementation of pragma Optimize_Alignment
288
289 2008-03-26  Vincent Celier  <celier@adacore.com>
290
291         * a-szuzti.adb, a-swuwti.adb, a-suteio.adb (functions Get_Line):
292         Improve memory usage to avoid use of stack.
293
294 2008-03-26  Robert Dewar  <dewar@adacore.com>
295
296         * a-teioed.ads: Correct value of Default_Fill
297
298         * a-teioed.adb (Image): Use Fill_Character instead of '*' to fill
299
300 2008-03-26  Robert Dewar  <dewar@adacore.com>
301
302         * a-ztexio.adb, a-ztexio.ads, a-witeio.ads, a-witeio.adb: Fix problem
303         with Current_Output (introduce Self).
304
305 2008-03-26  Robert Dewar  <dewar@adacore.com>
306
307         * checks.adb (Ensure_Valid): Capture valid status if possible
308         (eliminate checks)
309
310 2008-03-26  Robert Dewar  <dewar@adacore.com>
311
312         * stand.ads: Deal with reordering of package standard declarations
313
314         * cstand.adb: Put package Standard declarations in proper order
315
316 2008-03-26  Robert Dewar  <dewar@adacore.com>
317
318         * einfo.ads, einfo.adb (N_Pragma): Chars field removed, use Chars
319         (Pragma_Identifier (.. instead.
320         (OK_To_Reorder_Components): New flag
321         (Has_Entries): Code cleanup.
322         (Warnings_Off_Used): New flag
323         (Warnings_Off_Used_Unmodified): New flag
324         (Warnings_Off_Used_Unreferenced): New flag
325         (Has_Warnings_Off): New function
326         (Has_Unmodified): New function
327         (Has_Unreferenced): New function
328         (Is_Trivial_Subprogram): New flag
329         (Is_Static_Dispatch_Table_Entity): New attribute.
330         Change name Access_Subprogram_Type_Kind to Access_Subprogram_Kind
331         (more consistent with other similar names)
332         (Access_Subprogram_Type): New classification function
333
334 2008-03-26  Robert Dewar  <dewar@adacore.com>
335
336         * errout.ads: Document new !! insertion sequence
337
338         * errout.adb (N_Pragma): Chars field removed, use Chars
339         (Pragma_Identifier (..  instead.
340         Replace use of Warnings_Off by Has_Warnings_Off
341         (Error_Msg_Internal): Don't delete warning ending in !!
342
343 2008-03-26  Robert Dewar  <dewar@adacore.com>
344
345         * par.adb (Check_No_Right_Paren): Removed no longer used
346
347         * par-ch10.adb (N_Pragma): Chars field removed, use Chars
348         (Pragma_Identifier (..  instead.
349
350         * par-ch10.adb (P_Subunit): Improvement in error recovery and message
351
352         * par-tchk.adb, par-ch5.adb, par-ch6.adb, par-ch3.adb,
353         par-ch4.adb: Minor improvements in error recovery and messages.
354
355         * erroutc.adb (Test_Style_Warning_Serious_Msg): Treat style msgs as
356         non-serious
357
358         * par-ch9.adb: Minor improvements in error recovery and messages
359         (P_Protected): Better error recovery for "protected type x;"
360
361         * par-util.adb: Minor improvements in error recovery and messages
362         (Check_No_Right_Paren): Removed no longer used
363
364 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
365
366         * exp_aggr.adb (Replace_Type): When checking for self-reference, verify
367         that the prefix of an attribute is the type of the aggregate being
368         expanded.
369
370 2008-03-26  Javier Miranda  <miranda@adacore.com>
371             Robert Dewar  <dewar@adacore.com>
372
373         * exp_attr.adb (N_Pragma): Chars field removed.
374         (Expand_N_Attribute_Reference): If the designated type associated with
375         attribute 'Unrestricted_Access is a subprogram entity then replace it
376         by an E_Subprogram_Type itype.
377         Implement attribute Old
378
379         * sem_attr.ads (Attribute_Class_Array): Move to snames.ads
380
381         * sem_attr.adb (Build_Access_Subprogram_Itype): Add documentation.
382         Replace call to
383         New_Internal_Entity by call to Create_Itype to centralize calls
384         building itypes, ad propagate the convention of the designated
385         subprogram. In addition, disable the machinery cleaning constant
386         indications from all entities in current scope when 'Unrestricted_Access
387         corresponds with a node initializing a dispatch table slot.
388         (Analyze_Attribute): Parameterless attributes returning a string or a
389         type will not be called with improper arguments, so we can remove junk
390         code that was dealing with this case.
391         Implement attribute Old
392
393         * snames.ads, snames.h, snames.adb: Add entries for attribute Old
394         Add entry for pragma Optimize_Alignment
395         New standard names Sync and Synchronize
396
397 2008-03-26  Robert Dewar  <dewar@adacore.com>
398             Arnaud Charlet  <charlet@adacore.com>
399
400         * exp_ch11.adb (Expand_At_End_Handler): Set From_At_End flag on raise
401         stmt.
402         (No_Exception_Propagation_Active): New function.
403         (Expand_Exception_Handlers): Use No_Exception_Propagation_Active.
404         Update comments, and review all uses of No_Exception_Propagation, which
405         are now correct and in sync with what gigi expects.
406
407         * restrict.ads, restrict.adb (No_Exception_Propagation_Active): New
408         function.
409         (Expand_Exception_Handlers): Use No_Exception_Propagation_Active.
410         Update comments, and review all uses of No_Exception_Propagation, which
411         are now correct and in sync with what gigi expects.
412
413 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
414
415         * sem_ch3.adb (Access_Definition): If the access type is the return
416         result of a protected function, create an itype reference for it
417         because usage will be in an inner scope from the point of declaration.
418         (Build_Derived_Record_Type): Inherit Reverse_Bit_Order and
419         OK_To_Reorder_Components.
420         (Make_Index): If an overloaded range includes a universal integer
421         interpretation, resolve to Standard.Integer.
422         (Analyze_Subtype_Indication): Copy Convention to subtype
423         (Check_Abstract_Interfaces): Complete semantic checks on the legality of
424         limited an synchronized progenitors in type declaration and private
425         extension declarations.
426
427         * exp_ch13.adb (Expand_N_Freeze_Entity): If the scope of the entity is a
428         protected subprogram body, determine proper scope from subprogram
429         declaration.
430
431 2008-03-26  Robert Dewar  <dewar@adacore.com>
432
433         * exp_ch4.adb (Expand_N_Op_Concat): Remove special tests for
434         No_Run_Time_Mode
435
436 2008-03-26  Gary Dismukes  <dismukes@adacore.com>
437
438         * exp_ch5.adb (Expand_N_Extended_Return_Statement): Suppress generation
439         of a heap allocator for a limited unconstrained function return when
440         resstriction No_Allocators is active.
441         (Analyze_Allocator): The restriction No_Allocators is now only checked
442         on allocators that have Comes_From_Source set, as per RM-H.4(7).
443
444         * sem_ch4.adb (Expand_N_Extended_Return_Statement): Suppress generation
445         of a heap allocator for a limited unconstrained function return when
446         resstriction No_Allocators is active.
447         (Analyze_Allocator): The restriction No_Allocators is now only checked
448         on allocators that have Comes_From_Source set, as per RM-H.4(7).
449         (Has_Fixed_Op):  If the name in a function call is Standard."*" and the
450         operands are fixed-point types, the universal_fixed predefined operation
451         is used, regardless of whether the operand type (s) have a primitive
452         operation of the same name.
453
454 2008-03-26  Javier Miranda  <miranda@adacore.com>
455
456         * exp_disp.adb (Make_DT, Make_Secondary_DT): Set attribute
457         Is_Static_Dispatch_Table
458         (Build_Dispatch_Tables): Replace calls to Exchange_Entities() by calls
459         to Exchange_Declarations to exchange the private and full-view. Bug
460         found working in this issue.
461         (Expand_Dispatching_Call): Propagate the convention of the subprogram
462         to the subprogram pointer type.
463         (Make_Secondary_DT): Replace generation of Prim'Address by
464         Address (Prim'Unrestricted_Access)
465         (Make_DT): Replace generation of Prim'Address by
466         Address (Prim'Unrestricted_Access)
467         (Make_Disp_*_Bodies): When compiling for a restricted profile, use
468         simple call form for single entry.
469         (Make_DT): Handle new contents of Access_Disp_Table (access to dispatch
470         tables of predefined primitives).
471         (Make_Secondary_DT): Add support to handle access to dispatch tables of
472         predefined primitives.
473         (Make_Tags): Add entities to Access_Dispatch_Table associated with
474         access to dispatch tables containing predefined primitives.
475
476         * exp_ch6.adb (N_Pragma): Chars field removed, use Chars
477         (Pragma_Identifier (..  instead, adjustments throughout to accomodate
478         this change.
479         (Register_Predefined_DT_Entry): Updated to handle the new contents
480         of attribute Access_Disp_Table (pointers to dispatch tables containing
481         predefined primitives).
482
483         * exp_util.ads, exp_util.adb (Corresponding_Runtime_Package): New
484         subprogram.
485         (Find_Interface_ADT): Updated to skip the new contents of attribute
486         Access_Dispatch_Table (pointers to dispatch tables containing predefined
487         primitives).
488
489         * sem_util.adb (Has_Abstract_Interfaces): Add missing support for
490         concurrent types.
491         (Set_Convention): Use new function Is_Access_Subprogram_Type
492         (Collect_Interfaces_Info): Updated to skip the new contents of attribute
493         Access_Dispatch_Table (pointers to dispatch tables containing predefined
494         primitives).
495
496         * exp_atag.ads, exp_atag.adb (Build_Inherit_Predefined_Prims): Improve
497         expanded code avoiding calls to Build_Predef_Prims.
498         (Build_Set_Predefined_Prim_Op_Address): Improve expanded code avoiding
499         call to Build_Get_Predefined_Prim_Op_Address.
500
501 2008-03-26  Javier Miranda  <miranda@adacore.com>
502
503         * exp_ch7.adb (Make_Clean): Code cleanup using the new centralized
504         subprogram Corresponding_Runtime_Package to know the runtime package
505         that will provide support to a given protected type.
506
507         * exp_ch9.adb (Add_Private_Declarations,
508         Build_Protected_Subprogram_Call,
509         Build_Protected_Entry, Build_Simple_Entry_Call,
510         Expand_N_Protected_Body, Expand_N_Protected_Type_Declaration,
511         Expand_N_Timed_Entry_Call, Make_Initialize_Protection): Code
512         cleanup using the new centralized subprogram Corresponding_Runtime
513         Package to know the runtime package that provides support to
514         a given protected type.
515
516 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
517
518         * exp_pakd.adb (Expand_Bit_Packed_Element_Set): If the component
519         assignment is within the initialization procedure for a packed array,
520         and Initialize_Scalars is enabled, compile right-hand side with checks
521         off, because the value is purposely out of range.
522
523 2008-03-26  Vincent Celier  <celier@adacore.com>
524
525         * gnatcmd.adb: Add processing for GNAT SYNC
526
527         * vms_conv.ads: (Command_Type): Add command Sync
528
529         * vms_conv.adb (Initialize): Add Command_List data for new command Sync
530
531         * vms_data.ads: Add entries for -gnatw.w
532         Add qualifier for gnatstub --header-file option
533         Add switches for GNAT SYNC
534
535         * prj-attr.ads, prj-attr.adb: Add new package Synchronize for GNAT SYNC
536         (Add_Package_Name): New procedure
537         (Package_Name_List): New function
538         (Initialize): Add known package names to the list
539         (Register_New_Package): Add the new package name to the list
540
541 2008-03-26  Robert Dewar  <dewar@adacore.com>
542
543         * g-pehage.adb, g-regist.adb, g-spipat.ads, g-spipat.adb,
544         s-asthan.adb, s-parint.adb, s-rpc.adb, s-stchop.adb: Replace
545         Raise_Exception by "raise with" construct.
546
547 2008-03-26  Pascal Obry  <obry@adacore.com>
548
549         * Makefile.in: Add proper GNAT.Serial_Communications implementation on
550         supported platforms.
551         
552         * Makefile.rtl: Add g-sercom.o.
553         
554         * impunit.adb: Add g-sercom.adb.
555         
556         * s-crtl.ads (open): New routine.
557         (close): Likewise.
558         (write): Likewise.
559         
560         * s-osinte-mingw.ads (BYTE): New type.
561         (CHAR): Likewise.
562         (OVERLAPPED): Likewise.
563         (GENERIC_READ): New constant.
564         (GENERIC_WRITE): Likewise.
565         (OPEN_EXISTING): Likewise.
566         (PSECURITY_ATTRIBUTES): Removed this type, use anonymous access
567         type instead.
568         (CreateFile): New routine.
569         (WriteFile): Likewise.
570         (ReadFile): Likewise.
571         (CloseHandle): Move next to the other file oriented routines.
572
573         * g-sercom.ads: New unit.
574
575         * g-sercom.adb: Default implementation, calls to this unit will raise
576         a program error exception.
577         
578         * g-sercom-mingw.adb, g-sercom-linux.adb: Windows and
579         GNU/Linux implementations.
580
581 2008-03-26  Robert Dewar  <dewar@adacore.com>
582
583         * itypes.adb (Create_Itype): Use new name Access_Subprogram_Kind
584
585         * sem_ch13.adb (Validate_Unchecked_Conversion): Give warning for
586         unchecked conversion for different conventions only for subprogram
587         pointers or on VMS.
588
589 2008-03-26  Vincent Celier  <celier@adacore.com>
590
591         * osint-c.adb (Set_Library_Info_Name): Use canonical case file names
592         to check if the specified object file is correct.
593
594 2008-03-26  Thomas Quinot  <quinot@adacore.com>
595
596         * sem_cat.adb (Validate_RACW_Primitives): Do not rely on
597         Comes_From_Source to exclude primitives from being checked. We want to
598         exclude predefined primitives only, so use the appropriate specific
599         predicate. Also, flag a formal parameter of an anonymous
600         access-to-subprogram type as illegal for a primitive operation of a
601         remote access to class-wide type.
602
603 2008-03-26  Vincent Celier  <celier@adacore.com>
604
605         * prj-dect.adb (Parse_Package_Declaration): When a package name is not
606         known, check if it may be a missspelling of a known package name. In
607         not verbose, not mode, issue warnings only if the package name is a
608         possible misspelling.
609         In verbose mode, always issue a warning for a not known package name,
610         plus a warning if the name is a misspelling of a known package name.
611
612         * prj-part.adb (Post_Parse_Context_Clause): Modify so that only non
613         limited withs or limited withs are parse during one call.
614         (Parse_Single_Project): Post parse context clause in two passes: non
615         limited withs before current project and limited withs after current
616         project.
617
618         * prj-proc.adb (Imported_Or_Extended_Project_From): Returns an extended
619         project with the name With_Name, even if it is only extended indirectly.
620         (Recursive_Process): Process projects in order: first single withs, then
621         current project, then limited withs.
622
623         * prj-tree.adb (Imported_Or_Extended_Project_Of): Returns an extended
624         project with the name With_Name, even if it is only extended indirectly.
625
626 2008-03-26  Robert Dewar  <dewar@adacore.com>
627
628         * scn.adb (Initialize_Scanner): Format messages belong on standard error
629
630 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
631
632         * sem_ch10.adb (Analyze_Compilation_Unit): if a unit in the context is
633         a generic subprogram that is imported, do not attempt to compile
634         non-existent body.
635
636         * sem_ch12.adb (Instantiate_Subprogram_Body): if the generic is
637         imported, do not generate a raise_program_error for the non-existent
638         body.
639         (Pre_Analyze_Actuals): If an error is detected during pre-analysis,
640         perform minimal name resolution on the generic to avoid spurious
641         warnings.
642         (Find_Actual_Type): the designated type of the actual in a child unit
643         may be declared in a parent unit without being an actual.
644
645 2008-03-26  Robert Dewar  <dewar@adacore.com>
646
647         * sem_ch11.adb: Fix No_Exception_Restriction violation for SJLJ
648         * sinfo.ads, sinfo.adb (From_At_End): New flag
649
650 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
651
652         * sem_ch6.adb (Analyze_Subprogram_Body): Remove spurious check on
653         operations that have an interface parameter.
654         (Analyze_Subprogram_Body): Set Is_Trivial_Subprogram flag
655         Don't treat No_Return call as raise.
656
657         * sem_disp.adb (Check_Dispatching_Operations): apply check for
658         non-primitive interface primitives to access parameters, not to all
659         parameters of an access type.
660
661 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
662
663         * sem_ch7.adb (Install_Parent_Private_Declarations): If the private
664         declarations of a parent unit are made visible when compiling a child
665         instance, the parent is not a hidden open scope, even though it may
666         contain other pending instance.
667         
668         * sem_ch8.adb (Restore_Scope_Stack): If an entry on the stack is a
669         hidden open scope for some child instance, it does affect the
670         visibility status of other stach entries.
671         (Analyze_Object_Renaming): Check that a class-wide object cannot be
672         renamed as an object of a specific type.
673
674 2008-03-26  Robert Dewar  <dewar@adacore.com>
675
676         * sem_res.adb (Check_Infinite_Recursion): Diagnose definite infinite
677         recursion and raise SE directly.
678         (Resolve_Actuals): Reset Never_Set_In_Source if warnings off is
679         set for formal type for IN mode parameter.
680
681 2008-03-26  Robert Dewar  <dewar@adacore.com>
682
683         * sem_warn.ads, sem_warn.adb (Warnings_Off_Pragmas): New table
684         (Initialize): New procedure
685         (Output_Warnings_Off_Warnings): New procedure
686         (Check_References): Suppress certain msgs if Is_Trivial_Subprogram
687         (Output_Non_Modifed_In_Out_Warnings): Ditto
688         (Warn_On_Unreferenced_Entity): Ditto
689
690 2008-03-26  Vincent Celier  <celier@adacore.com>
691
692         * a-direct.adb (Start_Search): Raise Use_Error if the directory is not
693         readable.
694
695 2008-03-26  Matthew Heaney  <heaney@adacore.com>
696
697         * a-ciorse.ads, a-cidlli.ads, a-cdlili.ads, a-cihase.ads, a-cohase.ads, 
698         a-ciorma.ads, a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-coorse.ads:
699         Marked with clauses as private, and controlled operations as overriding
700
701 2008-03-26  Robert Dewar  <dewar@adacore.com>
702
703         * g-byorma.adb (Read_BOM): Reorder tests so that UTF_32 is recognized
704
705 2008-03-26  Robert Dewar  <dewar@adacore.com>
706
707         * back_end.adb, back_end.ads: Minor reformatting
708
709         * bindgen.adb: Minor clarification of comments
710
711         * fname.ads: Minor comment fixes
712
713         * g-altive.ads, g-catiio.ads, g-trasym.ads, prj.ads,
714         prj-nmsc.adb, sem_aggr.adb: Minor reformatting
715
716         * xeinfo.adb, xnmake.adb, xsinfo.adb, xtreeprs.adb,
717         xsnames.adb: Remove warnings off pragma no longer needed
718
719         * a-catizo.ads, a-calari.ads, a-calfor.adb,
720         a-calfor.ads: Fix header.
721
722 2008-03-26  Tristan Gingold  <gingold@adacore.com>
723
724         * init.c: Do not adjust pc for HPARITH on alpha/vms.
725
726 2008-03-26  Robert Dewar  <dewar@adacore.com>
727
728         * lib-xref.adb: (OK_To_Set_Reference): New function
729         (Generate_Reference): Don't set referenced from occurrence in Warnings,
730         Unmodified, or Unreferenced pragma
731
732 2008-03-26  Robert Dewar  <dewar@adacore.com>
733
734         * alloc.ads: Add entries for Warnings_Off_Pragmas table
735
736 2008-03-26  GNAT Script  <nobody@adacore.com>
737
738         * Make-lang.in: Makefile automatically updated
739
740 2008-03-26  Robert Dewar  <dewar@adacore.com>
741
742         * tbuild.ads, tbuild.adb, trans.c, sprint.adb, exp_prag.adb, decl.c,
743         par-ch2.adb, sem_elab.adb, sem_util.ads (N_Pragma): Chars field
744         removed, use Chars (Pragma_Identifier (..  instead, adjustments
745         throughout to accomodate this change.
746
747         * s-pooglo.ads, s-pooloc.ads: Minor comment updates
748
749         * exp_dbug.adb: Use Sem_Util.Set_Debug_Info_Needed (not
750         Einfo.Set_Needs_Debug_Info)
751
752 2008-03-26  Robert Dewar  <dewar@adacore.com>
753
754         * gnat_ugn.texi: Add documentation for -gnatw.w/-gnatw.W
755         Add description for the new gnatstub option '--header-file'
756         clarification of -gnatwz/-gnatwZ
757         Add a "Irix-Specific Considerations" section to document the need to
758         set LD_LIBRARY_PATH when using the default shared runtime library.
759         Added documentation for both gcov and gprof.
760
761         * gnat_rm.texi: Document that pragma Compile_Time_Warning generates
762         messages that are not suppressed when clients are compiled.
763         Add documentation of s-pooglo s-pooloc
764         Document the new GNAT.Serial_Communications API.
765         Add documentation for 'Old attribute
766         Add description of pragma Optimize_Alignment
767
768         * ug_words: Add entries for -gnatw.w -gnatw.W
769
770         * usage.adb: Add line for -gnatw.w (warn on warnings off)
771
772 2008-03-25  Eric Botcazou  <ebotcazou@adacore.com>
773
774         Revert
775         2008-03-05  Eric Botcazou  <ebotcazou@adacore.com>
776         PR ada/35186
777         * decl.c (maybe_pad_type): Avoid padding an integral type when
778         bumping its alignment is sufficient.
779
780 2008-03-25  Arnaud Charlet  <charlet@adacore.com>
781
782         * exp_ch6.adb, exp_disp.adb: Update copyright notice.
783         Fix wrong formatting (lines too long)
784
785 2008-03-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
786
787         * 9drpc.adb, a-caldel-vms.adb, a-caldel.adb,
788         a-calend-vms.adb, a-calend.adb, a-calend.ads,
789         a-calfor.adb, a-chahan.ads, a-chtgke.adb,
790         a-cihama.ads, a-ciorse.adb, a-clrefi.ads,
791         a-cohama.ads, a-comlin.ads, a-coorse.adb,
792         a-crbtgk.adb, a-direct.adb, a-except-2005.adb,
793         a-except-2005.ads, a-except.adb, a-except.ads,
794         a-exexda.adb, a-exexpr-gcc.adb, a-exexpr.adb,
795         a-exextr.adb, a-filico.ads, a-finali.ads,
796         a-intnam-aix.ads, a-intnam-solaris.ads, a-ngcefu.adb,
797         a-ngelfu.adb, a-numaux-darwin.adb, a-numeri.ads,
798         a-sequio.ads, a-strbou.ads, a-strfix.adb,
799         checks.adb, exp_ch3.adb, exp_ch4.adb,
800         exp_ch4.ads, exp_ch5.adb, exp_ch6.adb,
801         exp_ch6.ads, exp_ch7.adb, exp_ch7.ads,
802         exp_ch9.adb, exp_ch9.ads, exp_dbug.adb,
803         exp_dbug.ads, exp_disp.adb, exp_dist.adb,
804         exp_dist.ads, exp_fixd.adb, exp_fixd.ads: Fix comment typos.
805
806 2008-03-24  Robert Dewar  <dewar@adacore.com>
807
808         * s-tpopsp-posix.adb, s-tpopsp-solaris.adb, s-tpopsp-posix-foreign.adb,
809         s-tpopsp-lynxos.adb, s-tpopde-vms.ads, s-tpopde-vms.adb,
810         s-tpopsp-vxworks.adb, s-casi16.adb, s-caun16.adb, s-inmaop.ads,
811         s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-tpinop.adb,
812         s-tpinop.ads, s-tporft.adb, a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb,
813         a-crbtgk.ads, a-crbtgk.adb, a-ciorse.adb, a-cihama.ads, a-cihama.adb,
814         a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads,
815         a-cgcaso.adb, a-cgaaso.adb, a-ciormu.adb, a-cihase.adb, a-swuwha.ads,
816         a-rbtgso.ads, a-cgaaso.ads, a-cgaaso.ads, a-ciorma.adb, a-chtgke.ads,
817         a-chtgke.adb, a-llfzti.ads, a-ztenau.adb, a-ztenau.ads, a-stzhas.ads,
818         a-szbzha.ads, a-szbzha.adb, a-crdlli.ads, a-crdlli.ads, a-crdlli.adb,
819         i-forbla-darwin.adb, i-forbla.ads, s-regexp.adb, a-nllrar.ads,
820         a-nlrear.ads, a-nucoar.ads, a-nurear.ads, i-forlap.ads, s-gearop.adb,
821         s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb, s-gecola.ads,
822         s-gerebl.adb, s-gerela.ads, a-swuwha.adb, i-forbla-unimplemented.ads,
823         double spaced if it fits on one line and otherwise single spaced.
824
825 2008-03-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
826
827         PR documentation/15479
828         * Make-lang.in (doc/gnat_ugn.texi) Renamed from ...
829         (doc/gnat_ugn_unw.texi): ... this, and adjusted.
830         (doc/gnat_ugn.info): Renamed from ...
831         (doc/gnat_ugn_unw.info): ... this.
832         (doc/gnat_ugn.dvi): Renamed from ...
833         (doc/gnat_ugn_unw.dvi): ... this.
834         (doc/gnat_ugn.pdf): Renamed from ...
835         (doc/gnat_ugn_unw.pdf): ... this.
836         (ADA_INFOFILES, ADA_PDFFILES, ada.install-info, ada.dvi):
837         Adjusted.
838         * gnat_ugn.texi (FILE): Hard-code gnat_ugn; set filename
839         unconditionally to gnat_ugn.info.  Fix cross references to the
840         GNAT Reference Manual.  Convert links to the GCC, GDB, Emacs,
841         and GNU make manuals to be proper texinfo links.
842         * gnat_rm.texi: Fix cross references to the GNAT User's Guide.
843
844 2008-03-21  Olivier Hainque  <hainque@adacore.com>
845
846         * trans.c (Attribute_to_gnu) <'length>: Compute as (hb < lb)
847         ? 0 : hb - lb + 1 instead of max (hb - lb + 1, 0).
848
849 2008-03-21  Eric Botcazou  <ebotcazou@adacore.com>
850
851         * trans.c (addressable_p): Add notes on addressability issues.
852
853 2008-03-21  Olivier Hainque  <hainque@adacore.com>
854             Ed Schonberg  <schonberg@adacore.com>
855
856         * trans.c (addressable_p): Accept COND_EXPR when both arms
857         are addressable.
858         (gnat_gimplify_expr): Let the gimplifier handle &COND_EXPR.
859         (call_to_gnu): Do not use name reference in the error message
860         for a misaligned by_reference_parameter. The actual may be a
861         general expression.
862
863 2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
864
865         * misc.c (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
866         
867 2008-03-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
868
869         * gnat_rm.texi (Implementation Defined Characteristics)
870         (Wide_Text_IO, Wide_Wide_Text_IO): Add @var annotations where
871         appropriate.
872         * gnat_ugn.texi (Wide Character Encodings, Switches for gnatbind)
873         (Switches for gnatchop, Installing a library): Likewise.
874
875 2008-03-10  Eric Botcazou  <ebotcazou@adacore.com>
876
877         * trans.c (emit_range_check): Do not emit the check if the base type
878         of the expression is the type against which its range must be checked.
879
880 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
881
882         * decl.c (maybe_pad_type): Use value_factor_p.
883
884 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
885
886         * lang.opt (nostdlib): Move around.
887         * misc.c (gnat_handle_option): Fix formatting.
888         (gnat_dwarf_name): Move around.
889         * trans.c (Case_Statement_to_gnu): Fix formatting.
890         (gnat_to_gnu): Likewise.
891         * utils.c (aggregate_type_contains_array_p): Likewise.
892         (create_subprog_decl): Likewise.
893
894 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
895
896         * decl.c (gnat_to_gnu_entity) <E_Signed_Integer_Subtype>: Do not
897         bother propagating the TYPE_USER_ALIGN flag when creating a JM type.
898
899 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
900
901         * decl.c (gnat_to_gnu_entity) <E_Record_Type>: Do not force
902         BIGGEST_ALIGNMENT when capping the alignment of records with
903         strict alignment and size clause.
904
905 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
906
907         * lang-specs.h: Pass -gnatwa if -Wall is passed.
908         * misc.c (gnat_handle_option) <OPT_Wall>: Expand into -Wunused
909         and -Wuninitialized.
910         (gnat_post_options): Clear warn_unused_parameter.
911
912 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
913
914         * utils.c (finish_record_type): Clear DECL_BIT_FIELD on sufficiently
915         aligned bit-fields, bumping the alignment of the record type if deemed
916         profitable.
917         (value_factor_p): Return false instead of 0.
918
919 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
920
921         * decl.c (gnat_to_gnu_entity) <E_Signed_Integer_Subtype>: Add support
922         for scalar types with small alignment.
923
924 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
925
926         * trans.c (Loop_Statement_to_gnu): Set the SLOC of the loop label
927         from that of the front-end's end label.
928         (gnat_gimplify_stmt) <LOOP_STMT>: Set the SLOC of the backward goto
929         from that of the loop label.
930
931 2008-03-07  Eric Botcazou  <ebotcazou@adacore.com>
932
933         * decl.c (gnat_to_gnu_entity) <E_Modular_Integer_Subtype>: Add
934         comment for the packed array type case.
935         * utils.c (build_template): Use a loop to strip padding or
936         containing records for justified modular types.
937
938 2008-03-07  Eric Botcazou  <ebotcazou@adacore.com>
939
940         * decl.c (gnat_to_gnu_entity): Issue a warning on suspiciously
941         large alignments specified for types.
942         (validate_alignment): Minor cleanup.
943
944 2008-03-07  Eric Botcazou  <ebotcazou@adacore.com>
945
946         * decl.c (MAX_FIXED_MODE_SIZE): Define if not already defined.
947         (gnat_to_gnu_entity) <E_Record_Type>: Try to get a smaller form of
948         the component for packing, if possible, as well as if a component
949         size clause is specified.
950         <E_Record_Subtype>: For an array type used to implement a packed
951         array, get the component type from the original array type.
952         Try to get a smaller form of the component for packing, if possible,
953         as well as if a component size clause is specified.
954         (round_up_to_align): New function.
955         (make_packable_type): Add in_record parameter.
956         For a padding record, preserve the size.  If not in_record and the
957         size is too large for an integral mode, attempt to shrink the size
958         by lowering the alignment.
959         Ditch the padding bits of the last component.
960         Compute sizes and mode manually, and propagate the RM size.
961         Return a BLKmode record type if its size has shrunk.
962         (maybe_pad_type): Use MAX_FIXED_MODE_SIZE instead of BIGGEST_ALIGNMENT.
963         Use Original_Array_Type to retrieve the type in case of an error.
964         Adjust call to make_packable_type.
965         (gnat_to_gnu_field): Likewise.
966         (concat_id_with_name): Minor tweak.
967         * trans.c (larger_record_type_p): New predicate.
968         (call_to_gnu): Compute the nominal type of the object only if the
969         parameter is by-reference.  Do the conversion actual type -> nominal
970         type if the nominal type is a larger record.
971         (gnat_to_gnu): Do not require integral modes on the source type to
972         avoid the conversion for types with identical names.
973         (addressable_p): Add gnu_type parameter.  If it is specified, do not
974         return true if the expression is not addressable in gnu_type.
975         Adjust recursive calls.
976         * utils.c (finish_record_type): Remove dead code.
977
978 2008-03-05  Eric Botcazou  <ebotcazou@adacore.com>
979
980         PR ada/35186
981         * decl.c (maybe_pad_type): Avoid padding an integral type when
982         bumping its alignment is sufficient.
983
984 2008-03-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
985
986         * gnatfind.adb, gnatxref.adb: Fix argument parsing typos.
987         * s-auxdec-empty.adb, s-auxdec.adb: Fix typos in copyright
988         statement.
989         * a-ngcoar.adb, a-ngrear.adb, g-awk.adb, g-debpoo.adb,
990         gprep.adb, make.adb, makegpr.adb, par-ch6.adb, prj-nmsc.adb,
991         sem_attr.adb, sem_ch4.adb, sem_ch8.adb: Fix typos in ada source
992         code output strings.
993         * sem_type.adb, system-vms-ia64.ads, system-vms.ads,
994         system-vms_64.ads: Fix typos in ada source code comments.
995         * sinfo-cn.adb: Remove incomplete sentence.
996
997         PR documentation/15479
998         * gnat_rm.texi, gnat_ugn.texi: Avoid standalone `non' word.
999
1000 2008-02-27  Samuel Tardieu  <sam@rfc1149.net>
1001
1002         PR ada/22255
1003         * s-fileio.adb (Reset): Do not raise Use_Error if mode isn't changed.
1004
1005 2008-02-27  Samuel Tardieu  <sam@rfc1149.net>
1006
1007         PR ada/34799
1008         * sem_ch13.adb (Analyze_Record_Representation_Clause): Check
1009         that underlying type is present.
1010
1011 2008-02-26  Tom Tromey  <tromey@redhat.com>
1012
1013         * misc.c (internal_error_function): Remove test of
1014         USE_MAPPED_LOCATION.
1015         * trans.c (gigi): Remove test of USE_MAPPED_LOCATION.
1016         (Sloc_to_locus): Remove old location code.
1017
1018 2008-02-25  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1019
1020         * gnat_rm.texi, gnat_ugn.texi: Fix spacing after `e.g.' and
1021         `i.e.' by adding comma or `@:' as appropriate.
1022         * gnat_rm.texi (Pragma Wide_Character_Encoding): Instead of
1023         plain characters `C', use `@samp{C}'.
1024         * gnat_ugn.texi (File Naming Rules, About gnatkr)
1025         (Krunching Method): Likewise.
1026
1027         * gnat_ugn.texi (Conventions): List environment variables and
1028         metasyntactic variables.
1029         (Compiling Programs): Fix notation of metasyntactic variables.
1030         Add @file where appropriate.  Use @file for file extensions,
1031         @samp for strings.
1032         * gnat_rm.texi, gnat_ugn.texi: Where appropriate, use @samp
1033         instead of @file, @env instead of @code.
1034
1035 2008-02-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1036
1037         PR documentation/15479
1038         * gnat_rm.texi, gnat_ugn.texi: Where appropriate, replace `..'
1039         and `...' with `@dots{}' or `@enddots{}'.
1040
1041         PR documentation/15479
1042         * gnat_rm.texi, gnat_ugn.texi: Where appropriate, add @command,
1043         use @command instead of @code, @option instead of @samp or @code,
1044         @code instead of @var, @samp instead of @file.
1045
1046         PR documentation/15479
1047         * gnat_ugn.texi (Using gnatmake in a Makefile): Do not ignore errors
1048         in Makefile rules, by using `&&' rather than `;'.
1049
1050 2008-02-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1051
1052         PR documentation/15479
1053         * gnat_ugn.texi: In non-code, avoid space before colon.
1054         (Regular Expressions in gnatfind and gnatxref): Fix indentation.
1055         (Examples of gnatxref Usage): Use @command{vi} instead of
1056         @file{vi}.
1057         (Character Set Control): Do not use @code for UTF-8.
1058         (Validity Checking): Fix typo "NaNs" instead of "NaN's".  Do not
1059         use @code for IEEE.
1060         * gnat_rm.texi (Aggregates with static bounds): Fix typo in code
1061         sample.
1062         * gnat_rm.texi, gnat_ugn.texi: Fix typos.  Bump copyright years.
1063
1064 2008-02-11  Joel Sherrill  <joel.sherrill@oarcorp.com>
1065
1066         PR ada/35143
1067         * env.c: Add __rtems__ to if defined.
1068         * s-osinte-rtems.adb: Add To_Target_Priority.  Fix formatting.
1069         * s-osinte-rtems.ads: Add To_Target_Priority prototype and
1070         PTHREAD_SCOPE_PROCESS/PTHREAD_SCOPE_SYSTEM constants.  Add
1071         pragma Convention as required.
1072         * gsocket.h: Make compile in and out of RTS.
1073         * Makefile.in: Add system-rtems.ads.  Build DEC extensions.
1074         Use g-soccon-rtems.ads.
1075         * g-soccon-rtems.ads, system-rtems.ads: New files.
1076
1077 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1078
1079         PR other/35107
1080         * Make-lang.in (gnat1): Add $(GMPLIBS).
1081
1082 2008-01-26  Eric Botcazou  <ebotcazou@adacore.com>
1083
1084         * decl.c (components_to_record): Improve comment.
1085
1086 2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>
1087
1088         * decl.c (components_to_record): Do not reuse the empty union type
1089         if there is a representation clause on the record.
1090         * trans.c (addressable_p): Return true for INTEGER_CST.
1091
1092 2008-01-21  Eric Botcazou  <ebotcazou@adacore.com>
1093
1094         * trans.c (gnat_to_gnu) <N_Free_Statement>: Use POINTER_PLUS_EXPR
1095         in pointer arithmetics.
1096         * utils2.c (build_allocator): Likewise.
1097
1098 2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>
1099
1100         * utils.c (build_function_stub): Properly build the call expression.
1101
1102 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
1103
1104         * decl.c (gnat_to_gnu_entity) <object>: Process renamings
1105         before converting the expression to the type of the object.
1106         * trans.c (maybe_stabilize_reference) <CONSTRUCTOR>: New case.
1107         Stabilize constructors for special wrapping types.
1108
1109 2008-01-13  Eric Botcazou  <ebotcazou@adacore.com>
1110
1111         * trans.c (call_to_gnu): Invoke the addressable_p predicate only
1112         when necessary.  Merge some conditional statements.  Update comments.
1113         Rename unchecked_convert_p local variable to suppress_type_conversion.
1114         Do not suppress conversions in the In case.
1115         (addressable_p) <VIEW_CONVERT_EXPR>: Do not take alignment issues
1116         into account on non strict-alignment platforms.
1117
1118 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
1119
1120         * utils.c (aggregate_type_contains_array_p): New predicate.
1121         (create_field_decl): In a packed record, force byte alignment
1122         for fields without specified position that contain an array.
1123
1124 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
1125
1126         * utils.c (unchecked_convert): Fold the VIEW_CONVERT_EXPR expression.
1127
1128 2008-01-10  John David Anglin  <dave.anglin.@nrc-cnrc.gc.ca>
1129
1130         PR ada/34466
1131         * s-osinte-linux-hppa.ads (SC_NPROCESSORS_ONLN): New constant for
1132         sysconf call.
1133         (bit_field): New packed boolean type used by cpu_set_t.
1134         (cpu_set_t): New type corresponding to the C type with
1135         the same name. Note that on the Ada side we use a bit
1136         field array for the affinity mask. There is not need
1137         for the C macro for setting individual bit.
1138         (pthread_setaffinity_np): New imported routine.
1139
1140 2008-01-03  Tero Koskinen  <tero.koskinen@iki.fi>
1141
1142         PR ada/34647
1143         * adaint.c (__gnat_open_new_temp, __gnat_tmp_name): Use mkstemp()
1144         on OpenBSD as is done on other BSD systems.
1145
1146         PR ada/34645
1147         * sysdep.c (__gnat_ttyname, getc_immediate_nowait,
1148         getc_immediate_common): Treat OpenBSD as FreeBSD regarding immediate
1149         I/O.
1150
1151         PR ada/34644
1152         * env.c (__gnat_clearenv): Treat OpenBSD as other BSD systems missing
1153         clearenv().
1154
1155         PR ada/34646
1156         * init.c (__gnat_error_handler, __gnat_install_handler,
1157         __gnat_init_float): Define for OpenBSD.
1158
1159         * initialize.c (__gnat_initialize): Define for OpenBSD.
1160
1161 2007-12-27  Samuel Tardieu  <sam@rfc1149.net>
1162
1163         PR ada/34553
1164         * adaint.c (__gnat_open_new_temp, __gnat_tmp_name): Use mkstemp()
1165         instead of mktemp() or tmpnam() on NetBSD.
1166
1167 2007-12-23  Eric Botcazou  <ebotcazou@adacore.com>
1168
1169         * trans.c (call_to_gnu): Make the temporary for non-addressable
1170         In parameters passed by reference.
1171         (addressable_p): Return true for STRING_CST and CALL_EXPR.
1172
1173 2007-12-19  Robert Dewar  <dewar@adacore.com>
1174
1175         * g-expect-vms.adb, g-expect.adb, s-poosiz.adb: 
1176         Add pragma Warnings (Off) for unassigned IN OUT arguments
1177
1178         * sem_warn.adb (Output_Reference): Suppress messages for internal names
1179         (Check_References): Extensive changes to tune up warnings
1180         (Output_Non_Modifed_In_Out_Warnings): Changes to tune up warnings
1181         (Has_Pragma_Unmodifed_Check_Spec): New function
1182         (Check_References): Implement pragma Unmodified
1183         (Warn_On_Unassigned_Out_Parameter): Implement pragma Unmodified
1184
1185         * par-prag.adb: Dummy entry for pragma Unmodified
1186
1187         * sem_prag.adb: Implement pragma Unmodified
1188
1189         * einfo.ads, einfo.adb: (Has_Pragma_Unmodified): New flag
1190         (Proc_Next_Component_Or_Discriminant): Fix typo.
1191         Update comments.
1192
1193         * sem_util.adb (Note_Possible_Modification): Add processinng for pragma
1194         Unmodified.
1195         (Reset_Analyzed_Flags): Use Traverse_Proc instead of Traverse_Func,
1196         because the former already takes care of discarding the result.
1197         (Mark_Coextensions): Remove ununused initial value from Is_Dynamic.
1198         Add comment.
1199
1200         * snames.h, snames.ads, snames.adb: Add entry for pragma Unmodified
1201
1202 2007-12-19  Eric Botcazou  <ebotcazou@adacore.com>
1203
1204         * targparm.adb, targparm.ads, system.ads, system-darwin-ppc.ads,
1205         system-vxworks-x86.ads, system-linux-ppc.ads, system-linux-hppa.ads,
1206         system-hpux-ia64.ads, system-vxworks-arm.ads, system-darwin-x86.ads,
1207         system-vms_64.ads, system-vms-ia64.ads, system-linux-ia64.ads,
1208         system-freebsd-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
1209         system-aix.ads, system-vxworks-sparcv9.ads, system-solaris-x86.ads,
1210         system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads,
1211         system-vxworks-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads,
1212         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
1213         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads
1214         (Dynamic_Trampolines_Used): Delete.
1215
1216         * system-lynxos-x86.ads, system-lynxos-ppc.ads: Ditto.
1217         Turn on stack probing mechanism on LynxOS.
1218
1219 2007-12-19  Bob Duff  <duff@adacore.com>
1220
1221         * atree.ads, atree.adb (Traverse_Func): Walk Field2 last, and eliminate
1222         the resulting tail recursion by hand. This prevents running out of
1223         memory on deeply nested concatenations, since Field2 is where the left
1224         operand of concatenations is stored.
1225         Fix bug (was returning OK_Orig in some cases). Fix return subtype to
1226         clarify that it can only return OK or Abandon.
1227
1228         * sem_res.adb (Resolve_Op_Concat): Replace the recursion on the left
1229         operand by iteration, in order to avoid running out of memory on
1230         deeply-nested concatenations. Use the Parent pointer to get back up the
1231         tree.
1232         (Resolve_Op_Concat_Arg, Resolve_Op_Concat_First,
1233          Resolve_Op_Concat_Rest): New procedures split out of
1234         Resolve_Op_Concat, so the iterative algorithm in Resolve_Op_Concat is
1235         clearer.
1236
1237         * checks.adb (Remove_Checks): Use Traverse_Proc instead of
1238         Traverse_Func, because the former already takes care of discarding the
1239         result.
1240
1241         * errout.adb (First_Node): Use Traverse_Proc instead of Traverse_Func,
1242         because the former already takes care of discarding the result.
1243         (Remove_Warning_Messages): Use appropriate subtype for Status and
1244         Discard 
1245
1246 2007-12-19  Ed Schonberg  <schonberg@adacore.com>
1247
1248         * exp_aggr.adb (Not_OK_For_Backend): A component of a private type with
1249         discriminants forces expansion of the aggregate into assignments.
1250         (Init_Record_Controller):  If the type of the aggregate is untagged and
1251         is not inherently limited, the record controller is not limited either.
1252
1253 2007-12-19  Robert Dewar  <dewar@adacore.com>
1254
1255         * exp_attr.adb (Expand_N_Attribute_Reference, case Size): Fix error in
1256         handling compile time known size of record or array (case of front end
1257         layout active, e.g. in GNAAMP).
1258
1259 2007-12-19  Javier Miranda  <miranda@adacore.com>
1260
1261         * exp_ch3.adb (Expand_N_Object_Declaration): Complete the circuitry
1262         that forces the construction of static dispatch tables in case of
1263         record subtypes.
1264
1265 2007-12-19  Robert Dewar  <dewar@adacore.com>
1266
1267         * exp_ch9.adb (Null_Statements): Moved to library level
1268         (Trivial_Accept_OK): New function
1269         (Expand_Accept_Declaration): Use Trivial_Accept_OK
1270         (Expand_N_Accept_Statement): Use Trivial_Accept_OK
1271
1272 2007-12-19  Robert Dewar  <dewar@adacore.com>
1273
1274         * exp_pakd.adb (Expand_Bit_Packed_Element_Set): Fix packed array type
1275         in complex case where array is Volatile.
1276
1277 2007-12-19  Ed Schonberg  <schonberg@adacore.com>
1278
1279         * freeze.adb (Freeze_Record_Type, Check_Current_Instance): Implement
1280         properly the Ada2005 rules concerning when the current instance of a
1281         record type is aliased.
1282
1283 2007-12-19  Ed Schonberg  <schonberg@adacore.com>
1284
1285         * par-ch3.adb (P_Record_Declaration): Guard against cascaded errors in
1286         mangled declaration
1287         (P_Type_Declaration): Diagnose misuse of "abstract" in untagged record
1288         declarations.
1289         (P_Variant_Part): Cleaner patch for parenthesized discriminant
1290
1291 2007-12-19  Vincent Celier  <celier@adacore.com>
1292
1293         * prj-attr.adb (Package_Node_Id_Of): Returns Unknown_Package when
1294         package is not known
1295
1296         * prj-attr.ads (Unknown_Package): New constant
1297         Do not crash when an unknown package is in several projects
1298
1299         * prj-dect.adb (Parse_Package_Declaration): Mark an unknown package as
1300         ignored
1301
1302         * prj-nmsc.adb (Check): Remove obsolete code related to no longer
1303         existing package Language_Processing.
1304
1305 2007-12-19  Ed Schonberg  <schonberg@adacore.com>
1306             Gary Dismukes  <dismukes@adacore.com>
1307             Samuel Tardieu  <sam@rfc1149.net>
1308
1309         PR ada/15803, ada/15805
1310         * sem_ch6.adb, sem_ch3.adb (Constrain_Access): In Ada2005, diagnose
1311         illegal access subtypes when there is a constrained partial view.
1312         (Check_For_Premature_Usage): New procedure inside
1313         Access_Subprogram_Declaration for checking that an access-to-subprogram
1314         type doesn't reference its own name within any formal parameters or
1315         result type (including within nested anonymous access types).
1316         (Access_Subprogram_Declaration): Add call to Check_For_Premature_Usage.
1317         (Sem_Ch3.Analyze_Object_Declaration, Sem_ch6.Process_Formals): if the
1318         context is an access_to_variable, the expression cannot be an
1319         access_to_constant.
1320
1321 2007-12-19  Bob Duff  <duff@adacore.com>
1322
1323         * sem_ch4.adb (Analyze_Concatenation_Rest): New procedure.
1324         (Analyze_Concatenation): Use iteration instead of recursion in order
1325         to avoid running out of stack space for deeply nested concatenations.
1326
1327 2007-12-19  Ed Schonberg  <schonberg@adacore.com>
1328             Gary Dismukes  <dismukes@adacore.com>
1329
1330         * sem_ch8.adb (Analyze_Subprogram_Renaming): Diagnose illegal renamings
1331         whose renamed entity is a subprogram that requires overriding.
1332         (Premature_Usage): Test for the case of N_Full_Type_Declaration when
1333         issuing an error for premature usage and issue a message that says
1334         'type' rather than 'object'.
1335
1336 2007-12-19  Gary Dismukes  <dismukes@adacore.com>
1337
1338         PR ada/34149
1339         * sem_disp.adb (Check_Dispatching_Call): Augment existing test for
1340         presence of a statically tagged operand (Present (Static_Tag)) with
1341         test for Indeterm_Ancestor_Call when determining whether to propagate
1342         the static tag to tag-indeterminate operands (which forces dispatching
1343         on such calls).
1344         (Check_Controlling_Formals): Ada2005, access parameters can have
1345         defaults.
1346         (Add_Dispatching_Operation, Check_Operation_From_Private_View): do
1347         not insert subprogram in list of primitive operations if already there.
1348
1349 2007-12-19  Tristan Gingold  <gingold@adacore.com>
1350
1351         * utils.c (create_var_decl_1): call rest_of_decl_compilation only for
1352         global variable.
1353
1354 2007-12-19  Thomas Quinot  <quinot@adacore.com>
1355
1356         Part of PR ada/33688
1357         * gen-soccon.c: Add constant IP_PKTINFO to allow getting ancillary
1358         datagram info on Linux.
1359
1360 2007-12-19  Vincent Celier  <celier@adacore.com>
1361
1362         * makegpr.adb (Check_Compilation_Needed): Normalize C_Source_Path so
1363         that the source path name is always found in the dependencies.
1364
1365 2007-12-19  Robert Dewar  <dewar@adacore.com>
1366
1367         * gnat_rm.texi, gnat_ugn.texi: Update documentation of -gnatw.o
1368         Fix name of Wide_Wide_Latin_1/9 file names
1369         Add documentation for Ada.Exceptions.Last_Chance_Handler (a-elchha.ads)
1370         Add missing documentation for Ada.Wide_[Wide_]Characters.Unicode
1371         Add missing documentation for Ada.Command_Line.Response_File
1372         Update list of warning letters for Warnings pragma
1373         Add documentation for pragma Unmodified
1374
1375 2007-12-19  Samuel Tardieu  <sam@rfc1149.net>
1376
1377         * Makefile.in: Add s-tasinf.ad[bs] substitutions for sh4-linux target.
1378
1379 2007-12-17  Arnaud Charlet  <charlet@adacore.com>
1380
1381         * s-vxwork-alpha.ads: Removed, no longer used.
1382
1383 2007-12-15  Jakub Jelinek  <jakub@redhat.com>
1384
1385         * Make-lang.in (gnat1, gnatbind): Pass ALL_CFLAGS on the link line.
1386
1387 2007-12-13  Samuel Tardieu  <sam@rfc1149.net>
1388
1389         PR ada/34360
1390         * Makefile.in: Change two occurrences of mlib-tgt.adb by correct name
1391         mlib-tgt-specific.adb.
1392
1393 2007-12-13  Bob Duff  <duff@adacore.com>
1394
1395         * trans.c (Attribute_to_gnu): Check for violations of the
1396         No_Implicit_Dynamic_Code restriction. This checking used to be done in
1397         the front end, but is moved here so we can make it more accurate.
1398
1399 2007-12-13  Pascal Obry  <obry@adacore.com>
1400
1401         * adaint.c (__gnat_pthread_setaffinity_np): New routine. A dummy
1402          version is provided for older GNU/Linux distribution not
1403          supporting thread affinity sets.
1404         
1405         * s-osinte-linux.ads (SC_NPROCESSORS_ONLN): New constant for sysconf
1406         call.
1407         (bit_field): New packed boolean type used by cpu_set_t.
1408         (cpu_set_t): New type corresponding to the C type with
1409         the same name. Note that on the Ada side we use a bit
1410         field array for the affinity mask. There is not need
1411         for the C macro for setting individual bit.
1412         (pthread_setaffinity_np): New imported routine.
1413         
1414         * s-taprop-linux.adb (Enter_Task): Check that the CPU affinity mask is
1415         no null.
1416         (Create_Task): Set the processor affinity mask if information
1417         is present.
1418         
1419         * s-tasinf-linux.ads, s-tasinf-linux.adb: New files.
1420         
1421 2007-12-13  Robert Dewar  <dewar@adacore.com>
1422
1423         * s-osinte-lynxos-3.ads, s-osinte-hpux.ads, s-osinte-solaris-posix.ads, 
1424         s-osinte-freebsd.ads, s-osinte-lynxos.ads, s-osinte-tru64.ads, 
1425         s-osinte-mingw.ads, s-osinte-aix.ads, s-osinte-hpux-dce.ads, 
1426         s-osinte-irix.ads, s-osinte-solaris.ads, s-intman-vms.adb,
1427         s-osinte-vms.ads, s-osinte-vxworks6.ads, s-osinte-vxworks.ads,
1428         s-auxdec.ads, s-auxdec-vms_64.ads, s-osinte-darwin.ads, 
1429         s-taprop-vms.adb, s-interr-sigaction.adb, s-osinte-linux-hppa.ads, 
1430         i-vxwork-x86.ads, s-tpopde-vms.ads: Add missing pragma Convention C
1431         for subprogram pointers.
1432
1433         * g-ctrl_c.adb: New file.
1434
1435         * g-ctrl_c.ads (Install_Handler): New body.
1436
1437         * freeze.adb (Freeze_Subprogram): Use new flag Has_Pragma_Inline_Always
1438         instead of obsolete function Is_Always_Inlined.
1439         (Freeze_Entity): check for tagged type in imported C subprogram
1440         (Freeze_Entity): check for 8-bit boolean in imported C subprogram
1441         (Freeze_Entity): check for convention Ada subprogram pointer in
1442         imported C subprogram.
1443         (Freeze_Fixed_Point_Type): In the case of a base type where the low
1444         bound would be chopped off and go from negative to zero, force
1445         Loval_Excl_EP to be the same as Loval_Incl_EP (the included lower
1446         bound) so that the size computation for the base type will take
1447         negative values into account.
1448
1449 2007-12-13  Eric Botcazou  <ebotcazou@adacore.com>
1450             Bob Duff  <duff@adacore.com>
1451             Tristan Gingold  <gingold@adacore.com>
1452
1453         * system-linux-ia64.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads, 
1454         system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads, 
1455         system-aix.ads, system-vxworks-sparcv9.ads, system-solaris-x86.ads, 
1456         system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads, 
1457         system-vxworks-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads, 
1458         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads, 
1459         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads, 
1460         system-vxworks-arm.ads, system-darwin-x86.ads, system.ads,
1461         system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads, 
1462         system-linux-ppc.ads, system-linux-hppa.ads, system-hpux-ia64.ads,
1463         system-vms-ia64.ads (Stack_Check_Limits): New target parameter.
1464         (Always_Compatible_Rep): New flag to control trampolines globally.
1465         (Dynamic_Trampolines_Used): New flag for implementing the
1466         No_Implicit_Dynamic_Code restriction more correctly (not yet used,
1467         and not yet set correctly for some targets).
1468
1469         * s-taprop-vxworks.adb: Use stack limit method of stack checking.
1470         Simply indirectly call s-stchop when a task is created.
1471
1472         * ali.ads: 
1473         New flag added: Stack_Check_Switch_Set which is set when '-fstack-check'
1474         appears as an argument (entries A) in an ALI file.
1475
1476         * fe.h (Stack_Check_Limits): Declare new target parameter.
1477         (Check_Implicit_Dynamic_Code_Allowed): New procedure.
1478
1479         * init.c: Declare __gnat_set_stack_limit_hook for VxWorks kernel RTS.
1480         This variable is declared in C to be sure not subject to elaboration
1481         code.
1482         (__gnat_map_signal, VxWorks): In kernel mode, map SIGILL to
1483         Storage_Error.
1484
1485         * targparm.ads, targparm.adb (Stack_Check_Limits): New parameter.
1486         (Always_Compatible_Rep, Dynamic_Trampolines_Used): New parameters.
1487
1488         * s-stchop.ads: Add comments.
1489
1490         * s-stchop-vxworks.adb: Package almost fully rewritten to use stack
1491         limit method of stack checking.
1492
1493         * s-stchop-limit.ads: New file.
1494
1495 2007-12-13  Robert Dewar  <dewar@adacore.com>
1496
1497         * sem_ch5.adb, s-taskin.adb, a-ciorma.adb, a-coorma.adb, a-cohama.adb, 
1498         a-cihama.adb, g-awk.adb, 
1499         s-inmaop-posix.adb: Update handling of assigned value/unreferenced
1500         warnings
1501
1502         * exp_smem.adb: Update handling of assigned value/unreferenced warnings
1503
1504         * sem.adb: Update handling of assigned value/unreferenced warnings
1505
1506         * a-exexpr-gcc.adb: Add a pragma warnings off for boolean return
1507
1508         * lib-xref.ads: Improve documentation for k xref type
1509
1510         * lib-xref.adb: 
1511         Update handling of assigned value/unreferenced warnings
1512         (Generate_Reference): Warning for reference to entity for which a
1513         pragma Unreferenced has been given should be unconditional.
1514         If the entity is a discriminal, mark the original
1515         discriminant as referenced.
1516
1517         * sem_warn.ads, sem_warn.adb
1518         (Check_One_Unit): Test Renamed_In_Spec to control giving warning for
1519         no entities referenced in package
1520         (Check_One_Unit): Don't give message about no entities referenced in
1521         a package if a pragma Unreferenced has appeared.
1522         Handle new warning flag -gnatw.a/-gnatw.A
1523         Update handling of assigned value/unreferenced warnings
1524
1525         * atree.h: Add flags up to Flag247
1526         (Flag231): New macro.
1527
1528 2007-12-13  Jose Ruiz  <ruiz@adacore.com>
1529
1530         * adaint.h: (__gnat_plist_init): Not defined for RTX.
1531
1532         * initialize.c (__gnat_initialize): Do not call __gnat_plist_init for
1533         RTX systems.
1534
1535         * Makefile.in: Add new files s-tasinf-linux.ads and s-tasinf-linux.adb.
1536         (LIBGNAT_TARGET_PAIRS, MISCLIB, THREADSLIB,
1537         EXTRA_GNATRTL_NONTASKING_OBJS, EXTRA_GNATRTL_TASKING_OBJS,
1538         GNATLIB_SHARED for RTX run time): Use the versions required by RTX.
1539
1540         * mingw32.h: 
1541         Do not define GNAT_UNICODE_SUPPORT for RTX since it is not supported.
1542
1543         * sysdep.c (winflush_function for RTX): Procedure that does nothing
1544         since we only have problems with Windows 95/98, which are not
1545         supported by RTX.
1546         (__gnat_ttyname): Return the empty string on Nucleus, just as
1547         done on vxworks.
1548
1549 2007-12-13  Robert Dewar  <dewar@adacore.com>
1550
1551         * a-textio.adb, a-textio.ads: 
1552         Extensive changes to private part for wide character encoding
1553
1554         * a-witeio.adb, a-witeio.ads, a-ztexio.ads, a-ztexio.adb
1555         (Look_Ahead): Fix mishandling of encoded sequences
1556         Move declaration of Wch_Con to private part (should not be visible)
1557
1558         * ali.adb (Scan_ALI): Set default encoding method to brackets instead of
1559         UTF-8. Probably this is never used, but if it is, brackets is
1560         clearly correct.
1561
1562         * bindgen.adb (Get_WC_Encoding): New procedure to properly handle
1563         setting wide character encoding for no main program case and when
1564         encoding is specified using -W?
1565         Initialize stack limit of environment task if stack limit method of
1566         stack checking is enabled.
1567         (Gen_Adainit_Ada): Use Get_WC_Encoding to output encoding method
1568         (Gen_Adainit_C): Use Get_WC_Encoding to output encoding method
1569         (Get_Main_Unit_Name): New function.
1570         (Gen_Adainit_Ada): Add call to main program for .NET when needed.
1571         (Gen_Output_File): Set Bind_Main_Program to True for .NET
1572
1573         * bindusg.adb: Add line for -Wx switch
1574
1575         * s-wchcon.adb, s-wchcon.ads: (Is_Start_Of_Encoding): New function
1576         Add comments
1577         Add new useful constant WC_Longest_Sequences
1578
1579         * switch-b.adb: Clean up handling of -Wx switch
1580         For -gnatWx, set Wide_Character_Encoding_Method_Specified
1581
1582         * switch-c.adb: -gnatg activates warning on assertion errors
1583         For -gnatWx, set Wide_Character_Encoding_Method_Specified
1584
1585         * s-wchcon.adb: (Is_Start_Of_Encoding): New function
1586
1587 2007-12-13  Robert Dewar  <dewar@adacore.com>
1588             Ed Schonberg  <schonberg@adacore.com>
1589
1590         * a-ngcoty.adb: New pragma Fast_Math
1591
1592         * opt.adb: New pragma Fast_Math
1593
1594         * par-prag.adb: 
1595         Add Implemented_By_Entry to the list of pragmas which do not require any
1596         special processing.
1597         (Favor_Top_Level): New pragma.
1598         New pragma Fast_Math
1599
1600         * exp_attr.adb: Move Wide_[Wide_]Image routines to Exp_Imgv
1601         (Expand_N_Attribute_Reference, Displace_Allocator_Pointer,
1602         Expand_Allocator_Expression): Take into account VM_Target
1603         (Expand_Attribute, case 'Identity):  Handle properly the case where
1604         the prefix is a task interface.
1605         New pragma Fast_Math
1606
1607         * par.adb (Next_Token_Is): New function
1608         (P_Pragma): Add Skipping parameter
1609         (U_Left_Paren): New procedure
1610         (U_Right_Paren): New procedure
1611         New pragma Fast_Math
1612
1613         * par-ch10.adb (P_Subunit): Unconditional msg for missing ) after
1614         subunit
1615         New pragma Fast_Math
1616
1617         * sem_prag.adb: Add significance value to table Sig_Flag for pragma
1618         Implemented_By_Entry.
1619         (Analyze_Pragma): Add case for Ada 2005 pragma Implemented_By_Entry.
1620         (Set_Inline_Flags): Do not try to link pragma Inline onto chain of rep
1621         items, since it can apply to more than one overloadable entity. Set
1622         new flag Has_Pragma_Inline_Always for Inline_Always case.
1623         (Analyze_Pragma, case Complex_Representation): Improve error message.
1624         (Analyze_Pragma, case Assert): When assertions are disabled build the
1625         rewritten code with Sloc of expression rather than pragma, so new
1626         warning about failing is not deleted.
1627         (Analyze_Pragma): Allow pragma Preelaborable_Initialization to apply to
1628         protected types and update error message to reflect that. Test whether
1629         the protected type is allowed for the pragma (an error is issued if the
1630         type has any entries, or components that do not have preelaborable
1631         initialization).
1632         New pragma Fast_Math
1633         (Analyze_Pragma, case No_Return): Handle generic instance
1634
1635         * snames.h, snames.ads, snames.adb: 
1636         Add new predefined name for interface primitive _Disp_Requeue.
1637         New pragma Fast_Math
1638
1639         * a-tags.ads, a-tags.adb: New calling sequence for
1640         String_To_Wide_[Wide_]String
1641         (Secondary_Tag): New subprogram.
1642
1643         * exp_imgv.ads, exp_imgv.adb: Move Wide_[Wide_]Image routines here
1644         from Exp_Attr
1645         New calling sequence for String_To_Wide_[Wide_]String
1646         (Expand_Image_Attribute): Major rewrite. New calling sequence avoids
1647         the use of the secondary stack for image routines.
1648
1649         * a-except-2005.adb, s-wchstw.ads, s-wchstw.adb, s-wwdenu.adb: New
1650         calling sequence for String_To_Wide_[Wide_]String
1651
1652         * par-ch3.adb (P_Declarative_Items): Recognize use of Overriding in
1653         Ada 95 mode
1654         (P_Unknown_Discriminant_Part_Opt): Handle missing parens gracefully
1655         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
1656
1657         * par-ch6.adb (P_Subprogram): Recognize use of Overriding in Ada 95 mode
1658         (P_Formal_Part): Use Skipping parameter in P_Pragma call
1659         to improve error recovery
1660
1661         * par-util.adb (Next_Token_Is): New function
1662         (Signal_Bad_Attribute): Use new Namet.Is_Bad_Spelling_Of function
1663
1664         * par-ch2.adb (Skip_Pragma_Semicolon): Do not resynchronize to
1665         semicolon if missing
1666         (P_Pragma): Implement new Skipping parameter
1667         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
1668         Fix location of flag for unrecognized pragma message
1669
1670         * par-tchk.adb (U_Left_Paren): New procedure
1671         (U_Right_Paren): New procedure
1672
1673 2007-12-13  Geert Bosch  <bosch@adacore.com>
1674
1675         * a-tifiio.adb: 
1676         (Put_Int64): Use Put_Digit to advance Pos. This fixes a case where
1677         the second or later Scaled_Divide would omit leading zeroes,
1678         resulting in too few digits produced and a Layout_Error as result.
1679         (Put): Initialize Pos.
1680
1681 2007-12-13  Robert Dewar  <dewar@adacore.com>
1682
1683         atree.ads, atree.adb (Flag231..Flag247): New functions
1684         (Set_Flag231..Set_Flag247): New procedures
1685         (Basic_Set_Convention): Rename Set_Convention to be
1686         Basic_Set_Convention
1687         (Nkind_In): New functions
1688         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
1689
1690         * exp_ch6.adb (Expand_Call): Use new flag Has_Pragma_Inline_Always
1691         instead
1692          of obsolete function Is_Always_Inlined
1693         (Register_Predefined_DT_Entry): Initialize slots of the second
1694         secondary dispatch table.
1695         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
1696         (Expand_N_Function_Call): Remove special provision for stack checking.
1697
1698         * exp_util.ads, exp_util.adb (Is_Predefined_Dispatching_Operation):
1699         Include _Disp_Requeue in the list of predefined operations.
1700         (Find_Interface_ADT): Modified to fulfill the new specification.
1701         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
1702
1703         * par-ch4.adb, nlists.ads, nlists.adb: 
1704         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
1705
1706         * sinfo.ads, sinfo.adb: (Nkind_In): New functions
1707         Fix location of flag for unrecognized pragma message
1708
1709         * sem_ch7.adb: Use Nkind_In
1710
1711 2007-12-13  Vincent Celier  <celier@adacore.com>
1712
1713         * opt.ads: 
1714         Indicate what flags are used by the Project Manager, gprbuild and
1715         gprclean.
1716         (Opt.Follow_Links_For_Dirs): New flag
1717         (Warn_On_Assertion_Failure): New flag
1718         (Wide_Character_Encoding_Method_Specified): New flag
1719         (Suppress_All_Inlining): New switch set by -fno-inline
1720         (Real_VMS_Target): New flag
1721         New pragma Fast_Math
1722
1723 2007-12-13  Robert Dewar  <dewar@adacore.com>
1724
1725         * back_end.adb: Recognize -fno-inline
1726
1727 2007-12-13  Robert Dewar  <dewar@adacore.com>
1728
1729         * checks.adb: Fix optimization problem with short-circuited form
1730
1731 2007-12-13  Bob Duff  <duff@adacore.com>
1732
1733         * clean.adb (Usage): Add line for -aP
1734         (Check_Version_And_Help): Change Check_Version_And_Help to be generic,
1735         with a parameter "procedure Usage", instead of passing a pointer to a
1736         procedure. This is to eliminate trampolines (since the Usage procedure
1737         is often nested in a main procedure, and it would be inconvenient to
1738         unnest it).
1739
1740         * g-comlin.adb (For_Each_Simple_Switch): Change For_Each_Simple_Switch
1741         to be generic, with a parameter "procedure Callback (...)", instead of
1742         passing a pointer to a procedure. This is to eliminate trampolines
1743         (since the Callback procedure is usually nested).
1744
1745         * gnatfind.adb, switch.adb, switch.ads, gnatlink.adb, gnatls.adb, 
1746         gnatname.adb, gnatxref.adb, gnatchop.adb, gprep.adb, gnatbind.adb
1747         (Check_Version_And_Help): Change Check_Version_And_Help to be generic.
1748
1749         * g-pehage.adb (Compute_Edges_And_Vertices, Build_Identical_Key_Sets):
1750         Use the generic Heap_Sort_G instead of Heap_Sort_A.
1751
1752 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
1753
1754         * einfo.ads, einfo.adb: Flag 232 is now Implemented_By_Entry.
1755         (Implemented_By_Entry, Set_Implemented_By_Entry): New routines.
1756         (Write_Entry_Flags): Add an entry for Implemented_By_Entry.
1757         (Renamed_In_Spec): New flag
1758         (Has_Pragma_Inline_Always): New flag
1759         Add missing doc for pragma Obsolescent_Warning
1760         Add missing doc for 17 additional unused flags (230-247)
1761         (Is_Derived_Type): Remove condition "not Is_Generic_Type".
1762         Alphabetize with clauses.
1763         Separate Is_Thunk and Has_Thunks flags
1764         (Write_Entity_Flags): Add forgotten entry for Has_Thunks
1765         (Related_Interface): Renamed to Related_Type.
1766         (Has_Thunks/Set_Has_Thunks): Subprograms of new attribute.
1767         (Set_Is_Flag): Restrict the assertion.
1768
1769 2007-12-13  Vincent Celier  <celier@adacore.com>
1770
1771         * errout.adb (Output_Source_Line): Do not keep a trailing space after
1772         the source line number if the source line is empty.
1773
1774 2007-12-13  Geert Bosch  <bosch@adacore.com>
1775
1776         * eval_fat.adb (Decompose_Int): Handle argument of zero.
1777         (Compose): Remove special casing of zero.
1778         (Exponent): Likewise.
1779         (Fraction): Likewise.
1780         (Machine): Likewise.
1781         (Decompose): Update comment.
1782
1783 2007-12-13  Ed Schonberg  <schonberg@adacore.com>
1784
1785         * exp_aggr.adb (Build_Record_Aggr_Code): If there is an aggregate for a
1786         limited ancestor part, initialize controllers of enclosing record
1787         before expanding ancestor aggregate.
1788         (Gen_Assign): If a component of the aggregate is box-initialized, add
1789         code to call Initialize if the component is controlled, and explicit
1790         assignment of null if the component is an access type.
1791
1792         Handle properly aggregates for limited types that appear in object
1793         declarations when the aggregate contains controlled values such as
1794         protected types.
1795         When expanding limited aggregates into individual components, do not
1796         call Adjust on controlled components that are limited.
1797
1798 2007-12-13  Ed Schonberg  <schonberg@adacore.com>
1799
1800         * expander.adb: Take into account N_Subprogram_Renaming_Declaration
1801
1802 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
1803
1804         * exp_ch3.adb (Predefined_Primitive_Bodies): Generate the body of
1805         predefined primitive _Disp_Requeue.
1806         (Make_Predefined_Primitive_Specs): Create the spec for predefined
1807         primitive _Disp_Requeue.
1808         (Make_Predefined_Primitive_Specs/Predefined_Primitive_Bodies): Set the
1809         type of formal Renamed_Eq to Entity_Id (instead of Node_Id).
1810         (Make_Predefined_Primitive_Specs): Spec of "=" needed if the parent is
1811         an interface type. In case of limited interfaces we now declare all the
1812         predefined primitives associated with synchronized interfaces as
1813         abstract.
1814         (Predef_Spec_Or_Body): For interface types generate abstract subprogram
1815         declarations.
1816         (Predefined_Primitive_Bodies): Add body of "=" if the parent of the
1817         tagged type is an interface type and there is no user-defined equality
1818         function.
1819         Add also bodies of predefined primitives associated with synchronized
1820         interfaces.
1821         (Freeze_Record_Type): Do not build bodies of predefined primitives of
1822         interface types because they are now defined abstract.
1823         Add missing documentation.
1824         (Expand_Record_Controller): Update occurrence of Related_Interface
1825         to Related_Type.
1826         (Build_Offset_To_Top_Functions): Do nothing in case of VM.
1827         (Expand_N_Object_Declaration): Take into account VM_Target when handling
1828         class wide interface object declaration.
1829         (Expand_Previous_Access_Type): Do not create a duplicate master entity
1830         if the access type already has one.
1831         (Expand_N_Object_Declaration): Defend against attempt to validity check
1832         generic types. Noticed for -gnatVcf specified with previous errors.
1833
1834 2007-12-13  Arnaud Charlet  <charlet@adacore.com>
1835
1836         * exp_ch4.adb (Expand_N_Attribute_Reference, Displace_Allocator_Pointer,
1837         Expand_Allocator_Expression): Take into account VM_Target
1838
1839         * exp_ch5.adb (Expand_N_Extended_Return_Statement): Do not use
1840         secondary stack when VM_Target /= No_VM
1841
1842 2007-12-13  Javier Miranda  <miranda@adacore.com>
1843             Ed Schonberg  <schonberg@adacore.com>
1844
1845         * exp_ch7.adb (Expand_N_Package_Body): Replace occurrence of attribute
1846         Is_Complation_Unit by Is_Library_Level_Entity in the code
1847         that decides if the static dispatch tables need to be built.
1848         (Wrap_Transient_Declaration): Do not generate a finalization call if
1849         this is a renaming declaration and the renamed object is a component
1850         of a controlled type.
1851
1852 2007-12-13  Gary Dismukes  <dismukes@adacore.com>
1853
1854         * exp_ch8.ads, exp_ch8.adb (Expand_N_Subprogram_Renaming_Declaration):
1855         In the case where the renamed subprogram is a dereference, call
1856         Force_Evaluation on the prefix.
1857
1858 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
1859             Ed Schonberg  <schonberg@adacore.com>
1860
1861         * exp_ch9.adb (Expand_N_Asynchronous_Select,
1862         Expand_N_Conditional_Entry_Call, Expand_N_Timed_Entry_Call): Code and
1863         comment reformatting.
1864         (Set_Privals): Inherit aliased flag from formal. From code reading.
1865         (Build_Simple_Entry_Call): Out parameters of an access type are passed
1866         by copy and initialized from the actual. This includes entry parameters.
1867         (Expand_N_Requeue_Statement): Reimplement in order to handle both Ada 95
1868         and Ada 2005 models of requeue.
1869         (Null_Statements): Still connsider do-end block null if it contains
1870         Unreferenced and Warnings pragmas.
1871         (Expand_N_Accept_Statement): Do not optimize away null do end if
1872         dispatching policy is other than defaulted.
1873         (Expand_N_Timed_Entry_Call): When the triggering statement is a
1874         dispatching call, manually analyze the delay statement.
1875         (Find_Parameter_Type): Move subprogram to Sem_Util.
1876
1877 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
1878             Javier Miranda  <miranda@adacore.com>
1879
1880         * exp_disp.ads, exp_disp.adb (Default_Prim_Op_Position): Primitive
1881         _Disp_Requeue occupies dispatch table slot number 15. Move
1882         _Disp_Timed_Select to slot 16.
1883         (Make_Disp_Requeue_Body, Make_Disp_Requeue_Spec): New routines which
1884         generate the spec and body of _Disp_Reqeueue.
1885         (Make_DT): Build and initialize the second dispatch table.
1886         Handle initialization of RC_Offset when the parent
1887         is a private type with variable size components.
1888         (Make_Secondary_DT): Complete documentation. Add support to
1889         initialize the second dispatch table.
1890         (Make_Tags): Generate the tag of the second dispatch table.
1891         (Register_Primitive): Add support to register primitives in the
1892         second dispatch table.
1893
1894 2007-12-13  Pascal Obry  <obry@adacore.com>
1895
1896         * expect.c (__gnat_kill) [WIN32]: Implement the SIGINT signal on
1897         Windows. This signal is used by gnatmake to kill child processes for
1898         example.
1899
1900 2007-12-13  Javier Miranda  <miranda@adacore.com>
1901
1902         * exp_intr.adb (Expand_Dispatching_Constructor_Call): Add missing
1903         support for generic dispatching constructor calls in which we need to
1904         locate the tag of a secondary dispatch table associated with an
1905         interface type to properly dispatch the call.
1906         (Expand_N_Attribute_Reference [case Address],
1907         Expand_Dispatching_Constructor_Call, Expand_Unc_Deallocation): Fix
1908         handling of VM targets.
1909
1910 2007-12-13  Robert Dewar  <dewar@adacore.com>
1911             Ed Schonberg  <schonberg@adacore.com>
1912
1913         * exp_prag.adb (Expand_Pragma_Assert): Recognize new warning flag for
1914         assert fail
1915
1916         * ug_words: Add entries for -gnatw.a -gnatw.A
1917
1918         * sem_res.adb (Set_String_Literal_Subtype): If the context of the
1919         literal is a subtype with non-static constraints, use the base type of
1920         the context as the base of the string subtype, to prevent type
1921         mismatches in gigi.
1922         (Resolve_Actuals): If the actual is an entity name, generate a
1923         reference before the actual is resolved and expanded, to prevent
1924         spurious warnings on formals of enclosing protected operations.
1925         (Analyze_Overloaded_Selected_Component): If type of prefix if
1926         class-wide, use visible components of base type.
1927         (Resolve_Selected_Component): Ditto.
1928         (Resolve_Short_Circuit): Detect case of pragma Assert argument
1929         evaluating to False, and issue warning message.
1930
1931         * usage.adb: Add lines for -gnatw.a and -gnatw.A
1932
1933 2007-12-13  Emmanuel Briot  <briot@adacore.com>
1934
1935         * g-calend.ads (No_Time): New constant, to represent an uninitialized
1936         time value
1937
1938         * g-catiio.ads, g-catiio.adb (Value): Added support for more date
1939         formats.
1940         (Month_Name_To_Number): New subprogram
1941
1942         * g-dirope.adb (Get_Current_Dir): On windows, normalize the drive
1943         letter to upper-case.
1944
1945 2007-12-13  Robert Dewar  <dewar@adacore.com>
1946             Ed Schonberg  <schonberg@adacore.com>
1947
1948         * gnat1drv.adb (Gnat1drv): Properly set new flag Opt.Real_VMS_Target
1949
1950         * layout.adb (Resolve_Attribute, case 'Access): If designated type of
1951         context is a limited view, use non-limited view when available. If the
1952         non-limited view is an unconstrained array, this enforces consistency
1953         requirements in 3.10.2 (27).
1954         (Layout_Type): For an access type whose designated type is a limited
1955         view, examine its declaration to determine if it is an unconstrained
1956         array, and size the access type accordingly.
1957         (Layout_Type): Do not force 32-bits for convention c subprogram
1958         pointers in -gnatdm mode, only if real vms target.
1959
1960         * sem_attr.adb (Analyze_Access_Attribute): Use new flag
1961         Has_Pragma_Inline_Always instead of obsolete function Is_Always_Inlined
1962         (Analyze_Access_Attribute,Attribute_Address): Remove checks for
1963         violations of the No_Implicit_Dynamic_Code restriction.
1964         (Resolve_Attribute, case 'Access): If designated type of context is a
1965         limited view, use non-limited view when available. If the non-limited
1966         view is an unconstrained array, this enforces consistency requirements
1967         in 3.10.2 (27).
1968         (Layout_Type): For an access type whose designated type is a limited
1969         view, examine its declaration to determine if it is an unconstrained
1970         array, and size the access type accordingly.
1971
1972 2007-12-13  Vincent Celier  <celier@adacore.com>
1973
1974         * gnatcmd.adb (GNATCmd): Do not issue -d= switch to gnatmetric when
1975         object directory of main project does not exist.
1976         On VMS, correctly set then environment variable for the source
1977         directories.
1978
1979 2007-12-13  Vasiliy Fofanov  <fofanov@adacore.com>
1980
1981         * g-regist.ads, g-regist.adb (Set_Value): new parameter Expand; when
1982         set to True this procedure will create the value of type REG_EXPAND_SZ.
1983         It was only possible to create REG_SZ values before.
1984
1985 2007-12-13  Robert Dewar  <dewar@adacore.com>
1986
1987         * g-spchge.ads, g-spchge.adb, g-u3spch.adb, g-u3spch.ads,
1988         g-wispch.adb, g-wispch.ads, g-zspche.adb, g-zspche.ads,
1989         namet-sp.adb, namet-sp.ads: New files.
1990
1991         * g-speche.adb: Use generic routine in g-spchge
1992
1993         * s-wchcnv.ads, s-wchcnv.adb: 
1994         Minor code cleanup (make formal type consistent with spec)
1995
1996         * namet.adb: Update comments.
1997
1998         * par-endh.adb (Evaluate_End_Entry): Use new
1999         Namet.Sp.Is_Bad_Spelling_Of function
2000
2001         * par-load.adb (Load): Use new Namet.Sp.Is_Bad_Spelling_Of function
2002
2003         * sem_aggr.adb (Resolve_Record_Aggregate): If a component of an
2004         ancestor is an access type initialized with a box, set its type
2005         explicitly, for use in subsequent expansion.
2006         (Check_Misspelled_Component): Use new Namet.Sp.Is_Bad_Spelling_Of
2007         function
2008
2009 2007-12-13  Robert Dewar  <dewar@adacore.com>
2010
2011         * g-spipat.adb (Break): Fix accessibility error (vsn taking not null
2012         access Vstring)
2013
2014 2007-12-13  Robert Dewar  <dewar@adacore.com>
2015
2016         * inline.adb (Back_End_Cannot_Inline): Use new flag
2017         Has_Pragma_Inline_Always instead of obsolete function Is_Always_Inlined
2018
2019         * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Body): Use new flag
2020         Has_Pragma_Inline_Always instead.
2021         of obsolete function Is_Always_Inlined
2022         (Build_Body_To_Inline): Same change
2023         (Cannot_Inline): Same change
2024         Do not give warning on exception raise in No_Return function
2025
2026         * sem_ch13.adb (Analyze_Record_Representation_Clause): If an inherited
2027         component has two inconsistent component clauses in the same record
2028         representation clause, favor the message that complains about
2029         duplication rather than inconsistency.
2030         Update comments.
2031         (Record_Representation_Clause): Do not warn on missing component
2032         clauses for inherited components of a type extension.
2033         (Rep_Item_Too_Late): Do not attempt to link pragma into rep chain for
2034         an overloadable item if it is a pragma that can apply to multiple
2035         overloadable entities (e.g. Inline) because a pragma cannot be on
2036         more than one chain at a time.
2037         (Validate_Unchecked_Conversion): Add code to warn on unchecked
2038         conversion where one of the operands is Ada.Calendar.Time.
2039         (Analyze_Attribute_Definition_Clause): Fix typo in error message.
2040         For now, ignore Component_Size clause on VM targets, as done for
2041         pragma Pack.
2042
2043 2007-12-13  Emmanuel Briot  <briot@adacore.com>
2044             Vincent Celier  <celier@adacore.com>
2045
2046         * prj.ads, prj.adb (Is_A_Language): Now takes a Name_Id instead of a
2047         string
2048         (Must_Check_Configuration, Default_Language_Is_Ada): new flags in
2049         prj.ads
2050         (Hash): Move instantiation of System.HTable.Hash from spec to body
2051         (prj-nmsc.adb): Optimize calls to Name_Find when on case sensitive
2052         systems, since we do not need to recompute the Name_Id for the canonical
2053         file name.
2054         (Body_Suffix_Id_Of, Spec_Suffix_Id_Of): new version that takes a name_id
2055         as a parameter. This parameter is in fact always "ada" in all calls, and
2056         we were doing 160560 extra calls to Name_Find to convert it to Name_Ada
2057         while loading a project with 40000 files
2058
2059         * prj-attr.adb: Fix name of attribute Dependency_Driver
2060         Change the kind of indexing for attribute Root
2061
2062         * prj-dect.adb (Parse_Declarative_Items): Allow redeclarations of
2063         variables already declared, in case constructions.
2064
2065         * prj-env.adb (Initialize): Reset Current_Source_Path_File and
2066         Current_Object_Path_File to No_Path.
2067
2068         * prj-ext.adb (Initialize_Project_Path): In multi language mode, use
2069         ADA_PROJECT_PATH if value of GPR_PROJECT_PATH is empty.
2070
2071         * prj-makr.adb: new parameter Current_Dir
2072
2073         * prj-nmsc.ads, prj-nmsc.adb (Find_Explicit_Sources): Do not look for
2074         Ada sources when language is not Ada.
2075         Change Opt.Follow_Links to Opt.Follow_Links_For_Files.
2076         (Find_Excluded_Sources, Find_Explicit_Sources): new subprograms
2077         (Must_Check_Configuration, Default_Language_Is_Ada): new flags.
2078         (Locate_Directory): Always resolve links when computing Canonical_Path
2079         (Look_For_Sources): Make sure that Name_Buffer contains the file name
2080         in Source_Files before checking for the presence of a directory
2081         separator.
2082         Optimize calls to Name_Find when on case sensitive systems.
2083         (Body_Suffix_Id_Of, Spec_Suffix_Id_Of): new version that takes a name_id
2084         as a parameter.
2085         (Prj.Nmsc.Check): new parameter Current_Dir
2086         (Check_Ada_Naming_Schemes): Restrictions on suffixes are relaxed. They
2087         cannot be empty and the spec suffix cannot be the same as the body or
2088         separate suffix.
2089         (Get_Unit): When a file name can be of several unit kinds (spec, body or
2090         subunit), always consider the longest suffix.
2091         (Check_Configuration): Do not issue an error if there is no compiler
2092         for a language. Just issue a warning and ignore the sources for the
2093         language.
2094         (Check_Library_Attributes): Only check Library_Dir if Library_Name is
2095         not empty.
2096         (Check_Naming_Schemes.Maked_Unit): Only output message if high verbosity
2097         (Unit_Exceptions): New hash table
2098         (Check_Naming_Schemes): Check if a file that could be a unit because of
2099         the naming scheme is not in fact a source because there is an exception
2100         for the unit.
2101         (Look_For_Sources): Put the unit exceptions in hash table
2102         Unit_Exceptions
2103         (Get_Unit_Exceptions): Give initial value No_Source to local variable
2104         Other_Part to avoid exception when code is compiled with validity
2105         checking.
2106         (Get_Sources_From_File): Check that there is no directory information
2107         in the file names.
2108         (Look_For_Sources): Check that there is no directory information in the
2109         list of file names in Source_Files.
2110         (Look_For_Sources): In multi-language mode, do not allow exception file
2111         names that are excluded.
2112         (Excluded_Sources_Htable): New hash table
2113         (Search_Directories.Check_File): New procedure to simplify
2114         Search_Directories.
2115         (Search_Directories): Do not consider excluded sources
2116         (Look_For_Sources): Populate Excluded_Sources_Htable before calling
2117         Search_Directories.
2118         (Get_Exceptions): Set component Lang_Kind of Source_Data
2119         (Get_Unit_Exceptions): Ditto
2120         (Search_Directories): Ditto
2121
2122         * prj-pars.adb: new parameter Current_Dir
2123
2124         * prj-part.ads, prj-part.adb: 
2125         Change Opt.Follow_Links to Opt.Follow_Links_For_Files.
2126         (Opt.Follow_Links_For_Dirs): New flag
2127         (Project_Path_Name_Of): Cache information returned by this routine as
2128         Locate_Regular_File is a costly routine. The code to output a log
2129         information and the effective call to Locate_Regular_File is now
2130         factorized into a routine (code clean-up).
2131         (Parse, Parse_Single_Project): new parameter Current_Dir
2132         When main project file cannot be found, indicate in the error
2133         message the project path that was used to do the search.
2134
2135         * prj-proc.ads, prj-proc.adb (Opt.Follow_Links_For_Dirs): New flag
2136         (Prj.Proc.Process*): new parameter Current_Dir
2137
2138         * switch-m.adb: Change Opt.Follow_Links to Opt.Follow_Links_For_Files
2139
2140 2007-12-13  Bob Duff  <duff@adacore.com>
2141
2142         * restrict.ads, restrict.adb (Check_Implicit_Dynamic_Code_Allowed): New
2143         procedure to be called from the back end to check the
2144         No_Implicit_Dynamic_Code restriction.
2145
2146 2007-12-13  Arnaud Charlet  <charlet@adacore.com>
2147
2148         * rtsfind.adb (Check_CRT): Take into account RTE_Available_Call
2149         Fixes another case where RTE_Available_Call was ignored instead of being
2150         taken into account.
2151         (Load_Fail): Ditto.
2152
2153         * rtsfind.ads: Add new entries.
2154
2155 2007-12-13  Robert Dewar  <dewar@adacore.com>
2156
2157         * g-byorma.adb, g-byorma.ads, g-decstr.adb, g-decstr.ads,
2158         g-deutst.ads, g-encstr.adb, g-encstr.ads, g-enutst.ads: New files.
2159
2160         * scn.adb: Implement BOM recognition
2161
2162 2007-12-13  Thomas Quinot  <quinot@adacore.com>
2163             Ed Schonberg  <schonberg@adacore.com>
2164
2165         * sem_ch10.adb (Check_Private_Child_Unit): A non-private library level
2166         subprogram body that acts as its own spec may not have a non-private
2167         WITH clause on a private sibling.
2168         (Build_Unit_Name): If the parent unit in the name in a with_clause on a
2169         child unit is a renaming, create an implicit with_clause on that
2170         parent, and not on the unit it renames, to prevent visibility errors
2171         in the current unit.
2172
2173 2007-12-13  Ed Schonberg  <schonberg@adacore.com>
2174
2175         * sem_ch12.adb (Instantiate_Formal_Subprogram): In the subprogram
2176         renaming declaration, use the Slocs of the formal parameters from the
2177         declaration of the formal subprogram when creating the formal parameter
2178         entities in the renaming declaration.
2179         (Analyze_Formal_Type_Declaration): Change the placement of the error
2180         message concerning illegal known discriminants. It is now posted on the
2181         type rather than on the first discriminant. This change ensures early
2182         error report.
2183         (Freeze_Subprogram_Body): If the generic subprogram is nested within
2184         the package body that contains the instance, do not generate an
2185         out-of-place freeze node for the enclosing package.
2186         (Collect_Previous_Instantiations): Ignore internal instantiations
2187         generated for formal packages.
2188         (Validate_Derived_Type_Instance): Add a check that when a formal
2189         derived type is Known_To_Have_Preelab_Init then the actual type must
2190         have preelaborable initialization, and issue an error when this
2191         condition is violated.
2192
2193 2007-12-13  Robert Dewar  <dewar@adacore.com>
2194
2195         * s-imenne.adb, s-imenne.ads: New files.
2196
2197         * s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads, s-imgdec.adb, 
2198         s-imgdec.ads, s-imgenu.ads, s-imgint.adb, s-imgint.ads, s-imglld.adb, 
2199         s-imglld.ads, s-imglli.adb, s-imglli.ads, s-imgllu.adb, s-imgllu.ads, 
2200         s-imgrea.adb, s-imgrea.ads, s-imguns.adb, s-imguns.ads, s-imgwch.adb, 
2201         s-imgwch.ads: New calling sequence for Image routines to avoid sec
2202         stack usage.
2203
2204 2007-12-13  Javier Miranda  <miranda@adacore.com>
2205             Ed Schonberg  <schonberg@adacore.com>
2206
2207         * sem_ch3.ads, sem_ch3.adb (Check_Abstract_Overriding): Avoid
2208         generation of spurious error if parent is an interface type; caused
2209         because predefined primitive bodies will be generated later by
2210         Freeze_Record_Type.
2211         (Process_Subtype): The subtype inherits the Known_To_Have_Preelab_Init
2212         flag.
2213         (Derive_Subprograms): Handle derivations of predefined primitives
2214         after all the user-defined primitives to ensure that they are
2215         found in proper order in instantiations.
2216         (Add_Interface_Tag_Components, Inherit_Components): Update occurrences
2217         of Related_Interface to Related_Type.
2218         (Record_Type_Declaration): Minor reordering of calls to decorate the
2219         Tag component because the entity must have set its Ekind attribute
2220         before setting its Is_Tag attribute.
2221         (Analyze_Subtype_Declaration): In the case of subtypes with
2222         Private_Kind, inherit Known_To_Have_Preelab_Init from the parent.
2223
2224 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
2225             Ed Schonberg  <schonberg@adacore.com>
2226
2227         * sem_ch4.adb (Analyze_Selected_Component): Include the requeue
2228         statement to the list of contexts where a selected component with a
2229         concurrent tagged type prefix should yield a primitive operation.
2230         (Find_Primitive_Operation): Handle case of class-wide types.
2231         (Analyze_Overloaded_Selected_Component): If type of prefix is
2232         class-wide, use visible components of base type.
2233         (Resolve_Selected_Component): Ditto.
2234         (Try_Primitive_Operation, Collect_Generic_Type_Ops): If the type is a
2235         formal of a generic subprogram. find candidate interpretations by
2236         scanning the list of generic formal declarations.:
2237         (Process_Implicit_Dereference_Prefix): If the prefix has an incomplete
2238         type from a limited_with_clause, and the full view is available, use it
2239         for subsequent semantic checks.
2240         (Check_Misspelled_Selector): Use Namet.Sp.Is_Bad_Spelling_Of function
2241         (Find_Primitive_Operation): New function.
2242         (Analyze_Overloaded_Selected_Component): insert explicit dereference
2243         only once if several interpretations of the prefix yield an access type.
2244         (Try_Object_Operation): Code and comment cleanup.
2245         (Analyze_Selected_Component): Reorder local variables. Minot comment and
2246         code reformatting. When the type of the prefix is tagged concurrent, a
2247         correct interpretation might be available in the primitive and
2248         class-wide operations of the type.
2249
2250 2007-12-13  Robert Dewar  <dewar@adacore.com>
2251             Ed Schonberg  <schonberg@adacore.com>
2252
2253         * sem_ch8.adb (Analyze_Subprogram_Renaming): Special error message for
2254         renaming entry as subprogram using rename-as-body if subprogram spec
2255         frozen.
2256         (Use_One_Type): The clause is legal on an access type whose designated
2257         type has a limited view.
2258         (Find_Direct_Name): Use Namet.Sp.Is_Bad_Spelling_Of function
2259         (Find_Expanded_Name): Use Namet.Sp.Is_Bad_Spelling_Of function
2260         (Analyze_Renamed_Primitive_Operation): new procedure to determine the
2261         operation denoted by a selected component.
2262         (Analyze_Renamed_Entry): Resolve the prefix of the entry name, because
2263         it can be an expression, possibly overloaded, that returns a task or
2264         an access to one.
2265
2266 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
2267             Gary Dismukes  <dismukes@adacore.com>
2268
2269         * sem_ch9.adb (Analyze_Requeue): Add a local flag to capture whether a
2270         requeue statement is dispatching. Do not emit an error when the name is
2271         not an entry and the context is a dispatching select. Add code to
2272         perform subtype conformance between the formals of the current entry
2273         and those of the target interface primitive.
2274         (Analyze_Asynchronous_Select, Analyze_Conditional_Entry_Call, Analyze_
2275         Timed_Entry_Call): Analyze the triggering statement as the first step of
2276         the processing. If this is a dispatching select, postpone the analysis
2277         of all select statements until the Expander transforms the select. This
2278         approach avoids generating duplicate identifiers after the Expander has
2279         replicated some of the select statements. In case the Expander is
2280         disabled, perform regular analysis.
2281         (Check_Triggering_Statement): New routine.
2282         (Analyze_Requeue): Exclude any interpretations that are not entries when
2283         checking overloaded names in a requeue. Also test type conformance for
2284         matching interpretations rather than requiring subtype conformance at
2285         that point to conform with the RM's resolution rule for requeues.
2286
2287 2007-12-13  Ed Schonberg  <schonberg@adacore.com>
2288
2289         * sem_disp.adb (Check_Dispatching_Call): If an actual in a call to an
2290         inherited operation is a defaulted tag-indeterminate call, and there is
2291         a statically tagged actual, use the static tag as a controlling actual
2292         for the defaulted actual.
2293
2294 2007-12-13  Geert Bosch  <bosch@adacore.com>
2295
2296         * sem_eval.adb (Eval_Real_Literal): N_Constant_Declaration is a static
2297         context, so do not call Check_Non_Static_Context.
2298
2299 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
2300
2301         * sem_type.adb (Function_Interp_Has_Abstract_Op): Add guard to check
2302         whether formal E is an entity which may have parameters.
2303
2304 2007-12-13  Bob Duff  <duff@adacore.com>
2305             Javier Miranda  <miranda@adacore.com>
2306             Robert Dewar  <dewar@adacore.com>
2307
2308         * sem_util.ads, sem_util.adb (Is_Concurrent_Interface): New routine.
2309         (Set_Convention): New procedure to set the Convention flag, and in
2310         addition make sure the Favor_Top_Level flag is kept in sync (all
2311         foreign-language conventions require Favor_Top_Level = True).
2312         (Collect_Abstract_Interfaces): Update occurrences of Related_Interface
2313         to Related_Type.
2314         (Collect_Interfaces_Info): Minor update to handle the two secondary
2315         dispatch tables. Update occurrence of Related_Interface to Related_Type.
2316         (Generate_Parent_Ref): Add parameter to specify entity to check
2317         (Is_Preelaborable_Expression): Allow the name of a discriminant to
2318         initialize a component of a type with preelaborable initialization.
2319         This includes the case of a discriminal used in such a context.
2320         (Is_Dependent_Component_Of_Mutable_Object): Take into account the
2321         latest Ada 2005 rules about renaming and 'Access of
2322         discriminant-dependent components.
2323         (Check_Nested_Access): Add handling when there are no enclosing
2324         subprograms (e.g. case of a package body).
2325         (Find_Parameter_Type): Factor routine from several other compiler files.
2326         Remove routine from Find_Overridden_Synchronized_Primitive.
2327
2328 2007-12-13  Thomas Quinot  <quinot@adacore.com>
2329
2330         * sinput.adb (Get_Source_File_Index): Add assertion to guard against
2331         an invalid access to an uninitialized slot in the
2332         Source_File_Index_Table.
2333
2334 2007-12-13  Thomas Quinot  <quinot@adacore.com>
2335
2336         * sinput-l.adb (Load_File): Disable style checks when preprocessing.
2337
2338 2007-12-13  Bob Duff  <duff@adacore.com>
2339
2340         * s-soflin.ads: Apply new pragma Favor_Top_Level to all
2341         access-to-subprogram types in this package.
2342
2343 2007-12-13  Olivier Hainque  <hainque@adacore.com>
2344
2345         * s-stausa.ads (Stack_Analyzer): Remove First_Is_Topmost, redundant
2346         with Stack_Grows_Down in System.Parameters. Rename Array_Address into
2347         Stack_Overlay_Address and document that we are using an internal
2348         abstraction.
2349         (Byte_Size, Unsigned_32_Size): Remove, now useless.
2350         (Pattern_Type, Bytes_Per_Pattern): New subtype and constant, to be used
2351         consistently throughout the various implementation pieces.
2352
2353         * s-stausa.adb (Stack_Slots): New type, abstraction for the stack
2354         overlay we are using to fill the stack area with patterns.
2355         (Top_Slot_Index_In, Bottom_Slot_Index_In): Operations on Stack_Slots.
2356         (Push_Index_Step_For, Pop_Index_Step_For): Likewise.
2357         (Fill_Stack, Compute_Result): Use the Stack_Slots abstraction.
2358
2359 2007-12-13  Robert Dewar  <dewar@adacore.com>
2360
2361         * s-stoele.adb ("mod"): mod negative value raises Constraint_Error
2362
2363 2007-12-13  Arnaud Charlet  <charlet@adacore.com>
2364
2365         * s-tassta.adb: 
2366         (Create_Task): Take into account tasks created by foreign threads.
2367         Code clean up: use constants instead of hard coded values.
2368
2369 2007-12-13  Robert Dewar  <dewar@adacore.com>
2370
2371         * styleg.adb (Check_Comment): More liberal rules for comment placement
2372
2373 2007-12-13  Olivier Hainque  <hainque@adacore.com>
2374
2375         * tb-alvms.c (struct tb_entry_t, __gnat_backtrace): Revert back to use
2376         of Procedure Value instead of Frame Pointer as the invocation
2377         identifier associated with the instruction pointer in each traceback
2378         entry.
2379
2380         * g-trasym-vms-alpha.adb (Traceback_Entry, PV_For, FP_For,
2381         TB_Entry_For): Revert back to use of Procedure Value instead of Frame
2382         Pointer as the invocation identifier passed to tbk$symbolize.
2383
2384         * s-traent-vms.ads, s-traent-vms.adb
2385         (Traceback_Entry, PV_For, FP_For, TB_Entry_For): Revert back to use of
2386         Procedure Value instead of Frame Pointer as the invocation identifier
2387         passed to tbk$symbolize.
2388
2389 2007-12-13  Robert Dewar  <dewar@adacore.com>
2390
2391         * tbuild.ads, tbuild.adb: 
2392         Fix location of flag for unrecognized pragma message
2393
2394 2007-12-13  Robert Dewar  <dewar@adacore.com>
2395
2396         * treepr.ads, treepr.adb: (pl): implement use of positive value
2397         shorthands
2398
2399 2007-12-13  Robert Dewar  <dewar@adacore.com>
2400
2401         * xeinfo.adb: Remove warnings
2402         * xnmake.adb: Remove warnings
2403         * xsinfo.adb: Remove warnings
2404         * xtreeprs.adb: Remove warnings
2405         * xsnames.adb: Remove warnings
2406
2407         * a-ngcoar.adb: Fix typo.
2408         * s-interr.adb: Minor reformatting
2409         * env.c: Minor reformatting.
2410         * g-bytswa.adb: Minor reformatting.
2411         * g-rannum.ads: Minor documentation improvements
2412         * s-tasinf-mingw.adb: Minor header fix
2413         * a-clrefi.adb: Minor reformatting
2414         * g-sttsne.ads: Minor documentation improvement
2415         * g-sttsne-locking.ads: Minor documentation improvement
2416         * g-soliop-solaris.ads: Minor documentation improvement
2417         * g-soliop-mingw.ads: Minor documentation improvement
2418         * g-soliop.ads: Minor documentation improvement
2419         * exp_aggr.ads: Minor reformatting
2420         * debug.adb: Add documentation for the gprbuild debug flags
2421         * exp_ch2.adb: Use Nkind_In to simplify code throughout
2422         * exp_pakd.adb: Minor reformatting
2423
2424         * g-altive.ads, g-alleve.adb: Remove assertions.
2425         Add comment about minor differences between targets regarding
2426         floating-point operations.
2427
2428         * g-thread.adb: Remove pragma unreferenced.
2429         * lib.ads: Minor reformatting
2430         * par-ch9.adb: Minor reformatting of error messages
2431         * sem_case.adb: Minor reformatting
2432         * s-fileio.adb: Minor reformattinng
2433         * s-vmexta.ads: Minor typo
2434         * vxaddr2line.adb: 
2435         Take into account 'Success' value as per new GNAT warning.
2436
2437 2007-12-13  Vincent Celier  <celier@adacore.com>
2438
2439         * a-direct.adb (Create_Path): Always take '/' as a directory separator,
2440         even on Windows
2441
2442 2007-12-13  Robert Dewar  <dewar@adacore.com>
2443             Bob Duff  <duff@adacore.com>
2444
2445         * gnat_ugn.texi: Dcoument new rules for style check comment alignment
2446         Document that suffixes may be terminations of each others
2447         Add doc for -gnatw.a and -gnatw.A
2448         Document gnatbind -Wx switch
2449         Document BOM recognition
2450         Document pragma Implemented_By_Entry.
2451         Document new units.
2452
2453         * gnat_rm.texi: (Favor_Top_Level): Document new pragma.
2454         Add doc for pragma Unreferenced suppressing no entities referenced msg
2455         Add documentation of GNAT.Directory_Operations.Iteration
2456         Add documentation of GNAT.Random_Numbers
2457         Add documentation for pragma Shared.
2458         Correct documentation for Bit_Order
2459         Add documentation for the Pool_Address attribute.
2460         Fix and improve documentation of pragma machine_attribute.
2461         New pragma Fast_Math
2462         Document BOM recognition
2463
2464         * vms_data.ads: Add entries for -gnatw.a -gnatw.A
2465         Add /Wide_Character_Encoding for binder
2466         Add qualifier for the new gnatpp option --no-separate-loop-then
2467
2468 2007-12-13  Matthew Heaney  <heaney@adacore.com>
2469
2470         * a-cohase.ads, a-cihama.ads, a-cihase.ads, a-cohama.ads: Document
2471         which generic formal operations are called for each operation.
2472
2473 2007-12-13  Olivier Hainque  <hainque@adacore.com>
2474
2475         * tb-gcc.c (uw_data_t, trace_callback): Only define if not GCC-SJLJ eh.
2476         (__gnat_backtrace): Early return 0 if using GCC-SJLJ eh.
2477
2478 2007-12-13  Emmanuel Briot  <briot@adacore.com>
2479
2480         * s-os_lib.ads, s-os_lib.adb (Normalize_Pathname): Do not compute
2481         Reference_Dir unless we actually need it.
2482
2483 2007-12-13  Vasiliy Fofanov  <fofanov@adacore.com>
2484             Tristan Gingold  <gingold@adacore.com>
2485
2486         * g-socthi-vms.ads (Fd_Set_Access): make it 32-bit.
2487
2488         * s-osprim-vms.adb,
2489         a-calend-vms.adb: Remove pragma warning off and add pragma
2490         unreferenced.
2491
2492 2007-12-13  Robert Dewar  <dewar@adacore.com>
2493
2494         * impunit.adb: Add entries for missing units
2495
2496         * Makefile.rtl: Add new run-time units.
2497
2498         * Make-lang.in:  Update dependencies.
2499
2500 2007-12-13  Bob Duff  <duff@adacore.com>
2501
2502         * itypes.ads, itypes.adb (Create_Itype): For access-to-subprogram
2503         types, set Can_Use_Internal_Rep appropriately, based on
2504         Always_Compatible_Rep_On_Target.
2505
2506 2007-12-13  Gary Dismukes  <dismukes@adacore.com>
2507             Arnaud Charlet  <charlet@adacore.com>
2508
2509         * make.adb (Scan_Make_Arg): Add test for -aamp_target switch, passing
2510         it to the front end and setting the aamp_target environment variable
2511         to the switch's argument to ensure that gnaampbind and gnaamplink will
2512         take the specified library into account.
2513         (Make): Only set Check_Object_Consistency to False for JVM, not for CIL
2514         target, since the CIL compiler supports an "object" file (.il files).
2515
2516 2007-12-13  Vincent Celier  <celier@adacore.com>
2517
2518         * symbols-processing-vms-ia64.adb (Process.Skip_Half): New procedure
2519         (Process.H): Remove variable. Replace Read_Half (H) with Skip_Half.
2520
2521 2007-12-13  Geert Bosch  <bosch@adacore.com>
2522
2523         * s-parame-vxworks.adb: 
2524         Update comments to reflect usage of this package by Nucleus.
2525
2526 2007-12-13  Arnaud Charlet  <charlet@adacore.com>
2527
2528         * i-vxwork.ads: Kill new warning on Convention C, since changing the
2529         spec would break code.
2530
2531         * i-forbla-unimplemented.ads, vx_stack_info.c: New files.
2532
2533         * system-vxworks-alpha.ads: Removed.
2534
2535 2007-12-10  Eric Botcazou  <ebotcazou@adacore.com>
2536
2537         * ada-tree.h (TYPE_RETURNS_BY_TARGET_PTR_P): Move around.
2538
2539 2007-12-09  Samuel Tardieu  <sam@rfc1149.net>
2540
2541         PR ada/34366
2542         * sem_ch3.adb (Designates_T): New function.
2543         (Mentions_T): Factor reusable part of the logic into Designates_T.
2544         Consider non-access parameters and access and non-access result.
2545         (Check_Anonymous_Access_Components): Set ekind of anonymous access to
2546         E_Subprogram_Type to E_Anonymous_Access_Subprogram_Type.
2547
2548         * einfo.ads: Update comment for E_Anonymous_Access_Subprogram_Type.
2549
2550 2007-12-07  Ludovic Brenta  <ludovic@ludovic-brenta.org>
2551
2552         PR ada/34361
2553         * mlib-tgt.adb, mlib-tgt.ads: Fix comments at the top to reflect
2554         the new implementation of target-specific calls.
2555
2556 2007-12-07  Olivier Hainque  <hainque@adacore.com>
2557
2558         * decl.c (gnat_to_gnu_entity) <case E_Access_Type>: When computing
2559         the designated full view, only follow a second level Full_View link
2560         for Non_Limited_Views of from_limited_with references.
2561         
2562 2007-12-07  Samuel Tardieu  <sam@rfc1149.net>
2563
2564         PR ada/15805
2565         * sem_ch6.adb (Process_Formals): Prevent an access type formal
2566         to be initialized with an access to constant object.
2567
2568         * sem_ch3.adb (Analyze_Object_Declaration): Signal an error
2569         when an access to constant is used to initialize an access
2570         value.
2571
2572         PR ada/21346
2573         * a-direct.adb (Compose): Containing_Directory can be an empty string.
2574
2575 2007-12-07  Olivier Hainque  <hainque@adacore.com>
2576
2577         PR ada/34173
2578         * decl.c (gnat_to_gnu_entity) <case E_Array_Type>: When setting
2579         the alignment on the GCC XUA array type, set TYPE_USER_ALIGN if
2580         this is from an alignment clause on the GNAT entity.
2581         * utils.c (create_field_decl): Rewrite the computation of DECL_ALIGN
2582         to distinguish the case where we set it from the type's alignment.
2583         When so, propagate TYPE_USER_ALIGN into DECL_USER_ALIGN to indicate
2584         whether this alignment was set from an explicit alignment clause.
2585
2586 2007-12-06  Eric Botcazou  <ebotcazou@adacore.com>
2587
2588         * decl.c (make_packable_type): Revert last change.
2589         (gnat_to_gnu_field): Avoid setting size and position multiple times.
2590         * utils.c (finish_record_type): Retrieve the real name of the type.
2591
2592 2007-12-05  Eric Botcazou  <ebotcazou@adacore.com>
2593
2594         * trans.c (lvalue_required_p): Take base node directly instead
2595         of its parent.  Rename second parameter to 'gnu_type'.
2596         <N_Indexed_Component>: Return 0 if the node isn't the prefix.
2597         <N_Slice>: Likewise.
2598         (Identifier_to_gnu): Rename parent_requires_lvalue to require_lvalue.
2599         Adjust calls to lvalue_required_p.
2600
2601 2007-12-05  Samuel Tardieu  <sam@rfc1149.net>
2602
2603         PR ada/21489
2604         * exp_ch9.adb (Build_Simple_Entry_Call): Initialize OUT access type
2605         parameters of an entry call.
2606
2607 2007-12-03  Robert Dewar  <dewar@adacore.com>
2608             Samuel Tardieu  <sam@rfc1149.net>
2609
2610         PR ada/34287
2611         * sem_util.adb (Safe_To_Capture_Value): Do not capture values
2612         of variables declared in a library-level package.
2613     
2614 2007-12-02  Samuel Tardieu  <sam@rfc1149.net>
2615
2616         * clean.adb (Clean_Library_Directory): Use Empty_String'Access intead
2617         of Empty_String'Unchecked_Access.
2618
2619         * Makefile.in: Add support for sh4-linux.
2620
2621         * system-linux-sh4.ads: New file.
2622
2623 2007-12-01  Kostik Belousov  <kostikbel@ukr.net>
2624
2625         PR ada/33722
2626         * env.c (__gnat_setenv): FreeBSD 7 has a POSIX conformant putenv()
2627         and its argument must not be free()ed.
2628
2629 2007-11-29  Eric Botcazou  <ebotcazou@adacore.com>
2630
2631         * decl.c (make_packable_type): Retrieve the real name of the type.
2632         (maybe_pad_type): Simplify similar code.
2633
2634 2007-11-28  Samuel Tardieu  <sam@rfc1149.net>
2635
2636         PR ada/15804
2637         * par-ch3.adb (P_Variant_Part): Signal an error when anything other
2638         than an identifier is used after "case" in a variant_part.
2639
2640         PR ada/17318
2641         * par-ch4.adb (Is_Parameterless_Attribute): New map.
2642         (P_Name, Scan_Apostrophe block): Parse left parenthesis following
2643         attribute name or not depending on the new map.
2644
2645         * sem-attr.adb (Analyze_Attribute): Parameterless attributes
2646         returning a string or a type will not be called with improper
2647         arguments.
2648
2649         * sem-attr.ads (Attribute_Class_Array): Move to snames.ads.
2650
2651         * snames.ads (Attribute_Class_Array): Moved from sem-attr.ads.
2652
2653         PR ada/32792
2654         * sem_attr.adb (Analyze_Attribute, Attribute_Integer_Value clause):
2655         Signal an error when attribute argument is a fixed-point value of
2656         an unknown type.
2657
2658         PR ada/22559
2659         * sem_ch3.adb (Build_Derived_Numeric_Type): Do not set RM_Size on
2660         a derived ordinary fixed point type.
2661
2662         * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Recompute
2663         RM_Size when a Small clause is found.
2664
2665 2007-11-26  Andreas Krebbel  <krebbel1@de.ibm.com>
2666
2667         PR 34081/C++
2668         * trans.c (Subprogram_Body_to_gnu, Compilation_Unit_to_gnu):
2669         Pass 'false' for the new allocate_struct_function parameter.
2670         * utils.c (build_function_stub): Likewise.
2671
2672 2007-11-25  Richard Guenther  <rguenther@suse.de>
2673
2674         * utils.c (gnat_pushlevel): Use BLOCK_CHAIN.
2675         (gnat_poplevel): Likewise.
2676
2677 2007-11-25  Eric Botcazou  <ebotcazou@adacore.com>
2678
2679         * decl.c (gnat_to_gnu_entity) <E_Record_Type>: If the type has
2680         strict alignment, no alignment clause and a known static size, cap
2681         the type alignment to the greatest power of 2 factor of the size.
2682         (gnat_to_gnu_field): If the field has a component clause, is aliased
2683         or of a type with strict alignment, require that its size be equal to
2684         that of the type.
2685         (validate_size): Use the type size as the minimum size for a type with
2686         strict alignment.
2687
2688 2007-11-23  Samuel Tardieu  <sam@rfc1149.net>
2689
2690         * s-inmaop-posix.adb, s-intman-vxworks.adb, s-taprop-hpux-dce.adb,
2691         s-taprop-irix.adb, s-taprop-linux.adb, s-taprop-lynxos.adb,
2692         s-taprop-posix.adb, s-taprop-tru64.adb, s-taprop-vxworks.adb:
2693         Use 'Access instead of 'Unchecked_Access in second and third
2694         arguments of pthread_sigmask.
2695
2696 2007-11-23  Eric Botcazou  <ebotcazou@adacore.com>
2697
2698         * decl.c (ceil_alignment): New function.
2699         (gnat_to_gnu_entity): Use it to set the alignment on atomic types.
2700         (make_packable_type): Likewise.
2701
2702 2007-11-22  Olivier Hainque  <hainque@adacore.com>
2703
2704         * trans.c (gnat_to_gnu) <case N_Free_Statement>: Reformat lines
2705         to fit in 80 columns.
2706
2707 2007-11-21  Aurelien Jarno  <aurelien@aurel32.net>
2708
2709         * s-osinte-kfreebsd-gnu.ads (To_Target_Priority): New function.
2710         * Makefile.in: Add EH_MECHANISM=-gcc to kfreebsd-gnu. Remove SYMLIB.
2711
2712 2007-11-19  Eric Botcazou  <ebotcazou@adacore.com>
2713
2714         PR ada/34098
2715         * misc.c (gnat_adjust_rli): Delete.
2716         (gnat_init): Do not initialize the translation code here.
2717         Do not call set_lang_adjust_rli.
2718         * trans.c (init_code_table): Make static.
2719         (gnat_init_stmt_group): Delete.
2720         (gigi): Initialize the translation code entirely here.
2721         Emit debug info for the common types here instead of...
2722         * utils.c (gnat_init_decl_processing): ...here.
2723         * gigi.h (init_code_table): Delete.
2724         (gnat_init_stmt_group): Likewise.
2725
2726 2007-11-16  Olivier Hainque  <hainque@adacore.com>
2727
2728         * utils2.c (build_call_alloc_dealloc) <if gnu_obj>: Move the code
2729         retrieving an allocator return value from a super-aligned address from
2730         here to ...
2731         * trans.c (gnat_to_gnu) <case N_Free_Statement>: ... here, and don't
2732         expect a super-aligned address for a fat or thin pointer.
2733         
2734 2007-11-14  Eric Botcazou  <ebotcazou@adacore.com>
2735
2736         * trans.c (call_to_gnu): Always set the source location on the call
2737         expression.  If the function returns-by-target, also set it on the
2738         address expression.
2739
2740 2007-11-14  Samuel Tardieu  <sam@rfc1149.net>
2741
2742         * adaint.c, init.c, initialize.c, link.c: Remove system-specific
2743         sections of non-supported Interix target.
2744
2745         * s-osinte-interix.ads: Removed.
2746
2747         * i-cstrin.ads (chars_ptr): Make it a C convention type.
2748
2749 2007-11-13  Samuel Tardieu  <sam@rfc1149.net>
2750
2751         * a-tasatt.adb: Add a comment at the beginning of the package
2752         explaining why in general 'Unchecked_Access must be used instead
2753         of 'Access.
2754
2755         * sem_prag.adb (Process_Convention): Move the test for the
2756         entity on which the Convention pragma applies down to also
2757         forbid pragma Convention on enumeration literals reached
2758         through renamings.
2759
2760 2007-11-10  Samuel Tardieu  <sam@rfc1149.net>
2761
2762         * a-tasatt.adb: Revert previous change for this file as it will
2763         generate an error when this package is instantiated from a
2764         local context.
2765
2766 2007-11-07  Samuel Tardieu  <sam@rfc1149.net>
2767
2768         * a-tasatt.adb: Type Wrapper should be declared in comment instead
2769         of already declared type Node_Access.
2770         Use 'Access instead of 'Unchecked_Access when applicable. Local
2771         lifetime is the one of the package.
2772         (Set_Value): W is allocated on the heap.
2773
2774         * g-socket.adb: Use 'Access instead of 'Unchecked_Access when
2775         applicable.
2776         (Get_Socket_Option): Optlen formal of C_Getsockopt is of an anonymous
2777         access type.
2778         (Receive_Socket): Fromlen formal of C_Recvfrom is of an anonymous
2779         access type.
2780
2781         * s-taasde.adb: Use 'Access instead of 'Unchecked_Access when
2782         applicable.
2783         (elaboration code): Timer_Queue lifetime is the one of the
2784         package.
2785
2786         * tracebak.c (i386 alternative): Remove useless comparaison
2787         which is always false; LOWEST_ADDRESS is 0 and is never greater
2788         than an unsigned integer.
2789
2790         * sem_attr.adb (Analyze_Attribute): Remove duplicate identical
2791         embedded check for "Ada_Version >= Ada_05".
2792
2793 2007-11-07  Olivier Hainque  <hainque@adacore.com>
2794
2795         * decl.c (make_aligning_type): Set the mode of the RECORD_TYPE we
2796         craft and expand comment.
2797
2798 2007-11-01  Eric Botcazou  <ebotcazou@adacore.com>
2799
2800         * lang-specs.h: Move translation of -fRTS= after -gnatez switch.
2801
2802 2007-10-23  Eric Botcazou  <ebotcazou@adacore.com>
2803
2804         * misc.c (gnat_handle_option): Replace call to abort with
2805         call to gcc_unreachable.
2806         (gnat_init): Likewise.
2807         (gnat_expand_expr): Likewise.
2808         (fp_prec_to_size): Likewise.
2809         (fp_size_to_prec): Likewise.
2810
2811 2007-10-23  Richard Guenther  <rguenther@suse.de>
2812
2813         PR bootstrap/33608
2814         * tracebak.c: #undef abort after including system.h.
2815
2816 2007-10-20  Danny Smith  <dannysmith@users.sourceforge.net>
2817
2818         * Makefile.in (LIBGNAT_TARGET_PAIRS) Add s-tasinf-mingw.adb,
2819         s-tasinf-mingw.ads, a-exetim-mingw.adb, a-exetim-mingw.ads
2820         for win32 targets.
2821         (EXTRA_GNATRTL_TASKING_OBJS): Add a-exetim.o for win32 targets.
2822
2823 2007-10-15  Eric Botcazou  <ebotcazou@adacore.com>
2824
2825         * s-osinte-tru64.adb: (Hide_Yellow_Zone): Add On parameter.
2826         Set the protection status of the guard page based on the value of On.
2827
2828         * s-osinte-tru64.ads: (Hide_Yellow_Zone): Add On parameter.
2829
2830         * s-taprop-tru64.adb: (Enter_Task): Pass True to Hide_Yellow_Zone.
2831         (Exit_Task): Pass False to Hide_Yellow_Zone.
2832
2833 2007-10-15  Robert Dewar  <dewar@adacore.com>
2834
2835         * s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb, 
2836         s-taprop-vxworks.adb, s-taprop-posix.adb, a-calend-vms.adb,
2837         a-calend.adb, a-nuflra.adb, a-tigeau.adb, a-wtgeau.adb, 
2838         checks.adb, bindgen.adb, eval_fat.adb, exp_fixd.adb, fmap.adb, 
2839         freeze.adb, g-awk.adb, g-calend.adb, g-diopit.adb, g-expect.adb, 
2840         gnatchop.adb, gnatlink.adb, g-spipat.adb, g-thread.adb, make.adb, 
2841         mdll.adb, mlib.adb, mlib-prj.adb, osint.adb, par-ch3.adb, prj.adb, 
2842         prj-makr.adb, sem_prag.adb, sem_type.adb, s-fatgen.adb, s-fileio.adb, 
2843         sinfo.ads, sinput-d.adb, s-taasde.adb, s-tasdeb.ads, s-tasren.adb, 
2844         s-tassta.adb, s-tpobop.adb, s-tposen.adb, stylesw.adb, types.ads,
2845         uintp.adb, validsw.adb, makegpr.adb, a-rbtgso.adb, a-crbtgo.adb, 
2846         a-coorse.adb, a-convec.adb, a-coinve.adb, a-cohama.adb, a-ciorse.adb, 
2847         a-cihama.adb, a-cidlli.adb, a-chtgop.adb, a-cdlili.adb, a-cdlili.adb, 
2848         a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cohase.adb, a-ciorma.adb, 
2849         a-coorma.adb, a-ztgeau.adb, symbols-vms.adb, a-crdlli.adb, 
2850         a-calari.adb, a-calfor.adb, s-os_lib.adb, s-regpat.adb, a-ngrear.adb:
2851         Minor reformatting.
2852         Add Unreferenced and Warnings (Off) pragmas for cases of
2853         variables modified calls where they are IN OUT or OUT parameters and
2854         the resulting values are not subsequently referenced. In a few cases,
2855         we also remove redundant code found by the new warnings.
2856
2857         * ug_words, vms_data.ads, usage.adb, sem_util.adb, sem_util.ads, 
2858         sem_warn.adb, sem_warn.ads, sem_res.adb, sem_ch7.adb, sem_ch8.adb,
2859         sem_ch5.adb, opt.ads, lib-xref.adb, lib-xref.ads, exp_smem.adb,
2860         sem_ch11.adb, exp_ch6.adb, einfo.ads, einfo.adb: implement a new
2861         warning controlled by -gnatw.o that warns on cases of out parameter
2862         values being ignored.
2863
2864 2007-10-15  Geert Bosch  <bosch@adacore.com>
2865
2866         * adaint.c, socket.c, cal.c: Initial port to arm-mentor-nucleus.
2867
2868         * expect.c: Initial port to arm-mentor-nucleus.
2869         Use kill for __gnat_kill() on VMS.
2870
2871 2007-10-15  Emmanuel Briot  <briot@adacore.com>
2872
2873         * ali.ads, ali.adb (Scan_ALI): Initialize XE.Tref to a known default
2874         value.
2875         (Xref_Record): Change type for Line, since in the case of a reference to
2876         a predefined entity (as happens for array index types), the line is set
2877         to 0.
2878         Add support for parsing multiple array index types info, or
2879         multiple inherited interfaces info. This information cannot be stored
2880         in Xref_Entity_Record, which only supports a single instance of Tref_*,
2881         and is therefore stored in the list of references instead. It has a
2882         special treatement later on in tools that use this information.
2883
2884 2007-10-15  Tristan Gingold  <gingold@adacore.com>
2885
2886         * debug.adb: Document use of -gnatd.a and -gnatd.I
2887
2888         * layout.adb: On OpenVMS -gnatd.a disables alignment optimization.
2889
2890 2007-10-15  Javier Miranda  <miranda@adacore.com>
2891
2892         * exp_attr.adb (Expand_N_Attribute_Reference): Case Access,
2893         Unchecked_Access, and Unrestricted_Access. Cleanup code that takes
2894         care of access to class-wide interface types plus removal of bizarre
2895         conversion of tagged object to access type (reported by Gary
2896         Dismukes). After this patch there is no need to perform any
2897         additional management on these nodes in Expand_Interface_Actuals.
2898
2899         * exp_disp.adb (Expand_Interface_Actuals): Code cleanup. Remove code
2900         that handles use of 'Access and 'Unchecked_Access applied to
2901         actuals covering interface types. Such code is now
2902         centralized in Expand_N_Attribute_Reference.
2903
2904 2007-10-15  Ed Schonberg  <schonberg@adacore.com>
2905
2906         * exp_ch3.adb (Build_Init_Procedure): Keep separate the initialization
2907         of tagged types whose ultimate ancestor is a CPP type.
2908         (Freeze_Array_Type): For a packed array type, generate an initialization
2909         procedure if the type is public, to handle properly a client that
2910         specifies Normalize_Scalars.
2911
2912 2007-10-15  Hristian Kirtchev  <kirtchev@adacore.com>
2913
2914         * exp_ch9.adb (Actual_Index_Expression): When the expansion occurs
2915         inside a generic body, retrieve the full view of the entry family
2916         discrete subtype if available.
2917
2918 2007-10-15  Thomas Quinot  <quinot@adacore.com>
2919
2920         * exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): Do not
2921         attempt to generate stubs for hidden primitive operations.
2922
2923 2007-10-15  Vincent Celier  <celier@adacore.com>
2924
2925         * mlib-tgt-specific.adb (Support_For_Libraries): New function,
2926         returning None, used when there is no platform specific body for
2927         MLib.Tgt.Specific.
2928
2929 2007-10-15  Bob Duff  <duff@adacore.com>
2930
2931         * sem_case.adb, sem_ch13.adb, lib-sort.adb: Replace use of Heap_Sort_A
2932         (passing'Unrestricted_Access of nested subprograms to Sort) with use of
2933         the generic Heap_Sort_G, in order to avoid trampolines.
2934
2935 2007-10-15  Vasiliy Fofanov  <fofanov@adacore.com>
2936             Jose Ruiz  <ruiz@adacore.com>
2937
2938         * vx_stack_info.c: New file.
2939
2940         * i-forbla-unimplemented.ads: New file.
2941
2942         * Makefile.in: i-forbla-unimplemented.ads: a variant of i-forbla.ads
2943         for unsupported configurations; use it on VMS targets instead of the
2944         real one.
2945         (EXTRA_LIBGNAT_SRCS,EXTRA_LIBGNAT_OBJS for VxWorks): Include
2946         vx_stack_info.{c,o} that contains the routine __gnat_get_stack_info
2947         used by VxWorks targets to have access to task-specific data and be
2948         able to extract the stack boundaries for stack checking.
2949         Use system-vms-ia64.ads on ivms.
2950
2951         * Make-lang.in: Update dependencies.
2952
2953         * sysdep.c (__gnat_get_stack_info): Move to a standalone file
2954         (vx_stack_info.c).
2955
2956 2007-10-15  Vincent Celier  <celier@adacore.com>
2957
2958         * snames.adb, snames.ads: Add new standard name runtime_library_dir
2959
2960         * prj.ads (Language_Config): Add new component Runtime_Library_Dir
2961
2962         * prj-attr.adb: Add project level attribute Runtime_Library_Dir
2963
2964         * prj-env.adb (Create_Mapping_File): Do not put an entry if the path of
2965         the source is unknown.
2966
2967         * prj-ext.adb: Spelling error fix
2968
2969         * prj-nmsc.adb (Check_Ada_Name): Reject any unit that includes an Ada
2970         95 reserved word in its name.
2971         (Process_Project_Level_Array_Attributes): Process new attribute
2972         Runtime_Library_Dir.
2973
2974         * prj-part.adb (Parse_Single_Project): Do not check the name of the
2975         config project against the user project names.
2976
2977         * prj-proc.adb (Expression): In multi-language mode, indexes that do
2978         not include a dot are always case insensitive.
2979         (Process_Declarative_Items): Ditto
2980         (Process_Project_Tree_Phase_1): Set Success to False in case an error is
2981         detected.
2982
2983         * prj-util.adb (Value_Of (In_Array)): When Force_Lower_Case_Index is
2984         True, compare both indexes in lower case.
2985
2986 2007-10-15  Robert Dewar  <dewar@adacore.com>
2987
2988         * rtsfind.adb: (Load_RTU): Turn off style checks for Load call
2989
2990 2007-10-15  Gary Dismukes  <dismukes@adacore.com>
2991
2992         * sem_aggr.adb (Resolve_Record_Aggregate): In the case of a box
2993         association for an access component, add an association with null as
2994         the expression. Remove testing for array subtypes and the setting in
2995         that case of Ctyp to the array component type, which prevented proper
2996         inclusion of an association for null-initialized arrays. Collapse
2997         condition that tests for array subtypes into just a test of
2998         Is_Partially_Initialized_Type (which already covers arrays anyway).
2999
3000 2007-10-15  Hristian Kirtchev  <kirtchev@adacore.com>
3001
3002         * sem_ch12.adb: Minor code reformatting.
3003         (Check_Generic_Child_Unit): Iterate over the homonym chain in order to
3004         find the parent package which may have been hidden by local
3005         declarations.
3006
3007 2007-10-15  Gary Dismukes  <dismukes@adacore.com>
3008
3009         * sem_ch3.adb (Build_Derived_Concurrent_Type): Set the Is_Constrained
3010         flag of derived concurrent types, taking into account the flag setting
3011         on the parent subtype and any new set of discriminants.
3012
3013 2007-10-15  Hristian Kirtchev  <kirtchev@adacore.com>
3014
3015         * sem_ch4.adb: Minor code and comment reformatting.
3016         (Analyze_Allocator): When the designated type of an unconstrained
3017         allocator is a record with unknown discriminants or an array with
3018         unknown range bounds, emit a detailed error message depending on the
3019         compilation mode and whether the designated type is limited.
3020
3021 2007-10-15  Tristan Gingold  <gingold@adacore.com>
3022
3023         * system-vms-ia64.ads: New file.
3024
3025         * system-vms_64.ads: Minor comment fix.
3026
3027 2007-10-15  Ed Schonberg  <schonberg@adacore.com>
3028
3029         * sem_ch6.adb (Find_Corresponding_Spec): If the previous entity is a
3030         body generated for a function with a controlling result that is a null
3031         extension, discard the generated body in favor of the current explicit
3032         one.
3033
3034 2007-10-15  Ed Schonberg  <schonberg@adacore.com>
3035
3036         * sem_disp.adb (Find_Controlling_Arg): Examine the call node before
3037         examining its original form, to handle properly operator calls that
3038         have been rewritten.
3039
3040 2007-10-15  Olivier Hainque  <hainque@adacore.com>
3041
3042         * tb-alvms.c (tb_entry_t, __gnat_backtrace): Store a frame pointer
3043         instead of a procedure value in each traceback entry.
3044
3045         * g-trasym-vms-alpha.adb (Symbolic_Traceback): Pass frame pointer
3046         instead of procedure value to TBK$SYMBOLIZE.
3047
3048         * s-traent-vms.adb (PV_For): Rename as FP_For and access the proper
3049         field.
3050         (TB_Entry_For): Account for the PV/FP renaming.
3051
3052         * s-traent-vms.ads (Traceback_Entry): Rename PV component into FP and
3053         add comment.
3054         (Null_TB_Entry): Account for change of component name.
3055         (PV_For): Rename as FP_For.
3056
3057 2007-10-15  Tristan Gingold  <gingold@adacore.com>
3058
3059         * trans.c (gnat_to_gnu): Remove the padding structure more often.
3060         This optimize assignment to over-aligned record.
3061
3062 2007-10-15  Emmanuel Briot  <briot@adacore.com>
3063
3064         * xref_lib.adb (Get_Full_Type): Add support for the 'h' entity type, ie
3065         interfaces.
3066
3067         * xr_tabls.adb (Add_Reference): Add support for the new 'R' reference
3068         type, for dispatching calls.
3069
3070 2007-10-15  Vincent Celier  <celier@adacore.com>
3071             Robert Dewar  <dewar@adacore.com>
3072
3073         * gnat_ugn.texi: Add documentation for switches --version and --help
3074         for the GNAT tools gnatbind, gnatlink, gnatmake, gnatchop, gnatname,
3075         gnatxref, gnatfind, gnatls, and gnatclean.
3076         Document -gnatw.o.
3077         Mention attribute Excluded_Source_Dirs
3078         Replace obsolescent attribute Locally_Removed_Files with attribute
3079         Excluded_Source_Files.
3080         Improve documentation of -u (gnatbind)
3081         Document how to do reliable stack checking for the environmental task
3082         on iVMS.
3083
3084         * gnat_rm.texi: Rewrite section about No_Implicit_Dynamic_Code.
3085         Document attribute Excluded_Source_Files and indicate that attribute
3086         Locally_Removed_Files is obsolescent.
3087
3088 2007-10-15  Thomas Quinot  <quinot@adacore.com>
3089
3090         * g-soccon-vms.ads: Fix value of MSG_WAITALL.
3091
3092         * gen-soccon.c: 
3093         Update documentation to note that OpenVMS 8.3 or later must be used
3094         to generate g-soccon-vms.ads.
3095
3096         * atree.adb: Add ??? comment
3097
3098         * exp_util.adb: Minor reformatting.
3099         Add ??? comment in Kill_Dead_Code.
3100
3101 2007-10-15  Robert Dewar  <dewar@adacore.com>
3102
3103         * errout.ads: Comment clarification
3104
3105         * exp_ch4.adb (Expand_N_Allocator): Code cleanup.
3106         (Expand_N_Op_Eq): Improve handling of array equality with -gnatVa
3107
3108         * lib.ads: Comment update
3109
3110         * init.c: Minor reformatting.
3111
3112         * sem_attr.adb: Minor formatting
3113
3114         * osint-b.ads: Minor reformatting
3115
3116         * sem_ch9.adb: Implement -gnatd.I switch
3117
3118         * g-comlin.adb: (Start): Fix handling of empty command line.
3119
3120         * gnatcmd.adb (GNATCmd): Do not put the -rules in the -cargs section,
3121         even when -rules follows the -cargs section.
3122
3123 2007-10-08  Ollie Wild  <aaw@google.com>
3124
3125         * misc.c (LANG_HOOKS_PUSHDECL): Replaced lhd_return_tree with
3126         gnat_return_tree.
3127         (gnat_init_gcc_eh): Replaced gnat_eh_runtime_type with
3128         gnat_return_tree.
3129         (gnat_eh_runtime_type): Removed.
3130         (gnat_return_tree): New function.
3131
3132 2007-10-08  Ben Elliston  <bje@au.ibm.com>
3133
3134         PR ada/33454
3135         Revert:
3136         2007-08-31  Ben Elliston  <bje@au.ibm.com>
3137
3138         * Makefile.in (LIBGNAT_TARGET_PAIRS): Use system-linux-ppc64.ads
3139         when compiling for powerpc64-*-linux.
3140         * system-linux-ppc64.ads: New file.
3141
3142 2007-09-27  Eric Botcazou  <ebotcazou@adacore.com>
3143
3144         Mapped location support
3145         * back_end.adb (Call_Back_End): Pass information about source
3146         files instead of units to gigi.
3147         * gigi.h (struct File_Info_Type): New.
3148         (gigi): Rename and change type of number_units parameter, change
3149         type of file_info_ptr parameter.
3150         * trans.c (number_files): New global variable.
3151         (gigi): Rename and change type of number_units parameter, change
3152         type of file_info_ptr parameter.
3153         If mapped location support is enabled, create the isomorphic mapping
3154         between source files and line maps.
3155         (Sloc_to_locus): If mapped location support is enabled, translate
3156         source location into mapped location.
3157         (annotate_with_node): Rename into set_expr_location_from_node.
3158         Call set_expr_location instead of annotate_with_locus.
3159         (Pragma_to_gnu): Adjust for above change.
3160         (Loop_Statement_to_gnu): Likewise.
3161         (call_to_gnu): Likewise.
3162         (Handled_Sequence_Of_Statements_to_gnu): Likewise.
3163         (gnat_to_gnu): Likewise.
3164         (add_stmt_with_node): Likewise.
3165         (add_cleanup): Likewise.
3166         * utils.c (gnat_init_decl_processing): Do not set input_line.
3167
3168 2007-09-26  Hristian Kirtchev  <kirtchev@adacore.com>
3169
3170         * sem_ch8.adb (Analyze_Use_Type): Code cleanup.
3171         (Applicable_Use): Emit a warning when a package tries to use itself.
3172         (Use_One_Type): Add variable Is_Known_Used. Emit a warning when a type
3173         is already in use or the package where it is declared is in use or is
3174         declared in the current package.
3175         (Spec_Reloaded_For_Body): New subsidiary routine for Use_One_Type.
3176
3177         * a-tasatt.adb, s-osprim-vxworks.adb, g-socthi-mingw.adb,
3178         s-intman-vms.adb, g-socket.adb, g-thread.adb, s-tarest.adb,
3179         s-tassta.adb, s-tporft.adb: Remove redundant 'use type' clause.
3180
3181 2007-09-26  Hristian Kirtchev  <kirtchev@adacore.com>
3182
3183         * a-calend-vms.adb, a-calend.adb: 
3184         Add a section on leap seconds control along with two entities used to
3185         enable and disable leap seconds support. The array Leap_Second_Times is
3186         now constant and contains hard time values pre-generated. Remove
3187         all elaboration code used to populate the table of leap seconds.
3188
3189         * bindgen.adb: 
3190         Add entity Leap_Seconds_Support to the list of global run-time variables
3191         along with a comment on its usage and values.
3192         (Gen_Adainit_Ada): Add code to generate the declaration and import of
3193         Integer variable Leap_Seconds_Support. Set its value to zero (disabled)
3194         or one (enabled) depending on the presence of binder switch "-y".
3195         (Gen_Adainit_C): Add code to generate the declaration of external int
3196         __gl_leap_seconds_support. Set is value to zero (disabled) or one
3197         (enabled) depending on the presence of binder switch "-y".
3198
3199         * init.c: Add __gl_leap_seconds_support to the list of global values
3200         computed by the binder.
3201
3202 2007-09-26  Jerome Guitton  <guitton@adacore.com>
3203
3204         * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
3205         s-taprop-hpux-dce.adb, s-taprop-linux.adb, s-taprop-dummy.adb,
3206          s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb,
3207         s-taprop-posix.adb (Stop_Task): New function, dummy implementation.
3208
3209         * s-taprop.ads, s-taprop-vxworks.adb (Stop_Task): New function.
3210
3211         * s-tasdeb.adb (Stop_All_Tasks): New function, implementing a run-time
3212         function which can be called by the debugger to interrupt the tasks of
3213         an Ada application asynchronously, as needed on VxWorks.
3214         (Stop_All_Tasks_Handler): Renamed from Stop_All_Tasks.
3215
3216         * s-tasdeb.ads (Stop_All_Tasks_Handler): New function declaration,
3217         renamed from Stop_All_Tasks. Update comments.
3218         (Stop_All_tasks): New function declaration.
3219
3220 2007-09-26  Olivier Hainque  <hainque@adacore.com>
3221
3222         * adaint.c (if defined (__Lynx__)): Wrap #def/#undef VMOS_DEV around
3223         #include <utime.h> and #define GCC_RESOURCE_H before
3224         #include <sys/wait.h>.
3225         Add more protections in __gnat_translate_vms.
3226
3227         * expect.c (if defined (__Lynx__)): #define GCC_RESOURCE_H before
3228         #include <sys/wait.h>.
3229
3230 2007-09-26  Thomas Quinot  <quinot@adacore.com>
3231             Sergey Rybin  <rybin@adacore.com>
3232
3233         * gnatvsn.ads (PCS_Version_Number, ASIS_Version_Number): Removed.
3234
3235         * exp_dist.ads (PCS_Version_Number): Move from Gnatvsn to Exp_Dist,
3236         where it belongs.
3237
3238         * opt.ads: Move ASIS_Version_Number from Gnatvsn into Tree_IO.
3239
3240         * rtsfind.adb (PCS_Version_Number): Move from Gnatvsn to Exp_Dist,
3241         where it belongs.
3242
3243         * sem_dist.ads: Minor comment fix
3244
3245         * tree_io.ads: Move ASIS_Version_Number from Gnatvsn into Tree_IO.
3246
3247 2007-09-26  Javier Miranda  <miranda@adacore.com>
3248             Eric Botcazou  <ebotcazou@adacore.com>
3249
3250         * a-tags.adb: 
3251         (Get_HT_Link/Set_HT_Link): Updated to handle the additional level of
3252          indirection added to the HT_Link component of the TSD. This is required
3253          to statically allocate the TSD.
3254
3255         * a-tags.ads: 
3256         Minor reordering of the declarations in the private part. Required to
3257         add a level of indirection to the contents of the TSD component HT_Link.
3258         This is required to statically allocate the TSD.
3259
3260         * decl.c (gnat_to_gnu_entity) <object>: Do not exclude objects with
3261         Is_Statically_Allocated set from constant objects.
3262         Do not make exported constants created by the compiler volatile.
3263         (gnat_to_gnu_param): Do not treat an IN parameter whose address is taken
3264         as read-only.
3265
3266         * trans.c (Identifier_to_gnu): For constants, unshare initializers
3267         before returning them.
3268
3269         * exp_disp.ads, exp_disp.adb (Building_Static_DT): Spec moved to the
3270         public part of the package.
3271         (Make_DT): Move HT_Link component out of the TSD record. For this
3272         purpose Make_DT now declares a separate object that stores the
3273         HT_Link value, and initializes the TSD component with the address
3274         of this new object. The addition of this level of indirection is
3275         required to statically allocate the TSD because the TSD cannot
3276         have variable components.
3277         (Expand_Interface_Conversion): Improve the expanded code.
3278         (Expand_Interface_Thunk): Set Is_Thunk in the thunk entity.
3279
3280         * sem_disp.adb (Check_Dispatching_Operation): In case of a body
3281         declaring a primitive operation ---allowed by RM 3.9.2 (13.e/2)---,
3282         if we are building static dispatch tables then we must not generate
3283         extra code to register the primitive because the dispatch table will
3284         be built at the end of the library package; otherwise we notify that
3285         we cannot build the static dispatch table.
3286
3287 2007-09-26  Robert Dewar  <dewar@adacore.com>
3288
3289         * checks.adb, gnat1drv.adb, sem_util.ads: Improve warnings for address
3290         overlays.
3291
3292         * sem_ch13.ads, sem_ch13.adb: Improve warnings for address overlays
3293         (Analyze_Record_Representation_Clause): Suppress junk warning for
3294         missing component clause.
3295         (Analyze_Attribute_Definition_Clause, case Address): Apply the special
3296         tests for controlled type overlay to composites with controlled
3297         components.
3298         (Analyze_Record_Representation_Clause): Add reference for component name
3299
3300 2007-09-26  Javier Miranda  <miranda@adacore.com>
3301             Gary Dismukes  <dismukes@adacore.com>
3302
3303         * einfo.adb (Is_Thunk): New attribute applicable to subprograms. True
3304         for thunks associated with interface types.
3305
3306         * einfo.ads: Improve documentatation of Is_Internal
3307         (Is_Thunk): New attribute applicable to subprograms. True for thunks
3308         associated with interface types.
3309         Extensive comment fixes regarding flags that appear in all entities. The
3310         documentation is now consistent for all such flags (there were a number
3311         of errors in the documentation in this regard).
3312
3313         * exp_attr.adb (Expand_N_Attribute_Reference): Minor code cleanup.
3314
3315         * exp_ch6.adb (Make_Build_In_Place_Call_*): Return immediately if any
3316         of these procedures are passed a function call that already has
3317         build-in-place actuals (testing new flag
3318         Is_Expanded_Build_In_Place_Call). Set the flag on the function call in
3319         the case where processing continues.
3320         (Expand_Call): If the call is generated from a thunk body then we
3321         propagate the extra actuals associated with the accessibility
3322         level of the access type actuals.
3323
3324         * sem_ch6.adb (Analyze_Subprogram_Body): Set the Protected_Formal field
3325         of each extra formal of a protected operation to reference the
3326         corresponding extra formal of the subprogram denoted by the
3327         operation's Protected_Body_Subprogram.
3328         
3329         * sinfo.ads, sinfo.adb (Is_Expanded_Build_In_Place_Call): New flag on
3330         N_Function_Call nodes.
3331
3332 2007-09-26  Robert Dewar  <dewar@adacore.com>
3333
3334         * exp_ch5.adb: Activate memmove type processing if debug flag d.s is set
3335
3336         * debug.adb: Add d.s flag.
3337
3338 2007-09-26  Gary Dismukes  <dismukes@adacore.com>
3339
3340         * exp_dbug.adb (Debug_Renaming_Declaration): Set Is_Internal on the
3341         debug variable so that it won't be initialized when pragma
3342         Initialize_Scalars is in effect.
3343
3344 2007-09-26  Gary Dismukes  <dismukes@adacore.com>
3345
3346         * freeze.adb (Freeze_Entity): Remove check for preelaborable
3347         initialization of a full view. This is moved to
3348         Analyze_Package_Specification.
3349
3350         * sem_ch7.adb (Analyze_Package_Specification): Add check for
3351         preelaborable initialization of a full view in entity loop.
3352         (Uninstall_Declarations): If entity is a use-visible compilation unit,
3353         its child units are use-visible only if they are visible child units.
3354
3355         * sem_util.adb (Is_Preelaborable_Expression): New function to determine
3356         whether an expression can be used within a type declaration that
3357         requires preelaborable init.
3358         (Check_Components): Replace inline code that does partial checking for
3359         preelaborable default expressions with call to
3360         Is_Preelaborable_Expression.
3361         (Has_Preelaborable_Initialization): In the case of a generic actual
3362         subtype, (that is, Is_Generic_Actual is True), return the result of
3363         applying Has_Preelaborable_Initialization to the generic actual's base
3364         type.
3365
3366 2007-09-26  Hristian Kirtchev  <kirtchev@adacore.com>
3367
3368         * g-calend.adb (Has_53_Weeks): Rename to Last_Year_Has_53_Weeks. Add a
3369         call to Jan_1_Day _Of_Week to optimize its performance.
3370         (Is_Leap): Move the routine to the scope of Week_In_Year.
3371         (Jan_1_Day_Of_Week): New routine in Week_In_Year which calculates the
3372         weekday on which January 1 falls of Year - 1 and Year + 1. This function
3373         avoids calling Time_Of and Split, thus making it more efficent.
3374         (Week_In_Year): Reimplemented in oder to follow ISO 8601.
3375
3376         * g-calend.ads (Week_In_Year): Change comment to reflect new
3377         implementation.
3378
3379 2007-09-26  Emmanuel Briot  <briot@adacore.com>
3380
3381         * g-comlin.ads, g-comlin.adb (Command_Line_Configuration,
3382         Command_Line): New types
3383         (Define_Alias, Define_Prefix, Free): New subprograms. These provide
3384         support for defining how switches can be grouped on a command line (as
3385         is the case for -gnatw... for GNAT), and how simple switches can be
3386         used as aliases for more complex switches (-gnatwa is same as
3387         -gnatwbcef...)
3388         (Set_Command_Line, Add_Switch, Remove_Switch): New subprogram
3389         (Start, Current_*): New subprograms
3390         Added support for parsing an array of strings in addition to the real
3391         command line.
3392         (Opt_Parser, Opt_Parser_Data): New type. As a result, some types had to
3393          be moved from the body to the private part of the spec.
3394         (*): All subprograms now have an extra parameter with default value to
3395         specify which parser should be used. For backward compatibility, it
3396         defaults to parsing the command line of the application. They were also
3397         modified to properly handle cases where each of the argument does not
3398         start at index 1 (which is always true for Ada.Command_Line, but not
3399         when processing any Argument_List).
3400         (Free): New subprogram
3401         (Internal_Initialize_Option_Scan, Find_Longuest_Matching_Switch,
3402         Argument): New subprograms
3403         (Switch_Parameter_Type): New enum, which clarifies the code. The extra
3404         special characters like ':', '=',... are now handled in a single place,
3405         which makes the code more extensible eventually.
3406         (Getopt, Full_Switch): When the switch was returned as part of the
3407         special character '*', make sure it is prepended by the switch character
3408         ('-' in general), so that the application knows whether "foo" or "-foo"
3409         was specified on the command line.
3410
3411 2007-09-26  Florian Villoing  <villoing@adacore.com>
3412
3413         * g-dirope.adb (Remove_Dir): In case we are removing directories
3414         recursively, make sure that if an exception is raised during the
3415         processing, the current working directory is reset to its initial
3416         value before propagating the exception.
3417
3418 2007-09-26  Vincent Celier  <celier@adacore.com>
3419
3420         * gnatbind.adb: If there are several ALI files specified and there is
3421         a main program to bind, the first ALI is expected to contain the main
3422         subprogram and the names of the binder generated files will be derived
3423         from the first ALI file name.
3424         (Gnatbind): Fix insertion character in invocation of Error_Msg
3425
3426 2007-09-26  Vincent Celier  <celier@adacore.com>
3427
3428         * gnatcmd.adb (Check_Files): Do not include sources that have been
3429         removed by attributes Exclude_Source_Files or Locally_Removed_Files.
3430
3431 2007-09-26  Ed Schonberg  <schonberg@adacore.com>
3432
3433         * lib-xref.ads, lib-xref.adb: The entry for array types now carries
3434         information about each of its index types, following the type
3435         reference for its component type.
3436
3437 2007-09-26  Vincent Celier  <celier@adacore.com>
3438
3439         * make.adb: (Kill): New procedure (__gnat_kill imported)
3440         (Running_Compile, Outstanding_Compiles): Global variables that
3441         were previously local to procedure Compile_Sources.
3442         (Sigint_Intercepted): Send signal SIGINT to all outstanding
3443         compilation processes.
3444
3445         (Gnatmake): If project files are used, create the mapping of all the
3446         sources, so that the correct paths will be found.
3447
3448         * prj-env.ads, prj-env.adb (Create_Mapping): New procedure
3449
3450 2007-09-26  Vincent Celier  <celier@adacore.com>
3451
3452         * makeutl.ads (Main_Config_Project): Moved to gpr_util.ads
3453
3454         * prj.ads, prj.adb (Default_Language): Remove function, no longer used
3455         Replace components Compiler_Min_Options and Binder_Min_Options with
3456         Compiler_Required_Switches and Binder_Required_Switches in record
3457         Language_Config.
3458         Remove components Default_Language and Config in Project_Tree_Data,
3459         no longer used.
3460
3461         * prj-attr.adb: New attributes Required_Switches (<language>) in
3462         packages Compiler and Binder.
3463
3464         * prj-nmsc.adb: Major rewrite of the processing of configuration
3465         attributes for gprbuild. No impact on GNAT tools.
3466
3467         * prj-proc.ads, prj-proc.adb (Process_Project_Tree_Phase_2): No longer
3468         process configuration attributes: this is done in Prj.Nmsc.Check.
3469         (Recursive_Process): Make a full copy of packages inherited from project
3470         being extended, instead of a shallow copy.
3471         (Process_Project_Tree_Phase_1): New procedure
3472         (Process_Project_Tree_Phase_1): New procedure
3473         (Process): Implementation now uses the two new procedures
3474
3475         * prj-util.adb (Executable_Of): Get the suffix and the default suffix
3476         from the project config, not the tree config that no longer exists.
3477
3478 2007-09-26  Vincent Celier  <celier@adacore.com>
3479
3480         * Make-lang.in: Update dependencies..
3481
3482 2007-09-26  Vincent Celier  <celier@adacore.com>
3483
3484         * osint.adb, osint.ads: Minor reformatting
3485
3486         * osint-b.adb, osint-b.ads (Set_Current_File_Name_Index): New procedure
3487
3488 2007-09-26  Gary Dismukes  <dismukes@adacore.com>
3489
3490         * par-ch4.adb (P_Record_Or_Array_Component_Association): Change Ada 95
3491         message to cite use of <> in aggregate component associations rather
3492         than wrongly indicating use of limited aggregates.
3493
3494 2007-09-26  Robert Dewar  <dewar@adacore.com>
3495
3496         * sem_attr.adb (Analyze_Access_Attribute): Fix missing set of
3497         Address_Taken.
3498
3499 2007-09-26  Ed Schonberg  <schonberg@adacore.com>
3500
3501         * sem_ch3.adb (Derive_Subprograms): If the interface parent is a direct
3502         ancestor of the derived type, the operations are inherited from the
3503         primary dispatch table of the parent.
3504         (OK_For_Limited_Init_In_05): Remove old comment. Reject in-place calls
3505         when the context is an explicit type conversion.
3506
3507 2007-09-26  Ed Schonberg  <schonberg@adacore.com>
3508
3509         * sem_ch4.adb (Analyze_Qualified_Expression): Apply name resolution
3510         rule for qualified expressions properly, to detect improper conversions
3511         and resolve some cases of overloading.
3512
3513 2007-09-26  Ed Schonberg  <schonberg@adacore.com>
3514
3515         * sem_res.adb (Resolve_Call): If the call is dispatching, generate the
3516         proper kind of reference to the primitive operation, for better source
3517         navigation.
3518         (Valid_Conversion): A tagged conversion is legal if both operands are
3519         tagged.
3520
3521 2007-09-26  Robert Dewar  <dewar@adacore.com>
3522
3523         * sem_warn.adb (Check_References): Catch more cases of unreferenced
3524         packages.
3525
3526 2007-09-26  Vincent Celier  <celier@adacore.com>
3527
3528         * snames.adb, snames.ads: Change Include_Option to Include_Switches
3529
3530 2007-09-26  Robert Dewar  <dewar@adacore.com>
3531
3532         * s-wchstw.adb: provide messages for run time unit exceptions
3533
3534         * a-witeio.adb: Minor reformatting
3535
3536         * exp_ch13.adb: Minor reformatting
3537
3538 2007-09-26  Sergey Rybin  <rybin@adacore.com>
3539
3540         * vms_data.ads: Revise gnatmetric qualifiers.
3541         Add qualified for the new gnatbind option '-y'
3542
3543         * gnat_ugn.texi: Revise the gnatmetric section.
3544         Add entry for new gnatbind option '-y'.
3545
3546         * gnat_rm.texi: Minor spelling correction.
3547         Document restriction on overlaying controlled types
3548
3549 2007-09-26  Vincent Celier  <celier@adacore.com>
3550
3551         * makegpr.adb (Link_Executables): Do not fail when the root project has
3552         no sources, but is an extending project.
3553
3554 2007-09-25  Eric Botcazou  <ebotcazou@adacore.com>
3555
3556         * trans.c: Fix misplaced #define.
3557
3558 2007-09-22  Eric Botcazou  <ebotcazou@adacore.com>
3559
3560         * utils2.c (build_unary_op) <ADDR_EXPR> [INDIRECT_REF]: Propagate
3561         the TYPE_REF_CAN_ALIAS_ALL flag to the result.
3562
3563 2007-09-21  Olivier Hainque  <hainque@adacore.com>
3564
3565         * utils.c (type_for_nonaliased_component_p): Return false for
3566         all AGGREGATE_TYPEs.
3567
3568 2007-09-17  Eric Botcazou  <ebotcazou@adacore.com>
3569
3570         * decl.c (gnat_to_gnu_entity) <object>: Make again the type of an
3571         object covered by 13.3(19) volatile.
3572
3573 2007-09-12  Eric Botcazou  <ebotcazou@adacore.com>
3574
3575         PR ada/26797
3576         PR ada/32407
3577         * utils.c (unchecked_convert): Use a subtype as the intermediate type
3578         in the special VIEW_CONVERT_EXPR case.
3579
3580 2007-09-12  Robert Dewar  <dewar@adacore.com>
3581
3582         * types.ads, a-charac.ads, freeze.adb: Minor reformatting.
3583
3584         * a-except.adb, g-hesora.adb, g-speche.adb, lib.adb, lib.ads,
3585         lib-load.adb, lib-writ.adb, s-assert.adb, s-carun8.adb,
3586         s-casuti.adb, s-crc32.adb, s-exctab.adb, s-htable.adb, s-imgenu.adb,
3587         s-mastop.adb, s-memory.adb, s-memory.ads, s-secsta.adb, s-soflin.adb,
3588         s-sopco3.adb, s-sopco4.adb, s-sopco5.adb, s-stache.adb, s-stalib.adb,
3589         s-stoele.adb, s-strcom.adb, s-strops.adb, s-traceb.adb, s-traent.adb,
3590         s-wchcnv.adb, s-wchcon.adb, s-wchjis.adb, s-addope.adb, s-except.adb,
3591         s-os_lib.adb, s-string.adb, s-utf_32.adb, a-elchha.adb,
3592         a-chlat1.ads, a-elchha.ads, a-except.ads, g-hesora.ads, g-htable.ads, 
3593         g-speche.ads, par-prag.adb, restrict.adb, restrict.ads, s-assert.ads, 
3594         s-carun8.ads, s-casuti.ads, s-crc32.ads, sem_ch11.adb, sem_prag.adb, 
3595         s-exctab.ads, s-htable.ads, s-imgenu.ads, s-mastop.ads, snames.adb, 
3596         snames.ads, snames.h, s-purexc.ads, s-secsta.ads, s-soflin.ads, 
3597         s-sopco3.ads, s-sopco4.ads, s-sopco5.ads, s-stache.ads, s-stalib.ads, 
3598         s-stoele.ads, s-strcom.ads, s-strops.ads, s-traceb.ads, s-traent.ads, 
3599         s-unstyp.ads, s-wchcnv.ads, s-wchcon.ads, s-wchjis.ads, s-addope.ads, 
3600         s-except.ads, s-os_lib.ads, s-string.ads, s-utf_32.ads: Implement
3601         pragma Compiler_Unit and adds it to relevant library units.
3602
3603 2007-09-12  Ed Schonberg  <schonberg@adacore.com>
3604
3605         * sem_aggr.adb (Resolve_Record_Aggregate): An others association with
3606         a box need not correspond to any component.
3607
3608 2007-09-12  Robert Dewar  <dewar@adacore.com>
3609
3610         * g-thread.ads: Document use of "with GNAT.Threads" to ensure loading
3611         the tasking version of the Ada run time when foreign threads are
3612         present and there are no explicit Ada tasks or tasking constructs.
3613
3614         * gnat_rm.texi: Clarify documentation of GNAT.Threads.
3615
3616 2007-09-12  Hristian Kirtchev  <kirtchev@adacore.com>
3617
3618         * bindusg.adb (Display): Correct comment for switch -X. Add a line for
3619         the usage of switch -y.
3620
3621         * switch-b.adb (Scan_Binder_Switches): Set flag Leap_Seconds_Support
3622         when switch -y is present.
3623
3624         * opt.ads: Add binder flag Leap_Seconds_Support used to enable/disable
3625         leap seconds in Ada.Calendar and its children.
3626
3627 2007-09-12  Jose Ruiz  <ruiz@adacore.com>
3628
3629         * a-extiti.ads (Timer): The discriminant is a "not null access
3630         constant" in the Reference Manual.
3631         (Cancel_Handler): Cancelled is an out parameter in the Reference Manual.
3632
3633 2007-09-12  Robert Dewar  <dewar@adacore.com>
3634
3635         * a-swuwha.adb: Remove junk RM header
3636
3637 2007-09-12  Vincent Celier  <celier@adacore.com>
3638
3639         * g-bytswa-x86.adb (Swap2, Swap4, Swap8): Remove explicit "in" mode
3640         indicator
3641
3642         * g-bytswa.ads: Minor reformatting
3643
3644 2007-09-12  Thomas Quinot  <quinot@adacore.com>
3645
3646         * g-soccon-solaris-64.ads, g-soccon-hpux-ia64.ads: 
3647         Add new constant Thread_Blocking_IO, always True by default, set False
3648         on a per-runtime basis.
3649         (Need_Netdb_Buffer): New constant.
3650
3651 2007-09-12  Arnaud Charlet  <charlet@adacore.com>
3652
3653         * s-dsaser.ads (Get_Local_Partition_Id, Get_Passive_Partition_Id):
3654         Added renames for corresponding functions in System.Partition_Interface.
3655
3656 2007-09-12  Doug Rupp  <rupp@adacore.com>
3657
3658         * Makefile.in: Remove VMS specific System.CRTL packages which are no
3659         longer needed.
3660
3661         * s-crtl-vms64.ads: Removed.
3662
3663 2007-09-12  Olivier Hainque  <hainque@adacore.com>
3664
3665         * decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: For a subtype
3666         with discriminant constraints, generalize the code for BIT_FIELDs
3667         to PACKED fields of constant size and propagate DECL_PACKED.
3668
3669 2007-09-11  Eric Botcazou  <ebotcazou@adacore.com>
3670
3671         * decl.c (array_type_has_nonaliased_component): New predicate.
3672         (gnat_to_gnu_field) <E_Array_Type>: Invoke the above predicate to
3673         set the TYPE_NONALIASED_COMPONENT flag on the type.
3674         <E_Array_Subtype>: Likewise.
3675         * gigi.h (type_for_nonaliased_component_p): Declare.
3676         * utils.c (type_for_nonaliased_component_p): New predicate.
3677         (create_field_decl): Invoke the above predicate to set the
3678         DECL_NONADDRESSABLE_P flag on the field.
3679
3680 2007-09-11  Javier Miranda  <miranda@adacore.com>
3681
3682         * einfo.ads, einfo.adb (Dispatch_Table_Wrapper): New attribute. Present
3683         in library level record type entities if we are generating statically
3684         allocated dispatch tables.
3685
3686         * exp_disp.adb (Make_Tags/Make_DT): Replace previous code
3687         importing/exporting the _tag declaration by new code
3688         importing/exporting the dispatch table wrapper. This change allows us
3689         to statically allocate of the TSD.
3690         (Make_DT.Export_DT): New procedure.
3691         (Build_Static_DT): New function.
3692         (Has_DT): New function.
3693
3694         * freeze.adb (Freeze_Static_Object): Code cleanup: Do not reset flags
3695         True_Constant and Current_Value. Required to statically
3696         allocate the dispatch tables.
3697         (Check_Allocator): Make function iterative instead of recursive.
3698         Also return inner allocator node, when present, so that we do not have
3699         to look for that node again in the caller.
3700
3701 2007-09-11  Jan Hubicka  <jh@suse.cz>
3702
3703         * misc.c (gnat_expand_body): Kill.
3704         (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Kill.
3705
3706 2007-09-10  Robert Dewar  <dewar@adacore.com>
3707
3708         * exp_atag.ads, exp_atag.adb, mlib-tgt-tru64.adb, mlib-tgt-aix.adb,
3709         mlib-tgt-irix.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
3710         mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
3711         mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb, ali.adb, ali.ads,
3712         ali-util.adb, ali-util.ads, atree.h, back_end.adb, back_end.ads,
3713         bcheck.adb, bcheck.ads, binde.adb, binde.ads, binderr.adb, binderr.ads,
3714         bindgen.adb, bindgen.ads, bindusg.adb, bindusg.ads, butil.adb,
3715         butil.ads, checks.adb, checks.ads, clean.adb, clean.ads, comperr.adb,
3716         comperr.ads, cstand.adb, cstand.ads, debug_a.adb, debug_a.ads,
3717         elists.h, errout.adb, erroutc.ads, errutil.adb, errutil.ads,
3718         err_vars.ads, eval_fat.adb, eval_fat.ads, exp_sel.ads, exp_sel.adb,
3719         exp_aggr.adb, exp_aggr.ads, expander.adb, expander.ads, exp_attr.ads,
3720         exp_ch10.ads, exp_ch11.adb, exp_ch12.adb, exp_ch12.ads, exp_ch13.adb,
3721         exp_ch13.ads, exp_ch2.adb, exp_ch2.ads, exp_ch3.ads, exp_ch4.adb,
3722         exp_ch4.ads, exp_ch5.adb, exp_ch5.ads, exp_ch6.adb, exp_ch6.ads,
3723         exp_ch7.adb, exp_ch7.ads, exp_ch8.adb, exp_ch8.ads, exp_ch9.adb,
3724         exp_ch9.ads, exp_code.adb, exp_code.ads, exp_dbug.adb, exp_dbug.ads,
3725         exp_disp.ads, exp_dist.adb, exp_dist.ads, exp_fixd.adb, exp_fixd.ads,
3726         exp_imgv.adb, exp_imgv.ads, exp_intr.adb, exp_intr.ads, exp_pakd.adb,
3727         exp_pakd.ads, exp_prag.adb, exp_prag.ads, exp_smem.adb, exp_strm.adb,
3728         exp_strm.ads, exp_tss.adb, exp_tss.ads, exp_util.adb, exp_util.ads,
3729         exp_vfpt.adb, exp_vfpt.ads, fmap.adb, fmap.ads, fname-sf.adb,
3730         fname-sf.ads, fname-uf.adb, fname-uf.ads, frontend.adb, frontend.ads,
3731         get_targ.adb, get_targ.ads, gnat1drv.adb, gnat1drv.ads, gnatbind.adb,
3732         gnatbind.ads, gnatbl.c, gnatchop.adb, gnatclean.adb, gnatcmd.adb,
3733         gnatcmd.ads, gnatdll.adb, gnatfind.adb, gnatkr.adb, gnatkr.ads,
3734         gnatlbr.adb, gnatlink.adb, gnatlink.ads, gnatls.adb, gnatls.ads,
3735         gnatmake.adb, gnatmake.ads, gnatmem.adb, gnatname.adb, gnatname.ads,
3736         gnatprep.adb, gnatprep.ads, gnatsym.adb, gnatxref.adb,
3737         gprep.adb, gprep.ads, hlo.adb, hlo.ads, impunit.adb, impunit.ads,
3738         inline.adb, inline.ads, itypes.adb, itypes.ads, layout.adb, layout.ads,
3739         lib-load.adb, lib-load.ads, lib-util.adb, lib-util.ads, lib-writ.adb,
3740         lib-writ.ads, lib-xref.adb, lib-xref.ads, live.adb, live.ads,
3741         make.adb, make.ads, makeutl.ads, makeutl.adb, makeusg.adb, makeusg.ads,
3742         mdll.adb, mdll.ads, mdll-fil.adb, mdll-fil.ads, mdll-utl.adb,
3743         mdll-utl.ads, memroot.adb, memroot.ads, mlib.adb, mlib.ads,
3744         mlib-fil.adb, mlib-fil.ads, mlib-prj.adb, mlib-prj.ads, mlib-tgt.adb,
3745         mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads, namet.h, nmake.adt,
3746         osint.adb, osint.ads, osint-b.adb, osint-b.ads, osint-c.adb,
3747         osint-c.ads, osint-l.adb, osint-l.ads, osint-m.adb, osint-m.ads,
3748         par.adb, par.ads, par-ch10.adb, par-ch11.adb, par-ch12.adb,
3749         par-ch13.adb, par-ch2.adb, par-ch3.adb, par-ch4.adb, par-ch5.adb,
3750         par-ch6.adb, par-ch7.adb, par-ch8.adb, par-ch9.adb, par-endh.adb,
3751         par-labl.adb, par-load.adb, par-prag.adb, par-sync.adb, par-tchk.adb,
3752         par-util.adb, prep.adb, prep.ads, prepcomp.adb, prepcomp.ads,
3753         prj.adb, prj.ads, prj-attr.adb, prj-attr.ads, prj-com.ads,
3754         prj-dect.adb, prj-dect.ads, prj-err.adb, prj-err.ads, prj-ext.adb,
3755         prj-ext.ads, prj-makr.adb, prj-makr.ads, prj-nmsc.adb, prj-nmsc.ads,
3756         prj-pars.adb, prj-pars.ads, prj-part.adb, prj-part.ads,
3757         prj-pp.adb, prj-pp.ads, prj-proc.adb, prj-proc.ads,
3758         prj-strt.adb, prj-strt.ads, prj-tree.adb, prj-tree.ads,
3759         prj-util.adb, prj-util.ads, restrict.adb, restrict.ads,
3760         rtsfind.adb, rtsfind.ads, scn.adb, scn.ads,
3761         scng.adb, scng.ads, sdefault.ads, sem.ads, sem_aggr.ads, sem_attr.adb,
3762         sem_case.adb, sem_case.ads, sem_cat.adb, sem_cat.ads, sem_ch10.adb,
3763         sem_ch10.ads, sem_ch11.adb, sem_ch11.ads, sem_ch12.ads, sem_ch13.adb,
3764         sem_ch13.ads, sem_ch2.adb, sem_ch2.ads, sem_ch3.adb, sem_ch3.ads,
3765         sem_ch4.ads, sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
3766         sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads, sem_ch9.adb,
3767         sem_ch9.ads, sem_disp.adb, sem_disp.ads, sem_dist.adb, sem_dist.ads,
3768         sem_elab.adb, sem_elab.ads, sem_elim.adb, sem_elim.ads, sem_eval.adb,
3769         sem_eval.ads, sem_intr.adb, sem_intr.ads, sem_maps.adb, sem_maps.ads,
3770         sem_mech.adb, sem_mech.ads, sem_prag.adb, sem_prag.ads, sem_res.adb,
3771         sem_res.ads, sem_smem.adb, sem_smem.ads, sem_type.adb, sem_type.ads,
3772         sem_util.adb, sem_util.ads, sem_vfpt.adb, sem_vfpt.ads, sem_warn.adb,
3773         sem_warn.ads, sfn_scan.ads, sinfo-cn.adb, sinfo-cn.ads, sinput-c.adb,
3774         sinput-c.ads, sinput-d.adb, sinput-d.ads, sinput-l.adb, sinput-l.ads,
3775         sinput-p.adb, sinput-p.ads, snames.h, sprint.adb, sprint.ads,
3776         stringt.h, style.ads, styleg.adb, styleg.ads, styleg-c.adb,
3777         styleg-c.ads, stylesw.adb, stylesw.ads, switch.adb, switch.ads,
3778         switch-b.adb, switch-b.ads, switch-c.adb, switch-c.ads, switch-m.adb,
3779         switch-m.ads, symbols.adb, symbols.ads, targparm.adb, tbuild.adb,
3780         tbuild.ads, tempdir.adb, tempdir.ads, tree_gen.adb, tree_gen.ads,
3781         treepr.adb, treepr.ads, treeprs.adt, ttypef.ads, ttypes.ads,
3782         types.h, uintp.h, urealp.h, usage.adb, usage.ads,
3783         validsw.adb, validsw.ads, vxaddr2line.adb, xeinfo.adb, xnmake.adb,
3784         xref_lib.adb, xref_lib.ads, xr_tabls.adb, xr_tabls.ads, xsinfo.adb,
3785         xtreeprs.adb, xsnames.adb, vms_conv.ads, vms_conv.adb, xgnatugn.adb,
3786         gprmake.adb, makegpr.ads, makegpr.adb, prj-attr-pm.ads, prj-attr-pm.adb,
3787         mlib-tgt-lynxos.adb, mlib-tgt-darwin.adb, symbols-vms.adb,
3788         symbols-processing-vms-alpha.adb, symbols-processing-vms-ia64.adb,
3789         mlib-tgt-specific.adb, mlib-tgt-specific.ads, mlib-tgt-vms.adb,
3790         mlib-tgt-vms.ads: Replace headers with GPL v3 headers.
3791
3792 2007-09-10  Emmanuel Briot  <briot@adacore.com>
3793
3794         * s-regpat.adb (Parse_Character_Class): Fix handling of empty character
3795         classes ("[]").
3796
3797 2007-09-10  Vasiliy Fofanov  <fofanov@adacore.com>
3798
3799         * adaint.c (__gnat_translate_vms): new function.
3800
3801 2007-09-10  Gary Dismukes  <dismukes@adacore.com>
3802             Thomas Quinot  <quinot@adacore.com>
3803
3804         * exp_ch3.adb (Predef_Spec_Or_Body): When the type is abstract, only
3805         create an abstract subprogram in the case of 'Input. For 'Output we now
3806         create a real spec/body when the type is abstract, since it can
3807         potentially be called.
3808         (Predefined_Primitive_Bodies): Now allow the creation of a predefined
3809         body for 'Output when the type is abstract (only the creation of the
3810         body for 'Input is excluded when the type is abstract).
3811         (Stream_Operation_OK): Add an additional condition in the return
3812         statement, so that False will be returned for TTS_Stream_Input if the
3813         associated tagged type is an abstract extension. Add comments for
3814         return statement.
3815         (Expand_N_Object_Declaration): For the case of a shared passive
3816         variable, insert init proc call only after the shared variable
3817         procedures have been processed, because the IP call needs to undergo
3818         shared passive variable reference expansion, which requires these
3819         procedures to be available (and elaborated).
3820
3821 2007-09-10  Vincent Celier  <celier@adacore.com>
3822
3823         * prj-env.ads, prj-env.adb (Create_Mapping_File (Language)): Remove
3824         parameter Runtime_Project.
3825
3826 2007-09-10  Ed Schonberg  <schonberg@adacore.com>
3827
3828         * sem_aggr.adb (Build_Record_Aggr_Code): If an aggregate component is
3829         given a box association, the type of the component is discriminated,
3830         and the value of the discriminant is the discriminant of the enclosing
3831         type, retrieve its value from the aggregate itself, where it must have
3832         been supplied.
3833
3834         * sem_ch4.adb (Analyze_One_Call): Further refinement to previous fix,
3835         to remove other spurious ambiguities on arithmetic operations involving
3836         literals and addresses, on systems where Address is a visible integer
3837         type, when the operator is called in functional notation.
3838         (Try_Primitive_Operation): Within an instance, a call in prefixed form
3839         is legal when the types match, even if the operation is currently
3840         hidden.
3841
3842 2007-09-10  Ed Schonberg  <schonberg@adacore.com>
3843
3844         * sem_ch12.adb (Build_Local_Package): A formal package with no
3845         associations is legal if all formals have defaults. It is not
3846         equivalent to a formal declared with a box.
3847
3848 2007-09-10  Sergey Rybin  <rybin@adacore.com>
3849
3850         * vms_data.ads: Add qualifier for the new gnatmetric '-lratio' option
3851
3852 2007-09-10  Sergey Rybin  <rybin@adacore.com>
3853
3854         * gnat_ugn.texi: Add description of the new '-lratio' option
3855         Update 7.3.1 section about availability of the feature.
3856
3857 2007-09-10  Thomas Quinot  <quinot@adacore.com>
3858
3859         * exp_smem.ads, exp_smem.adb (Make_Shared_Var_Procs): Return last
3860         inserted node.
3861
3862 2007-09-10  Olivier Hainque  <hainque@adacore.com>
3863
3864         * Makefile.in: (mips-irix section): Activate build of libgmem.
3865
3866 2007-09-10  Eric Botcazou  <ebotcazou@adacore.com>
3867
3868         * a-numaux-x86.adb (Logarithmic_Pow): Do not silently clobber
3869         x87 registers.
3870
3871 2007-09-10  Eric Botcazou  <ebotcazou@adacore.com>
3872
3873         * decl.c (gnat_to_gnu_entity) <object>: Deal with variable built for
3874         a debug renaming declaration specially.
3875
3876 2007-09-08  Eric Botcazou  <ebotcazou@adacore.com>
3877
3878         * decl.c (gnat_to_gnu_entity) <Object>: Simplify the condition under
3879         which a constant renaming is treated as a normal object declaration.
3880         * trans.c (lvalue_required_p) <N_Slice>: New case, extracted from
3881         the N_Indexed_Component case.
3882         <N_Indexed_Component>: Fall through to above case.
3883         <N_Object_Renaming_Declaration>: Return true for all composite types.
3884
3885 2007-09-08  Eric Botcazou  <ebotcazou@adacore.com>
3886
3887         * decl.c (make_packable_type): If the new type has been given BLKmode,
3888         try again to get an integral mode for it.
3889
3890 2007-09-07  Eric Botcazou  <ebotcazou@adacore.com>
3891
3892         Re-apply accidentally reverted change:
3893
3894         2007-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
3895
3896         * raise-gcc.c (get_region_description_for, get_call_site_action_for,
3897         get_action_description_for): Replace _Unwind_Word with _uleb128_t 
3898         and _Unwind_SWord with _sleb128_t.
3899
3900 2007-09-06  Eric Botcazou  <ebotcazou@adacore.com>
3901
3902         * trans.c (convert_with_check): Update call to real_2expN.
3903
3904 2007-09-05  Sandra Loosemore  <sandra@codesourcery.com>
3905
3906         * trans.c (Compilation_unit_to_gnu): Use set_cfun.
3907         * utils.c (end_subprog_body): Likewise.
3908
3909 2007-09-03  Nick Clifton  <nickc@redhat.com>
3910
3911         * Make-lang.in: Change copyright header to refer to version 3 of
3912         the GNU General Public License and to point readers at the
3913         COPYING3 file and the FSF's license web page.
3914         * ada-tree.def, nmake.adt, nlists.h, snames.h, utils.c,
3915         Makefile.rtl, Makefile.in, config-lang.in, uintp.h, urealp.h,
3916         namet.h, decl.c, utils2.c, lang.opt, elists.h, atree.h, types.h,
3917         treeprs.adt, lang-specs.h, cuintp.c, stringt.h, gnatbl.c:
3918         Likewise.
3919
3920 2007-08-31  Vincent Celier  <celier@adacore.com>
3921
3922         PR ada/4720
3923
3924         * gnatchop.adb, gnatfind.adb, gnatlink.adb, gnatls.adb, 
3925         gnatname.adb, gnatxref.adb, gprep.adb, clean.adb gnatbind.adb
3926         (Check_Version_And_Help): New procedure in package Switch to process
3927         switches --version and --help.
3928         Use Check_Version_And_Help in GNAT tools
3929
3930         * make.adb:  Ditto.
3931         (Compile_Sources): Make sure that sources that are "excluded" are not
3932         compiled.
3933         (Gnatmake): Do not issue -aO. to gnatbind and only issue -I- if a
3934         project file is used.
3935         (Version_Switch): Remove, moved to Switch
3936         (Help_Switch): Remove, moved to Switch
3937         (Display_Version): Remove, moved to Switch
3938
3939         * switch.ads, switch.adb (Check_Version_And_Help): New procedure in
3940         package Switch to process switches --version and --help.
3941         (Display_Version): New procedure
3942
3943         * gnatvsn.ads, gnatvsn.adb (Copyright_Holder): New function.
3944
3945 2007-08-31  Javier Miranda  <miranda@adacore.com>
3946
3947         * a-tags.adb (Internal_Tag): Protect the run-time against wrong
3948         internal tags.
3949
3950 2007-08-31  Hristian Kirtchev  <kirtchev@adacore.com>
3951
3952         * checks.adb (In_Declarative_Region_Of_Subprogram_Body): New routine.
3953         (Mark_Non_Null): If the node for which we just generated an access check
3954         is a reference to an *in* parameter and the reference appears in the
3955         declarative part of a subprogram body, mark the node as known non null.
3956
3957 2007-08-31  Hristian Kirtchev  <kirtchev@adacore.com>
3958
3959         * einfo.ads, einfo.adb: New flag Is_Raised (Flag224). Update the
3960         structure of E_Exception to reflect the new flag.
3961         (Is_Raised, Set_Is_Raised): New inlined routines.
3962         Update the usage of available flag to reflect the addition of Is_Raised.
3963         (Is_Raised, Set_Is_Raised): Bodies of new routines.
3964         (Write_Entity_Flags): Write the status of flag Is_Raised.
3965         (Is_Descendent_Of_Address): New entity flag, to simplify handling of
3966         spurious ambiguities when integer literals appear in the context of an
3967         address type that is a visible integer type.
3968
3969         * sem_ch11.adb (Analyze_Exception_Handler): Add code to warn on local
3970         exceptions never being raised.
3971         (Analyze_Raise_Statement): When analyzing an exception, mark it as being
3972         explicitly raised.
3973
3974 2007-08-31  Javier Miranda  <miranda@adacore.com>
3975
3976         * exp_ch11.adb (Expand_At_End_Handler): Avoid generation of raise
3977         statement when compiling under restriction No_Exceptions_Proparation.
3978
3979 2007-08-31  Ed Schonberg  <schonberg@adacore.com>
3980
3981         * exp_ch3.adb (Build_Record_Init_Proc): If there is a static
3982         initialization aggregate for the type, generate itype references for
3983         thetypes of its (sub)components, to prevent out-of-scope errors in gigi.
3984
3985 2007-08-31  Gary Dismukes  <dismukes@adacore.com>
3986
3987         * exp_ch8.adb (Expand_N_Package_Renaming_Declaration): In the case of a
3988         library-level package renaming, pass the declaration associated with
3989         the renaming's special debug variable to Qualify_Entity_Names to ensure
3990         that its encoded name is properly qualified.
3991
3992         * exp_dbug.adb (Qualify_All_Entity_Names): Check for a variable entity
3993         occurring in the list of entities to qualify, and do not attempt to
3994         traverse an entity list in that case. Variables associated with
3995 `       library-level package renamings can now occur in the table.
3996
3997         * exp_dbug.ads: Revise documentation of the encoding for renaming
3998         declarations.
3999
4000 2007-08-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4001
4002         * layout.adb (Layout_Type): Use Underlying_Type to determine whether an
4003         access type points to an unconstrained array.
4004
4005 2007-08-31  Hristian Kirtchev  <kirtchev@adacore.com>
4006
4007         * restrict.adb, namet.adb, par-util.adb: Remove redundant type
4008         conversion.
4009
4010         * sem_res.adb (Resolve_Qualified_Expression): Add machinery to detect
4011         simple redundant qualifications. The check is performed whenever the
4012         expression is a non-overloaded identifier.
4013         (Resolve_Type_Conversion): Enchance the redundant type conversion check
4014         to include loop parameters.
4015         (Valid_Conversion): Avoid generation of spurious error message.
4016
4017 2007-08-31  Bob Duff  <duff@adacore.com>
4018
4019         * par-ch4.adb (P_Simple_Expression): Fold long sequences of
4020         concatenations of string literals into a single literal, in order to
4021         avoid very deep recursion in the front end, which was causing stack
4022         overflow.
4023
4024         * sem_eval.adb (Eval_Concatenation): If the left operand is the empty
4025         string, and the right operand is a string literal (the case of "" &
4026         "..."), optimize by avoiding copying the right operand -- just use the
4027         value of the right operand directly.
4028
4029         * stringt.adb (Store_String_Chars): Optimize by growing the
4030         String_Chars table all at once, rather than appending characters one by
4031         one.
4032         (Write_String_Table_Entry): If the string to be printed is very long,
4033         just print the first few characters, followed by the length. Otherwise,
4034         doing "pn(n)" in the debugger can take an extremely long time.
4035
4036         * sem_prag.adb (Process_Interface_Name): Replace loop doing
4037         Store_String_Char with Store_String_Chars.
4038
4039 2007-08-31  Vincent Celier  <celier@adacore.com>
4040
4041         * prj-attr.adb: Add new attribute Excluded_Source_Files
4042
4043         * prj-nmsc.adb: Use attribute Excluded_Source_Files before
4044         Locally_Removed_Files.
4045
4046         * snames.ads, snames.adb: New standard name Excluded_Source_Files
4047
4048 2007-08-31  Ed Schonberg  <schonberg@adacore.com>
4049
4050         * sem_ch10.adb (Analyze_Subunit_Context): When analyzing context
4051         clauses of subunits, ignore limited_with_clauses that are illegal and
4052         have not been fully analyzed.
4053
4054 2007-08-31  Ed Schonberg  <schonberg@adacore.com>
4055
4056         * sem_ch3.adb: The predicate Is_Descendent_Of_Address is now an entity
4057         flag, for effiency. It is called when analyzing arithmetic operators
4058         and also for actuals in calls that are universal_integers. The flag is
4059         set for the predefined type address, and for any type or subtype
4060         derived from it.
4061
4062         * sem_ch4.adb (Analyze_One_Call): Reject an actual that is a
4063         Universal_Integer, when the formal is a descendent of address and the
4064         call appears in user code.
4065         (Analyze_Selected_Component): if the prefix is a private extension, the
4066         tag component is visible.
4067
4068         * sem_util.ads, sem_util.adb: Remove Is_Descendent_Of_Address, now an
4069         entity flag.
4070
4071 2007-08-31  Robert Dewar  <dewar@adacore.com>
4072
4073         * s-fileio.adb (Open): Normalize file name to lower case in non-case
4074         sensitive file name systems to avoid unexpected mismatch in Vista.
4075
4076 2007-08-31  Vincent Celier  <celier@adacore.com>
4077
4078         * tempdir.adb: On VMS, take into account GNUTMPDIR before TMPDIR
4079
4080 2007-08-31  Vincent Celier  <celier@adacore.com>
4081
4082         * symbols-vms.adb (Initialize): Read symbol files with continuation
4083         lines
4084         (Finalize): If symbol is long, split the line
4085
4086 2007-08-31  Vincent Celier  <celier@adacore.com>
4087
4088         * fmap.ads: Minor comment updates
4089
4090 2007-08-31  GNAT Script  <nobody@adacore.com>
4091
4092         * Make-lang.in: Makefile automatically updated
4093
4094 2007-08-31  Bob Duff  <duff@adacore.com>
4095
4096         * sinfo.ads: Minor comment fix.
4097
4098 2007-08-31  Thomas Quinot  <quinot@adacore.com>
4099
4100         * stand.ads: (Standard_Debug_Renaming_Type): Make comment consistent
4101         with implementation.
4102         Documentation cleanup only.
4103
4104 2007-08-31  Sergey Rybin  <rybin@adacore.com>
4105
4106         * vms_data.ads: Add new qualifier /STMT_NAME_ON_NEW_LINE for the new
4107         gnatpp '--separate-stmt-name' option.
4108         Add new qualifier /USE_ON_NEW_LIN for the new gnatpp '--use-on-new-line'
4109         option.
4110
4111         * gnat_ugn.texi: Add description for the new gnatpp
4112         '--separate-stmt-name' and '--use-on-new-line' options.
4113
4114 2007-08-31  Ben Elliston  <bje@au.ibm.com>
4115
4116         * Makefile.in (LIBGNAT_TARGET_PAIRS): Use system-linux-ppc64.ads
4117         when compiling for powerpc64-*-linux.
4118         * system-linux-ppc64.ads: New file.
4119
4120 2007-08-22  Krister Walfridsson  <cato@df.lth.se>
4121
4122         * env.c ( __gnat_clearenv): Use the __gnat_unsetenv mechanism for
4123         NetBSD.
4124
4125 2007-08-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4126
4127         * misc.c (gnat_type_max_size): Constify.
4128
4129 2007-08-16  Gary Dismukes  <dismukes@adacore.com>
4130
4131         * cstand.adb (Create_Standard): Create an entity for a zero-sized type
4132         associated with Standard_Debug_Renaming_Type, to be used as the type of
4133         the special variables whose names provide debugger encodings for
4134         renaming declarations.
4135
4136         * einfo.ads, einfo.adb (Debug_Renaming_Link): Change to return Node25.
4137         (Set_Debug_Renaming_Link): Change to set Node25.
4138         (Write_Field13_Name): Remove case for E_Enumeration_Literal.
4139         (Write_Field25_Name): Add case for E_Variable to output
4140         "Debug_Renaming_Link".
4141         (Write_Field23_Name): Correct the output string for "Limited_View".
4142
4143         * exp_dbug.adb: Add with and use of Tbuild.
4144         (Debug_Renaming_Declaration): Replace creation of an enumeration type
4145         and literal with creation of a variable of type
4146         Standard_Debug_Renaming_Type whose name encodes both the renamed object
4147         and the entity of the renaming declaration.
4148         (Qualify_Entity_Name): Add the delayed qualification of the entity name
4149         part of the name of a variable that has a Debug_Renaming_Link.
4150
4151         * stand.ads (Standard_Debug_Renaming_Type): New Entity_Id denoting a
4152         special type to be associated with variables that provide debugger
4153         encodings for renaming declarations.
4154
4155 2007-08-16  Gary Dismukes  <dismukes@adacore.com>
4156             Ed Schonberg  <schonberg@adacore.com>
4157             Javier Miranda  <miranda@adacore.com>
4158
4159         * exp_aggr.adb (Build_Record_Aggr_Code): Extend the test for an
4160         ancestor part given by an aggregate to test for an unchecked conversion,
4161         since this can occur in some cases when the ancestor part is a function
4162         call, and we don't want to fall into the recursive call to this
4163         procedure in that case.
4164
4165         * exp_ch3.adb (Stream_Operation_OK): Revise tests for availability of
4166         stream attributes on limited types to account for user-specified
4167         attributes as well as whether Input (resp. Output) becomes available
4168         due to Read (resp. Write) being available for the type. Change Boolean
4169         variable to the more accurate name
4170         Has_Predefined_Or_Specified_Stream_Attribute. Change convoluted
4171         double-"not" predicate at beginning of return statement to more
4172         understandable form.
4173
4174         * exp_ch5.adb (Expand_N_Extended_Return_Statement): If the extended
4175         return has an associated N_Handled_Sequence_Of_Statements, then wrap it
4176         in a block statement and use that as the first statement of the
4177         expanded return rather than incorrectly using the handled sequence as
4178         the first statement.
4179
4180         * exp_ch6.adb (Expand_N_Subprogram_Declaration): If this is a protected
4181         operation, generate an explicit freeze node for it rather than
4182         generating extra formals, to ensure that gigi has the proper order of
4183         elaboration for anonymous subtypes in the signature of the subprograms.
4184         (Build_In_Place_Formal): Move assertion to beginning of loop.
4185         (Is_Build_In_Place_Function_Call): Allow for an unchecked conversion
4186         applied to a function call (occurs for some cases of 'Input).
4187         (Make_Build_In_Place_Call_In_*): Allow for an unchecked conversion
4188         applied to a function call (occurs for some cases of 'Input).
4189
4190         * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): For Ada
4191         2005, generate an extended return statement enclosing the result object
4192         and 'Read call.
4193
4194         * freeze.adb (Freeze_Record_Type): Extend the current management of
4195         components that are access type with an allocator as default value: add
4196         missing support to the use of qualified expressions of the
4197         allocator (which also cause freezing of the designated type!)
4198         (Freeze_Entity): Call Freeze_Subprogram in the case of a predefined
4199         dispatching operation, since extra formals may be needed by calls to
4200         build-in-place functions (such as stream 'Input).
4201
4202         * sem_ch6.adb (Create_Extra_Formals): Skip creation of the extra
4203         formals for 'Constrained and accessibility level in the case of a
4204         predefined dispatching operation.
4205
4206         * exp_util.adb (Insert_Actions): A protected body is a valid insertion
4207         point, no need to find the parent node.
4208
4209 2007-08-16  Javier Miranda  <miranda@adacore.com>
4210
4211         * exp_attr.adb (Attribute_Priority): Add missing support for entries
4212         and entry barriers.
4213
4214 2007-08-16  Javier Miranda  <miranda@adacore.com>
4215
4216         * exp_ch9.adb (Build_Protected_Entry): Undo previous change because it
4217         is not really required and can introduce regression with the debugger.
4218         The original problem is fixed with the patch written for checks.adb.
4219
4220 2007-08-16  Thomas Quinot  <quinot@adacore.com>
4221
4222         * g-dyntab.adb, g-table.adb, table.adb: (Set_Item): Suppress
4223         Range_Check on Allocated_Table.
4224
4225 2007-08-16  Vincent Celier  <celier@adacore.com>
4226
4227         * make.adb (Collect_Arguments): Call Test_If_Relative_Path with
4228         Including_Non_Switch set to False.
4229         (Gnatmake): For the compiler, call Test_If_Relative_Path with
4230         Including_Non_Switch set to False.
4231
4232         * makeutl.adb, makeutl.ads (Test_If_Relative_Path): New Boolean
4233         parameter Including_Non_Switch, defaulted to True. When
4234         Including_Non_Switch is False, options that are not switches and
4235         appear as relative path are not converted to absolute paths.
4236
4237 2007-08-16  Nicolas Roche  <roche@adacore.com>
4238
4239         * Makefile.in (gnatlib): Propagate FORCE_DEBUG_ADAFLAGS value to sub
4240         makefiles
4241
4242         * Make-lang.in: Update dependencies
4243
4244 2007-08-16  Hristian Kirtchev  <kirtchev@adacore.com>
4245
4246         * sem_ch10.adb (Has_With_Clause): If the name of the with clause
4247         currently inspected is a selected component, retrieve the entity of
4248         its selector.
4249         (Install_Limited_Withed_Unit): Call Has_Limited_With_Clause starting
4250         from the immediate ancestor of Main_Unit_Entity.
4251         (Install_Limited_Withed_Unit): Do not install the limited view of
4252         package P if P is reachable through an ancestor chain from package C
4253         and C also has a with clause for P in its body.
4254         (Has_Limited_With_Clause): New routine.
4255         (Has_With_Clause): New routine.
4256
4257 2007-08-16  Ed Schonberg  <schonberg@adacore.com>
4258
4259         * sem_ch12.adb (Copy_Generic_Node): A reference to a child unit of the
4260         generic for an enclosing instance is a global reference, even though
4261         its scope is the enclosing instance.
4262
4263 2007-08-16  Gary Dismukes  <dismukes@adacore.com>
4264             Javier Miranda  <miranda@adacore.com>
4265
4266         * sem_ch3.adb (OK_For_Limited_Init_In_05): Allow calls to 'Input to
4267         initialize a limited object.
4268         (Build_Derived_Record_Type): Add missing check of rules ARM 3.9.4
4269         13/2 and 14/2.
4270         Make sure Has_Complex_Representation is inherited by derived type.
4271
4272 2007-08-16  Robert Dewar  <dewar@adacore.com>
4273
4274         * sem_ch5.adb (Analyze_Assignment): Make sure we still note update in
4275         exception case
4276
4277 2007-08-16  Ed Schonberg  <schonberg@adacore.com>
4278
4279         * sem_disp.adb (Check_Dispatching_Operation): If the operation
4280         implements an operation inherited from a progenitor interface, verify
4281         that they are subtype-conformant.
4282
4283 2007-08-16  Hristian Kirtchev  <kirtchev@adacore.com>
4284             Bob Duff  <duff@adacore.com>
4285             Nicolas Setton  <setton@adacore.com>
4286
4287         * sem_res.adb (Comes_From_Predefined_Lib_Unit): New.
4288         (Resolve): Alphabetize local variables. Add new variable From_Lib. When
4289         the statement which is being resolved comes from a predefined library
4290         unit, all non-predefined library interpretations are skipped.
4291         (Resolve_Op_Concat): If string concatenation was folded in the parser,
4292         but the "&" is user defined, give an error, because the folding would
4293         be wrong.
4294
4295         * sinfo.ads, sinfo.adb (Is_Folded_In_Parser): New flag to indicate that
4296         the parser has folded a long sequence of concatenations of string
4297         literals.
4298
4299         * trans.c (Handled_Sequence_Of_Statements_to_gnu): Mark "JMPBUF_SAVE"
4300         and "JMP_BUF" variables as artificial.
4301         (N_String_Literal): Do not use alloca for very long string literals. Use
4302         xmalloc/free instead. Otherwise the stack might overflow.
4303
4304         * utils.c (init_gigi_decls): Mark "JMPBUF_T" type as created by the
4305         compiler.
4306
4307 2007-08-16  Vincent Celier  <celier@adacore.com>
4308
4309         * vms_conv.adb (Process_Argument): Ensure that project related options
4310         are not put in the -cargs section when using GNAT COMPILE.
4311
4312 2007-08-16  Robert Dewar  <dewar@adacore.com>
4313
4314         * gnat_ugn.texi: Add note on preprocessing (output file not written)
4315
4316 2007-08-16  Thomas Quinot  <quinot@adacore.com>
4317
4318         * a-tags.adb: Minor reformatting.
4319
4320 2007-08-16  Bob Duff  <duff@adacore.com>
4321
4322         * sem_type.ads, sem_ch4.adb: Minor reformatting.
4323
4324 2007-08-14  Thomas Quinot  <quinot@adacore.com>
4325
4326         * g-soccon-interix.ads, a-excpol-interix.adb, a-intnam-interix.ads, 
4327         s-osinte-interix.ads, system-interix.ads: Removed.
4328
4329 2007-08-14  Hristian Kirtchev  <kirtchev@adacore.com>
4330
4331         * a-calend-vms.adb, a-calend.adb ("+", "-", Add, Subtract): Remove
4332         calls to Check_Within_Time_Bounds.
4333         ("+", "-", Add, Subtract): Remove calls to Check_Within_Time_Bounds.
4334         (Difference): Account for possible rounding of the resulting difference
4335
4336 2007-08-14  Robert Dewar  <dewar@adacore.com>
4337
4338         * uintp.adb, a-ztedit.adb, s-wchcon.adb, xnmake.adb, s-wchcon.adb,
4339         par-ch5.adb, par-ch10.adb, get_targ.adb, a-wtedit.adb, a-teioed.adb,
4340         s-osinte-solaris.adb, s-osinte-solaris.ads,
4341         s-osinte-freebsd.ads, s-osinte-freebsd.adb: Minor reformatting.
4342
4343         * styleg.adb, styleg.ads, stylesw.adb, stylesw.ads: implement style
4344         switch -gnatyS. Enable -gnatyS in GNAT style check mode
4345
4346 2007-08-14  Robert Dewar  <dewar@adacore.com>
4347             Ed Schonberg  <schonberg@adacore.com>
4348
4349         * inline.adb, types.ads, inline.ads, frontend.adb, alloc.ads: 
4350         Suppress unmodified in-out parameter warning in some cases
4351         This patch is a also fairly significant change to the way suppressible
4352         checks are handled.
4353
4354         * checks.ads, checks.adb (Install_Null_Excluding_Check): No check
4355         needed for access to concurrent record types generated by the expander.
4356         (Generate_Range_Check): When generating a temporary to capture the
4357         value of a conversion that requires a range check, set the type of the
4358         temporary before rewriting the node, so that the type is always
4359         properly placed for back-end use.
4360         (Apply_Float_Conversion_Check): Handle case where the conversion is
4361         truncating.
4362         (Get_Discriminal): Code reformatting. Climb the scope stack looking
4363         for a protected type in order to examine its discriminants.
4364
4365 2007-08-14  Robert Dewar  <dewar@adacore.com>
4366             Gary Dismukes  <dismukes@adacore.com>
4367             Ed Schonberg  <schonberg@adacore.com>
4368             Thomas Quinot  <quinot@adacore.com>
4369
4370         * a-stzsup.adb, nlists.adb, lib-util.adb, treepr.adb, 
4371         a-stwisu.adb, a-strsup.adb: Fix warnings for range
4372         tests optimized out.
4373
4374         * exp_ch4.adb (Expand_N_In): Add warnings for range tests optimized out.
4375         (Get_Allocator_Final_List): For the case of an anonymous access type
4376         that has a specified Associated_Final_Chain, do not go up to the
4377         enclosing scope.
4378         (Expand_N_Type_Conversion): Test for the case of renamings of access
4379         parameters when deciding whether to apply a run-time accessibility
4380         check.
4381         (Convert_Aggr_In_Allocator): Use Insert_Actions to place expanded
4382         aggregate code before allocator, and ahead of declaration for
4383         temporary, to prevent access before elaboration when the allocator is
4384         an actual for an access parameter.
4385         (Expand_N_Type_Conversion): On an access type conversion involving an
4386         access parameter, do not apply an accessibility check when the
4387         operand's original node was an attribute other than 'Access. We now
4388         create access conversions for the expansion of 'Unchecked_Access and
4389         'Unrestricted_Access in certain cases and clearly accessibility should
4390         not be checked for those.
4391
4392         * exp_ch6.ads, exp_ch6.adb (Add_Call_By_Copy_Code): For an actual that
4393         includes a type conversion of a packed component that has been expanded,
4394         recover the original expression for the object, and use this expression
4395         in the post-call assignment statement, so that the assignment is made
4396         to the object and not to a back-end temporary.
4397         (Freeze_Subprogram): In case of primitives of tagged types not defined
4398         at the library level force generation of code to register the primitive
4399         in the dispatch table. In addition some code reorganization has been
4400         done to leave the implementation clear.
4401         (Expand_Call): When expanding an inherited implicit conversion,
4402         preserve the type of the inherited function after the intrinsic
4403         operation has been expanded.
4404
4405         * exp_ch2.ads, exp_ch2.adb
4406         (Expand_Entry_Parameter.In_Assignment_Context): An implicit dereference
4407         of an entry formal appearing in an assignment statement does not assign
4408         to the formal.
4409         (Expand_Current_Value): Instead of calling a routine to determine
4410         whether the prefix of an attribute reference should be optimized or
4411         not, prevent the optimization of such prefixes all together.
4412
4413         * lib-xref.adb (Generate_Reference.Is_On_LHS): An indexed or selected
4414         component whose prefix is known to be of an access type is an implicit
4415         dereference and does not assign to the prefix.
4416
4417 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
4418             Robert Dewar  <dewar@adacore.com>
4419
4420         * atree.ads, atree.adb (New_Copy_Tree): If hash table is being used and
4421         itype is visited, make an entry into table to link associated node and
4422         new itype.
4423         Add comments and correct harmless error in Build_NCT_Hash_Tables
4424         (Array_Aggr_Subtype): Associate each itype created for an index type to
4425         the corresponding range construct, and not to the aggregate itself. to
4426         maintain a one-to-one correspondence between itype and its associated
4427         node, to prevent errors when complex expression is copied.
4428         Fix mishandling of multiple levels of parens
4429
4430         * sem_aggr.adb: Create a limited view of an incomplete type, to make
4431         treatment of limited views uniform for all visible declarations in a
4432         limited_withed package.
4433         (New_Copy_Tree): If hash table is being used and itype is visited,
4434         make an entry into table to link associated node and new itype.
4435         (Resolve_Record_Aggregate): Do not add an others box association for a
4436         discriminated record component that has only discriminants, when there
4437         is a box association for the component itself.
4438
4439         * par-ch4.adb: Fix mishandling of multiple levels of parens
4440
4441 2007-08-14  Robert Dewar  <dewar@adacore.com>
4442
4443         * comperr.adb: Fix problem with suppressing warning messages from gigi
4444
4445         * erroutc.ads, erroutc.adb, errout.ads, 
4446         errout.adb (Write_Eol): Remove trailing spaces before writing the line
4447         (Write_Eol_Keep_Blanks): New procedure to write a line, including
4448         possible trailing spaces.
4449         (Output_Source_Line): Call Write_Eol_Keep_Blanks to output a source line
4450         Fix problem with suppressing warning messages from back end
4451         Improve handling of deleted warnings
4452
4453         * gnat1drv.adb: 
4454         Fix problem with suppressing warning messages from back end
4455         Handle setting of Static_Dispatch_Tables flag.
4456
4457         * prepcomp.adb: 
4458         Fix problem with suppressing warning messages from back end
4459
4460         * exp_intr.adb: Improve handling of deleted warnings
4461
4462 2007-08-14  Robert Dewar  <dewar@adacore.com>
4463
4464         * debug.adb: Improve -gnatdI to cover all cases of serialization
4465         Add documentation of dZ, d.t
4466
4467         * sprint.ads, sprint.adb: Improve -gnatdI to cover all cases of
4468         serialization.
4469         (Sprint_Node_Actual): Generate new output associated with implicit
4470         importation and implicit exportation of object declarations.
4471
4472 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
4473             Robert Dewar  <dewar@adacore.com>
4474             Javier Miranda  <miranda@adacore.com>
4475             Gary Dismukes  <dismukes@adacore.com>
4476
4477         * einfo.ads, einfo.adb: Create a limited view of an incomplete type,
4478         to make treatment of limited views uniform for all visible declarations
4479         in a limited_withed package.
4480         Improve warnings for in out parameters
4481         (Set_Related_Interaface/Related_Interface): Allow the use of this
4482         attribute with constants.
4483         (Write_Field26_Name): Handle attribute Related_Interface in constants.
4484         Warn on duplicate pragma Preelaborable_Initialialization
4485
4486         * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Body): Force the
4487         generation of a freezing node to ensure proper management of null
4488         excluding access types in the backend.
4489         (Create_Extra_Formals): Test base type of the formal when checking for
4490         the need to add an extra accessibility-level formal. Pass the entity E
4491         on all calls to Add_Extra_Formal (rather than Scope (Formal) as was
4492         originally being done in a couple of cases), to ensure that the
4493         Extra_Formals list gets set on the entity E when the first entity is
4494         added.
4495         (Conforming_Types): Add missing calls to Base_Type to the code that
4496         handles anonymous access types. This is required to handle the
4497         general case because Process_Formals builds internal subtype entities
4498         to handle null-excluding access types.
4499         (Make_Controlling_Function_Wrappers): Create wrappers for constructor
4500         functions that need it, even when not marked Requires_Overriding.
4501         Improve warnings for in out parameters
4502         (Analyze_Function_Return): Warn for disallowed null return
4503         Warn on return from procedure with unset out parameter
4504         Ensure consistent use of # in error messages
4505         (Check_Overriding_Indicator): Add in parameter Is_Primitive.
4506         (Analyze_Function_Return): Move call to Apply_Constraint_Check before
4507         the implicit conversion of the expression done for anonymous access
4508         types. This is required to generate the code of the null excluding
4509         check (if required).
4510
4511         * sem_warn.ads, sem_warn.adb (Check_References.Publicly_Referenceable):
4512         A formal parameter is never publicly referenceable outside of its body.
4513         (Check_References): For an unreferenced formal parameter in an accept
4514         statement, use the same warning circuitry as for subprogram formal
4515         parameters.
4516         (Warn_On_Unreferenced_Entity): New subprogram, taken from
4517         Output_Unreferenced_Messages, containing the part of that routine that
4518         is now reused for entry formals as described above.
4519         (Goto_Spec_Entity): New function
4520         (Check_References): Do not give IN OUT warning for dispatching operation
4521         Improve warnings for in out parameters
4522         (Test_Ref): Check that the entity is not undefinite before calling
4523         Scope_Within, in order to avoid infinite loops.
4524         Warn on return from procedure with unset out parameter
4525         Improved warnings for unused variables
4526
4527 2007-08-14  Robert Dewar  <dewar@adacore.com>
4528             Javier Miranda  <miranda@adacore.com>
4529             Gary Dismukes  <dismukes@adacore.com>
4530
4531         * exp_attr.adb (Expand_N_Attribute_Reference): Handle case of child unit
4532         (Expand_N_Attribute_Reference): Further unify the handling of the
4533         three forms of access attributes, using common code now for all three
4534         cases. Add a test for the case of applying an access attribute to
4535         an explicit dereference when the context is an access-to-interface
4536         type. In that case we need to apply the conversion to the prefix
4537         of the explicit dereference rather than the prefix of the attribute.
4538         (Attribute_Version, UET_Address): Set entity as internal to ensure
4539         proper dg output of implicit importation.
4540         (Expand_Access_To_Type): Removed.
4541         (Expand_N_Attribute_Reference): Merge the code from the three cases
4542         of access attributes, since the processing is largely identical for
4543         these cases. The substantive fix here is to process the case of a
4544         type name prefix (current instance case) before handling the case
4545         of interface prefixes.
4546
4547 2007-08-14  Thomas Quinot  <quinot@adacore.com>
4548             Ed Schonberg  <schonberg@adacore.com>
4549             Javier Miranda  <miranda@adacore.com>
4550             Robert Dewar  <dewar@adacore.com>
4551
4552         * exp_ch3.ads, exp_ch3.adb (Add_Final_Chain): New subprogram.
4553         (Freeze_Array_Type, Freeze_Record_Type): For the case of a component
4554         type that is an anonymous access to controlled object, establish
4555         an associated finalization chain to avoid corrupting the global
4556         finalization list when a dynamically allocated object designated
4557         by such a component is deallocated.
4558         (Make_Controlling_Function_Wrappers): Create wrappers for constructor
4559         functions that need it, even when not marked Requires_Overriding.
4560         (Initialize_Tag): Replace call to has_discriminants by call to
4561         Is_Variable_Size_Record in the circuitry that handles the
4562         initialization of secondary tags.
4563         (Is_Variable_Size_Record): New implementation.
4564         (Expand_N_Object_Declaration): Suppress call to init proc if there is a
4565         Suppress_Initialization pragma for a derived type.
4566         (Is_Variable_Size_Record): New subprogram.
4567         (Build_Offset_To_Top_Functions): New implementation that simplifies the
4568         initial version of this routine and also fixes problems causing
4569         incomplete initialization of the table of interfaces.
4570         (Build_Init_Procedure): Improve the generation of code to initialize the
4571         the tag components of secondary dispatch tables.
4572         (Init_Secondary_Tags): New implementation that simplifies the previous
4573         version of this routine.
4574         (Make_DT): Add parameter to indicate when type has been frozen by an
4575         object declaration, for diagnostic purposes.
4576         (Check_Premature_Freezing): New subsidiary procedure of Make_DT, to
4577         diagnose attemps to freeze a subprogram when some untagged type of its
4578         profile is a private type whose full view has not been analyzed yet.
4579         (Freeze_Array_Type): Generate init proc for packed array if either
4580         Initialize or Normalize_Scalars is set.
4581         (Make_Controlling_Function_Wrappers, Make_Null_Procedure_Specs): when
4582         constructing the new profile, copy the null_exclusion indicator for each
4583         parameter, to ensure full conformance of the new body with the spec.
4584
4585         * sem_type.ads, sem_type.adb (Make_Controlling_Function_Wrappers):
4586         Create wrappers for constructor functions that need it, even when not
4587         marked Requires_Overriding.
4588         (Covers): Handle properly designated types of anonymous access types,
4589         whose non-limited views are themselves incomplete types.
4590         (Add_Entry): Use an entity to store the abstract operation which hides
4591         an interpretation.
4592         (Binary_Op_May_Be_Hidden): Rename to Binary_Op_Interp_Has_Abstract_Op.
4593         (Collect_Interps): Use Empty as an actual for Abstract_Op in the
4594         initialization aggregate.
4595         (Function_Interp_May_Be_Hidden): Rename to
4596         Function_Interp_Has_Abstract_Op.
4597         (Has_Compatible_Type): Remove machinery that skips interpretations if
4598         they are labeled as potentially hidden by an abstract operator.
4599         (Has_Hidden_Interp): Rename to Has_Abstract_Op.
4600         (Set_May_Be_Hidden): Rename to Set_Abstract_Op.
4601         (Write_Overloads): Output the abstract operator if present.
4602         (Add_Entry): Before inserting a new entry into the interpretation table
4603         for a node, determine whether the entry will be disabled by an abstract
4604         operator.
4605         (Binary_Op_Interp_May_Be_Hidden): New routine.
4606         (Collect_Interps): Add value for flag May_Be_Hidden in initialization
4607         aggregate.
4608         (Function_Interp_May_Be_Hidden): New routine.
4609         (Has_Compatible_Type): Do not consider interpretations hidden by
4610         abstract operators when trying to determine whether two types are
4611         compatible.
4612         (Has_Hidden_Interp): New routine.
4613         (Set_May_Be_Hidden_Interp): New routine.
4614         (Write_Overloads): Write the status of flag May_Be_Hidden.
4615
4616 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
4617             Javier Miranda  <miranda@adacore.com>
4618
4619         * exp_disp.ads, exp_disp.adb (Build_Dispatch_Tables): Handle tagged
4620         types declared in the declarative part of a nested package body or in
4621         the proper body of a stub.
4622         (Set_All_DT_Position): Add missing check to avoid wrong assignation
4623         of the same dispatch table slot to renamed primitives.
4624         (Make_Select_Specific_Data_Table): Handle private types.
4625         (Tagged_Kind): Handle private types.
4626         (Make_Tags, Make_DT): Set tag entity as internal to ensure proper dg
4627         output of implicit importation and exportation.
4628         (Expand_Interface_Thunk): Fix bug in the expansion assuming that the
4629         first formal of the thunk is always associated with the controlling
4630         type. In addition perform the following code cleanup: remove formal
4631         Thunk_Alias which is no longer required, cleanup evaluation of the
4632         the controlling type, and update the documentation.
4633         Replace occurrence of Default_Prim_Op_Count by
4634         Max_Predef_Prims. Addition of compile-time check to verify
4635         that the value of Max_Predef_Prims is correct.
4636         (Check_Premature_Freezing): Apply check in Ada95 mode as well.
4637         (Make_DT): Add parameter to indicate when type has been frozen by an
4638         object declaration, for diagnostic purposes.
4639         (Build_Static_Dispatch_Tables): New subprogram that takes care of the
4640         construction of statically allocated dispatch tables.
4641         (Make_DT): In case of library-level tagged types export the declaration
4642         of the primary tag. Remove generation of tags (now done by Make_Tags).
4643         Additional modifications to handle non-static generation of dispatch
4644         tables. Take care of building tables for asynchronous interface types
4645         (Make_Tags): New subprogram that generates the entities associated with
4646         the primary and secondary tags of Typ and fills the contents of Access_
4647         Disp_Table. In case of library-level tagged types imports the forward
4648         declaration of the primary tag that will be declared later by Make_DT.
4649         (Expand_Interface_Conversion): In case of access types to interfaces
4650         replace an itype declaration by an explicit type declaration to avoid
4651         problems associated with the scope of such itype in transient blocks.
4652
4653 2007-08-14  Robert Dewar  <dewar@adacore.com>
4654             Ed Schonberg  <schonberg@adacore.com>
4655             Javier Miranda  <miranda@adacore.com>
4656
4657         * exp_util.ads, exp_util.adb: 
4658         This patch replaces a number of occurrences of explicit tests for N_Null
4659         with calls to Known_Null. This improves tracking of null values, since
4660         Known_Null also catches null constants, and variables currently known to
4661         be null, so we get better tracking.
4662         (Ensure_Defined): create an itype reference only in the scope of the
4663         itype.
4664         (Side_Effect_Free): A selected component of an access type that
4665         denotes a component with a rep clause must be treated as not
4666         side-effect free, because if it is part of a linked structure its
4667         value may be affected by a renaming.
4668         (Expand_Subtype_From_Expr): For limited objects initialized with build
4669         in place function calls, do nothing; otherwise we prematurely introduce
4670         an N_Reference node in the expression initializing the object, which
4671         breaks the circuitry that detects and adds the additional arguments to
4672         the called function. Bug found working in the new patch for statically
4673         allocated dispatch tables.
4674         (Is_Library_Level_Tagged_Type): New subprogram.
4675         (Remove_Side_Effects): If the expression of an elementary type is an
4676         operator treat as a function call.
4677         (Make_Literal_Range): If the index type of the array is not integer, use
4678         attributes properly to compute the constraint on the resulting aggregate
4679         which is a string.
4680
4681         * freeze.ads, freeze.adb (Freeze_Entity): If the entity is a
4682         class-wide type whose base type is an incomplete private type, leave
4683         class-wide type unfrozen so that freeze nodes can be generated
4684         properly at a later point.
4685         (Freeze_Entity, array case): Handle case of pragma Pack and component
4686         size attributre clause for same array.
4687
4688 2007-08-14  Vincent Celier  <celier@adacore.com>
4689
4690         * prj.ads, prj.adb: Update Project Manager to new attribute names for
4691         gprbuild.
4692         Allow all valid declarations in configuration project files
4693         (Reset): Initialize all tables and hash tables in the project tree data
4694         Major update of the Project Manager and of the project aware tools,
4695         including gprmake, so that the same sources in the GNAT repository
4696         can be used by gprbuild.
4697         (Slash_Id): Change type to be Path_Name_Type
4698         (Slash): Return a Path_Name_Type instead of a File_Name_Type
4699
4700         * prj-attr.ads, prj-attr.adb: Remove attributes no longer used by
4701         gprbuild.
4702         Update Project Manager to new attribute names for ghprbuild
4703         Allow all valid declarations in configuration project files
4704         Major update of the Project Manager and of the project aware tools,
4705         including gprmake, so that the same sources in the GNAT repository
4706         can be used by gprbuild.
4707
4708         * prj-com.ads: 
4709         Major update of the Project Manager and of the project aware tools,
4710         including gprmake, so that the same sources in the GNAT repository
4711         can be used by gprbuild.
4712
4713         * prj-dect.adb (Prj.Strt.Attribute_Reference): Set correctly the case
4714         insensitive flag for attributes with optional index.
4715         (Prj.Dect.Parse_Attribute_Declaration): For case insensitive associative
4716         array attribute, put the index in lower case.
4717         Update Project Manager to new attribute names for ghprbuild
4718         Allow all valid declarations in configuration project files
4719         Major update of the Project Manager and of the project aware tools,
4720         including gprmake, so that the same sources in the GNAT repository
4721         can be used by gprbuild.
4722
4723         * prj-env.ads, prj-env.adb: 
4724         Major update of the Project Manager and of the project aware tools,
4725         including gprmake, so that the same sources in the GNAT repository
4726         can be used by gprbuild.
4727         (Get_Reference): Change type of parameter Path to Path_Name_Type
4728
4729         * prj-ext.ads, prj-ext.adb (Initialize_Project_Path): Make sure, after
4730         removing '-' from the path to start with the first character of the
4731         next directory.
4732         Major update of the Project Manager and of the project aware tools,
4733         including gprmake, so that the same sources in the GNAT repository
4734         can be used by gprbuild.
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-nmsc.ads, prj-nmsc.adb: 
4740         Update Project Manager to new attribute names for ghprbuild
4741         Allow all valid declarations in configuration project files
4742         (Search_Directories): Detect subunits that are specified with an
4743         attribute Body in package Naming. Do not replace a source/unit in the
4744         same project when the order of the source dirs are known. Detect
4745         duplicate sources/units in the same project when the order of the
4746         source dirs are not known.
4747         (Check_Ada_Name): Allow all identifiers that are not reserved words
4748         in Ada 95.
4749         Major update of the Project Manager and of the project aware tools,
4750         including gprmake, so that the same sources in the GNAT repository
4751         can be used by gprbuild.
4752         (Look_For_Sources): If the list of sources is empty, set the object
4753         directory of non extending project to nil.
4754         Change type of path name variables to be Path_Name_Type
4755         (Locate_Directory): Make sure that on Windows '/' is converted to '\',
4756         otherwise creating missing directories will fail.
4757
4758         * prj-attr-pm.adb, prj-tree.ads, prj-proc.ads, prj-proc.adb, 
4759         prj-part.ads, prj-part.adb:
4760         Major update of the Project Manager and of the project aware tools,
4761         including gprmake, so that the same sources in the GNAT repository
4762         can be used by gprbuild.
4763
4764         * prj-strt.adb (Prj.Strt.Attribute_Reference): Set correctly the case
4765         insensitive flag for attributes with optional index.
4766         (Prj.Dect.Parse_Attribute_Declaration): For case insensitive associative
4767         array attribute, put the index in lower case.
4768         (Parse_Variable_Reference): Allow the current project name to be used in
4769         the prefix of an attribute reference.
4770
4771         * prj-util.ads, prj-util.adb
4772         (Value_Of (for arrays)): New Boolean parameter Force_Lower_Case_Index,
4773         defaulted to False. When True, always check against indexes in lower
4774         case.
4775
4776         * snames.ads, snames.h, snames.adb: 
4777         Update Project Manager to new attribute names for gprbuild
4778         Allow all valid declarations in configuration project files
4779
4780 2007-08-14  Robert Dewar  <dewar@adacore.com>
4781             Ed Schonberg  <schonberg@adacore.com>
4782
4783         * opt.ads: Warning for non-local exception propagation now off by
4784         default
4785         New switch -gnatI to disable representation clauses
4786         Implement new pragma Implicit_Packing
4787
4788         * usage.adb: 
4789         Warning for non-local exception propagation now off by default
4790         Add warning for unchecked conversion of pointers wi different
4791         conventions.
4792         New switch -gnatI to disable representation clauses
4793
4794         * usage.adb: new switch -gnatyS
4795
4796         * gnat_ugn.texi: For the gnatcheck Non_Qualified_Aggregates rule add a
4797         note that aggregates of anonymous array types are not flagged.
4798         -gnatwc now includes membership tests optimized away
4799         -gnatw.x warnings are now off by default
4800         Added conditional compilation Appendix
4801         Add documentation of -gnatI
4802         Add documentation for new -gnatyS style check
4803         Update documentation about SAL and auto-init on Windows.
4804
4805         * gnat_rm.texi: 
4806         Add documentation for pragma Check_Name and 'Enabled attribute
4807         Document that Eliminate on dispatching operation is ignored
4808         Document IDE attributes VCS_Repository_Root and VCS_Patch_Root.
4809         Document pragma Main
4810         Document pragma Implicit_Packing
4811
4812         * sem_ch13.adb: Add warning for unchecked conversion of pointers wi
4813         different conventions
4814         New switch -gnatI to disable representation clauses
4815
4816         * switch-c.adb (Scan_Front_End_Switches): When a -gnat switch is not
4817         recognized, report the invalid characters including "-gnat" instead of
4818         just the first character in the switch.
4819         New switch -gnatI to disable representation clauses
4820         Set Warn_On_Object_Renames_Function true for -gnatg
4821
4822         * vms_data.ads: Add doc for /IGNORE_REP_CLAUSES
4823         Add STATEMENTS_AFTER_THEN_ELSE as synonym for -gnatyS
4824         Add qualifier /ADD_PROJECT_SEARCH_DIR= for different tools, equivalent
4825         to switch -aP (add directory to project search dir).
4826
4827         * par-prag.adb: Implement new pragma Implicit_Packing
4828
4829         * sem_prag.adb (Analyze_Pragma, case Complex_Representation): Mark the
4830         type as having a non-standard representation, to force expansion on
4831         conversion to related types.
4832         (Analyze_Pragma): Warn on misspelled pragma
4833         (Analyze_Pragma, case Convention_Identifier): Fix checking of second arg
4834         Ensure consistent use of # in error messages
4835         Implement pragma Implicit_Packing
4836
4837 2007-08-14  Olivier Hainque  <hainque@adacore.com>
4838             Eric Botcazou  <ebotcazou@adacore.com>
4839
4840         * targtyps.c (get_target_maximum_default_alignment): New function.
4841         Maximum alignment
4842         that the compiler might choose by default for a type or object.
4843         (get_target_default_allocator_alignment): New function. Alignment known
4844         to be honored by the target default allocator.
4845         (get_target_maximum_allowed_alignment): New function. Maximum alignment
4846         we might accept for any type or object on the target.
4847         (get_target_maximum_alignment): Now synonym of maximum_default_alignment
4848
4849         * gigi.h (get_target_maximum_default_alignment): Declare new function.
4850         (get_target_default_allocator_alignment): Likewise.
4851         (get_target_maximum_allowed_alignment): Likewise.
4852
4853         PR ada/19037
4854         * decl.c (gnat_to_gnu_entity) <object>: Except for the renaming of the
4855         result of a function call, first try to use a stabilized reference for
4856         a constant renaming too.
4857         (validate_alignment): Use target_maximum_allowed_alignment instead of
4858         MAX_OFILE_ALIGNMENT as the upper bound to what we accept.
4859         (gnat_to_gnu_entity): Use common nodes directly.
4860         (gnat_to_gnu_entity) <object>: Pick the values of the type to annotate
4861         alignment and size for the object.
4862         (lvalue_required_p): Handle N_Parameter_Association like N_Function_Call
4863         and N_Procedure_Call_Statement.
4864         (takes_address): Rename to lvalue_required_p, add third parameter
4865         'aliased' and adjust recursive calls.
4866         <N_Indexed_Component>: Update 'aliased' from the array type.
4867         <N_Selected_Component>: New case.
4868         <N_Object_Renaming_Declaration>: New Likewise.
4869         (Identifier_to_gnu): Adjust for above changes.
4870         (maybe_stabilize_reference) <CONST_DECL>: New case.
4871
4872         * utils2.c (build_binary_op) <ARRAY_RANGE_REF>: Look through conversion
4873         between type variants.
4874         (build_simple_component_ref): Likewise.
4875         (build_call_alloc_dealloc): Use target_default_allocator_alignment
4876         instead of BIGGEST_ALIGNMENT as the threshold to trigger the super
4877         aligning type circuitry for allocations from the default storage pool.
4878         (build_allocator): Likewise.
4879         (build_simple_component_ref): Manually fold the reference for a
4880         constructor if the record type contains a template.
4881
4882         * utils.c (value_zerop): Delete.
4883         (gnat_init_decl_processing): Emit debug info for common types.
4884         (rest_of_record_type_compilation): If a union contains a field
4885         with a non-constant qualifier, treat it as variable-sized.
4886         (finish_record_type): Give the stub TYPE_DECL a name.
4887         (rest_of_record_type_compilation): Likewise.
4888         (convert) <CONSTRUCTOR>: New case.  Build a new constructor if
4889         types are equivalent array types.
4890         (create_field_decl): Claim fields of any ARRAY_TYPE are addressable,
4891         even if the type is not passed by reference.
4892         (static_ctors, static_dtors): Delete.
4893         (end_subprog_body): Do not record constructors and destructors.
4894         (build_global_cdtor): Delete.
4895         (gnat_write_global_declarations): Do not call build_global_cdtor.
4896
4897         * lang-spARGET_VXWORKS_RTP is defined, append -mrtp when
4898         -fRTS=rtp is specified.
4899         If CONFIG_DUAL_EXCEPTIONS is 1, append -fsjlj when -fRTS=sjlj is
4900         specified.
4901
4902         * misc.c (gnat_init_gcc_eh): Use __gnat_eh_personality_sj for the name
4903         of the personality function with SJLJ exceptions.
4904
4905         * raise-gcc.c (PERSONALITY_FUNCTION): Use __gnat_eh_personality_sj for
4906         the name of the personality function with SJLJ exceptions.
4907
4908 2007-08-14  Robert Dewar  <dewar@adacore.com>
4909             Ed Schonberg  <schonberg@adacore.com>
4910
4911         * par.ads, par.adb: Improve handling of extra right parens.
4912         (Par): Remove flag From_Limited_With_Clause.
4913
4914         * par-util.adb, par-ch3.adb: Improve error recovery for bad constraint
4915         Improve handling of extra right parens.
4916
4917 2007-08-14  Robert Dewar  <dewar@adacore.com>
4918
4919         * par-tchk.adb (TF_Semicolon): Improve error recovery
4920
4921 2007-08-14  Robert Dewar  <dewar@adacore.com>
4922             Ed Schonberg  <schonberg@adacore.com>
4923
4924         * sem_attr.ads, sem_attr.adb (Analyze_Attribute, case Value): For
4925         enumeration type, mark all literals as referenced.
4926         (Eval_Attribute, case 'Image): If the argument is an enumeration
4927         literal and names are available, constant-fold but mark nevertheless as
4928         non-static.
4929         Clean up function names.
4930         (Name_Modifies_Prefix): Rename to Name_Implies_Lvalue_Prefix. Clarify
4931         comment.
4932         (Requires_Simple_Name_Prefix): Removed.
4933
4934 2007-08-14  Robert Dewar  <dewar@adacore.com>
4935             Ed Schonberg  <schonberg@adacore.com>
4936
4937         * sem_ch11.adb: Improved warnings for unused variables
4938
4939         * sem_ch3.ads, sem_ch3.adb (Build_Derived_Record_Type): If the ancestor
4940         is a synchronized interface, the derived type is limited.
4941         (Analyze_Object_Declaration): Mark the potential coextensions in the
4942         definition and expression of an object declaration node.
4943         (Build_Derived_Type): For the completion of a private type declaration
4944         with a derived type declaration, chain the parent type's representation
4945         items to the last representation item of the derived type (not the
4946         first one) if they are not present already.
4947         (Analyze_Object_Declaration, Constant_Redeclaration): Allow incomplete
4948         object declaration of forward references to tags.
4949         (Access_Subprogram_Declaration): In Ada2005, anonymous access to
4950         subprogram types can appear as access discriminants of synchronized
4951         types.
4952         (OK_For_Limited_Init_In_05): The initialization is legal is it is a call
4953         given in prefixed form as a selected component.
4954         (Process_Discriminants): If not all discriminants have defaults, place
4955         error message on a default that is present.
4956         (Analyze_Private_Extension_Declaration): Diagnose properly an attempt to
4957         extend a synchronized tagged type.
4958         Improved warnings for unused variables
4959         (Is_Visible_Component): Fix a visibility hole on a component inherited
4960         by a private extension when parent is itself declared as a private
4961         extension, and the derivation is in a child unit.
4962         (Find_Hidden_Interface): Move spec from the package body.
4963
4964 2007-08-14  Robert Dewar  <dewar@adacore.com>
4965             Ed Schonberg  <schonberg@adacore.com>
4966
4967         * sem_ch5.adb: Improve warnings on redundant assignments
4968
4969         * sem_util.ads, sem_util.adb: (Is_Variable): Add defense against junk
4970         parameter
4971         (Is_Synchronized_Tagged_Type): New subprogram that returns true
4972         in case of synchronized tagged types (AARM 3.9.4 (6/2)).
4973         (Safe_To_Capture_Value): Can now return True for constants, even if Cond
4974         is set to False. Improves handling of Known_[Not_]Null.
4975         (Wrong_Type): Special case address arithmetic attempt
4976         (Collect_Abstract_Interfaces): Add new formal to allow collecting
4977         abstract interfaces just using the partial view of private types.
4978         (Has_Abstract_Interfaces): Add new formal to allow checking types
4979         covering interfaces using the partial view of private types.
4980         (Is_Fully_Initialized_Type): Special VM case for uTag component. This
4981         component still needs to be defined in this case, but is never
4982         initialized as VMs are using other dispatching mechanisms.
4983         (Abstract_Interface_List): For a protected type, use base type to get
4984         proper declaration.
4985         Improve warnings on redundant assignments
4986         (Is_Variable): Handle properly an implicit dereference of a prefixed
4987         function call.
4988         (Build_Actual_Subtype): If this is an actual subtype for an
4989         unconstrained formal parameter, use the sloc of the body for the new
4990         declaration, to prevent anomalises in the debugger.
4991
4992 2007-08-14  Robert Dewar  <dewar@adacore.com>
4993
4994         * sem_elim.adb (Set_Eliminated): Ignore pragma Eliminate for
4995         dispatching operation
4996
4997 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
4998             Gary Dismukes  <dismukes@adacore.com>
4999
5000         * exp_aggr.ads, 
5001         exp_aggr.adb (Convert_Aggr_In_Allocator): Use Insert_Actions to place
5002         expanded aggregate code before allocator, and ahead of declaration for
5003         temporary, to prevent access before elaboration when the allocator is
5004         an actual for an access parameter.
5005         (Is_Static_Dispatch_Table_Aggregate): Handle aggregates initializing
5006         the TSD and the table of interfaces.
5007         (Convert_To_Assignments): Augment the test for delaying aggregate
5008         expansion for limited return statements to include the case of extended
5009         returns, to prevent creation of an unwanted transient scope.
5010         (Is_Static_Dispatch_Table_Aggregate): New subprogram.
5011         (Expand_Array_Aggregate): Handle aggregates associated with
5012         statically allocated dispatch tables.
5013         (Expand_Record_Aggregate): Handle aggregates associated with
5014         statically allocated dispatch tables.
5015         (Gen_Ctrl_Actions_For_Aggr): Generate a finalization list for allocators
5016         of anonymous access type.
5017
5018 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
5019
5020         * exp_ch5.adb (Expand_Assign_Array): If source or target of assignment
5021         is a variable that renames a slice, use the variable itself in the
5022         expannsion when the renamed expression itself may be modified between
5023         the declaration of the renaming and the array assignment.
5024
5025 2007-08-14  Jerome Guitton  <guitton@adacore.com>
5026
5027         * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb, 
5028         s-taprop-hpux-dce.adb, s-taprop-dummy.adb, s-taprop-solaris.adb, 
5029         s-taprop-vms.adb, s-taprop-posix.adb (Continue_Task, Stop_All_Tasks):
5030         New functions; dummy implementations.
5031
5032         * s-osinte-vxworks.ads (Task_Stop, Task_Cont, Int_Lock, Int_Unlock): New
5033         functions, used to implement the multi-tasks mode routines on VxWorks.
5034
5035         * s-osinte-vxworks.adb, s-osinte-vxworks6.adb (Task_Cont, Task_Stop):
5036         New functions, thin
5037         binding to the VxWorks routines which have changed between VxWorks 5
5038         and 6.
5039         (Int_Lock, Int_Unlock): New function, thin binding to kernel routines
5040         which are not callable from a RTP.
5041
5042         * s-taprop-vxworks.adb (Stop_All_Tasks, Continue_Task): New functions,
5043         implemented for the multi-tasks mode on VxWorks 5 and 6.
5044
5045         * s-taprop.ads (Stop_All_Tasks, Continue_Task): New functions.
5046
5047         * s-tasdeb.ads, s-tasdeb.adb (Continue_All_Tasks, Stop_All_Tasks): New
5048         functions.
5049
5050 2007-08-14  Vincent Celier  <celier@adacore.com>
5051
5052         * clean.adb, fmap.adb, sinput-p.adb, sinput-p.ads, gnatcmd.adb, 
5053         gnatname.adb, makeutl.ads, makeutl.adb, makegpr.adb, mlib-tgt-vms.adb
5054         mlib-tgt-darwin.adb, mlib-tgt-lynxos.adb, mlib-prj.adb, mlib-tgt.adb, 
5055         mlib-tgt.ads, mlib-tgt-irix.adb mlib-tgt-hpux.adb, mlib-tgt-linux.adb, 
5056         mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, 
5057         mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb, mlib-tgt-aix.adb,
5058         mlib-tgt-tru64.adb, mlib.ads, mlib.adb (Create_Sym_Links): New
5059         procedure.
5060         (Major_Id_Name): New function.
5061         mlib-tgt.ads/mlib.tgt.adb:
5062         (Library_Major_Minor_Id_Supported): New function, default returns True
5063         Most mlib-tgt-*.adb that support shared libraries and symbolic links:
5064         (Build_Dynamic_Library): Add support for major/minor ids for shared libs
5065         Other mlib-tgt-*.adb (aix, mingw, vms, vxworks, xi):
5066         Implementation of Library_Major_Minor_Id_Supported returns False
5067         clean.adb:
5068         (Clean_Library_Directory): If major/minor ids are supported, clean all
5069         library files.
5070         Major update of the Project Manager and of the project aware tools,
5071         including gprmake, so that the same sources in the GNAT repository
5072         can be used by gprbuild.
5073
5074 2007-08-14  Olivier Hainque  <hainque@adacore.com>
5075
5076         * system-solaris-x86.ads (ZCX_By_Default): Switch to True.
5077         (GCC_ZCX_Support): Switch to True.
5078         
5079         * s-intman-solaris.adb (Notify_Exception): Call
5080         Adjust_Context_For_Raise before raising, as expected for signal
5081         handlers in general.
5082         
5083         * s-intman-posix.adb (Notify_Exception): Remove declaration of
5084         Adjust_Context_For_Raise, moved to the spec of this unit to be visible
5085         to other implementation bodies.
5086         
5087         * s-intman.ads (Adjust_Context_For_Raise): Declare and import here, to
5088         be visible by multiple implementation bodies.
5089         
5090         * init.c [VMS section] (__gnat_handle_vms_condition): Adjust context
5091         only for conditions coming from hardware.
5092         [alpha-tru64 section] (__gnat_adjust_context_for_raise): Implement,
5093         adjustments to signal context prior to exception raise from signal
5094         handler.
5095         (__gnat_map_signal for VxWorks): Map SIGSEGV to Storage_Error in RTP
5096         mode.
5097         Solaris section: (__gnat_adjust_context_for_raise): New function.
5098         Implementation of the machine context adjustments to perform prior to
5099         raise from a signal handler. Version for both sparc and x86.
5100         (HAVE_GNAT_ADJUST_CONTEXT_FOR_RAISE): Define.
5101         (__gnat_error_handler): Expect a third argument, ucontext_t *. Adjust it
5102         prior to raising as expected for any handler, before possible nested
5103         faults to make sure all the contexts in a chain have been adjusted by
5104         the time we propagate.
5105
5106 2007-08-14  Pascal Obry  <obry@adacore.com>
5107
5108         * s-osinte-mingw.ads: Add support for Ada.Execution_Time on Windows.
5109         (SYSTEM_INFO): New record.
5110         (SetThreadIdealProcessor): New imported routine needed for supporting
5111         task_info pragma on Windows.
5112
5113         * s-taprop-mingw.adb (Enter_Task): Check if CPU number given in task
5114         info can be applied to the current host.
5115         (Create_Task): Set the ideal processor if information is present.
5116
5117         * s-tasinf-mingw.adb, s-tasinf-mingw.ads,
5118         a-exetim-mingw.adb, a-exetim-mingw.ads: New files.
5119
5120 2007-08-14  Olivier Hainque  <hainque@adacore.com>
5121
5122         * s-taprop-linux.adb (Get_Stack_Attributes): New subprogram. Fetch the
5123         stack size and initial stack pointer value for a given task.
5124         (Enter_Task): Get the stack attributes of the task we are entering and
5125         let the stack checking engine know about them.
5126
5127         * s-stchop.adb, s-stchop.ads (Notify_Stack_Attributes): New subprogram.
5128         Let the stack-checking engine know about the initial sp value and stack
5129         size associated with the current task.
5130         (Set_Stack_Info): If a stack base has been notified for the current
5131         task, honor it. Fallback to the previous less accurate method otherwise.
5132
5133         * s-stchop-vxworks.adb (Notify_Stack_Attributes): Dummy body.
5134
5135 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
5136
5137         * sem_ch10.adb: Create a limited view of an incomplete type, to make
5138         treatment of limited views uniform for all visible declarations in a
5139         limited_withed package.
5140         Set flag indicating that a subprogram body for a child unit has a
5141         generated spec.
5142         (Analyze_Compilation_Unit): If unit is a subprogram body that has no
5143         separate declaration, remove the unit name from visibility after
5144         compilation, so that environment is clean for subsequent compilations.
5145         (Install_Limited_Context_Clauses): Do not install a
5146         limited_private_with_clause unless the current unit is a body or a
5147         private child unit.
5148         (Analyze_Subunit, Install_Parents): Treat generic and non-generic units
5149         in the same fashion.
5150         (Install_Limited_Withed_Unit): Do not install a limited with clause if
5151         it applies to the declaration of the current package body.
5152         (Remove_Private_With_Clauses): If there is a regular with_clause for
5153         the unit, delete Private_With_Clause from context, to prevent improper
5154         hiding when processing subsequent nested packages and instantiations.
5155
5156 2007-08-14  Jose Ruiz  <ruiz@adacore.com>
5157
5158         * adaint.c (__gnat_is_absolute_path): For VxWorks systems we accept
5159         dir/file, device:/dir/file, and device:drive_letter:/dir/file as
5160         representing absolute path names.
5161         __gnat_set_file_time_name [VMS]: Fix some 64/32 bit issues.
5162
5163         * cstreams.c (__gnat_full_name for VxWorks): Use
5164         __gnat_is_absolute_path to detect whether we need to add the current
5165         directory to normalize the path.
5166
5167 2007-08-14  Javier Miranda  <miranda@adacore.com>
5168
5169         * a-tags.ads, 
5170         a-tags.adb (Displace): Associate a message with the raised CE
5171         exception.
5172         (To_Addr_Ptr, To_Address, To_Dispatch_Table_Ptr,
5173         To_Object_Specific_Data_Ptr To_Predef_Prims_Ptr,
5174         To_Tag_Ptr, To_Type_Specific_Data_Ptr): Moved here from the package
5175         spec.
5176         (Default_Prim_Op_Count): Removed.
5177         (IW_Membership, Get_Entry_Index, Get_Offset_Index, Get_Prim_Op_Kind,
5178         Register_Tag, Set_Entry_Index, Set_Offset_To_Top, Set_Prim_Op_Kind):
5179         Remove pragma Inline_Always.
5180
5181         * rtsfind.ads (Default_Prim_Op_Count): Removed
5182         (Max_Predef_Prims): New entity
5183         (RE_Expanded_Name): Removed
5184         (RE_HT_Link): Removed
5185         (RE_Iface_Tag): Remmoved
5186         (RE_Ifaces_Table): Removed
5187         (RE_Interfaces_Array): Removed
5188         (RE_Interface_Data_Element): Removed
5189         (RE_Nb_Ifaces): Removed
5190         (RE_RC_Offset): Removed
5191         (RE_Static_Offset_To_Top): Removed
5192
5193         * exp_atag.ads, exp_atag.adb (Build_Inherit_Prims): Addition of a new
5194         formal.
5195         (Build_Inherit_Predefined_Prims): Replace occurrences of Default_
5196         Prim_Op_Count by Max_Predef_Prims.
5197
5198 2007-08-14  Thomas Quinot  <quinot@adacore.com>
5199             Vincent Celier  <celier@adacore.com>
5200
5201         * binde.adb (Elab_All_Links): Remove unnecessary call to
5202         Generic_Separately_Compiled (if a unit satisfies this predicate, there
5203         won't be an associated Afile).
5204         (Elab_All_Links): Fail if a referenced unit cannot be found
5205
5206         * bindgen.adb: 
5207         Fix comments in bindgen regarding consistency checks done in Bcheck:
5208         the checks are made across units within a partition, not across several
5209         partitions.
5210         Fix generation of C binder file for VxWorks.
5211
5212         * lib.ads, lib.adb (Generic_Separately_Compiled): Rename to
5213         Generic_May_Lack_ALI, more descriptive of the current use of the
5214         predicate, and update documentation.
5215
5216         * lib-writ.ads, lib-writ.adb (Write_With_Lines): Minor code
5217         reorganization and documentation update for the case of predefined
5218         library generics (for which we do not reference an Afile).
5219
5220 2007-08-14  Robert Dewar  <dewar@adacore.com>
5221
5222         * s-intman-irix.adb, s-osinte-irix.adb, s-osinte-irix.ads,
5223         s-proinf-irix-athread.ads, s-osinte-hpux-dce.adb, s-osinte-hpux-dce.ads,
5224         s-parame-hpux.ads, s-intman-dummy.adb, s-tasinf-solaris.adb,
5225         s-tasinf-solaris.ads, s-asthan-vms-alpha.adb, s-inmaop-vms.adb,
5226         s-intman-vms.adb, s-intman-vms.ads, s-osprim-mingw.adb,
5227         s-parame-vms-restrict.ads, s-parame-ae653.ads, s-intman-vxworks.ads,
5228         s-intman-vxworks.ads, s-intman-vxworks.adb, s-parame-vxworks.ads,
5229         s-tfsetr-vxworks.adb, s-interr.adb, s-interr.ads, a-tasatt.adb,
5230         exp_ch13.adb, s-htable.ads, s-imgboo.ads, s-imglli.ads, s-imgllu.ads,
5231         s-imguns.ads, g-eacodu.adb, par-ch12.adb, s-stache.ads, s-stausa.adb,
5232         s-poosiz.adb, s-parame.ads, s-mastop.ads, s-osinte-darwin.ads,
5233         a-chtgke.adb, s-asthan-vms-alpha.adb, s-parame-vms-alpha.ads,
5234         s-parame-vms-ia64.ads, s-parame-vxworks.adb, s-except.ads,
5235         g-altcon.adb: Minor reformatting
5236
5237         ada-tree.h: Delete empty line.
5238
5239         ali.ads: Minor reformatting
5240         Clarification of comments.
5241         Minor spelling correction
5242
5243         * exp_dbug.adb: Add Warnings Off to suppress new warning
5244
5245         * a-witeio.adb (Write): Add Warnings (Off) for unneeded IN OUT mode
5246         formal
5247
5248         * a-strunb.adb (Set_Unbounded_String): Avoid memory leak by freeing old
5249         value
5250
5251         * a-textio.adb (Write): Remove an unnecessary IN OUT mode from
5252
5253         * a-textio.ads: Reorder the standard input/output/error declarations
5254         for consistency.
5255
5256         * g-dirope.adb, g-dirope.ads: Change Dir to mode IN for Open call
5257
5258         * par-ch2.adb: Recognize RM specially in errout
5259         Change 'R'M to RM in all error messages
5260
5261         * scng.adb: Recognize RM specially in errout
5262
5263         * sem.ads, sem.adb, exp_strm.adb, exp_ch5.ads, expander.adb: Rename
5264         N_Return node to be N_Simple_Return, to reflect Ada 2005 terminology.
5265
5266         * s-direio.adb: Add missing routine header box.
5267
5268         * sem_attr.ads: Add ??? comments
5269
5270         * sem_eval.adb: Recognize RM specially in errout
5271         Change 'R'M to RM in all error messages
5272
5273         * sem_maps.adb, sem_maps.ads: Remove some unnecessary IN OUT modes
5274
5275         * s-tasinf.ads: Fix minor comment typo.
5276
5277         * a-cihama.adb: Minor comment addition
5278
5279         * a-ztexio.adb (Write): Add Warnings (Off) for unneeded IN OUT mode
5280         formal
5281
5282         * s-tasinf-tru64.ads: Fix minor comment typo.
5283
5284         * itypes.ads: Comment update.
5285
5286         * ali-util.adb: Remove Generic_Separately_Compiled guard, not needed
5287         anymore.
5288
5289         * argv.c: Added protection against null gnat_argv and gnat_envp.
5290
5291         * bcheck.adb (Check_Consistency): Use correct markup character ({) in
5292         warning message when Tolerate_Consistency_Errors is True.
5293
5294         * cstand.adb (Create_Standard): Do not call Init_Size_Alignment for
5295         Any_Id, as this subprogram is only applicable to *type* entities (it
5296         sets RM_Size). Instead initialize just Esize and Alignment.
5297
5298 2007-08-14  Bob Duff  <duff@adacore.com>
5299
5300         * a-cihama.ads, a-cidlli.ads, a-chtgop.ads, a-chtgop.adb, a-cdlili.ads, 
5301         a-cihase.adb, a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads, 
5302         a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-ciorse.ads, a-cohama.ads, 
5303         a-cohata.ads, a-convec.adb, a-coinve.ads, a-coinve.adb, a-convec.ads,
5304         a-coorse.ads (Next): Applied pragma Inline.
5305         Make all Containers packages Remote_Types (unless they are already
5306         Pure).
5307         (Previous): applied pragma Inline
5308         (Elements_Type): is now a record instead of an array
5309
5310 2007-08-14  Thomas Quinot  <quinot@adacore.com>
5311
5312         * table.adb, g-table.adb, g-dyntab.adb (Append): Reimplement in terms
5313         of Set_Item.
5314         (Set_Item): When the new item is an element of the currently allocated
5315         table passed by reference, save a copy on the stack if we're going
5316         to reallocate. Also, in Table.Set_Item, make sure we test the proper
5317         variable to determine whether to call Set_Last.
5318
5319         * sinput-d.adb, sinput-l.adb, stringt.adb, switch-m.adb,
5320         symbols-vms.adb, symbols-processing-vms-alpha.adb,
5321         symbols-processing-vms-ia64.adb, sem_elab.adb, repinfo.adb: Replace
5322         some occurrences of the pattern
5323            T.Increment_Last;
5324            T.Table (T.Last) := Value;
5325         with a cleaner call to
5326            T.Append (Value);
5327
5328 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
5329             Gary Dismukes  <dismukes@adacore.com>
5330             Thomas Quinot  <quinot@adacore.com>
5331
5332         * sem_ch12.ads, sem_ch12.adb (Instantiate_Type): If the formal is a
5333         derived type with interface progenitors use the analyzed formal as the
5334         parent of the actual, to create renamings for all the inherited
5335         operations in Derive_Subprograms.
5336         (Collect_Previous_Instances): new procedure within of
5337         Load_Parent_Of_Generic, to instantiate all bodies in the compilation
5338         unit being loaded, to ensure that the generation of global symbols is
5339         consistent in different compilation modes.
5340         (Is_Tagged_Ancestor): New function testing the ancestor relation that
5341         takes progenitor types into account.
5342         (Validate_Derived_Type_Instance): Enforce the rule of 3.9.3(9) by
5343         traversing over the primitives of the formal and actual types to locate
5344         any abstract subprograms of the actual type that correspond to a
5345         nonabstract subprogram of the formal type's ancestor type(s), and issue
5346         an error if such is found.
5347         (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation,
5348         Instantiate_Package_Body, Instantiate_Subprogram_Body):
5349         Remove bogus guard around calls to Inherit_Context.
5350         (Reset_Entity): If the entity is the selector of a selected component
5351         that denotes a named number, propagate constant-folding to the generic
5352         template only if the named number is global to the generic unit.
5353         (Set_Instance_Env): Only reset the compilation switches when compiling
5354         a predefined or internal unit.
5355
5356 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
5357
5358         * sem_ch4.adb (Try_Class_Wide_Operation): use base type of first
5359         parameter to determine whether operation applies to the prefix.
5360         (Complete_Object_Operation): If actual has an access type and
5361         controlling formal is not an in_parameter, reject the actual if it is
5362         an access_to_constant type.
5363         (Try_Primitive_Operation): If the type of the prefix is a formal tagged
5364         type, the candidate operations are found in the scope of declaration of
5365         the type, because the type has no primitive subprograms.
5366         (Analyze_Selected_Component): If prefix is class-wide, and root type is
5367         a private extension, only examine visible components before trying to
5368         analyze as a prefixed call.
5369         Change Entity_List to Type_To_Use, for better readability.
5370         (Has_Fixed_Op): Use base type when checking whether the type of an
5371         operator has a user-defined multiplication/division
5372         (Check_Arithmetic_Pair): Use Ada 2005 rules to remove ambiguities when
5373         user-defined operators are available for fixed-point types.
5374
5375 2007-08-14  Thomas Quinot  <quinot@adacore.com>
5376             Ed Schonberg  <schonberg@adacore.com>
5377
5378         * sem_cat.ads, sem_cat.adb (Has_Stream_Attribute_Definition): New
5379         formal At_Any_Place indicating, when True, that we want to test for
5380         availability of the stream attribute at any place (as opposed to the
5381         current visibility context only).
5382         (Missing_Read_Write_Attributes): A stream attribute is missing for the
5383         purpose of enforcing E.2.2(8) only if it is not available at any place.
5384         Take into account the Ada2005 pragma Has_Preelaborable_Initialization
5385         when checking the legality of an extension aggregate in a preelaborable
5386         package. Treat the literal null as a valid default expression in a
5387         component declaration for a type with preelaborable initialization.
5388         A limited interface is a legal progenitor for the designated type of a
5389         remote access to class-wide type.
5390
5391 2007-08-14  Thomas Quinot  <quinot@adacore.com>
5392             Ed Schonberg  <schonberg@adacore.com>
5393
5394         * sem_ch8.ads, sem_ch8.adb (Find_Type, case of a 'Base attribute
5395         reference): Use correct entity as denoted entity for the selector of
5396         the rewritten node.
5397         (Find_Direct_Name): Add comment about Generate_Reference incorrectly
5398         setting the Referenced_As_LHS flag for entities that are implicitly
5399         dereferenced.
5400         (Find_Type): If the type is an internally generated incomplete type,
5401         mark the full view as referenced, to prevent spurious warnings.
5402         (Find_Selected_Component, Has_Components): Handle properly non-limited
5403         views that are themselves incomplete types.
5404         Handle interfaces visible through limited-with clauses.
5405         (Analyze_Subprogram_Renaming): Disambiguate and set the entity of a
5406         subprogram generic actual for which we have generated a renaming.
5407         Warn when the renaming introduces a homonym of
5408         the renamed entity, and the renamed entity is directly visible.
5409
5410 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
5411             Hristian Kirtchev  <kirtchev@adacore.com>
5412
5413         * sem_res.adb (Resolve_Allocator): Propagate any coextensions that
5414         appear in the subtree to the current allocator if it is not a static
5415         coextension.
5416         (Resolve_Allocator): Perform cleanup if resolution has determined that
5417         the allocator is not a coextension.
5418         (Resolve): Skip an interpretation hidden by an abstract operator only
5419         when the type of the interpretation matches that of the context.
5420         (Resolve): When looping through all possible interpretations of a node,
5421         do not consider those that are hidden by abstract operators.
5422         (Resolve_Actuals): When verifying that an access to class-wide object
5423         is an actual  for a controlling formal, ignore anonymous access to
5424         subprograms whose return type is an access to class_wide type.
5425         (Resolve_Slice): If the prefix of the slice is a selected component
5426         whose type depends on discriminants, build its actual subtype before
5427         applying range checks on the bounds of the slice.
5428         (Valid_Conversion): In an instance or inlined body, compare root types,
5429         to prevent anomalies between private and public views.
5430         (Resolve): Improve error message for ambiguous fixed multiplication
5431         expressions that involve universal_fixed multiplying operations.
5432
5433 2007-08-14  Javier Miranda  <miranda@adacore.com>
5434             Hristian Kirtchev  <kirtchev@adacore.com>
5435
5436         * exp_ch9.adb (Build_Protected_Entry): Propagate the original source
5437         location to allow the correct generation of errors in case of
5438         restrictions applied to the expanded code.
5439         (Expand_Entry_Barrier): Remove all generated renamings for a barrier
5440         function if the condition does not reference them.
5441         (Expand_Entry_Body_Declarations): Mark the index constant as having a
5442         valid value.
5443
5444 2007-08-14  Thomas Quinot  <quinot@adacore.com>
5445             Pablo Oliveira  <oliveira@adacore.com>
5446
5447         * exp_dist.adb (PolyORB_Support.Build_TypeCode_Function): When creating
5448         typecode parameters for a union (in a variant record), remove
5449         extraneous layer of Any wrapping for member label.
5450         (Expand_Receiving_Stubs_Bodies): For an RCI package body that has
5451         elabration statements, register the package with the name server
5452         at the beginning, not at the end, of the elaboration statements so
5453         that they can create remote access to subprogram values that designate
5454         remote subprograms from the package.
5455
5456 2007-08-14  Hristian Kirtchev  <kirtchev@adacore.com>
5457
5458         * g-catiio.adb (Image): For the case of %s, use Ada.Calendar.Time
5459         values to compute the number of seconds since the Unix Epoc in order to
5460         account for Daylight Savings Time. Perform special processing for dates
5461         that are earlier than the Unix Epoc to obtain a negative number.
5462
5463 2007-08-14  Emmanuel Briot  <briot@adacore.com>
5464
5465         * g-comlin.adb (Getopt): Fix handling of "*" switch when not collapsing
5466         switches.
5467
5468 2007-08-14  Eric Botcazou  <ebotcazou@adacore.com>
5469
5470         * gnatlink.adb (Gnatlink): Pass switches to the linker even if the
5471         binder-generated file is not in Ada.
5472         Pass -mrtp to the linker if it is GCC and --RTS=rtp has been
5473         recorded in the ALI file.
5474         Pass -fsjlj to the linker if it is GCC and --RTS=sjlj has been recorded.
5475
5476 2007-08-14  Vincent Celier  <celier@adacore.com>
5477
5478         * gnatls.adb: (Corresponding_Sdep_Entry): Always return a value
5479         (Output_Source): Do nothing if parameter is No_Sdep_Id
5480
5481         * make.adb (Gnatmake): Do not rebuild an archive simply because a
5482         shared library it imports has a later time stamp.
5483         (Check): Resolve the symbolic links in the path name of the object
5484         directory.
5485         Check that the ALI file is in the correct object directory
5486         Check if a file name does not correspond to the mapping of units
5487         to file names.
5488         (Display_Version): New procedure
5489         (Initialize): Process switches --version and --help
5490         Use type Path_Name_Type for path name
5491
5492 2007-08-14  Paul Hilfinger  <hilfinger@adacore.com>
5493
5494         * impunit.adb: Re-organize System.Random_Numbers and
5495         GNAT.Random_Numbers and add to builds.
5496
5497         * Makefile.rtl: Add s-rannum.ad* and g-rannum.ad*, a-assert*
5498
5499         * s-rannum.ads, s-rannum.adb, g-rannum.ads, g-rannum.adb: New files.
5500
5501         * a-assert.ads, a-assert.adb: New files.
5502
5503 2007-08-14  Gary Dismukes  <dismukes@adacore.com>
5504
5505         * layout.adb (Layout_Type): In the case of access-to-subprogram types,
5506         if AAMP_On_Target is True, then the size of the type encompasses two
5507         addresses (a static link and a subprogram address), except in the case
5508         of library-level access types.
5509
5510 2007-08-14  Vincent Celier  <celier@adacore.com>
5511
5512         * output.ads, output.adb (Write_Eol): Remove trailing spaces before
5513         writing the line.
5514         (Write_Eol_Keep_Blanks): New procedure to write a line, including
5515         possible trailing spaces.
5516         (Output_Source_Line): Call Write_Eol_Keep_Blanks to output a source line
5517
5518 2007-08-14  Javier Miranda  <miranda@adacore.com>
5519
5520         * par-ch6.adb (P_Formal_Part): Fix wrong error message associated with
5521         null-excluding access types.
5522
5523 2007-08-14  Javier Miranda  <miranda@adacore.com>
5524
5525         * sem_ch9.adb (Check_Interfaces): New subprogram that factorizes code
5526         that is common to Analyze_Protected_Type and Analyze_Task_Type. In case
5527         of private types add missing check on matching interfaces in the
5528         partial and full declarations.
5529         (Analyze_Protected_Type): Code cleanup.
5530         (Analyze_Task_Type): Code cleanup.
5531
5532 2007-08-14  Javier Miranda  <miranda@adacore.com>
5533
5534         * sem_disp.adb (Check_Dispatching_Operation): Do not emit warning on a
5535         generated interface thunk.
5536
5537 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
5538
5539         * s-ficobl.ads: Declare AFCB as a tagged incomplete type, to prevent
5540         obsolescent warning on application of 'Class to an incomplete type.
5541
5542         * s-finroo.ads: Declare Root_Controlled as a tagged incomplete type, to
5543         prevent obsolescent warning on application of 'Class to an incomplete
5544         type.
5545
5546 2007-08-14  Pascal Obry  <obry@adacore.com>
5547
5548         * s-fileio.adb (Is_Open): Add check for usability of the underlying
5549         file stream.
5550
5551 2007-08-14  Cyrille Comar  <comar@adacore.com>
5552
5553         * s-finimp.adb (Detach_From_Final_List): make this procedure idempotent
5554         since it is potentially used in cases implying double finalization of
5555         the same object.
5556
5557 2007-08-14  Jose Ruiz  <ruiz@adacore.com>
5558
5559         * s-tasini.adb (Get_Stack_Info): Move this function to
5560         System.Soft_Links.Tasking because it is common to the full and the
5561         restricted run times.
5562         (Init_RTS): Do not set the Get_Stack_Info soft link because it is done
5563         in SSL.Tasking.Init_Tasking_Soft_Links.
5564
5565         * s-solita.adb (Get_Stack_Info): Function moved from
5566         System.Tasking.Initialization because it is common to the full and the
5567         restricted run times.
5568         (Init_Tasking_Soft_Links): Set the tasking soft link for Get_Stack_Info.
5569
5570 2007-08-14  Arnaud Charlet  <charlet@adacore.com>
5571
5572         * s-tpobop.ads, s-tpobop.adb, s-tasren.ads, s-tasren.adb,
5573         s-taskin.ads (Requeue_With_Abort): Rename field With_Abort.
5574         (PO_Do_Or_Queue, Task_Do_Or_Queue, Requeue_Call): Remove With_Abort
5575         parameter.
5576
5577         * s-tassta.adb (Task_Wrapper): Increased value of the small overflow
5578         guard to 12K.
5579
5580 2007-08-14  Gary Dismukes  <dismukes@adacore.com>
5581
5582         * s-veboop.adb (SU): New named number initialized to
5583         System.Storage_Unit.
5584         (True_Val): The initialization expression is revised to use SU (=
5585         Storage_Unit) rather than assuming 8 for the component size of an
5586         unpacked Boolean array.
5587
5588 2007-08-14  Tristan Gingold  <gingold@adacore.com>
5589
5590         * tracebak.c: Use tb-ivms.c on OpenVMS Itanium.
5591
5592         * tb-ivms.c: New file.
5593
5594         * g-trasym-vms-ia64.adb: Fixed for OpenVMS version 8.2
5595
5596 2007-08-14  Geert Bosch  <bosch@adacore.com>
5597
5598         * i-forbla.ads, i-forbla.adb, a-ngcoar.adb, a-ngcoar.ads, i-forlap.ads,
5599         s-gearop.adb, s-gecobl.adb, s-gecobl.ads, s-gerela.adb, s-gerela.ads:
5600         Add required linker pragmas for automatically linking with the gnalasup
5601         linear algebra support library, and the systems math library.
5602         Rename cdot to cdotu and zdot to zdotu.
5603         Update header comment to describe purpose of package.
5604
5605 2007-08-14  Thomas Quinot  <quinot@adacore.com>
5606
5607         * exp_ch7.adb (Find_Final_List): For an anonymous access type that has
5608         an explicitly specified Associated_Final_Chain, use that list.
5609         (Expand_N_Package_Body): Build dispatch tables of library level tagged
5610         types.
5611         (Expand_N_Package_Declaration): Build dispatch tables of library level
5612         tagged types. Minor code cleanup.
5613
5614 2007-08-14  Vincent Celier  <celier@adacore.com>
5615
5616         * gnatchop.adb (Terminate_Program): Remove exception and use
5617         Types.Terminate_Program instead.
5618
5619         * osint.ads, osint.adb (Current_Exit_Status): New global variable
5620         (Find_Program_Name): Added protection against empty name.
5621         (OS_Exit_Through_Exception): New procedure
5622
5623         * s-os_lib.ads, s-os_lib.adb (OS_Exit): New procedure body
5624         (OS_Exit_Default): New procedure that contains the previous
5625         implementation of procedure OS_Exit.
5626         (Final_Value): Remove obsolete Interix stuff.
5627
5628 2007-08-14  Thomas Quinot  <quinot@adacore.com>
5629
5630         * g-socket.ads: Reorganize example code so that it also works on
5631         Windows XP.
5632
5633 2007-08-14  Tristan Gingold  <gingold@adacore.com>
5634
5635         * g-trasym.ads: AIX now supports symbolic backtraces.
5636
5637 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
5638
5639         * lib-load.adb (From_Limited_With_Chain): Always scan the stack of
5640         units being loaded to detect circularities. A circularity may be
5641         present even if the current chain of pending units to load starts from
5642         a limited_with_clause.
5643
5644         * lib-load.ads: Change profile of Load_Unit to use a with_clause
5645         rather than a boolean flag, in order to detect circularities in
5646         with_clauses.
5647
5648         * par-load.adb: Use current with_clause in calls to Load_Unit, rather
5649         than propagating the From_Limited_With flag, in order to handle
5650         properly circularities involving with_clauses.
5651
5652 2007-08-14  Nicolas Setton  <setton@adacore.com>
5653
5654         * link.c (FreeBSD): Add "const" keyword where needed, to eliminate
5655         warnings.
5656
5657 2007-08-14  Arnaud Charlet  <charlet@adacore.com>
5658
5659         * Makefile.in: GNATRTL_LINEARALGEBRA_OBJS: New variable holding objects
5660         to build for libgnala.
5661         libgnat: Add rules to build libgnala.a
5662         (LIBGNAT_TARGET_PAIRS for VxWorks): Remove s-osinte-vxworks.adb from
5663         target pairs of the VxWorks 6 kernel runtime, use it only for VxWorks 5.
5664         Add s-osinte-vxworks-kernel.adb to the target pairs of the
5665         kernel run-time lib for VxWorks 6, which would provide a different
5666         implementation for Task_Cont and Task_Stop than the VxWorks 5 version.
5667         x86-solaris section (EH_MECHANISM): Set to -gcc, as this port is now
5668         running ZCX by default.
5669         Add g-sttsne-locking to LynxOS version.
5670         Remove g-sttsne-vxworks.ads; use g-sttsne-locking.ads instead.
5671         On x86/darwin, use a-numaux-x86.ad? and system-darwin-x86.ads.
5672
5673         * system-darwin-x86.ads: New file.
5674
5675         * Make-lang.in: Delete files before copying onto them, so if they are
5676         read-only, the copy won't fail.
5677         Update dependencies
5678
5679 2007-08-14  Pascal Obry  <obry@adacore.com>
5680
5681         * mdll-fil.adb, * mdll.adb: Implement a more consistent libraries
5682         naming scheme.
5683
5684 2007-08-14  Vincent Celier  <celier@adacore.com>
5685
5686         * mlib-utl.adb (Gcc_Name): Change from constant String to String_Access
5687         (Gcc): Initialize Gcc_Name at the first call
5688
5689 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
5690
5691         * sem_ch7.adb (Analyze_Package_Specification): Do not install private
5692         with_clauses of the enclosing unit when analyzing the package
5693         specification of a nested instance.
5694
5695 2007-08-14  Hristian Kirtchev  <kirtchev@adacore.com>
5696
5697         * sinfo.ads, sinfo.adb (Is_Coextension, Set_Is_Coextension): Removed.
5698         (Is_Dynamic_Coextension, Set_Is_Dynamic_Coextension): New routines.
5699         Remove flag Is_Coextension. Add flag Is_Dynamic_Coextension. Update the
5700         layout of N_Allocator.
5701
5702 2007-08-14  Thomas Quinot  <quinot@adacore.com>
5703
5704         * rtsfind.adb (Check_RPC): Add PCS version check.
5705
5706         * gnatvsn.ads, gnatvsn.adb: Add PCS version.
5707         (Gnat_Free_Software): New function.
5708
5709         * sem_dist.ads, sem_dist.adb (Get_PCS_Version): New subprogram. Returns
5710         the PCS_Version value from s-parint, used to check that it is consistent
5711         with what exp_dist expects.
5712
5713         * s-parint.ads (PCS_Version): New entity for checking consistency
5714         between exp_dist and PCS.
5715
5716         * gen-soccon.c: (SO_REUSEPORT): New constant.
5717
5718 2007-08-14  Hristian Kirtchev  <kirtchev@adacore.com>
5719
5720         * a-calfor.adb (Image (Duration; Boolean)): Change type of local
5721         variable Sub_Second to Duration in order to accomodate a larger range
5722         of arithmetic operations.
5723
5724 2007-08-14  Bob Duff  <duff@adacore.com>
5725
5726         * g-sttsne-locking.ads: Move comments from spec to body.
5727         * g-sttsne-locking.adb: Move comments from spec to body.
5728         * g-sttsne-vxworks.ads: Removed.
5729         * g-sttsne-vxworks.adb: Removed.
5730
5731 2007-08-11  Ian Lance Taylor  <iant@google.com>
5732
5733         * misc.c (gnat_get_alias_set): Change return type to
5734         alias_set_type.
5735
5736 2007-08-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5737
5738         * decl.c, utils2.c: Fix whitespace in last change.
5739
5740 2007-08-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5741
5742         * decl.c (compare_field_bitpos): Constify.
5743         * utils2.c (compare_elmt_bitpos): Likewise.
5744
5745 2007-07-27  Aurelien Jarno  <aurelien@aurel32.net>
5746
5747         * s-osinte-kfreebsd-gnu.ads ((sigset_t_ptr): Removed, replaced by 
5748         anonymous access type.
5749         (pthread_sigmask): Now take an access sigset_t.
5750
5751 2007-07-05  Joel Sherrill  <joel.sherrill@oarcorp.com>
5752
5753         * s-osinte-rtems.ads: Correct prototype of pthread_sigmask.
5754         
5755 2007-06-21  Eric Botcazou  <ebotcazou@adacore.com>
5756
5757         PR tree-optimization/25737
5758         * misc.c (gnat_post_options): Do not force flag_tree_salias to 0.
5759
5760 2007-06-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5761
5762         * trans.c (Attribute_to_gnu): When subtracting an
5763         offset from a pointer, use POINTER_PLUS_EXPR with
5764         NEGATE_EXPR instead of MINUS_EXPR.
5765         (gnat_to_gnu): Likewise.
5766         * utils.c (convert): When converting between
5767         thin pointers, use POINTER_PLUS_EXPR and sizetype
5768         for the offset.
5769         * utils2.c (known_alignment): POINTER_PLUS_EXPR
5770         have the same semantics as PLUS_EXPR for alignment.
5771         (build_binary_op): Add support for the semantics of
5772         POINTER_PLUS_EXPR's operands.
5773         When adding an offset to a pointer, use POINTER_PLUS_EXPR.
5774
5775 2007-06-11  Rafael Avila de Espindola  <espindola@google.com>
5776
5777         * trans.c (Attribute_to_gnu): Use signed_or_unsigned_type_for instead
5778         of get_signed_or_unsigned_type.
5779         * misc.c (LANG_HOOKS_SIGNED_TYPE): Remove.
5780
5781 2007-06-11  Bob Duff  <duff@adacore.com>
5782             Thomas Quinot  <quinot@adacore.com>
5783
5784         * g-stsifd-sockets.adb (Create): Work around strange behavior of
5785         'bind' on windows that causes 'connect' to fail intermittently, by
5786         retrying the 'bind'.
5787         (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
5788
5789 2007-06-10  Duncan Sands  <baldrick@free.fr>
5790
5791         * decl.c (gnat_to_gnu_entity): Use pointers to dummy nodes, rather
5792         than to void, for the fields when making a new fat pointer type.
5793         (gnat_substitute_in_type): Now substitute_in_type.
5794         * gigi.h (gnat_substitute_in_type): Likewise.  Adjust recursive calls.
5795         * trans.c (gnat_gimplify_expr): Remove COMPONENT_REF kludge.
5796         * utils.c (update_pointer_to): Update fat pointers by updating the
5797         dummy node pointers used for the fields.
5798
5799 2007-06-06  Thomas Quinot  <quinot@adacore.com>
5800             Bob Duff  <duff@adacore.com>
5801
5802         * g-soccon-freebsd.ads, g-soccon-vxworks.ads:,
5803         g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads, 
5804         g-soccon-solaris.ads, g-soccon-vms.ads, g-soccon-tru64.ads:  Add new
5805         constant Thread_Blocking_IO, always True by default, set False
5806         on a per-runtime basis.
5807         (Need_Netdb_Buffer): New constant.
5808
5809         * g-stheme.adb, g-sttsne.ads, g-sttsne-locking.ads,
5810         g-sttsne-locking.adb, g-sttsne-vxworks.ads, g-sttsne-vxworks.adb: New
5811         files.
5812
5813         * g-socthi-vxworks.ads, g-socthi-vxworks.adb,
5814         g-socthi-vms.ads, g-socthi-vms.adb (Safe_Gethostbyname,
5815         Safe_Gethostbyaddr, Safe_Getservbyname, Safe_Getservbyport): Use new
5816         child package Task_Safe_NetDB
5817         (Host_Error_Messages): Add stub body.
5818         (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
5819
5820         * g-soccon-mingw.ads: Add Windows-specific constants.
5821         (Need_Netdb_Buffer): New constant.
5822         (GNAT.Sockets.Thin.C_Inet_Addr, Windows version): Remove useless Ada
5823         wrapper and import inet_addr(3) from the standard sockets library
5824         directly instead.
5825         (In_Addr): Add alignment clause.
5826         (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
5827
5828 2007-06-06  Robert Dewar  <dewar@adacore.com>
5829
5830         * a-taster.adb, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
5831         s-osinte-irix.ads, s-interr-sigaction.adb, s-mastop-irix.adb,
5832         s-osinte-hpux-dce.ads, s-osinte-interix.ads, s-osinte-solaris.ads,
5833         s-taspri-solaris.ads, s-inmaop-vms.adb, s-interr-vms.adb,
5834         s-mastop-vms.adb, s-osinte-vms.ads, s-tpopde-vms.adb,
5835         s-osinte-mingw.ads, s-interr-vxworks.adb, i-cstrea-vms.adb,
5836         a-diocst.adb, a-direio.adb, a-interr.adb, a-sequio.adb, a-siocst.adb,
5837         a-ssicst.adb, a-storio.adb, a-ststio.adb, a-stwima.adb, a-tasatt.adb,
5838         a-taside.adb, a-tiocst.adb, a-witeio.adb, a-wtcstr.adb, g-crc32.adb,
5839         g-dirope.adb, g-dyntab.adb, g-memdum.adb, g-regexp.adb, g-spipat.adb,
5840         g-spitbo.adb, g-string.adb, g-string.ads, g-table.adb, g-thread.adb,
5841         i-cobol.adb, i-cpoint.adb, i-cstrea.adb, i-cstrin.adb, i-pacdec.adb,
5842         s-addima.adb, s-arit64.adb, s-auxdec.adb, s-auxdec.ads,
5843         s-auxdec-vms_64.ads, s-carsi8.adb, s-carun8.adb, s-casi16.adb,
5844         s-casi32.adb, s-casi64.adb, s-caun16.adb, s-caun32.adb, s-caun64.adb,
5845         s-direio.adb, s-fileio.adb, s-finimp.ads, s-geveop.adb, s-imgenu.adb,
5846         s-pack03.adb, s-pack05.adb, s-pack06.adb, s-pack07.adb, s-pack09.adb,
5847         s-pack10.adb, s-pack11.adb, s-pack12.adb, s-pack13.adb, s-pack14.adb,
5848         s-pack15.adb, s-pack17.adb, s-pack18.adb, s-pack19.adb, s-pack20.adb,
5849         s-pack21.adb, s-pack22.adb, s-pack23.adb, s-pack24.adb, s-pack25.adb,
5850         s-pack26.adb, s-pack27.adb, s-pack28.adb, s-pack29.adb, s-pack30.adb,
5851         s-pack31.adb, s-pack33.adb, s-pack34.adb, s-pack35.adb, s-pack36.adb,
5852         s-pack37.adb, s-pack38.adb, s-pack39.adb, s-pack40.adb, s-pack41.adb,
5853         s-pack42.adb, s-pack43.adb, s-pack44.adb, s-pack45.adb, s-pack46.adb,
5854         s-pack47.adb, s-pack48.adb, s-pack49.adb, s-pack50.adb, s-pack51.adb,
5855         s-pack52.adb, s-pack53.adb, s-pack54.adb, s-pack55.adb, s-pack56.adb,
5856         s-pack57.adb, s-pack58.adb, s-pack59.adb, s-pack60.adb, s-pack61.adb,
5857         s-pack62.adb, s-pack63.adb, s-pooloc.adb, s-poosiz.adb, s-scaval.adb,
5858         s-sequio.adb, s-shasto.adb, s-stalib.ads, s-stratt.adb, s-strcom.adb,
5859         s-taasde.adb, s-tasdeb.adb, s-tasuti.ads, s-tataat.ads, s-tpoben.ads,
5860         s-valenu.adb, s-widenu.adb, s-wwdenu.adb, s-addope.adb, a-stzmap.adb,
5861         a-ztcstr.adb, a-ztexio.adb, s-osinte-linux-hppa.ads: Replace
5862         Unchecked_* by Ada.Unchecked_*
5863
5864 2007-06-06  Robert Dewar  <dewar@adacore.com>
5865
5866         * g-string.adb, s-proinf-irix-athread.adb, s-gloloc-mingw.adb,
5867         s-tfsetr-default.adb, gnatfind.adb, gnatxref.adb, gprep.adb,
5868         g-regexp.adb, g-regexp.ads, g-regpat.ads, g-tasloc.adb, g-tasloc.ads,
5869         output.adb, switch-m.ads, tree_in.ads, tree_io.ads, indepsw.ads,
5870         g-utf_32.adb, g-utf_32.ads, a-wichun.adb, a-wichun.ads, a-zchuni.adb,
5871         a-zchuni.ads: Replace GNAT.xxx by System.xxx when appropriate.
5872
5873         * s-utf_32.adb, s-utf_32.ads, s-os_lib.adb, s-os_lib.ads, s-regexp.adb,
5874         s-regexp.ads, s-regpat.adb, s-regpat.ads, s-string.adb, s-string.ads,
5875         s-tasloc.adb, s-tasloc.ads: New files.
5876
5877 2007-06-06  Bob Duff  <duff@adacore.com>
5878
5879         * g-expect-vms.adb: 
5880         (Send_Signal, Close): Raise Invalid_Process if the process id is invalid.
5881         * g-expect.ads, g-expect.adb (Send): Avoid useless copy of the string.
5882         (Send_Signal, Close): Raise Invalid_Process if the process id is
5883         invalid.
5884         (Pattern_Matcher_Access): Is now a general access type to be able to
5885         use aliased string.
5886
5887 2007-06-06  Thomas Quinot  <quinot@adacore.com>
5888             Arnaud Charlet  <charlet@adacore.com>
5889
5890         * a-intnam-aix.ads: Adjust comment to account for SIGADAABORT change
5891         (SIGEMT is now used instead of SIGTERM on AIX).
5892
5893         * s-osinte-aix.ads (Linker_Options): Use -pthread instead of -lpthreads.
5894         (Time_Slice_Supported): Set to True.
5895         Use SIGEMT instead of SIGTERM as SIGADAABORT.
5896
5897 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
5898
5899         * a-calend.ads, a-calend.adb, a-calend-vms.ads, a-calend-vms.adb ("-"
5900         (Time, Time)): Use To_Relative_Time rather than manual calculation to
5901         express the bounds of Duration as Time. Raise Time_Error when the
5902         result is greater or equal to the higher bound of Duration (on the
5903         margin case).
5904         ("+" (Time, Duration)): Reorder code. Remove the declaration of constant
5905         Ada_High_And_Leaps.
5906         ("-" (Time, Duration)): Reorder code. Remove the declaration of constant
5907         Ada_High_And_Leaps.
5908         ("-" (Time, Time)): Reorder code.
5909         (All_Leap_Seconds): Removed.
5910         (Arithmetic_Operations.Add): Remove sign related kludge.
5911         (Arithmetic_Operations.Difference): Control the leaps seconds processing
5912         with flag Leap_Support.
5913         (Arithmetic_Operations.Subtract): Remove sign related kludge.
5914         (Check_Within_Time_Bounds): New procedure.
5915         (Clock): Control the leap seconds processing with flag Leap_Support.
5916         (Cumulative_Leap_Seconds): Assert that the target supports leap seconds.
5917         (Formatting_Operations.Split): Control the leap seconds processing with
5918         flag Leap_Support.
5919         (Formatting_Operations.Time_Of): Control the leaps seconds processing
5920         with flag Leap_Support. Adjust the year, month and day (if applicable)
5921         when the value of day seconds designates a new day.
5922         (Split): Use parameter associations for better readability. Integrate
5923         flag Is_Ada_05.
5924         (Time_Of): Use parameter associations for better readability. Integrate
5925         flag Is_Ada_05.
5926
5927         * a-calfor.adb (Split): Use parameter associations for better
5928         readability. Integrate flag Is_Ada_05.
5929         (Time_Of): Remove flag Leap_Checks. Use parameter associations for
5930         better readability. Integrate flag Is_Ada_05.
5931
5932 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
5933
5934         * s-taprop-vms.adb, s-taprop-hpux-dce.adb, s-taprop-vxworks.adb, 
5935         s-osprim-posix.adb, s-taprop-posix.adb, s-osprim-vxworks.adb, 
5936         s-taprop-solaris.adb, s-osprim-solaris.adb, s-taprop-dummy.adb, 
5937         s-osprim-unix.adb, s-osinte-freebsd.adb, s-osinte-freebsd.ads, 
5938         s-osinte-lynxos.adb, s-osinte-lynxos.ads, s-taprop-tru64.adb, 
5939         s-taprop-lynxos.adb, s-taprop-irix.adb, s-osinte-tru64.adb, 
5940         s-osinte-tru64.ads, s-taprop-linux.adb, s-parame.ads, 
5941         s-parame-vms-alpha.ads, s-parame-vms-ia64.ads, s-parame-hpux.ads, 
5942         s-parame-vms-restrict.ads, s-parame-ae653.ads, s-parame-vxworks.ads, 
5943         s-taprop-mingw.adb, s-osinte-lynxos-3.ads, s-osinte-lynxos-3.adb,
5944         s-osprim-mingw.adb (Timed_Delay, Timed_Sleep): Register the base
5945         time when entering this routine to detect a backward clock setting
5946         (manual setting or DST adjustment), to avoid waiting for a longer delay
5947         than needed.
5948         (Time_Duration, To_Timeval, struct_timeval): Removed when not relevant.
5949         Remove handling of deferred priority change, and replace by setting the
5950         task priority directly, as required by AI-188.
5951         Update comments.
5952         (Max_Task_Image_Length): New constant.
5953         Replace Warnings (Off) by Unreferenced pragma, cleaner.
5954         (Dynamic_Priority_Support): Removed, no longer needed.
5955         (Poll_Base_Priority_Change): Ditto.
5956         (Set_Ceiling): Add this procedure to change the ceiling priority
5957         associated to a lock. This is a dummy implementation because dynamic
5958         priority ceilings are not supported by the underlying system.
5959
5960         * a-dynpri.adb (Set_Priority): Take into account case where Target is
5961         accepting a RV with its priority boosted.
5962         Remove handling of deferred priority change, and replace by setting the
5963         task priority directly, as required by AI-188.
5964
5965         * s-taenca.adb (Try_To_Cancel_Entry_Call): Remove special case for
5966         Succeeded = True.
5967         Remove handling of deferred priority change, and replace by setting the
5968         task priority directly, as required by AI-188.
5969         (Wait_For_Completion, Wait_For_Call, Timed_Selective_Wait): Change state
5970         of Self_Id earlier.
5971
5972         * s-tasini.ads, s-tasini.adb (Wakeup_Entry_Caller): Relax assertion.
5973         (Poll_Base_Priority_Change): Removed.
5974         Code clean up: use SSL.Current_Target_Exception.
5975
5976         * s-tasren.adb (Task_Count): Call Yield to let a chance to other tasks
5977         to run as this is a potentially dispatching point.
5978         (Call_Synchronous): Use Local_Defer_Abort.
5979         (Callable): Relax assertion.
5980         (Selective_Wait): Relax assertion in case abort is not allowed.
5981         Remove handling of deferred priority change, and replace by setting the
5982         task priority directly, as required by AI-188.
5983
5984         * s-tasuti.adb (Make_Passive): Adjust assertions.
5985         Remove handling of deferred priority change, and replace by setting the
5986         task priority directly, as required by AI-188.
5987
5988 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
5989
5990         * system-vxworks-sparcv9.ads, system-solaris-x86.ads, 
5991         system-irix-o32.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads, 
5992         system-lynxos-x86.ads, system-vxworks-m68k.ads, system-linux-x86.ads, 
5993         system-vxworks-mips.ads, system-vxworks-alpha.ads, 
5994         system-vxworks-x86.ads, system-linux-ppc.ads, system-mingw.ads, 
5995         system-vms-zcx.ads, system-darwin-ppc.ads, system-vxworks-ppc.ads, 
5996         system-interix.ads, system-linux-hppa.ads, system-tru64.ads, 
5997         system-hpux.ads, system-irix-n32.ads, system-solaris-sparc.ads, 
5998         system-solaris-sparcv9.ads, system-vms.ads, system.ads,
5999         system-vms_64.ads, system-hpux-ia64.ads, system-linux-x86_64.ads,
6000         system-linux-ia64.ads: Document mapping between Ada and OS priorities.
6001         This patch changes the largest non-binary modulus from 2**31-1 to
6002         2**32-1.
6003         (Compiler_System_Version): Removed, no longer used.
6004         Clean up system files by removing flags only used on a single target.
6005         Also remove obsolete flags, only used during bootstrap from system.ads
6006         (Address): Add a pragma Preelaborable_Initialization.
6007
6008         * system-aix.ads:  Ditto.
6009         (GCC_ZCX_Support): Set to true.
6010         Update priority range on AIX and map Ada priorities to target
6011         priorities appropriately for different scheduling policies.
6012
6013         * ttypes.ads: set largest non-binary modulus from 2**31-1 to 2**32-1
6014
6015 2007-06-06  Vincent Celier  <celier@adacore.com>
6016
6017         * mlib-tgt-specific.adb, mlib-tgt-specific.ads,
6018         mlib-tgt-vms.adb, mlib-tgt-vms.ads: New files.
6019
6020         * mlib-tgt.adb, mlib-tgt.ads, mlib-tgt-darwin.adb, 
6021         mlib-tgt-vxworks.adb, mlib-tgt-mingw.adb, mlib-tgt-lynxos.adb, 
6022         mlib-tgt-linux.adb, mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, 
6023         mlib-tgt-vms-ia64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb, 
6024         mlib-tgt-hpux.adb, mlib-tgt-tru64.adb: Make a common body for package
6025         MLib.Tgt, containing the default versions of the exported subprograms.
6026         For each platform, create a specific version of the body of new child
6027         package MLib.Tgt.Specific that contains only the body of subprograms
6028         that are different from the default.
6029         (Archive_Builder_Append_Options): New function.
6030
6031 2007-06-06  Matthew Gingell  <gingell@adacore.com>
6032
6033         * s-osinte-aix.adb: Map Ada priorities to target priorities
6034         appropriately for different scheduling policies.
6035
6036 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
6037
6038         * s-osinte-linux.ads (sigset_t): Bump alignment to match more closely
6039         its C counterpart.
6040         Remove references to Unchecked_Conversion, and use Ada.xxx instead.
6041         Replace Unchecked_Conversion by Ada.Unchecked_Conversion. 
6042
6043 2007-06-06  Vasiliy Fofanov  <fofanov@adacore.com>
6044
6045         * s-osprim-vms.ads, s-osprim-vms.adb (Initialize): New procedure.
6046         Noop on VMS, added for interface commonality.
6047
6048 2007-06-06  Eric Botcazou  <ebotcazou@adacore.com>
6049             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6050             Olivier Hainque  <hainque@adacore.com>
6051
6052         * decl.c (gnat_to_gnu_entity) <object>: Manually mark the top of the
6053         renamed expression of a full renaming at toplevel.
6054         (gnat_to_gnu_entity, case object): If not defining, do not look inside
6055         the values the constant is initialized to if it is an N_Allocator.
6056         (gnat_to_gnu_entity) <E_Array_Subtype>: Manually mark the top of the
6057         TYPE_SIZE_UNIT of inner types after the stride is elaborated.
6058         (make_aligning_type): Accept an extra ROOM argument for storage to be
6059         made available before the aligned field, and an extra BASE_ALIGN
6060         argument for callers to pass the alignment guaranteed to be honored for
6061         the whole aligning object. Avoid call to finish_record_type, which only
6062         interferes with the sizes we want to set.
6063         (gnat_to_gnu_entity) <E_Variable>: Pass the required extra arguments to
6064         make_aligning_type for super-aligned objects on stack.
6065         (components_to_record): Pass the adjusted size of the type when creating
6066         fields in the qualified union for the variant part.
6067         (gnat_substitute_in_type): Copy TYPE_USER_ALIGN.
6068         (gnat_to_gnu_entity, case E_Signed_Integer_Subtype): Likewise for
6069         packed array type.
6070         (maybe_pad_type): Set TYPE_USER_ALIGN.
6071         (make_aligning_type): Likewise.
6072         ALIGN argument is unsigned int.
6073         (gnat_to_gnu_entity, case E_Function): Back annotate return mechanism.
6074         (gnat_to_gnu_param): Likewise, for parameters.
6075         (gnat_to_gnu_entity) <object>: Always instantiate the renaming object
6076         if it is constant and stems from a function call.
6077         (gnat_to_gnu_entity) <E_Record_Type>: Set packed to -2 if the alignment
6078         of the record is specified.  Adjust accordingly.
6079         (adjust_packed): New static function.
6080         (gnat_to_gnu_field): Use it to adjust the packedness setting.
6081         (components_to_record): Likewise.
6082         (gnat_to_gnu_entity) <object>: Do not test the renamed expression for
6083         side-effects if the object is deemed constant.
6084         (gnat_to_gnu_entity) <E_Array_Type>: Create a name for the fat pointer
6085         type instead of merely finalizing it.  Tidy.
6086         <E_Access_Subprogram_Type>: Retrieve the type from the TYPE_DECL.
6087         <E_Access_Type>: Likewise.
6088         (defer_debug_incomplete_list): Rename to defer_finalize_list.
6089         (defer_debug_level): Delete.
6090         (gnat_to_gnu_entity) <debug_deferred>: Likewise
6091         <E_Array_Type>: Call rest_of_record_type_compilation on the fat pointer
6092         type.
6093         <E_Record_Type>: Do not explicitly defer finalizing the type.
6094         Adjust for write_record_type_debug_info renaming.
6095         <E_Subprogram_Type>: Likewise.
6096         Finalize deferred types right after deferred incomplete types are
6097         expanded.
6098         (rest_of_type_decl_compilation): New global function.
6099         (components_to_record): Rename defer_debug parameter to do_not_finalize.
6100         (components_to_record): Propagate the packedness to the fields of the
6101         qualified union type if there is a variant part.
6102         (gnat_to_gnu_entity) <E_Array_Type>: Use new function
6103         instead of inline code to adjust the XUT field offsets.
6104         (gnat_to_gnu_entity): Adjust for new prototype of finish_record_type.
6105         <E_Record_Subtype>: Do not let finish_record_type compute the sizes
6106         and write the debug info if the type derives from a discriminated one.
6107         (gnat_to_gnu_entity) <E_Array_Type>: Adjust call to create_index_type.
6108         <E_Array_Subtype>: Likewise.
6109         <E_String_Literal_Subtype>: Likewise.
6110         (gnat_to_gnu_entity): Set TYPE_USER_ALIGN on types only if they have
6111         an alignment clause.
6112         (maybe_pad_type): Update ORIG_SIZE to the minimum required to meet ALIGN
6113         before giving warning.
6114         (prepend_one_attribute_to): New function, helper to prepend an attribute
6115         to an attribute list.
6116         (gnat_to_gnu_entity) <E_Procedure>: Use it.
6117         (prepend_attributes): Likewise.
6118         (gnat_to_gnu_entity) <E_Variable>: Use constants of the proper type.
6119         <E_Array_Type>: Declare the padding type for the element type, if any.
6120         <E_Array_Subtype>: Likewise.
6121         (defer_limited_with): New variable.
6122         (Gigi_Equivalent_Type): New function.
6123         (gnat_to_gnu_entity): Use it at start and use result throughout.
6124         (gnat_to_gnu_entity, case E_Access_Type): Rework to use
6125         Gigi_Equivalent_Type, support Limited_With, allow two levels of
6126         indirection, precompute if unconstrained array to simplify logic, and
6127         use defer_limited_with to defer elaboration of some types from limited
6128         with.
6129         (finalize_from_with_types): New function.
6130
6131 2007-06-06  Gary Dismukes  <dismukes@adacore.com>
6132             Eric Botcazou  <ebotcazou@adacore.com>
6133             Tristan Gingold  <gingold@adacore.com>
6134             Olivier Hainque  <hainque@adacore.com>
6135
6136         * trans.c (Identifier_to_gnu): Change test for deferred constant by
6137         adding guard that the entity is an E_Constant before testing presence
6138         of Full_view (and remove unnecessary test that entity is not a type).
6139         For a CONST_DECL used by reference, manually retrieve
6140         the DECL_INITIAL.  Do not invoke fold in the other DECL_P cases either.
6141         (struct language_function): Move from utils.c to here.
6142         (struct parm_attr): New structure.
6143         (parm_attr, parm_attr vector, parm_attr GC vector): New types.
6144         (f_parm_attr_cache): New macro.
6145         (Attribute_to_gnu) <Attr_Length>: When not optimizing, cache the
6146         expressions for the 'First, 'Last and 'Length attributes of the
6147         unconstrained array IN parameters.
6148         (Subprogram_Body_to_gnu): Use gnu_subprog_decl throughout.
6149         Allocate the information structure for the function earlier, as well
6150         as the language-specific part.
6151         If the parameter attributes cache has been populated, evaluate the
6152         cached expressions on entry.
6153         (takes_address): Add OPERAND_TYPE parameter.  Handle N_Function_Call,
6154         N_Procedure_Call_Statement and N_Indexed_Component.
6155         (Pragma_to_gnu): Translate inspection_point to an asm statement
6156         containaing a comment and a reference to the object (either its address
6157         for BLKmode or its value).
6158         (Identifier_to_gnu): Use TREE_CONSTANT instead of CONST_DECL to decide
6159         to go to DECL_INITIAL. Together with the size constraint relaxation
6160         in create_var_decl, enlarges the set of situations in which an
6161         identifier may be used as an initializer without implying elaboration
6162         code.
6163         (Subprogram_Body_to_gnu): Do not fiddle with the debug interface but set
6164         DECL_IGNORED_P on the function if Needs_Debug_Info is not set on the
6165         node.
6166         (maybe_stabilize_reference): Remove lvalues_only parameter.
6167         (gnat_stabilize_reference): Adjust for above change.
6168         (gnat_to_gnu): Do not set location information on the result
6169         if it is a reference.
6170         (add_cleanup): Add gnat_node parameter and set the location of the
6171         cleanup to it.
6172         (Handled_Sequence_Of_Statements_to_gnu): Adjust calls to add_cleanup.
6173         (Exception_Handler_to_gnu_zcx): Likewise.
6174         (gigi): Remove the cgraph node if the elaboration procedure is empty.
6175         (Subprogram_Body_to_gnu): If a stub is attached to the subprogram, emit
6176         the former right after the latter.
6177         (start_stmt_group): Make global.
6178         (end_stmt_group): Likewise.
6179         (gnu_constraint_error_label_stack, gnu_storage_error_label_stack): New
6180         vars.
6181         (gnu_program_error_label_stack): Likewise.
6182         (gigi): Initialize them.
6183         (call_to_gnu, gnat_to_gnu, emit_check): Add new arg to build_call_raise.
6184         (gnat_to_gnu, N_{Push,Pop}_{Constraint,Storage,Program}_Error_Label):
6185         New cases.
6186         (push_exception_label_stack): New function.
6187         (takes_address): New function.
6188
6189         * utils.c (struct language_function): Move to trans.c from here.
6190         (unchecked_convert): Do not wrap up integer constants in
6191         VIEW_CONVERT_EXPRs.
6192         (create_var_decl_1): Decouple TREE_CONSTANT from CONST_DECL. Prevent
6193         the latter for aggregate types, unexpected by later passes, and relax an
6194         arbitrary size constraint on the former.
6195         (create_field_decl): Use tree_int_cst_equal instead of operand_equal_p
6196         to compare the sizes.
6197         (convert_vms_descriptor): When converting to a fat pointer type, be
6198         prepared for a S descriptor at runtime in spite of a SB specification.
6199         (shift_unc_components_for_thin_pointers): New function.
6200         (write_record_type_debug_info): For variable-sized fields, cap the
6201         alignment of the pointer to the computed alignment.
6202         (finish_record_type): Change HAS_REP parameter into REP_LEVEL.
6203         If REP_LEVEL is 2, do not compute the sizes.
6204         (build_vms_descriptor): Adjust for new prototype of finish_record_type.
6205         (build_unc_object_type): Likewise.
6206         (declare_debug_type): New function.
6207
6208         * ada-tree.def: USE_STMT: removed (not emitted anymore).
6209
6210         * misc.c (gnat_expand_expr): Call to gnat_expand_stmt removed because
6211         no statement is expandable anymore.
6212         (gnat_init_gcc_eh): Do not initialize the DWARF-2 CFI machinery twice.
6213         (gnat_handle_option): Only allow flag_eliminate_debug_types to be set
6214         when the user requested it explicitely.
6215         (gnat_post_options): By default, set flag_eliminate_unused_debug_types
6216         to 0 for Ada.
6217         (get_alias_set): Return alias set 0 for a type if
6218         TYPE_UNIVERSAL_ALIASING_P is set on its main variant.
6219
6220         * ada-tree.h: (TYPE_UNIVERSAL_ALIASING_P): New macro.
6221         (DECL_FUNCTION_STUB): New accessor macro.
6222         (SET_DECL_FUNCTION_STUB): New setter macro.
6223
6224         * lang.opt (feliminate-unused-debug-types): Intercept this flag for Ada.
6225
6226         * fe.h (Get_Local_Raise_Call_Entity, Get_RT_Exception_Entity): New
6227         declarations.
6228
6229 2007-06-06  Jose Ruiz  <ruiz@adacore.com>
6230
6231         * s-intman-vxworks.ads, s-intman-vxworks.adb (Abort_Task_Signal):
6232         Rename to Abort_Task_Interrupt to be able to keep the same interface
6233         as the rest of the targets.
6234
6235         * s-osinte-vxworks.ads s-osinte-vxworks.adb
6236         (To_VxWorks_Priority): Remove explicit "in" mode indicator
6237
6238         * s-osinte-vxworks6.ads, s-vxwork-arm.ads, system-vxworks-arm.ads:
6239         New files.
6240
6241 2007-06-06  Robert Dewar  <dewar@adacore.com>
6242
6243         * a-chahan.ads: Remove obsolescent pragmas
6244
6245         * a-chlat1.ads: Minor reformatting
6246
6247 2007-06-06  Robert Dewar  <dewar@adacore.com>
6248
6249         * comperr.adb (Compiler_Abort): New Finalize/Output_Messages interface
6250         for Errout
6251
6252         * errout.adb: New Finalize/Compilation_Errors/Output_Messages
6253         implementation
6254
6255         * errout.ads (Finalize): Changed interface
6256         (Output_Messages): New procedure
6257         (Compilation_Errors): New Interface
6258
6259         * prepcomp.ads, prepcomp.adb (Parse_Preprocessing_Data_File): New
6260         Finalize/Output_Messages interface for Errout
6261         (Prepare_To_Preprocess): New Finalize/Output_Messages interface for
6262         Errout.
6263
6264 2007-06-06  Thomas Quinot  <quinot@adacore.com>
6265             Olivier Hainque  <hainque@adacore.com>
6266             Robert Dewar  <dewar@adacore.com>
6267
6268         * a-except.ads, a-except.adb: (Rmsg_28): Fix description for E.4(18)
6269         check.
6270         (Raise_Current_Excep): Call Debug_Raise_Exception just before
6271         propagation starts, to let debuggers know about the event in a reliable
6272         fashion.
6273         (Local_Raise): Moved to System.Exceptions
6274         More convenient to have this as a separate unit
6275
6276         * s-except.adb, s-except.ads: New files.
6277
6278         * a-exextr.adb (Unhandled_Exception): Delete - replaced by
6279         Debug_Unhandled_Exception in System.Exceptions where it belongs
6280         together with a couple of other debug helpers.
6281         (Notify_Unhandled_Exception): Use Debug_Unhandled_Exception instead of
6282         the former Unhandled_Exception.
6283
6284         * exp_ch11.ads, exp_ch11.adb: (Possible_Local_Raise): New procedure
6285         (Warn_No_Exception_Propagation): New procedure
6286         (Warn_If_No_Propagation): Rewritten for new warning generation
6287         (Expand_Exception_Handlers): New warning generation
6288         (Expand_N_Raise_xxx_Error): Rewritten for new warnings
6289         (Add_Exception_Label): Use Special_Exception_Package_Used for test
6290         instead of Most_Recent_Exception_Used (accomodates Exception_Traces)
6291         (Expand_Local_Exception_Handlers): Unconditionally add extra block wrap
6292         even if restriction is set (makes life easier in Check_Returns)
6293         (Expand_Local_Exception_Handlers): Follow renamed entity chain when
6294         checking exception identities.
6295         (Expand_Local_Exception_Handlers): Do not optimize when all others case
6296         (Expand_Local_Exception_Handlers): Set Exception_Junk flag on generated
6297         block for handler (used by Check_Returns)
6298         (Expand_Local_Exception_Handlers): Local_Raise now takes an address
6299         (Expand_N_Handled_Sequence_Of_Statements): Properly handle -gnatd.x to
6300         remove all exception handlers when optimizing local raise statements.
6301         (Find_Local_Handler): Use Get_Renamed_Entity
6302         (Expand_N_Handled_Sequence_Of_Statements): If the handled sequence is
6303         marked analyzed after expanding exception handlers, do not generate
6304         redundant cleanup actions, because they have been constructed already.
6305
6306 2007-06-06  Thomas Quinot  <quinot@adacore.com>
6307
6308         * a-finali.ads (Ada.Finalization): Add missing pragma Remote_Types. The
6309         presence of this categorization pragma is mandated by the language.
6310         (Limited_Controlled): Add missing pragma Preelaborable_Initialization
6311         for this type.
6312
6313 2007-06-06  Vincent Celier  <celier@adacore.com>
6314             Robert Dewar  <dewar@adacore.com>
6315
6316         * bcheck.adb, binde.adb, binderr.adb, binderr.ads, butil.adb, 
6317         butil.ads, erroutc.adb, erroutc.ads, errutil.adb, errutil.ads, 
6318         err_vars.ads, exp_tss.adb, exp_tss.ads, fmap.adb, fmap.ads, 
6319         fname.adb, fname.ads, fname-sf.adb, fname-uf.adb, fname-uf.ads, 
6320         lib-sort.adb, lib-util.adb, lib-util.ads, lib-xref.adb, makeutl.ads, 
6321         makeutl.adb, nmake.adt, osint.adb, osint.ads, osint-b.adb, 
6322         par-load.adb, prj-attr.adb, prj-dect.adb, prj-err.adb, prj-makr.adb, 
6323         prj-part.adb, prj-pp.adb, prj-proc.adb, prj-tree.adb, prj-tree.ads, 
6324         prj-util.adb, prj-util.ads, scans.adb, scans.ads, sem_ch2.adb, 
6325         sinput-c.adb, styleg-c.adb, tempdir.adb, tempdir.ads, uname.adb, 
6326         uname.ads, atree.h, atree.ads, atree.adb, ali-util.ads, ali-util.adb,
6327         ali.ads, ali.adb: 
6328         Move Name_Id, File_Name_Type and Unit_Name_Type from package Types to
6329         package Namet. Make File_Name_Type and Unit_Name_Type types derived from
6330         Mame_Id. Add new type Path_Name_Type, also derived from Name_Id.
6331         Use variables of types File_Name_Type and Unit_Name_Type in error
6332         messages.
6333         (Get_Name): Add parameter Ignore_Special, and set it reading file name
6334         (New_Copy): When debugging the compiler, call New_Node_Debugging_Output
6335         here.
6336         Define flags Flag217-Flag230 with associated subprograms
6337         (Flag_Word5): New record type.
6338         (Flag_Word5_Ptr): New access type.
6339         (To_Flag_Word5): New unchecked conversion.
6340         (To_Flag_Word5_Ptr): Likewise.
6341         (Flag216): New function.
6342         (Set_Flag216): New procedure.
6343
6344 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
6345
6346         * a-stzunb.adb, a-stwiun.adb, a-strunb.adb: (Insert): Use 'Length
6347         instead of 'Size.
6348
6349         * a-stwifi.ads, a-stzfix.ads: Minor reformatting
6350
6351 2007-06-06  Javier Miranda  <miranda@adacore.com>
6352
6353         * a-tags.ads, a-tags.adb (Tag_Size): This constant is now internal to
6354         the package.
6355         (Object_Specific_Data_Array): This is now internal to the package.
6356         (Object_Specific_Data): This is now internal to the package.
6357         (Select_Specific_Data_Element): This is now internal to the package.
6358         (Select_Specific_Data_Array): This is now internal to the package.
6359         (Select_Specific_Data): This is now internal to the package.
6360         (Offset_To_Top_Function_Ptr): This is now public.
6361         (To_Offset_To_Top_Function_Ptr): Removed.
6362         (Storage_Offset_Ptr,To_Storage_Offset_Ptr): These declarations are now
6363          local to subprogram Offset_To_Top.
6364         (Predefined_DT): Removed.
6365         (Typeinfo_Ptr): Removed.
6366         (OSD): This function is now internal to this package.
6367         (SSD): This function is now internal to this package.
6368         (DT): New function that displaces the pointer to the table of primitives
6369          to get access to the enclosing wrapper record.
6370         (IW_Membership): Code cleanup.
6371         (Offset_To_Top): Code cleanup.
6372         (Predefined_DT): Removed.
6373         (Register_Interface_Tag): Removed.
6374         (Set_Interface_Table): Removed.
6375         (Set_Offset_Index): Removed.
6376         (Set_Offset_To_Top): Code cleanup.
6377         (Set_OSD): Removed.
6378         (Set_Signature): Removed.
6379         (Set_SSD): Removed.
6380         (Set_Tagged_Kind): Removed.
6381         (Typeinfo_Ptr): Removed.
6382         (TSD): Removed.
6383         (Displace): Add missing check on null actual.
6384
6385         * exp_disp.ads, exp_disp.adb
6386         (Select_Expansion_Utilities): Removed.
6387         (Build_Common_Dispatching_Select_Statements): Moved to exp_atags.
6388         (Expand_Dispatching_Call): Update calls to Get_Prim_Op_Address because
6389         the interface requires a new parameter.
6390         (Make_Disp_Asynchronous_Select_Spec, Make_Disp_Conditional_Select_Spec,
6391         Make_Disp_Get_Prim_Op_Kind_Spec, Make_Disp_Timed_Select_Spec): Replace
6392         calls to subprograms Build_T, Build_S, etc. by the corresponding code.
6393         Done to remove package Select_Expansion_Utilities.
6394         (Make_DT): New implementation for statically allocated dispatch tables.
6395         (Make_Secondary_DT): Moved to the scope of Make_DT.
6396         (Register_Primitive): Code cleanup plus incoporate the use of the new
6397         function DT_Address_Attribute.
6398         (Expand_Interface_Thunk): The profile of this subprogram has been
6399         changed to return the Thunk_Id and the corresponding code.
6400         (Fill_DT_Entry): Removed. Its functionality is now provided by
6401         subprogram Register_Primitive.
6402         (Fill_Secondary_DT_Entry): Removed. Its functionality is now provided by
6403         subprogram Register_Primitive.
6404         (Register_Primitive): New subprogram that incorporates the previous
6405         functionalities of Fill_DT_Entry and Fill_Secondary_DT_Entry.
6406         (Build_Common_Dispatching_Select_Statements): Remove formal Typ. This
6407         was only required to call Make_DT_Access_Action, which is now removed.
6408         (Ada_Actions): Removed
6409         (Action_Is_Proc): Removed
6410         (Action_Nb_Arg): Removed
6411         Replace all the calls to Make_DT_Access_Action by direct calls to
6412         Make_Procedure_Call_Statement or Make_Function_Call.
6413         (Set_DTC_Entity_Value): New subprogram.
6414         (Set_All_DT_Position): Add call to new subprogram Set_DTC_Entity_Value.
6415         (Expand_Interface_Thunk): Add missing support for primitives that are
6416         functions with a controlling result (case in which there is no need
6417         to generate the thunk).
6418
6419         * exp_atag.ads, exp_atag.adb
6420         (Build_DT): New subprogram that displaces the pointer to reference the
6421         base of the wrapper record.
6422         (Build_Typeinfo_Offset): Removed.
6423         (RTE_Tag_Node): Removed.
6424         (Build_Common_Dispatching_Select_Statements): Moved here from exp_disp
6425         (Build_Get_RC_Offset): Removed.
6426         (Build_Inherit_Predefined_Prims): Removed.
6427         (Build_Inherit_TSD: Removed.
6428         (Build_New_TSD): Removed.
6429         (Build_Set_External_Tag): Removed.
6430         (Build_Set_Predefined_Prim_Op_Address): Add documentation.
6431         (Build_Set_Prim_Op_Address): Add documentation.
6432         (Build_Set_TSD): Removed.
6433
6434         * rtsfind.ads, rtsfind.adb
6435         (Load_Fail): If load fails and we are not in configurable run-time
6436         mode, then raise Unrecoverable_Error.
6437         (Text_IO_Kludge): Generate an error message if a run-time library is
6438         not available in a given run-time (ie. zfp run-time).
6439         (RTE_Record_Component): Add code to check that the component we search
6440         for is not found in two records in the given run-time package.
6441         (RE_DT_Offset_To_Top_Size, RE_DT_Predef_Prims_Size): Removed
6442         (RE_DT_Predef_Prims_Offset): New entity
6443         (RE_Static_Offset_To_Top): New entity
6444         (RE_HT_Link): New entity.
6445         (System_Address_Image): Addition of this run-time package.
6446         (RE_Address_Image): New entity.
6447         (RE_Abstract_Interface): Removed.
6448         (RE_Default_Prim_Op_Count): Removed.
6449         (RE_DT_Entry_Size): Removed.
6450         (RE_DT_Min_Prologue_Size): Removed.
6451         (RE_DT_Prologue_Size): Removed.
6452         (RE_Ifaces_Table_Ptr): Removed.
6453         (RE_Interface_Data_Ptr): Removed.
6454         (RE_Type_Specific_Data): Removed.
6455         (RE_Primary_DT): Removed.
6456         (RE_Register_Interface_Tag): Removed.
6457         (RE_Set_Offset_Index): Removed.
6458         (RE_Set_OSD): Removed.
6459         (RE_Set_SSD): Removed.
6460         (RE_Set_Signature): Removed.
6461         (RE_Set_Tagged_Kind): Removed.
6462         (RE_Address_Array): New entity.
6463         (RE_DT): New entity.
6464         (RE_Iface_Tag): New entity.
6465         (RE_Interfaces_Table): New entity.
6466         (RE_No_Dispatch_Table): New entity.
6467         (RE_NDT_Prims_Ptr): New entity.
6468         (RE_NDT_TSD): New entity.
6469         (RE_Num_Prims): New entity.
6470         (RE_Offset_To_Top_Function_Ptr): New entity.
6471         (RE_OSD_Table): New entity.
6472         (RE_OSD_Num_Prims): New entity.
6473         (RE_Predef_Prims): New entity
6474         (RE_Predef_Prims_Table_Ptr): New entity.
6475         (RE_Primary_DT): New entity.
6476         (RE_Signature): New entity.
6477         (RE_SSD): New entity.
6478         (RE_TSD): New entity.
6479         (RE_Type_Specific_Data): New entity.
6480         (RE_Tag_Kind): New entity.
6481
6482 2007-06-06  Thomas Quinot  <quinot@adacore.com>
6483
6484         * a-textio.ads, a-textio.adb (Write): Add explicit size clause for the
6485         C imported variable.
6486         (Skip_Line): Do not reset Before_LM_PM immediately when Before_LM is set
6487         on entry.
6488
6489 2007-06-06  Robert Dewar  <dewar@adacore.com>
6490
6491         * a-tienio.adb (Get): Adjust buffer size to accomodate one extra
6492         character
6493
6494 2007-06-06  Vincent Celier  <celier@adacore.com>
6495
6496         * a-tifiio.adb (Put, internal): For negative numbers, check that there
6497         is room for at least one digit and the minus sign.
6498         (Put.Put_Character): Never put a character outside of the range of
6499         string To.
6500
6501 2007-06-06  Olivier Hainque  <hainque@adacore.com>
6502             Eric Botcazou  <ebotcazou@adacore.com>
6503
6504         * utils2.c (build_allocator): Provide the extra arguments to
6505         make_aligning_type for super-aligned objects allocated from the default
6506         pool. Leave enough room for a pointer before the aligning field, and
6507         store the system's allocator return value there.
6508         (build_call_alloc_dealloc): When releasing a super-aligned object,
6509         retrieve the system's allocator return value from where build_allocator
6510         has stored it, just ahead of the adjusted address we are passed.
6511         (build_call_raise): Handle properly the generation of line numbers when
6512         the node is marked No_Location.
6513         (compare_elmt_bitpos): Use tree_int_cst_compare.  Stabilize the sort
6514         by using DECL_UID on ties.
6515         (build_binary_op) <EQ_EXPR>: Accept fat pointer types with the same
6516         main variant.
6517         (build_call_raise): Handle converting exception into goto; support new
6518         argument KIND.
6519         (build_component_ref): Add new arg to build_call_raise.
6520
6521 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
6522
6523         * a-ztflau.adb, a-wtflau.adb, a-tiflau.adb (Load_Real): Do not parse
6524         "." in the case of nnn.xxx when nnn terminates with an underscore.
6525         Parse the remaining "#" or ":" in the case of nnn#.xxx#
6526
6527 2007-06-06  Robert Dewar  <dewar@adacore.com>
6528
6529         * a-tigeau.ads, a-tigeau.adb: (Store_Char): Change Buf to IN OUT
6530
6531 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
6532             Vincent Celier  <celier@adacore.com>
6533             Robert Dewar  <dewar@adacore.com>
6534
6535         * bindgen.adb (Gen_Output_File_Ada): Generate pragma No_Run_Time when
6536         needed.
6537         (Gen_Output_File_Ada, Gen_Output_File_C): Never use __attribute
6538         ((destructor)) for adafinal, even when switch -a is used.
6539         Do not issue pragma Linker_Destructor for adafinal when switch -a is
6540         used.
6541         (Gen_Object_Files_Options): Add formatting of Linker Options, when
6542         Output_Linker_Option_List is set. Suppress this formatting when
6543         Zero_Formatting is set.
6544         Add case for CLI_Target.
6545         (System_Restrictions_Used): New flag, used to avoid generating with of
6546         System_Restrictions and initialization of the data unless there is
6547         some use of System.Restrictions in the partition.
6548         (Check_System_Restrictions_Used): New procedure
6549
6550         * s-stalib.adb: Remove with of System.Restrictions. No longer needed
6551         since we only with this unit in the binder file if it is used elsewhere
6552         in the partition.
6553
6554 2007-06-06  Vincent Celier  <celier@adacore.com>
6555
6556         * bindusg.adb: Add line for @<response file>
6557         Add lines for new switches -R and -Z
6558
6559         * gnatbind.adb (Gnatbind): Do not include sources from the GNAT
6560         hierarchy in the list of files of the closure when -R is used
6561         (Gnatbind): Accept arguments starting with '@' to indicate response
6562         files and take the arguments from the response files.
6563         If List_Closure is set, display the referenced files
6564
6565 2007-06-06  Javier Miranda  <miranda@adacore.com>
6566             Robert Dewar  <dewar@adacore.com>
6567             Ed Schonberg  <schonberg@adacore.com>
6568
6569         * checks.ads, checks.adb (Apply_Address_Clause_Check): Handle case in
6570         which the address-clause is applied to in-mode actuals (allowed by
6571         13.1(22)).
6572         (Apply_Discriminant_Check): Do not generate a check if the type is
6573         constrained by a current instance.
6574         (Activate_Division_Check): New procedure
6575         (Activate_Overflow_Check): New procedure
6576         (Activate_Range_Check): New procedure
6577         Call these new Activate procedures instead of setting flags directly
6578         (Apply_Array_Size_Check): Removed, no longer needed.
6579         Code clean up: remove obsolete code related to GCC 2.
6580         (Get_E_Length): Protect against bomb in case scope is standard
6581         (Selected_Range_Checks): If the node to be checked is a conversion to
6582         an unconstrained array type, and the expression is a slice, use the
6583         bounds of the slice to construct the required constraint checks.
6584         Improve NOT NULL error messages
6585         (Apply_Constraint_Check): If the context is a null-excluding access
6586         type, diagnose properly the literal null.
6587
6588 2007-06-06  Pascal Obry  <obry@adacore.com>
6589
6590         * clean.adb (Clean_Archive): Use untouched casing for the archive name
6591         and the corresponding .deps file.
6592         (Clean_Interface_Copy_Directory): Use untouched casing for the library
6593         src directory. Minor code-clean-up. Use untouched casing for files
6594         read into the library src dir.
6595         (Clean_Library_Directory): Idem.
6596         (Parse_Cmd_Line): Accept new switch -aP
6597
6598 2007-06-06  Javier Miranda  <miranda@adacore.com>
6599             Ed Schonberg  <schonberg@adacore.com>
6600             Robert Dewar  <dewar@adacore.com>
6601             Eric Botcazou  <ebotcazou@adacore.com>
6602             Arnaud Charlet  <charlet@adacore.com>
6603
6604         * einfo.ads, einfo.adb (Available_View): New synthesized attribute
6605         applicable to types that have the With_Type flag set. Returns the
6606         non-limited view of the type, if available, otherwise the type itself.
6607         For class-wide types, there is no direct link in the tree, so we have
6608         to retrieve the class-wide type of the non-limited view of the Etype.
6609         New attributes Static_Initialization and Static_Elaboration_Desired.
6610         Remove the pragma Thread_Body, and the associated flag
6611         Is_Thread_Body in entities, and all related code.
6612         (Suppress_Value_Tracking_On_Call): New flag
6613         E_Exception has Esize and Alignment fields
6614         (Universal_Aliasing): New function.
6615         (Set_Universal_Aliasing): New procedure.
6616         (Write_Entity_Flags): Deal with Universal_Aliasing flag.
6617         (Check_Nested_Access): New procedure.
6618         (Has_Up_Level_Access, Set_Has_Up_Level_Access): New procedures.
6619         (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
6620         (Related_Interface): New attribute. Present in dispatch table pointer
6621         components of records. Set to point to the entity of the corresponding
6622         interface type.
6623         (Is_By_Reference_Type): Recurse on the full view of an incomplete type.
6624         (Original_Access_Type): Remove, not needed.
6625         (Root_Type): Handle properly subtypes of class-wide-types.
6626         Update comments.
6627
6628         * sem_ch4.adb (Analyze_Explicit_Dereference): Add support for
6629         class-wide types visible through limited-with clauses.
6630         (Try_Primitive_Operation): When examining all primitive operations of a
6631         tagged type, do not consider subprograms labeled as hidden unless they
6632         belong to a private generic type with a tagged parent.
6633         (Try_Object_Operation): Extensive rewriting, to handle properly various
6634         overloading cases, when several ancestors may have class-wide operations
6635         that are possible candidates, and when the overloaded functions return
6636         array types and have defaulted parameters so that the call may be
6637         interpreted as an indexing.
6638         (Analyze_Allocator): Remove Mark_Allocator and its invocation.
6639         (Process_Function_Call): use Next, rather than Next_Actual, to analyze
6640         successive actuals before analyzing the call itself.
6641         (Try_Primitive_Operation): A primitive operation is compatible with the
6642         prefix if the prefix has a synchronized type and the type of the formal
6643         is its corresponding record, as can be the case when the primitive
6644         operation is declared outside of the body of the type.
6645         (Traverse_Homonyms): New subprocedure of Try_Class_Wide_Operation, to
6646         perform homonym traversal, looking for class-wide operation matches
6647         (formerly done in statements of Try_Class_Wide_Operation). Matches on
6648         access parameters are now restricted to anonymous access types.
6649         (Mark_Allocator): An allocator with a discriminant association parent is
6650         a coextension.
6651         (Try_One_Prefix_Interpretation): If the type of the object is
6652         incomplete, as can be happen when it is a limited view obtained through
6653         a limited_with_clause, the selected component is not part of a prefixed
6654         call.
6655         (Complete_Object_Operation): Diagnose properly an object that is not
6656         aliased when the corresponding controlling formal is an access
6657         parameter.
6658         (Try_Primitive_Operation, Try_Class_Wide_Operation): Diagnose properly
6659         ambiguous calls in prefixed notation, where two primitives differ only
6660         in that the controlling argument of one is an access parameter.
6661
6662         * sem_ch6.adb (Has_Single_Return): Add guard in code that determines
6663         whether a function that returns an unconstrained type can be inlined.
6664         (Process_Formals): Diagnose properly the illegal use of an incomplete
6665         type in the profile of an access_to_subprogram declaration.
6666         (Check_Synchronized_Overriding): Nothing check for concurrent types, the
6667         operations are attached to the corresponding record.
6668         (Analyze_Subprogram_Specification): Add variables Formal and Formal_Typ.
6669         When processing a primitive of a concurrent type which implements an
6670         interface change the type of all controlling formals to that of the
6671         corresponding record type.
6672         (Check_Synchronized_Overriding): Relax the conditional logic when trying
6673         to determine the tagged type to which a primitive belongs.
6674         (Check_Conventions): Capture condition to ignore a primitive operation
6675         (which is shared between the loop in Check_Conventions and the one in
6676         Check_Convention) in a new local function Skip_Check.
6677         (Check_Convention): Rename Prim_Op to Second_Prim_Op to avoid possible
6678         confusion with Check_Conventions' own Prim_Op local variable.
6679         (Create_Extra_Formals): Test for a tagged result type rather than a
6680         controlling result when determining whether to add a BIP_Alloc_Form
6681         formal and a BIP_Final_List formal to the function.
6682         (Check_Conformance); For parameters that are anonymous access types,
6683         subtype conformance requires that the not null and the constant
6684         indicators must match
6685         (Check_Synchronized_Overriding): New parameter Formal_Typ. Add machinery
6686         to retrieve the appropriate type when processing a concurrent type
6687         declared within a generic. Minor comment reformatting. Change invocation
6688         of Overrides_Synchronized_Primitive to Find_Overridden_Synchronized_Pri-
6689         mitive.
6690         (Analyze_Subprogram_Body): If the return type of a function is an
6691         anonymous access to the limited view of a class-wide type, and the
6692         non-limited view of the type is available, update the type of the
6693         function so that code can be generated.
6694         (Process_Formals): In case of access-subtype itype whose designated
6695         type is also an itype (situation that happens now with access to
6696         subprograms) we mark the access-type itype with the Has_Delayed_Freeze
6697         attribute to avoid backend problems.
6698         (Check_Return_Subtype_Indication): Replace R_Type with R_Stm_Type in
6699         init of R_Stm_Type_Is_Anon_Access. Also check that base types of the
6700         anonymous types' designated types are same before testing
6701         Subtypes_Statically_Match.
6702         (Create_Extra_Formals): Test for a named access parameter that is a
6703         controlling formal as an additional condition for adding an
6704         accessibility level formal. This can occur in the subp type created for
6705         dispatching calls in Expand_Dispatching_Call, and allows calling
6706         Create_Extra_Formals from that procedure rather than special-casing the
6707         extra formals there.
6708         (Create_Extra_Formals): Add BIP_Alloc_Form and BIP_Final_List formals
6709         when the function has a controlling result.
6710         (Check_Returns): Add much more knowledge of the optimization of local
6711         raise statements to gotos, to retain proper warnings in this case.
6712         (Check_Statement_Sequence): Ignore N_Push_xxx_Label and N_Pop_xxx_Label
6713         nodes when looking for last statement.
6714
6715         * sem_type.ads, sem_type.adb (Specific_Type): Add support for
6716         class-wide types visible through limited with clauses.
6717         (Add_One_Interp): If the operands are anonymous access types, the
6718         predefined operator on universal_access is immediately visibles
6719         (Find_Unique_Type): Handle anonymous access to subprogram types just as
6720         other anonymous access types.
6721         (Disambiguate): Take into account CIL convention.
6722         (Interface_Present_In_Ancestor): Add support for class-wide interfaces.
6723
6724 2007-06-06  Robert Dewar  <dewar@adacore.com>
6725
6726         * sinput.ads, sinput.adb, uintp.ads, urealp.adb, stringt.adb,
6727         sem_elim.adb, prj-strt.adb, repinfo.ads, repinfo.adb, namet.ads,
6728         elists.ads, elists.adb, lib.ads, lib.adb (Unlock): New procedure.
6729         Fix lower bound of tables.
6730         Add rep clauses.
6731
6732         * nlists.adb: Ditto.
6733         (Prev_Node, Next_Node): Change index type to Int so that it properly
6734         covers the range First_Node_Id - 1 up.
6735
6736 2007-06-06  Javier Miranda  <miranda@adacore.com>
6737             Ed Schonberg  <schonberg@adacore.com>
6738             Bob Duff  <duff@adacore.com>
6739             Hristian Kirtchev  <kirtchev@adacore.com>
6740
6741         * exp_aggr.ads, exp_aggr.adb: 
6742         (Build_Record_Aggr_Code): Add missing initialization of secondary tags
6743         in extension aggregates.
6744         (Flatten): Other conditions being met, an aggregate is static if the
6745         low bound given by component associations is different from the low
6746         bound of the base index type.
6747         (Packed_Array_Aggregate_Handled): If the component type is itself a
6748         packed array or record, the front-end must expand into assignments.
6749         (Gen_Ctrl_Actions_For_Aggr): In call to Init_Controller, pass False to
6750         Init_Pr, instead of Ancestor_Is_Expression.
6751         (Gen_Ctrl_Actions_For_Aggr): When processing an aggregate of a
6752         coextension chain root, either generate a list controller or use the
6753         already existing one.
6754         (Static_Array_Aggregate): New procedure to construct a positional
6755         aggregate that can be handled by the backend, when all bounds and
6756         components are compile-time known constants.
6757         (Expand_Record_Aggregate): Force conversion of aggregates of tagged
6758         types covering interface types into assignments.
6759         (Replace_Type): move to Build_Record_Aggr_Code.
6760         (Expand_Record_Aggr_Code): if the target of the aggregate is an
6761         interface type, convert to the definite type of the aggregate itself,
6762         so that needed components are visible.
6763         (Convert_Aggr_In_Object_Decl): If the aggregate has controlled
6764         components and the context is an extended return statement do not
6765         create a transient block for it, to prevent premature finalization
6766         before the return is executed.
6767         (Gen_Assign): Do not generate a call to deep adjust routine if the
6768         component type is itself an array of controlled (sub)-components
6769         initialized with an inner aggregate.
6770         (Component_Check): New name for Static_Check. This name is now more
6771         appropriate, and documentation is added which was missing.
6772         (Component_Check): Add test for bit aligned component value
6773         (Component_Not_OK_For_Backend): Renames Has_Delayed_Nested_Aggregate_Or_
6774         Tagged_Comps, name is more appropriate given added function below.
6775         (Component_Not_OK_For_Backend): Check for bit aligned component ref.
6776
6777 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
6778             Javier Miranda  <miranda@adacore.com>
6779             Robert Dewar  <dewar@adacore.com>
6780
6781         * exp_attr.adb (Expand_N_Attribute_Reference): Case Callable and
6782         Terminated: Add unchecked type conversion from System.Address to
6783         System.Tasking.Task_Id when calling the predefined primitive
6784         _disp_get_task_id.
6785         Disable new Ada 05 accessibility check for JVM.NET targets, which
6786         cannot be implemented in a practical way.
6787         (Expand_N_Attribute_Reference: case Attribute_Tag): The use of 'Tag in
6788         the sources always references the tag of the actual object. Therefore,
6789         if 'Tag is applied in the sources to class-wide interface objects we
6790         generate code that displaces "this" to reference the base of the object.
6791         (Expand_N_Attribute_Reference, case Size): Return specified size if
6792         known to front end.
6793         (Expand_N_Attribute_Reference): The expansion of the 'Address attribute
6794         has code that displaces the pointer of the object to manage interface
6795         types. However this code must not be executed when the prefix is a
6796         subprogram. This bug caused the wrong expansion of the internally
6797         generated assignment that fills the dispatch table when the primitive
6798         is a function returning a class-wide interface type.
6799         (Expand_N_Attribute_Reference:Attribute_Valid): Remove incorrect call to
6800         Set_Attribute_Name for Name_Unaligned_Valid.
6801
6802 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
6803             Gary Dismukes  <dismukes@adacore.com>
6804
6805         * exp_ch13.adb (Expand_N_Attribute_Definition_Clause, case 'Address):
6806         If the initialization is the equivalent aggregate of the initialization
6807         procedure of the type, do not remove it.
6808         (Expand_N_Attribute_Definition_Clause): Exclude access variables
6809         initialized to null from having their expression reset to empty and
6810         note this exception in the comment.
6811
6812 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
6813             Robert Dewar  <dewar@adacore.com>
6814             Ed Schonberg  <schonberg@adacore.com>
6815             Gary Dismukes  <dismukes@adacore.com>
6816
6817         * exp_ch2.adb: Remove "with" and "use" clauses for Namet and Snames.
6818         Add "with" and "use" clauses for Sem_Attr.
6819         (Expand_Current_Value): Do not replace occurences of attribute
6820         references where the prefix must be a simple name.
6821
6822         * sem_attr.ads, sem_attr.adb: Remove "with" and "use" clauses for
6823         Namet. Add new arrays Attribute_Name_Modifies_Prefix and
6824         Attribute_Requires_Simple_Name_Prefix.
6825         (Name_Modifies_Prefix): Body of new function.
6826         (Requires_Simple_Name_Prefix): Body of new function.
6827         (Resolve_Attribute, case Access): Improve error message for case of
6828         mismatched conventions.
6829         (Analyze_Attribute, case 'Tag): The prefix the attribute cannot be of an
6830         incomplete type.
6831         (Analyze_Attribute, case 'Access): If the type of the prefix is a
6832         constrained subtype for a nominal unconstrained type, use its base type
6833         to check for conformance with the context.
6834         (Resolve_Attribute): Remove test of the access type being associated
6835         with a return statement from condition for performing accessibility
6836         checks on access attributes, since this case is now captured by
6837         Is_Local_Anonymous_Access.
6838         (Analyze_Access_Attribute): Set Address_Taken on entity
6839         (Analyze_Attribute, case Address): Set Address_Taken on entity
6840         (OK_Self_Reference): Traverse tree to locate enclosing aggregate when
6841         validating an access attribute whose prefix is a current instance.
6842         (Resolve_Attribute): In case of attributes 'Code_Address and 'Address
6843         applied to dispatching operations, if freezing is required then we set
6844         the attribute Has_Delayed_Freeze in the prefix's entity.
6845         (Check_Local_Access): Set flag Suppress_Value_Tracking_On_Call in
6846         current scope if access of local subprogram taken
6847         (Analyze_Access_Attribute): Check legality of self-reference even if the
6848         expression comes from source, as when a single component association in
6849         an aggregate has a box association.
6850         (Resolve_Attribute, case 'Access): Do not apply accessibility checks to
6851         the prefix if it is a protected operation and the attribute is
6852         Unrestricted_Access.
6853         (Resolve_Attribute, case 'Access): Set the Etype of the attribute
6854         reference to the base type of the context, to force a constraint check
6855         when the context is an access subtype with an explicit constraint.
6856         (Analyze_Attribute, case 'Class): If the prefix is an interface and the
6857         node is rewritten as an interface conversion. leave unanalyzed after
6858         resolution, to ensure that type checking against the context will take
6859         place.
6860
6861 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
6862             Javier Miranda  <miranda@adacore.com>
6863             Robert Dewar  <dewar@adacore.com>
6864
6865         * exp_ch3.adb (Make_Controlling_Function_Wrappers): generate wrapper a
6866         wrapper when the full view of the controlling type of an inherited
6867         function that dispatches on result implements interfaces.
6868         (Expand_N_Object_Declaration): In cases where the type of the
6869         declaration is anonymous access, create finalization list for it.
6870         (Expand_N_Object_Declaration): Generate a persistent_bss directive only
6871         if the object has no explicit initialization, to match description of
6872         functionality of pragam Persistent_BSS.
6873         (Build_Equivalent_Array_Aggregate, Build_Equivalent_Record_Aggregate):
6874         new function to build static aggregates, to replace initialization call
6875         when static initialization is desired.
6876         (Freeze_Type): Generate a list controller for an access type whenever
6877         its designated type has controlled anonymous access discriminants.
6878         (Build_Equivalent_Aggregate): New procedure to compute a static
6879         aggregate to be used as default initialization for composite types,
6880         instead of a generating a call to the initialization procedure for the
6881         type.
6882         (Build_Initialization_Call): When available, replace a call to the
6883         initialization procedure with a copy of the equivalent static aggregate
6884         for the type.
6885         (Expand_N_Object_Declaration):  Use New_Occurrence_Of in generated
6886         declarations for objects of a class-wide interface type, rather than
6887         just identifiers, to prevent visibility problems.
6888         (Expand_N_Object_Declaration): When expanding the declaration for an
6889         object of a class-wide interface type, preserve the homonym chain of
6890         the original entity before exchanging it with that of the generated
6891         renaming declaration.
6892         (Freeze_Enumeration_Type): Don't raise CE if No_Exception_Propagation
6893         active, because there is no way to handle the exception.
6894         (Freeze_Record_Type): In case of CPP_Class types add a call to Make_DT
6895         to do a minimum decoration of the Access_Disp_Table list.
6896         (Expand_Record_Controller): Avoid the addition of the controller between
6897         the component containing the tag of a secondary dispatch table and its
6898         adjacent component that stores the offset to the base of the object.
6899         This latter component is only generated when the parent type has
6900         discriminants ---documented in Add_Interface_Tag_Components).
6901         (Apply_Array_Size_Check): Removed, no longer needed.
6902         (Expand_N_Full_Type_Declaration): If the type has anonymous access
6903         components, create a Master_Entity for it only if it contains tasks.
6904         (Build_Init_Procedure): Suppress the tag assignment compiling under
6905         no run-time mode.
6906         (Freeze_Record_Type): Remove code associated with creation of dispatch
6907         table.
6908         (Init_Secondary_Tags): Update type of actuals when generating calls to
6909         Ada.Tags.Set_Offset_To_Top
6910         (Stream_Operation_OK): Disable use of streams compiling under no
6911         run-time mode
6912         (Expand_N_Object_Declaration): Don't do Initialize_Scalars initalization
6913         if Has_Init_Expression set.
6914         (Build_Init_Procedure): Replace call to Fill_DT_Entry by call to
6915         Register_Primitive, which provides the same functionality.
6916         (Requires_Init_Proc): Return false in case of interface types.
6917         (Add_Secondary_Tables): Use the new attribute Related_Interface to
6918         cleanup the code.
6919         (Predefined_Primitive_Freeze): Do not assume that an internal entity
6920         is always associated with a predefined primitive because the internal
6921         entities associated with interface types are not predefined primitives.
6922         Therefore, the call to Is_Internal is replaced by a call to the
6923         function Is_Predefined_Dispatching_Operation.
6924         (Make_Eq_If): When generating the list of comparisons for the
6925         components of a given variant, omit the controller component that is
6926         present if the variant has controlled components.
6927
6928 2007-06-06  Javier Miranda  <miranda@adacore.com>
6929             Hristian Kirtchev  <kirtchev@adacore.com>
6930             Bob Duff  <duff@adacore.com>
6931
6932         * exp_ch4.adb (Complete_Coextension_Finalization): Add machinery to
6933         handle the creation of finalization lists and calls for nested
6934         coextensions when the root of the chains is part of a return statement.
6935         (Inside_A_Return_Statement): New function inside Complete_Coextension_
6936         Finalization.
6937         (Expand_Record_Equality): Skip components that are interface types.
6938         (Displace_Allocator_Pointer): Add missing support for interface subtypes
6939         (Expand_N_Allocator): Replace invocation of Is_Local_Access_Discriminant
6940         with Rewrite_Coextension. Change the condition for detecting coextension
6941         root nodes.
6942         (Is_Local_Access_Discriminant): Removed.
6943         (Rewrite_Coextension): New routine which rewrites a static coextension
6944         as a temporary and uses its unrestricted access in the construction of
6945         the outer object.
6946         (Complete_Coextension_Finalization): New routine. Generate finalization
6947         attachment calls to all delayed coextensions.
6948         (Expand_N_Allocator): Call Complete_Coextension_Finalization whenever
6949         the allocator is not a coextension itself and has delayed coextensions.
6950         If the current allocator is controlled, but also a coextension, delay
6951         the generation of the finalization attachment call.
6952         Rename local variable "Node" to "Nod" in order to avoid confusion with
6953         "Elists.Node".
6954         (Expand_Allocator_Expression): Call Adjust for initialized allocators of
6955         limited types that are not inherently limited. Such an allocator is
6956         illegal, but is generated by the expander for a return statement, to
6957         copy the result onto the secondary stack. This is the only case where a
6958         limited object can be copied. Generate code to displace the pointer
6959         to the object if the qualified expression is a class-wide interface
6960         object. Such displacement was missing and hence the copy of the object
6961         was wrong.
6962         (Apply_Accessibility_Check): Handle allocated objects initialized in
6963         place.
6964         (Displace_Allocator_Pointer): Subsidiary procedure to Expand_N_Allocator
6965         and Expand_Allocator_Expression. Allocating class-wide interface objects
6966         this routine displaces the pointer to the allocated object to reference
6967         the component referencing the corresponding secondary dispatch table.
6968         Expand_Allocator_Expression): Add missing support to allocate class-wide
6969         interface objects initialized with a qualified expression.
6970         (Get_Allocator_Final_List): Test for an anonymous access type that is a
6971         function result type, and use the finalization list associated with the
6972         function scope in that case (such an anonymous type should not be
6973         treated like an access parameter's type).
6974
6975 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
6976             Gary Dismukes  <dismukes@adacore.com>
6977             Javier Miranda  <miranda@adacore.com>
6978
6979         * exp_ch5.adb (Expand_N_Assignment_Statement): For the assignment of a
6980         controlled type, use Make_Handler_For_Ctrl_Operation to construct the
6981         required exception handler.
6982         (Expand_Simple_Function_Return, Expand_N_Return_Statement): Handle
6983         properly the case of a function whose return type is a limited
6984         class-wide interface type. Modify the code of the accessibility
6985         check to handle class-wide interface objects. In this case we need to
6986         displace "this" to reference the primary dispatch table to get access
6987         to the TSD of the object (to evaluate its accessibility level).
6988         (Expand_N_Extended_Return_Statement): Test for a tagged result type
6989         rather than a controlling result as one of the conditions for
6990         generating tests of the implicit BIP_Alloc_Form formal. The
6991         initialization assignment is also handled according to whether the
6992         result is tagged instead of controlling.
6993         In the case where the init assignment is inserted in the "then" part of
6994         the allocation conditional, rewrite the target to be a dereference of
6995         the implicit BIP_Object_Access formal.
6996         If the returned value is unconstrained and created on the secondary
6997         stack, mark the enclosing block and function so that the secondary
6998         stack is not reclaimed on return.
6999         Treat returns from functions with controlling results similarly to
7000         returns from functions with unconstrained result subtypes.
7001         If the object returned is unconstrained, and an allocator must be
7002         created for it, analyze the allocator once the block for the extended
7003         return is installed, to ensure that finalizable components
7004         of the expression use the proper finalization list. Guard the call to
7005         Move_Final_List with a check that there is something to finalize.
7006         (Make_Tag_Ctrl_Assignment): Use "old" handling
7007         of controlled type assignment for virtual machines, since new code uses
7008         unsupported features (such as direct access to bytes in memory).
7009
7010 2007-06-06  Gary Dismukes  <dismukes@adacore.com>
7011             Ed Schonberg  <schonberg@adacore.com>
7012
7013         * exp_ch6.ads, exp_ch6.adb (Expand_Call): When adding an extra
7014         accessibility actual, check for the case of an aliased object that has
7015         been rewritten as an Access attribute, and assign Prev to Prev_Orig so
7016         we fall into processing for the attribute rather than the name of the
7017         object.
7018         (Expand_Inline_Call): If an actual is a literal, and the corresponding
7019         formal has its address taken in the body, create a temporary to capture
7020         value.  If the return type is a limited interface, do not treat the
7021         return value as Controlled.
7022         (Is_In_Place_Function):  If the return type is a limited interface,
7023         treat as returning in place. The actual returned object may not always
7024         be limited, but the caller has to assume that it is returned in place.
7025         (Add_Final_List_Actual_To_Build_In_Place_Call): If the call is the
7026         context of an allocator, use the correct finalization chain (that is,
7027         the chain belonging to the access type, rather than the chain belonging
7028         to the current scope).
7029         (Add_Alloc_Form_Actual_To_Build_In_Place_Call): Test for a tagged
7030         result type rather than a controlling result as a precondition for
7031         adding an allocation form actual to a build-in-place call.
7032         (Add_Final_List_Actual_To_Build_In_Place_Call): Ditto.
7033         (Freeze_Subprogram): Code cleanup. Remove all the code that register the
7034         primitive in the dispatch tables. This work is now done by Make_DT when
7035         the type is frozen.
7036         (Register_Predefined_DT_Entry): Removed.
7037         (Add_Return): If end label is not present, use sloc of last statement
7038         for generated return statement in procedure, for better gdb behavior
7039         on expanded code.
7040         (Add_Access_Actual_To_Build_In_Place_Call): Set parent fields of the
7041         object address nodes to ensure proper processing by routines like
7042         Insert_After*.
7043         (Expand_Call): Fix generation of validity check for parameter
7044         (Add_Alloc_Form_Actual_To_Build_In_Place_Call): Return without passing
7045         the allocation form parameter if the result subtype is constrained,
7046         except when the function has a controlling result.
7047         (Add_Final_List_Actual_To_Build_In_Place_Call): Test Controlled_Type
7048         rather than Is_Controlled and Has_Controlled_Component, since we want to
7049         include class-wide result types in this treatment. Also test for a
7050         controlling result, since that also requires passing a finalization
7051         list.
7052         (Make_Build_In_Place_Call_In_Allocator): Call Add_Alloc_Form_Actual_*
7053         even when the result subtype is constrained, to handle calls involving
7054         controlling results.
7055         (Make_Build_In_Place_Call_In_Anonymous_Context): Add_Alloc_Form_Actual_*
7056         is now called even when the result subtype is constrained, to handle
7057         calls involving controlling results.
7058         (Make_Build_In_Place_Call_In_Assignment): Remove test for Is_Constrained
7059         on call to Add_Alloc_Form_Actual_To_Build_In_Place_Call (that procedure
7060         now performs the test).
7061         (Make_Build_In_Place_Call_In_Object_Declaration):
7062         Add_Alloc_Form_Actual_* is now called even when the result subtype is
7063         constrained, to handle calls involving controlling results.
7064         (Add_Return): Accomodate rewritten pattern from local raise to goto
7065         transformation, so that we still recognize an transfer statement
7066         and do the right thing here in that case.
7067         (Expand_N_Subprogram_Body): Add dummy Push/Pop_xxx_Label nodes at start
7068         and end of subprogram code.
7069         (Register_Interface_DT_Entry, Register_Predefined_DT_Entry): Add missing
7070         support for primitives that are functions (without formals) with a
7071         controlling result.
7072         (Inherited_From_Formal): If the actual subtype has not generic parent
7073         type, it is not an actual for a formal derived type, and there is no
7074         operation to inherit from the formal.
7075
7076 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
7077             Thomas Quinot  <quinot@adacore.com>
7078
7079         * exp_ch7.ads, exp_ch7.adb (Expand_Cleanup_Actions): Set Sloc of
7080         inserted cleanup code appropriately for GDB use.
7081         (Make_Deep_Proc): Use Make_Handler_For_Ctrl_Operation to create
7082         exception handler for Deep_Adjust or Deep_Finalize.
7083         (Make_Handler_For_Ctrl_Operation): New subprogram. When runtime entity
7084         Raise_From_Controlled_Operation is available, use a call to that
7085         subprogram instead of a plain "raise Program_Error" node to raise
7086         Program_Error if an exception is propagated from an Adjust or Finalize
7087         operation.
7088         (Insert_Actions_In_Scope_Around): If the statement to be wrapped
7089         appears in the optional statement list of a triggering alternative, the
7090         scope actions can be inserted directly there, and not in the list that
7091         includes the asynchronous select itself.
7092
7093 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
7094             Robert Dewar  <dewar@adacore.com>
7095             Hristian Kirtchev  <kirtchev@adacore.com>
7096
7097         * exp_ch9.ads, exp_ch9.adb (Build_Protected_Entry): Set sloc of
7098         generated exception handler appropriately when debugging generated code.
7099         Deal properly with No_Exception_Propagation restriction mode.
7100         (Expand_N_Abort_Statement): Add an unchecked type conversion from
7101         System.Address to System.Tasking.Task_Id when processing the result of
7102         the predefined primitive _disp_get_task_id.
7103         (Expand_N_Asynchronous_Select): Clarify comment.
7104         (Expand_N_Protected_Type_Declaration): Minor code cleanup.
7105         (Find_Parameter_Type): New routine inside Type_Conformant_Parameters.
7106         (Type_Conformant_Parameters): New parameter Prim_Op_Typ. Code cleanup.
7107         (Add_Private_Declarations, Build_Protected_Body): Use proper slocs for
7108         privals and for generated call to Complete_Entry_Body, for better gdb
7109         behavior.
7110         (Copy_Result_Type): Utility to construct a parameter and result profile
7111         for protected functions whose return type is an anonymous access to
7112         subprogram.
7113         (Build_Protected_Sub_Spec and Expand_Access_Protected_Subprogram_Type):
7114         call the above.
7115         (Build_Task_Activation_Call): Insert Activate_Tasks call at proper
7116         point when the local-raise-to-goto transformation has taken place.
7117
7118 2007-06-06  Javier Miranda  <miranda@adacore.com>
7119             Nicolas Setton  <setton@adacore.com>
7120
7121         * exp_dbug.adb (Get_Encoded_Name): Modified to continue providing its
7122         functionality when the backend is generating code.
7123         Otherwise any serious error
7124         reported by the backend calling the frontend routine Error_Msg
7125         changes the Compilation_Mode to Check_Semantics, disables the
7126         functionality of this routine and causes the generation of
7127         spureous additional errors.
7128
7129         * exp_dbug.ads (Pointers to Unconstrained Arrays): Document the
7130         debugging information now generated by the compiler for fat-pointer
7131         types.
7132         Document the contents of DW_AT_producer in the GNAT Vendor extensions to
7133         DWARF2/3.
7134         Document GNAT Vendor extensions to DWARF 2/3 and the "-gdwarf+" switch.
7135
7136 2007-06-06  Thomas Quinot  <quinot@adacore.com>
7137
7138         * exp_dist.ads, exp_dist.adb (Make_Transportable_Check): New subprogram
7139         (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
7140         PolyORB_Support.Build_Subprogram_Receiving_Stubs):
7141         For a remote call to a function with a classwide return type, apply an
7142         E.4(18) check to the returned value.
7143         (Add_RACW_Primitive_Declarations_And_Bodies): Do not generate stubs for
7144         stream attributes of the designated type of an RACW, as they are not
7145         dispatching primitive operations.
7146
7147 2007-06-06  Geert Bosch  <bosch@adacore.com>
7148
7149         * exp_fixd.adb (Integer_Literal): Add optional argument to construct a
7150         negative literal
7151         (Do_Divide_Fixed_Fixed): Add comments to indicate Frac is always
7152         positive
7153         (Do_Divide_Fixed_Universal): Handle case of negative Frac.
7154         (Do_Multiply_Fixed_Fixed): Add coments to indicate Frac is always
7155         positive
7156         (Do_Multiply_Fixed_Universal): Handle case of negative Frac.
7157
7158 2007-06-06  Javier Miranda  <miranda@adacore.com>
7159
7160         * exp_imgv.adb (Expand_Value_Attribute): Disable compilation of this
7161         attribute compiling package Ada.Tags under No_Run_Time_Mode.
7162
7163 2007-06-06  Javier Miranda  <miranda@adacore.com>
7164
7165         * exp_intr.adb (Expand_Unc_Deallocation): Add missing support for
7166         deallocation of class-wide interface objects.
7167         (Expand_Dispatching_Constructor_Call): Take into account that if the
7168         result of the dispatching constructor is an interface type, the
7169         function returns a class-wide interface type; otherwise the returned
7170         object would be actual. The frontend previously accepted returning
7171         interface types because Expand_Interface_Actuals silently performed
7172         the management of the returned type "as if" it were a class-wide
7173         interface type.
7174         (Expand_Dispatching_Constructor_Call): Replace call to
7175         Make_DT_Access_Action by direct call to Make_Function_Call.
7176
7177 2007-06-06  Robert Dewar  <dewar@adacore.com>
7178             Ed Schonberg  <schonberg@adacore.com>
7179
7180         * exp_pakd.adb (Expand_Packed_Not): Use RM_Size rather than ESize to
7181         compute masking constant, since we now set Esize properly to the
7182         underlying size.
7183         (Create_Packed_Array_Type): Set proper Esize value adjusted as required
7184         to match the alignment.
7185         (Create_Packed_Array_Type): Use Short_Short_Unsigned as base type for
7186         packed arrays of 8 bits or less.
7187
7188         * freeze.adb (Freeze_Entity): When freezing the formals of a
7189         subprogram, freeze the designated type of a parameter of an access type
7190         only if it is an access parameter.
7191         Increase size of C convention enumeration object
7192         (Freeze_Entity, array type case): Make sure Esize value is properly
7193         adjusted for the alignment if it is known.
7194         (Freeze_Entity, array type case): When checking bit packed arrays for
7195         the size being incorrect, check RM_Size, not Esize.
7196         (Freeze_Record_Type): Check for bad discriminated record convention
7197         (In_Exp_Body): Return true if the body is generated for a subprogram
7198         renaming, either an attribute renaming or a renaming as body.
7199         (Check_Itype): If the designated type of an anonymous access component
7200         is a non-protected subprogram type, indicate that it is frozen, to
7201         prevent out-of-scope freeze node at some subsequent call.
7202         (Freeze_Subprogram): On OpenVMS, reject descriptor passing mechanism
7203         only if the subprogram is neither imported nor exported, as well as the
7204         NCA descriptor class if the subprogram is exported.
7205
7206 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
7207             Arnaud Charlet  <charlet@adacore.com>
7208             Robert Dewar  <dewar@adacore.com>
7209             Gary Dismukes  <dismukes@adacore.com>
7210
7211         * exp_prag.adb (Expand_Pragma_Import_Or_Interface): Remove properly a
7212         default initialization on an imported object, when there is no
7213         initialization call generated for it.
7214         (Expand_Pragma_Assert): Add handling of No_Exception_Propagation
7215         restriction
7216
7217         * snames.h, snames.ads, snames.adb, par-prag.adb: New pragma
7218         Static_Elaboration_Desired.
7219         Remove pragma Thread_Body.
7220         Implement a new pragma No_Body
7221         Removes the Explicit_Overriding pragma
7222         Remove Optional_Overriding pragma
7223         (Prag): Deal with Universal_Aliasing.
7224         (Name_CIL, Name_CIL_Constructor, Convention_CIL,
7225         Pragma_CIL_Constructor): New names.
7226
7227         * sem_cat.adb (Validate_Object_Declaration): An initialization that
7228         uses the equivalent aggregate of a type must be treated as an implicit
7229         initialization.
7230         (Get_Categorization): Check a unit for pragma Preelaborate only if it
7231         has none of the other categories.
7232         (Process_Import_Or_Interface_Pragma): Report an error for an attempt
7233         to apply Import to an object renaming declaration.
7234
7235         * sem_prag.adb (Process_Import_Or_Interface): Warn that a type imported
7236         from a C++ class should be declared as limited and that it will be
7237         considererd limited.
7238         (Analyze_Pragma): Warn that a type specified with pragma CPP_Class
7239         should be declared as limited and that it will be considererd limited.
7240         (Ada_2005_Pragma): New procedure, used to deal with Ada 2005 pragmas
7241         (Analyze_Pragma, case Export): Diagnose export of enumeration literal
7242         (Analyze_Pragma): Deal with Universal_Aliasing.
7243         (Sig_Flags): Likewise.
7244         (Set_Encoded_Interface_Name): Suppress encoding when compiling for AAMP.
7245         (Overflow_Checks_Unsuppressed): New flag.
7246         (Process_Suppress_Unsuppress): Set Overflow_Checks_Unsuppressed.
7247         (Analyze_Pragma [case Pack]): Ignore pragma Pack and post warning in
7248         case of JVM or .NET targets, and compiling user code.
7249         Add debugging convenience routine rv
7250
7251 2007-06-06  Robert Dewar  <dewar@adacore.com>
7252
7253         * exp_strm.adb (Make_Field_Attributes): Avoid _Parent components that
7254         are interface type.
7255         (Build_Elementary_Input_Call): For floating-point use right type in the
7256         absence of strange size or stream size clauses.
7257         (Build_Elementary_Write_Call): Same fix
7258         (Has_Stream_Standard_Rep): Returns False if Stream_Size attribute
7259         set to value that does not match base type size.
7260
7261 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
7262
7263         * exp_util.ads, exp_util.adb (Expand_Subtype_From_Expr): In Ada2005, an
7264         object of a limited type can be initialized with a call to a function
7265         that returns in place. If the limited type has unknown discriminants,
7266         and the underlying type is a constrained composite type, build an actual
7267         subtype from the function call, as is done for private types.
7268         (Side_Effect_Free): An expression that is the renaming of an object or
7269         whose prefix is the renaming of a object, is not side-effect free
7270         because it may be assigned through the renaming and its value must be
7271         captured in a temporary.
7272         (Has_Controlled_Coextensions): New routine.
7273         (Expand_Subtype_From_Expr): Do nothing if type is a limited interface,
7274         as is done for other limited types.
7275         (Non_Limited_Designated_Type): new predicate.
7276         (Make_CW_Equivalent_Type): Modified to handle class-wide interface
7277         objects.
7278         Remove all handling of with_type clauses.
7279
7280         * par-ch10.adb: Remove all handling of with_type clauses.
7281
7282         * lib-load.ads, lib-load.adb (Load_Main_Source): Do not get the
7283         checksum if the main source could not be parsed.
7284         (Loat_Unit): When processing a child unit, determine properly whether
7285         the parent unit is a renaming when the parent is itself a child unit.
7286         Remove handling of with_type clauses.
7287
7288         * sinfo.ads, sinfo.adb (Is_Static_Coextension): New function.
7289         (Set_Is_Static_Coextension): New procedure.
7290         (Has_Local_Raise): New function
7291         (Set_Has_Local_Raise): New procedure
7292         (Renaming_Exception): New field
7293         (Has_Init_Expression): New flag
7294         (Delay_Finalize_Attach): Remove because flag is obsolete.
7295         (Set_Delay_Finalize_Attach): Remove because flag is obsolete.
7296         Remove all handling of with_type clauses.
7297         (Exception_Junk): Can now be set in N_Block_Statement
7298
7299 2007-06-06  Vincent Celier  <celier@adacore.com>
7300             Robert Dewar  <dewar@adacore.com>
7301
7302         * frontend.adb (Frontend): Return immediately if the main source could
7303         not be parsed, because of preprocessing errors.
7304
7305         * gnat1drv.adb (gnat1drv): Handle RE_Not_Available gracefully.
7306         (Gnat1drv): Exit with errors if the main source could not be parsed,
7307         because of preprocessing errors.
7308         (Check_Rep_Info): New procedure
7309
7310 2007-06-06  Robert Dewar  <dewar@adacore.com>
7311
7312         * g-hesorg.ads, g-heasor.ads,
7313         g-busorg.ads, g-bubsor.ads: Update documentation
7314         GNAT.Heap/Bubble_Sort_G is now pure
7315
7316 2007-06-06  Robert Dewar  <dewar@adacore.com>
7317
7318         * g-catiio.ads, g-catiio.adb (Image): Check for null picture string
7319
7320 2007-06-06  Robert Dewar  <dewar@adacore.com>
7321             Ed Schonberg  <schonberg@adacore.com>
7322
7323         * g-comlin.ads, g-comlin.adb: 
7324         Add new warning for renaming of function return objects
7325
7326         * opt.adb (Tree_Write, Tree_Read): Use proper expressions for size
7327         (Tree_Read): Use size of object instead of type'object_size, since the
7328         latter is incorrect for packed array types.
7329         (Tree_Write): Same fix
7330
7331         * opt.ads: Add new warning for renaming of function return objects
7332         (Generating_Code): New boolean variable used to indicate that the
7333         frontend as finished its work and has called the backend to process
7334         the tree and generate the object file.
7335         (GCC_Version): Is now private
7336         (Static_Dispatch_Tables): New constant declaration.
7337         (Overflow_Checks_Unsuppressed): New flag.
7338         (Process_Suppress_Unsuppress): Set Overflow_Checks_Unsuppressed.
7339         (List_Closure): New flag for gnatbind (-R)
7340         Zero_Formatting: New flag for gnatbind (-Z)
7341         (Special_Exception_Package_Used): New flag.
7342         (Warn_On_Unrepped_Components): New flag.
7343
7344         * sem_ch8.adb (Check_Library_Unit_Renaming): Check that the renamed
7345         unit is a compilation unit, rather than relying on its scope, so that
7346         Standard can be renamed.
7347         (Analyze_Object_Renaming): Add new warning for renaming of function
7348         return objects.
7349         Also reject attempt to rename function return object in Ada 83 mode.
7350         (Attribute_Renaming): In case of tagged types, add the body of the
7351         generated function to the freezing actions of the type.
7352         (Find_Type): A protected type is visible right after the reserved word
7353         "is" is encountered in its type declaration. Set the entity and type
7354         rather than emitting an error message.
7355         (New_Scope): Properly propagate Discard_Names to inner scopes
7356         (Check_Nested_Access): New procedure.
7357         (Has_Nested_Access, Set_Has_Nested_Access): New procedures.
7358         (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
7359
7360         * sem_warn.ads, sem_warn.adb: Improvements to infinite loop warning
7361         Add new warning for renaming of function return objects
7362         (Check_References): Suppress warnings for objects whose type or
7363         base type has Warnings suppressed.
7364         (Set_Dot_Warning_Switch): Add processing for -gnatw.c/C
7365         (Set_Warning_Switch): Include new -gnatwc in -gnatwa
7366
7367 2007-06-06  Vincent Celier  <celier@adacore.com>
7368             Emmanuel Briot  <briot@adacore.com>
7369             Olivier Hainque  <hainque@adacore.com>
7370
7371         * g-debpoo.ads, g-debpoo.adb (Free_Physically.Free_Blocks): Use the
7372         absolute value of Header.Block_Size when displaying the freed physical
7373         memory in traces.
7374         (Allocate): Compute Storage_Address using Integer_Address, not
7375         Storage_Offset, because the range of Storage_Offset may not be large
7376         enough.
7377         (Configure): New parameter Low_Level_Traces
7378         (Allocate, Deallocation, Free_Physically): Added low-level traces
7379         (Configure): new parameter Errors_To_Stdout.
7380         (Output_File): new subprogram
7381         (Deallocate, Dereference): Send error messages to the proper stream
7382         (Print_Pool, Print_Info_Stdout): Make sure the output goes to stdout, as
7383         documented. Previous code would send it to the current output file
7384         defined in GNAT.IO, which might not be stdout
7385         (Is_Valid): Adjust comment to mention that a positive reply means that
7386         Header_Of may be used to retrieve the allocation header associated with
7387         the subprogram Storage address argument. Return False early if this
7388         address argument is misaligned.
7389
7390 2007-06-06  Vincent Celier  <celier@adacore.com>
7391
7392         * gnatcmd.adb (GNATCmd): Accept switch -aP for commands that accept
7393         switch -P
7394         (ASIS_Main): New global variable
7395         (Get_Closure): New procedure
7396         (GNATCmd): Set ASIS_Main when -P and -U with a main is used for gnat
7397         check, metric or pretty. Call Get_Closure in this case.
7398         (Check_Files): For GNAT LIST, check all sources of all projects when
7399         All_Projects is True.
7400         (GNATCmd): Accept -U for GNAT LIST
7401
7402 2007-06-06  Vincent Celier  <celier@adacore.com>
7403
7404         * gnatlink.adb (Gnatlink): Do not specify -static-libgcc when --LINK=
7405         has been specified
7406         Correct error message when invocation of the linker fails
7407         Add explicit size clause for the C imported variables
7408         Object_List_File_Supported and Using_GNU_Linker to emphasize that
7409         we expect char size.
7410         Read target parameters earlier, since this is needed to set
7411         Target_VM properly. Also do not use -static/shared-libgcc for non GCC
7412         targets.
7413
7414 2007-06-06  Vincent Celier  <celier@adacore.com>
7415
7416         * gnatls.adb: 
7417         Add 3 spaces before the default project directory when displaying
7418         the project search path.
7419         Add new command line switch '-l' to display license information.
7420
7421 2007-06-06  Vasiliy Fofanov  <fofanov@adacore.com>
7422
7423         * gmem.c: Add support for timestamps on memory operations.
7424
7425         * memtrack.adb, gnatmem.adb: Add support for timestamps on memory
7426         operations (not used currently, just foundation for future
7427         enhancements). Add possibility to perform full dump of gmem.out file.
7428         (Print_Back_Traces): Declare accesses to root arrays constants since
7429         they aren't modified.
7430         (Print_Back_Traces): allocate root arrays on the heap rather than stack.
7431
7432 2007-06-06  Vincent Celier  <celier@adacore.com>
7433
7434         * gnatsym.adb: Update Copyright notice
7435         (Parse_Cmd_Line): Accept new switch -D
7436         (Gnatsym): In Direct policy (switch -D) copy reference file to symbol
7437          file.
7438
7439         * prj.ads (Policy): New policy Direct
7440         (Yes_No_Unknown): New enumeration type
7441         (Project_Data): New component Libgnarl_Needed
7442
7443         * prj-nmsc.adb (Check_For_Source): When recording a source file make
7444         use the untouched pathname casing.
7445         (Get_Directories): Ensure that the Display_Exec_Directory is using the
7446         proper casing on non case-sensitive platforms like Windows.
7447         (Get_Unit): Accept file names x__... and x~... (where x = a, g, i or s)
7448         on all platforms, as it is not possible to know which one is allowed
7449         before processing the project files.
7450         (Check_Stand_Alone_Library): Check that Library_Reference_Symbol_File is
7451         specified when symbol policy is Direct. Check that when there is a
7452         symbol file defined (either by default or with attribute
7453         Library_Symbol_File) it is not the same as the reference symbol file.
7454         (Check_Stand_Alone_Library): Recognize new symbol policy Direct.
7455         (Look_For_Sources): Allow Locally_Removed_Files to be declare in non
7456         extending projects.
7457         (Record_Ada_Source): Record a source that has been locally removed in an
7458         imported project.
7459
7460         * symbols.ads (Policy): New policy Direct
7461
7462         * symbols-vms.adb (Initialize): Take new policy Direct in case
7463         statement
7464
7465 2007-06-06  Vincent Celier  <celier@adacore.com>
7466
7467         * g-os_lib.ads, g-os_lib.adb (Normalize_Pathname.Get_Directory):
7468         Correct obvious bug (return Dir; instead of return Directory;).
7469         (Normalize_Pathname): Use Reference_Dir'Length, not Reference_Dir'Last
7470
7471 2007-06-06  Thomas Quinot  <quinot@adacore.com>
7472
7473         * g-pehage.adb (Produce): Open output files in Binary mode, so that
7474         they have UNIX line endings (LF only) even on Windows, and thus pass
7475         all GNAT style checks.
7476
7477 2007-06-06  Emmanuel Briot  <briot@adacore.com>
7478
7479         * g-regpat.adb (Quote): Fix improper quoting of '.'
7480
7481 2007-06-06  Thomas Quinot  <quinot@adacore.com>
7482
7483         * g-soccon.ads: Add new constant Thread_Blocking_IO, always True by
7484         default, set False on a per-runtime basis.
7485         (Need_Netdb_Buffer): New constant.
7486
7487         * g-socket.ads, g-socket.adb: Import new package
7488         GNAT.Sockets.Thin.Task_Safe_NetDB.
7489         (Raise_Host_Error): Use Host_Error_Message from platform-specific thin
7490         binding to obtain proper message.
7491         (Close_Selector): Use GNAT.Sockets.Thin.Signalling_Fds.Close.
7492         Replace various occurrences of Arry (Arry'First)'Address with the
7493         equivalent Arry'Address (GNAT always follows implementation advice from
7494         13.3(14)).
7495         (Get_Host_By_Address, Get_Host_By_Name,
7496         Get_Service_By_Name, Get_Service_By_Port): Do not use GNAT.Task_Lock;
7497         instead, rely on platform-specific task safe netdb operations provided
7498         by g-socthi.
7499
7500         * g-socthi.ads, g-socthi.adb (Initialize): Remove obsolete formal
7501         parameter Process_Blocking_IO.
7502         (Host_Error_Messages): Add stub body.
7503         (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
7504         (Safe_Gethostbyname, Safe_Gethostbyaddr, Safe_Getservbyname,
7505         Safe_Getservbyport): Move functions into new child package
7506         Task_Safe_NetDB.
7507         (Nonreentrant_Gethostbyname, Nonreentrant_Gethostbyaddr,
7508         Nonreentrant_Getservbyname, Nonreentrant_Getservbyport): New routines.
7509         (In_Addr): Add alignment clause.
7510
7511 2007-06-06  Robert Dewar  <dewar@adacore.com>
7512
7513         * g-trasym.ads, g-traceb.ads: Update list of supported targets
7514         Add note about symbolic traceback
7515
7516 2007-06-06  Pascal Obry  <obry@adacore.com>
7517
7518         * hostparm.ads (Normalized_CWD): Use the host directory separator
7519         instead of the hardcoded forward slash which is not the proper
7520         character on Windows for example.
7521         (Java_VM): Removed.
7522
7523 2007-06-06  Vincent Celier  <celier@adacore.com>
7524             Arnaud Charlet  <charlet@adacore.com>
7525
7526         * a-clrefi.adb, a-clrefi.ads: New files
7527
7528         * impunit.adb: Add s-os_lib in the list of user visible units.
7529         (Non_Imp_File_Names_95): Add a-clrefi to this list
7530         Remove obsolete run-time entries.
7531         (Non_Imp_File_Names_05): Add Ada 2005 entries for:
7532          "a-exetim" -- Ada.Execution_Time
7533          "a-extiti" -- Ada.Execution_Time.Timers
7534
7535         * mlib-prj.ads, mlib-prj.adb
7536         (Build_Library): Use untouched object dir and library dir. At the
7537         same time makes sure that the checks are done using the canonical
7538         form. Removes hard-coded directory separator and use the proper host
7539         one instead.
7540         (Process_Project): Do not look in object directory to check if libgnarl
7541         is needed for a library, if there is no object directory.
7542         (Build_Library): Scan the ALI files to decide if libgnarl is needed for
7543         linking.
7544         (Build_Library): When invoking gnatbind, use a response file if the
7545         total size of the arguments is too large.
7546
7547         * Makefile.rtl: (g-sttsne): New object file.
7548         Add entry for a-clrefi, s-utf_32, System.Exceptions
7549
7550         * Make-lang.in: Remove bogus dependency of s-memory.o on memtrack.o.
7551         (GNAT_ADA_OBJS, GNATBIND_OBJS): Add s-except.o.
7552         (GNATBIND_OBJS): Add new objects a-clrefi.o and a-comlin.o
7553         Change g-string to s-string, g-os_lib to s-os_lib
7554         Change all g-utf_32 references to s-utf_32
7555
7556 2007-06-06  Tristan Gingold  <gingold@adacore.com>
7557             Olivier Hainque  <hainque@adacore.com>
7558
7559         * init.c: Do not adjust IP of an imported VMS exception of ia64.
7560         LIB$STOP is called to raise an exception and the IP of the exception
7561         is the instruction right after the call.
7562         (__gnat_adjust_context_for_raise, AIX): Implement.
7563         (__gnat_error_handler, AIX): Accept SIGINFO related arguments and call
7564          adjust_context_for_raise before Raise_From_Signal_Hanler.
7565         (__gnat_install_handler, AIX): Add SA_SIGINFO to the sa_flags, to ensure
7566         siginfo is passed to the handler, necessary to let the zcx propagation
7567         engine unwind past it.
7568
7569 2007-06-06  Olivier Hainque  <hainque@adacore.com>
7570
7571         * initialize.c (__gnat_initialize for vxworks):  Update documentation
7572         on the ZCX support, using different sets of crtstuff objects than with
7573         GCC 3.4.
7574
7575 2007-06-06  Robert Dewar  <dewar@adacore.com>
7576
7577         * layout.ads, layout.adb (Adjust_Esize_Alignment): Move spec to package
7578         spec from body
7579         (Layout_Type): Fix recomputation of size from alignment.
7580
7581 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
7582             Javier Miranda  <miranda@adacore.com>
7583
7584         * sem_ch12.adb (Analyze_Associations): Diagnose use of an others
7585         association in an instance.
7586         (Copy_Generic_Node): If the node is a string literal, no need to copy
7587         its descendants.
7588         (Is_Generic_Formal): For a formal subprogram, the declaration is the
7589         grandparent of the entity.
7590         (Analyze_Formal_Interface_Type): Transform into a full type declaration,
7591         to simplify handling of formal interfaces that derive from other formal
7592         interfaces.
7593         (Instantiate_Subprogram_Body): The defining unit name of the body of
7594         the instance should be a defining identifier.
7595         (Install_Formal_Packages): make global to the package, for use in
7596         instantiations of child units.
7597         (Analyze_Package_Instantiation): Do not attempt to set information on an
7598         enclosing master of an entry when expansion is disabled.
7599         (Instantiate_Type): If the actual is a tagged synchronized type and the
7600         generic ancestor is an interface, create a generic actual for the
7601         corresponding record.
7602         (Analyze_Formal_Derived_Interface_Type): Rewrite as a derived type
7603         declaration, to ensure that the interface list is processed correctly.
7604         (Inline_Instance_Body): If enclosing scope is an instance body, remove
7605         its entities from visibiility as well.
7606         (Pre_Analyze_Actuals): if the actual is an allocator with  constraints
7607         given with a named association, analyze the expression only, not the
7608         discriminant association itself.
7609         (Reset_Entity): If the analysis of a selected component is transformed
7610         into an expanded name in the prefix of a call with parameters, do not
7611         transform the original node into an expanded name, to prevent visibility
7612         errors in the case of nested generics.
7613         (Check_Private_View): For an array type, check whether the index types
7614         may need exchanging.
7615
7616 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
7617             Vincent Celier  <celier@adacore.com>
7618
7619         * lib-writ.adb: Handle Convention_CIL in addition to Convention_Java,
7620         since both are separated.
7621         Add support for imported CIL packages.
7622         Add further special handling of "value_type" for CIL.
7623         Add special handling of pragma Import for CIL.
7624
7625         * make.ads, make.adb: When switch -eS is used, direct all outputs to
7626         standard output instead of standard error, except errors.
7627         (Absolute_Path): Use untouched casing for the parent directory.
7628         (Add_Library_Search_Dir): Use the untouched directory name.
7629         (Add_Source_Search_Dir): Idem.
7630         (Change_To_Object_Directory): Update output to use proper casing.
7631         (Create_Binder_Mapping_File): Use the untouched filename to set
7632         ALI_Name.
7633         (Gnatmake): Use untouched library and executable directory names.
7634         (Insert_Project_Sources): Use untouched filename for spec and body.
7635         (Is_In_Object_Directory): Use untouched object directory.
7636         (Mark_Directory): Idem.
7637         (Collect_Arguments_And_Compile): Ensure that Full_Source_File always
7638         contains the non-canonical filename in all cases.
7639         (Change_To_Object_Directory): In verbose mode, display the name of the
7640         object directory we're changing to.
7641         (Compile_Sources): Make sure, when a project file is used, to compile
7642         the body of the unit, when there is one, even when only the spec is
7643         recorded in an ALI file.
7644         (Gcc_Switches, Binder_Switches, Linker_Switches): Tables moved from the
7645         spec to the body.
7646         (Report_Compilation_Failed): New procedure
7647         (Bind, Display_Commands, Compile_Sources, Initialize, Scan_Make_Arg):
7648         procedures moved from the spec to the body.
7649         (Extract_Failure): Removed, not used
7650         Replace explicit raises of exception Bind_Failed and Link_Failed with
7651         calls to Make_Failed with the proper message.
7652         Replace explicit raises of exception Compilation_Failed with calls to
7653         procedure Report_Compilation_Failed.
7654         (Initialize): Create mapping files unconditionally when using project
7655         files.
7656
7657         * sem_mech.adb: (Name_CIL, Name_CIL_Constructor, Convention_CIL,
7658         Pragma_CIL_Constructor): New names.
7659
7660         * targparm.ads, targparm.adb
7661         (Compiler_System_Version): Removed, no longer used.
7662         (Get_Target_Parameters): Relax checks on system.ads validity. Add
7663         handling of two new system flags: JVM and CLI.
7664
7665 2007-06-06  Jose Ruiz  <ruiz@adacore.com>
7666             Arnaud Charlet  <charlet@adacore.com>
7667
7668         * Makefile.in (LIBGNAT_TARGET_PAIRS for VxWorks 6): For the RTP run
7669         time, use the default s-interr body that provides interrupt support
7670         based on signals.
7671         (LIBGNAT_TARGET_PAIRS for x86-linux): Use specialized versions of
7672         a-exetim.ad{s,b}, a-extiti.ad{s,b}, a-rttiev.ad{s,b}, s-osinte.ad{s,b},
7673         g-soccon.ads, and s-taprop.adb for the marte run time.
7674         (EXTRA_GNATRTL_TASKING_OBJS for x86-linux): Execution time clocks and
7675         timers are supported on marte.
7676         (EH_MECHANISM for marte): Do not use ZCX.
7677         (THREADSLIB for marte): Use -lmarte.
7678         Add mlib-tgt-vms.o to the list of objects for gnatmake for VMS
7679         Add mlib-tgt-specific.o to gnatmake objects
7680         mlib-tgt-<platforms>.adb is now the body of MLib.Tgt.Specific, no
7681         longer of MLib.Tgt.
7682         (LIBGNAT_TARGET_PAIRS for vxworks): When building a run time for VxWorks
7683         6, either kernel or rtp, use a specialized version of s-osinte.ads.
7684
7685 2007-06-06  Pascal Obry  <obry@adacore.com>
7686
7687         * mkdir.c (__gnat_mkdir): Add support for UTF-8.
7688
7689 2007-06-06  Vincent Celier  <celier@adacore.com>
7690
7691         * mlib.ads, mlib.adb (Build_Library): Do not use hard-coded directory
7692         separator, use instead the proper host directory separator.
7693         (Copy_ALI_Files): Make sure that an already existing ALI file in the
7694         ALI copy dir is writable, before doing the copy.
7695
7696         * mlib-utl.ads, mlib-utl.adb: 
7697         (Gcc): If length of command line is too long, put the list of object
7698         files in a response file, if this is supported by the platform.
7699         (Ar): If invocation of the archive builder is allowed to be done in
7700         chunks and building it in one shot would go above an OS dependent
7701         limit on the number of characters on the command line, build the archive
7702         in chunks.
7703
7704 2007-06-06  Vincent Celier  <celier@adacore.com>
7705
7706         * osinte-c.ads, osint-c.adb (Set_Library_Info_Name): Fail if base name
7707         of specified object file is not equal to base name of source.
7708
7709 2007-06-06  Javier Miranda  <miranda@adacore.com>
7710             Hristian Kirtchev  <kirtchev@adacore.com>
7711             Ed Schonberg  <schonberg@adacore.com>
7712
7713         * sem_ch3.adb (Process_Full_View): Propagate the CPP_Class attribute to
7714         the full type declaration.
7715         (Analyze_Component_Declaration): Add local variable E to capture the
7716         initialization expression of the declaration. Replace the occurences of
7717         Expression (N) with E.
7718         (OK_For_Limited_Init_In_05): Allow initialization of class-wide
7719         limited interface object with a function call.
7720         (Array_Type_Declaration): If the declaration lacks subtype marks for
7721         indices, create a simple index list to prevent cascaded errors.
7722         (Is_Null_Extension): Ignore internal components created for secondary
7723         tags when checking whether a record extension is a null extension.
7724         (Check_Abstract_Interfaces): Add missing support for interface subtypes
7725         and generic formals.
7726         (Derived_Type_Declaration): Add missing support for interface subtypes
7727         and generic formals.
7728         (Analyze_Object_Declaration): If an initialization expression is
7729         present, traverse its subtree and mark all allocators as static
7730         coextensions.
7731         (Add_Interface_Tag_Component): When looking for components that may be
7732         secondary tags, ignore pragmas that can appear within a record
7733         declaration.
7734         (Check_Abstract_Overriding): an inherited function that dispatches on
7735         result does not need to be overriden if the controlling type is a null
7736         extension.
7737         (Mentions_T): Handle properly a 'class attribute in an anonymous access
7738         component declaration, when the prefix is an expanded name.
7739         (Inherit_Component): If the derivation is for a private extension,
7740         inherited components remain visible and their ekind should not be set
7741         to Void.
7742         (Find_Type_Of_Object): In the case of an access definition, always set
7743         Is_Local_Anonymous_Access. We were previously not marking the anonymous
7744         access type of a return object as a local anonymous type.
7745         (Make_Index): Use Ambiguous_Character to report ambiguity on a discrete
7746         range with character literal bounds.
7747         (Constrain_Array): Initialize the Packed_Array_Type field to Empty.
7748         (Access_Subprogram_Declaration): Indicate that the type declaration
7749         depends on an incomplete type only if the incomplete type is declared
7750         in an open scope.
7751         (Analyze_Subtype_Declaration): Handle properly subtypes of
7752         synchronized types that are tagged, and that may appear as generic
7753         actuals.
7754         (Access_Subprogram_Declaration): An anonymous access to subprogram can
7755         appear as an access discriminant in a private type declaration.
7756         (Add_Interface_Tag_Components): Complete decoration of the component
7757         containing the tag of a secondary dispatch table and the component
7758         containing the offset to the base of the object (this latter component
7759         is only generated when the parent type has discriminants --as documented
7760         in this routine).
7761         (Inherit_Components): Use the new decoration of the tag components to
7762         improve the condition that avoids inheriting the components associated
7763         with secondary tags of the parent.
7764         (Build_Discriminanted_Subtype): Indicate to the backend that the
7765         size of record types associated with dispatch tables is known at
7766         compile time.
7767         (Analyze_Subtype_Declaration): Propagate Is_Interface flag when needed.
7768         (Analyze_Interface_Declaration): Change setting of Is_Limited_Interface
7769         to include task, protected, and synchronized interfaces as limited
7770         interfaces.
7771         (Process_Discriminants): Remove the setting of
7772         Is_Local_Anonymous_Access on the type of (anonymous) access
7773         discriminants of nonlimited types.
7774         (Analyze_Interface_Type_Declaration): Complete the decoration of the
7775         class-wide entity it is is already present. This situation occurs if
7776         the limited-view has been previously built.
7777         (Enumeration_Type_Declaration): Initialize properly the Enum_Pos_To_Rep
7778         field.
7779         (Add_Interface_Tag_Components.Add_Tag): Set the value of the attribute
7780         Related_Interface.
7781
7782 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
7783
7784         * sem_aggr.adb (Resolve_Record_Aggregate): Ignore internal components
7785         of the type that specify the position of interface tags when the type
7786         inherits discriminated array components from the parent type.
7787         If a component is initialized with a box, check for the presence of a
7788         default expression in its declaration before using its default
7789         initialization procedure.
7790         (Resolve_Record_Aggregate): If a component is box-initialized, and the
7791         component type has a discriminants, create a partial aggregate for it
7792         by copying the discriminants of the component subtype.
7793         Reject attempt to initialize a discriminant with a box.
7794         (Array_Aggr_Subtype): Indicate to the backend that the size of arrays
7795         associated with dispatch tables is known at compile time.
7796         (Get_Value): If an association in a record aggregate has a box
7797         association, and the corresponding record component has a default
7798         expression, always copy the default expression, even when the
7799         association has a single choice, in order to create a proper
7800         association for the expanded aggregate.
7801
7802 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
7803             Robert Dewar  <dewar@adacore.com>
7804
7805         * par-ch12.adb (P_Generic_Associations): The source position of an
7806         Others association is that of the others keyword, not that of the token
7807         that follows the box.
7808         (P_Formal_Type_Definition): Handle formal access types that carry a
7809         not null indicator.
7810
7811         * par-ch3.adb (P_Known_Discriminant_Part_Opt, P_Component_Items): If
7812         multiple identifier are present, save Scan_State before scanning the
7813         colon, to ensure that separate trees are constructed for each
7814         declaration.
7815         (P_Identifier_Declarations): For object declaration, set new flag
7816         Has_Init_Expression if initialization expression present.
7817         (P_Null_Exclusion): Properly diagnose NOT NULL coming before NULL
7818         Improve NOT NULL error messages
7819
7820 2007-06-06  Robert Dewar  <dewar@adacore.com>
7821
7822         * par-ch4.adb: (P_Name): Recover from literal used as name
7823
7824 2007-06-06  Vincent Celier  <celier@adacore.com>
7825
7826         * prep.ads, prep.adb (Expression): New Boolean parameter Complemented,
7827         defaulted to False.
7828         In the "not" case, recursive call with Complemented set to True.
7829         Do not allow "or" or "and" operators when Complemented is True.
7830
7831 2007-06-06  Vincent Celier  <celier@adacore.com>
7832
7833         * prj.adb (Project_Empty): Gives default value for new component
7834         Libgnarl_Needed
7835
7836         * prj-attr.ads: Minor reformatting
7837
7838         * prj-env.ads, prj-env.adb (For_All_Object_Dirs): Register object
7839         directory using the untouched casing.
7840         (For_All_Source_Dirs): Idem.
7841
7842         * prj-ext.ads, prj-ext.adb (Search_Directories): New table to record
7843         directories specified with switches -aP.
7844         (Add_Search_Project_Directory): New procedure
7845         (Initialize_Project_Path): Put the directories in table
7846         Search_Directories in the project search path.
7847         (Initialize_Project_Path): For VMS, transform into canonical form the
7848         project path.
7849
7850 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
7851
7852         * restrict.ads, restrict.adb (No_Exception_Handlers_Set): Only return
7853         true if configurable run-time or No_Run_Time is set.
7854         (Set_Restriction): Avoid setting restriction No_Elaboration_Code when
7855         processing an unit which is not the one being compiled.
7856
7857 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
7858
7859         * s-arit64.adb: Replace System.Pure_Exceptions by Ada 05 syntax.
7860         Replace UC by Ada.UC
7861
7862         * s-bitops.adb: Get rid of System.Pure_Exceptions.
7863         Replace UC by Ada.UC
7864
7865 2007-06-06  Robert Dewar  <dewar@adacore.com>
7866
7867         * scng.adb: (Check_End_Of_Line): Deal with very long lines
7868
7869 2007-06-06  Robert Dewar  <dewar@adacore.com>
7870
7871         * sem.ads, sem.adb (Semantics): Save and restore Global_Discard_Names
7872         Remove no longer used nodes.
7873
7874 2007-06-06  Javier Miranda  <miranda@adacore.com>
7875             Ed Schonberg  <schonberg@adacore.com>
7876             Robert Dewar  <dewar@adacore.com>
7877
7878         * sem_ch10.ads, sem_ch10.adb (Analyze_Compilation_Unit): Disable check
7879         on obsolescent withed unit in case of limited-withed units.
7880         (Analyze_Compilation_Unit): Add guard to code that removed an
7881         instantiation from visibility, to prevent compiler aborts when
7882         instantiation is abandoned early on.
7883         (Install_Limited_Withed_Unit): Recognize a limited-with clause on the
7884         current unit being analyzed, and Distinguish local incomplete types
7885         from limited views of types declared elsewhere.
7886         (Build_Limited_Views.Decorate_Tagged_Type): Add documentation
7887         to state that the class-wide entity is shared by the limited-view
7888         and the full-view.
7889         (Analyze_With_Clause): Improve placement of flag for case of
7890         unimplemented unit.
7891         (Analyze_With_Clause): Recognize use of GNAT.Exception_Traces in a
7892         manner similar to GNAT.Current_Exception. This is a violation of
7893         restriction (No_Exception_Propagation), and also inhibits the
7894         optimization of local raise to goto.
7895         (Analyze_With_Clause): Check for Most_Recent_Exception being with'ed,
7896         and if so set Most_Recent_Exception_Used flag in Opt, and also check
7897         for violation of restriction No_Exception_Propagation.
7898
7899 2007-06-06  Javier Miranda  <miranda@adacore.com>
7900             Hristian Kirtchev  <kirtchev@adacore.com>
7901             Gary Dismukes  <dismukes@adacore.com>
7902
7903         * sem_ch11.adb (Analyze_Exception_Handlers): Add barrier to avoid the
7904         use of entity Exception_Occurrence if it is not available in the
7905         target run-time.
7906
7907         * sem_ch9.adb (Analyze_Protected_Type, Analyze_Task_Type): When
7908         concurrent types are declared within an Ada 2005 generic, build their
7909         corresponding record types since they are needed for overriding-related
7910         semantic checks.
7911         (Analyze_Protected_Type): Rearrange and simplify code for testing that a
7912         protected type does not implement a task interface or a nonlimited
7913         interface.
7914         (Analyze_Task_Type): Rearrange and simplify code for testing that a task
7915         type does not implement a protected interface or a nonlimited interface.
7916         (Single_Task_Declaration, Single_Protected_Declaration): use original
7917         entity for variable declaration, to ensure that debugging information
7918         is correcty generated.
7919         (Analyze_Protected_Type, Analyze_Task_Type): Do not call expander
7920         routines if the expander is not active.
7921         (Analyze_Task_Body): Mark all handlers to stop optimization of local
7922         raise, since special things happen for task exception handlers.
7923
7924         * sem_disp.adb (Check_Controlling_Formals): Add type retrieval for
7925         concurrent types declared within a generic.
7926         (Check_Dispatching_Operation): Do not emit warning about late interface
7927         operations in the context of an instance.
7928         (Check_Dispatching_Call): Remove restriction against calling a
7929         dispatching operation with a limited controlling result.
7930         (Check_Dispatching_Operation): Replace calls to Fill_DT_Entry and
7931         Register_Interface_DT_Entry by calls to Register_Primitive.
7932         (Check_Dispatching_Formals): Handle properly a function with a
7933         controlling access result.
7934
7935 2007-06-06  Robert Dewar  <dewar@adacore.com>
7936             Arnaud Charlet  <charlet@adacore.com>
7937
7938         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Stream_Size):
7939         Check for restriction No_Implementation_Attributes if in Ada 95 mode.
7940         (Storage_Pool): Do not crash when RE_Stack_Bounded_Pool is not available
7941         (Analyze_Attribute_Definition_Clause [External_Tag]): Generate error
7942         message when using a VM, since this attribute is not supported.
7943         (Analyze_Record_Representation_Clause): Give unrepped component warnings
7944
7945         * usage.adb: Add new warning for renaming of function return objects
7946         Indicate that -gnatwp and -gnatwP concern front-end inlining
7947         Add line for -gnatyg
7948         Add usage information for -gnatw.c/C
7949
7950 2007-06-06  Robert Dewar  <dewar@adacore.com>
7951             Ed Schonberg  <schonberg@adacore.com>
7952
7953         * sem_ch5.adb
7954         (Find_Var): Do not consider function call in test for infinite loop
7955         warning if warnings set off for function entity.
7956         (One_Bound): Do not create a temporary for a loop bound if it is a
7957         character literal.
7958         (Analyze_Assignment): Traverse the right hand side of an assignment and
7959         mark all allocators as static coextensions.
7960         (Analyze_Assignment): Exempt assignments involving a dispatching call
7961         to a function with a controlling access result from the check requiring
7962         the target to be class-wide.
7963
7964 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
7965             Ed Schonberg  <schonberg@adacore.com>
7966             Robert Dewar  <dewar@adacore.com>
7967             Javier Miranda  <miranda@adacore.com>
7968
7969         * sem_res.ads, sem_res.adb (Process_Allocator): Do not propagate the
7970         chain of coextensions when an allocator serves as the root of such a
7971         chain.
7972         (Propagate_Coextensions): Remove the test for the root being an
7973         allocator.
7974         (Resolve_Allocator): Add condition to ensure that all future decoration
7975         occurs on an allocator node. Add processing and cleanup for static
7976         coextensions.
7977         (Valid_Conversion): If the operand type is the limited view of a
7978         class-wide type, use the non-limited view is available to determine
7979         legality of operation.
7980         (Ambiguous_Character): move to spec, for use elsewhere.
7981         (Ambiguous_Character): Handle Wide_Wide_Character in Ada 2005 mode
7982         (Resolve_Range): Diagnose properly an ambiguous range whose bounds are
7983         character literals.
7984         (Resolve_Arithmetic_Op): Call Activate_Division_Check instead of setting
7985         Do_Division_Check flag explicitly.
7986         (Resolve_Actuals): If the actual is of a synchronized type, and the
7987         formal is of the corresponding record type, this is a call to a
7988         primitive operation of the type, that is declared outside of the type;
7989         the actual must be unchecked-converted to the type of the actual
7990         (Resolve_Call): Kill all current values for any subprogram call if
7991         flag Suppress_Value_Tracking_On_Call is set.
7992         (Resolve_Type_Conversion): Generate error message the the operand
7993         or target of interface conversions come from a limited view.
7994         (Check_Infinite_Recursion): Ignore generated calls
7995         (Check_Allocator_Discrim_Accessibility): New procedure for checking
7996         that an expression that constrains an access discriminant in an
7997         allocator does not denote an object with a deeper level than the
7998         allocator's access type.
7999         (Resolve_Allocator): In the case of an allocator initialized by an
8000         aggregate of a discriminated type, check that associations for any
8001         access discriminants satisfy accessibility requirements by calling
8002         Check_Allocator_Discrim_Accessibility.
8003         (Resolve_Equality_Op): Handle comparisons of anonymous access to
8004         subprogram types in the same fashion as other anonymous access types.
8005         (Resolve_Concatenation_Arg): Remove initial character '\' in an error
8006         message that is not a continuation message.
8007         (Resolve_Type_Conversion): Add missing support for conversion to
8008         interface type.
8009         (Resolve_Actuals): Introduce a transient scope around the call if an
8010         actual is a call to a function returning a limited type, because the
8011         resulting value must be finalized after the call.
8012         (Resolve_Actuals): If the call was given in prefix notations, check
8013         whether an implicit 'Access reference or implicit dereference must be
8014         added to make the actual conform to the controlling formal.
8015
8016 2007-06-06  Robert Dewar  <dewar@adacore.com>
8017             Javier Miranda  <miranda@adacore.com>
8018
8019         * sem_ch7.adb (Check_Anonymous_Access_Types): Fix error for null body
8020         (Derive_Inherited_Private_Subprogram): Code cleanup. In case of explicit
8021         overriding of an inherited private subprogram now there is no need to
8022         inherit its dispatching slot and reduce the size of the dispatch table.
8023         Set_All_DT_Position now ensures that the same slot is now assigned to
8024         both entities. This is required to statically build the dispatch table.
8025         (Declare_Inherited_Private_Subprograms): Rewriten to avoid the need
8026         of calling Set_All_DT_Position to re-evaluate the position of the
8027         entries in the dispatch table. Such reevaluation is not desired if
8028         the tagged type is already frozen.
8029
8030 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
8031             Gary Dismukes  <dismukes@adacore.com>
8032             Robert Dewar  <dewar@adacore.com>
8033             Javier Miranda  <miranda@adacore.com>
8034
8035         * sem_util.ads, sem_util.adb (May_Be_Lvalue): A prefix of an attribute
8036         reference acts as an lvalue when the attribute name modifies the prefix
8037         (Is_Coextension_Root): New routine.
8038         (Mark_Static_Coextensions): New routine.
8039         (Type_Access_Level): Revise code for checking the level of the
8040         anonymous access type of a return object.
8041         (Safe_To_Capture_Value): Not safe to capture if Address_Taken
8042         (Matches_Prefixed_View_Profile): Remove the no longer necessary
8043         retrieval of the corresponding controlling record type.
8044         (Find_Overridden_Synchronized_Primitive): Code cleanup. Add handling of
8045         concurrent types declared within a generic as well as class wide types.
8046         Emit a mode incompatibility error whenever a protected entry or routine
8047         override an interface routine whose first parameter is not of mode
8048         "out", "in out" or access to variable.
8049         (Overrides_Synchronized_Primitive): Rename to
8050         Find_Overridden_Synchronized_Primitive.
8051         (Collect_Interface_Components): New subprogram that collects all the
8052         components of a tagged record containing tags of secondary dispatch
8053         tables.
8054         (Add_Global_Declaration): New procedure
8055         (Abstract_Interface_List): Handle properly the case of a subtype of a
8056         private extension.
8057         (Type_Access_Level): In the case of a type whose parent scope is a
8058         return statement, call Type_Access_Level recursively on the enclosing
8059         function's result type to determine the level of the return object's
8060         type.
8061         (Build_Elaboration_Entity): Build name of elaboration entity from the
8062         scope chain of the entity, rather than the unit name of the file name.
8063         (Check_Nested_Access): New procedure.
8064         (Has_Up_Level_Access, Set_Has_Up_Level_Access): New procedures.
8065         (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
8066         (Get_Renamed_Entity): Utility routine for performing common operation
8067         of chasing the Renamed_Entity field of an entity.
8068
8069 2007-06-06  Robert Dewar  <dewar@adacore.com>
8070
8071         * sem_elab.adb (Check_A_Call): Specialize elaboration warnings on
8072         elaboration model
8073         (Check_A_Call): Add check for entry call which was causing blowup
8074
8075 2007-06-06  Olivier Hainque  <hainque@adacore.com>
8076
8077         * raise-gcc.c (__gnat_eh_personality): Tweak the signature and add
8078         special code on ia64-vms to handle major incompatibilities between the
8079         GCC unwinding ABI and the VMS Condition Handling Facility, both calling
8080         this routine with a very different set of arguments and expectations on
8081         the return value.
8082
8083 2007-06-06  Thomas Quinot  <quinot@adacore.com>
8084
8085         * socket.c (__gnat_close_signalling_fd): New function.
8086         (__gnat_safe_gethostbyaddr, __gnat_safe_gethostbyname,
8087         __gnat_safe_getservbyname, __gnat_safe_getservbyport):
8088         New supporting functions for task safe Netdb operations.
8089
8090 2007-06-06  Thomas Quinot  <quinot@adacore.com>
8091             Olivier Hainque  <hainque@adacore.com>
8092
8093         * a-except-2005.ads, a-except-2005.adb
8094         (Raise_From_Controlled_Operation): New procedure in
8095         (private part of) Ada.Exceptions (standard runtime version). Used to
8096         provide informational exception message when Program_Error is raised as
8097         a result of an Adjust or Finalize operation propagating an exception.
8098         (Rmsg_28): Fix description for E.4(18) check.
8099         (Raise_Current_Excep): Call Debug_Raise_Exception just before
8100         propagation starts, to let debuggers know about the event in a reliable
8101         fashion.
8102         Take the address of E and dereference to make sure it is homed on stack
8103         and prevent the stores from being deleted, necessary for proper
8104         debugger behavior on "break exception" hits.
8105         (Local_Raise): Moved to System.Exceptions
8106
8107         * s-finimp.adb (Raise_From_Finalize): Code to construct an appropriate
8108         exception message from the current occurrence and raise Program_Error
8109         has been moved to Ada.Exceptions.Raise_From_Controlled_Operation.
8110
8111 2007-06-06  Jose Ruiz  <ruiz@adacore.com>
8112             Arnaud Charlet  <charlet@adacore.com>
8113
8114         * s-taprob.adb (Unlock): Change the ceiling priority of the underlying
8115         lock, if needed.
8116
8117         * s-taprop.ads (Set_Ceiling): Add this procedure to change the ceiling
8118         priority associated to a lock.
8119
8120         * s-tpoben.adb ([Vulnerable_]Complete_Task, Lock_Entries): Relax
8121         assertion to take into account case of no abort restriction.
8122         (Initialize_Protection_Entries): Add initialization for the field
8123         New_Ceiling associated to the protected object.
8124         (Unlock_Entries): Change the ceiling priority of the underlying lock, if
8125         needed.
8126
8127         * s-solita.adb (Get_Current_Excep): Moved back to s-tasini/s-tarest,
8128         since this function needs to be set consistently with Update_Exception.
8129
8130         * s-tarest.adb (Get_Current_Excep): Moved back to s-tasini/s-tarest,
8131         since this function needs to be set consistently with Update_Exception.
8132
8133         * s-taskin.ads: Update comments on
8134         Interrupt_Server_Blocked_On_Event_Flag.
8135         (Unbind_Handler): Fix handling of server_task wakeup
8136         (Server_Task): Set self's state so that Unbind_Handler can take
8137         appropriate actions.
8138         (Common_ATCB): Now use a constant from System.Parameters to determine
8139         the max size of the Task_Image field.
8140
8141         * s-tassta.adb (Task_Wrapper): Now pass the overflow guard to the
8142         Initialize_Analyzer function.
8143         ([Vulnerable_]Complete_Task, Lock_Entries): Relax assertion to
8144         take into account case of no abort restriction.
8145         ([Vulnerable_]Complete_Master): Modify assertion.
8146
8147         * s-tataat.adb (Finalize): Use the nestable versions of
8148         Defer/Undefer_Abort.
8149
8150         * s-tpobop.adb (Protected_Entry_Call): Relax assertion.
8151
8152         * s-tpobop.ads: Update comments.
8153
8154         * s-tposen.adb (Protected_Single_Entry_Call): Call Lock_Entry instead
8155         of locking the object manually, to avoid inconsistencies between
8156         Lock/Unlock_Entry assertions.
8157
8158         * s-interr.ads, s-interr.adb (Server_Task): Fix race condition when
8159         terminating
8160         application and System.Parameters.No_Abort is True.
8161         Update comments on Interrupt_Server_Blocked_On_Event_Flag.
8162         (Unbind_Handler): Fix handling of server_task wakeup
8163         (Server_Task): Set self's state so that Unbind_Handler can take
8164         appropriate actions.
8165
8166 2007-06-06  Thomas Quinot  <quinot@adacore.com>
8167
8168         * s-finroo.ads, s-finroo.adb (Read, Write): Use null procedure
8169         declarations instead of an explicit null body, for conciseness.
8170
8171 2007-06-06  Robert Dewar  <dewar@adacore.com>
8172
8173         * sem_eval.adb (Eval_Relational_Op): nothing to do if an operand is an
8174         illegal aggregate and the type is still Any_Composite.
8175         (Subtypes_Statically_Match): Fix problem of empty discriminant list
8176
8177 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
8178
8179         * sem_smem.adb (Check_Shared_Var): Check explicitly for as task object,
8180         to prevent subsequent expansion.
8181
8182 2007-06-06  Robert Dewar  <dewar@adacore.com>
8183
8184         * sinput-l.ads, sinput-l.adb: implement a new pragma No_Body
8185
8186 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
8187             Robert Dewar  <dewar@adacore.com>
8188
8189         * sprint.ads, sprint.adb (Sprint_Node_Actual): Output aggregate for
8190         exceptions.
8191         (Write_Itype): Handle case of string literal subtype, which
8192         comes up in this context.
8193         (Update_Itype): when debugging expanded code, update sloc of itypes
8194         associated with defining_identifiers and ranges, for gdb use.
8195         (Sprint_Node_Actual): Add static keyword to object or exception
8196         declaration output if Is_Statically_Allocated is True.
8197         (Sprint_End_Label): Set entity of end marker for a subprogram, package,
8198         or task body, so that the tree carries the proper Sloc information for
8199         debugging use.
8200         (Write_Indent): In Dump_Source_Text mode, ignore implicit label nodes
8201
8202 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
8203
8204         * s-secsta.adb (Chunk): Ensure this object has a static size known at
8205         compile time, to avoid dynamic memory allocation
8206         (Elaboration code): Only use dynamic memory allocation when needed.
8207
8208 2007-06-06  Quentin Ochem  <ochem@adacore.com>
8209
8210         * s-stausa.ads, s-stausa.adb (Initialize_Analyzer): Added parameter
8211         "Overflow_Guard".
8212         (Stack_Analyzer): Added field "Overflow_Guard"
8213         (Task_Result): Added field "Overflow_Guard".
8214         (Index_Str): New constant.
8215         (Task_Name_Str): New constant.
8216         (Actual_Size_Str): New constant.
8217         (Pattern_Array_Element_Size): New constant.
8218         (Get_Usage_Range): New subprogram.
8219         (Output_Result): Added parameter Max_Size_Len and Max_Actual_Use_Len.
8220         Now align the output.
8221         Added comments.
8222         (Initialize): Added value for Overflow_Guard.
8223         (Fill_Stack): Use constant Pattern_Array_Elem_Size when relevant.
8224         Update the value of the overflow guard according to the actual
8225         beginning of the pattern array.
8226         (Initialize_Analyzer): Added parameter Overflow_Guard.
8227         Take this parameter into accound when computing the max size.
8228         (Compute_Result): Use constant Pattern_Array_Elem_Size when relevant.
8229         (Report_Result): Removed extra useless procedure.
8230         Updated call to Output_Result.
8231         Moved full computation of the Task_Result here.
8232
8233 2007-06-06  Thomas Quinot  <quinot@adacore.com>
8234
8235         * g-soccon-darwin.ads, gen-soccon.c: Add new constant
8236         Thread_Blocking_IO, always True by default, set False on a per-runtime
8237         basis.
8238         Add Windows-specific constants
8239         Add new constant Need_Netdb_Buffer.
8240         Add new macros to indicate whether getXXXbyYYY is thread safe and, if
8241         not, whether to use getXXXbyYYY_r.
8242
8243         * gsocket.h: Add new constant Need_Netdb_Buffer.
8244         Add new macros to indicate whether getXXXbyYYY is thread safe and, if
8245         not, whether to use getXXXbyYYY_r.
8246
8247 2007-06-06  Eric Botcazou  <ebotcazou@adacore.com>
8248
8249         * s-stoele.ads, s-stoele.adb: Move inline_always subprograms earlier
8250         than their first call.
8251         Add type Dummy_Communication_Block used in the generation of the pre-
8252         defined dispatching primitive _disp_asynchronous_select.
8253         (Storage_Element): Put Pragma Universal_Aliasing on it.
8254
8255 2007-06-06  Vincent Celier  <celier@adacore.com>
8256
8257         * a-dirval-vms.adb, a-dirval.ads, a-dirval.adb (Windows): New Boolean
8258         function.
8259
8260         * a-dirval-mingw.adb (Is_Valid_Path_Name): Forbid a path with a drive
8261         letter if it is not followed by a '/' or a '\'.
8262         (Windows): New Boolean function
8263
8264         * a-direct.ads, a-direct.adb: Remove unnecessary and misplaced pragma
8265         Ada 2005.
8266         (Containing_Directory): On Windows, keep at least one '/' or '\' after a
8267         drive letter.
8268         (Containing_Directory): Raise Use_Error when the directory is a root
8269         directory.
8270         (Extension): When returning the result, use a conversion to Result_Type,
8271         not a qualification.
8272
8273 2007-06-06  Robert Dewar  <dewar@adacore.com>
8274
8275         * stylesw.ads, stylesw.adb (Set_GNAT_Style_Check): New procedure
8276         (Set_Style_Check_Options): Recognize new -gnatyg style switch
8277
8278         * switch-c.adb (Scan_Front_End_Switches, case -gnatg): Set
8279         Warn_On_Non_Local_Exception to False, to turn off warnings for
8280         No_Exception_Propagation in ZFP runtime.
8281         (Scan_Front_End_Switches): Fix handling of --RTS switch for non GCC
8282         back-ends.
8283         (Scan_Front_End_Switches): For 'g', call Set_GNAT_Style_Checks
8284
8285 2007-06-06  Vincent Celier  <celier@adacore.com>
8286
8287         * switch-b.adb (Scan_Binder_Switches): Add processing for new
8288         switches -R and -Z
8289
8290         * switch-m.adb (Normalize_Compiler_Switches): Do not record switch -E
8291         (Scan_Make_Switches): Recognize new switch -aP
8292
8293 2007-06-06  Matthew Gingell  <gingell@adacore.com>
8294             Jose Ruiz  <ruiz@adacore.com>
8295
8296         * s-stchop-vxworks.adb (Set_Stack_Info): Instead of trying to map the
8297         VxWorks task descriptor in the Ada run time, call a C subprogram
8298         (__gnat_get_stack_info) that extracts the required information.
8299
8300         * sysdep.c: Back out temporary lynxos workaround.
8301         (__gnat_get_stack_info): Add this procedure that passes to the Ada run
8302         time the stack information associated to the currently executing task.
8303         Only VxWorks systems require this function.
8304
8305 2007-06-06  Eric Botcazou  <ebotcazou@adacore.com>
8306
8307         * tracebak.c (FRAME_OFFSET): Add parameter FP. On SPARC/Solaris, do not
8308         add the stack bias if the offset is computed from a frame address.
8309         (__gnat_backtrace): Adjust for above change.
8310
8311 2007-06-06  Thomas Quinot  <quinot@adacore.com>
8312
8313         * types.h, types.ads: Rename PE_Illegal_CW_Actual_E_4_18 to
8314         PE_Non_Transportable_Actual.
8315         (By_Descriptor_Last): New constant.
8316         (By_Copy_Return): Likewise.
8317
8318 2007-06-06  Vincent Celier  <celier@adacore.com>
8319
8320         * vms_conv.adb (Process_Argument): Keep arguments starting with '+' as
8321         is.
8322
8323         * vms_data.ads: Add entries for -gnatw.x and -gnatw.X
8324         /STYLE_CHECKS=GNAT: Change meaning to -gnatyg
8325         /GNAT_INTERNAL: New compiler qualifier corresponding to -gnatg
8326         Add missing comment for /OPTIMIZE=SPACE
8327         Add entry for OPTIMIZE=SPACE
8328         Add new qualifier /ALL_PROJECTS (= -U) for GNAT LIST
8329         Add documentation for new qualifiers corresponding to -gnatw.c/.C
8330
8331 2007-06-06  Vincent Celier  <celier@adacore.com>
8332             Robert Dewar  <dewar@adacore.com>
8333
8334         * xgnatugn.adb: Allow dots to be used in ug_words (-gnatw.c and
8335         -gnatw.C)
8336
8337         * gnat_ugn.texi: Fix ordering of -g switch for gnatmake
8338         Document gnatbind switch -a
8339         (case Constructions): Document that variables declarations are allowed
8340         for previously declared variables.
8341         Fix external lib project example
8342         -gnatg: Indicate new VMS qualifier /GNAT_INTERNAL
8343         Indicate that "#if not X or Y then" is not allowed in input files to
8344         gnatprep.
8345         Document gnatw.x and gnatw.X warning flags
8346         Mention -Winline switch to activate warnings when back-end inlining is
8347         ineffective.
8348         Add gnatcheck rule descriptions
8349         Describe how to use the GNAT driver to call a tool on a closure.
8350         Describe how to run project-wide checks or metrics.
8351         Document gnatbind's -R option
8352         Updated to account for Ada 2005 support
8353
8354         * gnat_rm.texi (Case Construction): Allow variable declarations for
8355         previously declared variables.
8356         (Representation Clauses and Pragmas): Lift restriction on alignment
8357         clauses for record types.
8358         (Ada.Characters.*): Fix typo in reference to A.3.3(27).
8359         Document No_Exception_Propagation restriction
8360         Document No_Body pragma
8361         Updated to account for Ada 2005 support; corrected some typos
8362         (Implementation Defined Pragmas): Document pragma Universal_Aliasing.
8363
8364         * gnat-style.texi: Make it clear that we never use mode IN for
8365         procedures or functions
8366
8367         * ug_words: Add entries for -gnatw.x and -gnatw.X
8368         Add entries for -gnatw.c/.C
8369
8370 2007-06-06  Pascal Obry  <obry@adacore.com>
8371             Vincent Celier  <celier@adacore.com>
8372
8373         * makegpr.adb (Add_Archive_Path): Use untouched object and library
8374         dirs and library name.
8375         (Build_Global_Archive): Idem. Minor code clean-up. Removes duplicate
8376         comments.
8377         (Build_Library): Idem.
8378         (Compile_Individual_Sources): Idem.
8379         (Compile_Link_With_Gnatmake): Idem.
8380         (Compile_Sources): Idem.
8381         (Get_Imported_Directories): Idem.
8382         (Link_Executables): Idem. Same change for the executable dir.
8383         (Check_Compilation_Needed): C_Source_Path new variable containing
8384         the canonical form of Source_Path to check against the source names
8385         in the dependency file.
8386         (Build_Global_Archive, Compile_Individual_Sources, Compile_Sources): In
8387         verbose mode, display the name of the object directory we're changing
8388         to.
8389         (Saved_Switches): New name of table X_Switches
8390         (Scan_Arg): Recognize new switch -aP and save in table Saved_Switches
8391         (Usage): New line for switch -aP
8392         (Get_Imported_Directories.Add): Make sure that Add_Arg is True before
8393         testing if a directory should be added to the search path.
8394
8395 2007-06-06  Javier Miranda  <miranda@adacore.com>
8396
8397         * a-cidlli.ads, a-cdlili.ads, a-cohama.ads, a-coinve.ads, 
8398         a-convec.ads (Empty_Vector, Empty_Map, Empty_List): Move this object
8399         declaration after freezing point of all its associated tagged types;
8400         otherwise such types are frozen too early.
8401
8402 2007-06-06  Robert Dewar  <dewar@adacore.com>
8403
8404         * a-reatim.adb: Documentation addition
8405
8406         * g-cgideb.adb: Minor code reorganization
8407
8408         * tree_io.adb, treepr.adb, cstand.adb, krunch.adb, par.adb,
8409         mdll-utl.adb, par-ch5.adb, par-tchk.adb, s-exctab.ads, s-memory.ads,
8410         s-osprim.ads, s-restri.ads, s-soflin.ads: Minor reformatting.
8411
8412         * debug.ads, debug.adb (Get_Debug_Flag_K): Remove unused obsolete
8413         function.  Change name New_Scope to Push_Scope
8414         (Get_Debug_Flag_K): Remove unused obsolete function.
8415
8416         * exp_ch8.adb, inline.adb, sem_ch8.ads: Change name New_Scope to
8417         Push_Scope.
8418
8419         * makeusg.adb: Update Copyright notice
8420         Add line for switch -aP
8421
8422         * makeusg.adb: Fix wording of some usage messages
8423
8424         * s-assert.adb (Raise_Assert_Failure): Add call to
8425         Debug_Raise_Assert_Failure.
8426
8427         * s-unstyp.ads (type Packed_Bytes2): Change alignment to use 'Min
8428         (2, Standard'Alignment) for compatibility with AAMP (where alignment
8429         is restricted to 1).
8430
8431         * s-wchjis.adb: Remove use of System.Pure_Exceptions
8432
8433         * tbuild.ads, tbuild.adb (Make_Implicit_Exception_Handler): Set the
8434         node location to No_Location when we're not debugging the expanded
8435         code.
8436
8437 2007-05-22  Alexandre Oliva  <aoliva@redhat.com>
8438
8439         * misc.c (enumerate_modes): Consider log2_b to always be one.
8440
8441 2007-05-14  Rafael Avila de Espindola  <espindola@google.com>
8442
8443         * misc.c (LANG_HOOKS_UNSIGNED_TYPE): Remove.
8444
8445 2007-05-02  Pascal Obry  <obry@adacore.com>
8446
8447         * gnatchop.adb (Write_Source_Reference_Pragma): Change implementation
8448         to use Stream_IO.File_Type. This is needed to make use of the UTF-8
8449         encoding support of Stream_IO.
8450         (Write_Unit): Idem.
8451
8452         * adaint.h, adaint.c (__gnat_os_filename): New routine. Returns the
8453         filename and corresponding encoding to match the OS requirement.
8454         (__gnat_file_exists): Do not call __gnat_stat() on Windows as this
8455         routine will fail on specific devices like CON: AUX: ...
8456
8457         PR ada/29856: Add missing braces
8458
8459 2007-04-22  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8460
8461         PR ada/31660
8462         * ada-tree.h (lang_tree_node): Fix typo in chain_next.
8463
8464 2007-04-21  Jan Hubicka  <jh@suse.cz>
8465
8466         * misc.c (gnat_expand_body): Don't call target for destructors,
8467         avoid redundant check on syntax errors.
8468
8469 2007-04-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8470
8471         * ada-tree.h (lang_tree_node): Use GENERIC_NEXT
8472         instead of checking GIMPLE_STMT_P in chain_next.
8473
8474 2007-04-17  Andreas Krebbel  <krebbel1@de.ibm.com>
8475
8476         PR ada/31576
8477         * system-linux-alpha.ads: Disable constant condition warning for the
8478         Default_Bit_Order variable.
8479         * system-linux-s390.ads: Likewise.
8480         * system-linux-s390x.ads: Likewise.
8481         * system-linux-sparc.ads: Likewise.
8482
8483 2007-04-06  Javier Miranda  <miranda@adacore.com>
8484             Matt Heaney  <heaney@adacore.com>
8485             Robert Dewar  <dewar@adacore.com>
8486
8487         a-coprnu.ads, a-cohata.ads, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads,
8488         a-cgarso.ads, a-secain.ads, a-slcain.ads, a-shcain.ads, a-chtgke.ads,
8489         a-chtgke.ads, a-coprnu.ads, a-contai.ads, a-chtgke.ads, a-chtgke.adb,
8490         a-stwiha.ads, a-strhas.ads, a-lfztio.ads, a-liztio.ads, a-llfzti.ads,
8491         a-llizti.ads, a-sfztio.ads, a-siztio.ads, a-ssizti.ads, a-stzfix.ads,
8492         a-stzhas.ads, a-szuzha.ads, a-tiunio.ads, a-wwunio.ads, a-ztcoio.ads,
8493         a-ztinio.ads, a-zttest.ads, a-zzunio.ads, a-astaco.ads, a-charac.ads,
8494         a-chlat1.ads, ada.ads, a-dynpri.ads, a-flteio.ads, a-fwteio.ads,
8495         a-inteio.ads, a-intnam.ads, a-ioexce.ads, a-iwteio.ads, a-lfteio.ads,
8496         a-lfwtio.ads, a-liteio.ads, a-liwtio.ads, a-llftio.ads, a-llfwti.ads,
8497         a-llitio.ads, a-lliwti.ads, a-ncelfu.ads, a-ngcefu.ads, a-ngelfu.ads,
8498         a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads, a-nllcty.ads,
8499         a-nllefu.ads, a-nscefu.ads, a-nscoty.ads, a-nselfu.ads, a-nucoty.ads,
8500         a-nuelfu.ads, a-numeri.ads, a-sfteio.ads, a-sfwtio.ads, a-siteio.ads,
8501         a-siwtio.ads, a-ssitio.ads, a-ssiwti.ads, a-storio.ads, a-strfix.ads,
8502         a-string.ads, a-stwifi.ads, a-titest.ads, a-unccon.ads, a-uncdea.ads,
8503         a-wtcoio.ads, a-wtinio.ads, a-wttest.ads, calendar.ads, directio.ads,
8504         i-c.ads, ioexcept.ads, machcode.ads, sequenio.ads, text_io.ads,
8505         unchconv.ads, unchdeal.ads, a-widcha.ads, a-zchara.ads, a-stboha.ads,
8506         a-stfiha.ads, a-coteio.ads, a-envvar.ads, a-lcteio.ads, a-llctio.ads,
8507         a-scteio.ads, a-swbwha.ads, a-swfwha.ads, a-szbzha.ads, a-szfzha.ads,
8508         a-tiboio.ads, a-wwboio.ads, a-zzboio.ads, a-dispat.ads, a-tgdico.ads,
8509         expander.adb, g-socket.ads, par-labl.adb, sinput-c.adb, s-tarest.ads,
8510         s-stchop.ads, g-expect-vms.adb, s-taprop-lynxos.adb,
8511         s-taprop-tru64.adb, s-taprop-irix.adb,
8512         s-taprop-hpux-dce.adb, s-traceb-hpux.adb,
8513         s-taprop-linux.adb, s-taprop-dummy.adb, s-osprim-unix.adb,
8514         s-osprim-solaris.adb, s-taprop-solaris.adb, s-taprop-vms.adb,
8515         s-osprim-mingw.adb, s-taprop-mingw.adb, s-osprim-posix.adb, 
8516         s-taprop-posix.adb, a-exexpr-gcc.adb, a-ststio.adb, a-ststio.ads, 
8517         a-textio.adb, a-textio.ads, a-tideau.adb, a-tideau.ads, a-witeio.adb, 
8518         a-witeio.ads, a-wtdeau.adb, a-wtdeau.ads, g-calend.adb, g-calend.ads, 
8519         g-dirope.adb, g-expect.ads, gnatchop.adb, g-spipat.adb, g-spipat.ads, 
8520         s-direio.adb, s-direio.ads, s-fatgen.adb, s-fatgen.ads, s-parint.adb, 
8521         s-sequio.adb, s-sequio.ads, s-taprop.ads, s-valdec.adb, s-valdec.ads, 
8522         s-valint.adb, s-valint.ads, s-vallld.adb, s-vallld.ads, s-vallli.adb, 
8523         s-vallli.ads, s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads, 
8524         s-valuns.adb, s-valuns.ads, s-valuti.adb, s-valuti.ads, xref_lib.adb, 
8525         s-stchop.adb, i-vxwork-x86.ads, a-crbtgo.ads, a-crbtgo.adb, 
8526         a-coorse.ads, a-coorse.adb, a-cohama.ads, a-cohama.adb, a-ciorse.ads, 
8527         a-ciorse.adb, a-cihama.ads, a-cihama.adb, a-chtgop.ads, a-chtgop.ads, 
8528         a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cihase.ads, a-cohase.adb, 
8529         a-cohase.ads, a-swuwha.ads, a-ciormu.ads, a-coormu.ads, a-rbtgso.ads,
8530         a-stunha.ads, a-ciorma.adb, a-coorma.adb, a-ztdeau.adb, a-ztdeau.ads, 
8531         a-ztexio.adb, a-ztexio.ads: Addition of null-exclusion to anonymous
8532         access types.
8533         Update documentation.
8534         Minor rewording.
8535
8536 2007-04-06  Robert Dewar  <dewar@adacore.com>
8537
8538         * system-linux-ia64.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads,
8539         system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
8540         system-vxworks-sparcv9.ads, system-solaris-x86.ads, system-irix-o32.ads,
8541         system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
8542         system-linux-x86.ads, system-vxworks-mips.ads, system-interix.ads,
8543         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
8544         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
8545         system-vxworks-alpha.ads, system-vms_64.ads, system-darwin-ppc.ads,
8546         system-vxworks-x86.ads, system-linux-ppc.ads, system-linux-hppa.ads,
8547         system-hpux-ia64.ads, targparm.adb,
8548         targparm.ads (Functions_Return_By_DSP_On_Target): Removed
8549
8550         * system.ads: Move Functions_Return_By_DSP to obsolete section,
8551         kept for bootstrap purposes only.
8552
8553 2007-04-06  Arnaud Charlet  <charlet@adacore.com>
8554
8555         * s-osinte-lynxos-3.ads, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
8556         s-osinte-freebsd.ads, s-osinte-aix.ads, s-osinte-darwin.ads,
8557         s-taprop-posix.adb (Create_Task): Fix handling of Task_Info.
8558         (PTHREAD_SCOPE_PROCESS, PTHREAD_SCOPE_SYSTEM): New constants.
8559
8560 2007-04-06  Robert Dewar  <dewar@adacore.com>
8561
8562         * a-except.adb, a-except.ads, a-except-2005.ads, a-except-2005.adb
8563         (Local_Raise): New dummy procedure called when a raise is converted
8564         to a local goto. Used for debugger to detect that the exception
8565         is raised.
8566
8567         * debug.adb: Document new d.g flag (expand local raise statements to
8568         gotos even if pragma Restriction (No_Exception_Propagation) is not set)
8569
8570         * exp_sel.adb: Use Make_Implicit_Exception_Handler
8571
8572         * exp_ch11.adb (Expand_Exception_Handlers): Use new flag -gnatw.x to
8573         suppress warnings for unused handlers.
8574         (Warn_If_No_Propagation):  Use new flag -gnatw.x to suppress
8575         warnings for raise statements not handled locally.
8576         (Get_RT_Exception_Entity): New function
8577         (Get_Local_Call_Entity): New function
8578         (Find_Local_Handler): New function
8579         (Warn_If_No_Propagation): New procedure
8580         (Expand_At_End_Handler): Call Make_Implicit_Handler
8581         (Expand_Exception_Handlers): Major additions to deal with local handlers
8582         (Expand_N_Raise_Constraint_Error, Expand_N_Raise_Program_Error,
8583         Expand_N_Raise_Storage_Error, (Expand_N_Raise_Statement): Add handling
8584         for local raise
8585
8586         * exp_ch11.ads (Get_RT_Exception_Entity): New function
8587         (Get_Local_Call_Entity): New function
8588
8589         * gnatbind.adb (Restriction_List): Add No_Exception_Propagation to list
8590         of restrictions that the binder will never suggest adding.
8591
8592         * par-ch11.adb (P_Exception_Handler): Set Local_Raise_Statements field
8593         to No_Elist.
8594
8595         * restrict.adb (Check_Restricted_Unit): GNAT.Current_Exception may not
8596         be with'ed in the presence of pragma Restriction
8597         (No_Exception_Propagation).
8598
8599         * sem.adb (Analyze): Add entries for N_Push and N_Pop nodes
8600
8601         * sem_ch11.adb (Analyze_Exception_Handler): If there is a choice
8602         parameter, then the handler is not a suitable target for a local raise,
8603         and this is a violation of restriction No_Exception_Propagation.
8604         (Analyze_Handled_Statements): Analyze choice parameters in exception
8605         handlers before analyzing statement sequence (needed for proper
8606         detection of local raise statements).
8607         (Analyze_Raise_Statement): Reraise statement is a violation of the
8608         No_Exception_Propagation restriction.
8609
8610         * s-rident.ads: Add new restriction No_Exception_Propagation
8611
8612         * tbuild.ads, tbuild.adb (Make_Implicit_Exception_Handler): New
8613         function, like Make_Exception_Handler but sets Local_Raise_Statements
8614         to No_List.
8615         (Add_Unique_Serial_Number): Deal with case where this is called during
8616         processing of configuration pragmas.
8617
8618 2007-04-06  Thomas Quinot  <quinot@adacore.com>
8619             Pat Rogers  <rogers@adacore.com>
8620             Pascal Obry  <obry@adacore.com>
8621
8622         * g-stsifd-sockets.adb: New file.
8623
8624         * g-socthi.ads, g-socket.adb, g-socthi-vxworks.adb,
8625         g-socthi-vxworks.ads, g-socthi-mingw.ads, g-socthi-vms.ads,
8626         g-socthi-vms.adb: Move signalling
8627         fd management to a nested package, so that they can conveniently be
8628         moved to a subunit that is shared across Windows, VMS, and VxWorks
8629         (Ada implementation) or completed with imported bodies from socket.c
8630         (UNIX case).
8631         (Read_Signalling_Fd, Write_Signalling_Fd, Create_Signalling_Fds): New
8632         subprograms.
8633         (Check_Selector): Use Read_Signalling_Fd to read and discard data from
8634         the signalling file descriptor.
8635         (Abort_Selector): Use Write_Signalling_Fd to write dummy data to the
8636         signalling file descriptor.
8637         (Create_Selector): Use new C-imported subprogram Create_Signalling_Fds
8638         instead of creating a pair of sockets for signalling here.
8639
8640         * g-socthi.adb: Ditto.
8641         Set the runtime process to ignore SIGPIPEs on platforms that support
8642         neither SO_NOSIGPIPE nor MSG_NOSIGNAL functionality.
8643
8644         * g-socthi-mingw.adb: Ditto.
8645         (WS_Version): Use Windows 2.2.
8646         Use Winsock 2.2 (instead of 1.1) for the GNAT.Socket API.
8647
8648         * g-soliop-mingw.ads: Link with ws2_32 for Windows 2.x support.
8649         Use Winsock 2.2 (instead of 1.1) for the GNAT.Socket API.
8650
8651         * Makefile.in: New libgnat pair g-stsifd.adb<g-stsifd-sockets.adb.
8652         added GNAT byte swapping facility
8653         Update FreeBSD THREADSLIB from -lc_r to -lpthread, for FreeBSD 6.
8654
8655         * g-bytswa.adb, g-bytswa-x86.adb, g-bytswa.ads: New files.
8656
8657         * socket.c (__gnat_read_signalling_fd, __gnat_write_controlling_fd):
8658         New subprograms.
8659         (__gnat_create_signalling_fds): New subprogram.
8660         Set the runtime process to ignore SIGPIPEs on platforms that support
8661         neither SO_NOSIGPIPE nor MSG_NOSIGNAL functionality.
8662
8663 2007-04-06  Hristian Kirtchev  <kirtchev@adacore.com>
8664             Vincent Celier  <celier@adacore.com>
8665
8666         * a-calend-vms.ads, a-calend.ads, a-calend.adb, a-calend-vms.adb:
8667         New version of Ada.Calendar which supports the new upper bound of Ada
8668         time (2399-12-31 86_399.999999999).
8669         The following modifications have been made to the package:
8670          - New representation of time as count of nanoseconds since the start of
8671            Ada time (1901-1-1 0.0).
8672          - Target independent Split and Time_Of routines which service both
8673            Ada 95 and Ada 2005 code.
8674          - Target independent interface to the Ada 2005 children of Calendar.
8675          - Integrated leap seconds into Ada 95 and Ada 2005 mode.
8676          - Handling of non-leap centenial years.
8677          - Updated clock function.
8678          - Updated arithmetic and comparison operators.
8679
8680         * a-caldel.adb (To_Duration): Add call to target independent routine in
8681         Ada.Calendar to handle the conversion of time to duration.
8682
8683         * sysdep.c (__gnat_localtime_tzoff): Test timezone before setting off
8684         (UTC Offset).
8685         If timezone is obviously incorrect (outside of -14 hours .. 14 hours),
8686         set off to 0.
8687         (__gnat_localtime_tzoff for Lynx and VxWorks): Even though these
8688         targets do not have a natural time zone, GMT is used as a default.
8689         (__gnat_get_task_options): New.
8690
8691         * a-direct.adb (Modification_Time): Add with and use clauses for
8692         Ada.Calendar and Ada.
8693         Calendar.Formatting. Remove with clause for Ada.Unchecked_Conversion
8694         since it is no longer needed.
8695         (Duration_To_Time): Removed.
8696         (OS_Time_To_Long_Integer): Removed.
8697         (Modification_Time): Rewritten to use Ada.Calendar and Ada.Calendar.
8698         Formatting Time_Of routines which automatically handle time zones,
8699         buffer periods and leap seconds.
8700
8701         * a-calari.ads, a-calari.adb ("+", "-", Difference): Add calls to
8702         target independent routines in Ada.Calendar.
8703
8704         * a-calfor.ads, a-calfor.adb: 
8705         Code cleanup and addition of validity checks in various routines.
8706         (Day_Of_Week, Split, Time_Of): Add call to target independent routine in
8707         Ada.Calendar.
8708
8709         * a-catizo.ads, a-catizo.adb (UTC_Time_Offset): Add call to target
8710         independent routine in Ada.Calendar.
8711
8712 2007-04-06  Olivier Hainque  <hainque@adacore.com>
8713
8714         * adaint.c: 
8715         (convert_addresses): Adjust prototype and dummy definition to expect an
8716          extra file_name argument.
8717
8718         * gmem.c (__gnat_convert_addresses): Wrapper to convert_addresses,
8719         filling the now expected file_name argument with the appropriate
8720         argv[0] expansion.
8721         (__gnat_gmem_a2l_initialize, __gnat_gmem_read_next_frame): Use it.
8722         (tracebk): Array of void * instead of char *, corresponding to what
8723          convert_addresses expects.
8724         (exename): New static global, to hold the executable file name to be
8725         used in all convert_addresses invocations.
8726         (gmem_read_backtrace, __gnat_gmem_symbolic): Account for tracebk type
8727         change.
8728         (__gnat_gmem_a2l_initialize): Resolve exename.
8729         (__gnat_convert_addresses): Use exename as the convert_addresses
8730         file_name argument.
8731
8732         * g-trasym.adb (Symbolic_Traceback): Adjust signature of imported
8733         "convert_addresses", now expecting a filename argument. Import the
8734         necessary entities to compute the filename to use and pass it to
8735         convert_addresses.
8736
8737 2007-04-06  Matt Gingell  <gingell@adacore.com>
8738
8739         * system-aix.ads: Back out previous change.
8740         (Functions_Return_By_DSP): Removed
8741
8742 2007-04-06  Pascal Obry  <obry@adacore.com>
8743
8744         * s-osprim-mingw.adb (Timed_Delay): Use the right clock (standard one
8745         or the monotonic used by Ada.Real_Time) to compute the sleep duration
8746         on Windows.
8747
8748 2007-04-06  Jose Ruiz  <ruiz@adacore.com>
8749
8750         * s-osinte-vxworks.ads, s-osinte-vxworks.adb (VX_FP_TASK): Remove this
8751         function. Its value changes in different VxWorks versions, and it is
8752         now handled by the function __gnat_get_task_options.
8753
8754         * s-taprop-vxworks.adb (Create_Task): Call the function
8755         __gnat_get_task_options to get the required options for creating a task.
8756
8757 2007-04-06  Pascal Obry  <obry@adacore.com>
8758             Thomas Quinot  <quinot@adacore.com>
8759
8760         * adaint.c: Replace all occurences of S2WS to S2WSU (Unicode) when
8761         dealing with filename.
8762         (__gnat_fopen): Call the proper macro (8bits or UTF8) to convert the
8763         filename from a standard string to a wide-string depending on the
8764         encoding value.
8765         (__gnat_freopen): Idem.
8766         (__gnat_current_time): New function (wrapper for time(3) standard C
8767         function).
8768
8769         * g-os_lib.ads (Current_Time): New function. Returns the current
8770         system time as an OS_Time value.
8771
8772         * s-osprim.ads (Clock): Add more precise definition of UNIX epoch.
8773         (Monotonic_Clock): Same.
8774
8775 2007-04-06  Quentin Ochem  <ochem@adacore.com>
8776
8777         * ali.ads, ali.adb (Get_Nat): Raise an exception if the file cursor is
8778         not on a natural.
8779         (Scan_ALI): Cancel the xref line if there has been a reading ALI error.
8780
8781 2007-04-06  Jose Ruiz  <ruiz@adacore.com>
8782
8783         * a-retide.adb: Add elaboration code to ensure that the tasking run
8784         time is initialized when using delay operations even when no task is
8785         created.
8786
8787 2007-04-06  Javier Miranda  <miranda@adacore.com>
8788
8789         * a-tags.ads, a-tags.adb (Object_Specific_Data): Remove
8790         component Num_Prim_Ops.
8791         (Set_Num_Prim_Ops): Removed.
8792         Remove all the assertions because all the routines of this
8793         package are inline always.
8794         (Get_Offset_Index): Add support to primary dispatch tables.
8795         Move the documentation about the dispatch table to a-tags.ads
8796         (Set_External_Tag): Removed
8797         (Inherit_TSD): Removed.
8798         (Interface_Data_Element, Interfaces_Array, Interface_Data): Declarations
8799         moved to a-tags.ads
8800         (Displace, IW_Membership, Inherit_TSD, Interface_Ancestor_Tags,
8801         Register_Interface_Tag, Set_Offset_To_Top): Update all the occurrences
8802         of the TSD field "Table" because this field has been renamed to
8803         "Ifaces_Table".
8804         (Inherit_CPP_DT): Removed.
8805         (K_Typeinfo, K_Offset_To_Top, K_Tagged_Kind, K_Signature,
8806         Cstring, Tag_Table, Type_Specific_Data, Dispatch_Table): These
8807         declarations have been moved to a-tags.ads
8808         (Check_Size): Removed.
8809         (Expanded_Name): Updated to get access to the new field of TSD
8810         containing the address of the expanded name.
8811         (Get_Access_Level/Set_Access_Level): Removed.
8812         (Get_Predefined_Prim_Op_Address): Removed.
8813         (Set_Predefined_Prim_Op_Address): Removed.
8814         (Get_Prim_Op_Address/Set_Prim_Op_Address): Removed.
8815         (Get_Remotely_Callable/Set_Remotely_Callable): Removed.
8816         (Set_Expanded_Name): Removed.
8817         (Inherit_DT): Removed.
8818         (Inherit_CPP_DT): Removed.
8819         (Set_RC_Offset): Removed.
8820         (Set_TSD): Removed.
8821         (Base_Address): New function that displaces "this" to point to the base
8822         of the object (that is, to point to the primary tag of the object).
8823
8824 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
8825             Javier Miranda  <miranda@adacore.com>
8826
8827         * exp_ch3.ads, exp_ch3.adb (Analyze_N_Full_Type_Declaration): For an
8828         anonymous access component, do not create a master_id if type already
8829         has one, as may happen if the type is a subcomponent of a packed array
8830         type.
8831         (Build_Init_Procedure, Component_Needs_Simple_Initialization,
8832         Initialize_Tag): Remove code associated with the old CPP pragmas.
8833         CPP_Virtual and CPP_Vtable are no longer supported.
8834         (Build_Offset_To_Top_Internal): Add support for concurrent record types
8835         (Build_Offset_To_Top_Functions): Add support for concurrent record types
8836         (Freeze_Record_Type): Remove call to
8837         Init_Predefined_Interface_Primitives.
8838         (Init_Secondary_Tags.Initialize_Tag): New subprogram containing all the
8839         code required to initialize the tags of the secondary dispatch tables.
8840         This leaves the algoritm more clear.
8841         (Init_Secondary_Tags): Add support for concurrent record types
8842         (Make_Predefined_Primitive_Specs): Code cleanup.
8843         (Predefined_Primitive_Bodies): Code cleanup.
8844         (Build_Master_Renaming): New local subprogram.
8845         (Expand_N_Full_Type_Declaration): Build the master_id associated with
8846         anonymous access to task type components.
8847         (Expand_N_Subtype_Indication): The bounds of a range constraint in a
8848         subtype indication are resolved during analysis, and must not be done
8849         here.
8850         (Stream_Operation_OK): Check Restriction_Active before RTE_Available.
8851
8852 2007-04-06  Geert Bosch  <bosch@adacore.com>
8853             Ed Schonberg  <schonberg@adacore.com>
8854             Javier Miranda  <miranda@adacore.com>
8855             Bob Duff  <duff@adacore.com>
8856
8857         * exp_ch4.adb (Expand_N_Type_Conversion): Remove special processing
8858         for conversion of a Float_Type'Truncation to integer.
8859
8860         * exp_attr.adb (Is_Inline_Floating_Point_Attribute): New function to
8861         check if a node is an attribute that can be handled directly by the
8862         back end.
8863         (Expand_N_Attribute_Reference): Suppress expansion of floating-point
8864         attributes that can be handled directly by the back end.
8865         (Expand_N_Attribute_Reference, case 'Access and 'Unchecked_Access):
8866         use new predicate Is_Access_Protected_Subprogram_Type.
8867         (Expand_N_Attribute_Reference, case 'Write): The reference is legal for
8868         and Unchecked_Union if it is generated as part of the default  Output
8869         procedure for a type with default discriminants.
8870         (Expand_N_Attribute_Reference): Avoid the expansion of dispatching calls
8871         if we are compiling under restriction No_Dispatching_Calls.
8872         (Constrained): Use Underlying_Type, in case the type is private without
8873         discriminants, but the full type has discriminants.
8874         (Expand_N_Attribute_Reference): Replace call to Get_Access_Level by
8875         call to Build_Get_Access_Level.
8876         (Expand_N_Attribute_Reference): The use of 'Address with class-wide
8877         interface objects requires a call to the run-time subprogram that
8878         returns the base address of the object.
8879         (Valid_Conversion): Improve error message on illegal attempt to store
8880         an anonymous access to subprogram value into a record component.
8881
8882         * sem_res.adb (Resolve_Equality_Op): Detect ambiguity for "X'Access =
8883         null".
8884         (Simplify_Type_Conversion): New procedure that performs simplification
8885         of Int_Type (Float_Type'Truncation (X)).
8886         (Resolve_Type_Conversion): Call above procedure after resolving operand
8887         and before performing checks. This replaces the existing ineffective
8888         code in Exp_Ch4.
8889         (Set_String_Literal_Subtype): When creating the internal static lower
8890         bound subtype for a string literal, use a newly created copy of the
8891         subtree representing the lower bound.
8892         (Resolve_Call): Exclude build-in-place function calls from transient
8893         scope treatment. Update comments to describe this exception.
8894         (Resolve_Equality_Op): In case of dispatching call check violation of
8895         restriction No_Dispatching_Calls.
8896         (Resolve_Call): If the call returns an array, the context imposes the
8897         component type of the array, and the function has one non-defaulted
8898         parameter, rewrite the call as the indexing of a call with a single
8899         parameter, to handle an Ada 2005 syntactic ambiguity for calls written
8900         in prefix form.
8901         (Resolve_Actuals): If an actual is an allocator for an access parameter,
8902         the master of the created object is the innermost enclosing statement.
8903         (Remove_Conversions): For a binary operator, check if type of second
8904         formal is numeric, to check if an abstract interpretation is present
8905         in the case of exponentiation as well.
8906
8907 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
8908             Bob Duff  <duff@adacore.com>
8909
8910         * atree.h, atree.ads, atree.adb (Copy_Node_With_Replacement): When
8911         copying a parameter list in a call, set properly the First_Named_Formal
8912         and Next_Named_Formal fields in the new list and in the enclosing call.
8913         (Watch_Node,New_Node_Breakpoint,New_Node_Debugging_Output): Shorten
8914         names, to ease typing in the debugger. Improve comments.
8915         (Watch_Node): New variable, intended to be set in the debugger.
8916         (New_Node_Breakpoint): New do-nothing procedure to set a breakpoint on,
8917         called when the watched node is created.
8918         (New_Node_Debugging_Output): Combined version of local procedures
8919         New_Node_Debugging_Output and New_Entity_Debugging_Output, now global,
8920         with a parameter so that conditional breakpoints like "if Node = 12345"
8921         work.
8922         (New_Node, New_Entity): Call the global New_Node_Debugging_Output.
8923         Add Elist1 function
8924
8925 2007-04-06  Thomas Quinot  <quinot@adacore.com>
8926             Ed Schonberg  <schonberg@adacore.com>
8927             Gary Dismukes  <dismukes@adacore.com>
8928
8929         * checks.ads, checks.adb (Selected_Range_Checks): No range check is
8930         required for a conversion between two access-to-unconstrained-array
8931         types.
8932         (Expr_Known_Valid): Validity checks do not apply to discriminants, but
8933         to discriminant constraints on discriminant objects. This rule must
8934         apply as well to discriminants of protected types in private components.
8935         (Null_Exclusion_Static_Checks): If No_Initialization is set on an
8936         object of a null-excluding access type then don't require the
8937         the object declaration to have an expression and don't emit a
8938         run-time check.
8939
8940 2007-04-06  Arnaud Charlet  <charlet@adacore.com>
8941             Eric Botcazou  <botcazou@adacore.com>
8942
8943         * gnatvsn.ads, comperr.adb (Get_Gnat_build_Type): Renamed Build_Type
8944         and made constant.
8945
8946         * comperr.ads, comperr.adb (Compiler_Abort): Add third parameter
8947         Fallback_Loc. Use it as the sloc info when Current_Error_Node doesn't
8948         carry any.
8949
8950         * fe.h (Compiler_Abort): Add third parameter.
8951
8952         * misc.c (internal_error_function): Build third argument from current
8953         input location and pass it to Compiler_Abort.
8954
8955 2007-04-06  Gary Dismukes  <dismukes@adacore.com>
8956
8957         * cstand.adb (Create_Standard): When the target's storage unit size is
8958         greater than a byte, set Has_Non_Standard_Rep and Has_Pragma_Pack on
8959         Standard_String.
8960
8961 2007-04-06  Nicolas Roche  <roche@adacore.com>
8962
8963         * cstreams.c (__gnat_full_name): Fix issues on VxWorks 6.x for which
8964         absolute path can have the following form: device:/a/b. In this case
8965         '/' should be inserted between the path and the filename.
8966
8967 2007-04-06  Olivier Hainque  <hainque@adacore.com>
8968             Eric Botcazou  <botcazou@adacore.com>
8969
8970         * decl.c (gnat_to_gnu_entity) <E_Constant>: Associate an external
8971         VAR_DECL to a CONST_DECL we make for a public constant when we know the
8972         corresponding definition has created the so made visible variable.
8973         Handle anonymous access to protected subprogram.
8974         (gnat_to_gnu_entity) <E_Variable>: Do not make the underlying type of an
8975         object with an address clause volatile.  Re-enable original fix.
8976         <E_Subprogram_Type>: Set TYPE_REF_CAN_ALIAS_ALL on the reference type
8977         too.
8978         (gnat_to_gnu_entity) <E_Class_Wide_Type>: Retrieve the TYPE_DECL
8979         associated with either the Equivalent or Root type, instead of the
8980         naked type node.
8981         (gnat_to_gnu_entity): Manually mark the top of the DECL_FIELD_OFFSET
8982         subtree for every field of a global record type.
8983         (gnat_to_gnu_entity) <E_Record_Subtype>: If the subtype has
8984         discriminants, invoke again variable_size on its newly computed sizes.
8985
8986 2007-04-06  Robert Dewar  <dewar@adacore.com>
8987             Thomas Quinot  <quinot@adacore.com>
8988             Ed Schonberg  <schonberg@adacore.com>
8989             Bob Duff  <duff@adacore.com>
8990
8991         * einfo.ads, einfo.adb: (First_Component_Or_Discriminant): New function
8992         (Next_Component_Or_Discriminant): New function and procedure
8993         (First_Index, First_Literal, Master_Id,
8994         Set_First_Index, Set_First_Literal, Set_Master_Id):
8995         Add missing Ekind assertions.
8996         (Is_Access_Protected_Subprogram_Type): New predicate.
8997         (Has_RACW): New entity flag, set on package entities to indicate that
8998         the package contains the declaration of a remote accecss-to-classwide
8999         type.
9000         (E_Return_Statement): This node type has the Finalization_Chain_Entity
9001         attribute, in case the result type has controlled parts.
9002         (Requires_Overriding): Add this new flag, because "requires
9003         overriding" is subtly different from "is abstract" (see AI-228).
9004         (Is_Abstract): Split Is_Abstract flag into Is_Abstract_Subprogram and
9005         Is_Abstract_Type. Make sure these are called only when appropriate.
9006         (Has_Pragma_Unreferenced_Objects): New flag
9007
9008         * exp_ch5.adb (Expand_N_Assignment_Statement): If the left-hand side is
9009         class-wide, the tag of the right-hand side must be an exact match, not
9010         an ancestor of that of the object on left-hand side.
9011         (Move_Activation_Chain): New procedure to create the call to
9012         System.Tasking.Stages.Move_Activation_Chain.
9013         (Expand_N_Extended_Return_Statement): Generate code to call
9014         System.Finalization_Implementation.Move_Final_List at the end of a
9015         return statement if the function's result type has controlled parts.
9016         Move asserts to Build_In_Place_Formal.
9017         (Move_Final_List): New function to create the call statement.
9018         (Expand_N_Assignment_Statement): In case of assignment to a class-wide
9019         tagged type, replace generation of call to the run-time subprogram
9020         CW_Membership by call to Build_CW_Membership.
9021         (Expand_N_Return_Statement): Replace generation of call to the run-time
9022         subprogram Get_Access_Level by call to Build_Get_Access_Level.
9023         (Expand_N_Simple_Function_Return): Replace generation of call to the
9024         run-time subprogram Get_Access_Level by call to Build_Get_Access_Level.
9025
9026         * exp_ch6.ads, exp_ch6.adb (Expand_Call): Use new predicate
9027         Is_Access_Protected_Subprogram_Type, to handle both named and anonymous
9028         access to protected operations.
9029         (Add_Task_Actuals_To_Build_In_Place_Call): New procedure to add the
9030         master and chain actual parameters to a build-in-place function call
9031         involving tasks.
9032         (BIP_Formal_Suffix): Add new enumeration literals to complete the case
9033         statement.
9034         (Make_Build_In_Place_Call_In_Allocator,
9035         Make_Build_In_Place_Call_In_Anonymous_Context,
9036         Make_Build_In_Place_Call_In_Assignment,
9037         Make_Build_In_Place_Call_In_Object_Declaration): Call
9038         Add_Task_Actuals_To_Build_In_Place_Call with the appropriate master.
9039         (Expand_Inlined_Call): If the subprogram is a null procedure, or a
9040         stubbed procedure with a null body, replace the call with a null
9041         statement without using the full inlining machinery, for efficiency
9042         and to avoid invalid values in source file table entries.
9043
9044         * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Add support for
9045         renamings of calls to build-in-place functions.
9046
9047         * rtsfind.adb (RTE_Record_Component_Available): New subprogram that
9048         provides the functionality of RTE_Available to record components.
9049         (RTU_Entity): The function Entity has been renamed to RTU_Entity
9050         to avoid undesired overloading.
9051         (Entity): New subprogram that returns the entity for the referened
9052         unit. If this unit has not been loaded, it returns Empty.
9053         (RE_Activation_Chain_Access, RE_Move_Activation_Chain): New entities.
9054         Remove no longer used entities.
9055         (RE_Finalizable_Ptr_Ptr, RE_Move_Final_List): New entities.
9056         (RE_Type_Specific_Data): New entity.
9057         (RE_Move_Any_Value): New entity.
9058         (RE_TA_A, RE_Get_Any_Type): New entities.
9059         (RE_Access_Level, RE_Dispatch_Table, E_Default_Prim_Op_Count,
9060          RE_Prims_Ptr, RE_RC_Offset, RE_Remotely_Callable,
9061          RE_DT_Typeinfo_Ptr_Size, RE_Cstring_Ptr, RE_DT_Expanded_Name): Added.
9062         (Entity): New subprogram that returns the entity for the referened
9063         unit. If this unit has not been loaded, it returns Empty.
9064         (RTE): Addition of a new formal that extends the search to the scopes
9065         of the record types found in the chain of the package.
9066
9067         * sem_ch6.ads, sem_ch6.adb (Check_Overriding_Indicator): Print
9068         "abstract subprograms must be visible" message, whether or not the type
9069         is an interface; that is, remove the special case for interface types.
9070         (Analyze_Function_Return): Remove error message "return of task objects
9071         is not yet implemented" because this is now implemented.
9072         (Create_Extra_Formals): Add the extra master and activation chain
9073         formals in case the result type has tasks.
9074         Remove error message "return of limited controlled objects is not yet
9075         implemented".
9076         (Create_Extra_Formals): Add the extra caller's finalization list formal
9077         in case the result type has controlled parts.
9078         (Process_Formals): In case of access formal types there is no need
9079         to continue with the analysis of the formals if we already notified
9080         errors.
9081         (Check_Overriding_Indicator): Add code to check overriding of predefined
9082         operators.
9083         (Create_Extra_Formals): Prevent creation of useless Extra_Constrained
9084         flags for formals that do not require them,.
9085         (Enter_Overloaded_Entity): Do not give -gnatwh warning message unless
9086         hidden entity is use visible or directly visible.
9087         (Analyze_Abstract_Subprogram_Declaration,Analyze_Subprogram_Body,
9088         Analyze_Subprogram_Declaration,Analyze_Subprogram_Specification,
9089         Check_Conventions,Check_Delayed_Subprogram,Make_Inequality_Operator,
9090         New_Overloaded_Entity): Split Is_Abstract flag into
9091         Is_Abstract_Subprogram and Is_Abstract_Type.
9092
9093         * s-finimp.ads, s-finimp.adb (Move_Final_List): New procedure to move
9094         a return statement's finalization list to the caller's list, used for
9095         build-in-place functions with result type with controlled parts.
9096         Remove no longer used entities.
9097
9098         * s-taskin.ads (Activation_Chain): Remove pragma Volatile. It is no
9099         longer needed, because the full type is now limited, and therefore a
9100         pass-by-reference type.
9101         (Foreign_Task_Level): New constant.
9102
9103         * s-tassta.ads, s-tassta.adb (Move_Activation_Chain): New procedure to
9104         move tasks from the activation chain belonging to a return statement to
9105         the one passed in by the caller, and update the master to the one
9106         passed in by the caller.
9107         (Vulnerable_Complete_Master, Check_Unactivated_Tasks): Check the master
9108         of unactivated tasks, so we don't kill the ones that are being returned
9109         by a build-in-place function.
9110         (Create_Task): Ignore AI-280 for foreign threads.
9111
9112 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
9113             Robert Dewar  <dewar@adacore.com>
9114             Bob Duff  <duff@adacore.com>
9115             Gary Dismukes  <dismukes@adacore.com>
9116
9117         * errout.adb (Unwind_Internal_Type): Use predicate
9118         Is_Access__Protected_Subprogram_Type.
9119
9120         * freeze.adb (Size_Known): Use First/Next_Component_Or_Discriminant
9121         (Freeze_Entity, packed array case): Do not override explicitly set
9122         alignment and size clauses.
9123         (Freeze_Entity):  An entity declared in an outer scope can be frozen if
9124         the enclosing subprogram is a child unit body that acts as a spec.
9125         (Freeze_Entity): Use new predicate Is_Access_Protected_Subprogram_Type.
9126         (Freeze_Record_Type): New Ada 2005 processing for reverse bit order
9127         Remove all code for DSP option
9128
9129         * layout.adb (Layout_Record_Type): Use First/
9130         Next_Component_Or_Discriminant
9131         (Layout_Type): Use new predicate Is_Access_Protected_Subprogram_Type,
9132         to handle properly the anonymous access case.
9133
9134         * sem_attr.adb (Build_Access_Object_Type): Use E_Access_Attribute_Type
9135         for all access attributes, because overload resolution should work the
9136         same for 'Access, 'Unchecked_Access, and 'Unrestricted_Access. This
9137         causes the error message for the ambiguous "X'Access = Y'Access" and
9138         "X'Unrestricted_Access = Y'Access" and so forth to match.
9139         (Resolve_Attribute, case 'Access): Remove use of Original_Access_Type,
9140         now that anonymous access to protected operations have their own kind.
9141         (Resolve_Attribute): In case of dispatching call check the violation of
9142         restriction No_Dispatching_Calls.
9143         (Check_Array_Type): Check new -gnatyA array index style option
9144
9145         * sem_ch3.ads, sem_ch3.adb (Derived_Type_Declaration): Reject an
9146         attempt to derive from a synchronized tagged type.
9147         (Analyze_Type_Declaration): If there is a incomplete tagged view of the
9148         type, inherit the class-wide type already created, because it may
9149         already have been used in a self-referential anonymous access component.
9150         (Mentions_T): Recognize self-referential anonymous access components
9151         that use (a subtype of) the class-wide type of the enclosing type.
9152         (Build_Derived_Record_Type): Add earlier setting of Is_Tagged_Type. Pass
9153         Derived_Type for Prev formal on call to
9154         Check_Anonymous_Access_Components rather than Empty.
9155         (Make_Incomplete_Type_Declaration): Add test for case where the type has
9156         a record extension in deciding whether to create a class-wide type,
9157         rather than just checking Tagged_Present.
9158         (Replace_Anonymous_Access_To_Protected_Subprogram): Procedure applies
9159         to stand-alone object declarations as well as component declarations.
9160         (Array_Type_Declaration): Initialize Packed_Array_Type to Empty, to
9161         prevent accidental overwriting when enclosing package appears in
9162         a limited_with_clause.
9163         (Array_Type_Declaration): If the component type is an anonymous access,
9164         the associated_node for the itype is the type declaration itself.
9165         (Add_Interface_Tag_Components): Modified to support concurrent
9166         types with abstract interfaces.
9167         (Check_Abstract_Interfaces): New subprogram that verifies the ARM
9168         rules 3.9.4 (15/2), 9.1 (9.d/2) and 9.4 (11.d/2).
9169         (Build_Derived_Record_Type): Add call to Analyze_Interface_Declaration
9170         to complete the decoration of synchronized interface types. Add also
9171         a call to Check_Abstract_Interfaces to verify the ARM rules.
9172         (Derive_Interface_Subprograms): Modified to support concurrent types
9173         with abstract interfaces.
9174         (Analyze_Subtype_Indication): Resolve the range with the given subtype
9175         mark, rather than delaying the full resolution depending on context.
9176         (Analyze_Component_Declaration,Analyze_Interface_Declaration,
9177         Analyze_Object_Declaration,Analyze_Subtype_Declaration,
9178         Array_Type_Declaration,Build_Derived_Record_Type,
9179         Build_Discriminated_Subtype,Check_Abstract_Overriding,Check_Completion,
9180         Derive_Interface_Subprograms,Derive_Subprogram,Make_Class_Wide_Type,
9181         Process_Full_View,Record_Type_Declaration): Split Is_Abstract flag into
9182         Is_Abstract_Subprogram and Is_Abstract_Type. Make sure these are
9183         called only when appropriate.
9184         (Copy_And_Swap): Copy Has_Unreferenced_Objects flag from full type
9185         to private type.
9186         (Analyze_Subtype_Declaration): For an access subtype declaration, create
9187         an itype reference for the anonymous designated subtype, to prevent
9188         scope anonmalies in gigi.
9189         (Build_Itype_Reference): New utility, to simplify construction of such
9190         references.
9191
9192 2007-04-06  Vincent Celier  <celier@adacore.com>
9193
9194         * errutil.adb (Initialize): Initialize warnings table, if all warnings
9195         are suppressed, supply an initial dummy entry covering all possible
9196         source locations.
9197
9198         * make.adb (Scan_Make_Arg): Reject options that should start with "--"
9199         and start with only one, such as "-RTS=none".
9200         (Collect_Arguments): Do not check for sources outside of projects.
9201         Do not collect arguments if project is externally built.
9202         (Compile_Sources): Do nothing, not even check if the source is up to
9203         date, if its project is externally built.
9204         (Compile): When compiling a predefined source, add -gnatpg
9205         as the second switch, after -c.
9206         (Compile_Sources): Allow compilation of Annex J renames without -a
9207         (Is_In_Object_Directory): Check if the ALI file is in the object
9208         even if there is no project extension.
9209         (Create_Binder_Mapping_File): Only put a unit in the mapping file for
9210         gnatbind if the ALI file effectively exists.
9211         (Initialize): Add the directory where gnatmake is invoked in front of
9212         the path if it is invoked from a bin directory, even without directory
9213         information, so that the correct GNAT tools will be used when spawned
9214         without directory information.
9215
9216         * makeusg.adb: Change switch -S to -eS
9217         Add lines for new switches -we, -wn and -ws
9218         Add line for new switch -p
9219
9220         * prj-proc.adb (Process): Set Success to False when Warning_Mode is
9221         Treat_As_Error and there are warnings.
9222
9223         * switch-m.ads, switch-m.adb (Normalize_Compiler_Switches): Do not skip
9224         -gnatww Change gnatmake switch -S to -eS
9225         (Scan_Make_Switches): Code reorganisation. Process separately multi
9226         character switches and single character switches.
9227         (Scan_Make_Switches): New Boolean out parameter Success. Set Success to
9228         False when switch is not recognized by gnatmake.
9229         (Scan_Make_Switches): Set Setup_Projects True when -p or
9230         --create-missing-dirs is specified.
9231
9232         * fname.adb (Is_Predefined_File_Name): Return True for annex J
9233         renamings Calendar, Machine_Code, Unchecked_Conversion and
9234         Unchecked_Deallocation only when Renamings_Included is True.
9235
9236         * par.adb: Allow library units Calendar, Machine_Code,
9237         Unchecked_Conversion and Unchecked_Deallocation to be recompiled even
9238         when -gnatg is not specified.
9239         (P_Interface_Type_Definition): Remove the formal Is_Synchronized because
9240         there is no need to generate always a record_definition_node in case
9241         of synchronized interface types.
9242         (SIS_Entry_Active): Initialize global variable to False
9243         (P_Null_Exclusion): For AI-447: Add parameter Allow_Anonymous_In_95 to
9244         indicate cases where AI-447 says "not null" is legal.
9245
9246         * makeutl.ads, makeutil.adb (Executable_Prefix_Path): New function
9247
9248         * makegpr.adb (Check_Compilation_Needed): Take into account dependency
9249         files with with several lines starting with the object fileb name.
9250         (Scan_Arg): Set Setup_Projects True when -p or --create-missing-dirs
9251         is specified.
9252         (Initialize): Add the directory where gprmake is invoked in front of the
9253         path, if it is invoked from a bin directory or with directory
9254         information, so that the correct GNAT tools will be used when invoked
9255         directly.
9256         (Check_Compilation_Needed): Process correctly backslashes on Windows.
9257
9258         * vms_data.ads: Update switches/qualifiers
9259
9260 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
9261             Thomas Quinot  <quinot@adacore.com>
9262
9263         * exp_aggr.adb:
9264         If the array component is a discriminated record, the array aggregate
9265         is non-static even if the component is given by an aggregate with
9266         static components.
9267         (Expand_Record_Aggregate): Use First/Next_Component_Or_Discriminant
9268         (Convert_Aggr_In_Allocator): If the allocator is for an access
9269         discriminant and the type is controlled. do not place on a finalization
9270         list at this point. The proper list will be determined from the
9271         enclosing object.
9272         (Build_Record_Aggr_Code): If aggregate has box-initialized components,
9273         initialize record controller if needed, before the components, to ensure
9274         that they are properly finalized.
9275         (Build_Record_Aggr_Code): For the case of an array component that has a
9276         corresponding array aggregate in the record aggregate, perform sliding
9277         if required.
9278
9279 2007-04-06  Javier Miranda  <miranda@adacore.com>
9280             Gary Dismukes  <dismukes@adacore.com>
9281             Ed Schonberg  <schonberg@adacore.com>
9282
9283         * exp_ch13.adb (Expand_External_Tag_Definition): Replace call to the
9284         run-time subprogram Set_External_Tag by call to Build_Set_External_Tag.
9285
9286         * exp_ch4.adb (Expand_Allocator_Expression): Don't perform a run-time
9287         accessibility on class-wide allocators if the allocator occurs at the
9288         same scope level as the allocator's type. The check is guaranteed to
9289         succeed in that case, even when the expression originates from a
9290         parameter of the containing subprogram.
9291         (Expand_N_Op_Eq): Do nothing in case of dispatching call if compiling
9292         under No_Dispatching_Calls restriction. During the semantic analysis
9293         we already notified such violation.
9294         (Tagged_Membership): Constant folding. There is no need to check
9295         the tag at run-time if the type of the right operand is non
9296         class-wide abstract.
9297         Replace call to Is_Ancestor by call to Is_Parent
9298         to support concurrent types with interface types.
9299         (Expand_N_Allocator): Add an assertion associated with the generation
9300         of the master_id.
9301         (Expand_N_Slice): Do not enable range check to nodes associated
9302         with the frontend expansion of the dispatch table.
9303         (Is_Local_Access_Discriminant): Subsidiary function to
9304         Expand_N_Allocator.
9305         (Tagged_Membership): Replace generation of call to the run-time
9306         subprogram CW_Membership by call to Build_CW_Membership.
9307         (Expand_Allocator_Expression): Replace generation of call to the
9308         run-time subprogram Get_Access_Level by call to Build_Get_Access_Level.
9309
9310         * exp_disp.ads, exp_disp.adb (Make_DT): Code reorganization to
9311         initialize most the TSD components by means of an aggregate.
9312         Modify the declaration of the object containing the TSD
9313         because we now expand code that has a higher level of abstraction.
9314         The TSD has a discriminant containing the Inheritance Depth Level,
9315         value that is used in the membership test but also to fix the size
9316         of the table of ancestors.
9317         (Expand_Interface_Conversion): Insert function body at the closest place
9318         to the conversion expression, to prevent access-before-elaboration
9319         errors in the backend.
9320         Code improved to reduce the size of the dispatch table if
9321         compiling under restriction No_Dispatching_Calls plus code cleanup.
9322         Code reorganization plus removal of calls to Set_Num_Prim_Ops
9323         (Make_Secondary_DT): Remove call to Set_Num_Prim_Ops.
9324         (Expand_Dispatching_Call): Minor code reorganization plus addition of
9325         code to return immediately if compiling under No_Dispatching_Calls
9326         restriction.
9327         (Set_All_DT_Position): Remove code associated with the old CPP pragmas.
9328         CPP_Virtual and CPP_Vtable are no longer supported.
9329         (Expand_Interface_Conversion): Add missing support for interface type
9330         derivations.
9331         (Expand_Interface_Actuals): Replace calls to Is_Ancestor by calls to
9332         Is_Parent to support concurrent types with interfaces.
9333         (Init_Predefined_Interface_Primitives): Removed.
9334         (Make_Secondary_DT): Modified to support concurrent record types.
9335         (Set_All_DT_Position): Modified to support concurrent record types.
9336         (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entries associated
9337         with Get_External_Tag, Inherit_TSD, Set_External_Tag.
9338         (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entry associated
9339         with CW_Membership.
9340         (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entries associated
9341         with Get_Access_Level, Get_Predefined_Prim_Op_Address,
9342         Get_Prim_Op_Address Get_RC_Offset, Get_Remotely_Callable, Inherit_DT,
9343         Set_Access_Level, Set_Expanded_Name, Set_Predefined_Prim_Op_Address,
9344         Set_Prim_Op_Address, Set_RC_Offset, Set_Remotely_Callable, Set_TSD.
9345         (Expand_Dispatching_Call): Replace generation of call to the run-time
9346         subprograms Get_Predefined_Prim_Op_Address and Get_Prim_Op_Address by
9347         calls to Build_Get_Predefined_Prim_Op_Address, and Build_Get_Prim_Op_
9348         Address.
9349         (Fill_DT_Entry, Fill_Secondary_DT_Entry): Replace generation of call to
9350         the run-time subprograms Set_Predefined_Prim_Op_Address and Set_Prim_
9351         Op_Address by calls to Build_Set_Predefined_Prim_Op_Address, and
9352         Build_Set_Prim_Op_Address.
9353         (Get_Remotely_Callable): Subprogram removed.
9354         (Init_Predefined_Interface_Primitives): Replace generation of call to
9355         the run-time subprograms Inherit_DT by call to Build_Inherit_Predefined_
9356         Prims.
9357
9358         * sem_elab.adb (Set_Elaboration_Constraint): Replace the call to
9359         First (Parameter_Associations ()) with the call to First_Actual that
9360         returns an actual parameter expression for both named and positional
9361         associations.
9362
9363         * sem_disp.adb (Check_Dispatching_Call): In case of dispatching call
9364         check violation of restriction No_Dispatching_Calls.
9365         (Check_Controlling_Type): A formal of a tagged incomplete type is a
9366         controlling argument.
9367
9368         * exp_util.ads, exp_util.adb (Type_May_Have_Bit_Aligned_Components): Use
9369         First/Next_Component_Or_Discriminant
9370         (Insert_Actions): Add entries for new N_Push and N_Pop nodes
9371         (Find_Implemented_Interface): Removed. All the calls to this subprogram
9372         specify Any_Limited_Interface, and this functionality is already
9373         provided by the function Has_Abstract_Interfaces.
9374         (Find_Interface, Find_Interface_Tag, Find_Interface_ADT): Modified to
9375         support concurrent types implementing interfaces.
9376         (Find_Implemented_Interface): Removed. All the calls to this subprogram
9377         specify kind Any_Limited_Interface, and this functionality is already
9378         provided by the function Has_Abstract_Interfaces.
9379         (Remove_Side_Effects): replace Controlled_Type by
9380         CW_Or_Controlled_Type whenever the issue is related to
9381         using or not the secondary stack.
9382
9383         * par-ch12.adb (P_Formal_Type_Definition): Update calls to
9384         P_Interface_Type_Definition to fulfill the new interface (the formal
9385         Is_Synchronized is no longer required).
9386
9387         * Make-lang.in (GNAT_ADA_OBJS): Addition of exp_atag.o
9388         Update dependencies.
9389
9390         * exp_atag.ads, exp_atag.adb: New file
9391
9392 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
9393             Bob Duff  <duff@adacore.com>
9394             Cyrille Comar  <comar@adacore.com>
9395
9396         * exp_ch7.ads, exp_ch7.adb (Find_Final_List): If the access type is
9397         anonymous, use finalization list of enclosing dynamic scope.
9398         (Expand_N_Package_Declaration): For a library package declaration
9399         without a corresponding body, generate RACW subprogram bodies in the
9400         spec (just as we do for the task activation call).
9401         (Convert_View): Split Is_Abstract flag into Is_Abstract_Subprogram and
9402         Is_Abstract_Type. Make sure these are called only when appropriate.
9403         Remove all code for DSP option
9404         (CW_Or_Controlled_Type): new subprogram.
9405
9406 2007-04-06  Eric Botcazou  <botcazou@adacore.com>
9407             Ed Schonberg  <schonberg@adacore.com>
9408             Gary Dismukes  <dismukes@adacore.com>
9409
9410         * exp_ch9.ads, exp_ch9.adb (Family_Offset): Add new 'Cap' boolean
9411         parameter. If it is set to true, return a result capped according to
9412         the global upper bound for the index of an entry family.
9413         (Family_Size): Add new 'Cap' boolean parameter. Pass it to Family_Offset
9414         (Build_Find_Body_Index): Adjust for above change.
9415         (Entry_Index_Expression): Likewise.
9416         (Is_Potentially_Large_Family): New function extracted from...
9417         (Collect_Entry_Families): ...here. Call it to detect whether the family
9418         is potentially large.
9419         (Build_Entry_Count_Expression): If the family is potentially large, call
9420         Family_Size with 'Cap' set to true.
9421         (Expand_N_Protected_Type_Declaration, Expand_N_Protected_Body): Generate
9422         a protected version of an operation declared in the private part of
9423         a protected object, because they may be invoked through a callback.
9424         (Set_Privals): If the type of a private component is an anonymous access
9425         type, do not create a new itype for each protected body.
9426         If the body of a protected operation creates
9427         controlled types (including allocators for class-widetypes), the
9428         body of the corresponding protected subprogram must include a
9429         finalization list.
9430         (Build_Activation_Chain_Entity): Build the chain entity for extended
9431         return statements.
9432         (Type_Conformant_Parameters): Use common predicate Conforming_Types
9433         to determine whether operation overrides an inherited primitive.
9434         (Build_Wrapper_Spec): Add code to examine the parents while looking
9435         for a possible overriding candidate.
9436         (Build_Simple_Entry_Call): Set No_Initialization on the object used to
9437         hold an actual parameter value since its initialization is separated
9438         from the the declaration. Prevents errors on null-excluding access
9439         formals.
9440
9441 2007-04-06  Thomas Quinot  <quinot@adacore.com>
9442             Pablo Oliveira  <oliveira@adacore.com>
9443
9444         * exp_dist.ads, exp_dist.adb (Build_To_Any_Call, Build_From_Any_Call):
9445         Do an Unchecked_Conversion to handle the passage from the Underlying
9446         Type to the Base Type when calling Build_To_Any_Call and
9447         Build_From_Any_Call.
9448         (Build_Actual_Object_Declaration): Set Object's Ekind to E_Variable or
9449         E_Constant, depending upon Variable formal.
9450         (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
9451         PolyORB_Support.Build_Subprogram_Receiving_Stubs): For a formal
9452         parameter that requires an extra constrained parameter, declare
9453         temporary for actual as a variable, not a constant.
9454         (Add_RACW_Primitive_Declarations_And_Bodies): Generate bodies only when
9455         the unit being compiled is the one that contains the stub type.
9456         Change primitive operation name for the RACW associated with a RAS
9457         from Call to _Call so it cannot clash with any legal identifier.
9458         (PolyORB_Support.Add_RACW_Write_Attribute): Remove unused constant
9459         Is_RAS.
9460         (Append_RACW_Bodies): New subprogram.
9461         (Expand_Receiving_Stubs_Bodies): Pass a 'Stmts' list to
9462         Add_Receiving_Stubs_To_Declarations functions.
9463         When expanding a package body, this list correspond to the
9464         statements in the HSS at the end of the pacakge.
9465         When expanding a package spec, this list correspond to the
9466         spec declarations.
9467         (Add_Receiving_Stubs_To_Declarations): Append the function
9468         registering the receiving stubs at the end of the 'Stmts' list.
9469         (RCI_Package_Locator): Pass the new Version generic formal when
9470         instantiating a RCI_Locator package.
9471         (Build_From_Any_Function): To compute the High bound for an
9472         unconstrained array actual, we add the Low bound with the length.
9473         Thus we must convert the low bound and the length to an appropriate
9474         type before doing the sum.
9475         (Build_Subprogram_Receiving_Stubs, PolyORB):
9476          * Retrieve the extra formals parameters at the
9477            end of the parameter stream.
9478          * Use Move_Any_Value to write back out parameters
9479            after executing the request as it is more efficient
9480            than Copy_Any_Value.
9481          * Build the any containing Extra Formals with the
9482            appropriate typecode.
9483         (PolyORB_Support.Helpers.Append_Record_Traversal): Nothing to do for an
9484         empty Component_List.
9485         (Build_Actual_Object_Declaration): New subprogram. Build and insert into
9486         the tree the declaration for an object that serves as actual parameter
9487         in server-side stubs.
9488         (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
9489         PolyORB_Support.Build_Subprogram_Receiving_Stubs):
9490         Use Build_Actual_Object_Declaration to prepare the actuals.
9491         (Add_Parameter_To_NVList): Set the parameter mode to In for
9492         Extra Constrained Parameters.
9493         (Build_General_Calling_Stubs): Set the parameter type to boolean for
9494         Extra Constrained parameters.
9495         (Build_To_Any_Function, Build_From_Any_Function,
9496         Built_TypeCode_Function): When Typ is implicit, call the correct
9497         function with the first not implicit parent type.
9498         (TC_Rec_Add_Process_Element, FA_Rec_Add_Process_Element,
9499         (FA_Ary_Add_Process_Element): When Datum is an Any, we cannot infer the
9500         typecode from the Etype. Therefore we retrieve the correct typecode
9501         with a call to Get_Any_Type.
9502         (Copy_Specification): Do controlling formal type substitution based on
9503         Is_Controlling_Formal flag, instead of caller-provided object type.
9504         (Build_Subprogram_Calling_Stubs): When retrieveing the original spec for
9505         a RACW primitive operation, we might get a subprogram declaration for an
9506         ancestor of the RACW designated type (not for the designated type
9507         itself), in the case where this operation is inherited. In this case we
9508         have no easy means of determining the original tagged type for which
9509         the primitive was declared, so instead we now rely on
9510         Copy_Specification to use the Is_Controlling_Formal flag to determine
9511         which formals require type substitution.
9512
9513 2007-04-06  Robert Dewar  <dewar@adacore.com>
9514             Ed Schonberg  <schonberg@adacore.com>
9515
9516         * exp_intr.adb (Expand_Exception_Call): Calls to subprograms in
9517         GNAT.Current_Exception are not allowed if pragma Restrictions
9518         (No_Exception_Propagation) is set and in any case make the associated
9519         handler unsuitable as a target for a local raise statement.
9520         (Expand_Dispatching_Constructor_Call): Replace generation of call to the
9521         run-time subprogram CW_Membership by call to Build_CW_Membership.
9522         (Expand_Dispatching_Constructor_Call): If the dispatching tag is given
9523         by a function call, a temporary must be created before expanding the
9524         Constructor_Call itself, to prevent out-of-order elaboration in the
9525         back-end when stack checking is enabled..
9526
9527 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
9528
9529         * exp_pakd.adb (Expand_Packed_Boolean_Operator): The bounds of the
9530         result are the bounds of the left operand, not the right.
9531
9532 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
9533
9534         * exp_strm.adb
9535         (Build_Mutable_Record_Write_Procedure): For an Unchecked_Union type, use
9536          discriminant defaults.
9537         (Build_Record_Or_Elementary_Output_Procedure): Ditto.
9538         (Make_Component_List_Attributes): Ditto.
9539
9540 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
9541             Bob Duff  <duff@adacore.com>
9542
9543         * sem_aggr.adb (Resolve_Record_Aggregate): In semantics-only mode treat
9544         an association with a box as providing a value even though the
9545         initialization procedure for the type is not available.
9546         (Resolve_Record_Aggregate): Check that a choice of an association with a
9547         box corresponds to a component of the type.
9548         (Resolve_Record_Aggregate): Split Is_Abstract flag into
9549         Is_Abstract_Subprogram and Is_Abstract_Type.
9550
9551         * exp_tss.adb (Base_Init_Proc): Use Is_Type instead of Type_Kind for
9552         assert.
9553
9554         * inline.adb (Add_Inlined_Body): Split Is_Abstract flag into
9555         Is_Abstract_Subprogram and Is_Abstract_Type. Make sure these are
9556         called only when appropriate.
9557
9558 2007-04-06  Olivier Hainque  <hainque@adacore.com>
9559
9560         * g-alleve.ads (Low Level Vector type definitions): Map each to the
9561         associated vector view instead of all to the unsigned char view.
9562
9563         * g-altcon.adb (Generic_Conversions): New internal generic package,
9564         offering facilities for all the Vector/View conversion routines
9565         implemented by this unit.
9566         (To_View/To_Vector - all versions): Reimplemented in a systematic
9567         manner, using the internal Generic_Conversions facilities.
9568
9569 2007-04-06  Pascal Obry  <obry@adacore.com>
9570
9571         * g-arrspl.adb (Free) [Element_Access]: New routine to free the source
9572         string.
9573         (Create): Free the source string before storing the new one.
9574
9575 2007-04-06  Vincent Celier  <celier@adacore.com>
9576
9577         * g-debpoo.adb (Validity): New package with a complete new
9578         implementation of subprograms Is_Valid and Set_Valid.
9579         (Is_Valid): Move to local package Validity
9580         (Set_Valid): Move to local package Validity
9581
9582 2007-04-06  Arnaud Charlet  <charlet@adacore.com>
9583             Pablo Oliveira  <oliveira@adacore.com>
9584
9585         * g-expect.adb (Get_Command_Output): When expanding the output buffer
9586         we must ensure that there is enough place for the new data we are going
9587         to copy in.
9588
9589 2007-04-06  Thomas Quinot  <quinot@adacore.com>
9590
9591         * g-md5.ads, g-md5.adb (Digest): Fix off-by-one error in padding
9592         computation.
9593
9594 2007-04-06  Jose Ruiz  <ruiz@adacore.com>
9595             Vincent Celier  <celier@adacore.com>
9596
9597         * gnatcmd.adb (B_Start): Add prefix of binder generated file.
9598         (Stack_String): Add this String that contains the name of the Stack
9599         package in the project file.
9600         (Packages_To_Check_By_Stack): Add this list that contains the packages
9601         to be checked by gnatstack, which are the naming and the stack packages.
9602         (Check_Files): If no .ci files were specified for gnatstack we add all
9603         the .ci files belonging to the projects, including binder generated
9604         files.
9605         (Non_VMS_Usage): Document that gnatstack accept project file switches.
9606         (GNATCmd): Update the B_Start variable if we are in a VMS environment.
9607         Add gnatstack to the list of commands that use project file related
9608         switches, and get the single attribute Switches from the stack package
9609         in a project file when calling gnatstack. Parse the -U flag for
9610         processing files belonging to all projects in the project tree.
9611         Remove all processing for command Setup
9612
9613         * prj-attr.adb: Add new package Stack with single attribute Switches
9614
9615         * vms_conv.ads (Command_Type): Add command Stack.
9616         Move to body declarations that are only used in the body: types Item_Id,
9617         Translation_Type, Item_Ptr, Item and its subtypes.
9618
9619         * vms_conv.adb: (Initialize): Add data for new command Stack.
9620         Add declarations moved from the spec: types Item_Id, Translation_Type,
9621         Item_Ptr, Item and its subtypes.
9622         (Cargs_Buffer): New table
9623         (Cargs): New Boolean global variable
9624         (Process_Buffer): New procedure to create arguments
9625         (Place): Put character in table Buffer or Cargs_Buffer depending on the
9626          value of Cargs.
9627         (Process_Argument): Set Cargs when processing qualifiers for GNAT
9628         COMPILE
9629         (VMS_Conversion): Call Process_Buffer for table Buffer and, if it is not
9630         empty, for table Cargs_Buffer.
9631         (Initialize): Remove component Setup in Command_List
9632
9633 2007-04-06  Vincent Celier  <celier@adacore.com>
9634
9635         * gprep.adb (Process_Files.Process_One_File): Use full file name when
9636         issuing pragma Source_Reference.
9637
9638 2007-04-06  Emmanuel Briot  <briot@adacore.com>
9639
9640         * g-regpat.adb (Parse_Posix_Character_Class): Fix handling of
9641         [[:xdigit:]] character class.
9642         Also raise an exception when an invalid character class is used.
9643
9644 2007-04-06  Pascal Obry  <obry@adacore.com>
9645
9646         * i-cstrea.ads: (fopen): Add encoding parameter.
9647         (freopen): Idem.
9648         Change reference from a-sysdep.c to sysdep.c in comment.
9649         Update copyright notice.
9650         This set of patch add support for the encoding form parameter.
9651
9652         * mingw32.h (S2WSU): New macro to convert from a string to a
9653         wide-string using the UTF-8 encoding. The S2WS macro supports now only
9654         standard 8bits encoding.
9655         (WS2SU): As above but converting from wide-sring to string.
9656         This is needed as it is necessary to have access to both versions in the
9657         runtime for the form parameter encoding support.
9658         This set of patch add support for the encoding form parameter.
9659         (S2WS): Improve implementation to handle cases where the filename is not
9660         UTF-8 encoded. In this case we default to using the current code page
9661         for the conversion.
9662
9663         * s-crtl-vms64.ads, s-crtl.ads (Filename_Encoding): New enumeration
9664         type (UTF8, ASCII_8bits). This enumeration has a rep clause to match
9665         the constants defined in adaint.h.
9666         (fopen): Add encoding parameter.
9667         (freopen): Idem.
9668
9669         * s-ficobl.ads (AFCB): Add Encoding field to record the filename
9670         encoding. This is needed for the Reset routine (freopen low level-call).
9671
9672         * s-fileio.adb (Open): Decode encoding form parameter and set the
9673         corresponding encoding value into AFCB structure.
9674         (Reset): Pass the encoding value to freopen.
9675         (Close): Move the call to Lock_Task to the beginning of the procedure.
9676
9677 2007-04-06  Geert Bosch  <bosch@adacore.com>
9678             Robert Dewar  <dewar@adacore.com>
9679
9680         * i-fortra.ads: Add Double_Complex type.
9681
9682         * impunit.adb: (Is_Known_Unit): New function
9683         Add Gnat.Byte_Swapping
9684         Add GNAT.SHA1
9685         Add new Ada 2005 units
9686         Ada.Numerics.Generic_Complex_Arrays, Ada.Numerics.Generic_Real_Arrays,
9687         Ada.Numerics.Complex_Arrays, Ada.Numerics.Real_Arrays,
9688         Ada.Numerics.Long_Complex_Arrays, Ada.Numerics.Long_Long_Complex_Arrays,
9689         Ada.Numerics.Long_Long_Real_Arrays and Ada.Numerics.Long_Real_Arrays
9690
9691         * impunit.ads (Is_Known_Unit): New function
9692
9693         * a-ngcoar.adb, a-ngcoar.ads, a-ngrear.adb,
9694         a-ngrear.ads, a-nlcoar.ads, a-nllcar.ads, a-nllrar.ads, a-nlrear.ads,
9695         a-nucoar.ads, a-nurear.ads, g-bytswa.adb, g-bytswa-x86.adb,
9696         g-bytswa.ads, g-sha1.adb, g-sha1.ads, i-forbla.ads, i-forlap.ads,
9697         s-gearop.adb, s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb,
9698         s-gecola.ads, s-gerebl.adb, s-gerebl.ads, s-gerela.adb, s-gerela.ads:
9699         New files.
9700
9701         * Makefile.rtl: Add g-bytswa, g-sha1, a-fzteio and a-izteio
9702
9703         * a-fzteio.ads, a-izteio.ads: New Ada 2005 run-time units.
9704
9705 2007-04-06  Eric Botcazou  <botcazou@adacore.com>
9706             Arnaud Charlet  <charlet@adacore.com>
9707
9708         * init.c: Reuse PA/HP-UX code for IA-64/HP-UX, except
9709         __gnat_adjust_context_for_raise.
9710         (__gnat_init_float): on x86 vxworks 5.x and 6.x, we use the same
9711         implementation of floating point operations as native x86 targets.
9712         So the FPU should be initialized in the same way using finit. Fix
9713         floating point operations accuracy issues.
9714         (__gnat_install_handler, case FreeBSD): Use proper type for sa_sigaction
9715         member in struct sigaction, so as to avoid warning for incompatible
9716         pointer types.
9717
9718 2007-04-06 Serguei Rybin  <rybin@adacore.com>
9719
9720         * lib.ads, lib.adb (Tree_Read): Release the memory occupied by the
9721         switches from previously loaded tree
9722
9723 2007-04-06  Thomas Quinot  <quinot@adacore.com>
9724
9725         * lib-writ.adb (Write_With_Lines): Factor duplicated code between the
9726         cases where a given dependency has a body or not.
9727         (Write_With_File_Names): New subprogram, common code for the two cases
9728         above.
9729
9730 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
9731             Javier Miranda  <miranda@adacore.com>
9732
9733         * lib-xref.ads, lib-xref.adb: 
9734         Modify the loop that collects type references, to include interface
9735         types that the type implements. List each of these interfaces when
9736         building the entry for the type.
9737         (Generate_Definition): Initialize component Def and Typ of new entry
9738         in table Xrefs, to avoid to have these components unitialized.
9739         (Output_References): Split Is_Abstract flag into
9740         Is_Abstract_Subprogram and Is_Abstract_Type.
9741         (Generate_Reference): Add barrier to do not generate the warning
9742         associated with Ada 2005 entities with entities generated by the
9743         expander.
9744
9745 2007-04-06  Robert Dewar  <dewar@adacore.com>
9746             Arnaud Charlet  <charlet@adacore.com>
9747             Vincent Celier  <celier@adacore.com>
9748
9749         * gnat_rm.texi, gnat_ugn.texi: Add -gnatyl documentation
9750         Update 'Exception Handling Control' chapter which was outdated.
9751         Minor fix to documentation of -gnatwq
9752         Remove section "Adapting the Run Time to a New C++ Compiler" because
9753         it is now obsolete.
9754         Add passage on need of -nostart-files in some non-ada-main cases.
9755         Document new switch -eS (/STANDARD_OUTPUT_FOR_COMMANDS) for gnatmake
9756         Update documentation about Interfacing with C++
9757         Add documentation for new gnatmake switch -p
9758         Add missing protocol part in URLs.
9759         Document -gnatyA
9760         Document pragma Compile_Time_Error
9761         Add documentation for Object_Size indicating that stand alone
9762         objects can have a larger size in some cases.
9763         Add node for GNAT.Byte_Swapping, GNAT.SHA1
9764         Update reference to the Ravenscar profile.
9765         Document pragma Unreferenced_Objects
9766
9767         * gnat-style.texi: Fix typo
9768
9769 2007-04-06  Vincent Celier  <celier@adacore.com>
9770
9771         * mlib.adb (Building_Library): Only output "building a library..." in
9772         verbose mode
9773
9774         * mlib-prj.adb (Build_Library): Only output lists of object and ALI
9775         files in verbose mode.
9776
9777         * mlib-utl.adb (Ar): Only output the first object files when not in
9778         verbose mode.
9779         (Gcc): Do not display all the object files if not in verbose mode, only
9780         the first one.
9781
9782 2007-04-06  Robert Dewar  <dewar@adacore.com>
9783
9784         * namet.ads, namet.adb (wn): Improve this debugging routine. Calling
9785         it no longer destroys the contents of Name_Buffer or Name_Len and
9786         non-standard and invalid names are handled better.
9787         (Get_Decoded_Name_String): Improve performance by using
9788         Name_Has_No_Encodings flag in the name table.
9789         (Is_Valid_Name): New function to determine whether a Name_Id is valid.
9790         Used for debugging printouts.
9791
9792 2007-04-06  Robert Dewar  <dewar@adacore.com>
9793             Javier Miranda  <miranda@adacore.com>
9794             Bob Duff  <duff@adacore.com>
9795
9796         * par-ch3.adb: (P_Type_Declaration): Set Type_Token_Location
9797         (P_Interface_Type_Definition): Remove the formal Is_Synchronized because
9798         there is no need to generate always a record_definition_node in case
9799         of synchronized interface types.
9800         (P_Type_Declaration): Update calls to P_Interface_Type_Definition.
9801         (P_Null_Exclusion): For AI-447: Remove warnings about "not null" being
9802         illegal in Ada 95, in cases where it is legal. Change the warnings to
9803         errors in other cases. Don't give the error unless the "not null"
9804         parses properly. Correct the source position at which the error occurs.
9805         (P_Known_Discriminant_Part_Opt): Pass Allow_Anonymous_In_95 => True to
9806         P_Null_Exclusion, to suppress "not null" warnings.
9807         (P_Identifier_Declarations): Code cleanup. Removed unrequired label and
9808         associated goto statements.
9809
9810         * par-endh.adb (Pop_End_Context): Allow more flexibility in placement
9811         of END RECORD
9812
9813         * scans.ads (Type_Token_Location): New flag
9814
9815         * par-ch6.adb (P_Mode): Check specifically for case of IN ACCESS
9816         (P_Formal_Part): Pass Allow_Anonymous_In_95 => True to
9817         P_Null_Exclusion, to suppress "not null" warnings.
9818
9819 2007-04-06  Robert Dewar  <dewar@adacore.com>
9820             Javier Miranda  <miranda@adacore.com>
9821             Bob Duff  <duff@adacore.com>
9822             Vincent Celier  <celier@adacore.com>
9823
9824         * par-prag.adb (Prag): Add dummy entry for pragma Compile_Time_Error
9825         (Extensions_Allowed): No longer sets Ada_Version
9826         Entry for pragma Unreferenced_Objects
9827
9828         * sem_prag.adb (Analyze_Pragma, case Priority): Force with of
9829         system.tasking if pragma priority used in a procedure
9830         (Analyze_Pragma, case Warning): Handle dot warning switches
9831         (Process_Compile_Time_Warning_Or_Error): New procedure
9832         (Analyze_Pragma): Add processing for Compile_Time_Error
9833         Add support for extra arguments External_Name and Link_Name.
9834         Remove code associated with pragmas CPP_Virtual and CPP_Vtable.
9835         (Process_Import_Or_Interface): Add support for the use of pragma Import
9836         with tagged types.
9837         (Extensions_Allowed): No longer affects Ada_Version
9838         (Analyze_Pragma): Split Is_Abstract flag into Is_Abstract_Subprogram and
9839         Is_Abstract_Type. Make sure these are called only when appropriate.
9840         Add processing for pragma Unreferenced_Objects
9841
9842         * snames.h, snames.ads, snames.adb: Add entry for pragma
9843         Compile_Time_Error
9844         Add new standard name Minimum_Binder_Options for new gprmake
9845         Add new standard names for gprmake: Archive_Suffix,
9846         Library_Auto_Init_Supported, Library_Major_Minor_Id_Supported,
9847         Library_Support, Library_Version_Options,
9848         Shared_Library_Minimum_Options,
9849         Shared_Library_Prefix, Shared_Library_Suffix, Symbolic_Link_Supported.
9850         Change Name_Call to Name_uCall so that it cannot clash with a legal
9851         subprogram name.
9852         Add new standard names Mapping_Spec_Suffix and Mapping_Body_Suffix
9853         Append C_Plus_Plus to convention identifiers as synonym for CPP
9854         Add new standard names Stack and Builder_Switches
9855         Add new standard names: Compiler_Minimum_Options, Global_Config_File,
9856         Library_Builder, Local_Config_File, Objects_Path, Objects_Path_File,
9857         Run_Path_Option, Toolchain_Version.
9858         Entry for pragma Unreferenced_Objects
9859
9860         * switch-c.adb (Scan_Front_End_Switches): Store correct -gnateD
9861         switches, without repetition of "eD". Make sure that last character of
9862         -gnatep= switch is not taken as -gnat switch character.
9863         Complete rewrite of circuit for handling saving compilation options
9864         Occasioned by need to support dot switchs for -gnatw, but cleans up
9865         things in general.
9866         -gnatX does not affect Ada_Version
9867         Include -gnatyA in -gnatg style switches
9868
9869         * sem_warn.ads, sem_warn.adb (Output_Unreferenced_Messages): Exclude
9870         warnings on return objects.
9871         (Warn_On_Useless_Assignment): Exclude warnings on return objects
9872         (Set_Dot_Warning_Switch): New procedure
9873         (Check_References): Add missing case of test for
9874         Has_Pragma_Unreferenced_Objects
9875         (Output_Unreferenced_Messages): Implement effect of new pragma
9876         Unreferenced_Objects, remove special casing of limited controlled
9877         variables.
9878
9879 2007-04-06  Vincent Celier  <celier@adacore.com>
9880
9881         * prj-ext.adb (Initialize_Project_Path): New procedure that initialize
9882         the default project path, initially done during elaboration of the
9883         package.
9884         If the prefix returned by Sdefault is null, get the prefix from a call
9885         to Executable_Prefix_Path.
9886         (Project_Path): Call Initialize_Project_Path if Current_Project_Path is
9887         null.
9888
9889         * prj-nmsc.adb (Get_Path_Names_And_Record_Sources): Use the non
9890         canonical directory name to open the directory from which files are
9891         retrieved.
9892         (Record_Other_Sources): Idem.
9893         (Locate_Directory): Add the possibility to create automatically missing
9894         directories when Setup_Projects is True.
9895         Call Locate_Directory so that the directory will be created when
9896         Setup_Projects is True, for object dir, library dir, library ALI dir,
9897         library source copy dir and exec dir.
9898
9899         * prj-pp.adb (Max_Line_Length): Set to 255 for compatibility with older
9900         versions of GNAT.
9901
9902 2007-04-06  Robert Dewar  <dewar@adacore.com>
9903
9904         * sem_ch13.ads, sem_ch13.adb (Adjust_Record_For_Reverse_Bit_Order):
9905         Use First/Next_Component_Or_Discriminant
9906         (Analyze_Record_Representation_Clause):
9907         Use First/Next_Component_Or_Discriminant
9908         (Check_Component_Overlap): Use First/Next_Component_Or_Discriminant
9909         (Analyze_Attribute_Definition_Clause, case Value_Size): Reject
9910         definition if type is unconstrained.
9911         (Adjust_Record_For_Reverse_Bit_Order): New procedure
9912         (Analyze_Attribute_Definition_Clause): Split Is_Abstract flag into
9913         Is_Abstract_Subprogram and Is_Abstract_Type.
9914         (Adjust_Record_For_Reverse_Bit_Order): New procedure
9915
9916         * repinfo.adb (List_Record_Info): Use First/
9917         Next_Component_Or_Discriminant.
9918
9919         * style.ads, styleg-c.adb, styleg-c.ads (Check_Array_Attribute_Index):
9920         New procedure.
9921
9922         * stylesw.ads, stylesw.adb: Recognize new -gnatyA style switch
9923         Include -gnatyA in default switches
9924
9925         * opt.ads: (Warn_On_Non_Local_Exception): New flag
9926         (Warn_On_Reverse_Bit_Order): New flag
9927         (Extensions_Allowed): Update the documentation.
9928         (Warn_On_Questionable_Missing_Parens): Now on by default
9929
9930         * usage.adb: Add documentation of -gnatw.x/X switches
9931         Document new -gnatyA style switch
9932         -gnatq warnings are on by default
9933
9934 2007-04-06  Ed Falis  <falis@adacore.com>
9935
9936         * s-carun8.adb, s-carsi8.adb (Compare_Array_?8): modify so that last
9937         full word is no longer compared twice.
9938
9939 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
9940
9941         * sem_ch10.adb (Install_Limited_Context_Clauses.
9942         Expand_Limited_With_Clause): Use a new copy of selector name in the
9943         call to Make_With_Clause. This fixes the tree structure for ASIS
9944         purposes. Nothing is changed in the compiler behaviour.
9945         (Process_Body_Clauses): Handle properly use clauses whose prefix is
9946         a package renaming.
9947         (Install_Limited_With_Clauses): Do not install non-limited view when it
9948         is still incomplete.
9949
9950 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
9951             Gary Dismukes  <dismukes@adacore.com>
9952
9953         * sem_ch12.adb (Check_Generic_Actuals): Use first subtype of actual
9954         when capturing size information, instead of base type, which for a
9955         formal array type will be the unconstrained type.
9956         (Analyze_Formal_Object_Declaration): Add check for illegal default
9957         expressions for a formal in object of a limited type.
9958         (Instantiate_Object): Ditto.
9959         (Check_Formal_Package_Instance): Skip entities that are formal objects,
9960         because they were defaulted in the formal package and no check applies
9961         to them.
9962         (Check_Formal_Package_Instance): Extend conformance check to other
9963         discrete types beyond Integer.
9964         (Process_Default): Copy directly the unmatched formal. A generic copy
9965         has already been performed in Analyze_Formal_Package.
9966         (Analyze_Associations): If a formal subprogram has no match, check for
9967         partial parametrization before looking for a default, to prevent
9968         spurious errors.
9969         (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation): Do
9970         not set the instantiation environment before analyzing the actuals.
9971         Fixes regression on 8515-003 with implementation of AI-133.
9972         Set_Instance_Env checks whether the generic unit is a predefined
9973         unit, in which case the instance must be analyzed with the latest Ada
9974         mode. This setting must take place after analysis of the actuals,
9975         because the actuals must be analyzed and frozen in the Ada mode extant
9976         outside of the current instantiation.
9977         (Save_Env, Restore_Env): Preserve and restore the configuration
9978         parameters so that predefined units can be compiled in the proper Ada
9979         mode.
9980         (Analyze_Formal_Object_Declaration,Analyze_Formal_Subprogram,
9981         Instantiate_Type): Split Is_Abstract flag into Is_Abstract_Subprogram
9982         and Is_Abstract_Type.
9983         (Analyze_Formal_Package): For better error recovery, Add exception
9984         handler to catch Instantion_Error, which can be raised in
9985         Analyze_Associations
9986
9987 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
9988             Bob Duff  <duff@adacore.com>
9989             Gary Dismukes  <dismukes@adacore.com>
9990
9991         * sem_ch4.adb (Try_Primitive_Operation): The call is legal if the
9992         prefix type is a discriminated subtype of the type of the formal.
9993         (Analyze_Allocator): Collect all coextensions regardless of the context.
9994         Whether they can be allocated statically is determined in exp_ch4.
9995         (Analyze_Selected_Component): If the prefix is a limited view and the
9996         non-limited view is available, use the non-limited one.
9997         (Operator_Check): For "X'Access = Y'Access" (which is ambiguous, and
9998         therefore illegal), suggest a qualified expression rather than a type
9999         conversion, because a type conversion would be illegal in this context.
10000         (Anayze_Allocator): Trace recursively all nested allocators so that all
10001         coextensions are on the corresponding list for the root. Do no mark
10002         coextensions if the root allocator is within a declaration for a stack-
10003         allocated object, because the access discriminants will be allocated on
10004         the stack as well.
10005         (Analyze_Call): Remove restriction on calls to limited functions for the
10006         cases of generic actuals for formal objects, defaults for formal objects
10007         and defaults for record components.
10008         (Analyze_Allocator): Before analysis, chain coextensions on the proper
10009         element list. Their expansion is delayed until the enclosing allocator
10010         is processed and its finalization list constructed.
10011         (Try_Primitive_Operation): If the prefix is a concurrent type, looks
10012         for an operation with the given name among the primitive operations of
10013         the corresponding record type.
10014         (Analyze_Selected_Component): If the prefix is a task type that
10015         implements an interface, and there is no entry with the given name,
10016         check whether there is another primitive operation (e.g. a function)
10017         with that name.
10018         (Try_Object_Operation, Analyze_One_Call, Try_Indexed_Call): Handle
10019         properly the indexing of a function call written in prefix form, where
10020         the function returns an array type, and all parameters of the function
10021         except the first have defaults.
10022         (Analyze_Equality_Op): If this is a call to an implicit inequality, keep
10023         the original operands, rather than relocating them, for efficiency and
10024         to work properly when an operand is overloaded.
10025         (Analyze_Allocator,Operator_Check,Remove_Abstract_Operations): Split
10026         Is_Abstract flag into Is_Abstract_Subprogram and Is_Abstract_Type.
10027         (Analyze_Selected_Component): If the prefix is a private extension, only
10028         scan the visible components, not those of the full view.
10029         (Try_Primitive_Operation): If the operation is a procedure, collect all
10030         possible interpretations, as for a function, because in the presence of
10031         classwide parameters several primitive operations of the type can match
10032         the given arguments.
10033
10034 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
10035             Robert Dewar  <dewar@adacore.com>
10036
10037         * sem_ch5.adb (Analyze_Assignment): Reject a right-hand side that is a
10038         tag-indeterminate call to an abstract function, when the left-hand side
10039         is not classwide.
10040         (Analyze_Loop_Statement): Improve detection of infinite loops
10041
10042 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
10043             Thomas Quinot  <quinot@adacore.com>
10044
10045         * sem_ch7.ads, sem_ch7.adb (Inspect_Deferred_Constant_Completion): Move
10046         out of Analyze_Package_Declaration, because processing must be applied
10047         to package bodies as well, for deferred constants completed by pragmas.
10048         (Analyze_Package_Declaration): When the package declaration being
10049         analyzed does not require an explicit body, call Check_Completion.
10050         (May_Need_Implicit_Body): An implicit body is required when a package
10051         spec contains the declaration of a remote access-to-classwide type.
10052         (Analyze_Package_Body): If the package contains RACWs, append the
10053         pending subprogram bodies generated by exp_dist at the end of the body.
10054         (New_Private_Type,Unit_Requires_Body): Split Is_Abstract flag into
10055         Is_Abstract_Subprogram and Is_Abstract_Type.
10056         (Preserve_Full_Attributes): The full entity list is not an attribute
10057         that must be preserved from full to partial view.
10058
10059         * sem_dist.adb (Add_RAS_Dereference_TSS):
10060         Change primitive name to _Call so it cannot clash with any legal
10061         identifier, and be special-cased in Check_Completion.
10062         Mark the full view of the designated type for the RACW associated with
10063         a RAS as Comes_From_Source to get proper view switching when installing
10064         private declarations.
10065         Provite a placeholder nested package body along with the nested spec
10066         to have a place for Append_RACW_Bodies to generate the calling stubs
10067         and stream attributes.
10068
10069 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
10070             Robert Dewar  <dewar@adacore.com>
10071
10072         * sem_ch8.adb (Has_Components): If the argument is an incomplete type
10073         that is a limited view, check the non-limited view if available.
10074         (Undefined): Refine error message for missing with of Text_IO
10075         (Find_Expanded_Name): Use Is_Known_Unit for more accurate error message
10076         to distinguish real missing with cases.
10077         Fix format of all missing with messages
10078         (Analyze_Subprogram_Renaming): Emit proper error message on illegal
10079         renaming as body when renamed entity is abstract.
10080
10081 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
10082             Javier Miranda  <miranda@adacore.com>
10083
10084         * sem_type.ads, sem_type.adb (Has_Abstract_Interpretation): Make
10085         predicate recursive, to handle complex expressions on literals whose
10086         spurious ambiguity comes from the abstract interpretation of some
10087         subexpression.
10088         (Interface_Present_In_Ancestor): Add support to concurrent record
10089         types.
10090         (Add_One_Interp,Disambiguate): Split Is_Abstract flag into
10091         Is_Abstract_Subprogram and Is_Abstract_Type.
10092
10093 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
10094             Javier Miranda  <miranda@adacore.com>
10095
10096         * sem_util.ads, sem_util.adb (Object_Access_Level): If the object is a
10097         dereference of a local object R created as a reference to another
10098         object O, use the access level of O.
10099         (Matches_Prefixed_View_Profile): Use common predicate Conforming_Types,
10100         rather than local Same_Formal_Type, to check whether protected operation
10101         overrides an inherited one.
10102         (Same_Formal_Type): New predicate, used when matching signatures of
10103         overriding synchronized operations, to handle the case when a formal
10104         has a type that is a generic actual.
10105         (Is_Aliased_View): Replace check on E_Task_Type and E_Protected_Type by
10106         predicate Is_Concurrent_Type. This ensures supportin case of subtypes.
10107         (Needs_One_Actual): New predicate, for Ada 2005 use, to resolve
10108         syntactic ambiguities involving indexing of function calls that return
10109         arrays.
10110         (Abstract_Interface_List): New subprogram that returns the list of
10111         abstract interfaces associated with a concurrent type or a
10112         concurrent record type.
10113         (Interface_Present_In_Parent): New subprogram used to check if a
10114         given type or some of its parents implement a given interface.
10115         (Collect_Abstract_Interfaces): Add support for concurrent types
10116         with interface types.
10117         (Has_Abstract_Interfaces): Add support for concurrent types with
10118         interface types.
10119         (Is_Parent): New subprogram that determines whether E1 is a parent
10120         of E2. For a concurrent type its parent is the first element of its
10121         list of interface types; for other types this function provides the
10122         same result than Is_Ancestor.
10123         (Enclosing_Subprogram): Add test for N_Extended_Return_Statement.
10124         (Collect_Synchronized_Interfaces): Removed because the subprogram
10125         Collect_Abstract_Interfaces provides this functionality.
10126         (Collect_Abstract_Interfaces): Minor update to give support to
10127         concurrent types and thus avoid undesired code duplication.
10128         (Get_Subprogram_Entity): Handle entry calls.
10129         (May_Be_Lvalue): Include actuals that appear as in-out parameters in
10130         entry calls.
10131         (Enter_Name): Do not give -gnatwh hiding warning for record component
10132         entities, they never result in hiding.
10133
10134 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
10135             Robert Dewar  <dewar@adacore.com>
10136
10137         * sinfo.ads, sinfo.adb (Coextensions): New element list for allocators,
10138         to chain nested components that are allocators for access discriminants
10139         of the enclosing object.
10140         Add N_Push and N_Pop nodes
10141         New field Exception_Label added
10142         (Local_Raise_Statements): New field in N_Exception_Handler_Node
10143         (Local_Raise_Not_OK): New flag in N_Exception_Handler_Node
10144         (Is_Coextension): New flag for allocators, to mark allocators that
10145         correspond to access discriminants of dynamically allocated objects.
10146         (N_Block_Statement): Document the fact that the corresponding entity
10147         can be an E_Return_Statement.
10148         (Is_Coextension): New flag for allocators.
10149         Remove all code for DSP option
10150
10151         * sprint.ads, sprint.adb: Display basic information for class_wide
10152         subtypes. Add handling of N_Push and N_Pop nodes
10153
10154 2007-04-06  Arnaud Charlet  <charlet@adacore.com>
10155
10156         * s-tpobop.adb (Exceptional_Complete_Entry_Body): Undefer abortion
10157         before propagating exception.
10158
10159 2007-04-06  Olivier Hainque  <hainque@adacore.com>
10160
10161         * tracebak.c (PC_ADJUST - ia64): -4 instead of -16, expected to yield
10162         an address always within the call instruction from a return address.
10163
10164 2007-04-06  Olivier Hainque  <hainque@adacore.com>
10165             Eric Botcazou  <botcazou@adacore.com>
10166
10167         * trans.c (call_to_gnu) <TYPE_RETURNS_BY_TARGET_PTR_P>: Return an
10168         expression with a COMPOUND_EXPR including the call instead of emitting
10169         the call directly here.
10170         (gnat_to_gnu) <N_Slice>: Do not return a non-constant low bound if the
10171         high bound is constant and the slice is empty.  Tidy.
10172         (tree_transform, case N_Op_Not): Handle properly the case where the
10173         operation applies to a private type whose full view is a modular type.
10174         (Case_Statement_To_gnu): If an alternative is an E_Constant with an
10175         Address_Clause, use the associated Expression as the GNAT tree
10176         representing the choice value to ensure the corresponding GCC tree is
10177         of the proper kind.
10178         (maybe_stabilize_reference): Stabilize COMPOUND_EXPRs as a whole
10179         instead of just the operands, as the base GCC stabilize_reference does.
10180         <CALL_EXPR>: New case. Directly stabilize the call if an lvalue is not
10181         requested; otherwise fail.
10182         (addressable_p) <COMPONENT_REF>: Do not test DECL_NONADDRESSABLE_P.
10183
10184 2007-04-06  Thomas Quinot  <quinot@adacore.com>
10185
10186         * uintp.ads, uintp.adb (UI_Div_Rem): New subprogram, extending previous
10187         implementation of UI_Div.
10188         (UI_Div): Reimplement as a call to UI_Div_Rem.
10189         (UI_Rem): Take advantage of the fact that UI_Div_Rem provides the
10190         remainder, avoiding the cost of a multiplication and a subtraction.
10191         (UI_Modular_Inverse): Take advantage of the fact that UI_Div_Rem
10192         provides both quotient and remainder in a single computation.
10193         (UI_Modular_Exponentiation, UI_Modular_Inverse): New modular arithmetic
10194         functions for uint.
10195         (UI_Modular_Inverse): Add a note that the behaviour of this subprogram
10196         is undefined if the given n is not inversible.
10197
10198 2007-04-06  Olivier Hainque  <hainque@adacore.com>
10199
10200         * utils2.c (known_alignment): Handle COMPOUND_EXPR, COND_EXPR and
10201         BIT_AND_EXPR. Handle also VIEW_CONVERT_EXPR, as the other conversion
10202         opcodes.
10203
10204 2007-04-06  Eric Botcazou  <botcazou@adacore.com>
10205             Olivier Hainque  <hainque@adacore.com>
10206
10207         * utils.c (update_pointer_to): Make a copy of the couple of FIELD_DECLs
10208         when updating the contents of the old pointer to an unconstrained array.
10209         (end_subprog_body): Set error_gnat_node to Empty.
10210         (write_record_type_debug_info): Do not be unduly sparing with our bytes.
10211         (unchecked_convert): For subtype to base type conversions, require that
10212         the source be a subtype if it is an integer type.
10213         (builtin_decls): New global, vector of available builtin functions.
10214         (gnat_pushdecl): Add global builtin function declaration nodes to the
10215         builtin_decls list.
10216         (gnat_install_builtins): Adjust comments.
10217         (builtin_function): Set DECL_BUILTIN_CLASS and DECL_FUNCTION_CODE before
10218         calling gnat_pushdecl, so that it knows when it handed a builtin
10219         function declaration node.
10220         (builtin_decl_for): Search the builtin_decls list.
10221
10222 2007-04-06  Eric Botcazou  <botcazou@adacore.com>
10223
10224         * s-stchop-vxworks.adb: 
10225         (Stack_Check): Raise Storage_Error if the argument has wrapped around.
10226
10227 2007-04-06  Robert Dewar  <dewar@adacore.com>
10228             Arnaud Charlet  <charlet@adacore.com>
10229
10230         * a-diroro.ads: Inserted the pragma Unimplemented_Unit
10231
10232         * bindgen.adb (Gen_Output_File_Ada): Generate pragma Ada_95 at start
10233         of files
10234         Add mention of -Sev (set initialize_scalars option from environment
10235         variable at run time) in gnatbind usage message.
10236
10237         * elists.ads, elists.adb: (Append_Unique_Elmt): New procedure
10238
10239         * fname-uf.ads: Minor comment fix
10240
10241         * osint.ads: Change pragma Elaborate to Elaborate_All
10242
10243         * par-load.adb: Add documentation.
10244
10245         * sem_cat.ads, sem_cat.adb: Minor code reorganization
10246
10247         * s-parint.ads (RCI_Locator) : Add 'Version' generic formal
10248
10249         * s-secsta.ads: Extra comments
10250
10251         * s-soflin.ads: Minor comment fixes
10252
10253         * s-stratt.ads (Block_Stream_Ops_OK): Removed.
10254
10255         * s-wchcon.ads: Minor comment addition
10256
10257         * treepr.adb: Minor change in message
10258         (Print_Name,Print_Node): Make these debug printouts more robust: print
10259         "no such..." instead of crashing on bad input.
10260
10261 2007-03-30  Rafael Avila de Espindola  <espindola@google.com>
10262
10263         * trans.c (Attribute_to_gnu): Use get_signed_or_unsigned_type
10264         instead of gnat_signed_or_unsigned_type.
10265         * utils.c (gnat_signed_or_unsigned_type): Remove.
10266         * misc.c (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove
10267         * gigi.h (gnat_signed_or_unsigned_type): Remove
10268
10269 2007-03-09  Roger Sayle  <roger@eyesopen.com>
10270
10271         * cuintp.c (UI_To_gnu): Use fold_buildN calls instead of calling
10272         fold with the result of buildN.
10273         * decl.c (gnat_to_gnu_entity): Likewise.
10274         * trans.c (Attribute_to_gnu, gnat_to_gnu, emit_check): Likewise.
10275         * utils.c (finish_record_type, merge_sizes, max_size, convert):
10276         Likewise.
10277         * utils2.c (gnat_truthvalue_conversion, compare_arrays,
10278         nonbinary_modular_operation, build_binary_op, build_unary_op,
10279         build_cond_expr): Likewise.
10280
10281         * utils.c (convert): Use fold_build1 when casting values to void.
10282         * utils2.c (gnat_truthvalue_conversion): Use build_int_cst and
10283         fold_convert instead of convert when appropriate.
10284
10285 2007-03-01  Brooks Moses  <brooks.moses@codesourcery.com>
10286
10287         * Make-lang.in: Add install-pdf target as copied from
10288         automake v1.10 rules.
10289
10290 2007-02-28  Andreas Schwab  <schwab@suse.de>
10291
10292         * Make-lang.in (doc/gnat_ugn_unw.texi): Depend on
10293         $(gcc_docdir)/include/gcc-common.texi and gcc-vers.texi.
10294         (doc/gnat-style.info): Likewise.
10295
10296 2007-02-26  Brooks Moses  <brooks.moses@codesourcery.com>
10297
10298         * gnat-style.texi: Standardize title page.
10299         * gnat_rm.texi: Likewise.
10300         * gnat_ugn.texi: Likewise.
10301
10302 2007-02-25  Mark Mitchell  <mark@codesourcery.com>
10303
10304         * decl.c (annotate_value): Adjust for refactoring of tree_map
10305         hierarchy.
10306
10307 2007-02-24  Mark Mitchell  <mark@codesourcery.com>
10308
10309         * decl.c (annotate_value): Adjust for refactoring of tree_map
10310         hierarchy.
10311
10312 2007-02-21  Ed Schonberg  <schonberg@adacore.com>
10313
10314         PR ada/18819
10315         * sem_ch3.adb (Create_Constrained_Components): for a subtype of an
10316         untagged derived type, add hidden components to keep discriminant
10317         layout consistent, when a given discriminant of the derived type
10318         constraints several discriminants of the parent type.
10319
10320 2007-02-16  Eric Botcazou  <ebotcazou@adacore.com>
10321             Sandra Loosemore  <sandra@codesourcery.com>
10322
10323         * trans.c (call_to_gnu):  Use build_call_list instead of build3 to
10324         build the call expression.
10325         (gnat_stabilize_reference_1): Handle tcc_vl_exp.
10326         * utils.c (max_size) <tcc_exceptional>: Delete.
10327         <tcc_vl_exp>: New case.
10328         <tcc_expression>: Delete CALL_EXPR subcase.
10329         (build_global_cdtor): Use build_call_nary instead of build3.
10330         * utils2.c (build_call_1_expr): Likewise.
10331         (build_call_2_expr): Likewise.
10332         (build_call_0_expr): Likewise.
10333         (build_call_alloc_dealloc): Likewise.
10334
10335 2007-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
10336
10337         * raise-gcc.c (get_region_description_for, get_call_site_action_for,
10338         get_action_description_for): Replace _Unwind_Word with _uleb128_t 
10339         and _Unwind_SWord with _sleb128_t.
10340
10341 2007-02-06  Paolo Bonzini  <bonzini@gnu.org>
10342
10343         * Make-lang.in (ada/decl.o): Add gt-ada-decl.h dependency.
10344         * decl.c: Include gt-ada-decl.h.
10345         (annotate_value_cache): New.
10346         (annotate_value): Use it instead of TREE_COMPLEXITY.
10347
10348 2007-02-03  Kazu Hirata  <kazu@codesourcery.com>
10349
10350         * misc.c, utils2.c: Fix comment typos.
10351
10352 2007-01-24  Roger Sayle  <roger@eyesopen.com>
10353
10354         * decl.c (gnat_to_gnu_entity): Use TREE_OVERFLOW instead of
10355         TREE_CONSTANT_OVERFLOW.
10356         (allocatable_size_p, annotate_value): Likewise.
10357         * trans.c (gnat_to_gnu): Likewise.
10358         * utils.c (unchecked_convert): Likewise.
10359         * utils2.c (build_simple_component_ref): Likewise.
10360
10361 2007-01-23  Richard Guenther  <rguenther@suse.de>
10362
10363         PR bootstrap/30541
10364         * Make-lang.in: Replace invocations of gnatmake with $(GNATMAKE).
10365         (gnatboot2): Pass staged GNATMAKE instead of STAGE_PREFIX.
10366         (gnatboot3): Likewise.
10367         (GNATBIND): Do not define.
10368         * Makefile.in (GNATBIND): Do not define.
10369
10370 2007-01-08  Richard Guenther  <rguenther@suse.de>
10371
10372         * cuintp.c (build_cst_from_int): Use built_int_cst_type.
10373         * trans.c (gnat_to_gnu): Likewise.
10374
10375 2006-12-07  Geoffrey Keating  <geoffk@apple.com>
10376
10377         * Makefile.in: Replace CROSS_COMPILE with CROSS_DIRECTORY_STRUCTURE.
10378         * adaint.c: Likewise.
10379
10380 2006-12-05  Aldy Hernandez  <aldyh@redhat.com>
10381
10382         Merge from gimple-tuples-branch:
10383         2006-11-02  Aldy Hernandez  <aldyh@redhat.com>
10384
10385         * ada-tree.h (lang_tree_node): Handle gimple tuples.
10386         * trans.c (gnat_gimplify_expr): Replace MODIFY_EXPR with
10387         GIMPLE_MODIFY_STMT.
10388
10389 2006-12-02  Kazu Hirata  <kazu@codesourcery.com>
10390
10391         * Makefile.in, mingw32.h, trans.c: Fix comment typos.
10392         * gnat_rm.texi, gnat_ugn.texi: Follow spelling conventions.
10393         Fix typos.
10394
10395 2006-11-17  Eric Botcazou  <ebotcazou@adacore.com>
10396
10397         PR ada/27936
10398         * trans.c (add_decl_expr): Do not dynamically elaborate padded objects
10399         if the initializer takes into account the padding.
10400
10401 2006-11-11  Richard Guenther  <rguenther@suse.de>
10402
10403         * trans.c (maybe_stabilize_reference): Remove handling of
10404         FIX_CEIL_EXPR, FIX_FLOOR_EXPR and FIX_ROUND_EXPR.
10405
10406 2006-11-05  Arnaud Charlet  <charlet@adacore.com>
10407
10408         PR ada/29707
10409         * s-osinte-linux-alpha.ads, s-osinte-linux-hppa.ads
10410         (To_Target_Priority): New function.
10411
10412 2006-10-31  Robert Dewar  <dewar@adacore.com>
10413
10414         * a-taster.adb, s-traent-vms.adb, a-elchha.ads, a-elchha.adb,
10415         a-exctra.adb, ali-util.adb, exp_disp.ads, s-stalib.ads, s-traent.adb,
10416         s-addope.ads, s-addope.adb, a-rbtgso.adb, a-crbltr.ads, a-coprnu.adb,
10417         a-cgcaso.adb, a-cgarso.adb, a-cgaaso.adb, a-coormu.adb, a-ciormu.adb,
10418         a-rbtgso.ads, a-stunha.adb, a-stunha.adb, a-ciorma.adb, a-coorma.adb,
10419         a-secain.adb, a-slcain.adb, a-shcain.adb, a-stwiha.adb, a-stwiha.adb,
10420         a-strhas.adb, a-strhas.adb, a-stzhas.adb, a-stzhas.adb, a-szuzha.adb,
10421         a-chacon.adb, a-chacon.adb, a-chacon.ads, a-stboha.adb, a-swbwha.adb,
10422         a-szbzha.adb: Minor reformatting. Fix header.
10423
10424         * a-numaux-x86.adb: Add parentheses for use of unary minus
10425         * a-ngcefu.adb: Supply missing parentheses for unary minus
10426         * a-ngcoty.adb: Add parens for use of unary minus
10427         * a-ngelfu.adb: Add missing parens for unary minus
10428         * a-tifiio.adb: Add parentheses for uses of unary minus
10429
10430 2006-10-31  Robert Dewar  <dewar@adacore.com>
10431             Bob Duff  <duff@adacore.com>
10432             Ed Schonberg  <schonberg@adacore.com>
10433
10434         * sem_res.adb (Resolve_Unary_Op): Add warning for use of unary minus
10435         with multiplying operator.
10436         (Expected_Type_Is_Any_Real): New function to determine from the Parent
10437         pointer whether the context expects "any real type".
10438         (Resolve_Arithmetic_Op): Do not give an error on calls to the
10439         universal_fixed "*" and "/" operators when they are used in a context
10440         that expects any real type. Also set the type of the node to
10441         Universal_Real in this case, because downstream processing requires it
10442         (mainly static expression evaluation).
10443         Reword some continuation messages
10444         Add some \\ sequences to continuation messages
10445         (Resolve_Call): Refine infinite recursion case. The test has been
10446         sharpened to eliminate some false positives.
10447         Check for Current_Task usage now includes entry barrier, and is now a
10448         warning, not an error.
10449         (Resolve): If the call is ambiguous, indicate whether an interpretation
10450         is an inherited operation.
10451         (Check_Aggr): When resolving aggregates, skip associations with a box,
10452         which are priori correct, and will be replaced by an actual default
10453         expression in the course of expansion.
10454         (Resolve_Type_Conversion): Add missing support for conversion from
10455         a class-wide interface to a tagged type. Minor code cleanup.
10456         (Valid_Tagged_Converion): Add support for abstact interface type
10457         conversions.
10458         (Resolve_Selected_Component): Call Generate_Reference here rather than
10459         during analysis, and use May_Be_Lvalue to distinguish read/write.
10460         (Valid_Array_Conversion): New procedure, abstracted from
10461         Valid_Conversion, to incorporate accessibility checks for arrays of
10462         anonymous access types.
10463         (Valid_Conversion): For a conversion to a numeric type occurring in an
10464         instance or inlined body, no need to check that the operand type is
10465         numeric, since this has been checked during analysis of the template.
10466         Remove legacy test for scope name Unchecked_Conversion.
10467
10468         * sem_res.ads: Minor reformatting
10469
10470         * a-except.adb, a-except-2005.adb: Turn off subprogram ordering
10471         (PE_Current_Task_In_Entry_Body): New exception code
10472         (SE_Restriction_Violation): Removed, not used
10473
10474         * a-except.ads:  Update comments.
10475
10476         * types.h, types.ads: Add definition for Validity_Check
10477         (PE_Current_Task_In_Entry_Body): New exception code
10478         (SE_Restriction_Violation): Removed, not used
10479
10480 2006-10-31  Thomas Quinot  <quinot@adacore.com>
10481
10482         * g-socthi-vxworks.adb (C_Gethostbyname): Fix wrong test for returned
10483         error status.
10484
10485 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
10486             Jose Ruiz  <ruiz@adacore.com>
10487
10488         * a-calend-vms.adb (Leap_Sec_Ops): Temp body for package in private
10489         part of Ada.Calendar: all subprogram raise Unimplemented.
10490         (Split_W_Offset): Temp function body, raising Unimplemented
10491
10492         * a-calend.ads, a-calend-vms.ads: 
10493         Add imported variable Invalid_TZ_Offset used to designate targets unable
10494         to support time zones.
10495         (Unimplemented): Temporary function raised by the body of new
10496         subprograms below.
10497         (Leap_Sec_Ops): New package in the private part of Ada.Calendar. This
10498         unit provides handling of leap seconds and is used by the new Ada 2005
10499         packages Ada.Calendar.Arithmetic and Ada.Calendar.Formatting.
10500         (Split_W_Offset): Identical spec to that of Ada.Calendar.Split. This
10501         version returns an extra value which is the offset to UTC.
10502
10503         * a-calend.adb (Split_W_Offset): Add call to localtime_tzoff.
10504         (Leap_Sec_Ops): New body for package in private part of Ada.Calendar.
10505         (Split_W_Offset): New function body.
10506         (Time_Of): When a date is close to UNIX epoch, compute the time for
10507         that date plus one day (that amount is later substracted after
10508         executing mktime) so there are no problems with time zone adjustments.
10509
10510         * a-calend-mingw.adb: Remove Windows specific version no longer needed.
10511
10512         * a-calari.ads, a-calari.adb, a-calfor.ads, a-calfor.adb,
10513         a-catizo.ads, a-catizo.adb: New files.
10514
10515         * impunit.adb: Add new Ada 2005 entries
10516
10517         * sysdep.c: Add external variable __gnat_invalid_tz_offset.
10518         Rename all occurences of "__gnat_localtime_r" to
10519         "__gnat_localtime_tzoff".
10520         (__gnat_localtime_tzoff for Windows): Add logic to retrieve the time
10521         zone data and calculate the GMT offset.
10522         (__gnat_localtime_tzoff for Darwin, Free BSD, Linux, Lynx and Tru64):
10523         Use the field "tm_gmtoff" to extract the GMT offset.
10524         (__gnat_localtime_tzoff for AIX, HPUX, SGI Irix and Sun Solaris): Use
10525         the external variable "timezone" to calculate the GMT offset.
10526
10527 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
10528             Jose Ruiz  <ruiz@adacore.com>
10529
10530         * s-osinte-posix.adb, s-osinte-linux.ads, s-osinte-freebsd.adb, 
10531         s-osinte-freebsd.ads, s-osinte-solaris-posix.ads, s-osinte-hpux.ads, 
10532         s-osinte-darwin.adb, s-osinte-darwin.ads, s-osinte-lynxos-3.ads,
10533         s-osinte-lynxos-3.adb (To_Target_Priority): New function maps from
10534         System.Any_Priority to a POSIX priority on the target.
10535
10536         * system-linux-ia64.ads: 
10537         Extend range of Priority types on Linux to use the whole range made
10538         available by the system.
10539
10540         * s-osinte-aix.adb, s-osinte-aix.ads (To_Target_Priority): New
10541         function maps from System.Any_Priority to a POSIX priority on the
10542         target.
10543         (PTHREAD_PRIO_PROTECT): Set real value.
10544         (PTHREAD_PRIO_INHERIT): Now a function.
10545         (SIGCPUFAIL): New signal.
10546         (Reserved): Add SIGALRM1, SIGWAITING, SIGCPUFAIL, since these signals
10547         are documented as reserved by the OS.
10548
10549         * system-aix.ads: Use the full range of priorities provided by the
10550         system on AIX.
10551
10552         * s-taprop-posix.adb: Call new function To_Target_Priority.
10553         (Set_Priority): Take into account Task_Dispatching_Policy and
10554         Priority_Specific_Dispatching pragmas when determining if Round Robin
10555         must be used for scheduling the task.
10556
10557         * system-linux-x86_64.ads, system-linux-x86.ads, 
10558         system-linux-ppc.ads: Extend range of Priority types on Linux to use
10559         the whole range made available by the system.
10560
10561         * s-taprop-vms.adb, s-taprop-mingw.adb, s-taprop-irix.adb, 
10562         s-taprop-tru64.adb, s-taprop-linux.adb, s-taprop-hpux-dce.adb, 
10563         s-taprop-lynxos.adb (Finalize_TCB): invalidate the stack-check cache
10564         when deallocating the TCB in order to avoid potential references to
10565         deallocated data.
10566         (Set_Priority): Take into account Task_Dispatching_Policy and
10567         Priority_Specific_Dispatching pragmas when determining if Round Robin
10568         or FIFO within priorities must be used for scheduling the task.
10569
10570         * s-taprop-vxworks.adb (Enter_Task): Store the user-level task id in
10571         the Thread field (to be used internally by the run-time system) and the
10572         kernel-level task id in the LWP field (to be used by the debugger).
10573         (Create_Task): Reorganize to unify the calls to taskSpawn into a single
10574         instance, and propagate the current task options to the spawned task.
10575         (Set_Priority): Take into account Priority_Specific_Dispatching pragmas.
10576         (Initialize): Set Round Robin dispatching when the corresponding pragma
10577         is in effect.
10578
10579 2006-10-31  Robert Dewar  <dewar@adacore.com>
10580
10581         * system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads, 
10582         system-linux-hppa.ads, system-hpux-ia64.ads, 
10583         system-lynxos-ppc.ads, system-lynxos-x86.ads, system-tru64.ads, 
10584         system-vxworks-sparcv9.ads, system-solaris-x86.ads, 
10585         system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads, 
10586         system-vxworks-m68k.ads, system-vxworks-mips.ads, system-interix.ads, 
10587         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads, 
10588         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads, 
10589         system-vxworks-alpha.ads, system.ads: Add pragma Warnings(Off,
10590         Default_Bit_Order) to kill constant condition warnings for references
10591         to this switch.
10592
10593 2006-10-31  Vincent Celier  <celier@adacore.com>
10594             Eric Botcazou  <ebotcazou@adacore.com>
10595
10596         * mlib-tgt-lynxos.adb, mlib-tgt-mingw.adb, mlib-tgt-tru64.adb,
10597         mlib-tgt-aix.adb, mlib-tgt-irix.adb, mlib-tgt-hpux.adb,
10598         mlib-tgt-linux.adb, mlib-tgt-solaris.adb: Use Append_To, instead of
10599         Ext_To, when building the library file name
10600
10601         * mlib-tgt-vxworks.adb: ditto.
10602         (Get_Target_Suffix): Add support for x86 targets.
10603
10604         * mlib-fil.ads, mlib-fil.adb: (Append_To): New function
10605
10606         * mlib-tgt-darwin.adb: 
10607         Use Append_To, instead of Ext_To, when building the library file name
10608         (Flat_Namespace): New global variable.
10609         (No_Shared_Libgcc_Switch): Rename to No_Shared_Libgcc_Options.
10610         (Shared_Libgcc_Switch): Rename to With_Shared_Libgcc_Options.
10611         (Link_Shared_Libgcc): Delete.
10612         (Build_Dynamic_Library): Adjust for above changes.
10613         Use Opt package.
10614         (Build_Dynamic_Library): Pass -shared-libgcc if GCC 4 or later.
10615
10616 2006-10-31  Eric Botcazou  <ebotcazou@adacore.com>
10617
10618         * s-taprop-solaris.adb: (Time_Slice_Val): Change type to Integer.
10619         (Initialize): Add type conversions required by above change.
10620
10621 2006-10-31  Jose Ruiz  <ruiz@adacore.com>
10622
10623         * s-osinte-vxworks.ads, s-osinte-vxworks.adb: 
10624         (getpid): New body for this function that uses the underlying taskIdSelf
10625         function for VxWorks 5 and VxWorks 6 in kernel mode.
10626         (unsigned_int): New type, modular to allow logical bit operations.
10627         (taskOptionsGet): New imported function.
10628
10629         * s-taspri-vxworks.ads (Private_Data): Change the type for the LWP
10630         field to be compliant with the type used by the corresponding operating
10631         system primitive.
10632
10633 2006-10-31  Pascal Obry  <obry@adacore.com>
10634             Eric Botcazou  <ebotcazou@adacore.com>
10635             Vincent Celier  <celier@adacore.com>
10636
10637         * adaint.c (__gnat_get_libraries_from_registry): Call explicitly the
10638         ASCII version of the registry API. This is needed as the GNAT runtime
10639         is now UNICODE by default.
10640         Include version.h.
10641         (get_gcc_version): Do not hardcode the return value.
10642         (__gnat_file_time_name): On Windows properly set the default returned
10643         value to -1 which corresponds to Invalid_Time.
10644         (__gnat_fopen): New routine. A simple wrapper on all plateforms
10645          except on Windows where it does conversion for unicode support.
10646         (__gnat_freopen): Idem.
10647         (__gnat_locate_exec_on_path): If environment variable PATH does not
10648         exist, return a NULL pointer
10649
10650         * adaint.h: (__gnat_fopen): Declare.
10651         (__gnat_freopen): Likewise.
10652
10653         * mingw32.h (_tfreopen): Define this macro here for older MingW
10654         version.
10655         Activate the unicode support on platforms using a MingW runtime
10656         version 3.9 or newer.
10657
10658         * s-crtl.ads (fopen): Is now an import to the wrapper __gnat_freopen.
10659         This is needed for proper unicode support on Windows.
10660         (freopen): Idem.
10661
10662 2006-10-31  Eric Botcazou  <ebotcazou@adacore.com>
10663             Nicolas Setton  <setton@adacore.com>
10664             Olivier Hainque  <hainque@adacore.com>
10665             Gary Dismukes  <dismukes@adacore.com>
10666
10667         * gigi.h: (tree_code_for_record_type): Declare.
10668         (add_global_renaming_pointer): Rename to record_global_renaming_pointer.
10669         (get_global_renaming_pointers): Rename to
10670         invalidate_global_renaming_pointers.
10671         (static_ctors): Delete.
10672         (static_dtors): Likewise.
10673         (gnat_write_global_declarations): Declare.
10674         (create_var_decl): Adjust descriptive comment to indicate that the
10675         subprogram may return a CONST_DECL node.
10676         (create_true_var_decl): Declare new function, similar to
10677         create_var_decl but forcing the creation of a VAR_DECL node.
10678         (get_global_renaming_pointers): Declare.
10679         (add_global_renaming_pointer): Likewise.
10680
10681         * ada-tree.h (DECL_READONLY_ONCE_ELAB): New macro.
10682
10683         * decl.c (gnat_to_gnu_entity) <case E_Function>: Don't copy the type
10684         tree before setting TREE_ADDRESSABLE for by-reference return mechanism
10685         processing.
10686         (gnat_to_gnu_entity): Remove From_With_Type from computation for
10687         imported_p.
10688         <E_Access_Type>: Use the Non_Limited_View as the full view of the
10689         designated type if the pointer comes from a limited_with clause.  Make
10690         incomplete designated type if it is in the main unit and has a freeze
10691         node.
10692         <E_Incomplete_Type>: Rework to treat Non_Limited_View, Full_View, and
10693         Underlying_Full_View similarly.  Return earlier if the full view already
10694         has an associated tree.
10695         (gnat_to_gnu_entity) <E_Record_Type>: Restore comment.
10696         (gnat_to_gnu_entity) <E_Record_Type>: Do not use a dummy type.
10697         (gnat_to_gnu_entity) <E_Variable>: Set TYPE_REF_CAN_ALIAS_ALL on the
10698         reference type built for objects with an address clause.
10699         Use create_true_var_decl with const_flag set for
10700         DECL_CONST_CORRESPONDING_VARs, ensuring a VAR_DECL is created with
10701         TREE_READONLY set.
10702         (gnat_to_gnu_entity, case E_Enumeration_Type): Set TYPE_NAME
10703         for Character and Wide_Character types. This info is read by the
10704         dwarf-2 writer, and is needed to be able to use the command "ptype
10705         character" in the debugger.
10706         (gnat_to_gnu_entity): When generating a type representing
10707         a Character or Wide_Character type, set the flag TYPE_STRING_FLAG,
10708         so that debug writers can distinguish it from ordinary integers.
10709         (elaborate_expression_1): Test the DECL_READONLY_ONCE_ELAB flag in
10710         addition to TREE_READONLY to assert the constantness of variables for
10711         elaboration purposes.
10712         (gnat_to_gnu_entity, subprogram cases): Change loops on formal
10713         parameters to call new Einfo function First_Formal_With_Extras.
10714         (gnat_to_gnu_entity): In type_annotate mode, replace a discriminant of a
10715         protected type with its corresponding discriminant, to obtain a usable
10716         declaration
10717         (gnat_to_gnu_entity) <E_Access_Protected_Subprogram_Type>: Be prepared
10718         for a multiple elaboration of the "equivalent" type.
10719         (gnat_to_gnu_entity): Adjust for renaming of add_global_renaming_pointer
10720         into record_global_renaming_pointer.
10721         (gnat_to_gnu_entity) <E_Array_Type>: Do not force
10722         TYPE_NONALIASED_COMPONENT to 0 if the element type is an aggregate.
10723         <E_Array_Subtype>: Likewise.
10724         (gnat_to_gnu_entity) <E_Incomplete_Subtype>: Add support for regular
10725         incomplete subtypes and incomplete subtypes of incomplete types visible
10726         through a limited with clause.
10727         (gnat_to_gnu_entity) <E_Array_Subtype>: Take into account the bounds of
10728         the base index type for the maximum size of the array only if they are
10729         constant.
10730         (gnat_to_gnu_entity, renaming object case): Do not wrap up the
10731         expression into a SAVE_EXPR if stabilization failed.
10732
10733         * utils.c (create_subprog_decl): Turn TREE_ADDRESSABLE on the type of
10734         a result decl into DECL_BY_REFERENCE on this decl, now what is expected
10735         by lower level compilation passes.
10736         (gnat_genericize): New function, lowering a function body to GENERIC.
10737         Turn the type of RESULT_DECL into a real reference type if the decl
10738         has been marked DECL_BY_REFERENCE, and adjust references to the latter
10739         accordingly.
10740         (gnat_genericize_r): New function. Tree walking callback for
10741         gnat_genericize.
10742         (convert_from_reference, is_byref_result): New functions. Helpers for
10743         gnat_genericize_r.
10744         (create_type_decl): Call gnat_pushdecl before calling
10745         rest_of_decl_compilation, to make sure that field TYPE_NAME of
10746         type_decl is properly set before calling the debug information writers.
10747         (write_record_type_debug_info): The heuristics which compute the
10748         alignment of a field in a variant record might not be accurate. Add a
10749         safety test to make sure no alignment is set to a smaller value than
10750         the alignment of the field type.
10751         (make_dummy_type): Use the Non_Limited_View as the underlying type if
10752         the type comes from a limited_with clause. Do not loop on the full view.
10753         (GET_GNU_TREE, SET_GNU_TREE, PRESENT_GNU_TREE): New macros.
10754         (dummy_node_table): New global variable, moved from decl.c.
10755         (GET_DUMMY_NODE, SET_DUMMY_NODE, PRESENT_DUMMY_NODE): New macros.
10756         (save_gnu_tree): Use above macros.
10757         (get_gnu_tree): Likewise.
10758         (present_gnu_tree): Likewise.
10759         (init_dummy_type): New function, moved from decl.c. Use above macros.
10760         (make_dummy_type): Likewise.
10761         (tree_code_for_record_type): New function extracted from make_dummy_type
10762         (init_gigi_decls): Set DECL_IS_MALLOC on gnat_malloc.
10763         (static_ctors): Change it to a vector, make static.
10764         (static_dtors): Likewise.
10765         (end_subprog_body): Adjust for above change.
10766         (build_global_cdtor): Moved from trans.c.
10767         (gnat_write_global_declarations): Emit global constructor and
10768         destructor, and call cgraph_optimize before emitting debug info for
10769         global declarations.
10770         (global_decls): New global variable.
10771         (gnat_pushdecl): Store the global declarations in global_decls, for
10772         later use.
10773         (gnat_write_global_declarations): Emit debug information for global
10774          declarations.
10775         (create_var_decl_1): Former create_var_decl, with an extra argument to
10776          state whether the creation of a CONST_DECL is allowed.
10777         (create_var_decl): Behavior unchanged. Now a wrapper around
10778         create_var_decl_1 allowing CONST_DECL creation.
10779         (create_true_var_decl): New function, similar to create_var_decl but
10780         forcing the creation of a VAR_DECL node (CONST_DECL not allowed).
10781         (create_field_decl): Do not always mark the field as addressable
10782         if its type is an aggregate.
10783         (global_renaming_pointers): New static variable.
10784         (add_global_renaming_pointer): New function.
10785         (get_global_renaming_pointers): Likewise.
10786
10787         * misc.c (gnat_dwarf_name): New function.
10788         (LANG_HOOKS_DWARF_NAME): Define to gnat_dwarf_name.
10789         (gnat_post_options): Add comment about structural alias analysis.
10790         (gnat_parse_file): Do not call cgraph_optimize here.
10791         (LANG_HOOKS_WRITE_GLOBALS): Define to gnat_write_global_declarations.
10792
10793         * trans.c (process_freeze_entity): Don't abort if we already have a
10794         non dummy GCC tree for a Concurrent_Record_Type, as it might
10795         legitimately have been elaborated while processing the associated
10796         Concurrent_Type prior to this explicit freeze node.
10797         (Identifier_to_gnu): Do not make a variable referenced in a SJLJ
10798         exception handler volatile if it is of variable size.
10799         (process_type): Remove bypass for types coming from a limited_with
10800         clause.
10801         (call_to_gnu): When processing the copy-out of a N_Type_Conversion GNAT
10802         actual, convert the corresponding gnu_actual to the real destination
10803         type when necessary.
10804         (add_decl_expr): Set the DECL_READONLY_ONCE_ELAB flag on variables
10805         originally TREE_READONLY but whose elaboration cannot be performed
10806         statically.
10807         Part of fix for F504-021.
10808         (tree_transform, subprogram cases): Change loops on formal parameters to
10809         call new Einfo function First_Formal_With_Extras.
10810         (gnat_to_gnu) <N_Op_Shift_Right_Arithmetic>: Ignore constant overflow
10811         stemming from type conversion for the lhs.
10812         (Attribute_to_gnu) <Attr_Alignment>: Also divide the alignment by the
10813         number of bits per unit for components of records.
10814         (gnat_to_gnu) <N_Code_Statement>: Mark operands addressable if needed.
10815         (Handled_Sequence_Of_Statements_to_gnu): Register the cleanup associated
10816         with At_End_Proc after the SJLJ EH cleanup.
10817         (Compilation_Unit_to_gnu): Call elaborate_all_entities only on the main
10818         compilation unit.
10819         (elaborate_all_entities): Do not retest type_annotate_only.
10820         (tree_transform) <N_Abstract_Subprogram_Declaration>: Process the
10821         result type of an abstract subprogram, which may be an itype associated
10822         with an anonymous access result (related to AI-318-02).
10823         (build_global_cdtor): Move to utils.c.
10824         (Case_Statement_to_gnu): Avoid adding the choice of a when statement if
10825         this choice is not a null tree nor an integer constant.
10826         (gigi): Run unshare_save_expr via walk_tree_without_duplicates
10827         on the body of elaboration routines instead of mark_unvisited.
10828         (add_stmt): Do not mark the tree.
10829         (add_decl_expr): Tweak comment.
10830         (mark_unvisited): Delete.
10831         (unshare_save_expr): New static function.
10832         (call_to_gnu): Issue an error when making a temporary around a
10833         procedure call because of non-addressable actual parameter if the
10834         type of the formal is by_reference.
10835         (Compilation_Unit_to_gnu): Invalidate the global renaming pointers
10836         after building the elaboration routine.
10837
10838 2006-10-31  Bob Duff  <duff@adacore.com>
10839
10840         * a-filico.adb (Finalize(List_Controller)): Mark the finalization list
10841         as finalization-started, so we can raise Program_Error on 'new'.
10842
10843         * s-finimp.adb: Raise Program_Error on 'new' if finalization of the
10844         collection has already started.
10845
10846         * s-finimp.ads (Collection_Finalization_Started): Added new special
10847         flag value for indicating that a collection's finalization has started.
10848
10849         * s-tassta.adb (Create_Task): Raise Program_Error on an attempt to
10850         create a task whose master has already waited for dependent tasks.
10851
10852 2006-10-31  Robert Dewar  <dewar@adacore.com>
10853
10854         * lib.adb, lib.ads: (In_Predefined_Unit): New functions
10855
10856         * a-finali.ads, a-ngcoty.ads, a-strbou.ads, a-stream.ads, a-strmap.ads, 
10857         a-strunb.ads, a-stwibo.ads, a-stwima.ads, a-stwiun.ads, a-taside.ads, 
10858         a-coorse.ads, a-convec.ads, a-coinve.ads, a-cohama.ads, a-ciorse.ads, 
10859         a-cihama.ads, a-cihase.ads, a-cohase.ads, a-ciorma.ads, a-coorma.ads, 
10860         a-ciormu.ads, a-coormu.ads, a-stzbou.ads, a-stzmap.ads, a-stzunb.ads, 
10861         a-except-2005.ads: Add pragma Preelaborable_Warning
10862
10863 2006-10-31  Robert Dewar  <dewar@adacore.com>
10864             Jose Ruiz  <ruiz@adacore.com>
10865
10866         * a-dispat.ads, a-dispat.adb, a-diroro.ads, a-diroro.adb: New files.
10867
10868         * ali.adb (Get_Name): Properly handle scanning of wide character names
10869         encoded with brackets notation.
10870         (Known_ALI_Lines): Add S lines to this list.
10871         (Scan_ALI): Acquire S (priority specific dispatching) lines.
10872         New flag Elaborate_All_Desirable in unit table
10873
10874         * ali.ads (Priority_Specific_Dispatching): Add this range of
10875         identifiers to be used for Priority_Specific_Dispatching table entries.
10876         (ALIs_Record): Add First_Specific_Dispatching and
10877         Last_Specific_Dispatching that point to the first and last entries
10878         respectively in the priority specific dispatching table for this unit.
10879         (Specific_Dispatching): Add this table for storing each S (priority
10880         specific dispatching) line encountered in the input ALI file.
10881         New flag Elaborate_All_Desirable in unit table
10882
10883         * bcheck.adb: (Check_Configuration_Consistency): Add call to
10884         Check_Consistent_Dispatching_Policy.
10885         (Check_Consistent_Dispatching_Policy): Add this procedure in charge of
10886         verifying that the use of Priority_Specific_Dispatching,
10887         Task_Dispatching_Policy, and Locking_Policy is consistent across the
10888         partition.
10889
10890         * bindgen.adb: (Public_Version_Warning): function removed.
10891         (Set_PSD_Pragma_Table): Add this procedure in charge of getting the
10892         required information from ALI files in order to initialize the table
10893         containing the specific dispatching policy.
10894         (Gen_Adainit_Ada): Generate the variables required for priority specific
10895         dispatching entries (__gl_priority_specific_dispatching and
10896         __gl_num_specific_dispatching).
10897         (Gen_Adainit_C): Generate the variables required for priority specific
10898         dispatching entries (__gl_priority_specific_dispatching and
10899         __gl_num_specific_dispatching).
10900         (Gen_Output_File): Acquire settings for Priority_Specific_Dispatching
10901         pragma entries.
10902         (Gen_Restrictions_String_1, Gen_Restrictions_String_2): Removed.
10903         (Gen_Restrictions_Ada, Gen_Restrictions_C, Set_Boolean): New procedures.
10904         (Tab_To): Removed.
10905         (Gen_Output_File_Ada/_C): Set directly __gl_xxx variables instead of
10906         a call to gnat_set_globals.
10907         Generate a string containing settings from
10908         Priority_Specific_Dispatching pragma entries.
10909         (Gen_Object_Files_Options): Do not include the runtime libraries when
10910         pragma No_Run_Time is specified.
10911
10912         * init.c (__gnat_install_handler, case FreeBSD): Use SA_SIGINFO, for
10913         consistency with s-intman-posix.adb.
10914         (__gnat_error_handler, case FreeBSD): Account for the fact that the
10915         handler is installed with SA_SIGINFO.
10916         (__gnat_adjust_context_for_raise, FreeBSD case): New function for
10917         FreeBSD ZCX support, copied from Linux version.
10918         Add MaRTE-specific definitions for the linux target. Redefine sigaction,
10919         sigfillset, and sigemptyset so the routines defined by MaRTE.
10920         (__gl_priority_specific_dispatching): Add this variable that stores the
10921         string containing priority specific dispatching policies in the
10922         partition.
10923         (__gl_num_specific_dispatching): Add this variable that indicates the
10924         highest priority for which a priority specific dispatching pragma
10925         applies.
10926         (__gnat_get_specific_dispatching): Add this routine that returns the
10927         priority specific dispatching policy, as set by a
10928         Priority_Specific_Dispatching pragma appearing anywhere in the current
10929         partition. The input argument is the priority number, and the result
10930         is the upper case first character of the policy name.
10931         (__gnat_set_globals): Now a dummy function.
10932         (__gnat_handle_vms_condition): Feed adjust_context_for_raise with
10933         mechargs instead of sigargs, as the latter can be retrieved from the
10934         former and sigargs is not what we want on ia64.
10935         (__gnat_adjust_context_for_raise, alpha-vms): Fetch sigargs from the
10936         mechargs argument.
10937         (__gnat_adjust_context_for_raise, ia64-vms): New function.
10938         (tasking_error): Remove unused symbol.
10939         (_abort_signal): Move this symbol to the IRIX specific part since this
10940         is the only target that uses this definition.
10941         (Check_Abort_Status): Move this symbol to the IRIX specific part since
10942         this is the only target that uses this definition.
10943         (Lock_Task): Remove unused symbol.
10944         (Unlock_Task): Remove unused symbol.
10945
10946         * lib-writ.adb (Write_ALI): Output new S lines for
10947         Priority_Specific_Dispatching pragmas.
10948         Implement new flag BD for elaborate body desirable
10949
10950         * lib-writ.ads: Document S lines for Priority Specific Dispatching.
10951         (Specific_Dispatching): Add this table for storing the entries
10952         corresponding to Priority_Specific_Dispatching pragmas.
10953         Document new BD flag for elaborate body desirable
10954
10955         * par-prag.adb (Prag): Add Priority_Specific_Dispatching to the list
10956         of known pragmas.
10957
10958 2006-10-31  Javier Miranda  <miranda@adacore.com>
10959
10960         * a-tags.ads, a-tags.adb: 
10961         (Predefined_DT): New function that improves readability of the code.
10962         (Get_Predefined_Prim_Op_Address, Set_Predefined_Prim_Op_Address,
10963         Inherit_DT): Use the new function Predefined_DT to improve code
10964         readability.
10965         (Register_Interface_Tag): Update assertion.
10966         (Set_Interface_Table): Update assertion.
10967         (Interface_Ancestor_Tags): New subprogram required to implement AI-405:
10968         determining progenitor interfaces in Tags.
10969         (Inherit_CPP_DT): New subprogram.
10970
10971         * exp_disp.adb (Expand_Interface_Thunk): Suppress checks during the
10972         analysis of the thunk code.
10973         (Expand_Interface_Conversion): Handle run-time conversion of
10974         access to class wide types.
10975         (Expand_Dispatching_Call): When generating the profile for the
10976         subprogram itype for a dispatching operation, properly terminate the
10977         formal parameters chaind list (set the Next_Entity of the last formal
10978         to Empty).
10979         (Collect_All_Interfaces): Removed. This routine has been moved to
10980         sem_util and renamed as Collect_All_Abstract_Interfaces.
10981         (Set_All_DT_Position): Hidden entities associated with abstract
10982         interface primitives are not taken into account in the check for
10983         3.9.3(10); this check is done with the aliased entity.
10984         (Make_DT, Set_All_DT_Position): Enable full ABI compatibility for
10985         interfacing with CPP by default.
10986         (Expand_Interface_Conversion): Add missing support for static conversion
10987         from an interface to a tagged type.
10988         (Collect_All_Interfaces): Add new out formal containing the list of
10989         abstract interface types to cleanup the subprogram Make_DT.
10990         (Make_DT): Update the code to generate the table of interfaces in case
10991         of abstract interface types.
10992         (Is_Predefined_Dispatching_Alias): New function that returns true if
10993         a primitive is not a predefined dispatching primitive but it is an
10994         alias of a predefined dispatching primitive.
10995         (Make_DT): If the ancestor of the type is a CPP_Class and we are
10996         compiling under full ABI compatibility mode we avoid the generation of
10997         calls to run-time services that fill the dispatch tables because under
10998         this mode we currently inherit the dispatch tables in the IP subprogram.
10999         (Write_DT): Emit an "is null" indication for a null procedure primitive.
11000         (Expand_Interface_Conversion): Use an address as the type of the formal
11001         of the internally built function that handles the case in which the
11002         target type is an access type.
11003
11004 2006-10-31  Robert Dewar  <dewar@adacore.com>
11005
11006         * binde.adb (Better_Choice, Worse_Choice): Implement new preferences.
11007
11008 2006-10-31  Robert Dewar  <dewar@adacore.com>
11009
11010         * bindusg.ads, bindusg.adb:
11011         Change to package and rename procedure as Display, which
11012         now ensures that it only outputs usage information once.
11013
11014 2006-10-31  Jose Ruiz  <ruiz@adacore.com>
11015
11016         * cal.c: Use the header sys/time.h for VxWorks 6.2 or greater when
11017         using RTPs.
11018
11019         * mkdir.c: Use a different version of mkdir for VxWorks 6.2 or greater
11020         when using RTPs.
11021
11022 2006-10-31  Robert Dewar  <dewar@adacore.com>
11023             Ed Schonberg  <schonberg@adacore.com>
11024
11025         * treepr.adb: Use new subtype N_Membership_Test
11026
11027         * checks.ads, checks.adb: Add definition for Validity_Check
11028         (Range_Or_Validity_Checks_Suppressed): New function
11029         (Ensure_Valid): Test Validity_Check suppressed
11030         (Insert_Valid_Check): Test Validity_Check suppressed
11031         (Insert_Valid_Check): Preserve Do_Range_Check flag
11032         (Validity_Check_Range): New procedure
11033         (Expr_Known_Valid): Result of membership test is always valid
11034         (Selected_Range_Checks): Range checks cannot be applied to discriminants
11035         by themselves. Disabling those checks must also be done for task types,
11036         where discriminants may be used for the bounds of entry families.
11037         (Apply_Address_Clause_Check): Remove side-effects if address expression
11038         is non-static and is not the name of a declared constant.
11039         (Null_Exclusion_Static_Checks): Extend to handle Function_Specification.
11040         Code cleanup and new error messages.
11041         (Enable_Range_Check): Test for some cases of suppressed checks
11042         (Generate_Index_Checks): Suppress index checks if index checks are
11043         suppressed for array object or array type.
11044         (Apply_Selected_Length_Checks): Give warning for compile-time detected
11045         length check failure, even if checks are off.
11046         (Ensure_Valid): Do not generate a check on an indexed component whose
11047         prefix is a packed boolean array.
11048         * checks.adb: (Alignment_Checks_Suppressed): New function
11049         (Apply_Address_Clause_Check): New procedure, this is a completely
11050         rewritten replacement for Apply_Alignment_Check
11051         (Get_E_Length/Get_E_First_Or_Last): Add missing barrier to ensure that
11052         we request a discriminal value only in case of discriminants.
11053         (Apply_Discriminant_Check): For Ada_05, only call Get_Actual_Subtype for
11054         assignments where the target subtype is unconstrained and the target
11055         object is a parameter or dereference (other aliased cases are known
11056         to be unconstrained).
11057
11058 2006-10-31  Robert Dewar  <dewar@adacore.com>
11059
11060         * clean.adb, gnatname.adb, gnatsym.adb, prep.adb, prep.ads,
11061         prepcomp.adb, prj.ads, prj-strt.adb, sem_maps.ads,
11062         vms_conv.adb: Fix bad table increment values (much too small)
11063
11064         * table.adb (Realloc): Make sure we get at least some new elements
11065         Defends against silly small values for table increment
11066
11067 2006-10-31  Robert Dewar  <dewar@adacore.com>
11068             Ed Schonberg  <schonberg@adacore.com>
11069             Bob Duff  <duff@adacore.com>
11070
11071         * einfo.ads, einfo.adb (Obsolescent_Warning): Now defined on all
11072         entities. Move other fields around to make this possible
11073         (Is_Derived_Type): Add missing call to Is_Type.
11074         (Extra_Formals): New function for subprograms, entries, subprogram
11075         types.
11076         (Set_Extra_Formals): New procedure for subprograms, entries, subp types.
11077         (First_Formal_With_Extras): New function for subprogs, entries, subp
11078         types.
11079         (Write_Field28_Name): New procedure for node display of "Extra_Formals".
11080         Add node information for E_Return_Statement.
11081         (Elaborate_Body_Desirable): New flag
11082         (Is_Return_By_Reference_Type): Rename Is_Return_By_Reference_Type
11083         to be Is_Inherently_Limited_Type, because return-by-reference has
11084         no meaning in Ada 2005.
11085         (E_Return_Statement): New entity kind.
11086         (Return_Applies_To): Field of E_Return_Statement.
11087         (Is_Return_Object): New flag in object entities.
11088         (Is_Dynamic_Scope): Make it True for E_Return_Statement.
11089         (Must_Have_Preelab_Init): New flag
11090         (Known_To_Have_Preelab_Init): New flag
11091         (Is_Formal_Object): Move from Sem_Ch8 body to Einfo
11092         (Is_Visible_Formal): New flag on entities in formal packages.
11093         (Low_Bound_Known): New flag
11094         (Non_Limited_View, Set_Non_Limited_View): Add membership test agains
11095         Incomplete_Kind.
11096         (Write_Field17_Name): Correct spelling of Non_Limited_View. Add name
11097         output when Id is an incomplete subtype.
11098
11099 2006-10-31  Robert Dewar  <dewar@adacore.com>
11100
11101         * errout.ads, errout.adb (Finalize): Implement switch -gnatd.m
11102         Avoid abbreviation Creat
11103         (Finalize): List all sources in extended mail source if -gnatl
11104         switch is active.
11105         Suppress copyright notice to file in -gnatl=f mode if -gnatd7 set
11106         (Finalize): Implement new -gnatl=xxx switch to output listing to file
11107         (Set_Specific_Warning_On): New procedure
11108         (Set_Specific_Warning_Off): New procedure
11109         Add implementation of new insertion \\
11110         (Error_Msg_Internal): Add handling for Error_Msg_Line_Length
11111         (Unwind_Internal_Type): Improve report on anonymous access_to_subprogram
11112         types.
11113         (Error_Msg_Internal): Make sure that we set Last_Killed to
11114         True when a message from another package is suppressed.
11115         Implement insertion character ~ (insert string)
11116         (First_Node): Minor adjustments to get better placement.
11117
11118         * frontend.adb: 
11119         Implement new -gnatl=xxx switch to output listing to file
11120
11121         * gnat1drv.adb: 
11122         Implement new -gnatl=xxx switch to output listing to file
11123
11124         * opt.ads: (Warn_On_Questionable_Missing_Paren): New switch
11125         (Commands_To_Stdout): New flag
11126         Implement new -gnatl=xxx switch to output listing to file
11127         New switch Dump_Source_Text
11128         (Warn_On_Deleted_Code): New warning flag for -gnatwt
11129         Define Error_Msg_Line_Length
11130         (Warn_On_Assumed_Low_Bound): New switch
11131
11132         * osint.ads, osint.adb
11133         (Normalize_Directory_Name): Fix bug.
11134         Implement new -gnatl=xxx switch to output listing to file
11135         (Concat): Removed, replaced by real concatenation
11136         Make use of concatenation now allowed in compiler
11137         (Executable_Prefix.Get_Install_Dir): First get the full path, so that
11138         we find the 'lib' or 'bin' directory even when the tool has been
11139         invoked with a relative path.
11140         (Executable_Name): New function taking string parameters.
11141
11142         * osint-c.ads, osint-c.adb: 
11143         Implement new -gnatl=xxx switch to output listing to file
11144
11145         * sinput-d.adb: Change name Creat_Debug_File to Create_Debug_File
11146
11147         * switch-c.adb: 
11148         Implement new -gnatl=xxx switch to output listing to file
11149         Recognize new -gnatL switch
11150         (no longer keep in old warning about old style usage)
11151         Use concatenation to simplify code
11152         Recognize -gnatjnn switch
11153         (Scan_Front_End_Switches): Clean up handling of -gnatW
11154         (Scan_Front_End_Switches): Include Warn_On_Assumed_Low_Bound for -gnatg
11155
11156 2006-10-31  Robert Dewar  <dewar@adacore.com>
11157
11158         * erroutc.ads, erroutc.adb (Set_Specific_Warning_On): New procedure
11159         (Set_Specific_Warning_Off): New procedure
11160         (Warning_Specifically_Suppressed): New function
11161         (Validate_Specific_Warnings): New procedure
11162         (Output_Msg_Text): Complete rewrite to support -gnatjnn
11163
11164         * err_vars.ads: Implement insertion character ~ (insert string)
11165
11166 2006-10-31  Bob Duff  <duff@adacore.com>
11167             Ed Schonberg  <schonberg@adacore.com>
11168
11169         * exp_aggr.adb (Build_Record_Aggr_Code): For extension aggregates, if
11170         the parent part is a build-in-place function call, generate assignments.
11171         (Expand_Record_Aggregate): Call Convert_To_Assignments if any components
11172         are build-in-place function calls.
11173         (Replace_Self_Reference): New subsidiary of
11174         Make_OK_Assignment_Statement, to replace an access attribute that is a
11175         self-reference into an access to the appropriate component of the
11176         target object. Generalizes previous mechanism to handle self-references
11177         nested at any level.
11178         (Is_Self_Referential_Init): Remove, not needed.
11179         (Is_Self_Referential_Init): New predicate to simplify handling of self
11180         referential components in record aggregates.
11181         (Has_Default_Init_Comps, Make_OK_Assignment_Statement): Add guard to
11182         check for presence of entity before checking for self-reference.
11183         (Has_Default_Init_Comps): Return True if a component association is a
11184         self-reference to the enclosing type, which can only come from a
11185         default initialization.
11186         (Make_OK_Assignment_Statement): If the expression is of the form
11187         Typ'Acc, where Acc is an access attribute, the expression comes from a
11188         default initialized self-referential component.
11189         (Build_Record_Aggr_Code): If the type of the aggregate is a tagged type
11190         that has been derived from several abstract interfaces we must also
11191         initialize the tags of the secondary dispatch tables.
11192
11193 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
11194             Thomas Quinot  <quinot@adacore.com>
11195             Javier Miranda  <miranda@adacore.com>
11196             Robert Dewar  <dewar@adacore.com>
11197
11198         * exp_attr.adb: 
11199         (Expand_Access_To_Protected_Op): If the context indicates that an access
11200         to a local operation may be transfered outside of the object, create an
11201         access to the wrapper operation that must be used in an external call.
11202         (Expand_N_Attribute_Reference, case Attribute_Valid): For the AAMP
11203         target, pass the Valid attribute applied to a floating-point prefix on
11204         to the back end without expansion.
11205         (Storage_Size): Use the new run-time function Storage_Size to retrieve
11206         the allocated storage when it is specified by a per-object expression.
11207         (Expand_N_Attribute_Reference): Add case for Attribute_Stub_Type.
11208         Nothing to do here, the attribute has been rewritten during semantic
11209         analysis.
11210         (Expand_Attribute_Reference): Handle expansion of the new Priority
11211         attribute
11212         (Find_Fat_Info): Handle case of universal real
11213         (Expand_Access_To_Protected_Op): Fix use of access to protected
11214         subprogram from inside the body of a protected entry.
11215         (Expand_Access_To_Protected_Op): Common procedure for the expansion of
11216         'Access and 'Unrestricted_Access, to transform the attribute reference
11217         into a fat pointer.
11218         (Is_Constrained_Aliased_View): New predicate to help determine whether a
11219         subcomponent's enclosing variable is aliased with a constrained subtype.
11220         (Expand_N_Attribute_Reference, case Attribute_Constrained): For Ada_05,
11221         test Is_Constrained_Aliased_View rather than Is_Aliased_View, because
11222         an aliased prefix must be known to be constrained in order to use True
11223         for the attribute value, and now it's possible for some aliased views
11224         to be unconstrained.
11225
11226 2006-10-31  Robert Dewar  <dewar@adacore.com>
11227
11228         * exp_ch2.adb: Change Is_Lvalue to May_Be_Lvalue
11229         (Expand_Entity_Reference): Correct error of not handling subprogram
11230         formals in current_value processing.
11231
11232 2006-10-31  Javier Miranda  <miranda@adacore.com>
11233             Robert Dewar  <dewar@adacore.com>
11234             Ed Schonberg  <schonberg@adacore.com>
11235             Gary Dismukes  <dismukes@adacore.com>
11236
11237         * exp_ch3.ads, exp_ch3.adb (Expand_N_Object_Declaration): Do not
11238         register in the final list objects containing class-wide interfaces;
11239         otherwise we incorrectly register the tag of the interface in the final
11240         list.
11241         (Make_Controlling_Function_Wrappers): Add missing barrier to do not
11242         generate the wrapper if the parent primitive is abstract. This is
11243         required to report the correct error message.
11244         (Expand_N_Subtype_Indication): Do validity checks on range
11245         (Clean_Task_Names): If an initialization procedure includes a call to
11246         initialize a task (sub)component, indicate that the procedure will use
11247         the secondary stack.
11248         (Build_Init_Procedure, Init_Secondary_Tags): Enable full ABI
11249         compatibility for interfacing with CPP by default.
11250         (Expand_N_Object_Declaration): Only build an Adjust call when the
11251         object's type is a nonlimited controlled type.
11252         * exp_ch3.adb: Add with and use of Exp_Ch6.
11253         (Expand_N_Object_Declaration): Check for object initialization that is a
11254         call to build-in-place function and apply Make_Build_In_Place_Call_In_
11255         Object_Declaration to the call.
11256         (Freeze_Type): When the designated type of an RACW was not frozen at the
11257         point where the RACW was declared, validate the primitive operations
11258         with respect to E.2.2(14) when it finally is frozen.
11259         (Build_Initialization_Call,Expand_Record_Controller): Rename
11260         Is_Return_By_Reference_Type to be Is_Inherently_Limited_Type, because
11261         return-by-reference has no meaning in Ada 2005.
11262         (Init_Secondary_Tags): Add missing call to Set_Offset_To_Top
11263         to register tag of the immediate ancestor interfaces in the
11264         run-time structure.
11265         (Init_Secondary_Tags): Moved to the specification to allow the
11266         initialization of extension aggregates with abstract interfaces.
11267         (Build_Master_Renaming): Make public, for use by function declarations
11268         whose return type is an anonymous access type.
11269         (Freeze_Record_Type): Replace call to Insert_List_Before by call to
11270         Insert_List_Before_And_Analyze after the generation of the specs
11271         associated with null procedures.
11272         (Expand_Tagged_Root): Update documentation in its specification.
11273         (Init_Secondary_Tags): Update documentation.
11274         (Build_Init_Procedure): If we are compiling under CPP full ABI compa-
11275         tibility mode and the immediate ancestor is a CPP_Pragma tagged type
11276         then generate code to inherit the contents of the dispatch table
11277         directly from the ancestor.
11278         (Expand_Record_Controller): Insert controller component after tags of
11279         implemented interfaces.
11280         (Freeze_Record_Type): Call new procedure Make_Null_Procedure_Specs to
11281         create null procedure overridings when null procedures are inherited
11282         from interfaces.
11283         (Make_Null_Procedure_Specs): New procedure to generate null procedure
11284         declarations for overriding null primitives inherited from interfaces.
11285         (Is_Null_Interface_Procedure): New function in
11286         Make_Null_Procedure_Specs.
11287         (Make_Predefined_Primitive_Specs/Predefined_Primitive_Bodies): If the
11288         immediate ancestor of a tagged type is an abstract interface type we
11289         must generate the specification of the predefined primitives associated
11290         with controlled types (because the dispatch table of the ancestor is
11291         null and hence these entries cannot be inherited). This is required to
11292         elaborate well the dispatch table.
11293
11294 2006-10-31  Javier Miranda  <miranda@adacore.com>
11295             Ed Schonberg  <schonberg@adacore.com>
11296             Bob Duff  <duff@adacore.com>
11297             Gary Dismukes  <dismukes@adacore.com>
11298             Robert Dewar  <dewar@adacore.com>
11299
11300         * exp_ch4.adb (Expand_N_Type_Conversion): Handle missing interface type
11301         conversion.
11302         (Expand_N_In): Do validity checks on range
11303         (Expand_Selected_Component): Use updated for of Denotes_Discriminant.
11304         (Expand_N_Allocator): For "new T", if the object is constrained by
11305         discriminant defaults, allocate the right amount of memory, rather than
11306         the maximum for type T.
11307         (Expand_Allocator_Expression): Suppress the call to Remove_Side_Effects
11308         when the allocator is initialized by a build-in-place call, since the
11309         allocator is already rewritten as a reference to the function result,
11310         and this prevents an unwanted duplication of the function call.
11311         Add with and use of Exp_Ch6.
11312         (Expand_Allocator_Expresssion): Check for an allocator whose expression
11313         is a call to build-in-place function and apply
11314         Make_Build_In_Place_Call_In_Allocator to the call (for both tagged and
11315         untagged designated types).
11316         (Expand_N_Unchecked_Type_Conversion): Do not do integer literal
11317         optimization if source or target is biased.
11318         (Expand_N_Allocator): Add comments for case of an allocator within a
11319         function that returns an anonymous access type designating tasks.
11320         (Expand_N_Allocator): apply discriminant checks for access
11321         discriminants of anonymous access types (AI-402, AI-416)
11322
11323 2006-10-31  Bob Duff  <duff@adacore.com>
11324             Robert Dewar  <dewar@adacore.com>
11325             Gary Dismukes  <dismukes@adacore.com>
11326             Ed Schonberg  <schonberg@adacore.com>
11327
11328         * exp_ch5.ads (Expand_N_Extended_Return_Statement): New procedure.
11329
11330         * exp_ch5.adb (Expand_N_Loop_Statement): Do validity checks on range
11331         (Expand_N_Assignment_Statement): Call
11332         Make_Build_In_Place_Call_In_Assignment if the right-hand side is a
11333         build-in-place function call. Currently, this can happen only for
11334         assignments that come from aggregates.
11335         Add -gnatd.l --Use Ada 95 semantics for limited function returns,
11336         in order to alleviate the upward compatibility introduced by AI-318.
11337         (Expand_N_Extended_Return_Statement): Add support for handling the
11338         return object as a build-in-place result.
11339         (Expand_Non_Function_Return): Implement simple return statements nested
11340         within an extended return.
11341         (Enable_New_Return_Processing): Turn on the new processing of return
11342         statements.
11343         (Expand_Non_Function_Return): For a return within an extended return,
11344         don't raise Program_Error, because Sem_Ch6 now gives a warning.
11345         (Expand_N_Extended_Return_Statement): Implement AI-318
11346         (Expand_Simple_Function_Return): Ditto.
11347         (Expand_N_If_Statement): Handle new -gnatwt warning
11348         (Expand_N_Case_Statement): Handle new -gnatwt warning
11349         (Expand_N_Assignment): Handle assignment to the Priority attribute of
11350         a protected object.
11351         (Expand_N_Assignment_Statement): Implement -gnatVe/E to control
11352         validity checking of assignments to elementary record components.
11353         (Expand_N_Return_Statement): return Class Wide types on the secondary
11354         stack independantly of their controlled status since with HIE runtimes,
11355         class wide types are not potentially controlled anymore.
11356
11357         * expander.adb (Expand): Add case for new N_Extended_Return_Statement
11358         node kind.
11359
11360         * exp_ch11.adb (Expand_N_Handled_Sequence_Of_Statements): Avoid
11361         Expand_Cleanup_Actions in case of N_Extended_Return_Statement, because
11362         it expects a block, procedure, or task. The return statement will get
11363         turned into a block, and Expand_Cleanup_Actions will happen then.
11364
11365 2006-10-31  Robert Dewar  <dewar@adacore.com>
11366             Ed Schonberg  <schonberg@adacore.com>
11367             Bob Duff  <duff@adacore.com>
11368             Gary Dismukes  <dismukes@adacore.com>
11369
11370         * exp_ch6.ads, exp_ch6.adb: Use new Validity_Check suppression
11371         capability.
11372         (Expand_Inlined_Call): Tagged types are by-reference types, and
11373         therefore should be replaced by a renaming declaration in the expanded
11374         body, as is done for limited types.
11375         (Expand_Call): If this is a call to a function with dispatching access
11376         result, propagate tag from context.
11377         (Freeze_Subprogram): Enable full ABI compatibility for interfacing with
11378         CPP by default.
11379         (Make_Build_In_Place_Call_In_Assignment): New procedure to do
11380         build-in-place when the right-hand side of an assignment is a
11381         build-in-place function call.
11382         (Make_Build_In_Place_Call_In_Allocator): Apply an unchecked conversion
11383         of the explicit dereference of the allocator to the result subtype of
11384         the build-in-place function. This is needed to satisfy type checking
11385         in cases where the caller's return object is created by an allocator for
11386         a class-wide access type and the type named in the allocator is a
11387         specific type.
11388         (Make_Build_In_Place_Call_In_Object_Declaration): Apply an unchecked
11389         conversion of the reference to the declared object to the result subtype
11390         of the build-in-place function. This is needed to satisfy type checking
11391         in cases where the declared object has a class-wide type. Also, in the
11392         class-wide case, change the type of the object entity to the specific
11393         result subtype of the function, to avoid passing a class-wide object
11394         without explicit initialization to the back end.
11395         (Register_Interface_DT_Entry): Moved outside the body of
11396         Freeze_Subprogram because this routine is now public; it is called from
11397         Check_Dispatching_Overriding to handle late overriding of abstract
11398         interface primitives.
11399         (Add_Access_Actual_To_Build_In_Place_Call): New utility procedure for
11400         adding an implicit access actual on a call to a build-in-place function.
11401         (Expand_Actuals): Test for an actual parameter that is a call to a
11402         build-in-place function and apply
11403         Make_Build_In_Place_Call_In_Anonymous_Context to the call.
11404         (Is_Build_In_Place_Function): New function to determine whether an
11405         entity is a function whose calls should be handled as build-in-place.
11406         (Is_Build_In_Place_Function_Call): New function to determine whether an
11407         expression is a function call that should handled as build-in-place.
11408         (Make_Build_In_Place_Call_In_Allocator): New procedure for handling
11409         calls to build-in-place functions as the initialization of an allocator.
11410         (Make_Build_In_Place_Call_In_Anonymous_Context): New procedure for
11411         handling calls to build-in-place functions in contexts that do not
11412         involve init of a separate object (for example, actuals of subprogram
11413         calls).
11414         (Make_Build_In_Place_Call_In_Object_Declaration): New procedure for
11415         handling calls to build-in-place functions as the initialization of an
11416         object declaration.
11417         (Detect_Infinite_Recursion): Add explicit parameter Process to
11418         instantiation of Traverse_Body to avoid unreferenced warning.
11419         (Check_Overriding_Inherited_Interfaces): Removed.
11420         (Register_Interface_DT_Entry): Code cleanup.
11421         (Register_Predefined_DT_Entry): Code cleanup.
11422         (Expand_Inlined_Call.Rewrite_Procedure_Call): Do not omit block around
11423         inlined statements if within a transient scope.
11424         (Expand_Inlined_Call.Process_Formals): When replacing occurrences of
11425         formal parameters with occurrences of actuals in inlined body, establish
11426         visibility on the proper view of the actual's subtype for the body's
11427         context.
11428         (Freeze_Subprogram): Do nothing if we are compiling under full ABI
11429         compatibility mode and we have an imported CPP subprogram because
11430         for now we assume that imported CPP primitives correspond with
11431         objects whose constructor is in the CPP side (and therefore we
11432         don't need to generate code to register them in the dispatch table).
11433         (Expand_Actuals): Introduce copy of actual, only if it might be a bit-
11434         aligned selected component.
11435         (Add_Call_By_Copy_Node): Add missing code to handle the case in which
11436         the actual of an in-mode parameter is a type conversion.
11437         (Expand_Actuals): If the call does not come from source and the actual
11438         is potentially misaligned, let gigi handle it rather than rejecting the
11439         (Expand_N_Subprogram_Body, Freeze_Subprogram): set subprograms returning
11440         Class Wide types as returning by reference independantly of their
11441         controlled status since with HIE runtimes class wide types are not
11442         potentially controlled anymore.
11443
11444 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
11445
11446         * exp_ch9.adb (Update_Prival_Types): Simplify code for entity
11447         references that are private components of the protected object.
11448         (Build_Barrier_Function): Set flag Is_Entry_Barrier_Function
11449         (Update_Prival_Subtypes): Add explicit Process argument to Traverse_Proc
11450         instantiation to deal with warnings.
11451         (Initialize_Protection): If expression for priority is non-static, use
11452         System_Priority as its expected type, in case the expression has not
11453         been analyzed yet.
11454
11455 2006-10-31  Robert Dewar  <dewar@adacore.com>
11456
11457         * exp_dbug.ads, exp_dbug.adb (Get_External_Name): Add missing
11458         initialization of Homonym_Len.
11459         (Fully_Qualify_Name): Remove kludge to eliminate anonymous block
11460         names from fully qualified name. Fixes problem of duplicate
11461         external names differing only in the presence of such a block name.
11462
11463 2006-10-31  Thomas Quinot  <quinot@adacore.com>
11464             Pablo Oliveira  <oliveira@adacore.com>
11465
11466         * exp_dist.adb (Get_Subprogram_Ids): This function will no more assign
11467         subprogram Ids, even if they are not yet assigned.
11468         (Build_Subprogram_Id): It is now this function that will take care of
11469         calling Assign_Subprogram_Ids if necessary.
11470         (Add_Receiving_Stubs_To_Declarations): Checking the subprograms ids
11471         should be done only once they are assigned.
11472         (Build_From_Any_Function, case of tagged types): Add missing call to
11473         Allocate_Buffer.
11474         (Corresponding_Stub_Type): New subprogram. Returns the associated stub
11475         type for an RACW type.
11476         (Add_RACW_Features): When processing an RACW declaration for which the
11477         designated type is already frozen, enforce E.2.2(14) rules immediately.
11478         (GARLIC_Support.Build_Subprogram_Receiving_Stubs): Do not perform any
11479         special reordering of controlling formals.
11480
11481         * exp_dist.ads (Corresponding_Stub_Type): New subprogram. Returns the
11482         associated stub type for an RACW type.
11483
11484 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
11485
11486         * exp_fixd.adb (Rounded_Result_Set): For multiplication and division of
11487         fixed-point operations in an integer context, i.e. as operands of a
11488         conversion to an integer type, indicate that result must be rounded.
11489
11490 2006-10-31  Robert Dewar  <dewar@adacore.com>
11491
11492         * exp_imgv.adb (Expand_Image_Attribute): For Wide_[Wide_]Character
11493         cases, pass the encoding method, since it is now required by the run
11494         time.
11495
11496         * s-valwch.ads, s-valwch.adb (Value_Wide_Wide_Character): Avoid
11497         assumption that Str'First = 1.
11498         (Value_Wide_Character): Takes EM (encoding method) parameter and passes
11499         it on to the Value_Wide_Wide_Character call.
11500         (Value_Wide_Wide_Character): Takes EM (encoding method) parameter and
11501         properly handles a string of the form quote-encoded_wide_char-quote.
11502
11503         * s-wchcnv.adb: Minor reformatting
11504
11505 2006-10-31  Javier Miranda  <miranda@adacore.com>
11506
11507         * exp_intr.adb (Expand_Dispatching_Constructor_Call): Add missing
11508         run-time membership test to ensure that the constructed object
11509         implements the target abstract interface.
11510
11511 2006-10-31  Robert Dewar  <dewar@adacore.com>
11512
11513         * exp_prag.adb (Expand_Pragma_Common_Object): Use a single
11514         Machine_Attribute pragma internally to implement the user pragma.
11515         Add processing for pragma Interface so that it is now completely
11516         equivalent to pragma Import.
11517
11518         * sem_prag.adb (Analyze_Pragma, case Obsolescent): Extend this pragma
11519         so that it can be applied to all entities, including record components
11520         and enumeration literals.
11521         (Analyze_Pragma, case Priority_Specific_Dispatching): Check whether
11522         priority ranges are correct, verify compatibility against task
11523         dispatching and locking policies, and if everything is correct an entry
11524         is added to the table containing priority specific dispatching entries
11525         for this compilation unit.
11526         (Delay_Config_Pragma_Analyze): Delay processing
11527         Priority_Specific_Dispatching pragmas because when processing the
11528         pragma we need to access run-time data, such as the range of
11529         System.Any_Priority.
11530         (Sig_Flags): Add Pragma_Priority_Specific_Dispatching.
11531         Allow pragma Unreferenced as a context item
11532         Add pragma Preelaborable_Initialization
11533         (Analyze_Pragma, case Interface): Interface is extended so that it is
11534         now syntactically and semantically equivalent to Import.
11535         (Analyze_Pragma, case Compile_Time_Warning): Fix error of blowups on
11536         insertion characters.
11537         Add handling for Pragma_Wide_Character_Encoding
11538         (Process_Restrictions_Restriction_Warnings): Ensure that a warning
11539         never supercedes a real restriction, and that a real restriction
11540         always supercedes a warning.
11541         (Analyze_Pragma, case Assert): Set Low_Bound_Known if assert is of
11542         appropriate form.
11543
11544 2006-10-31  Bob Duff  <duff@adacore.com>
11545             Ed Schonberg  <schonberg@adacore.com>
11546             Robert Dewar  <dewar@adacore.com>
11547
11548         * exp_ch7.adb (Build_Array_Deep_Procs, Build_Record_Deep_Procs,
11549         Make_Deep_Record_Body): Rename Is_Return_By_Reference_Type to be
11550         Is_Inherently_Limited_Type, because return-by-reference has no meaning
11551         in Ada 2005.
11552         (Find_Node_To_Be_Wrapped): Use new method of determining the result
11553         type of the function containing a return statement, because the
11554         Return_Type field was removed. We now use the Return_Applies_To field.
11555
11556         * exp_util.ads, exp_util.adb: Use new subtype N_Membership_Test
11557         (Build_Task_Image_Decl): If procedure is not called from an
11558         initialization procedure, indicate that function that builds task name
11559         uses the sec. stack. Otherwise the enclosing initialization procedure
11560         will carry the indication.
11561         (Insert_Actions): Remove N_Return_Object_Declaration. We now use
11562         N_Object_Declaration instead.
11563         (Kill_Dead_Code): New interface to implement -gnatwt warning for
11564         conditional dead code killed, and change implementation accordingly.
11565         (Insert_Actions): Add N_Return_Object_Declaration case.
11566         Correct comment to mention N_Extension_Aggregate node.
11567         (Set_Current_Value_Condition): Call Safe_To_Capture_Value to avoid bad
11568         attempts to save information for global variables which cannot be
11569         safely tracked.
11570         (Get_Current_Value_Condition): Handle conditions the other way round
11571         (constant on left). Also handle right operand of AND and AND THEN
11572         (Set_Current_Value_Condition): Corresponding changes
11573         (Append_Freeze_Action): Remove unnecessary initialization of Fnode.
11574         (Get_Current_Value_Condition): Handle simple boolean operands
11575         (Get_Current_Value_Condition): Handle left operand of AND or AND THEN
11576         (Get_Current_Value_Condition): If the variable reference is within an
11577         if-statement, does not appear in the list of then_statments, and does
11578         not come from source, treat it as being at unknown location.
11579         (Get_Current_Value_Condition): Enhance to allow while statements to be
11580         processed as well as if statements.
11581         (New_Class_Wide_Subtype): The entity for a class-wide subtype does not
11582         come from source.
11583         (OK_To_Do_Constant_Replacement): Allow constant replacement within body
11584         of loop. This is safe now that we fixed Kill_Current_Values.
11585         (OK_To_Do_Constant_Replacement): Check whether current scope is
11586         Standard, before examining outer scopes.
11587
11588 2006-10-31  Vincent Celier  <celier@adacore.com>
11589
11590         * krunch.ads, krunch.adb (Krunch): New Boolean parameter VMS_On_Target.
11591         When True, apply VMS treatment to children of packages A, G, I and S.
11592         For F320-016
11593
11594         * fname-uf.adb (Get_File_Name): Call Krunch with OpenVMS_On_Target
11595
11596 2006-10-31  Robert Dewar  <dewar@adacore.com>
11597             Ed Schonberg  <schonberg@adacore.com>
11598
11599         * freeze.adb: Add handling of Last_Assignment field
11600         (Warn_Overlay): Supply missing continuation marks in error msgs
11601         (Freeze_Entity): Add check for Preelaborable_Initialization
11602
11603         * g-comlin.adb: Add Warnings (Off) to prevent new warning
11604
11605         * g-expect.adb: Add Warnings (Off) to prevent new warning
11606
11607         * lib-xref.adb: Add handling of Last_Assignment field
11608         (Generate_Reference): Centralize handling of pragma Obsolescent here
11609         (Generate_Reference): Accept an implicit reference generated for a
11610         default in an instance.
11611         (Generate_Reference): Accept a reference for a node that is not in the
11612         main unit, if it is the generic body corresponding to an subprogram
11613         instantiation.
11614
11615         * xref_lib.adb: Add pragma Warnings (Off) to avoid new warnings
11616
11617         * sem_warn.ads, sem_warn.adb (Set_Warning_Switch): Add processing for
11618         -gnatwq/Q.
11619         (Warn_On_Useless_Assignment): Suppress warning if enclosing inner
11620         exception handler.
11621         (Output_Obsolescent_Entity_Warnings): Rewrite to avoid any messages on
11622         use clauses, to avoid messages on packages used to qualify, and also
11623         to avoid messages from obsolescent units.
11624         (Warn_On_Useless_Assignments): Don't generate messages for imported
11625         and exported variables.
11626         (Warn_On_Useless_Assignments): New procedure
11627         (Output_Obsolescent_Entity_Warnings): New procedure
11628         (Check_Code_Statement): New procedure
11629
11630         * einfo.ads, einfo.adb (Has_Static_Discriminants): New flag
11631         Change name Is_Ada_2005 to Is_Ada_2005_Only
11632         (Last_Assignment): New field for useless assignment warning
11633
11634 2006-10-31  Olivier Hainque  <hainque@adacore.com>
11635
11636         * g-alleve.adb (lvx, stvx): Ceil-Round the Effective Address to the
11637         closest multiple of VECTOR_ALIGNMENT and not the closest multiple of 16.
11638
11639 2006-10-31  Bob Duff  <duff@adacore.com>
11640             Robert Dewar  <dewar@adacore.com>
11641             Ed Schonberg  <schonberg@adacore.com>
11642
11643         * g-awk.adb (Default_Session, Current_Session): Compile this file in
11644         Ada 95 mode, because it violates the new rules for AI-318.
11645
11646         * g-awk.ads: Use overloaded subprograms in every case where we used to
11647         have a default of Current_Session. This makes the code closer to be
11648         correct for both Ada 95 and 2005.
11649
11650         * g-moreex.adb (Occurrence): Turn off warnings for illegal-in-Ada-2005
11651         code, relying on the fact that the compiler generates a warning
11652         instead of an error in -gnatg mode.
11653
11654         * lib-xref.ads (Xref_Entity_Letters): Add entry for new
11655         E_Return_Statement entity kind.
11656         Add an entry for E_Incomplete_Subtype in Xref_Entity_Letters.
11657
11658         * par.adb (P_Interface_Type_Definition): Addition of one formal to
11659         report an error if the reserved word abstract has been previously found.
11660         (SS_End_Type): Add E_Return for new extended_return_statement syntax.
11661
11662         * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Improve message for
11663         parenthesized range attribute usage
11664         (P_Expression_No_Right_Paren): Add missing comment about error recovery.
11665
11666         * par-ch6.adb (P_Return_Object_Declaration): AI-318: Allow "constant"
11667         in the syntax for extended_return_statement. This is not in the latest
11668         RM, but the ARG is expected to issue an AI allowing this.
11669         (P_Return_Subtype_Indication,P_Return_Subtype_Indication): Remove
11670         N_Return_Object_Declaration. We now use N_Object_Declaration instead.
11671         (P_Return_Object_Declaration, P_Return_Subtype_Indication,
11672         P_Return_Statement): Parse the new syntax for extended_return_statement.
11673
11674         * par-endh.adb (Check_End, Output_End_Deleted, Output_End_Expected,
11675         Output_End_Missing): Add error-recovery code for the new
11676         extended_return_statement syntax; that is, the new E_Return entry on
11677         the scope stack.
11678
11679         * s-auxdec-vms_64.ads, s-auxdec.ads (AST_Handler): Change type from
11680         limited to nonlimited, because otherwise we violate the new Ada 2005
11681         rules about returning limited types in function Create_AST_Handler in
11682         s-asthan.adb.
11683
11684         * sem.adb (Analyze): Add cases for new node kinds
11685         N_Extended_Return_Statement and N_Return_Object_Declaration.
11686
11687         * sem_aggr.adb (Aggregate_Constraint_Checks): Verify that component
11688         type is in the same category as type of context before applying check,
11689         to prevent anomalies in instantiations.
11690         (Resolve_Aggregate): Remove test for limited components in aggregates.
11691         It's unnecessary in Ada 95, because if it has limited components, then
11692         it must be limited. It's wrong in Ada 2005, because limited aggregates
11693         are now allowed.
11694         (Resolve_Record_Aggregate): Move check for limited types later, because
11695         OK_For_Limited_Init requires its argument to have been resolved.
11696         (Get_Value): When copying the component default expression for a
11697         defaulted association in an aggregate, use the sloc of the aggregate
11698         and not that of the original expression, to prevent spurious
11699         elaboration errors, when the expression includes function calls.
11700         (Check_Non_Limited_Type): Correct code for AI-287, extension aggregates
11701         were missing. We also didn't handle qualified expressions. Now also
11702         allow function calls. Use new common routine OK_For_Limited_Init.
11703         (Resolve_Extension_Aggregate): Minor fix to bad error message (started
11704         with space can upper case letter).
11705
11706         * sem_ch3.ads, sem_ch3.adb (Create_Constrained_Components): Set
11707         Has_Static_Discriminants flag
11708         (Record_Type_Declaration): Diagnose an attempt to declare an interface
11709         type with discriminants.
11710         (Process_Range_Expr_In_Decl): Do validity checks on range
11711         (Build_Discriminant_Constraints): Use updated form of
11712         Denotes_Discriminant.
11713         (Process_Subtype): If the subtype is a private subtype whose full view
11714         is a concurrent subtype, introduce an itype reference to prevent scope
11715         anomalies in gigi.
11716         (Build_Derived_Record_Type, Collect_Interface_Primitives,
11717         Record_Type_Declaration):  The functionality of the subprograms
11718         Collect_Abstract_Interfaces and Collect_All_Abstract_Interfaces
11719         is now performed by a single routine.
11720         (Build_Derived_Record_Type): If the type definition includes an explicit
11721         indication of limitedness, then the type must be marked as limited here
11722         to ensure that any access discriminants will not be treated as having
11723         a local anonymous access type.
11724         (Check_Abstract_Overriding): Issue a detailed error message when an
11725         abstract subprogram was not overridden due to incorrect mode of its
11726         first parameter.
11727         (Analyze_Private_Extension_Declaration): Add support for the analysis of
11728         synchronized private extension declarations. Verify that the ancestor is
11729         a limited or synchronized interface or in the generic case, the ancestor
11730         is a tagged limited type or synchronized interface and all progenitors
11731         are either limited or synchronized interfaces.
11732         Derived_Type_Declaration): Check for presence of private extension when
11733         dealing with synchronized formal derived types.
11734         Process_Full_View): Enchance the check done on the usage of "limited" by
11735         testing whether the private view is synchronized.
11736         Verify that a synchronized private view is completed by a protected or
11737         task type.
11738         (OK_For_Limited_Init_In_05): New function.
11739         (Analyze_Object_Declaration): Move check for limited types later,
11740         because OK_For_Limited_Init requires its argument to have been resolved.
11741         Add -gnatd.l --Use Ada 95 semantics for limited function returns,
11742         in order to alleviate the upward compatibility introduced by AI-318.
11743         (Constrain_Corresponding_Record): If the constraint is for a component
11744         subtype, mark the itype as frozen, to avoid out-of-scope references to
11745         discriminants in the back-end.
11746         (Collect_Implemented_Interfaces): Protect the recursive algorithm of
11747         this subprogram against wrong sources.
11748         (Get_Discr_Value, Is_Discriminant): Handle properly references to a
11749         discriminant of limited type completed with a protected type, when the
11750         discriminant is used to constrain a private component of the type, and
11751         expansion is disabled.
11752         (Find_Type_Of_Object): Do not treat a return subtype that is an
11753         anonymous subtype as a local_anonymous_type, because its accessibility
11754         level is the return type of the enclosing function.
11755         (Check_Initialization): In -gnatg mode, turn the error "cannot
11756         initialize entities of limited type" into a warning.
11757         (OK_For_Limited_Init): Return true for generated nodes, since it
11758         sometimes violates the legality rules.
11759         (Make_Incomplete_Declaration): If the type for which an incomplete
11760         declaration is created happens to be the currently visible entity,
11761         preserve the homonym chain when removing it from visibility.
11762         (Check_Conventions): Add support for Ada 2005 (AI-430): Conventions of
11763         inherited subprograms.
11764         (Access_Definition): If this is an access to function that is the return
11765         type of an access_to_function definition, context is a type declaration
11766         and the scope of the anonymous type is the current one.
11767         (Analyze_Subtype_Declaration): Add the defining identifier of a regular
11768         incomplete subtype to the set of private dependents of the original
11769         incomplete type.
11770         (Constrain_Discriminated_Type): Emit an error message whenever an
11771         incomplete subtype is being constrained.
11772         (Process_Incomplete_Dependents): Transform an incomplete subtype into a
11773         corresponding subtype of the full view of the original incomplete type.
11774         (Check_Incomplete): Properly detect invalid usage of incomplete types
11775         and subtypes.
11776
11777 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
11778
11779         * g-catiio.ads, g-catiio.adb (Value): New function.
11780         Given an input String, try and parse a valid Time value.
11781
11782 2006-10-31  Vincent Celier  <celier@adacore.com>
11783
11784         * g-debpoo.adb (Is_Valid): Correctly compute Offset using
11785         Integer_Address arithmetic, as in Set_Valid.
11786
11787 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
11788             Robert Dewar  <dewar@adacore.com>
11789
11790         * gnatcmd.adb (Process_Link): Use Osint.Executable_Name instead of
11791         handling executable extension manually and duplicating code.
11792
11793         * make.adb: Implement new -S switch
11794         (Gnatmake): Use new function Osint.Executable_Name instead
11795         of handling executable extension manually.
11796
11797         * prj-util.adb (Executable_Of): Make sure that if an Executable_Suffix
11798         is specified, the executable name ends with this suffix.
11799         Take advantage of Osint.Executable_Name instead of duplicating code.
11800
11801         * switch-m.adb: Recognize new gnatmake -S switch
11802
11803         * targparm.ads, targparm.adb (Executable_Extension_On_Target): New
11804         variable.
11805         (Get_Target_Parameters): Set Executable_Extension_On_Target if
11806         available.
11807
11808         * makeusg.adb: Add line for gnatmake -S switch
11809
11810 2006-10-31  Vincent Celier  <celier@adacore.com>
11811
11812         * gnatlink.adb (Gnatlink): If gcc is not called with -shared-libgcc,
11813         call it with -static-libgcc, as there are some platforms, such as
11814         Darwin, where one of these two switches is compulsory to link.
11815
11816 2006-10-31  Vincent Celier  <celier@adacore.com>
11817
11818         * gnatls.adb: Take into account GPR_PROJECT_PATH, when it is defined,
11819         instead of ADA_PROJECT_PATH, for the project path.
11820         (Gnatls): When displaying the project path directories, use host dir
11821         specs.
11822
11823         * prj-ext.adb (Prj.Ext elaboration): On VMS, only expand relative path
11824         names in the project path, as absolute paths may correspond to
11825         multi-valued VMS logical names.
11826
11827 2006-10-31  Vincent Celier  <celier@adacore.com>
11828
11829         * g-os_lib.ads, g-os_lib.adb (Locate_Exec_On_Path): Always return an
11830         absolute path name.
11831         (Locate_Regular_File): Ditto
11832         (Change_Dir): Remove, no longer used
11833         (Normalize_Pathname): Do not use Change_Dir to get the drive letter
11834         on Windows. Get it calling Get_Current_Dir.
11835         (OpenVMS): Remove imported boolean, no longer needed.
11836         (Normalize_Pathname)[VMS]: Do not resolve directory names.
11837         (Pid_To_Integer): New function to convert a Process_Id to  Integer
11838
11839 2006-10-31  Thomas Quinot  <quinot@adacore.com>
11840
11841         * g-socket.ads, g-socket.adb (Close_Selector): Once the signalling
11842         sockets are closed, reset the R_Sig_Socket and W_Sig_Socket components
11843         to No_Socket.
11844         (Selector_Type): Add default value of No_Socket for R_Sig_Socket and
11845         W_Sig_Socket.
11846
11847 2006-10-31  Robert Dewar  <dewar@adacore.com>
11848
11849         * g-speche.ads, g-speche.adb: Add special case to recognize misspelling
11850         initial letter o as a zero.
11851
11852 2006-10-31  Robert Dewar  <dewar@adacore.com>
11853
11854         * g-spipat.adb (S_To_PE): Remove incorrect use of 0 instead of Str'First
11855
11856 2006-10-31  Robert Dewar  <dewar@adacore.com>
11857
11858         * layout.adb (Layout_Record_Type): Deal with non-static subtypes of
11859         variant records
11860         (Layout_Variant_Record): Retrieve the discriminants from the entity
11861         rather than from the type definition, because in the case of a full
11862         type for a private type we need to take the discriminants from the
11863         partial view.
11864         (Layout_Component_List): When applying the Max operator to variants with
11865         a nonstatic size, check whether either operand is static and scale that
11866         operand from bits to storage units before applying Max.
11867         (Layout_Type): In VMS, if a C-convention access type has no explicit
11868         size clause (and does not inherit one in the case of a derived type),
11869         then the size is reset to 32 from 64.
11870
11871 2006-10-31  Vincent Celier  <celier@adacore.com>
11872
11873         * lib-load.adb (Load_Unit): Skip the test for a unit not found when
11874         its file has already been loaded, according to the unit being loaded,
11875         not to the current value of Multiple_Unit_Index.
11876
11877 2006-10-31  Thomas Quinot  <quinot@adacore.com>
11878             Eric Botcazou  <ebotcazou@adacore.com>
11879             Arnaud Charlet  <charlet@adacore.com>
11880
11881         * Makefile.in: Set EH mechanism to ZCX for FreeBSD.
11882         (NO_REORDER_ADAFLAGS): New var defined to -fno-toplevel-reorder if
11883         possible.
11884         (a-except.o): Pass it to the compiler.
11885         (gnatlib-shared-vms): Removed -nostartfiles switch in link step.
11886         (LIBGNAT_TARGET_PAIRS for Windows): Avoid the use of the specific
11887         a-calend-mingw.adb version.
11888
11889         * Makefile.rtl: Added s-dsaser.
11890         Add object entries for Ada.Calendar.[Arithmetic/Formatting/Time_Zones]
11891         (GNATRTL_TASKING_OBJS): Add Ada.Dispatching and
11892         Ada.Dispatching.Round_Robin.
11893         Added new unit Ada.Containers.Restricted_Bounded_Doubly_Linked_Lists
11894
11895         * Make-lang.in: Remove all references to gt-ada-decl.h.
11896         Add concatenation (s-strops/s-sopco3/s-sopco4/s-sopco5) to compiler
11897         sources.
11898         Add dependency on ada/s-restri.o for GNAT1 and GNATBIND objects.
11899         Update dependencies.
11900
11901         * system-freebsd-x86.ads: Make ZCX the default EH mechanism for FreeBSD
11902
11903 2006-10-31  Vincent Celier  <celier@adacore.com>
11904
11905         * mlib-utl.adb (Initialized): Remove, no longer used
11906         (Initialize): Remove, no longer used
11907         (Ar): If Ar_Exec is null, get the location of the archive builder and,
11908         if there is one, the archive indexer. Fail if the archive builder cannot
11909         be found.
11910         (Gcc): If the driver path is unknown, get it. Fail if the driver cannot
11911         be found.
11912
11913 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
11914
11915         * sem_ch10.ads, sem_ch10.adb (Check_Redundant_Withs,
11916         Process_Body_Clauses): If the context of a body includes a use clause
11917         for P.Q then a with_clause for P in the same body is not redundant,
11918         even if the spec also has a with_clause on P.
11919         Add missing continuation mark to error msg
11920         (Build_Limited_Views): A limited view of a type is tagged if its
11921         declaration includes a record extension.
11922         (Analyze_Proper_Body): Set Corresponding_Stub field in N_Subunit
11923         node, even if the subunit has errors. This avoids malfunction by
11924         Lib.Check_Same_Extended_Unit in the presence of syntax errors.
11925         (Analyze_Compilation_Unit): Add circuit to make sure we get proper
11926         generation of obsolescent messages for with statements (cannot do
11927         this too early, or we cannot implement avoiding the messages in the
11928         case of obsolescent units withing obsolescent units).
11929         (Install_Siblings): If the with_clause is on a remote descendant of
11930         an ancestor of the current compilation unit, find whether there is
11931         a sibling child unit that is immediately visible.
11932         (Remove_Private_With_Clauses): New procedure, invoked after completing
11933         the analysis of the private part of a nested package, to remove from
11934         visibility the private with_clauses of the enclosing package
11935         declaration.
11936         (Analyze_With_Clause): Remove Check_Obsolescent call, this checking is
11937         now centralized in Generate_Reference.
11938         (Install_Limited_Context_Clauses): Remove superfluous error
11939         message associated with unlimited view visible through use
11940         and renamings. In addition, at the point in which the error
11941         is reported, we add the backslash to the text of the error
11942         to ensure that it is reported as a single error message.
11943         Use new // insertion for some continuation messages
11944         (Expand_Limited_With_Clause): Use copy of name rather than name itself,
11945         to create implicit with_clause for parent unit mentioned in original
11946         limited_with_clause.
11947         (Install_Limited_With_Unit): Set entity of parent identifiers if the
11948         unit is a child unit. For ASIS queries.
11949         (Analyze_Subunit): If the subunit appears within a child unit, make all
11950         ancestor child units directly visible again.
11951
11952 2006-10-31  Robert Dewar  <dewar@adacore.com>
11953
11954         * par-ch10.adb (P_Context_Clause): Minor error message fix
11955
11956 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
11957             Javier Miranda  <miranda@adacore.com>
11958
11959         * par-ch12.adb: Grammar update and cleanup.
11960         (P_Formal_Type_Definition, P_Formal_Derived_Type_Definition): Add
11961         support for synchronized derived type definitions.
11962         Add the new actual Abstract_Present to every call to
11963         P_Interface_Type_Definition.
11964         (P_Formal_Object_Declarations): Update grammar rules. Handle parsing of
11965         a formal object declaration with an access definition or a subtype mark
11966         with a null exclusion.
11967         (P_Generic_Association): Handle association with box, and others_choice
11968         with box, to support Ada 2005 partially parametrized formal packages.
11969
11970 2006-10-31  Robert Dewar  <dewar@adacore.com>
11971             Javier Miranda  <miranda@adacore.com>
11972
11973         * par-ch3.adb (P_Range_Or_Subtype_Mark): Check for bad parentheses
11974         (P_Type_Declaration): Remove barrier against the reserved word "limited"
11975         after "abstract" to give support to the new syntax of AARM 3.4 (2/2).
11976         (P_Type_Declaration): Minor code cleanup. Add support for synchronized
11977         private extensions.
11978         (P_Type_Declaration): Add the new actual Abstract_Present to every call
11979         to P_Interface_Type_Definition.
11980         (P_Interface_Type_Definition): Addition of one formal to report an error
11981         if the reserved word abstract has been previously found.
11982         (P_Identifier_Declarations): Update grammar rules. Handle parsing of an
11983         object renaming declaration with an access definition or subtype mark
11984         with a possible null exclusion.
11985
11986         * par-ch9.adb: Minor error msg fix
11987
11988         * par-load.adb: Add missing continuation mark to error msg
11989
11990         * par-tchk.adb: (Wrong_Token): Code cleanup, use concatenation
11991
11992 2006-10-31  Vincent Celier  <celier@adacore.com>
11993
11994         * prj-dect.adb (Parse_Attribute_Declaration): Do not issue warning for
11995         unknown attribute in unknown package or in package that does not need
11996         to be checked.
11997         (Parse_Package_Declaration): Do not issue warning for unknown package in
11998         quiet output.
11999
12000 2006-10-31  Vincent Celier  <celier@adacore.com>
12001
12002         * prj-makr.adb (Packages_To_Check_By_Gnatname): New global constant
12003         (Make): Call Parse with Packages_To_Check_By_Gnatname for parameter
12004         Packages_To_Check.
12005
12006 2006-10-31  Vincent Celier  <celier@adacore.com>
12007
12008         * prj-nmsc.adb (Check_Ada_Name): For children of package A, G, I and S
12009         on VMS, change "__" to '.' before checking the name.
12010         (Record_Ada_Source): Always add the source file name in the list of
12011         of sources, even if it is not the first time, as it is for another
12012         source index.
12013         (Get_Unit): Replace both '_' (after 'a', 'g', 'i' or 's') with a single
12014         dot, instead of replacing only the first '_'.
12015
12016         * prj-part.adb (Parse): Convert project file path to canonical form
12017
12018         * prj-proc.adb (Recursive_Process): Make sure that, when a project is
12019         extended, the project id of the project extending it is recorded in its
12020         data, even when it has already been processed as an imported project.
12021
12022 2006-10-31  Robert Dewar  <dewar@adacore.com>
12023
12024         * repinfo.adb (List_Entities): Don't list entities from renaming
12025         declarations.
12026
12027 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
12028             Robert Dewar  <dewar@adacore.com>
12029
12030         * restrict.ads, restrict.adb (Restriction_Active): Now returns False if
12031         only a restriction warning is active for the given restriction. This is
12032         desirable because we do not want to modify code in the case where only
12033         a warning is set.
12034         (Set_Profile_Restrictions): Make sure that a Profile_Warnings never
12035         causes overriding of real restrictions.
12036         Take advantage of new No_Restrictions constant.
12037
12038         * raise.h: (__gnat_set_globals): Change profile.
12039
12040 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
12041
12042         * rtsfind.adb: Remove s-polint from comment as it exists no more.
12043
12044         * rtsfind.ads: 
12045         Move entity RE_Get_Active_Partition_Id to package System.DSA_Services.
12046         Move all the entities in obsolete package System.PolyORB_Interface to
12047         System.Partition_Interface.
12048         (RE_Storage_Size): New function in System.Tasking.
12049         (RE_Get_Ceiling): New entity.
12050         (RE_Set_Ceiling): New entity.
12051         (RO_PE_Get_Ceiling): New entity.
12052         (RO_RE_Set_Ceiling): New entity.
12053         (Inherit_CPP_DT): New entity
12054
12055 2006-10-31  Robert Dewar  <dewar@adacore.com>
12056
12057         * scng.adb (Scan, case of numeric literal): Better msg for identifier
12058         starting with a digit.
12059
12060 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
12061             Thomas Quinot  <quinot@adacore.com>
12062             Javier Miranda  <miranda@adacore.com>
12063             Gary Dismukes  <dismukes@adacore.com>
12064
12065         * sem_attr.ads, sem_attr.adb (Analyze_Access_Attribute): Diagnose
12066         properly an attempt to apply Unchecked_Access to a protected operation.
12067         (OK_Self_Reference): New subprogram to check the legality of an access
12068         attribute whose prefix is the type of an enclosing aggregate.
12069         Generalizes previous mechanism to handle attribute references nested
12070         arbitrarily deep within the aggregate.
12071         (Analyze_Access_Attribute): An access attribute whose prefix is a type
12072         can appear in an aggregate if this is a default-initialized aggregate
12073         for a self-referential type.
12074         (Resolve_Attribute, case Access): Ditto.
12075         Add support for new implementation defined attribute Stub_Type.
12076         (Eval_Attribute, case Attribute_Stub_Type): New case.
12077         (Analyze_Attribute, case Attribute_Stub_Type): New case.
12078         (Stream_Attribute_Available): Implement using new subprogram from
12079         sem_cat, Has_Stream_Attribute_Definition, instead of incorrect
12080         Has_Specified_Stream_Attribute flag.
12081         Disallow Storage_Size and Storage_Pool for access to subprogram
12082         (Resolve_Attribute, case 'Access et al): Take into account anonymous
12083         access types of return subtypes in extended return statements. Remove
12084         accessibility checks on anonymous access types when Unchecked_Access is
12085         used.
12086         (Analyze_Attribute): Add support for the use of 'Class to convert
12087         a class-wide interface to a tagged type.
12088         Add support for the attribute Priority.
12089         (Resolve_Attribute, case Attribute_Access): For Ada_05, add test for
12090         whether the designated type is discriminated with a constrained partial
12091         view and require static matching in that case.
12092         Add local variable Des_Btyp. The Designated_Type
12093         of an access to incomplete subtype is either its non-limited view if
12094         coming from a limited with or its etype if regular incomplete subtype.
12095
12096         * sem_cat.ads, sem_cat.adb (Validate_Remote_Access_To_Class_Wide_Type):
12097         Fix predicate to identify and allow cases of (expander-generated)
12098         references to tag of designated object of a RACW.
12099         (Validate_Static_Object_Name): In Ada 2005, a formal object is
12100         non-static, and therefore cannot appear as a primary in a preelaborable
12101         package.
12102         (Has_Stream_Attribute_Definition): New subprogram, abstracted from
12103         Has_Read_Write_Attributes.
12104         (Has_Read_Write_Attributes): Reimplement in termes of
12105         Has_Stream_Attribute_Definition.
12106         (Missing_Read_Write_Attributes): When checking component types in a
12107         record, unconditionally call Missing_Read_Write_Attributes recursively
12108         (remove guard checking for Is_Record_Type / Is_Access_Type).
12109
12110 2006-10-31  Robert Dewar  <dewar@adacore.com>
12111
12112         * sem_ch11.adb (Analyze_Handled_Statements): Move final test for
12113         useless assignments here and conditionalize it on absence of exception
12114         handlers.
12115         (Analyze_Exception_Handlers): Small code reorganization of error
12116         detection code, for new handling of formal packages.
12117
12118 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
12119             Hristian Kirtchev  <kirtchev@adacore.com>
12120
12121         * sem_ch12.ads, sem_ch12.adb (Save_References): If node is an operator
12122         that has been constant-folded, preserve information of original tree,
12123         for ASIS uses.
12124         (Analyze_Formal_Derived_Type): Set the limited present flag of the newly
12125         generated private extension declaration if the formal derived type is
12126         synchronized. Carry synchronized present over to the generated private
12127         extension.
12128         (Validate_Derived_Type_Instance): Ensure that the actual of a
12129         synchronized formal derived type is a synchronized tagged type.
12130         (Instantiate_Formal_Package): When creating the instantiation used to
12131         validate the actual package of a formal declared without a box, check
12132         whether the formal itself depends on a prior actual.
12133         (Instantiate_Formal_Subprogram): Create new entities for the defining
12134         identifiers of the formals in the renaming declaration, for ASIS use.
12135         (Instantiate_Formal_Subprogram, Instantiate_Formal_Type): When creating
12136         a renaming declaration or a subtype declaration for an actual in an
12137         instance, capture location information of declaration in generic, for
12138         ASIS use.
12139         (Instantiate_Formal_Package): Add comments on needed additional tests.
12140         AI-317 (partial parametrization) is fully implemented.
12141         (Validate_Private_Type_Instance): Add check for actual which
12142         must have preelaborable initialization
12143         Use new // insertion for some continuation messages
12144         (Analyze_Formal_Object_Declaration): Change usage of Expression to
12145         Default_Expression. Add type retrieval when the declaration has an
12146         access definition. Update premature usage of incomplete type check.
12147         (Check_Access_Definition): New subsidiary routine. Check whether the
12148         current compilation version is Ada 05 and the supplied node has an
12149         access definition.
12150         (Instantiate object): Alphabetize local variables. Handle the creation
12151         of new renaming declarations with respect to the kind of definition
12152         used - either an access definition or a subtype mark. Guard against
12153         unnecessary error message in the context of anonymous access types after
12154         they have been resolved. Add check for required null exclusion in a
12155         formal object declaration.
12156         (Switch_View): A private subtype of a non-private type needs to be
12157         switched (the base type can have been switched without its private
12158         dependents because of the last branch of Check_Private_View.
12159         (Check_Private_View): Do not recompute Base_Type (T), instead use cached
12160         value from BT.
12161         (Instantiate_Type): Emit an error message whenever a class-wide type of
12162         a tagged incomplete type is used as a generic actual.
12163         (Find_Actual_Type): Extend routine to handle a component type in a child
12164         unit that is imported from a formal package in a parent.
12165         (Validate_Derived_Type_Instance): Check that analyzed formal and actual
12166         agree on constrainedness, rather than checking against ultimate ancestor
12167         (Instantiate_Subprogram_Body): Create a cross-reference link to the
12168         generic body, for navigation purposes.
12169
12170 2006-10-31  Robert Dewar  <dewar@adacore.com>
12171             Thomas Quinot  <quinot@adacore.com>
12172
12173         * sem_ch13.adb: Storage pool cannot be given for access to subprogram
12174         type.
12175         (New_Stream_Subprogram): When processing an attribute definition clause
12176         for a stream-oriented subprogram, record an entity node occurring at
12177         the point of clause to use for checking the visibility of the clause,
12178         as defined by 8.3(23) as amended by AI-195.
12179         (New_Stream_Subprogram): New procedure, factoring behaviour from both
12180          New_Stream_Function and New_Stream_Procedure.
12181         (New_Stream_Function, New_Stream_Procedure): Removed.
12182         (Analyze_Attribute_Definition_Clause, case Address): Check new
12183         Alignment_Check check
12184
12185 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
12186             Javier Miranda  <miranda@adacore.com>
12187             Robert Dewar  <dewar@adacore.com>
12188
12189         * sem_ch4.adb (Try_Primitive_Operation): Code cleanup to ensure that we
12190         generate the same errors compiling under -gnatc.
12191         (Try_Object_Operation): If no candidate interpretation succeeds, but
12192         there is at least one primitive operation with the right name, report
12193         error in call rather than on a malformed selected component.
12194         (Analyze_Selected_Component): If the prefix is an incomplete type from
12195         a limited view, and the full view is available, use the full view to
12196         determine whether this is a prefixed call to a primitive operation.
12197         (Operator_Check): Verify that a candidate interpretation is a binary
12198         operation before checking the type of its second formal.
12199         (Analyze_Call): Add additional warnings for function call contexts not
12200         yet supported.
12201         (Analyze_Allocator): Move the check for "initialization not allowed for
12202         limited types" after analyzing the expression. This is necessary,
12203         because OK_For_Limited_Init looks at the structure of the expression.
12204         Before analysis, we don't necessarily know what sort of expression it
12205         is. For example, we don't know whether F(X) is a function call or an
12206         indexed component; the former is legal in Ada 2005; the latter is not.
12207         (Analyze_Allocator): Correct code for AI-287 -- extension aggregates
12208         were missing. We also didn't handle qualified expressions. Now also
12209         allow function calls. Use new common routine OK_For_Limited_Init.
12210         (Analyze_Type_Conversion): Do not perform some legality checks in an
12211         instance, because the error message will be redundant or spurious.
12212         (Analyze_Overloaded_Selected_Component): Do not do style check when
12213         setting an entity, since we do not know it is the right entity yet.
12214         (Analyze_Selected_Component): Move Generate_Reference call to Sem_Res
12215         (Analyze_Overloaded_Selected_Component): Same change
12216         (Analyze_Selected_Component): Remove unnecessary prefix type retrieval
12217         since regular incomplete subtypes are transformed into corresponding
12218         subtypes of their full views.
12219         (Complete_Object_Operation): Treat name of transformed subprogram call
12220         as coming from source, for browsing purposes.
12221         (Try_Primitive_Operation): If formal is an access parameter, compare
12222         with base type of object to determine whether it is a primitive
12223         operation.
12224         (Operator_Check): If no interpretation of the operator matches, check
12225         whether a use clause on any candidate might make the operation legal.
12226         (Try_Class_Wide_Operation): Check whether the first parameter is an
12227         access type whose designated type is class-wide.
12228
12229 2006-10-31  Robert Dewar  <dewar@adacore.com>
12230             Ed Schonberg  <schonberg@adacore.com>
12231             Gary Dismukes  <dismukes@adacore.com>
12232
12233         * sem_ch5.ads, sem_ch5.adb (Analyze_Loop_Statement): Add circuit to
12234         warn on infinite loops.
12235         Add \\ to some continuation messages
12236         (Analyze_Assignment_Statement): Call Warn_On_Useless_Assignment
12237         (Process_Bounds): If the bounds are integer literals that result from
12238         constant-folding, and they carry a user-defined type, preserve that type
12239         rather than treating this as an integer range.
12240         (Analyze_Exit_Statement): Test for E_Return_Statement in legality check.
12241         (Analyze_Goto_Statement): Test for E_Return_Stateemnt in legality check.
12242         (Analyze_Assignment_Statement): Add call to Check_Elab_Assign for
12243         left hand side of assignment.
12244         (Analyze_Assignment): Add suport to manage assigments to the attribute
12245         priority of a protected object.
12246         (Check_Possible_Current_Value_Condition): Allow fully qualified names
12247         not just identifiers.
12248         (Check_Possible_Current_Value_Condition): Acquire left operand of AND
12249         or AND THEN for possible tracking.
12250         (Analyze_Iteration_Scheme): Check for setting Current_Value for the
12251         case of while loops so we can track values in the loop body.
12252
12253 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
12254             Hristian Kirtchev  <kirtchev@adacore.com>
12255             Bob Duff  <duff@adacore.com>
12256
12257         * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Declaration): A null
12258         procedure cannot be a protected operation (it is a basic_declaration,
12259         not a subprogram_declaration).
12260         (Check_Overriding_Indicator): Rename formal Does_Override to Overridden_
12261         Subp. Add logic for entry processing.
12262         (Check_Synchronized_Overriding): New procedure in New_Overloaded_Entity.
12263         Determine whether an entry or subprogram of a protected or task type
12264         override an inherited primitive of an implemented interface.
12265         (New_Overloaded_Entity): Add calls to Check_Synchronized_Overriding.
12266         Update the actual used in calls to Check_Overriding_Indicator.
12267         (Analyze_Generic_Subprogram_Body): If the subprogram is a child unit,
12268         generate the proper reference to the parent unit, for cross-reference.
12269         (Analyze_Subprogram_Declaration): Protect Is_Controlling_Formal with
12270         Is_Formal.
12271         Add -gnatd.l --Use Ada 95 semantics for limited function returns,
12272         (Add_Extra_Formal): Revise procedure to allow passing in associated
12273         entity, scope, and name suffix, and handle setting of the new
12274         Extra_Formals field.
12275         (Create_Extra_Formals): Change existing calls to Add_Extra_Formal to
12276         pass new parameters. Add support for adding the new extra access formal
12277         for functions whose calls are treated as build-in-place.
12278         (Analyze_A_Return_Statement): Correct casing in error message.
12279         Move Pop_Scope to after Analyze_Function_Return, because an extended
12280         return statement really is a full-fledged scope. Otherwise, visibility
12281         doesn't work right. Correct use of "\" for continuation messages.
12282         (Analyze_Function_Return): Call Analyze on the Obj_Decl, rather than
12283         evilly trying to call Analyze_Object_Declaration directly. Otherwise,
12284         the node doesn't get properly marked as analyzed.
12285         (Analyze_Subprogram_Body): If subprogram is a function that returns
12286         an anonymous access type that denotes a task, build a Master Entity
12287         for it.
12288         (Analyze_Return_Type): Add call to Null_Exclusion_Static_Checks. Verify
12289         proper usage of null exclusion in a result definition.
12290         (Process_Formals): Code cleanup and new error message.
12291         (Process_Formals): Detect incorrect application of null exclusion to
12292         non-access types.
12293         (Conforming_Types): Handle conformance between [sub]types and itypes
12294          generated for entities that have null exclusions applied to them.
12295         (Maybe_Primitive_Operation): Add an additional type retrieval when the
12296          base type is an access subtype. This case arrises with null exclusions.
12297         (New_Overloaded_Entity): Do not remove the overriden entity from the
12298         homonym chain if it corresponds with an abstract interface primitive.
12299         (Process_Formals): Replace membership test agains Incomplete_Kind with a
12300         call to the synthesized predicate Is_Incomplete_Type.
12301         (Analyze_Subprogram_Body): Check wrong placement of abstract interface
12302         primitives.
12303         (Analyze_Subprogram_Declaration): Check that abstract interface
12304         primitives are abstract or null.
12305         (Analyze_Subprogram_Specification): Remove previous check for abstract
12306         interfaces because it was not complete.
12307         (Has_Interface_Formals): Removed.
12308
12309 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
12310             Javier Miranda  <miranda@adacore.com>
12311
12312         * sem_ch7.adb (Check_Anonymous_Access_Types): New procedure, subsidiary
12313         of Analyze_Package_Body, to create Itype references for anonymous
12314         access types created in the package declaration, whose designated types
12315         may have only a limited view.
12316         (Analyze_Package_Specification): For the private part of a nested
12317         package, install private_with_clauses of enclosing compilation unit if
12318         we are in its visible part.
12319         (Declare_Inherited_Private_Subprograms): Complete barrier
12320         to ensure that the primitive operation has an alias to some parent
12321         primitive. This is now required because, after the changes done for the
12322         implementation of abstract interfaces, the contents of the list of
12323         primitives has entities whose alias attribute references entities of
12324         such list of primitives.
12325         (Analyze_Package_Specification): Simplify code that handles parent units
12326         of instances and formal packages.
12327         (Uninstall_Declarations): Check the convention consistency among
12328         primitive overriding operations of a tagged record type.
12329
12330 2006-10-31  Robert Dewar  <dewar@adacore.com>
12331             Hristian Kirtchev  <kirtchev@adacore.com>
12332             Javier Miranda  <miranda@adacore.com>
12333             Ed Schonberg  <schonberg@adacore.com>
12334
12335         * sem_ch8.adb: Minor error msg rewording
12336         (Undefined): When checking for misspellings, invert arguments (to get
12337         expected and found set right)
12338         (Analyze_Subprogram_Renaming): Propagate Is_Pure, Is_Preelaborated
12339         (Analyze_Generic_Renaming): Same fix
12340         (Use_One_Package): Do not take into account the internal entities of
12341         abstract interfaces during the analysis of entities that are marked
12342         as potentially use-visible.
12343         (Find_Type): Handle the case of an attribute reference for
12344         implementation defined attribute Stub_Type (simply let the analysis of
12345         the attribute reference rewrite it).
12346         (Use_One_Type, End_Use_Type): Reject a reference to a limited view of a
12347         type that appears in a Use_Type clause.
12348         (Analyze_Object_Renaming): Add support for renaming of the Priority
12349         attribute.
12350         (Find_Type): In Ada 2005, a task type can be used within its own body,
12351         when it appears in an access definition.
12352         (Analyze_Object_Renaming): Remove warning on null_exclusion.
12353         (Analyze_Object_Renaming): Introduce checks for required null exclusion
12354          in a formal object declaration or in a subtype declaration.
12355         (Analyze_Subprogram_Renaming): Add call to Check_Null_Exclusion.
12356         (Check_Null_Exclusion): New local routine to
12357         Analyze_Subprogram_Renaming. Check whether the formals and return
12358         profile of a renamed subprogram have required null exclusions when
12359         their counterparts of the renaming already impose them.
12360         (In_Generic_Scope): New local routine to Analyze_Object_Renaming.
12361         Determine whether an entity is inside a generic scope.
12362         (In_Open_Scope): First pass of documentation update.
12363         (Find_Expanded_Name): Add support for shadow entities associated with
12364         limited withed packages. This is required to handle nested packages.
12365         (Analyze_Package_Renaming): Remove the restriction imposed by AI-217
12366         that makes a renaming of a limited withed package illegal.
12367
12368 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
12369             Ed Schonberg  <schonberg@adacore.com>
12370
12371         * sem_ch9.adb (Analyze_Protected_Definition): Remove call to
12372         Check_Overriding_Indicator.
12373         (Analyze_Task_Definition): Ditto.
12374         (Analyze_Protected_Type, Analyze_Task_Type): Code cleanup.
12375         (Check_Overriding_Indicator): To find overridden interface operation,
12376         examine only homonyms that have an explicit subprogram declaration, not
12377         inherited operations created by an unrelated type derivation.
12378         (Check_Overriding_Indicator): When checking for the presence of "null"
12379         in a procedure, ensure that the queried node is a procedure
12380         specification.
12381         (Matches_Prefixed_View_Profile): Add mechanism to retrieve the parameter
12382         type when the formal is an access to variable.
12383         (Analyze_Protected_Type): Add check for Preelaborable_Initialization
12384         (Analyze_Task_Type): Same addition
12385         (Analyze_Entry_Declaration): Call Generate_Reference_To_Formals, to
12386         provide navigation capabilities for entries.
12387
12388 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
12389             Ed Schonberg  <schonberg@adacore.com>
12390             Javier Miranda  <miranda@adacore.com>
12391             Gary Dismukes  <dismukes@adacore.com>
12392
12393         * sem_disp.adb (Check_Dispatching_Operation): Do not flag subprograms
12394         inherited from an interface ancestor by another interface in the
12395         context of an instance as 'late'.
12396         (Is_Tag_Indeterminate, Propagate_Tag): Handle properly the dereference
12397         of a call to a function that dispatches on access result.
12398         (Check_Dispatching_Operation): In case of late overriding of a primitive
12399         that covers abstract interface subprograms we register it in all the
12400         secondary dispatch tables associated with abstract interfaces.
12401         (Check_Dispatching_Call): Add check that a dispatching call is not made
12402         to a function with a controlling result of a limited type. This is a
12403         current implementation restriction.
12404         (Check_Controlling_Formal): Remove bogus checks for E.2.2(14).
12405         (Check_Dispatching_Operation): Do no emit a warning if the controlling
12406         argument is an interface type that is a generic formal.
12407         (Is_Interface_Subprogram): Removed.
12408         (Check_Dispatching_Operation): If the subprogram is not a dispatching
12409         operation, check the formals to handle the case in which it is
12410         associated with an abstract interface type.
12411
12412 2006-10-31  Robert Dewar  <dewar@adacore.com>
12413             Ed Schonberg  <schonberg@adacore.com>
12414
12415         * sem_elab.ads, sem_elab.adb (Check_Elab_Assign): New procedure
12416         Add new calls to this procedure during traversal
12417         (Activate_Elaborate_All_Desirable): Do not set elaboration flag on
12418         another unit if expansion is disabled.
12419
12420 2006-10-31  Robert Dewar  <dewar@adacore.com>
12421
12422         * sem_eval.adb (Compile_Time_Compare): Make use of information from
12423         Current_Value in the conditional case, to evaluate additional
12424         comparisons at compile time.
12425
12426 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
12427             Hristian Kirtchev  <kirtchev@adacore.com>
12428             Javier Miranda  <miranda@adacore.com>
12429
12430         * sem_type.adb (Add_One_Interp): If node is an indirect call, preserve
12431         subprogram type to provide better diagnostics in case of ambiguity.
12432         (Covers): Handle coverage of formal and actual anonymous access types in
12433         the context of generic instantiation.
12434         (Covers/Interface_Present_In_Ancestors): Use the base type to manage
12435         abstract interface types; this is required to handle concurrent types
12436         with discriminants and abstract interface types.
12437         (Covers): Include type coverage of both regular incomplete subtypes and
12438         incomplete subtypes of incomplete type visibles through a limited with
12439         clause.
12440
12441 2006-10-31  Robert Dewar  <dewar@adacore.com>
12442             Hristian Kirtchev  <kirtchev@adacore.com>
12443             Ed Schonberg  <schonberg@adacore.com>
12444
12445         * sem_util.ads, sem_util.adb (Enter_Name): Exclude -gnatwh warning
12446         messages for entities in packages which are not used.
12447         (Collect_Synchronized_Interfaces): New procedure.
12448         (Overrides_Synchronized_Primitive): New function.
12449         (Denotes_Discriminant): Extend predicate to apply to task types.
12450         Add missing continuation marks in error msgs
12451         (Unqualify): New function for removing zero or more levels of
12452         qualification from an expression. There are numerous places where this
12453         ought to be used, but we currently only deal properly with zero or one
12454         level.
12455         (In_Instance); The analysis of the actuals in the instantiation of a
12456         child unit is not within an instantiation, even though the parent
12457         instance is on the scope stack.
12458         (Safe_To_Capture_Value): Exclude the case of variables that are
12459         renamings.
12460         (Check_Obsolescent): Removed
12461         (Is_Aliased_View): A reference to an enclosing instance in an aggregate
12462         is an aliased view, even when rewritten as a reference to the target
12463         object in an assignment.
12464         (Get_Subprogram_Entity): New function
12465         (Known_To_Be_Assigned): New function
12466         (Type_Access_Level): Compute properly the access level of a return
12467         subtype that is an anonymous access type.
12468         (Explain_Limited_Type): Correct use of "\" for continuation messages.
12469         (Is_Transfer): The new extended_return_statement causes a transfer of
12470         control.
12471         (Has_Preelaborable_Initialization): New function
12472         (Has_Null_Exclusion): New function. Given a node N, determine whether it
12473         has a null exclusion depending on its Nkind.
12474         Change Is_Lvalue to May_Be_Lvalue
12475         (May_Be_Lvalue): Extensive additional code to deal with subprogram
12476         arguments (IN parameters are not Lvalues, IN OUT parameters are).
12477         (Safe_To_Capture_Value): Extend functionality so it can be used for
12478         the current value condition case.
12479         (Has_Compatible_Alignment): New function
12480         (Is_Dependent_Component_Of_Mutable_Object): Revise the tests for mutable
12481         objects to handle the Ada 2005 case, where aliasedness no longer implies
12482         that the object is constrained. In particular, for dereferenced names,
12483         the designated object must be assumed to be unconstrained.
12484         (Kill_Current_Values): Properly deal with the case where we encounter
12485         a loop in the scope chain.
12486         (Safe_To_Capture_Value): Do not let a loop stop us from capturing
12487         a value.
12488         (Compile_Time_Constraint_Error): Improve error message in error case
12489
12490         * exp_ch13.adb (Expand_N_Freeze_Entity): Remove the freezing node
12491         associated with entities of abstract interface primitives.
12492         Call Apply_Address_Clause_Check instead of Apply_Alignment_Check
12493
12494 2006-10-31  Robert Dewar  <dewar@adacore.com>
12495
12496         * s-osinte-tru64.adb: 
12497         Mark Asm statements Volatile to prevent warnings (seems a
12498         reasonable change anyway)
12499         Fixes new warnings
12500
12501         * s-mastop-irix.adb: Add Volatile to Asm statements
12502         Suppresses warning, and seems appropriate in any case
12503
12504         * s-osinte-vms.adb: Add Volatile to Asm statement
12505
12506         * s-vaflop-vms-alpha.adb: Add Volatile to Asm statements
12507
12508         * exp_code.ads, exp_code.adb (Asm_Input_Value): Note that Error can be
12509         returned.
12510         Add call to Check_Code_Statement
12511
12512 2006-10-31  Robert Dewar  <dewar@adacore.com>
12513             Ed Schonberg  <schonberg@adacore.com>
12514             Bob Duff  <duff@adacore.com>
12515
12516         * sinfo.ads, sinfo.adb (Set_Synchronized_Present,
12517         Synchronized_Present): Add Formal_Derived_Type_Definition and
12518         Private_Extension_Declaration to the list of assertions.
12519         (Is_Entry_Barrier_Function): New flag
12520         (Has_Self_Reference): New flag on aggregates, to indicate that they
12521         contain a reference to the enclosing type, inserted through a default
12522         initialization.
12523         (Next_Rep_Item): Move from Node4 to Node5.
12524         (Entity): Add this field for N_Attribute_Definition_Clause.
12525         (Comes_From_Extended_Return_Statement): New flag on N_Return_Statement
12526         (N_Return_Object_Declaration): Remove this node kind. We now use
12527         N_Object_Declaration instead.
12528         (Actual_Designated_Subtype): Move to a different place to make room in
12529         N_Extended_Return_Statement.
12530         (Procedure_To_Call): Move to a different place to make room in
12531         N_Extended_Return_Statement.
12532         (Return_Type): Removed this field to make room in return statements
12533         (both kinds).
12534         (Return_Statement_Entity): New field in return statements, in part to
12535         replace Return_Type, and in part to support the fact that return
12536         statements are now pushed on the scope stack during semantic analysis.
12537         (Return_Object_Declarations): New field to support extended return
12538         statements.
12539         (N_Extended_Return_Statement): New node for extended_return_statement
12540         nonterminal.
12541         (N_Return_Object_Declaration): New node for part of
12542         extended_return_statement nonterminal. Needed because all the necessary
12543         fields won't fit in N_Extended_Return_Statement.
12544         Generic_associations now carry the Box_Present flag, to indicate a
12545         default for an actual in a partially parametrized formal package.
12546
12547         * snames.h, snames.ads, snames.adb: Add definition for Validity_Check
12548         (Preset_Names): Add entries for Priority_Specific_Dispatching pragma
12549         and for the new predefined dispatching policies: EDF_Across_Priorities,
12550         Non_Preemptive_Within_Priorities, and Round_Robin_Within_Priorities.
12551         Introduce new name Stub_Type for implementation defined attribute.
12552         Add pragma Preelaborable_Initialization
12553         Add entry for Priority attribute.
12554         Add Pragma_Wide_Character_Encoding
12555         (Get_Convention_Name): Given a convention id, this function returns the
12556         corresponding name id from the names table.
12557
12558 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
12559             Robert Dewar  <dewar@adacore.com>
12560             Bob Duff  <duff@adacore.com>
12561
12562         * sprint.adb (Sprint_Node_Actual, case Parameter_Specification): Do not
12563         print null exclusion twice in the case of an access definition,
12564         Implement new -gnatL switch
12565         Remove N_Return_Object_Declaration. We now use
12566         N_Object_Declaration instead. Implement the case for
12567         N_Extended_Return_Statement. Alphabetize the cases.
12568         Add cases for new nodes N_Extended_Return_Statement and
12569         N_Return_Object_Declaration. The code is not yet written.
12570         Update the output for N_Formal_Object_Declaration
12571         and N_Object_Renaming_Declaration.
12572         (Write_Itype): Account for the case of a modular integer subtype whose
12573         base type is private.
12574
12575 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
12576
12577         * s-restri.ads, s-restri.adb: Mark this package as Preelaborate.
12578         Remove elaboration code, now done in the binder.
12579
12580         * s-rident.ads: Make this unit Preelaborate.
12581         (No_Restrictions): New constant used to clean up code and follow
12582         preelaborate constraints.
12583
12584         * s-stalib.adb: 
12585         Add System.Restrictions dependence, referenced directly from the
12586         binder generated file.
12587
12588 2006-10-31  Gary Dismukes  <dismukes@adacore.com>
12589
12590         * s-scaval.adb (Initialize): Add new Boolean flag AFloat that is set
12591         True when AAMP extended floating-point is in use (48-bit). Change type
12592         ByteLF to ByteLLF, add new array type ByteLF and condition the size of
12593         the two byte array types on AFloat. Change type of IV_Ilf overlay
12594         variable from Byte8 to ByteLF. Add appropriate initializations of
12595         floating-point overlays for AAMP cases.
12596
12597 2006-10-31  Javier Miranda  <miranda@adacore.com>
12598
12599         * s-tpoben.ads, s-tpoben.adb, s-taprob.ads, s-taprob.adb
12600         (Get_Ceiling): New subprogram that returns
12601         the ceiling priority of the protected object.
12602         (Set_Ceiling): New subprogram that sets the new ceiling priority of
12603         the protected object.
12604
12605         * s-tarest.adb: (Create_Restricted_Task): Fix potential CE.
12606
12607         * s-taskin.ads, s-taskin.adb: (Storage_Size): New function.
12608
12609 2006-10-31  Jose Ruiz  <ruiz@adacore.com>
12610
12611         * s-tpobop.adb (Requeue_Call): Introduce a dispatching point when
12612         requeuing to the same protected object to give higher priority tasks
12613         the opportunity to execute.
12614
12615 2006-10-31  Robert Dewar  <dewar@adacore.com>
12616
12617         * widechar.adb (Is_Start_Of_Wide_Char): In case of brackets encoding,
12618         add more precise check for the character sequence that follows '[' to
12619         avoid possible confusion in case if '[' is the last character of a
12620         string literals.
12621         (Scan_Wide): Always allow brackets encoding
12622
12623 2006-10-31  Olivier Hainque  <hainque@adacore.com>
12624
12625         * s-stchop.ads: make this unit preelaborate. This is desirable in
12626         general and made mandatory by the use of this unit by s-taprop which
12627         is itself preelaborate.
12628
12629         * s-stchop-vxworks.adb (Set_Stack_Info, Task_Descriptor type): Add
12630         Td_Events component.
12631
12632 2006-10-31  Vincent Celier  <celier@adacore.com>
12633
12634         * a-dirval-vms.adb (Invalid_Character): Specify that digits are allowed
12635         in file names.
12636
12637 2006-10-31  Vincent Celier  <celier@adacore.com>
12638
12639         * a-direct.ads, a-direct.adb (Search): New procedure in Ada 2005
12640
12641 2006-10-31  Vincent Celier  <celier@adacore.com>
12642
12643         * makegpr.adb (Check_Compilation_Needed): Take into account path names
12644         with spaces.
12645         (Check_Compilation_Needed): When checking a C or C++ source, do not
12646         resolve symbolic links.
12647         (Display_Command): New Boolean parameter Ellipse, defaulted to False.
12648         When not in verbose mode and Ellipse is True, display "..." for the
12649         first argument with Display set to False.
12650         (Build_Global_Archive): Always set Display True for the first object
12651         file. Call Display_Command with Ellipse set to True.
12652
12653 2006-10-31  Matt Heaney  <heaney@adacore.com>
12654
12655         * a-crbtgo.ads: Commented each subprogram
12656
12657         * a-crbtgo.adb: Added reference to book from which algorithms were
12658         adapted.
12659
12660         * a-crbtgk.ads, a-crbtgk.adb (Generic_Insert_Post): pass flag to
12661         indicate which child.
12662         (Generic_Conditional_Insert): changed parameter name from "Success" to
12663         "Inserted".
12664         (Generic_Unconditional_Insert_With_Hint): improved algorithm
12665
12666         * a-coorse.adb (Replace_Element): changed parameter name in call to
12667         conditional insert operation.
12668
12669         * a-convec.adb, a-coinve.adb (Insert): removed obsolete comment
12670
12671         * a-cohama.adb (Iterate): manipulate busy-bit here, instead of in
12672         Generic_Iteration
12673
12674         * a-ciorse.adb (Replace_Element): changed parameter name in call to
12675         conditional insert operation.
12676
12677         * a-cihama.adb (Iterate): manipulate busy-bit here, instead of in
12678         Generic_Iteration.
12679
12680         * a-cidlli.ads, a-cidlli.adb (Splice): Position param is now mode in
12681         instead of mode inout.
12682
12683         * a-chtgop.adb (Adjust): modified comments to reflect current AI-302
12684         draft
12685         (Generic_Read): preserve existing buckets array if possible
12686         (Generic_Write): don't send buckets array length anymore
12687
12688         * a-cdlili.ads, a-cdlili.adb (Splice): Position param is now mode in
12689         instead of mode inout.
12690
12691         * a-cihase.adb (Difference): iterate over smaller of Tgt and Src sets
12692         (Iterate): manipulate busy-bit here, instead of in Generic_Iteration
12693
12694         * a-cohase.adb (Difference): iterate over smaller of Tgt and Src sets
12695         (Iterate): manipulate busy-bit here, instead of in Generic_Iteration
12696         (Replace_Element): local operation is now an instantiation
12697
12698         * a-chtgke.ads, a-chtgke.adb (Generic_Conditional_Insert): manually
12699         check current length.
12700         (Generic_Replace_Element): new operation
12701
12702 2006-10-31  Doug Rupp  <rupp@adacore.com>
12703
12704         * g-trasym-vms-alpha.adb: Dummy_User_Act_Proc: New function.
12705         Call TBK$SYMBOLIZE without omitting parameters.
12706
12707 2006-10-31  Vincent Celier  <celier@adacore.com>
12708
12709         * symbols-processing-vms-ia64.adb,
12710         symbols-processing-vms-alpha.adb (Process): Do not include symbols
12711         that come from generic instantiations in bodies.
12712
12713 2006-10-31  Pat Rogers  <rogers@adacore.com>
12714
12715         * a-rttiev.ads, a-rttiev.adb: 
12716         This is a significant redesign primarily for the sake of automatic
12717         timer task termination but also to fix a design flaw.
12718         Therefore we are now using an RTS lock, instead of a protected
12719         object, to provide mutual exclusion to the queue of pending events
12720         and the type Timing_Event is no longer a protected type.
12721
12722 2006-10-31  Robert Dewar  <dewar@adacore.com>
12723             Cyrille Comar  <comar@adacore.com>
12724             Ben Brosgol  <brosgol@adacore.com>
12725
12726         * debug.adb:  Update flags documentation
12727
12728         * gnat_ugn.texi: Add documentation for new -gnatwq switch
12729         Clean up documentation for several other warning switches
12730         Clarify how task stack size can be specified with various
12731         versions of Windows.
12732         Add note that -gnatVo includes ranges including loops
12733         Add documentation for -gnatL switch
12734         Add note on elaboration warning for initializing variables
12735         Add documentation for new -gnatwt warning switch
12736         Document new form of pragma Warnings (On|Off, string)
12737         Add comment on use of pragma Warnings to control warnings
12738         Add documentation for -gnatjnn switch
12739         Modify section on interfacing with C for VMS 64-bit.
12740         Add doc for -gnatVe/E
12741         Add documentation of new warning flags -gnatww/-gnatwW
12742         Add warnings about address clause overlays to list of warnings
12743         (Exception Handling Control): Document that the option --RTS must be
12744         used consistently for gcc and gnatbind.
12745         Clarify that inlining is not always possible
12746         Update documentation on pragma Unchecked_Union.
12747
12748         * gnat_rm.texi: 
12749         Add documentation for new extended version of pragma Obsolescent
12750         Add documentation for implementation defined attribute 'Stub_Type.
12751         Add note on use of Volatile in asm statements
12752         Add documentation on use of pragma Unreferenced in context clause
12753         Document new form of pragma Warnings (On|Off, pattern)
12754         Document pragma Wide_Character_Encoding
12755         Add note that pragma Restrictions (No_Elaboration_Code) is only fully
12756         enforced if code generation is active.
12757         Add section on pragma Suppress to document GNAT specific check
12758         Alignment_Check
12759         Clarify difference between No_Dispatching_Calls & No_Dispatch.
12760         Add documentation for pragma Restrictions (No_Elaboration_Code)
12761
12762         * gnat-style.texi: 
12763         Add comments on layout of subprogram local variables in the
12764         presence of nested subprograms.
12765
12766         * ug_words: Resync.
12767
12768         * elists.ads: Minor reformatting
12769         Node returns Node_Or_Entity_Id (doc change only)
12770
12771         * xgnatugn.adb: Replace ACADEMICEDITION with GPLEDITION
12772
12773         * g-arrspl.ads (Create): Update comments.
12774
12775         * sem.ads: Add details on the handling of the scope stack.
12776
12777         * usage.adb: Update documentation.
12778
12779         * validsw.ads, validsw.adb: 
12780         Add definition of Validity_Check_Components and implement -gnatVe/E
12781
12782         * vms_data.ads: Add missing VMS qualifiers.
12783
12784         * s-addope.ads: Add documentation on overflow and divide by zero
12785
12786 2006-10-31  Robert Dewar  <dewar@adacore.com>
12787             Thomas Quinot  <quinot@adacore.com>
12788             Arnaud Charlet  <charlet@adacore.com>
12789
12790         * fmap.adb: Put routines in alpha order
12791
12792         * g-boumai.ads: Remove redundant 'in' keywords
12793
12794         * g-cgi.adb: Minor reformatting
12795
12796         * g-cgi.ads: Remove redundant 'in' keywords
12797
12798         * get_targ.adb: Put routines in alpha order
12799
12800         * prj-attr.ads: Minor reformatting
12801
12802         * s-atacco.ads: Minor reformatting
12803
12804         * scn.adb: Put routines in alpha order
12805
12806         * sinput-l.adb: Minor comment fix
12807
12808         * sinput-p.adb: Minor comment fix
12809
12810         * s-maccod.ads: Minor reformatting
12811
12812         * s-memory.adb: Minor reformatting
12813
12814         * s-htable.adb: Fix typo in comment.
12815
12816         * s-secsta.adb: Minor comment update.
12817
12818         * s-soflin.adb: Minor reformatting
12819
12820         * s-stoele.ads: 
12821         Add comment about odd qualification in Storage_Offset declaration
12822
12823         * s-strxdr.adb: 
12824         Remove unnecessary 'in' keywords for formal parameters.
12825
12826         * treeprs.adt: Minor reformatting
12827
12828         * urealp.adb: Put routines in alpha order
12829
12830         * s-wchcon.ads, s-wchcon.adb (Get_WC_Encoding_Method): New version
12831         taking string.
12832
12833         * s-asthan-vms-alpha.adb: Remove redundant 'in' keywords
12834
12835         * g-trasym-vms-ia64.adb: Remove redundant 'in' keywords
12836
12837         * env.c (__gnat_unsetenv): Unsetenv is unavailable on LynxOS, so
12838         workaround as on other platforms.
12839
12840         * g-eacodu-vms.adb: Remove redundant 'in' keywords
12841         * g-expect-vms.adb: Remove redundant 'in' keywords
12842
12843         * gnatdll.adb (Add_Files_From_List): Handle Name_Error and report a
12844         clear error message if the list-of-files file cannot be opened.
12845
12846         * g-thread.adb (Unregister_Thread_Id): Add use type Thread_Id so the
12847         equality operator is always visible.
12848
12849         * lang.opt: Woverlength-strings: New option.
12850
12851         * nmake.adt: 
12852         Update copyright, since nmake.ads and nmake.adb have changed.
12853
12854         * osint-b.ads, osint-b.adb (Time_From_Last_Bind): removed function .
12855         (Binder_Output_Time_Stamps_Set): removed.
12856         (Old_Binder_Output_Time_Stamp): idem.
12857         (New_Binder_Output_Time_Stamp): idem.
12858         (Recording_Time_From_Last_Bind): idem.
12859         (Recording_Time_From_Last_Bind): Make constant.
12860
12861         * output.ads, output.adb (Write_Str): Allow LF characters
12862         (Write_Spaces): New procedure
12863
12864         * prepcomp.adb (Preproc_Data_Table): Change Increment from 5% to 100%
12865
12866         * inline.adb: Minor reformatting
12867
12868         * s-asthan-vms-alpha.adb: Remove redundant 'in' keywords
12869
12870         * s-mastop-vms.adb: Remove redundant 'in' keywords
12871
12872         * s-osprim-vms.adb: Remove redundant 'in' keywords
12873
12874         * s-trafor-default.adb: Remove redundant 'in' keywords
12875
12876         * 9drpc.adb: Remove redundant 'in' keywords
12877
12878         * s-osinte-mingw.ads: Minor reformatting
12879
12880         * s-inmaop-posix.adb: Minor reformatting
12881
12882         * a-direio.ads: Remove quotes from Compile_Time_Warning message
12883
12884         * a-exexda.adb: Minor code reorganization
12885
12886         * a-filico.adb: Minor reformatting
12887
12888         * a-finali.adb: Minor reformatting
12889
12890         * a-nudira.ads: Remove quote from Compile_Time_Warning message
12891
12892         * a-numeri.ads: Minor reformatting
12893
12894         * a-sequio.ads: Remove quotes from Compile_Time_Warning message
12895
12896         * exp_pakd.ads: Fix obsolete comment
12897
12898         * a-ztenau.adb, a-ztenio.adb, a-wtenau.adb, a-tienau.adb,
12899         a-wtenio.adb (Put): Avoid assuming low bound of string is 1.
12900         Probably not a bug, but certainly neater and more efficient.
12901
12902         * a-tienio.adb: Minor reformatting
12903
12904         * comperr.adb (Compiler_Abort): Call Cancel_Special_Output at start
12905         Avoid assuming low bound of string is 1.
12906
12907         * gnatbind.adb: Change Bindusg to package and rename procedure as
12908         Display, which now ensures that it only outputs usage information once.
12909         (Scan_Bind_Arg): Avoid assuming low bound of string is 1.
12910
12911         * g-pehage.adb (Build_Identical_Keysets): Replace use of 1 by
12912         Table'First.
12913
12914         * g-regpat.adb (Insert_Operator): Add pragma Warnings (Off) to kill
12915         warning.
12916         (Match): Add pragma Assert to ensure that Matches'First is zero
12917
12918         * g-regpat.ads (Match): Document that Matches lower bound must be zero
12919
12920         * makeutl.adb (Is_External_Assignment): Add pragma Assert's to check
12921         documented preconditions (also kills warnings about bad indexes).
12922
12923         * mdll.adb (Build_Dynamic_Library): Avoid assumption that Afiles'First
12924         is 1.
12925         (Build_Import_Library): Ditto;
12926
12927         * mdll-utl.adb: (Gnatbind): Avoid assumption that Alis'First = 1
12928
12929         * rtsfind.adb (RTE_Error_Msg): Avoid assuming low bound of string is 1.
12930
12931         * sem_case.adb (Analyze_Choices): Add pragma Assert to check that
12932         lower bound of choice table is 1.
12933
12934         * sem_case.ads (Analyze_Choices): Document that lower bound of
12935         Choice_Table is 1.
12936
12937         * s-imgdec.adb (Set_Decimal_Digits): Avoid assuming low bound of
12938         string is 1.
12939
12940         * uintp.adb (Init_Operand): Document that low bound of Vec is always 1,
12941         and add appropriate Assert pragma to suppress warnings.
12942
12943         * atree.h, atree.ads, atree.adb
12944         Change Elist24 to Elist25
12945         Add definitions of Field28 and Node28
12946         (Traverse_Field): Use new syntactic parent table in sinfo.
12947
12948         * cstand.adb: Change name Is_Ada_2005 to Is_Ada_2005_Only
12949
12950         * itypes.adb: Change name Is_Ada_2005 to Is_Ada_2005_Only
12951
12952         * exp_tss.adb: Put routines in alpha order
12953
12954         * fe.h: Remove redundant declarations.
12955
12956 2006-10-23 Rafael Avila de Espindola  <rafael.espindola@gmail.com>
12957
12958         * utils.c (builtin_function): Rename to gnat_builtin_function.
12959         Move common code to add_builtin_function.
12960         * misc.c (LANG_HOOKS_BUILTIN_FUNCTION): Define as
12961         gnat_builtin_function.
12962         * gigi.h (builtin_function): Rename to gnat_builtin_function.
12963         Change the signature.
12964
12965 2006-10-16  Brooks Moses  <bmoses@stanford.edu>
12966
12967         * Makefile.in: Add TEXI2PDF definition.
12968         * Make-lang.in: Add "ada.pdf" target.
12969
12970 2006-10-03  Kazu Hirata  <kazu@codesourcery.com>
12971
12972         * decl.c, utils.c: Fix comment typos.
12973         * utils.c: Fix a typo.
12974
12975 2006-09-28  Eric Botcazou  <ebotcazou@adacore.com>
12976
12977         * decl.c (gnat_to_gnu_entity) <E_Procedure>: Do not set "const" flag
12978         on "pure" Ada subprograms if SJLJ exceptions are used.
12979         * trans.c (Handled_Sequence_Of_Statements_to_gnu): Set TREE_NO_WARNING
12980         on the declaration node of JMPBUF_SAVE.
12981         * utils.c (init_gigi_decls): Set DECL_IS_PURE on the declaration nodes
12982         of Get_Jmpbuf_Address_Soft and Get_GNAT_Exception.
12983         * utils2.c (build_call_0_expr): Do not set TREE_SIDE_EFFECTS.
12984
12985 2006-08-20  Laurent Guerby  <laurent@guerby.net>
12986
12987         PR ada/28716
12988         g-socket.adb (Bind_Socket): Call Set_Address.
12989
12990 2006-09-15  Eric Botcazou  <ebotcazou@adacore.com>
12991
12992         PR ada/15802
12993         * decl.c (same_discriminant_p): New static function.
12994         (gnat_to_gnu_entity) <E_Record_Type>: When there is a parent
12995         subtype and we have discriminants, fix up the COMPONENT_REFs
12996         for the discriminants to make them reference the corresponding
12997         fields of the parent subtype after it has been built.
12998
12999 2006-09-15  Roger Sayle  <roger@eyesopen.com>
13000
13001         PR ada/18817
13002         * utils.c (max_size): Perform constant folding of (A ? B : C) - D
13003         into A ? B - D : C - D when calculating the size of a MINUS_EXPR.
13004
13005 2006-09-13  Olivier Hainque  <hainque@adacore.com>
13006
13007         PR ada/29025
13008         * trans.c (gnat_gimplify_expr) <ADDR_EXPR>: When taking the address
13009         of a SAVE_EXPR, just make the operand addressable/not-readonly and
13010         let the common gimplifier code make and propagate a temporary copy.
13011         (call_to_gnu): Clarify the use of SAVE_EXPR for not addressable
13012         out/in-out actuals and defer setting the addressable/readonly bits
13013         to the gimplifier.
13014
13015 2006-09-13  Eric Botcazou  <ebotcazou@adacore.com>
13016
13017         PR ada/28591
13018         * decl.c (components_to_record): Defer emitting debug info for the
13019         record type associated with the variant until after we are sure to
13020         actually use it.
13021
13022 2006-09-13  Eric Botcazou  <ebotcazou@adacore.com>
13023
13024         PR ada/21952
13025         * gigi.h (gnat_internal_attribute_table): Declare.
13026         * misc.c (LANG_HOOKS_ATTRIBUTE_TABLE): Define to above.
13027         * utils.c (gnat_internal_attribute_table): New global variable.
13028         (builtin_function): Always call decl_attributes on the builtin.
13029         (handle_const_attribute): New static function.
13030         (handle_nothrow_attribute): Likewise.
13031
13032 2006-07-28  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
13033
13034         * Make-lang.in: Use $(HEADER_H) instead of header.h in dependencies.
13035
13036 2006-06-23  Olivier Hainque  <hainque@adacore.com>
13037
13038         * misc.c (gnat_type_max_size): Look at TYPE_ADA_SIZE if we have
13039         not been able to get a constant upper bound from TYPE_SIZE_UNIT.
13040
13041 2006-06-20  James A. Morrison  <phython@gcc.gnu.org>
13042             Eric Botcazou  <ebotcazou@adacore.com>
13043
13044         PR ada/18692
13045         * Make-lang.in: Add check-gnat to lang_checks.  Rename existing
13046         check-gnat into check-acats.
13047
13048 2006-06-17  Karl Berry  <karl@gnu.org>
13049
13050         * gnat-style.texi (@dircategory): Use "Software development"
13051         instead of "Programming", following the Free Software Directory.
13052
13053 2006-06-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13054
13055         PR ada/27944
13056         * s-taprop-hpux-dce.adb: Delete redundant 'with System.Parameters'.
13057
13058 2006-06-06  Laurent Guerby  <laurent@guerby.net>
13059
13060         PR ada/27769
13061         mlib-utl.adb: Use Program_Name.
13062
13063 2006-05-28  Kazu Hirata  <kazu@codesourcery.com>
13064
13065         * decl.c, env.c, gigi.h, init.c, initialize.c, raise-gcc.c,
13066         sem_ch13.adb, sysdep.c, targtyps.c, tb-alvxw.c, tracebak.c,
13067         trans.c, utils.c: Fix comment typos.  Follow spelling
13068         conventions.
13069         * gnat_rm.texi, gnat_ugn.texi, : Fix typos.  Follow spelling
13070         conventions.
13071
13072 2006-05-19  Nicolas Setton  <setton@adacore.com>
13073
13074         * misc.c (gnat_dwarf_name): New function.
13075         (LANG_HOOKS_DWARF_NAME): Define to it.
13076
13077 2006-05-14  H.J. Lu  <hongjiu.lu@intel.com>
13078
13079         * Make-lang.in (ada/decl.o): Replace target.h with $(TARGET_H).
13080         (ada/misc.o): Likewise.
13081         (ada/utils.o): Likewise.
13082
13083 2006-04-08  Aurelien Jarno  <aurel32@debian.org>
13084
13085         * Makefile.in: Add Ada support for GNU/kFreeBSD.
13086         * s-osinte-kfreebsd-gnu.ads: New file.
13087
13088 2006-03-29  Carlos O'Donell  <carlos@codesourcery.com>
13089
13090         * Make-lang.in: Rename docdir to gcc_docdir.
13091
13092 2006-03-04  Eric Botcazou  <ebotcazou@adacore.com>
13093
13094         * gigi.h (get_ada_base_type): Delete.
13095         * utils2.c (get_ada_base_type): Likewise.
13096         * trans.c (convert_with_check): Operate in the real base type.
13097
13098 2006-03-03  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13099
13100         * uintp.adb (Num_Bits): Handle Uint_Int_First specially.
13101
13102 2006-03-02  Richard Sandiford  <richard@codesourcery.com>
13103
13104         * utils.c (create_var_decl): Use have_global_bss_p when deciding
13105         whether to make the decl common.
13106
13107 2006-02-20  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
13108
13109         * Make-lang.in (Ada): Remove.
13110         (.PHONY): Remove Ada
13111
13112 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
13113
13114         * sem_ch4.adb (Find_Boolean_Types): If one of the operands is an
13115         aggregate, check the interpretations of the other operand to find one
13116         that may be a boolean array.
13117
13118         (Analyze_Selected_Component): Fix flow-of-control typo in case where
13119         the prefix is a private extension.
13120
13121 2006-02-17  Eric Botcazou  <botcazou@adacore.com>
13122
13123         PR ada/26315
13124         * utils2.c (find_common_type): If both input types are BLKmode and
13125         have the same constant size, keep using the first one.
13126
13127         * bindgen.adb: (Gen_Versions_Ada): Revert previous workaround.
13128
13129         * decl.c (gnat_to_gnu_entity): Only check TREE_OVERFLOW for a constant.
13130
13131         * misc.c (gnat_handle_option): New case for -Woverlength-strings.
13132
13133 2006-02-17  Jose Ruiz  <ruiz@adacore.com>
13134
13135         * s-taprop-irix.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb, 
13136         s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb, 
13137         s-taprop-posix.adb, s-taprop-vxworks.adb, s-taprop-lynxos.adb, 
13138         s-taprop-tru64.adb (Set_False, Set_True, Suspend_Until_True): Add
13139         Abort_Defer/Undefer pairs to avoid the possibility of a task being
13140         aborted while owning a lock.
13141
13142 2006-02-17  Javier Miranda  <miranda@adacore.com>
13143             Robert Dewar  <dewar@adacore.com>
13144
13145         * exp_ch4.adb (Expand_N_Allocator): If the allocated object is accessed
13146         through an access to class-wide interface we force the displacement of
13147         the pointer to the allocated object to reference the corresponding
13148         secondary dispatch table.
13149         (Expand_N_Op_Divide): Allow 64 bit divisions by small power of 2,
13150         if Long_Shifts are supported on the target, even if 64 bit divides
13151         are not supported (configurable run time mode).
13152         (Expand_N_Type_Conversion): Do validity check if validity checks on
13153         operands are enabled.
13154         (Expand_N_Qualified_Expression): Do validity check if validity checks
13155         on operands are enabled.
13156
13157 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
13158
13159         * exp_dbug.adb (Debug_Renaming_Declaration): Indicate that the entity
13160         must be materialized when the renamed expression is an explicit
13161         dereference.
13162
13163 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
13164
13165         * freeze.adb (Statically_Discriminated_Components): Return false if
13166         the bounds of the type of the discriminant are not static expressions.
13167
13168         * sem_aggr.adb (Check_Static_Discriminated_Subtype): Return false if
13169         the bounds of the discriminant type are not static.
13170
13171 2006-02-17  Robert Dewar  <dewar@adacore.com>
13172
13173         * g-os_lib.adb (Copy_File): Make sure that if From has an Invalid_FD,
13174         then we close To if it is valid.
13175
13176 2006-02-17  Vasiliy Fofanov  <fofanov@adacore.com>
13177
13178         * init.c (facility_resignal_table): new array
13179         (__gnat_default_resignal_p): enhance default predicate to resignal if
13180         VMS condition has one of the predefined facility codes.
13181
13182 2006-02-17  Vasiliy Fofanov  <fofanov@adacore.com>
13183
13184         * Makefile.in: Use VMS64 specialized versions of several units in
13185         Interfaces.C hierarchy to be compatible with HP C default size choices.
13186         Use the default version of Ada.Synchronous_Task_Control for VxWorks 653.
13187
13188 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
13189
13190         * sem_ch10.adb (Analyze_With_Clause): If the unit is a subprogram
13191         instantiation, the corresponding entity is the related_instance of the
13192         wrapper package created for the instance.
13193
13194 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
13195
13196         * sem_ch12.adb (Analyze_Package_Instantiation): Inline_Now is false if
13197         the current instance is nested within another instance in a child unit.
13198
13199 2006-02-17  Javier Miranda  <miranda@adacore.com>
13200             Ed Schonberg  <schonberg@adacore.com>
13201
13202         * sem_ch3.adb (Build_Discriminated_Subtype): In case of concurrent
13203         type we cannot inherit the primitive operations; we inherit the
13204         Corresponding_Record_Type (which has the list of primitive operations).
13205         (Check_Anonymous_Access_Types): When creating anonymous access types for
13206         access components, use Rewrite in order to preserve the tree structure,
13207         for ASIS use.
13208         (Analyze_Object_Declaration): For limited types with access
13209         discriminants with defaults initialized by an aggregate, obtain
13210         subtype from aggregate as for other mutable types.
13211         (Derived_Type_Declaration): If the derived type is a limited interface,
13212         set the corresponding flag (Is_Limited_Record is not sufficient).
13213
13214 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
13215
13216         * sem_ch6.adb (Build_Body_To_Inline): Enforce the rule that in order
13217         to inline a function that returns an unconstrained type, the return
13218         expression must be the first variable declared in the body of the
13219         function.
13220
13221 2006-02-17  Javier Miranda  <miranda@adacore.com>
13222
13223         * sem_res.adb (Resolve_Type_Conversion): In case of conversion to an
13224         abstract interface type, the static analysis is not enough to know if
13225         the interface is implemented or not by the source tagged type. Hence
13226         we must pass the work to the expander to generate the required code to
13227         evaluate the conversion at run-time.
13228         (Resolve_Equality_Op): Do not apply previous
13229         transformation if expansion is disasbled, to prevent anomalies when
13230         locating global references in a generic unit.
13231
13232 2006-02-17  Vincent Celier  <celier@adacore.com>
13233
13234         * snames.ads, snames.adb: New standard names for new project attributes:
13235         archive_builder, archive_indexer, compiler_pic_option,
13236         config_body_file_name, config_body_file_name_pattern,
13237         config_file_switches, config_file_unique, config_spec_file_name,
13238         config_spec_file_name_pattern, default_builder_switches,
13239         default_global_compiler_switches, default_language,
13240         dependency_file_kind, global_compiler_switches, include_path,
13241         include_path_file, language_kind, linker_executable_option,
13242         linker_lib_dir_option, linker_lib_name_option, mapping_file_switches,
13243         roots, runtime_project.
13244
13245 2006-02-17  Matthew Heaney  <heaney@adacore.com>
13246
13247         * a-convec.ads, a-convec.adb: 
13248         (operator "&"): handle potential overflow for large index types
13249         (Insert): removed Contraint_Error when using large index types
13250         (Insert_Space): removed Constraint_Error for large index types
13251         (Length): moved constraint check from Length to Insert
13252
13253         * a-coinve.ads, a-coinve.adb: Stream attribute procedures are declared
13254         as not null access.
13255         Explicit raise statements now include an exception message.
13256         (operator "&"): handle potential overflow for large index types
13257         (Insert): removed Contraint_Error when using large index types
13258         (Insert_Space): removed Constraint_Error for large index types
13259         (Length): moved constraint check from Length to Insert
13260
13261 2006-02-17  Robert Dewar  <dewar@adacore.com>
13262
13263         * s-wchcnv.adb: Document handling of [ on output (we do not change
13264         this to ["5B"] and the new comments say why not.
13265
13266         * gnat_ugn.texi: 
13267         Add note for -gnatVo that this now includes the cases of type
13268         conversions and qualified expressions.
13269         Add comments on handling of brackets encoding for Text_IO
13270
13271 2006-02-17  Ramon Fernandez  <fernandez@adacore.com>
13272             Thomas Quinot  <quinot@adacore.com>
13273             Robert Dewar  <dewar@adacore.com>
13274             Javier Miranda  <miranda@adacore.com>
13275
13276         * expander.adb: Fix typo in comment
13277
13278         * exp_pakd.adb: Fix typo
13279         Minor comment reformatting.
13280
13281         * g-dyntab.adb: Minor reformatting
13282
13283         * exp_ch6.adb (Register_Interface_DT_Entry): Traverse the list of
13284         aliased subprograms to look for the abstract interface subprogram.
13285
13286 2006-02-16  Eric Botcazou  <ebotcazou@adacore.com>
13287
13288         * env.c (__gnat_setenv): Use size_t.
13289         (__gnat_unsetenv): Likewise.
13290         (__gnat_clearenv): Likewise.
13291
13292 2006-02-16  Arnaud Charlet  <charlet@adacore.com>
13293
13294         * opt.ads (Ada_Version_Default): Set to Ada 2005 by default.
13295
13296 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
13297
13298         * a-intnam-os2.ads, a-intnam-unixware.ads, g-soccon-unixware.ads,
13299         g-soliop-unixware.ads, i-os2err.ads, i-os2lib.adb, i-os2lib.ads,
13300         i-os2syn.ads, i-os2thr.ads, s-intman-irix-athread.adb,
13301         s-osinte-aix-fsu.ads, s-osinte-fsu.adb, s-parame-os2.adb,
13302         s-osinte-irix-athread.ads, s-osinte-linux-fsu.ads, s-osinte-os2.adb,
13303         s-osinte-os2.ads, s-osinte-solaris-fsu.ads, s-osinte-unixware.adb,
13304         s-osinte-unixware.ads, s-osprim-os2.adb, s-taprop-irix-athread.adb,
13305         s-taprop-os2.adb, s-tasinf-irix-athread.adb, s-tasinf-irix-athread.ads,
13306         s-taspri-os2.ads, system-os2.ads, system-unixware.ads: Removed,
13307         no longer used.
13308
13309 2006-02-13  Jose Ruiz  <ruiz@adacore.com>
13310
13311         * a-taster.adb (Current_Task_Fallback_Handler): Document why explicit
13312         protection against race conditions is not needed.
13313         (Set_Dependents_Fallback_Handler): Add mutual exclusive access to the
13314         fallback handler.
13315         (Set_Specific_Handler): Add mutual exclusive access to the specific
13316         handler.
13317         (Specific_Handler): Add mutual exclusive access for retrieving the
13318         specific handler.
13319
13320         * s-tarest.adb (Task_Wrapper): Add mutual exclusive access to the fall
13321         back handler.
13322
13323         * s-taskin.ads (Common_ATCB): Remove pragma Atomic for
13324         Fall_Back_Handler and Specific_Handler.
13325
13326         * s-tassta.adb (Task_Wrapper): Add mutual exclusive access to the task
13327         termination handlers.
13328         Set two different owerflow depending on the maximal stack size.
13329
13330         * s-solita.adb (Task_Termination_Handler_T): Document why explicit
13331         protection against race conditions is not needed when executing the
13332         task termination handler.
13333
13334 2006-02-13  Robert Dewar  <dewar@adacore.com>
13335
13336         * s-gloloc-mingw.adb, a-cgaaso.ads, a-stzmap.adb, a-stzmap.adb,
13337         a-stzmap.ads, a-ztcoio.adb, a-ztedit.adb, a-ztedit.ads, a-ztenau.adb,
13338         a-ztenau.ads, a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
13339         a-comlin.adb, a-decima.adb, a-decima.ads, a-direio.adb, a-direio.adb,
13340         a-direio.adb, a-direio.ads, a-ngcoty.adb, a-ngcoty.ads, a-nuflra.adb,
13341         a-nuflra.ads, a-sequio.adb, a-sequio.ads, a-sequio.ads, a-storio.ads,
13342         a-stream.ads, a-ststio.adb, a-ststio.adb, a-ststio.ads, a-ststio.ads,
13343         a-stwima.adb, a-stwima.adb, a-stwima.ads, a-stwise.adb, a-teioed.adb,
13344         a-teioed.ads, a-ticoau.adb, a-ticoau.ads, a-ticoio.adb, a-tasatt.ads,
13345         a-tideau.adb, a-tideau.ads, a-tideio.adb, a-tideio.ads, a-tienau.adb,
13346         a-tienau.ads, a-tienio.adb, a-tienio.ads, a-tifiio.ads, a-tiflau.adb,
13347         a-tiflau.ads, a-tiflio.adb, a-tiflio.adb, a-tiflio.ads, a-tigeau.ads,
13348         a-tiinau.adb, a-tiinau.ads, a-tiinio.adb, a-tiinio.ads, a-timoio.adb,
13349         a-timoio.ads, a-titest.adb, a-titest.ads, a-wtcoio.adb, a-wtdeau.adb,
13350         a-wtdeau.ads, a-wtdeio.adb, a-wtdeio.ads, a-wtedit.adb, a-wtedit.adb,
13351         a-wtedit.ads, a-wtenau.adb, a-wtenau.ads, a-wtenau.ads, a-wtenio.adb,
13352         a-wtenio.ads, a-wtfiio.adb, a-wtfiio.ads, a-wtflau.adb, a-wtflau.ads,
13353         a-wtflio.adb, a-wtflio.adb, a-wtflio.ads, a-wtgeau.ads, a-wtinau.adb,
13354         a-wtinau.ads, a-wtinio.adb, a-wtinio.ads, a-wtmoau.adb, a-wtmoau.ads,
13355         a-wtmoio.adb, a-wtmoio.ads, xref_lib.adb, xref_lib.ads, xr_tabls.adb,
13356         g-boubuf.adb, g-boubuf.ads, g-cgideb.adb, g-io.adb, gnatdll.adb,
13357         g-pehage.adb, i-c.ads, g-spitbo.adb, g-spitbo.ads, mdll.adb,
13358         mlib-fil.adb, mlib-utl.adb, mlib-utl.ads, prj-env.adb, prj-tree.adb,
13359         prj-tree.ads, prj-util.adb, s-arit64.adb, s-asthan.ads, s-auxdec.adb,
13360         s-auxdec.ads, s-chepoo.ads, s-direio.adb, s-direio.ads, s-errrep.adb,
13361         s-errrep.ads, s-fileio.adb, s-fileio.ads, s-finroo.adb, s-finroo.ads,
13362         s-gloloc.adb, s-gloloc.ads, s-io.adb, s-io.ads, s-rpc.adb,
13363         s-rpc.ads, s-shasto.ads, s-sequio.adb, s-stopoo.ads, s-stratt.adb,
13364         s-stratt.ads, s-taasde.adb, s-taasde.ads, s-tadert.adb, s-sequio.ads,
13365         s-taskin.adb, s-tasque.adb, s-tasque.ads, s-wchjis.ads, makegpr.adb,
13366         a-coinve.adb, a-cidlli.adb, eval_fat.adb, exp_dist.ads, exp_smem.adb,
13367         fmap.adb, g-dyntab.ads, g-expect.adb, lib-xref.ads, osint.adb,
13368         par-load.adb, restrict.adb, sinput-c.ads, a-cdlili.adb,
13369         system-vms.ads, system-vms-zcx.ads, system-vms_64.ads: Minor
13370         reformatting.
13371
13372 2006-02-13  Hristian Kirtchev  <kirtchev@adacore.com>
13373
13374         * a-tasatt.adb, s-osinte-lynxos-3.adb, s-osinte-lynxos.adb,
13375         s-osinte-aix.adb, s-interr-sigaction.adb, s-asthan-vms-alpha.adb,
13376         s-interr-vms.adb, s-intman-vms.adb, s-interr-vxworks.adb,
13377         s-intman-vxworks.adb, s-asthan-vms-alpha.adb, a-ztexio.adb,
13378         a-reatim.adb, a-taside.adb, a-textio.adb, a-witeio.adb, prj-attr.adb,
13379         s-intman-irix.adb, s-intman-solaris.adb, s-intman-posix.adb,
13380         a-dynpri.adb, a-interr.adb, g-dynhta.adb, s-asthan.adb, s-interr.adb,
13381         s-pooglo.adb, s-pooloc.adb, s-poosiz.adb, s-tasren.adb, s-tasuti.adb,
13382         s-tataat.adb, s-tpobop.adb: Remove redundant with clauses.
13383
13384 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
13385
13386         * s-osinte-darwin.adb, s-osinte-darwin.ads, s-osinte-vxworks.ads, 
13387         s-osinte-solaris.ads, s-osinte-linux.ads, s-osinte-freebsd.ads, 
13388         s-osinte-solaris-posix.ads, s-osinte-lynxos-3.ads, s-osinte-lynxos.ads, 
13389         s-osinte-tru64.ads, s-osinte-aix.ads, s-osinte-irix.ads, 
13390         s-osinte-hpux-dce.ads, s-osinte-linux-hppa.ads, 
13391         s-osinte-linux-alpha.ads, s-inmaop-posix.adb (sigset_t_ptr): Removed,
13392         replaced by anonymous access type.
13393         (pthread_sigmask): Now take an access sigset_t
13394
13395         * s-osinte-hpux.ads:  Ditto.
13396         (pthread_mutex_t, pthread_cond_t): Update definitions to support
13397         properly 32 and 64 bit ABIs.
13398
13399 2006-02-13  Pascal Obry  <obry@adacore.com>
13400
13401         * s-taprop-posix.adb, s-taprop-vxworks.adb, s-taprop-tru64.adb, 
13402         s-taprop-lynxos.adb, s-taprop-irix.adb, s-taprop-hpux-dce.adb, 
13403         s-taprop-linux.adb, s-taprop-solaris.adb,
13404         s-taprop-vms.adb (Create_Task): Remove task adjustment code. This
13405         adjustement is already done when calling this routine.
13406
13407 2006-02-13  Pascal Obry  <obry@adacore.com>
13408
13409         * system-mingw.ads (Underlying_Priorities): Update the priority mapping
13410         table to take advantage of the 16 priority levels available on Windows
13411         2000 and XP. On NT4 there are only 7 priority levels, this is properly
13412         supported by this new mapping.
13413
13414 2006-02-13  Nicolas Setton  <setton@adacore.com>
13415
13416         * adadecode.h, adadecode.c: (__gnat_decode): Improve support of types.
13417         (get_encoding): New subprogram. Extracts the encodings from an encoded
13418         Ada name.
13419
13420 2006-02-13  Pascal Obry  <obry@adacore.com>
13421             Nicolas Roche  <roche@adacore.com>
13422             Arnaud Charlet  <charlet@adacore.com>
13423
13424         * adaint.h, adaint.c (DIR_SEPARATOR): Use _T() macro for Unicode
13425         support.
13426         (__gnat_try_lock): Add unicode support by using a specific section on
13427         Windows.
13428         (__gnat_get_current_dir): Idem.
13429         (__gnat_open_read): Idem.
13430         (__gnat_open_rw): Idem.
13431         (__gnat_open_create): Idem.
13432         (__gnat_create_output_file): Idem.
13433         (__gnat_open_append): Idem.
13434         (__gnat_open_new): Idem.
13435         (__gnat_file_time_name): Idem.
13436         (__gnat_set_file_time_name): Idem.
13437         (__gnat_stat): Idem.
13438         (win32_no_block_spawn): Idem.
13439         (__gnat_locate_exec_on_path): Idem.
13440         (__gnat_opendir): New routine.
13441         (__gnat_closedir): Idem.
13442         (__gnat_readdir): Add new parameter length (pointer to int). Update
13443         implementation to use it and add specific Win32 code for Unicode
13444         support.
13445         (__gnat_get_env_value_ptr): Remove. Replaced by __gnat_getenv in env.c
13446         (__gnat_set_env_value): Remove. Replaced by __gnat_setenv in env.c
13447         (convert_addresses): Do not define this dummy routine on VMS.
13448
13449         * mingw32.h (GNAT_UNICODE_SUPPORT): New definition, if set the GNAT
13450         runtime Unicode support will be activated.
13451         (S2WS): String to Wide-String conversion. This version just copy a
13452         string in non Unicode version.
13453         (WS2S): Wide-String to String conversion. This version just copy a
13454         string in non Unicode version.
13455
13456         * g-dirope.adb: (Close): Now import __gnat_closedir from adaint.c.
13457         (Open): Now import __gnat_opendir from adaint.c.
13458         (Read): Change the implementation to support unicode characters. It is
13459         not possible to use strlen() on Windows as this version supports only
13460         standard ASCII characters. So the length of the directory entry is now
13461         returned from the imported __gnat_readdir routine.
13462         Update copyright notice.
13463
13464         * s-crtl-vms64.ads, s-crtl.ads: (closedir): Moved to adaint.c.
13465         (opendir): Moved to adaint.c.
13466
13467         * g-os_lib.adb (Copy_Time_Stamp): Fix off-by-one range computation.
13468         (Get_Directory): Fix wrong indexing.
13469         (Getenv): replace __gnat_get_env_value_ptr from adaint.c by
13470         __gnat_getenv from env.c
13471         (Setenv): replace __gnat_set_env_value from adaint.c by __gnat_setenv
13472         from env.c
13473
13474         * env.h, env.c: New file.
13475
13476         * s-scaval.adb (Initialize): Replace __gnat_get_env_value_ptr from
13477         adaint.c by __gnat_getenv from env.c
13478
13479         * s-shasto.adb (Initialize): replace __gnat_get_env_value_ptr from
13480         adaint.c by __gnat_getenv from env.c
13481
13482         * Make-lang.in: Add env.o in the list of C object needed by gnat1
13483         and gnatbind.
13484         Update dependencies.
13485
13486 2006-02-13  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13487             Olivier Hainque  <hainque@adacore.com>
13488             Eric Botcazou  <ebotcazou@adacore.com>
13489
13490         * ada-tree.h: (TYPE_UNCHECKED_UNION_P): Deleted.
13491         
13492         * gigi.h (value_factor_p): Add prototype and description, now public.
13493
13494         * decl.c (gnat_to_gnu_field): Don't attempt BLKmode to integral type
13495         promotion for field with rep clause if the associated size was proven
13496         to be in error.
13497         Expand comments describing attempts to use a packable type.
13498         (gnat_to_gnu_entity) <E_Signed_Integer_Subtype,
13499         E_Floating_Point_Subtype>: Inherit alias set of what we are making a
13500         subtype of to ensure conflicts amongst all subtypes in a hierarchy,
13501         necessary since these are not different types and pointers may
13502         actually designate any subtype in this hierarchy.
13503         (gnat_to_gnu_entity, case E_Record_Type): Always make fields for
13504         discriminants but put them into record only if not Unchecked_Union;
13505         pass flag to components_to_record showing Unchecked_Union.
13506         (make_dummy_type): Use UNION_TYPE only if Unchecked_Union and no
13507         components before variants; don't set TYPE_UNCHECKED_UNION_P.
13508         (components_to_record): New argument UNCHECKED_UNION.
13509         Remove special case code for Unchecked_Union and instead use main code
13510         with small changes.
13511
13512         PR ada/26096
13513         (gnat_to_gnu_entity) <E_Variable>: Do not initialize the aligning
13514         variable with the expression being built, only its inner field.
13515
13516         * trans.c (Handled_Sequence_Of_Statements_to_gnu): Remove call to
13517         emit_sequence_entry_statements.
13518         (emit_sequence_entry_statements, body_with_handlers_p): Delete.
13519         (establish_gnat_vms_condition_handler): Move before
13520         Subprogram_Body_to_gnu.
13521         (Subprogram_Body_to_gnu): On VMS, establish_gnat_vms_condition_handler
13522         for a subprogram if it has a foreign convention or is exported.
13523         (Identifier_to_gnu): Manually unshare the DECL_INITIAL tree when it is
13524         substituted for a CONST_DECL.
13525         (tree_transform, case N_Aggregate): Remove code for UNION_TYPE and pass
13526         Etype to assoc_to_constructor.
13527         (assoc_to_constructor): New argument, GNAT_ENTITY; use it to ignore
13528         discriminants of Unchecked_Union.
13529         (TARGET_ABI_OPEN_VMS): Define to 0 if not defined, so that later uses
13530         don't need cluttering preprocessor directives.
13531         (establish_gnat_vms_condition_handler): New function. Establish the GNAT
13532         condition handler as current in the compiled function.
13533         (body_with_handlers_p): New function. Tell whether a given sequence of
13534         statements node is attached to a package or subprogram body and involves
13535         exception handlers possibly nested within inner block statements.
13536         (emit_sequence_entry_statements): New function, to emit special
13537         statements on entry of sequences when necessary. Establish GNAT
13538         condition handler in the proper cases for VMS.
13539         (Handled_Sequence_Of_Statements_to_gnu): Start block code with
13540         emit_sequence_entry_statements.
13541
13542         * utils2.c (find_common_type): If both input types are BLKmode and
13543         have a constant size, use the smaller one.
13544         (build_simple_component_ref): Also match if FIELD and NEW_FIELD are
13545         the same.
13546
13547         * utils.c (value_factor_p): Make public, to allow uses from other gigi
13548         units.
13549         (create_type_decl): Do not set the flag DECL_IGNORED_P for dummy types.
13550         (convert, case UNION_TYPE): Remove special treatment for unchecked
13551         unions.
13552
13553         PR ada/18659
13554         (update_pointer_to): Update variants of pointer types to unconstrained
13555         arrays by attaching the list of fields of the main variant.
13556
13557 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
13558             Robert Dewar  <dewar@adacore.com>
13559
13560         * a-exexpr.adb, a-exexpr-gcc.adb
13561         (Process_Raise_Exception): Removed, merged with Propagate_Exception.
13562         (Propagate_Exception): Now take extra From_Signal_Handler parameter.
13563         Remove code unused for exception propagation for the compiler itself
13564         from a-except.adb and update to still share separate packages.
13565
13566         * a-except.ads, a-except.adb: Ditto.
13567         Add comments that this version is now used only by the compiler and
13568         other basic tools. The full version that includes the Ada 2005 stuff
13569         is in separate files a-except-2005.ads/adb. The reason is that we do
13570         not want to cause bootstrap problems with compilers not recognizing
13571         Wide_Wide_String.
13572         Add exception reason code PE_Implicit_Return
13573         Add new exception reason code (Null Exception_Id)
13574
13575         * a-except-2005.adb, a-except-2005.ads: New files.
13576
13577         * s-wchcon.ads: (Get_WC_Encoding_Method): New function.
13578
13579         * s-wchcon.adb: New file.
13580
13581         * Makefile.in (LIBGNAT_SRCS): Add tb-gcc.c.
13582         (traceback.o deps): Likewise.
13583         (SPARC/Solaris): Accept sparc[64|v9]-sun-solaris.
13584         Activate build of GMEM instrumentation library on VMS targets.
13585         (gnatlib-sjlj, gnatlib-zcx): Pass EH_MECHANISM to make gnatlib.
13586         Use a-except-2005.ads/adb for all run-time library builds unless
13587         specified otherwise.
13588         [VMS] (LIBGNAT_TARGET_PAIRS_AUX1,2): Rename s-parame-vms.ads to
13589         s-parame-vms-alpha.ads and add s-parame-vms-ia64.ads.
13590         Use s-parame.adb on all native platforms.
13591         Use s-parame-vxworks.adb on all vxworks platforms.
13592         Add env.c env.h in LIBGNAT_SRCS
13593         Add env.o in LIBGNAT_OBJS
13594         (GNATMAKE_OBJS): Remove ctrl_c.o object.
13595         (LIBGNAT_TARGET_PAIRS for x86-vxworks): Use an specialized version of
13596         s-osinte.adb, s-tpopsp.adb, and system.ads for the run time that
13597         supports VxWorks 6 RTPs.
13598         (EXTRA_GNATRTL_NONTASKING_OBJS for x86-vxworks): Remove the use of
13599         i-vxworks and i-vxwoio from the run time that supports VxWorks 6 RTPs.
13600
13601         * types.h, types.ads (Terminate_Program): New exception
13602         Add comment on modifying multiple versions of a-except.adb when the
13603         table of exception reasons is modified.
13604         Add exception reason code PE_Implicit_Return
13605         Add new exception reason code (Null Exception_Id)
13606
13607         * clean.adb (Initialize): Get the target parameters before checking
13608         if target is OpenVMS. Move the OpenVMS specific code here from package
13609         body elaboration code.
13610
13611 2006-02-13  Thomas Quinot  <quinot@adacore.com>
13612             Vincent Celier  <celier@adacore.com>
13613             Robert Dewar  <dewar@adacore.com>
13614
13615         * ali-util.adb (Get_File_Checksum): Update to account for change in
13616         profile of Initialize_Scanner.
13617
13618         * gprep.adb (Gnatprep): Update to account for change in profile of
13619         Initialize_Scanner.
13620         (Process_One_File): Same.
13621
13622         * lib.adb (Get_Code_Or_Source_Unit): New subprogram factoring the
13623         common code between Get_Code_Unit and Get_Source_Unit. Reimplement
13624         that behaviour using the new Unit information recorded in the source
13625         files table, rather than going through all units every time.
13626         (Get_Code_Unit): Reimplement in terms of Get_Code_Or_Source_Unit.
13627         (Get_Source_Unit): Same.
13628
13629         * prepcomp.adb (Parse_Preprocessing_Data_File): Update to account for
13630         change in profile of Initialize_Scanner.
13631         (Prepare_To_Preprocess): Same.
13632
13633         * lib.ads: Fix typo in comment (templace -> template).
13634
13635         * prj-part.adb (Parse_Single_Project): Update to account for change in
13636         profile of Initialize_Scanner.
13637
13638         * scn.adb (Initialize_Scanner): Account for change in profile of
13639         Scng.Initialize_Scanner: set Current_Source_Unit in Scn instead of Scng.
13640         Also record the association of the given Source_File_Index to the
13641         corresponding Unit_Number_Type.
13642
13643         * scng.ads, scng.adb (Initialize_Scanner.Set_Reserved): Remove
13644         procedure.
13645         (Initialize_Scanner): Call Scans.Initialize_Ada_Keywords.
13646         Remove Unit formal for generic scanner: this formal
13647         is only relevant to Scn (the scanner instance used to parse Ada source
13648         files), not to other instances. Update comment accordingly.
13649         (Scan): Use new function Snames.Is_Keyword_Name.
13650
13651         * sinfo-cn.adb: Fix typo in comment.
13652
13653         * sinput.adb (Unit, Set_Unit): Accessors for new source file attribute
13654         Unit.
13655
13656         * sinput.ads (Source_File_Record): New component Unit, used to capture
13657         the unit identifier (if any) associated to a source file.
13658
13659         * sinput-c.adb, sinput-l.adb (Load_File): Initialize new component
13660         Unit in Source_File_Record.
13661
13662         * sinput-p.adb (Source_File_Is_Subunit): Update to account for change
13663         in profile of Initialize_Scanner.
13664
13665         * scans.adb (Initialize_Ada_Keywords): New procedure
13666
13667         * scans.ads (Initialize_Ada_Keywords): New procedure to initialize the
13668         Ada keywords in the Namet table, without the need to call
13669         Initialize_Scanner.
13670
13671         * snames.adb: Add pragma Ada_2005 (synonym for Ada_05)
13672         (Is_Keyword_Name): New function
13673
13674         * snames.ads: Add subtype Configuration_Pragma_Names
13675         Add pragma Ada_2005 (synonym for Ada_05)
13676         (Is_Keyword_Name): New function
13677
13678         * snames.h: Add pragma Ada_2005 (synonym for Ada_05)
13679
13680 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
13681
13682         * a-stwisu.adb, a-strsup.adb, a-stzsup.adb (Super_Slice): Fix slice
13683         index.
13684
13685         * a-stwima.adb (To_Set): Add extra check when N = 0.
13686
13687         * g-regpat.adb: (Match_Simple_Operator): Avoid possible overflow.
13688
13689 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
13690
13691         * s-parame-mingw.adb, s-parame-linux.adb,
13692         s-parame-solaris.adb: Removed, replaced by s-parame.adb
13693
13694         * s-parame-vxworks.ads: Fix typo.
13695
13696         * s-parame-vxworks.adb: New file.
13697
13698         * s-parame.adb: Version now used by all native platforms.
13699         (Default_Stack_Size): Use 2 megs for default stack size and use
13700         __gl_default_stack_size when available.
13701         (Minimum_Stack_Size): Use 12K.
13702
13703         * s-taprop-mingw.adb: Set default stack size linker switch to 2megs.
13704         (Create_Task): Refine implementation taking advantage of the XP stack
13705         size support. On XP, we now create the thread using the flag
13706         STACK_SIZE_PARAM_IS_A_RESERVATION.
13707
13708         * s-osinte-mingw.ads (Stack_Size_Param_Is_A_Reservation): New constant.
13709
13710         * sysdep.c (__gnat_is_windows_xp): New routine, returns 1 on Windows
13711         XP and 0 on older Windows versions.
13712
13713         * interfac-vms.ads: Removed, no longer used.
13714
13715 2006-02-13  Matthew Heaney  <heaney@adacore.com>
13716
13717         * a-rbtgso.adb, a-crbtgo.adb, a-crbtgk.adb, a-coorse.adb, 
13718         a-cohama.adb, a-ciorse.adb, a-cihama.adb, a-cihase.adb, 
13719         a-cohase.adb: All explicit raise statements now include an exception
13720         message.
13721
13722         * a-ciormu.ads, a-ciormu.adb, a-coormu.ads, a-coormu.adb
13723         (Update_Element_Preserving_Key): renamed op to just Update_Element.
13724         Explicit raise statements now include an exception message
13725
13726         * a-cihase.ads, a-cohase.ads: Removed comment.
13727
13728         * a-stboha.ads, a-stboha.adb, a-stfiha.ads, a-envvar.adb,
13729         a-envvar.ads, a-swbwha.ads, a-swbwha.adb, a-swfwha.ads, a-szbzha.ads,
13730         a-szbzha.adb, a-szfzha.ads: New files.
13731
13732 2006-02-13  Matthew Heaney  <heaney@adacore.com>
13733
13734         * a-cgcaso.adb, a-cgaaso.adb: Implemented using heapsort instead of
13735         quicksort.
13736
13737 2006-02-13  Eric Botcazou  <ebotcazou@adacore.com>
13738
13739         * lang.opt: Wvariadic-macros: New option.
13740         Wold-style-definition: Likewise.
13741         Wmissing-format-attribute: Likewise.
13742
13743         * misc.c (gnat_handle_option): New cases for -Wvariadic-macros,
13744         -Wold-style-definition and -Wmissing-format-attribute.
13745
13746 2006-02-13  Robert Dewar  <dewar@adacore.com>
13747
13748         * a-ticoio.ads, a-ticoio.adb: Add use clause (moved here from spec)
13749
13750         * a-coteio.ads, a-lcteio.ads, a-llctio.ads, a-scteio.ads: New files.
13751
13752 2006-02-13  Nicolas Roche  <roche@adacore.com>
13753
13754         * a-envvar.adb, a-envvar.ads: New files.
13755
13756 2006-02-13  Douglas Rupp  <rupp@adacore.com>
13757
13758         * s-parame-vms.ads: Renamed to s-parame-vms-alpha.ads
13759
13760         * s-parame-vms-alpha.ads, s-parame-vms-ia64.ads: New files.
13761
13762 2006-02-13  Pat Rogers  <rogers@adacore.com>
13763
13764         * a-rttiev.adb, a-rttiev.ads: New files.
13765
13766 2006-02-13  Hristian Kirtchev  <kirtchev@adacore.com>
13767
13768         * a-tiboio.adb, a-tiboio.ads, a-wwboio.adb,
13769         a-wwboio.ads, a-zzboio.adb, a-zzboio.ads:  New files.
13770
13771         * impunit.adb, Makefile.rtl: Added new Ada 2005 units.
13772
13773 2006-02-13  Robert Dewar  <dewar@adacore.com>
13774
13775         * rtsfind.adb, exp_prag.adb, lib-writ.adb, par-labl.adb, 
13776         sem_case.adb: Minor code reorganization (not Present should be No)
13777
13778 2006-02-13  Geert Bosch  <bosch@adacore.com>
13779             Gary Dismukes  <dismukes@adacore.com>
13780
13781         * a-tifiio.adb (Put_Digits): Test Last against To'First - 1 instead of
13782         0, since the lower bound of the actual string may be greater than one.
13783
13784         PR ada/20753
13785         * a-tifiio.adb (Put): Fix condition to raise Layout_Error when invalid
13786         layout is requested.
13787
13788 2006-02-13  Vincent Celier  <celier@adacore.com>
13789
13790         * back_end.adb (Scan_Compiler_Arguments): Check if
13791         Search_Directory_Present is True and, if it is, add the argument in
13792         the source search directory path.
13793
13794         * switch-c.adb (Scan_Front_End_Switches): Accept switch "-I". Set
13795         Search_Directory_Present to True.
13796
13797 2006-02-13  Joel Brobecker  <brobecke@adacore.com>
13798
13799         * bindgen.adb (Gen_Main_C): declare the ensure_reference variable as
13800         volatile, to tell the compiler to preserve this variable at any level
13801         of optimization.
13802         (Gen_Versions_Ada): Temporarily work around codegen bug.
13803
13804 2006-02-13  Vincent Celier  <celier@adacore.com>
13805
13806         * gnatlink.adb (Process_Binder_File): If -shared is specified, invoke
13807         gcc to link with option -shared-libgcc.
13808         (Gnatlink): Remove duplicate switches -shared-libgcc
13809
13810 2006-02-13  Robert Dewar  <dewar@adacore.com>
13811
13812         * gnatvsn.ads (Current_Year): New constant, used to easily update
13813         copyright on all GNAT tools.
13814
13815         * gnatls.adb, gnatname.adb, vms_conv.adb: Add 2006 to displayed
13816         copyright notice.
13817
13818 2006-02-13  Robert Dewar  <dewar@adacore.com>
13819
13820         * erroutc.ads, erroutc.adb (Set_Message_Blank): Don't insert space
13821         after hyphen (small aesthetic change useful for a range of numbers
13822         using ^-^.
13823         Suppress range checks for a couple of assignments which otherwise
13824         cause validity checks with validity checking turned on.
13825
13826         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Size):
13827         Improvement in error message for object.
13828         (Rep_Item_Too_Late): Remove '!' in warning message.
13829
13830 2006-02-13  Robert Dewar  <dewar@adacore.com>
13831             Eric Botcazou  <ebotcazou@adacore.com>
13832
13833         * err_vars.ads: Suppress range checks for a couple of assignments
13834         which otherwise cause validity checks with validity checking turned on.
13835         Update comments.
13836
13837         * errout.adb (Error_Msg_Internal): Do not suppress warning messages.
13838         Make message unconditional if it is a warning.
13839         (Error_Msg_NEL): Always output warning messages.
13840         Suppress range checks for a couple of assignments which otherwise
13841         cause validity checks with validity checking turned on.
13842
13843         * errout.ads (Message Insertion Characters): Document that '!' is
13844         implied by '?' in error messages.
13845
13846         * gnat1drv.adb: (Bad_Body): Remove '!' in warning message.
13847         (Gnat1drv): Use a goto to end of main subprogram instead of
13848         Exit_Program (E_Success) so that finalization can occur normally.
13849
13850 2006-02-13  Eric Botcazou  <ebotcazou@adacore.com>
13851
13852         * s-stchop.adb (Stack_Check): Raise Storage_Error if the argument has
13853         wrapped around.
13854
13855 2006-02-13  Vincent Celier  <celier@adacore.com>
13856
13857         * a-direct.adb (Duration_To_Time, OS_Time_To_Long_Integer): New
13858         Unchecked_Conversion functions.
13859         (Modification_Time): Use direct conversion of OS_Time to Calendar time
13860         when OpenVMS returns False.
13861
13862         * a-dirval-mingw.adb, a-dirval-vms.adb, a-dirval.ads,
13863         a-dirval.adb (OpenVMS): New Boolean function
13864
13865 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
13866             Thomas Quinot  <quinot@adacore.com>
13867
13868         * checks.adb (Build_Discriminant_Checks): If the expression being
13869         checks is an aggregate retrieve the values of its discriminants to
13870         generate the check, rather than creating a temporary and a reference
13871         to it.
13872         (Apply_Access_Check): Rewritten to handle new Is_Known_Null flag
13873         (Install_Null_Excluding_Check): Ditto
13874         (Selected_Length_Checks): Build actual subtype for the original Ck_Node,
13875         not for the renamed object, so that the actual itype is attached in the
13876         proper context.
13877
13878 2006-02-13  Robert Dewar  <dewar@adacore.com>
13879             Vincent Celier  <celier@adacore.com>
13880
13881         * debug.adb: Eliminate numeric switches for binder/gnatmake
13882
13883         * switch-m.adb (Normalize_Compiler_Switches): Record numeric debug
13884         switches for the compiler.
13885         (Scan_Make_Switches): Do not allow numeric debug switches for gnatmake
13886         (Scan_Make_Switches): When failing with an illegal switch, output an
13887         error message with the full switch.
13888         Eliminate numeric switches for binder/gnatmake
13889
13890         * switch.ads, switch.adb (Bad_Switch): New procedure
13891
13892         * switch-b.adb (Scan_Binder_Switches): Do not accept combined switches.
13893         Remove 0-9 as debug flag character possibilities
13894         -d is now controlling the primary stack size when its value is a
13895         positive. Also add checks against invalid values, and support for kb,
13896         mb. Ditto for -D switch.
13897
13898 2006-02-13  Robert Dewar  <dewar@adacore.com>
13899             Serguei Rybin  <rybin@adacore.com>
13900
13901         * opt.ads opt.adb: Add Ada_Version_Explicit_Config along with
13902         save/restore routines.
13903         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
13904         were not always properly handled previously.
13905         Since we are changing the tree format anyway, also get rid of the
13906         junk obsolete Immediate_Errors flag.
13907         (Tree_Read): Change the way of reading Tree_Version_String - now we
13908         read the version string from the tree even if its length is not the
13909         same as the length of the version string computed from Gnatvsn.
13910         (Search_Directory_Present): New Boolean flag for the compiler.
13911         Define Tree_Version_String as a dynamic string.
13912         (Default_Stack_Size): new variable, used to handle switch -d.
13913
13914         * par-prag.adb: 
13915         For pragma Ada_2005, remove stuff about setting Ada_Version_Explicit
13916         only for main unit.
13917         Add pragma Ada_2005 (synonym for Ada_05)
13918         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
13919         were not always properly handled previously.
13920
13921         * directio.ads, ioexcept.ads, sequenio.ads, text_io.ads: Change
13922         explicit Ada_95 to Ada_2005.
13923
13924 2006-02-13  Javier Miranda  <miranda@adacore.com>
13925             Robert Dewar  <dewar@adacore.com>
13926             Ed Schonberg  <schonberg@adacore.com>
13927
13928         * einfo.ads, einfo.adb (First_Tag_Component): Protect the frontend
13929         against errors in the source program: a private types for which the
13930         corresponding full type declaration is missing and pragma CPP_Virtual
13931         is used.
13932         (Is_Unchecked_Union): Check flag on Implementation_Base_Type.
13933         (Is_Known_Null): New flag
13934         (Has_Pragma_Pure): New flag
13935         (No_Return): Present in all entities, set only for procedures
13936         (Is_Limited_Type): A type whose ancestor is an interface is limited if
13937         explicitly declared limited.
13938         (DT_Offset_To_Top_Func): New attribute that is present in E_Component
13939         entities. Only used for component marked Is_Tag. If present it stores
13940         the Offset_To_Top function used to provide this value in tagged types
13941         whose ancestor has discriminants.
13942
13943         * exp_ch2.adb: Update status of new Is_Known_Null flag
13944
13945         * sem_ch7.adb: Maintain status of new Is_Known_Null flag
13946
13947         * sem_cat.adb (Get_Categorization): Don't treat function as Pure in
13948         the categorization sense if Is_Pure was set by pragma Pure_Function.
13949
13950 2006-02-13  Quentin Ochem  <ochem@adacore.com>
13951             Olivier Hainque  <hainque@adacore.com>
13952
13953         * bindusg.adb: Updated documentation for -d and -D switches.
13954
13955         * raise.h (__gnat_set_globals): added new parameter for
13956         Default_Stack_Size.
13957
13958         * init.c (__gnat_adjust_context_for_raise) <alpha-vms case>: Implement.
13959         (__gnat_handle_vms_condition): Adjust context before raise.
13960         (__gnat_install_handler): Restore the global vector setup for GCC
13961         versions before 3.4, as the frame based circtuitry is not available
13962         in this case.
13963         (__gnat_set_globals): added a parameter default_stack_size
13964         (__gl_default_stack_size): new variable.
13965
13966 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
13967
13968         * exp_aggr.adb (Build_Array_Aggr_Code): Rename variable
13969         "Others_Mbox_Present" to "Others_Box_Present" because the mbox concept
13970         does not exist in the Ada RM.
13971         (Compatible_Int_Bounds): Determine whether two integer range bounds
13972         are of equal length and have the same start and end values.
13973         (Is_Int_Range_Bounds): Determine whether a node is an integer range.
13974         (Build_Record_Aggr_Code): Perform proper sliding of a nested array
13975         aggregate when it is part of an object declaration.
13976         (Build_Record_Aggr_Code)  If the aggregate ttype is a derived type that
13977         constrains discriminants of its parent, add explicitly the discriminant
13978         constraints of the ancestor by retrieving them from the
13979         stored_constraint of the parent.
13980
13981 2006-02-13  Robert Dewar  <dewar@adacore.com>
13982
13983         * exp_attr.adb (Expand_N_Attribute_Reference, case Mechanism_Code): If
13984         attribute Mechanism_Code is applied to renamed subprogram, modify
13985         prefix to point to base subprogram.
13986         Max/Min attributes now violate Restriction No_Implicit_Conditionals
13987
13988         * sinfo.ads: Document that Mechanism_Code cannot be applied to
13989         renamed subprograms so that the front-end must replace the prefix
13990         appropriately.
13991
13992 2006-02-13  Javier Miranda  <miranda@adacore.com>
13993             Gary Dismukes  <dismukes@adacore.com>
13994
13995         * exp_ch3.adb (Component_Needs_Simple_Initialization): Add check for
13996         availability of RE_Interface_Tag.
13997         (Build_Initialization_Call): Fix wrong access to the discriminant value.
13998         (Freeze_Record_Type): Do not generate the tables associated with
13999         timed and conditional dispatching calls through synchronized
14000         interfaces if compiling under No_Dispatching_Calls restriction.
14001         When compiling for Ada 2005, for a nonabstract
14002         type with a null extension, call Make_Controlling_Function_Wrappers
14003         and insert the wrapper function declarations and bodies (the latter
14004         being appended as freeze actions).
14005         (Predefined_Primitive_Bodies): Do not generate the bodies of the
14006         predefined primitives associated with timed and conditional
14007         dispatching calls through synchronized interfaces if we are
14008         compiling under No_Dispatching_Calls.
14009         (Build_Init_Procedure):  Use RTE_Available to check if a run-time
14010         service is available before generating a call.
14011         (Make_Controlling_Function_Wrappers): New procedure.
14012         (Expand_N_Full_Type_Declaration): Create a class-wide master for
14013         access-to-limited-interfaces because they can be used to reference
14014         tasks that implement such limited interface.
14015         (Build_Offset_To_Top_Functions): Build the tree corresponding to the
14016         procedure spec and body of the Offset_To_Top function that is generated
14017         when the parent of a type with discriminants has secondary dispatch
14018         tables.
14019         (Init_Secondary_Tags): Handle the case in which the parent of the type
14020         containing secondary dispatch tables has discriminants to generate the
14021         correct arguments to call Set_Offset_To_Top.
14022         (Build_Record_Init_Proc): Add call to Build_Offset_To_Top_Functions.
14023
14024         * a-tags.ads, a-tags.adb: (Check_Index): Removed.
14025         Add Wide_[Wide_]Expanded_Name.
14026         (Get_Predefined_Prim_Op_Address): New subprogram that provides exactly
14027         the same functionality of Get_Prim_Op_Address but applied to predefined
14028         primitive operations because the pointers to the predefined primitives
14029         are now saved in a separate table.
14030         (Parent_Size): Modified to get access to the separate table of primitive
14031         operations or the parent type.
14032         (Set_Predefined_Prim_Op_Address): New subprogram that provides the same
14033         functionality of Set_Prim_Op_Address but applied to predefined primitive
14034         operations.
14035         (Set_Signature): New subprogram used to store the signature of a DT.
14036         (Displace): If the Offset_To_Top value is not static then call the
14037         function generated by the expander to get such value; otherwise use
14038         the value stored in the table of interfaces.
14039         (Offset_To_Top): The type of the actual has been changed to Address to
14040         give the correct support to tagged types with discriminants. In this
14041         case this value is stored just immediately after the tag field.
14042         (Set_Offset_To_Top): Two new formals have been added to indicate if the
14043         offset_to_top value is static and hence pass this value to the run-time
14044         to store it in the table of interfaces, or else if this value is dynamic
14045         and then pass to the run-time the address of a function that is
14046         generated by the expander to provide this value for each object of the
14047         type.
14048
14049         * rtsfind.ads (Default_Prin_Op_Count): Removed.
14050         (Default_Prim_Op_Count): New entity
14051         (Get_Predefined_Prim_Op_Address): New entity
14052         (Set_Predefined_Prim_Op_Address): New entity
14053         (RE_Set_Signature): New entity
14054
14055 2006-02-13  Thomas Quinot  <quinot@adacore.com>
14056             Ed Schonberg  <schonberg@adacore.com>
14057
14058         * exp_ch4.adb (Expand_Allocator_Expression): Pass Allocator => True to
14059         Make_Adjust_Call done for a newly-allocated object.
14060
14061         * exp_ch7.ads, exp_ch7.adb (Expand_Cleanup_Actions): If the statements
14062         in a subprogram are wrapped in a cleanup block, indicate that the
14063         subprogram contains an inner block with an exception handler.
14064         (Make_Adjust_Call): New Boolean formal Allocator indicating whether the
14065         Adjust call is for a newly-allocated object. In that case we must not
14066         assume that the finalization list chain pointers are correct (since they
14067         come from a bit-for-bit copy of the original object's pointers) so if
14068         the attach level would otherwise be zero (no change), we set it to 4
14069         instead to cause the pointers to be reset to null.
14070
14071         * s-finimp.adb (Attach_To_Final_List): New attach level: 4, meaning
14072         reset chain pointers to null.
14073
14074 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
14075
14076         * exp_ch5.adb (Expand_Assign_Array): If the right-hand side is a
14077         string, and the context requires a loop for the assignment (e.g.
14078         because the left-hand side is packed), generate a unique name for the
14079         temporary that holds the string, to prevent spurious name clashes.
14080
14081 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
14082             Javier Miranda  <miranda@adacore.com>
14083             Robert Dewar  <dewar@adacore.com>
14084             Gary Dismukes  <dismukes@adacore.com>
14085
14086         * exp_ch6.adb (Expand_Inlined_Call): Handle calls to functions that
14087         return unconstrained arrays.
14088         Update comments.
14089         (Expand_Call):  An indirect call through an access parameter of a
14090         protected operation is not a protected call.
14091         Add circuit to raise CE in Ada 2005 mode following call
14092         to Raise_Exception.
14093         (Register_DT_Entry): Do nothing if
14094         the run-time does not give support to abstract interfaces.
14095         (Freeze_Subprogram): In case of dispatching operations, do not generate
14096         code to register the operation in the dispatch table if the source
14097         is compiled with No_Dispatching_Calls.
14098         (Register_Predefined_DT_Entry): Generate code that calls the new
14099         run-time subprogram Set_Predefined_Prim_Op_Address instead of
14100         Set_Prim_Op_Address.
14101
14102         * sem_ch5.adb (Analyze_Assignment_Statement): Do not apply length checks
14103         on array assignments if the right-hand side is a function call that has
14104         been inlined. Check is performed on the assignment in the block.
14105         (Process_Bounds): If bounds and range are overloaded, apply preference
14106         rule for root operations to disambiguate, and diagnose true ambiguity.
14107         (Analyze_Assignment): Propagate the tag for a class-wide assignment with
14108         a tag-indeterminate right-hand side even when Expander_Active is True.
14109         Needed to ensure that dispatching calls to T'Input are allowed and
14110         get the tag of the target class-wide object.
14111
14112         * sem_ch6.adb (New_Overloaded_Entity): Handle entities that override
14113         an inherited primitive operation that already overrides several
14114         abstract interface primitives. For transitivity, the new entity must
14115         also override all the abstract interface primitives covered by the
14116         inherited overriden primitive.
14117         Emit warning if new entity differs from homograph in same scope only in
14118         that one has an access parameter and the other one has a parameter of
14119         a general access type with the same designated type, at the same
14120         position in the signature.
14121         (Make_Inequality_Operator): Use source locations of parameters and
14122         subtype marks from corresponding equality operator when creating the
14123         tree structure for the implicit declaration of "/=". This does not
14124         change anything in behaviour except that the decoration of the
14125         components of the subtree created for "/=" allows ASIS to get the
14126         string images of the corresponding identifiers.
14127         (Analyze_Return_Statement): Remove '!' in warning message.
14128         (Check_Statement_Sequence): Likewise.
14129         (Analyze_Subprogram_Body): For an access parameter whose designated type
14130         is an incomplete type imported through a limited_with clause, use the
14131         type of the corresponding formal in the body.
14132         (Check_Returns): Implicit return in No_Return procedure now raises
14133         Program_Error with a compile time warning, instead of beging illegal.
14134         (Has_Single_Return):  Function returning unconstrained type cannot be
14135         inlined if expression in unique return statement is not an identifier.
14136         (Build_Body_To_Inline): It is possible to inline a function call that
14137         returns an unconstrained type if all return statements in the function
14138         return the same local variable. Subsidiary procedure Has_Single_Return
14139         verifies that the body conforms to this restriction.
14140
14141         * sem_res.adb (Resolve_Equality_Op): If the operands do not have the
14142         same type, and  one of them is of an anonymous access type, convert
14143         the other operand to it, so that this is a valid binary operation for
14144         gigi.
14145         (Resolve_Type_Conversion): Handle subtypes of protected types and
14146         task types when accessing to the corresponding record type.
14147         (Resolve_Allocator): Add '\' in 2-line warning message.
14148         Remove '!' in warning message.
14149         (Resolve_Call): Add '\' in 2-line warning message.
14150         (Valid_Conversion): Likewise.
14151         (Resolve_Overloaded_Selected_Component): If disambiguation succeeds, the
14152         resulting type may be an access type with an implicit dereference.
14153         Obtain the proper component from the designated type.
14154         (Make_Call_Into_Operator): Handle properly a call to predefined equality
14155         given by an expanded name with prefix Standard, when the operands are
14156         of an anonymous access type.
14157         (Check_Fully_Declared_Prefix): New procedure, subsidiary of Resolve_
14158         Explicit_Dereference and Resolve_Selected_Component, to verify that the
14159         prefix of the expression is not of an incomplete type. Allows full
14160         diagnoses of all semantic errors.
14161         (Resolve_Actuals): If the actual is an allocator whose directly
14162         designated type is a class-wide interface we build an anonymous
14163         access type to use it as the type of the allocator. Later, when
14164         the subprogram call is expanded, if the interface has a secondary
14165         dispatch table the expander will add a type conversion to force
14166         the displacement of the pointer.
14167         (Resolve_Call): If a function that returns an unconstrained type is
14168         marked Inlined_Always and inlined, the call will be inlined and does
14169         not require the creation of a transient scope.
14170         (Check_Direct_Boolean_Op): Removed
14171         (Resolve_Comparison_Op): Remove call to above
14172         (Resolve_Equality_Op): Remove call to above
14173         (Resolve_Logical_Op): Inline above, since this is only call.
14174         (Valid_Conversion): Handle properly conversions between arrays of
14175         convertible anonymous access types.
14176
14177         PR ada/25885
14178         (Set_Literal_String_Subtype): If the lower bound is not static, wrap
14179         the literal in an unchecked conversion, because GCC 4.x needs a static
14180         value for a string bound.
14181
14182 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
14183             Hristian Kirtchev  <kirtchev@adacore.com>
14184
14185         * exp_ch9.adb (Expand_N_Protected_Type_Declaration): When creating the
14186         components of the corresponding record, take into account component
14187         definitions that are access definitions.
14188         (Expand_N_Asynchronous_Select): A delay unit statement rewritten as a
14189         procedure is not considered a dispatching call and will be expanded
14190         properly.
14191
14192 2006-02-13  Javier Miranda  <miranda@adacore.com>
14193
14194         * exp_disp.ads, exp_disp.adb (Expand_Dispatching_Call): If the
14195         controlling argument of the dispatching call is an abstract interface
14196         class-wide type then we use it directly.
14197         Check No_Dispatching_Calls restriction.
14198         (Default_Prim_Op_Position): Remove the code that looks for the last
14199         entity in the list of aliased subprograms. This code was wrong in
14200         case of renamings.
14201         (Fill_DT_Entry): Add assertion to avoid the use of this subprogram
14202         when the source is compiled with the No_Dispatching_Calls restriction.
14203         (Init_Predefined_Interface_Primitives): No need to inherit primitives
14204         if we are compiling with restriction No_Dispatching_Calls.
14205         (Make_Disp_XXX): Addition of assertion to avoid the use of all these
14206         subprograms if we are compiling under No_Dispatching_Calls restriction.
14207         (Make_DT): Generate a dispatch table with a single dummy entry if
14208         we are compiling with the No_Dispatching_Calls restriction. In
14209         addition, in this case we don't generate code that calls to the
14210         following run-time subprograms: Set_Type_Kind, Inherit_DT.
14211         (Make_Select_Specific_Data_Table): Add assertion to avoid the use
14212         of this subprogram if compiling with the No_Dispatching_Calls
14213         restriction.
14214         (Expand_Type_Conversion): Instead of using the actual parameter,
14215         the argument passed as parameter to the conversion function was
14216         erroneously referenced by the expander.
14217         (Ada_Actions): Addition of Get_Predefined_Prim_Op_Address,
14218         Set_Predefined_Primitive_Op_Address and Set_Signature.
14219         (Expand_Dispatching_Call): Generate call to
14220         Get_Predefined_Prim_Op_Address for predefined primitives.
14221         (Fill_DT_Entry): Generate call to Set_Predefined_Prim_Op_Address for
14222         predefined primitives.
14223         (Make_DT, Make_Secondary_DT): If the tagged type has no user defined
14224         primitives we reserve one dummy entry to ensure that the tag does not
14225         point to some memory that is associated with some other object. In
14226         addition, remove all the old code that generated the assignments
14227         associated with the signature of the dispatch table and replace them
14228         by a call to the new subprogram Set_Signature.
14229         (Set_All_DT_Position): Change the algorithm because now we have a
14230         separate dispatch table associated with predefined primitive operations.
14231         (Expand_Interface_Conversion): In case of non-static offset_to_top
14232         add explicit dereference to get access to the object after the call
14233         to displace the pointer to the object.
14234         (Expand_Interface_Thunk): Modify the generation of the actual used
14235         in the calls to the run-time function Offset_To_Top to fulfil its
14236         new interface.
14237         (Make_DT): Add the new actuals required to call Set_Offset_To_Top.
14238
14239 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
14240
14241         * exp_dist.adb (Copy_Specification): For access parameters, copy
14242         Null_Exclusion flag, which will have been set for stream subprograms
14243         in Ada2005 mode.
14244
14245 2006-02-13  Pascal Obry  <obry@adacore.com>
14246
14247         * expect.c (__gnat_expect_portable_execvp): New implementation. The
14248         previous implementation was using the C runtime spawnve routine but
14249         the corresponding wait was using directly the Win32 API. This was
14250         causing some times a lock when waiting for an event using
14251         WaitForSingleObject in __gnat_waitpid. This new implementation uses
14252         the Win32 CreateProcess routine. Avoiding mixing C runtime and Win32
14253         API fixes this problem.
14254
14255 2006-02-13  Robert Dewar  <dewar@adacore.com>
14256
14257         * exp_intr.adb (Expand_Unc_Deallocation): Correct error of bad analyze
14258         call.
14259
14260 2006-02-13  Thomas Quinot  <quinot@adacore.com>
14261
14262         * exp_pakd.ads: Fix typos in comments.
14263
14264         * exp_pakd.adb (Convert_To_PAT_Type): For the case of a bit packed
14265         array reference that is an explicit dereference, mark the converted
14266         (packed) array reference as analyzed to prevent a forthcoming
14267         reanalysis from resetting its type to the original (non-packed) array
14268         type.
14269
14270 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
14271             Javier Miranda  <miranda@adacore.com>
14272             Eric Botcazou  <ebotcazou@adacore.com>
14273
14274         * exp_util.ads, exp_util.adb (Find_Prim_Op,
14275         Is_Predefined_Primitive_Operation): When
14276         searching for the predefined equality operator, verify that operands
14277         have the same type.
14278         (Is_Predefined_Dispatching_Operation): Remove the code that looks
14279         for the last entity in the list of aliased subprograms. This code
14280         was wrong in case of renamings.
14281         (Set_Renamed_Subprogram): New procedure
14282         (Remove_Side_Effects): Replace calls to Etype (Exp) with use of the
14283         Exp_Type constant computed when entering this subprogram.
14284         (Known_Null): New function
14285         (OK_To_Do_Constant_Replacement): New function
14286         (Known_Non_Null): Check scope before believing Is_Known_Non_Null flag
14287         (Side_Effect_Free): An attribute reference 'Input is not free of
14288         side effect, unlike other attributes that are functions. (from code
14289         reading).
14290         (Remove_Side_Effects): Expressions that involve packed arrays or records
14291         are copied at the point of reference, and therefore must be marked as
14292         renamings of objects.
14293         (Is_Predefined_Dispatching_Operation): Return false if the operation is
14294         not a dispatching operation.
14295
14296         PR ada/18819
14297         (Remove_Side_Effects): Lift enclosing type conversion nodes for
14298         elementary types in all cases.
14299
14300 2006-02-13  Javier Miranda  <miranda@adacore.com>
14301
14302         * freeze.adb (Freeze_Entity): Handle subtypes of protected types and
14303         task types when accessing to the corresponding record type.
14304         Remove '!' in warning message.
14305
14306 2006-02-13  Olivier Hainque  <hainque@adacore.com>
14307
14308         * g-altive.ads (VECTOR_ALIGNMENT): Set to Min (16, Max_Alignment),
14309         to avoid useless and space inefficient overalignments on targets where
14310         Max_Alignment is larger than 16.
14311
14312 2006-02-13  Pascal Obry  <obry@adacore.com>
14313
14314         * g-catiio.adb (Sec_Number): New type used to compute the number of
14315         seconds since 1-1-1970.
14316         (Image) [Natural]: The parameter was an Integer, as we can't deal with
14317         negative numbers (years, months...) it is better to have a Natural here.
14318         Code clean-up.
14319         (Image) [Number]: Change parameter from Long_Integer to Number.
14320         (Image): Use Number type to compute the seconds since 1-1-1970 to fix an
14321         overflow for dates past year 2038.
14322
14323 2006-02-13  Matthew Heaney  <heaney@adacore.com>
14324
14325         *  g-dyntab.adb (Index_Of): conversion from Natural can no longer raise
14326         Constraint_Error.
14327
14328 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
14329
14330         * gnatbind.adb (Scan_Bind_Arg): Replace error by warning on -M and
14331         native platforms.
14332         (Gnatbind): Do not call Exit_Program (E_Success) at the end, so that
14333         finalization can occur normally.
14334
14335 2006-02-13  Vincent Celier  <celier@adacore.com>
14336
14337         * gnatcmd.adb (Rules_Switches): New table
14338         (Add_To_Rules_Switches): New procedure
14339         (GNATCmd): For command CHECK, put all options following "-rules" in the
14340         Rules_Switches table. Append these -rules switches after the -cargs
14341         switches.
14342
14343 2006-02-13  Robert Dewar  <dewar@adacore.com>
14344
14345         * g-spipat.adb (Image, case PC_Assign_Imm and case PC_Assign_OnM):
14346         These two cases were generating incorrect output, and if this unit
14347         was built with checks on, generated a discriminant mismatch constraint
14348         error.
14349
14350 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
14351             Robert Dewar  <dewar@adacore.com>
14352
14353         * lib-xref.adb (Get_Type_Reference): For a private type whose full
14354         view is an array type, indicate the component type as well, for
14355         navigation purposes.
14356         (Generate_Reference): Don't consider array ref on LHS to be a case
14357         of violating pragma Unreferenced.
14358         Do not give Ada 2005 warning except on real reference.
14359
14360 2006-02-13  Vincent Celier  <celier@adacore.com>
14361
14362         * make.adb (Collect_Arguments_And_Compile): For VMS, when compiling the
14363         main source, add switch -mdebug-main=_ada_ so that the executable can
14364         be debugged by the standard VMS debugger.
14365         (Gnatmake): Set No_Main_Subprogram to True when there is no main
14366         subprogram, to avoid issuing -mdebug-main=_ada_ for VMS uselessly.
14367         Exit the Multi_Main_Loop when Unique_Compile is True after compilation
14368         of the last source, as the binding and linking phases are never
14369         performed.
14370         Set all executable obsolete when rebuilding a library.
14371
14372         * makeutl.adb (Linker_Options_Switches): Do not process empty linker
14373         options.
14374
14375 2006-02-13  Javier Miranda  <miranda@adacore.com>
14376
14377         PR ada/23973
14378         * par-ch3.adb (P_Derived_Type_Def_Or_Private_Ext_Decl): Reorganize the
14379         code to improve the error message reported when the program has
14380         declarations of abstract interface types and it is not compiled with
14381         the -gnat05 switch.
14382         (P_Access_Definition): Reorganize the code to improve the error
14383         message reported when the new Ada 2005 syntax for anonymous
14384         access types is used and the program is not compiled with the
14385         -gnat05 switch.
14386
14387 2006-02-13  Robert Dewar  <dewar@adacore.com>
14388
14389         * par-ch6.adb, style.ads, styleg.adb, styleg.ads, stylesw.adb,
14390         stylesw.ads, usage.adb, vms_data.ads: Implement -gnatyI switch
14391         (MODE_IN)
14392
14393 2006-02-13  Javier Miranda  <miranda@adacore.com>
14394
14395         * par-endh.adb (Explicit_Start_Label): Add code to protect the parser
14396         against source containing syntax errors.
14397
14398 2006-02-13  Vincent Celier  <celier@adacore.com>
14399
14400         * prj.adb (Reset): Initialize the first element of table Namings with
14401         the standard naming data.
14402
14403 2006-02-13  Vincent Celier  <celier@adacore.com>
14404
14405         * prj.ads (Error_Warning): New enumeration type
14406
14407         * prj-nmsc.ads, prj-nmsc.adb (Error_Msg): If location parameter is
14408         unknown, use the location of the project to report the error.
14409         (When_No_Sources): New global variable
14410         (Report_No_Ada_Sources): New procedure
14411         (Check): New parameter When_No_Sources. Set value of global variable
14412         When_No_Sources,
14413         (Find_Sources): Call Report_No_Ada_Sources when appropriate
14414         (Get_Sources_From_File): Ditto
14415         (Warn_If_Not_Sources): Better warning messages indicating the unit name
14416         and the file name.
14417
14418         * prj-pars.ads, prj-pars.adb (Parse): New parameter When_No_Sources.
14419         Call Prj.Proc.Process with parameter When_No_Sources.
14420
14421         * prj-proc.ads, prj-proc.adb (Check): New parameter When_No_Sources.
14422         Call Recursive_Check with parameter When_No_Sources.
14423         (Recursive_Check): New parameter When_No_Sources. Call itself and
14424         Prj.Nmsc.Check with parameter When_No_Sources.
14425         (Process): New parameter When_No_Sources. Call Check with parameter
14426         When_No_Sources.
14427         (Copy_Package_Declarations): New procedure to copy renamed parameters
14428         and setting the location of the declared attributes to the location
14429         of the renamed package.
14430         (Process_Declarative_Items): Call Copy_Package_Declarations for renamed
14431         packages.
14432
14433 2006-02-13  Vincent Celier  <celier@adacore.com>
14434
14435         * prj-makr.adb (Make): Preserve the comments from the original project
14436         file.
14437         When removing nodes (attributes Source_Dirs, Source_Files,
14438         Source_List_File and package Naming), save the comments and attach the
14439         saved comments to the newly created nodes.
14440         Do not add a with clause for the naming package if one already exists.
14441
14442 2006-02-13  Javier Miranda  <miranda@adacore.com>
14443             Gary Dismukes  <dismukes@adacore.com>
14444             Robert Dewar  <dewar@adacore.com>
14445
14446         * restrict.ads (No_Dispatching_Calls): New GNAT restriction.
14447
14448         * sem_disp.adb (Override_Dispatching_Operation): Traverse the list of
14449         aliased entities to look for the overriden abstract interface
14450         subprogram.
14451         (Is_Interface_Subprogram): Complete documentation.
14452         (Check_Dispatching_Operation): Do not generate code to register the
14453         operation in the dispatch table if the source is compiled with
14454         restriction No_Dispatching_Calls.
14455         (Override_Dispatching_Operation): Check for illegal attempt to override
14456         No_Return procedure with procedure that is not No_Return
14457         (Check_Dispatching_Call): Suppress the check for an abstract operation
14458         when the original node of an actual is a tag-indeterminate attribute
14459         call, since the attribute, which must be 'Input, can never be abstract.
14460         (Is_Tag_Indeterminate): Handle checking of tag indeterminacy of a
14461         call to the Input attribute (even when rewritten).
14462         (Propagate_Tag): Augment comment to indicate the possibility of a call
14463         to an Input attribute.
14464
14465         * sem_disp.ads (Override_Dispatching_Operation): Moved to spec to allow
14466         calling it from Exp_Ch3.Make_Controlling_Function_Wrappers.
14467
14468         * s-rident.ads: (No_Dispatching_Calls): New GNAT restriction.
14469         No_Wide_Characters is no longer partition-wide
14470         No_Implementation_Attributes/Pragmas are now Ada 2005 (AI-257)
14471         rather than GNAT
14472
14473 2006-02-13  Douglas Rupp  <rupp@adacore.com>
14474
14475         * s-auxdec-vms_64.ads (Short_Address): Wrap it in a type.
14476
14477 2006-02-13  Javier Miranda  <miranda@adacore.com>
14478
14479         * sem_aggr.adb (Resolve_Record_Aggregate): Restructure the code that
14480         handles default-initialized components to keep separate the management
14481         of this feature but also avoid the unrequired resolution and
14482         expansion of components that do not have partially initialized
14483         values.
14484         (Collect_Aggr_Bounds): Add '\' in 2-line warning message.
14485         (Check_Bounds): Likewise.
14486         (Check_Length): Likewise.
14487
14488 2006-02-13  Javier Miranda  <miranda@adacore.com>
14489             Ed Schonberg  <schonberg@adacore.com>
14490
14491         * sem_attr.adb (Analyze_Attribute): In case of 'Class applied to an
14492         abstract interface type call analyze_and_resolve to expand the type
14493         conversion into the corresponding displacement of the
14494         reference to the base of the object.
14495         (Eval_Attribute, case Width): For systems where IEEE extended precision
14496         is supported, the maximum exponent occupies 4 decimal digits.
14497         (Accessibility_Message): Add '\' in 2-line warning message.
14498         (Resolve_Attribute): Likewise.
14499         (case Attribute_Access): Significantly revise checks
14500         for illegal access-to-subprogram Access attributes to properly enforce
14501         the rules of 3.10.2(32/2).
14502         Diagnose use of current instance with an illegal attribute.
14503
14504         * sem_util.ads, sem_util.adb (Enclosing_Generic_Body): Change formal
14505         to a Node_Id.
14506         (Enclosing_Generic_Unit): New function to return a node's innermost
14507         enclosing generic declaration node.
14508         (Compile_Time_Constraint_Error): Remove '!' in warning messages.
14509         (Type_Access_Level): The accessibility level of anonymous acccess types
14510         associated with discriminants is that of the current instance of the
14511         type, and that's deeper than the type itself (AARM 3.10.2 (12.3.21)).
14512         (Compile_Time_Constraint_Error): Handle case of conditional expression.
14513         (Kill_Current_Values_For_Entity): New function
14514         (Enter_Name): Change formal type to Entity_Id
14515
14516 2006-02-13  Hristian Kirtchev  <kirtchev@adacore.com>
14517             Ed Schonberg  <schonberg@adacore.com>
14518             Gary Dismukes  <dismukes@adacore.com>
14519
14520         * sem_ch10.adb (Check_Redundant_Withs): New procedure in
14521         Analyze_Compilation_Unit.
14522         Detect and warn on redundant with clauses detected in a package spec
14523         and/or body when -gnatwr is used.
14524         (Analyze_Context): Analyze config pragmas before other items
14525         (Install_Context_Items): Don't analyze config pragmas here
14526         (Install_Limited_Withed_Unit): Set limited entity of package in
14527         with_clause so that cross-reference information or warning messages on
14528         unused packages can be properly generated
14529         (Is_Visible_Through_Renamings): Return false if the limited_with_clause
14530         has Error_Posted set. Prevent infinite loops in illegal programs.
14531         (Check_Private_Child_Unit): Move test for a nonprivate with clause down
14532         to the point of the error test requiring the current unit to be private.
14533         This ensures that private with clauses are not exempted from the basic
14534         checking for being a descendant of the same library unit parent as a
14535         withed private descendant unit.
14536         (Check_Private_Limited_Withed_Unit): Revise the checking algorithm to
14537         handle private with clauses properly, as well as to account for cases
14538         where the withed unit is a public descendant of a private ancestor
14539         (in which case the current unit must be a descendant of the private
14540         ancestor's parent). The spec comments were updated accordingly. Also,
14541         the old error message in this subprogram was replaced with error
14542         messages that mirror the errors tested and reported by
14543         Check_Private_Child_Unit.
14544         Parameter and variable names improved for readability.
14545         (Install_Limited_Context_Clauses): Remove test for a withed unit being
14546         private as the precondition for calling
14547         Check_Private_Limited_Withed_Unit since that subprogram has been
14548         revised to test public units as well as private units.
14549
14550 2006-02-13  Thomas Quinot  <quinot@adacore.com>
14551             Robert Dewar  <dewar@adacore.com>
14552             Ed Schonberg  <schonberg@adacore.com>
14553             Javier Miranda  <miranda@adacore.com>
14554
14555         * sem_ch12.adb (Inline_Instance_Body): Remove erroneous assumption
14556         that Scope_Stack.First = 1.
14557         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
14558         were not always properly handled previously.
14559         (Formal_Entity): Complete rewrite, to handle properly some complex case
14560         with multiple levels of parametrization by formal packages.
14561         (Analyze_Formal_Derived_Type): Propagate Ada 2005 "limited" indicator
14562         to the corresponding derived type declaration for proper semantics.
14563
14564         * sem_prag.adb (Analyze_Pragma): Remove '!' in warning message.
14565         (Check_Component): Enforce restriction on components of
14566         unchecked_unions: a component in a variant cannot contain tasks or
14567         controlled types.
14568         (Unchecked_Union): Allow nested variants and multiple discriminants, to
14569         conform to AI-216.
14570         Add pragma Ada_2005 (synonym for Ada_05)
14571         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
14572         were not always properly handled previously.
14573         Document that pragma Propagate_Exceptions has no effect
14574         (Analyze_Pragma, case Pure): Set new flag Has_Pragma_Pure
14575         (Set_Convention_From_Pragma): Check that if a convention is
14576         specified for a dispatching operation, then it must be
14577         consistent with the existing convention for the operation.
14578         (CPP_Class): Because of the C++ ABI compatibility, the programmer is no
14579         longer required to specify an vtable-ptr component in the record. For
14580         compatibility reasons we leave the support for the previous definition.
14581         (Analyze_Pragma, case No_Return): Allow multiple arguments
14582
14583         * sem_ch3.ads, sem_ch3.adb (Check_Abstract_Overriding): Flag a
14584         non-overrideen inherited operation with a controlling result as
14585         illegal only its implicit declaration comes from the derived type
14586         declaration of its result's type.
14587         (Check_Possible_Deferred_Completion): Relocate the object definition
14588         node of the subtype indication of a deferred constant completion rather
14589         than directly analyzing it. The analysis of the generated subtype will
14590         correctly decorate the GNAT tree.
14591         (Record_Type_Declaration): Check whether this is a declaration for a
14592         limited derived record before analyzing components.
14593         (Analyze_Component_Declaration): Diagnose record types  not explicitly
14594         declared limited when a component has a limited type.
14595         (Build_Derived_Record_Type): Code reorganization to check if some of
14596         the inherited subprograms of a tagged type cover interface primitives.
14597         This check was missing in case of a full-type associated with a private
14598         type declaration.
14599         (Constant_Redeclaration): Check that the subtypes of the partial and the
14600         full view of a constrained deferred constant statically match.
14601         (Mentions_T): A reference to the current type in an anonymous access
14602         component declaration  must be an entity name.
14603         (Make_Incomplete_Type_Declaration): If type is tagged, set type of
14604         class_wide type to refer to full type, not to the incomplete one.
14605         (Add_Interface_Tag_Components): Do nothing if RE_Interface_Tag is not
14606         available. Required to give support to the certified run-time.
14607         (Analyze_Component_Declaration): In case of anonymous access components
14608         perform missing checks for AARM 3.9.2(9) and 3.10.2 (12.2).
14609         (Process_Discriminants): For an access discriminant, use the
14610         discriminant specification as the associated_node_for_itype, to
14611         simplify accessibility checks.
14612
14613 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
14614             Javier Miranda  <miranda@adacore.com>
14615
14616         * sem_ch4.adb (Remove_Abstract_Interpretations): Even if there are no
14617         abstract interpretations on an operator, remove interpretations that
14618         yield Address or a type derived from it, if one of the operands is an
14619         integer literal.
14620         (Try_Object_Operation.Try_Primitive_Operation,
14621         Try_Object_Operation.Try_Class_Wide_Operation): Set proper source
14622         location when creating the new reference to a primitive or class-wide
14623         operation as a part of rewriting a subprogram call.
14624         (Try_Primitive_Operations): If context requires a function, collect all
14625         interpretations after the first match, because there may be primitive
14626         operations of the same type with the same profile and different return
14627         types. From code reading.
14628         (Try_Primitive_Operation): Use the node kind to choose the proper
14629         operation when a function and a procedure have the same parameter
14630         profile.
14631         (Complete_Object_Operation): If formal is an access parameter and prefix
14632         is an object, rewrite as an Access reference, to match signature of
14633         primitive operation.
14634         (Find_Equality_Type, Find_One_Interp): Handle properly equality given
14635         by an expanded name with prefix Standard, when the operands are of an
14636         anonymous access type.
14637         (Remove_Abstract_Operations): If the operation is abstract because it is
14638         inherited by a user-defined type derived from Address, remove it as
14639         well from the set of candidate interpretations of an overloaded node.
14640         (Analyze_Membership_Op): Membership test not applicable to cpp-class
14641         types.
14642
14643 2006-02-13  Bob Duff  <duff@adacore.com>
14644
14645         * sem_ch8.adb (Note_Redundant_Use): Suppress unhelpful warning about
14646         redundant use clauses.
14647         In particular, if the scope of two use clauses overlaps, but one is not
14648         entirely included in the other, we should not warn.  This can happen
14649         with nested packages.
14650         (Analyze_Subprogram_Renaming): Protect the compiler against previously
14651         reported errors. The bug was reported when the compiler was built
14652         with assertions enabled.
14653         (Find_Type): If the node is a 'Class reference and the prefix is a
14654         synchronized type without a corresponding record, return the type
14655         itself.
14656
14657 2006-02-13  Javier Miranda  <miranda@adacore.com>
14658
14659         * sem_ch9.adb (Analyze_Protected_Type, Analyze_Task_Type): Check that
14660         if this is the full-declaration associated with a private declaration
14661         that implement interfaces, then the private type declaration must be
14662         limited.
14663         (Analyze_Single_Protected, Analyze_Single_Task): Do not mark the object
14664         as aliased. The use of the 'access attribute is not available for such
14665         object (for this purpose the object should be explicitly marked as
14666         aliased, but being an anonymous type this is not possible).
14667
14668 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
14669             Robert Dewar  <dewar@adacore.com>
14670
14671         * sem_elab.adb (Same_Elaboration_Scope): A package that is a
14672         compilation unit is an elaboration scope.
14673         (Add_Task_Proc): Add '\' in 2-line warning message.
14674         (Activate_All_Desirable): Deal with case of unit with'ed by parent
14675
14676 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
14677             Javier Miranda  <miranda@adacore.com>
14678
14679         * sem_type.adb (Write_Overloads): Improve display of candidate
14680         interpretations.
14681         (Add_One_Interp): Do not add to the list of interpretations aliased
14682         entities corresponding with an abstract interface type that is an
14683         immediate ancestor of a tagged type; otherwise we have a dummy
14684         conflict between this entity and the aliased entity.
14685         (Disambiguate): The predefined equality on universal_access is not
14686         usable if there is a user-defined equality with the proper signature,
14687         declared in the same declarative part as the designated type.
14688         (Find_Unique_Type): The universal_access equality operator defined under
14689         AI-230 does not cover pool specific access types.
14690         (Covers): If one of the types is a generic actual subtype, check whether
14691         it matches the partial view of the other type.
14692
14693 2006-02-13  Thomas Quinot  <quinot@adacore.com>
14694
14695         * sinput-d.adb (Write_Line): Update the Source_Index_Table after each
14696         line. This is necessary to allow In_Extended_Main_Unit to provide
14697         correct results for itypes while writing out expanded source.
14698         (Close_File): No need to update the source_index_table here since it's
14699         now done for each line.
14700
14701 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
14702             Robert Dewar  <dewar@adacore.com>
14703
14704         * sprint.adb (Write_Itype): Preserve Sloc of declaration, if any, to
14705         preserve the source unit where the itype is declared, and prevent a
14706         backend abort.
14707         (Note_Implicit_Run_Time_Call): New procedure
14708         (Write_Itype): Handle missing cases (E_Class_Wide_Type and
14709         E_Subprogram_Type)
14710
14711         * sprint.ads: Document use of $ for implicit run time routine call
14712
14713 2006-02-13  Quentin Ochem  <ochem@adacore.com>
14714
14715         * s-stausa.adb (Initialize_Analyzer): fixed error in assignment of
14716         task name.
14717
14718 2006-02-13  Bob Duff  <duff@adacore.com>
14719
14720         * s-valint.adb (Scan_Integer): Call Scan_Raw_Unsigned instead of
14721         Scan_Unsigned, so we do not scan leading blanks and sign twice.
14722         Integer'Value("- 5") and Integer'Value("-+5") now correctly
14723         raise Constraint_Error.
14724
14725         * s-vallli.adb (Scan_Long_Long_Integer): Call
14726         Scan_Raw_Long_Long_Unsigned instead of Scan_Long_Long_Unsigned, so we
14727         do not scan leading blanks and sign twice.
14728         Integer'Value("- 5") and Integer'Value("-+5") now correctly
14729         raise Constraint_Error.
14730
14731         * s-valllu.ads, s-valllu.adb (Scan_Raw_Long_Long_Unsigned,
14732         Scan_Long_Long_Unsigned): Split out most of the processing from
14733         Scan_Long_Long_Unsigned out into
14734         Scan_Raw_Long_Long_Unsigned, so that Val_LLI can call the Raw_ version.
14735         This prevents scanning leading blanks and sign twice.
14736         Also fixed a bug: Modular'Value("-0") should raise Constraint_Error
14737         See RM-3.5(44).
14738
14739         * s-valuns.ads, s-valuns.adb (Scan_Raw_Unsigned, Scan_Unsigned): Split
14740         out most of the processing from Scan_Unsigned out into
14741         Scan_Raw_Unsigned, so that Val_LLI can call the Raw_ version.
14742         This prevents scanning leading blanks and sign twice.
14743
14744         * s-valuti.ads, s-valuti.adb (Scan_Plus_Sign): Add Scan_Plus_Sign, for
14745         use with Modular'Value attribute.
14746         (Scan_Plus_Sign): Add Scan_Plus_Sign, for use with Modular'Value
14747         attribute.
14748
14749 2006-02-13  Robert Dewar  <dewar@adacore.com>
14750
14751         * s-wchjis.adb (JIS_To_EUC): Raise Constraint_Error for invalid value
14752
14753 2006-02-13  Eric Botcazou  <ebotcazou@adacore.com>
14754
14755         * tracebak.c (PPC AIX/Darwin): Define FORCE_CALL to 1.
14756         (PPC VxWorks): Likewise.
14757         (Generic unwinder): Define FORCE_CALL to 0 if not already defined.
14758         (forced_callee): Make non-inlinable and non-pure.
14759         (__gnat_backtrace): Call forced_callee if FORCE_CALL is set to 1.
14760
14761 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
14762             Ben Brosgol  <brosgol@adacore.com>
14763             Robert Dewar  <dewar@adacore.com>
14764
14765         * gnat_rm.texi, gnat_ugn.texi: Remove limitations with sparc m64
14766         support.
14767         Document that gnatbind -M option is for cross environments only.
14768         Added description of using gnatmem to trace gnat rtl allocs and deallocs
14769         Add note on use of $ to label implicit run time calls
14770         Add documentation for -gnatyI (check mode IN)
14771         Updated chapter on compatibility with HP Ada
14772         VMS-oriented edits.
14773         Ran spell and corrected errors
14774         Add documentation for gnatbind -d and rework documentation of -D
14775         at the same time.
14776         Add subprogram/data elimination section.
14777         Minor editing of annex A.
14778         Add section for gnatcheck.
14779         Add documentation for restriction No_Dispatching_Calls
14780         Add documentation for pragma Ada_2005
14781         Remove mention of obsolete pragma Propagate_Exceptions
14782         Document that pragma Unreferenced can appear after DO in ACCEPT
14783         Clarify Pure_Function for library level units
14784         Mention Max/Min in connection with No_Implicit_Conditionals
14785         No_Wide_Characters restriction is no longer partition-wide
14786         Add a nice example for Universal_Literal_String attribute
14787         Document that pragma No_Return can take multiple arguments
14788
14789         * ug_words: Added entry for gnatcheck
14790
14791         * g-ctrl_c.ads (Install_Handler): Enhance comments
14792
14793         * g-os_lib.ads: Add comments to OS_Exit that it is abrupt termination
14794
14795         * g-trasym.ads: Add documentation on how to do off line symbolic
14796         traceback computation.
14797
14798         * s-fatgen.adb: Add comments for Unaligned_Valid
14799
14800         * stand.ads: Fix typo in comment
14801
14802 2006-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14803
14804         * Make-lang.in (check-gnat): Run run_acats with $(SHELL).
14805
14806 2006-02-06  Roger Sayle  <roger@eyesopen.com>
14807
14808         * decl.c (gnat_substitute_in_type): Don't handle CHAR_TYPE.
14809
14810 2006-02-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14811
14812         PR target/25926
14813         * initialize.c (__gnat_initialize): Provide HP-UX 10 host and target
14814         implementation that calls __main.
14815
14816 2006-01-25  Peter O'Gorman  <peter@pogma.com>
14817
14818         PR bootstrap/25859
14819         * Makefile.in (GCC_LINK): Remove quotes.
14820         (tools targets): Link with either $(GNATLINK) --GCC="$(GCC_LINK)"
14821         or $(GCC_LINK).
14822
14823         (powerpc-darwin): Pass -shared-libgcc when building shared library.
14824
14825 2006-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14826
14827         PR ada/24533
14828         * s-osinte-linux-hppa.ads: Reduce alignment of atomic_lock_t to 8.
14829
14830 2005-12-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14831
14832         * s-osinte-linux-hppa.ads: Correct alignment of atomic_lock_t.
14833
14834 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
14835
14836         * Makefile.in: Remove dummy setting of GCC_FOR_TARGET, no longer
14837         needed.
14838
14839 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
14840
14841         * Make-lang.in: Update dependencies
14842
14843 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
14844
14845         * Make-lang.in: Add rule for ada/exp_sel.o
14846
14847 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
14848
14849         * Makefile.in (mingw section): Remove EH_MECHANISM setting.
14850
14851 2005-12-09  Arnaud Charlet  <charlet@adacore.com>
14852
14853         * gnatvsn.ads (Library_Version): Bump to version 4.2
14854         (ASIS_Version_Number): Bumped.
14855
14856 2005-12-09  Doug Rupp  <rupp@adacore.com>
14857
14858         * mlib-tgt-vms-ia64.adb, mlib-tgt-vms-alpha.adb (Is_Interface): Change
14859         Ada bind file prefix on VMS from b$ to b__.
14860         (Build_Dynamic_Library): Change Init file suffix on VMS from $init to
14861         __init.
14862
14863         * prj-nmsc.adb: Change some Hostparm.OpenVMS checks to
14864         Targparm.OpenVMS_On_Target.
14865         (Object_Suffix): Initialize with target object suffix.
14866         (Get_Unit): Change Ada bind file prefix on VMS from b$ to b__.
14867
14868         * butil.adb: Change some Hostparm.OpenVMS checks to
14869         Targparm.OpenVMS_On_Target.
14870
14871         * clean.adb: Change some Hostparm.OpenVMS checks to
14872         Targparm.OpenVMS_On_Target.
14873         (Object_Suffix): Initialize with call to Get_Target_Object_Suffix.
14874         ({declaraction},Delete_Binder_Generated_Files,{initialization}): Change
14875         Ada bind file prefix on VMS from b$ to b__.
14876
14877         * gnatlink.adb (Process_Args): Call Add_Src_Search_Dir for -I in
14878         --GCC so that Get_Target_Parameters can find system.ads.
14879         (Gnatlink): Call Get_Target_Parameters in mainline.
14880         Initialize standard packages for Targparm.
14881         Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target.
14882         (Process_Args): Also Check for object files with target object
14883         extension.
14884         (Make_Binder_File_Names): Create with target object extension.
14885         (Make_Binder_File_Names): Change Ada bind file prefix on VMS from b$
14886         to b__.
14887
14888         * mlib-prj.adb: Change some Hostparm.OpenVMS checks to
14889         Targparm.OpenVMS_On_Target.
14890         ({declaration},Build_Library,Check_Library): Change Ada bind file
14891         prefix on VMS from b$ to b__.
14892
14893         * osint-b.adb: Change some Hostparm.OpenVMS checks to
14894         Targparm.OpenVMS_On_Target.
14895         (Create_Binder_Output): Change Ada bind file prefix on VMS from b$ to
14896         b__.
14897
14898         * targext.c: New file.
14899
14900         * Makefile.in: add support for vxworks653 builds
14901         (../../vxaddr2line): gnatlink with targext.o.
14902         (TOOLS_LIBS): Move targext.o to precede libgnat.
14903         (init.o, initialize.o): Minor clean up in dependencies.
14904         (GNATLINK_OBJS): Add targparm.o, snames.o
14905         Add rules fo building targext.o and linking it explicitly with all
14906         tools.
14907         Also add targext.o to gnatlib.
14908
14909         * Make-lang.in: Add rules for building targext.o and linking it in
14910         with gnat1 and gnatbind.
14911         Add entry for exp_sel.o.
14912
14913         * osint.adb Change some Hostparm.OpenVMS checks to
14914         Targparm.OpenVMS_On_Target.
14915         (Object_File_Name): Use target object suffix.
14916
14917         * osint.ads (Object_Suffix): Remove, no longer used.
14918         (Target_Object_Suffix): Initialize with target object suffix.
14919
14920         * rident.ads: Add special exception to license.
14921
14922         * targparm.adb (Get_Target_Parameters): Set the value of
14923         Multi_Unit_Index_Character after OpenVMS_On_Target gets its definitive
14924         value.
14925         (Get_Target_Parameters): Set OpenVMS_On_Target if openvms.
14926         
14927         * targparm.ads: Add special exception to license.
14928
14929         * g-os_lib.ads, g-os_lib.adb (Get_Target_Debuggable_Suffix): New
14930         function.
14931         (Copy_File): Make sure from file is closed if error on to file
14932         (Get_Target_Executable_Suffix, Get_Target_Object_Suffix): New functions.
14933
14934         * make.adb (Object_Suffix): Intialize with Get_Target_Object_Suffix.
14935         (Executable_Suffix): Intialize with Get_Target_Executable_Suffix.
14936
14937         * osint-c.adb (Set_Output_Object_File_Name): Initialize extension with
14938         target object suffix.
14939
14940 2005-12-09  Jose Ruiz  <ruiz@adacore.com>
14941             Quentin Ochem  <ochem@adacore.com>
14942             Florian Villoing  <villoing@adacore.com>
14943
14944         * a-taster.ads, a-taster.adb: New files.
14945
14946         * a-elchha.adb (Last_Chance_Handler): Change the task termination soft
14947         link to the version that does nothing. This way the task termination
14948         routine is not executed twice for the environment task when finishing
14949         because of an unhandled exception.
14950
14951         * a-exextr.adb (Notify_Unhandled_Exception): Call the task termination
14952         handler because of an unhandled exception.
14953
14954         * a-taside.adb (Abort_Tasks): Call the Abort_Tasks procedure from
14955         System.Tasking.Utilities instead of that in System.Tasking.Stages.
14956
14957         * s-finimp.adb (initialization code): Modify the soft link for the
14958         finalization of the global list instead of Adafinal.
14959
14960         * s-soflin.ads, s-soflin.adb (Task_Termination_NT): Add this
14961         non-tasking version of the soft link for task termination. We do
14962         nothing since if we are using the non-tasking version it
14963         means that the task termination functionality is not used.
14964         (Null_Finalize_Global_List): Add this null version for the procedure
14965         in charge of finalizing the global list for controlled objects.
14966         (Null_Adafinal): Remove this procedure. Adafinal_NT has been created
14967         instead for handling run-time termination in a more flexible way.
14968         (Adafinal_NT): This new procedure will take care of finalizing the
14969         global list for controlled objects if needed, but no tasking
14970         finalization.
14971
14972         * s-tarest.adb (Task_Lock): Do not try to lock again the
14973         Global_Task_Lock if we already own it. Otherwise, we get blocked in
14974         some run-time operations.
14975         (Task_Unlock): Do not try to actually unlock the Global_Task_Lock
14976         until all nested locks have been released.
14977         (Task_Wrapper): Call the fall-back task termination handler. It
14978         applies to all tasks but the environment task.
14979         (Finalize_Global_Tasks): Add the call for the task termination
14980         procedure for the environment task.
14981         (Task_Wrapper): suppress warnings around declaration of
14982         Secondary_Stack_Address.
14983
14984         * s-tasini.adb (Final_Task_Unlock): Global_Task_Lock_Nesting has been
14985         moved to the Common_ATCB record.
14986         (Task_Lock): Global_Task_Lock_Nesting has been moved to the
14987         Common_ATCB record.
14988         (Task_Unlock): Global_Task_Lock_Nesting has been moved to the
14989         Common_ATCB record.
14990
14991         * s-taskin.adb (Initialize_ATCB): Initialize Global_Task_Lock_Nesting,
14992         Fall_Back_Handler, and Specific_Handler.
14993
14994         * s-taskin.ads (Cause_Of_Termination): Redefine this type here, already
14995         defined in Ada.Task_Termination, to avoid circular dependencies.
14996         (Termination_Handler): Redefine this type here, alredy defined in
14997         Ada.Task_Termination, for avoiding circular dependencies.
14998         (Common_ATCB): Add the Fall_Back_Handler and Specific_Handler required
14999         for storing task termination handlers. In addition,
15000         Global_Task_Lock_Nesting has been moved from Ada_Task_Control_Block to
15001         Common_ATCB because it is used by both the regular and the restricted
15002         run times.
15003         (Ada_Task_Control_Block): Move Global_Task_Lock_Nesting from here to
15004         Common_ATCB because it is used by both the regular and the restricted
15005         run times.
15006         (Common_ATCB): Added a dynamic task analyzer field.
15007
15008         * s-tassta.adb (Abort_Tasks): Move the code in charge of checking
15009         potentially blocking operations to System.Tasking.Utilities.Abort_Tasks.
15010         (Task_Wrapper): Call the task termination handler. It applies to all
15011         tasks but the environment task.
15012         (Finalize_Global_Tasks): Call the task termination procedure for the
15013         environment task. The call to Finalize_Global_List is now performed
15014         using the soft links mechanism.
15015         (Task_Wrapper): added dynamic stack analysis.
15016
15017         * s-tasuti.adb (Abort_Tasks): The code in charge of checking
15018         potentially blocking operations has been moved from
15019         System.Tasking.Stages.Abort_Tasks to this procedure. There can be
15020         direct calls to System.Tasking.Utilities.Abort_Tasks that do not pass
15021         through System.Tasking.Stages.Abort_Tasks, and we do not want to miss
15022         this run-time check.
15023
15024         * s-solita.adb (Task_Termination_Handler_T): Add this task-safe version
15025         of task termination procedure.
15026         (Init_Tasking_Soft_Links): Install the task-safe version of the soft
15027         link for the task termination procedure.
15028
15029         * bindusg.adb: (Bindusg): Added documentation for -u option.
15030
15031         * bindgen.adb (Get_Main_Ada) Added handling of dynamic stack analysis.
15032         (Get_Main_C): Add handling of dynamic stack analysis.
15033         (Gen_Output_File_C): Add external functions for dynamic stack analysis.
15034
15035         * Makefile.rtl: Add entry for a-taster (Ada.Task_Termination).
15036         (GNATRTL_NONTASKING_OBJS) Added entries for dynamic stack analysis
15037         (GNATRTL_NONTASKING_OBJS): Add AltiVec files.
15038
15039         * opt.ads: Added flags used by dynamic stack measurement.
15040         (Max_Line_Length): Remove (not used anymore)
15041
15042         * s-io.ads, s-io.adb (Standard_Error): new subprogram
15043         (Standart_Output): new subprogram
15044         (Set_Output): new subprogram
15045         (Put): now uses the value of Current_Out to know if the output has to be
15046         send to stderr or stdout.
15047         
15048         * s-stausa.ads: Complete implementation.
15049
15050         * switch-b.adb: Added handling of -u switch for dynamic stack analysis.
15051         
15052         * impunit.adb (Non_Imp_File_Names_05): Add Ada.Task_Termination to the
15053         list of Ada 05 files.
15054         (GNAT Library Units): Add AltiVec files.
15055
15056         * g-allein.ads, g-alleve.adb, g-alleve.ads, g-altcon.adb,
15057         g-altcon.ads, g-altive.ads, g-alveop.adb, g-alveop.ads
15058         g-alvety.ads, g-alvevi.ads: New files providing altivec API.
15059
15060 2005-12-09  Nicolas Setton  <setton@adacore.com>
15061
15062         * adaint.c (__gnat_locate_regular_file): Return immediately if
15063         file_name is empty.
15064
15065 2005-12-09  Javier Miranda  <miranda@adacore.com>
15066             Hristian Kirtchev  <kirtchev@adacore.com>
15067
15068         * a-tags.ads, a-tags.adb (Offset_To_Top): Moved from the package body
15069         to the specification because the frontend generates code that uses this
15070         subprogram.
15071         (Set_Interface_Table): Add missing assertion.
15072         Update documentation describing the run-time structure.
15073         (Displace): New subprogram that displaces the pointer to the object
15074         to reference one of its secondary dispatch tables.
15075         (IW_Membership): Modified to use the new table of interfaces.
15076         (Inherit_TSD): Modified to use the new table of interfaces.
15077         (Register_Interface_Tag): Use the additional formal to fill the
15078         contents of the new table of interfaces.
15079         (Set_Interface_Table): New subprogram that stores in the TSD the
15080         pointer to the table of interfaces.
15081         (Set_Offset_To_Top): Use the additional formal to save copy of
15082         the offset value in the table of interfaces.
15083         Update structure of GNAT Primary and Secondary dispatch table diagram.
15084         Add comment section on GNAT dispatch table prologue.
15085         (Offset_To_Signature): Update the constant value of the Signature field.
15086         (Dispatch_Table): Update comment on hidden fields in the prologue.
15087         (Get_Entry_Index, Get_Prim_Op_Kind, Get_Offset_Index, OSD,
15088         Set_Entry_Index, Set_Offset_Index, Set_Prim_Op_Kind, SSD, TSD): Change
15089         the type of formal parameter T to Tag, introduce additional assertions.
15090         (Get_Num_Prim_Ops, Set_Num_Prim_Ops): Remove an unnecessary type
15091         conversion.
15092         (Get_Tagged_Kind, Set_Tagged_Kind): New bodies.
15093
15094         * exp_ch6.adb (Register_Interface_DT_Entry): Remove the Thunk_Id actual
15095         in all the calls to Expand_Interface_Thunk. Instead of referencing the
15096         record component containing the tag of the secondary dispatch table we
15097         have to use the Offset_To_Top run-time function to get this information;
15098         otherwise if the pointer to the base of the object has been displace
15099         we get a wrong value if we use the 'position attribute.
15100
15101         * exp_disp.adb (Expand_Interface_Thunk): Remove the Thunk_Id actual in
15102         all the calls to Expand_Interface_Thunk.
15103         (Make_Secondary_DT): Secondary dispatch tables do not have a table of
15104         interfaces; hence the call to Set_Interface_Table was clearly wrong.
15105         (Collect_All_Interfaces): Modify the internal subprogram Collect to
15106         ensure that the interfaces implemented by the ancestors are placed
15107         at the header of the generated list.
15108         (Expand_Interface_Conversion): Handle the case in which the displacement
15109         associated with the interface conversion is not statically known. In
15110         this case we generate a call to the new run-time subprogram Displace.
15111         (Make_DT): Generate and fill the new table of interfaces.
15112         (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Add entries for
15113         Get_Tagged_Kind and Set_Tagged_Kind.
15114         (Tagged_Kind): New function that determines the tagged kind of a type
15115         with respect to limitedness and concurrency and returns a reference to
15116         RE_Tagged_Kind.
15117         (Make_Disp_Asynchronous_Select_Body, Make_Disp_Conditional_Select_Body,
15118         Make_Disp_Timed_Select_Body): Correctly retrieve the pointer to the
15119         primary dispatch table for a type.
15120         (Make_DT, Make_Secondary_DT): Set the tagged kind in the primary and
15121         secondary dispatch table respectively of a tagged type.
15122
15123         * exp_disp.ads (Expand_Interface_Thunk): Remove Thunk_Id formal.
15124         (Expand_Interface_Conversion): New subprogram to indicate if the
15125         displacement of the type conversion is statically known.
15126         (DT_Access_Action): Add values Get_Tagged_Kind and Set_Tagged_Kind.
15127
15128         * rtsfind.ads (RE_Offset_To_Top): New entity
15129         (RTU_Id): Add Ada_Task_Termination to the list so that it is made
15130         accessible to users.
15131         (Re_Displace): New entity
15132         (RE_Interface_Data): New entity
15133         (RE_Set_Interface_Data): New_Entity
15134         (RE_Id, RE_Unit_Table): Add entry for RE_Get_Tagged_Kind,
15135         Set_Tagged_Kind, RE_Tagged_Kind, RE_TK_Abstract_Limited_Tagged,
15136         RE_TK_Abstract_Tagged, RE_TK_Limited_Tagged, RE_TK_Protected,
15137         RE_TK_Tagged, RE_TK_Task.
15138
15139         * exp_ch3.adb (Init_Secondary_Tags): Modify the subprogram
15140         Init_Secondary_Tags_Internal to allow its use with interface types and
15141         also to generate the code for the new additional actual required
15142         by Set_Offset_To_Top.
15143         (Build_Init_Statements): In case of components associated with abstract
15144         interface types there is no need to generate a call to its IP.
15145         (Freeze_Record_Type): Generate Select Specific Data tables only for
15146         concurrent types.
15147         (Make_Predefined_Primitive_Specs, Predefined_Primitive_Bodies): Generate
15148         the bodies and specifications of the predefined primitive operations
15149         dealing with dispatching selects and abort, 'Callable, 'Terminated only
15150         for concurrent types.
15151
15152         * exp_sel.ads, exp_sel.adb: New files.
15153
15154         * exp_ch9.adb (Build_Protected_Entry, Expand_N_Protected_Body,
15155         Expand_N_Protected_Type_Declaration, Make_Initialize_Protection): Handle
15156         properly protected objects and attach handler in the case of the
15157         restricted profile.
15158         Move embeded package Select_Expansion_Utilities into a separate external
15159         package.
15160         (Expand_N_Asynchronous_Select, Expand_N_Conditional_Select,
15161         Expand_N_Timed_Entry_Call): Correct calls external package Exp_Sel.
15162         (Build_K, Build_S_Assignment): New subprograms, part of the select
15163         expansion utilities.
15164         (Expand_N_Asynchronous_Select, Expand_N_Conditional_Entry_Call,
15165         Expand_N_Timed_Entry_Call): Optimize expansion of select statements
15166         where the trigger is a dispatching procedure of a limited tagged type.
15167
15168 2005-12-09  Olivier Hainque  <hainque@adacore.com>
15169
15170         * decl.c (gnat_to_gnu_entity, renaming object case): Don't early expand
15171         pointer initialization values. Make a SAVE_EXPR instead. Add comments
15172         about the use and expansion of SAVE_EXPRs in the various possible
15173         renaming handling cases.
15174         (components_to_record, compare_field_bitpos): Sort by DECL_UID, not by
15175         abusing DECL_FCONTEXT.
15176
15177 2005-12-09  Matthew Heaney  <heaney@adacore.com>
15178
15179         * a-convec.adb (Merge): Added assertions to check whether vector params
15180         are sorted.
15181
15182         * a-coinve.adb (Merge): Added assertions to check whether vector params
15183         are sorted.
15184
15185         * a-cohama.ads (Cursor'Write): raises Program_Error per latest AI-302
15186         draft.
15187         (Cursor'Read): raises PE
15188
15189         * a-cohama.adb (Insert.New_Node): Uses box-style syntax to init elem
15190         to its default value.
15191
15192         * a-cihama.adb: Manually check whether cursor's key and elem are
15193         non-null
15194
15195         * a-cidlli.ads, a-cidlli.adb (Splice): Changed param name and param mode
15196         (Merge): Assert that target and source lists are in order
15197         (Swap): Declare non-const temporaries, to pass to Splice
15198
15199         * a-cdlili.ads: (Splice): Changed param name and param mode
15200
15201         * a-cdlili.adb: (Splice): Changed param name and param mode
15202         (Merge): Assert that target and source lists are in order
15203         (Swap): Declare non-const temporaries, to pass to Splice
15204
15205         * a-ciorma.ads, a-coorma.ads: (Read): declare Stream param as not null
15206         (Write): declare Stream param as not null
15207
15208         * a-ciorma.adb, a-coorma.adb: All explicit raise statements now include
15209         an exception message.
15210
15211 2005-12-09  Thomas Quinot  <quinot@adacore.com>
15212             Robert Dewar  <dewar@adacore.com>
15213
15214         * hostparm.ads (Max_Line_Length): Set to Types.Column_Number'Last - 1,
15215         which is the absolute maximum length we can support.
15216
15217         * frontend.adb: For the processing of configuration pragma files,
15218         remove references to Opt.Max_Line_Length, which is not checked anymore.
15219
15220         * namet.ads (Name_Buffer): Adjust size to reflect increase on max line
15221         length.
15222
15223         * scn.adb, scng.adb: 
15224         Always check line length against the absolute supported maximum,
15225         Hostparm.Max_Line_Length.
15226
15227         * stylesw.adb (Set_Style_Check_Options, case M): The maximum supported
15228         value for the maximum line length is Max_Line_Length (not
15229         Column_Number'Last).
15230         Minor error msg update
15231         (Set_Style_Check_Options): New interface returning error msg
15232         Minor code reorganization (processing for 'M' was out of alpha order)
15233
15234         * switch-c.adb: New interface for Set_Style_Check_Options
15235
15236         * stylesw.ads (Set_Style_Check_Options): New interface returning error
15237         msg.
15238
15239 2005-12-09  Javier Miranda  <miranda@adacore.com>
15240
15241         * exp_aggr.adb (Build_Record_Aggr_Code): Default-initialialized records
15242         with IP subprogram were only supported if there were limited types.
15243
15244         * sem_aggr.adb (Resolve_Record_Aggregate): Default-initialialized
15245         records with IP subprogram were only supported if there were limited
15246         types.
15247
15248 2005-12-09  Olivier Hainque  <hainque@adacore.com>
15249             Eric Botcazou  <ebotcazou@adacore.com>
15250
15251         * trans.c (tree_transform, emit_check): Adjust calls to
15252         build_call_raise, passing the now expected GNAT_NODE argument.
15253
15254         * gigi.h (build_call_raise): Add a GNAT_NODE argument to convey better
15255         source line information than what the current global locus indicates
15256         when appropriate.
15257
15258         * utils2.c (build_simple_component_ref): Return 0 if the offset of the
15259         field has overflowed.
15260         (build_call_raise): Add a GNAT_NODE argument to convey better source
15261         line information than what the current global locus indicates when
15262         appropriate.
15263         (build_component_ref): Adjust call to build_call_raise.
15264
15265 2005-12-09  Pascal Obry  <obry@adacore.com>
15266
15267         * g-diopit.adb (Find): Fix test to exit the iterator and make sure that
15268         the iterator is quitting iteration on parent directory.
15269
15270 2005-12-09  Javier Miranda  <miranda@adacore.com>
15271
15272         * exp_ch5.adb (Expand_N_Assignment_Statement): In case of tagged types
15273         and the assignment to a class-wide object, before the assignment we
15274         generate a run-time check to ensure that the tag of the Target is
15275         covered by the tag of the source.
15276
15277 2005-12-09  Robert Dewar  <dewar@adacore.com>
15278
15279         * exp_imgv.adb (Expand_Image_Attribute): Generate extra boolean
15280         parameter in call to Image_Wide_Character.
15281
15282         * s-imgwch.ads, s-imgwch.adb (Image_Wide_Character): Add boolean
15283         parameter Ada_2005 to deal with annoying FFFE/FFFF inconsistency.
15284         (Image_Wide_Character): Add boolean parameter Ada_2005 to deal with
15285         annoying FFFE/FFFF inconsistency.
15286
15287 2005-12-09  Robert Dewar  <dewar@adacore.com>
15288             Javier Miranda  <miranda@adacore.com>
15289             Ed Schonberg  <schonberg@adacore.com>
15290
15291         * exp_util.ads, exp_util.adb (Is_Ref_To_Bit_Packed_Slice): Handle case
15292         of type conversion.
15293         (Find_Interface): New subprogram that given a tagged type and one of its
15294         component associated with the secondary table of an abstract interface
15295         type, return the entity associated with such abstract interface type.
15296         (Make_Subtype_From_Expr): If type has unknown discriminants, always use
15297         base type to create anonymous subtype, because entity may be a locally
15298         declared subtype or generic actual.
15299         (Find_Interface): New subprogram that given a tagged type and one of its
15300         component associated with the secondary table of an abstract interface
15301         type, return the entity associated with such abstract interface type.
15302
15303         * sem_res.adb (Resolve_Type_Conversion): Handle the case in which the
15304         conversion cannot be handled at compile time. In this case we pass this
15305         information to the expander to generate the appropriate code.
15306
15307 2005-12-09  Robert Dewar  <dewar@adacore.com>
15308             Ed Schonberg  <schonberg@adacore.com>
15309             Gary Dismukes  <dismukes@adacore.com>
15310             Javier Miranda  <miranda@adacore.com>
15311             Hristian Kirtchev  <kirtchev@adacore.com>
15312
15313         * einfo.adb (Itype_Printed): New flag
15314         (Is_Limited_Type): Derived types do not inherit limitedness from
15315         interface progenitors.
15316         (Is_Return_By_Reference_Type): Predicate does not apply to limited
15317         interfaces.
15318
15319         * einfo.ads (Itype_Printed): New flag
15320         Move Is_Wrapper_Package to proper section
15321         Add missing Inline for Is_Volatile
15322
15323         * output.ads, output.adb (Write_Erase_Char): New procedure
15324         (Save/Restore_Output_Buffer): New procedures
15325         (Save/Restore_Output_Buffer): New procedures
15326
15327         * sprint.ads, sprint.adb (Write_Itype): Handle case of record itypes
15328         Add missing support for anonymous access type
15329         (Write_Id): Insert calls to Write_Itype
15330         (Write_Itype): New procedure to output itypes
15331
15332         * par-ch12.adb (P_Formal_Derived_Type_Definition): In Ada 2005, handle
15333         use of "limited" in declaration.
15334
15335         * sinfo.ads, sinfo.adb: 
15336         Formal derived types can carry an explicit "limited" indication.
15337
15338         * sem_ch3.adb: Add with and use of Targparm.
15339         (Create_Component): If Frontend_Layout_On_Target is True and the
15340         copied component does not have a known static Esize, then reset
15341         the size and positional fields of the new component.
15342         (Analyze_Component_Declaration): A limited component is
15343         legal within a protected type that implements an interface.
15344         (Collect_Interfaces): Do not add to the list the interfaces that
15345         are implemented by the ancestors.
15346         (Derived_Type_Declaration): If the parent of the full-view is an
15347         interface perform a transformation of the tree to ensure that it has
15348         the same parent than the partial-view. This simplifies the job of the
15349         expander in order to generate the correct object layout, and it is
15350         needed because the list of interfaces of the full-view can be given in
15351         any order.
15352         (Process_Full_View): The parent of the full-view does not need to be
15353         a descendant of the parent of the partial view if both parents are
15354         interfaces.
15355         (Analyze_Private_Extension_Declaration): If declaration has an explicit
15356         "limited" the parent must be a limited type.
15357         (Build_Derived_Record_Type): A derived type that is explicitly limited
15358         must have limited ancestor and progenitors.
15359         (Build_Derived_Type): Ditto.
15360         (Process_Full_View): Verify that explicit uses of "limited" in partial
15361         and full declarations are consistent.
15362         (Find_Ancestor_Interface): Remove function.
15363         (Collect_Implemented_Interfaces): New procedure used to gather all
15364         implemented interfaces by a type.
15365         (Contain_Interface): New function used to check whether an interface is
15366         present in a list.
15367         (Find_Hidden_Interface): New function used to determine whether two
15368         lists of interfaces constitute a set equality. If not, the first
15369         differing interface is returned.
15370         (Process_Full_View): Improve the check for the "no hidden interface"
15371         rule as defined by AI-396.
15372
15373 2005-12-09  Robert Dewar  <dewar@adacore.com>
15374
15375         * freeze.adb (Freeze_Record_Type): Only test for useless pack on record
15376         types, not on record subtypes.
15377         (Freeze_Entity): Code cleanup. Add barrier to the loop
15378         that generates the references for primitive operations. This allows to
15379         remove an unnecessary exception handler.
15380         Code reformatting and comment clean ups.
15381
15382 2005-12-09  Vincent Celier  <celier@adacore.com>
15383
15384         * gnatcmd.adb (GNATCmd): GNAT CHECK accepts switch -U
15385         If GNAT CHECK is called with a project file, but with no
15386         source on the command line, call gnatcheck with all the compilable
15387         sources of the project.
15388         Take into account the new command Check, for gnatcheck. Treat as for
15389         other ASIS tools: take into account project, specific package Check and
15390         Compiler switches.
15391         For ASIS tools, add the switches in package Compiler for
15392         the invocation of the compiler.
15393
15394         * prj-attr.adb: Add package Check and its attributes
15395
15396         * vms_conv.ads (Command_Type): New command Check, for gnatcheck
15397
15398         * vms_conv.adb (Initialize): Change Params of command Check to
15399         unlimited files.
15400         Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target.
15401         Add data for new command Check
15402
15403         * vms_data.ads: Add project related qualifiers for GNAT CHECK and GNAT
15404         ELIM.
15405         Add qualifiers for Check command options
15406         (Command_Type): New command Check
15407
15408 2005-12-09  Thomas Quinot  <quinot@adacore.com>
15409
15410         * mlib-utl.adb (Ar): Use Output.Buffer_Max to determine whether a
15411         command line switch overruns the output buffer.
15412
15413 2005-12-09  Robert Dewar  <dewar@adacore.com>
15414
15415         * sem_prag.adb: Processing for new pragma Complete_Representation
15416         (Analyze_Pragma, case Debug): Implement two argument form.
15417
15418         * par-prag.adb: Entry for new pragma Complete_Representation
15419         (Prag, case Debug): Recognize two argument form of pragma Debug
15420         New interface for Set_Style_Check_Options.
15421
15422         * sem_ch13.adb: Implement new pragma Complete_Representation.
15423
15424         * snames.adb, snames.ads, snames.h: Entry for new pragma
15425         Complete_Representation.
15426
15427 2005-12-09  Gary Dismukes  <dismukes@adacore.com>
15428
15429         * sem_cat.adb (Validate_RCI_Subprogram_Declaration): Revise test for
15430         available user-specified stream attributes on limited parameters to
15431         also test the type directly rather than only its underlying type (for
15432         Ada 95) and, in the case of Ada 2005, to check that the user-specified
15433         attributes are visible at the point of the subprogram declaration.
15434         For Ada 2005, the error message is modified to indicate that the
15435         type's stream attributes must be visible (again, only for -gnat05).
15436
15437 2005-12-09  Ed Schonberg  <schonberg@adacore.com>
15438
15439         * sem_ch12.adb (Subtypes_Match): Handle properly Ada05 arrays of
15440         anonymous access types.
15441
15442         * sem_eval.adb (Subtypes_Statically_Match): Implement new rules for
15443         matching of anonymous access types and anonymous access to subprogram
15444         types. 'R'M 4.9.1 (2/2).
15445
15446 2005-12-09  Ed Schonberg  <schonberg@adacore.com>
15447
15448         * sem_ch4.adb (Remove_Abstract_Operations): Do not apply preference
15449         rule prematurely when operands are universal, remaining ambiguities
15450         will be removed during resolution.
15451         Code cleanup.
15452
15453         * sem_type.adb (Disambiguate): In Ada95 mode, discard interpretations
15454         that are Ada 2005 functions.
15455         (Has_Abstract_Interpretation): Subsidiary to
15456         Remove_Conversions, to remove ambiguities caused by abstract operations
15457         on numeric types when operands are universal.
15458
15459 2005-12-09  Robert Dewar  <dewar@adacore.com>
15460
15461         * sem_ch6.adb (Analyze_Subprogram_Body): Properly check categorization
15462         for case where spec is categorized.
15463
15464 2005-12-09  Javier Miranda  <miranda@adacore.com>
15465
15466         * sem_ch8.adb (Find_Type): In case of tagged types that are concurrent
15467         types use the corresponding record type. This was not needed before
15468         the implementation of Ada 2005 synchronized types because
15469         concurrent types were never tagged types in Ada 95.
15470
15471 2005-12-09  Ed Schonberg  <schonberg@adacore.com>
15472
15473         * sem_ch9.adb (Analyze_Delay_Alternative, Analyze_Delay_Until): Use the
15474         first subtype of the type of the expression to verify that it is a
15475         legal Time type.
15476
15477 2005-12-09  Robert Dewar  <dewar@adacore.com>
15478
15479         * sem_util.ads, sem_util.adb (Full_Qualified_Name): Now provides
15480         decoded names.
15481
15482 2005-12-09  Quentin Ochem  <ochem@adacore.com>
15483             Robert Dewar  <dewar@adacore.com>
15484             Ed Falis  <falis@adacore.com>
15485             Florian Villoing  <villoing@adacore.com>
15486             Thomas Quinot  <quinot@adacore.com>
15487             Arnaud Charlet  <charlet@adacore.com>
15488
15489         * gnat_ugn.texi: Created section "Stack Related Tools"
15490         Moved "Stack Overflow Checking" subsection from "Switches for gcc" to
15491         "Stack Related Tools"
15492         Added subsection "Static Stack Usage Analysis"
15493         Added subsection "Dynamic Stack Usage Analysis"
15494         Include documentation of itypes in sprint listing (-gnatG)
15495         Documented gnatbind -D switch (default sec stack size for fixed sec
15496         stacks).
15497         Added Interrupt_State and Persistent_BSS to list of configuration
15498         pragmas.
15499         Add missing doc for maximum value of nnn in -gnatyMnnn
15500
15501         * gnat_rm.texi: Document the AltiVec binding.
15502         Add documentation for pragma Complete_Representation
15503         Shortened an overly long line (> 79 chars)
15504         Clarify documentation of unchecked conversion in implementation
15505         defined cases.
15506         Document two argument form of pragma Debug
15507
15508         * types.ads (Column_Number): Update documentation.
15509
15510         * exp_ch7.ads (Make_Adjust_Call): Document the special processing for
15511         library level Finalize_Storage_Only objects (these are not attached to
15512         any finalization list).
15513
15514         * system-mingw.ads: (Underlying_Priorities): Update comment.
15515
15516 2005-12-09  Robert Dewar  <dewar@adacore.com>
15517
15518         * i-c.adb, i-cexten.ads, i-cobol.adb, i-cobol.ads, i-cpoint.ads,
15519         i-cpp.adb, i-cpp.ads, i-cstrea.ads, i-cstrin.adb, i-cstrin.ads,
15520         inline.adb, interfac.ads, i-os2err.ads, i-os2lib.ads, i-os2syn.ads,
15521         i-os2thr.ads, itypes.adb, itypes.adb, itypes.ads, krunch.ads,
15522         krunch.adb, lib.adb, lib.ads, lib-list.adb, lib-load.adb,
15523         lib-load.ads, lib-sort.adb, live.adb, make.ads, i-cstrea-vms.adb,
15524         interfac-vms.ads, makegpr.adb, indepsw-gnu.adb, indepsw.ads,
15525         s-wchcon.ads, sdefault.ads, sem_ch10.adb, sem_eval.ads: Minor
15526         reformatting.
15527
15528 2005-12-09  Robert Dewar  <dewar@adacore.com>
15529
15530         * s-vaflop-vms-alpha.adb: (Ne_F): New function
15531         (Ne_G): New function
15532
15533         * exp_ch4.adb (Expand_Allocator_Expression): Factor duplicated code
15534         for tag assignment.
15535         (Rewrite_Comparison): Handle case where operation is not a comparison
15536         and ignore, and also handle type conversion case.
15537
15538 2005-12-09  Thomas Quinot  <quinot@adacore.com>
15539
15540         * exp_aggr.ads: Fix typo in comment.
15541         ???-mark Convert_Aggr_In_Assignment as needing documentation.
15542
15543 2005-12-09  Gary Dismukes  <dismukes@adacore.com>
15544
15545         * layout.adb: Replace various uses of byte by storage unit throughout.
15546         (Get_Max_SU_Size): Name changed from Get_Max_Size. In the case of a
15547         static size, convert to storage units before returning, to conform to
15548         spec.
15549
15550 2005-12-09  Matthew Gingell  <gingell@adacore.com>
15551
15552         * g-exctra.ads: Fix typo in comment.
15553
15554 2005-12-09  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15555
15556         * utils.c: Minor reformatting.
15557
15558 2005-12-09  Robert Dewar  <dewar@adacore.com>
15559
15560         * g-soccon.ads: 
15561         Further comment fixes to make the status of the default file clear
15562
15563         * s-bitops.adb: Clarify comment for Bits_Array
15564
15565 2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
15566
15567         * Make-lang.in (ada.install-normal): Remove.
15568
15569 2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
15570
15571         * Make-lang.in: Remove all dependencies on s-gtype.
15572
15573 2005-12-05  Richard Guenther  <rguenther@suse.de>
15574
15575         * utils.c (convert): Use fold_convert where appropriate.
15576
15577 2005-12-05  Paolo Bonzini  <bonzini@gnu.org>
15578
15579         * Makefile.in (gnatlib): Fix regex, using \. instead of . when
15580         a period is meant.
15581
15582 2005-12-02  Richard Guenther  <rguenther@suse.de>
15583
15584         * trans.c (gnat_gimplify_expr): Use buildN instead of build.
15585
15586 2005-12-01  Roger Sayle  <roger@eyesopen.com>
15587
15588         * utils.c (max_size): Only test for TREE_OVERFLOW on INTEGER_CST
15589         nodes.
15590
15591 2005-11-23  Laurent Guerby  <laurent@guerby.net>
15592
15593         * mlib-prj.adb (Build_Library): Initialize Delete.
15594
15595 2005-11-21  Joel Sherrill  <joel.sherrill@oarcorp.com>
15596
15597         * socket.c: Add extern int h_errno for rtems since networking header
15598         files are not available at this point in a tool bootstrap. Newlib
15599         only has basic C library header files.
15600
15601 2005-11-19  Richard Guenther  <rguenther@suse.de>
15602         Roger Sayle  <roger@eyesopen.com>
15603
15604         PR ada/23717
15605         * misc.c (internal_error_function): Don't use vsprintf to format
15606         the error message text, instead use pp_format_text and the new
15607         pretty printer APIs.  This allows handling of %qs, %w, etc.
15608
15609 2005-11-18  Laurent Guerby  <laurent@guerby.net>
15610
15611         PR ada/24857
15612         * Makefile.in: Use s-auxdec-empty for RTEMS.
15613
15614 2005-11-17  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15615
15616         PR ada/22333
15617         * trans.c (gnat_gimplify_expr, case ADDR_EXPR): Always make
15618         a temporary if taking the address of something that is neither
15619         reference, declaration, or constant, since the gimplifier
15620         can't handle that case.
15621
15622 2005-11-17  Laurent Guerby  <laurent@guerby.net>
15623
15624         PR ada/24857
15625         * s-auxdec-empty.ads, s-auxdec-empty.adb: New files.
15626
15627 2005-11-16  Richard Guenther  <rguenther@suse.de>
15628
15629         * Makefile.in: Add EH_MECHANISM=-gcc to s390(x) linux.
15630
15631 2005-11-16  Joel Sherrill  <joel.sherrill@oarcorp.com>
15632
15633         PR ada/24855
15634         * raise-gcc.c: Add missing stdarg.h include.
15635  
15636 2005-11-16  Richard Guenther  <rguenther@suse.de>
15637
15638         * Make-lang.in (ada/decl.o): Add $(EXPR_H) dependency.
15639         (ada/misc.o): Likewise.
15640
15641 2005-11-14  Thomas Quinot  <quinot@adacore.com>
15642
15643         * g-soccon.ads: Minor reformatting. Update comments.
15644
15645         * gsocket.h: Include <sys/times.h> in the VxWorks case, in order to
15646         gain visibility on the declaration of struct timeval.
15647
15648         * g-soccon-freebsd.ads,
15649         g-soccon-darwin.ads,
15650         g-soccon-tru64.ads,
15651         g-soccon-aix.ads,
15652         g-soccon-irix.ads,
15653         g-soccon-hpux.ads,
15654         g-soccon-solaris.ads,
15655         g-soccon-vms.ads,
15656         g-soccon-mingw.ads,
15657         g-soccon-vxworks.ads (SIZEOF_tv_sec, SIZEOF_tv_usec): New constants.
15658
15659         * g-soccon-hpux-ia64.ads, g-soccon-linux-ppc.ads,
15660         g-soccon-solaris-64.ads, g-soccon-linux-64.ads,
15661         g-soccon-linux-x86.ads: New files.
15662
15663         * g-socthi-mingw.adb: 
15664         (Socket_Error_Message): Remove redundant use of GNAT.Sockets.Constants
15665
15666         * g-socthi-vxworks.ads, g-socthi-vms.ads, g-socthi-mingw.ads
15667         (time_t, suseconds_t): New types constructed to match the tv_sec
15668         and tv_usec fields of C struct timeval.
15669         (Timeval): Construct structure in terms of the new types.
15670         (Host_Errno): New function (imported from socket.c), returns last hosts
15671         database error.
15672
15673         * g-socthi-vxworks.adb:  Add error handling circuitry.
15674
15675         * g-socket.ads, g-socket.adb (To_Timeval): Reflect change of type for
15676         components of struct timeval.
15677         (Get_Host_By_Name, Get_Host_By_Address): Fix error reporting circuitry.
15678         (Check_Selector): In error conditions, clear internal socket sets to
15679         avoid a memory leak.
15680         (Get_Socket_Option, Set_Socket_Option): Support for Multicast_If,
15681         Send_Timeout, Receive_Timeout.
15682
15683         * g-socthi.ads (time_t, suseconds_t): New types constructed to match
15684         the tv_sec 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         * socket.c (__gnat_get_h_errno): New function to retrieve h_errno, the
15690         hosts database last error code.
15691
15692         * gen-soccon.c: Complete value expansion should not be performed on
15693         TARGET, as it has the form of a math expression, and some components
15694         may be platform-defined macros.
15695         For VxWorks, generate the OK and ERROR values.
15696         New constants giving the sizes of the components of C struct timeval.
15697
15698 2005-11-14  Robert Dewar  <dewar@adacore.com>
15699             Ed Schonberg  <schonberg@adacore.com>
15700
15701         PR ada/18434
15702         * types.ads: Include All_Checks in Suppress_Array
15703
15704         * checks.adb (Check_Needed): Remove kludge for a/=b rewritten as
15705         not(a=b), since we no longer do this rewriting, and hence it is not
15706         needed.
15707         (Elaboration_Checks_Suppressed): Add special casing to
15708         deal with different cases of static and dynamic elaboration checks (all
15709         checks does not count in the first case, but does in the second).
15710         (Expr_Known_Valid): Do not assume that the result of any arbitrary
15711         function call is valid, since this is not the case.
15712         (Ensure_Valid): Do not apply validity check to a real literal
15713         in a universal or fixed context
15714
15715         * exp_ch4.adb (Expand_N_Op_Ne): Don't expand a/=b to not(a=b) for
15716         elementary types using the operator in standard. It is cleaner not to
15717         modify the programmers intent, especially in the case of floating-point.
15718         (Rewrite_Comparison): Fix handling of /= (this was always wrong, but
15719         it did not matter because we always rewrote a/=b to not(a=b).
15720         (Expand_Allocator_Expression): For an allocator expression whose nominal
15721         subtype is an unconstrained packed type, convert the expression to its
15722         actual constrained subtype.
15723         Implement warning for <= or >= where < or > not possible
15724         Fix to Vax_Float tests (too early in many routines, causing premature
15725         Vax_Float expansions.
15726
15727         * sem_prag.adb (Analyze_Pragma, case Obsolescent): Allow this pragma
15728         to be used with packages and generic packages as well as with
15729         subprograms.
15730         (Suppress): Set All_Checks, but not Elaboration_Check, for case
15731         of pragma Suppress (All_Checks)
15732         (Analyze_Pragma, case Warnings): Implement first argument allowed to be
15733         a string literal for precise control over warnings.
15734         Avoid raise of pragma in case of unrecognized pragma and just return
15735         instead.
15736
15737         * sem_prag.ads: Minor reformatting
15738
15739         * switch-c.adb (Scan_Front_End_Switches): Replace "raise Bad_Switch;"
15740         with call to new procedure Bad_Switch. Call Scan_Pos with new parameter
15741         Switch. Do not handle any exception.
15742         Include -gnatwx as part of -gnatg (warn on redundant parens)
15743         Allow optional = after -gnatm
15744         (Scan_Front_End_Switches): The -gnatp switch sets All_Checks, but no
15745         longer sets Elaboration_Checks.
15746         Code to set warning mode moved to Sem_Warn
15747         so that it can be shared by pragma processing.
15748
15749         * s-mastop-tru64.adb (Pop_Frame): Remove redundant parentheses in if
15750         statement.
15751
15752         * s-taprop-solaris.adb: 
15753         Change some <= to =, to avoid new warning
15754
15755         * a-exexda.adb, prj-proc.adb: 
15756         Fix obvious typo (Num_Tracebacks compared <= 0 instead of < 0)
15757         Fix obvious typo (Total_Errors_Detected <= 0 should be = 0)
15758
15759 2005-11-14  Robert Dewar  <dewar@adacore.com>
15760
15761         * exp_vfpt.adb: Handle /= case
15762         (Expand_Vax_Conversion): Properly recognize Conversion_OK flag
15763         so that we do not get duplicate scaling for fixed point conversions.
15764
15765         * s-vaflop.ads, s-vaflop.adb: (Ne_F): New function
15766
15767 2005-11-14  Matthew Gingell  <gingell@adacore.com>
15768
15769         * system-lynxos-ppc.ads, system-lynxos-x86.ads: 
15770         Increase default priority on Lynx from 15 to 17, and meet the Ada
15771         requirement that Default_Priority be ((Priority'First +
15772         Priority'Last) / 2) by increasing the range of Interrupt_Priority.
15773
15774 2005-11-14  Vincent Celier  <celier@adacore.com>
15775
15776         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
15777         mlib-tgt-hpux.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
15778         mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-alpha.adb,
15779         mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb,
15780         mlib-tgt-darwin.adb, mlib-tgt.adb, mlib-tgt.ads,
15781         mlib-tgt-lynxos.adb (DLL_Prefix): New function
15782
15783 2005-11-14  Doug Rupp  <rupp@adacore.com>
15784
15785         * system-vms.ads, system-vms_64.ads: ADA$GNAT: New exported object in
15786         private part.
15787
15788 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
15789
15790         * s-traces-default.adb, s-trafor-default.ads,
15791         s-tratas-default.adb: Fix compilation errors.
15792
15793 2005-11-14  Jose Ruiz  <ruiz@adacore.com>
15794
15795         * s-taprop-posix.adb (Initialize_Lock): Destroy mutex attribute before
15796         raising the exception so the memory used is freed.
15797
15798 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
15799
15800         * adaint.h, adaint.c (__gnat_is_cross_compiler): New constant.
15801         (Gnat_Install_Locks, __gnatlib_install_locks): Removed, no longer used.
15802         (convert_address): Update comments and list of platforms using this.
15803
15804         * s-tasini.adb (Gnat_Install_Locks, __gnatlib_install_locks): Removed,
15805         no longer used.
15806
15807 2005-11-14  Pascal Obry  <obry@adacore.com>
15808             Vincent Celier  <celier@adacore.com>
15809
15810         * gnatdll.adb (Parse_Command_Line): Remove redundant use of
15811         GNAT.Command_Line.
15812
15813         * memroot.adb: Remove redundant with/use clause on
15814         System.Storage_Elements.
15815
15816 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
15817
15818         * a-except.adb (Zero_Cost_Exceptions): Removed, no longer used.
15819         (builtin_longjmp, Process_Raise_Exceeption): Move setjmp/longjmp
15820         related code to a-exexpr.adb
15821         (Save_Occurrence_And_Private): Move GCC EH related code to
15822         a-exexpr-gcc.adb
15823         (Raise_Current_Excep): Add new variable Id with pragma
15824         volatile, to ensure that the variable lives on stack.
15825
15826         * a-exexpr-gcc.adb, raise-gcc.c: New file.
15827
15828         * a-exexpr.adb (builtin_longjmp, Propagate_Exception): Moved here code
15829         from a-except.adb.
15830         Move GCC EH related code to a-exexpr-gcc.adb
15831
15832         * Makefile.in: Add or update g-soccon LIBGNAT pairs for Linux/PPC and
15833         64-bit Solaris
15834         Split the Linux version of g-soccon into separate variants for 32 and 64
15835         bit platforms.
15836         (gnatlib): Use $(AR_FOR_TARGET) and $(RANLIB_FOR_TARGET)
15837         vice $(AR) and $(RANLIB). Remove use of host variable $(RANLIB_FLAGS).
15838         install-gnatlib: Use $(RANLIB_FOR_TARGET) vice $(RANLIB). Remove use
15839         of host variable $(RANLIB_FLAGS).
15840         (alpha64-dec-*vms*): Fix translations for 64 bit compiler.
15841         Code clean up: remove unused/obsolete targets.
15842         (EH_MECHANISM): New variable introduced to differenciate between the
15843         two EH mechanisms statically.
15844         (gnatlib-zcx, gnatlib-sjlj): Force EH_MECHANISM manually.
15845         (LIBGNAT_OBJS): Add raise-gcc.o
15846         (LIBGNAT_TARGET_PAIRS for ppc-vxworks): Use an specialized version of
15847         s-osinte.adb, s-tpopsp.adb, and system.ads for the run time that
15848         supports VxWorks 6 RTPs.
15849         (EXTRA_GNATRTL_NONTASKING_OBJS for ppc-vxworks): Remove the use of
15850         i-vxworks and i-vxwoio from the run time that supports VxWorks 6 RTPs.
15851
15852         * raise.c: Move all GCC EH-related routines to raise-gcc.c
15853
15854 2005-11-14  Jose Ruiz  <ruiz@adacore.com>
15855
15856         * s-tassta.adb (Create_Task): Move the code in charge of resetting the
15857         deferral level, when abort is not allowed, to a later stage (the
15858         Task_Wrapper).
15859         (Task_Wrapper): If Abort is not allowed, reset the deferral level since
15860         it will not get changed by the generated code. It was previously done
15861         in Create_Task.
15862
15863 2005-11-14  Thomas Quinot  <quinot@adacore.com>
15864             Olivier Hainque  <hainque@adacore.com>
15865             Eric Botcazou  <ebotcazou@adacore.com>
15866
15867         * decl.c:
15868         Factor common code to build a storage type for an unconstrained object
15869         from a fat or thin pointer type and a constrained object type.
15870         (annotate_value): Handle BIT_AND_EXPR.
15871         (annotate_rep): Don't restrict the back annotation of inherited
15872         components to the type_annotate_only case.
15873         (gnat_to_gnu_entity) <E_Array_Type>: Do not invoke create_type_decl if
15874         we are not defining the type.
15875         <E_Record_Type>: Likewise.
15876         (gnat_to_gnu_entity) <object, renaming>: Adjust comments and structure
15877         to get advantage of the new maybe_stabilize_reference interface, to
15878         ensure that what we reference is indeed stabilized instead of relying
15879         on assumptions on what the stabilizer does.
15880         (gnat_to_gnu_entity) <E_Incomplete_Type>: If the entity is an incomplete
15881         type imported through a limited_with clause, use its non-limited view.
15882         (Has_Stdcall_Convention): New macro, to centralize the Windows vs others
15883         differentiation.
15884         (gnat_to_gnu_entity): Use Has_Stdcall_Convention instead of a spread mix
15885         of #if sections + explicit comparisons of convention identifiers.
15886         (gnat_to_gnu_entity) <E_Variable>: Decrement force_global if necessary
15887         before early-returning for certain types when code generation is
15888         disabled.
15889         (gnat_to_gnu_entity) <object>: Adjust comment attached to the
15890         nullification of gnu_expr we do for objects with address clause and
15891         that we are not defining.
15892         (elaborate_expression_1): Do not create constants when creating
15893         variables needed by the debug info: the dwarf2 writer considers that
15894         CONST_DECLs is used only to represent enumeration constants, and emits
15895         nothing for them.
15896         (gnat_to_gnu_entity) <object>: When turning a non-definition of an
15897         object with an address clause into an indirect reference, drop the
15898         initializing expression.
15899         Include "expr.h".
15900         (STACK_CHECK_BUILTIN): Delete.
15901         (STACK_CHECK_PROBE_INTERVAL): Likewise.
15902         (STACK_CHECK_MAX_FRAME_SIZE): Likewise.
15903         (STACK_CHECK_MAX_VAR_SIZE): Likewise.
15904         (gnat_to_gnu_entity): If gnat_entity is a renaming, do not mark the tree
15905         corresponding to the renamed object as ignored for debugging purposes.
15906
15907         * trans.c (tree_transform, case N_Attribute_Reference, case Attr_Size &
15908         related): For a prefix that is a dereference of a fat or thin pointer,
15909         if there is an actual subtype provided by the front-end, use that
15910         subtype to build an actual type with bounds template.
15911         (tree_transform, case N_Free_Statement): If an Actual_Designated_Subtype
15912         is provided by the front-end, use that subtype to compute the size of
15913         the deallocated object.
15914         (gnat_to_gnu): When adding a statement into an elaboration procedure,
15915         check for a potential violation of a No_Elaboration_Code restriction.
15916         (maybe_stabilize_reference): New function, like gnat_stabilize_reference
15917         with extra arguments to control whether to recurse through non-values
15918         and to let the caller know if the stabilization has succeeded.
15919         (gnat_stabilize_reference): Now a simple wrapper around
15920         maybe_stabilize, for common uses without restriction on lvalues and
15921         without need to check for the success indication.
15922         (gnat_to_gnu, call_to_gnu): Adjust calls to gnat_stabilize_reference, to
15923         pass false instead of 0 as the FORCE argument which is a bool.
15924         (Identifier_to_gnu): Remove checks ensuring that an renamed object
15925         attached to a renaming pointer has been properly stabilized, as no such
15926         object is attached otherwise.
15927         (call_to_gnu): Invoke create_var_decl to create the temporary when the
15928         function uses the "target pointer" return mechanism.
15929         Reinstate conversion of the actual to the type of the formal
15930         parameter before any other specific treatment based on the passing
15931         mechanism. This turns out to be necessary in order for PLACEHOLDER
15932         substitution to work properly when the latter type is unconstrained.
15933
15934         * gigi.h (build_unc_object_type_from_ptr): New subprogram, factoring a
15935         common pattern.
15936         (maybe_stabilize_reference): New function, like gnat_stabilize_reference
15937         with extra arguments to control whether to recurse through non-values
15938         and to let the caller know if the stabilization has succeeded.
15939
15940         * utils2.c (gnat_build_constructor): Only sort the fields for possible
15941         static output of record constructor if all the components are constant.
15942         (gnat_build_constructor): For a record type, sort the list of field
15943         initializers in increasing bit position order.
15944         Factor common code to build a storage type for an unconstrained object
15945         from a fat or thin pointer type and a constrained object type.
15946         (build_unary_op) <ADDR_EXPR>: Always recurse down conversions between
15947         types variants, and process special cases of VIEW_CONVERT expressions
15948         as their NOP_EXPR counterpart to ensure we get to the
15949         CORRESPONDING_VARs associated with CONST_DECls.
15950         (build_binary_op) <MODIFY_EXPR>: Do not strip VIEW_CONVERT_EXPRs
15951         on the right-hand side.
15952
15953         * utils.c (build_unc_object_type_from_ptr): New subprogram, factoring
15954         a common pattern.
15955         (convert) <VIEW_CONVERT_EXPR>: Return the inner operand directly if we
15956         are converting back to its original type.
15957         (convert) <JM input>: Fallthrough regular conversion code instead of
15958         extracting the object if converting to a type variant.
15959         (create_var_decl): When a variable has an initializer requiring code
15960         generation and we are at the top level, check for a potential violation
15961         of a No_Elaboration_Code restriction.
15962         (create_var_decl): call expand_decl for CONST_DECLs, to set MODE, ALIGN
15963         SIZE and SIZE_UNIT which we need for later back-annotations.
15964         * utils.c: (convert) <STRING_CST>: Remove obsolete code.
15965         <VIEW_CONVERT_EXPR>: Do not lift the conversion if the target type
15966         is an unchecked union.
15967         (pushdecl): Set DECL_NO_STATIC_CHAIN on imported nested functions.
15968         (convert) <VIEW_CONVERT_EXPR>: When the types have the same
15969         main variant, just replace the VIEW_CONVERT_EXPR.
15970         <UNION_TYPE>: Revert 2005-03-02 change.
15971
15972         * repinfo.h, repinfo.ads: Add tcode for BIT_AND_EXPR.
15973
15974         * repinfo.adb (Print_Expr, Rep_Value): Handle Bit_And_Expressions.
15975
15976 2005-11-14  Matthew Heaney  <heaney@adacore.com>
15977
15978         * a-crbtgo.ads, a-crbtgo.adb, a-coorse.ads, a-coorse.adb, a-convec.ads, 
15979         a-convec.adb, a-coinve.ads, a-coinve.adb, a-cohama.ads, a-cohama.adb, 
15980         a-ciorse.ads, a-ciorse.adb, a-cihama.ads, a-cihama.adb, a-cidlli.ads, 
15981         a-cidlli.adb, a-cdlili.ads, a-cdlili.adb, a-coormu.adb, a-ciormu.adb, 
15982         a-cihase.adb, a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads, 
15983         a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-ciorma.adb, a-coorma.adb: 
15984         Compiles against the spec for ordered maps described in sections
15985         A.18.6 of the most recent (August 2005) AI-302 draft.
15986
15987 2005-11-14  Olivier Hainque  <hainque@adacore.com>
15988
15989         * cuintp.c (UI_To_gnu): Use a proper type for intermediate computations
15990         to ensure bias adjustments take place when need be and to prevent
15991         occurrences of intermediate overflows.
15992
15993 2005-11-14  Matthew Gingell  <gingell@adacore.com>
15994             Olivier Hainque  <hainque@adacore.com>
15995
15996         * tb-gcc.c (trace_callback): Work around problem with _Unwind_GetIP on
15997         ia64 HP-UX.
15998
15999         * tracebak.c (ia64 configuration): Enable _Unwind_Backtrace driven
16000         tracebacks on ia64 HP-UX and provide explanatory comment.
16001         Enable backtraces on ia64 GNU/Linux.
16002         (x86 configuration): Bump FRAME_LEVEL to 1 to ensure we retrieve a real
16003         base pointer from builtin_frame_address. Adjust BASE_SKIP accordingly.
16004
16005 2005-11-14  Hristian Kirtchev  <kirtchev@adacore.com>
16006             Javier Miranda  <miranda@adacore.com>
16007
16008         * rtsfind.ads, exp_util.adb, exp_util.ads, exp_disp.adb, exp_disp.ads,
16009         exp_ch7.adb, sem_ch9.adb, snames.adb, snames.ads,
16010         exp_ch9.adb, exp_ch9.ads, exp_ch6.adb, exp_ch3.adb, exp_ch3.ads,
16011         einfo.ads, einfo.adb: Complete support for Ada 2005 interfaces.
16012
16013         * a-tags.ads, a-tags.adb: Major rewrite and additions to implement
16014         properly new Ada 2005 interfaces (AI-345) and add run-time checks (via
16015         assertions).
16016
16017         * exp_dbug.ads, exp_dbug.adb (Get_Secondary_DT_External_Name): New
16018         subprogram that generates the external name associated with a
16019         secondary dispatch table.
16020         (Get_Secondary_DT_External_Name): New subprogram that generates the
16021         external name associated with a secondary dispatch table.
16022
16023 2005-11-14  Emmanuel Briot  <briot@adacore.com>
16024
16025         * xref_lib.adb (Parse_Identifier_Info): It is possible for an entity
16026         line in the ALI file to include both an instantiation reference, and a
16027         returned value.
16028
16029 2005-11-14  Vincent Celier  <celier@adacore.com>
16030
16031         * clean.adb (Check_Project): Look for Ada code in extending project,
16032         even if Ada is not specified as a language.
16033         Use new function DLL_Prefix for DLL_Name
16034         (Clean_Interface_Copy_Directory): New procedure
16035         (Clean_Library_Directory): New procedure
16036         (Clean_Directory): Remove procedure, no longer used
16037         (Clean_Project): Do not delete any file in an externally built project
16038
16039         * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Add the object
16040         directory of an extending project, even when there are no Ada source
16041         present.
16042         (Ada_Objects_Path.Add): Add Library_ALI_Dir, not Library_Dir to the path
16043         (Set_Ada_Paths.Add.Recursive_Add): Ditto
16044
16045         * mlib-prj.adb (Check_Library): For all library projects, get the
16046         library file timestamp.
16047         (Build_Library): Copy ALI files in Library_ALI_Dir, not in Library_Dir
16048         (Build_Library): Use new function DLL_Prefix for the DLL_Name
16049         (Clean): Remove procedure, no longer used
16050         (Ultimate_Extension_Of): New function
16051         (Build_Library): When cleaning the library directory, only remove an
16052         existing library file and any ALI file of a source of the project.
16053         When cleaning the interface copy directory, remove any source that
16054         could be a source of the project.
16055
16056         * prj.ads, prj.adb (Project_Empty): Add values of new components
16057         Library_TS and All_Imported_Projects.
16058         (Project_Empty): Add values for new components of Project_Data:
16059         Library_ALI_Dir and Display_Library_ALI_Dir
16060
16061         * prj-attr.adb: New project level attribute name Library_ALI_Dir
16062
16063         * prj-nmsc.adb (Check_Library_Attributes): Take into account new
16064         attribute Library_ALI_Dir.
16065         (Check_Library_Attributes): The library directory cannot be the same as
16066         any source directory of the project tree.
16067         (Check_Stand_Alone_Library): The interface copy directory cannot be
16068         the same as any source directory of the project tree.
16069
16070         * mlib.adb: Use Prj.Com.Fail, instead of Osint.Fail directly, to delete
16071         all temporary files.
16072
16073 2005-11-14  Robert Dewar  <dewar@adacore.com>
16074             Ed Schonberg  <schonberg@adacore.com>
16075
16076         * sem_elab.adb: Change name Is_Package to Is_Package_Or_Generic_Package
16077         (Check_Elab_Call): A call within a protected body is never an
16078         elaboration call, and does not require checking.
16079         (Same_Elaboration_Scope): Take into account protected types for both
16080         entities.
16081         (Activate_Elaborate_All_Desirable): New procedure
16082
16083         * ali.ads, ali.adb: Implement new AD/ED for Elaborate_All/Elaborate
16084         desirable
16085
16086         * binde.adb: Implement new AD/ED for Elaborate_All/Elaborate desirable
16087         (Elab_Error_Msg): Use -da to include internal unit links, not -de.
16088
16089         * lib-writ.ads, lib-writ.adb: 
16090         Implement new AD/ED for Elaborate_All/Elaborate desirable
16091         Use new Elaborate_All_Desirable flag in N_With_Clause node
16092
16093         * sinfo.ads, sinfo.adb (Actual_Designated_Subtype): New attribute for
16094         N_Free_Statement nodes.
16095         Define new class N_Subprogram_Instantiation
16096         Add Elaborate_Desirable flag to N_With_Clause node
16097         Add N_Delay_Statement (covering two kinds of delay)
16098
16099         * debug.adb: Introduce d.f flag for compiler
16100         Add -da switch for binder
16101
16102 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
16103             Cyrille Comar  <comar@adacore.com>
16104
16105         * exp_aggr.adb (Build_Record_Aggr_Code): Do not create master entity
16106         for task component, in the case of a limited aggregate. The enclosed
16107         object declaration will create it earlier. Otherwise, in the case of a
16108         nested aggregate, the object may appear in the wrong scope.
16109         (Convert_Aggr_In_Object_Decl): Create a transient scope when needed.
16110         (Gen_Assign): If the component being assigned is an array type and the
16111         expression is itself an aggregate, wrap the assignment in a block to
16112         force finalization actions on the temporary created for each row of the
16113         enclosing object.
16114         (Build_Record_Aggr_Code): Significant rewrite insuring that ctrl
16115         structures are initialized after all discriminants are set so that
16116         they can be accessed even when their offset is dynamic.
16117
16118 2005-11-14  Robert Dewar  <dewar@adacore.com>
16119             Hristian Kirtchev  <kirtchev@adacore.com>
16120
16121         * sem_attr.adb: Implement Machine_Rounding attribute
16122         (Analyze_Access_Attribute): The access attribute may appear within an
16123         aggregate that has been expanded into a loop.
16124         (Check_Task_Prefix): Add semantic check for attribute 'Callable and
16125         'Terminated whenever the prefix is of a task interface class-wide type.
16126         (Analyze_Attribute): Add semantic check for attribute 'Identity whenever
16127         the prefix is of a task interface class-wide type.
16128
16129         * s-vaflop-vms-alpha.adb: Valid_D, Valid_F, Valid_G: Make Val constant
16130         to avoid warnings.
16131
16132         * s-fatgen.ads, s-fatgen.adb (Machine_Rounding): New function
16133         Remove pragma Inline for [Unaligned_]Valid.
16134         Add comments that Valid routines do not work for Vax_Float
16135
16136         * exp_attr.adb: Implement Machine_Rounding attribute
16137
16138         * snames.h: Add entry for Machine_Rounding attribute
16139
16140 2005-11-14  Javier Miranda  <miranda@adacore.com>
16141             Robert Dewar  <dewar@adacore.com>
16142             Hristian Kirtchev  <kirtchev@adacore.com>
16143
16144         * exp_attr.adb (Expand_N_Attribute_Reference, cases of Attribute_Size
16145         and related): For a prefix that is an explicit dereference of an
16146         access to unconstrained packed array type, annotate the dereference
16147         with an actual subtype so GIGI can make a correct size computation.
16148         (Expand_N_Attribute_Reference): In case of 'Unchecked_Access and
16149         'Unrestricted_Access, if the designated type is an interface we
16150         add a type conversion to force the displacement of the pointer
16151         to the secondary dispatch table.
16152         Use Universal_Real instead of Long_Long_Float when we need a high
16153         precision float type for the generated code (prevents gratuitous
16154         Vax_Float stuff when pragma Float_Representation (Vax_Float) used)
16155         (Expand_N_Attribute_Reference): Add support for attribute 'Callable and
16156         'Terminated for task interface class-wide objects. Generate a call to
16157         the predefined dispatching routine used to retrieve the _task_id from
16158         a task corresponding record.
16159         (Expand_Fpt_Attribute): Major change to properly handle Vax_Float
16160
16161         * sem_disp.adb: Change name Is_Package to Is_Package_Or_Generic_Package
16162         (Check_Dispatching_Operation): Protect the frontend againts
16163         previously detected errors.
16164
16165         * Makefile.rtl: Add new instantiations of system.fat_gen
16166
16167         * s-fatflt.ads, s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads: 
16168         Change name of instantiated package for better consistency
16169         with newly added system.fat_gen instantiations.
16170
16171         * s-filofl.ads, s-fishfl.ads, s-fvadfl.ads, s-fvaffl.ads,
16172         s-fvagfl.ads: New files.
16173
16174 2005-11-14  Cyrille Comar  <comar@adacore.com>
16175             Thomas Quinot  <quinot@adacore.com>
16176
16177         * exp_ch5.adb (Expand_N_Assignment_Statement, Tagged_Case): For an
16178         assignment of a value of a tagged type that has been rewritten to a
16179         block statement, it is known by construction that no checks are
16180         necessary for the statements within the block: analyze it with checks
16181         suppressed.
16182         (Expand_N_If_Statement): When killing a dead then-branch in an
16183         if-statement that has elsif_parts, recompute the Current_Value node
16184         for any entity whose value is known from the condition of the first
16185         elsif_part.
16186         (Expand_N_Return_Statement): When returning a mutable record, convert
16187         the return value into its actual subtype in order to help the backend
16188         to return the actual size instead of the maximum. This is another
16189         aftermath of not returning mutable records on the sec-stack anymore.
16190
16191         * sem_ch5.ads, sem_ch5.adb (Analyze_Iteration_Scheme): Minor change to
16192         handling of error msg for suspicious reverse range iteration.
16193         (Check_Possible_Current_Value_Condition): Move declaration from body to
16194         spec, to allow this subprogram to be called from exp_ch5.
16195
16196 2005-11-14  Thomas Quinot  <quinot@adacore.com>
16197
16198         * exp_dist.adb (Append_Array_Traversal): Modify constrained case to
16199         generate a set of nested array aggregates instead of a single flat
16200         aggregate for multi-dimensional arrays.
16201
16202 2005-11-14  Pascal Obry  <obry@adacore.com>
16203
16204         * expect.c (__gnat_kill) [Win32]: Fix implementation, the pid returned
16205         by spawnve is a process handle, no need to convert. Add a parameter
16206         close to control wether the process handle must be closed.
16207         (__gnat_waitpid): Fix implementation, the pid returned by spawnve is
16208         a process handle, not need to convert.
16209         (__gnat_kill) [*]: Add dummy parameter close to match the Win32 spec.
16210
16211         * g-expect.adb: (Kill): Document the new close parameter.
16212         (Close): Do not release the process handle in the kill there as
16213         waitpid() is using it.
16214         (Send_Signal): Release the process handle.
16215
16216 2005-11-14  Robert Dewar  <dewar@adacore.com>
16217
16218         * exp_fixd.adb: Use Universal_Real instead of Long_Long_Float when we
16219         need a high precision float type for the generated code (prevents
16220         gratuitous Vax_Float stuff when pragma Float_Representation (Vax_Float)
16221         used).
16222
16223         * exp_imgv.adb: Use Universal_Real instead of Long_Long_Float when we
16224         need a high precision float type for the generated code (prevents
16225         gratuitous Vax_Float stuff when pragma Float_Representation (Vax_Float)
16226         used).
16227         (Expand_Width_Attribute): In configurable run-time, the attribute is not
16228         allowed on non-static enumeration subtypes. Force a load error to emit
16229         the correct diagnostic.
16230
16231 2005-11-14  Thomas Quinot  <quinot@adacore.com>
16232             Robert Dewar  <dewar@adacore.com>
16233             Ed Schonberg  <schonberg@adacore.com>
16234
16235         * exp_intr.adb (Expand_Unc_Deallocation): If GIGI needs an actual
16236         subtype to compute the size of the designated object at run-time,
16237         create such a subtype and store it in the Actual_Designated_Subtype
16238         attribute of the N_Free_Statement.
16239         Generate itype for classwide designated object in both cases of
16240         user-specified storage pool: specific and class-wide, not only in the
16241         specific case.
16242         Raise CE when trying to set a not null access type object to null.
16243         (Expand_Dispatching_Constructor_Call): Retrieve subprogram actual with
16244         an explicit loop, because freeze nodes make its position variable.
16245
16246         * sem_intr.adb (Check_Intrinsic_Call): Given warning for freeing not
16247         null object.
16248
16249 2005-11-14  Javier Miranda  <miranda@adacore.com>
16250
16251         * exp_strm.adb (Build_Stream_Attr_Profile, Build_Stream_Function,
16252         Build_Stream_Procedure): Add the null-excluding attribute to the first
16253         formal.
16254         This has no semantic meaning under Ada95 mode but it is a
16255         requirement under Ada05 mode.
16256
16257         * par-ch3.adb (P_Access_Definition): Addition of warning message if
16258         the null exclusion is used under Ada95 mode
16259         (P_Null_Exclusion): The qualifier has no semantic meaning in Ada 95.
16260         (P_Access_Definition): Remove assertion that forbids the use of
16261         the null-exclusion feature in Ada95.
16262
16263 2005-11-14  Robert Dewar  <dewar@adacore.com>
16264
16265         * impunit.adb: Exclude container helper units not intended for use by
16266         users.
16267
16268 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
16269
16270         * freeze.adb (Freeze_Entity): For an access formal that is an access
16271         to subprogram, freeze the anonymous subprogram type at the same time,
16272         to prevent later freezing in the wrong scope, such as the enclosing
16273         subprogram body.
16274         (Freeze_Entity): Freeze the equivalent_type of an access_to_protected_
16275         subprogram whenever available.
16276
16277 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
16278
16279         PR ada/23732
16280         * gnatvsn.ads (Library_Version): Bump to 4.1
16281
16282 2005-11-14  Robert Dewar  <dewar@adacore.com>
16283
16284         * g-debpoo.adb (Set_Valid): Use Integer_Address instead of
16285         Storage_Offset to avoid wrap around causing invalid results.
16286
16287 2005-11-14  Pascal Obry  <obry@adacore.com>
16288
16289         * gnatbind.adb (Is_Cross_Compiler): New function returning True for
16290         cross-compiler.
16291         (Scan_Bind_Arg): Fail with an error message if -M option is used
16292         on a native compiler.
16293
16294 2005-11-14  Robert Dewar  <dewar@adacore.com>
16295             Vincent Celier  <celier@adacore.com>
16296
16297         * gprep.adb: Implement -C switch to scan comments
16298
16299         * scng.adb: Scan comment symbol separately if Replace_In_Comments set
16300
16301         * scans.ads: Comment updates (including new use of Tok_Comment in
16302         preprocessing)
16303
16304         * opt.ads: Add documentation for flags that are used by gprmake,
16305         currently and in the next version of gprmake.
16306         (Verbosity_Level): New variable
16307         Add Replace_In_Comments switch
16308
16309         * vms_data.ads: Add VMS equivalent for new gnatmake switches -vl, -vm
16310         and -vm.
16311         Add /REPLACE_IN_COMMENTS for gnatprep -C switch
16312
16313 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
16314
16315         * g-regpat.adb (Fail): raise Expression_Error including the diagnostic
16316         message, friendlier.
16317
16318 2005-11-14  Robert Dewar  <dewar@adacore.com>
16319
16320         * g-spitbo.adb: (Hash): Rotate by 3 instead of 1
16321
16322 2005-11-14  Doug Rupp  <rupp@adacore.com>
16323
16324         * init.c [VMS]: Don't install __gnat_error_handler if DBG$TDBG defined.
16325
16326 2005-11-14  Robert Dewar  <dewar@adacore.com>
16327
16328         * interfac.ads: Change declarations of IEEE float types so that we no
16329         longer need a separate version of this package for VMS.
16330
16331 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
16332
16333         * lib-xref.adb (Generate_Definition, Generate_Reference): Treat the
16334         internal entity created for the declaration of a child subprogram body
16335         with no spec as coming from source, to generate proper cross-reference
16336         information.
16337
16338 2005-11-14  Vincent Celier  <celier@adacore.com>
16339
16340         * make.adb (Compile_Sources): Change verbose message to minimum
16341         verbosity level High for "is in an Ada library", "is a read-only
16342         library" and "is an internal library",
16343         (Create_Binder_Mapping_File): Path name of ALI file for library project
16344         must include the library directory, not the object directory.
16345         (Scan_Make_Arg): Make sure that Switch.M.Scan_Make_Switches is called
16346         for new switches -vl, -vm and -vh.
16347         (Verbose_Msg): Add new defaulted parameter Minimum_Verbosity
16348         (Check): Use minimum verbosity Medium for some Verbose_Msg calls
16349         (Compile_Sources): Do not attempt to compile if an ALI file is missing
16350         in a project that is externally built.
16351         (Compute_All_Imported_Projects): New procedure
16352         (Gnatmake): Check if importing libraries should be regenerated because
16353         at least an imported library is more recent.
16354         (Initialize): For each project compute the list of the projects it
16355         imports directly or indirectly.
16356         (Add_Library_Search_Dir): New procedure, used in place of
16357         Add_Lib_Search_Dir in procedure Scan_Make_Arg so that absolute paths are
16358         put in the search paths.
16359         (Add_Source_Search_Dir): New procedure, used in place of
16360         Add_Src_Search_Dir in procedure Scan_Make_Arg so that absolute paths are
16361         put in the search paths.
16362         (Mark_Directory): Resolve the absolute path the directory before marking
16363         it.
16364
16365         * switch-m.adb (Scan_Make_Switches): Replace "raise Bad_Switch;" with
16366         call to new procedure Bad_Switch. Call Scan_Pos with new parameter
16367         Switch. Do not handle any exception.
16368         (Scan_Make_Switches): Increment Ptr for new switches -vl, -vm and -vh
16369         so that the switch is recognized as valid.
16370         (Scan_Make_Switches): Implement new switches -vl, -vm and -vh.
16371
16372 2005-11-14  GNAT Script  <nobody@adacore.com>
16373
16374         * Make-lang.in: Makefile automatically updated
16375
16376 2005-11-14  Pascal Obry  <obry@adacore.com>
16377
16378         * mdll.adb (Build_Reloc_DLL): Fix parameter handling when a map file is
16379         used.
16380         (Ada_Build_Reloc_DLL): Fix parameter handling when a map file is used.
16381         In both cases the last argument was dropped.
16382
16383 2005-11-14  Eric Botcazou  <ebotcazou@adacore.com>
16384
16385         * namet.h: (Column_Numbe): New type.
16386         (Get_Column_Number): Define to sinput__get_column_number.
16387         (Instantiation): Define to sinput__instantiation.
16388         (Get_Column_Number): Declare.
16389         (Instantiation): Likewise.
16390
16391 2005-11-14  Robert Dewar  <dewar@adacore.com>
16392
16393         * par-ch10.adb (P_Compilation_Unit): Add defenses against junk unit
16394         syntax, which could cause compiler hangs.
16395
16396 2005-11-14  Vincent Celier  <celier@adacore.com>
16397
16398         * prj-ext.adb: Take into account new environment variable
16399         GPR_PROJECT_PATH. Warn if both GPR_PROJECT_PATH and ADA_PROJECT_PATH
16400         are defined.
16401         (Prj.Ext elaboration): For each directory in the ADA_PROJECT_PATH,
16402         normalize its path name, making it absolute and resolving symbolic
16403         links, and replace the original if resolved path is different.
16404
16405 2005-11-14  Vincent Celier  <celier@adacore.com>
16406
16407         * prj-part.adb (Create_Virtual_Extending_Project): Put virtual project
16408         into Prj.Tree.Tree_Private_Part.Projects_Htable for GPS.
16409
16410 2005-11-14  Emmanuel Briot  <briot@adacore.com>
16411
16412         * prj-pp.adb (Print): Do not output the with statement if the
16413         associated name is empty, which happens for virtual extending projects.
16414         (Print): Preserve the "extends all" attribute when printing the project.
16415
16416         * prj-tree.ads (String_Value_Of): Add comment about returned value for
16417         a virtual extending project.
16418
16419 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
16420
16421         * sem_aggr.adb (Resolve_Aggregate): An others choice is legal on the
16422         rhs of an assignment even if the type is unconstrained, when the
16423         context is non-expanding.
16424         In an inlined body, if the context type is private,
16425         resolve with its full view, which must be a composite type.
16426
16427 2005-11-14  Robert Dewar  <dewar@adacore.com>
16428             Ed Schonberg  <schonberg@adacore.com>
16429
16430         * sem_ch10.adb: Change name Is_Package to Is_Package_Or_Generic_Package
16431         Do not give obsolescent warning on with of subprogram (since we
16432         diagnose calls)
16433         (Analyze_With_Clause): Add test for obsolescent package
16434         (Install_Context_Clauses): If the unit is the body of a child unit, do
16435         not install twice the private declarations of the parents, to prevent
16436         circular lists of Use_Clauses in a parent.
16437         (Implicit_With_On_Parent): Do add duplicate with_clause on parent when
16438         compiling body of child unit.
16439         Use new class N_Subprogram_Instantiation
16440         (Expand_With_Clause): If this is a private with_clause for a child unit,
16441         appearing in the context of a package declaration, then the implicit
16442         with_clauses generated for parent units are private as well.
16443         (License_Check): Do not generate message if with'ed unit is internal
16444
16445 2005-11-14  Gary Dismukes  <dismukes@adacore.com>
16446             Ed Schonberg  <schonberg@adacore.com>
16447             Thomas Quinot  <quinot@adacore.com>
16448
16449         * sem_ch12.ads, sem_ch12.adb (Map_Entities): Exclude entities whose
16450         names are internal, because they will not have a corresponding partner
16451         in the actual package.
16452         (Analyze_Formal_Package): Move the setting of the formal package spec's
16453         Generic_Parent field so that it occurs prior to analyzing the package,
16454         to allow proper operation of Install_Parent_Private_Declarations.
16455         (Analyze_Package_Instantiation): Set the instantiated package entity's
16456         Package_Instantiation field.
16457         (Get_Package_Instantiation_Node): Move declaration to package spec.
16458         Retrieve the N_Package_Instantiation node when the Package_Instantiation
16459         field is present.
16460         (Check_Generic_Child_Unit): Within an inlined call, the only possible
16461         instantiation is Unchecked_Conversion, for which no parents are needed.
16462         (Inline_Instance_Body): Deinstall and record the use_clauses for all
16463         parent scopes of a scope being removed prior to inlining an instance
16464         body.
16465         (Analyze_Package_Instantiation): Do not perform front-end inlining when
16466         the current context is itself an instance within a non-instance child
16467         unit, to prevent scope stack errors.
16468         (Save_References): If the node is an aggregate that is an actual in a
16469         call, rewrite as a qualified expression to preserve some type
16470         information, to resolve possible ambiguities in the instance.
16471         (Instance_Parent_Unit): New global variable to record the ultimate
16472         parent unit associated with a generic child unit instance (associated
16473         with the existing Parent_Unit_Visible flag).
16474         (type Instance_Env): New component Instance_Parent_Unit for stacking
16475         parents recorded in the global Instance_Parent_Unit.
16476         (Init_Env): Save value of Instance_Parent_Unit in the Instance_Env
16477         stack.
16478         (Install_Spec): Save the parent unit entity in Instance_Parent_Unit when
16479         it's not a top-level unit, and only do this if Instance_Parent_Unit is
16480         not already set. Replace test of Is_Child_Unit with test of parent's
16481         scope against package Standard. Add comments and a ??? comment.
16482         (Remove_Parent): Revise condition for resetting Is_Immediately_Visible
16483         on a child instance parent to test that the parent equals
16484         Instance_Parent rather than simply checking that the unit is not a
16485         child unit.
16486         (Restore_Env): Restore value of Instance_Parent_Unit from Instance_Env.
16487         (Validate_Derived_Interface_Type_Instance): Verify that all ancestors of
16488         a formal interface are ancestors of the corresponding actual.
16489         (Validate_Formal_Interface_Type): Additional legality checks.
16490         (Analyze_Formal_Derived_Interface_Type): New procedure to handle formal
16491         interface types with ancestors.
16492         (Analyze_Formal_Package): If formal is a renaming, use renamed entity
16493         to diagnose attempts to use generic within its own declaration.
16494
16495 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
16496             Javier Miranda  <miranda@adacore.com>
16497
16498         * sem_ch3.ads, sem_ch3.adb (Build_Discriminal): Add link to original
16499         discriminant.
16500         (Build_Private_Derived_Type): The entity of the created full view of the
16501         derived type does not come from source. If after installing the private
16502         declarations of the parent scope the parent is still private, use its
16503         full view to construct the full declaration of the derived type.
16504         (Build_Derived_Record_Type): Relax the condition that controls the
16505         execution of the check that verifies that the partial view and
16506         the full view agree in the set of implemented interfaces. In
16507         addition, this test now only takes into account the progenitors.
16508         (Derive_Interface_Subprograms): No need to derive subprograms
16509         of ancestors that are interfaces.
16510         (Derive_Subprograms): Remove formal No_Predefined_Prims and the
16511         associated code.
16512         Change name Is_Package to Is_Package_Or_Generic_Package
16513         (Complete_Subprograms_Derivation): Handle the case in which the full
16514         view is a transitive derivation of the ancestor of the partial view.
16515         (Process_Full_View): Rename local subprogram Find_Interface_In_
16516         Descendant to Find_Ancestor_Interface to leave the code more clear.
16517         Remove wrong code that avoids the generation of an error message
16518         when the immediate ancestor of the partial view is an interface.
16519         In addition some minor reorganization of the code has been done to
16520         leave it more clear.
16521         (Analyze_Type_Declaration): If type has previous incomplete tagged
16522         partial view, inherit properly its primitive operations.
16523         (Collect_Interfaces): Make public, for analysis of formal
16524         interfaces.
16525         (Analyze_Interface_Declaration): New procedure for use for regular and
16526         formal interface declarations.
16527         (Build_Derived_Record_Type): Add support for private types to the code
16528         that checks if a tagged type implements abstract interfaces.
16529         (Check_Aliased_Component_Type): The test applies in the spec of an
16530         instance as well.
16531         (Access_Type_Declaration): Clean up declaration of malformed type
16532         declared as an access to its own classwide type, to prevent cascaded
16533         crash.
16534         (Collect_Interfaces): For private extensions and for derived task types
16535         and derived protected types, the parent may be an interface that must
16536         be included in the interface list.
16537         (Access_Definition): If the designated type is an interface that may
16538         contain tasks, create Master_Id for it before analyzing the expression
16539         of the declaration, which may be an allocator.
16540         (Record_Type_Declaration): Set properly the interface kind, for use
16541         in allocators, the creation of master id's for task interfaces, etc.
16542
16543 2005-11-14  Javier Miranda  <miranda@adacore.com>
16544             Ed Schonberg  <schonberg@adacore.com>
16545
16546         * sem_ch6.adb (Check_Conformance): The null-exclusion feature can be
16547         omitted in case of stream attribute subprograms.
16548         (Check_Inline_Pragma): Handle Inline and Inline_Always pragmas that
16549         appear immediately after a subprogram body, when there is no previous
16550         subprogram declaration.
16551         Change name Is_Package to Is_Package_Or_Generic_Package
16552         (Process_Formals): A non null qualifier on a non null named access
16553         type is not an error, and is a warning only if Redundant_Constructs
16554         are flagged.
16555
16556 2005-11-14  Gary Dismukes  <dismukes@adacore.com>
16557             Ed Schonberg  <schonberg@adacore.com>
16558
16559         * sem_ch7.adb (Install_Parent_Private_Declarations): New procedure
16560         nested within Analyze_Package_Specification to install the private
16561         declarations and use clauses within each of the parent units of a
16562         package instance of a generic child package.
16563         (Analyze_Package_Specification): When entering a private part of a
16564         package associated with a generic instance or formal package, the
16565         private declarations of the parent must be installed (by calling new
16566         procedure Install_Parent_Private_Declarations).
16567         Change name Is_Package to Is_Package_Or_Generic_Package
16568         (Preserve_Full_Attributes): For a synchronized type, the corresponding
16569         record is absent in a generic context, which does not indicate a
16570         compiler error.
16571
16572 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
16573
16574         * sem_ch8.adb (Analyze_Subprogram_Renaming): In a generic context, do
16575         not try to rewrite a renamed stream attribute, because the operations
16576         on the type may not have been generated.
16577         Handle properly a renaming_as_body generated for a stream operation
16578         whose default is abstract because the object type itself is abstract.
16579         (Find_Type): If the type is incomplete and appears as the prefix of a
16580         'Class reference, it is tagged, and its list of primitive operations
16581         must be initialized properly.
16582         (Chain_Use_Clauses): When chaining the use clauses that appear in the
16583         private declaration of a parent unit, prior to compiling the private
16584         part of a child unit, find on the scope stack the proper parent entity
16585         on which to link the use clause.
16586         (Note_Redundant_Use): Emit a warning when a redundant use clause is
16587         detected.
16588         (Analyze_Object_Renaming): An attribute reference is not a legal object
16589         if it is not a function call.
16590
16591 2005-11-14  Robert Dewar  <dewar@adacore.com>
16592             Ed Schonberg  <schonberg@adacore.com>
16593
16594         * sem_eval.adb: Implement d.f flag
16595         (Subtype_Statically_Match): A generic actual type has unknown
16596         discriminants when the corresponding actual has a similar partial view.
16597         If the routine is called to validate the signature of an inherited
16598         operation in a child instance, the generic actual matches the full view,
16599
16600 2005-11-14  Hristian Kirtchev  <kirtchev@adacore.com>
16601             Ed Schonberg  <schonberg@adacore.com>
16602             Robert Dewar  <dewar@adacore.com>
16603             Thomas Quinot  <quinot@adacore.com>
16604
16605         * sem_res.adb (Resolve_Call): Provide a better error message whenever
16606         a procedure call is used as a select statement trigger and is not an
16607         entry renaming or a primitive of a limited interface.
16608         (Valid_Conversion): If the operand has a single interpretation do not
16609         remove address operations.
16610         (Check_Infinite_Recursion): Skip freeze nodes when looking for a raise
16611         statement to inhibit warning.
16612         (Resolve_Unary_Op): Do not produce a warning when
16613         processing an expression of the form -(A mod B)
16614         Use Universal_Real instead of Long_Long_Float when we need a high
16615         precision float type for the generated code (prevents gratuitous
16616         Vax_Float stuff when pragma Float_Representation (Vax_Float) used)
16617         (Resolve_Concatenation_Arg): Improve error message when argument is an
16618         ambiguous call to a function that returns an array.
16619         (Make_Call_Into_Operator, Operand_Type_In_Scope): Do not check that
16620         there is an implicit operator in the given scope if we are within an
16621         instance: legality check has been performed on the generic.
16622         (Resolve_Unary_Op): Apply warnings checks on argument of Abs operator
16623         after resolving operand, to avoid false warnings on overloaded calls.
16624
16625 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
16626             Javier Miranda  <miranda@adacore.com>
16627
16628         PR ada/15604
16629         * sem_type.adb (Covers): In an inlined body, a composite type matches
16630         a private type whose full view is a composite type.
16631         (Interface_Present_In_Ancestor): Protect the frontend against
16632         previously detected errors to ensure that its compilation
16633         with assertions enabled gives the same output that its
16634         compilation without assertions.
16635         (Interface_Present_In_Ancestor): Add support for private types.
16636         Change name In_Actual to In_Generic_Actual (clean up)
16637         (Disambiguate): New predicate In_Actual, to recognize expressions that
16638         appear in the renaming declaration generated for generic actuals, and
16639         which must be resolved in the outer context.
16640
16641 2005-11-14  Robert Dewar  <dewar@adacore.com>
16642             Thomas Quinot  <quinot@adacore.com>
16643             Hristian Kirtchev  <kirtchev@adacore.com>
16644             Ed Schonberg  <schonberg@adacore.com>
16645
16646         * sem_util.ads, sem_util.adb: Change name Is_Package to
16647         Is_Package_Or_Generic_Package.
16648         (Check_Obsolescent): New procedure.
16649         (Set_Is_Public): Remove obsolete junk test.
16650         (Set_Public_Status): Do not set Is_Public on an object whose declaration
16651         occurs within a handled_sequence_of_statemets.
16652         (Is_Controlling_Limited_Procedure): Factor some of the logic, account
16653         for a parameterless procedure.
16654         (Enter_Name): Recognize renaming declarations created for private
16655         component of a protected type within protected operations, so that
16656         the source name of the component can be used in the debugger.
16657
16658 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
16659             Robert Dewar  <dewar@adacore.com>
16660
16661         * sem_warn.ads, sem_warn.adb (Publicly_Referenceable): Generic formals
16662         of a generic subprogram are not visible outside the body.
16663         (Set_Warning_Switch): New procedure (code to set warning mode moved
16664         here from Switch.C so that it can be shared by pragma processing.
16665         (Check_References): Special case warning for non-modified non-imported
16666         volatile objects.
16667         * par-prag.adb: Modify processing of pragma Warnings to accomodate new
16668         form with a string literal argument
16669
16670 2005-11-14  Javier Miranda  <miranda@adacore.com>
16671
16672         * s-finroo.ads, s-finroo.adb (Read): Addition of "not null" to the
16673         anonymous access.
16674         (Write): Addition of "not null" to the anonymous access.
16675         (Read): Addition of "not null" to the anonymous access.
16676         (Write): Addition of "not null" to the anonymous access.
16677
16678         * s-strxdr.adb, s-stratt.ads, s-stratt.adb (I_AD, I_AS, I_B, I_C, I_F,
16679         I_I, I_LF, I_LI, I_LLF, I_LLI, I_LLU, I_LU, I_SF, I_SI, I_SSI, I_SSU,
16680         I_SU, I_U, I_WC): Addition of "not null" to the anonymous access.
16681         (W_AD, W_AS, W_B, W_C, W_F, W_I, W_LF, W_LI, W_LLF, W_LLI, W_LLU,
16682         W_LU, W_SF, W_SI, W_SSI, W_SSU, W_SU, W_U, W_WC): Addition of
16683         "not null" to the anonymous access.
16684
16685 2005-11-14  Robert Dewar  <dewar@adacore.com>
16686
16687         * s-stoele.adb: Fix code for Address mod Storage_Offset for negative
16688         offset values
16689
16690 2005-11-14  Vincent Celier  <celier@adacore.com>
16691
16692         * switch.adb (Bad_Switch): New procedure
16693         (Scan_Nat, Scan_Pos): Directly call Osint.Fail with the appropriate
16694         message when in error.
16695
16696         * switch.ads (Bad_Switch, Bad_Switch_Value, Missing_Switch_Value,
16697         Too_Many_Output_Files): Remove declarations, no longer used.
16698         (Scan_Nat): New parameter Switch
16699         (Scan_Pos): Ditto
16700         (Bad_Switch): New procedure
16701
16702         * switch-b.adb (Scan_Binder_Switches): Replace "raise Bad_Switch;"
16703         with call to new procedure Bad_Switch. Call Scan_Pos and Scan_Natwith
16704         new parameter Switch. Replace "raise Too_Many_Output_Files;" with call
16705         to Osint.Fail. Do not handle any exception.
16706
16707 2005-11-14  Vincent Celier  <celier@adacore.com>
16708
16709         * tempdir.adb (Tempdir): Do not use environment variable TMPDIR if it
16710         designates a non existent directory.
16711
16712 2005-11-14  Robert Dewar  <dewar@adacore.com>
16713
16714         * xgnatugn.adb: Replace invalid membership test by 'Valid
16715
16716 2005-11-14  Vincent Celier  <celier@adacore.com>
16717
16718         * makegpr.adb (Gprmake): Do not attempt to build the global archive if
16719         there is no object directory.
16720
16721 2005-11-14  Robert Dewar  <dewar@adacore.com>
16722
16723         * usage.adb: Minor adjustment to output format, use nn instead of nnn
16724         (so that -gnateInnn does not run into next column)
16725
16726 2005-11-14  Ed Falis  <falis@adacore.com>
16727
16728         * s-bitops.adb (Bits_Array): corrected comment: "unconstrained" =>
16729         "constrained"
16730
16731 2005-11-14  Cyrille Comar  <comar@adacore.com>
16732
16733         * s-chepoo.ads: Add comments on Dereference.
16734         Remove unnecessary inherited abstract primitives.
16735         Cosmetic cleanup.
16736
16737 2005-11-14  Robert Dewar  <dewar@adacore.com>
16738
16739         * sem_cat.ads (Validate_Access_Type_Declaration): Remove declaration
16740         node parameter, not needed, since it is available as Declaration_Node.
16741
16742 2005-11-14  Geert Bosch  <bosch@adacore.com>
16743
16744         * s-exnllf.adb (Exn_LLF): Fix comment to be more precise and
16745         grammatically correct.
16746
16747 2005-11-14  Vincent Celier  <celier@adacore.com>
16748
16749         * s-fileio.ads: Correct spelling error in comment
16750
16751 2005-11-14  Cyrille Comar  <comar@adacore.com>
16752             Robert Dewar  <dewar@adacore.com>
16753             Vincent Celier  <celier@adacore.com>
16754             Ben Brosgol  <brosgol@adacore.com>
16755             Jose Ruiz  <ruiz@adacore.com>
16756             Pascal Obry  <obry@adacore.com>
16757
16758         * gnat_ugn.texi: 
16759         Document that -fstack-check is needed for strict compliance with the
16760         Ada 95 Reference Manual.
16761         Correct reference to VAX systems to meet HP guidelines
16762         Add documentation for new gnatmake switches -vl, -vm and -vh
16763         Replace DEC Ada by HP Ada
16764         Replace DIGITAL by HP
16765         Remove empty section on tools in compatibility section
16766         Clarify the Windows convention semantics.
16767         Document the Win32 calling convention.
16768         The Stdcall, Win32 and DLL convention are synonyms.
16769         Add a note in -gnatR description about zero size record components
16770         Note on new >= and <= warnings for -gnatwc
16771         Document that equal sign after -gnatm is optional.
16772         Note that strip is working fine on DLL built with a Library
16773         Project. The restriction apply only to DLL built with gnatdll.
16774         Update section about the way to debug a DLL.
16775         Update information about the DLL convention.
16776         Document -C switch for gnatprep
16777         Document new attribute Library_ALI_Dir
16778         Update elaboration doc to include implicit Elaborate pragmas now
16779         generated for subprogram instantiations.
16780         Document limitation on executable names that include spaces for --GCC,
16781         --GNATBIND, and --GNATLINK switches.
16782         Document that -w causes -gnatws to be added at start of gcc switches
16783
16784         * gnat_rm.texi: Document that -mieee is needed for generating infinite
16785         and NaN values in case of overflow on machines that are not fully
16786         compliant with the IEEE floating-point standard.
16787         Create a section describing the set of compiler options needed for
16788         strict compliance with the Ada 95 Reference Manual.
16789         Add documentation for pragma Obsolescent applied to a package
16790         Clarify potential issues of mixed language programs related to the
16791         I/O buffering enabling in the elaboration of the GNAT runtime.
16792         Add extra documentation for pragma Restrictions (No_Elaboration_Code)
16793         This documentation only patch adds extra documentsion for pragma
16794         Restrictions (No_Elaboration_Code), explaining why it is not possible
16795         to document this restriction in terms of allowed source constructs.
16796         Document string literal form of pragma Warnings
16797         Document new attribute Library_ALI_Dir
16798         Add documentation on stable attributes in project files that was missing
16799
16800         * gnat-style.texi: Indicate that paragraphs within a single comment
16801         should be separated by empty comment lines
16802
16803         * ug_words: Added replacements for -gnat95 and -gnat05 (/95 and
16804         /05 respectively)
16805
16806         * bindusg.adb: Minor cleanup, put -m before -M for consistency
16807
16808 2005-11-14  Robert Dewar  <dewar@adacore.com>
16809
16810         * a-secain.adb, a-slcain.adb, a-shcain.adb, a-chtgke.ads, a-chtgke.adb,
16811         a-stwiha.adb, a-strhas.adb, a-chzla1.ads, a-chzla9.ads, a-stzbou.adb,
16812         a-stzbou.ads, a-stzfix.adb, a-stzhas.adb, a-stzmap.adb, a-stzmap.ads,
16813         a-stzsea.adb, a-stzsea.ads, a-stzsup.adb, a-stzsup.ads, a-stzunb.adb,
16814         a-stzunb.ads, a-szuzha.adb, a-szuzha.ads, a-szuzti.adb, a-szuzti.ads,
16815         a-ztcoau.adb, a-ztcoau.ads, a-ztcoio.adb, a-ztcstr.adb, a-ztcstr.ads,
16816         a-ztdeau.adb, a-ztdeau.ads, a-ztdeio.adb, a-ztdeio.ads, a-ztedit.adb,
16817         a-ztedit.ads, a-ztenau.ads, a-ztenio.adb, a-ztenio.ads, a-ztexio.adb,
16818         a-ztexio.ads, a-ztfiio.adb, a-ztfiio.ads, a-ztflau.adb, a-ztflau.ads,
16819         a-ztflio.adb, a-ztflio.ads, a-ztgeau.adb, a-ztgeau.ads, a-ztinau.adb,
16820         a-ztinau.ads, a-ztinio.adb, a-ztmoau.ads, a-ztmoio.adb, a-ztmoio.ads,
16821         a-zttest.adb, g-enblsp-vms-alpha.adb, g-enblsp-vms-alpha.adb,
16822         g-enblsp-vms-ia64.adb, g-enblsp-vms-ia64.adb, system-linux-hppa.ads,
16823         a-chacon.adb, a-chacon.ads, a-wichun.adb, a-wichun.ads, a-zchuni.adb,
16824         a-zchuni.ads, g-trasym-vms-alpha.adb, g-trasym-vms-ia64.adb,
16825         system-hpux-ia64.ads, g-soccon-unixware.ads, g-soliop-unixware.ads,
16826         g-soccon-interix.ads, g-soliop-solaris.ads, g-eacodu-vms.adb,
16827         g-expect-vms.adb, g-socthi-vms.adb, g-soliop-mingw.ads,
16828         a-intnam-unixware.ads, a-intnam-lynxos.ads, a-intnam-tru64.ads,
16829         a-intnam-aix.ads, a-intnam-linux.ads, a-intnam-linux.ads,
16830         a-intnam-dummy.ads, a-numaux-libc-x86.ads, a-intnam-interix.ads,
16831         a-intnam-solaris.ads, a-calend-vms.adb, a-calend-vms.ads,
16832         a-intnam-vms.ads, a-calend-mingw.adb, a-intnam-mingw.ads,
16833         a-intnam-vxworks.ads, a-numaux-vxworks.ads, system-unixware.ads,
16834         system-linux-ia64.ads, a-intnam-freebsd.ads, system-freebsd-x86.ads,
16835         system-lynxos-ppc.ads, system-linux-x86_64.ads, a-stunha.adb,
16836         a-cgaaso.ads, a-cgaaso.adb, a-chtgop.adb, a-cgcaso.adb, a-cgarso.adb,
16837         a-cohata.ads, a-crbtgk.adb, a-crbltr.ads, a-coprnu.adb, a-rbtgso.adb,
16838         a-intnam-darwin.ads, system-darwin-ppc.ads, gprmake.adb, makegpr.ads,
16839         system-tru64.ads, system-aix.ads, system-solaris-x86.ads,
16840         system-irix-o32.ads, s-interr-sigaction.adb, system-irix-n32.ads,
16841         s-parame-mingw.adb, system-hpux.ads, s-traceb-hpux.adb,
16842         system-linux-x86.ads, s-inmaop-dummy.adb, system-os2.ads,
16843         system-interix.ads, system-solaris-sparc.ads,
16844         system-solaris-sparcv9.ads, s-inmaop-vms.adb,
16845         s-mastop-vms.adb, expander.adb, expander.ads, s-gloloc-mingw.adb,
16846         system-mingw.ads, system-vms-zcx.ads, s-osinte-fsu.adb,
16847         s-traceb-mastop.adb, a-exextr.adb, a-exstat.adb, a-filico.ads,
16848         a-finali.ads, a-interr.ads, a-intsig.adb, a-intsig.ads,
16849         a-except.ads, a-numaux-x86.ads, a-astaco.adb, a-calend.adb,
16850         a-calend.ads, a-chahan.adb, a-chahan.ads, a-chlat9.ads,
16851         a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
16852         a-comlin.adb, a-comlin.ads, a-cwila1.ads, a-cwila9.ads,
16853         a-elchha.adb, a-decima.adb, a-decima.ads, a-diocst.ads,
16854         a-direio.adb, a-direio.ads, a-excach.adb, a-excach.adb,
16855         a-exctra.ads, ali-util.adb, a-ngcefu.adb, a-ngcoty.adb,
16856         a-ngcoty.ads, a-nudira.adb, a-nudira.ads, a-nuflra.adb,
16857         a-numaux.ads, a-reatim.ads, a-sequio.adb, a-sequio.ads,
16858         a-siocst.ads, a-ssicst.ads, a-stmaco.ads, a-storio.adb,
16859         a-strbou.adb, a-strbou.ads, a-stream.ads, a-strfix.adb,
16860         a-strmap.adb, a-strmap.ads, a-strsea.adb, a-strsea.ads,
16861         a-strsup.adb, a-strsup.ads, a-strunb.adb, a-strunb.ads,
16862         a-stwibo.adb, a-stwibo.ads, a-stwifi.adb, a-stwima.adb,
16863         a-stwima.ads, a-stwise.adb, a-stwise.ads, a-stwisu.adb,
16864         a-stwisu.ads, a-stwiun.adb, a-stwiun.ads, a-suteio.adb,
16865         a-suteio.ads, a-swmwco.ads, a-swuwti.adb, a-swuwti.ads,
16866         a-sytaco.adb, a-sytaco.ads, a-tasatt.adb, a-taside.adb,
16867         a-taside.ads, a-teioed.adb, a-textio.adb, a-textio.ads,
16868         a-ticoau.adb, a-ticoau.ads, a-ticoio.adb, a-tideau.adb,
16869         a-tideio.adb, a-tienau.adb, a-tienio.adb, a-tifiio.adb,
16870         a-tiflio.adb, a-tigeau.adb, a-tigeau.ads, a-tiinau.adb,
16871         a-tiinio.adb, a-timoau.adb, a-timoio.adb, a-timoio.ads,
16872         a-tiocst.ads, a-titest.adb, atree.adb, a-witeio.adb,
16873         a-witeio.ads, a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb,
16874         a-wtcstr.ads, a-wtdeau.adb, a-wtdeio.adb, a-wtedit.adb,
16875         a-wtedit.ads, a-wtenau.adb, a-wtenio.adb, a-wtfiio.adb,
16876         a-wtflio.adb, a-wtgeau.adb, a-wtinau.adb, a-wtinio.adb,
16877         a-wtmoau.adb, a-wtmoio.adb, a-wttest.adb, back_end.adb,
16878         bindgen.adb, butil.adb, butil.ads, checks.ads, cio.c, comperr.adb,
16879         csets.ads, cstand.adb, debug.ads, elists.ads, errno.c, errout.adb,
16880         errout.ads, erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
16881         errutil.ads, err_vars.ads, eval_fat.adb, exp_ch11.adb, exp_ch11.ads,
16882         exp_ch2.adb, exp_ch7.ads, exp_imgv.ads, exp_pakd.adb, exp_prag.adb,
16883         exp_prag.ads, exp_tss.adb, exp_tss.ads, exp_vfpt.ads, fe.h, fmap.adb,
16884         freeze.ads, frontend.adb, frontend.ads, g-arrspl.adb, g-arrspl.ads,
16885         g-awk.adb, g-awk.ads, g-boumai.ads, g-calend.adb, g-calend.ads,
16886         g-catiio.adb, g-comlin.adb, g-comlin.ads, g-comlin.ads, g-comlin.ads,
16887         g-comver.adb, g-crc32.adb, g-crc32.ads, g-ctrl_c.ads, g-curexc.ads,
16888         g-debpoo.ads, g-debuti.adb, g-diopit.adb, g-diopit.ads, g-dirope.adb,
16889         g-dirope.ads, g-dyntab.adb, g-dyntab.ads, g-excact.adb, g-excact.ads,
16890         g-except.ads, g-exctra.adb, g-exctra.ads, g-expect.ads, g-flocon.ads,
16891         g-hesorg.ads, g-io.adb, g-locfil.ads, g-md5.adb, g-md5.ads, g-md5.ads,
16892         g-moreex.adb, g-signal.ads, g-signal.adb, gnatbind.ads, gnatchop.adb,
16893         gnatcmd.adb, gnatfind.adb, gnatlbr.adb, gnatmake.ads, gnatmem.adb,
16894         gnatprep.adb, gnatprep.ads, gnatsym.adb, gnatxref.adb, g-os_lib.adb,
16895         g-os_lib.ads, g-pehage.adb, g-pehage.ads, gprep.ads, g-regexp.adb,
16896         g-regexp.ads, g-regist.adb, g-regist.ads, g-regpat.ads, g-semaph.adb,
16897         g-socthi.adb, g-soliop.ads, g-spipat.adb, g-spipat.ads, g-sptabo.ads,
16898         g-sptain.ads, g-sptavs.ads, g-string.ads, g-tasloc.adb, g-tasloc.ads,
16899         g-trasym.adb, g-trasym.ads, i-fortra.adb, i-fortra.ads, inline.adb,
16900         layout.adb, live.adb, make.ads, makeutl.ads, makeutl.adb, mdll-fil.adb,
16901         mdll-fil.ads, mdll-utl.ads, memroot.ads, memtrack.adb, mlib.ads,
16902         mlib-fil.adb, mlib-fil.ads, mlib-prj.ads, mlib-utl.adb, mlib-utl.ads,
16903         nlists.adb, nlists.ads, osint.adb, osint.ads, osint-c.adb, osint-l.adb,
16904         osint-l.ads, osint-m.ads, output.adb, par.adb, par.adb, par.ads,
16905         par-ch11.adb, par-ch12.adb, par-ch2.adb, par-ch4.adb, par-ch5.adb,
16906         par-ch6.adb, par-ch9.adb, par-endh.adb, par-labl.adb, par-load.adb,
16907         par-tchk.adb, prep.adb, prepcomp.adb, prepcomp.ads, prj-attr.ads,
16908         prj-com.ads, prj-dect.adb, prj-dect.ads, prj-env.ads, prj-err.ads,
16909         prj-ext.ads, prj-makr.adb, prj-makr.ads, prj-nmsc.ads, prj-pars.adb,
16910         prj-pars.ads, prj-part.ads, prj-pp.ads, prj-proc.ads, prj-strt.adb,
16911         prj-strt.ads, prj-tree.adb, prj-util.adb, prj-util.ads, rtsfind.adb,
16912         sem.adb, sem.ads, sem_case.adb, sem_case.ads, sem_ch11.adb,
16913         sem_ch4.adb, sem_ch6.ads, sem_ch7.ads, sem_dist.ads, sem_elab.ads,
16914         sem_elim.ads, sem_eval.ads, sem_intr.ads, sem_maps.adb, sem_maps.ads,
16915         sem_maps.ads, sem_res.ads, sem_type.ads, sfn_scan.adb, sfn_scan.ads,
16916         s-imgwch.ads, s-imgwiu.adb, s-imgwiu.ads, s-inmaop.ads, sinput.adb,
16917         sinput.ads, s-pack03.adb, s-pack03.ads, s-pack05.adb, s-pack05.ads,
16918         s-pack06.adb, s-pack06.ads, s-pack07.adb, s-pack07.ads, s-pack09.adb,
16919         s-pack09.ads, s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads,
16920         s-pack12.adb, s-pack12.ads, s-pack13.adb, s-pack13.ads, s-pack14.adb,
16921         s-pack14.ads, s-pack15.adb, s-pack15.ads, s-pack17.adb, s-pack17.ads,
16922         s-pack18.adb, s-pack18.ads, s-pack19.adb, s-pack19.ads, s-pack20.adb,
16923         s-pack20.ads, s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads,
16924         s-pack23.adb, s-pack23.ads, s-pack24.adb, s-pack24.ads, s-pack25.adb,
16925         s-pack25.ads, s-pack26.adb, s-pack26.ads, s-pack27.adb, s-pack27.ads,
16926         s-pack28.adb, s-pack28.ads, s-pack29.adb, s-pack29.ads, s-pack30.adb,
16927         s-pack30.ads, s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads,
16928         s-pack34.adb, s-pack34.ads, s-pack35.adb, s-pack35.ads, s-pack36.adb,
16929         s-pack36.ads, s-pack37.adb, s-pack37.ads, s-pack38.adb, s-pack38.ads,
16930         s-pack39.adb, s-pack39.ads, s-pack40.adb, s-pack40.ads, s-pack41.adb,
16931         s-pack41.ads, s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads,
16932         s-pack44.adb, s-pack44.ads, s-pack45.adb, s-pack45.ads, s-pack46.adb,
16933         s-pack46.ads, s-pack47.adb, s-pack47.ads, s-pack48.adb, s-pack48.ads,
16934         s-pack49.adb, s-pack49.ads, s-pack50.adb, s-pack50.ads, s-pack51.adb,
16935         s-pack51.ads, s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads,
16936         s-pack54.adb, s-pack54.ads, s-pack55.adb, s-pack55.ads, s-pack56.adb,
16937         s-pack56.ads, s-pack57.adb, s-pack57.ads, s-pack58.adb, s-pack58.ads,
16938         s-pack59.adb, s-pack59.ads, s-pack60.adb, s-pack60.adb, s-pack60.ads,
16939         s-pack61.adb, s-pack61.ads, s-pack62.adb, s-pack62.ads, s-pack63.adb,
16940         s-pack63.ads, s-parint.adb, s-parint.adb, s-parint.ads, sprint.ads,
16941         s-purexc.ads, s-restri.ads, s-restri.adb, s-scaval.adb, s-scaval.ads,
16942         s-secsta.adb, s-secsta.ads, s-sequio.adb, s-sequio.ads, stand.ads,
16943         s-tasuti.adb, s-traceb.adb, s-traceb.ads, stringt.adb, stringt.ads,
16944         styleg.ads, s-valboo.adb, s-valboo.ads, s-valcha.adb, s-valcha.ads,
16945         s-valdec.adb, s-valdec.ads, s-valint.adb, s-valint.ads, s-valint.ads,
16946         s-vallld.adb, s-vallld.ads, s-vallli.adb, s-vallli.ads, s-valllu.adb,
16947         s-valllu.ads, s-valrea.adb, s-valrea.ads, s-valuns.adb, s-valuns.ads,
16948         s-valuti.adb, s-valuti.ads, s-valwch.ads, s-veboop.adb, s-veboop.ads,
16949         s-vercon.adb, s-vercon.ads, s-wchcnv.adb, s-wchcnv.ads, s-wchcon.ads,
16950         s-wchjis.adb, s-wchjis.ads, s-wchstw.adb, s-wchstw.adb, s-wchstw.ads,
16951         s-wchwts.adb, s-wchwts.ads, s-widboo.adb, s-widboo.ads, s-widcha.adb,
16952         s-widcha.ads, s-widenu.adb, s-widenu.ads, s-widlli.adb, s-widlli.ads,
16953         s-widllu.adb, s-widllu.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb,
16954         s-wwdcha.ads, s-wwdenu.adb, s-wwdenu.ads, symbols.adb, symbols.ads,
16955         table.ads, targparm.adb, targparm.ads, tb-alvms.c, tb-alvxw.c,
16956         tbuild.adb, tree_io.ads, treepr.adb, treeprs.adt, ttypef.ads,
16957         ttypes.ads, types.adb, uintp.adb, uintp.ads, uname.ads, urealp.ads,
16958         usage.ads, validsw.ads, vxaddr2line.adb, widechar.adb, widechar.ads,
16959         xeinfo.adb, xnmake.adb, xref_lib.ads, xr_tabls.adb, xr_tabls.ads,
16960         xsinfo.adb, xtreeprs.adb, xsnames.adb, vms_conv.ads, vms_conv.adb,
16961         a-dirval.ads, a-dirval.adb, a-dirval-mingw.adb, a-direct.ads,
16962         a-direct.adb, indepsw.ads, prj-attr-pm.ads, system-linux-ppc.ads,
16963         a-numaux-darwin.ads, a-numaux-darwin.adb,
16964         a-swuwha.ads, a-stunha.ads: Minor reformatting
16965
16966 2005-11-14  Robert Dewar  <dewar@adacore.com>
16967
16968         PR ada/18434
16969         * osint-m.adb: Add pragma Elaborate_All for Osint
16970
16971 2005-11-10  Eric Botcazou  <ebotcazou@adacore.com>
16972
16973         PR ada/23995
16974         * trans.c (call_to_gnu): Restore statement lost in translation.
16975
16976 2005-11-08  Eric Botcazou  <ebotcazou@adacore.com>
16977
16978         * init.c: Use the Linux-specific section for the IA-64/Linux target.
16979         (__gnat_adjust_context_for_raise): Add conditional code so that the
16980         IA-64 is also supported.
16981
16982 2005-11-03  James E Wilson  <wilson@specifix.com>
16983
16984         PR ada/23427
16985         * trans.c (gnat_to_gnu): Use TYPE_SIZE_UNIT not TYPE_SIZE in
16986         TREE_OVERFLOW check.
16987
16988 2005-09-21  Olivier Hainque  <hainque@adacore.com>
16989
16990         PR ada/22418
16991         * decl.c (maybe_pad_type): Use proper bitsizetype for XVZ objects,
16992         as we create them to store a size in bits.
16993
16994 2005-10-21  Eric Botcazou  <ebotcazou@adacore.com>
16995
16996         PR ada/21937
16997         PR ada/22328
16998         PR ada/22381
16999         PR ada/22383
17000         PR ada/22419
17001         PR ada/22420
17002         * utils2.c (build_return_expr): New helper function.
17003         * gigi.h (build_return_expr): Declare it.
17004         * trans.c (Subprogram_Body_to_gnu): Use build_return_expr instead
17005         of manually building the RETURN_EXPR tree.
17006         (call_to_gnu): Pass MODIFY_EXPR through build_binary_op.
17007         (gnat_to_gnu) <N_Return_Statement>: Pass MODIFY_EXPR through
17008         build_binary_op for the "target pointer" case.  Use build_return_expr
17009         instead of manually building the RETURN_EXPR tree.
17010
17011 2005-09-16  Laurent Guerby  <laurent@guerby.net>
17012
17013         PR ada/23788
17014         * s-tpinop.ads: Make this unit Preelaborate.
17015
17016 2005-09-16  Andreas Jaeger  <aj@suse.de>
17017
17018         * socket.c: Add string.h for memcpy.
17019
17020 2005-09-05  Arnaud Charlet  <charlet@adacore.com>
17021
17022         * dec-io.ads, dec-io.adb: Removed, no longer used.
17023
17024 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
17025
17026         * a-calend-mingw.adb: Add call to OS_Primitives.Initialize;
17027
17028         * s-taprop-mingw.adb, s-taprop-vms.adb, s-taprop-solaris.adb,
17029         s-taprop-os2.adb, s-taprop-irix-athread.adb, s-taprop-linux.adb,
17030         s-taprop-hpux-dce.adb, s-taprop-irix.adb, s-taprop-tru64.adb,
17031         s-taprop-lynxos.adb: Move with clauses outside Warnings Off now that
17032         dependent units are Preelaborate.
17033         (Initialize): Call Interrupt_Managemeent.Initialize and
17034         OS_Primitives.Initialize to ensure proper initialization of this unit.
17035         Remove use of System.Soft_Links
17036         Make this unit Preelaborate.
17037
17038         * s-stache.ads, s-taspri-vxworks.ads, s-taspri-mingw.ads,
17039         s-taspri-vms.ads, s-tasinf-solaris.ads, s-taspri-os2.ads,
17040         s-taspri-lynxos.ads, s-taspri-hpux-dce.ads, s-taspri-tru64.ads,
17041         s-tasinf-tru64.ads, s-tasinf-irix.ads, s-tasinf-irix-athread.ads,
17042         s-proinf-irix-athread.adb, s-proinf-irix-athread.ads,
17043         s-tratas.ads, s-tasinf.ads: Minor reformatting.
17044         Add pragma Preelaborate, since these packages are suitable for this
17045         categorization.
17046         Update comments.
17047
17048         * s-traent-vms.ads, s-intman-dummy.adb,
17049         s-taprop-dummy.adb: Make this unit Preelaborate.
17050
17051         * s-osprim-vxworks.adb, s-osprim-vms.adb, s-osprim-vms.ads,
17052         s-osprim-mingw.adb, s-intman-vxworks.ads, s-intman-vxworks.adb,
17053         s-intman-vms.adb, s-intman-mingw.adb, s-intman-vms.ads,
17054         s-osprim-unix.adb, s-osprim-os2.adb, s-osprim-solaris.adb,
17055         s-intman-solaris.adb, s-intman-irix-athread.adb,
17056         s-intman-irix.adb: Mark this unit Preelaborate.
17057         (Initialize): New procedure.
17058         Update comments.
17059
17060         * s-taspri-linux.ads: Removed.
17061
17062         * s-tpopsp-solaris.adb (Initialize): Create the key in this procedure,
17063         as done by other implementations (e.g. posix).
17064
17065         * s-taprop.ads (Timed_Delay): Update spec since the caller now is
17066         responsible for deferring abort.
17067         Mark this unit Preelaborate.
17068
17069         * s-taprob.adb, s-tarest.adb: Call System.Tasking.Initialize to ensure
17070         proper initialization of the tasking run-time.
17071
17072         * s-tasdeb.ads: Mark this unit Preelaborate.
17073         (Known_Tasks): Add explicit default value to avoid elaboration code.
17074
17075         * s-inmaop-vms.adb (Elaboration code): Add call to
17076         Interrupt_Management.Initialize since the elaboration code depends on
17077         proper initialization of this package.
17078
17079         * s-intman.ads, s-inmaop-posix.adb, s-intman-posix.adb,
17080         s-osprim.ads, s-taprop-posix.adb, s-taspri-posix.ads,
17081         s-osprim-posix.adb: Make this unit Preelaborate.
17082
17083         * a-calend.adb: Add call to OS_Primitives.Initialize
17084
17085         * a-elchha.adb: Update use of Except.Id.Full_Name.
17086         Minor reformatting.
17087         Remove use of Ada.Exceptions.Traceback when possible, cleaner.
17088
17089         * a-dynpri.adb, a-sytaco.adb, a-sytaco.ads:
17090         Move with clauses outside Warnings Off now that dependent units are
17091         Preelaborate.
17092         Use raise xxx with "..."; Ada 2005 form.
17093
17094         * a-taside.ads, a-taside.adb:
17095         Remove some dependencies, to make it easier to make this unit truly
17096         Preelaborate.
17097         Rewrite some code to be conformant with Preelaborate rules.
17098
17099         * g-os_lib.adb: Remove non-preelaborate code so that this unit can be
17100         marked Preelaborate in the future.
17101
17102         * s-proinf.ads, g-string.ads, s-auxdec.ads, s-auxdec-vms_64.ads: Make
17103         these units Preelaborate.
17104
17105         * s-exctab.adb: Update use of Except.Id.Full_Name.
17106
17107         * s-soflin.ads, s-soflin.adb: Mark this unit Preelaborate_05.
17108         (Set_Exc_Stack_Addr_Soft, Get_Exc_Stack_Addr_NT, Set_Exc_Stack_Addr_NT,
17109         Set_Exc_Stack_Addr): Removed, no longer used.
17110         Remove reference to *Machine_State_Addr*, no longer needed.
17111
17112         * s-stalib.ads: Mark this unit as Preelaborate[_05].
17113         (Exception_Data): Full_Name is now a System.Address so that this unit
17114         can be made Preelaborate.
17115         Clean up/simplify code thanks to Full_Name being a System.Address.
17116         Remove obsolete pragma Suppress (All_Checks), no longer needed.
17117
17118         * s-taskin.ads, s-taskin.adb:
17119         Move with clauses outside Warnings Off now that dependent units are
17120         Preelaborate.
17121         Make this unit Preelaborate.
17122         (Initialize): New proceduure, replace elaboration code and makes the
17123         set up of the tasking run-time cleaner.
17124         (Detect_Blocking): Now a function instead of a deferred boolean, to
17125         obey Preelaborate rules.
17126
17127         * s-tassta.adb (Finalize_Global_Tasks): Remove Get/Set_Exc_Stack_Addr
17128         soft links, no longer used.
17129
17130         * s-traces.ads, s-traent.ads: Add pragma Preelaborate, since these
17131         packages are suitable for this categorization.
17132
17133         * s-solita.adb: Replace use of Ada.Exception by raise xxx with "..."
17134         since we compile run-time sources in Ada 2005 mode.
17135         (Timed_Delay_T): Call Abort_Defer/Undefer around Timed_Delay, to
17136         avoid having s-taprop*.adb depend on s-soflin and to avoid code
17137         duplication.
17138         Remove reference to *Machine_State_Addr*, no longer needed.
17139
17140 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
17141
17142         * s-mastop-tru64.adb, s-mastop-irix.adb, s-mastop-vms.adb
17143         (Enter_Handler, Set_Signal_Machine_State): Removed, no longer used.
17144         Remove reference to System.Exceptions.
17145
17146         * s-mastop-x86.adb: Removed, no longer used.
17147
17148         * s-traceb-mastop.adb: Adjust calls to Pop_Frame.
17149
17150         * a-excach.adb: Minor reformatting.
17151
17152         * a-except.ads, a-except.adb: Remove global Warnings (Off) pragma, and
17153         instead fix new warnings that were hidden by this change.
17154         (AAA, ZZZ): Removed, replaced by...
17155         (Code_Address_For_AAA, Code_Address_For_ZZZ): ... these functions, who
17156         are used instead of constants, to help make Ada.Exception truly
17157         preelaborate.
17158         (Rcheck_*, Raise_Constraint_Error, Raise_Program_Error,
17159         Raise_Storage_Error): File is now a System.Address, to simplify code.
17160         (Elab code): Removed, no longer used.
17161         (Null_Occurrence): Remove Warnings Off and make this construct
17162         preelaborate.
17163         Remove code related to front-end zero cost exception handling, since
17164         it is no longer used.
17165         Remove -gnatL/-gnatZ switches.
17166
17167         * a-exexda.adb (Append_Info_Exception_Name, Set_Exception_C_Msg):
17168         Update use of Except.Msg.
17169
17170         * gnat1drv.adb, inline.adb, bindgen.adb, debug.adb, exp_ch11.ads,
17171         freeze.adb, frontend.adb, lib.adb, exp_ch11.adb: Remove code related
17172         to front-end zero cost exception handling, since it is no longer used.
17173         Remove -gnatL/-gnatZ switches.
17174
17175         * lib-writ.ads: Minor reformatting
17176         Remove doc of UX
17177
17178         * Makefile.rtl: Remove references to s-except*, s-mastop-x86*
17179
17180         * Make-lang.in: Remove references to s-except.ads
17181
17182         * s-except.ads: Removed, no longer used.
17183
17184         * s-mastop.ads, s-mastop.adb:
17185         (Enter_Handler, Set_Signal_Machine_State): Removed, no longer used.
17186         Remove reference to System.Exceptions.
17187
17188         * raise.h, usage.adb, targparm.adb, targparm.ads, switch-m.adb,
17189         switch-b.adb: Remove code related to front-end zero cost exception
17190         handling, since it is no longer used.
17191         Remove -gnatL/-gnatZ switches.
17192
17193 2005-09-01  Robert Dewar  <dewar@adacore.com>
17194             Gary Dismukes  <dismukes@adacore.com>
17195             Javier Miranda  <miranda@adacore.com>
17196
17197         * exp_ch4.adb (Expand_N_In): Replace test of expression in its own
17198         type by valid test and generate warning.
17199         (Tagged_Membership): Generate call to the run-time
17200         subprogram IW_Membership in case of "Iface_CW_Typ in Typ'Class"
17201         Change formal name Subtype_Mark to Result_Definition in several calls to
17202         Make_Function_Specification.
17203         (Expand_Allocator_Expression): Add tests for suppression of the AI-344
17204         check for proper accessibility of the operand of a class-wide allocator.
17205         The check can be left out if checks are suppressed or if the expression
17206         has a specific tagged type whose level is known to be safe.
17207
17208         * exp_ch5.adb (Expand_N_Assignment_Statement): Simplify the code that
17209         generates the run-time check associated with null-excluding entities.
17210         (Expand_N_Return_Statement): Add tests to determine if the accessibility
17211         check on the level of the return expression of a class-wide function
17212         can be elided. The check usually isn't needed if the expression has a
17213         specific type (unless it's a conversion or a formal parameter). Also
17214         add a test for whether accessibility checks are suppressed. Augment
17215         the comments to describe the conditions for performing the check.
17216
17217 2005-09-01  Hristian Kirtchev  <kirtchev@adacore.com>
17218             Javier Miranda  <miranda@adacore.com>
17219             Gary Dismukes  <dismukes@adacore.com>
17220             Ed Schonberg  <schonberg@adacore.com>
17221
17222         * a-tags.adb (IW_Membership): Give support to
17223         "Iface_CW_Typ in T'Class". For this purpose the functionality of this
17224         subprogram has been extended to look for the tag in the ancestors tag
17225         table.
17226         Update the structure of the GNAT Dispatch Table to reflect the
17227         additional two tables used in dispatching selects.
17228         Introduce appropriate array types and record components in
17229         Type_Specific_Data to reflect the two tables.
17230         (Get_Entry_Index, Set_Entry_Index): Retrieve and set the entry index in
17231         the TSD of a tag, indexed by position.
17232         (Get_Prim_Op_Kind, Set_Prim_Op_Kind): Retrieve and set the primitive
17233         operation kind in the TSD of a tag, indexed by position.
17234
17235         * a-tags.ads: Introduce an enumeration type to capture different
17236         primitive operation kinds. Define a constant reflecting the number of
17237         predefined primitive operations.
17238         (Get_Entry_Index, Set_Entry_Index): Set and retrieve the entry index
17239         of an entry wrapper.
17240         (Get_Prim_Op_Kind, Set_Prim_Op_Kind): Set and retrieve the kind of
17241         callable entity of a primitive operation.
17242
17243         * exp_ch3.adb (Freeze_Record_Type): Generate the declarations of the
17244         primitive operations used in dispatching selects for limited
17245         interfaces, limited tagged, task and protected types what implement a
17246         limited interface.
17247         (Freeze_Type): Generate the bodies of the primitive operations used in
17248         dispatching selects for limited tagged, task and protected types that
17249         implement a limited interface. Generate statements to populate the two
17250         auxiliary tables used for dispatching in select statements.
17251         (Freeze_Record_Type): Add call to initialize the dispatch table entries
17252         associated with predefined interface primitive operations.
17253         (Build_Dcheck_Function): Change Set_Subtype_Mark to
17254         Set_Result_Definition.
17255         (Build_Variant_Record_Equality): Change Subtype_Mark to
17256         Result_Definition.
17257         (Freeze_Enumeration_Type): Change Subtype_Mark to Result_Definition.
17258         (Predef_Spec_Or_Body): Change Subtype_Mark to Result_Definition.
17259         (Build_Assignment): Simplify the code that adds the run-time-check.
17260         (Expand_N_Object_Declaration): Code cleanup.
17261
17262         * exp_ch7.adb (Make_Clean): Select the appropriate type for locking
17263         entries when there is a protected type that implements a limited
17264         interface.
17265
17266         * exp_ch9.adb: Add package Select_Expansion_Utilities that contains
17267         common routines used in expansion of dispatching selects.
17268         (Add_Private_Declarations): Select the appropriate protection type when
17269         there is a protected type that implements a limited interface.
17270         (Build_Parameter_Block): Generate a wrapped parameter block.
17271         (Build_Protected_Subprogram_Body): Select the appropriate type for
17272         locking entries when there is a protected type that implements a
17273         limited interface.
17274         (Build_Wrapper_Spec): Set the flag and wrapped entity for procedures
17275         classified as entry wrappers.
17276         (Expand_N_Asynchronous_Select): Add support for expansion of dispatching
17277         asynchronous selects.
17278         (Expand_N_Conditional_Entry_Call): Add support for expansion of
17279         dispatching conditional selects.
17280         (Expand_N_Protected_Type_Declaration): Select the appropriate type for
17281         protection when there is a protected type that implements limited
17282         interfaces.
17283         (Expand_N_Timed_Entry_Call): Add support for expansion of dispatching
17284         timed selects.
17285         (Extract_Dispatching_Call): Extract the entity of the name of a
17286         dispatching call, the object parameter, actual parameters and
17287         corresponding formals.
17288         (Make_Initialize_Protection): Correct logic of protection initialization
17289         when there is a protected type that implements a limited interface.
17290         (Parameter_Block_Pack): Populate a wrapped parameter block with the
17291         values of actual parameters.
17292         (Parameter_Block_Unpack): Retrieve the values from a wrapped parameter
17293         block and assign them to the original actual parameters.
17294
17295         * exp_ch9.ads (Subprogram_Protection_Mode): New type.
17296         (Build_Protected_Sub_Specification): Change the type and name of the
17297         last formal to account for the increased variety of protection modes.
17298
17299         * einfo.ads, einfo.adb (Was_Hidden): New attribute. Present in all
17300         entities. Used to save the value of the Is_Hidden attribute when the
17301         limited-view is installed.
17302         (Is_Primitive_Wrapper, Set_Is_Primitive_Wrapper): Retrieve and change
17303         the attribute of procedures classified as entry wrappers.
17304         (Wrapped_Entity, Set_Wrapped_Entity): Retrieve and change the wrapped
17305         entity of a primitive wrapper.
17306         (Write_Entity_Flags): Output the name and value of the
17307         Is_Primitive_Wrapper attribute.
17308         (Write_Field27_Name): Output the name and entity of the field Wrapped_
17309         Entity.
17310         (Underlying_Type): If we have an incomplete entity that comes from
17311         the limited view then we return the Underlying_Type of its non-limited
17312         view if it is already available.
17313         (Abstract_Interface_Alias): Flag applies to all subrogram kinds,
17314         including operators.
17315         (Write_Field26_Name): Add entry for Overridden_Operation
17316         (Overridden_Operation): New attribute of functions and procedures.
17317
17318         * exp_disp.ads, exp_disp.adb (Default_Prim_Op_Position): Return a
17319         predefined position in the dispatch table for the primitive operations
17320         used in dispatching selects.
17321         (Init_Predefined_Interface_Primitives): Remove the hardcoded number of
17322         predefined primitive operations and replace it with
17323         Default_Prim_Op_Count.
17324         (Make_Disp_Asynchronous_Select_Spec, Make_Disp_Conditional_Select_Spec,
17325         Make_Disp_Get_Prim_Op_Kind_Spec, Make_Disp_Timed_Select_Spec): Update
17326         the names of the generated primitive operations used in dispatching
17327         selects.
17328         (Init_Predefined_Interface_Primitives): No need to inherit primitives in
17329         case of abstract interface types. They will be inherit by the objects
17330         implementing the interface.
17331         (Make_DT): There is no need to inherit the dispatch table of the
17332         ancestor interface for the elaboration of abstract interface types.
17333         The dispatch table will be inherited by the object implementing the
17334         interface.
17335         (Copy_Secondary_DTs): Add documentation.
17336         (Validate_Position): Improve this static check in case of
17337         aliased subprograms because aliased subprograms must have
17338         the same position.
17339         (Init_Predefined_Interface_Primitives): New subprogram that initializes
17340         the entries associated with predefined primitives of all the secondary
17341         dispatch tables.
17342         (Build_Anonymous_Access_Type): Removed.
17343         (Expand_Interface_Actuals): With the previous cleanup there is no need
17344         to build an anonymous access type. This allows further cleanup in the
17345         code generated by the expander.
17346         (Expand_Interface_Conversion): If the actual is an access type then
17347         build an internal function to handle the displacement. If the actual
17348         is null this function returns null because no displacement is
17349         required; otherwise performs a type conversion that will be
17350         expanded in the code that returns the value of the displaced actual.
17351         (Expand_Interface_Actuals): Avoid the generation of unnecessary type
17352         conversions that have no effect in the generated code because no
17353         displacement is required. Code cleanup; use local variables to
17354         avoid repeated calls to the subprogram directly_designated_type().
17355
17356         * exp_util.ads, exp_util.adb (Is_Predefined_Dispatching_Operation):
17357         Classify the primitive operations used in dispatching selects as
17358         predefined.
17359         (Implements_Limited_Interface): Determine whether some type either
17360         directly implements a limited interface or extends a type that
17361         implements a limited interface.
17362         (Build_Task_Image_Function): Change Subtype_Mark to Result_Definition.
17363         (Expand_Subtype_From_Expr): Do not build actual subtype if the
17364         expression is limited.
17365         (Find_Interface_Tag): Add code to handle class-wide types and
17366         entities from the limited-view.
17367
17368         * rtsfind.ads: Add entries in RE_Id and RE_Unit_Table for
17369         Get_Entry_Index, Get_Prim_Op_Kind, POK_Function, POK_Procedure,
17370         POK_Protected_Entry, POK_Protected_Function, POK_Protected_Procedure,
17371         POK_Task_Entry, POK_Task_Procedure, Prim_Op_Kind, Set_Entry_Index,
17372         Set_Prim_Op_Kind.
17373
17374         * sem_ch9.adb (Analyze_Triggering_Alternative): Check for legal type
17375         of procedure name or prefix that appears as a trigger in a triggering
17376         alternative.
17377
17378         * uintp.ads: Introduce constants Uint_11 and Uint_13.
17379
17380 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
17381
17382         * s-tataat.adb, a-tasatt.adb:
17383         Replace calls to Defer/Undefer_Abortion by Defer/Undefer_Abort.
17384
17385         * s-tasini.ads, s-tasini.adb (Defer_Abortion, Undefer_Abortion): Moved
17386         these procedures to body, and renamed Abort_Defer, Abort_Undefer.
17387         (Get_Exc_Stack_Addr, Set_Exc_Stack_Addr): Removed, no
17388         longer used.
17389
17390 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
17391             Jose Ruiz  <ruiz@adacore.com>
17392
17393         * s-taprop-vxworks.adb:
17394         Move with clauses outside Warnings Off now that dependent units are
17395         Preelaborate.
17396         (Initialize): Call Interrupt_Managemeent.Initialize to ensure proper
17397         initialization of this unit.
17398         (Specific): Add new procedures Initialize and Delete so that this
17399         package can be used for VxWorks 5.x and 6.x
17400         (ATCB_Key, ATCB_Key_Address): Moved to Specific package body to hide
17401         differences between VxWorks 5.x and 6.x
17402         Minor reformatting.
17403         (Timed_Delay): Remove calls to Defer/Undefer_Abort, now performed by
17404         caller.
17405         Use only Preelaborate-compatible constructs.
17406
17407         * s-tpopsp-vxworks.adb (ATBC_Key, ATCB_Key_Addr): Moved from
17408         Primitives.Operations.
17409         (Delete, Initialize): New procedures.
17410
17411         * s-osinte-vxworks.adb: Body used to handle differences between
17412         VxWorks 5.x and 6.x
17413         (kill, Set_Time_Slice, VX_FP_TASK): New functions.
17414
17415         * s-osinte-vxworks.ads: Minor reformatting.
17416         Add VxWworks 6.x specific functions (only called from VxWorks 6 files).
17417         (VX_FP_TASK): Now a function, to handle differences between VxWorks 5
17418         and 6.
17419         (Set_Time_Slice): New function, replacing kerneltimeSlice to share code
17420         between Vxworks 5 and 6.
17421         (taskLock, taskUnlock): Removeed, no longer used.
17422
17423         * adaint.c: The wait.h header is not located in the sys directory on
17424         VxWorks when using RTPs.
17425         (__gnat_set_env_value): Use setenv instead of putenv on VxWorks when
17426         using RTPs.
17427         (__gnat_dup): dup is available on Vxworks when using RTPs.
17428         (__gnat_dup2): dup2 is available on Vxworks when using RTPs.
17429
17430         * cal.c: Use the header time.h for Vxworks 6.0 when using RTPs.
17431
17432         * expect.c: The wait.h header is not located in the sys directory on
17433         VxWorks when using RTPs.
17434
17435 2005-09-01  Thomas Quinot  <quinot@adacore.com>
17436
17437         * g-soccon-vms.adb: Renamed to g-soccon-vms.ads
17438
17439         * g-soccon-vms.ads: Renamed from g-soccon-vms.adb
17440
17441         * g-soccon.ads, g-soccon-tru64.ads, g-soccon-aix.ads,
17442         g-soccon-darwin.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
17443         g-soccon-solaris.ads, g-soccon-mingw.ads, g-soccon-vxworks.ads,
17444         g-soccon-freebsd.ads: Add new constants:
17445          IP_MULTICAST_IF
17446          SO_RCVTIMEO/SO_SNDTIMEO
17447          IOV_MAX
17448
17449         * gen-soccon.c:
17450         Move all target-specific file inclusions and macro definitions to
17451         gsocket.h, in order to ensure that any C code in socket.c will see a
17452         set of constants that is consistent with the contents of g-soccon.ads.
17453
17454         * gsocket.h: Code imported from gen-soccon.c:
17455         Move all target-specific file inclusions and macro definitions to
17456         gsocket.h, in order to ensure that any C code in socket.c will see a set
17457         of constants that is consistent with the contents of g-soccon.ads.
17458         This change also makes gen-soccon self-contained (removing dependencies
17459         upon GCC internal headers).
17460
17461         * g-socket.adb (Send_Vector): Make calls to Writev at most IOV_MAX
17462         iovecs at a time.
17463         (To_Inet_Addr): Now a procedure instead of a function, more efficient.
17464
17465         * socket.c: Minor reformatting.
17466
17467 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
17468             Thomas Quinot  <quinot@adacore.com>
17469
17470         * fname-sf.adb, mlib-tgt.ads,
17471         back_end.adb, casing.adb, g-debpoo.adb, g-excact.adb, g-spipat.adb,
17472         g-spipat.ads, g-thread.adb, lib-list.adb, makeutl.adb, mlib.adb,
17473         osint.adb, par-ch10.adb, par-load.adb, prep.adb, prj.adb, prj-attr.ads,
17474         prj-env.ads, prj-err.adb, prj-err.ads, prj-ext.adb, prj-ext.ads,
17475         prj-makr.adb, prj-makr.ads, prj-pars.ads, prj-part.adb, prj-strt.adb,
17476         prj-tree.ads, prj-util.ads, sem_dist.adb, sinput-c.ads, sinput-l.ads,
17477         sinput-p.ads, styleg-c.ads, xr_tabls.adb, prj-attr-pm.ads,
17478         makegpr.adb: Remove redundant use_clauses.
17479
17480 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
17481
17482         * s-stoele.ads, s-stopoo.ads, s-stratt.ads, s-strops.ads, s-unstyp.ads,
17483         s-valboo.ads, s-valcha.ads, s-valdec.ads, s-valenu.ads, s-valint.ads,
17484         s-vallld.ads, s-vallli.ads, s-valllu.ads, s-valrea.ads, s-valuns.ads,
17485         s-valuti.ads, s-valwch.ads, s-veboop.ads, s-vector.ads, s-vercon.ads,
17486         s-wchcnv.ads, s-wchcon.ads, s-wchjis.ads, s-wchstw.ads, s-wchwts.ads,
17487         s-widboo.ads, s-widcha.ads, s-widenu.ads, s-widlli.ads, s-widllu.ads,
17488         s-widwch.ads, s-wwdcha.ads, s-wwdenu.ads, s-wwdwch.ads, system.ads,
17489         table.ads, types.ads, system-vms_64.ads, s-crtl-vms64.ads,
17490         s-addope.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
17491         s-vxwork-x86.ads, system-linux-ppc.ads, i-vxwork-x86.ads,
17492         a-numaux-darwin.ads, a-crbtgo.ads, a-crbtgk.ads, a-crbltr.ads,
17493         a-coprnu.ads, a-convec.ads, a-contai.ads, a-coinve.ads, a-cohata.ads,
17494         a-cohama.ads, a-cihama.ads, a-cidlli.ads, a-cdlili.ads,
17495         a-numaux-libc-x86.ads, a-numaux-vxworks.ads, system-linux-ia64.ads,
17496         system-freebsd-x86.ads, system-unixware.ads, system-lynxos-ppc.ads,
17497         system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
17498         s-vxwork-alpha.ads, system-aix.ads, system-vxworks-sparcv9.ads,
17499         system-solaris-x86.ads, system-irix-o32.ads, system-irix-n32.ads,
17500         s-parame-hpux.ads, system-hpux.ads, system-vxworks-m68k.ads,
17501         s-vxwork-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads,
17502         s-vxwork-mips.ads, system-os2.ads, system-interix.ads,
17503         s-vxwork-ppc.ads, system-solaris-sparc.ads, s-vxwork-sparcv9.ads,
17504         system-solaris-sparcv9.ads, s-parame-vms.ads, system-vms.ads,
17505         s-osinte-mingw.ads, system-mingw.ads, s-parame-vms-restrict.ads,
17506         system-vms-zcx.ads, s-parame-ae653.ads, system-vxworks-ppc.ads,
17507         s-parame-vxworks.ads, system-vxworks-alpha.ads, interfac-vms.ads,
17508         a-numaux-x86.ads, a-astaco.ads, a-chahan.ads, a-charac.ads,
17509         a-chlat1.ads, a-chlat9.ads, a-colire.adb, a-colire.ads, a-comlin.ads,
17510         a-cwila1.ads, a-cwila9.ads, ada.ads, a-decima.ads, a-exextr.adb,
17511         a-filico.ads, a-finali.ads, a-interr.ads, a-ioexce.ads, a-dynpri.ads,
17512         a-ngcefu.ads, a-ngcefu.adb, a-ngcoty.adb, a-ngcoty.ads, a-ngelfu.ads,
17513         a-nudira.adb, a-nudira.ads, a-nuflra.adb, a-numaux.ads, a-numeri.ads,
17514         a-reatim.adb, a-stmaco.ads, a-storio.ads, a-strbou.ads, a-stream.ads,
17515         a-strfix.ads, a-string.ads, a-strmap.ads, a-strsea.ads, a-strsup.ads,
17516         a-strunb.ads, a-stunau.ads, a-stwibo.ads, a-stwifi.ads, a-stwima.ads,
17517         a-stwise.ads, a-stwisu.ads, a-stwiun.ads, a-swmwco.ads, a-textio.ads,
17518         csets.ads, debug.ads, dec.ads, g-curexc.ads, get_targ.ads,
17519         g-except.ads, system-linux-hppa.ads, a-chacon.ads, a-widcha.ads,
17520         a-zchara.ads, system-hpux-ia64.ads, a-ciorma.ads, a-coorma.ads,
17521         a-ciormu.ads, a-coormu.ads, a-rbtgso.ads, a-chzla1.ads, a-chzla9.ads,
17522         a-stzbou.ads, a-stzfix.ads, a-stzmap.ads, a-stzsea.ads, a-stzsup.ads,
17523         a-stzunb.ads, a-swunau.ads, a-szunau.ads, gnat.ads, g-regpat.ads,
17524         g-speche.ads, g-spitbo.ads, g-table.ads, g-tasloc.ads, g-trasym.ads,
17525         i-c.ads, i-cpoint.ads, i-cpp.ads, i-cstrin.ads, i-fortra.ads,
17526         interfac.ads, i-os2err.ads, i-os2lib.ads, i-os2syn.ads, i-os2thr.ads,
17527         i-vxwork.ads, output.ads, s-arit64.ads, s-atacco.ads, s-boarop.ads,
17528         s-casuti.ads, s-crtl.ads, s-exctab.ads, s-exnint.ads, s-exnllf.ads,
17529         s-exnlli.ads, s-expint.ads, s-explli.ads, s-expllu.ads, s-expmod.ads,
17530         s-expuns.ads, s-fatflt.ads, s-fatgen.ads, s-fatlfl.ads, s-fatllf.ads,
17531         s-fatsfl.ads, s-finimp.ads, s-finroo.ads, s-fore.ads, s-geveop.ads,
17532         s-htable.ads, s-imgbiu.ads, s-imgboo.ads, s-imgcha.ads, s-imgdec.ads,
17533         s-imgenu.ads, s-imgint.ads, s-imgllb.ads, s-imglld.ads, s-imglli.ads,
17534         s-imgllu.ads, s-imgllw.ads, s-imgrea.ads, s-imguns.ads, s-imgwch.ads,
17535         s-imgwiu.ads, s-io.ads, s-maccod.ads, s-mantis.ads, s-memcop.ads,
17536         s-pack03.ads, s-pack05.ads, s-pack06.ads, s-pack07.ads, s-pack09.ads,
17537         s-pack10.ads, s-pack11.ads, s-pack12.ads, s-pack13.ads, s-pack14.ads,
17538         s-pack15.ads, s-pack17.ads, s-pack18.ads, s-pack19.ads, s-pack20.ads,
17539         s-pack21.ads, s-pack22.ads, s-pack23.ads, s-pack24.ads, s-pack25.ads,
17540         s-pack26.ads, s-pack27.ads, s-pack28.ads, s-pack29.ads, s-pack30.ads,
17541         s-pack31.ads, s-pack33.ads, s-pack34.ads, s-pack35.ads, s-pack36.ads,
17542         s-pack37.ads, s-pack38.ads, s-pack39.ads, s-pack40.ads, s-pack41.ads,
17543         s-pack42.ads, s-pack43.ads, s-pack44.ads, s-pack45.ads, s-pack46.ads,
17544         s-pack47.ads, s-pack48.ads, s-pack49.ads, s-pack50.ads, s-pack51.ads,
17545         s-pack52.ads, s-pack53.ads, s-pack54.ads, s-pack55.ads, s-pack56.ads,
17546         s-pack57.ads, s-pack58.ads, s-pack59.ads, s-pack60.ads, s-pack61.ads,
17547         s-pack62.ads, s-pack63.ads, s-parame.ads, s-pooglo.ads, s-pooloc.ads,
17548         s-poosiz.ads, s-powtab.ads, s-purexc.ads, s-sopco3.ads, s-sopco4.ads,
17549         s-sopco5.ads: Minor reformatting: reindent pragma Pure/Preelaborate
17550         and always use the no parameter form for consistency.
17551
17552         * gnat-style.texi: Document rules about Preelaborate/Pure pragmas.
17553
17554 2005-09-01  Robert Dewar  <dewar@adacore.com>
17555
17556         * binde.adb: Minor reformatting
17557         (Find_Elab_Order): Output warning if -p used with static elab order
17558
17559 2005-09-01  Robert Dewar  <dewar@adacore.com>
17560
17561         * checks.adb (Check_Needed): New procedure, deals with removing checks
17562         based on analysis of short-circuited forms. Also generates warnings for
17563         improper use of non-short-circuited forms.
17564         Code clean ups.
17565
17566 2005-09-01  Robert Dewar  <dewar@adacore.com>
17567
17568         * a-ztexio.adb, a-textio.adb, a-witeio.adb: Replace bad range checks
17569         with 'Valid tests.
17570
17571 2005-09-01  Robert Dewar  <dewar@adacore.com>
17572
17573         * errout.ads, errout.adb (Fix Error_Msg_F): Fix implementation to meet
17574         spec.
17575         Implement new insertion char < (conditional warning)
17576         * errutil.adb, erroutc.adb: Implement new insertion char <
17577         (conditional warning).
17578         * sem_elab.adb, prj-dect.adb, erroutc.ads, err_vars.ads
17579         (Error_Msg_Warn): New variable for < insertion char.
17580         * prj-nmsc.adb: Implement new errout insertion char < (conditional
17581         warning).
17582         (Check_For_Source): Change value of Source_Id only after the current
17583         source has been dealt with.
17584
17585 2005-09-01  Robert Dewar  <dewar@adacore.com>
17586             Doug Rupp  <rupp@adacore.com>
17587
17588         * exp_attr.adb: Handle vax fpt for 'Valid attribute
17589         * exp_vfpt.ads, exp_vfpt.adb: (Expand_Vax_Valid): New procedure
17590         * s-vaflop-vms-alpha.adb, s-vaflop.ads, s-vaflop.adb
17591         (Valid_D, Valid_F, Valid_G): New functions
17592
17593 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
17594             Hristian Kirtchev  <kirtchev@adacore.com>
17595             Javier Miranda  <miranda@adacore.com>
17596
17597         * exp_ch6.adb (Expand_Call): If an actual is a function call rewritten
17598         from object notation, the original node is unanalyzed and carries no
17599         semantic information, so that accessiblity checks must be performed on
17600         the type of the actual itself.
17601         (Expand_N_Subprogram_Declaration): Change last actual parameter for
17602         compatibility with Build_Protected_Sub_Specification.
17603         (Check_Overriding_Inherited_Interfaces): Add suport to handle
17604         overloaded primitives.
17605         (Register_Interface_DT_Entry): Use the new name of the formal
17606         the the calls to Expand_Interface_Thunk
17607
17608         * exp_dbug.ads: Augment comments on encoding of protected types to
17609         include the generation of dispatching subprograms when the type
17610         implements at least one interface.
17611
17612         * lib.ads: Extend information in Load_Stack to include whether a given
17613         load comes from a Limited_With_Clause.
17614
17615         * lib-load.adb (From_Limited_With_Chain): New predicate to determine
17616         whether a potential circularity is harmless, because it includes units
17617         loaded through a limited_with clause. Extends previous treatment which
17618         did not handle properly arbitrary combinations of limited and
17619         non-limited clauses.
17620
17621 2005-09-01  Nicolas Setton  <setton@adacore.com>
17622
17623         * exp_dbug.adb (Get_Encoded_Name): Fixed bug that caused biaised types
17624         to be encoded as typ___XBLU_lowerbound__upperbound instead of
17625         typ___XB_lowerbound__upperbound.
17626
17627 2005-09-01  Thomas Quinot  <quinot@adacore.com>
17628
17629         * exp_dist.adb (Add_RACW_TypeCode, Add_RAS_TypeCode): Do not generate
17630         dummy access formal for RACW/RAS TypeCode TSS.
17631         (Build_TypeCode_Call): Do not generate dummy null access actual for
17632         calls to the TypeCode TSS.
17633
17634 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
17635
17636         * exp_intr.adb (Expand_Source_Name): For Enclosing_Entity, generate
17637         fully qualified name, to distinguish instances with the same local name.
17638
17639         * g-souinf.ads (Enclosing_Entity): Document that entity name is now
17640         fully qualified.
17641
17642 2005-09-01  Robert Dewar  <dewar@adacore.com>
17643
17644         * exp_pakd.adb (Create_Packed_Array_Type): Properly handle very large
17645         packed arrays.
17646
17647 2005-09-01  Jerome Lambourg  <lambourg@adacore.com>
17648
17649         * g-expect.adb (Non_Blocking_Spawn): Initialize the filters field to
17650         (Free): New deallocation procedure for filter elements
17651         (Close): Deallocate any existing filter for the concerned connection
17652
17653 2005-09-01  Laurent Pautet  <pautet@adacore.com>
17654
17655         * g-pehage.ads, g-pehage.adb (Select_Char_Position): When no character
17656         position set is provided, we compute one in order to reduce the maximum
17657         length of the keys.  This computation first selects a character
17658         position between 1 and the minimum length of the keys in order to
17659         avoid reducing one of the keys to an empty string.
17660         (Initialize, Compute): When the ratio V to K is too low, the algorithm
17661         does not converge. The initialization procedure now comes with a
17662         maximum number of iterations such that when exceeded, an exception is
17663         raised in Compute. The user can initialize this ratio to another value
17664         and try again
17665         Reformating and updated headers.
17666
17667 2005-09-01  Javier Miranda  <miranda@adacore.com>
17668
17669         * itypes.ads, itypes.adb (Create_Null_Excluding_Itype): New subprogram
17670         that given an entity T creates and returns an Itype that duplicates the
17671         contents of T. The returned Itype has the null-exclusion
17672         attribute set to True, and its Etype attribute references T
17673         to keep the association between the two entities.
17674         Update copyright notice
17675
17676         * sem_aggr.adb (Check_Can_Never_Be_Null,
17677         Aggregate_Constraint_Checks, Resolve_Aggregate,
17678         Resolve_Array_Aggregate, Resolve_Record_Aggregate): Code cleanup.
17679
17680         * sem_ch5.adb (Analyze_Assignment): Code cleanup.
17681
17682 2005-09-01  Gary Dismukes  <dismukes@adacore.com>
17683             Robert Dewar  <dewar@adacore.com>
17684             Hristian Kirtchev  <kirtchev@adacore.com>
17685
17686         * layout.adb (SO_Ref_From_Expr): Change Subtype_Mark to
17687         Result_Definition.
17688
17689         * par-ch6.adb (P_Subprogram): Handle parsing of Access_Definitions in
17690         function specs.
17691         Call Set_Result_Definition instead of Set_Subtype_Mark.
17692         (P_Subprogram_Specification): Add parsing of anonymous access result
17693         plus null exclusions. Call Set_Result_Definition instead of
17694         Set_Subtype_Mark.
17695
17696         * par-ch3.adb: Add support for LIMITED NEW for Ada 2005 AI-419
17697         (P_Access_Type_Definition): Add parsing for an anonymous access result
17698         subtype, plus parsing for null exclusions. Call Set_Result_Definition
17699         instead of Set_Subtype_Mark.
17700
17701         * sinfo.adb: Add support for LIMITED NEW for Ada 2005 AI-419
17702         (Null_Exclusion_Present): Allow this flag for N_Function_Specification.
17703         (Result_Definition): New function for N_Function_Specifications.
17704         (Subtype_Mark): No longer allowed for N_Access_Function_Definition and
17705         N_Function_Specification.
17706         (Set_Null_Exclusion_Present): Allow this flag for
17707         N_Function_Specification.
17708         (Set_Result_Definition): New procedure for N_Function_Specifications.
17709         (Set_Subtype_Mark): No longer allowed for N_Access_Function_Definition
17710         and N_Function_Specification.
17711
17712         * sinfo.ads: Update grammar rules for 9.7.2: Entry_Call_Alternative,
17713         Procedure_Or_Entry_Call; 9.7.4: Triggering_Statement.
17714         Add support for LIMITED NEW for Ada 2005 AI-419
17715         Update the syntax of PARAMETER_AND_RESULT_PROFILE to reflect the new
17716         syntax for anonymous access results.
17717         Replace Subtype_Mark field by Result_Definition in
17718         N_Function_Specification and N_Access_Definition specs.
17719         Add Null_Exclusion_Present to spec of N_Function_Specification.
17720         (Result_Definition): New function for N_Function_Specification and
17721         N_Access_Function_Definition.
17722         (Set_Result_Definition): New procedure for N_Function_Specification and
17723         N_Access_Function_Definition.
17724
17725         * sprint.adb (S_Print_Node_Actual): Change Subtype_Mark calls to
17726         Result_Definition for cases of N_Access_Function_Definition and
17727         N_Function_Specification.
17728         Print "not null" if Null_Exclusion_Present on N_Function_Specification.
17729
17730 2005-09-01  Vincent Celier  <celier@adacore.com>
17731
17732         * lib-writ.adb: Update Copyright notice
17733         (Write_With_Lines): On platforms where file names are case-insensitive,
17734         record the file names in lower case.
17735         (Write_ALI): For D lines, on platforms where file names are
17736         case-insensitive, record the file names in lower case.
17737
17738 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
17739             Emmanuel Briot  <briot@adacore.com>
17740
17741         * lib-xref.adb (Output_Overridden_Op): Display information on
17742         overridden operation.
17743
17744         * lib-xref.ads: Add documentation on overridden operations.
17745
17746         * ali.ads (Xref_Entity_Record): Add support for storing the overriding
17747         information.
17748
17749         * ali.adb (Get_Typeref): New subprogram. Adds support for parsing the
17750         overriding entity information.
17751
17752 2005-09-01  Vincent Celier  <celier@adacore.com>
17753
17754         * mlib-prj.adb (Copy_Interface_Sources): Copy all interface sources,
17755         including those that are inherited.
17756
17757 2005-09-01  Robert Dewar  <dewar@adacore.com>
17758
17759         * opt.ads, opt.adb: Add new switches Debug_Pragmas_Enabled[_Config]
17760
17761         * par-prag.adb: Implement new pragma Debug_Policy
17762
17763         * sem_prag.adb Implement new pragma Debug_Policy
17764         (Analyze_Pragma, case Pack): do not let pragma Pack override an explicit
17765         Component_Size attribute specification. Give warning for ignored pragma
17766         Pack.
17767
17768         * snames.h, snames.ads, snames.adb: Introduce entries in
17769         Preset_Names for Name_Disp_Asynchronous_Select,
17770         Name_Disp_Conditional_Select, Name_Disp_Get_Prim_Op_Kind,
17771         Name_Disp_Timed_Select.
17772         New pragma Debug_Policy
17773
17774         * switch-c.adb (Scan_Front_End_Switches): Set Ada 2005 mode
17775         explicitly.
17776         Switch -gnata also sets Debug_Pragmas_Enabled
17777
17778         * sem.adb, par.adb (Set_Opt_Config_Switch): Add parameter Main_Unit to
17779         handle an explicit -gnata when compiling predefined files.
17780
17781 2005-09-01  Vincent Celier  <celier@adacore.com>
17782
17783         * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Do not add the object
17784         directories of projects that have no Ada sources.
17785
17786 2005-09-01  Robert Dewar  <dewar@adacore.com>
17787
17788         * scng.adb (Check_End_Of_Line): Count characters, rather than bytes
17789         (makes a difference for wide characters)
17790
17791         * widechar.adb, widechar.ads:
17792         Add Wide_Char_Byte_Count feature to count chars vs bytes
17793
17794 2005-09-01  Thomas Quinot  <quinot@adacore.com>
17795             Ed Schonberg  <schonberg@adacore.com>
17796             Robert Dewar  <dewar@adacore.com>
17797
17798         * sem_attr.adb (Resolve_Attribute, case 'Address): For an illegal
17799         'Address attribute reference with an overloaded prefix, use the
17800         location of the prefix (not the location of the attribute reference) as
17801         the error location.
17802         (Analyze_Attribute, case 'Size): The name of an enumeration literal, or
17803         a function renaming thereof, is a valid prefix for 'Size (where it is
17804         intepreted as a function call).
17805         (Statically_Denotes_Entity): New predicate to determine whether the
17806         prefix of an array attribute can be considered static.
17807
17808         PR ada/9087
17809         (Eval_Attr): Fix failure to evaluate Component_Size for
17810         unconstrained arrays (resulted in wrong value in packed case, since
17811         back end cannot handle this case)
17812
17813 2005-09-01  Robert Dewar  <dewar@adacore.com>
17814
17815         * sem_cat.adb (Check_Categorization_Dependencies): Add more detail to
17816         error msgs for most common cases.
17817         Use new errout insertion char < (conditional warning)
17818
17819 2005-09-01  Javier Miranda  <miranda@adacore.com>
17820             Ed Schonberg  <schonberg@adacore.com>
17821
17822         * sem_ch10.adb (In_Chain): Moved from the scope of a subprogram to
17823         become local to the whole package.
17824         (Install_Limited_Withed_Unit): Instead of unchaining real entities if
17825         the package was already analyzed the new algorithm "replaces" the
17826         real entities by the shadow ones. This is required to ensure that
17827         the order of these entities in the homonym chains does not change;
17828         otherwise we can have undefined references at linking time because
17829         in case of conflicts the external name of the entities will have
17830         a suffix that depends on the order of the entities in the chain.
17831         (Remove_Limited_With_Clause): Complementary code that completes the
17832         new algorithm and replaces the shadow entities by the real ones.
17833         (Install_Limited_Withed_Unit): When unchaining entities before the
17834         installation of the shadow entities, only regular entities of the
17835         public part must be taken into account. This is required to
17836         keep this routine in synch with the work done by Remove_Limited_
17837         With_Clause
17838         (Install_Limited_With_Clause): Introduce implicit limited_with_clause
17839         even if unit is analyzed, because the analysis of the unit is
17840         idempotent in any case, and the limited view of the unit may have to
17841         be installed for proper visibility.
17842         (Expand_Limited_With_Clause): Even if the unit in the implicit
17843         with_clause has been analyzed already, a limited view of the package
17844         must be built for the current context, if it does not exist yet.
17845
17846 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
17847             Javier Miranda  <miranda@adacore.com>
17848             Gary Dismukes  <dismukes@adacore.com>
17849
17850         * sem_ch12.adb (Instantiate_Subprogram_Body): When creating the
17851         defining entity for the instance body, make a new defining identifier
17852         rather than copying the entity of the spec, to prevent accidental
17853         sharing of the entity list.
17854         (Check_Private_View): When exchanging views of private types, build the
17855         list of exchanged views as a stack, to ensure that on exit the exchanges
17856         are undone in the proper order.
17857         (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation):
17858         Restore the compilation environment in case of instantiation_error.
17859         (Analyze_Generic_Subprogram_Declaration): Handle creation of type entity
17860         for an anonymous access result.
17861         (Instantiate_Generic_Subprogram): Subtype_Mark => Result_Definition
17862         (Formal_Entity): Handle properly the case of a formal package that
17863         denotes a generic package renaming.
17864
17865 2005-09-01  Thomas Quinot  <quinot@adacore.com>
17866
17867         * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Reject the
17868         clause if the array aggregate is surrounded by parentheses.
17869
17870 2005-09-01  Cyrille Comar  <comar@adacore.com>
17871             Gary Dismukes  <dismukes@adacore.com>
17872             Ed Schonberg  <schonberg@adacore.com>
17873             Javier Miranda  <miranda@adacore.com>
17874
17875         * sem_ch3.ads, sem_ch3.adb (Analyze_Object_Declaration): Go to the
17876         underlying type
17877         to check if a type is Constrained in cases related to code generation
17878         (rather than semantic checking) since otherwise we do not generate
17879         similar code for mutable private types depending if their
17880         discriminants are visible or not.
17881         (Check_Abstract_Overriding): Do not complain about failure to override
17882         the primitive operations used in dispatching selects since they will
17883         always be overriden at the freeze point of the type.
17884         (Access_Definition): Separate out handling for resetting the scope
17885         of an anonymous access function result type. Retrieve the scope
17886         of the associated function rather than using Current_Scope, which
17887         does not have a consistent value (depends on whether we're in the
17888         middle of analyzing formal parameters). Add ??? comment about
17889         finding a cleaner way to handle the special cases of scope setting.
17890         (Process_Incomplete_Dependents): A protected operation is never a
17891         dispatching operation (only its wrapper may be).
17892         (Build_Derived_Record_Type): In case of tagged private types that
17893         implement interfaces add derivation of predefined primitive
17894         operations.
17895         (Derive_Subprograms): Replace the Is_Interface_Derivation parameter
17896         by two parameters that are used in case of derivation from abstract
17897         interface types: No_Predefined_Prims is used to avoid the derivation
17898         of predefined primitives from the interface, and Predefined
17899         Prims_Only is used to complete the derivation predefined primitives
17900         in case of private tagged types implementing interfaces.
17901         Fix typo in comments
17902         (Find_Interface_In_Descendant): Protect the frontend against
17903         wrong code with large circularity chains.
17904         (Is_Private_Overriding): Add support for entities overriding interface
17905         subprograms. The test failed because Entities associated with overriden
17906         interface subprograms are always marked as hidden (and used to build
17907         the secondary dispatch table); in this case the overriden entity is
17908         available through the field abstract_interface_alias (cf. override_
17909         dispatching_operation)
17910         (Access_Definition): Set the scope of the type to Current_Scope for the
17911         case of a function with an anonymous access result type.
17912         (Access_Subprogram_Declaration): Handle creation of the type entity for
17913         an access-to-function type with an anonymous access result.
17914         (Check_Anonymous_Access_Types): Change Subtype_Mark to Result_Definition
17915         in handling for N_Access_Function_Definition.
17916         (Analyze_Subtype_Declaration): Modify the text of error message.
17917         (Derived_Type_Declaration): Modify the text of error message.
17918         (Process_Subtype): Modify the text of error message plus cleanup
17919         of one redundant error message.
17920         (Analyze_Component_Declaration): Code cleanup.
17921         (Analyze_Object_Declaration): Code cleanup.
17922         (Analyze_Subtype_Declaration): Propagate the null-exclusion
17923         attribute in case of access types. Code cleanup.
17924         (Array_Type_Declaration): Code cleanup.
17925         (Process_Discriminants): Create the new null-excluding itype
17926         if required. Code cleanup.
17927         (Process_Subtype): Create the new null-excluding itype if
17928         required. Code cleanup.
17929         (Build_Derived_Record_Type): Code cleanup to avoid calling
17930         twice the subprogram derive_subprograms in case of private
17931         types that implement interfaces. In this particular case the
17932         subprogram Complete_Subprograms_Derivation already does the
17933         job associated with the second call.
17934
17935         * exp_strm.adb (Build_Elementary_Input_Call): Add an explicit
17936         conversion to the full view when generating an operation for a
17937         discriminant whose type may currently be private.
17938
17939 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
17940             Javier Miranda  <miranda@adacore.com>
17941
17942         * sem_ch4.adb (Transform_Object_Operation): In a context off the form
17943         V (Obj.F), the rewriting does not involve the indexed component, but
17944         only the selected component itself.
17945         Do not apply the transformation if the analyzed node is an actual of a
17946         call to another subprogram.
17947         (Complete_Object_Operation): Retain the entity of the
17948         dispatching operation in the selector of the rewritten node. The
17949         entity will be used in the expansion of dispatching selects.
17950         (Analyze_One_Call): Improve location of the error message associated
17951         with interface.
17952         (Analyze_Selected_Component): No need to resolve prefix when it is a
17953         function call, resolution is done when parent node is resolved, as
17954         usual.
17955         (Analyze_One_Call): Add a flag to suppress analysis of the first actual,
17956         when attempting to resolve a call transformed from its object notation.
17957         (Try_Object_Operation, Transform_Object_Operastion): Avoid makind copies
17958         of the argument list for each interpretation of the operation.
17959         (Try_Object_Operation): The designated type of an access parameter may
17960         be an incomplete type obtained through a limited_with clause, in which
17961         case the primitive operations of the type are retrieved from its full
17962         view.
17963         (Analyze_Call): If this is an indirect call, and the return type of the
17964         access_to_subprogram is incomplete, use its full view if available.
17965
17966 2005-09-01  Javier Miranda  <miranda@adacore.com>
17967             Gary Dismukes  <dismukes@adacore.com>
17968
17969         * sem_ch6.ads, sem_ch6.adb (Check_Conformance): In case of anonymous
17970         access types the null-exclusion and access-to-constant attributes must
17971         also match.
17972         (Analyze_Return_Statement): When the result type is an anonymous access
17973         type, apply a conversion of the return expression to the access type
17974         to ensure that appropriate accessibility checks are performed.
17975         (Analyze_Return_Type): For the case of an anonymous access result type,
17976         generate the Itype and set Is_Local_Anonymous_Access on the type.
17977         Add ??? placeholder for check to disallow returning a limited object
17978         in Ada 2005 unless it's an aggregate or a result of a function call.
17979         Change calls from Subtype_Mark to Result_Definition.
17980         (Analyze_Subprogram_Body): Change formal Subtype_Mark to
17981         Result_Definition in call to Make_Function_Specification.
17982         (Build_Body_To_Inline): Change Set_Subtype_Mark to
17983         Set_Result_Definition.
17984         (Make_Inequality_Operator): Change formal Subtype_Mark to
17985         Result_Definition in call to Make_Function_Specification.
17986         (Process_Formals): Create the new null-excluding itype if required.
17987         (New_Overloaded_Entity): For an entity overriding an interface primitive
17988         check if the entity also covers other abstract subprograms in the same
17989         scope. This is required to handle the general case, that is, overriding
17990         other interface primitives and overriding abstract subprograms inherited
17991         from some abstract ancestor type.
17992         (New_Overloaded_Entity): For an overriding entity that comes from
17993         source, note the operation that it overrides.
17994         (Check_Conformance, Type_Conformant): Addition of one new formal
17995         to skip controlling formals in the analysis. This is used to
17996         handle overloading of abstract interfaces.
17997         (Base_Types_Match): Add missing case for types imported from
17998         limited-with clauses
17999         (New_Overloaded_Entity): Add barrier to protect the use of
18000         the "alias" attribute.
18001
18002 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
18003
18004         * sem_ch8.adb (Analyze_Renamed_Entry): For a renaming_as_declaration,
18005         verify that the procedure and the entry are mode conformant.
18006         (Analyze_Subprogram_Renaming): Emit a warning if an operator is renamed
18007         as a different operator, which is often a cut-and-paste error.
18008
18009 2005-09-01  Javier Miranda  <miranda@adacore.com>
18010             Ed Schonberg  <schonberg@adacore.com>
18011
18012         * sem_disp.adb (Check_Controlling_Formals): Anonymous access types
18013         used in controlling parameters exclude null because it is necessary to
18014         read the tag to dispatch, and null has no tag.
18015         (Override_Dispatching_Operation): If the previous operation is inherited
18016         from an interface, it becomes hidden  and does not participate in later
18017         name resolution.
18018
18019 2005-09-01  Javier Miranda  <miranda@adacore.com>
18020             Ed Schonberg  <schonberg@adacore.com>
18021             Gary Dismukes  <dismukes@adacore.com>
18022
18023         * sem_res.adb (Resolve_Membership_Op): In case of the membership test
18024         "Iface_CW_Typ in T'Class" we have nothing else to do in the frontend;
18025         the expander will generate the corresponding run-time check to evaluate
18026         the expression.
18027         (Resolve_Call): Check for legal type of procedure name or prefix that
18028         appears as a trigger in a triggering alternative.
18029         (Valid_Conversion): If expression is ambiguous and the context involves
18030         an extension of System, remove System.Address interpretations.
18031         (Resolve_Qualified_Expression): Reject the case of a specific-type
18032         qualification applied to a class-wide argument. Enhance comment
18033         to explain checking of Original_Node.
18034         (Resolve_Type_Conversion): The location of the error message was not
18035         general enough to handle the general case and hence it has been removed.
18036         In addition, this patch improves the text of the message.
18037         (Resolve_Type_Conversion): Add missing support for access to interface
18038         types.
18039         (Resolve_Type_Conversion): If the target is a class-wide interface type,
18040         do not expand if the expression is the actual in a call, because proper
18041         expansion will take place when the call itself is expanded.
18042         (Resolve_Allocator): If the context is an unchecked conversion, the
18043         allocator inherits its storage pool, if any, from the target type of
18044         the conversion.
18045
18046 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
18047             Javier Miranda  <miranda@adacore.com>
18048
18049         * sem_type.adb (Add_One_Interp): If a candidate operation is an
18050         inherited interface operation that has an implementation, use the
18051         implementation to avoid spurious ambiguities.
18052         (Interface_Present_In_Ancestor): In case of concurrent types we can't
18053         use the Corresponding_Record_Typ attribute to look for the interface
18054         because it is set by the expander (and hence it is not always
18055         available). For this reason we traverse the list of interfaces
18056         (available in the parent of the concurrent type).
18057         (Interface_Present_In_Ancestor): Handle entities from the limited view
18058
18059 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
18060
18061         * sem_util.ads, sem_util.adb (Gather_Components): Omit interface tags
18062         from the list of required components.
18063         (Is_Controlling_Limited_Procedure): Determine whether an entity is a
18064         primitive procedure of a limited interface with a controlling first
18065         parameter.
18066         (Is_Renamed_Entry): Determine whether an entry is a procedure renaming
18067         of an entry.
18068         (Safe_To_Capture_Value): A value (such as non_null) is not safe to
18069         capture if it is generated in the second operand of a short-circuit
18070         operation.
18071         Do not capture values for variables with address clauses.
18072         (Is_Object_Reference): Treat a function call as an object reference only
18073         if its type is not Standard_Void_Type.
18074
18075 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
18076
18077         * sem_warn.adb (Warn_On_Known_Condition): Refine warning when applied
18078         to a variable that is statically known to be constant.
18079
18080 2005-09-01  Geert Bosch  <bosch@adacore.com>
18081             Robert Dewar  <dewar@adacore.com>
18082
18083         * ttypef.ads (VAXDF_Safe_First): Use correct value for constant.
18084         (VAXGF_Safe_First): Idem.
18085
18086 2005-09-01  Robert Dewar  <dewar@adacore.com>
18087             Arnaud Charlet  <charlet@adacore.com>
18088
18089         * g-dirope.ads: Minor reformatting
18090         Document that bounds of result of Base_Name match the input index
18091         positions.
18092         Add documentation on environment variable syntax for Expand_Path
18093
18094         * gnat_ugn.texi: Update documentation to include mention of -m switches
18095         Document new treatment of wide characters in max line length
18096         style check.
18097         Remove -gnatL/-gnatZ switches, no longer used.
18098         Add note on pragmas Assertion_Policy and Debug_Policy in discussion
18099         of -gnata switch.
18100
18101         * gnat_rm.texi: Add doc for two argument form of pragma
18102         Float_Representation.
18103         Add documentation for pragma No_Strict_Aliasing
18104         Add note that explicit component clause overrides pragma Pack.
18105         Add documentation of pragma Debug_Policy
18106
18107 2005-09-01  Matthew Heaney  <heaney@adacore.com>
18108
18109         * a-cihase.adb, a-coorse.ads, a-coorse.adb, a-cohama.adb,
18110         a-ciorse.ads, a-ciorse.adb, a-cihama.adb, a-cdlili.adb,
18111         a-cidlli.adb, a-chtgop.adb, a-cihase.adb, a-cihase.ads,
18112         a-cohase.adb, a-cohase.adb, a-cohase.ads: Synchronized with latest
18113         draft (Draft 13, August 2005) of Ada Amendment 1.
18114
18115 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
18116
18117         * Makefile.in: Adjust the libgnat target pairs for Xscale to ARM.
18118         Note that the platform-specific version of g-soccon.ads for VMS is now
18119         named g-soccon-vms.ads (it was previously g-soccon-vms.adb, although it
18120         really is a package spec).
18121         Replace s-taspri-linux.ads by s-taspri-posix.ads
18122         Remove references to s-mastop-x86.adb
18123
18124         * system-vxworks-xscale.ads: Removed, no longer used.
18125         * s-vxwork-xscale.ads: Removed, no longer used.
18126
18127 2005-09-01  Robert Dewar  <dewar@adacore.com>
18128
18129         * a-dirval-mingw.adb, a-direct.adb, a-coinve.adb,
18130         g-dynhta.adb, g-dynhta.ads, cstand.adb, exp_smem.adb, g-debuti.ads,
18131         g-dirope.adb, g-table.adb, lib-sort.adb, sem_maps.adb,
18132         exp_fixd.adb, exp_aggr.adb, a-intnam-mingw.ads, a-intnam-vxworks.ads,
18133         g-arrspl.adb, g-arrspl.ads, g-awk.adb, g-awk.ads, g-boubuf.ads,
18134         g-boubuf.ads, g-boubuf.ads, g-bubsor.ads, g-bubsor.adb, g-busora.adb,
18135         g-busora.ads, g-busorg.adb, g-busorg.ads, g-calend.adb, g-calend.ads,
18136         g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads, g-cgi.adb,
18137         g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads, g-cgideb.adb, g-cgideb.ads,
18138         g-comlin.adb, g-comver.ads, g-semaph.ads, g-socthi.ads,
18139         sem_ch7.adb, a-direio.adb, a-caldel.ads, i-cstrea-vms.adb,
18140         a-ztedit.adb, a-ztenau.adb, g-socthi-vms.adb, g-socthi-vms.ads,
18141         g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vxworks.ads,
18142         a-intnam-irix.ads, a-intnam-irix.ads, a-intnam-hpux.ads,
18143         a-intnam-os2.ads, a-intnam-os2.ads, a-caldel-vms.adb, a-calend-vms.adb,
18144         a-calend-vms.ads, g-heasor.adb, g-heasor.ads, g-hesora.adb,
18145         g-hesora.ads, g-hesorg.adb, g-hesorg.ads, g-htable.adb, g-htable.ads,
18146         g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads, g-locfil.ads,
18147         g-memdum.adb, g-memdum.ads, g-traceb.adb, g-traceb.ads, i-cobol.adb,
18148         i-cobol.ads, i-cstrea.ads, i-cstrin.adb, a-wtedit.adb, a-tifiio.adb,
18149         a-wtenau.adb, a-wtenau.adb, a-teioed.adb: Minor reformatting
18150
18151 2005-08-29  Arnaud Charlet  <charlet@adacore.com>
18152
18153         PR ada/23187
18154         * adaint.c
18155         (GNAT_MAXPATH_LEN): Use default value if MAXPATHLEN is undefined.
18156
18157 2005-08-29  Arnaud Charlet  <charlet@adacore.com>
18158             Doug Rupp  <rupp@adacore.com>
18159
18160         * s-stalib.adb: Add missing pragma Warnings (On) to reenable Warnings
18161         when needed.
18162         (Inside_Elab_Final_Code): Moved to init.c to avoid having to keep
18163         this code in the GNAT run-time.
18164
18165         * decl.c, fe.h: Replace GCC_ZCX by Back_End_Exceptions.
18166
18167         PR ada/21053
18168         * init.c (__gnat_error_handler [many]): Mark "msg" as const
18169         (__gnat_error_handler [HPUX]): Mark siginfo parameter as unused
18170
18171         (__gnat_inside_elab_final_code): Moved here from
18172         Standard_Library and only defined for the compiler.
18173         __gnat_error_handler [VMS]: Adjust sigargs to account for PC & PSL.
18174         (__gnat_inum_to_ivec): Do not define this function on VxWorks when
18175         using RTPs because directly vectored Interrupt routines are not
18176         supported on this configuration.
18177         (getpid): Do not redefine this function on VxWorks when using RTPs
18178         because this primitive is well supported by the RTP libraries.
18179         (copy_msg): Correct the code that checks for buffer overflow.
18180         Discovered during code reading.
18181
18182 2005-08-29  Olivier Hainque  <hainque@adacore.com>
18183
18184         * decl.c (gnat_to_gnu_entity) <E_Variable>: When allocating storage for
18185         a library level mutable variable with an initializer, tell
18186         build_allocator to ignore the initializer's size. It may not be large
18187         enough for all the values that might be assigned to the variable later
18188         on.
18189
18190 2005-08-29  Arnaud Charlet  <charlet@adacore.com>
18191             Eric Botcazou  <ebotcazou@adacore.com>
18192
18193         * trans.c: Protect < in error msg with quote
18194         Replace GCC_ZCX by Back_End_Exceptions.
18195         (addressable_p) <COMPONENT_REF>: Also return 1 if the field
18196         has been sufficiently aligned in the record.
18197
18198 2005-08-15  James E. Wilson  <wilson@specifix.com>
18199
18200         * system-linux-alpha.ads: Change ia64 to alpha.
18201
18202 2005-08-01  Kazu Hirata  <kazu@codesourcery.com>
18203
18204         * decl.c, utils.c: Fix comment typos.
18205
18206 2005-07-29  Kazu Hirata  <kazu@codesourcery.com>
18207
18208         * decl.c, init.c, initialize.c: Fix comment typos.
18209
18210 2005-07-20  Giovanni Bajo  <giovannibajo@libero.it>
18211
18212         Make CONSTRUCTOR use VEC to store initializers.
18213         * decl.c (gnat_to_gnu_entity): Update to cope with VEC in
18214         CONSTRUCTOR_ELTS.
18215         * trans.c (extract_values): Likewise.
18216         * utils.c (convert, remove_conversions): Likewise.
18217         * utils2.c (contains_save_expr_p, build_binary_op, build_unary_op,
18218         gnat_build_constructor): Likewise.
18219
18220 2005-07-09  Andrew Pinski  <pinskia@physics.uc.edu>
18221
18222         * decl.c (components_to_record): Use DECL_FCONTEXT instead of
18223         DECL_SECTION_NAME.
18224         (compare_field_bitpos): Likewise.
18225
18226 2005-07-09  Andrew Pinski  <pinskia@physics.uc.edu>
18227
18228         * utils.c (create_var_decl): Only set DECL_COMMON on
18229         VAR_DECLs. Only set SET_DECL_ASSEMBLER_NAME on
18230         VAR_OR_FUNCTION_DECL_P.
18231
18232 2005-07-08  Daniel Berlin  <dberlin@dberlin.org>
18233
18234         * utils.c (create_param_decl): DECL_ARG_TYPE_AS_WRITTEN is
18235         removed.
18236
18237 2005-07-07  Pascal Obry  <obry@adacore.com>
18238
18239         * g-socthi-mingw.adb (C_Inet_Addr): New body used to convert the
18240         returned type on Windows.
18241
18242         * g-socthi-mingw.ads (C_Inet_Addr): Remove pragma Import for this
18243         routine.
18244
18245         * g-socket.adb (Inet_Addr): Check for empty Image and raises an
18246         exception in this case.
18247         Simplify the code as "Image (Image'Range)" = "Image".
18248
18249 2005-07-07  Vincent Celier  <celier@adacore.com>
18250
18251         * bindgen.adb (Gen_Output_File_C): When switch -a was specified, put
18252         the destructor/constructor attributes for <lib>final/<lib>init.
18253
18254         * gnatbind.adb (Gnatbind): Allow -a to be used in conjunction with -C
18255
18256 2005-07-07  Eric Botcazou  <ebotcazou@adacore.com>
18257
18258         * decl.c (gnat_to_gnu_entity) <E_Procedure>: Do not strip the padding
18259         type if the parameter is not passed by copy but reference by default.
18260
18261 2005-07-07  Javier Miranda  <miranda@adacore.com>
18262
18263         * exp_ch3.adb (Build_Record_Init_Proc/Freeze_Record_Type):
18264         Reimplementation of the support for abstract interface types in order
18265         to leave the code more clear and easy to maintain.
18266
18267         * exp_ch6.adb (Freeze_Subprogram): Reimplementation of the support for
18268         abstract interface types in order to leave the code clearer and easier
18269         to maintain.
18270
18271         * exp_disp.ads, exp_disp.adb (Fill_DT_Entry): Part of its functionality
18272         is now implemented by the new subprogram Fill_Secondary_DT_Entry.
18273         (Fill_Secondary_DT_Entry): Generate the code necessary to fill the
18274         appropriate entry of the secondary dispatch table.
18275         (Make_DT): Add code to inherit the secondary dispatch tables of
18276         the ancestors.
18277
18278         * exp_util.adb (Find_Interface_Tag/Find_Interface_ADT): Instead of
18279         implementing both functionalities by means of a common routine, each
18280         routine has its own code.
18281
18282 2005-07-07  Javier Miranda  <miranda@adacore.com>
18283
18284         * freeze.adb (Freeze_Entity): Check wrong uses of tag incomplete types.
18285
18286         * par-ch3.adb (P_Type_Declaration): Give support to tagged incomplete
18287         types:
18288         --
18289           type DEFINING_IDENTIFIER [DISCRIMINANT_PART] [IS TAGGED];
18290         --
18291
18292         * sem_attr.adb (Check_Not_Incomplete_Type): Additional checks for wrong
18293         use of tag incomplete types.
18294
18295         * sem_ch3.adb (Analyze_Incomplete_Type): Add mininum decoration to
18296         give support to tagged incomplete types.
18297
18298         * sem_ch5.adb (Analyze_Case_Statement): In generated code, if the
18299         expression is a discriminant reference and its type is private, as can
18300         happen within a stream operation for a mutable record, use the full
18301         view of the type to resolve the case alternatives.
18302         (Analyze_Assignment): Check wrong dereference of incomplete types.
18303
18304         * sem_ch6.adb (Process_Formals): Allow the use of tagged incomplete
18305         types.
18306
18307         * sem_res.adb (Resolve_Explicit_Dereference): Allow the use of tagged
18308         incomplete types.
18309
18310         * sinfo.adb (Taggged_Present/Set_Taggged_Present): Applicable to
18311         N_Incomplete_Type_Declaration nodes.
18312
18313         * sinfo.ads (N_Incomplete_Type_Declaration): Addition of attribute
18314         Tag_Present to give support to tagged incomplete types:
18315         --
18316           type DEFINING_IDENTIFIER [DISCRIMINANT_PART] [IS TAGGED];
18317         --
18318
18319 2005-07-07  Olivier Hainque  <hainque@adacore.com>
18320
18321         PR ada/22301
18322         * raise.c: Only include unwind.h if IN_RTS, and provide dummy type
18323         definitions for the Unwind wrappers in the compiler case.
18324
18325 2005-07-07  Ed Schonberg  <schonberg@adacore.com>
18326             Javier Miranda  <miranda@adacore.com>
18327
18328         * par-load.adb (Load): If a child unit is loaded through a limited_with
18329         clause, each parent must be loaded as a limited unit as well.
18330
18331         * sem_ch10.adb (Previous_Withed_Unit): Better name for
18332         Check_Withed_Unit. Return true if there is a previous with_clause for
18333         this unit, whether limited or not.
18334         (Expand_Limited_With_Clause): Do not generate a limited_with_clause on
18335         the current unit.
18336         (Is_Visible_Through_Renamings): New local subprogram of install_limited
18337         _withed_unit that checks if some package installed through normal with
18338         clauses has a renaming declaration of package whose limited-view is
18339         ready to be installed. This enforces the check of the rule 10.1.2 (21/2)
18340         of the current Draft document for Ada 2005.
18341         (Analyze_Context): Complete the list of compilation units that
18342         are allowed to contain limited-with clauses. It also contains
18343         checks that were previously done by Install_Limited_Context_Clauses.
18344         This makes the code more clear and easy to maintain.
18345         (Expand_Limited_With_Clause) It is now a local subprogram of
18346         Install_Limited_Context_Clauses, and contains the code that adds
18347         the implicit limited-with clauses for parents of child units.
18348         This functionality was prevously done by Analyze_Context.
18349
18350         * sem_ch4.adb (Analyze_Selected_Component): Check wrong use of
18351         incomplete type.
18352
18353         * sem_ch7.adb (Analyze_Package_Declaration): Check if the package has
18354         been erroneously named in a limited-with clause of its own context.
18355         In this case the error has been previously notified by Analyze_Context.
18356
18357 2005-07-07  Ed Schonberg  <schonberg@adacore.com>
18358
18359         * sem_ch8.adb (Find_Direct_Name): Handle properly the case of a
18360         generic package that contains local declarations with the same name.
18361         (Analyze_Object_Renaming): Check wrong renaming of incomplete type.
18362
18363 2005-07-07  Bernard Banner  <banner@adacore.com>
18364
18365         * tracebak.c: Refine tracebacks to use Unwind_Backtrace scheme on
18366         ia64 platform only on platforms that you the GCC unwind library
18367         rather than the system unwind library.
18368
18369 2005-07-07  Thomas Quinot  <quinot@adacore.com>
18370
18371         * expect.c: Minor reformatting
18372
18373 2005-07-07  Sergey Rybin  <rybin@adacore.com>
18374
18375         * vms_data.ads: Add VMS qualifiers for new gnatpp switch
18376         --no-separate-is
18377
18378         * gnat_ugn.texi: Add description for new gnatpp option
18379         (--no-separate-is)
18380
18381 2005-07-04  Thomas Quinot  <quinot@adacore.com>
18382
18383         * g-expect-vms.adb, g-expect.ads, g-expect.adb
18384         (Get_Command_Output): New subprogram to launch a process and get its
18385         standard output as a string.
18386
18387 2005-07-04  Eric Botcazou  <ebotcazou@adacore.com>
18388             Olivier Hainque  <hainque@adacore.com>
18389
18390         * s-mastop-tru64.adb (Pop_Frame): Use exc_lookup_function_entry to
18391         fetch a code-range descriptor associated with the machine state. On
18392         failure set the machine state's PC to 0; on success, pass the
18393         descriptor to exc_virtual_unwind.
18394
18395         * init.c (Tru64 section): New function __gnat_set_code_loc.
18396
18397 2005-07-04  Vincent Celier  <celier@adacore.com>
18398
18399         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
18400         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
18401         mlib-tgt-mingw.adb, mlib-tgt-darwin.adb (Build_Dynamic_Library):
18402         Remove all auto-initialization code, as this is now done through the
18403         constructor mechanism.
18404
18405         * adaint.h, adaint.c (__gnat_binder_supports_auto_init,
18406         __gnat_sals_init_using_constructors): New functions.
18407
18408         * bindgen.adb (Gen_Output_File_Ada): Generate pragmas
18409         Linker_Constructor and Linker_Destructor when switch -a is used.
18410
18411         * bindusg.adb: Add line for new switch -a
18412
18413         * gnatbind.adb (Gnatbind_Supports_Auto_Init): New Boolean function
18414         (Gnatbind): When switch -a is used, check if it is allowed
18415
18416         * switch-b.adb (Scan_Binder_Switches): Process new switch -a
18417
18418 2005-07-04  Joel Brobecker  <brobecker@adacore.com>
18419
18420         * a-tags.adb (Type_Specific_Data): Define Tags_Table as a small array.
18421         This prevents us from hitting a limitation during the debug info
18422         generation when using stabs.
18423         (Prims_Ptr): Likewise.
18424
18425 2005-07-04  Gary Dismukes  <dismukes@adacore.com>
18426             Ed Schonberg  <schonberg@adacore.com>
18427             Javier Miranda  <miranda@adacore.com>
18428
18429         * checks.adb (Null_Exclusion_Static_Checks): In the case of
18430         N_Object_Declaration, only perform the checks if the Object_Definition
18431         is not an Access_Definition.
18432
18433         * sem_ch3.adb (Access_Subprogram_Declaration): Add test for the case
18434         where the parent of an the access definition is an N_Object_Declaration
18435         when determining the Associated_Node_For_Itype and scope of an
18436         anonymous access-to-subprogram type.
18437
18438         * exp_ch6.adb (Expand_N_Subprogram_Declaration): Set the
18439         Corresponding_Spec on the body created for a null procedure. Add ???
18440         comment. Remove New_Copy_Tree call on body argument to
18441         Set_Body_To_Inline.
18442
18443         * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): For an out parameter with
18444         discriminants, use the type of the actual as well, because the
18445         discriminants may be read by the called subprogram.
18446
18447         * sem_ch3.adb (Access_Type_Declaration): If the designated type is an
18448         access type we do not need to handle non-limited views.
18449         (Build_Derived_Record_Type): Additional check to check that in case of
18450         private types, interfaces are only allowed in private extensions.
18451
18452 2005-07-04  Eric Botcazou  <ebotcazou@adacore.com>
18453
18454         * decl.c (prepend_attributes) <Pragma_Linker_Constructor>: New case.
18455         <Pragma_Linker_Destructor>: Likewise.
18456
18457         * einfo.ads (Has_Gigi_Rep_Item): Document Pragma_Linker_Constructor and
18458         Pragma_Linker_Destructor.
18459
18460         * gigi.h (attr_type): Add ATTR_LINK_CONSTRUCTOR and
18461         ATTR_LINK_DESTRUCTOR.
18462         (static_ctors, static_dtors): New variables.
18463
18464         * misc.c (gnat_expand_body): Output current function as constructor
18465         and destructor if requested.
18466
18467         * par-prag.adb: Add processing for pragma Linker_Constructor and
18468         Linker_Destructor.
18469
18470         * sem_prag.adb (Find_Unique_Parameterless_Procedure): New function
18471         extracted from Check_Interrupt_Or_Attach_Handler.
18472         (Check_Interrupt_Or_Attach_Handler): Invoke it.
18473         Implement pragma Linker_Constructor and Linker_Destructor with the
18474         help of Find_Unique_Parameterless_Procedure.
18475         Replace Name_Alias with Name_Target for pragma Linker_Alias.
18476
18477         * snames.h, snames.ads, snames.adb:
18478         Add Name_Linker_Constructor and Name_Linker_Destructor.
18479         Add Pragma_Linker_Constructor and Pragma_Linker_Destructor.
18480         * snames.adb: Remove Name_Alias.
18481
18482         * trans.c: Include cgraph.h.
18483         (build_global_cdtor): New function.
18484         (Compilation_Unit_to_gnu): Build global constructor and destructor if
18485         needed.
18486         (tree_transform) <N_Identifier>: Substitute renaming of view-conversions
18487         of objects too.
18488         (addressable_p) <COMPONENT_REF>: Unconditionally test
18489         DECL_NONADDRESSABLE_P on STRICT_ALIGNMENT platforms.
18490
18491         * utils.c (process_attributes) <ATTR_LINK_ALIAS>: Do not assemble the
18492         variable if it is external.
18493
18494         (static_ctors, static_dtors): New global variables.
18495         (process_attributes) <ATTR_LINK_CONSTRUCTOR>: New case.
18496         <ATTR_LINK_DESTRUCTOR>: Likewise.
18497         (end_subprog_body): Chain function as constructor and destructor
18498         if requested.
18499
18500         * exp_util.adb (Force_Evaluation): Unconditionally invoke
18501         Remove_Side_Effects with Variable_Ref set to true.
18502         (Remove_Side_Effects): Handle scalar types first. Use a renaming
18503         for non-scalar types even if Variable_Ref is true and for class-wide
18504         expressions.
18505
18506 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
18507
18508         * exp_attr.adb (Mod): Evaluate condition expression with checks off,
18509         to prevent spurious warnings.
18510
18511 2005-07-04  Thomas Quinot  <quinot@adacore.com>
18512
18513         * exp_dist.adb (Build_TypeCode_Call): Remove incorrect processing for
18514         Itypes. Itypes are really unexpected there.
18515         (Build_TypeCode_Function): Generalise special processing for Itypes to
18516         handle the case of numeric implicit base types as well as enumerated
18517         ones.
18518
18519 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
18520
18521         * exp_intr.adb (Expand_Unc_Deallocation): If the designated type is
18522         controlled, indicate the expected type of the dereference that is
18523         created for the call to Deep_Finalize, to prevent spurious errors when
18524         the designated type is private and completed with a derivation from
18525         another private type.
18526
18527 2005-07-04  Vincent Celier  <celier@adacore.com>
18528
18529         * make.adb (Change_To_Object_Directory): When unable to change the
18530         current dir to the object directory, output the full path of the
18531         directory.
18532
18533 2005-07-04  Matthew Gingell  <gingell@adacore.com>
18534
18535         * Makefile.in: Replace indepsw-linux.adb by indepsw-gnu.adb
18536
18537         * indepsw-linux.adb: Replace by...
18538
18539         * indepsw-gnu.adb: ...this new file
18540
18541 2005-07-04  Vincent Celier  <celier@adacore.com>
18542
18543         * mlib-prj.adb (Auto_Initialize): New constant String
18544         (SALs_Use_Constructors): New Boolean function
18545         (Build_Library): Call gnatbind with Auto_Initialize switch when
18546         SALs_Use_Constructors returns True.
18547
18548         * mlib-tgt.ads: Minor reformatting
18549
18550         * mlib-utl.ads: Minor reformatting
18551
18552         * opt.ads: (Use_Pragma_Linker_Constructor): New Boolean flag
18553
18554 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
18555
18556         * par-ch9.adb (P_Task, P_Protected): Indicate that single task and
18557         single protected declarations can have an interface list.
18558         (P_Entry_Declaration): Add handler for Error_Resync, which can be raised
18559         with seriously malformed entry declarations, and lead to compilation
18560         abandoned messages.
18561
18562 2005-07-04  Javier Miranda  <miranda@adacore.com>
18563
18564         * par-load.adb: Load the context items in two rounds.
18565
18566 2005-07-04  Robert Dewar  <dewar@adacore.com>
18567
18568         * scng.adb: Do not consider Mod used as an attribute to be a keyword
18569
18570 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
18571             Javier Miranda  <miranda@adacore.com>
18572
18573         * sem_ch10.adb (Build_Limited_Views): A type declared with a private
18574         type extension needs a limited view.
18575         Remove previous restriction on private types available through the
18576         limited-view (only tagged private types were previously allowed).
18577         (Install_Withed_Unit): In the code that implements the
18578         legality rule given in AI-377, exclude a child unit with the name
18579         Standard, because it is a homonym of the Standard environment package.
18580
18581 2005-07-04  Thomas Quinot  <quinot@adacore.com>
18582
18583         * sem_ch4.adb (Transform_Object_Operation): For an actual that is an
18584         overloaded function call, carry interpretations from the original tree
18585         to the copy.
18586
18587 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
18588
18589         * sem_ch6.adb (Conforming_Types): If the types are anonymous access
18590         types check whether some designated type is a limited view, and use
18591         the non-limited view if available.
18592
18593 2005-07-04  Gary Dismukes  <dismukes@adacore.com>
18594
18595         * sem_eval.adb (Subtypes_Statically_Match): Use the discriminant
18596         constraint of full view of a private view T1 if present, when T2 is a
18597         discriminated full view.
18598
18599 2005-07-04  Thomas Quinot  <quinot@adacore.com>
18600
18601         * sem_res.adb (Resolve_Actuals): Do not resolve the expression of an
18602         actual that is a view conversion of a bit packed array reference.
18603
18604 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
18605
18606         * sem_type.adb (Covers): Verify that Corresponding_Record_Type is
18607         present before checking whether an interface type covers a synchronized
18608         type.
18609
18610 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
18611
18612         * sem_util.adb (Is_Object_Reference): An indexed or selected component
18613         whose prefix is an implicit dereference is an object reference. Removes
18614         spurious errors when compiling with -gnatc.
18615
18616 2005-07-04  Robert Dewar  <dewar@adacore.com>
18617
18618         PR ada/22039
18619         * s-sopco3.ads, s-sopco4.ads, s-sopco5.ads: Minor documentation fix
18620
18621 2005-07-04  Matthew Gingell  <gingell@adacore.com>
18622
18623         * tracebak.c: Enable tracebacks on ia64 platforms
18624
18625 2005-07-04  Vincent Celier  <celier@adacore.com>
18626
18627         * vms_conv.adb (Initialize): Allow multiple ALI files to be given to
18628         the GNAT BIND command, as gnatbind accepts multiples ALI files with
18629         the -L or -n switches.
18630
18631 2005-07-04  Vincent Celier  <celier@adacore.com>
18632
18633         * makegpr.adb (Build_Global_Archive): Make sure the list of sources is
18634         correctly computed and the main project data is not modified while
18635         doing so.
18636         (Add_C_Plus_Plus_Link_For_Gnatmake): Always link with the C++ compiler
18637         (Choose_C_Plus_Plus_Link_Process): Do not generate shell script
18638         c++linker as this does not work on some platforms.
18639
18640 2005-07-04  Matthew Heaney  <heaney@adacore.com>
18641
18642         * a-convec.ads, a-coinve.ads: Declaration of subtype Extended_Index
18643         was changed.
18644         * a-coinve.adb: Perform constraint checks explicitly.
18645
18646 2005-07-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18647             Thomas Quinot  <quinot@adacore.com>
18648
18649         * Make-lang.in: (ada/targtyps.o): Add missing TREE_H dependency.
18650         new target gen-soccon.
18651
18652 2005-07-04  Robert Dewar  <dewar@adacore.com>
18653
18654         * s-mastop-irix.adb, s-mastop-vms.adb: Minor reformatting
18655
18656 2005-07-04  Thomas Quinot  <quinot@adacore.com>
18657
18658         * g-socket.ads (Check_Selector): Minor rewording of comment.
18659
18660 2005-07-04  Vincent Celier  <celier@adacore.com>
18661
18662         * vms_data.ads: Add VMS qualifiers for new gnatpp switch --eol=
18663
18664 2005-07-04  Thomas Quinot  <quinot@adacore.com>
18665
18666         * gen-soccon.c: Add constants SO_SNDTIMEO and SO_RCVTIMEO.
18667
18668 2005-07-04  Sergey Rybin  <rybin@adacore.com>
18669
18670         * gnat_ugn.texi: Add description of --eol gnatpp option
18671
18672 2005-07-04  Eric Botcazou  <ebotcazou@adacore.com>
18673             Thomas Quinot  <quinot@adacore.com>
18674
18675         * gnat_rm.texi: Add a note that pragma Unreferenced is not appropriate
18676         if the user wants all calls of a subprogram to be flagged,
18677         independently of whether they are made from within the same unit or
18678         another unit.
18679         Mention restriction for pragma Linker_Alias on some platforms.
18680         Document pragma Linker_Constructor and Linker_Destructor.
18681         Rewrite documentation of Weak_External, Linker_Section and
18682         Linker_Alias pragmas.
18683
18684 2005-07-04  Arnaud Charlet  <charlet@adacore.com>
18685
18686         * s-stausa.ads, s-stausa.adb: New files.
18687
18688 2005-06-30  Kelley Cook
18689
18690         * all files:  Update FSF address in copyright headers.
18691         * gen-soccon.co (main): Output new FSF address in generated files.
18692
18693 2005-06-28  Paul Brook  <paul@codesourcery.com>
18694
18695         * misc.c (gnat_init_gcc_eh): Call default_init_unwind_resume_libfunc.
18696
18697 2005-06-14  Olivier Hainque  <hainque@adacore.com>
18698             Eric Botcazou  <ebotcazou@adacore.com>
18699
18700         * s-mastop-irix.adb (Pop_Frame): Revert shorcuts avoiding calls to
18701         exc_unwind, now that we are generating proper .debug_frame output for
18702         that target.
18703
18704         * tracebak.c: Remove the mips-irix section, as we are now using the
18705         s-mastop based unwinder again.
18706         Under SPARC/Solaris, take into account the stack bias to compute the
18707         frame offset.  The stack bias is 0 for the V8 ABI and 2047 for the V9
18708         ABI.
18709
18710 2005-06-14  Doug Rupp  <rupp@adacore.com>
18711
18712         * g-trasym-vms.adb: renamed g-trasym-vms-alpha.adb
18713
18714         * g-trasym-vms-alpha.adb, g-trasym-vms-ia64.adb: New files
18715
18716 2005-06-14  Pascal Obry  <obry@adacore.com>
18717
18718         * a-strhas.ads, a-secain.adb, a-secain.ads, a-rbtgso.ads, a-cgaaso.adb,
18719         a-cgaaso.ads, a-cgarso.adb, a-cgcaso.adb, a-cgarso.ads, a-cgcaso.ads,
18720         a-contai.ads, a-coprnu.ads, a-coprnu.adb: Fix header style (spaces in
18721         package name).
18722
18723         * a-intnam-lynxos.ads, a-intnam-unixware.ads, a-intnam-tru64.ads,
18724         a-intnam-aix.ads, a-intnam-irix.ads, a-excpol-interix.adb,
18725         a-intnam-hpux.ads, a-intnam-linux.ads, a-intnam-dummy.ads,
18726         a-intnam-os2.ads, a-numaux-libc-x86.ads, a-intnam-interix.ads,
18727         a-intnam-solaris.ads, a-caldel-vms.adb, a-calend-vms.ads,
18728         a-intnam-vms.ads, a-excpol-abort.adb, a-intnam-mingw.ads,
18729         a-intnam-vxworks.ads, a-numaux-vxworks.ads, s-osinte-unixware.adb,
18730         s-osinte-unixware.ads, s-osinte-lynxos-3.adb, s-osinte-lynxos-3.ads,
18731         s-osinte-hpux.ads, s-osinte-solaris-posix.ads, a-intnam-freebsd.ads,
18732         s-osinte-freebsd.adb, s-osinte-freebsd.ads, s-osinte-lynxos.adb,
18733         s-osinte-lynxos.ads, s-tpopsp-lynxos.adb, s-osinte-tru64.adb,
18734         s-osinte-tru64.ads, s-tpopsp-posix-foreign.adb, s-vxwork-alpha.ads,
18735         s-osinte-aix.adb, s-osinte-aix.ads, s-osinte-aix-fsu.ads,
18736         s-osinte-irix.adb, s-osinte-irix.ads, s-interr-sigaction.adb,
18737         s-osinte-irix-athread.ads, s-osinte-hpux-dce.adb,
18738         s-osinte-hpux-dce.ads, s-osinte-posix.adb, s-osinte-linux.ads,
18739         s-vxwork-m68k.ads, s-osinte-linux-fsu.ads, s-vxwork-mips.ads,
18740         s-osinte-dummy.ads, s-interr-dummy.adb, s-osinte-os2.adb,
18741         s-osinte-os2.ads, s-osprim-os2.adb, s-osinte-interix.ads,
18742         s-osprim-unix.adb, s-vxwork-ppc.ads, s-osinte-solaris.adb,
18743         s-osinte-solaris.ads, s-osprim-solaris.adb, s-tpopsp-solaris.adb,
18744         s-vxwork-sparcv9.ads, s-osinte-solaris-fsu.ads, s-interr-vms.adb,
18745         s-osinte-vms.adb, s-osinte-vms.ads, s-osprim-vms.adb,
18746         s-osprim-vms.ads, s-tpopde-vms.adb, s-tpopde-vms.ads,
18747         s-osprim-mingw.adb, s-vxwork-xscale.ads, s-interr-vxworks.adb,
18748         s-osinte-vxworks.adb, s-osinte-vxworks.ads, s-osprim-vxworks.adb,
18749         s-tfsetr-vxworks.adb, s-tpopsp-vxworks.adb, s-intman-posix.adb,
18750         s-osinte-fsu.adb, s-osprim-posix.adb, s-tfsetr-default.adb,
18751         s-tpopsp-posix.adb, s-traces-default.adb, s-trafor-default.adb,
18752         s-trafor-default.ads, s-tratas-default.adb, a-numaux-x86.adb,
18753         a-numaux-x86.ads, a-astaco.adb, a-astaco.ads, a-caldel.adb,
18754         a-caldel.ads, a-charac.ads, a-chlat1.ads, a-chlat9.ads, a-colien.adb,
18755         a-colien.ads, a-colire.adb, a-colire.ads, a-comlin.adb, a-cwila1.ads,
18756         a-cwila9.ads, ada.ads, a-decima.adb, a-diocst.ads, a-direio.adb,
18757         a-dynpri.adb, a-dynpri.ads, a-excpol.adb, a-flteio.ads, a-fwteio.ads,
18758         a-inteio.ads, a-interr.adb, a-intnam.ads, a-intsig.adb, a-intsig.ads,
18759         a-ioexce.ads, a-iwteio.ads, a-lfteio.ads, a-lfwtio.ads, a-liteio.ads,
18760         a-liwtio.ads, a-llftio.ads, a-llfwti.ads, a-llitio.ads, a-lliwti.ads,
18761         a-ncelfu.ads, a-ngcefu.adb, a-ngcefu.ads, a-ngcoty.adb, a-ngelfu.adb,
18762         a-ngelfu.ads, a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads,
18763         a-nllcty.ads, a-nllefu.ads, a-nscefu.ads, a-nscoty.ads, a-nselfu.ads,
18764         a-nucoty.ads, a-nudira.adb, a-nuelfu.ads, a-nuflra.adb, a-numaux.ads,
18765         a-numeri.ads, a-reatim.adb, a-retide.adb, a-retide.ads, a-sequio.adb,
18766         a-sequio.ads, a-sfteio.ads, a-sfwtio.ads, a-siocst.ads, a-siteio.ads,
18767         a-siwtio.ads, a-ssicst.ads, a-ssitio.ads, a-ssiwti.ads, a-stmaco.ads,
18768         a-storio.adb, a-strbou.adb, a-strfix.adb, a-string.ads, a-strmap.adb,
18769         a-strsea.adb, a-strsup.adb, a-strunb.ads, a-ststio.adb, a-stunau.adb,
18770         a-stunau.ads, a-stwibo.adb, a-stwifi.adb, a-stwifi.ads, a-stwima.adb,
18771         a-stwise.adb, a-stwisu.adb, a-suteio.adb, a-suteio.ads, a-swuwti.adb,
18772         a-swuwti.ads, a-teioed.adb, a-ticoau.adb, a-ticoau.ads, a-ticoio.adb,
18773         a-tideau.adb, a-tideio.adb, a-tienau.adb, a-tienio.adb, a-tifiio.adb,
18774         a-tiflio.adb, a-tigeau.adb, a-tigeau.ads, a-tiinio.adb, a-timoau.adb,
18775         a-timoio.adb, a-timoio.ads, a-tiocst.ads, a-titest.adb, a-titest.ads,
18776         a-witeio.adb, a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads,
18777         a-wtcstr.ads, a-wtdeau.adb, a-wtdeio.adb, a-wtenau.adb, a-wtenio.adb,
18778         a-wtfiio.adb, a-wtflio.adb, a-wtgeau.adb, a-wtinau.adb, a-wtinio.adb,
18779         a-wtinio.ads, a-wtmoau.adb, a-wtmoio.adb, a-wttest.adb, calendar.ads,
18780         dec.ads, dec-io.adb, dec-io.ads, directio.ads, errno.c, g-bubsor.adb,
18781         g-bubsor.ads, g-busora.adb, g-busora.ads, g-busorg.adb, g-busorg.ads,
18782         g-casuti.adb, g-casuti.ads, g-debuti.ads, g-heasor.adb, g-heasor.ads,
18783         g-hesora.adb, g-hesora.ads, g-hesorg.adb, g-hesorg.ads, g-htable.adb,
18784         g-htable.ads, g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads,
18785         g-memdum.adb, g-memdum.ads, g-sestin.ads, g-signal.ads, g-signal.adb,
18786         gnat.ads, g-souinf.ads, g-speche.adb, g-speche.ads, g-table.adb,
18787         g-table.ads, g-thread.adb, g-thread.ads, ioexcept.ads, i-vxwoio.adb,
18788         i-vxwoio.ads, math_lib.adb, s-assert.adb, s-assert.ads, s-asthan.ads,
18789         s-bitops.adb, s-bitops.ads, s-boarop.ads, s-carsi8.adb, s-carsi8.ads,
18790         s-carun8.adb, s-carun8.ads, s-casi16.adb, s-casi16.ads, s-casi32.adb,
18791         s-casi32.ads, s-casi64.adb, s-casi64.ads, s-casuti.adb, s-casuti.ads,
18792         s-caun16.adb, s-caun16.ads, s-caun32.adb, s-caun32.ads, s-caun64.adb,
18793         s-caun64.ads, s-direio.adb, s-direio.ads, sequenio.ads, s-errrep.adb,
18794         s-errrep.ads, s-exnint.adb, s-exnint.ads, s-exnllf.adb, s-exnllf.ads,
18795         s-exnlli.adb, s-exnlli.ads, s-expint.adb, s-expint.ads, s-explli.adb,
18796         s-explli.ads, s-expllu.adb, s-expllu.ads, s-expmod.adb, s-expmod.ads,
18797         s-expuns.adb, s-expuns.ads, s-fore.adb, s-fore.ads, s-geveop.adb,
18798         s-geveop.ads, s-htable.adb, s-htable.ads, s-imgbiu.adb, s-imgbiu.ads,
18799         s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads, s-imgdec.adb,
18800         s-imgdec.ads, s-imgenu.adb, s-imgenu.ads, s-imgint.adb, s-imgint.ads,
18801         s-imgllb.adb, s-imgllb.ads, s-imglld.adb, s-imglld.ads, s-imglli.adb,
18802         s-imglli.ads, s-imgllu.adb, s-imgllu.ads, s-imgllw.adb, s-imgllw.ads,
18803         s-imgrea.ads, s-imguns.adb, s-imguns.ads, s-imgwiu.adb, s-imgwiu.ads
18804         s-interr.ads, s-io.adb, s-mantis.adb, s-mantis.ads, s-osprim.ads,
18805         s-pack03.adb, s-pack03.ads, s-pack05.adb, s-pack05.ads, s-pack06.adb,
18806         s-pack06.ads, s-pack07.adb, s-pack07.ads, s-pack09.adb, s-pack09.ads,
18807         s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads, s-pack12.adb,
18808         s-pack12.ads, s-pack13.adb, s-pack13.ads, s-pack14.adb, s-pack14.ads,
18809         s-pack15.adb, s-pack15.ads, s-pack17.adb, s-pack17.ads, s-pack18.adb,
18810         s-pack18.ads, s-pack19.adb, s-pack19.ads, s-pack20.adb, s-pack20.ads,
18811         s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads, s-pack23.adb,
18812         s-pack23.ads, s-pack24.adb, s-pack24.ads, s-pack25.adb, s-pack25.ads,
18813         s-pack26.adb, s-pack26.ads, s-pack27.adb, s-pack27.ads, s-pack28.adb,
18814         s-pack28.ads, s-pack29.adb, s-pack29.ads, s-pack30.adb, s-pack30.ads,
18815         s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads, s-pack34.adb,
18816         s-pack34.ads, s-pack35.adb, s-pack35.ads, s-pack36.adb, s-pack36.ads,
18817         s-pack37.adb, s-pack37.ads, s-pack38.adb, s-pack38.ads, s-pack39.adb,
18818         s-pack39.ads, s-pack40.adb, s-pack40.ads, s-pack41.adb, s-pack41.ads,
18819         s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads, s-pack44.adb,
18820         s-pack44.ads, s-pack45.adb, s-pack45.ads, s-pack46.adb, s-pack46.ads,
18821         s-pack47.adb, s-pack47.ads, s-pack48.adb, s-pack48.ads, s-pack49.adb,
18822         s-pack49.ads, s-pack50.adb, s-pack50.ads, s-pack51.adb, s-pack51.ads,
18823         s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads, s-pack54.adb,
18824         s-pack54.ads, s-pack55.adb, s-pack55.ads, s-pack56.adb, s-pack56.ads,
18825         s-pack57.adb, s-pack57.ads, s-pack58.adb, s-pack58.ads, s-pack59.adb,
18826         s-pack59.ads, s-pack60.adb, s-pack60.ads, s-pack61.adb, s-pack61.ads,
18827         s-pack62.adb, s-pack62.ads, s-pack63.adb, s-pack63.ads, s-scaval.adb,
18828         s-scaval.ads, s-sequio.adb, s-sequio.ads, s-stache.adb, s-stache.ads,
18829         s-stratt.adb, s-stratt.ads, s-strcom.adb, s-strcom.ads, s-strops.adb,
18830         s-strops.ads, s-taasde.ads, s-tadeca.adb, s-tadeca.ads, s-tadert.adb,
18831         s-tadert.ads, s-taenca.adb, s-taenca.ads, s-taprob.adb, s-taprob.ads,
18832         s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads, s-tasini.adb,
18833         s-tasini.ads, s-taskin.adb, s-taskin.ads, s-tasque.adb, s-tasque.ads,
18834         s-tasren.ads, s-tasres.ads, s-tassta.adb, s-tassta.ads, s-tasuti.adb,
18835         s-tasuti.ads, s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
18836         s-tpoben.adb, s-tpoben.ads, s-tpobop.ads, s-tporft.adb, s-tposen.ads,
18837         s-traces.adb, s-traces.ads, s-tratas.adb, s-tratas.ads, s-valint.ads,
18838         s-unstyp.ads, s-veboop.adb, s-veboop.ads, s-vector.ads, s-vercon.adb,
18839         s-vercon.ads, s-wchcnv.adb, s-wchcnv.ads, s-wchjis.adb, s-wchjis.ads,
18840         s-wchstw.adb, s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, s-widboo.adb,
18841         s-widboo.ads, s-widcha.adb, s-widcha.ads, s-widenu.adb, s-widenu.ads,
18842         s-widlli.adb, s-widlli.ads, s-widllu.adb, s-widllu.ads, s-wwdcha.ads,
18843         s-wwdenu.adb, s-wwdwch.ads, text_io.ads, s-stchop.ads, s-stchop.adb,
18844         s-stchop-vxworks.adb, a-intnam-darwin.ads, s-osinte-darwin.adb,
18845         s-osinte-darwin.ads, s-vxwork-x86.ads, a-numaux-darwin.ads,
18846         a-numaux-darwin.adb, a-chzla1.ads, a-chzla9.ads, a-lfztio.ads,
18847         a-liztio.ads, a-llfzti.ads, a-llizti.ads, a-sfztio.ads, a-siztio.ads,
18848         a-ssizti.ads, a-stzbou.adb, a-stzfix.adb, a-stzfix.ads, a-stzmap.adb,
18849         a-stzsea.adb, a-stzsup.adb, a-swunau.adb, a-swunau.ads, a-szuzti.adb,
18850         a-szuzti.ads, a-tiunio.ads, a-wwunio.ads, a-ztcoau.adb, a-ztcoau.ads,
18851         a-ztcoio.adb, a-ztcoio.ads, a-ztcstr.ads, a-ztdeau.adb, a-ztdeio.adb,
18852         a-ztenio.adb, a-ztexio.adb, a-ztfiio.adb, a-ztflio.adb, a-ztgeau.adb,
18853         a-ztinau.adb, a-ztinio.adb, a-ztinio.ads, a-ztmoau.adb, a-ztmoio.adb,
18854         a-zttest.adb, a-zzunio.ads, g-utf_32.adb: Fix header style.
18855         "GNU Ada" to GNAT, use proper casing for RUN-TIME.
18856
18857 2005-06-14  Jose Ruiz  <ruiz@adacore.com>
18858             Arnaud Charlet  <charlet@adacore.com>
18859
18860         * a-sytaco.ads, a-sytaco.adb (Suspension_Object): These objects are no
18861         longer protected objects. They have been replaced by lower-level
18862         suspension objects made up by a mutex and a condition variable (or
18863         their equivalent given a particular OS) plus some internal data to
18864         reflect the state of the suspension object.
18865         (Initialize, Finalize): Add this initialization procedure for
18866         Suspension_Object, which is a controlled type.
18867         (Finalize): Add the finalization procedure for Suspension_Object,
18868         which is a controlled type.
18869
18870         * a-sytaco-vxworks.ads, a-sytaco-vxworks.adb: Remove this version of
18871         Ada.Synchronous_Task_Control because there is no longer a need for a
18872         VxWorks specific version of this package. Target dependencies
18873         has been moved to System.Task_Primitives.Operations.
18874
18875         * s-osinte-mingw.ads (pCRITICAL_SECTION): Remove this type which is no
18876         longer needed.
18877         (InitializeCriticalSection, EnterCriticalSection,
18878         LeaveCriticalSection, DeleteCriticalSection): Replace the type
18879         pCriticalSection by an anonymous access type so that we avoid problems
18880         of accessibility to local objects.
18881
18882         * s-taprop.ads, s-taprop-posix.adb, s-taprop-vxworks.adb,
18883         s-taprop-mingw.adb, s-taprop-vms.adb, s-taprop-solaris.adb,
18884         s-taprop-os2.adb, s-taprop-dummy.adb, s-taprop-hpux-dce.adb,
18885         s-taprop-linux.adb, s-taprop-irix.adb, s-taprop-irix-athread.adb,
18886         s-taprop-tru64.adb, s-taprop-lynxos.adb (Elaboration Code): No longer
18887         set the environment task mask here.
18888         (Current_State): Add this function that returns the state of the
18889         suspension object.
18890         (Set_False): Add this procedure that sets the state of the suspension
18891         object to False.
18892         (Set_True): Add this procedure that sets the state of the suspension
18893         object to True, releasing the task that was suspended, if any.
18894         (Suspend_Until_True): Add this procedure that blocks the calling task
18895         until the state of the object is True. Program_Error is raised if
18896         another task is already waiting on that suspension object.
18897         (Initialize): Add this procedure for initializing the suspension
18898         object. It initializes the mutex and the condition variable which are
18899         used for synchronization and queuing, and it sets the internal state
18900         to False.
18901         (Finalize): Add this procedure for finalizing the suspension object,
18902         destroying the mutex and the condition variable.
18903
18904         * s-taspri-posix.ads, s-taspri-vxworks.ads, s-taspri-mingw.ads,
18905         s-taspri-vms.ads, s-taspri-solaris.ads, s-taspri-os2.ads,
18906         s-taspri-dummy.ads, s-taspri-hpux-dce.ads, s-taspri-linux.ads,
18907         s-taspri-tru64.ads, s-taspri-lynxos.ads (Suspension_Object): New object
18908         which provides a low-level abstraction (using operating system
18909         primitives) for Ada.Synchronous_Task_Control.
18910         This object is made up by a mutex (for ensuring mutual exclusion), a
18911         condition variable (for queuing threads until the condition is
18912         signaled), a Boolean (State) indicating whether the object is open,
18913         and a Boolean (Waiting) reflecting whether there is a task already
18914         suspended on this object.
18915
18916         * s-intman.ads, s-intman-irix.adb, s-intman-irix-athread.adb,
18917         s-intman-dummy.adb, s-intman-solaris.adb, s-intman-vms.adb,
18918         s-intman-vms.ads, s-intman-mingw.adb,
18919         (Initialize_Interrupts): Removed, no longer used.
18920
18921         * s-inmaop-posix.adb, s-inmaop-vms.adb, s-inmaop-dummy.adb,
18922         (Setup_Interrupt_Mask): New procedure.
18923
18924         * s-intman-vxworks.ads, s-intman-vxworks.adb:  Update comments.
18925
18926         * s-inmaop.ads (Setup_Interrupt_Mask): New procedure
18927
18928         * s-interr.adb: Add explicit call to Setup_Interrupt_Mask now that
18929         this is no longer done in the body of s-taprop
18930         (Server_Task): Explicitely test for Pending_Action in case
18931         System.Parameters.No_Abort is True.
18932
18933         * s-taasde.adb: Add explicit call to Setup_Interrupt_Mask now that this
18934         is no longer done in the body of s-taprop
18935
18936 2005-06-14  Robert Dewar  <dewar@adacore.com>
18937
18938         * system-unixware.ads, system-linux-ia64.ads, system-freebsd-x86.ads,
18939         system-lynxos-ppc.ads, system-lynxos-x86.ads, system-linux-x86_64.ads,
18940         system-tru64.ads, system-aix.ads, system-vxworks-sparcv9.ads,
18941         system-vxworks-xscale.ads, system-solaris-x86.ads, system-irix-o32.ads,
18942         system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
18943         system-linux-x86.ads, system-vxworks-mips.ads, system-vxworks-mips.ads,
18944         system-os2.ads, system-interix.ads, system-solaris-sparc.ads,
18945         system-solaris-sparcv9.ads, system-vms.ads, system-mingw.ads,
18946         system-vms-zcx.ads, system-vxworks-ppc.ads, system.ads,
18947         system-darwin-ppc.ads, system-vxworks-x86.ads, system-linux-ppc.ads,
18948         system-linux-hppa.ads, system-vms_64.ads,
18949         system-vxworks-alpha.ads: Minor comment update for
18950         AI-362 (unit is Pure).
18951
18952         * a-chahan.ads, a-chahan.adb: Move Wide_Wide functions to Conversions
18953         Add pragma Pure_05 for AI-362
18954         Make remaining conversion functions obsolescent in Ada 95
18955
18956         * impunit.adb: Change a-swunha to a-swuwha and a-szunha to a-szuzha
18957         Make Ada.Wide_Characters[.Unicode] available in Ada 95 mode
18958         Add entries for a-wichun and a-zchuni
18959         Add a-widcha a-zchara for AI-395
18960         Add a-chacon (Ada.Characters.Conversions) to list of Ada 2005 routines
18961
18962         * Makefile.rtl: Change a-swunha to a-swuwha and a-szunha to a-szuzha
18963         Add entries for a-wichun.o and a-zchuni.o
18964         Entries for a-widcha.o and a-zchara.o
18965         Add entry for a-chacon.o
18966
18967         * a-ztenau.adb: Add with of Ada.Characters.Conversions
18968
18969         * a-chacon.ads, a-chacon.adb: New files.
18970
18971         * a-taside.adb, a-exstat.adb, a-excach.adb: Add warnings off to allow
18972         categorization violations.
18973
18974         * a-strmap.ads: Add pragma Pure_05 for AI-362
18975         * a-strmap.ads: Add note on implicit categorization for AI-362
18976
18977         * a-tgdico.ads, a-taside.ads: Add pragma Preelaborate_05 for AI-362
18978
18979         * par-prag.adb: Dummy entry for pragma Persistent_BSS
18980         Set Ada_Version_Explicit, for implementation of AI-362
18981         Add processing for pragma Pure_05 and Preelaborate_05
18982         Add entry for Assertion_Policy pragma
18983
18984         * sem.adb: Make sure predefined units are compiled with GNAT_Mode true
18985         when needed for proper processing of categorization stuff
18986
18987         * sem_cat.adb:
18988         For several cases, make errors in preealborate units warnings,
18989         instead of errors, if GNAT_Mode is set. For AI-362.
18990
18991         * sem_elab.adb (Check_Elab_Call): Call to non-static subprogram in
18992         preelaborate unit is now warning if in GNAT mode
18993
18994         * s-stoele.ads: Document AI-362 for pragma preelaborate
18995
18996 2005-06-14  Doug Rupp  <rupp@adacore.com>
18997
18998         * s-parame-vms.ads, s-parame-hpux.ads, s-parame-vms-restrict.ads,
18999         s-parame-ae653.ads, s-parame.ads, s-parame-vxworks.ads:
19000         Default_Exception_Msg_Max_Length: new parameter.
19001
19002         * a-except.ads: (Exception_Msg_Max_Length): Set to
19003         System.Parameters.Default_Exception_Msg_Max_Length
19004         Add pragma Preelaborate_05 for AI-362
19005         Add warnings off to allow categorization violations for AI-362
19006
19007 2005-06-14  Vincent Celier  <celier@adacore.com>
19008
19009         * gnatsym.adb: Adapt to modification of package Symbols: procedure
19010         Process is now in package Processing.
19011
19012         * symbols.ads, symbols.adb:
19013         (Processing): New package, containing procedure Process
19014
19015         * symbols-vms-alpha.adb:
19016         Replaced by symbols-vms.adb and symbols-processing-vms-alpha.adb
19017
19018         * symbols-vms.adb, symbols-processing-vms-alpha.adb,
19019         symbols-processing-vms-ia64.adb: New files.
19020
19021 2005-06-14  Pascal Obry  <obry@adacore.com>
19022
19023         * mlib-tgt-mingw.adb (Build_Dynamic_Library): Replace the previous
19024         implementation. This new version generates the proper DllMain routine
19025         to initialize the SAL. The DllMain is generated in Ada and compiled
19026         before being added as option to the library build command.
19027
19028 2005-06-14  Doug Rupp  <rupp@adacore.com>
19029             Pascal Obry  <obry@adacore.com>
19030
19031         * adaint.c (__gnat_to_canonical_file_spec): Check for error returns in
19032         call to decc$translate_vms.
19033         (__gnat_locate_regular_file): Check if the path_val contains quotes. We
19034         need to remove those quotes before catenating the filename.
19035         (__gnat_locate_exec_on_path): improvements to the Win32 section:
19036         * avoid allocating the memory twice for better efficiency;
19037         * allocate 32K buffer for environment expansion as suggested by MSDN;
19038         * prepend ".;" to the path so that current directory is searched too.
19039
19040 2005-06-14  Robert Dewar  <dewar@adacore.com>
19041
19042         * a-except.adb (Exception_Identity): return Null_Id for null occurrence
19043         instead of raising CE (AI-241)
19044         Add warnings off to allow categorization violations for AI-362
19045
19046 2005-06-14  Robert Dewar  <dewar@adacore.com>
19047
19048         * ali-util.adb, gnatbind.adb: Remove references to
19049         Force_RM_Elaboration_Order.
19050
19051         * switch-b.adb: Remove recognition of -f switch
19052
19053 2005-06-14  Pascal Obry  <obry@adacore.com>
19054
19055         * a-stzunb.adb, a-stwiun.adb, a-strunb.adb (Realloc_For_Chunk): New
19056         implementation which is slightly more efficient.
19057
19058 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
19059             Javier Miranda  <miranda@adacore.com>
19060             Ed Schonberg  <schonberg@adacore.com>
19061             Hristian Kirtchev  <kirtchev@adacore.com>
19062
19063         * exp_ch4.adb (Expand_Allocator_Expression): When an initialized
19064         allocator's designated type is a class-wide type, and compiling for
19065         Ada 2005, emit a run-time check that the accessibility level of the
19066         type given in the allocator's expression is not deeper than the level
19067         of the allocator's access type.
19068
19069         (Tagged_Membership): Modified to gives support to abstract interface
19070         types.
19071
19072         * a-tags.ads, a-tags.adb (type Type_Specific_Data): Add component
19073         Access_Level.
19074         (Descendant_Tag): New predefined function
19075         (Is_Descendant_At_Same_Level): New predefined function
19076         (Get_Access_Level): New private function
19077         (Set_Access_Level): New private procedure
19078         (IW_Membership): New function. Given the tag of an object and the tag
19079         associated with an interface, evaluate if the object implements the
19080         interface.
19081         (Register_Interface_Tag): New procedure used to initialize the table of
19082         interfaces used by the IW_Membership function.
19083         (Set_Offset_To_Top): Initialize the Offset_To_Top field in the prologue
19084         of the dispatch table.
19085         (Inherit_TSD): Modified to copy the table of ancestor tags plus the
19086         table of interfaces of the parent.
19087         (Expanded_Name): Raise Tag_Error if the passed tag equals No_Tag.
19088         (External_Tag): Raise Tag_Error if the passed tag equals No_Tag.
19089         (Parent_Tag): Return No_Tag in the case of a root-level tagged type,
19090         and raise Tag_Error if the passed tag equalis No_Tag, to conform with
19091         Ada 2005 semantics for the new predefined function.
19092
19093         * exp_attr.adb (Expand_N_Attribute, case Attribute_Input): Generate
19094         call to Descendant_Tag rather than Internal_Tag.
19095         (Expand_N_Attribute, case Attribute_Output): Emit a check to ensure that
19096         the accessibility level of the attribute's Item parameter is not deeper
19097         than the level of the attribute's prefix type. Tag_Error is raised if
19098         the check fails. The check is only emitted for Ada_05.
19099         (Find_Stream_Subprogram): If a TSS exists on the type itself for the
19100         requested stream attribute, use it.
19101         (Expand_N_Attribute_Reference): If the designated type is an interface
19102         then rewrite the referenced object as a conversion to force the
19103         displacement of the pointer to the secondary dispatch table.
19104         (Expand_N_Attribute_Reference, case 'Constrained): Return false if this
19105         is a dereference of an object with a constrained partial view.
19106
19107         * exp_ch5.adb (Expand_N_Return_Statement): When a function's result
19108         type is a class-wide type, emit a run-time check that the accessibility
19109         level of the returned object is not deeper than the level of the
19110         function's master (only when compiling for Ada 2005).
19111
19112         * exp_disp.ads, exp_disp.adb (Ada_Actions, Action_Is_Proc,
19113         Action_Nb_Arg): Add entries for new Get_Access_Level and
19114         Set_Access_Level routines in these tables.
19115         (Make_DT): Generate a call to set the accessibility level of the
19116         tagged type in its TSD.
19117         (Make_DT): Code cleanup. The functionality of generating all the
19118         secondary dispatch tables has been moved to freeze_record_type.
19119         (Make_Abstract_Interface_DT): Minor code cleanup.
19120         (Set_All_DT_Position): Code cleanup. As part of the code cleanup
19121         this subprogram implements a new algorithm that provides the
19122         same functionality and it is more clear in case of primitives
19123         associated with abstract interfaces.
19124         (Set_All_Interfaces_DTC_Entity): Removed. As part of the code
19125         clean up, the functionality of this subprogram is now provided
19126         by Set_All_DT_Position.
19127         (Write_DT): New subprogram: a debugging procedure designed to be called
19128         within gdb to display the dispatch tables associated with a tagged
19129         type.
19130         (Collect_All_Interfaces): New subprogram that collects the whole list
19131         of interfaces that are directly or indirectly implemented by a tagged
19132         type.
19133         (Default_Prim_Op_Position): New subprogram that returns the fixed
19134         position in the dispatch table of the default primitive operations.
19135         (Expand_Interface_Actuals): New subprogram to generate code that
19136         displaces all the actuals corresponding to class-wide interfaces to
19137         reference the interface tag of the actual object.
19138         (Expand_Interface_Conversion): New subprogram. Reference the base of
19139         the object to give access to the interface tag associated with the
19140         secondary dispatch table.
19141         (Expand_Interface_Thunk): New subprogram that generates the code of the
19142         thunk. This is required for compatibility with the C+ ABI.
19143         (Make_Abstract_Interface_DT): New subprogram that generate the
19144         declarations for the secondary dispatch tables associated with an
19145         abstract interface.
19146         (Set_All_Interfaces_DTC_Entity): New subprogram that sets the DTC_Entity
19147         attribute for each primitive operation covering interface subprograms
19148         (Expand_Dispatching_Call, Fill_DT_Entry, Make_DT, Set_All_DT_Position):
19149         These subprograms were upgraded to give support to abstract interfaces
19150
19151         * rtsfind.ads (type RE_Id): Add RE_Descendant_Tag,
19152         RE_Is_Descendant_At_Same_Level, RE_Get_Access_Level, and
19153         RE_Set_Access_Level.
19154         (RE_Unit_Table): Add entries for new Ada.Tags operations.
19155         Add support to call the followig new run-time subprograms:
19156         IW_Membership, Register_Interface_Tag, and Set_Offset_To_Top
19157
19158         * sem_ch3.adb (Constant_Redeclaration): Allow a deferred constant to
19159         match its full declaration when both have an access definition with
19160         statically matching designated subtypes.
19161         (Analyze_Component_Declaration): Delete commented out code that was
19162         incorrectly setting the scope of an anonymous access component's type.
19163         (Process_Discriminants): Set Is_Local_Anonymous_Access for the type of
19164         an access discriminant when the containing type is nonlimited.
19165         (Make_Incomplete_Type_Declaration): Create an incomplete type
19166         declaration for a record type that includes self-referential access
19167         components.
19168         (Check_Anonymous_Access_Types): Before full analysis of a record type
19169         declaration, create anonymous access types for each self-referential
19170         access component.
19171         (Analyze_Component_Declaration, Array_Type_Declaration): Indicate that
19172         an access component in this context is a Local_Anonymous_Access, for
19173         proper accessibility checks.
19174         (Access_Definition): Set properly the scope of the anonymous access type
19175         created for a stand-alone access object.
19176         (Find_Type_Of_Object): An object declaration may be given with an access
19177         definition.
19178         (Complete_Subprograms_Derivation): New subprogram used to complete
19179         type derivation of private tagged types implementing interfaces.
19180         In this case some interface primitives may have been overriden
19181         with the partial-view and, instead of re-calculating them, they
19182         are included in the list of primitive operations of the full-view.
19183         (Build_Derived_Record_Type): Modified to give support to private
19184         types implemening interfaces.
19185         (Access_Definition): Reject ALL on anonymous access types.
19186         (Build_Derived_Record_Type): In the case of Ada 2005, allow a tagged
19187         type derivation to occur at a deeper accessibility level than the
19188         parent type.
19189         For the case of derivation within a generic body however, disallow the
19190         derivation if the derived type has an ancestor that is a formal type
19191         declared in the formal part of an enclosing generic.
19192         (Analyze_Object_Declaration): For protected objects, remove the check
19193         that they cannot contain interrupt handlers if not declared at library
19194         level.
19195         (Add_Interface_Tag_Components): New subprogram to add the tag components
19196         corresponding to all the abstract interface types implemented by a
19197         record type or a derived record type.
19198         (Analyze_Private_Extension_Declaration, Build_Derived_Record_Type,
19199         Derived_Type_Declaration, Find_Type_Name, Inherit_Components,
19200         Process_Full_View, Record_Type_Declaration): Modified to give
19201         support to abstract interface types
19202         (Collect_Interfaces): New subprogram that collects the list of
19203         interfaces that are not already implemented by the ancestors
19204         (Process_Full_View): Set flag Has_Partial_Constrained_View appropriately
19205         when partial view has no discriminants and full view has defaults.
19206         (Constrain_Access): Reject a constraint on a general access type
19207         if the discriminants of the designated type have defaults.
19208         (Access_Subprogram_Declaration): Associate the Itype node with the inner
19209         full-type declaration or subprogram spec. This is required to handle
19210         nested anonymous declarations.
19211         (Analyze_Private_Extension_Declaration, Build_Derived_Record_Type,
19212         Derived_Type_Declaration, Find_Type_Name, Inherit_Components,
19213         Process_Full_View, Record_Type_Declaration): Modified to give
19214         support to abstract interface types
19215         (Derive_Subprograms): Addition of a new formal to indicate if
19216         we are in the case of an abstact-interface derivation
19217         (Find_Type_Of_Subtype_Indic): Moved from the body of the package
19218         to the specification because it is requied to analyze all the
19219         identifiers found in a list of interfaces
19220
19221         * debug.adb: Complete documentation of flag "-gnatdZ"
19222
19223         * exp_ch3.adb: Implement config version of persistent_bss pragma
19224         (Check_Stream_Attributes): Use Stream_Attribute_Available instead of
19225         testing for TSS presence to properly enforce visibility rules.
19226         (Freeze_Record_Type): Code cleanup. Modified to call the subprogram
19227         Make_Abstract_Interfaces_DT to generate the secondary tables
19228         associated with abstract interfaces.
19229         (Build_Init_Procedure): Modified to initialize all the tags
19230         corresponding.
19231         (Component_Needs_Simple_Initialization): Similar to other tags,
19232         interface tags do not need initialization.
19233         (Freeze_Record_Type): Modified to give support to abstract interface
19234         types.
19235         (Expand_N_Object_Declaration): Do not generate an initialization for
19236         a scalar temporary marked as internal.
19237
19238         * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): Handle properly an
19239         in-out parameter that is a component in an initialization procedure,
19240         whose constraint might depend on discriminants, and that may be
19241         misaligned because of packing or representation clauses.
19242         (Is_Legal_Copy): New predicate to determine whether a possibly
19243         misaligned in-out actual can actually be passed by copy/return. This
19244         is an error in case the type is by_reference, and a warning if this is
19245         the consequence of a DEC import pragma on the subprogram.
19246         (Expand_Call, Freeze_Subprogram): Modified to give support to abstract
19247         interface types
19248         (Expand_Inlined_Call): Mark temporary generated for the return value as
19249         internal, so that no useless scalar normalization is generated for it.
19250         (Expand_N_Subprogram_Declaration): Save unanalyzed body so calls to
19251         null procedure can always be inlined.
19252         (Expand_N_Subprogram_Declaration): If this is the declaration of a null
19253         procedure, generate an explicit empty body for it.
19254
19255         * exp_util.ads, exp_util.adb (Find_Interface_ADT): New subprogram.
19256         Given a type implementing an interface, returns the corresponding
19257         access_disp_table value.
19258         (Find_Interface_Tag): New subprogram. Given a type implementing an
19259         interface, returns the record component containing the tag of the
19260         interface.
19261         (Find_Interface_Tag): New overloaded subprogram. Subsidiary to the
19262         previous ones that return the corresponding tag and access_disp_table
19263         entities.
19264         (Is_Predefined_Dispatching_Operation): Determines if a subprogram
19265         is a predefined primitive operation.
19266         (Expand_Subtype_From_Expr): If the expression is a selected component
19267         within an initialization procedure, compute its actual subtype, because
19268         the component may depend on the discriminants of the enclosing record.
19269
19270         * i-cpp.ads, i-cpp.adb:
19271         This package has been left available for compatibility with previous
19272         versions of the frontend. As part of the new layout this is now a
19273         dummy package that uses declarations available at a-tags.ads
19274
19275         * par-ch3.adb (P_Identifier_Declarations): Give an error for use of
19276         "constant access" and "aliased [constant] access" when not compiling
19277         with -gnat05.
19278         Suppress Ada 2005 keyword warning if -gnatwY used
19279         (P_Identifier_Declarations): Add support for object declarations with
19280         access definitions.
19281         (Private_Extension_Declaration): Complete the documentation
19282         (P_Derived_Type_Def_Or_Private_Ext_Decl): Fill the inteface_list
19283         attribute in case of private extension declaration
19284         (P_Type_Declaration): Mark as "abstract" the type declarations
19285         corresponding with protected, synchronized and task interfaces
19286         (P_Declarative_Items): "not" and "overriding" are overriding indicators
19287         for a subprogram or instance declaration.
19288
19289         * sem_ch12.adb (Analyze_Subprogram_Instantiation): Verify that an
19290         instantiation that is a dispatching operation has controlling access
19291         parameters that are null excluding.
19292         Save and restore Ada_Version_Explicit, for implementation of AI-362
19293         (Validate_Derived_Type_Instance): Add check for abstract interface
19294         types.
19295         (Analyze_Formal_Package): Establish Instantiation source for the copy of
19296         the generic that is created to represent the formal package.
19297         (Analyze_Package_Instantiation): Instantiate body immediately if the
19298         package is a predefined unit that contains inlined subprograms, and
19299         we are compiling for a Configurable_Run_Time.
19300         (Instantiate_Formal_Subprogram): Indicate that null default subprogram
19301         If the program has a null default, generate an empty body for it.
19302
19303         * sem_ch6.adb, sem_ch9.adb (Analyze_Subprograms_Declaration): Update
19304         error message condition, null procedures are correctly detected now.
19305         (New_Overloaded_Entity): Bypass trivial overriding indicator check
19306         for subprograms in the context of protected types. Instead, the
19307         indicator is examined in Sem_Ch9 while analysing the subprogram
19308         declaration.
19309         (Check_Overriding_Indicator): Check consistency of overriding indicator
19310         on subprogram stubs as well.
19311         (Analyze_Subprogram_Declaration): Diagnose null procedures declared at
19312         the library level.
19313         (Analize_Subprogram_Specification): When analyzing a subprogram in which
19314         the type of the first formal is a concurrent type, replace this type
19315         by the corresponding record type.
19316         (Analyze_Subprogram_Body): Undo the previous work.
19317         (Analyze_Procedure_Call): If the call has the form Object.Op, the
19318         analysis of the prefix ends up analyzing the call itself, after which
19319         we are done.
19320         (Has_Interface_Formals): New subprogram subsidiary to analyze
19321         subprogram_specification that returns true if some non
19322         class-wide interface subprogram is found
19323         (New_Overloaded_Entity): Modified to give support to abstract
19324         interface types
19325         (Conforming_Types): In Ada 2005 mode, conformance checking of anonymous
19326         access to subprograms must be recursive.
19327         (Is_Unchecked_Conversion): Improve the test that recognizes
19328         instantiations of Unchecked_Conversion, and allows them in bodies that
19329         are to be inlined by the front-end. When the body comes from an
19330         instantiation, a reference to Unchecked_Conversion will be an
19331         Expanded_Name, even though the body has not been analyzed yet.
19332         Replace Is_Overriding and Not_Overriding in subprogram_indication with
19333         Must_Override and Must_Not_Override, to better express intent of AI.
19334         (Analyze_Subprogram_Body): If an overriding indicator is given, check
19335         that it is consistent with the overrinding status of the subprogram
19336         at this point.
19337         (Analyze_Subprogram_Declaration): Indicate that a null procedure is
19338         always inlined.
19339         If the subprogram is a null procedure, indicate that it does not need
19340         a completion.
19341
19342         * sem_disp.adb (Check_Controlling_Type): Give support to entities
19343         available through limited-with clauses.
19344         (Check_Dispatching_Operation): A stub acts like a body, and therefore is
19345         allowed as the last primitive of a tagged type if it has no previous
19346         spec.
19347         (Override_Dispatching_Operation, Check_Dispatching_Operation): Modified
19348         to give support to abstract interface types
19349
19350         * sem_res.adb (Valid_Conversion): Perform an accessibility level check
19351         in the case where the target type is an anonymous access type of an
19352         object or component (that is, when Is_Local_Anonymous_Access is true).
19353         Prevent the special checks for conversions of access discriminants in
19354         the case where the discriminant belongs to a nonlimited type, since
19355         such discriminants have their accessibility level defined in the same
19356         way as a normal component of an anonymous access type.
19357         (Resolve_Allocator): When an allocator's designated type is a class-wide
19358         type, check that the accessibility level of type given in the
19359         allocator's expression or subtype indication is not statically deeper
19360         than the level of the allocator's access type.
19361         (Check_Discriminant_Use): Diagnose discriminant given by an expanded
19362         name in a discriminant constraint of a record component.
19363         (Resolve_Explicit_Dereference): Do not check whether the type is
19364         incomplete when the dereference is a use of an access discriminant in
19365         an initialization procedure.
19366         (Resolve_Type_Conversion): Handle conversions to abstract interface
19367         types.
19368         (Valid_Tagged_Conversion): The conversion of a tagged type to an
19369         abstract interface type is always valid.
19370         (Valid_Conversion): Modified to give support to abstract interface types
19371         (Resolve_Actuals): Enable full error reporting on view conversions
19372         between unrelated by_reference array types.
19373         The rule for view conversions of arrays with aliased components is
19374         weakened in Ada 2005.
19375         Call to obsolescent subprogram is now considered to be a violation of
19376         pragma Restrictions (No_Obsolescent_Features).
19377         (Check_Direct_Boolean_Operator): If the boolean operation has been
19378         constant-folded, there is nothing to check.
19379         (Resolve_Comparison_Op, Resolve_Equality_Op, Resolve_Boolean_Op): Defer
19380         check on possible violation of restriction No_Direct_Boolean_Operators
19381         until after expansion of operands, to prevent spurious errors when
19382         operation is constant-folded.
19383
19384         * sem_type.ads, sem_type.adb (Covers, Intersect_Types, Specific_Type,
19385         Has_Compatible_Type): Modified to give support to abstract interface
19386         types.
19387         (Interface_Present_In_Ancestor): New function to theck if some ancestor
19388         of a given type implements a given interface
19389
19390         * sem_ch4.adb (Analyze_Call): Handle properly an indirect call whose
19391         prefix is a parameterless function that returns an access_to_procedure.
19392         (Transform_Object_Operation): Handle properly function calls of the
19393         form Obj.Op (X), which prior to analysis appear as indexed components.
19394         (Analyze_One_Call): Complete the error notification to help new Ada
19395         2005 users.
19396         (Analyze_Allocator): For an allocator without an initial value, where
19397         the designated type has a constrained partial view, a discriminant
19398         constraint is illegal.
19399
19400 2005-06-14  Robert Dewar  <dewar@adacore.com>
19401
19402         * a-textio.adb (Set_Col): Fix two errors noticed recently, having to
19403         do with treatment of Set_Col when positioned at end of line character.
19404
19405 2005-06-14  Robert Dewar  <dewar@adacore.com>
19406
19407         * atree.adb: (Elist*): Protect against uninitialized field
19408
19409 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
19410
19411         * checks.adb (Install_Null_Excluding_Check): Do not generate checks
19412         for an attribute reference that returns an access type.
19413         (Apply_Discriminant_Check): No need for check if (designated) type has
19414         constrained partial view.
19415
19416         (Apply_Float_Conversion_Check): Generate a short-circuit expression for
19417         both bound checks, rather than a conjunction.
19418         (Insert_Valid_Check): If the expression is an actual that is an indexed
19419         component of a bit-packed array, force expansion of the packed element
19420         reference, because it is specifically inhibited elsewhere.
19421
19422 2005-06-14  Vincent Celier  <celier@adacore.com>
19423
19424         * clean.adb (Clean_Project): Correctly delete executable specified as
19425         absolute path names.
19426
19427         * make.adb (Gnatmake): Allow relative executable path names with
19428         directory information even when project files are used.
19429         (Change_To_Object_Directory): Fail gracefully when unable to change
19430         current working directory to object directory of a project.
19431         (Gnatmake): Remove exception handler that could no longer be exercized
19432         (Compile_Sources.Compile): Use deep copies of arguments, as some of them
19433         may be deallocated by Normalize_Arguments.
19434         (Collect_Arguments): Eliminate empty arguments
19435
19436         * gnatcmd.adb (All_Projects): New Boolean flag, initialized to False,
19437         and set to True when -U is used for GNAT PRETTY or GNAT METRIC.
19438         (Check_Project): Return False when Project is No_Project. Return True
19439         when All_Projects is True.
19440         (GNATCmd): Recognize switch -U for GNAT PRETTY and GNAT METRIC and set
19441         All_Projects to True.
19442         Minor reformatting
19443
19444 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
19445             Javier Miranda  <miranda@adacore.com>
19446             Thomas Quinot  <quinot@adacore.com>
19447             Robert Dewar  <dewar@adacore.com>
19448             Hristian Kirtchev  <kirtchev@adacore.com>
19449             Gary Dismukes  <dismukes@adacore.com>
19450
19451         * einfo.ads, einfo.adb (Is_Local_Anonymous_Access): New flag on
19452         anonymous access types, to indicate that the accessibility level of
19453         the type is determined by that of the enclosing declaration.
19454         (Has_Persistent_BSS): New flag
19455         (Set_Is_Primitive_Wrapper): Upgrade the barrier to allow the usage
19456         of this attribute with functions.
19457         (Is_Primitive_Wrapper): Remove the barrier.
19458         (Has_Specified_Stream_Input, Has_Specified_Stream_Output,
19459         Has_Specified_Stream_Read, Has_Specified_Stream_Write):
19460         New subprograms.
19461         (Set_Has_Specified_Stream_Input, Set_Has_Specified_Stream_Output,
19462         Set_Has_Specified_Stream_Read, Set_Has_Specified_Stream_Write):
19463         New subprograms.
19464         (Is_Pure_Unit_Access_Type): New flag
19465         (Abstract_Interfaces): Complete the assertion to cover all usages.
19466         (Set_Is_Interface): Complete the assertion to cover all usages.
19467         (Is_Primitive_Wrapper): New attribute.
19468         (Is_Obsolescent): Now applies to all entities (though it is only set
19469         for subprograms currently)
19470         New flag:  Has_Constrained_Partial_View, to implemente Ada 2005 AI-363,
19471         which solves various problems concerning access subtypes.
19472         (Has_Persistent_BSS): New flag
19473         (Is_Primitive_Wrapper, Set_Primitive_Wrapper): Code cleanup.
19474         Remove these subprograms because this attribute is currently
19475         not used.
19476         New entity flags:
19477         Has_Specified_Stream_Input (Flag190)
19478         Has_Specified_Stream_Output (Flag191)
19479         Has_Specified_Stream_Read (Flag192)
19480         Has_Specified_Stream_Write (Flag193)
19481         Present in all type and subtype entities. Set for a given view if the
19482         corresponding stream-oriented attribute has been defined by an
19483         attribute definition clause. When such a clause occurs, a TSS is set
19484         on the underlying full view; the flags are used to track visibility of
19485         the attribute definition clause for partial or incomplete views.
19486         (Is_Pure_Unit_Access_Type): New flag
19487         Clarify use of Is_Internal.
19488         (Is_Primitive_Wrapper): New attribute present in primitive subprograms
19489         internally generated to wrap the invocation of tasks and protected
19490         types that implement interfaces.
19491         (Implementation_Base_Type): Documentation correction
19492         (Is_Obsolescent): Now applies to all entities (though it is only set
19493         for subprograms currently)
19494         New flag:  Has_Constrained_Partial_View, to implement Ada 2005 AI-363,
19495         which solves various problems concerning access subtypes.
19496
19497         * exp_ch9.adb (Type_Conformant_Parameters): Introduce mode conformance
19498         for examined parameters. Identify unequal parameter list lengths as
19499         non-conformant parameters.
19500         (Overriding_Possible): Do not check for "All" qualifier in declaration
19501         of controlling access parameter, following prescription of AI-404.
19502         (Build_Entry_Wrapper_Spec, Build_Entry_Wrapper_Body): New subprograms
19503         that build the procedure body that wraps an entry invocation
19504         (Build_Corresponding_Record, Build_Protected_Sub_Specification,
19505         Expand_N_Protected_Body, Expand_N_Protected_Type_Declaration,
19506         Expand_N_Task_Body, Expand_N_Task_Type_Declaration): Modified to
19507         give support to abstract interface types
19508
19509         * freeze.adb (Freeze_Entity): Issue error message if
19510         Is_Pure_Unit_Access_Type set, unless we are in Ada 2005 mode and the
19511         type has no storage pool (Ada 2005) AI-366.
19512         Also modified to give support to abstract interface types
19513         (Freeze_Subprogram): Issue an error for a dispatching subprogram with an
19514         Inline_Always pragma.
19515
19516         * par-ch9.adb (P_Task_Items): Reserved words "not" or "overriding" may
19517         now begin an entry declaration.
19518         (P_Entry_Or_Subprogram_With_Indicator): New procedure in
19519         P_Protected_Operation_Declaration_Opt. Parse an entry declaration or
19520         a subprogram declaration preceded by an overriding indicator.
19521         (P_Protected_Operation_Declaration_Opt): Add case for parsing entry
19522         declarations or subprogram declarations preceded by reserved words
19523         "not" or "overriding".
19524         (P_Entry_Declaration): Update comment. Parse and check overriding
19525         indicator, set semantic flags of entry declarations.
19526         (P_Task): New error message in case of private applied
19527         to a task type declaration.
19528         (P_Protected): New error message in case of private applied
19529         to a task type declaration.
19530
19531         * sem_ch7.adb (Preserve_Full_Attributes): Modified to handle the case
19532         in which the full view of a type implementing an interface is a
19533         concurrent type.
19534         (Has_Overriding_Pragma): Remove obsolete implementation of AI-218.
19535         Declare_Inherited_Private_Subprograms): If an explicit operation
19536         overrides an operation that is inherited in the private part, mark the
19537         explicit one as overriding, to enable overriding indicator checks.
19538         (Preserve_Full_Attributes): Propagate Is_Unchecked_Union attribute from
19539         full view to partial view, to simplify handling in back-end.
19540
19541         * sprint.adb: Print interface lists where needed: derived types,
19542         protected types, task types.
19543         output "is null" for null procedures. Part of implementation of
19544
19545         * sem_cat.adb (Validate_Access_Type_Declaration): Implement AI-366
19546         relaxation of rules for access types in pure, shared passive partitions.
19547
19548         * exp_strm.adb (Build_Mutable_Record_Read_Procedure): Reorganize to
19549         first read discriminants into temporary objects, performing checks on
19550         the read values, then possibly performing discriminant checks on the
19551         actual (if it is constrained), and only finally reading the components
19552         into a constrained temporary object.
19553         (Build_Elementary_Input_Call): Adjust the specific circuitry for the
19554         case of reading discriminants of a mutable record type to recognize
19555         the new form of the code generated by
19556         Build_Mutable_Record_Read_Procedure.
19557
19558         * exp_tss.ads, exp_tss.adb (Make_Init_Proc_Name): Reimplement in terms
19559         of a simple call to Make_TSS_Name.
19560         (Make_TSS_Name_Local): Add the TSS name as the last thing in the name
19561         buffer, in order for Is_TSS to work correctly on local TSS names.
19562
19563         * sem_attr.ads, sem_attr.adb (Resolve_Attribute, case 'Access): Use flag
19564         Is_Local_Anonymous_Access to check legaliy of attributes in the
19565         context of  access components and stand-alone access objects.
19566         (Stream_Attribute_Available): In Ada 95 mode, a stream attribute is
19567         treated as available for a limited private type if there is an
19568         attribute_definition_clause that applies to its full view, but not in
19569         other cases where the attribute is available for the full view
19570         (specifically, the sole fact that the full view is non-limited does not
19571         make the attribute available for the partial view).
19572         (Build_Access_Subprogram_Type): Diagnose attempt to apply 'access to a
19573         non-overloaded intrinsic subprogram.
19574         (Check_Stream_Attribute): Reject an attribute reference for an
19575         unavailable stream attribute even if the prefix is not a limited type
19576         (case of a 'Input attribute reference for an abstract, non-classwide
19577         type)
19578         (Stream_Attribute_Available): New function to determine whether a stream
19579         attribute is available at a place.
19580         (Check_Attribute): Use Stream_Attribute_Available instead of just
19581         testing for TSS presence on the implementation base type.
19582         (Analyze_Attribute): Modified to give support to task interfaces.
19583         (Analyze_Access_Attribute): Add error check for use of an Access (or
19584         Unrestricted_Access) attribute with a subprogram marked as
19585         Inline_Always.
19586         (Analyze_Attribute, case Attribute_Address): Add error check for use of
19587         an Address attribute with a subprogram marked as Inline_Always.
19588         Update Eval_Attribute to handle new value of Width from AI-395
19589
19590         * sem_ch13.adb (Analyze_Stream_TSS_Definition): New subprogram.
19591         (Analyze_Attribute_Definition_Clause, cases Input, Output, Read, Write):
19592         Factor common code across the stream-oriented attribute circcuits into
19593         a new subprogram, Analyze_Stream_TSS_Definition. The new uniform
19594         processing is functionally identical to the previous duplicated one,
19595         except that an expression that denotes an abstract subprogram will now
19596         be rejected, as mandated by AI-195 item 5.
19597
19598         * sem_util.ads, sem_util.adb (Type_Access_Level): Use flag
19599         Is_Local_Anonymous_Access to apply accessibility checks to access
19600         components and stand-alone access objects.
19601         (Has_Discriminant_Dependent_Constraint): Moved to spec for use
19602         elsewhere.
19603         (Is_Potentially_Persistent_Type): New function
19604         (Is_Dependent_Component_Of_Mutable_Object): If the enclosing object is
19605         a heap-object whose type has a constrained partial view, the object is
19606         unconstrained and the component may depend on a discriminant, making its
19607         renaming illegal.
19608
19609         * sinfo.ads, sinfo.adb
19610         (Must_Not_Override): Flag applicable to N_Entry_Declaration.
19611         (Must_Override): Flag applicable to N_Entry_Declaration.
19612         Indicate that interface_list can appear in single task and single
19613         protected declarations.
19614         Replace Is_Overriding and Not_Overriding with Must_Override and
19615         Must_Not_Override, to better express intent of AI.
19616         Is_Overriding, Not_Overriding: Ada2005 flags that indicate the presence
19617         of an overriding indicator in a subprogram or instance.
19618         Ada 2005 (AI-248) Null_Present can appear in a procedure specification.
19619         Add the overriding indicator [[not] overriding] construct to the
19620         following grammar productions:
19621          ENTRY_DECLARATION
19622          GENERIC_INSTANTIATION
19623          SUBPROGRAM_SPECIFICATION
19624
19625         * par-ch10.adb (P_Compilation_Unit): Subprogram declaration or body
19626         can start with an overriding indicator.
19627
19628         * par-ch6.adb (P_Subprogram): Recognize overriding indicator, and set
19629         flags accordingly on subrogram specifications or instances.
19630
19631         * sem_ch8.adb:
19632         (Analyze_Subprogram_Renaming): For a renaming_as_body, verify that the
19633         overriding_indicator, if present, is consistent with status of spec.
19634         Improve error message for null-excluding checks on controlling access
19635         parameters.
19636         (Check_In_Previous_With_Clause): Protect the frontend against
19637         previously reported critical errors in the context clauses.
19638         Save and restore Ada_Version_Explicit, for implementation of AI-362
19639         (Analyze_Subprogram_Renaming): If the new entity is a dispatching
19640         operation verify that controlling formals of the renamed entity that
19641         are access parameters are explicitly non-null.
19642         (Find_Expanded_Name): Improve error message when prefix is an illegal
19643         reference to a private child unit.
19644
19645         * exp_imgv.adb, s-imgwch.ads, s-imgwch.adb, s-valwch.adb,
19646         s-valwch.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb, s-wwdwch.adb:
19647         Rewrite to correspond to new wide character names in AI-395
19648
19649         * par-ch12.adb (P_Formal_Subprogram_Declaration): Recognize null
19650         default procedures.
19651
19652 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
19653             Robert Dewar  <dewar@adacore.com>
19654
19655         * errout.ads, errout.adb (Error_Msg_NW): Only emit warning on user
19656         code, not on the bodies of predefined operations, to cut down on
19657         spurious noise.
19658
19659 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
19660
19661         * exp_aggr.adb (Aggr_Size_OK): An array with no components can always
19662         be expanded in place. The size computation does not require a
19663         subtraction, which would raise an exception on a compiler built with
19664         assertions when the upper bound is Integer'first.
19665         (Flatten): For an array of composite components, take into account the
19666         size of the components to determine whether it is safe to expand the
19667         array into a purely positional representation.
19668
19669 2005-06-14  Thomas Quinot  <quinot@adacore.com>
19670
19671         * exp_ch2.adb (Param_Entity): Take the case of an expanded_name
19672         denoting a formal parameter into account.
19673
19674 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
19675
19676         * exp_ch7.adb (Find_Node_To_Be_Wrapped): If the node appears within
19677         the entry_call alternative of a conditional entry call, wrap the
19678         conditional entry call itself.
19679
19680 2005-06-14  Nicolas Setton  <setton@adacore.com>
19681             Ed Schonberg  <schonberg@adacore.com>
19682
19683         * exp_dbug.ads, exp_dbug.adb (Get_Variant_Part): Fix the encoding of
19684         the "simple_choice" member in a variant record, in accordance with the
19685         description in the package spec: the information output for a constant
19686         should be "S number", not "SS number".
19687         (Get_Encoded_Name): Return at once if not generating code. Avoids name
19688         overflow problem when compiling with -gnatct, for ASIS/gnatmetrics.
19689
19690 2005-06-14  Thomas Quinot  <quinot@adacore.com>
19691
19692         * exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): For an
19693         RACW without any primitives, do not generate the if statement for
19694         dispatching by name in the PolyORB/DSA case, as it would be malformed
19695         (it would have an Elsif_Parts list that is not No_List, but with a
19696         length of 0).
19697
19698 2005-06-14  Robert Dewar  <dewar@adacore.com>
19699
19700         * exp_intr.adb, par-ch5.adb: Minor fix to error message text
19701
19702 2005-06-14  Jose Ruiz  <ruiz@adacore.com>
19703
19704         * fe.h: Add entry for Opt.Exception_Locations_Suppressed so that gigi
19705         can determine whether pragma Suppress_Exception_Locations is in effect.
19706
19707         * utils2.c (build_call_raise): Do not pass the file name to the
19708         exception handler if pragma Suppress_Exception_Locations is in effect.
19709         (build_allocator): Add and process arg IGNORE_INIT_TYPE.
19710
19711 2005-06-14  Emmanuel Briot  <briot@adacore.com>
19712
19713         * g-debpoo.adb (Deallocate, Dereference): Improve output.
19714
19715 2005-06-14  Nicolas Roche  <roche@adacore.com>
19716
19717         * g-diopit.adb (Wildcard_Iterator): Return directly if Path is equal
19718         to ""
19719         (Next_Level): Fix minor bug in handling of ../dir case
19720         (Read): Add dir separator to Directory name so that "" is understood as
19721          "/"
19722
19723 2005-06-14  Pascal Obry  <obry@adacore.com>
19724
19725         * g-dynhta.ads, g-dynhta.adb (Reset): Free the table itself after
19726         releasing the items.
19727
19728 2005-06-14  Vincent Celier  <celier@adacore.com>
19729             Cyrille Comar  <comar@adacore.com>
19730
19731         * g-os_lib.ads, g-os_lib.adb (Non_Blocking_Spawn): Two new versions
19732         with output file descriptor and with output file name.
19733         (Dup, Dup2): Now global procedures as they are used by two subprograms
19734         (Copy): Allocate the 200K buffer on the heap rather than on the stack.
19735
19736 2005-06-14  Thomas Quinot  <quinot@adacore.com>
19737
19738         PR ada/6717
19739         * g-socket.ads, g-socket.adb (Inet_Addr): Special case the all-ones
19740         broadcast address.
19741         (Create_Selector): Bind listening socket used to create the signalling
19742         socket pair to 127.0.0.1 to limit the scope for 'theft' of connection.
19743         Set listen backlog to 1 to ensure that we detect socket theft by a
19744         failure of our own connect(2) call.
19745         (Check_Selector): Improve documentation of the selector mechanism.
19746         (Broadcast_Inet_Addr): New constant.
19747
19748 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
19749
19750         * layout.adb (Discrimify): Remove resetting of Vtype to the underlying
19751         type which turns out to be an incomplete and incorrect fix.
19752         (Layout_Array_Type): Use Underlying_Type when checking whether the scope
19753         of the type is declared in a record (for determination of insertion
19754         type).
19755         (SO_Ref_From_Expr): Test whether Vtype denotes a partial or full view of
19756         a private type and ensure that the primary entity is used for the type
19757         of the newly created function's V formal by taking the Etype of the
19758         view.
19759
19760 2005-06-14  Javier Miranda  <miranda@adacore.com>
19761             Jose Ruiz  <ruiz@adacore.com>
19762             Robert Dewar  <dewar@adacore.com>
19763             Ed Schonberg  <schonberg@adacore.com>
19764
19765         * lib-load.ads, lib-load.adb (Load_Unit): Addition of a new parameter
19766         that indicates if we are parsing a compilation unit found in a
19767         limited-with clause.
19768         It is use to avoid the circularity check.
19769
19770         * par.ads, par.adb (Par): Addition of a new parameter to indicate if
19771         we are parsing a compilation unit found in a limited-with clause. This
19772         is use to avoid the circularity check.
19773
19774         * par-load.adb (Load): Indicate Lib.Load_Unit if we are loading the
19775         unit as a consequence of parsing a limited-with clause. This is used
19776         to avoid the circularity check.
19777
19778         * sem_ch10.adb: Suppress Ada 2005 unit warning if -gnatwY used
19779         (Analyze_Context): Limited-with clauses are now allowed
19780         in more compilation units.
19781         (Analyze_Subunit_Context, Check_Parent): Protect the frontend
19782         againts previously reported critical errors in context clauses
19783         (Install_Limited_Withed_Unit): Code cleanup plus static detection
19784         of two further errors: renamed subprograms and renamed packages
19785         are not allowed in limited with clauses.
19786         (Install_Siblings): Do not install private_with_clauses on the package
19787         declaration for a non-private child unit.
19788         (Re_Install_Parents): When a parent of the subunit is reinstalled,
19789         reset visibility of child units properly.
19790         (Install_Withed_Unit): When a child unit appears in a with_clause of its
19791         parent, it is immediately visible.
19792
19793 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
19794             Emmanuel Briot  <briot@adacore.com>
19795
19796         * lib-xref.ads, lib-xref.adb (Generate_Definition): Treat any entity
19797         declared within an inlined body as referenced, to prevent spurious
19798         warnings.
19799         (Output_One_Ref): If an entity renames an array component, indicate in
19800         the ALI file that this aliases (renames) the array. Capture as well
19801         function renamings that rename predefined operations.
19802         Add information about generic parent for package and subprogram
19803         instances.
19804         (Get_Type_Reference): For a subtype that is the renaming of an actual in
19805         an instantiation, use the first_subtype to ensure that we don't generate
19806         cross-reference information for internal types.
19807         For objects and parameters of a generic private type, retain the '*'
19808         indicator to distinguish such an entity from its type.
19809
19810         * ali.ads (Xref_Entity_Record): New fields Iref_File_Num and Iref_Line,
19811         to store information about instantiated entities.
19812
19813         * ali.adb (Scan_ALI): Add support for parsing the reference to the
19814         generic parent
19815
19816         * xref_lib.adb (Skip_To_Matching_Closing_Bracket): New subprogram
19817         (Parse_Identifier_Info, Parse_Token): Add support for the generic parent
19818         information.
19819
19820 2005-06-10  Doug Rupp  <rupp@adacore.com>
19821             Arnaud Charlet  <charlet@adacore.com>
19822             Olivier Hainque  <hainque@adacore.com>
19823             Jose Ruiz  <ruiz@adacore.com>
19824
19825         * Make-lang.in: Add initialize.o when needed.
19826         Remove obsolete references to RT_FLAGS.
19827         Add missing dependencies for sdefault.o
19828
19829         * initialize.c: New file.
19830
19831         * init.c [VMS] Declare ADA$ externs weak to fix build problem in IVMS.
19832         [VMS] cond_signal_table: Fix problem in declaration.
19833         [VMS] __gnat_error_handler: rewrite.
19834         Move all __gnat_initialize() routines to initialize.c
19835         Specialize the former "hpux" section to "hppa hpux", as this is what the
19836         section really is here for and we now have other hpux ports that need
19837         different contents.
19838         (__gnat_adjust_context_for_raise) i386-linux: First version of this
19839         function for this target. Adjust PC by one in the machine context. This
19840         adjustment was previously done in the MD_FALLBACK_FRAME_STATE_FOR, but
19841         it is more reliable to do that in the signal handler itself.
19842         (__gnat_install_handler) i386-linux: Set SA_SIGINFO in the sigaction
19843         flags, so that the handler is passed the context structure to adjust
19844         prior to the raise.
19845         (__gnat_error_handler) i386-linux: Adjust the signature to match what a
19846         SA_SIGINFO sigaction should look like. Call
19847         __gnat_adjust_context_for_raise before actually raising. Cleanup unused
19848         Machine_State_Operations stuff.
19849         Add conditional code so that the x86_64 is also supported.
19850
19851 2005-06-14  Pascal Obry  <obry@adacore.com>
19852
19853         * mdll.adb (Get_Dll_Name): New routine that returns the DLL name given
19854         the library name.
19855
19856 2005-06-14  Robert Dewar  <dewar@adacore.com>
19857
19858         * opt.ads, opt.adb: New flags for persistent_bss mode
19859         Add Ada_Version_Explicit, for implementation of AI-362
19860         Add Assertions_Enabled_Config and associated handling
19861         Needed since setting can be changed with Assertion_Policy pragma
19862         Add new flag Warn_On_Ada_2005_Compatibility
19863
19864         * switch-c.adb: Recognize -gnatwy/Y
19865         Set Ada_Version_Explicit, for implementation of AI-362
19866         The -gnatg switch now includes -gnatyu
19867
19868         * usage.adb: Add -gnatwy/Y
19869         Remove wrong asterisk on -gnatwX line
19870         Add line for -gnatyu switch
19871
19872 2005-06-14  Vincent Celier  <celier@adacore.com>
19873
19874         * osint.adb (Add_Default_Search_Dirs): Put source and object
19875         directories of project files before directories coming from
19876         ADA_INCLUDE_PATH and ADA_OBJECTS_PATH.
19877
19878 2005-06-14  Robert Dewar  <dewar@adacore.com>
19879
19880         PR ada/15613
19881         * par-ch2.adb (Scan_Pragma_Argument): New procedure
19882         (P_Pragma): Implement RM 2.8(4) check for no pos args after named args
19883
19884 2005-06-14  Vincent Celier  <celier@adacore.com>
19885
19886         * prep.adb (Preprocess): Ignore error when scanning the first token of
19887         a line.
19888
19889 2005-06-14  Vincent Celier  <celier@adacore.com>
19890
19891         * prj-nmsc.adb (Suffix_For): Change default suffix for C++ to ".cpp"
19892         (Check_Stand_Alone_Library): If the specified reference symbol file does
19893         not exist, only issue a warning when the symbol policy is not
19894         Controlled. And, when symbol policy is Compliant, set the symbol
19895         policy to Autonomous.
19896
19897 2005-06-14  Vincent Celier  <celier@adacore.com>
19898
19899         * prj-part.adb (Pre_Parse_Context_Clause): Call Set_Is_Not_Last_In_List
19900         when the project file in a with clause is not the last one, that is the
19901         project file name is followed by a comma.
19902         * prj-pp.adb: (First_With_In_List): New Boolean global variable
19903         (Print): Issue list of project files separated by commas in with clauses
19904         according to the values returned by Is_Not_Last_In_List.
19905         * prj-tree.ads, prj-tree.adb: (Is_Not_Last_In_List): New function
19906         (Set_Is_Not_Last_In_List): New procedure
19907
19908 2005-06-14  Eric Botcazou  <ebotcazou@adacore.com>
19909
19910         * s-atacco.ads: Put a pragma No_Strict_Aliasing on Object_Pointer.
19911
19912 2005-06-14  Robert Dewar  <dewar@adacore.com>
19913
19914         * scng.adb: Add call to new Check_EOF routine
19915         (Accumulate_Checksum): Properly handle wide wide char >= 2 ** 24
19916         Add some comments regarding wide character handling
19917
19918         * style.ads, styleg.ads, styleg.adb: Implement new style switch -gnatyu
19919
19920         * stylesw.ads, stylesw.adb: Implement new style switch -gnatyu
19921
19922         * g-utf_32.ads, g-utf_32.adb (Is_UTF_32_Non_Graphic): Other_Format
19923         characters are now considered graphic characters and hence yield false
19924         in this call.
19925
19926         * nmake.adt: Modify header so that xnmake does not generate output
19927         files with multiple blank lines.
19928
19929         * treeprs.adt: Remove a blank line so that output from xtreeprs does
19930         not have an extra blank line
19931
19932 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
19933
19934         * sem_aggr.adb (Aggregate_Constraint_Checks): Apply a conversion to the
19935         expression when the component type is an anonymous access type to
19936         ensure that appropriate accessibility checks are done.
19937
19938         * sem_ch5.adb (Analyze_Assignment): Apply a implicit conversion to the
19939         expression of an assignment when the target object is of an anonymous
19940         access type. This ensures that required accessibility checks are done.
19941         (One_Bound): Move the check for type Universal_Integer to
19942         Process_Bounds.
19943         (Process_Bounds): Check whether the type of the preanalyzed range is
19944         Universal_Integer, and in that case set Typ to Integer_Type prior
19945         to setting the type of the original range and the calls to One_Bound.
19946
19947 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
19948
19949         * sem_case.adb (Expand_Others_Choice): Improve warning.
19950
19951 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
19952
19953         * sem_eval.adb (Subtypes_Statically_Match): Use discriminant
19954         constraint of full view if present, when other type is discriminated.
19955         (Eval_Relational_Op): Recognize tests of pointer values against Null,
19956         when the pointer is known to be non-null, and emit appropriate warning.
19957
19958 2005-06-14  Robert Dewar  <dewar@adacore.com>
19959             Ed Schonberg  <schonberg@adacore.com>
19960
19961         PR ada/10671
19962         * sem_prag.adb: Implement pragma Persistent_BSS
19963         Remove obsolete pragma Persistent_Data, Persistent_Object
19964         Set Ada_Version_Explicit, for implementation of AI-362
19965         Test Ada_Version_Explicit for Preelaborate_05 and Pure_05
19966         Add processing for pragma Pure_05 and Preelaborate_05
19967         Add processing for Assertion_Policy pragma
19968         Add pragma identifiers for Assert
19969         (Analyze_Pragma, case Assert): Check number of arguments
19970         (Process_Inline): Additional guard against an illegal program, where the
19971         argument of the pragma is undefined, and warnings on redundant
19972         constructs are enabled.
19973         (Analyze_Pragma, case Obsolescent): Allow an optional second argument
19974         Ada_05 to this pragma, specifying that the pragma is only active in
19975         Ada_05 mode.
19976         (Check_Arg_Order): New procedure
19977         Add appropriate calls to this procedure throughout
19978         Also throughout, check entity name before doing any other checks
19979
19980         * snames.h snames.ads, snames.adb: Add pragma Persistent_BSS
19981         Remove obsolete pragma Persistent_Data, Persistent_Object
19982         Add entries for pragma Pure_05 and Preelaborate_05
19983         Add entries for Assertion_Policy pragma and associated names
19984         Add some names for pragma argument processing
19985
19986         * tbuild.ads, tbuild.adb: (Make_Linker_Section_Pragma): New function
19987
19988 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
19989
19990         * sem_warn.adb (Warn_On_Known_Condition): If the constant expression
19991         appears within a negation (either from source or as a rewriting of
19992         inequality) adjust text of warning accordingly.
19993
19994 2005-06-14  Thomas Quinot  <quinot@adacore.com>
19995
19996         * s-strxdr.adb: Follow AI95-00132
19997
19998 2005-06-14  Arnaud Charlet  <charlet@adacore.com>
19999
20000         * s-tasren.adb (Exceptional_Complete_Rendezvous): Fix race condition.
20001
20002 2005-06-14  Arnaud Charlet  <charlet@adacore.com>
20003             Jose Ruiz  <ruiz@adacore.com>
20004
20005         * s-tposen.adb, s-tpobop.adb
20006         (Exceptional_Complete_Rendezvous): Save the occurrence and not only
20007         the exception id.
20008         (PO_Do_Or_Queue): Before queuing a task on an entry queue we check that
20009         there is no violation of the Max_Entry_Queue_Length restriction (if it
20010         has been set); Program_Error is raised otherwise.
20011         (Requeue_Call): Before requeuing the task on the target entry queue we
20012         check that there is no violation of the Max_Entry_Queue_Length
20013         restriction (if it has been set); Program_Error is raised otherwise.
20014
20015 2005-06-14  Robert Dewar  <dewar@adacore.com>
20016
20017         * styleg.adb: Fix several remaining problems in -gnatyu switch
20018         Blank line count not reset at start
20019         Scanning outside source buffer in some cases
20020         Confusing message for blanks at end of file
20021         Non-empty blank lines not recognized
20022
20023         * nmake.adt: Modify header so that xnmake does not generate output
20024         files with multiple blank lines.
20025
20026         * treeprs.adt: Remove a blank line so that output from xtreeprs does
20027         not have an extra blank line
20028
20029 2005-06-14  Sergey Rybin  <rybin@adacore.com>
20030
20031         * styleg-c.adb (Body_With_No_Spec): Remove ':' from warning message.
20032
20033 2005-06-14  Doug Rupp  <rupp@adacore.com>
20034             Vincent Celier  <celier@adacore.com>
20035
20036         * vms_conv.ads, vms_conv.adb: Remove "Library" command.
20037         Update copyright.
20038
20039         * vms_data.ads: Add entry for -gnaty/Y [NO]ADA_2005_COMPATIBILITY
20040         Remove "Library" command.
20041         Change keyword for style check -gnatyd from NOCRLF to
20042         DOS_LINE_ENDINGS.
20043         Remove useless second style check keyword NONE
20044         Remove help documentation for inexistent style check keyword
20045         RM_COLUMN_LAYOUT.
20046         Add help documentation for style check keywords DOS_LINE_ENDINGS,
20047         UNNECESSARY_BLANK_LINES and XTRA_PARENS
20048         Add UNNECESSARY_BLANK_LINES for -gnatyu
20049         Add qualifiers /ALL_PROJECTS (-U) for GNAT PRETTY and GNAT METRIC
20050
20051         * ug_words: Add entry for -gnaty/Y [NO]ADA_2005_COMPATIBILITY
20052
20053 2005-06-14  Vincent Celier  <celier@adacore.com>
20054
20055         * makegpr.adb (Compile_Link_With_Gnatmake): Invoke gnatmake with -d if
20056         gprmake was invoked with -d.
20057         (Compile_Sources): If -d was used, output the "completed ..." message
20058         for each compilation.
20059         (Scan_Arg): Recognize new switch -d
20060         When -c and at least one main is specified, set
20061         Unique_Compile to True to guarantee that no other sources will be
20062         compiled.
20063
20064 2005-06-14  Matthew Heaney  <heaney@adacore.com>
20065
20066         * a-swunha.ads, a-swunha.adb: Removed. Replaced by a-swuwha.ad[sb]
20067         * a-swuwha.ads, a-swuwha.adb: New files
20068
20069         * a-szunha.ads, a-szunha.adb: Removed, replaced by a-szuzha.ad[sb]
20070         * a-szuzha.ads, a-szuzha.adb: New files.
20071
20072         * a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb, a-crbtgk.ads,
20073         a-crbtgk.adb, a-crbltr.ads, a-coorse.ads, a-coorse.adb, a-convec.ads,
20074         a-convec.adb, a-coinve.ads, a-coinve.adb, a-cohata.ads, a-cohama.ads,
20075         a-cohama.adb, a-ciorse.ads, a-ciorse.adb, a-cihama.ads, a-cihama.adb,
20076         a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cdlili.ads,
20077         a-cdlili.adb, a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cohase.adb,
20078         a-cohase.ads, a-ciorma.ads, a-coorma.ads, a-ciormu.ads, a-coormu.ads,
20079         a-swunha.adb, a-stunha.adb, a-ciorma.adb, a-coorma.adb, a-shcain.ads,
20080         a-shcain.adb, a-chtgke.ads, a-chtgke.adb, a-stwiha.ads, a-stwiha.adb,
20081         a-strhas.adb, a-stzhas.adb: synchronized to the latest version of the
20082         Ada 2005 RM.
20083
20084 2005-06-10  Eric Botcazou  <ebotcazou@adacore.com>
20085             Olivier Hainque  <hainque@adacore.com>
20086             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20087             Pascal Obry  <obry@adacore.com>
20088
20089         * gigi.h: (build_allocator): Add arg IGNORE_INIT_TYPE.
20090
20091         * trans.c (call_to_gnu): Issue a warning for users of Starlet when
20092         making a temporary around a procedure call because of non-addressable
20093         actual parameter.
20094         (process_freeze_entity): If entity is a private type, capture size
20095         information that may have been computed for the full view.
20096         (tree_transform, case N_Allocator): If have initializing expression,
20097         check type for Has_Constrained_Partial_View and pass that to
20098         build_allocator.
20099         (tree_transform, case N_Return_Statement): Pass extra arg to
20100         build_allocator.
20101
20102         * decl.c (annotate_value): Remove early return if -gnatR is not
20103         specified.
20104         (gnat_to_gnu_field): Don't make a packable type for a component clause
20105         if the position is byte aligned, the field is aliased, and the clause
20106         size isn't a multiple of the packable alignment. It serves no useful
20107         purpose packing-wise and would be rejected later on.
20108         (gnat_to_gnu_entity, case object): Pass extra arg to build_allocator.
20109
20110         PR ada/20515
20111         (gnat_to_gnu_entity): Remove use of macro _WIN32 which is wrong in the
20112         context of cross compilers. We use TARGET_DLLIMPORT_DECL_ATTRIBUTES
20113         instead.
20114         (create_concat_name): Idem.
20115
20116 2005-06-10  Robert Dewar  <dewar@adacore.com>
20117             Eric Botcazou  <ebotcazou@adacore.com>
20118             Ben Brosgol  <brosgol@adacore.com>
20119             Cyrille Comar  <comar@adacore.com>
20120             Sergey Rybin  <rybin@adacore.com>
20121             Pascal Obry  <obry@adacore.com>
20122
20123         * gnat_rm.texi: Add documentation for pragma Persistent_BSS
20124         Document second argument (Ada_05) of pragma Obsolescent
20125         Add note that call to subprogram marked with pragma Obsolescent
20126         is now considered to be a violation of program Restrictions
20127         (No_Obsolescent_Features).
20128         (Implementation Defined Pragmas) <Machine_Attribute>: Make it clear
20129         that only machine-dependent attributes are supported.
20130
20131         * gnat_ugn.texi:
20132         Commented out menu lines and empty section for gnatclean examples
20133         Document -gnatwy/Y
20134         Fix some over long lines
20135         Clarify and enhance documentation of ADA_PROJECT_PATH.
20136         Rework section 2.11.2(3) about linking with a non-GNU compiler.
20137         Mention new switch -fcallgraph-info.
20138         Mention new switch -fstack-usage.
20139         For gnatpp, replace '-notab' with '-N' and add this option to Index
20140         Corrected VMS example.
20141         VMS keyword for style check -gnatyd is DOS_LINE_ENDINGS, no NOCRLF
20142         Minor reformatting
20143         Add documentation for -gnatyu switch (unnecessary blank lines)
20144         Document new switch -U for GNAT PRETTY and GNAT METRIC
20145         Add note about Stdcall being handled as C convention on non Windows OS.
20146         Remove some junk typo in description of gnatbind -S switch
20147         Remove reference to Extensions_Allowed pragma
20148         Document the new order of the directories to be searched (source and
20149         object directories of project files before directories in ADA_*_PATH
20150         environment variables.
20151
20152         * g-trasym.ads: Document that IRIX is supported
20153
20154 2005-06-10  Arnaud Charlet  <charlet@adacore.com>
20155
20156         * Makefile.in: Add initialize.o when needed.
20157         Adapt to new VMS package body Symbols and subunits
20158         No specialized version of a-sytaco is needed for VxWorks.
20159
20160         * a-wichun.ads, a-wichun.adb, a-zchuni.ads, a-zchuni.adb: New files.
20161         * a-zchara.ads, a-widcha.ads: New files.
20162
20163         * system-hpux-ia64.ads: New file.
20164
20165         * i-vxwork-x86.ads, i-vxwork.ads (intContext): Add this function which
20166         is imported from the VxWorks kernel.
20167
20168 2005-06-14  Robert Dewar  <dewar@adacore.com>
20169
20170         * g-soliop-mingw.ads, g-soccon-vms.adb, a-swmwco.ads, exp_smem.adb,
20171         fmap.adb, a-szmzco.ads, s-traent-vms.adb, s-traent-vms.ads,
20172         a-direio.ads, a-exctra.ads, a-exexda.adb, a-exextr.adb, a-stream.ads,
20173         s-restri.ads, s-restri.adb, s-traent.adb, s-traent.ads, a-slcain.adb,
20174         a-stzhas.ads, a-tiinau.adb, comperr.adb, exp_ch11.adb, g-boubuf.adb,
20175         g-calend.adb, g-debpoo.ads, g-moreex.ads, gprep.adb, g-regpat.ads,
20176         i-cexten.ads, i-os2thr.ads, makeutl.ads, memroot.adb, mlib-prj.adb,
20177         namet.adb, namet.ads, prj-makr.adb, prj-proc.adb, sem_dist.adb,
20178         sem_elim.ads, s-valint.adb, s-vallli.adb, s-vallli.adb, s-vallli.ads,
20179         s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads, scn.adb,
20180         s-tasinf.adb, targparm.adb, uname.adb, uname.ads, xnmake.adb,
20181         xsinfo.adb, a-direct.ads: Remove extra blank lines. Minor reformatting.
20182
20183 2005-06-14  Thomas Quinot  <quinot@adacore.com>
20184
20185         * xeinfo.adb: Fix typo in comment
20186
20187 2005-06-14  Javier Miranda  <miranda@adacore.com>
20188
20189         * repinfo.ads: Fix typo in comment
20190
20191 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
20192
20193         * s-finimp.adb (Parent_Tag): Delete this imported function (function
20194         Parent_Tag is now in the visible part of Ada.Tags).
20195         (Get_Deep_Controller): Call Ada.Tags.Parent_Tag directly instead of
20196         using imported function.
20197
20198 2005-06-14  Bernard Banner  <banner@adacore.com>
20199
20200         * vxaddr2line.adb: Add support for Windows hosted x86 vxworks. Should
20201         also apply for handling support for VxSim 653.
20202
20203 2005-06-14  Eric Botcazou  <ebotcazou@adacore.com>
20204
20205         * xsnames.adb: Add automatic generation of snames.h.
20206
20207 2005-06-14  Thomas Quinot  <quinot@adacore.com>
20208
20209         * gen-soccon.c: Add IP_MULTICAST_IF constant
20210         Minor reformatting and adjustments to prevent warnings.
20211
20212 2005-06-14  Pascal Obry  <obry@adacore.com>
20213
20214         * seh_init.c: Do not include <sys/stat.h>. This is not needed.
20215
20216 2005-06-03  Andrew Pinski  <pinskia@physics.uc.edu>
20217
20218         * trans.c (gnat_gimplify_expr): Call
20219         recompute_tree_invarant_for_addr_expr when we change
20220         the operand of the ADDR_EXPR.
20221
20222 2005-05-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20223
20224         * misc.c: Don't include errors.h.
20225
20226 2005-05-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20227
20228         * raise.c (db): Add ATTRIBUTE_PRINTF_2.
20229
20230 2005-05-29  Kazu Hirata  <kazu@cs.umass.edu>
20231
20232         * cal.c, decl.c, init.c, raise.c, trans.c, utils2.c: Fix
20233         comment typos.
20234         * gnat_rm.texi, gnat_ugn.texi: Fix typos.
20235
20236 2005-05-16  Nathanael Nerode  <neroden@gcc.gnu.org>
20237
20238         PR ada/20270
20239         * Makefile.in: Make TGT_LIB behave correctly.
20240
20241 2005-04-23  DJ Delorie  <dj@redhat.com>
20242
20243         * misc.c: Adjust warning() callers.
20244
20245 2005-04-16  Laurent Guerby  <laurent@guerby.net>
20246
20247         PR ada/18847
20248         * a-nudira.adb (Value): Check for valid string.
20249         * a-nuflra.adb (Value): Likewise.
20250
20251 2005-04-11  Richard Sandiford  <rsandifo@redhat.com>
20252
20253         * lang.opt: Refer to the GCC internals documentation instead of c.opt.
20254
20255 2005-04-10  Kazu Hirata  <kazu@cs.umass.edu>
20256
20257         * adaint.c, init.c, tracebak.c: Fix comment typos.
20258         * gnat-style.texi, gnat_rm.texi, gnat_ugn.texi: Fix typos.
20259
20260 2005-04-07  Laurent Guerby  <laurent@guerby.net>
20261             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20262
20263         * Makefile.in: Add make ifeq define for hppa linux tasking support.
20264         * system-hpux.ads: Define Signed_Zeros to be True.
20265         * system-linux-hppa.ads, s-osinte-linux-hppa.ads: New files.
20266
20267 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
20268
20269         * adaint.c, cal.c, decl.c, gigi.h, gmem.c, init.c, link.c,
20270         raise.c, tracebak.c, trans.c, utils2.c, utils.c: Fix comment
20271         typos.
20272
20273 2005-03-30  Tom Tromey  <tromey@redhat.com>
20274
20275         * decl.c (gnat_substitute_in_type): Don't handle FILE_TYPE.
20276
20277 2005-03-30  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
20278
20279         * adaint.c (_gnat_set_close_on_exec): Mark parameters unused.
20280
20281 2005-03-29  Robert Dewar  <dewar@adacore.com>
20282
20283         * sem_res.adb (Resolve_Real_Literal): Generate warning if static
20284         fixed-point expression has value that is not a multiple of the Small
20285         value.
20286
20287         * opt.ads (Warn_On_Bad_Fixed_Value): New flag
20288
20289         * s-taprop-tru64.adb (RT_Resolution): Return an integer number of
20290         nanoseconds.
20291
20292         * ug_words: Add entry for [NO_]BAD_FIXED_VALUES for -gnatwb/-gnatwB
20293
20294 2005-03-29  Vincent Celier  <celier@adacore.com>
20295
20296         * mlib-tgt-vms-ia64.adb, mlib-tgt-vms-alpha.adb
20297         (Build_Dynamic_Library.Version_String): Return the empty string when
20298         Lib_Version is empty or when the symbol policy is not Autonomous.
20299
20300         * symbols-vms-alpha.adb (Finalize): For symbol policy Compliant, when
20301         a symbol is not in the reference symbol file, increase the Major ID
20302         and set the Minor ID to 0.
20303         Use gsmatch=lequal instead of gsmatch=equal
20304
20305 2005-03-29  Doug Rupp  <rupp@adacore.com>
20306
20307         * adaint.c (__gnat_to_canonical_file_spec [VMS]): Check for logical
20308         name and translate.
20309
20310 2005-03-29  Javier Miranda  <miranda@adacore.com>
20311
20312         * a-tags.ads, a-tags.adb (Get_TSD): Subprogram removed.
20313         (Inherit_DT): The first formal has been redefined as a Tag.
20314         This allows us the removal of the subprogram Get_TSD.
20315         (TSD): Replace the call to Get_TSD by the actual code.
20316
20317         * exp_disp.ads, exp_disp.adb: Remove support to call Get_TSD.
20318         (Make_DT): Upgrade the call to Inherit_TSD according to the
20319         new interface: the first formal is now a Tag.
20320
20321         * i-cpp.ads, i-cpp.adb (CPP_Inherit_DT): The first formal has been
20322         redefined as a Tag.
20323         This change allows us to remove the subprogram Get_TSD.
20324         (CPP_Get_TSD): Subprogram removed.
20325         (TSD): Replace the call to CPP_Get_TSD by the actual code.
20326
20327         * rtsfind.ads: Remove support to call the run-time
20328         subprogram Get_TSD
20329
20330 2005-03-29  Robert Dewar  <dewar@adacore.com>
20331
20332         * errutil.adb, errout.adb:
20333         Minor comment updates on Line_Terminator references
20334
20335         * par-ch10.adb: Add ??? comment about line terminator
20336
20337         * styleg.adb (Check_Line_Terminator): Add check for new switch -gnatyd
20338         (check dos line terminator).
20339         (Check_Line_Max_Length): New procedure, split off from the existing
20340         Check_Line_Terminator routine. Separating this out allows -gnatyf to
20341         be properly recognized.
20342
20343         * styleg.adb: Add ??? comment for line terminator reference
20344
20345         * scng.adb (Check_End_Of_Line): Fix bug of -gnatyf being ignored
20346         (Check_End_Of_Line): Add -gnatyd handling (check dos line terminators)
20347
20348         * styleg.ads (Check_Line_Terminator): Add check for new switch -gnatyd
20349         (check dos line terminator).
20350         (Check_Line_Max_Length): New procedure, split off from the existing
20351         Check_Line_Terminator routine. Separating this out allows -gnatyf to
20352         be properly recognized.
20353
20354         * stylesw.ads, stylesw.adb:
20355         Add handling for new -gnatyd switch (check dos line terminator)
20356
20357         * switch-c.adb: Recognize new -gnatyd switch (check dos line terminator)
20358         Recognize -gnatwb/-gnatwB switches
20359         Include Warn_On_Bad_Fixed_Value for -gnatg
20360
20361         * usage.adb:
20362         Add line for new -gnatyd switch (check dos line terminator)
20363
20364         * usage.adb: Add lines for -gnatwb/-gnatwB
20365
20366         * vms_data.ads: Add entry for NOCRLF (-gnatyd)
20367
20368         * vms_data.ads: [NO_]BAD_FIXED_VALUES synonym for -gnatwb/-gnatwB
20369
20370         * gnat_ugn.texi: Fix overlong lines
20371         Document new -gnatyd switch
20372         Document new -gnatwb/-gnatwB switches
20373
20374 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
20375
20376         * exp_ch4.adb (Has_Unconstrained_UU_Component): Use the base type in
20377         order to retrieve the component list of the type, before examining
20378         individual components.
20379
20380         * sem_type.adb (Covers): Types are compatible if one is the base type
20381         of the other, even though their base types might differ when private
20382         views are involved.
20383
20384 2005-03-29  Thomas Quinot  <quinot@adacore.com>
20385
20386         * exp_dist.adb (Add_RAST_Features, PolyORB version): Set the From_Any,
20387         To_Any and TypeCode TSSs on RAS types directly using Set_TSS, instead
20388         of using Set_Renaming_TSS. This ensures that the TSS bodies are not
20389         analyzed if expansion is disabled (which could otherwise cause spurious
20390         error messages if expansion has been disabled due to previous
20391         (unrelated) errors).
20392
20393         * sem_prag.adb (Analyze_Pragma, case Asynchronous): If RAS expansion
20394         is disabled, the entity denoted by the argument is the access type
20395         itself, not an underlying record type, so there is no need to go back
20396         to the Corresponding_Remote_Type.
20397
20398 2005-03-29  Gary Dismukes  <dismukes@adacore.com>
20399             Robert Dewar  <dewar@adacore.com>
20400
20401         * exp_intr.adb (Expand_Dispatching_Constructor_Call): New procedure to
20402         expand a call to an instance of
20403         Ada.Tags.Generic_Dispatching_Constructor into a dispatching call to the
20404         Constructor actual of the instance. A class-wide membership
20405         check is also generated, to ensure that the tag passed to the instance
20406         denotes a type in the class.
20407         (Expand_Intrinsic_Call): Call Expand_Dispatching_Constructor in the case
20408         of Name_Generic_Dispatching_Constructor.
20409
20410         * Makefile.rtl: Add a-tgdico.ads to the list of library units (new Ada
20411         05 unit for AI-260-02).
20412
20413         * a-tgdico.ads: New file.
20414
20415         * impunit.adb (Non_Imp_File_Names_05): Add entry "a-tgdico" for new
20416         predefined Ada 05 generic unit Ada.Tags.Generic_Dispatching_Constructor.
20417
20418         * snames.ads, snames.adb (Preset_Names): Add entry for
20419         Generic_Dispatching_Constructor.
20420
20421         PR ada/20300
20422         * sem_ch8.adb (Find_Direct_Name): Go to root type for check of
20423         character type cases.
20424         (Analyze_Subprogram_Renaming): Add special handling for
20425         the case of renaming of stream attributes when the renaming denotes a
20426         generic formal subprogram association for an abstract formal subprogram.
20427         Check that the attribute is a primitive stream attribute (and not
20428         a class-wide stream attribute) and then rewrite the attribute name
20429         as the name of the appropriate compiler-generated stream primitive.
20430
20431 2005-03-29  Robert Dewar  <dewar@adacore.com>
20432
20433         * exp_util.adb (Remove_Side_Effects): Properly propagate arguments to
20434         recursive calls.
20435         (Is_Possibly_Unaligned_Object): Correct typo that
20436         resulted in inaccurate result for unaligned scalars within records.
20437
20438 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
20439
20440         * freeze.adb (Freeze_Record_Type): If the type of the component is an
20441         itype whose parent is controlled and not yet frozen, do not create a
20442         freeze node for the itype if expansion is disabled.
20443
20444 2005-03-29  Vincent Celier  <celier@adacore.com>
20445
20446         * make.adb (Gnatmake): Don't fail if the main project file is declared
20447         as having no Ada sources. Do not display message "no sources to
20448         compile" in quiet output.
20449
20450 2005-03-29  Doug Rupp  <rupp@adacore.com>
20451
20452         * Makefile.in [VMS] (EXTRA_GNATTOOLS): Add vms_help and gnat.hlp as
20453         extra tools.
20454
20455 2005-03-29  Robert Dewar  <dewar@adacore.com>
20456
20457         * par-ch12.adb (P_Generic): Give better msg for illegal private generic
20458         child.
20459
20460 2005-03-29  Robert Dewar  <dewar@adacore.com>
20461
20462         * par-ch3.adb (P_Type_Declaration): Fix bad error recovery after
20463         missing TYPE Improve the error message generated when compiling a
20464         limited interface in Ada83 or Ada95 mode.
20465
20466 2005-03-29  Robert Dewar  <dewar@adacore.com>
20467
20468         * par-ch4.adb (P_Name): When a bad attribute is returned, return error,
20469         rather than proceed ahead using a junk attribute name.
20470
20471 2005-03-29  Vincent Celier  <celier@adacore.com>
20472
20473         * prj.ads, prj.adb: (Project_Data): Add new component Display_Name
20474
20475         * prj-part.adb (Parse_Single_Project): Set the location of a project
20476         on its defining identifier, rather than on the reserved word "project".
20477
20478         * prj-proc.adb (Expression): Adapt to the fact that default of external
20479         references may be string expressions, not always literal strings.
20480         (Recursive_Process): Set Display_Name equal to Name
20481         when Location is No_Location, that is when there is no actual file.
20482         Get the Display_Name of the project from the source, when it is not a
20483         virtual project.
20484         (Process): Use the Display_Name in error messages
20485
20486         * prj-strt.adb (External_Reference): Allow default to be string
20487         expressions, not only literal strings.
20488
20489 2005-03-29  Vincent Celier  <celier@adacore.com>
20490
20491         * prj-nmsc.adb (Check_Stand_Alone_Library): Do not forbid the symbol
20492         file and the reference symbol file to be the same file.
20493
20494 2005-03-29  Thomas Quinot  <quinot@adacore.com>
20495
20496         * sem_cat.adb (Validate_Remote_Types_Type_Conversion): Perform check to
20497         forbid conversion of a local access-to-subprogram type to a remote one.
20498
20499         * sem_util.adb (Wrong_Type): For a record type that is the expanded
20500         equivalent type for a remote access-to-subprogram type, go back to the
20501         original RAS entity when displaying an error message, so the casing is
20502         the original source casing.
20503
20504 2005-03-29  Robert Dewar  <dewar@adacore.com>
20505
20506         * sem_ch11.adb (Analyze_Raise_Statement): Change message for warning
20507         on param update.
20508
20509 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
20510
20511         * sem_ch4.adb (Analyze_Selected_Component): Do not generate an actual
20512         subtype if code is being pre-analyzed, to prevent un-expanded
20513         references to protected formals, among others.
20514         (Analyze_Explicit_Dereference): If the overloaded prefix includes some
20515         interpretation that can be a call, include the result of the call as a
20516         possible interpretation of the dereference.
20517
20518         * sem_ch5.adb (Process_Bounds): Determine type of range by
20519         pre-analyzing a copy of the original range, and then analyze the range
20520         with the expected type.
20521
20522         * sem_res.adb (Check_Parameterless_Call): For an explicit dereference
20523         with an overloaded prefix where not all interpretations yield an
20524         access to subprogram, do not rewrite node as a call.
20525         (Resolve_Explicit_Dereference): Recognize the previous case and rewrite
20526         the node as a call once the context identifies the interpretation of
20527         the prefix whose call yields the context type.
20528         (Valid_Conversion): For the case of a conversion between
20529         local access-to-subprogram types, check subtype conformance using
20530         Check_Subtype_Conformant instead of Subtype_Conformant, to have a more
20531         detailed error message.
20532
20533 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
20534
20535         * sem_ch6.adb (Set_Formal_Mode): If the subtype has a non_null
20536         indicator, indicate that the formal can never be null.
20537         (Process_Formals): If a formal has a non_null indicator, insert the
20538         resulting subtype immediately before the enclosing subprogram decl,
20539         and not at the beginning of the corresponding declarative part, to
20540         prevent access before elaboration (Ada2005).
20541
20542 2005-03-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20543
20544         PR ada/19956
20545         * utils.c (finish_record_type): Use variable_size when setting sizes.
20546
20547 2005-03-29  Robert Dewar  <dewar@adacore.com>
20548
20549         * xtreeprs.adb, xnmake.adb: Use Stream_IO instead of Text_IO to
20550         guarantee Unix style line terminators for the output files, even when
20551         running on windows.
20552
20553 2005-03-29  Robert Dewar  <dewar@adacore.com>
20554
20555         * a-direct.ads, a-direct.adb (Start_Search): Free allocated search
20556         buffer if an exception is raised.
20557
20558 2005-03-29  Ed Falis  <falis@adacore.com>
20559
20560         * cio.c: Undefine putchar and getchar for VTHREADS: incompatible with
20561         VxWorks 653 1.4
20562
20563 2005-03-29  Robert Dewar  <dewar@adacore.com>
20564
20565         * sem_util.ads: Minor reformatting
20566         * gnat_rm.texi: Minor editing.
20567
20568 2005-03-29  Eric Botcazou  <ebotcazou@adacore.com>
20569
20570         * decl.c (gnat_to_gnu_entity) <E_Variable>: Rework comment.
20571         * trans.c (tree_transform) <N_Identifier>: Use correct predicates.
20572
20573 2005-03-24  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
20574
20575         * adaint.c (__gnat_portable_spawn): Adjust cast.
20576
20577 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
20578
20579         * misc.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
20580
20581 2005-03-17  Pascal Obry  <obry@adacore.com>
20582
20583         * adaint.h, adaint.c (__gnat_waitpid): Moved to expect.c where it is
20584         used.
20585
20586         * expect.c (__gnat_waitpid): Moved here from adaint.c.
20587         Reimplement under Win32 using Win32 API.
20588
20589         (__gnat_kill) [Win32]: Properly close the process handle before leaving
20590         this routine.
20591
20592 2005-03-17  Eric Botcazou  <ebotcazou@adacore.com>
20593
20594         * ada-tree.h: (DECL_RENAMING_GLOBAL_P): New predicate.
20595         (DECL_RENAMED_OBJECT): New accessor macro.
20596         (SET_DECL_RENAMED_OBJECT): New setter macro.
20597
20598         * decl.c (gnat_to_gnu_entity) <E_Variable>: Stabilize the renamed
20599         object in all cases.  Attach the renamed object to the VAR_DECL.
20600         (gnat_to_gnu_field): Do not lift the record wrapper if the size of the
20601         field is not prescribed.
20602
20603         * misc.c (gnat_handle_option): Handle -gnatO separately.
20604         (gnat_print_decl) <VAR_DECL>: New case.
20605         Print the DECL_RENAMED_OBJECT node.
20606
20607         * lang.opt:  Declare separate -gnatO option.
20608
20609         * trans.c (tree_transform) <N_Identifier>: If the object is a renaming
20610         pointer, replace it with the renamed object.
20611         <N_Validate_Unchecked_Conversion>: Warn for a conversion to a fat
20612         pointer type if the source is not a fat pointer type whose underlying
20613         array has the same non-zero alias set as that of the destination array.
20614
20615 2005-03-17  Javier Miranda  <miranda@adacore.com>
20616
20617         * a-tags.ads, a-tags.adb (Get_Expanded_Name): Removed.
20618         (Get_Inheritance_Depth): Removed.
20619         (Set_Inheritance_Depth): Removed.
20620
20621         * rtsfind.ads, exp_disp.ads, exp_disp.adb: Remove support to call the
20622         subprogram Get_Expanded_Name because it is not referenced by the
20623         frontend.
20624
20625         * i-cpp.ads, i-cpp.adb (CPP_Get_Expanded_Name): Removed.
20626         (CPP_Get_Inheritance_Depth): Removed.
20627         (CPP_Set_Inheritance_Depth): Removed.
20628
20629         * tbuild.ads, tbuild.adb (Make_DT_Component): Removed.
20630
20631 2005-03-17  Robert Dewar  <dewar@adacore.com>
20632
20633         * checks.adb (Apply_Array_Size_Check): Completely remove this for GCC
20634         3, since we now expect GCC 3 to do all the work.
20635
20636 2005-03-17  Javier Miranda  <miranda@adacore.com>
20637
20638         * einfo.adb (First_Private_Entity, Set_First_Private_Entity): Addition
20639         of one barrier to avoid wrong usage of this attribute.
20640
20641         * sem_ch12.adb (Formal_Entity): Fix erroneous usage of the attribute
20642         First_Private_Entity.
20643
20644         * sem_ch7.adb (Install_Visible_Declarations): Add a barrier to protect
20645         the subprogram against wrong usage.
20646         Adapt the code to traverse the entities in the
20647         scope of a record_type because in addition to its usage regarding
20648         packages, this subprogram is also called by Expand_N_Freeze_Entity
20649         to install the visible declarations of the enclosing scope of a
20650         record_type_with_private to establish the proper visibility before
20651         freezing the entity and related subprograms.
20652
20653 2005-03-17  Ed Schonberg  <schonberg@adacore.com>
20654
20655         * exp_ch2.adb (In_Assignment_Context): Recognize slice assignments to
20656         entry formals.
20657
20658 2005-03-17  Thomas Quinot  <quinot@adacore.com>
20659
20660         * exp_ch3.adb (Check_Attr): New subprogram.
20661         (Check_Stream_Attribute): Move the code for 13.13.2(9/1) enforcement
20662         into a new Check_Attr subprogram, in order to provide a more
20663         explanatory error message (including the name of the missing attribute).
20664         (Stream_Operation_OK): Renamed from Stream_Operations_OK. This
20665         subprogram determines whether a default implementation exists for a
20666         given stream attribute.
20667         (Make_Predefined_Primitive_Specs, Predefined_Primitive_Bodies):
20668         Determine whether to generate a default implementation for each stream
20669         attribute separately, as this depends on the specific attribute.
20670
20671         * exp_strm.adb (Make_Field_Attribute): For the case of an illegal
20672         limited extension where a stream attribute is missing for a limited
20673         component (which will have been flagged in Exp_Ch3.Sem_Attr), do not
20674         generate a bogus reference to the missing attribute to prevent
20675         cascaded errors. Instead, generate a null statement.
20676
20677         * sem_attr.adb (Check_Stream_Attribute): A stream attribute is
20678         available for a limited type if it has been specified for an ancestor
20679         of the type.
20680
20681 2005-03-17  Ed Schonberg  <schonberg@adacore.com>
20682
20683         * exp_ch6.adb (Expand_Inlined_Call): handle the case when the renamed
20684         entity is an operator.
20685
20686 2005-03-17  Thomas Quinot  <quinot@adacore.com>
20687
20688         * exp_dist.adb (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist
20689         spec, to make this predicate available to other units.
20690
20691         * rtsfind.adb (Check_RPC): Use Sem_Dist.Get_PCS_Name instead of
20692         reimplementing it.
20693
20694         * sem_ch8.adb: Disable expansion of remote access-to-subprogram types
20695         when no distribution runtime library is available.
20696
20697         * sem_res.adb, sem_dist.adb: Disable expansion of remote
20698         access-to-subprogram types when no distribution runtime library is
20699         available.
20700         (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist spec, to make this
20701         predicate available to other units.
20702
20703         * sem_dist.ads (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist
20704         spec, to make this predicate available to other units.
20705
20706 2005-03-17  Vincent Celier  <celier@adacore.com>
20707
20708         * make.adb (Insert_Project_Sources): Make sure the Q is always
20709         initialized.
20710
20711         * prj-nmsc.adb (Check_Ada_Naming_Scheme_Validity): Check Naming against
20712         the default for the tree, not the global default naming.
20713
20714         * prj-proc.adb (Recursive_Process): No need to put the default naming
20715         in the project data, it's already there.
20716
20717 2005-03-17  Doug Rupp  <rupp@adacore.com>
20718
20719         * Makefile.in: (ia64-hp-*vms*): Use s-crtl-vms64.ads.
20720
20721         * 5xcrtl.ads: Renamed to...
20722         * s-crtl-vms64.ads: ...this new file
20723
20724 2005-03-17  Robert Dewar  <dewar@adacore.com>
20725
20726         PR ada/19519
20727         * namet.adb (Copy_One_Character): Set proper wide character encoding
20728         for upper half character if we have upper half encoding.
20729
20730 2005-03-17  Robert Dewar  <dewar@adacore.com>
20731
20732         * par.adb (Par): Improved msg for attempt to recompile predefined unit
20733
20734 2005-03-17  Thomas Quinot  <quinot@adacore.com>
20735
20736         * sem_ch13.adb (New_Stream_Function, New_Stream_Procedure): For a
20737         tagged limited type, the TSS is a newly built renaming declaration:
20738         insert it using Set_TSS, not Copy_TSS.
20739
20740 2005-03-17  Javier Miranda  <miranda@adacore.com>
20741
20742         * sem_ch4.adb (Try_Primitive_Operation, Class_Wide_Operation and
20743         Try_Object_Operation): Analyze the object that is accessible
20744         through the prefix of the subprogram call before we apply
20745         the transformation of the object-operation notation.
20746
20747 2005-03-17  Jose Ruiz  <ruiz@adacore.com>
20748
20749         * s-taprob.adb (Initialize_Protection): Initialize the protected
20750         object's owner to Null_Task.
20751         (Lock): If pragma Detect_Blocking is in effect and the caller of this
20752         procedure is already the protected object's owner then Program_Error
20753         is raised. In addition the protected object's owner is updated.
20754         (Lock_Read_Only): If pragma Detect_Blocking is in effect and the caller
20755         of this procedure is already the protected object's owner then
20756         Program_Error is raised.
20757         In addition the protected object's owner is updated.
20758         (Unlock): Remove the ownership of the protected object.
20759
20760         * s-taprob.ads (Protection): Add the field Owner, used to store the
20761         protected object's owner.
20762         This component is needed for detecting one type of potentially blocking
20763         operations (external calls on a protected subprogram with the same
20764         target object as that of the protected action). Document the rest of
20765         the components.
20766
20767         * s-tposen.adb, s-tpoben.adb (Initialize_Protection_Entries):
20768         Initialize the protected object's owner to Null_Task.
20769         (Lock_Read_Only_Entries): If pragma Detect_Blocking is in effect and the
20770         caller of this procedure is already the protected object's owner then
20771         Program_Error is raised.
20772         Do not raise Program_Error when this procedure is called from a
20773         protected action.
20774         (Unlock_Entries): Remove the ownership of the protected object.
20775         (Lock_Entries): If pragma Detect_Blocking is in effect and the caller
20776         of this procedure is already the protected object's owner then
20777         Program_Error is raised.
20778         Do not raise Program_Error when this procedure is called from
20779         a protected action.
20780
20781         * s-tposen.ads, s-tpoben.ads (Protection_Entries): Add the field Owner,
20782         used to store the protected object's owner.
20783
20784         * s-tpobop.adb (Protected_Entry_Call): If pragma Detect_Blocking is in
20785         effect and this procedure (a potentially blocking operation) is called
20786         from whithin a protected action, Program_Error is raised.
20787         (Timed_Protected_Entry_Call): If pragma Detect_Blocking is in effect
20788         and this procedure (a potentially blocking operation) is called from
20789         whithin a protected action, Program_Error is raised.
20790
20791 2005-03-17  Vincent Celier  <celier@adacore.com>
20792             Nicolas Setton  <setton@adacore.com>
20793
20794         * mlib-tgt-darwin.adb (Build_Dynamic_Library): Remove the "-fini"
20795         switch, not supported by the linker on Darwin. Add '_' before
20796         <library>init, as this character is added unconditionally by the
20797         compiler.
20798         (Is_Archive_Ext): Replace the wrong library extension ".dyld" by the
20799         correct one ".dylib". This fixes detection of the archive files when
20800         building library projects.
20801
20802 2005-03-17  Vincent Celier  <celier@adacore.com>
20803
20804         * switch-m.adb (Normalize_Compiler_Switches): Recognize switches
20805         -gnat83, -gnat95 and -gnat05.
20806
20807 2005-03-17  Vasiliy Fofanov  <fofanov@adacore.com>
20808
20809         * gnat_ugn.texi: Document gnatmem restriction
20810
20811 2005-03-17  Thomas Quinot  <quinot@adacore.com>
20812
20813         * snames.adb: Document new TSS names introduced by exp_dist/exp_tss
20814         cleanup
20815
20816 2005-03-17  Robert Dewar  <dewar@adacore.com>
20817
20818         * s-interr.ads, s-interr.adb, sem_ch3.adb, prj.ads, prj.adb,
20819         a-interr.adb, a-interr.ads, s-interr-sigaction.adb, s-interr-dummy.adb,
20820         s-interr-vms.adb, s-interr-vxworks.adb: Minor reformatting
20821
20822         * casing.adb: Comment improvements
20823
20824 2005-03-17  Pascal Obry  <obry@adacore.com>
20825
20826         * g-expect.adb: Minor reformatting.
20827
20828 2005-03-15  Zack Weinberg  <zack@codesourcery.com>
20829
20830         * Make-lang.in (doc/gnat_ugn_unw.info, doc/gnat_rm.info)
20831         (doc/gnat_ugn_unw.dvi, doc/gnat_rm.dvi): Add gcc-vers.texi
20832         to dependencies.
20833
20834 2005-03-15  Vincent Celier  <celier@adacore.com>
20835
20836         * mlib-tgt-darwin.adb (Library_Exist_For, Library_File_Name_For):
20837         Add new parameter In_Tree to specify the project tree: needed
20838         by the project manager. Adapt to changes in project manager
20839         using new parameter In_Tree.
20840
20841 2005-03-15  Jakub Jelinek  <jakub@redhat.com>
20842
20843         * Make-lang.in (ada/treeprs.ads, ada/einfo.h, ada/sinfo.h,
20844         ada/nmake.adb, ada/nmake.ads): Use unique subdirectories of
20845         ada/bldtools to avoid make -jN failures.
20846
20847 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
20848
20849         * trans.c (gnat_to_gnu) <N_Return_Statement>: Set gnu_result
20850         to NULL_TREE on entry.
20851
20852 2005-03-15  Robert Dewar  <dewar@adacore.com>
20853
20854         * system-unixware.ads, system-linux-ia64.ads, system-freebsd-x86.ads,
20855         system-lynxos-ppc.ads, system-lynxos-x86.ads, system-linux-x86_64.ads,
20856         system-tru64.ads, system-aix.ads, system-vxworks-sparcv9.ads,
20857         system-vxworks-xscale.ads, system-solaris-x86.ads, system-irix-o32.ads,
20858         system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
20859         system-linux-x86.ads, system-vxworks-mips.ads, system-os2.ads,
20860         system-interix.ads, system-solaris-sparc.ads,
20861         system-solaris-sparcv9.ads, system-vms.ads, system-mingw.ads,
20862         system-vms-zcx.ads, system-vxworks-ppc.ads, system-vxworks-alpha.ads,
20863         system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
20864         system-linux-ppc.ads, system-linux-alpha.ads, system-linux-sparc.ads,
20865         system-linux-s390.ads, system-linux-s390x.ads: Add line defining
20866         Compiler_System_Version to be False.
20867
20868         * opt.ads: Add new flag Opt.Address_Is_Private
20869
20870         * targparm.ads, targparm.adb: Set new flag Opt.Address_Is_Private
20871         Add new parameter Compiler_System_Version to avoid checking for
20872         completeness of parameters when compiler is compiling itself.
20873         Allows old versions of GNAT to be compiled with new compiler.
20874
20875 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
20876
20877         * s-osinte-tru64.ads, s-osinte-tru64.adb (Get_Stack_Base): New function
20878         (Hide_Yellow_Zone): New procedure to hide the Yellow Zone of the
20879         calling thread.
20880         (Stack_Base_Available): New flag.
20881         (Get_Page_Size): New overloaded functions imported from C.
20882         (PROT_NONE, PROT_READ, PROT_WRITE, PROT_EXEC, PROT_ALL,
20883         PROT_ON, PROT_OFF): New constants.
20884         (mprotect): New function imported from C.
20885         (pthread_teb_t): New record type.
20886
20887         * s-taprop-tru64.adb: (Enter_Task): Invoke Hide_Yellow_Zone.
20888         (Create_Task): Account for the Yellow Zone and the guard page.
20889
20890 2005-03-15  Vincent Celier  <celier@adacore.com>
20891
20892         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
20893         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
20894         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb,
20895         mlib-tgt-vxworks.adb, mlib-tgt-lynxos.adb (Library_Exist_For,
20896         Library_File_Name_For): Add new parameter In_Tree
20897         to specify the project tree: needed by the project manager.
20898         Adapt to changes in project manager using new parameter In_Tree.
20899         Remove local imports, use functions in System.CRTL.
20900
20901         * make.adb, clean.adb, gnatcmd.adb (Project_Tree): New constant needed
20902         to use the project manager.
20903
20904         * makeutl.ads, makeutl.adb (Linker_Options_Switches): New parameter
20905         In_Tree to designate the project tree. Adapt to changes in the project
20906         manager, using In_Tree.
20907
20908         * mlib-prj.ads, mlib-prj.adb (Build_Library, Check_Library,
20909         Copy_Interface_Sources): Add new parameter In_Tree to specify the
20910         project tree: needed by the project manager.
20911         (Build_Library): Check that Arg'Length >= 6 before checking if it
20912         contains "--RTS=...".
20913
20914         * mlib-tgt.ads, mlib-tgt.adb (Library_Exist_For,
20915         Library_File_Name_For): Add new parameter In_Tree to specify the
20916         project tree: needed by the project manager.
20917
20918         * prj.ads, prj.adb: Major modifications to allow several project trees
20919         in memory at the same time.
20920         Change tables to dynamic tables and hash tables to dynamic hash
20921         tables. Move tables and hash tables from Prj.Com (in the visible part)
20922         and Prj.Env (in the private part). Move some constants from the visible
20923         part to the private part. Make other constants deferred.
20924         (Project_Empty): Make it a variable, not a function
20925         (Empty_Project): Add parameter Tree. Returns the data with the default
20926         naming data of the project tree Tree.
20927         (Initialize): After updating Std_Naming_Data, copy its value to the
20928         component Naming of Project Empty.
20929         (Register_Default_Naming_Scheme): Use and update the default naming
20930         component of the project tree, instead of the global variable
20931         Std_Naming_Data.
20932         (Standard_Naming_Data): Add defaulted parameter Tree. If project tree
20933         Tree is not defaulted, return the default naming data of the Tree.
20934         (Initial_Buffer_Size): Constant moved from private part
20935         (Default_Ada_Spec_Suffix_Id, Default_Ada_Body_Suffix_Id, Slash_Id); new
20936         variables initialized in procedure Initialize.
20937         (Add_To_Buffer): Add two in out parameters to replace global variables
20938         Buffer and Buffer_Last.
20939         (Default_Ada_Spec_Suffix, Default_Body_Spec_Suffix, Slash): New
20940         functions.
20941         Adapt to changes to use new type Project_Tree_Ref and dynamic tables and
20942         hash tables.
20943         (Initialize, Reset, register-Default_Namng-Scheme): Add a new parameter
20944         for the project tree.
20945         (Project_Tree_Data, Project_Tree_Ref, No_Project): Declare types and
20946         constant at the beginning of the package spec, so that they cane be used
20947         in subprograms before their full declarations.
20948         (Standard_Naming_Data): Add defaulted parameter of type Project_Node_Ref
20949         (Empty_Project): Add parameter of type Project_Node_Ref
20950         (Private_Project_Tree_Data): Add component Default_Naming of type
20951         Naming_Data.
20952         (Buffer, Buffer_Last): remove global variables
20953         (Add_To_Buffer): Add two in out parameters to replace global variables
20954         Buffer and Buffer_Last.
20955         (Current_Packages_To_Check): Remove global variable
20956         (Empty_Name): Move to private part
20957         (No-Symbols): Make it a constant
20958         (Private_Project_Tree_Data): New type for the private part of the
20959         project tree data.
20960         (Project_Tree_Data): New type for the data of a project tree
20961         (Project_Tree_Ref): New type to designate a project tree
20962         (Initialize, Reset, register-Default_Namng-Scheme): Add a new parameter
20963         for the project tree.
20964
20965         * prj-attr.ads: Add with Table; needed, as package Prj no longer
20966         imports package Table.
20967
20968         * prj-com.adb: Remove empty, no longer needed body
20969
20970         * prj-com.ads: Move most of the content of this package to package Prj.
20971
20972         * prj-dect.ads, prj-dect.adb (Parse): New parameters In_Tree to
20973         designate the project node tree and Packages_To_Check to replace
20974         global variable Current_Packages_To_Check.
20975         Add new parameters In_Tree and Packages_To_Check to local subprograms,
20976         when needed. Adapt to changes in project manager with project node tree
20977         In_Tree.
20978
20979         * prj-env.ads, prj-env.adb: Add new parameter In_Tree to designate the
20980         project tree to most subprograms. Move tables and hash tables to
20981         private part of package Prj.
20982         Adapt to changes in project manager using project tree In_Tree.
20983
20984         * prj-makr.adb (Tree): New constant to designate the project node tree
20985         Adapt to change in project manager using project node tree Tree
20986
20987         * prj-nmsc.ads, prj-nmsc.adb (Check_Stand_Alone_Library): Correctly
20988         display the Library_Src_Dir and the Library_Dir.
20989         Add new parameter In_Tree to designate the project node tree to most
20990         subprograms. Adapt to changes in the project manager, using project tree
20991         In_Tree.
20992         (Check_Naming_Scheme): Do not alter the casing on platforms where
20993         the casing of file names is not significant.
20994         (Check): Add new parameter In_Tree to designate the
20995
20996         * prj-pars.ads, prj-pars.adb (Parse): Add new parameter In_Tree to
20997         designate the project tree.
20998         Declare a project node tree to call Prj.Part.Parse and Prj.Proc.Process
20999
21000         * prj-part.ads, prj-part.adb (Buffer, Buffer_Last): Global variables,
21001         to replace those that were in the private part of package Prj.
21002         Add new parameter In__Tree to designate the project node tree to most
21003         subprograms. Adapt to change in Prj.Tree with project node tree In_Tree.
21004         (Post_Parse_Context_Clause): When specifying the project node of a with
21005         clause, indicate that it is a limited with only if there is "limited"
21006         in the with clause, not necessarily when In_Limited is True.
21007         (Parse): Add new parameter In_Tree to designate the project node tree
21008
21009         * prj-pp.ads, prj-pp.adb (Pretty_Print): Add new parameter In_Tree to
21010         designate the project node tree. Adapt to change in Prj.Tree with
21011         project node tree In_Tree.
21012
21013         * prj-proc.ads, prj-proc.adb (Recursive_Process): Specify the project
21014         tree In_Tree in the call to function Empty_Process to give its initial
21015         value to the project data Processed_Data.
21016         Add new parameters In_Tree to designate the project tree and
21017         From_Project_Node_Tree to designate the project node tree to several
21018         subprograms. Adapt to change in project manager with project tree
21019         In_Tree and project node tree From_Project_Node_Tree.
21020
21021         * prj-strt.ads, prj-strt.adb (Buffer, Buffer_Last): Global variables,
21022         to replace those that were in the private part of package Prj.
21023         Add new parameter In_Tree to designate the project node tree to most
21024         subprograms. Adapt to change in Prj.Tree with project node tree In_Tree.
21025
21026         * prj-tree.ads, prj-tree.adb: Add new parameter of type
21027         Project_Node_Tree_Ref to most subprograms.
21028         Use this new parameter to store project nodes in the designated project
21029         node tree.
21030         (Project_Node_Tree_Ref): New type to designate a project node tree
21031         (Tree_Private_Part): Change table to dynamic table and hash tables to
21032         dynamic hash tables.
21033
21034         * prj-util.ads, prj-util.adb: Add new parameter In_Tree to designate
21035         the project tree to most subprograms. Adapt to changes in project
21036         manager using project tree In_Tree.
21037
21038         * makegpr.adb (Project_Tree): New constant needed to use project
21039         manager.
21040
21041 2005-03-15  Olivier Hainque  <hainque@adacore.com>
21042
21043         * s-intman-posix.adb (Notify_Exception): Adjust signature, as handler
21044         for sigactions with SA_SIGINFO set. Call
21045         __gnat_adjust_context_for_raise before raising, to perform the
21046         potentially required adjustments to the machine context for the GCC
21047         unwinder.
21048
21049         * raise.h (__gnat_adjust_context_for_raise): New prototype.
21050
21051         * init.c (__gnat_adjust_context_for_raise) HPUX: Initial revision.
21052         Adjust PC by one in the provided machine context.
21053         (__gnat_install_handler) HPUX: Set SA_SIGINFO in the sigaction flags,
21054         so that the handler is passed the context structure to adjust prior to
21055         the raise.
21056         (__gnat_error_handler) HPUX: Adjust the signature to match what an
21057         SA_SIGINFO sigaction should look like. Call
21058         __gnat_adjust_context_for_raise before actually raising.
21059         (__gnat_adjust_context_for_raise): Default noop to help PC
21060         adjustments before raise from signal handlers.
21061         (__gnat_error_handler): Indirectly call a predicate function to
21062         determine if a condition should be resignaled or not.
21063         (__gnat_set_resignal_predicate): User interface to modify the predicate.
21064         (__gnat_default_resignal_p): Default GNAT predicate.
21065
21066 2005-03-15  Doug Rupp  <rupp@adacore.com>
21067
21068         * adaint.c: Prefix #include of VMS system header files with vms/
21069         [VMS] (HOST_EXECUTABLE_SUFFIX, HOST_OBJECT_SUFFIX): Define for VMS.
21070         Do not define a dummy function "convert_addresses" under Darwin,
21071         not needed.
21072
21073         * tb-alvms.c, expect.c: Prefix #include of VMS system header files
21074         with vms/
21075
21076 2005-03-15  Nicolas Setton  <setton@adacore.com>
21077
21078         * tracebak.c: Under Darwin, use the same unwinding mechanisms as under
21079         PPC/AIX.
21080
21081 2005-03-15  Robert Dewar  <dewar@adacore.com>
21082
21083         * a-reatim.ads, a-reatim.adb: Add functions Minutes and Seconds for
21084         AI-386.
21085
21086         * a-retide.ads: Minor comment changes
21087
21088 2005-03-15  Robert Dewar  <dewar@adacore.com>
21089
21090         * a-stzunb.adb, a-stzunb.adb a-stzunb.ads, a-stzunb.ads,
21091         a-stwiun.ads, a-stwiun.adb, a-strunb.ads, a-strunb.adb: Move
21092         Realloc_For_Chunk to private part of package.
21093         New subprograms for AI-301
21094
21095         * a-szuzti.adb, a-suteio.adb, a-swuwti.adb: Improve efficiency of
21096         Get_Line procedure.
21097         Avoid unnecessary use of Get/Set_Wide_String
21098
21099 2005-03-15  Robert Dewar  <dewar@adacore.com>
21100
21101         PR ada/13470
21102         * a-stunau.ads, a-stunau.adb:
21103         Change interface to allow efficient (and correct) implementation
21104         The previous changes to allow extra space in unbounded strings had
21105         left this interface a bit broken.
21106
21107         * a-suteio.adb: Avoid unnecessary use of Get/Set_String
21108
21109         * g-spipat.ads, g-spipat.adb: New interface for Get_String
21110         Minor reformatting (function specs)
21111
21112         * g-spitbo.adb: New interface for Get_String
21113
21114         * g-spitbo.ads: Minor reformatting
21115
21116         * a-swunau.ads, a-swunau.adb: New interface for Get_Wide_String
21117
21118         * a-szunau.ads, a-szunau.adb: New interface for Get_Wide_Wide_String
21119
21120 2005-03-15  Javier Miranda  <miranda@adacore.com>
21121             Robert Dewar  <dewar@adacore.com>
21122             Thomas Quinot  <quinot@adacore.com>
21123             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
21124
21125         * atree.ads, atree.adb: Add support for Elist24 field
21126
21127         * atree.h: Fix wrong definition of Field27
21128         Add support for Elist16 field
21129         Add support for Elist24 field
21130
21131         * einfo.ads, einfo.adb (Abstract_Interfaces,
21132         Set_Abstract_Interfaces): New subprograms.
21133         (Abstract_Interface_Alias, Set_Abstract_Interface_Alias): New
21134         subprograms.
21135         (Access_Disp_Table, Set_Access_Disp_Table): Modified to handle a list of
21136         entities rather than a single node.
21137         (Is_Interface, Set_Is_Interface): New subprogram
21138         (First_Tag_Component): New syntesized attribute
21139         (Next_Tag_Component): New synthesized attribute
21140         (Write_Entity_Flags): Upgraded to write Is_Interface
21141         (Write_Field24_Name): Upgraded to write Abstract_Interfaces
21142         (Write_Field25_Name): Upgraded to write Abstract_Interface_Alias
21143         (Task_Body_Procedure): New subprogram to read this attribute.
21144         (Set_Task_Body_Procedure): New subprogram to set this attribute.
21145         (Has_Controlled_Component): Now applies to all entities.
21146         This is only a documentation change, since it always worked to apply
21147         this to other than composite types (yielding false), but now this is
21148         official.
21149         Update documentation on Must_Be_Byte_Aligned for new spec
21150
21151         * tbuild.adb, exp_dist.adb, exp_disp.adb, exp_ch3.ads, exp_ch3.adb,
21152         exp_attr.adb, exp_aggr.adb, exp_ch4.adb, exp_ch5.adb: Upgrade all the
21153         uses of the Access_Disp_Table attribute to reference the first dispatch
21154         table associated with a tagged type. As
21155         part of the implementation of abstract interface types,
21156         Access_Disp_Table has been redefined to contain a list of dispatch
21157         tables (rather than a single dispatch table).
21158         Similarly, upgrade all the references to Tag_Component by the
21159         new attribute First_Tag_Component.
21160         (Find_Inherited_TSS): Moved to exp_tss.
21161         Clean up test in Expand_N_Object_Declaration for cases
21162         where we need to do a separate assignment of the initial value.
21163         (Expand_N_Object_Declaration): If the expression in the
21164         declaration of a tagged type is an aggregate, no need to generate an
21165         additional tag assignment.
21166         (Freeze_Type): Now a function that returns True if the N_Freeze_Entity
21167         is to be deleted.
21168         Bit packed array ops are only called if operands are known to be
21169         aligned.
21170         (Component_Equality): When returning an N_Raise_Program_Error statement,
21171         ensure that its Etype is set to Empty to avoid confusing GIGI (which
21172         expects that only expressions have a bona fide type).
21173         (Make_Tag_Ctrl_Assignment): Use Build_Actual_Subtype to correctly
21174         determine the amount of data to be copied.
21175
21176         * par.adb (P_Interface_Type_Definition): New subprogram that parses the
21177         new syntax rule of Ada 2005 interfaces (for AI-251 and AI-345):
21178             INTERFACE_TYPE_DEFINITION ::=
21179               [limited | task | protected | synchronized] interface
21180                 [AND interface_list]
21181
21182         * par-ch3.adb (P_Type_Declaration): Modified to give support to
21183         interfaces.
21184         (P_Derived_Type_Def_Or_Private_Ext_Decl): Modified to give support to
21185         interfaces.
21186         (P_Interface_Type_Definition): New subprogram that parses the new
21187         syntax rule of Ada 2005 interfaces
21188         (P_Identifier_Declarations): fix two occurrences of 'RENAMES' in error
21189         messages by the correct RENAMES (quotes removed).
21190
21191         * sem_prag.adb: Upgrade all the references to Tag_Component by the new
21192         attribute First_Tag_Component.
21193
21194         * sinfo.ads, sinfo.adb: Remove OK_For_Stream flag, not used, not needed
21195         (Interface_List, Set_Interface_List): New subprograms.
21196         (Interface_Present, Set_Interface_Present): New subprograms.
21197         (Limited_Present, Set_Limited_Present): Available also in derived
21198         type definition nodes.
21199         (Protected_Present, Set_Protected_Present): Available also in
21200         record type definition and
21201         derived type definition nodes.
21202         (Synchronized_Present, Set_Synchronized_Present): New subprograms.
21203         (Task_Present, Set_Task_Present): New subprogram.
21204         (Task_Body_Procedure): Removed.
21205         (Set_Task_Body_Procedure): Removed.
21206         These subprogram have been removed because the attribute
21207         Task_Body_Procedure has been moved to the corresponding task type
21208         or task subtype entity to leave a field free to store the list
21209         of interfaces implemented by a task (for AI-345)
21210         Add Expression field to N_Raise_Statement node for Ada 2005 AI-361
21211         (Null_Exclusion_Present): Change to Flag11, to avoid conflict with
21212         expression flag Do_Range_Check
21213         (Exception_Junk): Change to Flag7 to accomodate above change
21214         (Box_Present, Default_Name, Specification, Set_Box_Present,
21215         Set_Default_Name, Set_Specification): Expand the expression
21216         "X in N_Formal_Subprogram_Declaration" into the corresponding
21217         two comparisons. Required to use the csinfo tool.
21218
21219         * exp_ch11.adb (Expand_N_Raise_Statement): Deal with case where
21220         "with string" given.
21221
21222         * sem_ch11.adb (Analyze_Raise_Statement): Handle case where string
21223         expression given.
21224
21225         * par-ch11.adb (P_Raise_Statement): Recognize with string expression
21226         in 2005 mode
21227
21228         * exp_ch9.adb (Build_Task_Proc_Specification): Modified to use entity
21229         attribute Task_Body_Procedure rather than the old semantic field that
21230         was available in the task_type_declaration node.
21231
21232         * par-ch12.adb (P_Formal_Type_Definition): Modified to handle formal
21233         interface type definitions.
21234         (P_Formal_Derived_Type_Definition): Modified to handle the list of
21235         interfaces.
21236
21237         * par-ch9.adb (P_Task): Modified to handle the list of interfaces in a
21238         task type declaration.
21239         (P_Protected): Modified to handle the list of interfaces in a
21240         protected type declaration.
21241
21242 2005-03-15  Doug Rupp  <rupp@adacore.com>
21243             Vincent Celier  <celier@adacore.com>
21244
21245         * bindgen.adb (Gen_Main_C): Change WBI __posix_exit to decc$posix_exit
21246         (Gen_Output_File_C): Likewise.
21247         (Gen_Main_C): Issue #include <stdlib.h> to avoid warning
21248
21249 2005-03-15  Thomas Quinot  <quinot@adacore.com>
21250
21251         * checks.adb (Get_E_First_Or_Last): When the expression being retrieved
21252         is an N_Raise_Constraint_Error node, create a new copy of it without
21253         going through a call to Duplicate_Subexpr.
21254
21255 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
21256             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
21257             Nicolas Setton  <setton@adacore.com>
21258             Ed Schonberg  <schonberg@adacore.com>
21259
21260         PR ada/19900
21261         PR ada/19408
21262         PR ada/19140
21263         PR ada/20255
21264         * decl.c (gnat_to_gnu_field): Reject aliased components with a
21265         representation clause that prescribes a size not equal to the rounded
21266         size of their types.
21267         (gnat_to_gnu_entity, case E_Component): Always look at
21268         Original_Record_Component if Present and not the entity.
21269         (gnat_to_gnu_entity, case E_Record_Subtype): Rework handling of subtypes
21270         of tagged extension types by not making field for components that are
21271         inside the parent.
21272         (gnat_to_gnu_entity) <E_Record_Type>: Fix typo in the alignment formula
21273         (gnat_to_gnu_entity) <E_Variable>: Do not convert again the
21274         expression to the type of the object when the object is constant.
21275         Reverse defer_debug_incomplete_list before traversing it, so that trees
21276         are processed in the order at which they were added to the list. This
21277         order is important when using the stabs debug format.
21278         If we are deferring the output of debug information, also defer this
21279         output for a function return type.
21280         When adding fields to a record, prevent emitting debug information
21281         for incomplete records, emit the information only when the record is
21282         complete.
21283         (components_to_record): New parameter defer_debug.
21284         (gnat_to_gnu_entity, case E_Array_Subtype): Call copy_alias_set.
21285         (gnat_to_gnu_field_decl): New function.
21286         (substitution_list, annotate_rep): Call it.
21287         (gnat_to_gnu_entity, case E_Record_Subtype): Likewise.
21288         (gnat_to_gnu_entity, case E_Record_Type): Likewise.
21289         No longer update discriminants to not be a COMPONENT_REF.
21290         (copy_alias_set): Strip padding from input type; also handle
21291         unconstrained arrays properly.
21292
21293         * gigi.h (write_record_type_debug_info): New function.
21294         Convert to use ANSI-style prototypes. Remove unused
21295         declarations for emit_stack_check, elab_all_gnat and
21296         set_second_error_entity.
21297         (gnat_to_gnu_field_decl): New decl.
21298
21299         * utils.c (write_record_type_debug_info): New function.
21300         (finish_record_type): Delegate generation of debug information to
21301         write_record_type_debug_info.
21302         (update_pointer_to): Remove unneeded calls to rest_of_decl_compilation.
21303         (update_pointer_to): Fix pasto.
21304         (convert) <UNION_TYPE>: Accept slight type variations when
21305         converting to an unchecked union type.
21306
21307         * exp_ch13.adb (Expand_N_Freeze_Entity): If Freeze_Type returns True,
21308         replace the N_Freeze_Entity with a null statement.
21309
21310         * freeze.adb (Freeze_Expression): If the freeze nodes are generated
21311         within a constrained subcomponent of an enclosing record, place the
21312         freeze nodes in the scope stack entry for the enclosing record.
21313         (Undelay_Type): New Subprogram.
21314         (Set_Small_Size): Pass T, the type to modify; all callers changed.
21315         (Freeze_Entity, Freeze_Record_Type): Change the way we handle types
21316         within records; allow them to have freeze nodes if their base types
21317         aren't frozen yet.
21318
21319         * exp_util.adb (Remove_Side_Effects): Properly test for
21320         Expansion_Delayed and handle case when it's inside an
21321         N_Qualified_Expression.
21322
21323         * sem_ch3.adb (Derived_Type_Declaration): New predicate
21324         Comes_From_Generic, to recognize accurately that the parent type in a
21325         derived type declaration can be traced back to a formal type, because
21326         it is one or is derived from one, or because its completion is derived
21327         from one.
21328         (Constrain_Component_Type): If component comes from source and has no
21329         explicit constraint, no need to constrain in in a subtype of the
21330         enclosing record.
21331         (Constrain_Access, Constrain_Array): Allow itypes to be delayed.
21332         Minor change to propagate Is_Ada_2005 flag
21333
21334         * trans.c (gnat_to_gnu, case N_Aggregate): Verify that
21335         Expansion_Delayed is False.
21336         (assoc_to_constructor): Ignore fields that have a
21337         Corresponding_Discriminant.
21338         (gnat_to_gnu) <N_Return_Statement>: Restructure. If the
21339         function returns "by target", dereference the target pointer using the
21340         type of the actual return value.
21341         <all>: Be prepared for a null gnu_result.
21342         (processed_inline_subprograms): Check flag_really_no_inline
21343         instead of flag_no_inline.
21344         (set_second_error_entity): Remove unused function.
21345         (gnat_to_gnu, case N_Selected_Component): Call
21346         gnat_to_gnu_field_decl.
21347         (assoc_to_constructor): Likewise.
21348
21349 2005-03-15  Robert Dewar  <dewar@adacore.com>
21350             Ed Schonberg  <schonberg@adacore.com>
21351             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
21352
21353         * exp_pakd.adb (Create_Packed_Array_Type): Do not set
21354         Must_Be_Byte_Aligned for cases where we do not need to use a
21355         System.Pack_nn unit.
21356
21357         * exp_ch6.adb (Expand_Call): Call Expand_Actuals for functions as well
21358         as procedures.
21359         Needed now that we do some processing for IN parameters as well. This
21360         may well fix some unrelated errors.
21361         (Expand_Call): Handle case of unaligned objects (in particular those
21362         that come from packed arrays).
21363         (Expand_Inlined_Call): If the subprogram is a renaming as body, and the
21364         renamed entity is an inherited operation, re-expand the call using the
21365         original operation, which is the one to call.
21366         Detect attempt to inline parameterless recursive subprogram.
21367         (Represented_As_Scalar): Fix to work properly with private types
21368         (Is_Possibly_Unaligned_Object): Major rewrite to get a much more
21369         accurate estimate. Yields True in far fewer cases than before,
21370         improving the quality of code that depends on this test.
21371
21372         * exp_util.adb (Kill_Dead_Code): For a package declaration, iterate
21373         over both visible and private declarations to remove them from tree,
21374         and mark subprograms declared in package as eliminated, to prevent
21375         spurious use in subsequent compilation of generic units in the context.
21376
21377         * exp_util.ads: Minor cleanup in variable names
21378
21379         * sem_eval.ads, sem_eval.adb: Minor reformatting
21380         (Compile_Time_Known_Bounds): New function
21381
21382 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
21383
21384         * exp_ch7.adb (Convert_View): Use base types of underlying types when
21385         determining whether an unchecked conversion is needed for the argument
21386         of an initialization call.
21387
21388 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
21389
21390         * exp_intr.adb (Expand_Unc_Conversion): As a target type, use the type
21391         that appears in the instantiation rather than the internal subtype
21392         generated in the wrapper package, to avoid anomalies in gigi when the
21393         target is derived from a private type whose full view is an access type.
21394
21395 2005-03-15  Robert Dewar  <dewar@adacore.com>
21396
21397         * exp_smem.adb, sem_attr.adb: Remove OK_For_Stream flag, not used,
21398         not needed.
21399         Add documentation to replace the use of this flag
21400         Fix kludge for Maximum_Alignment on x86 so that it does not apply to
21401         the x86_64.
21402
21403 2005-03-15  Thomas Quinot  <quinot@adacore.com>
21404
21405         * exp_tss.ads, exp_tss.adb (Find_Inherited_TSS): New subprogram, moved
21406         here from exp_attr so it can be shared between exp_attr and exp_dist.
21407         (TSS_Names): Renamed from OK_TSS_Names. This array contains the list of
21408         all TSS names, not a subset thereof, and the previous name introduced
21409         an unnecessarily confusion that a distinction might exist between
21410         "OK" TSS names and some "not OK" TSS names.
21411
21412 2005-03-15  Doug Rupp  <rupp@adacore.com>
21413
21414         * gnatchop.adb (Locate_Executable): Normalize the possibly VMS style
21415         Command_Name.
21416
21417 2005-03-15  Pascal Obry  <obry@adacore.com>
21418             Eric Botcazou  <ebotcazou@adacore.com>
21419
21420         PR ada/20226
21421         PR ada/20344
21422         * init.c (__gnat_initialize): Do not call __gnat_install_SEH_handler()
21423         when IN_RTS. This is to work around a bootstrap path problem.
21424
21425         * misc.c (gnat_parse_file): Create a SEH (Structured Exception Handler)
21426         table and pass it to __gnat_install_SEH_handler().
21427         (gnat_handle_option): Accept OPT_fRTS_, not OPT_fRTS.
21428
21429         * lang.opt: Fix specification of -fRTS=.
21430
21431 2005-03-15  Doug Rupp  <rupp@adacore.com>
21432             Bernard Banner  <banner@adacore.com>
21433             Vincent Celier  <celier@adacore.com>
21434             Arnaud Charlet  <charlet@adacore.com>
21435
21436         PR ada/6852
21437         This change works fine when gnatlib is built from the gcc directory,
21438         but does not work when using the libada Makefile, since GCC_FOR_TARGET
21439         is not passed to ada/Makefile.in, so more work is needed by a
21440         Makefile/configure expert.
21441
21442         * Makefile.in(gnatlib): Use $(GCC_FOR_TARGET) for compiling library.
21443         set GMEM_LIB on ia64 linux to add optional support for gnatmem.
21444         Setup gnatlink switch -M for x86_64 linux, as it is already setup
21445         for Linux x86.
21446         (gnatlib-shared-default): Use GNATLIBCFLAGS as well.
21447         Run ranlib on libgccprefix.a
21448         Define PREFIX_OBJS for Darwin, to build libgccprefix.
21449         (ADA_INCLUDE_SRCS): Split Ada packages.
21450
21451 2005-03-15  Robert Dewar  <dewar@adacore.com>
21452
21453         * Make-lang.in: Add g-utf_32 unit for gnat and gnatbind
21454
21455         * impunit.adb: Add GNAT.UTF_32
21456
21457         * scng.adb: Use gnat.utf_32 instead of widechar for utf_32 stuff
21458
21459         * widechar.ads, widechar.adb: Remove redundant UTF-32 tables (scng
21460         now uses GNAT.UTF_32).
21461
21462         * g-utf_32.ads, g-utf_32.adb: This is a new unit with full
21463         capabilities for categorizing characters using Unicode categories
21464
21465 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
21466
21467         * sem_ch10.adb (Build_Ancestor_Name): If the ancestor is an
21468         instantiation that has been rewritten as a package body, retrieve spec
21469         to generate proper name for implicit_with_clause.
21470         (Install_Parents): Recognize a parent that is an instantiation but has
21471         been rewritten as a package declaration during analysis.
21472
21473 2005-03-15  Javier Miranda  <miranda@adacore.com>
21474             Ed Schonberg  <schonberg@adacore.com>
21475
21476         * sem_ch12.adb (Instantiate_Object): If the analysis of the actual
21477         parameter reported some error we immediately return. This improves the
21478         behaviour of the frontend in case of errors.
21479         (Install_Parent, Remove_Parent): Introduce new flag
21480         Parent_Unit_Visible, to preserve the proper visibility of the ultimate
21481         ancestor of a generic child unit, when the child is being instantiated.
21482         (Inline_Instance_Body): If we are compiling the private
21483         part or the body of a child unit, restore the proper visibility of the
21484         parents after compiling the instance body.
21485
21486 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
21487             Javier Miranda  <miranda@adacore.com>
21488
21489         PR ada/15608
21490         * sem_util.adb (Get_Task_Body_Procedure): Type may be the completion
21491         of a private type, in which case it is underlying_type that denotes
21492         the proper task. Also modified to use the new entity attribute
21493         that is directly available in the task type and task subtype entities
21494         (Build_Actual_Subtype_Of_Component): Handle properly multidimensional
21495         arrays when other dimensions than the first are constrained by
21496         discriminants of an enclosing record.
21497         (Insert_Explicit_Dereference): If the prefix is an indexed component or
21498         a combination of indexed and selected components, find ultimate entity
21499         and generate the appropriate reference for it, to suppress spurious
21500         warnings.
21501         (Note_Possible_Modification): If an entity name has no entity, return.
21502         (Is_Variable): A function call never denotes a variable.
21503         (Requires_Transient_Scope): For record types, recurse only on
21504         components, not on internal subtypes that may have been generated for
21505         constrained components.
21506
21507 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
21508
21509         * sem_ch4.adb (Analyze_Concatenation): Do not consider operators marked
21510         Eliminated as candidates for resolution. Both efficient, and avoids
21511         anomalies with operators declared in deleted code.
21512         (Process_Implicit_Dereference_Prefix): Use this procedure whenever
21513         expansion is disabled (as when compiling a generic) to prevent spurious
21514         warnings on prefixes of selected components.
21515
21516 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
21517
21518         * sem_ch6.adb (Is_Private_Declaration): Verify that the declaration is
21519         attached to a list before checking whether it appears in the private
21520         declarations of the current package.
21521         (Make_Inequality_Operator): Insert declaration in proper declarative
21522         list rather than just setting the Parent field, so that
21523         Is_Private_Declaration can handle it properly.
21524
21525 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
21526
21527         * sem_ch8.adb (Analyze_Subprogram_Renaming): In a generic, if this is
21528         a renaming a body, check that the renamed subprogram in not intrinsic.
21529         (Find_Direct_Name): If several use_visible entities hide
21530         each other, and the context is a predefined file compiled through
21531         rtsfind, keep only the entity that comes from a predefined file.
21532
21533 2005-03-15  Geert Bosch  <bosch@adacore.com>
21534
21535         * s-fatgen.adb (Valid): Extend special exceptions to account for long
21536         long float padding to also cover AMD64 and IA64.
21537
21538 2005-03-15  Gary Dismukes  <dismukes@adacore.com>
21539
21540         * s-imgwch.adb: Add with and use of Interfaces.
21541         (Img_Wide_Character): Change type of Val to Unsigned_16.
21542         (Img_Wide_Wide_Character): Change type of Val to Unsigned_32.
21543
21544 2005-03-15  Matthew Gingell  <gingell@adacore.com>
21545
21546         * sysdep.c: Implement __gnat_localtime_r as call to localtime_r on AIX.
21547
21548 2005-03-15  Robert Dewar  <dewar@adacore.com>
21549
21550         * usage.adb: Add missing lines for -gnat95 and -gnat05 switches
21551
21552         * sem_ch7.adb: Minor change to propagate Is_Ada_2005 flag
21553
21554         * i-c.adb: Clarify that AI-258 behavior is also intended in Ada 95
21555
21556 2005-03-15  Robert Dewar  <dewar@adacore.com>
21557
21558         * s-bitops.adb, s-bitops.ads,
21559         s-taprop-os2.adb, s-intman-vms.ads, s-intman-vxworks.ads,
21560         s-taprop-vxworks.adb, a-caldel.ads, a-calend.adb, a-tasatt.adb,
21561         tbuild.ads, s-finimp.adb, s-imgwch.adb, s-intman.ads, s-intman.ads,
21562         s-memory.adb, s-soflin.ads, s-taasde.ads, s-taprob.adb, s-taprop.ads,
21563         s-taprop.ads, s-tasini.adb, s-tasini.ads, s-tasini.ads, s-tasini.ads,
21564         s-taskin.ads, s-tasren.adb, s-tassta.adb, s-tassta.ads, s-tassta.ads,
21565         s-tasuti.ads, s-tataat.ads, s-tataat.ads, s-tataat.ads, s-tataat.ads,
21566         s-tpoben.adb, s-tpoben.adb, s-tpobop.ads: Update comments. Minor
21567         reformatting.
21568
21569 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
21570
21571         * utils2.c (build_binary_op): Fix typo.
21572
21573 2005-03-15  Doug Rupp  <rupp@adacore.com>
21574
21575         * s-crtl.ads (popen,pclose): New imports.
21576
21577 2005-03-15  Cyrille Comar  <comar@adacore.com>
21578
21579         * comperr.adb (Compiler_Abort): remove references to obsolete
21580         procedures in the bug boxes for various GNAT builds.
21581
21582 2005-03-15  Vincent Celier  <celier@adacore.com>
21583
21584         * snames.ads, snames.adb: Save as Unix text file, not as DOS text file
21585
21586 2005-03-15  Geert Bosch  <bosch@adacore.com>
21587             Arnaud Charlet  <charlet@adacore.com>
21588             Robert Dewar  <dewar@adacore.com>
21589             Cyrille Comar  <comar@adacore.com>
21590             Sergey Rybin  <rybin@adacore.com>
21591
21592         * gnat_ugn.texi: Remove extended inline assembly example, as it was far
21593         too specific and long-winded to be appropriate for the GNAT User's
21594         Guide.
21595         Warn about use of GCC switches not documented in the GNAT User's Guide,
21596         as these may cause generated code to not conform to Ada semantics.
21597         Remove mention of -gdwarf-2 for sparc64, since this is now the default.
21598         Add documentation for -gnat95 and -gnat05 switches
21599         Remove paragraph documenting obsolete way to refer to third party
21600         libraries.
21601         Add a few references to Ada_05 that were missing.
21602         Update documentation on -gnatZ/-gnatL.
21603         Document limitation when using -m64 under Solaris.
21604         Change the "Name Casing" subsection of the pretty-printer section
21605         according to the changes in the dictionary processing.
21606
21607         * gnat_rm.texi: Document the Ada_05 pragma.
21608         Section on record representation clauses describes the new more
21609         relaxed rules about placement of large packed bit array components.
21610         Add documentation of GNAT.UTF_32
21611
21612 2005-03-12  Daniel Berlin  <dberlin@dberlin.org>
21613
21614         * misc.c (gnat_post_options): Turn off structural
21615         aliasing for now.
21616
21617 2005-03-08  Laurent Guerby  <laurent@guerby.net>
21618
21619         * system-linux-sparc.ads: Fix typo in previous commit.
21620
21621 2005-03-07  James A. Morrison  <phython@gcc.gnu.org>
21622             Laurent Guerby  <laurent@guerby.net>
21623
21624         PR ada/20035
21625         * system-linux-sparc.ads: New.
21626         * Makefile.in: Add sparc linux entry.
21627
21628 2005-02-27  Danny Smith  <dannysmith@users.sourceforge.net>
21629
21630         * seh_init.c (__gnat_SEH_error_handler): Mark third and fourth
21631         parameters as unused.
21632
21633 2005-02-26  Nathanael Nerode  <neroden@gcc.gnu.org>
21634         Partial merge from libada-gnattools-branch:
21635
21636         2004-12-02  Nathanael Nerode  <neroden@gcc.gnu.org>
21637         * Makefile.in: Move gnattools{1,1re,2,3,4} and corresponding flags
21638         into code in gnattools/Makefile.in.  Remove direct dependencies on
21639         stamp-tools by tools clauses.
21640         2004-12-02  Nathanael Nerode  <neroden@gcc.gnu.org>
21641         * config-lang.in: Add gnattools to $lang_dirs.
21642
21643 2005-02-13  Andrew Pinski  <pinskia@physics.uc.edu>
21644
21645         PR ada/19942
21646         * utils.c (gnat_type_for_mode): Return null instead of ICE because
21647         we asked for an unknown mode.
21648
21649 2005-02-12  Richard Henderson  <rth@redhat.com>
21650
21651         * utils.c (gnat_type_for_mode): Return NULL for COMPLEX modes;
21652         validate SCALAR_INT_MODE_P before calling gnat_type_for_size.
21653
21654 2005-02-10  Andreas Jaeger  <aj@suse.de>
21655
21656         * init.c (__gnat_initialize): Mark parameter as unused.
21657
21658 2005-02-09  Doug Rupp  <rupp@adacore.com>
21659
21660         * g-expect-vms.adb (Non_Blocking_Spawn): Separate out.
21661         * g-enblsp-vms-alpha.adb g-enblsp-vms-ia64.adb: New subunits.
21662
21663 2005-02-09  Doug Rupp  <rupp@adacore.com>
21664
21665         * gnatchop.adb (dup, dup2),
21666         g-dirope.adb (closedir, opendir, rmdir): Reference via System.CRTL.
21667
21668         * gnatlbr.adb (mkdir),
21669         mlib-tgt-vms-ia64.adb (popen, plose):  Import with decc$ prefix.
21670
21671         * s-crtl.ads (closdir, dup, dup2, opendir, rmdir): Import.
21672
21673 2005-02-09  Doug Rupp  <rupp@adacore.com>
21674
21675         * s-tpopde-vms.adb: Add pragma Warnings (Off) for Task_Id conversions.
21676
21677 2005-02-09  Robert Dewar  <dewar@adacore.com>
21678             Thomas Quinot  <quinot@adacore.com>
21679             Javier Miranda  <miranda@adacore.com>
21680             Pascal Obry  <obry@adacore.com>
21681             Ed Schonberg  <schonberg@adacore.com>
21682             Doug Rupp  <rupp@adacore.com>
21683             Gary Dismukes  <dismukes@adacore.com>
21684             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
21685
21686         * g-zstspl.ads: New file.
21687
21688         * a-chahan.ads, a-chahan.adb: Add declarations from AI-285
21689
21690         * a-string.ads: Add pragma Ada_05 for wide_wide_space to get warning in
21691         Ada 95 mode
21692         Add definition of Wide_Wide_Space for AI-285
21693
21694         * impunit.ads, impunit.adb, sem_ch10.adb: Complete rewrite and new
21695         interface (to support Ada 95 and Ada 2005 units).
21696         Add Unbounded_IO files
21697         Add entries for Wide_Wide packages for AI-285
21698         Add list of containers packages to Ada 2005 unit list
21699
21700         * a-swuwti.ads, a-swuwti.adb, a-suteio.ads, a-suteio.adb: Updates to
21701         support new Unbounded_IO package cleanly.
21702
21703         * g-utf_32.ads, g-utf_32.adb: New files.
21704
21705         * Makefile.rtl: Add entry for g-utf_32
21706         Add new files for Unbounded_IO
21707         Adjust make file for new AI-285 wide wide packages
21708         Add AI-302 containers to the run time.
21709
21710         * a-stwibo.adb, a-stwibo.ads, a-stwisu.adb, a-stwisu.ads,
21711         a-strbou.ads, a-strbou.adb, a-strsup.ads, a-strsup.adb: New
21712         subprograms for AI-301.
21713
21714         * a-stwiun.adb, a-stwiun.ads: Minor reformatting.
21715
21716         * a-stunau.ads: Minor comment correction
21717
21718         * rtsfind.ads, rtsfind.adb: Add definitions for Wide_Wide attributes
21719         etc.
21720         Also extend Text_IO_Kludge to support Wide_Wide_Text_IO
21721         (Check_RPC): Update to match changes in expanded code.
21722         Clean up unused entity.
21723
21724         * exp_ch3.ads, exp_ch3.adb: Fix various places where Wide_Wide_String
21725         was not taken into account.
21726         This includes proper initialization with Normalize_Scalars.
21727         (Get_Simple_Init_Val): Major rewrite for initialize scalars and
21728         normalize scalars cases (particularly the latter) to do a better job
21729         of finding invalid representations.
21730
21731         * s-scaval.ads, s-scaval.adb: Add values for zero invalid values
21732
21733         * s-strops.ads, s-strops.adb: Remove string normalize routines, never
21734         used
21735
21736         * exp_dist.adb: Add support for wide wide character type
21737         (Expand_Receiving_Stubs_Bodies): For a package declaration that has a
21738         private part, generate stub bodies at the end of the private part,
21739         not the visible part.
21740         (Add_RACW_Primitive_Operations_And_Bodies): Add last missing code for
21741         PolyORB support.
21742         (Add_Obj_RPC_Receiver_Completion): Add PCS-specific subprograms and
21743         generic wrapper to execute final processing after completing the
21744         expansion of the RPC receiver for an RACW.
21745
21746         * snames.h, snames.ads, snames.adb: Add definitions for wide_wide
21747         packages and attributes.
21748         (Preset_Names): Addition of the new reserved words of Ada 2005,
21749         that is interface, overriding and synchronized.
21750         (Get_Pragma_Id): Give support to the use of the new reserved word
21751         "interface" as a pragma name.
21752         (Is_Pragma_Name): Give support to the use of the new reserved word
21753         "interface" as a pragma name.
21754         (Preset_Names): Add stream_size string for the Stream_Size Ada2005
21755         attribute implementation.
21756
21757         * exp_attr.adb (Expand_Attribute_Reference): Do not apply validity
21758         checks to entities that are output parameters of Asm operations.
21759         Handle the Stream_Size attribute.
21760         Add implementation of Wide_Wide_Value, Wide_Wide_Image, Wide_Wide_Width
21761
21762         * exp_imgv.ads, exp_imgv.adb: Add support for wide wide character type
21763
21764         * sem_attr.adb (Eval_Attribute): Raise compile-time constraint error
21765         for second parameter being 0.0.
21766         Add support for wide wide character type.
21767         (Analyze_Attribute, Eval_Attribute): Handle the Stream_Size attribute.
21768
21769         * s-valwch.adb, s-valwch.ads, s-imgwch.ads, s-imgwch.adb,
21770         s-wchstw.ads, s-wchstw.adb, s-wchwts.adb, s-wchwts.ads,
21771         s-widwch.adb, s-widwch.ads, s-wwdcha.adb, s-wwdcha.ads,
21772         s-wwdenu.adb, s-wwdenu.ads, s-wwdwch.adb, s-wwdwch.ads: Add support
21773         for wide wide character cases.
21774
21775         * cstand.adb: Create entities for Wide_Wide_Character and
21776         Wide_Wide_String.
21777
21778         * i-c.ads, i-c.adb: Fix not raising CE for null wide strings in
21779         accordance with AI-258.
21780         Add new declarations for 16/32 bit C character types (Part of AI285)
21781
21782         * einfo.ads, einfo.adb (Is_Obsolescent, Is_Ada_2005): New flag
21783         (Obsolescent_Warning): New field
21784         (Rep_Clause): New local subprogram used to share code. Returns the rep
21785         clause for which the name is given in parameter.
21786         (Has_Stream_Size_Clause): New routine.
21787         (Stream_Size_Clause): Idem. Implementation is based on Rep_Clause.
21788         (Address_Clause): Implementation is now using Rep_Clause.
21789         (Alignment_Clause): Idem.
21790         (Size_Clause): Idem.
21791
21792         * lib-xref.adb (Generate_Reference): Test for reference to Ada 2005
21793         entity in non-Ada 2005 mode and generate warning.
21794
21795         * par-prag.adb: Add handling of one argument form for pragma Ada_05.
21796         (Prag): Code cleanup. Remove old gnat pragma "overriding"
21797
21798         * sem_prag.adb: Add handling of one argument form for pragma Ada_05
21799         (Analyze_Pragma, case Elaborate, Elaborate_All): Do not disable warnings
21800         on the named unit if the pragma is not in the current compilation unit,
21801         so that elaboration calls in the current unit can set up an elaboration
21802         dependency on the named unit, as needed.
21803         (Analyze_Pragma, case Obsolescent): Allow pragma to be used for library
21804         subprogram as well as for subprograms declared within a package.
21805         (Analyze_Pragma, Sig_Flags): Code cleanup. Remove support for the GNAT
21806         pragma overriding.
21807
21808         * krunch.ads, krunch.adb: Add special handling of Wide_Wide (krunched
21809         to z) to avoid some instances of duplication for Wide_Wide packages.
21810
21811         * namet.ads, namet.adb: Implement encoding (WWhhhhhhhh) for wide wide
21812         characters.
21813
21814         * scn.adb: Char_Literal_Value field is now a Uint
21815
21816         * scng.adb: Significant rewrite to handle new Ada 2005 features
21817         allowing wide and wide wide characters in program text, e.g. for
21818         identifiers, as described in AI-285.
21819         (Set_Reserved): New procedure, makes setting up keywords cleaner.
21820         (Initialize_Scanner): Register the new reserved words of Ada 2005.
21821         (Scan): Give support to the new reserved words.
21822
21823         * par-ch2.adb (P_Identifier): Compiling in Ada95 mode, generate a
21824         warning notifying that interface, overriding, and synchronized are
21825         new reserved words.
21826         (P_Pragma): Allow the use of the new reserved word "interface" as
21827         a pragma name.
21828
21829         * gnatls.adb, gnatbind.adb,
21830         ali-util.adb, binde.adb, ali.ads, ali.adb: Code cleanup. Rename
21831         identifiers named "interface" to "SAL_Interface".
21832
21833         * bindgen.adb (Gen_Main_Ada): Add support for the new SEH
21834         (Structured Exception handling).
21835         (Gen_Main_C): Idem.
21836
21837         * bindgen.adb:
21838         (Gen_Main_Ada): Set the default exit code if specified.
21839         (Gen_Main_C): Likewise.
21840         Part of *DC20-006.
21841         (Gen_Output_File_C): Remove redundant output of gnat_exit_status.
21842         Code cleanup. Rename identifiers named "interface" to "SAL_Interface"
21843
21844         * switch-b.adb, bindusg.adb, opt.ads, vms_data.ads: Add handling of
21845         new -Xnnn switch.
21846
21847         * mlib-prj.adb, mlib.adb: Code cleanup. Rename one identifier that
21848         has a collision with the new Ada 2005 "interface" reserved word.
21849
21850         * par-ch3.adb (P_Defining_Identifier): Compiling in Ada95 mode,
21851         generate a warning notifying that interface, overriding, and
21852         synchronized are new reserved words.
21853
21854         * scans.ads (Token_Type): Addition of the tokens corresponding to the
21855         new reserved words of Ada 2005: Tok_Interface, Tok_Overriding
21856         and Tok_Synchronized.
21857
21858         * sem_res.adb (Resolve_Actuals): Change error messages to refer to
21859         "dispatching" rather than "primitive" operations, since dispatching
21860         calls are now allowed to abstract formal subprograms (which are not
21861         primitive).
21862         Char_Literal_Value field is now a Uint
21863         (Resolve_Slice): If the prefix is an access to an unconstrained array,
21864         compute the actual subtype of the designated object to impose the proper
21865         index constraints.
21866         (Resolve_Selected_Component): Do not insert an access check if the
21867         prefix is an access type: such a node is expanded into an explicit
21868         dereference, on which the access check is performed anyway. Removes
21869         expensive duplicate checks.
21870         (Resolve_Call): Use new flag Is_Obsolescent and field
21871         Obsolescent_Warning so that pragma Obsolescent works on library
21872         subprograms.
21873         Add support for wide wide character type
21874         (Resolve_Allocator): Replace the error message on wrong null-exclusion
21875         value by a warning message.
21876         (Resolve_Type_Conversion): If the mixed-mode expression is interpreted
21877         as fixed-point, and one of the operands is non-static and universal, it
21878         can only be an illegal exponentiation operation, in which case there is
21879         no real value to retrieve.
21880
21881         * exp_strm.adb: Add support for wide wide character type
21882         (Build_Elementary_Input_Call): Compute the size of the stream element by
21883         querying the rep chain to find the Stream_Attribute attribute value.
21884         (Build_Elementary_Write_Call): Ditto.
21885
21886         * sem_aggr.adb: Char_Literal_Value field is now a Uint
21887         Add support for wide wide character type
21888         Replace the error messages on wrong null-exclusion value by warnings
21889         as described in Ada 2005.
21890         (Resolve_Extension_Aggregate): Document the fact that the error
21891         message on class-wide expressions in extensions aggregates.
21892
21893         * sem_case.adb: Add support for wide wide character type
21894
21895         * sem_ch13.adb: Add support for wide wide character type
21896         (Analyze_Attribute_Definition_Clause): Handle the Stream_Size attribute.
21897
21898         * sem_ch3.adb: Add support for wide wide character type
21899         (Process_Subtype): If constraint is illegal for the type, set Ekind of
21900         now-useless Itype, to prevent cascaded errors on a compiler built
21901         without -gnatp.
21902
21903         * sem_ch8.adb: Add with and use of Sem_Disp.
21904         (Analyze_Subprogram_Renaming): Replace unclean uses of
21905         Corresponding_Spec with Corresponding_Formal_Spec (and delete setting
21906         of Corresponding_Spec to Empty).
21907         (Attribute_Renaming): Replace use of Corresponding_Spec with
21908         Corresponding_ Formal_Spec and simplify condition.
21909         (Use_One_Package): Check that scope of homonym of identifier is defined,
21910         before checking whether it is a wrapper package.
21911         Add support for wide wide character type
21912
21913         * sem_eval.adb: Add support for wide wide character type.
21914         (Eval_Arithmetic_Op): Check for compile time known signed integer
21915         overflow in the non-static case.
21916         (Subtypes_Statically_Match): A formal scalar type and its base type do
21917         not statically match.
21918
21919         * sem_util.adb (Collect_Primitive_Operations): Minor change of "/=" to
21920         "not in" for test of N_Formal_Subprogram_Declaration (which is now a
21921         subtype).
21922         (Unit_Declaration_Node): Ditto.
21923         (Is_Variable_Prefix):  For the case of an indexed component whose prefix
21924         has a packed array type, the prefix has been rewritten into a type
21925         conversion. Determine variable-ness from the converted expression.
21926         Handle wide wide character cases.
21927
21928         * stand.ads: Add types Wide_Wide_Character and Wide_Wide_String
21929
21930         * stringt.ads, stringt.adb: Handle full UTF-32 range.
21931         Remove ["0A"] from comment, since it can look like a line terminator.
21932         Currently we don't permit this, but this is under discussion by the
21933         ARG, and it is easy enough to use a different example.
21934
21935         * s-wchcon.ads, s-wchcnv.ads, s-wchcnv.adb: Add new subprograms for
21936         handling UTF-32 encoding for wide wide character.
21937         Implement new brackets coding ["hhhhhhhh"]
21938         Add UTF-8 encodings for full UTF-32 range
21939
21940         * ttypes.ads: Add definition of Standard_Wide_Wide_Character_Size
21941
21942         * types.h, types.ads, types.adb: Wide_Wide_Character now has full 31
21943         bit range Add full UTF-32 support.
21944         (RT_Exception_Code): Addition of CE_Null_Not_Allowed; used to
21945         notify that constraint error will be raised at run-time
21946         because a null value is assigned to a null-excluding object.
21947         Remove some obsolete declarations and make Char_Code
21948         unsigned.
21949
21950         * a-except.adb (Rcheck_30): New subprogram. Addition of the message
21951         corresponding to CE_Null_Not_Allowed, and adjust the output of all the
21952         Rcheck subprograms.
21953
21954         * checks.adb (Check_Null_Not_Allowed): Replace the error message on
21955         wrong null-exclusion value by a warning message.
21956         (Enable_Range_Check): Do range check if the prefix is an
21957         explicit dereference whose designated object is an unconstrained array.
21958         Current algorithm for removing duplicate checks is over-eager in this
21959         case.
21960
21961         * sem_ch5.adb (Analyze_Assignment): Replace the error messages on wrong
21962         null-exclusion value by a warning message
21963
21964         * atree.h, atree.ads, atree.adb: Remove Char_Code field support
21965         completely. Add support for Uint2 field
21966
21967         sem_ch2.adb, exp_ch11.adb, exp_dbug.adb,
21968         exp_prag.adb: Char_Literal_Value field is now a Uint.
21969
21970         * exp_util.adb (Insert_Actions): Replace
21971         N_Formal_Subprogram_Declaration by
21972         N_Formal_{Abstract|Concrete}_Subprogram_Declaration.
21973         Char_Literal_Value field is now a Uint.
21974
21975         * sinfo.ads, sinfo.adb (Corresponding_Formal_Spec): New function
21976         defined for subprogram renaming declarations. When set, the field
21977         indicates the defining entity of a corresponding formal subprogram
21978         when the renaming corresponds to a formal subprogram association in an
21979         instantiation.
21980         (Set_Corresponding_Formal_Spec): New procedure to return
21981         Corresponding_Formal_Spec field.
21982         Minor changes of "=" to "in" in tests of N_Formal_Subprogram_Declaration
21983         (which is now a subtype).
21984         Char_Literal_Value field is now a Uint
21985
21986         * exp_disp.ads, exp_disp.adb (Make_DT): Generate code that moves the
21987         pointer to the base of the dispatch table.
21988         Minor changes to comments.
21989         (Controlling_Type): New function for determining the tagged type
21990         associated with a tagged primitive subprogram.
21991         (Expand_Dispatching_Call): Add support for a controlling actual that is
21992         directly a value of type Ada.Tag rather than a tagged object.
21993
21994         * i-cpp.ads, i-cpp.adb, a-tags.ads, a-tags.adb: Update documentation
21995         describing the new layout.
21996         (Dispatch_Table): The expander computes the actual array size, allocates
21997         the Dispatch_Table record accordingly, and generates code that displaces
21998         the base of the record after the Typeinfo_Ptr component. The access to
21999         these components is done by means of local functions.
22000         (Offset_To_Top): New function.
22001         (Typeinfo_Ptr): New function.
22002         (Get_TSD): Modified to access the new position of the TSD.
22003         (Set_TSD): Modified to save the TSD in its new position.
22004
22005         * par-ch12.adb (P_Formal_Subprogram_Declaration): Add parsing for the
22006         case of formal abstract subprograms. Add check and message for -gnat05.
22007         Update comments.
22008
22009         * sem_ch12.adb: Add with and use for Sem_Disp.
22010         (Analyze_Associations): Minor change from "=" to "in" for use of
22011         N_Formal_Subtype_Declaration (which is now a subtype).
22012         (Set_Analyzed_Formal): Minor changes from "=" to "in" for uses of
22013         N_Formal_Subtype_Declaration (which is now a subtype).
22014         (Analyze_Formal_Subprogram): Add handling for
22015         N_Formal_Abstract_Subprogram, marking the formal as abstract and
22016         dispatching, setting the controlling status of the formal parameters
22017         and result, and issuing an error if there is no controlling type for
22018         the formal subprogram.
22019         (Instantiate_Formal_Subprogram): Rather than setting Corresponding_Spec,
22020         which is an unclean use of that field, we set the new field
22021         Corresponding_Formal_Spec to make the formal subprogram available to
22022         processing in Analyze_Subprogram_Declaration.
22023         (Analyze_Formal_{Discrete, Decimal_Fixed_Point, Fixed_Point,
22024         Floating_Point, Modular_Integer, Signed_Integer}_Type: Make formal type
22025         Constrained, so that it is is does not statically match its anonymous
22026         base type.
22027
22028         * sem_ch6.adb (Analyze_Subprogram_Specification): Include test for
22029         abstract formal subprograms in error check for functions returning
22030         abstract types. Set scope of new designator for
22031         a parameterless subprogram, so that it is available when checking the
22032         body for nested subprograms, before full analysis of said body.
22033         (Analyze_Subprogram_Body): Warn on inlining bodies with nested
22034         subprogram only if inner one comes from source.
22035         (Analyze_Function_Call): If the call is given in object notation, the
22036         analysis of the name rewrites the node and analyzes it with the proper
22037         argument list. After analyzing the name, if the call has been rewritten
22038         and the result type is set, no further analysis is needed.
22039         (Analyze_Return_Type): Subsidiary to Process_Formals: analyze subtype
22040         mark in function specification, in a context where the formals are
22041         visible and hide outer homographs.
22042
22043         * sem_disp.adb (Check_Controlling_Type): Relax the check for same scope
22044         as the tagged type for the cases of abstract formal subprograms and
22045         renamings of those.  Clean up spec comments.
22046         (Check_Dispatching_Context): Add error message to indicate "abstract
22047         procedure", covering the case of a call to a formal abstract procedure
22048         that has statically tagged operands.
22049         (Check_Dispatching_Call): Check for the case of an actual given by
22050         a tag-indeterminate function call whose type is an ancestor of the
22051         containing call's associated tagged type. This situation can occur
22052         for inherited primitives with function defaults. In this case we
22053         use the tagged type's tag directly as the controlling argument for
22054         the calls.
22055         (Expand_Call): Name change on call to Expand_Dispatch_Call.
22056
22057         * sprint.adb (Sprint_Node_Actual): Split
22058         N_Formal_Subprogram_Declaration into two alternatives for the new
22059         cases N_Formal_Abstract_Subprogram_Declaration and
22060         N_Formal_Concrete_Subprogram_Declaration.
22061         Char_Literal_Value field is now a Uint.
22062
22063         * trans.c: Get rid of junk Uint2 reference.
22064         Char_Literal_Value field is now a Uint.
22065         (gnat_to_gnu, case N_Aggregate): Check TYPE_UNCHECKED_UNION_P.
22066         (gigi): Correct third arg to gimplify_body.
22067
22068         * ada-tree.h: (TYPE_UNCHECKED_UNION_P): New flag.
22069         (TYPE_LANG_FLAG_0): Check for record or union.
22070
22071         * treepr.adb: Char_Literal_Value field is now a Uint
22072
22073         * uintp.h, uintp.ads, uintp.adb: Add new routines UI_To_CC and
22074         UI_From_CC.
22075
22076         * widechar.ads, widechar.adb (Is_UTF_32_Non_Graphic): New function
22077         Add full UTF-32 support
22078         Char_Code is now 32 bits
22079
22080         * sinput.ads, sinput.adb (Skip_Line_Terminators): Extend to deal with
22081         wide character UTF_32 line terminators.
22082         Initialize Main_Source_File to avoid error when no main
22083         source is loaded.
22084
22085         * errout.adb (Finalize): Do not check Num_SRef_Pragmas
22086         (Main_Source_File) when no main source has been loaded, to avoid
22087         potential crash.
22088
22089 2005-02-09  Robert Dewar  <dewar@adacore.com>
22090
22091         * a-strunb.ads, a-strunb.adb: Add missing pragma Ada_05 statements
22092         Fix name of Set routine
22093
22094         * a-strfix.ads, a-strfix.adb: Add new index functions from AI-301 to
22095         fixed packages.
22096
22097         * a-stwise.ads, a-stwise.adb, a-stwifi.ads, a-stwifi.adb,
22098         a-strsea.ads, a-strsea.adb: Add new index functions from AI-301 to
22099         fixed packages
22100
22101         * a-witeio.ads, a-witeio.adb, a-textio.ads, a-textio.adb: New function
22102         forms of Get_Line subprograms for AI-301.
22103
22104         * a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads,
22105         a-wtedit.adb, a-wtedit.adb, a-wtedit.ads, a-wttest.adb,
22106         a-wttest.ads, a-strmap.ads, a-strmap.adb, a-stwima.adb,
22107         a-stwima.ads: Minor reformatting.
22108
22109 2005-02-09  Doug Rupp  <rupp@adacore.com>
22110             Thomas Quinot  <quinot@adacore.com>
22111
22112         * adaint.c, adaint.h
22113         [VMS] (to_ptr32): New function.
22114         (MAYBE_TO_PTR32): New macro.
22115         (__gnat_portable_spawn,__gnat_portable_no_block_spawn): Adjust argv
22116         for pointer size.
22117         [VMS] (descriptor_s, ile_s): Use __char_ptr32 for adr field.
22118         [VMS] (#define fork()): Remove since unneccessary.
22119         (__gnat_set_close_on_exec): New routine to support
22120         GNAT.OS_Lib.Set_Close_On_Exec.
22121
22122         * g-expect.adb (Set_Up_Communications): Mark the pipe descriptors for
22123         the parent side as close-on-exec so that they are not inherited by the
22124         child.
22125
22126         * g-os_lib.ads, g-os_lib.adb (Set_Close_On_Exec): New subprogram to
22127         set or clear the FD_CLOEXEC flag on a file descriptor.
22128
22129 2005-02-09  Eric Botcazou  <ebotcazou@adacore.com>
22130             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
22131
22132         PR ada/19386
22133         * decl.c:
22134         (gnat_to_gnu_field): Do not necessarily invoke make_packable_type
22135         on the field if Pragma Component_Alignment (Storage_Unit).
22136         (gnat_to_gnu_entity, case object): Do not treat a renaming that has
22137         side-effects as if it were a constant; also make SAVE_EXPR to protect
22138         side-effects.
22139         (gnat_to_gnu_entity, case E_Record_Subtype): If have _Parent, make a
22140         UNION_TYPE.
22141         (make_dummy_type): Set TYPE_UNCHECKED_UNION_P.
22142         (components_to_record): Test it.
22143         Fix improper usage of REFERENCE_CLASS_P.
22144
22145         * utils2.c (build_binary_op, case MODIFY_EXPRP): Treat UNION_TYPE as
22146         RECORD_TYPE.
22147
22148         * utils2.c: Minor reformatting.
22149
22150         * utils.c (convert, case UNION_TYPE): Check TYPE_UNCHECKED_UNION;
22151         handle other cases like RECORD_TYPE.
22152
22153         * utils.c (gnat_pushdecl): Set TREE_NO_WARNING.
22154
22155 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
22156
22157         * exp_aggr.adb (Gen_Assign): If the expression is an aggregate for a
22158         component of an array of arrays in an assignment context, and the
22159         aggregate has component associations that require sliding on
22160         assignment, force reanalysis of the aggregate to generate a temporary
22161         before the assignment.
22162         (Must_Slide): Make global to the package, for use in Gen_Assign.
22163
22164 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
22165
22166         * exp_ch4.adb (Expand_Composite_Equality): If a component is an
22167         unchecked union with no inferable discriminants, return a
22168         Raise_Program_Error node, rather than inserting it at the point the
22169         type is frozen.
22170         (Expand_Record_Equality, Component_Equality): Handle properly the case
22171         where some subcomponent is an unchecked union whose generated equality
22172         code raises program error.
22173
22174 2005-02-09  Doug Rupp  <rupp@adacore.com>
22175
22176         * gnatbl.c: [VMS] (_POSIX_EXIT): Define.
22177         [VMS] (#define exit hack): Remove.
22178
22179 2005-02-09  Pascal Obry  <obry@adacore.com>
22180             Arnaud Charlet  <charlet@adacore.com>
22181
22182         * init.c (__gnat_initialize): Add a new parameter eh which contains the
22183         address of the exception registration. The Win32 version of this
22184         routine calls __gnat_install_SEH_handler() to initialize the SEH
22185         (Structured Exception Handling) handler.
22186         (__gnat_error_handler) [Win32]: Removed. Not needed as we use
22187         SEH (Structured Exception Handling) now.
22188         (__gnat_install_handler) [Win32]: Nothing to do now as we use SEH.
22189         (__gnat_initialize for ppc-vxworks): Adjust comments and the
22190         preprocessor condition protecting the call to the extra eh setup
22191         subprogram, which is only available for the ppc target.
22192         (__gnat_clear_exception_count): replaced reference to
22193         variable taskIdCurrent by call to taskIdSelf(), cleaner.
22194
22195         * seh_init.c: New file.
22196
22197         * Make-lang.in: (GNAT_ADA_OBJS): Add seh_init.o.
22198         (GNATBIND_OBJS): Idem.
22199
22200         * misc.c (gnat_parse_file): Update call to __gnat_initialize. This
22201         routine takes a new parameter (a pointer to the exception registration
22202         for the SEH (Structured Exception Handling) support.
22203
22204         * raise.h: (__gnat_install_SEH_handler): New prototype.
22205         Update copyright notice.
22206
22207         * s-tassta.adb (Task_Wrapper): Declare the exception registration
22208         record and initialize it by calling __gnat_install_SEH_handler.
22209
22210 2005-02-09  Vincent Celier  <celier@adacore.com>
22211
22212         * make.adb (Gnatmake): Do not fail when the main project has no object
22213         directory.
22214
22215 2005-02-09  Doug Rupp  <rupp@adacore.com>
22216
22217         * Makefile.in [VMS] (LN,LN_S): Define as cp -p
22218         Rename s-asthan-vms.adb to s-asthan-vms-alpha.adb.
22219         [VMS]: Add translations for g-enblsp.adb.
22220
22221         * s-asthan-vms.adb: Removed.
22222         * s-asthan-vms-alpha.adb: Added.
22223
22224 2005-02-09  Pascal Obry  <obry@adacore.com>
22225
22226         * Makefile.in (LIBGNAT_SRCS): Add seh_init.c.
22227         (LIBGNAT_OBJS): Add seh_init.o.
22228
22229 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
22230
22231         PR ada/16592
22232         * Makefile.in: Link all gnat tools with -static-libgcc, since
22233         -shared-libgcc is now used by default on some systems (e.g. linux with
22234         recent binutils).
22235         Remove references to Makefile.prolog/generic, no longer used.
22236
22237 2005-02-09  Vincent Celier  <celier@adacore.com>
22238
22239         * prj-makr.adb (Process_Directory): Put file name in canonical case
22240         before matching against the patterns.
22241         If gnatname has been invoked as <prefix>-gnatname
22242         then invoke the compiler as <prefix>-gcc, not just "gcc".
22243
22244 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
22245
22246         * sem_ch4.adb (Analyze_Selected_Component): Create Actual_Subtype even
22247         with expansion disabled. The actual subtype is needed among other
22248         places when the selected component appears in the context of a loop
22249         bound, and denotes a packed array.
22250         (Operator_Check): Always use the first subtype in the
22251         error message, to avoid the appearance of internal base types.
22252         (Transform_Object_Operation): Copy each actual in full
22253         to the parameter associations of the constructed call, rather than
22254         using the shallow copy mechanism of New_Copy_List. This ensures that
22255         the chaining of named associations is done properly.
22256         (Complete_Object_Operation): Rewrite node, rather than
22257         replacing it, so that we can trace back to the original selected
22258         component.
22259
22260         * sem_elab.adb (Set_Elaboration_Constraint): For initialization calls,
22261         and calls that use object notation, if the called function is not
22262         declared  in a withed unit, place the elaboration constraint on the
22263         unit in the context that makes the function accessible.
22264         (Check_Elab_Subtype_Declaration): Check whether a subtype declaration
22265         imposes an elaboration constraint between two packages.
22266
22267 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
22268
22269         * sem_ch7.adb (Uninstall_Declarations): Exchange full and private
22270         views of a private type after handling its private dependents, to
22271         maintain proper stack discipline between entry and exit from the
22272         package.
22273
22274 2005-02-09  Cyrille Comar  <comar@adacore.com>
22275
22276         * s-finimp.adb: (Finalize_List): Optimize in the no-abort case.
22277         Minor reformatting.
22278
22279 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
22280
22281         * s-tporft.adb (Register_Foreign_Thread): Initialize Task_Image[_Len]
22282         fields for foreign threads.
22283
22284 2005-02-09  Doug Rupp  <rupp@adacore.com>
22285
22286         * s-vaflop.adb: Add pragma Warnings (Off) to eliminate infinite
22287         recursion warnings when compiled with -gnatdm.
22288
22289 2005-02-09  Robert Dewar  <dewar@adacore.com>
22290
22291         * usage.adb: Add line for switch -gnat05 (allow Ada 2005 extensions)
22292         Slight fix to documentation of -gnaty with no parameters
22293
22294         * xr_tabls.ads: Add ??? comment for missing overall comment
22295
22296         * xsinfo.adb: Make default file name be sinfo.h, since this is what
22297         we now use by default.
22298
22299         * xsnames.adb: Adjust end of file test to look for five space followed
22300         by '#' instead of six spaces. The format of xsnames.adb was modified
22301         in the last update.
22302
22303         * a-numeri.ads: Add reference to AI-388 for greek letter pi
22304         identifier.
22305
22306         * clean.adb: Minor reformatting.
22307
22308         * gnat1drv.adb, gnatfind.adb, gnatlink.adb, gnatmem.adb,
22309         gnatname.adb: Minor reformatting
22310         Add 2005 to copyright output when utility is run
22311
22312         * csets.adb: Eliminate obsolete comment
22313
22314         * debug.adb, g-socket.ads, i-cobol.adb: Minor reformatting throughout
22315         Update comments.
22316
22317         * sem_eval.ads (Eval_Integer_Literal): Do not inline this, not useful.
22318
22319 2005-02-09  Sergey Rybin  <rybin@adacore.com>
22320
22321         * gnat_ugn.texi: Add to the gnatpp section the paragraph describing
22322         the difference between compact and incompact layout and add the record
22323         representation clause to the example illustrating different layouts.
22324         Add the description of '-A5' gnatpp option ("align 'AT' keywords in
22325         component clauses").
22326
22327 2005-02-09  Florian Villoing  <villoing@adacore.com>
22328
22329         * gnat_ugn.texi: Fix typos.
22330         Use @command to display 'gcc', 'gnatbind', etc. insted of @code or
22331         @file.
22332         Make proper use of @ref, @xref and @pxref to avoid duplication of "see"
22333         in the generated documentation.
22334
22335 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
22336
22337         * gnat_ugn.texi: Remove all mentions of FSU threads, which are no
22338         longer supported.
22339         Update linker wrapper when linking with non GNU C++.
22340
22341 2005-02-09  Pascal Obry  <obry@adacore.com>
22342
22343         * gnat_ugn.texi:
22344         Document the procedure to debug the DllMain routine on Windows.
22345         Add note about -funwind-tables and mixed Ada and C/C++ programming in
22346         ZCX mode.
22347         Document new BIND qualifer /RETURN_CODES=VMS.
22348
22349 2005-02-09  Ben Brosgol  <brosgol@adacore.com>
22350
22351         * gnat_ugn.texi: Wordsmithing of "GNAT and Libraries" chapter
22352         Edited gnatmetric chapter
22353
22354 2005-02-09  Robert Dewar  <dewar@adacore.com>
22355
22356         * gnat_rm.texi:
22357         Changes to document new wide wide character support
22358         For AI-285
22359         Update documentation on Normalize_Scalars and Initialize_Scalars
22360
22361 2005-02-09  Pascal Obry  <obry@adacore.com>
22362
22363         * s-taprop-mingw.adb, s-soflin.ads: Minor reformatting.
22364
22365 2005-02-09  Jose Ruiz  <ruiz@adacore.com>
22366
22367         * s-osinte-vxworks.ads (taskPriorityGet): Add this function (imported
22368         from the VxWorks kernel) that is needed for getting the active
22369         priority of the different tasks.
22370
22371         * s-atacco.ads, s-atacco.adb (Nothing): Remove this dummy procedure.
22372         Use a pragma Elaborate_Body in the spec file instead.
22373         Noticed by code reading.
22374
22375 2005-02-09  Thomas Quinot  <quinot@adacore.com>
22376
22377         * exp_util.ads: Minor correction in comment.
22378
22379 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
22380
22381         * s-taprop.ads (Initialize): Update comments. Remove pragma Inline,
22382         since this procedure is now too complex to be worth inlining.
22383
22384 2005-02-09  Richard Henderson  <rth@redhat.com>
22385
22386         * utils.c (gnat_define_builtin): Remove.
22387         (gnat_install_builtins): Use build_common_builtin_nodes.
22388
22389 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
22390
22391         * a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb, a-crbtgk.ads,
22392         a-crbtgk.adb, a-crbltr.ads, a-coprnu.ads, a-coprnu.adb,
22393         a-coorse.ads, a-coorse.adb, a-convec.ads, a-convec.adb,
22394         a-contai.ads, a-coinve.ads, a-coinve.adb, a-cohata.ads,
22395         a-cohama.ads, a-cohama.adb, a-ciorse.ads, a-ciorse.adb,
22396         a-cihama.ads, a-cihama.adb, a-cidlli.ads, a-cidlli.adb,
22397         a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads, a-cgcaso.adb,
22398         a-cgarso.ads, a-cgarso.adb, a-cdlili.ads, a-cdlili.adb,
22399         a-cgaaso.adb, a-coormu.adb, a-ciormu.adb, a-cihase.adb,
22400         a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads,
22401         a-coorma.ads, a-swunha.ads, a-stunha.ads, a-ciormu.ads,
22402         a-coormu.ads, a-rbtgso.ads, a-swunha.adb, a-stunha.adb,
22403         a-cgaaso.ads, a-ciorma.adb, a-coorma.adb, a-secain.adb,
22404         a-secain.ads, a-slcain.ads, a-slcain.adb, a-shcain.ads,
22405         a-shcain.adb, a-chtgke.ads, a-chtgke.adb, a-stwiha.ads,
22406         a-stwiha.adb, a-strhas.ads, a-strhas.adb, a-chzla1.ads,
22407         a-chzla9.ads, a-lfztio.ads, a-liztio.ads, a-llfzti.ads,
22408         a-llizti.ads, a-sfztio.ads, a-siztio.ads, a-ssizti.ads,
22409         a-stzbou.adb, a-stzbou.ads, a-stzfix.adb, a-stzfix.ads,
22410         a-stzhas.adb, a-stzhas.ads, a-stzmap.adb, a-stzmap.ads,
22411         a-stzsea.adb, a-stzsea.ads, a-stzsup.adb, a-stzsup.ads,
22412         a-stzunb.adb, a-stzunb.ads, a-swunau.adb, a-swunau.ads,
22413         a-szmzco.ads, a-szunau.adb, a-szunau.ads, a-szunha.adb,
22414         a-szunha.ads, a-szuzti.adb, a-szuzti.ads, a-tiunio.ads,
22415         a-wwunio.ads, a-ztcoau.adb, a-ztcoau.ads, a-ztcoio.adb,
22416         a-ztcoio.ads, a-ztcstr.adb, a-ztcstr.ads, a-ztdeau.adb,
22417         a-ztdeau.ads, a-ztdeio.adb, a-ztdeio.ads, a-ztedit.adb,
22418         a-ztedit.ads, a-ztenau.adb, a-ztenau.ads, a-ztenio.adb,
22419         a-ztenio.ads, a-ztexio.adb, a-ztexio.ads, a-ztfiio.adb,
22420         a-ztfiio.ads, a-ztflau.adb, a-ztflau.ads, a-ztflio.adb,
22421         a-ztflio.ads, a-ztgeau.adb, a-ztgeau.ads, a-ztinau.adb,
22422         a-ztinau.ads, a-ztinio.adb, a-ztinio.ads, a-ztmoau.adb,
22423         a-ztmoau.ads, a-ztmoio.adb, a-ztmoio.ads, a-zttest.adb,
22424         a-zttest.ads, a-zzunio.ads: New files. Part of new Ada 2005
22425         library.
22426
22427 2005-01-27  Laurent Guerby  <laurent@guerby.net>
22428
22429         * Makefile.in: Fix a-intnam.ads from previous commit,
22430         add 2005 to copyright.
22431         * a-intman-rtems.ads: Renamed to...
22432         * a-intnam-rtems.ads:
22433
22434 2005-01-27  Laurent Guerby  <laurent@guerby.net>
22435
22436         * Makefile.in: Rename GNAT RTEMS specific files.
22437         * 5rtpopsp.adb, 4rintnam.ads, 5rosinte.adb,
22438         5rosinte.ads, 5rparame.adb: Replaced by files below.
22439         * s-tpopsp-rtems.adb, a-intman-rtems.ads, s-osinte-rtems.adb,
22440         s-osinte-rtems.ads, s-parame-rtems.adb: Replace files above.
22441
22442 2005-01-27  Joel Sherrill  <joel.sherrill@oarcorp.com>
22443             Laurent Guerby  <laurent@guerby.net>
22444
22445         PR ada/19488
22446         * 5rosinte.ads: Add No_Key constant.
22447         * 5rtpopsp.adb: Initialize ATCB_Key with No_Key and fix style.
22448         * gsocket.h: Do not include <sys/socket.h> with RTEMS either.
22449
22450 2005-01-26  Laurent Guerby  <laurent@guerby.net>
22451
22452         PR ada/19414
22453         * i-cobol.adb (Valid_Numeric): Handle zero length case.
22454
22455 2005-01-20  Richard Henderson  <rth@redhat.com>
22456
22457         * Makefile.in (alpha-linux, LIBGNAT_TARGET_PAIRS): Use
22458         a-intnam-linux.ads and system-linux-alpha.ads.
22459         * a-intnam-linux-alpha.ads: Remove file.
22460         * s-osinte-linux-alpha.ads (SIGUNUSED, SIGSTKFLT, SIGLOST): New.
22461         * system-linux-alpha.ads: New file.
22462
22463 2005-01-18  Jakub Jelinek  <jakub@redhat.com>
22464
22465         PR ada/13470
22466         * a-stunau.adb (Get_String): Don't return U.Reference, but Ret that is
22467         set to the new string.
22468
22469 2005-01-18  Toon Moene  <toon@moene.indiv.nluug.nl>
22470
22471         * system-linux-ppc.ads: Set ZCX_By_Default and GCC_ZCX_Support
22472         to True.
22473
22474 2005-01-18  Richard Henderson  <rth@redhat.com>
22475
22476         * Makefile.in (LIBGNAT_TARGET_PAIRS, TOOLS_TARGET_PAIRS, MISCLIB,
22477         THREADSLIB, GNATLIB_SHARED, PREFIX_OBJS, LIBRARY_VERSION): Specialize
22478         for alpha-linux.
22479         * s-osinte-linux-alpha.ads, a-intnam-linux-alpha.ads: New files.
22480
22481 2005-01-14  Andrew Pinski  <pinskia@physics.uc.edu>
22482
22483         * system-darwin-ppc.ads (ZCX_By_Default): Change to True.
22484         (GCC_ZCX_Support): Likewise.
22485
22486 2005-01-11  Bastian Blank  <waldi@debian.org>
22487
22488         * system-linux-s390.ads: Define Preallocated_Stacks.
22489         * system-linux-s390x.ads: Likewise.
22490
22491 2005-01-04  Arnaud Charlet  <charlet@adacore.com>
22492
22493         * gnat_ugn.texi: Fix texi errors with null variables.
22494
22495 2005-01-03  Thomas Quinot  <quinot@adacore.com>
22496
22497         * gen-soccon.c: New utility program to generate g-soccon.ads
22498         automatically.
22499
22500         * socket.c, gsocket.h: Split inclusion of system header files into a
22501         gsocket.h file separated from socket.c, to allow reuse in gen-soccon.c.
22502
22503         * g-soccon.ads, g-soccon-unixware.ads, g-soccon-tru64.ads,
22504         g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
22505         g-soccon-interix.ads, g-soccon-solaris.ads, g-soccon-mingw.ads,
22506         g-soccon-vxworks.ads, g-soccon-freebsd.ads: Note that these files
22507         should not be edited by hand anymore, but should be regenerated using
22508         gen-soccon.
22509
22510 2005-01-03  Robert Dewar  <dewar@adacore.com>
22511             Ed Schonberg  <schonberg@adacore.com>
22512             Vincent Celier  <celier@adacore.com>
22513
22514         * s-atacco.ads, a-direio.adb: Protect use of 'Constrained by warnings
22515         on/off, since this is an obsolescent feature, for which we now generate
22516         a warning.
22517
22518         * sem_attr.adb (Analyze_Attribute, case Constrained): Issue warning if
22519         warning mode is set and obsolescent usage of this attribute occurs.
22520         (Resolve_Access, case 'Access): Note that GNAT uses the context type to
22521         disambiguate overloaded prefixes, in accordance with AI-235. GNAT code
22522         predates, and partly motivates, the adoption of the AI.
22523         Implement new Ada 2005 attribute Mod
22524
22525         * exp_attr.adb (Expand_N_Attribute_Reference): Implement Ada 2005
22526         attribute Mod.
22527
22528         * par-ch4.adb (P_Name): In Ada 2005 mode, recognize new attribute Mod
22529
22530         * snames.h, snames.ads, snames.adb: Add entry for No_Dependence for
22531         pragma restrictions.
22532         New entry for Ada 2005 attribute Mod.
22533
22534         * par-prag.adb:
22535         Add recognition of new pragma Restrictions No_Dependence
22536         Recognize restriction No_Obsolescent_Features at parse time
22537
22538         * bcheck.adb: Add circuitry for checking for consistency of
22539         No_Dependence restrictions.
22540
22541         * lib-writ.ads, lib-writ.adb: Output new R lines for No_Dependence
22542         restrictions.
22543
22544         * restrict.ads, restrict.adb: Add subprograms to deal with
22545         No_Dependence restrictions.
22546
22547         * rtsfind.adb: Check that implicit with's do not violate No_Dependence
22548         restrictions.
22549
22550         * sem_ch3.adb, sem_ch11.adb, sem_ch13.adb, lib-xref.adb,
22551         sem_attr.adb: Add check for new restriction No_Obsolescent_Features
22552
22553         * scn.ads, prj-err.ads, prj-err.adb, ali-util.adb, gprep.adb: Add new
22554         dummy parameter to scng instantiation.
22555         Needed for new restriction No_Obsolescent_Features
22556
22557         * scn.adb: (Obsolescent_Check): New procedure
22558         Needed for new restriction No_Obsolescent_Features
22559
22560         * scng.ads, scng.adb: Always allow wide characters in Ada 2005 mode, as
22561         specified by AI-285, needed for implementation of AI-388 (adding greek
22562         pi to Ada.Numerics).
22563         Add new generic formal to scng, needed for new restriction
22564         No_Obsolescent_Features.
22565
22566         * s-rident.ads: Add new restriction No_Obsolescent_Features.
22567
22568         * ali.ads, ali.adb: Adjustments for reading new No_Dependence
22569         restrictions lines.
22570         (Scan_ALI): When finding an unexpected character on an R line, raise
22571         exception Bad_R_Line, instead of calling Fatal_Error, so that, when
22572         Ignore_Errors is True, default restrictions are set and scanning of the
22573         ALI file continues with the next line. Also, when Bad_R_Line is raised
22574         and Ignore_Errors is True, skip to the end of le line.
22575
22576         * sem_ch10.adb: Check that explicit with's do not violate
22577         No_Dependence restrictions.
22578         (Install_Withed_Unit): Add code to implement AI-377 and diagnose
22579         illegal context clauses containing child units of instance.
22580
22581         * sem_prag.adb: Processing and checking for new No_Dependence
22582         restrictions.
22583         (Analyze_Pragma, case Psect_Object): Call Check_Arg_Is_External_Name to
22584         analyze and check the External argument.
22585
22586         * a-numeri.ads: Add greek letter pi as alternative spelling of Pi
22587
22588 2005-01-03  Robert Dewar  <dewar@adacore.com>
22589
22590         * atree.adb: Add a fifth component to entities
22591         This allows us to add 32 flags and four new fields
22592
22593         * atree.ads: Add a fifth component to entities
22594         This allows us to add 32 flags and four new fields
22595
22596         * einfo.ads, einfo.adb: Document new fields and new flags now available
22597         Add routines for printing new fields
22598
22599         * treepr.adb: Call routines to print out additional fields if present
22600
22601 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
22602
22603         * bld.ads, bld.adb, bld-io.ads, bld-io.adb, gprcmd.adb,
22604         gpr2make.ads, gpr2make.adb: Remove gpr2make, replaced by gprmake.
22605
22606         * Makefile.in: Add support to build shared Ada libraries on solaris x86
22607         Remove gpr2make, replaced by gprmake.
22608         Remove references to gnatmem and libaddr2line.
22609         Add indepsw.adb<indepsw-linux.adb to TOOLS_TARGET_PAIRS for IA64 linux.
22610         (gnatlib-shared-darwin): Add "-fno-common" to GNATLIBCFLAGS.
22611         Add support for specialized version of Ada.Numerics.Aux for Darwin: use
22612         a-numaux-darwin.ads and a-numaux-darwin.adb
22613         Enable mlib-tgt-lynxos.adb on lynxos.
22614
22615         * Make-lang.in: Remove rules for gpr2make.
22616         When generating sdefault.adb, do not call Relocate_Path
22617         on S3 for function Target_Name, as it is not a path.
22618         Remove references to gnatmem and libaddr2line.
22619
22620         * a-numaux-darwin.ads, a-numaux-darwin.adb, g-soccon-darwin.ads: New
22621         files.
22622
22623 2005-01-03  Samuel Tardieu  <tardieu@adacore.com>
22624
22625         * checks.adb (Apply_Alignment_Check): Generate a warning if an object
22626         address is incompatible with its base type alignment constraints when
22627         this can be decided statically.
22628
22629 2005-01-03  Olivier Hainque  <hainque@adacore.com>
22630
22631         * decl.c (compatible_signatures_p): New function. The intended purpose
22632         is to check if two function signatures for a call-site and a callee are
22633         compatible enough for the call to be valid. The underlying purpose is
22634         to check if a call to a mapped builtin is using the right interface.
22635         The current code actually does not check antyhing - this a placeholder
22636         for future refinements.
22637         (gnat_to_gnu_entity) <E_Subprogram_Call>: Add preliminary bits to handle
22638         builtin calls for convention Intrinsic.
22639
22640         * gigi.h (builtin_decl_for): Declare (new function).
22641
22642         * utils.c (gnat_install_builtins): Install the target specific builtins.
22643         (builtin_decl_for): New function, provide a dummy body for now.
22644
22645 2005-01-03  Geert Bosch  <bosch@adacore.com>
22646
22647         * eval_fat.adb: (Eps_Model,Eps_Denorm): Remove, no longer used.
22648         (Succ): Re-implement using Scaling, Exponent and Ceiling attributes.
22649         (Pred): Implement in terms of Succ.
22650
22651         * trans.c (convert_with_check): Reimplement conversion of float to
22652         integer.
22653
22654 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
22655             Vincent Celier  <celier@adacore.com>
22656
22657         * exp_aggr.adb (Packed_Array_Aggregate_Handled): The values of the
22658         bounds can be negative, and must be declared Int, not Nat.
22659
22660         * sem_elim.adb (Line_Num_Match): Correct wrong code when index in an
22661         array is checked after using the index in the array.
22662
22663         * makegpr.adb (Add_Switches): Check if there is a package for the
22664         processor. If there is no package, do not look for switches.
22665
22666 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
22667
22668         * exp_ch3.adb (Stream_Operations_OK): Predicate to determine when the
22669         generation of predefined stream operations (specs and bodies) should
22670         proceed. Under various restrictions these subprograms must not be
22671         generated.
22672
22673 2005-01-03  Thomas Quinot  <quinot@adacore.com>
22674
22675         * exp_dist.adb:
22676         Declare subprogram index in Build_RPC_Receiver_Body, to reduce the
22677         amount of PCS-specific code in RACW stubs generation.
22678         (Copy_Specification): Set Etype on copied formal parameter entities, as
22679         this information is needed for PolyORB stubs generation.
22680         (PolyORB_Support.Build_Subprogram_Receiving_Stubs): Remove unused
22681         variable Dynamic_Async.
22682         (Build_Subprogram_Receiving_Stubs): Make PCS-specific
22683         (Build_RPC_Receiver_Specification): Make generic again, as recent
22684         changes have allowed RPC receivers to have the same profile for both
22685         variants of the PCS.
22686         Reorganise RPC receiver generation to reduce differences between the
22687         structure of GARLIC and PolyORB RPC receivers.
22688         (Add_Receiving_Stubs_To_Declarations): Make this subprogram
22689         PCS-specific.
22690         Simplify elaboration code for RCI packages.
22691
22692         * s-parint.ads, s-parint.adb, rtsfind.ads: Reorganise RPC receiver
22693         generation to reduce differences between the structure of GARLIC and
22694         PolyORB RPC receivers.
22695
22696         * s-stratt.adb: Fix typo in comment.
22697
22698 2005-01-03  Thomas Quinot  <quinot@adacore.com>
22699
22700         * exp_ch7.ads (Make_Final_Call): Rewrite comment (was incorrectly
22701         copied from Make_Init_Call).
22702
22703         * exp_strm.adb (Build_Mutable_Record_Read_Procedure): Do component
22704         reads and assignments on a temporary variable declared with appropriate
22705         discriminants.
22706
22707 2005-01-03  Robert Dewar  <dewar@adacore.com>
22708
22709         * i-c.adb (To_C): Raise CE if string is null and Append_Null
22710
22711 2005-01-03  Robert Dewar  <dewar@adacore.com>
22712
22713         * i-cstrin.adb (Update): Do not append a null in form called with a
22714         String. This avoids unintended behavior.
22715
22716 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
22717
22718         PR ada/17527
22719         * init.c: Fix warnings on Free BSD section.
22720
22721 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
22722
22723         PR ada/16949
22724         * sinfo.ads: Fix obsolete reference to xsinfo.spt (replaced by
22725         xsinfo.adb).
22726
22727 2005-01-03  Vincent Celier  <celier@adacore.com>
22728
22729         * make.adb (Collect_Arguments_And_Compile): Do not attempt to build
22730         libraries when Unique_Compile is True (-u switch).
22731         (Gnatmake): ditto.
22732
22733 2005-01-03  Robert Dewar  <dewar@adacore.com>
22734
22735         * namet.adb (Get_Decoded_Name_With_Brackets): Fix case of not allowing
22736         upper case letter or underscore after W, as allowed by spec.
22737
22738 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
22739
22740         * s-osinte-darwin.ads, s-osinte-darwin.adb: Clean up
22741         darwin port by using proper type definitions from header files.
22742         Use SIGTERM instead of SIGABRT for SIGADAABORT.
22743
22744 2005-01-03  Robert Dewar  <dewar@adacore.com>
22745
22746         * par.adb: Enhance error message handling for configuration file
22747         pragmas.
22748
22749 2005-01-03  Robert Dewar  <dewar@adacore.com>
22750
22751         * s-arit64.adb (Double_Divide): Put back changes that got accidentally
22752         removed during the previous update (test properly for case of dividing
22753         largest negative number by -1, which generates overflow).
22754
22755 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
22756             Sergey Rybin  <rybin@adacore.com>
22757
22758         * sem_ch12.adb (Analyze_Package_Instantiation): Create a separate node
22759         to use as the defining identifier for a formal package.
22760         (Remove_Parent): If the instance takes place within (an instance of)
22761         a sibling, preserve private declarations of common parent.
22762
22763 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
22764
22765         * sem_ch4.adb (Has_Fixed_Op): New predicate in Check_Arithmetic_Pair,
22766         to determine whether one of the operands is a fixed-point type for
22767         which a user-defined multiplication or division operation might be
22768         defined.
22769
22770         * sem_res.adb (Valid_Conversion): The legality rules for conversions
22771         of access types are symmetric in Ada 2005: either designated type can
22772         be unconstrained.
22773
22774 2005-01-03  Vincent Celier  <celier@adacore.com>
22775
22776         * s-fileio.adb (Temp_File_Record): Change length of string component
22777         Name from L_tmpnam + 1 to max_path_len + 1.
22778
22779 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
22780
22781         * s-tasini.ads, s-tasini.adb (Undefer_Abortion): Handle case of
22782         Self_Id.Deferral_Level = 0.
22783         (Do_Pending_Action): Move this function to the spec.
22784
22785         * s-tasren.adb (Selective_Wait [Terminate_Selected]): Call
22786         Do_Pending_Action explicitely when needed, in case we're using
22787         No_Abort restrictions.
22788
22789         * s-tassta.adb (Create_Task): If Abort is not allowed, reset the
22790         deferral level since it will not get changed by the generated code.
22791         Keeping a default value of 1 would prevent some operations (e.g.
22792         select or delay) to proceed successfully.
22793
22794 2005-01-03  Ben Brosgol  <brosgol@adacore.com>
22795             Robert Dewar  <dewar@adacore.com>
22796             Cyrille Comar  <comar@adacore.com>
22797
22798         * ug_words, gnat_ugn.texi: Added alpha-ivms transitioning section to
22799         porting guide chapter (vms version).
22800         Revised doc title (removed "for native platforms") and subtitle.
22801         Add discussion on warning flag for obsolescent features. First we
22802         note that it applies to obsolete GNAT features, which was previously
22803         omitted. Second we contrast the behavior with that of the new
22804         Ada 2005 AI-368 restriction No_Obsolescent_Features.
22805         Preliminary rewriting of GNAT & libraries chapter in order to take
22806         into account default project locations & new project manager
22807         capabilities.
22808
22809 2005-01-03  Robert Dewar  <dewar@adacore.com>
22810
22811         * cstand.adb (Create_Operators): Clean up format and documentation of
22812         unary and binary operator result tables. No change in code, just
22813         reformatting and addition of comments.
22814
22815         * errout.ads, gnatfind.adb, s-maccod.ads, sem.adb,
22816         sem_ch2.adb: Minor reformatting
22817
22818         * atree.ads, elists.ads, lib.ads, namet.ads, nlists.ads, repinfo.ads,
22819         sinput.ads, stringt.ads, uintp.ads, urealp.ads: Minor clarification to
22820         comments for Tree_Read and Tree_Write.
22821
22822 2005-01-03  Pascal Obry  <obry@adacore.com>
22823
22824         * exp_attr.ads: Minor reformatting.
22825
22826 2005-01-03  Romain Berrendonner  <berrendo@adacore.com>
22827
22828         * comperr.adb (Compiler_Abort): Add specialized message for GAP
22829         versions.
22830
22831 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
22832
22833         * exp_pakd.adb (Create_Packed_Array_Type): Add a guard to check
22834         whether the ancestor type is private, as may be the case with nested
22835         instantiations.
22836
22837 2004-12-30  Sohail Somani  <sohail@sohailsomani.com>
22838
22839         PR ada/19128
22840         * trans.c (gnat_to_gnu): Fix typo: Use correct return variable.
22841
22842 2004-12-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
22843
22844         * trans.c (Attribute_to_gnu): Adjust call to get_inner_reference.
22845         * utils2.c (build_unary_op): Likewise.
22846
22847 2004-12-22  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
22848
22849         * trans.c (mark_visited): Set TYPE_SIZES_GIMPLIFIED.
22850
22851 2004-12-19  Richard Henderson  <rth@redhat.com>
22852
22853         * trans.c (gigi): Update gimplify_body call.
22854
22855 2004-12-09  Nathan Sidwell  <nathan@codesourcery.com>
22856
22857         * decl.c (gnat_substitute_in_type): Remove SET_TYPE case.
22858
22859 2004-12-07  Ed Falis  <falis@adacore.com>
22860
22861         * s-intman-vxworks.adb (Notify_Exception): removed useless check for
22862         current task being suspended.
22863
22864         * init.c (__gnat_clear_exception): added to reset VxWorks exception
22865         count.
22866         (__gnat_map_signal): removed test for current task being suspended.
22867
22868 2004-12-07  Gary Dismukes  <dismukes@adacore.com>
22869
22870         * a-exexpr.adb (Others_Value, All_Others_Value): Change initial values
22871         from 16#BEEF# to 16#7FFF# to avoid exceeding Integer'Last on 16-bit
22872         targets (such as AAMP).
22873
22874 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
22875
22876         * atree.adb (Visit_Itype): Create a new name for the generated itype,
22877         because the back-end may otherwise treat it as a redefinition of the
22878         old symbol.
22879
22880 2004-12-07  Eric Botcazou  <ebotcazou@adacore.com>
22881
22882         * back_end.adb (Scan_Back_End_Switches): Accept --param.
22883
22884         * lang-specs.h: Accept --param.
22885
22886 2004-12-07  Vincent Celier  <celier@adacore.com>
22887
22888         * make.adb (Check_Mains, Switches_Of): Adapt to name changes in
22889         package Prj (Current_Spec_Suffix => Ada_Spec_Suffix,
22890         Current_Body_Suffix => Ada_Body_Suffix).
22891         Take into account Externally_Built attribute.
22892
22893         * clean.adb (In_Extension_Chain): Always return False when one of the
22894         parameter is No_Project.
22895         (Clean_Project): Adapt to changes in package Prj (Lang_Ada =>
22896         Ada_Language_Index).
22897         (Gnatclean): Adapt to change in package Prj.Pars (no parameter
22898         Process_Languages for procedure Parse).
22899
22900         * gnatcmd.adb (Carg_Switches): New table.
22901         (GNATCmd): Put all switches following -cargs in the Carg_Switches table.
22902         Adapt to name changes in package Prj (Current_Spec_Suffix =>
22903         Ada_Spec_Suffix, Current_Body_Suffix => Ada_Body_Suffix).
22904
22905         * mlib-prj.adb: Adapt to changes in packages Prj and Prj.Com: type
22906         Header_Num and function Hash are now declared in package Prj,
22907         not Prj.Com.
22908
22909         * prj.adb (Suffix_Of): New function.
22910         (Set (Suffix)): New procedure.
22911         (Hash): One function moved from Prj.Com
22912         (Is_Present, Language_Processing_Data_Of): New functions
22913         (Set): Two new procedures
22914         (Add_Language_Name, Display_Language_Name): New procedures
22915
22916         * prj.ads: (Suffix_Of): New function
22917         (Set (Suffix)): New procedure
22918         Add several types and tables for multi-language support.
22919         (Header_Num): Type moved from Prj.Com
22920         (Hash): Two functions moved from Prj.Com
22921         (Is_Present, Language_Processing_Data_Of): New functions
22922         (Set): Two new procedures
22923         (Add_Language_Name, Display_Language_Name): New procedures
22924         (Naming): Component name changes:
22925         Current_Spec_Suffix => Ada_Spec_Suffix,
22926         Current_Body_Suffix => Ada_Body_Suffix. Add new components:
22927         Impl_Suffixes, Supp_Suffixes.
22928         (Project_Data): New components: Externally_Built, Supp_Languages,
22929         First_Language_Processing, Supp_Language_Processing, Default_Linker,
22930         Default_Linker_Path.
22931
22932         * prj-attr.adb: Add new attributes Ada_Roots and Externally_Built and
22933         new package Language_Processing with its attributes (Compiler_Driver,
22934         Compiler_Kind, Dependency_Option, Compute_Dependency, Include_Option,
22935         Binder_Driver, Default_Linker).
22936
22937         * prj-com.ads, prj-com.adb (Hash): Function moved to package Prj.
22938         (Header_Num): Type moved to package Prj
22939
22940         * prj-env.adb: Adapt to name changes in package Prj
22941         (Current_Spec_Suffix => Ada_Spec_Suffix,
22942         Current_Body_Suffix => Ada_Body_Suffix).
22943
22944         * prj-ext.adb: Add the default project dir (<prefix>/log/gnat) by
22945         default to the project path, except the "-" is one of the directories
22946         in env var ADA_PROJECT_PATH.
22947         (Current_Project_Path): Global variable, replacing Project_Path
22948         that was in the body of Prj.Part.
22949         (Project_Path): New function
22950         (Set_Project_Path): New procedure
22951         Initialize Current_Project_Path during elaboration of the package
22952         Remove dependency on Prj.Com, no longer needed
22953
22954         * prj-ext.ads (Project_Path): New function
22955         (Set_Project_Path): New procedure
22956
22957         * prj-nmsc.adb (Body_Suffix_Of): New function. Returns .<lang> when no
22958         suffix is defined for language <lang>.
22959         (Find_Sources, Record_Other_Sources): Use Body_Suffix_Of, instead of
22960         accessing directly the components of Naming.
22961         (Look_For_Sources): Use Set (Suffix) to set the suffix of a language.
22962         Reorganise of this package.
22963         Break procedure Check in several procedures.
22964
22965         * prj-nmsc.ads: Replace all procedures (Ada_Check,
22966         Other_Languages_Check and Language_Independent_Check) with a single
22967         procedure Check.
22968
22969         * prj-pars.ads, prj-pars.adb (Parse): Remove parameter
22970         Process_Languages, no longer needed.
22971
22972         * prj-part.adb (Project_Path): Move to the body of Prj.Ext as
22973         Current_Project_Path.
22974         Remove elaboration code, moved to the body of Prj.Ext
22975         Use new function Prj.Ext.Project_Path instead of old variable
22976         Project_Path.
22977         (Post_Parse_Context_Clause): Get Resolved_Path as a case-sensitive path.
22978         When comparing with project paths on the stack, first put the resolved
22979         path in canonical case.
22980         (Parse_Single_Project): Set the path name of the project file in the
22981         tree to the normalized path.
22982
22983         * prj-proc.ads, prj-proc.adb (Check, Recursive_Check, Process): Remove
22984         parameter Process_Languages, no longer needed.
22985         (Recursive_Check): Call Prj.Nmsc.Check, instead of Ada_Check and
22986         Other_Languages_Check.
22987
22988         * prj-tree.ads (Project_Name_And_Node): New component Canonical_Path
22989         to store the resolved canonical path of the project file.
22990         Remove dependency to Prj.Com, no longer needed
22991
22992         * prj-util.adb: Adapt to name changes in package Prj
22993         (Current_Spec_Suffix => Ada_Spec_Suffix, Current_Body_Suffix =>
22994         Ada_Body_Suffix).
22995
22996         * snames.ads, snames.adb: New standard names: Ada_Roots, Binder_Driver,
22997         Compiler_Driver, Compiler_Kind, Compute_Dependency, Default_Linker,
22998         Externally_Built, Include_Option, Language_Processing.
22999
23000         * makegpr.adb: Numerous changes due to changes in packages
23001         Prj and Prj.Nmsc.
23002
23003         * gnatls.adb: Add the default project dir (<prefix>/log/gnat) by
23004         default to the project path, except whe "-" is one of the directories
23005         in env var ADA_PROJECT_PATH.
23006         (Gnatls): In verbose mode, add the new section "Project Search Path:"
23007
23008 2004-12-07  Robert Dewar  <dewar@adacore.com>
23009
23010         * debug.adb: Document that -gnatdA automatically sets -gnatR3m
23011
23012         * gnat1drv.adb (Gnat1drv): If debug flag A set, then automatically
23013         set -gnatR3m mode.
23014
23015         * repinfo.adb (List_Rep_Info): Remove special handling of -gnatdA
23016         flag. No longer needed now that we handle this in gnat1drv.adb.
23017
23018         * repinfo.ads: Minor reformatting
23019
23020 2004-12-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
23021             Olivier Hainque  <hainque@adacore.com>
23022             Eric Botcazou  <ebotcazou@adacore.com>
23023
23024         * decl.c (maybe_pad_type): Use TYPE_SIZE_UNIT of the input type for
23025         TYPE_SIZE_UNIT of result type if SIZE is not specified.
23026         (make_aligning_type): Pass -1 as ADDRESSABLE to prevent the creation
23027         of a bitfield, which we know is useless and causes trouble because of
23028         alignment implications.
23029
23030         * utils.c (create_var_decl): Set DECL_COMMON again on targets without
23031         BSS sections.
23032         (process_attributes): Clear DECL_COMMON again when a section attribute
23033         is present.
23034         (finish_record_type): Independently track if RECORD_TYPE has SIZE and/or
23035         SIZE_UNIT already set and use to compute final SIZE and SIZE_UNIT.
23036         (create_field_decl): Special case ADDRESSABLE negative to mean
23037         "no bitfield creation", to be used by make_aligning_type. Don't
23038         restrict bitfield creation to !ADDRESSABLE any more, as some BLKmode
23039         fields claimed addressable still have to be bitfields. Use
23040         value_factor_p instead of a raw binop construction to check for the
23041         position's alignment.
23042
23043 2004-12-07  Geert Bosch  <bosch@adacore.com>
23044
23045         * eval_fat.adb: Revert previous change.
23046
23047 2004-12-07  Thomas Quinot  <quinot@adacore.com>
23048             Ed Schonberg  <schonberg@adacore.com>
23049
23050         * exp_ch4.adb (Expand_N_Indexed_Component): For an indexed component
23051         with an implicit dereference as its prefix, use
23052         Insert_Explicit_Dereference instead of merely rewriting the prefix into
23053         an explicit dereference. This ensures that a reference to the original
23054         prefix is generated, if appropriate.
23055
23056         * sem_util.adb (Insert_Explicit_Dereference): When an implicit
23057         dereference is rewritten to an explicit one, generate a reference to
23058         the entity denoted by its prefix using the original prefix node, so
23059         the dereference can be properly recorded as a read of the denoted
23060         access value, if appropriate.
23061
23062         * sem_warn.adb (Output_Unreferenced_Messages): Do not abstain from
23063         emitting 'assigned but never read' warning on a variable on the basis
23064         that it has an access type.
23065         (Check_References): Emit unreferenced warning when the scope is a
23066         subprogram body.
23067
23068 2004-12-07  Robert Dewar  <dewar@adacore.com>
23069             Ed Schonberg  <schonberg@adacore.com>
23070
23071         * exp_ch6.adb (Expand_Call): Add comment on handling of back end
23072         intrinsic
23073
23074         * exp_intr.adb (Expand_Intrinsic_Call): Ignore unrecognized intrinsic,
23075         leaving call unchanged.
23076         This deals with the case where the pragma Import specified
23077         an external name, to be handled by the back end.
23078
23079         * sem_prag.adb (Process_Import_Or_Interface): Do not check validity of
23080         subprogram which is Imported with convention Intrinsic if an
23081         External_Name argument is specified.
23082         (Process_Import_Or_Interface): Properly diagnose link name argument.
23083         (Inlining_Not_Possible): New name for Cannot_Inline, to avoid confusion
23084         with Sem_Ch6.Cannot_Inline.
23085         (Process_Inline): Provide separate warning for inapplicable inline
23086         pragma.
23087         (Cannot_Inline): Reject subprograms that have an at_end handler, so that
23088         treatment is uniform on different targets.
23089
23090 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
23091
23092         * exp_ch7.adb (Expand_Cleanup_Actions): If statement sequence of
23093         construct is rewritten, preserve end label to permit source navigation.
23094
23095 2004-12-07  Thomas Quinot  <quinot@adacore.com>
23096
23097         * exp_dist.adb (Specific_Build_General_Calling_Stubs,
23098         Specific_Build_Stub_Target): New subprograms.
23099         (Build_Subprogram_Calling_Stubs): Make this procedure independent from
23100         the PCS implementation used, using the above PCS-customized subprograms.
23101         Minor reformatting.
23102         (PolyORB_Support.Helpers): New subunit containing supporting subprograms
23103         for generation of DSA code targeted to the PolyORB PCS.
23104         (Add_Stub_Type): Rewrite to isolate the parts that are specific to one
23105         implementation of the partition communication subsystem in ancillary
23106         subprograms.
23107         (Specific_Build_Stub_Type, GARLIC_Support.Build_Stub_Type,
23108         PolyORB_Support.Build_Stub_Type): New subrograms containing the
23109         PCS-specific part of Add_Stub_Type.
23110         (Insert_Partition_Check): Use runtime library function to perform
23111         E.4(19) check.
23112
23113         * rtsfind.ads: New entity System.PolyORB_Interface.Make_Ref
23114         (RE_Same_Partition): New entity, from s-parint.
23115
23116         * s-parint.ads, s-parint.adb (Same_Partition): New subprogram.
23117
23118 2004-12-07  Gary Dismukes  <dismukes@adacore.com>
23119
23120         * gnatmem.adb, gnatname.adb, gnatsym.adb, gprcmd.adb, vms_conv.adb:
23121         Output the copyright message on a separate line from the version
23122         message.
23123
23124 2004-12-07  Joel Brobecker  <brobecker@adacore.com>
23125
23126         * g-os_lib.adb (Spawn): Explicitly initialize Saved_Error to avoid a
23127         compile-time warning.
23128
23129 2004-12-07  Robert Dewar  <dewar@adacore.com>
23130
23131         * g-regpat.adb: (Match): Change a misuse of or to or else
23132
23133 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
23134
23135         * lib-xref.adb:
23136         (Generate_Reference): Handle properly a reference to an entry formal,
23137          when an accept statement has a pragma Unreferenced for it.
23138
23139         * sem_ch9.adb (Analyze_Accept_Statement): Reset the Is_Referenced flag
23140         and the Has_Pragma_Unreferenced flag for each formal before analyzing
23141         the body, to ensure that warnings are properly emitted for each accept
23142         statement of a given task entry.
23143
23144 2004-12-07  Vasiliy Fofanov  <fofanov@adacore.com>
23145
23146         * Makefile.in: Add support for foreign threads on VMS.
23147
23148 2004-12-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
23149
23150         * misc.c (gnat_types_compatible_p, LANG_HOOKS_TYPES_COMPATIBLE_P):
23151         Remove.
23152         (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): New.
23153
23154         * adaint.h: (__gnat_dup, __gnat_dup2): Add missing decls.
23155
23156         * trans.c (Exception_Handler_to_gnu_sjlj): Also handle renamed
23157         exception.
23158         (call_to_gnu): Convert to actual DECL_ARG_TYPE, not variant of it.
23159
23160 2004-12-07  Robert Dewar  <dewar@adacore.com>
23161
23162         * nlists.adb (Prepend_Debug): Remove parameters and nest within
23163         Prepend.
23164         (Remove_Next_Debug): Same fix
23165
23166         * nlists.ads: Correct bad comments for Prev and Prev_Non_Pragma (we do
23167         maintain back pointers now, though we did not used to, and comments
23168         were out of date).
23169         (Prepend): Remove pragma Inline.
23170         (Remove_Next): Same cleanup
23171
23172 2004-12-07  Thomas Quinot  <quinot@adacore.com>
23173
23174         * sem_ch4.adb (Process_Implicit_Dereference_Prefix): New subprogram
23175         used to record an implicit dereference as a read operation on its
23176         prefix when operating under -gnatc. Necessary to avoid spurious
23177         'variable assigned but never read' warnings in that mode.
23178         (Process_Indexed_Component, Analyze_Selected_Component): When the prefix
23179         is a non-overloaded implicit dereference, call the above subprogram to
23180         ensure proper recording of references.
23181
23182 2004-12-07  Gary Dismukes  <dismukes@adacore.com>
23183
23184         * sem_ch5.adb (One_Bound): Remove call to Resolve, as the bound needs
23185         to be resolved later as part of Analyze_Iteration_Scheme's call to
23186         Make_Index.
23187
23188 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
23189
23190         * sem_ch8.adb (Find_Type): If node is a reference to 'Base and the
23191         prefix is not a scalar type, place error message on prefix, not on
23192         type entity.
23193
23194 2004-12-07  Bernard Banner  <banner@adacore.com>
23195
23196         * vxaddr2line.adb: Add support for x86 vxworks
23197
23198 2004-12-07  Thomas Quinot  <quinot@adacore.com>
23199
23200         * g-socket.ads (Get_Host_By_Address, Get_Host_By_Name): Clarify
23201         documentation of the behaviour of these functions when passed an IP
23202         address that has no record in the system hosts database and no reverse
23203         record in the DNS.
23204
23205         * cstand.adb, a-tags.ads: Fix typos in comment.
23206
23207 2004-12-07  Robert Dewar  <dewar@adacore.com>
23208
23209         * exp_ch2.adb, exp_ch3.adb, exp_ch5.adb, exp_ch8.adb,
23210         exp_ch9.adb, exp_pakd.adb, interfac.ads, sem_ch6.adb,
23211         sem_ch7.adb, sem_ch10.adb, sem_ch13.adb, sem_ch3.adb,
23212         s-poosiz.ads: Minor reformatting
23213
23214         * make.adb: Minor reformatting
23215         Add some ??? comments asking for more comments
23216
23217         * s-poosiz.adb: Minor reformatting
23218         Add comments on alignment requirement
23219
23220         * sinfo.ads: Remove obsolete comment and fix typo.
23221
23222 2004-12-07  Vincent Celier  <celier@adacore.com>
23223             Sergey Rybin  <rybin@adacore.com>
23224
23225         * gnat_ugn.texi: Update the section "The GNAT Driver and Project
23226         Files" with the new tool and package names.
23227         Reformatting to suppress most of the warnings for line too long
23228         Document the new section "Project Search Path:" in the output of
23229         gnatls -v.
23230         Add gnatmetric section
23231
23232 2004-12-07  Vincent Celier  <celier@adacore.com>
23233
23234         * vms_data.ads: Correct GNAT METRIC qualifiers: -I-, -Idir and
23235         -gnatec= are not direct switches of gnatmetric. Changed -eis to -eps
23236         and -eit to -ept. Added qualifier
23237         /ELEMENT_METRICS=CONSTRUCT_NESTING_MAX for new switch -ec.
23238
23239 2004-11-27  Andreas Schwab  <schwab@suse.de>
23240
23241         * Make-lang.in (ada/trans.o): Depend on $(EXPR_H).
23242
23243 2004-11-25  Arnaud Charlet  <charlet@adacore.com>
23244
23245         * g-socthi-mingw.ads, g-socthi-vms.ads: Remove C_Read and C_Write from
23246         internal implementation unit GNAT.Sockets.Thin,
23247         as their usage for sockets is non-portable (using the read and write
23248         functions from the system runtime library is fine on UNIX but won't
23249         work under Windows).
23250
23251         * mingw32.h: Update copyright notice.
23252
23253 2004-11-25  Arnaud Charlet  <charlet@adacore.com>
23254
23255         * ada-tree.h: Minor reformatting of previous change to avoid lines
23256         longer than 79 characters.
23257
23258 2004-11-25  Olivier Hainque  <hainque@adacore.com>
23259
23260         * tb-gcc.c: GCC infrastructure based implementation of
23261         __gnat_backtrace.
23262
23263 2004-11-24  Steven Bosscher  <stevenb@suse.de>
23264
23265         * misc.c (gnat_post_options): Don't clear
23266         flag_inline_functions.
23267
23268 2004-11-22  Andrew Pinski  <pinskia@physics.uc.edu>
23269
23270         PR ada/17986
23271         * ada-tree.h (lang_tree_node): Set chain_next to be the chain of the
23272         tree.
23273
23274 2004-11-21  Andreas Jaeger  <aj@suse.de>
23275
23276         * stylesw.adb: Change Style_Check_Subprogram_Order to
23277         Style_Check_Order_Subprograms.
23278
23279 2004-11-18  Arnaud Charlet  <charlet@adacore.com>
23280
23281         * adaint.h, adaint.c
23282         (__gnat_portable_spawn): Fix cast of spawnvp third parameter
23283         to avoid warnings.
23284         Add also a cast to kill another warning.
23285         (win32_no_block_spawn): Initialize CreateProcess's dwCreationFlags
23286         parameter with the priority class of the parent process instead of
23287         always using the NORMAL_PRIORITY_CLASS.
23288         (__gnat_dup): New function.
23289         (__gnat_dup2): New function.
23290         (__gnat_is_symbolic_link): Enable the effective body of this
23291         function when __APPLE__ is defined.
23292
23293         * g-os_lib.ads, g-os_lib.adb (Spawn): Two new procedures.
23294         Update comments.
23295
23296 2004-11-18  Olivier Hainque  <hainque@adacore.com>
23297
23298         * a-exexpr.adb (Others_Value, All_Others_Value): New variables, the
23299         address of which may be used to represent "others" and "all others"
23300         choices in exception tables, instead of the current harcoded
23301         (void *)0 and (void *)1.
23302         (Setup_Exception): Do nothing in the GNAT SJLJ case.
23303
23304         * gigi.h (others_decl, all_others_decl): New decls representing the
23305         new Others_Value and All_Others_Value objects.
23306         (struct attrib): Rename "arg" component as "args", since GCC expects a
23307         list of arguments in there.
23308
23309         * raise.c (GNAT_OTHERS, GNAT_ALL_OTHERS): Are now the address of the
23310         corresponding objects exported by a-exexpr, instead of hardcoded dummy
23311         addresses.
23312
23313         * trans.c (Exception_Handler_to_gnu_zcx): Use the address of
23314         others_decl and all_others_decl instead of hardcoded dummy addresses
23315         to represent "others" and "all others" choices, which is cleaner and
23316         more flexible with respect to the possible eh pointer encoding policies.
23317
23318         * utils.c (init_gigi_decls): Initialize others_decl and all_others_decl.
23319         (process_attributes): Account for the naming change of the "args"
23320         attribute list entry component.
23321
23322         * decl.c (build_attr_list): Rename into prepend_attributes to allow
23323         cumulating attributes for different entities into a single list.
23324         (gnat_to_gnu_entity): Use prepend_attributes to build the list of
23325         attributes for the current entity and propagate first subtype
23326         attributes to other subtypes.
23327         <E_Procedure>: Attribute arguments are attr->args and not
23328         attr->arg any more.
23329         (build_attr_list): Ditto. Make attr->args a TREE_LIST when there is an
23330         argument provided, as this is what GCC expects. Use NULL_TREE instead
23331         of 0 for trees.
23332
23333 2004-11-18  Robert Dewar  <dewar@adacore.com>
23334
23335         * a-stmaco.ads, exp_util.ads, exp_util.adb, i-cpp.ads, i-cpp.adb:
23336         Minor reformatting througout (including new function specs)
23337         Add ??? comments asking for clarification.
23338
23339 2004-11-18  Thomas Quinot  <quinot@adacore.com>
23340
23341         * butil.ads, butil.adb, bindgen.adb (Get_Unit_Name_String): Remove
23342         incomplete duplicate implementation of this subprogram from butil.
23343
23344 2004-11-18  Thomas Quinot  <quinot@adacore.com>
23345
23346         * exp_dist.adb (Build_RPC_Receiver_Body): New subprogram. This
23347         procedures factors the common processing for building an RPC receiver
23348         for an RCI package or an RACW type.
23349         Stylistic cleanup: change '/= Empty' to 'Present ()'; move body of
23350         Build_Remote_Subprogram_Proxy_Type into proper alphabetical order.
23351         (Get_PCS_Name): New subprogram. Returns the name of the PCS currently
23352         in use.
23353         (Specific_Add_RACW_Features): New subprogram. PCS-specific part of
23354         Add_RACW_Features.
23355         (Specific_Add_RAST_Features): New subprogram. PCS-specific part of
23356         Add_RAST_Features.
23357         (Assign_Subprogram_Identifier): New subprogram. Provision for assigning
23358         distribution subprogram identifiers that are either subprogram numbers
23359         or strings.
23360         (Get_Subprogram_Ids): New subprogram. Retrieve both the numeric and
23361         string distribution identifiers assigned to a given subprogram.
23362         (Get_Subprogram_Id): Reimplement in terms of Get_Subprogram_Ids.
23363         (Add_RAS_Dereference_TSS): Add comments.
23364         (Build_General_Calling_Stubs): Note that the RACW_Type formal parameter
23365         is not referenced yet because it will be used by the PolyORB DSA
23366         implementation.
23367         (Insert_Partition_Check): Remove fossile code.
23368         (First_RCI_Subprogram_Id): Document this constant.
23369         (Add_RAS_Access_TSS): Correct the setting of the Etype of the
23370         RAS_Access TSS.
23371         (Get_Pkg_Name_String): Remove subprogram. Usage occurrences are
23372         replaced with calls to Get_Library_Unit_Name_String. Previously there
23373         were several instances of the same code in different locations in the
23374         compiler; this checkin completes the replacement of all of these
23375         instances with calls to a common subprogram.
23376         Minor reformatting.
23377
23378         * sem_dist.adb: Remove comment noting that RPC receiver generation
23379         should be disabled for RACWs that implement RASs.
23380         (Process_Partition_Id): Use new subprogram Get_Library_Unit_Name_String.
23381
23382         * sem_util.ads, sem_util.adb (Has_Stream): New function
23383         (Get_Library_Unit_Name_String): New subprogram to retrieve the fully
23384         qualified name of a library unit into the name buffer.
23385         (Note_Possible_Modification): Generate a reference only
23386         if the context comes from source.
23387
23388         * snames.ads (PCS_Names): New subtype corresponding to names of
23389         supported implementations of the Partition Communication Subsystem
23390         (PCS) (i.e. the runtime library support modules for the distributed
23391         systems annex).
23392
23393 2004-11-18  Robert Dewar  <dewar@adacore.com>
23394             Ed Schonberg  <schonberg@adacore.com>
23395
23396         * einfo.ads, einfo.adb: Remove Is_Psected flag, no longer used
23397         (Has_Rep_Pragma): New function
23398         (Has_Attribute_Definition_Clause): New function
23399         (Record_Rep_Pragma): Moved here from sem_ch13.adb
23400         (Get_Rep_Pragma): Remove junk kludge for Stream_Convert pragma
23401
23402         * sem_ch13.ads, sem_ch13.adb (Record_Rep_Pragma): Moved to einfo.adb
23403
23404         * exp_prag.adb: (Expand_Pragma_Common_Object): New procedure
23405         (Expand_Pragma_Psect_Object): New procedure
23406         These procedures contain the revised and cleaned up processing for
23407         these two pragmas. This processing was formerly in Sem_Prag, but
23408         is more appropriately moved here. The cleanup involves making sure
23409         that the pragmas are properly attached to the tree, and that no
23410         nodes are improperly shared.
23411
23412         * sem_prag.adb: Move expansion of Common_Object and Psect_Object
23413         pragmas to Exp_Prag, which is more appropriate.
23414         Attach these two pragmas to the Rep_Item chain Use Rep_Item chain to
23415         check for duplicates Remove use of Is_Psected flag, no longer needed.
23416         Use new Make_String_Literal function with string.
23417
23418         * exp_attr.adb (Expand_Fpt_Attribute): The floating-point attributes
23419         that are functions return universal values, that have to be converted
23420         to the context type.
23421         Use new Make_String_Literal function with string.
23422         (Get_Stream_Convert_Pragma): New function, replaces the use of
23423         Get_Rep_Pragma, which had to be kludged to work in this case.
23424
23425         * freeze.adb: Use new Has_Rep_Pragma function
23426
23427         * exp_intr.adb, exp_ch3.adb, sem_attr.adb: Use new Make_String_Literal
23428         function with string.
23429         Use new Has_Rep_Pragma function.
23430
23431         * tbuild.ads, tbuild.adb (Make_String_Literal): New function, takes
23432         string argument.
23433
23434 2004-11-18  Robert Dewar  <dewar@adacore.com>
23435
23436         * errout.ads, errout.adb: (First_Sloc): New function
23437
23438         * par-ch5.adb (P_Condition): Check for redundant parens is now a style
23439         check (-gnatyx) instead of being included as a redundant construct
23440         warning.
23441
23442         * sem_ch6.adb: Change name Style_Check_Subprogram_Order to
23443         Style_Check_Order_Subprograms.
23444
23445         * style.ads, styleg.ads, styleg.adb, styleg-c.adb, stylesw.ads,
23446         stylesw.adb: Add Style_Check_Xtra_Parens
23447
23448         * usage.adb: Add line for -gnatyx (check extra parens)
23449
23450         * vms_data.ads: Add entry for STYLE_CHECKS=XTRA_PARENS => -gnatyx
23451
23452 2004-11-18  Ed Schonberg  <schonberg@adacore.com>
23453             Robert Dewar  <dewar@adacore.com>
23454
23455         * exp_ch4.adb (Expand_N_Selected_Component): If the component is the
23456         discriminant of a constrained subtype, analyze the copy of the
23457         corresponding constraint, because in some cases it may be only
23458         partially analyzed.
23459         Removes long-lived ??? comments.
23460
23461         * exp_ch7.adb (Establish_Transient_Scope): Remove complex code that
23462         handled controlled or secondary-stack expressions within the
23463         iteration_scheme of a loop.
23464
23465         * sem_ch5.adb (Analyze_Iteration_Scheme): Build a block to evaluate
23466         bounds that may contain functions calls, to prevent memory leaks when
23467         the bound contains a call to a function that uses the secondary stack.
23468         (Check_Complex_Bounds): Subsidiary of Analyze_Iteration_Scheme, to
23469         generate temporaries for loop bounds that might contain function calls
23470         that require secondary stack and/or finalization actions.
23471
23472         * sem_ch4.adb (Analyze_Indexed_Component_Form): If the prefix is a
23473         selected component and the selector is overloadable (not just a
23474         function) treat as function call, Analyze_Call will disambiguate if
23475         necessary.
23476         (Analyze_Selected_Component): Do not generate an actual subtype for the
23477         selected component if expansion is disabled. The actual subtype is only
23478         needed for constraint checks.
23479         (Analyze_Allocator): If restriction No_Streams is set, then do
23480         not permit objects to be declared of a stream type, or of a
23481         composite type containing a stream.
23482
23483         * restrict.ads: Remove the a-stream entry from Unit_Array, since
23484         No_Streams no longer prohibits with'ing this package.
23485
23486         * sem_ch3.adb (Build_Derived_Record_Type): If the parent type has
23487         discriminants, but the parent base has unknown discriminants, there is
23488         no discriminant constraint to inherit. Such a discrepancy can arise
23489         when the actual for a formal type with unknown discriminants is a
23490         similar private type whose full view has discriminants.
23491         (Analyze_Object_Declaration): If restriction No_Streams is set, then
23492         do not permit objects to be declared of a stream type, or of a
23493         composite type containing a stream.
23494
23495 2004-11-18  Ed Schonberg  <schonberg@adacore.com>
23496
23497         * exp_dbug.ads: Update documentation to reflect simpler encoding for
23498         protected operations.
23499
23500         * exp_ch9.adb (Build_Selected_Name): Do not include "PT" suffix in
23501         generated name, it complicates decoding in gdb and hinders debugging
23502         of protected operations.
23503         (Build_Barrier_Function_Specification): Set the Needs_Debug_Info
23504         flag for the protected entry barrier function.
23505         (Build_Protected_Entry_Specification): Set the Needs_Debug_Info
23506         flag for the protected entry function.
23507
23508 2004-11-18  Nicolas Setton  <setton@adacore.com>
23509
23510         * expect.c: Define __unix__ when __APPLE__ is defined.
23511
23512         * Makefile.in: Inform the value of the variable GMEM_LIB in the
23513         Darwin-specific section.
23514
23515         * lang-specs.h: Change the placement of the %1 marker.
23516         Works around the fact that gcc adds -fPIC by default under Darwin.
23517
23518 2004-11-18  Ed Schonberg  <schonberg@adacore.com>
23519
23520         * exp_pakd.adb (Convert_To_PAT_Type): After replacing the original
23521         type of the object with the packed array type, set the Analyzed flag
23522         on the object if it is an entity or simple indexed component, to avoid
23523         spurious type errors.
23524
23525 2004-11-18  Gary Dismukes  <dismukes@adacore.com>
23526
23527         * gnat1drv.adb, gnatbind.adb, gnatchop.adb, gnatfind.adb, gnatlink.adb,
23528         gnatls.adb, gnatxref.adb, gprep.adb: Output the copyright message on a
23529         separate line from the version message.
23530
23531 2004-11-18  Ed Falis  <falis@adacore.com>
23532
23533         * init.c (__gnat_map_signal): map SIGSEGV to Storage_Error for AE653
23534         vthreads.
23535         (init_float): Eliminate initialization of floating point status for
23536         AE653. The instructions have no effect for vThreads.
23537
23538 2004-11-18  Vincent Celier  <celier@adacore.com>
23539
23540         * make.adb (Gnatmake): Invoke gnatlink with -shared-libgcc when
23541         gnatbind is invoked with -shared.
23542
23543 2004-11-18  Jose Ruiz  <ruiz@adacore.com>
23544
23545         * s-tposen.adb (Lock_Entry): Remove the code for raising Program_Error
23546         for Detect_Blocking which is redundant with the check done within the
23547         procedure Protected_Single_Entry_Call.
23548         (Lock_Read_Only_Entry): Remove the code for raising Program_Error for
23549         Detect_Blocking which is redundant with the check done within the
23550         procedure Protected_Single_Entry_Call.
23551
23552 2004-11-18  Vincent Celier  <celier@adacore.com>
23553
23554         * makegpr.adb (Compile): Put the compiling switches (in package
23555         Compiler and on the command line) immediately after "-c", instead of
23556         at the end of the command line invocation of the compiler, when
23557         compiling a non-Ada file.
23558         (Build_Global_Archive): When there is no need to rebuild the archive,
23559         set Global_Archive_Exists, so that the archive is passed to the linker
23560         if one is needed.
23561
23562 2004-11-18  Robert Dewar  <dewar@adacore.com>
23563             Sergey Rybin  <rybin@adacore.com>
23564
23565         * gnat_ugn.texi:
23566         Remove extra paren check from list of checks for redundant constructs
23567         Add documentation of new -gnatyx style check (check extra parens)
23568         Remove paragraph about gnatelim debug options.
23569
23570         * gnat_rm.texi: Document that Ada.Streams now forbids creating stream
23571         objects rather than forbidding dependencies on the package Ada.Streams.
23572
23573         * sinfo.ads: Add ??? note that we should document pragmas passed to
23574         back end.
23575
23576         * g-expect.ads: Fix a few typos in the comments.
23577
23578 2004-11-09  Joseph S. Myers  <joseph@codesourcery.com>
23579
23580         * misc.c (gnat_handle_option): Use %< and %> for quoting in
23581         warning message.
23582
23583 2004-11-08  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
23584
23585         * a-numaux-x86.adb (Tan): Fix fdivp syntax.
23586
23587 2004-11-07  Andreas Schwab  <schwab@suse.de>
23588
23589         * Makefile.in (install-gnatlib): Remove spurious hyphen.
23590
23591 2004-11-02  Andrew Pinski  <pinskia@physics.uc.edu>
23592
23593         PR ada/18228
23594         * Makefile.in (darwin): Set soext to .dylib.
23595
23596 2004-10-26  Vincent Celier  <celier@gnat.com>
23597             Thomas Quinot   <quinot@act-europe.fr>
23598
23599         * g-socthi-vms.adb, g-socthi-mingw.adb, g-socthi-vxworks.ads:
23600         (C_Writev): Change MSG_Forced_Flags to Constants.MSG_Forced_Flags as
23601         there is no use of GNAT.Sockets.Constants.
23602         Remove remaining pragma Import for C_Write
23603         Remove C_Read and C_Write from internal implementation unit
23604         GNAT.Sockets.Thin, as their usage for sockets is non-portable (using
23605         the read and write functions from the system runtime library is fine
23606         on UNIX but won't work under Windows).
23607
23608         * g-socket.adb: (Abort_Selector): Use C_Send instead of C_Write.
23609         (Check_Selector): Use C_Recv instead of C_Read.
23610         Selectors are the GNAT.Sockets abstraction to perform a select()
23611         call on a set of descriptors. To allow abortion of an ongoing
23612         select operation, some data is written to a dedicated socket that
23613         is always monitored.
23614         Under Windows, the write and read library functions cannot operate
23615         on sockets, so we need to use send and recv instead, which is portable
23616         across all supported platforms.
23617
23618         * g-socthi.ads: Remove C_Read and C_Write from internal implementation
23619         unit GNAT.Sockets.Thin, as their usage for sockets is non-portable
23620         (using the read and write functions from the system runtime library is
23621         fine on UNIX but won't work under Windows).
23622
23623 2004-10-26  Nicolas Setton  <setton@act-europe.fr>
23624
23625         * mlib-tgt-darwin.adb: New file.
23626
23627         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
23628         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
23629         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
23630         mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb (Archive_Indexer_Options): New
23631         subprogram body.
23632
23633         * Makefile.in: Add support for building shared libraries under Darwin.
23634         (EXTRA_GNATRTL_NONTASKING_OBJS, ppc-vxworks): Add s-vxwexc.o, containing
23635         the low level EH init subprogram to be called from __gnat_initialize.
23636
23637         * mlib-tgt.ads, mlib-tgt.adb (Archive_Indexer_Options): New subprogram,
23638         indicates which options to pass to the archive indexer.
23639
23640         * mlib-utl.adb: Add support for calling ranlib with additional
23641         options. This is needed for instance under Mac OS X.
23642         (Ranlib_Options): New global variable, used to store the potential
23643         options to pass to ranlib.
23644         (Ar): Use Ranlib_Options when spawning ranlib.
23645         (Initialize): Set the value of ranlib option.
23646
23647 2004-10-26  Olivier Hainque  <hainque@act-europe.fr>
23648
23649         * s-parame-linux.adb (Minimum_Stack_Size): Adjust to return 12K
23650         instead of 8K, to reflect the real potential needs for stack-checking
23651         in the ZCX case.
23652
23653 2004-10-26  Pascal Obry  <obry@gnat.com>
23654
23655         * s-parame-mingw.adb (Default_Stack_Size): Add some comments.
23656
23657         * s-taprop-mingw.adb (Create_Task): Set initial stack size to 1024. On
23658         Windows only the initial thread stack size can be set so it is good to
23659         start we a low stack size.
23660         The OS will adjust the size as needed.
23661
23662 2004-10-26  Olivier Hainque  <hainque@act-europe.fr>
23663             Nicolas Setton  <setton@act-europe.fr>
23664
23665         * expect.c, adaint.c, link.c, sysdep.c (unix sections): Guard with
23666         "__unix__" instead of "unix".
23667         The latter is implicitly defined by gcc3.2 but not by gcc >= 3.4, so the
23668         sections were just mistakenly ignored. The former is
23669         implicitely defined by gcc2.8, gcc3.2 and gcc3.4.
23670         Update #ifdef preprocessor macro to detect the symbol __hpux__ instead
23671         of hpux. This prevents an unwanted definition of the symbol
23672         convert_addresses in adaint.o.
23673
23674 2004-10-26  Gary Dismukes  <dismukes@gnat.com>
23675
23676         * a-exexpr.adb (Setup_Key): Change initial value to 16#DEAD#, for
23677         compatibility with type Unwind_Word on 16-bit targets such as AAMP.
23678
23679 2004-10-26  Cyrille Comar  <comar@act-europe.fr>
23680
23681         * a-filico.ads, a-filico.adb: fix incorrect header.
23682
23683 2004-10-26  Javier Miranda  <miranda@gnat.com>
23684
23685         * a-ststio.ads: Fix typo in identifier
23686
23687 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
23688
23689         * sem_ch4.adb: Minor reformatting.
23690
23691 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
23692
23693         * checks.adb (Expr_Known_Valid): If floating-point validity checks are
23694         enabled, check the result of unary and binary operations when the
23695         expression is the right-hand side of an assignment.
23696
23697 2004-10-26  Vincent Celier  <celier@gnat.com>
23698
23699         * clean.adb (Delete): Do not output warnings when in quiet output and
23700         not in verbose mode.
23701         (Force_Deletions): New Boolean flag, defaulted to False
23702         (Delete): Only delete a file if it is writable, and when
23703         Force_Deletions is True.
23704         (Parse_Cmd_Line): New switch -f: set Force_Deletions to True
23705         (Usage): Line for new switch -f
23706         (Clean_Directory): Use GNAT.OS_Lib.Set_Writable instead of rolling our
23707         own.
23708
23709 2004-10-26  Eric Botcazou  <ebotcazou@act-europe.fr>
23710
23711         * decl.c (gnat_to_gnu_field): Use the type of the inner object for a
23712         JM type only if its size matches that of the wrapper.  When a size is
23713         prescribed and the field is not aliased, remove the wrapper of a JM
23714         type only if the size is not greater than that of the packed array.
23715         (gnat_to_gnu_entity): Change the extension of packed array wrappers
23716         from LJM to JM.
23717
23718 2004-10-26  Geert Bosch  <bosch@gnat.com>
23719
23720         * eval_fat.adb (Eps_Model,Eps_Denorm): Remove, no longer used.
23721         (Succ): Re-implement using Scaling, Exponent and Ceiling attributes.
23722         (Pred): Implement in terms of Succ.
23723
23724 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
23725
23726         * exp_aggr.adb (Safe_Component): An aggregate component that is an
23727         unchecked conversion is safe for in-place use if the expression of the
23728         conversion is safe.
23729         (Expand_Array_Aggregate): An aggregate that initializes an allocator may
23730         be expandable in place even if the aggregate does not come from source.
23731         (Convert_Array_Aggr_In_Allocator): New procedure to initialize the
23732         designated object of an allocator in place, rather than building it
23733         first on the stack. The previous scheme forces a full copy of the array,
23734         and may be altogether unsusable if the size of the array is too large
23735         for stack allocation.
23736
23737 2004-10-26  Robert Dewar  <dewar@gnat.com>
23738
23739         * exp_ch4.adb (Expand_N_Op_Eq): Make sure we expand a loop for array
23740         compares if the component is atomic.
23741
23742         * exp_ch5.adb (Expand_Assign_Array): Make sure we expand a loop for
23743         array assignment if the component type is atomic.
23744
23745 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
23746             Eric Botcazou  <ebotcazou@act-europe.fr>
23747
23748         * exp_ch6.adb (Expand_Actuals): If the actual for an in-out parameter
23749         is aliased and is a by_reference type, do not pass by copy.
23750         (Expand_N_Function_Call) <Rhs_Of_Assign_Or_Decl>: New function to
23751         detect whether the call is in the right side of an assignment or
23752         the expression of an object declaration.  Recurse on component
23753         association within aggregates.
23754         Call it in the condition that determines whether the temporary is
23755         necessary for correct stack-checking.
23756
23757 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
23758
23759         * exp_dist.adb (Build_General_Calling_Stubs): New formal parameter
23760         RACW_Type, used in the PolyORB version.
23761         Rename RCI_Info to RCI_Locator, for consistency between the PolyORB
23762         version and the GARLIC version.
23763
23764         * snames.ads, snames.adb, s-parint.ads, s-parint.adb:
23765         Rename RCI_Info to RCI_Locator for better consistency between the
23766         GARLIC and PolyORB versions of the distributed systems annex.
23767         (DSA_Implementation_Name): This enumeration lists the possible
23768         implementations of the Partition Communication Subsystem for the
23769         Distributed Systems Annex (DSA). The three available implementations
23770         are the dummy stub implementation (No_DSA), and two versions based on
23771         two different distribution runtime libraries: GARLIC and PolyORB. Both
23772         the GARLIC PCS and the PolyORB PCS are part of the GLADE distribution
23773         technology.
23774         Change the literal GLADE_DSA to GARLIC_DSA to accurately describe
23775         that organization.
23776
23777         * rtsfind.ads: Rename RCI_Info to RCI_Locator for better consistency
23778         between the GARLIC and PolyORB versions of the distributed systems
23779         annex.
23780         Remove RE_Unbounded_Reclaim_Pool since it is unused.
23781
23782 2004-10-26  Gary Dismukes  <dismukes@gnat.com>
23783
23784         * gnat1drv.adb: Suppress calling the back end when
23785         Frontend_Layout_On_Target is true.
23786
23787 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
23788
23789         * g-os_lib.ads, g-os_lib.adb (Set_Executable, Set_Writable,
23790         Set_Read_Only): New subprograms.
23791         These new routines allow the user to set or unset the Owner execute
23792         and Owner write permission flags on a file.
23793
23794         * makegpr.adb, mlib.adb, mlib-prj.adb: Use
23795         GNAT.OS_Lib.Set_Executable instead of rolling our own.
23796
23797 2004-10-26  Matthew Gingell  <gingell@gnat.com>
23798
23799         * i-cpp.ads, i-cpp.adb: Change layout of VTable for new C++ ABI.
23800
23801 2004-10-26  Pascal Obry  <obry@gnat.com>
23802
23803         * init.c (__gnat_error_handler) [Win32]: Instead of trying to read the
23804         memory before the faulting page we properly test the process read
23805         access for this address using appropriate Win32 routine.
23806         (HPUX sections): guard with "__hpux__" instead of "hpux".
23807
23808 2004-10-26  Robert Dewar  <dewar@gnat.com>
23809
23810         * lib-xref.adb (Generate_Reference): Don't complain about reference to
23811         entry parameter if pragma Unreferenced set, since we do not properly
23812         handle the case of multiple parameters.
23813
23814 2004-10-26  Vincent Celier  <celier@gnat.com>
23815
23816         * prj-env.adb: (Contains_ALI_Files): New Boolean function
23817         (Ada_Objects_Path.Add): For a library project, add to the object path
23818         the library directory only if there is no object directory or if the
23819         library directory contains ALI files.
23820         (Set_Ada_Paths.Add.Recursive_Add): Ditto
23821
23822 2004-10-26  Vincent Celier  <celier@gnat.com>
23823
23824         * prj-nmsc.adb (Language_Independent_Check): Do not forbid virtual
23825         extension of library projects.
23826
23827         * prj-part.adb: If env var ADA_PROJECT_PATH is not defined, project
23828         path defaults to ".:<prefix>/lib/gnat".
23829         (Parse): For an extending all project, allow direct import of a project
23830         that is virtually extended.
23831
23832         * prj-proc.adb (Imported_Or_Extended_Project_From): If a project with
23833         the specified name is directly imported, return its ID. Otherwise, if
23834         an extension of this project is imported, return the ID of the
23835         extension.
23836
23837 2004-10-26  Robert Dewar  <dewar@gnat.com>
23838
23839         * s-arit64.adb: (Le3): New function, used by Scaled_Divide
23840         (Sub3): New procedure, used by Scaled_Divide
23841         (Scaled_Divide): Substantial rewrite, avoid duplicated code, and also
23842         correct more than one instance of failure to propagate carries
23843         correctly.
23844         (Double_Divide): Handle overflow case of largest negative number
23845         divided by minus one.
23846
23847         * s-arit64.ads (Double_Divide): Document that overflow can occur in
23848         the case of a quotient value out of range.
23849         Fix comments.
23850
23851 2004-10-26  Robert Dewar  <dewar@gnat.com>
23852
23853         * s-bitops.adb (Bit_Eq): Remove redundant check.
23854
23855         * s-bitops.ads: Minor comment updates
23856         Change some occurrences of Address to System.Address
23857
23858         * s-carsi8.ads: Fix minor cut-and-paste error in comments
23859
23860 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
23861
23862         * sem_attr.adb (Resolve_Attribute, case 'Access): Apply proper
23863         accessibility check to prefix that is a protected operation.
23864
23865 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
23866
23867         * sem_ch10.adb (Optional_Subunit): If file of expected subunit is
23868         empty, post message on stub.
23869
23870 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
23871             Javier Miranda  <miranda@gnat.com>
23872
23873         * sem_ch12.adb (In_Main_Context): Predicate to determine whether the
23874         current instance appears within a unit that is directly in the context
23875         of the main unit.
23876         Used to determine whether the body of the instance should be analyzed
23877         immediately after its spec, to make its subprogram bodies available
23878         for front-end inlining.
23879         (Analyze_Formal_Array_Type): Cleanup condition that checks that range
23880         constraint is not allowed on the component type (AARM 12.5.3(3))
23881
23882 2004-10-26  Cyrille Comar  <comar@act-europe.fr>
23883
23884         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case
23885         'Storage_Pool): enhance, document & limit detection of non-sharable
23886         internal pools.
23887
23888         * impunit.adb: Make System.Pool_Global and System.Pool_Local visible.
23889
23890         * s-pooglo.ads: Add more documentation now that this pool is properly
23891         documented.
23892
23893 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
23894
23895         * sem_ch3.adb (Complete_Private_Subtype): If the full view is a task
23896         or protected type with discriminants, do not constrain the
23897         corresponding record type if the subtype declaration has no
23898         discriminant constraints. This can be the case in source code, or in
23899         the subtype declaration created to rename an actual type within an
23900         instantiation.
23901
23902 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
23903
23904         * sem_ch6.adb (Analyze_Subprogram_Body): If body is a subunit for a
23905         different kind of stub (possibly wrong name for file), do not check
23906         for conformance.
23907         (Uses_Secondary_Stack): New subsidiary to Build_Body_To_Inline. If body
23908         includes call to some function that returns an unconstrained type, do
23909         not inline.
23910
23911 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
23912
23913         * sem_elab.adb (Check_Elab_Call): Do not check a call that does not
23914         appear in the code for the main unit. Dependencies among units in the
23915         context of the main unit are established when those other units are
23916         compiled. Otherwise spurious elaboration constraints can generate
23917         incorrect elaboration circularities.
23918
23919 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
23920             Ed Schonberg   <schonberg@gnat.com>
23921
23922         * sem_util.adb (Is_Aliased_View): Defend against the case where this
23923         subprogram is called with a parameter that is not an object name. This
23924         situation arises for some cases of illegal code, which is diagnosed
23925         later, and in this case it is wrong to call Is_Aliased, as that might
23926         cause a compiler crash.
23927         (Explain_Limited_Type): Refine previous fix to include
23928         inherited components of derived types, to provide complete information.
23929
23930         * exp_ch9.adb (Set_Privals): Set the Ekind of the actual object that
23931         is the prival for a protected object.
23932         It is necessary to mark this entity as a variable, in addition to
23933         flagging it as Aliased, because Sem_Util.Is_Aliased_View has been
23934         modified to avoid checking the Aliased flag on entities that are not
23935         objects. (Checking that flag for non-objects is erroneous and could
23936         lead to a compiler crash).
23937
23938 2004-10-26  Robert Dewar  <dewar@gnat.com>
23939
23940         * s-fatgen.adb (Pred): Fix redundant test for X > 0.0, since if
23941         X_Frac = 0.5, then we know that the number X must be positive.
23942         (Succ): Remove the same redundant test, and also fix the primary test
23943         to test for X_Frac = -0.5 (used to be 0.5) which is clearly wrong.
23944         Minor reformatting
23945         (Decompose): Add fuller comments to spec
23946
23947 2004-10-26  Pascal Obry  <obry@gnat.com>
23948
23949         * tracebak.c (IS_BAD_PTR): Use IsBadCodePtr on Win32 to check for ptr
23950         validity (process must have read access). Set to 0 in all other cases.
23951         (STOP_FRAME): Now check for ptr validity to avoid a segmentation
23952         violation on Win32.
23953         (VALID_STACK_FRAME): Check for ptr validity on Win32 to avoid a
23954         segmentation violation.
23955
23956 2004-10-26  Eric Botcazou  <ebotcazou@act-europe.fr>
23957
23958         * trans.c (call_to_gnu): For an (in-)out parameter passed by reference
23959         whose type is a constructed subtype of an aliased object with an
23960         unconstrained nominal subtype, convert the actual to the constructed
23961         subtype before taking its address.
23962
23963 2004-10-26  Vincent Celier  <celier@gnat.com>
23964
23965         * a-dirval.ads, a-dirval.adb, a-dirval-vms.adb, a-dirval-mingw.adb
23966         (Is_Path_Name_Case_Sensitive): New function
23967
23968         * a-direct.adb (To_Lower_If_Case_Insensitive): New procedure
23969         (Base_Name, Simple_Name, Current_Directory, Compose,
23970         Containing_Directory, Full_Name): Call To_Lower_If_Case_Insensitive on
23971         the result.
23972
23973 2004-10-26  Cyrille Comar    <comar@act-europe.fr>
23974             Vasiliy Fofanov  <fofanov@act-europe.fr>
23975             Vincent Celier   <celier@gnat.com>
23976
23977         * gnat_ugn.texi: Generalize "finding memory problems" section into a
23978         "memory management issues" section and document some of the useful
23979         memory pools provided as part of the GNAT library.
23980         Remove "virtual" from declaration of A::method2 in
23981         the simple example of Ada/C++ mixed system.
23982         Library Projects may be virtually extended: their virtual extensions
23983         are not Library Projects.
23984         Added section on extending project hierarchies.
23985
23986 2004-10-19  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
23987
23988         * adaint.c (__gnat_get_libraries_from_registry): Cast value
23989         to LPBYTE.
23990         (__gnat_portable_spawn): Remove const.
23991
23992         * mingw32.h (MAXPATHLEN): Check for previous definition.
23993
23994 2004-10-17  Matthias Klose  <doko@debian.org>
23995
23996         * gnatvsn.ads: Set gnat library version to 4.0.
23997
23998 2004-10-05  Vincent Celier  <celier@gnat.com>
23999
24000         * mlib-tgt.ads: (Build_Dynamic_Library): New parameter Options_2
24001
24002 2004-10-04  Laurent Guerby  <laurent@guerby.net>
24003
24004         PR ada/15156
24005         * Makefile.in: Define and use RANLIB_FLAGS.
24006
24007 2004-10-04  Pascal Obry  <obry@gnat.com>
24008
24009         * tracebak.c: Always set LOWEST_ADDR to 0 on Win32 (as done on all
24010         other x86 platforms).
24011
24012 2004-10-04  Olivier Hainque  <hainque@act-europe.fr>
24013
24014         * s-tassta.adb (Task_Wrapper): Make it Convention C, which makes sense
24015         in general and triggers stack alignment adjustment for thread entry
24016         points on targets where this is necessary.
24017
24018 2004-10-04  Bernard Banner  <banner@gnat.com>
24019
24020         PR ada/13897
24021         * Makefile.in: Add section for powerpc linux
24022         Add variant i-vxwork-x86.ads
24023
24024         * i-vxwork-x86.ads, system-linux-ppc.ads: New files.
24025
24026 2004-10-04  Olivier Hainque  <hainque@act-europe.fr>
24027
24028         * init.c (__gnat_initialize): Call an Ada subprogram to perform the
24029         table registration calls when need be. Ensures no reference to the crt
24030         ctors symbol are issued in the SJLJ case, which avoids possible
24031         undefined symbol errors in the case of modules to be statically linked
24032         with the kernel.
24033
24034 2004-10-04  Javier Miranda  <miranda@gnat.com>
24035
24036         * sem_ch4.adb (Try_Object_Operation): Reformat the code to expand
24037         in-line the code corresponding to subprogram Analyze_Actuals. In
24038         addition, analyze the actuals only in case of subprogram call.
24039
24040 2004-10-04  Ed Falis  <falis@gnat.com>
24041
24042         * s-vxwork-x86.ads: (FP_CONTEXT): Defined to be correct size
24043
24044 2004-10-04  Sergey Rybin  <rybin@act-europe.fr>
24045
24046         * g-dirope.ads (Base_Name): Clarify the meaning of the Suffix parameter
24047         in the documentation.
24048
24049 2004-10-04  Robert Dewar  <dewar@gnat.com>
24050
24051         * sem_ch5.adb (Unblocked_Exit_Count): Now used for blocks as well as
24052         IF and CASE.
24053         (Analyze_Block_Statement): Add circuitry to detect following dead code
24054         (Check_Unreachable_Code): Handle case of block exit
24055
24056 2004-10-04  Robert Dewar  <dewar@gnat.com>
24057
24058         * g-spipat.adb: (XMatch): Avoid warning for Logic_Error call
24059         (XMatchD): Avoid warning for Logic_Error call
24060
24061 2004-10-04  Robert Dewar  <dewar@gnat.com>
24062
24063         * exp_ch4.adb (Is_Procedure_Actual): Correct so that this does not
24064         consider expressions buried within a procedure actual to be an actual.
24065         This caused some blowups with uses of packed slices within a procedure
24066         actual.
24067
24068 2004-10-04  Robert Dewar  <dewar@gnat.com>
24069
24070         * exp_ch3.adb (Needs_Simple_Initialization): Modular packed arrays no
24071         longer need to be initialized to zero.
24072         (Get_Simple_Init_Val): Modular packed arrays no longer need to be
24073         initialized to zero.
24074
24075         * checks.adb (Expr_Known_Valid): Packed arrays are now always
24076         considered valid, even if the representation is modular. That's correct
24077         now that we no longer initialize packed modular arrays to zero.
24078
24079         * exp_dbug.ads: Clarify documentation on handling of PAD and JM
24080         suffixes. These are now documented as the only cases in which the
24081         debugger ignores outer records.
24082         Previously, the spec allowed arbitrary suffixes for this purpose.
24083         Change name of LJM to JM for packed array pad records
24084         Create separate section on packed array handling, and add a whole new
24085         set of comments to this section describing the situation with packed
24086         modular types and justification requirements depending on endianness.
24087
24088 2004-10-04  Robert Dewar  <dewar@gnat.com>
24089
24090         * a-except.adb: Add a comment for last change
24091
24092         * einfo.ads: Minor spelling correction in comment
24093
24094         * exp_pakd.adb, gnatdll.adb, prj-attr.ads: Minor reformatting
24095
24096         * sem_ch11.adb: Fix a case of using | instead of \ for continuation
24097         messages.
24098
24099         * sem_util.ads: Minor comment update
24100
24101 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
24102
24103         * sem_ch6.adb (Analyze_Subprogram_Body): Do not treat Inline as
24104         Inline_Always when in Configurable_Run_Time mode.
24105
24106         * sem_prag.adb (Process_Convention): If entity is an inherited
24107         subprogram, apply convention to parent subprogram if in same scope.
24108         (Analyze_Pragma, case Inline): Do not treat Inline as Inline_Always
24109         when in Configurable_Run_Time mode.
24110
24111 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
24112
24113         * sem_ch3.adb (Build_Derived_Record_Type): Set First/Last entity of
24114         class_wide type after component list has been inherited.
24115
24116 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
24117
24118         * sem_ch12.adb (Check_Generic_Actuals): New predicate
24119         Denotes_Previous_Actual, to handle properly the case of a private
24120         actual that is also the component type of a subsequent array actual.
24121         The visibility status of the first actual is not affected when the
24122         second is installed.
24123         (Process_Nested_Formal): Subsidiary of Instantiate_Formal_Package, to
24124         make fully recursive the treatment of formals of packages declared
24125         with a box.
24126         (Restore_Nested_Formal): Subsidiary of Restore_Private_Views, to undo
24127         the above on exit from an instantiation.
24128         (Denotes_Formal_Package): When called from Restore_Private_Views, ignore
24129         current instantiation which is now complete.
24130         (Analyze_Package_Instantiation): No instantiated body is needed if the
24131         main unit is generic. Efficient, and avoid anomalies when a instance
24132         appears in a package accessed through rtsfind.
24133
24134 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
24135
24136         * exp_ch6.adb (Expand_N_Function_Call): If stack checking is enabled,
24137         do not generate a declaration for a temporary if the call is part of a
24138         library-level instantiation.
24139
24140 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
24141
24142         * sem_util.adb (Explain_Limited_Type): Ignore internal components when
24143         searching for a limited component to flag.
24144
24145         * exp_attr.adb (Freeze_Stream_Subprogram): Subsidiary procedure to
24146         expansion of Input, to account for the fact that the implicit call
24147         generated by the attribute reference must freeze the user-defined
24148         stream subprogram. This is only relevant to 'Input, because it can
24149         appear in an object declaration, prior to the body of the subprogram.
24150
24151         * sem_ch13.adb (Rep_Item_Too_Late): Make the error non-serious, so that
24152         expansion can proceed and further errors uncovered.
24153         (Minor clean up): Fix cases of using | instead of \ for continuation
24154         messages.
24155
24156 2004-10-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
24157
24158         * cuintp.c, decl.c, utils2.c: Use gcc_assert and gcc_unreachable.
24159
24160         * trans.c (assoc_to_constructor): Fix unused var warning if no checking.
24161         (gnat_gimplify_expr, case ADDR_EXPR): Fix error in last change.
24162         Use gcc_assert and gcc_unreachable.
24163
24164         * decl.c (gnat_to_gnu_entity, case object): Check and process a
24165         specified alignment before validating size.
24166         (gnat_to_gnu_entity) <E_Modular_Integer_Subtype>: Create a
24167         stripped-down declaration for the type of the inner field when making
24168         a JM type.
24169
24170         * utils.c (finish_record_type): Do not compute the size in units
24171         incrementally. Instead compute it once for the rep clause case.
24172         Use gcc_assert and gcc_unreachable.
24173
24174 2004-10-04  Vincent Celier  <celier@gnat.com>
24175
24176         * a-dirval-mingw.adb (Invalid_Character): Add '\' as invalid character
24177         in file name.
24178         (Is_Valid_Path_Name): Take '/' as a directory separator.
24179
24180 2004-10-04  Vincent Celier  <celier@gnat.com>
24181
24182         * prj-part.adb (Parse_Single_Project): Call Is_Extending_All
24183         (Extended_Project) only if Extended_Project is defined, to avoid
24184         assertion error.
24185         (Post_Parse_Context_Clause): Always call Set_Path_Name_Of with a
24186         resolved path.
24187         (Parse_Single_Project): Ditto.
24188
24189         * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Do not call
24190         Add_To_Project_Path for virtual projects.
24191
24192 2004-10-04  Vincent Celier  <celier@gnat.com>
24193
24194         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
24195         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
24196         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb,
24197         mlib-tgt-vxworks.adb, mlib-tgt.adb (Build_Dynamic_Library): New
24198         parameter Options_2.
24199
24200         * mlib-prj.ads, mlib-prj.adb (Build_Library): Call
24201         Build_Dynamic_Library with an empty Options_2.
24202
24203         * mlib-utl.ads, mlib-utl.adb (Gcc): Parameter Options_2 has no
24204         default anymore.
24205
24206         * makegpr.adb (Get_Imported_Directories.add): Remove trailing
24207         directory separator, if any.
24208         (Gprmake): Do not allow mains on the command line for library projects.
24209         Do not attempt to link when the project is a library project.
24210         (Library_Opts): New table to store Library_Options.
24211         (Build_Library): If Library_Options is specified, pass these options
24212         when building a shared library.
24213
24214 2004-10-04  Jose Ruiz  <ruiz@act-europe.fr>
24215
24216         * s-tposen.adb (Service_Entry): The object must be always unlocked at
24217         the end of this procedure now that the unlock operation was inserted
24218         by the expander.
24219
24220 2004-10-04  Jose Ruiz  <ruiz@act-europe.fr>
24221
24222         * targparm.ads, targparm.adb (Targparm_Tags): Add PAS value
24223         corresponding to the Preallocated_Stacks flags in System.
24224         (Get_Target_Parameters): Including the processing for
24225         Preallocated_Stacks.
24226
24227         * system.ads, system-vxworks-x86.ads, system-darwin-ppc.ads,
24228         system-vms_64.ads, system-unixware.ads, system-linux-ia64.ads,
24229         system-freebsd-x86.ads, system-lynxos-ppc.ads, system-lynxos-x86.ads,
24230         system-linux-x86_64.ads, system-tru64.ads, system-aix.ads,
24231         system-vxworks-sparcv9.ads, system-vxworks-xscale.ads,
24232         system-solaris-x86.ads, system-irix-o32.ads, system-irix-n32.ads,
24233         system-hpux.ads, system-vxworks-m68k.ads, system-linux-x86.ads,
24234         system-vxworks-mips.ads, system-os2.ads, system-interix.ads,
24235         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
24236         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
24237         system-vxworks-alpha.ads: Add the flag Preallocated_Stacks, that is
24238         used to signal whether the compiler creates the required stacks and
24239         descriptors for the different tasks (when True) or it is done by the
24240         underlying operating system at run time (when False).
24241         It is initially set to False in all targets.
24242
24243         * exp_ch9.adb (Expand_N_Task_Type_Declaration): Create the task stack
24244         if it is supported by the target.
24245         (Make_Task_Create_Call): Pass the stack address if it has been
24246         previously created. Otherwise pass a Null_Address.
24247
24248         * snames.adb: Add _stack.
24249
24250         * snames.ads: Add Name_uStack. Required to allow the expander to
24251         statically allocated task stacks.
24252
24253         * s-tarest.ads, s-tarest.adb (Create_Restricted_Task): Add
24254         Stack_Address argument.
24255         Check that its value is equal to Null_Address because this target does
24256         not support the static stack allocation.
24257
24258 2004-10-04  Thomas Quinot  <quinot@act-europe.fr>
24259
24260         * usage.adb: Change "pragma inline" to "pragma Inline" in information
24261         and error messages
24262
24263 2004-10-04  Thomas Quinot  <quinot@act-europe.fr>
24264
24265         * exp_dist.adb: Split declaration of asynchronous flag out of
24266         Add_RACW_Read_Attribute.
24267         Minor reformatting for better alignment with PolyORB version.
24268         Store the entity for the asynchronous flag of an RACW, rather than the
24269         expression, in the asynchronous flags table. This will allow this flag
24270         to be used in other subprograms beside Add_RACW_Read_Attribute.
24271
24272 2004-10-04  Thomas Quinot  <quinot@act-europe.fr>
24273
24274         * g-socket.ads, g-socket.adb, g-socthi.adb, socket.c,
24275         g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
24276         g-soccon-interix.ads, g-soccon-solaris.ads, g-soccon-vms.adb,
24277         g-soccon-mingw.ads, g-soccon-vxworks.ads, g-soccon-freebsd.ads,
24278         g-soccon.ads, g-soccon-unixware.ads, g-soccon-tru64.ads:  Add new
24279         sockets constant MSG_NOSIGNAL (Linux-specific).
24280         Add new sockets constant MSG_Forced_Flags, list of flags to be set on
24281         all Send operations.
24282         For Linux, set MSG_NOSIGNAL on all send operations to prevent them
24283         from trigerring SIGPIPE.
24284         Rename components to avoid clash with Ada 2005 possible reserved
24285         word 'interface'.
24286         (Check_Selector): When the select system call returns with an error
24287         condition, propagate Socket_Error to the caller.
24288
24289 2004-10-01  Jan Hubicka  <jh@suse.cz>
24290
24291         * misc.c (gnat_expand_body): Update call of tree_rest_of_compilation.
24292
24293 2004-09-23  Robert Dewar  <dewar@gnat.com>
24294
24295         PR ada/17540
24296         * sem_prag.adb (Process_Import_Or_Interface): Don't set Is_Public here,
24297         instead do this at freeze time (we won't do it if there is an address
24298         clause).
24299         Change "pragma inline" to "pragma Inline" in information and error
24300         messages.
24301         Minor reformatting.
24302
24303         * freeze.adb (Check_Address_Clause): Remove previous change, not the
24304         right way of doing things after all.
24305         (Freeze_Entity): For object, set Is_Public for imported entities
24306         unless there is an address clause present.
24307
24308 2004-09-21  Olivier Hainque  <hainque@act-europe.fr>
24309
24310         * decl.c (gnat_to_gnu_entity) <E_General_Access_Type>: Check for a
24311         dummy designated type via TYPE_MODE instead of COMPLETE_TYPE_P. This
24312         ensures proper handling of types with rep clauses, which might have
24313         their TYPE_SIZE set already.
24314
24315 2004-09-21  Robert Dewar  <dewar@gnat.com>
24316
24317         * decl.c (gnat_to_gnu_type, case E_Modular_Integer_Type): Wrap modular
24318         packed array types in both little- and big-endian cases. This change
24319         ensures that we no longer count on the unused bits being initialized
24320         for such types (and in particular ensures that equality testing will
24321         only read the relevant bits).
24322         Change name TYPE_LEFT_JUSTIFIED_MODULAR_P to TYPE_JUSTIFIED_MODULAR_P
24323         These changes mean that we no longer need to initialize small packed
24324         arrays.
24325         (gnat_to_gnu_entity) <E_Record_Subtype>: Apply the same
24326         optimization to an LJM field as to its parent field.
24327
24328         * ada-tree.h, trans.c, utils.c, utils2.c:
24329         Change name TYPE_LEFT_JUSTIFIED_MODULAR_P to TYPE_JUSTIFIED_MODULAR_P
24330
24331 2004-09-20  Jan Hubicka  <jh@suse.cz>
24332
24333         * utils.c (gnat_finalize): Remove.
24334         (end_subprog_body): Directly call cgraph_finalize_function;
24335         do not lower the nested functions.
24336
24337 2004-09-20  Robert Dewar  <dewar@gnat.com>
24338
24339         PR ada/17540
24340         * freeze.adb (Check_Address_Clause): Reset Is_Imported and Is_Public
24341         if an address clause is present, since that means that the Import
24342         should be ignored.
24343
24344 2004-09-20  Arnaud Charlet  <charlet@act-europe.fr>
24345
24346         * 5tsystem.ads: Removed, no longer used.
24347
24348 2004-09-17  Jeffrey D. Oldham  <oldham@codesourcery.com>
24349             Zack Weinberg  <zack@codesourcery.com>
24350
24351         * ada-tree.def: Use tree_code_class enumeration constants
24352         instead of code letters.
24353         * ada-tree.h, decl.c, misc.c, trans.c, utils.c, utils2.c:
24354         Update for new tree-class enumeration constants.
24355
24356 2004-09-17  Vincent Celier  <celier@gnat.com>
24357
24358         * prj-attr-pm.ads, prj-attr-pm.adb: New files, to split some private
24359         capabilities of the general project manager.
24360
24361 2004-09-09  Vincent Celier  <celier@gnat.com>
24362
24363         * a-direct.ads: Add pragma Ada_05
24364         (Directory_Entry_Type): Give default value to component Kind to avoid
24365         not initialized warnings.
24366
24367         * a-direct.adb (Current_Directory): Remove directory separator at the
24368         end.
24369         (Delete_Directory, Delete_Tree): Raise Name_Error if Directory is not
24370         an existing directory.
24371         (Fetch_Next_Entry): Give default value to variable Kind to avoid warning
24372         (Size (String)): Function C_Size returns Long_Integer, not File_Size.
24373         Convert the result to File_Size.
24374
24375         * prj.ads: (Project_Error): New exception
24376
24377         * prj-attr.adb: Except in procedure Initialize, Fail comes from
24378         Prj.Com, not from Osint.
24379         (Attrs, Package_Attributes): Tables moved to private part of spec
24380         (Add_Attribute, Add_Unknown_Package): Moved to new child package
24381         Prj.Attr.PM.
24382         (Register_New_Package (Name, Attributes), Register_New_Attribute): Raise
24383         Prj.Project_Error after call to Fail.
24384         (Register_New_Package (Name, Id)): Set Id to Empty_Package after calling
24385         Fail. Check that package name is not already in use.
24386
24387         * prj-attr.ads: Comment updates to indicate that all subprograms may be
24388         used by tools, not only by the project manager, and to indicate that
24389         exception Prj.Prj_Error may be raised in case of problem.
24390         (Add_Unknown_Package, Add_Attribute): Moved to new child package
24391         Prj.Attr.PM.
24392         (Attrs, Package_Attributes): Table instantiations moved from the body to
24393         the private part to be accessible from Prj.Attr.PM body.
24394
24395         * prj-dect.adb (Parse_Package_Declaration): Call Add_Unknown_Package
24396         from new package Prj.Attr.PM.
24397         (Parse_Attribute_Declaration): Call Add_Attribute from new package
24398         Prj.Attr.PM.
24399
24400         * Makefile.in: Add prj-attr-pm.o to gnatmake object list
24401
24402         * gnatbind.adb (Gnatbind): Correct warning message (Elaboration_Check
24403         instead of Elaboration_Checks).
24404
24405         * a-calend.adb: Minor reformatting
24406
24407 2004-09-09  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
24408
24409         * gigi.h (maybe_pad_type): New declaration.
24410         (create_subprog_type): New arg RETURNS_BY_TARGET_PTR.
24411
24412         * ada-tree.h: (TYPE_RETURNS_BY_TARGET_PTR_P): New macro.
24413
24414         * cuintp.c: Convert to use buildN.
24415
24416         * decl.c (maybe_pad_type): No longer static.
24417         (gnat_to_gnu_entity, case E_Function): Handle case of returning by
24418         target pointer.
24419         Convert to use buildN.
24420
24421         * trans.c (call_to_gnu): Add arg GNU_TARGET; support
24422         TYPE_RETURNS_BY_TARGET_PTR_P.  All callers changed.
24423         (gnat_to_gnu, case N_Assignment_Statement): Call call_to_gnu if call on
24424         RHS.
24425         (gnat_to_gnu, case N_Return): Handle TYPE_RETURN_BY_TARGET_PTR_P.
24426         (gnat_gimplify_expr, case ADDR_EXPR): New case.
24427         Convert to use buildN.
24428
24429         * utils2.c (gnat_build_constructor): Also set TREE_INVARIANT and
24430         TREE_READONLY for const.
24431         Convert to use buildN.
24432
24433         * utils.c (create_subprog_type): New operand RETURNS_BY_TARGET_PTR.
24434         (create_var_decl): Refine when TREE_STATIC is set.
24435         Convert to use buildN.
24436
24437 2004-09-09  Gary Dismukes  <dismukes@gnat.com>
24438
24439         * gnat_ugn.texi: Delete text relating to checking of ali and object
24440         consistency.
24441
24442         * a-except.adb (Rcheck_*): Add pragmas No_Return for each of these
24443         routines.
24444
24445 2004-09-09  Jose Ruiz  <ruiz@act-europe.fr>
24446
24447         * gnat_ugn.texi: Add Detect_Blocking to the list of configuration
24448         pragmas recognized by GNAT.
24449
24450         * gnat_rm.texi: Document pragma Detect_Blocking.
24451
24452         * s-solita.adb (Timed_Delay_T): When pragma Detect_Blocking is active,
24453         raise Program_Error if called from a protected operation.
24454
24455         * s-taprob.adb (Lock): When pragma Detect_Blocking is active increase
24456         the protected action nesting level.
24457         (Lock_Read_Only): When pragma Detect_Blocking is active increase the
24458         protected action nesting level.
24459         (Unlock): When pragma Detect_Blocking is active decrease the protected
24460         action nesting level.
24461
24462         * s-taskin.adb (Initialize_ATCB): Initialize to 0 the
24463         Protected_Action_Nesting.
24464
24465         * s-taskin.ads: Adding the field Protected_Action_Nesting to the
24466         Common_ATCB record. It contains the dynamic level of protected action
24467         nesting for each task. It is needed for checking whether potentially
24468         blocking operations are called from protected operations.
24469         (Detect_Blocking): Adding a Boolean constant reflecting whether pragma
24470         Detect_Blocking is active or not in the partition.
24471
24472         * s-tasren.adb (Call_Simple): When pragma Detect_Blocking is active,
24473         raise Program_Error if called from a protected operation.
24474         (Task_Entry_Call): When pragma Detect_Blocking is active, raise
24475         Program_Error if called from a protected operation.
24476         (Timed_Task_Entry_Call): When pragma Detect_Blocking is active, raise
24477         Program_Error if called from a protected operation.
24478
24479         * s-tassta.adb (Abort_Tasks): When pragma Detect_Blocking is active,
24480         raise Program_Error if called from a protected operation.
24481
24482         * s-tpoben.adb (Lock_Entries): When pragma Detect_Blocking is active,
24483         raise Program_Error if called from a protected operation, and increase
24484         the protected action nesting level.
24485         (Lock_Read_Only_Entries): When pragma Detect_Blocking is active, raise
24486         Program_Error if called from a protected operation, and increase the
24487         protected action nesting level.
24488         (Unlock_Entries): When pragma Detect_Blocking is active decrease the
24489         protected action nesting level.
24490
24491         * s-tposen.adb (Lock_Entry): When pragma Detect_Blocking is active,
24492         raise Program_Error if called from a protected operation, and increase
24493         the protected action nesting level.
24494         (Lock_Read_Only_Entry): When pragma Detect_Blocking is active, raise
24495         Program_Error if called from a protected operation, and increase the
24496         protected action nesting level.
24497         (Protected_Single_Entry_Call): When pragma Detect_Blocking is active,
24498         raise Program_Error if called from a protected operation.
24499         (Timed_Protected_Single_Entry_Call): When pragma Detect_Blocking is
24500         active, raise Program_Error if called from a protected operation.
24501         (Unlock_Entry): When pragma Detect_Blocking is active decrease the
24502         protected action nesting level.
24503
24504         * sem_util.adb (Check_Potentially_Blocking_Operation): Remove the
24505         insertion of the statement raising Program_Error. The run time
24506         contains the required machinery for handling that.
24507
24508         * sem_util.ads: Change comment associated to procedure
24509         Check_Potentially_Blocking_Operation.
24510         This procedure does not insert a call for raising the exception because
24511         that is currently done by the run time.
24512
24513         * raise.h (__gnat_set_globals): Pass the detect_blocking parameter.
24514
24515         * init.c: Add the global variable __gl_detect_blocking that indicates
24516         whether pragma Detect_Blocking is active (1) or not (0). Needed for
24517         making the pragma available at run time.
24518         (__gnat_set_globals): Pass and update the detect_blocking parameter.
24519
24520         * lib-writ.adb (Write_ALI): Set the DB flag in the ali file if
24521         pragma Detect_Blocking is active.
24522
24523         * lib-writ.ads: Document the Detect_Blocking flag (DB) in ali files.
24524
24525         * ali.adb (Scan_ALI): Set the Detect_Blocking value to true if the flag
24526         DB is found in the ali file. Any unit compiled with pragma
24527         Detect_Blocking active forces its effect in the whole partition.
24528
24529         * a-retide.adb (Delay_Until): Raise Program_Error if pragma
24530         Detect_Blocking is active and delay is called from a protected
24531         operation.
24532
24533         * bindgen.adb (Gen_Adainit_Ada): When generating the call to
24534         __gnat_set_globals, pass 1 as Detect_Blocking parameter if pragma
24535         Detect_Blocking is active (0 otherwise).
24536         (Gen_Adainit_C): When generating the call to __gnat_set_globals, pass 1
24537         as Detect_Blocking parameter if pragma Detect_Blocking is active (0
24538         otherwise).
24539
24540 2004-09-09  Thomas Quinot  <quinot@act-europe.fr>
24541
24542         * gnat_rm.texi: Rename GNAT.Perfect_Hash.Generators to
24543         GNAT.Perfect_Hash_Generators, and remove the empty GNAT.Perfect_Hash
24544         package.
24545
24546         * s-parint.ads, s-parint.adb (Get_RAS_Info): New subprogram.
24547         (Register_Receiving_Stub): Add Subp_Info formal parameter.
24548         Update API in placeholder implemetation of s-parint to reflect changes
24549         in distribution runtime library.
24550
24551         * sem_ch3.adb (Expand_Derived_Record): Rename to
24552         Expand_Record_Extension.
24553
24554         * sem_disp.adb (Check_Controlling_Formals): Improve error message for
24555         primitive operations of potentially distributed object types that have
24556         non-controlling anonymous access formals.
24557
24558         * sem_dist.ads, sem_dist.adb (Build_RAS_Primitive_Specification): New
24559         subprogram.
24560         New implementation of expansion for remote access-to-subprogram types,
24561         based on the RACW infrastructure.
24562         This version of sem_dist is compatible with PolyORB/DSA as well as
24563         GLADE.
24564
24565         * sem_prag.adb (Analyze_Pragma, case Pragma_Asynchronous): For a pragma
24566         Asynchrronous that applies to a remote access-to-subprogram type, mark
24567         the underlying RACW type as asynchronous.
24568
24569         * link.c: FreeBSD uses GNU ld: set __gnat_objlist_file_supported and
24570          __gnat_using_gnu_linker to 1.
24571
24572         * Makefile.rtl, impunit.adb, g-perhas.ads, g-pehage.ads,
24573         g-pehage.adb: Rename GNAT.Perfect_Hash.Generators to
24574         GNAT.Perfect_Hash_Generators, and remove the empty
24575         GNAT.Perfect_Hash package.
24576
24577         * atree.adb: Minor reformatting
24578
24579         * exp_ch3.adb (Expand_Derived_Record): Rename to
24580         Expand_Record_Extension.
24581         (Build_Record_Init_Proc.Build_Assignment): The default expression in
24582         a component declaration must remain attached at that point in the
24583         tree so New_Copy_Tree copies it if the enclosing record type is derived.
24584         It is therefore necessary to take a copy of the expression when building
24585         the corresponding assignment statement in the init proc.
24586         As a side effect, in the case of a derived record type, we now see the
24587         original expression, without any rewriting that could have occurred
24588         during expansion of the ancestor type's init proc, and we do not need
24589         to go back to Original_Node.
24590
24591         * exp_ch3.ads (Expand_Derived_Record): Rename to
24592         Expand_Record_Extension.
24593
24594         * exp_dist.ads, exp_dist.adb (Underlying_RACW_Type): New subprogram.
24595         Returns the RACW type used to implement a remote access-to-subprogram
24596         type.
24597         (Add_RAS_Proxy_And_Analyze, Build_Remote_Subprogram_Proxy_Type):
24598         New subprograms. Used to create a proxy tagged object for a remote
24599         subprogram. The proxy object is used as the designated object
24600         for RAS values on the same partition (unless All_Calls_Remote applies).
24601         (Build_Get_Unique_RP_Call): New subprogram. Build a call to
24602         System.Partition_Interface.Get_Unique_Remote_Pointer.
24603         (Add_RAS_Access_TSS, Add_RAS_Dereference_TSS):
24604         Renamed from Add_RAS_*_Attribute.
24605         (Add_Receiving_Stubs_To_Declarations): Generate a table of local
24606         subprograms.
24607         New implementation of expansion for remote access-to-subprogram types,
24608         based on the RACW infrastructure.
24609
24610         * exp_dist.ads (Copy_Specification): Update comment to note that this
24611         function can copy the specification from either a subprogram
24612         specification or an access-to-subprogram type definition.
24613
24614 2004-09-09  Ed Schonberg  <schonberg@gnat.com>
24615
24616         * sem_type.adb (Disambiguate): Handle properly an accidental ambiguity
24617         in an instance, between an explicit subprogram an one inherited from a
24618         type derived from an actual.
24619
24620         * exp_ch6.adb (Expand_N_Subprogram_Body): If polling is enabled, do not
24621         add a polling call if the subprogram is to be inlined by the back-end,
24622         to avoid repeated calls with multiple inlinings.
24623
24624         * checks.adb (Apply_Alignment_Check): If the expression in the address
24625         clause is a call whose name is not a static entity (e.g. a dispatching
24626         call), treat as dynamic.
24627
24628 2004-09-09  Robert Dewar  <dewar@gnat.com>
24629
24630         * g-trasym.ads: Minor reformatting
24631
24632         * exp_ch3.adb (Component_Needs_Simple_Initialization): Don't except
24633         packed arrays, since unused bits are expected to be zero for a
24634         comparison.
24635
24636 2004-09-09  Eric Botcazou  <ebotcazou@act-europe.fr>
24637
24638         * exp_pakd.ads: Fix an inacurracy and a couple of typos in the head
24639         comment.
24640
24641 2004-09-09  Pascal Obry  <obry@gnat.com>
24642
24643         * mdll.ads, mdll.adb (Build_Dynamic_Library): New parameter Map_File to
24644         enable map file generation. Add the right option to generate the map
24645         file if Map_File is set to True.
24646
24647         * gnatdll.adb (Gen_Map_File): New variable.
24648         (Syntax): Add info about new -m (Map_File) option.
24649         (Parse_Command_Line): Add support for -m option.
24650         (gnatdll): Pass Gen_Map_File to Build_Dynamic_Library calls.
24651         Minor reformatting.
24652
24653 2004-09-09  Laurent Pautet  <pautet@act-europe.fr>
24654
24655         * gnatls.adb: Add a very verbose mode -V. Such mode is required by the
24656         new gnatdist implementation.
24657         Define a subpackage isolating the output routines specific to this
24658         verbose mode.
24659
24660 2004-09-09  Joel Brobecker  <brobecker@gnat.com>
24661
24662         * Makefile.rtl: (GNATRTL_NONTASKING_OBJS): Add g-dynhta.
24663
24664         * gnat_ugn.texi (Main Subprograms): Fix typo. Deduced, not deducted.
24665
24666 2004-09-09  Cyrille Comar  <comar@act-europe.fr>
24667
24668         * opt.adb (Set_Opt_Config_Switches): Use Ada_Version_Runtime to compile
24669         internal unit.
24670
24671         * opt.ads: Add Ada_Version_Runtime constant used to decide which
24672         version of the language is used to compile the run time.
24673
24674 2004-09-09  Arnaud Charlet  <charlet@act-europe.fr>
24675
24676         * sem_util.adb (Requires_Transient_Scope): Re-enable handling
24677         of variable length temporaries for function return now that the
24678         back-end and gigi support it.
24679
24680 2004-09-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
24681
24682         * misc.c (gnat_print_type): Use TYPE_RM_SIZE_NUM.
24683
24684         * trans.c (struct stmt_group): Delete field GLOBAL.
24685         (gnat_init_stmt_group): Do not initialize it.
24686         (call_to_gnu): Use save_expr, not protect_multiple_eval.
24687         (Exception_Handler_to_gnu_sjlj): Call build_int_cst, not build_int_2
24688         (gnat_to_gnu, case N_Character_Literal, N_String_Literal): Likewise.
24689         (gnat_to_gnu, case N_Compilation_Unit): Do not set GLOBAL in stmt group.
24690         (start_stmt_group): Likewise.
24691         (add_stmt, add_decl_expr): Rework handling of global DECL_EXPRs.
24692
24693         * utils2.c (ggc.h): Include.
24694         (build_call_raise): Call build_int_cst, not build_int_2.
24695
24696         * utils.c (gnat_init_decl_processing): Fix arg to
24697         build_common_tree_nodes.
24698         (create_subprog_type): Do not use SET_TYPE_CI_CO_LIST.
24699         (gnat_define_builtin): Set built_in_decls.
24700         (init_gigi_decls): Call build_int_cst, not build_int_2.
24701
24702         * ada-tree.h (struct lang_decl, struct lang_type): Field is type tree.
24703         (GET_TYPE_LANG_SPECIFIC, SET_TYPE_LANG_SPECIFIC): New macros.
24704         (GET_DECL_LANG_SPECIFIC, SET_DECL_LANG_SPECIFIC): Likewise.
24705         (TYPE_CI_CO_LIST, SET_TYPE_CI_CO_LIST, TYPE_MODULE,
24706         SET_TYPE_MODULE): Use them.
24707         (TYPE_INDEX_TYPE, SET_TYPE_INDEX_TYPE, TYPE_DIGITS_VALUE): Likewise.
24708         (SET_TYPE_DIGITS_VALUE, TYPE_UNCONSTRAINED_ARRAY): Likewise.
24709         (SET_TYPE_UNCONSTRAINED_ARRAY, TYPE_ADA_SIZE,
24710         SET_TYPE_ADA_SIZE): Likewise.
24711         (TYPE_ACTUAL_BOUNDS, SET_TYPE_ACTUAL_BOUNDS): Likewise.
24712         (DECL_CONST_CORRESPONDING_VAR,
24713         SET_DECL_CONST_CORRESPONDING_VAR): Likewise.
24714         (DECL_ORIGINAL_FIELD, SET_DECL_ORIGINAL_FIELD): Likewise.
24715         (TYPE_RM_SIZE_INT, TYPE_RM_SIZE_ENUM, SET_TYPE_RM_SIZE_ENUM): Deleted.
24716         (TYPE_RM_SIZE_NUM): New macro.
24717         (TYPE_RM_SIZE): Modified to use above.
24718
24719         * cuintp.c: (build_cst_from_int): New function.
24720         (UI_To_gnu): Use it.
24721
24722         * decl.c (gnat_to_gnu_entity): Use TYPE_RM_SIZE_NUM.
24723         (make_type_from_size): Avoid changing TYPE_UNSIGNED of a type.
24724         (gnat_substitute_in_type, case ARRAY_TYPE): If old had a
24725         MIN_EXPR for the size, copy it into new.
24726
24727 2004-09-01  Robert Dewar  <dewar@gnat.com>
24728
24729         * exp_ch6.adb (Expand_Call): Properly handle validity checks for
24730         packed indexed component where array is an IN OUT formal. This
24731         generated garbage code previously.
24732
24733         * gnat_ugn.texi: Document -fverbose-asm
24734
24735         * gnat-style.texi: Minor updates (note that boolean constants and
24736         variables are joined with AND/OR rather than short circuit forms).
24737
24738 2004-09-01  Ed Schonberg  <schonberg@gnat.com>
24739
24740         * exp_util.adb (Safe_Unchecked_Type_Conversion): Conversion is safe if
24741         it is an upward conversion of an untagged type with no representation
24742         change.
24743
24744 2004-09-01  Thomas Quinot  <quinot@act-europe.fr>
24745
24746         * rtsfind.ads: Move RCI_Subp_Info and RCI_Subp_Info_Array to
24747         System.Partition_Interface.
24748
24749         * checks.adb (Apply_Access_Checks): Do not generate checks when
24750         expander is not active (but check for unset reference to prefix of
24751         dereference).
24752
24753         * sem_prag.adb (Analyze_Pragma, case Pragma_Debug): Uniformly rewrite
24754         pragma Debug as an if statement with a constant condition, for
24755         consistent treatment of entity references contained within the
24756         enclosed procedure call.
24757
24758 2004-09-01  Vincent Celier  <celier@gnat.com>
24759
24760         * bindgen.adb: (Set_EA_Last): New procedure
24761         (Gen_Exception_Table_Ada, Gen_Exception_Table_C): Use new procedure
24762         Set_EA_Last.
24763         (Gen_Adafinal_Ada): If no finalization, adafinal does nothing
24764         (Gen_Output_File_Ada): Always call Gen_Adafinal_Ada, so that SAL can be
24765         linked without errors.
24766         (Gen_Exception_Table_Ada): Correct bugs when generating code for arrays
24767         ST and EA.
24768         (Gen_Exception_Table_C): Correct same bugs
24769
24770         * vms_data.ads: Add new qualifier /VERBOSE_ASM to GCC_Switches
24771
24772         * g-os_lib.adb (Normalize_Pathname.Get_Directory): When Dir is empty,
24773         on Windows, make sure that the drive letter is in upper case.
24774
24775         * g-os_lib.ads (Normalize_Pathname): Add a comment to indicate that on
24776         Windows, when the drive letter is added and Case_Sensitive is True, the
24777         drive letter is forced to upper case.
24778
24779         * mlib-tgt-irix.adb (Build_Dynamic_Library): Transfer all -lxxx options
24780         to Options_2 for the call to MLib.Utl.Gcc.
24781
24782         * bld.adb (Put_Include_Project): Use '/', not '\' on Windows as
24783         directory separator when defining BASE_DIR.
24784
24785 2004-09-01  Pascal Obry  <obry@gnat.com>
24786
24787         * gprcmd.adb (Extend): Do not output trailing directory separator. This
24788         is not needed and it confuses Windows GNU/make which does not report
24789         directory terminated by a slash as a directory.
24790         (gprcmd): Idem for "pwd" internal command.
24791
24792         * Makefile.generic: Use __GPRCOLON__ instead of pipe character in
24793         target names rewrite to fix regressions with recent version of
24794         GNU/make. Starting with GNU/make 3.80 the pipe character was not
24795         handled properly anymore.
24796
24797 2004-09-01  Andreas Schwab  <schwab@suse.de>
24798
24799         * Make-lang.in (EXTRA_GNATBIND_OBJS): Revert last change.
24800         * raise.c [!IN_RTS]: Undef abort.
24801
24802 2004-08-27  Nathan Sidwell  <nathan@codesourcery.com>
24803
24804         * utils2.c (build_allocator): Use ssize_int.
24805
24806         * utils.c (gnat_init_decl_processing): Ada has a signed sizetype.
24807
24808 2004-08-27  Andreas Schwab  <schwab@suse.de>
24809
24810         * Make-lang.in (EXTRA_GNATBIND_OBJS): Add errors.o.
24811
24812 2004-08-25  Nathan Sidwell  <nathan@codesourcery.com>
24813             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
24814
24815         * ada-tree.h (TYPE_RM_SIZE_INT): Use TYPE_LANG_SLOT_1.
24816
24817 2004-08-25  Nathan Sidwell  <nathan@codesourcery.com>
24818
24819         * cuintp.c (UI_To_gnu): Adjust build_int_cst calls.
24820         * trans.c (Exception_Handler_to_gnu_sjlj, gnat_to_gnu): Likewise.
24821         * utils.c (init_gigi_decls): Likewise.
24822         * utils2.c (build_call_raise, build_allocator): Likewise.
24823
24824 2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
24825
24826         * utils.c (gnat_init_decl_processing): Adjust
24827         build_common_tree_nodes call.
24828
24829 2004-08-20  Nathan Sidwell  <nathan@codesourcery.com>
24830
24831         * utils2.c (build_allocator): Use build_int_cst for negative
24832         size types.
24833
24834 2004-08-18  Richard Henderson  <rth@redhat.com>
24835
24836         * misc.c (LANG_HOOKS_HONOR_READONLY): Remove.
24837
24838 2004-08-16  Nathan Sidwell  <nathan@codesourcery.com>
24839
24840         * cuintp.c (UI_To_gnu): Be more conservative with build_int_cst
24841         call.s
24842         * trans.c (Exception_Handler_to_gnu_sjlj): Likewise.
24843         (gnat_to_gnu): Likewise.
24844
24845 2004-08-16  Pascal Obry  <obry@gnat.com>
24846
24847         * adaint.c (__gnat_prj_add_obj_files): Set to 0 only on Win32 for GCC
24848         backend prior to GCC 3.4. With GCC 3.4 we are using the GCC's shared
24849         option and not mdll anymore. Update comment.
24850
24851 2004-08-16  Pascal Obry  <obry@gnat.com>
24852
24853         * bld.adb (Put_Include_Project): Properly handle directory separators
24854         on Windows.
24855
24856 2004-08-16  Ed Schonberg  <schonberg@gnat.com>
24857
24858         * sem_ch4.adb (Try_Object_Operation): Restructure code. Optimize by
24859         decreasing the number of allocated junk nodes while searching for the
24860         appropriate subprogram.
24861
24862 2004-08-15  Nathan Sidwell  <nathan@codesourcery.com>
24863
24864         * cuintp.c (UI_To_gnu): Use build_int_cst..
24865         * trans.c (Exception_Handler_to_gnu_sjlj, gnat_to_gnu): Likewise.
24866         * utils.c (init_gigi_decls): Likewise.
24867         * utils2.c (build_call_raise): Likewise.
24868
24869 2004-08-13  Olivier Hainque  <hainque@act-europe.fr>
24870
24871         * decl.c (gnat_to_gnu_entity) <E_Variable>: When building an allocator
24872         for a global aliased object with a variable size and an unconstrained
24873         nominal subtype, pretend there is no initializer if the one we have is
24874         incomplete, and avoid referencing an inexistant component in there. The
24875         part we have will be rebuilt anyway and the reference may confuse
24876         further operations.
24877
24878 2004-08-13  Thomas Quinot  <quinot@act-europe.fr>
24879
24880         * einfo.ads: Minor reformatting
24881
24882         * lib-writ.adb (Output_Main_Program_Line): Do not set parameter
24883         restrictions in the ALI if we only want to warn about violations.
24884
24885 2004-08-13  Vincent Celier  <celier@gnat.com>
24886
24887         * ali.adb (Scan_ALI): Initialize component Body_Needed_For_SAL to False
24888         when creating a new Unit_Record in table Units.
24889
24890         * gnatls.adb (Output_Unit): In verbose mode, output the restrictions
24891         that are violated, if any.
24892
24893         * prj-nmsc.adb (Ada_Check.Get_Path_Names_And_Record_Sources): Do not
24894         add directory separator if path already ends with a directory separator.
24895
24896 2004-08-13  Ed Schonberg  <schonberg@gnat.com>
24897
24898         * rtsfind.adb (Entity_Not_Defined): If the error ocurrs in a predefined
24899         unit, this is an attempt to inline a construct that is not available in
24900         the current restricted mode, so abort rather than trying to continue.
24901
24902         * sem_ch3.adb (Build_Underlying_Full_View): If the new type has
24903         discriminants that rename those of the parent, recover names of
24904         original discriminants for the constraint on the full view of the
24905         parent.
24906         (Complete_Private_Subtype): Do not create a subtype declaration if the
24907         subtype is an itype.
24908
24909         * gnat_rm.texi: Added section on implementation of discriminated
24910         records with default values for discriminants.
24911
24912 2004-08-13  Ed Schonberg  <schonberg@gnat.com>
24913
24914         PR ada/15601
24915         * sem_res.adb (Make_Call_Into_Operator): Handle properly the case where
24916         the second operand is overloaded.
24917
24918 2004-08-10  Richard Henderson  <rth@redhat.com>
24919
24920         * utils.c (gnat_install_builtins): Remove __builtin_stack_alloc,
24921         add __builtin_alloca.
24922
24923 2004-08-10  Richard Henderson  <rth@redhat.com>
24924
24925         * config-lang.in (boot_language): Yes.
24926
24927 2004-08-09  Thomas Quinot  <quinot@act-europe.fr>
24928
24929         * g-socket.adb (Abort_Selector): Initialize Buf to prevent valgrind
24930         from complaining on potential uninitialized reference.
24931         Change calls to GNAT.Sockets.Thin.Is_Socket_In_Set to account for
24932         new specification and test explicitly for non-zero return value.
24933
24934         * g-socthi.ads (Is_Socket_In_Set): Declare imported function as
24935         returning C.int, to avoid using a derived boolean type.
24936
24937         * exp_ch5.adb (Make_Tag_Ctrl_Assignments): Use
24938         Duplicate_Subexpr_No_Checks in preference to direct use of
24939         Remove_Side_Effects and New_Copy_Tree.
24940         Clear Comes_From_Source on prefix of 'Size attribute reference.
24941
24942         * g-socthi.adb, g-socthi-vms.adb, g-socthi-mingw.adb,
24943         g-socthi-vxworks.adb: Change calls to
24944         GNAT.Sockets.Thin.Is_Socket_In_Set to account for new specification
24945         and test explicitly for non-zero return value.
24946
24947         * g-socthi-vms.ads, g-socthi-mingw.ads, g-socthi-vxworks.ads:
24948         (Is_Socket_In_Set): Declare imported function as returning C.int, to
24949         avoid using a derived boolean type.
24950
24951 2004-08-09  Albert Lee  <lee@gnat.com>
24952
24953         * system-irix-n32.ads: Refine tasking priority constants for IRIX.
24954
24955 2004-08-09  Pascal Obry  <obry@gnat.com>
24956
24957         * gnat_ugn.texi: Document new way to build DLLs on Windows using
24958         GCC's -shared option.
24959
24960         * mlib-tgt-mingw.adb (Build_Dynamic_Library): Pass GCC's options into
24961         Options_2 parameter (options put after object files).
24962
24963 2004-08-09  Olivier Hainque  <hainque@act-europe.fr>
24964
24965         * decl.c (gnat_to_gnu_entity) <E_Array_Subtype>: Adjust condition to
24966         ignore overflows on low and high bounds of an index to also account for
24967         differences in signedness between sizetype and gnu_index_subtype.
24968         These are as legitimate as the ones caused by a lower TYPE_PRECISION
24969         on sizetype.
24970
24971 2004-08-09  Robert Dewar  <dewar@gnat.com>
24972
24973         * s-solita.ads, s-solita.adb: Minor reformatting
24974
24975         * gnat_rm.texi: Add documentation for pragma Profile (Restricted)
24976         Move pragma Restricted_Run_Time, No_Run_Time, Ravenscar to new
24977         obsolescent section
24978         Add note that No_Implicit_Conditionals does not suppress
24979         run time constraint checks.
24980
24981         * vms_conv.ads: Minor reformatting
24982
24983         * s-secsta.adb: Use SS_Ptr instead of Mark_Id as stack pointer (cleanup
24984         and necessary for following change).
24985         (Mark): Return new format Mark_Id containing sec stack address
24986         (Release): Use sec stack address from Mark_Id avoiding Self call
24987
24988         * s-secsta.ads: Define SS_Ptr to be used instead of Mark_Id as stack
24989         pointer (cleanup and necessary for following change).
24990         Define Mark_Id as record containing address of secondary stack, that way
24991         Release does not need to find the stack again, decreasing the number of
24992         calls to Self and improving efficiency.
24993
24994         * sem_util.ads: Add a ??? comment for Is_Local_Variable_Reference
24995
24996         * sem_ch5.adb (Analyze_Case_Statement): Add circuitry to track value of
24997         case variable into the individual case branches when possible.
24998
24999         * sem_ch11.adb: Minor reformatting
25000
25001         * prj.ads: Correct spelling of suffixs
25002
25003         * prj-nmsc.adb: Minor reformatting
25004         Correct spelling suffixs throughout (also in identifiers)
25005
25006         * freeze.adb: Minor spelling correction
25007
25008         * exp_ch2.adb: Cleanups to handling of Current_Value
25009         (no functional effect).
25010
25011         * bld.adb: Correct spelling of suffixs
25012
25013         * einfo.adb (Enclosing_Dynamic_Scope): Defend against junk argument
25014
25015 2004-08-09  Ed Schonberg  <schonberg@gnat.com>
25016
25017         PR ada/15408
25018         * sem_ch7.adb (Install_Private_Declarations): In the body of the
25019         package or of a child, private entities are both immediately_visible
25020         and not hidden.
25021
25022 2004-08-09  Ed Schonberg  <schonberg@gnat.com>
25023
25024         * sem_eval.adb (Eval_Integer_Literal): If the context is Any_Integer,
25025         there are no range checks on the value of the literal.
25026
25027         * exp_ch7.adb (Insert_Actions_In_Scope_Around): If the node being
25028         wrapped is the triggering alternative of an asynchronous select, action
25029         statements mustbe inserted before the select itself.
25030
25031         * sem_attr.adb (Analyze_Attribute, case 'Size): Handle properly the
25032         case where the prefix is a protected function call.
25033         (Resolve_Attribute, case 'Access): The attribute reference on a
25034         subprogram is legal in a generic body if the subprogram is declared
25035         elsewhere.
25036
25037 2004-08-09  Vincent Celier  <celier@gnat.com>
25038
25039         * makegpr.adb (Build_Library): Link with g++ if C++ is one of the
25040         languages, otherwise building the library may fail with unresolved
25041         symbols.
25042         (Compile_Sources): Do not build libraries if -c switch is used
25043
25044         * gnatlink.adb (Process_Args): New switches -M and -Mmap
25045         (Write_Usage): If map file creation is supported, output new switches
25046         -M and -Mmap.
25047         (Gnatlink): When -M is specified, add the necessary switch(es) to the
25048         gcc call, when supported.
25049
25050         * Makefile.in: Added indepsw.o to the object list for gnatlink
25051         Specified the AIX, GNU/Linux and Windows versions of indepsw.adb
25052
25053         * indepsw-aix.adb, indepsw-linux.adb, indepsw-mingw.adb,
25054         indepsw.adb, indepsw.ads: New files.
25055
25056 2004-08-09  Bernard Banner  <banner@gnat.com>
25057
25058         * system-vxworks-x86.ads, s-vxwork-x86.ads: New files.
25059
25060         * Makefile.in: add section for vxworks x86
25061
25062 2004-08-09  Hristian Kirtchev  <kirtchev@gnat.com>
25063
25064         * exp_ch3.adb (Build_Init_Statements): Add extra condition to deal with
25065         per-object constrained components where the discriminant is of an
25066         Access type.
25067         (Build_Record_Init_Proc): Add condition to prevent the inheritance of
25068         the parent initialization procedure for derived Unchecked_Unions.
25069         Instead, derived Unchecked_Unions build their own initialization
25070         procedure.
25071         (Build_Variant_Record_Equality): Implement Unchecked_Union equality.
25072         Check the body of the subprogram for details.
25073         (Freeze_Record_Type): Prevent the inheritance of discriminant checking
25074         functions for derived Unchecked_Union types by introducing a condition.
25075         Allow the creation of TSS equality functions for Unchecked_Unions.
25076         (Make_Eq_Case): Rename formal parameter Node to E in function signature.
25077         Add formal parameter Discr to function signature. Discr is used to
25078         control the generated case statement for Unchecked_Union types.
25079         (Make_Eq_If): Rename formal parameter Node to E in function signature.
25080
25081         * exp_ch4.adb (Build_Equality_Call): Implement equality calls for
25082         Unchecked_Unions.
25083         Check the body of the subprogram for details.
25084         (Expand_Composite_Equality): Augment composite type equality to include
25085         correct handling of Unchecked_Union components.
25086         (Expand_N_In): Add condition to detect illegal membership tests when the
25087         subtype mark is a constrained Unchecked_Union and the expression lacks
25088         inferable discriminants, and build a Raise_Program_Error node.
25089         (Expand_N_Op_Eq): Add function Has_Unconstrained_UU_Component. Used
25090         to detect types that contain components of unconstrained Unchecked_Union
25091         subtype. Add condition to detect equality between types that have an
25092         unconstrained Unchecked_Union component, and build a Raise_Program_Error
25093         node. Add condition to detect equality between Unchecked_Union types
25094         that lack inferable discriminants, and build a Raise_Program_Error node.
25095         Otherwise build a TSS equality function call.
25096         (Expand_N_Type_Conversion): Add condition to detect illegal conversions
25097         from a derived Unchecked_Union to an unconstrained non-Unchecked_Union
25098         with the operand lacking inferable discriminants, and build a Raise_
25099         Program_Error node.
25100         (Expand_Record_Equality): Remove guard that prevents Unchecked_Union
25101         composite equality.
25102         (Has_Inferable_Discriminants): Implement new predicate for objects and
25103         expressions of Unchecked_Union type. Check the body of subprogram for
25104         details.
25105         (Has_Unconstrained_UU_Components): Add function
25106         Component_Is_Unconstrained_UU. It is used to detect whether a single
25107         component is of an unconstrained Unchecked_Union subtype. Add function
25108         Variant_Is_Unconstrained_UU. It is used to detect whether a single
25109         component inside a variant is of an unconstrained Unchecked_Union type.
25110
25111         * exp_ch5.adb (Expand_Assign_Record): Add condition to copy the
25112         inferred discriminant values. Add condition to generate a case
25113         statement with an inferred discriminant as the switch.
25114         (Make_Component_List_Assign): Introduce a Boolean flag that determines
25115         the behaviour of the subprogram in the presence of an Unchecked_Union.
25116         Add condition to trigger the usage of the inferred discriminant value
25117         as the generated case statement switch.
25118         (Make_Field_Assign): Introduce a Boolean flag that determines the
25119         behaviour of the subprogram in the presence of an Unchecked_Union. Add
25120         condition to trigger the usage of the inferred discriminant value as
25121         the right-hand side of the generated assignment.
25122
25123         * exp_ch6.adb (Expand_Call): Add condition to skip extra actual
25124         parameter generation when dealing with Unchecked_Unions.
25125
25126         * checks.adb (Apply_Discriminant_Check): Do not apply discriminant
25127         checks for Unchecked_Unions.
25128
25129         * einfo.ads: Update comment on usage of flag Has_Per_Object_Constraint
25130
25131         * exp_attr.adb (Expand_N_Attribute_Reference): Produce
25132         Raise_Program_Error nodes for the execution of Read and Write
25133         attributes of Unchecked_Union types and the execution of Input and
25134         Output attributes of Unchecked_Union types that lack default
25135         discriminant values.
25136
25137         * sem_prag.adb (Analyze_Pragma): Remodel the analysis of pragma
25138         Unchecked_Union. Add procedure Check_Component. It is used to inspect
25139         per-object constrained components of Unchecked_Unions for being
25140         Unchecked_Unions themselves. Add procedure Check_Variant. It is used to
25141         check individual components withing a variant.
25142
25143         * sem_res.adb (Resolve_Comparison_Op): Remove guard that prevents
25144         comparison of Unchecked_Unions.
25145         (Resolve_Equality_OP): Remove guard that prevents equality between
25146         Unchecked_Unions.
25147
25148         * sem_util.adb (Build_Component_Subtype): Add guard to prevent creation
25149         of component subtypes for Unchecked_Union components.
25150         (Get_Actual_Subtype): Add condition that returs the Unchecked_Union type
25151         since it is the actual subtype.
25152
25153         * sem_ch12.adb (Instantiate_Type): Add condition to detect the correct
25154         pass of Unchecked_Union subtypes as generic actuals to formal types
25155         that lack known_discriminant_parts or that are derived Unchecked_Union
25156         types, and do nothing. In any other case, produce an error message.
25157
25158         * sem_ch3.adb (Analyze_Component_Declaration): Add function
25159         Contains_POC. It determines whether a constraint uses the discriminant
25160         of an enclosing record type.
25161         Add condition to detect per-object constrained component and set the
25162         appropriate flag.
25163         (Derived_Type_Declaration): Remove guard that prevents derivation from
25164         Unchecked_Union types.
25165         (Process_Subtype): Remove quard that prevents the creation of Unchecked_
25166         Union subtypes.
25167
25168         * sem_ch4.adb (Analyze_Selected_Component): Correct the detection of
25169         references to Unchecked_Union discriminants.
25170
25171         * sem_ch6.adb (Create_Extra_Formals): Add condition to skip extra
25172         formal generation when dealing with Unchecked_Unions.
25173         (Set_Actual_Subtypes): Add condition to prevent generation of actual
25174         subtypes for Unchecked_Unions.
25175
25176         * sem_ch7.adb (Analyze_Package_Specification): Add procedure
25177         Inspect_Unchecked_Union_Completion. It is used to detect incorrect
25178         completions of discriminated partial views by Unchecked_Unions and
25179         produce an error message.
25180
25181 2004-08-09  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
25182
25183         * trans.c (struct stmt_group): New field, GLOBAL.
25184         (global_stmt_group, gnu_elab_proc_decl, build_unit_elab): Deleted.
25185         (struct elab_info): New struct.
25186         (elab_info_list, gnu_elab_proc_stack): New variables.
25187         (Compilation_Unit_to_gnu): New procedure.
25188         (gigi): Call it and also handle elaboration procs we've saved.
25189         (gnat_init_stmt_group): Don't set global_stmt_group; instead initialize
25190         global field from parent.
25191         (gnat_to_gnu): Get decl from gnu_elab_proc_stack.
25192         (gnat_to_gnu, case N_Compilation_Unit): Call Compilation_Unit_to_gnu.
25193         (start_stmt_group): Initialize global field from parent.
25194         (add_decl_expr): Set to global for current statement group.
25195         (gnat_gimplify_expr, case NULL_EXPR): Add operand 0 to pre list, not
25196         post.
25197
25198         * utils.c (global_bindings_p): True when no current_function_decl; no
25199         longer check current_binding_level.
25200
25201 2004-08-09  Ben Brosgol  <brosgol@gnat.com>
25202
25203         * xgnatugn.adb: Added logic to deal with @ifset/@ifclear for edition
25204         choice.
25205
25206         * gnat_rm.texi, gnat_ugn.texi: Added edition conditionalization logic.
25207
25208 2004-08-06  Andreas Schwab  <schwab@suse.de>
25209
25210         * utils.c (gnat_define_builtin): Remove second parameter of
25211         make_decl_rtl.
25212         (begin_subprog_body): Likewise.
25213
25214 2004-07-26  Arnaud Charlet  <charlet@act-europe.fr>
25215
25216         * sem_util.adb (Requires_Transient_Scope): Temporarily disable
25217         optimization, not supported by the tree-ssa back-end.
25218
25219 2004-07-26  Olivier Hainque  <hainque@act-europe.fr>
25220
25221         * s-mastop-irix.adb: Update comments.
25222
25223         * a-except.adb (Exception_Information): Raise Constraint_Error if
25224         exception Id is Null_Id.
25225         This is required behavior, which is more reliably and clearly checked
25226         at the top level interface level.
25227
25228 2004-07-26  Javier Miranda  <miranda@gnat.com>
25229
25230         * exp_aggr.adb (Build_Array_Aggr_Code): Do not build the initialization
25231         call if a component has no default_expression and the box is used.
25232
25233         * sem_aggr.adb (Resolve_Array_Aggregate): If a component has no
25234         default_expression and you use box, it behaves as if you had declared a
25235         stand-alone object.
25236         (Resolve_Record_Aggregate): If a component has no default_expression and
25237         you use box, it behaves as if you had declared a stand-alone object.
25238
25239         * sem_ch10.adb (Install_Siblings): Do not make visible the private
25240         entities of private-with siblings.
25241
25242 2004-07-26  Ed Schonberg  <schonberg@gnat.com>
25243
25244         * sem_ch3.adb (Build_Underlying_Full_View): If this is the full view
25245         for a component of an itype, set the parent pointer for analysis,
25246         there is no list in which to insert it.
25247
25248         * sem_res.adb (Resolve): Call Rewrite_Renamed_Operator only for
25249         bona-fide renamings, not for inherited operations.
25250
25251         * exp_ch4.adb (Expand_Allocator_Expression): If the allocator is an
25252         actual for a formal that is an access parameter, create local
25253         finalization list even if the expression is not an aggregate.
25254
25255 2004-07-26  Ed Schonberg  <schonberg@gnat.com>
25256
25257         PR ada/16213
25258         * sem_ch8.adb (Attribute_Renaming, Check_Library_Level_Renaming):
25259         Diagnose properly illegal subprogram renamings that are library units.
25260
25261 2004-07-26  Ed Schonberg  <schonberg@gnat.com>
25262
25263         PR ada/15588
25264         * sem_util.adb (Is_OK_Variable_For_Out_Formal): If actual is a type
25265         conversion rewritten as an unchecked conversion, check that original
25266         expression is a variable.
25267
25268         * exp_ch4.adb (Expand_N_Type_Conversion): If rewriting as an
25269         unchecked_conversion, create new node rather than rewriting in place,
25270         to preserve original construct.
25271
25272 2004-07-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
25273
25274         * gigi.h (gnat_expand_body): Deleted.
25275
25276         * Make-lang.in: (trans.o): Depends on function.h.
25277
25278         * misc.c: (gnat_expand_body): Moved to here.
25279
25280         * trans.c (gnat_expand_body_1): Deleted.
25281         (gnat_expand_body): Moved from here.
25282         (gnat_to_gnu): N_Implicit_Label_Declaration forces being in elab proc.
25283         (add_stmt): Check for marked visited with global_bindings_p.
25284         (gnat_gimplify_expr, case COMPONENT_REF): New case.
25285         (gnat_gimplify_expr, case NULL_EXPR): Set TREE_NO_WARNING for temp.
25286
25287         * utils2.c (build_binary_op, case MODIFY_EXPR): Put LHS in a
25288         VIEW_CONVERT_EXPR if not operation type.
25289
25290         * utils.c (update_pointer_to): Set DECL_ORIGINAL_FIELD for
25291         fat pointer.
25292
25293         * decl.c, cuintp.c, gigi.h, misc.c, trans.c, utils.c, utils2.c: Minor
25294         changes: reformatting of negation operators, removing unneeded
25295         inequality comparison with zero, converting equality comparisons with
25296         zero to negations, changing int/0/1 to bool/false/true, replace calls
25297         to gigi_abort with abort, and various other similar changes.
25298
25299 2004-07-26  Vincent Celier  <celier@gnat.com>
25300
25301         * gnatcmd.adb (GNATCmd): Add processing for new built-in command
25302         "setup".
25303
25304         * make.adb (Gnatmake): Fail when a library is not present and there is
25305         no object directory.
25306
25307         * mlib-prj.adb (Check_Library): No need to check if the library needs
25308         to be rebuilt if there is no object directory, hence no object files
25309         to build the library.
25310
25311         * opt.ads (Setup_Projects): New Boolean flag.
25312
25313         * prj-nmsc.adb (Locate_Directory): New parameter Project, Kind and
25314         Location.
25315         Create directory when Kind /= "" and in "gnat setup". Report error if
25316         directory cannot be created.
25317         (Ada_Check): Create library interface copy dir if it does not exist
25318         and we are in "gnat setup".
25319         (Find_Sources): No error if in "gnat setup" and no Ada sources were
25320         found.
25321         (Language_Independent_Check): Create object directory, exec directory
25322         and/or library directory if they do not exist and we are in
25323         "gnat setup".
25324
25325         * vms_conv.ads: (Command_Type): New command Setup.
25326
25327         * vms_conv.adb (Initialize): Add Setup component of Cammand_List.
25328
25329         * vms_data.ads: Add qualifiers/switches for new built-in command
25330         "setup".
25331
25332 2004-07-25  Richard Henderson  <rth@redhat.com>
25333
25334         * utils.c (create_subprog_decl): Set DECL_ARTIFICIAL and
25335         DECL_IGNORED_P on RESULT_DECL.
25336
25337 2004-07-20  Olivier Hainque  <hainque@act-europe.fr>
25338
25339         * a-elchha.adb (Last_Chance_Handler): Remove the bogus buffer dynamic
25340         allocation and potentially overflowing update with
25341         Tailored_Exception_Information. Use the sec-stack free procedural
25342         interface to output Exception_Information instead.
25343
25344         * a-except.adb (To_Stderr): New subprogram for character, and string
25345         version moved from a-exextr to be visible from other separate units.
25346         (Tailored_Exception_Information): Remove the procedural version,
25347         previously used by the default Last_Chance_Handler and not any more.
25348         Adjust various comments.
25349
25350         * a-exexda.adb: Generalize the exception information procedural
25351         interface, to minimize the use of secondary stack and the need for
25352         local buffers when the info is to be output to stderr:
25353         (Address_Image): Removed.
25354         (Append_Info_Character): New subprogram, checking for overflows and
25355         outputing to stderr if buffer to fill is of length 0.
25356         (Append_Info_String): Output to stderr if buffer to fill is of length 0.
25357         (Append_Info_Address, Append_Info_Exception_Name,
25358         Append_Info_Exception_Message, Append_Info_Basic_Exception_Information,
25359         Append_Info_Basic_Exception_Traceback,
25360         Append_Info_Exception_Information): New subprograms.
25361         (Append_Info_Nat, Append_Info_NL): Use Append_Info_Character.
25362         (Basic_Exception_Info_Maxlength, Basic_Exception_Tback_Maxlength,
25363         Exception_Info_Maxlength, Exception_Name_Length,
25364         Exception_Message_Length): New subprograms.
25365         (Exception_Information): Use Append_Info_Exception_Information.
25366         (Tailored_Exception_Information): Use
25367         Append_Info_Basic_Exception_Information.
25368         Export services for the default Last_Chance_Handler.
25369
25370         * a-exextr.adb (To_Stderr): Remove. Now in a-except to be usable by
25371         other separate units.
25372
25373 2004-07-20  Vincent Celier  <celier@gnat.com>
25374
25375         * clean.adb, mlib-utl.adb, osint.adb, makegpr.adb: Minor reformatting.
25376
25377 2004-07-20  Ed Schonberg  <schonberg@gnat.com>
25378
25379         * freeze.adb (Freeze_Entity): If entity is a discriminated record type,
25380         emit itype references for the designated types of component types that
25381         are declared outside of the full record declaration, and that may
25382         denote a partial view of that record type.
25383
25384 2004-07-20  Ed Schonberg  <schonberg@gnat.com>
25385
25386         PR ada/15607
25387         * sem_ch3.adb (Build_Discriminated_Subtype): Do not attach a subtype
25388         which is the designated type in an access component declaration, to the
25389         list of incomplete dependents of the parent type, to avoid elaboration
25390         issues with out-of-scope subtypes.
25391         (Complete_Private_Subtype): Recompute Has_Unknown_Discriminants from the
25392         full view of the parent.
25393
25394 2004-07-20  Ed Schonberg  <schonberg@gnat.com>
25395
25396         PR ada/15610
25397         * sem_ch8.adb (Find_Expanded_Name): If name is overloaded, reject
25398         entities that are hidden, such as references to generic actuals
25399         outside an instance.
25400
25401 2004-07-20  Javier Miranda  <miranda@gnat.com>
25402
25403         * sem_ch4.adb (Try_Object_Operation): New subprogram that gives
25404         support to the new notation.
25405         (Analyze_Selected_Component): Add call to Try_Object_Operation.
25406
25407 2004-07-20  Jose Ruiz  <ruiz@act-europe.fr>
25408
25409         * s-taprob.adb: Adding the elaboration code required for initializing
25410         the tasking soft links that are common to the full and the restricted
25411         run times.
25412
25413         * s-tarest.adb (Init_RTS): Tasking soft links that are shared with the
25414         restricted run time has been moved to the package
25415         System.Soft_Links.Tasking.
25416
25417         * s-tasini.adb (Init_RTS): Tasking soft links that are shared with the
25418         restricted run time has been moved to the package
25419         System.Soft_Links.Tasking.
25420
25421         * Makefile.rtl: Add entry for s-solita.o in run-time library list.
25422
25423         * s-solita.ads, s-solita.adb: New files.
25424
25425 2004-07-20  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
25426
25427         * trans.c (Identifier_to_gnu, Pragma_to_gnu, Attribute_to_gnu,
25428         Case_Statement_to_gnu): Split off from gnat_to_gnu.
25429         (Loop_Statement_to_gnu, Subprogram_Body_to_gnu, call_to_gnu,
25430         Handled_Sequence_Of_Statements_to_gnu, Exception_Handler_to_gnu_sjlj,
25431         Exception_Handler_to_gnu_zcx): Likewise.
25432
25433 2004-07-17  Joseph S. Myers  <jsm@polyomino.org.uk>
25434
25435         * gigi.h (builtin_function): Declare.
25436
25437 2004-07-15  Robert Dewar  <dewar@gnat.com>
25438
25439         * makegpr.adb, s-secsta.ads, sem_ch3.adb, sem_case.adb: Minor
25440         reformatting
25441
25442         * gnat_ugn.texi: Add instantiation of direct_io or sequential_io with
25443         access values as an example of a warning.
25444
25445         * gnat_rm.texi: Document new attribute Has_Access_Values
25446
25447         * gnat-style.texi: Document that box comments belong on nested
25448         subprograms
25449
25450         * sem_util.ads (Has_Access_Values): Improved documentation
25451
25452         * s-finimp.ads, s-finimp.adb: Fix spelling error in comment
25453
25454         * sem_prag.adb (Check_Duplicated_Export_Name): New procedure
25455         (Process_Interface_Name): Call to this new procedure
25456         (Set_Extended_Import_Export_External_Name): Call to this new procedure
25457
25458         * s-mastop-x86.adb, 9drpc.adb: Fix spelling error in comment
25459
25460         * a-direio.ads, a-sequio.ads: Warn if Element_Type has access values
25461
25462         * einfo.ads: Minor comment typo fixed
25463
25464 2004-07-15  Jose Ruiz  <ruiz@act-europe.fr>
25465
25466         * snames.adb: Add _atcb.
25467
25468         * snames.ads: Add Name_uATCB.
25469
25470         * s-tarest.adb (Create_Restricted_Task): ATCBs are always preallocated
25471         (in the expanded code) when using the restricted run time.
25472
25473         * s-tarest.ads (Create_Restricted_Task): Created_Task transformed into
25474         a in parameter in order to allow ATCBs to be preallocated (in the
25475         expanded code).
25476
25477         * s-taskin.adb (Initialize_ATCB): T converted into a in parameter in
25478         order to allow ATCBs to be preallocated. In case of error, the ATCB is
25479         deallocated in System.Tasking.Stages.
25480
25481         * s-taskin.ads (Initialize_ATCB): T converted into a in parameter in
25482         order to allow ATCBs to be preallocated.
25483
25484         * s-tassta.adb (Create_Task): In case of error the ATCB is deallocated
25485         here. It was previously done in Initialize_ATCB.
25486
25487         * rtsfind.ads: Make the Ada_Task_Control_Block visible.
25488
25489         * exp_ch9.adb: Preallocate the Ada_Task_Control_Block when using the
25490         Restricted run time.
25491
25492         * exp_ch3.adb: When using the Restricted run time, pass the
25493         preallocated Ada_Task_Control_Block when creating a task.
25494
25495 2004-07-15  Ed Schonberg  <schonberg@gnat.com>
25496
25497         * sem_util.adb (Normalize_Actuals): If there are no actuals on a
25498         function call that is itself an actual in an enclosing call, diagnose
25499         problem here rather than assuming that resolution will catch it.
25500
25501         * sem_ch7.adb (Analyze_Package_Specification): If the specification is
25502         the local copy of a generic unit for a formal package, and the generic
25503         is a child unit, install private part of ancestors before compiling
25504         private part of spec.
25505
25506         * sem_cat.adb (Validate_Categorization_Dependency): Simplify code to
25507         use scope entities rather than tree structures, to handle properly
25508         parent units that are instances rewritten as bodies for inlining
25509         purposes.
25510
25511         * sem_ch10.adb (Get_Parent_Entity, Implicit_With_On_Parent,
25512         Remove_Parents): Handle properly a parent unit that is an
25513         instantiation, when the unit has been rewritten as a body for inlining
25514         purposes.
25515
25516         * par.adb (Goto_List): Global variable to collect goto statements in a
25517         given unit, for use in detecting natural loops.
25518
25519         * par-ch5.adb (P_Goto_Statement): Add goto to global Goto_List, for
25520         use in detecting natural loops.
25521
25522         * par-labl.adb (Find_Natural_Loops): Recognize loops create by
25523         backwards goto's, and rewrite as a infinite loop, to improve locality
25524         of temporaries.
25525
25526         * exp_util.adb (Force_Evaluation): Recognize a left-hand side
25527         subcomponent that includes an indexed reference, to prevent the
25528         generation of copies that would miscompile the desired assignment
25529         statement.
25530         (Build_Task_Image_Decls): Add a numeric suffix to
25531         generated name for string variable, to avoid spurious conflicts with
25532         the name of the type of a single protected object.
25533
25534         * exp_ch4.adb (Expand_Array_Equality): If indices are distinct, use a
25535         loop with an explicit exit statement, to avoid generating an
25536         out-of-range value with 'Succ leading to spurious constraint_errors
25537         when compiling with -gnatVo.
25538
25539 2004-07-15  Thomas Quinot  <quinot@act-europe.fr>
25540
25541         * sem_ch4.adb (Analyze_Slice): Always call Analyze on the prefix: it
25542         might not be analyzed yet, even if its Etype is already set (case of an
25543         unchecked conversion built using Unchecked_Convert_To, for example).
25544         If the prefix has already been analyzed, this will be a nop anyway.
25545
25546         * exp_ch5.adb (Make_Tag_Ctrl_Assignment): For an assignment of a
25547         controller type, or an assignment of a record type with controlled
25548         components, copy only user data, and leave the finalization chain
25549         pointers untouched.
25550
25551 2004-07-15  Vincent Celier  <celier@gnat.com>
25552
25553         * make.adb (Collect_Arguments): Improve error message when attempting
25554         to compile a source not part of any project, when -x is not used.
25555
25556         * prj.ads: (Defined_Variable_Kind): New subtype
25557
25558         * prj-attr.adb (Register_New_Package): Two new procedures to register
25559         a package with or without its attributes.
25560         (Register_New_Attribute): Mew procedure to register a new attribute in a
25561         package.
25562         New attribute oriented subprograms: Attribute_Node_Id_Of,
25563         Attribute_Kind_Of, Set_Attribute_Kind_Of, Attribute_Name_Of,
25564         Variable_Kind_Of, Set_Variable_Kind_Of, Optional_Index_Of,
25565         Next_Attribute.
25566         New package oriented subprograms: Package_Node_Id_Of,
25567         Add_Unknown_Package, First_Attribute_Of, Add_Attribute.
25568
25569         * prj-attr.ads (Attribute_Node_Id): Now a private, self initialized
25570         type.
25571         (Package_Node_Id): Now a private, self initialized type
25572         (Register_New_Package): New procedure to register a package with its
25573         attributes.
25574         New attribute oriented subprograms: Attribute_Node_Id_Of,
25575         Attribute_Kind_Of, Set_Attribute_Kind_Of, Attribute_Name_Of,
25576         Variable_Kind_Of, Set_Variable_Kind_Of, Optional_Index_Of,
25577         Next_Attribute.
25578         New package oriented subprograms: Package_Node_Id_Of,
25579         Add_Unknown_Package, First_Attribute_Of, Add_Attribute.
25580
25581         * prj-dect.adb (Parse_Attribute_Declaration,
25582         Parse_Package_Declaration): Adapt to new spec of Prj.Attr.
25583
25584         * prj-makr.adb (Make): Parse existing project file before creating
25585         other files. Fail if there was an error during parsing.
25586
25587         * prj-proc.adb (Add_Attributes, Process_Declarative_Items): Adapt to
25588         new spec of Prj.Attr.
25589
25590         * prj-strt.adb (Attribute_Reference, Parse_Variable_Reference): Adapt
25591         to new spec of Prj.Attr.
25592
25593 2004-07-15  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
25594
25595         * utils2.c: Fix typo in comment.
25596
25597 2004-07-14  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
25598
25599         * trans.c (add_decl_expr): Clear TREE_READONLY if clear DECL_INITIAL.
25600         * utils.c (unchecked_convert): Don't do two VIEW_CONVERT_EXPRs.
25601
25602 2004-07-14  Andreas Schwab  <schwab@suse.de>
25603
25604         * trans.c (gnat_init_stmt_group): Remove duplicate definition.
25605
25606 2004-07-13  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
25607
25608         * decl.c: (gnat_to_gnu_entity, object case): Convert initializer to
25609         object type.
25610         (gnat_to_gnu_entity, case E_Record_Subtype): Properly set
25611         TYPE_STUB_DECL.
25612
25613         * misc.c (gnat_types_compatible_p): New function.
25614         (LANG_HOOKS_TYPES_COMPATIBLE_P): New hook, to use it.
25615         (LANG_HOOKS_TYPE_MAX_SIZE, gnat_type_max_size): New.
25616
25617         * trans.c (gigi): Move processing of main N_Compilation_Unit here.
25618         (gnat_to_gnu, case N_Compilation_Unit): Just handle nested case here.
25619         (add_stmt): Force walking of sizes and DECL_INITIAL for DECL_EXPR.
25620         (mark_visited): Don't mark dummy type.
25621         (tree_transform <N_Procedure_Call_Statement>): Unless this is an In
25622         parameter, we must remove any LJM building from GNU_NAME.
25623         (gnat_to_gnu, case N_String_Literal): Fill in indices in CONSTRUCTOR.
25624         (pos_to_constructor): Use int_const_binop.
25625         (gnat_to_gnu, case N_Identifier): Don't reference DECL_INITIAL of
25626         PARM_DECL.
25627
25628         * utils.c (gnat_init_decl_processing): Don't make two "void" decls.
25629         (gnat_pushlevel): Set TREE_USE on BLOCK node.
25630         (gnat_install_builtins): Add __builtin_memset.
25631
25632 2004-07-13  Olivier Hainque  <hainque@act-europe.fr>
25633
25634         * decl.c (gnat_to_gnu_entity <E_Variable>): If we are making a pointer
25635         for a renaming, stabilize the initialization expression if we are at a
25636         local level.  At the local level, uses of the renaming may be performed
25637         by a direct dereference of the initializing expression, and we don't
25638         want possible variables there to be evaluated for every use.
25639
25640         * trans.c (gnat_stabilize_reference, gnat_stabilize_reference_1):
25641         Propagate TREE_SIDE_EFFECTS and TREE_THIS_VOLATILE to avoid loosing
25642         them on the way.  Account for the fact that we may introduce side
25643         effects in the process.
25644
25645 2004-07-13  Richard Henderson  <rth@redhat.com>
25646
25647         * misc.c (default_pass_by_ref): Use pass_by_reference.
25648
25649 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
25650
25651         * misc.c (LANG_HOOKS_CLEAR_BINDING_STACK, LANG_HOOKS_PUSHLEVEL,
25652         LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
25653
25654 2004-07-08  Richard Henderson  <rth@redhat.com>
25655
25656         * trans.c (gnat_to_gnu <N_Handled_Sequence_Of_Statements>): Update
25657         commentary.
25658
25659 2004-07-06  Vincent Celier  <celier@gnat.com>
25660
25661         * vms_conv.ads: Minor reformatting.
25662         Alphabetical order for enumerated values of type Command_Type, to have
25663         the command in alphabetical order for the usage.
25664
25665         * vms_conv.adb (Process_Argument): Set Keep_Temporary_Files to True for
25666         the special qualifier /KEEP_TEMPORARY_FILES (minimum 6 characters).
25667
25668         * gnat_ugn.texi: Document new switch -dn for the GNAT driver.
25669
25670         * makegpr.adb (Global_Archive_Exists): New global Boolean variable
25671         (Add_Archive_Path): Only add the global archive if there is one.
25672         (Build_Global_Archive): Set Global_Archive_Exists depending if there is
25673         or not any object file to put in the global archive, and don't build
25674         a global archive if there is none.
25675         (X_Switches): New table
25676         (Compile_Link_With_Gnatmake): Pass to gnatmake the -X switches stored
25677         in the X_Switches table, if any.
25678         (Initialize): Make sure the X_Switches table is empty
25679         (Scan_Arg): Record -X switches in table X_Switches
25680
25681         * opt.ads (Keep_Temporary_Files): New Boolean flag, defaulted to False.
25682
25683         * make.adb: Minor comment fix
25684
25685         * gnatname.adb (Gnatname): When not on VMS, and gnatname has been
25686         invoked with directory information, add the directory in front of the
25687         path.
25688
25689         * gnatchop.adb (Gnatchop): When not on VMS, and gnatchop has been
25690         invoked with directory information, add the directory in front of the
25691         path.
25692
25693         * gnatcmd.adb (Delete_Temp_Config_Files): Only delete temporary files
25694         when Keep_Temporary_Files is False.
25695         (GNATCmd): When not on VMS, and the GNAT driver has been invoked with
25696         directory information, add the directory in front of the path.
25697         When not on VMS, handle new switch -dn before the command to set
25698         Keep_Temporary_Files to True.
25699         (Non_VMS_Usage): Use lower case for the non VMS usage: this is valid
25700         everywhere.
25701
25702         * gnatlink.adb (Gnatlink): When not on VMS, and gnatlink has been
25703         invoked with directory information, add the directory in front of the
25704         path.
25705
25706 2004-07-06  Thomas Quinot  <quinot@act-europe.fr>
25707
25708         * snames.ads, snames.adb (Name_Stub): New name for the distributed
25709         systems annex.
25710
25711         * rtsfind.ads: New RTE TC_Object, for DSA/PolyORB.
25712         New RTEs RAS_Proxy_Type and RAS_Proxy_Type_Access, for DSA.
25713
25714         * g-socket.adb (To_Timeval): Fix incorrect conversion of
25715         Selector_Duration to Timeval for the case of 0.0.
25716
25717         * exp_util.ads (Evolve_Or_Else): Fix overenthusiastic copy/paste of
25718         documentation from Evolve_And_Then.
25719
25720 2004-07-06  Jose Ruiz  <ruiz@act-europe.fr>
25721
25722         * s-taprop-tru64.adb, s-taprop-os2.adb,
25723         s-taprop-mingw.adb, s-taprop-posix.adb: Update comment.
25724
25725 2004-07-06  Robert Dewar  <dewar@gnat.com>
25726
25727         * s-osinte-hpux.ads, s-osinte-freebsd.ads,
25728         s-osinte-lynxos.ads, s-taprop-lynxos.adb, s-osinte-tru64.ads,
25729         s-osinte-aix.ads, s-osinte-irix.ads, s-taprop-irix.adb,
25730         s-interr-sigaction.adb, s-taprop-irix-athread.adb,
25731         s-osinte-hpux-dce.adb, s-taprop-hpux-dce.adb,
25732         s-taprop-linux.adb, s-taprop-dummy.adb, s-taprop-solaris.adb,
25733         s-interr-vms.adb, s-osinte-vms.ads, s-taprop-vms.adb,
25734         s-osinte-vxworks.ads, s-osprim-vxworks.adb, a-numaux-x86.adb,
25735         a-except.adb, a-exexpr.adb, a-intsig.adb, a-tags.adb,
25736         a-tags.ads, bindgen.ads, checks.adb, checks.adb,
25737         csets.ads, einfo.ads, einfo.ads, elists.adb, exp_ch4.adb,
25738         exp_ch7.adb, exp_dist.adb, exp_util.adb, freeze.adb,
25739         g-dynhta.adb, gnatmem.adb, g-regexp.adb, inline.adb,
25740         i-os2thr.ads, osint.adb, prj.adb, scng.adb, sem_cat.adb,
25741         sem_ch10.adb, sem_ch12.adb, sem_ch4.adb, sem_ch7.adb,
25742         sem_ch8.adb, sem_disp.adb, sem_prag.adb, sem_res.adb,
25743         sem_type.adb, sem_type.ads, sem_warn.adb, s-ficobl.ads,
25744         s-finimp.adb, s-htable.adb, sinfo.ads, sinput-l.ads,
25745         s-interr.adb, s-interr.ads, sprint.adb, s-tarest.adb,
25746         s-tasini.ads, s-taskin.ads, s-taskin.ads, uname.adb,
25747         vms_data.ads: Minor reformatting,
25748         Fix bad box comment format.
25749
25750         * gnat_rm.texi: Fix minor grammatical error
25751
25752         * sem_attr.adb, exp_attr.adb: New attribute Has_Access_Values
25753
25754         * sem_util.ads, sem_util.adb (Requires_Transient_Scope): Allow many
25755         more cases of discriminated records to be recognized as not needing a
25756         secondary stack.
25757         (Has_Access_Values): New function.
25758
25759         * snames.h, snames.adb, snames.ads: New attribute Has_Access_Values
25760
25761         * cstand.adb, layout.ads, layout.adb, sem_ch13.ads: Change name
25762         Set_Prim_Alignment to Set_Elem_Alignment (more accurate correspondence
25763         with LRM terminology).
25764         Change terminology in comments primitive type => elementary type.
25765
25766 2004-07-06  Ed Schonberg  <schonberg@gnat.com>
25767
25768         PR ada/15602
25769         * sem_ch7.adb (Unit_Requires_Body): For a generic package, the formal
25770         parameters do not impose any requirements on the presence of a body.
25771
25772 2004-07-06  Ed Schonberg  <schonberg@gnat.com>
25773
25774         PR ada/15593
25775         * sem_ch12.adb (Analyze_Package_Instantiation): If the generic is not a
25776         compilation unit and is in an open scope at the point of instantiation,
25777         assume that a body may be present later.
25778
25779 2004-07-06  Ed Schonberg  <schonberg@gnat.com>
25780
25781         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case 'Size):
25782         Improve error message when specified size is not supported.
25783
25784         * sem_ch6.adb (Maybe_Primitive_Operation): A library-level subprogram
25785         is never a primitive operation.
25786
25787 2004-07-05  Andreas Schwab  <schwab@suse.de>
25788
25789         * ada-tree.h (TYPE_LEFT_JUSTIFIED_MODULAR_P): Use
25790         RECORD_OR_UNION_CHECK.
25791         (TYPE_CONTAINS_TEMPLATE_P): Likewise.
25792
25793 2004-07-04  Kelley Cook  <kcook@gcc.gnu.org>
25794
25795         * Make-lang.in (doc/gnat_ugn_unw.texi): Eliminate explicit
25796         dependency on xgnatugn, instead build it via a submake.
25797         (ADA_INFOFILES): Add doc/gnat_ugn_unw.texi.
25798
25799 2004-07-04  Richard Henderson  <rth@redhat.com>
25800
25801         * utils2.c (gnat_mark_addressable): Don't put_var_into_stack.
25802
25803 2004-07-01  Richard Henderson  <rth@redhat.com>
25804
25805         * trans.c (gnat_stabilize_reference): Don't handle RTL_EXPR.
25806         * utils.c (max_size): Likewise.
25807
25808 2004-06-28  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
25809
25810         * decl.c: Remove calls to add_decl_expr, pushdecl, rest_of_compilation,
25811         and rest_of_type_compilation; add arg to create_*_decl.
25812         (annotate_decl_with_node): Deleted.
25813         (gnat_to_gnu_entity, case E_Array_Type): Set location of fields.
25814         * gigi.h (get_decls, block_has_vars, pushdecl): Deleted.
25815         (get_current_block_context, gnat_pushdecl): New declarations.
25816         (gnat_init_stmt_group): Likewise.
25817         (create_var_decl, create_type_decl, create_subprog_decl): Add new arg.
25818         * misc.c (LANG_HOOKS_CLEAR_BINDING_STACK): Deleted.
25819         (LANG_HOOKS_GETDECLS, LANG_HOOKS_PUSHDECL): Deleted.
25820         (gnat_init): Call gnat_init_stmt_group.
25821         * trans.c (global_stmt_group, gnu_elab_proc_decl): New variables.
25822         (gnu_pending_elaboration_list): Deleted.
25823         (mark_visited, mark_unvisited, gnat_init_stmt_group): New functions.
25824         (gigi): Rearrange initialization calls and move some to last above.
25825         (gnat_to_gnu): If statement and not in procedure, go into elab proc.
25826         Delete calls to add_decl_expr; add arg to create_*_decl.
25827         (gnat_to_gnu, case N_Loop): Recalculate side effects on COND_EXPR.
25828         (gnat_to_gnu, case N_Subprogram_Body): Move some code to
25829         begin_subprog_body and call it.
25830         Don't push and pop ggc context.
25831         (gnat_to_gnu, case N_Compilation_Unit): Rework to support elab proc.
25832         (add_stmt): Remove handling of DECL_EXPR from here.
25833         If not in function, mark visited.
25834         (add_decl_expr): Put global at top level.
25835         Check for cases of DECL_INITIAL we have to handle here.
25836         (process_type): Add extra arg to create_type_decl.
25837         (build_unit_elab): Rework to just gimplify.
25838         * utils.c (pending_elaborations, elist_stack, getdecls): Deleted.
25839         (block_has_vars, mark_visited, add_pending_elaborations): Likewise.
25840         (get_pending_elaborations, pending_elaborations_p): Likewise.
25841         (push_pending_elaborations, pop_pending_elaborations): Likewise.
25842         (get_elaboration_location, insert_elaboration_list): Likewise.
25843         (gnat_binding_level): Renamed from ada_binding_level.
25844         (init_gnat_to_gnu): Don't clear pending_elaborations.
25845         (global_bindings_p): Treat as global if no current_binding_level.
25846         (set_current_block_context): New function.
25847         (gnat_pushdecl): Renamed from pushdecl; major rework.
25848         All callers changed.
25849         (create_type_decl, create_var_decl, create_subprog_decl): Add new arg.
25850         (finish_record_type): Call call pushdecl for stub decl.
25851         (function_nesting_depth): Deleted.
25852         (begin_subprog_body): Delete obsolete code.
25853         * utils2.c (build_call_alloc_dealloc): Add new arg to create_var_decl.
25854
25855 2004-06-28  Robert Dewar  <dewar@gnat.com>
25856
25857         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
25858         mlib-tgt-irix.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
25859         mlib-tgt-linux.adb, mlib-tgt-solaris.adb, mlib-tgt-solaris.adb,
25860         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
25861         a-strmap.adb, a-strmap.ads, clean.adb: Minor reformatting
25862
25863         * exp_util.adb (Is_Possibly_Unaligned_Slice): Completely rewritten, to
25864         deal with problem of inefficient slices on machines with strict
25865         alignment, when the slice is a component of a composite.
25866
25867         * checks.adb (Apply_Array_Size_Check): Do not special case 64-bit
25868         machines, we need the check there as well.
25869
25870 2004-06-28  Ed Schonberg  <schonberg@gnat.com>
25871
25872         * exp_ch5.adb (Expand_Assign_Array): Use correct condition to
25873         determine safe copying direction for overlapping slice assignments
25874         when component is controlled.
25875
25876         * sem_ch12.adb (Instantiate_Formal_Package): Implicit operations of a
25877         formal derived type in the actual for a formal package are visible in
25878         the enclosing instance.
25879
25880 2004-06-28  Ed Schonberg  <schonberg@gnat.com>
25881
25882         PR ada/15600
25883         * sem_util.adb (Trace_Components): Diagnose properly an illegal
25884         circularity involving a private type whose completion includes a
25885         self-referential component.
25886         (Enter_Name): Use Is_Inherited_Operation to distinguish a source
25887         renaming or an instantiation from an implicit derived operation.
25888
25889 2004-06-28  Pascal Obry  <obry@gnat.com>
25890
25891         * mlib-tgt-mingw.adb: (Library_Exists_For): Remove "lib" prefix from
25892         DLL.
25893         (Library_File_Name_For): Idem.
25894
25895 2004-06-28  Matthew Gingell  <gingell@gnat.com>
25896
25897         * g-traceb.ads: Add explanatory note on the format of addresses
25898         expected by addr2line.
25899
25900 2004-06-28  Jerome Guitton  <guitton@act-europe.fr>
25901
25902         * Makefile.in: Force debugging information on s-tasdeb.adb,
25903         a-except.adb and s-assert.adb needed by the debugger.
25904
25905 2004-06-28  Vincent Celier  <celier@gnat.com>
25906
25907         * make.adb (Collect_Arguments_And_Compile): Change Flag1 to
25908         Need_To_Build_Lib.
25909         (Gnatmake): Ditto.
25910
25911         * mlib-prj.adb (Check_Library): Replace Flag1 with Need_To_Build_Lib
25912
25913         * prj.adb: Minor reformatting
25914         (Project_Empty): Change Flag1 to Need_To_Build_Lib. Remove Flag2.
25915
25916         * prj.ads: Comment updates
25917         Minor reformatting
25918         (Project_Data): Change Flag1 to Need_To_Build_Lib.
25919         Remove Flag2: not used.
25920
25921         * prj-dect.adb (Parse_Declarative_Items): Accept "null" as a
25922         declaration.
25923
25924         * gnat_ugn.texi: Put a "null;" declaration in one project file example
25925
25926         * gnat_rm.texi: Document Empty declarations "null;".
25927
25928         * makegpr.adb (Compile_Link_With_Gnatmake): Put the global archives in
25929         front of the linker options.
25930         (Link_Foreign): Put the global archives and the libraries in front of
25931         the linker options.
25932
25933 2004-06-28  Javier Miranda  <miranda@gnat.com>
25934
25935         * rtsfind.adb: (Get_Unit_Name): Fix typo in comment
25936         (RTU_Loaded): Code cleanup
25937         (Set_RTU_Loaded): New procedure to register as *loaded* explicitly
25938         withed predefined units.
25939
25940         * rtsfind.ads (Set_RTU_Loaded): New procedure to register as *loaded*
25941         explicitly withed predefined units.
25942         Fix typo in comment
25943
25944         * sem_ch10.adb (Analyze_Compilation_Unit): Register as *loaded*
25945         explicitly withed predefined units.
25946
25947 2004-06-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
25948
25949         * ada-tree.def (DECL_STMT): Deleted.
25950         * ada-tree.h (IS_ADA_STMT): Now test against STMT_STMT.
25951         (DECL_STMT_VAR): Deleted.
25952         * decl.c: add_decl_stmt now add_decl_expr.
25953         * gigi.h: Likewise.
25954         * trans.c: Likewise.
25955         (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Deleted.
25956         (gnat_to_gnu, case N_Subprogram_Body): Set cfun->function_end_locus.
25957         (add_stmt): Only handle padded type here.
25958         (add_stmt_with_node): Allow gnat_node to not be present.
25959         (gnat_gimplify_stmt, case USE_STMT): Set *STMT_P to null.
25960         (gnat_gimplify_stmt, case DECL_STMT): Deleted.
25961         (gnat_stabilize_reference_1): If COMPONENT_REF of fat pointer,
25962         make a SAVE_EXPR for the entire fat pointer.
25963         * utils.c (pushdecl): Walk a DECL_EXPR in global case.
25964         (create_index_type): Make a DECL_EXPR.
25965         (end_subprog_body): Don't call allocate_struct_function here but
25966         do clear cfun.
25967
25968 2004-06-25  Pascal Obry  <obry@gnat.com>
25969
25970         * makegpr.adb (Build_Library): Remove parameter Lib_Address and
25971         Relocatable from Build_Dynamic_Library call.
25972
25973         * gnat_ugn.texi: Change documentation about Library_Kind. Dynamic and
25974         Relocatable are now synonym.
25975
25976         * Makefile.in: Use s-parame-mingw.adb on MingW platform.
25977
25978         * mlib-prj.adb (Build_Library): Remove DLL_Address constant definition.
25979         Remove parameter Lib_Address and Relocatable from Build_Dynamic_Library
25980         call.
25981
25982         * mlib-tgt.ads, mlib-tgt.adb (Build_Dynamic_Library): Remove parameter
25983         Lib_Address and Relocatable.
25984         (Default_DLL_Address): Removed.
25985
25986         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
25987         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
25988         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-vxworks.adb:
25989         (Build_Dynamic_Library): Remove parameter Lib_Address and Relocatable.
25990         (Default_DLL_Address): Removed.
25991
25992         * mlib-tgt-mingw.adb: Ditto.
25993         (Build_Dynamic_Library): Do not add "lib" prefix to the DLL name.
25994
25995         * s-taprop-mingw.adb (Create_Task): Use Adjust_Storage_Size to compute
25996         the initial thread stack size.
25997
25998         * a-strmap.ads: Move package L to private part as it is not used in
25999         the spec. Found while reading code.
26000
26001 2004-06-25  Olivier Hainque  <hainque@act-europe.fr>
26002
26003         * tracebak.c: Introduce support for a GCC infrastructure based
26004         implementation of __gnat_backtrace.
26005
26006         * raise.c: Don't rely on a C mapping of the GNAT_GCC_Exception record
26007         any more. Use accessors instead. This eases maintenance and relaxes
26008         some alignment constraints.
26009         (_GNAT_Exception structure): Remove the Ada specific fields
26010         (EID_For, Adjust_N_Cleanups_For): New accessors, exported by
26011         a-exexpr.adb.
26012         (is_handled_by, __gnat_eh_personality): Replace component references to
26013         exception structure by use of the new accessors.
26014
26015         * init.c (__gnat_initialize): Adjust comments to match the just
26016         reverted meaning of the -static link-time option.
26017
26018         * adaint.c (convert_addresses): Arrange not to define a stub for
26019         mips-irix any more, as we now want to rely on a real version from a
26020         recent libaddr2line.
26021
26022         * a-exexpr.adb: Provide new accessors to a GNAT_GCC occurrence, so that
26023         the personality routine can use them and not have to rely on a C
26024         counterpart of the record anymore. This simplifies maintenance and
26025         relaxes the constraint of having Standard'Maximum_Alignment match
26026         BIGGEST_ALIGNMENT.
26027         Update comments, and add a section on the common header alignment issue.
26028
26029 2004-06-25  Geert Bosch  <bosch@gnat.com>
26030
26031         * a-ngelfu.adb (Tanh): Use full 20 digit precision for constants in
26032         polynomial approximation. Fixes inconsistency with Cody/Waite algorithm.
26033
26034 2004-06-25  Robert Dewar  <dewar@gnat.com>
26035
26036         * gnat_rm.texi: Fix section on component clauses to indicate that the
26037         restriction on byte boundary placement still applies for bit packed
26038         arrays.
26039         Add comment on stack usage from Initialize_Scalars
26040
26041         * gnat_ugn.texi: Add documentation for -gnatyLnnn
26042
26043         * stylesw.ads, stylesw.adb: Implement new -gnatyLnnn option for
26044         limiting nesting level.
26045
26046         * usage.adb: Add line for -gnatyLnnn switch
26047
26048         * g-debpoo.ads, xtreeprs.adb, sinput.ads, sem_ch13.ads,
26049         sem_ch13.adb, exp_aggr.adb: Minor reformatting
26050
26051         * sem_prag.adb (Process_Atomic_Shared_Volatile): Set Is_Atomic on base
26052         type as well as on the subtype. This corrects a problem in freeze in
26053         setting alignments of atomic types.
26054
26055         * sem_eval.ads: Minor comment typo fixed
26056
26057         * par-util.adb (Push_Scope_Stack): Check for violation of max nesting
26058         level.  Minor reformatting.
26059
26060         * fname.adb (Is_Predefined_File_Name): Require a letter after the
26061         minus sign. This means that file names like a--b.adb will not be
26062         considered predefined.
26063
26064         * freeze.adb: Propagate new flag Must_Be_On_Byte_Boundary to containing
26065         record Test new flag and give diagnostic for bad component clause.
26066         (Freeze_Entity): Set alignment of array from component alignment in
26067         cases where this is safe to do.
26068
26069         * exp_pakd.adb: Set new flag Must_Be_On_Byte_Boundary for large packed
26070         arrays.
26071
26072         * cstand.adb: (Create_Standard): Set alignment of String to 1
26073
26074         * einfo.ads, einfo.adb: Introduce new flag Must_Be_On_Byte_Boundary
26075
26076         * exp_ch4.adb (Expand_Array_Equality): Improve efficiency of generated
26077         code in the common constrained array cases.
26078
26079         * a-storio.adb: Change implementation to avoid possible alignment
26080         problems on machines requiring strict alignment (data should be moved
26081         as type Buffer, not type Elmt).
26082
26083         * checks.adb (Apply_Array_Size_Check): Improve these checks by
26084         killing the overflow checks which we really do not need (64-bits is
26085         enough).
26086
26087 2004-06-25  Vincent Celier  <celier@gnat.com>
26088
26089         * makegpr.adb (Is_Included_In_Global_Archive): New Boolean function
26090         (Add_Archives.Recursive_Add_Archives): Call Add_Archive_Path
26091         inconditionally for the main project.
26092         (Recursive_Add_Archives.Add_Archive_Path): New procedure
26093         (Link_Executables.Check_Time_Stamps): New procedure
26094         (Link_Executables.Link_Foreign): New procedure
26095         Changes made to reduce nesting level of this package
26096         (Check): New procedure
26097         (Add_Switches): When not in quiet output, check that a switch is not
26098         the concatenation of several valid switches. If it is, issue a warning.
26099         (Build_Global_Archive): If the global archive is rebuilt, linking need
26100         to be done.
26101         (Compile_Sources): Rebuilding a library archive does not imply
26102         rebuilding the global archive.
26103         (Build_Global_Archive): New procedure
26104         (Build_Library): New name for Build_Archive, now only for library
26105         project
26106         (Check_Archive_Builder): New procedure
26107         (Create_Global_Archive_Dependency_File): New procedure
26108         (Gprmake): Call Build_Global_Archive before linking
26109         * makegpr.adb: Use Other_Sources_Present instead of Sources_Present
26110         throughout.
26111         (Scan_Arg): Display the Copyright notice when -v is used
26112
26113         * gnat_ugn.texi: Document new switch -files= (VMS qualifier /FILES=)
26114         for gnatls.
26115
26116         * vms_data.ads: Add qualifier /MAX_NESTING=nnn (-gnatyLnnn) for GNAT
26117         COMPILE.
26118         Add new GNAT LIST qualifier /FILES=
26119         Added qualifier /DIRECTORY= to GNAT METRIC
26120         Added qualifier /FILES= to GNAT METRIC
26121         Added qualifier /FILES to GNAT PRETTY
26122
26123         * switch.adb (Is_Front_End_Switch): Refine the test for --RTS or -fRTS,
26124         to take into account both versions of the switch.
26125
26126         * switch-c.adb (Scan_Front_End_Switches): New switch -gnatez. Should
26127         always be the last switch to the gcc driver. Disable switch storing so
26128         that switches automatically added by the gcc driver are not put in the
26129         ALI file.
26130
26131         * prj.adb (Project_Empty): Take into account changes in components of
26132         Project_Data.
26133
26134         * prj.ads (Languages_Processed): New enumaration value All_Languages.
26135
26136         * prj.ads (Project_Data): Remove component Lib_Elaboration: never
26137         used. Split Boolean component Ada_Sources_Present in two Boolean
26138         components Ada_Sources_Present and Other_Sources_Present.
26139         Minor reformatting
26140
26141         * prj-env.adb (For_All_Source_Dirs.Add): Use Ada_Sources_Present
26142         instead of Sources_Present.
26143         (Set_Ada_Paths.Add.Recursive_Add): Ditto
26144
26145         * prj-nmsc.adb: Minor reformatting
26146         (Check_Ada_Naming_Scheme): New name of procedure Check_Naming_Scheme
26147         (Check_Ada_Naming_Scheme_Validity): New name of previous procedure
26148         Check_Ada_Naming_Scheme.
26149         Change Sources_Present to Ada_Sources_Present or Other_Sources_Present
26150         throughout.
26151
26152         * prj-part.adb (Post_Parse_Context_Clause): New Boolean parameter
26153         In_Limited.
26154         Make sure that all cycles where there is at least one "limited with"
26155         are detected.
26156         (Parse_Single_Project): New Boolean parameter In_Limited
26157
26158         * prj-proc.adb (Recursive_Check): When Process_Languages is
26159         All_Languages, call first Prj.Nmsc.Ada_Check, then
26160         Prj.Nmsc.Other_Languages_Check.
26161
26162         * prj-proc.adb (Process): Use Ada_Sources_Present or
26163         Other_Sources_Present (instead of Sources_Present) depending on
26164         Process_Languages.
26165
26166         * lang-specs.h: Keep -g and -m switches in the same order, and as the
26167         last switches.
26168
26169         * lib.adb (Switch_Storing_Enabled): New global Boolean flag
26170         (Disable_Switch_Storing): New procedure. Set Switch_Storing_Enabled to
26171         False.
26172         (Store_Compilation_Switch): Do nothing if Switch_Storing_Enabled is
26173         False.
26174
26175         * lib.ads (Disable_Switch_Storing): New procedure.
26176
26177         * make.adb: Modifications to reduce nesting level of this package.
26178         (Check_Standard_Library): New procedure
26179         (Gnatmake.Check_Mains): New procedure
26180         (Gnatmake.Create_Binder_Mapping_File): New procedure
26181         (Compile_Sources.Compile): Add switch -gnatez as the last option
26182         (Display): Never display -gnatez
26183
26184         * Makefile.generic:
26185         When using $(MAIN_OBJECT), always use $(OBJ_DIR)/$(MAIN_OBJECT)
26186
26187         * gnatcmd.adb (Check_Project): New function
26188         (Process_Link): New procedure to reduce nesting depth
26189         (Check_Files): New procedure to reduce the nesting depth.
26190         For GNAT METRIC, include the inherited sources in extending projects.
26191         (GNATCmd): When GNAT LS is invoked with a project file and no files,
26192         add the list of files from the sources of the project file. If this list
26193         is too long, put it in a temp text files and use switch -files=
26194         (Delete_Temp_Config_Files): Delete the temp text file that contains
26195         a list of source for gnatpp or gnatmetric, if one has been created.
26196         (GNATCmd): For GNAT METRIC and GNAT PRETTY, if the number of sources
26197         in the project file is too large, create a temporary text file that
26198         list them and pass it to the tool with "-files=<temp text file>".
26199         (GNATCmd): For GNAT METRIC add "-d=<abject dir>" as the first switch
26200
26201         * gnatlink.adb (Gnatlink): Do not compile with --RTS= when the
26202         generated file is in not in Ada.
26203
26204         * gnatls.adb: Remove all parameters And_Save that are no longer used.
26205         (Scan_Ls_Arg): Add processing for -files=
26206         (Usage): Add line for -files=
26207
26208         * g-os_lib.adb (On_Windows): New global constant Boolean flag
26209         (Normalize_Pathname): When on Windows and the path starts with a
26210         directory separator, make sure that the resulting path will start with
26211         a drive letter.
26212
26213         * clean.adb (Clean_Archive): New procedure
26214         (Clean_Project): When there is non-Ada code, delete the global archive,
26215         the archive dependency files, the object files and their dependency
26216         files, if they exist.
26217         (Gnatclean): Call Prj.Pars.Parse for All_Languages, not for Ada only.
26218
26219 2004-06-25  Thomas Quinot  <quinot@act-europe.fr>
26220
26221         * sinfo.ads: Fix typo in comment.
26222
26223         * sem_dist.adb (Process_Remote_AST_Attribute): Simplify code that uses
26224         the TSS for remote access-to-subprogram types, since these TSS are
26225         always present once the type has been analyzed.
26226         (RAS_E_Dereference): Same.
26227
26228         * sem_attr.adb (Analyze_Attribute): When analysis of an attribute
26229         reference raises Bad_Attribute, mark the reference as analyzed so the
26230         node (and any children resulting from rewrites that could have occurred
26231         during the analysis that ultimately failed) is not analyzed again.
26232
26233         * exp_ch7.ads (Find_Final_List): Fix misaligned comment.
26234
26235         * exp_dist.adb: Minor comment fix.
26236
26237         * exp_ch4.adb (Expand_N_Allocator): For an allocator whose expected
26238         type is an anonymous access type, no unchecked deallocation of the
26239         allocated object can occur. If the object is controlled, attach it with
26240         a count of 1. This allows attachment to the Global_Final_List, if
26241         no other relevant list is available.
26242         (Get_Allocator_Final_List): For an anonymous access type that is
26243         the type of a discriminant or record component, the corresponding
26244         finalisation list is the one of the scope of the type.
26245
26246 2004-06-25  Ed Schonberg  <schonberg@gnat.com>
26247
26248         * sem_ch3.adb (Replace_Type): When computing the signature of an
26249         inherited subprogram, use the first subtype if the derived type
26250         declaration has no constraint.
26251
26252         * exp_ch6.adb (Add_Call_By_Copy_Code): Check that formal is an array
26253         before applying previous optimization. Minor code cleanup.
26254
26255         * exp_util.adb (Is_Possibly_Unaligned_Slice): If the component is
26256         placed at the beginning of an unpacked record without explicit
26257         alignment, a slice of it will be aligned and does not need a copy when
26258         used as an actual.
26259
26260 2004-06-25  Ed Schonberg  <schonberg@gnat.com>
26261
26262         PR ada/15591
26263         PR ada/15592
26264         * sem_ch8.adb (Attribute_Renaming): Reject renaming if the attribute
26265         reference is written with expressions mimicking parameters.
26266
26267 2004-06-25  Hristian Kirtchev  <kirtchev@gnat.com>
26268
26269         PR ada/15589
26270         * sem_ch3.adb (Build_Derived_Record_Type): Add additional check to
26271         STEP 2a. The constraints of a full type declaration of a derived record
26272         type are checked for conformance with those declared in the
26273         corresponding private extension declaration. The message
26274         "not conformant with previous declaration" is emitted if an error is
26275         detected.
26276
26277 2004-06-25  Vasiliy Fofanov  <fofanov@act-europe.fr>
26278
26279         * g-traceb.ads: Document the need for -E binder switch in the spec.
26280
26281         * g-trasym.ads: Document the need for -E binder switch in the spec.
26282
26283 2004-06-25  Jose Ruiz  <ruiz@act-europe.fr>
26284
26285         * sem_prag.adb: Add handling of pragma Detect_Blocking.
26286
26287         * snames.h, snames.ads, snames.adb: Add entry for pragma
26288         Detect_Blocking.
26289
26290         * s-rident.ads: Change reference to pragma Detect_Blocking.
26291
26292         * targparm.ads, targparm.adb: Allow pragma Detect_Blocking in
26293         system.ads.
26294
26295         * opt.ads (Detect_Blocking): New Boolean variable (defaulted to False)
26296         to indicate whether pragma Detect_Blocking is active.
26297
26298         * par-prag.adb: Add entry for pragma Detect_Blocking.
26299
26300         * rtsfind.adb (RTU_Loaded): Fix the temporary kludge to get past bug
26301         of not handling WITH.
26302         Note that this replaces the previous update which was incorrect.
26303
26304 2004-06-25  Javier Miranda  <miranda@gnat.com>
26305
26306         * sem_ch10.adb (Re_Install_Use_Clauses): Force the installation of the
26307         use-clauses to have a clean environment.
26308
26309         * sem_ch8.adb (Install_Use_Clauses): Addition of a new formal to force
26310         the installation of the use-clauses to stablish a clean environment in
26311         case of compilation of a separate unit; otherwise the call to
26312         use_one_package is protected by the barrier Applicable_Use.
26313
26314         * sem_ch8.ads (Install_Use_Clauses): Addition of a new formal to force
26315         the installation of the use-clauses to stablish a clean environment in
26316         case of compilation of a separate unit.
26317         (End_Use_Clauses): Minor comment cleanup.
26318
26319 2004-06-25  Sergey Rybin  <rybin@act-europe.fr>
26320
26321         * gnat_ugn.texi: Add description of the gnatpp 'files' switch
26322
26323 2004-06-23  Richard Henderson  <rth@redhat.com>
26324
26325         * trans.c (gnat_gimplify_stmt): Update gimplify_type_sizes call.
26326
26327 2004-06-20  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
26328
26329         * decl.c (elaborate_expression, elaborate_expression_1): Arguments
26330         now bool instead of int.
26331         (gnat_to_gnu_entity, elaborate_expression_1): New arg to COMPONENT_REF.
26332         * trans.c (gnu_switch_label_stack): New function.
26333         (gnat_to_gnu, N_Object_Renaming_Declaration): Result is what the
26334         elaboration of renamed entity returns.
26335         (gnat_to_gnu, case N_Case_Statement): Add branches to end label.
26336         (add_decl_stmt): Don't add TYPE_DECL for UNCONSTRAINED_ARRAY_TYPE.
26337         (gnat_gimplify_stmt): Use alloc_stmt_list, not build_empty_stmt.
26338         (gnat_gimplify_stmt, case DECL_STMT): gimplify DECL_SIZE and
26339         DECL_SIZE_UNIT and simplify variable-sized case.
26340         (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Deleted.
26341         Callers changes to call gimplify_type_sizes and gimplify_one_sizepos.
26342         (gnat_stabilize_reference): Add arg to COMPONENT_REF.
26343         (build_unit_elab): Disable for now.
26344         * utils.c (mark_visited): New function.
26345         (pushdecl): Walk tree to call it for global decl.
26346         (update_pointer_to): Update all variants of pointer and ref types.
26347         Add arg to COMPONENT_REF.
26348         (convert): Likewise.
26349         Move check for converting between variants lower down.
26350         * utils2.c (build_simple_component_ref): Add arg to COMPONENT_REF.
26351         (build_allocator): Don't force type of MODIFY_EXPR.
26352         (gnat_mark_addressable, case VAR_DECL): Unconditionally call
26353         put_var_into_stack.
26354
26355 2004-06-14  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
26356
26357         * ada-tree.def (LOOP_STMT, EXIT_STMT): Update documentation.
26358         * ada-tree.h (EXIT_STMT_LABEL): Renamed from EXIT_STMT_LOOP.
26359         * decl.c (gnat_to_gnu_entity): Also set force_global for imported
26360         subprograms.
26361         * trans.c (gnu_loop_label_stack): Renamed from gnu_loop_stmt_stack;
26362         all callers changed.
26363         (gnat_to_gnu, case N_Loop_Statement, case N_Exit_Statement): Change
26364         the way that EXIT_STMT finds the loop label.
26365         (gnat_gimplify_stmt, case LOOP_STMT, EXIT_STMT): Likewise.
26366         (gnat_gimplify_stmt, case DECL_STMT): Handle variable-sized decls here.
26367         (add_stmt): Use annotate_with_locus insted of setting directly.
26368         (pos_to_construct): Set TREE_PURPOSE of each entry to index.
26369         (gnat_stabilize_reference, case ARRAY_RANGE_REF): Merge with ARRAY_REF.
26370         * utils.c (gnat_install_builtins): Install __builtin_memcmp.
26371         (build_vms_descriptor): Add extra args to ARRAY_REF.
26372         (convert): Use VIEW_CONVERT_EXPR between aggregate types.
26373         * utils2.c (gnat_truthvalue_conversion, case INTEGER_CST, REAL_CST):
26374         New cases.
26375         (build_binary_op): Don't make explicit CONVERT_EXPR.
26376         Add extra rgs to ARRAY_REF.
26377
26378 2004-06-14  Pascal Obry  <obry@gnat.com>
26379
26380         * gnat_ugn.texi: Document relocatable vs. dynamic Library_Kind on
26381         Windows.  Fix minor typo.
26382
26383         * mlib-tgt-mingw.adb: New implementation using the GCC -shared option
26384         which is now supported on Windows. With this implementation using the
26385         Library Project feature is no different on Windows than on UNIX.
26386
26387 2004-06-14  Vincent Celier  <celier@gnat.com>
26388
26389         * makegpr.adb (Compile_Sources): Nothing to do when there are no
26390         non-Ada sources.
26391
26392         * mlib-tgt-vxworks.adb (Library_Exists_For): Remove incorrect comment
26393
26394         * prj-part.adb (Parse_Single_Project): When a duplicate project name is
26395         found, show the project name and the path of the previously parsed
26396         project file.
26397
26398 2004-06-14  Ed Schonberg  <schonberg@gnat.com>
26399
26400         * exp_ch6.adb (Add_Call_By_Copy_Code): For an out-parameter that is an
26401         array, avoid copying the actual before the call.
26402
26403 2004-06-14  Thomas Quinot  <quinot@act-europe.fr>
26404
26405         * g-debpoo.adb: Remove alignment assumptions from GNAT.Debug_Pools.
26406         Instead, allocate memory on worst-case alignment assumptions, and then
26407         return an aligned address within the allocated zone.
26408
26409 2004-06-14  Robert Dewar  <dewar@gnat.com>
26410
26411         * bindgen.adb (Gen_Adainit_Ada): Do not generate external references to
26412         elab entities in predefined units in No_Run_Time_Mode.
26413         (Gen_Adainit_C): Same fix
26414         (Gen_Elab_Calls_Ada): Do not generate calls to elaborate predefined
26415         units in No_Run_Time_Mode
26416         (Gen_Elab_Calls_C): Same fix
26417
26418         * symbols-vms-alpha.adb: Minor reformatting
26419
26420         * g-debpoo.ads: Minor reformatting
26421
26422         * lib.adb (In_Same_Extended_Unit): Version working on node id's
26423
26424         * lib.ads (In_Same_Extended_Unit): Version working on node id's
26425
26426         * lib-xref.adb: Minor cleanup, use new version of In_Same_Extended_Unit
26427         working on nodes.
26428
26429         * make.adb: Minor reformatting
26430
26431         * par-ch12.adb: Minor reformatting
26432
26433         * par-prag.adb: Add dummy entry for pragma Profile_Warnings
26434
26435         * prj-strt.adb: Minor reformatting
26436
26437         * restrict.ads, restrict.adb: Redo handling of profile restrictions to
26438         be more general.
26439
26440         * sem_attr.adb: Minor reformatting
26441
26442         * sem_ch7.adb: Minor reformatting
26443
26444         * sem_elab.adb (Check_A_Call): Deal with problem of calling init proc
26445         for type in the same unit as the object declaration.
26446
26447         * sem_prag.adb (Check_Arg_Is_External_Name): New procedure, allows
26448         static string expressions and not just string literals.
26449         Minor reformatting
26450         (Set_Warning): Reset restriction warning flag for restriction pragma
26451         Implement pragma Profile_Warnings
26452         Implement pragma Profile (Restricted)
26453         Give obolescent messages for old restrictions and pragmas
26454
26455         * snames.h, snames.ads, snames.adb: Add new entry for pragma
26456         Profile_Warnings.
26457
26458         * s-rident.ads: Add declarations for restrictions required by profile
26459         Restricted and profile Ravenscar.
26460
26461         * targparm.ads, targparm.adb: Allow pragma Profile in system.ads
26462
26463         * gnat_ugn.texi: Correct some missing entries in the list of GNAT
26464         configuration pragmas.
26465
26466 2004-06-11  Vincent Celier  <celier@gnat.com>
26467
26468         * mlib-tgt-vms-alpha.adb (Build_Dynamic_Library): Issue switch -R to
26469         gnatsym, when symbol policy is Restricted.
26470
26471         * mlib-tgt-vms-ia64.adb (Build_Dynamic_Library): Issue switch -R to
26472         gnatsym, when symbol policy is Restricted.
26473
26474         * symbols-vms-alpha.adb (Initialize): When symbol policy is Restricted,
26475         read the symbol file.
26476         (Finalize): Fail in symbol policy Restricted if a symbol in the original
26477         symbol file is not in the object files. Do not create a new symbol file
26478         when symbol policy is Restricted.
26479
26480         * gnatbind.adb (Gnatbind): Initialize Snames, because Snames is used
26481         in Scng.
26482
26483         * gnatsym.adb (Parse_Vmd_Line): Process new switch -R for symbol policy
26484         Restricted.
26485         (Usage): Line for new switch -R
26486
26487         * make.adb (Initialize): When the platform is not VMS, add the
26488         directory where gnatmake is invoked in the front of the path, if
26489         gnatmake is invoked with directory information.  Change the Scan_Args
26490         while loop to a for loop.
26491         (Recursive_Compute_Depth): Remove parameter Visited. Improve efficiency:
26492         if Depth is equal or greater than the proposed depth, there is nothing
26493         to do.
26494         (Initialize): Call Recursive_Compute_Depth with initial Depth equal to 1
26495         instead of 0.
26496
26497         * prj.ads: Add new symbol policy Restricted.
26498
26499         * prj-dect.adb (Parse_Case_Construction): Call End_Case_Construction
26500         with the new parameters Check_All_Labels and Case_Location.
26501
26502         * prj-nmsc.adb (Ada_Check): Process new symbol policy Restricted
26503         (Library_Symbol_File needs to be defined).
26504
26505         * prj-strt.adb (End_Case_Construction): New parameters Check_All_Labels
26506         and Case_Location If Check_All_Labels is True, check that all values of
26507         the string type are used, and output warning(s) if they are not.
26508
26509         * prj-strt.ads (End_Case_Construction): New parameters Check_All_Labels
26510         and Case_Location.
26511
26512         * gnat_ugn.texi: Reorder subclauses in menus "Switches for gcc"
26513
26514         * gnat_ugn.texi: Update documentation about the library directory in
26515         Library Projects.
26516
26517         * makegpr.adb (Display_Command): In verbose mode, also display the
26518         value of the CPATH env var, when the compiler is gcc.
26519         (Initialize): Change the Scan_Args while loop to a for loop
26520         (Compile_Individual_Sources): Change directory to object directory
26521         before compilations.
26522
26523         * symbols.ads: New symbol policy Restricted.
26524
26525 2004-06-11  Olivier Hainque  <hainque@act-europe.fr>
26526
26527         * a-except.adb (Raise_After_Setup family): Remove. The responsibility
26528         is now taken care of internally in the Exception_Propagation package
26529         and does not require clients assistance any more.
26530
26531         * a-exexpr.adb (Is_Setup_And_Not_Propagated,
26532         Set_Setup_And_Not_Propagated, and Clear_Setup_And_Not_Propagated): New
26533         functions. Helpers to maintain a predicate required in the handling of
26534         occurrence transfer between tasks.
26535         This is now handled internally and does not require clients assistance
26536         for the setup/propagate separation anymore.
26537         (Setup_Exception, Propagate_Exception): Simplify the Private_Data
26538         allocation strategy, handle the Setup_And_Not_Propagated predicate and
26539         document.
26540
26541         * s-taenca.adb (Check_Exception): Use raise_with_msg instead of
26542         raise_after_setup, now that everything is handled internally within the
26543         setup/propagation engine.
26544
26545 2004-06-11  Hristian Kirtchev  <kirtchev@gnat.com>
26546
26547         * exp_ch6.adb (Expand_Inlined_Call): Add function Formal_Is_Used_Once.
26548         Add additional conditions for the case of an actual being a simple
26549         name or literal. Improve inlining by preventing the generation
26550         of temporaries with a short lifetime (one use).
26551
26552 2004-06-11  Hristian Kirtchev  <kirtchev@gnat.com>
26553
26554         PR ada/15587
26555         * einfo.ads: Minor comment updates for Has_Completion and
26556         E_Constant list of flags.
26557
26558         * sem_ch3.adb (Analyze_Object_Declaration): Full constant declarations
26559         and constant redeclarations now set the Has_Completion flag of their
26560         defining identifiers.
26561
26562         * sem_ch7.adb (Analyze_Package_Spec): Add procedure
26563         Inspect_Deferred_Constant_Completion.
26564         Used to detect private deferred constants that have not been completed
26565         either by a constant redeclaration or pragma Import. Emits error message
26566         "constant declaration requires initialization expression".
26567
26568         * sem_prag.adb (Process_Import_Or_Interface): An Import pragma now
26569         completes a deferred constant.
26570
26571 2004-06-11  Geert Bosch  <bosch@gnat.com>
26572
26573         * eval_fat.adb (Decompose_Int): Fix rounding of negative numbers.
26574
26575         * s-fatgen.adb (Gradual_Scaling): Correct off-by-one error in
26576         calculating exponent for scaling denormal numbers.
26577         (Leading_Part): Properly raise Constraint_Error for zero or negative
26578         Adjustment.
26579         (Remainder): Properly raise Constraint_Error for zero divisor.
26580
26581 2004-06-11  Thomas Quinot  <quinot@act-europe.fr>
26582
26583         * sem_util.adb: Minor reformatting.
26584
26585         * exp_ch2.adb (Expand_Entry_Parameter): Generate an explicit
26586         dereference when accessing the entry parameter record.
26587         (Check_Array_Type): Always check for possible implicit dereference.
26588         (maybe_implicit_dereference): Rename to check_no_implicit_derefence.
26589         Abort if a pointer is still present (denoting that an implicit
26590         dereference was left in the tree by the front-end).
26591
26592         * sem_attr.adb (Expand_Entry_Parameter): Generate an explicit
26593         dereference when accessing the entry parameter record.
26594         (Check_Array_Type): Always check for possible implicit dereference.
26595         (maybe_implicit_dereference): Rename to check_no_implicit_derefence.
26596         Abort if a pointer is still present (denoting that an implicit
26597         dereference was left in the tree by the front-end).
26598
26599 2004-06-11  Emmanuel Briot  <briot@act-europe.fr>
26600
26601         * g-debpoo.adb (Deallocate, Dereference): Add prefix "error:" to error
26602         message, like the compiler itself does. Easier to parse the output.
26603
26604         * g-debpoo.ads: (Allocate, Deallocate, Dereference): Add comments.
26605
26606         * gnat_ugn.texi (gnatxref, gnatfind): Clarify that source names should
26607         be base names, and not includes directories.
26608
26609 2004-06-11  Arnaud Charlet  <charlet@act-europe.fr>
26610
26611         * Makefile.generic ($(EXEC)): Depend on $(OBJECTS), not $(OBJ_FILES),
26612         so that dependencies are properly taken into account by make.
26613
26614 2004-06-11  Arnaud Charlet  <charlet@act-europe.fr>
26615
26616         PR ada/15622
26617         * s-unstyp.ads, s-maccod.ads, sem_ch8.adb, s-auxdec.ads,
26618         exp_intr.adb, s-auxdec-vms_64.ads: Fix typo: instrinsic -> intrinsic
26619
26620 2004-06-11  Jerome Guitton  <guitton@act-europe.fr>
26621
26622         * Makefile.in (install-gnatlib): install target-specific run-time files.
26623
26624         * Make-lang.in: Remove obsolete targets.
26625
26626 2004-06-11  Ed Schonberg  <schonberg@gnat.com>
26627
26628         * par-ch12.adb (P_Generic): Add scope before analyzing subprogram
26629         specification, to catch misuses of program unit names.
26630
26631         * sem_res.adb (Resolve_Type_Conversion): Do not emit warnings on
26632         superfluous conversions in an instance.
26633
26634 2004-06-11  Ed Schonberg  <schonberg@gnat.com>
26635
26636         PR ada/15403
26637         * sem_ch12.adb (Save_References): If operator node has been folded to
26638         enumeration literal, associated_node must be discarded.
26639
26640 2004-06-11  Jose Ruiz  <ruiz@act-europe.fr>
26641
26642         * s-stchop-vxworks.adb: Add required pragma Convention to
26643         Task_Descriptor because it is updated by a C function.
26644
26645 2004-06-08  Arnaud Charlet  <charlet@act-europe.fr>
26646
26647         PR ada/15568
26648         * Makefile.in: Remove target specific SO_OPT on IRIX
26649
26650 2004-06-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
26651
26652         * ada-tree.def (TRANSFORM_EXPR, ALLOCATE_EXPR, USE_EXPR): Deleted.
26653         (GNAT_NOP_EXPR, GNAT_LOOP_ID, EXPR_STMT, NULL_STMT): Likewise.
26654         (BLOCK_STMT, IF_STMT, GOTO_STMT, LABEL_STMT, RETURN_STMT): Likewise.
26655         (ASM_STMT, BREAK_STMT, REGION_STMT,HANDLER_STMT): Likewise.
26656         (STMT_STMT, USE_STMT): New statement codes.
26657         (LOOP_STMT, EXIT_STMT): Make slight semantic changes.
26658         * ada-tree.h: Reflect above changes.
26659         (struct tree_loop_id): Deleted.
26660         (union lang_tree_node, struct lang_decl, struct lang_type):
26661         Now just contains a tree node; update macros using TYPE_LANG_SPECIFIC
26662         and DECL_LANGUAGE_SPECIFIC to reflect these changes.
26663         (DECL_INIT_BY_ASSIGN_P, TRE_LOOP_NODE_ID, TREE_SLOC): Deleted.
26664         (IS_ADA_STMT): New macro.
26665         * decl.c (annotate_decl_with_node): New function.
26666         (gnat_to_gnu_entity): Use it and Sloc_to_locus instead of set_lineno.
26667         (gnat_to_gnu_entity, case object): Remove call to expand CONVERT_EXPR.
26668         Call add_stmt_with_node to do needed assignments.
26669         Add call to update setjmp buffer directly, not via EXPR_STMT.
26670         (maybe_variable): Argment GNAT_NODE deleted.
26671         * gigi.h (maybe_variable): Likewise.
26672         (make_transform, add_stmt_with_node, set_block_for_group): New.
26673         (gnat_gimplify_expr, gnat_expand_body, Sloc_to_locus): Likewise.
26674         (set_block_jmpbuf_decl, get_block_jmpbuf_decl): Likewise.
26675         (discard_file_names, gnu_block_stack, gnat_to_code): Deleted.
26676         (set_lineno, set_lineno_from_sloc): Likewise.
26677         (record_code_position, insert_code_for): Likewise.
26678         (gnat_poplevel): Now returns void.
26679         (end_subprog_body): Now takes argument.
26680         * misc.c (cgraph.h, tree-inline.h): New includes.
26681         (gnat_tree_size, LANG_HOOKS_TREE_SIZE): Deleted.
26682         (gnat_post_options, LANG_HOOKS_POST_OPTIONS): New.
26683         (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Likewise.
26684         (LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_GIMPLIFY_EXPR): Likewise.
26685         (gnat_parse_file): Don't set immediate_size_expand.
26686         Call cgraph functions.
26687         (gnat_expand_expr): Remove most cases.
26688         (record_code_position, insert_code_for): Remove from here.
26689         * trans.c (toplev.h, tree-gimple.h): Now included.
26690         (discard_file_names): Deleted.
26691         (gnu_block_stack, gnu_block_stmt_node, gnu_block_stmt_free_list): Del.
26692         (first_nondeleted_insn, make_expr_stmt_from_rtl): Likewise.
26693         (struct stmt_group, current_stmt_group, stmt_group_free_list): New.
26694         (gnu_stack_free_list, record_cost_position, insert_code_for): Likewise.
26695         (add_cleanup, push_stack, gnat_gimplify_stmt, add_cleanup): Likewise.
26696         (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Likewise.
26697         (gnat_expand_body_1, gnat_gimplify_expr, annotate_with_node): Likewise.
26698         (set_block_for_group, add_stmt_list): Likewise.
26699         (start_stmt_group): Renamed from start_block_stmt.
26700         (end_stmt_group): Likewise, from end_block_stmt.
26701         (build_stmt_group): Likewise, from build_block_stmt, also add arg.
26702         (gigi): Don't set discard_file_names or call set_lineno.
26703         Disallow front end ZCX; call gnat_to_gnu, not gnat_to_code.
26704         (tree_transform): Deleted, now renamed to be gnat_to_gnu.
26705         Numerous changes throughout to reflect new names and complete
26706         function-at-a-time implementation.
26707         (gnat_expand_stmt): Delete or comment out all cases.
26708         (process_inlined_subprograms): Use add_stmt.
26709         (process_decls): Use gnat_to_gnu, not gnat_to_code, and don't
26710         call set_lineno; also remove unneeded block handling.
26711         (process_type): Remove unneeded block handling.
26712         (build_unit_elab): Remove calls to deleted functions.
26713         * utils.c (cgraph.h, tree-inline.h, tree-gimple.h): Now include.
26714         (tree-dump.h): Likewise.
26715         (struct ada_binding_level): Add field jmpbuf_decl.
26716         (gnat_define_builtin, gnat_install_builtins): New.
26717         (gnat_gimplify_function, gnat_finalize): Likewise.
26718         (gnat_poplevel): No longer return BLOCK, set it instead.
26719         Remove code dealing with nested functions.
26720         (gnat_init_decl_processing): Also set size_type_node.
26721         Call gnat_install_builtins.
26722         (create_var_decl): Don't set DECL_INIT_BY_ASSIGN.
26723         (create_subprog_decl): Change handling of inline_flag; set TREE_STATIC.
26724         Remove special-case for "main".
26725         (end_subprog_body): Add arg and rework for tree-ssa.
26726         (convert): Don't use GNAT_NOP_EXPR or look for TRANSFORM_EXPR.
26727         Add case for BOOLEAN_TYPE.
26728         * utils2.c (rtl.h): Now include.
26729         (build_call_raise): Test Debug_Flag_NN directly.
26730         (build_call_alloc_dealloc): Don't use local stack allocation for now.
26731         (gnat_mark_addressable, case GNAT_NOP_EXPR): Deleted.
26732         (gnat_mark_addressable, case VAR_DECL): Handle both early & late cases.
26733
26734 2004-06-07  Robert Dewar  <dewar@gnat.com>
26735
26736         * a-direct.ads, einfo.ads: Minor comment updates
26737
26738         * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
26739         s-taprop-irix-athread.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
26740         s-taprop-dummy.adb, s-taprop-os2.adb, s-taprop-solaris.adb,
26741         s-taprop-vms.adb, s-taprop-mingw.adb, s-taprop-vxworks.adb,
26742         s-taprop-posix.adb, s-taprop.ads, exp_dbug.adb: Minor reformatting.
26743
26744         * s-interr-sigaction.adb: Remove unreferenced variable
26745         (Attached_Interrupts).  Minor reformatting.
26746         Avoid use of variable I (replace by J).
26747
26748         * par-ch10.adb: Fix text of one error message
26749
26750         * checks.adb, checks.ads, cstand.adb, vms_data.ads, errout.ads,
26751         exp_aggr.adb, exp_ch3.adb, exp_ch3.ads, exp_ch5.adb, exp_ch6.adb,
26752         exp_ch9.adb, exp_code.adb, gnat1drv.adb, lib-load.adb, lib-writ.adb,
26753         opt.adb, par.adb, opt.ads, par-ch11.adb, par-ch3.adb, par-ch4.adb,
26754         par-ch5.adb, par-ch6.adb, par-ch8.adb, par-ch9.adb, par-prag.adb,
26755         par-util.adb, scng.adb, sem_aggr.adb, sem_attr.adb, sem_cat.adb,
26756         sem_ch10.adb, sem_ch10.adb, sem_ch11.adb, sem_ch12.adb, sem_ch2.adb,
26757         sem_ch3.adb, sem_ch3.ads, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb,
26758         sem_ch7.adb, sem_ch8.adb, sem_ch9.adb, sem_eval.adb, sem_prag.adb,
26759         sem_res.adb, sem_type.adb, sem_util.adb, sinfo.ads, snames.adb,
26760         snames.ads, snames.h, sprint.adb, switch-c.adb: Modifications for Ada
26761         2005 support.
26762
26763 2004-06-07  Doug Rupp  <rupp@gnat.com>
26764
26765         * mlib-tgt-vms.adb: Rename mlib-tgt-vms.adb mlib-tgt-vms-alpha.adb
26766
26767         * s-vaflop-vms.adb: Rename s-vaflop-vms.adb to s-vaflop-vms-alpha.adb
26768
26769         * mlib-tgt-vms-ia64.adb: New file.
26770
26771         * Makefile.in: Rename mlib-tgt-vms.adb to mlib-tgt-vms-alpha.adb
26772         Add mlib-tgt-vms-ia64.adb
26773         Rename s-vaflop-vms.adb to s-vaflop-vms-alpha.adb.
26774         Move to alpha specific ifeq section.
26775         Add VMS specific versions of symbols.adb
26776         Renaming of 5q vms files.
26777
26778         * 5qsystem.ads renamed to system-vms_64.ads.
26779
26780 2004-06-07  Vincent Celier  <celier@gnat.com>
26781
26782         * a-calend.ads: Add a GNAT Note comment after function Time_Of to
26783         explain that when a time of day corresponding to the non existing hour
26784         on the day switching to DST is specified, Split may return a different
26785         value for Seconds.
26786
26787         * gnatcmd.adb: Add processing of GNAT METRIC (for gnatmetric), similar
26788         to GNAT PRETTY.
26789
26790         * g-os_lib.adb (OpenVMS): New Boolean value imported from System.
26791         (Normalize_Pathname): Only resolve VMS logical names when on VMS.
26792
26793         * mlib-prj.adb (Build_Library): New flag Gtrasymobj_Needed, initialize
26794         to False.
26795         If Gtrasymobj_Needed is True, add the full path of g-trasym.obj to
26796         the linking options.
26797         (Build_Library.Check_Libs): On VMS, if there is a dependency on
26798         g-trasym.ads, set Gtrasymobj_Needed to True.
26799
26800         * prj-attr.adb: Add new package Metrics for gnatmetric
26801
26802         * prj-nmsc.adb (Record_Other_Sources): Put source file names in
26803         canonical case to take into account files with upper case characters on
26804         Windows.
26805         (Ada_Check): Load the reference symbol file name in the name buffer to
26806         check it, not the symbol file name.
26807
26808         * snames.ads, snames.adb: Add standard name Metrics (name of project
26809         file package for gnatmetric).
26810
26811         * vms_conv.ads: Add Metric to Comment_Type
26812
26813         * vms_conv.adb (Initialize): Add component dor Metric in Command_List
26814
26815         * vms_data.ads: Add qualifiers for GNAT METRIC
26816
26817         * makegpr.adb (Link_Executables): Take into account the switches
26818         specified in package Linker of the main project.
26819
26820 2004-06-07  Thomas Quinot  <quinot@act-europe.fr>
26821
26822         * bindgen.adb (Set_Unit_Number): Units is an instance of Table, and so
26823         the index of the last element is Units.Last, not Units.Table'Last
26824         (which is usually not a valid index within the actually allocated
26825         storage for the table).
26826
26827         * exp_ch4.adb (Insert_Dereference_Action): Change predicate that
26828         determines whether to generate a call to a checked storage pool
26829         Dereference action.
26830         Generate such a call only for a dereference that either comes from
26831         source, or is the result of rewriting a dereference that comes from
26832         source.
26833
26834 2004-06-07  Romain Berrendonner  <berrendo@act-europe.fr>
26835
26836         * bindgen.adb (Gen_Output_File): Add support for GAP builds.
26837
26838 2004-06-07  Eric Botcazou  <ebotcazou@act-europe.fr>
26839
26840         (gnat_to_gnu_entity) <E_Array_Subtype>: For multi-dimensional arrays at
26841         file level, elaborate the stride for inner dimensions in alignment
26842         units, not bytes.
26843
26844         * exp_ch5.adb: Correct wrong reference to Component_May_Be_Bit_Aligned
26845         in a comment.
26846
26847 2004-06-07  Javier Miranda  <miranda@gnat.com>
26848
26849         * exp_ch6.adb: Correct wrong modification in previous patch
26850
26851 2004-06-07  Vasiliy Fofanov  <fofanov@act-europe.fr>
26852
26853         * g-trasym.ads: Corrected comment to properly reflect level of support
26854         on VMS.
26855
26856 2004-06-07  Hristian Kirtchev  <kirtchev@gnat.com>
26857
26858         * lib-xref.adb (Generate_Reference): Add nested function Is_On_LHS. It
26859         includes case of a variable referenced on the left hand side of an
26860         assignment, therefore remove redundant code. Variables and prefixes of
26861         indexed or selected components are now marked as referenced on left
26862         hand side. Warnings are now properly emitted when variables or prefixes
26863         are assigned but not read.
26864
26865         * sem_warn.adb (Output_Unreferenced_Messages): Add additional checks to
26866         left hand side referenced variables. Private access types do not
26867         produce the warning "variable ... is assigned but never read".
26868         Add also additional checks to left hand side referenced variables.
26869         Aliased, renamed objects and access types do not produce the warning
26870         "variable ... is assigned but never read" since other entities may read
26871         the memory location.
26872
26873 2004-06-07  Jerome Guitton  <guitton@act-europe.fr>
26874
26875         * Makefile.in: In the powerpc/vxworks-specific section, restore
26876         EXTRA_GNATRTL_NONTASKING_OBJS and EXTRA_GNATRTL_TASKING_OBJS (removed
26877         by mistake).
26878
26879 2004-06-07  Ed Schonberg  <schonberg@gnat.com>
26880
26881         * sem_ch4.adb (Remove_Abstract_Operations): Refine the removal of
26882         predefined operators.
26883         Removes spurious type errors from g-trasym-vms.adb.
26884
26885         * sem_res.adb (Rewrite_Renamed_Operator): If intrinsic operator is
26886         distinct from the operator appearing in the source, call appropriate
26887         routine to insert conversions when needed, and complete resolution of
26888         node.
26889         (Resolve_Intrinsic_Operator): Fix cut-and-paste bug on transfer of
26890         interpretations for rewritten right operand.
26891         (Set_Mixed_Mode_Operand): Handle properly a universal real operand when
26892         the other operand is overloaded and the context is a type conversion.
26893
26894 2004-06-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
26895
26896         * ada-tree.def (BLOCK_STMT): Now has two operands.
26897         (BREAK_STMT): New.
26898
26899         * ada-tree.h: (BLOCK_STMT_BLOCK): New macro.
26900
26901         * gigi.h: (gnat_poplevel): Now returns a tree.
26902
26903         * trans.c (end_block_stmt): Add arg; all callers changed.
26904         (tree_transform, case N_Case_Statement): Make a BLOCK_STMT for a WHEN.
26905         (start_block_stmt): Clear BLOCK_STMT_BLOCK.
26906         (add_stmt): Set TREE_TYPE.
26907         (gnat_expand_stmt, case BLOCK_STMT): Handle BLOCK_STMT_BLOCK.
26908         (gnat_expand_stmt, case BREAK_STMT): New case.
26909
26910         * utils.c (gnat_poplevel): Return a BLOCK, if we made one.
26911
26912 2004-06-07  Jose Ruiz  <ruiz@act-europe.fr>
26913
26914         * s-stchop.adsm s-stchop.adb, s-stchop-vxworks.adb: Remove the
26915         procedure Set_Stack_Size that is not needed.
26916
26917 2004-06-07  Sergey Rybin  <rybin@act-europe.fr>
26918
26919         * gnat_ugn.texi: Clarify the case when non-standard naming scheme is
26920         used for gnatpp input file and for the files upon which it depends
26921
26922 2004-06-07  Ben Brosgol  <brosgol@gnat.com>
26923
26924         * gnat_ugn.texi: Wordsmithing of "GNAT and Libraries" chapter
26925
26926 2004-06-07  Arnaud Charlet  <charlet@act-europe.fr>
26927
26928         * gnatvsn.ads: Bump version numbers appropriately.
26929         Add new build type.
26930
26931 2004-06-07  Pascal Obry  <obry@gnat.com>
26932
26933         * gnat_ugn.texi: Improve comments about imported names and link names
26934         on Windows. Add a note about the requirement to use -k gnatdll's option
26935         when working with a DLL which has stripped stdcall symbols (no @nn
26936         suffix).
26937
26938 2004-05-27  Vincent Celier  <celier@gnat.com>
26939
26940         * vms_data.ads: Add new GNAT PRETTY qualifiers /NO_BACKUP and
26941         COMMENTS_LAYOUT=UNTOUCHED
26942
26943         * symbols-vms.adb, symbols-vms-alpha.adb: Renamed symbols-vms.adb to
26944         symbols-vms-alpha.adb
26945
26946 2004-05-27  Thomas Quinot  <quinot@act-europe.fr>
26947
26948         * sem.ads: Clarify documentation on checks suppression.
26949
26950         * einfo.ads (Is_Known_Non_Null): Minor comment typo fix and rephrasing.
26951
26952 2004-05-27  Ed Schonberg  <schonberg@gnat.com>
26953
26954         * sem_util.adb (Is_Descendent_Of): Examine properly all ancestors in
26955         the case of multiple derivations.
26956         (Is_Object_Reference): For a selected component, verify that the prefix
26957         is itself an object and not a value.
26958
26959         * sem_ch12.adb (Same_Instantiated_Constant): New name for
26960         Same_Instantiated_Entity.
26961         (Same_Instantiated_Variable): Subsidiary to
26962         Check_Formal_Package_Instance, to recognize actuals for in-out generic
26963         formals that are obtained from a previous formal package.
26964         (Instantiate_Subprogram_Body): Emit proper error when
26965         generating code and the proper body of a stub is missing.
26966
26967         * sem_ch4.adb (Remove_Address_Interpretations): If the operation still
26968         has a universal interpretation, do the disambiguation here.
26969
26970         * exp_ch4.adb (Expand_N_Type_Conversion,
26971         Expand_N_Unchecked_Type_Conversion): Special handling when target type
26972         is Address, to avoid typing anomalies when Address is a visible integer
26973         type.
26974
26975         * exp_ch6.adb (Expand_N_Subprogram_Body): Use Is_Descendent_Of_Address
26976         to determine whether a subprogram should not be marked Pure, even when
26977         declared in a pure package.
26978
26979 2004-05-27  Jose Ruiz  <ruiz@act-europe.fr>
26980
26981         * gnat_ugn.texi: Replace pragma Ravenscar by pragma Profile.
26982
26983         * gnat_rm.texi: Replace Max_Entry_Queue_Depth by Max_Entry_Queue_Length
26984         Document No_Dynamic_Attachment, that supersedes No_Dynamic_Interrupts.
26985         Update the documentation about the Ravenscar profile, following the
26986         definition found in AI-249.
26987
26988         * sem_prag.adb: Use FIFO_Within_Priorities and Ceiling_Locking when
26989         setting the Profile (Ravenscar). This must be done in addition to
26990         setting the required restrictions.
26991
26992         * rtsfind.ads: Add the set of operations defined in package
26993         Ada.Interrupts.
26994
26995         * exp_ch6.adb: Check whether we are violating the No_Dynamic_Attachment
26996         restriction.
26997
26998 2004-05-27  Eric Botcazou  <ebotcazou@act-europe.fr>
26999
27000         lang-specs.h: Always require -c or -S and always redirect to /dev/null
27001         if -gnatc or -gnats is passed.
27002
27003 2004-05-27  Hristian Kirtchev  <kirtchev@gnat.com>
27004
27005         * sem_prag.adb (Sig_Flags): A Pragma_Unchecked_Union does not count as
27006         a significant reference. Warnings are now properly emitted when a
27007         discriminated type is not referenced.
27008
27009         * lib-xref.adb (Generate_Reference): A deferred constant completion,
27010         record representation clause or record type discriminant does not
27011         produce a reference to its corresponding entity. Warnings are now
27012         properly emitted when deferred constants and record types are not
27013         referenced.
27014
27015 2004-05-27  Geert Bosch  <bosch@gnat.com>
27016
27017         * Makefile.in: Use long version of libm routines on ia64 gnu/linux.
27018         Fixes ACATS Annex G tests.
27019
27020 2004-05-27  Robert Dewar  <dewar@gnat.com>
27021
27022         * rtsfind.adb (RTU_Loaded): Temporary kludge to get past bug of not
27023         handling WITH
27024
27025 2004-05-27  Arnaud Charlet  <charlet@act-europe.fr>
27026
27027         * s-interr.adb (Server_Task): Take into account case of early return
27028         from sigwait under e.g. linux.
27029
27030 2004-05-27  Sergey Rybin  <rybin@act-europe.fr>
27031
27032         * gnat_ugn.texi: Add description for the new gnatpp options:
27033          -rnb - replace the original source without creating its backup copy
27034          -c0 - do not format comments
27035
27036 2004-05-24  Geert Bosch  <bosch@gnat.com>
27037
27038         * a-numaux-x86.adb (Reduce): Reimplement using an approximation of Pi
27039         with 192 bits of precision, sufficient to reduce a double-extended
27040         arguments X with a maximum relative error of T'Machine_Epsilon, for X
27041         in -2.0**32 .. 2.0**32.
27042         (Cos, Sin):  Always reduce arguments of 1/4 Pi or larger, to prevent
27043         reduction by the processor, which only uses a 68-bit approximation of
27044         Pi.
27045         (Tan): Always reduce arguments and compute function either using
27046         the processor's fptan instruction, or by dividing sin and cos as needed.
27047
27048 2004-05-24  Doug Rupp  <rupp@gnat.com>
27049
27050         * adaint.c (__gnat_readdir): Cast CRTL function retun value to avoid
27051         gcc error on 32/64 bit VMS.
27052
27053 2004-05-24  Olivier Hainque  <hainque@act-europe.fr>
27054
27055         * init.c (__gnat_error_handler): Handle EEXIST as EACCES for SIGSEGVs,
27056         since this is what we get for stack overflows although not documented
27057         as such.
27058         Document the issues which may require adjustments to our signal
27059         handlers.
27060
27061 2004-05-24  Ed Schonberg  <schonberg@gnat.com>
27062
27063         * inline.adb (Add_Scope_To_Clean): Do not add cleanup actions to the
27064         enclosing dynamic scope if the instantiation is within a generic unit.
27065
27066 2004-05-24  Arnaud Charlet  <charlet@act-europe.fr>
27067
27068         * exp_dbug.ads: Fix typo.
27069
27070         * Makefile.in: s-osinte-linux-ia64.ads was misnamed.
27071         Rename it to its proper name: system-linux-ia64.ads
27072         (stamp-gnatlib1): Remove extra target specific run time files when
27073         setting up the rts directory.
27074
27075 2004-05-24  Javier Miranda  <miranda@gnat.com>
27076
27077         * einfo.ads, einfo.adb (Limited_Views): Removed.
27078         (Limited_View): New attribute that replaces the previous one. It is
27079         now a bona fide package with the limited-view list through the
27080         first_entity and first_private attributes.
27081
27082         * sem_ch10.adb (Install_Private_With_Clauses): Give support to
27083         limited-private-with clause.
27084         (Install_Limited_Withed_Unit): Install the private declarations of a
27085         limited-private-withed package. Update the installation of the shadow
27086         entities according to the new structure (see Build_Limited_Views)
27087         (Build_Limited_Views): Replace the previous implementation of the
27088         limited view by a package entity that references the first shadow
27089         entity plus the first shadow private entity (required for limited-
27090         private-with clause)
27091         (New_Internal_Shadow_Entity): Code cleanup.
27092         (Remove_Limited_With_Clause): Update the implementation to undo the
27093         new work carried out by Build_Limited_Views.
27094         (Build_Chain): Complete documentation.
27095         Replace Ada0Y by Ada 0Y in comments
27096         Minor reformating
27097
27098         * sem_ch3.adb (Array_Type_Declaration): In case of anonymous access
27099         types the level of accessibility depends on the enclosing type
27100         declaration.
27101
27102         * sem_ch8.adb (Find_Expanded_Name): Fix condition to detect shadow
27103         entities. Complete documentation of previous change.
27104
27105 2004-05-24  Robert Dewar  <dewar@gnat.com>
27106
27107         * namet.adb: Minor reformatting
27108         Avoid use of name I (replace by J)
27109         Minor code restructuring
27110
27111         * sem_ch6.adb: Minor reformatting
27112
27113         * lib-writ.adb: Do not set restriction as active if this is a
27114         Restriction_Warning case.
27115
27116         * sem_prag.adb: Reset restriction warning flag if real pragma
27117         restriction encountered.
27118
27119         * s-htable.adb: Minor reformatting
27120         Change rotate count to 3 in Hash (improves hash for small strings)
27121
27122         * 5qsystem.ads: Add comments for type Address (no literals allowed).
27123
27124         * gnat_ugn.texi: Add new section of documentation "Code Generation
27125         Control", which describes the use of -m switches.
27126
27127 2004-05-24  Eric Botcazou  <ebotcazou@act-europe.fr>
27128
27129         trans.c (tree_transform) <N_Identifier>: Do the dereference directly
27130         through the DECL_INITIAL for renamed variables.
27131
27132 2004-05-24  Arnaud Charlet  <charlet@act-europe.fr>
27133
27134         * s-osinte-linux-ia64.ads: Renamed system-linux-ia64.ads
27135
27136 2004-05-19  Joel Brobecker  <brobecker@gnat.com>
27137
27138         * exp_dbug.ads: Correct comments concerning handling of overloading,
27139         since we no longer use $ anymore.
27140
27141 2004-05-19  Sergey Rybin  <rybin@act-europe.fr>
27142
27143         * sem_ch10.adb (Optional_Subunit): When loading a subunit, do not
27144         ignore errors if ASIS_Mode is set. This prevents creating ASIS trees
27145         with illegal subunits.
27146
27147 2004-05-19  Ed Schonberg  <schonberg@gnat.com>
27148
27149         * sem_ch6.adb (Check_Following_Pragma): When compiling a subprogram
27150         body with front-end inlining enabled, check whether an inline pragma
27151         appears immediately after the body and applies to it.
27152
27153         * sem_prag.adb (Cannot_Inline): Emit warning if front-end inlining is
27154         enabled and the pragma appears after the body of the subprogram.
27155
27156 2004-05-17  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
27157
27158         Part of function-at-a-time conversion
27159
27160         * misc.c (adjust_decl_rtl): Deleted.
27161         (LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK):
27162         Define.
27163
27164         * gigi.h: (adjust_decl_rtl, kept_level_p, set_block): Deleted.
27165         (add_decl_stmt, add_stmt, block_has_vars): New functions.
27166         (gnat_pushlevel, gnat_poplevel): Renamed from pushlevel and poplevel.
27167
27168         * decl.c (elaborate_expression, maybe_pad_type): Call add_decl_stmt
27169         when making a decl.
27170         (gnat_to_gnu_entity): Likewise.
27171         Use add_stmt to update setjmp buffer.
27172         Set TREE_ADDRESSABLE instead of calling put_var_into_stack and
27173         flush_addressof.
27174         No longer call adjust_decl_rtl.
27175         (DECL_INIT_BY_ASSIGN_P): New macro.
27176         (DECL_STMT_VAR): Likewise.
27177
27178         * trans.c (gigi): Call start_block_stmt to make the outermost
27179         BLOCK_STMT.
27180         (gnat_to_code, gnu_to_gnu, tree_transform, process_decls, process_type):
27181         Call start_block_stmt and end_block_stmt temporarily.
27182         Use gnat_expand_stmt instead of expand_expr_stmt.
27183         (add_decl_stmt): New function.
27184         (tree_transform): Call it.
27185         (add_stmt): Also emit initializing assignment for DECL_STMT if needed.
27186         (end_block_stmt): Set type and NULL_STMT.
27187         (gnat_expand_stmt): Make recursize call instead of calling
27188         expand_expr_stmt.
27189         (gnat_expand_stmt, case DECL_STMT): New case.
27190         (set_lineno_from_sloc): Do nothing if global.
27191         (gnu_block_stmt_node, gnu_block_stmt_free_list): New variables.
27192         (start_block_stmt, add_stmt, end_block_stmt): New functions.
27193         (build_block_stmt): Call them.
27194         (gnat_to_code): Don't expand NULL_STMT.
27195         (build_unit_elab): Rename pushlevel and poplevel to gnat_* and change
27196         args.
27197         (tree_transform): Likewise.
27198         (tree_transform, case N_Null_Statement): Return NULL_STMT.
27199         (gnat_expand_stmt, case NULL_STMT): New case.
27200         (gnat_expand_stmt, case IF_STMT): Allow nested IF_STMT to have no
27201         IF_STMT_TRUE.
27202
27203         * utils2.c (gnat_mark_addressable, case VAR_DECL): Do not set
27204         TREE_ADDRESSABLE.
27205
27206         * utils.c (create_var_decl): Do not call expand_decl or
27207         expand_decl_init.
27208         Set TREE_ADDRESSABLE instead of calling gnat_mark_addressable.
27209         Set DECL_INIT_BY_ASSIGN_P when needed and do not generate MODIFY_EXPR
27210         here.
27211         (struct e_stack): Add chain_next to GTY.
27212         (struct binding_level): Deleted.
27213         (struct ada_binding_level): New struct.
27214         (free_block_chain): New.
27215         (global_binding_level, clear_binding_level): Deleted.
27216         (global_bindings_p): Rework to see if no chain.
27217         (kept_level_p, set_block): Deleted.
27218         (gnat_pushlevel): Renamed from pushlevel and extensive reworked to use
27219         new data structure and work directly on BLOCK node.
27220         (gnat_poplevel): Similarly.
27221         (get_decls): Look at BLOCK_VARS.
27222         (insert_block): Work directly on BLOCK node.
27223         (block_has_var): New function.
27224         (pushdecl): Rework for new binding structures.
27225         (gnat_init_decl_processing): Rename and rework calls to pushlevel and
27226         poplevel.
27227         (build_subprog_body): Likewise.
27228         (end_subprog_body): Likewise; also set up BLOCK in DECL_INITIAL.
27229
27230         * ada-tree.def (DECL_STMT, NULL_STMT): New codes.
27231
27232         * ada-tree.h: (DECL_INIT_BY_ASSIGN_P): New macro.
27233         (DECL_STMT_VAR): Likewise.
27234
27235 2004-05-17  Robert Dewar  <dewar@gnat.com>
27236
27237         * restrict.ads, restrict.adb (Process_Restriction_Synonym): New
27238         procedure
27239
27240         * sem_prag.adb (Analyze_Pragma, case Restrictions): Cleanup handling
27241         of restriction synonyums by using
27242         Restrict.Process_Restriction_Synonyms.
27243
27244         * snames.ads, snames.adb: Add entries for Process_Restriction_Synonym
27245
27246         * s-restri.ads (Tasking_Allowed): Correct missing comment
27247
27248         * s-rident.ads: Add entries for restriction synonyms
27249
27250         * ali.adb: Fix some problems with badly formatted ALI files that can
27251         result in infinite loops.
27252
27253         * s-taprop-lynxos.adb, s-tpopsp-lynxos.adb, s-taprop-tru64.adb,
27254         s-tpopsp-posix-foreign.adb, s-taprop-irix.adb, s-interr-sigaction.adb,
27255         s-taprop-irix-athread.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
27256         s-taprop-dummy.adb, s-interr-dummy.adb, s-taprop-os2.adb,
27257         s-taprop-solaris.adb, s-tpopsp-solaris.adb, s-asthan-vms.adb,
27258         s-inmaop-vms.adb, s-interr-vms.adb, s-taprop-vms.adb,
27259         s-tpopde-vms.adb, s-taprop-mingw.adb, s-interr-vxworks.adb,
27260         s-taprop-vxworks.adb, s-tpopsp-vxworks.adb, s-taprop-posix.adb,
27261         s-tpopsp-posix.adb, s-tratas-default.adb, a-dynpri.adb,
27262         a-tasatt.adb, a-taside.adb, a-taside.ads, exp_attr.adb,
27263         exp_ch9.adb, g-thread.adb, rtsfind.ads, sem_attr.adb,
27264         s-interr.adb, s-interr.ads, s-soflin.ads, s-taasde.adb,
27265         s-taasde.ads, s-taenca.adb, s-taenca.ads, s-taprop.ads,
27266         s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads,
27267         s-tasini.adb, s-tasini.ads, s-taskin.adb, s-taskin.ads,
27268         s-tasque.adb, s-tasque.ads, s-tasren.adb, s-tasren.ads,
27269         s-tassta.adb, s-tassta.ads, s-tasuti.adb, s-tasuti.ads,
27270         s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
27271         s-tpoben.adb, s-tpobop.adb, s-tpobop.ads, s-tporft.adb,
27272         s-tposen.adb, s-tposen.ads, s-tratas.adb, s-tratas.ads: Change Task_ID
27273         to Task_Id (minor cleanup).
27274
27275 2004-05-17  Vincent Celier  <celier@gnat.com>
27276
27277         * g-os_lib.adb (Normalize_Pathname.Final_Value): Remove trailing
27278         directory separator.
27279
27280         * prj-proc.adb (Recursive_Process): Inherit attribute Languages from
27281         project being extended, if Languages is not declared in extending
27282         project.
27283
27284 2004-05-17  Javier Miranda  <miranda@gnat.com>
27285
27286         * sem_ch10.adb (Install_Limited_Withed_Unit): Do not install the
27287         limited view of a visible sibling.
27288
27289 2004-05-14  Robert Dewar  <dewar@gnat.com>
27290
27291         * gnat_ugn.texi: Minor change to -gnatS documentation
27292
27293         * sprint.adb: Remove some instances of Assert (False) and for this
27294         purpose replace them by output of a ??? string.
27295
27296         * checks.adb, exp_aggr.adb, sem_elim.adb: Remove useless pragma
27297         Assert (False).
27298
27299         * lib-writ.adb, lib-load.adb, lib.ads, lib.adb: Remove Dependent_Unit
27300         flag processing. This was suppressing required dependencies in
27301         No_Run_Time mode and is not needed since the binder does not generate
27302         references for things in libgnat anyway.
27303
27304         * sem_ch3.adb (Access_Type_Declaration): Reorganize code to avoid GCC
27305         warning.
27306
27307 2004-05-14  Thomas Quinot  <quinot@act-europe.fr>
27308
27309         * gnat_ugn.texi: Document AIX-specific issue with initialization of
27310         resolver library.
27311
27312         * exp_ch4.adb (Insert_Dereference_Action): Do not generate dereference
27313         action for the case of an actual parameter in an init proc call.
27314
27315 2004-05-14  Ed Schonberg  <schonberg@gnat.com>
27316
27317         * sem_ch4.adb (Analyze_Selected_Component): If prefix is a protected
27318         subtype, check visible entities in base type.
27319
27320         * exp_ch7.adb (Clean_Simple_Protected_Objects): Do not generate cleanup
27321         actions if the object is a renaming.
27322
27323         * sem_ch12.adb (Same_Instantiated_Entity): Predicate for
27324         Check_Formal_Package_Instance, to determine more precisely when the
27325         formal and the actual denote the same entity.
27326
27327 2004-05-14  Javier Miranda  <miranda@gnat.com>
27328
27329         * par-ch10.adb (P_Context_Clause): Complete documentation on AI-262
27330
27331         * sem_ch10.adb (Analyze_With_Clause): After analyzed, the entity
27332         corresponding to a private_with must be removed from visibility; it
27333         will be made visible later, just before we analyze the private part of
27334         the package.
27335         (Check_Private_Child_Unit): Allow private_with clauses in public
27336         siblings.
27337         (Install_Siblings): Make visible the private entities of private-withed
27338         siblings.
27339         (Install_Withed_Unit): Do not install the private withed unit if we
27340         are compiling a package declaration and the Private_With_OK flag was
27341         not set by the caller. These declarations will be installed later,
27342         just before we analyze the private part of the package.
27343
27344         * sem_ch3.adb (Analyze_Object_Declaration): In case of errors detected
27345         during the evaluation of the expression that initializes the object,
27346         decorate it with the expected type to avoid cascade errors.
27347         Code cleanup.
27348
27349         * sem_ch6.adb (Analyze_Subprogram_Body): If we are compiling a library
27350         subprogram we have to install the private_with clauses after its
27351         specification has been analyzed (as documented in AI-262.TXT).
27352
27353         * sem_ch8.adb (Has_Private_With): New function. Determines if the
27354         current compilation unit has a private with on a given entity.
27355         (Find_Direct_Name): Detect the Beaujolais problem described in
27356         AI-262.TXT
27357
27358         * sem_utils.ads, sem_util.adb (Is_Ancestor_Package): New function. It
27359         provides the functionality of the function Is_Ancestor that was
27360         previously available in sem_ch10. It has been renamed to avoid
27361         overloading.
27362
27363         * sprint.adb (Sprint_Node_Actual): Print limited_with clauses
27364
27365 2004-05-14  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
27366
27367         * utils.c (build_vms_descriptor): Use SImode pointers.
27368
27369 2004-05-14  Vasiliy Fofanov  <fofanov@act-europe.fr>
27370
27371         * gnat_ugn.texi: Revised chapter "GNAT and Libraries".
27372
27373 2004-05-14  GNAT Script  <nobody@gnat.com>
27374
27375         * Make-lang.in: Makefile automatically updated
27376
27377 2004-05-14  Arnaud Charlet  <charlet@act-europe.fr>
27378
27379         Renaming of target specific files for clarity
27380
27381         * Makefile.in: Rename GNAT target specific files.
27382
27383         * 31soccon.ads, 31soliop.ads 35soccon.ads, 3asoccon.ads,
27384         3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3psoccon.ads,
27385         3ssoccon.ads, 3ssoliop.ads, 3veacodu.adb, 3vexpect.adb,
27386         3vsoccon.ads, 3vsocthi.adb, 3vsocthi.ads, 3vtrasym.adb,
27387         3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads, 3wsoliop.ads,
27388         3zsoccon.ads, 3zsocthi.adb, 3zsocthi.ads, 41intnam.ads,
27389         42intnam.ads, 45intnam.ads, 4aintnam.ads, 4cintnam.ads,
27390         4gintnam.ads, 4hexcpol.adb, 4hintnam.ads, 4lintnam.ads,
27391         4nintnam.ads, 4ointnam.ads, 4onumaux.ads, 4pintnam.ads,
27392         4sintnam.ads, 4vcaldel.adb, 4vcalend.adb, 4vcalend.ads,
27393         4vintnam.ads, 4wcalend.adb, 4wexcpol.adb, 4wintnam.ads,
27394         4zintnam.ads, 4znumaux.ads, 4zsytaco.adb, 4zsytaco.ads,
27395         51osinte.adb, 51osinte.ads, 51system.ads,
27396         52osinte.adb, 52osinte.ads, 53osinte.ads, 54osinte.ads,
27397         55osinte.adb, 55osinte.ads, 55system.ads, 56osinte.adb,
27398         56osinte.ads, 56system.ads, 56taprop.adb, 56taspri.ads,
27399         56tpopsp.adb, 57system.ads, 58system.ads,
27400         5amastop.adb, 5aml-tgt.adb, 5aosinte.adb, 5aosinte.ads,
27401         5asystem.ads, 5ataprop.adb, 5atasinf.ads, 5ataspri.ads,
27402         5atpopsp.adb, 5avxwork.ads, 5bml-tgt.adb, 5bosinte.adb,
27403         5bosinte.ads, 5bsystem.ads, 5cosinte.ads, 5csystem.ads,
27404         5dsystem.ads, 5esystem.ads, 5fintman.adb, 5fosinte.adb,
27405         5fosinte.ads, 5fsystem.ads, 5ftaprop.adb, 5ftasinf.ads,
27406         5ginterr.adb, 5gintman.adb, 5gmastop.adb, 5gml-tgt.adb,
27407         5gosinte.ads, 5gproinf.adb, 5gproinf.ads, 5gsystem.ads,
27408         5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads, 5gtpgetc.adb,
27409         5hml-tgt.adb, 5hosinte.adb, 5hosinte.ads, 5hparame.ads,
27410         5hsystem.ads, 5htaprop.adb, 5htaspri.ads, 5htraceb.adb,
27411         5iosinte.adb, 5iosinte.ads, 5itaprop.adb, 5itaspri.ads,
27412         5ksystem.ads, 5kvxwork.ads, 5lml-tgt.adb, 5losinte.ads,
27413         5lparame.adb, 5lsystem.ads, 5msystem.ads, 5mvxwork.ads,
27414         5ninmaop.adb, 5nintman.adb, 5nosinte.ads, 5nsystem.ads,
27415         5ntaprop.adb, 5ntaspri.ads, 5ointerr.adb, 5omastop.adb,
27416         5oosinte.adb, 5oosinte.ads, 5oosprim.adb, 5oparame.adb,
27417         5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5posinte.ads,
27418         5posprim.adb, 5psystem.ads, 5pvxwork.ads, 5sintman.adb,
27419         5sml-tgt.adb, 5sosinte.adb, 5sosinte.ads, 5sosprim.adb,
27420         5sparame.adb, 5ssystem.ads, 5staprop.adb, 5stasinf.adb,
27421         5stasinf.ads, 5staspri.ads, 5stpopsp.adb, 5svxwork.ads,
27422         5tosinte.ads, 5usystem.ads, 5vasthan.adb, 5vdirval.adb,
27423         5vinmaop.adb, 5vinterr.adb, 5vintman.adb, 5vintman.ads,
27424         5vmastop.adb, 5vml-tgt.adb, 5vosinte.adb, 5vosinte.ads,
27425         5vosprim.adb, 5vosprim.ads, 5vparame.ads, 5vsymbol.adb,
27426         5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads, 5vtpopde.adb,
27427         5vtpopde.ads, 5vtraent.adb, 5vtraent.ads, 5vvaflop.adb,
27428         5wdirval.adb, 5wgloloc.adb, 5wintman.adb, 5wmemory.adb,
27429         5wml-tgt.adb, 5wosinte.ads, 5wosprim.adb, 5wsystem.ads,
27430         5wtaprop.adb, 5wtaspri.ads, 5xparame.ads, 5xsystem.ads,
27431         5xvxwork.ads, 5yparame.ads, 5ysystem.ads, 5zinterr.adb,
27432         5zintman.adb, 5zintman.ads, 5zml-tgt.adb, 5zosinte.adb,
27433         5zosinte.ads, 5zosprim.adb, 5zparame.ads, 5zstchop.adb,
27434         5zsystem.ads, 5ztaprop.adb, 5ztaspri.ads, 5ztfsetr.adb,
27435         5ztpopsp.adb, 6vcpp.adb, 6vcstrea.adb, 6vinterf.ads,
27436         7sinmaop.adb, 7sintman.adb, 7sosinte.adb, 7sosprim.adb,
27437         7staprop.adb, 7staspri.ads, 7stfsetr.adb, 7stpopsp.adb,
27438         7straceb.adb, 7straces.adb, 7strafor.adb, 7strafor.ads,
27439         7stratas.adb, 86numaux.adb, 86numaux.ads: Replaced by files below.
27440
27441         * a-caldel-vms.adb, a-calend-mingw.adb, a-calend-vms.adb,
27442         a-calend-vms.ads, a-dirval-mingw.adb, a-dirval-vms.adb,
27443         a-excpol-abort.adb, a-excpol-interix.adb, a-intnam-aix.ads,
27444         a-intnam-dummy.ads, a-intnam-freebsd.ads, a-intnam-hpux.ads,
27445         a-intnam-interix.ads, a-intnam-irix.ads, a-intnam-linux.ads,
27446         a-intnam-lynxos.ads, a-intnam-mingw.ads, a-intnam-os2.ads,
27447         a-intnam-solaris.ads, a-intnam-tru64.ads, a-intnam-unixware.ads,
27448         a-intnam-vms.ads, a-intnam-vxworks.ads, a-numaux-libc-x86.ads,
27449         a-numaux-vxworks.ads, a-numaux-x86.adb, a-numaux-x86.ads,
27450         a-sytaco-vxworks.adb, a-sytaco-vxworks.ads, g-eacodu-vms.adb,
27451         g-expect-vms.adb, g-soccon-aix.ads, g-soccon-freebsd.ads,
27452         g-soccon-hpux.ads, g-soccon-interix.ads, g-soccon-irix.ads,
27453         g-soccon-mingw.ads, g-soccon-solaris.ads, g-soccon-tru64.ads,
27454         g-soccon-unixware.ads, g-soccon-vms.adb, g-soccon-vxworks.ads,
27455         g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vms.adb,
27456         g-socthi-vms.ads, g-socthi-vxworks.adb, g-socthi-vxworks.ads,
27457         g-soliop-mingw.ads, g-soliop-solaris.ads, g-soliop-unixware.ads,
27458         g-trasym-vms.adb, i-cpp-vms.adb, i-cstrea-vms.adb,
27459         interfac-vms.ads, mlib-tgt-aix.adb, mlib-tgt-hpux.adb,
27460         mlib-tgt-irix.adb, mlib-tgt-linux.adb, mlib-tgt-mingw.adb,
27461         mlib-tgt-solaris.adb, mlib-tgt-tru64.adb, mlib-tgt-vms.adb,
27462         mlib-tgt-vxworks.adb, s-asthan-vms.adb, s-gloloc-mingw.adb,
27463         s-inmaop-dummy.adb, s-inmaop-posix.adb, s-inmaop-vms.adb,
27464         s-interr-dummy.adb, s-interr-sigaction.adb, s-interr-vms.adb,
27465         s-interr-vxworks.adb, s-intman-dummy.adb, s-intman-irix.adb,
27466         s-intman-irix-athread.adb, s-intman-mingw.adb, s-intman-posix.adb,
27467         s-intman-solaris.adb, s-intman-vms.adb, s-intman-vms.ads,
27468         s-intman-vxworks.adb, s-intman-vxworks.ads, s-mastop-irix.adb,
27469         s-mastop-tru64.adb, s-mastop-vms.adb, s-mastop-x86.adb,
27470         s-memory-mingw.adb, s-osinte-aix.adb, s-osinte-aix.ads,
27471         s-osinte-aix-fsu.ads, s-osinte-dummy.ads, s-osinte-freebsd.adb,
27472         s-osinte-freebsd.ads, s-osinte-fsu.adb, s-osinte-hpux.ads,
27473         s-osinte-hpux-dce.adb, s-osinte-hpux-dce.ads, s-osinte-interix.ads,
27474         s-osinte-irix.adb, s-osinte-irix.ads, s-osinte-irix-athread.ads,
27475         s-osinte-linux.ads, s-osinte-linux-fsu.ads, s-osinte-linux-ia64.ads,
27476         s-osinte-lynxos-3.adb, s-osinte-lynxos-3.ads, s-osinte-lynxos.adb,
27477         s-osinte-lynxos.ads, s-osinte-mingw.ads, s-osinte-os2.adb,
27478         s-osinte-os2.ads, s-osinte-posix.adb, s-osinte-solaris.adb,
27479         s-osinte-solaris.ads, s-osinte-solaris-fsu.ads,
27480         s-osinte-solaris-posix.ads, s-osinte-tru64.adb, s-osinte-tru64.ads,
27481         s-osinte-unixware.adb, s-osinte-unixware.ads, s-osinte-vms.adb,
27482         s-osinte-vms.ads, s-osinte-vxworks.adb,
27483         s-osinte-vxworks.ads, s-osprim-mingw.adb,
27484         s-osprim-os2.adb, s-osprim-posix.adb, s-osprim-solaris.adb,
27485         s-osprim-unix.adb, s-osprim-vms.adb, s-osprim-vms.ads,
27486         s-osprim-vxworks.adb, s-parame-ae653.ads, s-parame-hpux.ads,
27487         s-parame-linux.adb, s-parame-os2.adb, s-parame-solaris.adb,
27488         s-parame-vms.ads, s-parame-vms-restrict.ads, s-parame-vxworks.ads,
27489         s-proinf-irix-athread.adb, s-proinf-irix-athread.ads,
27490         s-stchop-vxworks.adb, s-taprop-dummy.adb,
27491         s-taprop-hpux-dce.adb, s-taprop-irix.adb,
27492         s-taprop-irix-athread.adb, s-taprop-linux.adb, s-taprop-lynxos.adb,
27493         s-taprop-mingw.adb, s-taprop-os2.adb, s-taprop-posix.adb,
27494         s-taprop-solaris.adb, s-taprop-tru64.adb, s-taprop-vms.adb,
27495         s-taprop-vxworks.adb, s-tasinf-irix.ads, s-tasinf-irix-athread.adb,
27496         s-tasinf-irix-athread.ads, s-tasinf-solaris.adb, s-tasinf-solaris.ads,
27497         s-tasinf-tru64.ads, s-taspri-dummy.ads, s-taspri-hpux-dce.ads,
27498         s-taspri-linux.ads, s-taspri-lynxos.ads, s-taspri-mingw.ads,
27499         s-taspri-os2.ads, s-taspri-posix.ads, s-taspri-solaris.ads,
27500         s-taspri-tru64.ads, s-taspri-vms.ads, s-taspri-vxworks.ads,
27501         s-tfsetr-default.adb, s-tfsetr-vxworks.adb, s-tpopde-vms.adb,
27502         s-tpopde-vms.ads, s-tpopsp-lynxos.adb, s-tpopsp-posix.adb,
27503         s-tpopsp-posix-foreign.adb, s-tpopsp-solaris.adb, s-tpopsp-vxworks.adb,
27504         s-traceb-hpux.adb, s-traceb-mastop.adb, s-traces-default.adb,
27505         s-traent-vms.adb, s-traent-vms.ads, s-trafor-default.adb,
27506         s-trafor-default.ads, s-tratas-default.adb, s-vaflop-vms.adb,
27507         s-vxwork-alpha.ads, s-vxwork-m68k.ads, s-vxwork-mips.ads,
27508         s-vxwork-ppc.ads, s-vxwork-sparcv9.ads, s-vxwork-xscale.ads,
27509         symbols-vms.adb, system-aix.ads, system-freebsd-x86.ads,
27510         system-hpux.ads, system-interix.ads, system-irix-n32.ads,
27511         system-irix-o32.ads, system-linux-x86_64.ads,
27512         system-linux-x86.ads, system-lynxos-ppc.ads, system-lynxos-x86.ads,
27513         system-mingw.ads, system-os2.ads, system-solaris-sparc.ads,
27514         system-solaris-sparcv9.ads, system-solaris-x86.ads, system-tru64.ads,
27515         system-unixware.ads, system-vms.ads, system-vms-zcx.ads,
27516         system-vxworks-alpha.ads, system-vxworks-m68k.ads,
27517         system-vxworks-mips.ads, system-vxworks-ppc.ads,
27518         system-vxworks-sparcv9.ads, system-vxworks-xscale.ads: Replace files
27519         above.
27520
27521 2004-05-13  Zack Weinberg  <zack@codesourcery.com>
27522
27523         * trans.c (gnat_stabilize_reference_1): Remove case 'b'.
27524
27525 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
27526
27527         Merge from tree-ssa-20020619-branch.
27528
27529         * config-lang.in (boot_language, build_by_default): Set
27530         to no.
27531         * utils.c (unchecked_convert): Use OEP_ONLY_CONST.
27532         (max_size): Add static chain op for call_expr.
27533
27534 2004-05-12  Richard Sandiford  <rsandifo@redhat.com>
27535
27536         PR target/15331
27537         * 5gmastop.adb (Roff): Choose between '4' and '0', not '4' and ' '.
27538
27539 2004-05-11  Roger Sayle  <roger@eyesopen.com>
27540
27541         * utils.c (max_size): Use MIN_EXPR to find the minimum value of a
27542         COND_EXPR.
27543
27544 2004-05-10  Doug Rupp  <rupp@gnat.com>
27545
27546         * 5qsystem.ads: Remove Short_Address subtype declaration. Moved to
27547         system.aux_dec.
27548
27549         * s-auxdec.ads: Add Short_Address subtype (moved here from System).
27550
27551         * Makefile.in: [VMS]: Add translation for 5qauxdec.ads.
27552
27553         * init.c: [VMS] Macroize LIB$ calls for IA64 and Alpha.
27554         Fixes undefined symbols in IA64 gnatlib.
27555
27556         * 5vinmaop.adb: Reference s-auxdec for Short_Address.
27557
27558         * 5xsystem.ads, 5vsystem.ads: Back out last change (addition of subtype
27559         Short_Address). This will be moved to system.auxdec.
27560
27561 2004-05-10  Thomas Quinot  <quinot@act-europe.fr>
27562
27563         * sem_util.adb: Replace test for presence of a node that is always
27564         present with a call to Discard_Node.
27565
27566         * sem_ch10.adb (Analyze_Compilation_Unit): Remove superfluous call to
27567         Analyze on the library unit node after generation of distribution stub
27568         constructs.  The call was a no-op because Unit_Node has already been
27569         Analyzed, and the tree fragments for the distribution stubs are
27570         analyzed as they are inserted in Exp_Dist.
27571         Update comment regarding to distribution stubs to reflect that we
27572         do not generate stub in separate files anymore.
27573
27574         * einfo.ads: Clarify the fact that a tagged private type has the
27575         E_Record_Type_With_Private Ekind.
27576
27577         * erroutc.adb: Minor reformatting
27578
27579         * erroutc.ads (Max_Msg_Length): Increase to cover possible larger
27580         values if line length is increased using -gnatyM (noticed during code
27581         reading).
27582
27583         * eval_fat.adb: Minor reformatting
27584         Put spaces around exponentiation operator
27585
27586 2004-05-10  Ed Schonberg  <schonberg@gnat.com>
27587
27588         PR ada/15005
27589         * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): If prefix
27590         has been rewritten as an explicit dereference, retrieve type of
27591         original node to check for possibly unconstrained record type.
27592
27593 2004-05-10  Ed Schonberg  <schonberg@gnat.com>
27594
27595         * exp_ch7.adb (Check_Visibly_Controlled): If given operation is not
27596         overriding, use the operation of the parent unconditionally.
27597
27598         * sem_ch4.adb (Remove_Address_Interpretations): Remove address
27599         operation when either operand is a literal, to avoid further
27600         ambiguities.
27601
27602         * sem_ch6.adb (New_Overloaded_Entity): If new entity is inherited and
27603         overridden by a previous explicit declaration, mark the previous entity
27604         as overriding.
27605
27606         * sem_disp.adb (Check_Dispatching_Operation): New predicate
27607         Is_Visibly_Controlled, to determine whether a declaration of a
27608         primitive control operation for a derived type overrides an inherited
27609         one. Add warning if the explicit declaration does not override.
27610
27611 2004-05-10  Vincent Celier  <celier@gnat.com>
27612
27613         * gnatls.adb (Gnatls): Initialize Snames, to avoid assertion error in
27614         some cases when the sources are no longer present.
27615
27616         * make.adb (Collect_Arguments): Fail if an external source, not part
27617         of any project need to be compiled, when switch -x has not been
27618         specified.
27619
27620         * makeusg.adb: Document new switch -x
27621
27622         * opt.ads (External_Unit_Compilation_Allowed): New Boolean flag,
27623         defaulted to False.
27624
27625         * switch-m.adb (Scan_Make_Switches): New switch -x
27626
27627         * vms_data.ads: Add VMS qualifier /NON_PROJECT_UNIT_COMPILATION for
27628         gnatmake switch -x.
27629
27630         * gnat_ugn.texi: Document new gnatmake switch -x
27631
27632 2004-05-10  Eric Botcazou  <ebotcazou@act-europe.fr>
27633
27634         * misc.c (gnat_init_options): Set flag_zero_initialized_in_bss to 0.
27635
27636         * utils.c (create_var_decl): Do not modify the DECL_COMMON flag.
27637         (process_attributes): Likewise.
27638
27639 2004-05-10  Joel Brobecker  <brobecker@gnat.com>
27640
27641         * s-inmaop.ads: Fix spelling mistake in one of the comments.
27642
27643 2004-05-10  Robert Dewar  <dewar@gnat.com>
27644
27645         * gnat_ugn.texi: Document that for config pragma files, the maximum
27646         line length is always 32767.
27647
27648         * gnat_rm.texi: For pragma Eliminate, note that concatenation of string
27649         literals is now allowed.
27650
27651         * gnat-style.texi: Remove statement about splitting long lines before
27652         an operator rather than after, since we do not follow this rule at all.
27653         Clarify rule (really lack of rule) for spaces around exponentiation
27654
27655         * sem_elim.adb: Allow concatenation of string literals as well as a
27656         single string literal for pragma arguments.
27657
27658         * sem_prag.ads, sem_prag.adb: (Is_Config_Static_String): New function
27659
27660         * a-textio.adb (Terminate_Line): Do not add line feed if nothing
27661         written for append case.
27662
27663         * frontend.adb: Changes to avoid checking max line length in config
27664         pragma files.
27665
27666         * g-os_lib.ads: Minor reformatting
27667
27668         * mlib-utl.adb: Do not define Max_Line_Length locally (definition was
27669         wrong in any case. Instead use standard value. Noticed during code
27670         reading.
27671
27672         * opt.ads (Max_Line_Length): New field, used to implement removal of
27673         limitation on length of lines when scanning config pragma files.
27674
27675         * osint.ads, prj-dect.adb, prj-strt.adb, prj-tree.adb,
27676         makeutl.ads, makeutl.adb: Minor reformatting
27677
27678         * scn.adb: Do not check line length while scanning config pragma files
27679         Do not check line length while scanning out license information
27680
27681         * scng.adb: Changes to avoid line length checks while parsing config
27682         pragma files.
27683
27684 2004-05-10  GNAT Script  <nobody@gnat.com>
27685
27686         * Make-lang.in: Makefile automatically updated
27687
27688 2004-05-05  Arnaud Charlet  <charlet@act-europe.fr>
27689
27690         * osint.adb (Find_Program_Name): Fix handling of VMS version
27691         number.
27692
27693 2004-05-05  Emmanuel Briot  <briot@act-europe.fr>
27694
27695         * g-os_lib.ads (Invalid_Time): New constant
27696
27697         * adaint.h, adaint.c (__gnat_file_time_name, __gnat_file_time_fd): Now
27698         return OS_Time instead of time_t to match what is imported by Ada.
27699         Now return -1 if the file doesn't exist, instead of a random value
27700
27701 2004-05-05  Robert Dewar  <dewar@gnat.com>
27702
27703         * usage.adb: Add line for -gnatR?s switch
27704
27705         * sem_ch13.adb, exp_ch2.adb: Minor reformatting
27706
27707         * g-regpat.ads, g-regpat.adb: Add documentation on handling of Size
27708         and for Match (Data_First, Data_last)
27709
27710         * lib-writ.adb (Write_With_Lines): Ensure that correct index number is
27711         written when we are dealing with multi-unit files.
27712
27713 2004-05-05  Jerome Guitton  <guitton@act-europe.fr>
27714
27715         * Makefile.in: Remove unused targets and variables.
27716
27717 2004-05-05  Vincent Celier  <celier@gnat.com>
27718
27719         * switch-m.adb: New gnatmake switch -eI
27720
27721         * vms_data.ads: Add VMS equivalents of new gnatclean swith -innn and
27722         of new gnatmake switch -eInnn.
27723
27724         * makegpr.adb: Take into account new parameters Index and Src_Index in
27725         Prj.Util.
27726
27727         * clean.adb: Implement support for multi-unit sources, including new
27728         switch -i.
27729
27730         * gnatcmd.adb (GNATCmd): Call Prj.Util.Value_Of with new parameter
27731         Src_Index.
27732
27733         * make.ads, make.adb (Insert_Q): New parameter Index, defaulted to 0
27734         (Extract_From_Q): New out parameter Index
27735         (Mark, Is_Marked): Subprograms moved to Makeutl
27736         (Switches_Of): New parameter Source_Index
27737         (Add_Switch): New parameter Index
27738         (Check): New parameter Source_Index
27739         (Collect_Arguments): New parameter Source_Index
27740         (Collect_Arguments_And_Compile): New parameter Source_Index
27741         (Compile): New parameter Source_Index
27742         Put subprograms in alphabetical order
27743         Add support for multi-source sources, including in project files.
27744
27745         * makeutl.ads, makeutl.adb (Unit_Index_Of): New function
27746         (Mark, Is_Marked, Delete_All_Marks): New subprograms, moved from
27747         Make.
27748
27749         * makeusg.adb: New gnatmake switch -eInnn
27750
27751         * mlib-prj.adb (Build_Library): Add new parameter Src_Index to call to
27752         Prj.Util.Value_Of.
27753
27754         * opt.ads (Main_Index): New variable, defaulted to 0.
27755
27756         * osint.ads, osinte.adb (Add_File): New parameter Index
27757         (Current_Source_Index): New function
27758
27759         * prj.adb: Take into account new components Index and Src_Index
27760
27761         * prj.ads (String_Element): New component Index
27762         (Variable_Value): New component Index
27763         (Array_Element): New component Src_Index
27764
27765         * prj-attr.adb: Indicate that optional index may be specified for
27766         attributes Main, Executable, Spec, Body and some of Switches.
27767
27768         * prj-attr.ads (Attribute_Kind): New values for optional indexes
27769         (Attribute_Record): New component Optional_Index
27770
27771         * prj-com.ads (File_Name_Data): New component Index
27772
27773         * prj-dect.adb (Parse_Attribute_Declaration): Process optional index
27774
27775         * prj-env.adb (Put): Output optional index
27776
27777         * prj-makr.adb: Put indexes for multi-unit sources in SFN pragmas and
27778         attributes Spec and Body.
27779
27780         * prj-nmsc.adb: Process optional indexes
27781
27782         * prj-pp.adb: Ouput "at" for optional indexes
27783
27784         * prj-proc.adb: Take into account optional indexes
27785
27786         * prj-strt.ads, prj-strt.adb (Terms): New Boolean parameter
27787         Optional_Index. For string literal,
27788         process optional index when Optional_Index is True.
27789         (Parse_Expresion): New Boolean parameter Optional_Index
27790
27791         * prj-tree.ads, prj-tree.adb (Source_Index_Of): New function
27792         (Set_Source_Index_Of): New procedure
27793
27794         * prj-util.adb (Executable_Of, Value_Of): Take into account optional
27795         index.
27796
27797         * prj-util.ads (Executable_Of): New parameter Index
27798         (Value_Of (Name_Id, Array_Element_Id) returning Variable_Value):
27799         New parameter Src_Index, defaulted to 0.
27800
27801 2004-05-05  Ed Schonberg  <schonberg@gnat.com>
27802
27803         PR ada/15257
27804         * sem_ch3.adb (Access_Definition): If this is an access parameter
27805         whose designated type is imported through a limited_with clause, do
27806         not add the enclosing subprogram to the list of private dependents of
27807         the type.
27808
27809 2004-05-05  Ed Schonberg  <schonberg@gnat.com>
27810
27811         PR ada/15258
27812         * sem_ch6.adb (Base_Types_Match): True if one type is imported through
27813         a limited_with clause, and the other is its non-limited view.
27814
27815 2004-05-05  Thomas Quinot  <quinot@act-europe.fr>
27816
27817         * cstand.adb (Create_Standard): Initialize Stand.Boolean_Literals.
27818
27819         * exp_attr.adb, exp_ch5.adb, exp_ch9.adb, exp_disp.adb,
27820         exp_fixd.adb, sem_attr.adb, sem_dist.adb, sem_util.adb: Use
27821         Stand.Boolean_Literals to produce references to entities
27822         Standard_False and Standard_True from compile-time computed boolean
27823         values.
27824
27825         * stand.ads (Boolean_Literals): New variable, provides the entity
27826         values for False and True, for use by the expander.
27827
27828 2004-05-05  Doug Rupp  <rupp@gnat.com>
27829
27830         * 5vinmaop.adb, 5[vx]system.ads: Add Short_Address subtype
27831         5vinmaop.adb: Unchecked convert Short_Address vice Address
27832
27833         * adaint.c, raise.c: Caste CRTL function return value
27834         to avoid gcc error on 32/64 bit IVMS.
27835
27836         * Makefile.in [VMS]: Use iar archiver if host = Alpha/VMS and
27837         target = IA64/VMS.
27838
27839         * init.c[VMS]: Only call Alpha specific __gnat_error_prehandler IN_RTS.
27840
27841         * 5qsystem.ads (Address): Declare as Long_Integer
27842         (Short_Address): Declare as 32 bit subtype of Address
27843         Declare  abstract address operations to avoid gratuitous ambiguities.
27844
27845 2004-05-05  Jose Ruiz  <ruiz@act-europe.fr>
27846
27847         * gnat_rm.texi: Use the new restriction Simple_Barriers (AI-249)
27848         instead of the old Boolean_Entry_Barriers.
27849         Ditto for No_Task_Attributes_Package instead of No_Task_Attributes.
27850
27851 2004-05-05  GNAT Script  <nobody@gnat.com>
27852
27853         * Make-lang.in: Makefile automatically updated
27854
27855 2004-05-03  Arnaud Charlet  <charlet@act-europe.fr>
27856
27857         * 50system.ads, 59system.ads, s-thread.ads: Removed, no longer used.
27858
27859 2004-05-03  Olivier Hainque  <hainque@act-europe.fr>
27860
27861         PR ada/15152
27862         * exp_ch2.adb (Expand_Current_Value): Leave Machine_Code Asm arguments
27863         alone. Replacing object references by literals is inappropriate in a
27864         so low level context.
27865
27866 2004-05-03  Arnaud Charlet  <charlet@act-europe.fr>
27867
27868         * a-exexpr.adb: Add comments
27869
27870 2004-05-03  Joel Brobecker  <brobecker@gnat.com>
27871
27872         * a-tags.adb (Tag_Table): Add Index_Check pragma Suppress. Allows us to
27873         declare the Ancestor_Tags array in Type_Specific_Data with a small size
27874         without risking a bounds check error when accessing one of its
27875         components.
27876         (Type_Specific_Data): Define Ancestor_Tags as a small array.
27877         This prevents us from hitting a limitation during the debug info
27878         generation when using stabs.
27879
27880         * a-tags.adb (Dispatch_Table): Define the Prims_Ptr component as a
27881         small array.
27882         This prevents us from hitting a limitation during the debug info
27883         generation when using stabs.
27884
27885 2004-05-03  Eric Botcazou  <ebotcazou@act-europe.fr>
27886
27887         lang-specs.h: Remove -gnatz* from specs.
27888
27889 2004-05-03  Vincent Celier  <celier@gnat.com>
27890
27891         * gprmake.adb, makegpr.ads, makegpr.adb: New files.
27892
27893         * Make-lang.in, Makefile.in: Add gprmake
27894
27895 2004-05-03  Thomas Quinot  <quinot@act-europe.fr>
27896
27897         * sem_aggr.adb: Fix typo in comment.
27898
27899 2004-05-03  Robert Dewar  <dewar@gnat.com>
27900
27901         * make.adb: Minor reformatting
27902
27903         * rtsfind.ads, rtsfind.adb: (RTU_Loaded): New function
27904
27905         * sem_attr.adb (Eval_Attribute, case Type_Class): Fix check for address
27906         so that it works when address is not a private type.
27907
27908         * sem_ch13.adb (Check_Expr_Constants, case N_Integer_Literal): Deal
27909         properly with rewritten unchecked conversions. This prevents
27910         order-of-elaboration issues that can otherwise arise.
27911         (Minimum_Size): Don't check size of access types under VMS
27912
27913         * sem_ch4.adb (Remove_Address_Interpretation): New circuit to remove
27914         interpretations of integer literals as type System.Address.
27915
27916         * sem_util.ads, sem_util.adb (Is_Descendent_Of_Address): New function
27917         (Is_Descendent_Of): New function
27918
27919 2004-05-03  Jose Ruiz  <ruiz@act-europe.fr>
27920
27921         * sem_prag.adb: Boolean_Entry_Barriers is a synonym of Simple_Barriers.
27922         Max_Entry_Queue_Depth is a synonym of Max_Entry_Queue_Length.
27923         No_Dynamic_Interrupts is a synonym of No_Dynamic_Attachment.
27924
27925         * sem_res.adb: Use the new restriction Max_Entry_Queue_Length instead
27926         of the old Max_Entry_Queue_Depth.
27927
27928         * snames.adb: Boolean_Entry_Barriers is a synonym of Simple_Barriers.
27929         Max_Entry_Queue_Depth is a synonym of Max_Entry_Queue_Length
27930         No_Dynamic_Interrupts is a synonym of No_Dynamic_Attachment
27931
27932         * snames.ads: New entry for proper handling of Boolean_Entry_Barriers.
27933         New entry for proper handling of Max_Entry_Queue_Depth.
27934         New entry for proper handling of No_Dynamic_Interrupts.
27935
27936         * s-rident.ads: Adding restriction Simple_Barriers (AI-00249) that
27937         supersedes the GNAT specific restriction Boolean_Entry_Barriers.
27938         Adding restriction Max_Entry_Queue_Length (AI-00249) that supersedes
27939         the GNAT specific restriction Max_Entry_Queue_Depth.
27940         Adding restriction No_Dynamic_Attachment (AI-00249) that supersedes
27941         the GNAT specific restriction No_Dynamic_Interrupts.
27942
27943         * restrict.ads, restrict.adb: Use the new restriction Simple_Barriers
27944         instead of the old Boolean_Entry_Barriers.
27945         Use the new restriction No_Dynamic_Attachment instead of the old
27946         No_Dynamic_Interrupts.
27947
27948         * exp_ch9.adb: Check restriction Simple_Barriers (AI-00249) that
27949         supersedes the GNAT specific restriction Boolean_Entry_Barriers.
27950
27951         * gnatbind.adb: Use the new restriction Max_Entry_Queue_Length instead
27952         of the old Max_Entry_Queue_Depth.
27953
27954 2004-05-03  GNAT Script  <nobody@gnat.com>
27955
27956         * Make-lang.in: Makefile automatically updated
27957
27958 2004-04-29  Ed Schonberg  <schonberg@gnat.com>
27959
27960         * checks.adb (Enable_Range_Check): If the prefix of an index component
27961         is an access to an unconstrained array, perform check unconditionally.
27962
27963 2004-04-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
27964
27965         * decl.c (gnat_to_gnu_field): Also call make_packable_type if
27966         Component_Clause.
27967
27968 2004-04-29  Olivier Hainque  <hainque@act-europe.fr>
27969
27970         * init.c (__gnat_install_handler, __gnat_error_handler): Remove
27971         alternate stack setting. There was no support for the tasking cases
27972         and the changes eventually caused a number of side-effect failures in
27973         the non-tasking case too.
27974
27975 2004-04-29  Eric Botcazou  <ebotcazou@act-europe.fr>
27976
27977         lang-specs.h: Redirect output to /dev/null if -gnatc or -gnatz or
27978         -gnats is passed.
27979
27980 2004-04-29  Vincent Celier  <celier@gnat.com>
27981
27982         * make.adb (Gnatmake): Increase max size of argument array for
27983         gnatbind for the potential addition of -F.
27984         If there are Stand-Alone Library projects, invoke gnatbind with -F to
27985         be sure that elaboration flags will be checked.
27986
27987         * switch-c.adb: Correct call to Scan_Pos for -gnateI
27988
27989 2004-04-29  Thomas Quinot  <quinot@act-europe.fr>
27990
27991         * sem_warn.adb (Check_References): Move '<access-variable> may be
27992         null' warning out of under Warn_On_No_Value_Assigned.
27993
27994 2004-04-29  Ed Falis  <falis@gnat.com>
27995
27996         * gnat_ugn.texi: Fixed texi error
27997
27998 2004-04-29  Robert Dewar  <dewar@gnat.com>
27999
28000         * sem_ch4.adb (Remove_Abstract_Operations): Unconditionally remove
28001         abstract operations if they come from predefined files.
28002
28003         * gnat_rm.texi: Fix bad doc for pragma Elaboration_Checks (should be
28004         Dynamic, not RM).
28005
28006         * s-addope.adb: Correct obvious error in mod function
28007
28008 2004-04-28  Andrew W. Reynolds  <awreynolds@mac.com>
28009
28010         * Makefile.in: Add target pairs for powerpc darwin*
28011         tasking support.
28012
28013         * a-intnam-darwin.ads, s-osinte-darwin.adb,
28014         s-osinte-darwin.ads, system-darwin-ppc.ads: New files.
28015
28016 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
28017
28018         * Makefile.in: Add target macro definitions for s390*-linux*.
28019         * system-linux-s390.ads: New file.
28020         * system-linux-s390x.ads: New file.
28021
28022 2004-04-28  Joseph S. Myers  <jsm@polyomino.org.uk>
28023
28024         * gnat_ugn.texi: Correct argument to @setfilename.
28025
28026 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
28027
28028         * a-exexpr.adb (Unwind_Word): New data type.
28029         (Unwind_Exception): Use it as type of Private1 and Private2.
28030
28031         * raise.c (db_action_for): Fix debug printf.
28032
28033 2004-04-27  Ed Schonberg  <schonberg@gnat.com>
28034
28035         * a-wtmoio.ads: Formal type must be a modular type, not a signed
28036         integer type.
28037
28038 2004-04-27  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
28039
28040         * decl.c (gnat_to_gnu_entity, case object): Call
28041         __builtin_update_setjmp_buf.
28042
28043         * gigi.h (update_setjmp_buf): Deleted.
28044         (ADT_update_setjmp_buf_decl, update_setjmp_buf_decl): New.
28045
28046         * misc.c: (update_setjmp_buf): Deleted.
28047
28048         * trans.c (gnat_to_gnu): Call do_pending_stack_adjust and emit_queue
28049         around block of RTL.
28050
28051         * utils.c (init_gigi_decls): Initialize update_setjmp_buf.
28052
28053 2004-04-26  Thomas Quinot  <quinot@act-europe.fr>
28054
28055         * sem_dist.adb, exp_dist.adb: When constructing a RAS value for a local
28056         subprogram for which no pragma All_Calls_Remote applies, store the
28057         address of the real subprogram in the underlying record type, so local
28058         dereferences do not go through the PCS.
28059
28060 2004-04-26  Robert Dewar  <dewar@gnat.com>
28061
28062         * i-c.ads: Add some type qualifications to avoid ambiguities when
28063         compiling with s-auxdec.ads and a non-private address type.
28064
28065 2004-04-26  Arnaud Charlet  <charlet@act-europe.fr>
28066
28067         * Makefile.rtl: Fix error in previous check-in:
28068         Add s-addope.o to non tasking object list (rather than tasking object
28069         list).
28070
28071 2004-04-26  Javier Miranda  <miranda@gnat.com>
28072
28073         * sem_aggr.adb: Fix typo in comments
28074         (Resolve_Aggr_Expr): Propagate the type to the nested aggregate.
28075         Required to check the null-exclusion attribute.
28076
28077         * sem_attr.adb (Resolve_Attribute): Check the accessibility level in
28078         case of anonymous access types in record and array components. For a
28079         component definition the level is the same of the enclosing composite
28080         type.
28081
28082         * sem_ch3.adb (Analyze_Component_Declaration): In case of components
28083         that are anonymous access types the level of accessibility depends on
28084         the enclosing type declaration. In order to have this information, set
28085         the scope of the anonymous access type to the enclosing record type
28086         declaration.
28087         (Array_Type_Declaration): In case of components that are anonymous
28088         access types the level of accessibility depends on the enclosing type
28089         declaration. In order to have this information, set the scope of the
28090         anonymous access type to the enclosing array type declaration.
28091
28092         * sem_ch3.adb (Array_Type_Declaration): Set the scope of the anonymous
28093         access type.
28094
28095         * sem_ch8.adb (Analyze_Object_Renaming): Add check to verify that
28096         renaming of anonymous access-to-constant types allowed if and only if
28097         the renamed object is access-to-constant.
28098
28099         * sem_util.adb (Type_Access_Level): In case of anonymous access types
28100         that are component_definition or discriminants of a nonlimited type,
28101         the level is the same as that of the enclosing component type.
28102
28103 2004-04-26  Sergey Rybin  <rybin@act-europe.fr>
28104
28105         * sem_elim.adb: Some minor code reorganization from code reading. Fix
28106         misprint in the function name (File_Name_Match).
28107
28108 2004-04-23  Laurent Guerby  <laurent@guerby.net>
28109
28110         * Makefile.in: Remove RANLIB_TEST, use -$(RANLIB) including after
28111         install.
28112
28113 2004-04-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
28114
28115         * Make-lang.in (GNATBIND_OBJS): Add s-addope.o.
28116
28117 2004-04-23  Emmanuel Briot  <briot@act-europe.fr>
28118
28119         * adaint.c (__gnat_try_lock): No longer requires that the parent
28120         directory be writable, the directory itself is enough.
28121         (gnat_is_absolute_path): Change profile, so that the call from
28122         GNAT.OS_Lib can be made more efficient.
28123
28124         * adaint.h (gnat_is_absolute_path): Change profile, so that the call
28125         from GNAT.OS_Lib can be made more efficient.
28126
28127         * g-os_lib.adb (Is_Absolute_Path): More efficient implementation, avoid
28128         one copy of the file name. Found by code reading.
28129
28130 2004-04-23  Vincent Celier  <celier@gnat.com>
28131
28132         * gnat_ugn.texi: Add documentation for gnatmake switch -eL
28133         Correct documentation on gnatmake switches transmitted to the compiler
28134
28135         * ali.ads: Minor comment fix
28136
28137 2004-04-23  Javier Miranda  <miranda@gnat.com>
28138
28139         * sem_ch6.adb: (Confirming Types): Code cleanup
28140
28141         * decl.c (gnat_to_gnu_entity): Give support to anonymous access to
28142         subprogram types: E_Anonymous_Access_Subprogram_Type and
28143         E_Anonymous_Access_Protected_Subprogram_Type.
28144
28145 2004-04-23  Thomas Quinot  <quinot@act-europe.fr>
28146
28147         * sem_dist.adb: Add a new paramter to the RAS_Access TSS indicating
28148         whether a pragma All_Calls_Remote applies to the subprogram on which
28149         'Access is taken.
28150         No functional change is introduced by this revision; the new parameter
28151         will be used to allow calls to local RCI subprograms to be optimized
28152         to not use the PCS in the case where no pragma All_Calls_Remote applies,
28153         as is already done in the PolyORB implementation of the DSA.
28154
28155         * exp_dist.adb: Add a new paramter to the RAS_Access TSS indicating
28156         whether a pragma All_Calls_Remote applies to the subprogram on which
28157         'Access is taken.
28158         No functional change is introduced by this revision; the new parameter
28159         will be used to allow calls to local RCI subprograms to be optimized
28160         to not use the PCS in the case where no pragma All_Calls_Remote applies,
28161         as is already done in the PolyORB implementation of the DSA.
28162
28163 2004-04-23  Robert Dewar  <dewar@gnat.com>
28164
28165         * Makefile.rtl: Add entry for s-addope.o in run time library list
28166         * Make-lang.in: Add entry for s-addope.o to GNAT1 objects
28167         * s-addope.ads, s-addope.adb: New files.
28168
28169         * s-carsi8.adb, s-carun8.adb, s-casi16.adb, s-casi32.adb,
28170         s-casi64.adb, s-caun16.adb, s-caun32.adb, s-caun64.adb,
28171         s-finimp.adb, s-geveop.adb, s-stoele.adb: Modifications to allow
28172         System.Address to be non-private and signed.
28173
28174         * sem_elim.adb: Minor reformatting (fairly extensive)
28175         Some minor code reorganization from code reading
28176         Add a couple of ??? comments
28177
28178 2004-04-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
28179
28180         * trans.c (tree_transform, build_unit_elab): Don't call getdecls.
28181         (tree_transform, case N_If_Statement): Remove non-determinism.
28182
28183         * utils.c (begin_subprog_body): Just set DECL_CONTEXT in PARM_DECL.
28184
28185 2004-04-23  Sergey Rybin  <rybin@act-europe.fr>
28186
28187         * gnat_rm.texi: Small fixes in the changes made in the 'pragma
28188         Eliminate' section.
28189
28190         * snames.ads, snames.adb: Remove Name_Homonym_Number (Homonym_Number is
28191         no longer used as a parameter name for Eliminate pragma).
28192
28193 2004-04-22  Laurent Guerby  <laurent@guerby.net>
28194
28195         PR optimization/14984
28196         PR optimization/14985
28197         * trans.c (gigi): Fix non determinism leading to bootstrap
28198         comparison failures.
28199
28200 2004-04-21  Pascal Obry  <obry@gnat.com>
28201
28202         * adaint.c (__gnat_portable_spawn): Quote first argument (argv[0])
28203         passed to spawnvp() to properly handle program pathname with spaces on
28204         Win32.
28205
28206 2004-04-21  Emmanuel Briot  <briot@act-europe.fr>
28207
28208         * g-debpoo.adb (Print_Info): Avoid extra work if Display_Slots is False.
28209         (Allocate, Deallocate, Free_Physically): Make sure the tasks are
28210         unlocked in case of exceptions.
28211
28212 2004-04-21  Joel Brobecker  <brobecker@gnat.com>
28213
28214         * gigi.h (get_target_no_dollar_in_label): Remove extern declaration.
28215         This function does not exist anymore.
28216
28217 2004-04-21  Thomas Quinot  <quinot@act-europe.fr>
28218
28219         * gnatbind.adb, gnatlink.adb: Update name of imported C symbol.
28220
28221         * link.c: Move variables to the __gnat name space.
28222
28223         * Makefile.in: list link.o explicitly when needed.
28224
28225         * mlib.adb: Remove pragma Linker_Option for "link.o" from mlib.
28226
28227 2004-04-21  Javier Miranda  <miranda@gnat.com>
28228
28229         * einfo.adb (Original_Access_Type): New subprogram
28230         (Set_Original_Access_Type): New subprogram
28231         (Write_Field21_Name): Write the name of the new field
28232
28233         * einfo.ads (Original_Access_Type): New field present in access to
28234         subprogram types.
28235         Addition of two new entities: E_Anonymous_Access_Subprogram_Type, and
28236         E_Anonymous_Access_Protected_Subprogram_Type.
28237
28238         * lib-xref.adb (Output_One_Ref): Give support to anonymous access to
28239         subprogram types.
28240
28241         * lib-xref.ads (Xref_Entity_Letters): Initialize values corresponding
28242         to anonymous access to subprogram types.
28243
28244         * sem_attr.adb (Resolve_Attribute): Give support to anonymous access
28245         to subprogram types.
28246
28247         * sem_ch3.adb (Access_Definition): Complete decoration of entities
28248         corresponding to anonymous access to subprogram types.
28249         (Analyze_Component_Declaration): Add new actual to the call to
28250         subprogram replace_anonymous_access_to_protected_subprogram.
28251         (Array_Type_Declaration): Add new actual to the call to subprogram
28252         replace_anonymous_access_to_protected_subprogram.
28253         (Process_Discriminants): Add new actual to the call to subprogram
28254         replace_anonymous_access_to_protected_subprogram.
28255         (Replace_Anonymous_Access_To_Protected_Subprogram): New formal.
28256
28257         * sem_ch3.ads (Replace_Anonymous_Access_To_Protected_Subprogram): New
28258         formal.
28259
28260         * sem_ch6.adb, sem_type.adb, sem_res.adb: Give support to anonymous
28261         access to subprogram types.
28262
28263         * sem_util.adb (Has_Declarations): Addition of package_specification
28264         nodes.
28265
28266 2004-04-21  Ed Schonberg  <schonberg@gnat.com>
28267
28268         * sem_prag.adb (Make_Inline): If subprogram is a renaming, propagate
28269         inlined flags to renamed entity only if in current unit.
28270
28271 2004-04-21  Thomas Quinot  <quinot@act-europe.fr>
28272
28273         * s-parint.ads: Add DSA implementation marker.
28274
28275         * rtsfind.ads, rtsfind.adb, snames.ads, snames.adb, s-rpc.adb: Use the
28276         value of System.Partition_Interface.DSA_Implementation to determine
28277         what version of the distributed systems annex is available (no
28278         implementation, GLADE, or PolyORB).
28279
28280 2004-04-21  Joel Brobecker  <brobecker@gnat.com>
28281
28282         * targtyps.c (get_target_no_dollar_in_label): Remove, no longer used.
28283
28284 2004-04-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
28285
28286         * utils.c (convert, case CONSTRUCTOR, COMPONENT_REF): Do not make node
28287         with new type if alias sets differ.
28288         Fixes ACATS c41103b.
28289
28290 2004-04-21  Vincent Celier  <celier@gnat.com>
28291
28292         * prj.ads: Remove FORTRAN as an accepted language: not tested yet.
28293         Add array Lang_Args for the language specific compiling argument
28294         switches.
28295
28296         * gnat_ugn.texi: Explain in more details when a library is rebuilt.
28297
28298 2004-04-21  Sergey Rybin  <rybin@act-europe.fr>
28299
28300         * gnat_rm.texi: Update the descripton of the Eliminate pragma
28301         according to the recent changes in the format of the parameters of the
28302         pragma (replacing Homonym_Number with Source_Location).
28303
28304 2004-04-19  Arnaud Charlet  <charlet@act-europe.fr>
28305
28306         * 5isystem.ads: Removed, unused.
28307
28308         * gnat_rm.texi: Redo 1.13 change.
28309
28310 2004-04-19  Robert Dewar  <dewar@gnat.com>
28311
28312         * s-stoele.ads: Clean up definition of Storage_Offset (the new
28313         definition is cleaner, avoids the kludge of explicit Standard operator
28314         references, and also is consistent with a visible System.Address with
28315         no visible operations.
28316
28317         * s-geveop.adb: Add declarations to avoid assumption of visible
28318         operations on type System.Address (since these might not be available
28319         if Address is a non-private type for which the operations
28320         are made abstract).
28321
28322         * sem_eval.adb: Minor reformatting
28323
28324         * s-carsi8.ads, s-carun8.ads, s-casi16.ads, s-casi32.ads,
28325         s-casi64.ads, s-caun16.ads, s-caun32.ads, s-caun64.ads: Minor
28326         reformatting (new function spec format).
28327
28328         * s-auxdec.adb, s-carsi8.adb, s-carun8.adb, s-casi16.adb,
28329         s-casi32.adb, s-casi64.adb, s-caun16.adb, s-caun32.adb,
28330         s-caun64.adb: Add declarations to avoid assumption of visible
28331         operations on type System.Address (since these might not be available
28332         if Address is a non-private type for which the operations are made
28333         abstract).
28334
28335         * lib.ads, lib.adb (Synchronize_Serial_Number): New procedure.
28336
28337         * exp_intr.adb: Minor comment update
28338
28339         * exp_aggr.adb, exp_attr.adb, exp_ch13.adb: Minor reformatting.
28340
28341         * 5omastop.adb: Add declarations to avoid assumption of visible
28342         operations on type System.Address (since these might not be available
28343         if Address is a non-private type for which the operations
28344         are made abstract).
28345
28346 2004-04-19  Vincent Celier  <celier@gnat.com>
28347
28348         * switch-m.adb: (Scan_Make_Switches): Process new switch -eL
28349
28350         * prj-pars.ads (Parse): New Boolean parameter Process_Languages,
28351         defaulted to Ada.
28352
28353         * prj-proc.adb (Process): New Boolean parameter Process_Languages,
28354         defaulted to Ada.
28355         Call Check with Process_Languages.
28356         (Check): New Boolean parameter Process_Languages. Call Recursive_Check
28357         with Process_Languages.
28358         (Recursive_Check): New Boolean parameter Process_Languages. Call
28359         Nmsc.Ada_Check or Nmsc.Other_Languages_Check according to
28360         Process_Languages.
28361
28362         * prj-proc.ads (Process): New Boolean parameter Process_Languages,
28363
28364         * prj-util.ads, prj-util.adb (Executable_Of): New Boolean
28365         parameter Ada_Main, defaulted to True.
28366         Check for Ada specific characteristics only when Ada_Main is True.
28367
28368         * opt.ads: (Follow_Links): New Boolean flag for gnatmake
28369
28370         * prj.adb: (Project_Empty): Add new Project_Data components.
28371
28372         * prj.ads: New types and tables for non Ada languages.
28373         (Project_Data): New components Languages, Impl_Suffixes,
28374         First_Other_Source, Last_Other_Source, Imported_Directories_Switches,
28375         Include_Path, Include_Data_Set.
28376
28377         * prj-env.ads, prj-env.adb: Minor reformatting
28378
28379         * prj-nmsc.ads, prj-nmsc.adb: (Other_Languages_Check): New procedure
28380         Put subprograms in alphabetical order
28381
28382         * prj-pars.adb (Parse): New Boolean parameter Process_Languages,
28383         defaulted to Ada; Call Prj.Proc.Process with Process_Languages and
28384         Opt.Follow_Links.
28385
28386         * mlib-prj.adb: Back out modification in last version, as they are
28387         incorrect.
28388         (Build_Library.Check_Libs): Remove useless pragma Warnings (Off)
28389
28390         * make.adb: (Mains): Moved to package Makeutl
28391         (Linker_Opts): Moved to package Makeutl
28392         (Is_External_Assignment): Moved to package Makeutl
28393         (Test_If_Relative_Path): Moved to package Makeutl
28394         (Gnatmake): Move sorting of linker options to function
28395         Makeutl.Linker_Options_Switches.
28396
28397         * makeutl.ads, makeutl.adb: New files.
28398
28399         * Makefile.in: Add makeutl.o to the object files for gnatmake
28400
28401         * makeusg.adb: Add line for new switch -eL.
28402
28403         * gnatls.adb (Image): New function.
28404         (Output_Unit): If in verbose mode, output the list of restrictions
28405         specified by pragmas Restrictions.
28406
28407         * 5bml-tgt.adb, 5vml-tgt.adb (Build_Dynamic_Library): Do not use
28408         Text_IO.
28409
28410         * a-calend.adb (Split): Shift the date by multiple of 56 years, if
28411         needed, to put it in the range 1970 (included) - 2026 (excluded).
28412         (Time_Of): Do not shift Unix_Min_Year (1970).
28413         Shift the date by multiple of 56 years, if needed, to put it in the
28414         range 1970 (included) - 2026 (excluded).
28415
28416         * adaint.h, adaint.c (__gnat_set_executable): New function.
28417
28418 2004-04-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
28419
28420         * trans.c (tree_transform, case N_Subprogram_Body): Temporarily push
28421         and pop GC context.
28422         (tree_transform, case N_Procedure_Call): Fix typo in setting TREE_TYPE.
28423         (tree_transform, case N_Label): Don't set LABEL_STMT_FIRST_IN_EH.
28424         (tree_transform, case N_Procedure_Call_Statement): Build a tree.
28425         (tree_transform, case N_Code_Statement): Likewise.
28426         (gnat_expand_stmt, case LABEL_STMT): Don't look at
28427         LABEL_STMT_FIRST_IN_EH.
28428         (gnat_expand_stmt, case ASM_STMT): New case.
28429
28430         * utils2.c (build_unary_op): Properly set TREE_READONLY of
28431         UNCONSTRAINED_ARRAY_REF.
28432
28433         * utils.c (poplevel): Temporarily push/pop GC context around inline
28434         function expansion.
28435
28436         * decl.c (maybe_variable): Properly set TREE_READONLY of
28437         UNCONSTRAINED_ARRAY_REF.
28438         (make_packable_type): Only reference TYPE_IS_PADDING_P for RECORD_TYPE.
28439
28440         * ada-tree.def: (ASM_STMT): New.
28441
28442         * ada-tree.h: (LABEL_STMT_FIRST_IN_EH): Deleted.
28443         (ASM_STMT_TEMPLATE, ASM_STMT_OUTPUT, ASM_STMT_ORIG_OUT,
28444         ASM_STMT_INPUT): New.
28445         (ASM_STMT_CLOBBER): Likewise.
28446
28447 2004-04-19  Thomas Quinot  <quinot@act-europe.fr>
28448
28449         * a-except.adb, s-parint.ads, s-parint.adb, types.ads, types.h: Use
28450         general rcheck mechanism to raise Program_Error for E.4(18), instead
28451         of a custom raiser in System.Partition_Interface.
28452         Part of general cleanup work before PolyORB integration.
28453
28454         * snames.ads, snames.adb: Add new runtime library entities and names
28455         for PolyORB DSA.
28456
28457         * sem_dist.ads, sem_dist.adb (Get_Subprogram_Id): Move from sem_dist to
28458         exp_dist.
28459         (Build_Subprogram_Id): New subprogram provided by exp_dist
28460         Code reorganisation in preparation for PolyORB integration.
28461
28462         * exp_dist.ads, exp_dist.adb (Get_Subprogram_Id): Move from sem_dist to
28463         exp_dist.
28464         (Build_Subprogram_Id): New subprogram provided by exp_dist
28465
28466         * sem_ch4.adb (Analyze_One_Call): Fix error message for mismatch in
28467         actual parameter types for call to dereference of an
28468         access-to-subprogram type.
28469
28470         * rtsfind.ads: Add new runtime library entities and names for PolyORB
28471         DSA.
28472
28473         * gnatlink.adb (Value): Remove. Use Interfaces.C.Strings.Value
28474         instead, which has the same behaviour here since we never pass it a
28475         NULL pointer.
28476
28477         * link.c (run_path_option, Solaris case): Use -Wl, as for other
28478         platforms.
28479
28480         * Makefile.in: adjust object file lists for gnatlink and gnatmake
28481         to account for new dependency upon Interfaces.C.Strings + link.o
28482         For x86 FreeBSD, use 86numaux.
28483
28484         * make.adb, gnatcmd.adb: Linker_Library_Path_Option has been moved up
28485         from Mlib.Tgt to Mlib.
28486
28487         * mlib.ads, mlib.adb (Linker_Library_Path_Option): New subprogram, now
28488         target-independent.
28489
28490         * mlib-tgt.ads, mlib-tgt.adb (Linker_Library_Path_Option): Remove
28491         target-specific versions of this subprogram, now implemented as a
28492         target-independent function in Mlib.
28493
28494         * 5aml-tgt.adb, 5bml-tgt.adb, 5gml-tgt.adb, 5hml-tgt.adb, 5lml-tgt.adb,
28495         5sml-tgt.adb, 5vml-tgt.adb, 5zml-tgt.adb, 5wml-tgt.adb
28496         (Linker_Library_Path_Option): Remove target-specific versions of this
28497         subprogram, now implemented as a target-independent function in Mlib.
28498
28499         * atree.adb: (Allocate_Initialize_Node): New subprogram.
28500         Factors out node table slots allocation.
28501         (Fix_Parents): New subprogram.
28502         Encapsulate the pattern of fixing up parent pointers for syntactic
28503         children of a rewritten node.
28504         (New_Copy_Tree): Use New_Copy to copy non-entity nodes.
28505         (Rewrite): Use New_Copy when creating saved copy of original node.
28506         (Replace): Use Copy_Node to copy nodes.
28507
28508 2004-04-19  Javier Miranda  <miranda@gnat.com>
28509
28510         * sprint.adb (Sprint_Node_Actual): Give support to the new
28511         Access_To_Subprogram node available in Access_Definition nodes. In
28512         addition, give support to the AI-231 node fields: null-exclusion,
28513         all-present, constant-present.
28514
28515         * sem_util.ads, sem_util.adb: (Has_Declarations): New subprogram
28516
28517         * sinfo.ads, sinfo.adb:
28518         New field Access_To_Subprogram_Definition in Access_Definition nodes
28519
28520         * sem_ch6.adb (Process_Formals): Move here the code that creates and
28521         decorates internal subtype declaration corresponding to the
28522         null-excluding formal. This code was previously in Set_Actual_Subtypes.
28523         In addition, carry out some code cleanup on this code. In case of
28524         access to protected subprogram call
28525         Replace_Anonymous_Access_To_Protected_Subprogram.
28526         (Set_Actual_Subtypes): Code cleanup.
28527
28528         * sem_ch8.adb (Analyze_Object_Renaming): Remove un-necessary call to
28529         Find_Type in case of anonymous access renamings. Add warning in case of
28530         null-excluding attribute used in anonymous access renaming.
28531
28532         * sem_ch3.ads (Replace_Anonymous_Access_To_Protected_Subprogram): New
28533         subprogram
28534
28535         * sem_ch3.adb (Replace_Anonymous_Access_To_Protected_Subprogram): New
28536         subprogram.
28537         (Access_Definition): In case of anonymous access to subprograms call
28538         the corresponding semantic routine to decorate the node.
28539         (Access_Subprogram_Declaration): Addition of some comments indicating
28540         some code that probably should be added here. Detected by comparison
28541         with the access_definition subprogram.
28542         (Analyze_Component_Declaration): In case of access to protected
28543         subprogram call Replace_Anonymous_Access_To_Protected.
28544         (Array_Type_Declaration): In case of access to protected subprogram call
28545         Replace_Anonymous_Access_To_Protected_Subprogram.
28546         (Process_Discriminants): In case of access to protected subprogram call
28547         Replace_Anonymous_Access_To_Protected_Subprogram.
28548
28549         * par.adb (P_Access_Definition): New formal that indicates if the
28550         null-exclusion part was present.
28551         (P_Access_Type_Definition): New formal that indicates if the caller has
28552         already parsed the null-excluding part.
28553
28554         * par-ch3.adb (P_Subtype_Declaration): Code cleanup.
28555         (P_Identifier_Declarations): Code cleanup and give support to renamings
28556         of anonymous access to subprogram types.
28557         (P_Derived_Type_Def_Or_Private_Ext_Decl): Code cleanup.
28558         (P_Array_Type_Definition): Give support to AI-254.
28559         (P_Component_Items): Give support to AI-254.
28560         (P_Access_Definition): New formal that indicates if the header was
28561         already parsed by the caller.
28562         (P_Access_Type_Definition): New formal that indicates if the caller has
28563         already parsed the null-excluding part.
28564
28565         * par-ch6.adb (P_Formal_Part): Add the null-excluding parameter to the
28566         call to P_Access_Definition.
28567
28568 2004-04-19  Geert Bosch  <bosch@gnat.com>
28569
28570         * checks.adb (Apply_Float_Conversion_Check): New procedure to implement
28571         the delicate semantics of floating-point to integer conversion.
28572         (Apply_Type_Conversion_Checks): Use Apply_Float_Conversion_Check.
28573
28574         * eval_fat.adb (Machine_Mantissa): Moved to spec.
28575         (Machine_Radix): New function.
28576
28577         * eval_fat.ads (Machine_Mantissa): Moved from body for use in
28578         conversion checks.
28579         (Machine_Radix): New function also for use in conversion checks.
28580
28581 2004-04-19  Ed Schonberg  <schonberg@gnat.com>
28582
28583         * par-prag.adb (Source_File_Name_Project): Fix typo in error message.
28584
28585         * exp_ch9.adb (Expand_Access_Protected_Subprogram_Type): Call analyze
28586         to decorate the access-to-protected subprogram and the equivalent type.
28587
28588         * checks.adb (Null_Exclusion_Static_Checks): Code cleanup. Give support
28589         to anonymous access to subprogram types.
28590
28591         * exp_ch4.adb (Expand_N_In): Preserve Static flag before
28592         constant-folding, for legality checks in contexts that require an RM
28593         static expression.
28594
28595         * exp_ch6.adb (Expand_N_Function_Call): If call may generate large
28596         temporary but stack checking is not enabled, increment serial number
28597         to so that symbol generation is consistent with and without stack
28598         checking.
28599
28600         * exp_util.ads, exp_util.adb (May_Generate_Large_Temp): Predicate is
28601         independent on whether stack checking is enabled, caller must check
28602         the corresponding flag.
28603
28604         * sem_ch3.adb (Constrain_Index): Index bounds given by attributes need
28605         range checks.
28606         (Build_Derived_Concurrent_Type): Inherit Is_Constrained flag from
28607         parent if it has discriminants.
28608         (Build_Derived_Private_Type): Constructed full view does
28609         not come from source.
28610         (Process_Discriminants): Default discriminants on a tagged type are
28611         legal if this is the internal completion of a private untagged
28612         derivation.
28613
28614         * sem_ch6.adb (Set_Actual_Subtypes): The generated declaration needs
28615         no constraint checks, because it corresponds to an existing object.
28616
28617         * sem_prag.adb (Process_Convention): Pragma applies
28618         only to subprograms in the same declarative part, i.e. the same unit,
28619         not the same scope.
28620
28621         * sem_res.adb (Valid_Conversion): In an instance or inlined body,
28622         ignore type mismatch on a numeric conversion if expression comes from
28623         expansion.
28624
28625 2004-04-19  Sergey Rybin  <rybin@act-europe.fr>
28626
28627         * sem_elim.adb (Process_Eliminate_Pragma): Remove the processing for
28628         Homonym_Number parameter, add processing for Source_Location parameter
28629         corresponding.
28630         (Check_Eliminated): Remove the check for homonym numbers, add the check
28631         for source location traces.
28632
28633         * sem_elim.ads (Process_Eliminate_Pragma): Replace Arg_Homonym_Number
28634         with Arg_Source_Location corresponding to the changes in the format of
28635         the pragma.
28636
28637         * sem_prag.adb: (Analyze_Pragma): Changes in the processing of
28638         Eliminate pragma corresponding to the changes in the format of the
28639         pragma: Homonym_Number is replaced with Source_Location, two ways of
28640         distinguishing homonyms are mutially-exclusive.
28641
28642 2004-04-19  Joel Brobecker  <brobecker@gnat.com>
28643
28644         * get_targ.ads (Get_No_Dollar_In_Label): Remove.
28645
28646         * exp_dbug.adb (Output_Homonym_Numbers_Suffix): Remove use of
28647         No_Dollar_In_Label, no longer necessary, as it is always True.
28648         (Strip_Suffixes): Likewise.
28649
28650 2004-04-19  Gary Dismukes  <dismukes@gnat.com>
28651
28652         * s-stalib.ads (type Exception_Code): Use Integer'Size for exponent of
28653         modulus for compatibility with size clause on targets with 16-bit
28654         Integer.
28655
28656         * layout.adb (Discrimify): In the case of private types, set Vtyp to
28657         full type to fix type mismatches on calls to size functions for
28658         discriminant-dependent array components.
28659
28660 2004-04-19  Jerome Guitton  <guitton@act-europe.fr>
28661
28662         * Makefile.in (gnatlib-zcx): New target, for building a ZCX run-time
28663         lib.
28664
28665 2004-04-19  Pascal Obry  <obry@gnat.com>
28666
28667         * mdll-utl.adb (Locate): New version is idempotent.
28668
28669 2004-04-17  Laurent Guerby  <laurent@guerby.net>
28670
28671         PR ada/14988 (partial)
28672         * impunit.adb: Fix typo.
28673
28674 2004-04-14  Nathanael Nerode  <neroden@gcc.gnu.org>
28675
28676         * Make-lang.in: Remove obsolete rts-none, rts-cert, install-rts-none,
28677         and install-rts-cert targets.  Remove all gnatlib and gnattools
28678         targets and all other rts-* targets (moved to libada).  Remove (now)
28679         unused Make variables CHMOD, CHMOD_AX_FLAGS, shext, THREAD_KIND,
28680         TRACE, GNATLIBFLAGS, GNATLIBCFLAGS.
28681
28682 2004-04-08  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
28683
28684         * trans.c (tree_transform): Shortcut returning error_mark_node for
28685         statements in annotate_only_mode.
28686         (tree_transform, case N_Label, case N_Return_Statement,
28687         N_Goto_Statement): Make statement tree instead of generating code.
28688         (tree_transform, case N_Assignment_Statement): No longer check
28689         type_annotate_only.
28690         (gnat_expand_stmt, case GOTO_STMT, case LABEL_STMT, case
28691         RETURN_STMT): New.
28692         (first_nondeleted_insn, build_block_stmt, make_expr_stmt_from_rtl):
28693         New fcns.
28694         (gnat_to_gnu): Collect any RTL generated and deal with it.
28695         (tree_transform, case N_And_Then): Refine when have non-null RTL_EXPR.
28696         (tree_transform case N_If_Statement): Rewrite to make IF_STMT.
28697         (gnat_expand_stmt, case BLOCK_STMT, IF_STMT): New cases.
28698
28699         * ada-tree.def (GOTO_STMT, LABEL_STMT, RETURN_STMT): New tree nodes.
28700
28701         * ada-tree.def (EXPR_STMT): Fix typo in name.
28702         (BLOCK_STMT, IF_STMT): New nodes.
28703
28704         * ada-tree.h (GOTO_STMT_LABEL, LABEL_STMT_LABEL,
28705         LABEL_STMT_FIRST_IN_EH): New macros.
28706         (RETURN_STMT_EXPR): Likewise.
28707
28708         * ada-tree.h: (BLOCK_STMT_LIST, IF_STMT_COND, IF_STMT_TRUE,
28709         IF_STMT_ELSEIF, IF_STMT_ELSE): New macros.
28710
28711 2004-04-08  Thomas Quinot  <quinot@act-europe.fr>
28712
28713         * atree.ads: Correct documentation on extended nodes.
28714
28715         * link.c: Set run_path_option for FreeBSD.
28716
28717 2004-04-08  Vincent Celier  <celier@gnat.com>
28718
28719         * mlib-prj.adb (Build_Library.Check_Libs): On OpenVMS, if dec.ali is
28720         one of the ALI file, do not link with DEC lib.
28721
28722         * par.adb Remove the last two characters ("%s" or "%b") when checking
28723         if a language defined unit may be recompiled.
28724
28725 2004-04-08  Ed Schonberg  <schonberg@gnat.com>
28726
28727         * sem_ch4.adb (Remove_Abstract_Operations): Improve error message when
28728         removal of abstract operation leaves no possible interpretation for
28729         expression.
28730
28731         * sem_eval.adb (Eval_Qualified_Expression): Use
28732         Set_Raises_Constraint_Error on node when needed, so that it does not
28733         get optimized away by subsequent optimizations.
28734
28735         * sem_res.adb (Resolve_Intrinsic_Operator): Save interpretations of
28736         operands even when they are not wrapped in a type conversion.
28737
28738 2004-04-08  Olivier Hainque  <hainque@act-europe.fr>
28739
28740         * sem_prag.adb (Set_Exported): Warn about making static as result of
28741         export only when the export is coming from source. This may be not
28742         be true e.g. on VMS where we expand export pragmas for exception codes
28743         together with imported or exported exceptions, and we don't want the
28744         user to be warned about something he didn't write.
28745
28746 2004-04-08  Thomas Quinot  <quinot@act-europe.fr>
28747
28748         * sem_util.adb (Note_Possible_Modification): Reorganize to remove code
28749         duplication between normal entities and those declared as renamings.
28750         No functional change.
28751
28752         * s-fileio.ads (Form): Remove pragma Inline, as we cannot currently
28753         inline functions returning an unconstrained result.
28754
28755 2004-04-08  Eric Botcazou  <ebotcazou@act-europe.fr>
28756
28757         * utils.c (type_for_mode): Handle BLKmode and VOIDmode properly, to
28758         conform to what other front-ends do.
28759
28760 2004-04-08  Doug Rupp  <rupp@gnat.com>
28761
28762         * 5vml-tgt.adb: Use Gas instead of VMS Macro to build auto init shared
28763         libraries.
28764
28765 2004-04-06  Pascal Obry  <obry@gnat.com>
28766
28767         * adaint.c (DIR_SEPARATOR): Properly set DIR_SEPARATOR on Win32.
28768
28769         * osint.adb (Program_Name): Do not look past a directory separator.
28770
28771 2004-04-06  Thomas Quinot  <quinot@act-europe.fr>
28772
28773         * atree.adb: Update comment (Rewrite_Substitute_Node no longer exists).
28774
28775         * exp_ch6.adb (Rewrite_Function_Call): Clarify documentation of
28776         requirement for preserving a copy of the original assignment node.
28777
28778         * sinfo.ads: Update comment (Original_Tree -> Original_Node).
28779
28780 2004-04-06  Olivier Hainque  <hainque@act-europe.fr>
28781
28782         (__gnat_initialize [Vxworks]): Enable references to the crtstuff bits
28783         when supported.
28784
28785 2004-04-06  Ed Schonberg  <schonberg@gnat.com>
28786
28787         * sem_ch4.adb (Remove_Abstract_Operations): Extend previous changes to
28788         operator calls in functional notation, and apply
28789         Universal_Interpretation to operands, not to their type.
28790
28791 2004-04-06  Robert Dewar  <dewar@gnat.com>
28792
28793         * 5wdirval.adb: Minor reformatting
28794
28795 2004-04-06  Ed Falis  <falis@gnat.com>
28796
28797         * gnat_rm.texi: Improve a reference to the GCC manual
28798
28799 2004-04-05  Vincent Celier  <celier@gnat.com>
28800
28801         * adaint.h, adaint.c: Add function __gnat_named_file_length
28802
28803         * impunit.adb: Add Ada.Directories to the list
28804
28805         * Makefile.in: Add VMS and Windows versions of
28806         Ada.Directories.Validity package body.
28807
28808         * Makefile.rtl: Add a-direct and a-dirval
28809
28810         * mlib-tgt.ads: Minor comment update.
28811
28812         * a-dirval.ads, a-dirval.adb, 5vdirval.adb, 5wdirval.adb,
28813         a-direct.ads, a-direct.adb: New files.
28814
28815 2004-04-05  Vincent Celier  <celier@gnat.com>
28816
28817         PR ada/13620
28818         * make.adb (Scan_Make_Arg): Pass any -fxxx switches to gnatlink, not
28819         just to the compiler.
28820
28821 2004-04-05  Robert Dewar  <dewar@gnat.com>
28822
28823         * a-except.adb (Exception_Name_Simple): Make sure lower bound of
28824         returned string is 1.
28825
28826         * ali-util.adb: Use proper specific form for Warnings (Off, entity)
28827
28828         * eval_fat.ads: Minor reformatting
28829
28830         * g-curexc.ads: Document that lower bound of returned string values
28831         is always one.
28832
28833         * gnatlink.adb: Add ??? comment for previous change
28834         (need to document why this is VMS specific)
28835
28836         * s-stoele.ads: Minor reformatting
28837
28838         * tbuild.ads: Minor reformatting throughout (new function specs)
28839
28840         * par-ch10.adb (P_Context_Clause): Handle comma instead of semicolon
28841         after WITH.
28842
28843         * scng.adb: Minor reformatting
28844
28845 2004-04-05  Geert Bosch  <bosch@gnat.com>
28846
28847         * eval_fat.adb (Machine): Remove unnecessary suppression of warning.
28848         (Leading_Part): Still perform truncation to machine number if the
28849         specified radix_digits is greater or equal to machine_mantissa.
28850
28851 2004-04-05  Javier Miranda  <miranda@gnat.com>
28852
28853         * par-ch3.adb: Complete documentation of previous change
28854         Correct wrong syntax documentation of the OBJECT_DECLARATION rule
28855         (aliased must appear before constant).
28856
28857         * par-ch4.adb: Complete documentation of previous change.
28858
28859         * par-ch6.adb: Complete documentation of previous change.
28860
28861         * sinfo.ads: Fix typo in commment.
28862
28863 2004-04-05  Ed Schonberg  <schonberg@gnat.com>
28864
28865         * sem_ch3.adb (Inherit_Components): If derived type is private and has
28866         stored discriminants, use its discriminants to constrain parent type,
28867         as is done for non-private derived record types.
28868
28869         * sem_ch4.adb (Remove_Abstract_Operations): New subprogram to implement
28870         Ada 2005 AI-310: an abstract non-dispatching operation is not a
28871         candidate interpretation in an overloaded call.
28872
28873         * tbuild.adb (Unchecked_Convert_To): Preserve conversion node if
28874         expression is Null and target type is not an access type (e.g. a
28875         non-private address type).
28876
28877 2004-04-05  Thomas Quinot  <quinot@act-europe.fr>
28878
28879         * exp_ch6.adb (Rewrite_Function_Call): When rewriting an assignment
28880         statement whose right-hand side is an inlined call, save a copy of the
28881         original assignment subtree to preserve enough consistency for
28882         Analyze_Assignment to proceed.
28883
28884         * sem_ch5.adb (Analyze_Assignment): Remove a costly copy of the
28885         complete assignment subtree which is now unnecessary, as the expansion
28886         of inlined call has been improved to preserve a consistent assignment
28887         tree.  Note_Possible_Modification must be called only
28888         after checks have been applied, or else unnecessary checks will
28889         be generated.
28890
28891         * sem_util.adb (Note_Possible_Modification): Reorganise the handling
28892         of explicit dereferences that do not Come_From_Source:
28893          - be selective on cases where we must go back to the dereferenced
28894            pointer (an assignment to an implicit dereference must not be
28895            recorded as modifying the pointer);
28896          - do not rely on Original_Node being present (Analyze_Assignment
28897            calls Note_Possible_Modification on a copied tree).
28898
28899         * sem_warn.adb (Check_References): When an unset reference to a pointer
28900         that is never assigned is encountered, prefer '<pointer> may be null'
28901         warning over '<pointer> is never assigned a value'.
28902
28903 2004-04-05  Ramon Fernandez  <fernandez@gnat.com>
28904
28905         * tracebak.c: Change STOP_FRAME in ppc vxworks to be compliant with
28906         the ABI.
28907
28908 2004-04-05  Olivier Hainque  <hainque@act-europe.fr>
28909
28910         * 5gmastop.adb (Pop_Frame): Comment out the pragma Linker_Option for
28911         libexc. We currently don't reference anything in this library and
28912         linking it in triggers linker warnings we don't want to see.
28913
28914         * init.c: Update comments.
28915
28916 2004-04-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
28917
28918         * decl.c (gnat_to_gnu_entity): Use TYPE_READONLY.
28919         * utils.c (create_field_decl): Likewise.
28920         * utils2.c (build_unary_op, gnat_build_constructor): Likewise.
28921
28922 2004-04-02  Arnaud Charlet  <charlet@act-europe.fr>
28923
28924         * gnat-style.texi, gnat_rm.texi, gnat_ugn.texi: Remove RCS tags.
28925         Replace ifinfo by ifnottex, to make makeinfo --html happy again.
28926         Add info directory entry and category.
28927
28928 2004-04-02  Jan Hubicka  <jh@suse.cz>
28929
28930         * utils.c: Include function.h
28931         (end_subprog_body): Clear DECL_STRUCT_FUNCTION.
28932
28933 2004-04-01  Arnaud Charlet  <charlet@act-europe.fr>
28934
28935         PR ada/14150
28936         * Make-lang.in: Clean up generation of documentation
28937
28938         * gnat-style.texi, gnat_rm.texi, ug_words: Resync with AdaCore version
28939
28940         * xgnatug.adb: Removed, replaced by xgnatugn.adb
28941
28942         * xgnatugn.adb: Replaces xgnatug.adb
28943
28944         * gnat_ug.texi: Removed, replaced by gnat_ugn.texi
28945
28946         * gnat_ugn.texi: Replaces gnat_ug.texi. Resync with AdaCore version
28947
28948         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
28949         gnat_ug_wnt.texi: Removed.
28950
28951 2004-04-01  Arnaud Charlet  <charlet@act-europe.fr>
28952
28953         * utils2.c: Update copyright notice.
28954
28955 2004-04-01  Robert Dewar  <dewar@gnat.com>
28956
28957         * checks.adb: Minor reformatting throughout
28958         Note that prev checkin added RM reference to alignment warning
28959
28960 2004-04-01  Ed Schonberg  <schonberg@gnat.com>
28961
28962         * exp_aggr.adb (Get_Component_Val): Treat a string literal as
28963         non-static when building aggregate for bit-packed array.
28964
28965         * exp_ch4.adb (Expand_N_Slice): If a packed slice is an actual of a
28966         function call that is itself the actual in a procedure call, build
28967         temporary for it.
28968
28969         * exp_pakd.adb (Expand_Bit_Packed_Element_Set): If right-hand side is
28970         a string literal, create a temporary for it, constant folding only
28971         handles scalars here.
28972
28973 2004-04-01  Vincent Celier  <celier@gnat.com>
28974
28975         * ali-util.adb (Post_Scan, Error_Msg, Error_Msg_S, Error_Msg_SC,
28976         Error_Msg_SP): New empty procedures to instantiate the Scanner.
28977         (Style, Scanner): Instantiations of Styleg and Scng to be able to scan
28978         tokens.
28979         (Accumulate_Checksum, Initialize_Checksum): Remove procedures.
28980         (Get_File_Checksum): Use the instantiated scanner to scan all the tokens
28981         and get the checksum.
28982
28983         * make.adb (Gnatmake): Do not insert into Q the Main_Source if it is
28984         already in the Q.
28985         Increase the Marking_Label at the end of the Multiple_Main_Loop,
28986         instead of at the beginning.
28987
28988         * osint.adb (Lib_File_Name): Use Multi_Unit_Index_Character, not '~'
28989         directly.
28990         (Osint package elaboration): Change Multi_Unit_Index_Character to '$' if
28991         on VMS.
28992
28993         * osint.ads (Multi_Unit_Index_Character): New Character global variable
28994
28995         * osint-c.adb (Set_Library_Info_Name): Use Multi_Unit_Index_Character,
28996         not '~' directly.
28997
28998         * par.adb: Remove test on file name to detect language defined units.
28999         Add test on unit name, after parsing, to detect language defined units
29000         that are not compiled with -gnatg (except System.RPC and its children)
29001
29002         * par-ch10.adb (P_Compilation_Unit): In multi-unit sources, scan the
29003         following units without style checking.
29004
29005         * switch-c.adb: Change -gnatC to -gnateI
29006
29007         * usage.adb: Document new switch -gnateInnn
29008
29009         * scng.adb (Accumulate_Token_Checksum): New procedure
29010         (Scan): Call Accumulate_Token_Checksum after each identifier, reserved
29011         word or literal number.
29012         (Scan.Nlit.Scan_Integer): Do not accumulate internal '_' in litteral
29013         numbers.
29014
29015 2004-04-01  Thomas Quinot  <quinot@act-europe.fr>
29016
29017         * a-tasatt.adb,
29018         g-comlin.adb, sinput-c.adb, s-secsta.adb, s-tpobop.adb,
29019         switch-m.adb, 56taprop.adb, 5ginterr.adb, 5gmastop.adb,
29020         5staprop.adb, 5vinterr.adb, 5vtaprop.adb, 5vtpopde.adb,
29021         5vtpopde.adb: Add missing 'constant' keywords.
29022
29023 2004-04-01  Javier Miranda  <miranda@gnat.com>
29024
29025         * par-ch4.adb: (P_Allocator): Code cleanup
29026
29027         * sem_ch3.adb (Access_Definition): Properly set the null-excluding
29028         attribute.
29029
29030         * sinfo.ads: Complete documentation of previous change
29031
29032 2004-04-01  Pascal Obry  <obry@gnat.com>
29033
29034         * gnatlink.adb (Process_Binder_File): Remove duplicate linker options
29035         only on VMS.  This special handling was done because an old GNU/ld bug
29036         on Windows which has been fixed.
29037
29038 2004-04-01  GNAT Script  <nobody@gnat.com>
29039
29040         * Make-lang.in: Makefile automatically updated
29041
29042 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
29043
29044         * decl.c (gnat_to_gnu_entity, make_type_from_size):
29045         Use TYPE_UNSIGNED, not TREE_UNSIGNED.
29046         * trans.c (tree_transform, convert_with_check): Likewise.
29047         * utils.c (gnat_signed_or_unsigned_type): Likewise.
29048         (build_vms_descriptor, unchecked_convert): Likewise.
29049         * utils2.c (nonbinary_modular_operation): Likewise.
29050
29051 2004-03-29  Javier Miranda  <miranda@gnat.com>
29052
29053         * checks.adb (Null_Exclusion_Static_Checks): New subprogram
29054         (Install_Null_Excluding_Check): Local subprogram that determines whether
29055         an access node requires a runtime access check and if so inserts the
29056         appropriate run-time check.
29057         (Apply_Access_Check): Call Install_Null_Excluding check if required
29058         (Apply_Constraint_Check): Call Install_Null_Excluding check if required
29059
29060         * checks.ads: (Null_Exclusion_Static_Checks): New subprogram
29061
29062         * einfo.ads: Fix typo in comment
29063
29064         * exp_ch3.adb (Build_Assignment): Generate conversion to the
29065         null-excluding type to force the corresponding run-time check.
29066         (Expand_N_Object_Declaration): Generate conversion to the null-excluding
29067         type to force the corresponding run-time check.
29068
29069         * exp_ch5.adb (Expand_N_Assignment_Statement): Generate conversion to
29070         the null-excluding type to force the corresponding run-time check.
29071
29072         * exp_ch6.adb (Expand_Call): Do not generate the run-time check in
29073         case of access types unless they have the null-excluding attribute.
29074
29075         * sprint.adb (Sprint_Node_Actual): Give support to the null-exclusing
29076         part.
29077
29078         * exp_util.ads: Fix typo in comment
29079
29080         * par.adb (P_Null_Exclusion): New subprogram
29081         (P_Subtype_Indication): New formal that indicates if the null-excluding
29082         part has been scanned-out and it was present
29083
29084         * par-ch3.adb, par-ch4.adb, par-ch6.adb: Give support to AI-231
29085
29086         * sem_aggr.adb: (Check_Can_Never_Be_Null): New subprogram
29087         (Aggregate_Constraint_Checks): Generate conversion to the null-excluding
29088         type to force the corresponding run-time check
29089         (Resolve_Aggregate): Propagate the null-excluding attribute to the array
29090         components
29091         (Resolve_Array_Aggregate): Carry out some static checks
29092         (Resolve_Record_Aggregate.Get_Value): Carry out some static check
29093
29094         * sem_ch3.adb (Access_Definition): In Ada 0Y the Can_Never_Be_Null
29095         attribute must be set only if specified by means of the null-excluding
29096         part. In addition, we must also propagate the access-constant attribute
29097         if present.
29098         (Access_Subprogram_Declaration, Access_Type_Declaration,
29099         Analyze_Component_Declaration, Analyze_Object_Declaration,
29100         Array_Type_Declaration, Process_Discriminants,
29101         Analyze_Subtype_Declaration): Propagate the null-excluding attribute
29102         and carry out some static checks.
29103         (Build_Derived_Access_Type): Set the null-excluding attribute
29104         (Derived_Type_Declaration, Process_Subtype): Carry out some static
29105         checks.
29106
29107         * sem_ch4.adb (Analyze_Allocator): Carry out some static checks
29108
29109         * sem_ch5.adb (Analyze_Assignment): Carry out some static checks
29110
29111         * sem_ch6.adb (Process_Formals): Carry out some static checks.
29112         (Set_Actual_Subtypes): Generate null-excluding subtype if the
29113         null-excluding part was present; it is not required to be done here in
29114         case of anonymous access types.
29115         (Set_Formal_Mode): Ada 0Y allows anonymous access to have the null
29116         value.
29117
29118         * sem_res.adb (Resolve_Actuals): Carry out some static check
29119         (Resolve_Null): Allow null in anonymous access
29120
29121         * sinfo.adb: New subprogram Null_Exclusion_Present
29122         All_Present and Constant_Present available on access_definition nodes
29123
29124         * sinfo.ads: New flag Null_Exclusion_Present on subtype_declaration,
29125         object_declaration, derived_type_definition, component_definition,
29126         discriminant_specification, access_to_object_definition,
29127         access_function_definition, allocator, access_procedure_definition,
29128         access_definition, parameter_specification, All_Present and
29129         Constant_Present flags available on access_definition nodes.
29130
29131 2004-03-29  Robert Dewar  <dewar@gnat.com>
29132
29133         * fname.adb, fname.ads, fname-sf.adb, fname-uf.adb, fname-uf.ads,
29134         gnat1drv.adb, lib.adb, lib.ads, lib-load.adb, lib-writ.adb,
29135         opt.ads, osint.adb, osint.ads, osint-c.adb, par.adb,
29136         par-ch10.adb, par-load.adb, par-prag.adb, sfn_scan.adb,
29137         sfn_scan.ads, sinput-l.adb, sinput-l.ads, switch-c.adb,
29138         sem_prag.adb: Updates to handle multiple units/file
29139
29140         * par.adb: Change test for s-rpc to s-rp for detecting rpc and children
29141
29142         * par.adb, memtrack.adb, prj-makr.adb, prj-part.adb,
29143         sem_util.adb: Minor reformatting
29144
29145         * sem_ch12.adb: Add comment for previous change
29146
29147 2004-03-29  Laurent Pautet  <pautet@act-europe.fr>
29148
29149         * osint.adb (Executable_Prefix): Set Exec_Name to the current
29150         executable name when not initialized. Otherwise, use its current value.
29151
29152         * osint.ads (Exec_Name): Move Exec_Name from body to spec in order to
29153         initialize it to another executable name than the current one. This
29154         allows to configure paths for an executable name (gnatmake) different
29155         from the current one (gnatdist).
29156
29157 2004-03-29  Ed Schonberg  <schonberg@gnat.com>
29158
29159         * exp_ch6.adb (Expand_Call): A call to a function declared in the
29160         current unit cannot be inlined if it appears in the body of a withed
29161         unit, to avoid order of elaboration problems in gigi.
29162
29163         * exp_ch9.adb (Build_Protected_Sub_Specification): Generate debugging
29164         information for protected (wrapper) operation as well, to simplify gdb
29165         use.
29166
29167         * sem_ch6.adb (Analyze_Subprogram_Body): For a private operation in a
29168         protected body, indicate that the entity for the generated spec comes
29169         from source, to ensure that references are properly generated for it.
29170         (Build_Body_To_Inline): Do not inline a function that returns a
29171         controlled type.
29172
29173         * sem_prag.adb (Process_Convention): If subprogram is overloaded, only
29174         apply convention to homonyms that are declared explicitly.
29175
29176         * sem_res.adb (Make_Call_Into_Operator): If the operation is a function
29177         that renames an equality operator and the operands are overloaded,
29178         resolve them with the declared formal types, before rewriting as an
29179         operator.
29180
29181 2004-03-29  GNAT Script  <nobody@gnat.com>
29182
29183         * Make-lang.in: Makefile automatically updated
29184
29185 2004-03-25  Vasiliy Fofanov  <fofanov@act-europe.fr>
29186
29187         * memtrack.adb: Log realloc calls, which are treated as free followed
29188         by alloc.
29189
29190 2004-03-25  Vincent Celier  <celier@gnat.com>
29191
29192         * prj-makr.adb (Process_Directories): Detect when a file contains
29193         several units. Do not include such files in the config pragmas or
29194         in the naming scheme.
29195
29196         * prj-nmsc.adb (Record_Source): New parameter Trusted_Mode.
29197         Resolve links only when not in Trusted_Mode.
29198         (Find_Sources, Recursive_Find_Dirs, Find_Source_Dirs, Locate_Directory):
29199         Do not resolve links for the display names.
29200
29201         * prj-part.adb (Parse_Single_Project, Project_Path_Name_Of): Do not
29202         resolve links when computing the display names.
29203
29204 2004-03-25  Thomas Quinot  <quinot@act-europe.fr>
29205
29206         * sem_attr.adb (Check_Dereference): When the prefix of a 'Tag
29207         attribute reference does not denote a subtype, it can be any
29208         expression that has a classwide type, potentially after an implicit
29209         dereference.  In particular, the prefix can be a view conversion for
29210         a classwide type (for which Is_Object_Reference holds), but it can
29211         also be a value conversion for an access-to-classwide type. In the
29212         latter case, there is an implicit dereference, and the original node
29213         for the prefix does not verify Is_Object_Reference.
29214
29215         * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): A view
29216         conversion of a discriminant-dependent component of a mutable object
29217         is one itself.
29218
29219 2004-03-25  Ed Schonberg  <schonberg@gnat.com>
29220
29221         * freeze.adb (Freeze_Entity): When an inherited subprogram is
29222         inherited, has convention C, and has unconstrained array parameters,
29223         place the corresponding warning on the derived type declaration rather
29224         than the original subprogram.
29225
29226         * sem_ch12.adb (Instantiate_Formal_Subprogram): Set From_Default
29227         indication on renaming declaration, if formal has a box and actual
29228         is absent.
29229
29230         * sem_ch8.adb (Analyze_Subprogram_Renaming): Use From_Default flag to
29231         determine whether to generate an implicit or explicit reference to
29232         the renamed entity.
29233
29234         * sinfo.ads, sinfo.adb: New flag From_Default, to indicate that a
29235         subprogram renaming comes from a defaulted formal subprogram in an
29236         instance.
29237
29238 2004-03-25  Gary Dismukes  <dismukes@gnat.com>
29239
29240         * sem_elab.adb (Check_Elab_Call): Refine loop that checks for default
29241         value expressions to ensure that calls within a component definition
29242         will be checked (since those are evaluated during the record type's
29243         elaboration).
29244
29245 2004-03-25  Arnaud Charlet  <charlet@act-europe.fr>
29246
29247         * s-tpobop.adb: Code clean up:
29248         (Requeue_Call): Extract from PO_Service_Entries to remove duplicated
29249         code.
29250         (PO_Do_Or_Queue): Remove duplicated code and use Requeue_Call.
29251
29252 2004-03-25  Jose Ruiz  <ruiz@act-europe.fr>
29253
29254         * Makefile.in: Clean up in the ravenscar run time.
29255
29256 2004-03-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
29257
29258         * decl.c (gnat_to_gnu_entity, case E_Access_Type): Pass value
29259         of No_Strict_Aliasing to build_pointer_type_for_mode.
29260         * utils.c (update_pointer_to): Walk pointer and ref chains.
29261
29262 2004-03-22  Cyrille Comar  <comar@act-europe.fr>
29263
29264         * ali.ads: Fix Comment about Dynamic_Elab.
29265
29266         * gnatls.adb (Output_Unit): Add output of many flags (Dynamic_Elab,
29267         Has_RACW, Is_Generic, etc.)
29268         (Output_Object, Gnatls): Take into account ALI files not attached to
29269         an object.
29270
29271 2004-03-22  Vincent Celier  <celier@gnat.com>
29272
29273         * gprep.adb: Change all String_Access to Name_Id
29274         (Is_ASCII_Letter): new function
29275         (Double_File_Name_Buffer): New procedure
29276         (Preprocess_Infile_Name): New procedure
29277         (Process_Files): New procedure
29278         (Gnatprep): Check if output and input are existing directories.
29279         Call Process_Files to do the real job.
29280
29281 2004-03-22  Robert Dewar  <dewar@gnat.com>
29282
29283         * prj-env.adb, prj-nmsc.ads, prj-proc.ads,
29284         s-stache.ads, s-stache.adb: Comment updates. Minor reformatting.
29285
29286 2004-03-22  Sergey Rybin  <rybin@act-europe.fr>
29287
29288         * scn.adb (Contains): Add check for EOF, is needed for a degenerated
29289         case when the source contains only comments.
29290
29291 2004-03-22  Ed Schonberg  <schonberg@gnat.com>
29292
29293         * sem_ch10.adb (Analyze_Compilation_Unit): When generating a
29294         declaration for a child subprogram body that acts as a spec, indicate
29295         that the entity in the declaration needs debugging information.
29296
29297         * sem_ch3.adb (Complete_Private_Subtype): Do not build an underlying
29298         full view if the subtype is created for a constrained record component;
29299         gigi has enough information to construct the record, and there is no
29300         place in the tree for the declaration.
29301
29302         * sem_ch6.adb (Build_Body_To_Inline): Use an internal name without
29303         serial number for the dummy body that is built for analysis, to avoid
29304         inconsistencies in the generation of internal names when compiling
29305         with -gnatN.
29306
29307 2004-03-22  Thomas Quinot  <quinot@act-europe.fr>
29308
29309         * sem_util.adb (Is_Object_Reference): A view conversion denotes an
29310         object.
29311
29312 2004-03-22  GNAT Script  <nobody@gnat.com>
29313
29314         * Make-lang.in: Makefile automatically updated
29315
29316 2004-03-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
29317
29318         * decl.c (gnat_to_gnu_entity): Use SUBSTITUTE_PLACEHOLDER_IN_EXPR.
29319         * trans.c (tree_transform, emit_index_check): Likewise.
29320         * utils.c (build_template): Likewise.
29321         (max_size, convert): Remove handling of WITH_RECORD_EXPR.
29322         (maybe_unconstrained_array, unchecked_convert): Likewise.
29323         * utils2.c (gnat_truthvalue_conversion, build_binary_op): Likewise.
29324         (build_unary_op): Likewise.
29325         (compare_arrays, build_allocator): Use SUBSTITUTE_PLACEHOLDER_IN_EXPR.
29326         (fill_vms_descriptor): Likewise.
29327         (build_call_alloc_dealloc): Likewise.
29328         ALIGN is unsigned.
29329         * gigi.h (build_call_alloc_dealloc): Alignment is unsigned.
29330
29331 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
29332
29333         PR other/14630
29334         * gnat_ug.texi: Add info directory category and entry.
29335         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
29336         gnat_ug_wnt.texi: Regenerate.
29337
29338 2004-03-19  Arnaud Charlet  <charlet@act-europe.fr>
29339
29340         * ada-tree.h: Update copyright notice.
29341         Minor reformatting.
29342
29343 2004-03-19  Olivier Hainque  <hainque@act-europe.fr>
29344
29345         * decl.c (gnat_to_gnu_entity, case E_Exception): Handle VMS exceptions
29346         as regular exception objects and not as mere integers representing the
29347         condition code.  The latter approach required some dynamics to mask off
29348         severity bits, which did not fit well into the GCC table based model.
29349         (gnat_to_gnu_entity, objects): Don't supply an external name for VMS
29350         exception data objects. We don't it and it would conflict with the other
29351         external symbol we have to generate for such exceptions.
29352
29353         * trans.c (tree_transform, case N_Exception_Handler): Remove part of
29354         the special code for VMS exceptions, since these are now represented
29355         as regular exceptions objects.
29356
29357 2004-03-19 Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
29358
29359         * decl.c (debug_no_type_hash): Remove.
29360         (gnat_to_gnu_entity, case E_Array_Type): Don't set and clear it.
29361         * misc.c (LANG_HOOK_HASH_TYPE): Redefine.
29362
29363 2004-03-19  Laurent Guerby  <laurent@guerby.net>
29364
29365         * sem_prag.adb (Suppress_Unsuppress_Echeck): use loop instead of
29366         aggregate, allows bootstrap from 3.3 on powerpc-darwin.
29367
29368 2004-03-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
29369
29370         * ada-tree.h (TYPE_LEFT_JUSTIFIED_MODULAR_P): Add checking.
29371         (TYPE_CONTAINS_TEMPLATE_P, TYPE_OBJECT_RECORD_TYPE): Likewise.
29372         (TYPE_RM_SIZE_INT): Directly use type.values.
29373         (TREE_LOOP_ID): Clean up check.
29374         * decl.c (gnat_to_gnu_entity, case E_Enumeration_Type): Use
29375         TYPE_VALUES, not TYPE_FIELDS.
29376         * trans.c (convert_with_check): Delay access of bounds of basetype
29377         until sure is numeric.
29378
29379 2004-03-18  Arnaud Charlet  <charlet@act-europe.fr>
29380
29381         * 5atpopsp.adb: Remove RTEMS from list of platforms using this file.
29382
29383         Code clean up:
29384         * 5ataprop.adb, 5ftaprop.adb, 5htaprop.adb, 5itaprop.adb, 5staprop.adb,
29385         5vtaprop.adb, 5wtaprop.adb, 7staprop.adb (Finalize_TCB): Use
29386         Specific.Set instead of direct call to e.g pthread_setspecific.
29387
29388 2004-03-18  Thomas Quinot  <quinot@act-europe.fr>
29389
29390         * adaint.c: Update comments.
29391
29392         * Makefile.in: set PREFIX_OBJS, SYMLIB, THREADSLIB, and
29393         GNATLIB_SHARED for FreeBSD.
29394
29395 2004-03-18  Jose Ruiz  <ruiz@act-europe.fr>
29396
29397         * init.c [VxWorks]: Do not fix the stack size for the environment task.
29398         When needed (stack checking) the stack size is retrieved
29399         from the VxWorks kernel.
29400
29401         * Makefile.in: Flag -nostdinc is required when building the run time
29402         for avoiding looking for files in the base compiler.
29403         Add the VxWorks specific version of the package body for
29404         System.Stack_checking.Operations (5zstchop.adb).
29405
29406         * Make-lang.in: Add the object file for
29407         System.Stack_Checking.Operations.
29408
29409         * Makefile.rtl: Add object file for the package
29410         System.Stack_Checking.Operations.
29411
29412         * s-stchop.ads, s-stchop.adb, 5zstchop.adb: New files.
29413
29414         * s-stache.ads, s-stache.adb: Move the operations related to stack
29415         checking from this package to package System.Stack_Checking.Operations.
29416         This way, stack checking operations are only linked in the final
29417         executable when using the -fstack-check flag.
29418
29419 2004-03-18  Doug Rupp  <rupp@gnat.com>
29420
29421         * Makefile.in [VMS]: Handle 64 bit specs (5qsystem.ads, 5xcrtl.ads).
29422         Reorganize ifeq's.
29423
29424         * 5qsystem.ads, 5xcrtl.ads: New files.
29425
29426 2004-03-18  Vincent Celier  <celier@gnat.com>
29427
29428         * prj.adb (Reset): Reset hash table Files_Htable
29429
29430         * prj-env.adb (Source_Paths, Object_Paths): New tables.
29431         (Add_To_Source_Path, Add_To_Object_Path): New procedures, to replace
29432         the procedures Add_To_Path_File.
29433         (Set_Ada_Paths): Accumulate source and object dirs in the tables,
29434         making sure that each directory is present only once and, for object
29435         dirs, when a directory already present is added, the duplicate is
29436         removed and the directory is always put as the last in the table.
29437         Write the path files at the end of these accumulations.
29438
29439         * prj-nmsc.adb (Record_Source): Add source file name in hash table
29440         Files_Htable for all sources.
29441
29442         * prj-proc.adb (Process): Remove restrictions between not directly
29443         related extending projects.
29444
29445 2004-03-18  Emmanuel Briot  <briot@act-europe.fr>
29446
29447         * prj-nmsc.ads, prj-nmsc.adb (Ada_Check): New parameter Trusted_Mode.
29448         (Find_Sources): Minor speed optimization.
29449
29450         * prj-proc.ads, prj-proc.adb (Check, Recursive_Check, Process): New
29451         parameter Trusted_Mode.
29452
29453 2004-03-18  Sergey Rybin  <rybin@act-europe.fr>
29454
29455         * scn.adb (Determine_License): Take into account a degenerated case
29456         when the source contains only comments.
29457
29458 2004-03-18  Ed Schonberg  <schonberg@gnat.com>
29459
29460         * sem_warn.adb (Check_References): For a warning on a selected
29461         component that does not come from source, locate an uninitialized
29462         component of the record type to produce a more precise error message.
29463
29464 2004-03-15  Jerome Guitton  <guitton@act-europe.fr>
29465
29466         * 3zsoccon.ads: Fix multicast options.
29467
29468         * s-thread.ads: Move unchecked conversion from ATSD_Access to Address
29469         in the spec.
29470
29471 2004-03-15  Robert Dewar  <dewar@gnat.com>
29472
29473         * sem_prag.adb: Make sure No_Strict_Aliasing flag is set right when
29474         pragma used for a private type.
29475
29476         * lib-xref.adb (Generate_Reference): Do not generate warning if
29477         reference is in a different unit from the pragma Unreferenced.
29478
29479         * 5vtpopde.adb: Minor reformatting
29480         Fix casing of To_Task_ID
29481
29482         * sem_ch13.adb (Validate_Unchecked_Conversion): Set No_Strict_Aliasing
29483         flag if we have an unchecked conversion to an access type in the same
29484         unit.
29485
29486 2004-03-15  Geert Bosch  <bosch@gnat.com>
29487
29488         * a-ngcoty.adb (Modulus): In alternate formula for large real or
29489         imaginary parts, use Double precision throughout.
29490
29491         * a-tifiio.adb (Put_Scaled): Remove remaining pragma Debug. Not only
29492         we want to be able to compile run-time with -gnata for testing, but
29493         this may also be instantiated in user code that is compiled with -gnata.
29494
29495 2004-03-15  Olivier Hainque  <hainque@act-europe.fr>
29496
29497         * s-stalib.ads (Exception_Code): New type, to represent Import/Export
29498         codes. Having a separate type for this is useful to enforce consistency
29499         throughout the various run-time units.
29500         (Exception_Data): Use Exception_Code for Import_Code.
29501
29502         * s-vmextra.ads, s-vmexta.adb: Use Exception_Code instead of a mix of
29503         Natural and Integer in various places.
29504         (Register_VMS_Exception): Use Base_Code_In to compute the exception code
29505         with the severity bits masked off.
29506         (Register_VMS_Exception): Handle the additional exception data pointer
29507         argument.
29508
29509         * raise.c (_GNAT_Exception structure): Remove the handled_by_others
29510         component, now reflected by an exported accessor.
29511         (is_handled_by): New routine to compute whether the propagated
29512         occurrence matches some handler choice specification. Extracted out of
29513         get_action_description_for, and expanded to take care of the VMS
29514         specifities.
29515         (get_action_description_for): Use is_handled_by instead of an explicit
29516         complex condition to decide if the current choice at hand catches the
29517         propagated occurrence.
29518
29519         * raise.h (Exception_Code): New type for C.
29520
29521         * rtsfind.ads (RE_Id, RE_Unit_Table): Add
29522         System.Standard_Library.Exception_Code, to allow references from the
29523         pragma import/export expander.
29524
29525         * a-exexpr.adb (Is_Handled_By_Others, Language_For, Import_Code_For):
29526         New accessors to allow easy access to GNAT exception data
29527         characteristics.
29528         (GNAT_GCC_Exception record, Propagate_Exception): Get rid of the
29529         redundant Handled_By_Others component, helper for the personality
29530         routine which will now be able to call the appropriate exception data
29531         accessor instead.
29532
29533         * cstand.adb (Create_Standard): Adjust the type of the Import_Code
29534         component of Standard_Exception_Type to be the closest possible to
29535         Exception_Code in System.Standard_Library, that we cannot get at this
29536         point. Expand a ??? comment to notify that this type node should
29537         probably be rewritten later on.
29538
29539         * exp_prag.adb (Expand_Pragma_Import_Export_Exception): Adjust the
29540         registration call to include a pointer to the exception object in the
29541         arguments.
29542
29543         * init.c (__gnat_error_handler): Use Exception_Code and Base_Code_In
29544         instead of int and explicit bitmasks.
29545
29546 2004-03-15  Vincent Celier  <celier@gnat.com>
29547
29548         * vms_data.ads: Add new GNAT BIND qualifier /STATIC. Makes /NOSHARED
29549         equivalent to /STATIC and /NOSTATIC equivalent to /SHARED.
29550
29551         * a-tasatt.adb (To_Access_Code): Remove this UC instantiation, no
29552         longer needed now that it is in the spec of
29553         System.Tasking.Task_Attributes.
29554
29555         * adaint.h, adaint.c: (__gnat_create_output_file): New function
29556
29557         * gnatcmd.adb: Fix bug introduced in previous rev: /= instead of =
29558
29559         * g-os_lib.ads, g-os_lib.adb (Create_Output_Text_File): New function.
29560
29561         * make.adb (Gnatmake): Do not check the executable suffix; it is being
29562         taken care of in Scan_Make_Arg.
29563         (Scan_Make_Arg): Add the executable suffix only if the argument
29564         following -o, in canonical case, does not end with the executable
29565         suffix.  When in verbose mode and executable file name does not end
29566         with executable suffix, output the executable name, in canonical case.
29567
29568         * s-tataat.ads (Access_Dummy_Wrapper): Add pragma No_Strict_Aliasing
29569         to avoid warnings when instantiating Ada.Task_Attributes.
29570         Minor reformating.
29571
29572         * mlib-prj.adb (Process_Imported_Libraries): Get the imported libraries
29573         in the correct order.
29574
29575         * prj-makr.adb (Process_Directory): No longer use GNAT.Expect, but
29576         redirect standard output and error to a file for the invocation of the
29577         compiler, then read the file.
29578
29579         * prj-nmsc.adb (Find_Sources): Use the Display_Value for each
29580         directory, instead of the Value.
29581         (Find_Source_Dirs): Remove useless code & comments.
29582
29583 2004-03-15  Ed Schonberg  <schonberg@gnat.com>
29584
29585         * exp_ch3.adb (Freeze_Record_Type): If a primitive operation of a
29586         tagged type is inherited, and the parent operation is not frozen yet,
29587         force generation of a freeze node for the inherited operation, so the
29588         corresponding dispatch entry is properly initialized.
29589         (Make_Predefined_Primitive_Specs): Check that return type is Boolean
29590         when looking for user-defined equality operation.
29591
29592         * exp_ch4.adb (Expand_Composite_Equality): Check that return type is
29593         boolean when locating primitive equality of tagged component.
29594
29595         * exp_ch5.adb (Expand_Assign_Array): If the left-hand side is a
29596         bit-aligned field and the right-hand side a string literal, introduce
29597         a temporary before expanding assignment into a loop.
29598
29599         * exp_ch9.adb (Expand_N_Task_Type_Declaration): Copy expression for
29600         priority in full, to ensure that any expanded subepxressions of it are
29601         elaborated in the scope of the init_proc.
29602
29603         * exp_prag.adb (Expand_Pragma_Import): Search for initialization call
29604         after object declaration, skipping over code that may have been
29605         generated for validity checks.
29606
29607         * sem_ch12.adb (Validate_Private_Type_Instance): If type has unknown
29608         discriminants, ignore the known discriminants of its full view, if
29609         any, to check legality.
29610
29611         * sem_ch3.adb (Complete_Private_Subtype): Do not create constrained
29612         component if type has unknown discriminants.
29613         (Analyze_Private_Extension_Declaration): Discriminant constraint is
29614         null if type has unknown discriminants.
29615
29616         * sem_ch6.adb (Analyze_Generic_Subprogram_Body): Generate reference
29617         for end label when present.
29618
29619         * s-fileio.adb (Open): When called with a C_Stream, use given name for
29620         temporary file, rather than an empty string.
29621
29622 2004-03-15  Ed Falis  <falis@gnat.com>
29623
29624         * s-thread.adb: Removed, no longer used.
29625
29626 2004-03-15  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
29627
29628         * decl.c (target.h): Now include.
29629         (gnat_to_gnu_entity, case E_Access_Type): Use mode derived from ESIZE
29630         in new build_pointer_from_mode calls for non-fat/non-thin pointer.
29631         (validate_size): For POINTER_TYPE, get smallest size permitted on
29632         machine.
29633
29634         * fe.h: Sort Einfo decls and add Set_Mechanism.
29635
29636         * Makefile.in: (LIBGNAT_SRCS): Remove types.h.
29637         (ada/decl.o): Depends on target.h.
29638
29639         * trans.c (tree_transform, N_Unchecked_Type_Conversion): Do not use
29640         FUNCTION_BOUNDARY; always use TYPE_ALIGN.
29641
29642 2004-03-15  Thomas Quinot  <quinot@act-europe.fr>
29643
29644         * 5ztpopsp.adb, 56tpopsp.adb: Fix spelling of Task_ID.
29645
29646         * exp_ch4.adb (Expand_N_Indexed_Component): Do not call
29647         Insert_Dereference_Action when rewriting an implicit dereference into
29648         an explicit one, this will be taken care of during expansion of the
29649         explicit dereference.
29650         (Expand_N_Slice): Same. Always do the rewriting, even for the case
29651         of non-packed slices, since the dereference action generated by
29652         expansion of the explicit dereference is needed in any case.
29653         (Expand_N_Selected_Component): When rewriting an implicit dereference,
29654         analyze and resolve the rewritten explicit dereference so it is seen
29655         by the expander.
29656         (Insert_Dereference_Action): This procedure is now called only for the
29657         expansion of an N_Explcit_Dereference_Node. Do insert a check even for
29658         dereferences that do not come from source (including explicit
29659         dereferences resulting from rewriting implicit ones), but do not
29660         recursively insert a check for the dereference nodes contained within
29661         the check.
29662         (Insert_Dereference_Action): Clarify and correct comment.
29663
29664 2004-03-08  Paolo Bonzini  <bonzini@gnu.org>
29665
29666         PR ada/14131
29667         Move language detection to the top level.
29668         * config-lang.in: Build by default.
29669
29670 2004-03-05  Robert Dewar  <dewar@gnat.com>
29671
29672         * 56taprop.adb, 5ataprop.adb: Remove unneeded unchecked conversions
29673
29674         * a-tags.adb, a-tags.ads, s-finimp.adb, s-finroo.ads,
29675         i-cpoint.ads, i-cpoint.adb, i-cstrin.adb, i-cstrin.ads,
29676         5iosinte.ads, 5sosinte.ads, 5staspri.ads, 5itaprop.adb,
29677         5staprop.adb, 5wtaprop.adb, s-tataat.ads, s-tataat.adb: Move
29678         unchecked conversion to spec to avoid warnings.
29679
29680         * s-tasini.adb, s-taskin.ads, 5atpopsp.adb: Correct spelling Task_Id
29681         to Task_ID
29682
29683         * 7stpopsp.adb: Correct casing in To_Task_ID call
29684
29685         * a-strsea.ads, a-strsea.adb: Minor reformatting
29686
29687         * einfo.ads, einfo.adb: Define new flag No_Strict_Aliasing
29688
29689         * errout.ads: Switch for VMS is now NO_STRICT_ALIASING.
29690         Adjust Max_Msg_Length to be clearly large enough.
29691
29692         * fe.h: Define In_Same_Source_Unit
29693
29694         * osint.adb: Add pragma Warnings Off to suppress warnings
29695         * g-dyntab.adb, g-table.adb, g-thread.adb: Add Warnings (Off) to kill
29696         aliasing warnings.
29697
29698         * opt.ads: Put entries in alpha order. Add entry for No_Strict_Aliasing
29699
29700         * par-prag.adb: Add dummy entry for No_Strict_Aliasing pragma
29701
29702         * sem_ch13.adb: Generate validate unchecked conversion nodes for gcc.
29703
29704         * sem_ch3.adb: Set No_Strict_Aliasing flag if config pragma set.
29705
29706         * sem_prag.adb: Implement pragma No_Strict_Aliasing.
29707
29708         * sinfo.ads: Remove obsolete comment on validate unchecked conversion
29709         node. We now do generate them for gcc back end.
29710
29711         * table.adb, sinput.adb: Add pragma Warnings Off to suppress aliasing
29712         warning.
29713
29714         * sinput-c.adb: Fix bad name in header.
29715         Add pragma Warnings Off to suppress aliasing warning.
29716
29717         * sinput-l.adb: Add pragma Warnings Off to suppress aliasing warning.
29718
29719         * snames.h, snames.ads, snames.adb: Add entry for pragma
29720         No_Strict_Aliasing.
29721
29722 2004-03-05  Vincent Celier  <celier@gnat.com>
29723
29724         * prj-com.ads: Add hash table Files_Htable to check when a file name
29725         is already a source of another project.
29726
29727         * prj-nmsc.adb (Record_Source): Before recording a new source, check
29728         if its file name is not already a source of another project. Report an
29729         error if it is.
29730
29731         * gnatcmd.adb: When GNAT PRETTY is invoked with a project file and no
29732         source file name, call gnatpp with all the sources of the main project.
29733
29734         * vms_conv.adb (Initialize): GNAT PRETTY may be called with any number
29735         of file names.
29736
29737         * vms_data.ads: Correct documentation of new /OPTIMIZE keyword
29738         NO_STRICT_ALIASING. Add new qualifier for GNAT PRETTY:
29739         /RUNTIME_SYSTEM=, converted to --RTS=
29740         /NOTABS, converted to -notabs
29741
29742 2004-03-05  Pascal Obry  <obry@gnat.com>
29743
29744         * make.adb: Minor reformatting.
29745
29746 2004-03-05  Ed Schonberg  <schonberg@gnat.com>
29747
29748         Part of implemention of AI-262.
29749         * par-ch10.adb (P_Context_Clause): Recognize private with_clauses.
29750
29751         * sem_ch10.ads, sem_ch10.adb: (Install_Private_With_Clauses): New
29752         procedure.
29753
29754         * sem_ch3.adb (Analyze_Component_Declaration): Improve error message
29755         when component type is a partially constrained class-wide subtype.
29756         (Constrain_Discriminated_Type): If parent type has unknown
29757         discriminants, a constraint is illegal, even if full view has
29758         discriminants.
29759         (Build_Derived_Record_Type): Inherit discriminants when deriving a type
29760         with unknown discriminants whose full view is a discriminated record.
29761
29762         * sem_ch7.adb (Preserve_Full_Attributes): Preserve Has_Discriminants
29763         flag, to handle properly derivations of tagged types with unknown
29764         discriminants.
29765         (Analyze_Package_Spec, Analyze_Package_Body): Install
29766         Private_With_Clauses before analyzing private part or body.
29767
29768         * einfo.ads: Indicate that both Has_Unknown_Discriminants and
29769         Has_Discriminants can be true for a given type (documentation).
29770
29771 2004-03-05  Arnaud Charlet  <charlet@act-europe.fr>
29772
29773         * s-restri.ads: Fix license (GPL->GMGPL).
29774
29775         * s-tassta.adb: Minor reformatting.
29776
29777         * s-tasren.adb: Replace manual handling of Self_Id.ATC_Nesting_Level
29778         by calls to Exit_One_ATC_Level, since additional clean up is performed
29779         by this function.
29780
29781         * s-tpobop.adb: Replace manual handling of Self_Id.ATC_Nesting_Level
29782         by calls to Exit_One_ATC_Level, since additional clean up is performed
29783         by this function.
29784
29785 2004-03-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
29786
29787         * trans.c: Reflect GCC changes to fix bootstrap problem.
29788         Add warning for suspicious aliasing unchecked conversion.
29789
29790 2004-03-05  GNAT Script  <nobody@gnat.com>
29791
29792         * Make-lang.in: Makefile automatically updated
29793
29794 2004-03-02  Emmanuel Briot  <briot@act-europe.fr>
29795
29796         * ali.adb (Read_Instantiation_Instance): Do not modify the
29797         current_file_num when reading information about instantiations, since
29798         this corrupts files in later references.
29799
29800 2004-03-02  Vincent Celier  <celier@gnat.com>
29801
29802         * bcheck.adb (Check_Consistency): Get the full path of an ALI file
29803         before checking if it is read-only.
29804
29805         * bld.adb (Recursive_Process): Concatenate <PROJECT>.src_dirs in front
29806         of SRC_DIRS and eliminate duplicates.
29807
29808         * gprcmd.adb: Replace command "path" with command "path_sep" to return
29809         the path separator.
29810         (Usage): Document path_sep
29811
29812         * Makefile.generic: For Ada and GNU C++ cases, link directly with the
29813         C++ compiler. No need for a script.
29814         Replace use of C*_INCLUDE_PATH env var for GCC compilers with CPATH.
29815         Do not call gprcmd to build the C*_INCLUDE_PATHs, do it with function
29816         subst.
29817
29818         * prj-env.adb (For_All_Source_Dirs): Only add source dirs in project
29819         where there are Ada sources.
29820         (Set_Ada_Paths): Only add to the include path the source dirs of project
29821         with Ada sources.
29822         (Add_To_Path): Add the Display_Values of the directories, not their
29823         Values.
29824
29825         * prj-nmsc.adb (Find_Sources): Set flag Sources_Present in the project
29826         data.
29827
29828         * prj-nmsc.adb (Add_ALI_For): Make sure that the element Display_Value
29829         is not No_Name.
29830         (Find_Source_Dirs): Set Display_Value to a non canonicalized value, only
29831         Value is canonicalized.
29832         (Language_Independent_Check): Do not copy Value to Display_Value when
29833         canonicalizing Value.
29834
29835         * prj-part.adb (Post_Parse_Context_Clause): Compare canonical cased
29836         path to find limited with cycles.
29837         (Parse_Single_Project): Use canonical cased path to find the end of a
29838         with cycle.
29839
29840 2004-03-02  Ed Schonberg  <schonberg@gnat.com>
29841
29842         * sem_ch10.adb (Optional_Subunit): Verify that unit contains a subunit
29843         and not a child unit.
29844
29845         * sinfo.ads, sinfo.adb: Rearrange flags so that Private_Present can
29846         appear in a with_clause.
29847
29848         * decl.c (gnat_to_gnu_type): If entity is a generic type, which can
29849         only happen in type_annotate mode, do not try to elaborate it.
29850
29851         * exp_util.adb (Force_Evaluation): If expression is a selected
29852         component on the left of an assignment, use a renaming rather than a
29853         temporary to remove side effects.
29854
29855         * freeze.adb (Freeze_Entity): Do not freeze a global entity within an
29856         inlined instance body, which is analyzed before the end of the
29857         enclosing scope.
29858
29859 2004-03-02  Robert Dewar  <dewar@gnat.com>
29860
29861         * par-ch10.adb, par-ch3.adb, par-ch4.adb, scng.adb,
29862         sem_ch4.adb: Use new feature for substitution of keywords in VMS
29863
29864         * errout.ads, errout.adb: Implement new circuit for substitution of
29865         keywords in VMS.
29866
29867         * sem_case.adb (Analyze_Choices): Place message properly when case is
29868         a subtype reference rather than an explicit range.
29869
29870         * sem_elim.adb, s-tpobop.ads, exp_ch2.adb: Minor reformatting
29871
29872 2004-03-02  Doug Rupp  <rupp@gnat.com>
29873
29874         * init.c (__gnat_initialize)[VMS]: Resignal RDB-E-STREAM_EOF.
29875
29876 2004-03-02  Thomas Quinot  <quinot@act-europe.fr>
29877
29878         * s-tporft.adb: Add missing locking around call to Initialize_ATCB.
29879
29880 2004-03-02  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
29881
29882         * utils.c (finish_record_type): Do not set DECL_NONADDRESSABLE for a
29883         BLKmode bitfield.
29884
29885 2004-02-25  Robert Dewar  <dewar@gnat.com>
29886
29887         * 51osinte.ads, 52osinte.ads, 53osinte.ads, 54osinte.ads,
29888         55osinte.ads, 56osinte.ads, 5aosinte.ads, 5bosinte.ads,
29889         5cosinte.ads, 5fosinte.ads, 5gosinte.ads, 5hosinte.ads,
29890         5iosinte.ads, 5losinte.ads, 5nosinte.ads, 5oosinte.ads,
29891         5posinte.ads, 5sosinte.ads, 5tosinte.ads, 5vosinte.ads,
29892         5wosinte.ads, 5zosinte.ads: Move instances of Unchecked_Conversion to
29893         the defining instance of the type to avoid aliasing problems.
29894         Fix copyright header.  Fix bad comments in package header.
29895
29896         * exp_util.adb, prj-part.adb, prj-part.adb: Minor reformatting
29897
29898 2004-02-25  Ed Schonberg  <schonberg@gnat.com>
29899
29900         * exp_ch2.adb (Param_Entity): Handle properly formals that have been
29901         rewritten as references when aliased through an address clause.
29902
29903         * sem_ch4.adb (Try_Indirect_Call): Normalize actuals before checking
29904         whether call can be interpreted as an indirect call to the result of a
29905         parameterless function call returning an access subprogram.
29906
29907 2004-02-25  Arnaud Charlet  <charlet@act-europe.fr>
29908
29909         Code clean up:
29910         * exp_ch7.adb (Make_Clean): Remove generation of calls to
29911         Unlock[_Entries], since this is now done by Service_Entries directly.
29912
29913         * exp_ch9.adb (Build_Protected_Subprogram_Body): ditto.
29914
29915         * s-tpobop.ads, s-tpobop.adb (PO_Service_Entries): New nested procedure
29916         Requeue_Call for better code readability. Change spec and update calls:
29917         PO_Service_Entries now unlock the PO on exit.
29918         (Protected_Entry_Call, Timed_Protected_Entry_Call): Update calls to
29919         PO_Service_Entries.
29920
29921         * s-tposen.ads, s-tposen.adb (Service_Entry): Now unlock the PO on exit.
29922
29923         * s-taenca.adb, s-tasren.adb: Update calls to PO_Service_Entries.
29924
29925 2004-02-25  Sergey Rybin  <rybin@act-europe.fr>
29926
29927         * exp_ch9.adb (Build_Simple_Entry_Call): Prevent expanding the
29928         protected subprogram call and analyzing the result of such expanding
29929         in case when the called protected subprogram is eliminated.
29930
29931         * sem_elim.adb (Check_Eliminated): Skip blocks when comparing scope
29932         names.
29933
29934 2004-02-25  Jerome Guitton  <guitton@act-europe.fr>
29935
29936         * Makefile.in: Clean ups.
29937
29938 2004-02-23  Ed Schonberg  <schonberg@gnat.com>
29939
29940         * exp_ch6.adb (Expand_N_Subprogram_Declaration): Do not create
29941         protected operations if original subprogram is flagged as eliminated.
29942         (Expand_N_Subprogram_Body): For a protected operation, create
29943         discriminals for next operation before checking whether the operation
29944         is eliminated.
29945
29946         * exp_ch9.adb (Expand_N_Protected_Body,
29947         Expand_N_Protected_Type_Declaration): Do not generate specs and bodies
29948         for internal protected operations if the original subprogram is
29949         eliminated.
29950
29951         * sem_elim.adb (Check_Eliminated): Handle properly protected operations
29952         declared in a single protected object.
29953
29954 2004-02-23  Vincent Celier  <celier@gnat.com>
29955
29956         * prj-attr.adb: Make attribute Builder'Executable an associative array,
29957         case insensitive if file names are case insensitive, instead of a
29958         standard associative array.
29959
29960         * prj-attr.adb (Initialize): For 'b' associative arrays, do not set
29961         them as case insensitive on platforms where the file names are case
29962         sensitive.
29963
29964         * prj-part.adb (Parse_Single_Project): Make sure, when checking if
29965         project file has already been parsed that canonical path are compared.
29966
29967 2004-02-23  Robert Dewar  <dewar@gnat.com>
29968
29969         * sinput-c.ads: Correct bad unit title in header
29970
29971         * freeze.adb: Minor reformatting
29972
29973 2004-02-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
29974
29975         * trans.c (tree_transform, case N_Procedure_Call_Statement): For
29976         nonaddressable COMPONENT_REF that is removing padding that we are
29977         taking the address of, take the address of the padded record instead
29978         if item is variable size.
29979
29980 2004-02-20  Robert Dewar  <dewar@gnat.com>
29981
29982         * bld.adb, exp_util.adb, gprcmd.adb: Minor reformatting
29983
29984 2004-02-20  Ed Schonberg  <schonberg@gnat.com>
29985
29986         * freeze.adb (Freeze_Record_Type): Generalize mechanism that generates
29987         itype references for the constrained designated type of a component
29988         whose base type is already frozen.
29989
29990 2004-02-20  Arnaud Charlet  <charlet@act-europe.fr>
29991
29992         * init.c (__gnat_error_handler [tru64]): Rewrite previous change to
29993         avoid GCC warnings.
29994
29995 2004-02-20  Sergey Rybin  <rybin@act-europe.fr>
29996
29997         * sem_ch12.adb (Analyze_Formal_Package): Create a new defining
29998         identifier for a phantom package that rewrites the formal package
29999         declaration with a box. The Add semantic decorations for the defining
30000         identifier from the original node (that represents the formal package).
30001
30002 2004-02-19  Matt Kraai  <kraai@alumni.cmu.edu>
30003
30004         * Make-lang.in (ada/stamp-sdefault): Use the top level
30005         move-if-change.
30006
30007 2004-02-19  Richard Henderson  <rth@redhat.com>
30008
30009         * misc.c (record_code_position): Add third build arg for RTL_EXPR.
30010
30011 2004-02-18  Emmanuel Briot  <briot@act-europe.fr>
30012
30013         * ali.ads, ali.adb (First_Sdep_Entry): No longer a constant, so that
30014         Scan_ALI can be used for multiple ALI files without reinitializing
30015         between calls.
30016
30017 2004-02-18  Robert Dewar  <dewar@gnat.com>
30018
30019         * debug.adb: Minor reformatting.
30020
30021 2004-02-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
30022
30023         * decl.c (gnat_to_gnu_entity, case object): Set DECL_POINTER_ALIAS_SET
30024         to zero if there is an address clause.
30025
30026 2004-02-18  Thomas Quinot  <quinot@act-europe.fr>
30027
30028         * exp_util.adb (Side_Effect_Free): Any literal is side effects free.
30029
30030 2004-02-18  Gary Dismukes  <dismukes@gnat.com>
30031
30032         * layout.adb (Layout_Component_List): Revise generation of call to
30033         discriminant-checking function to pass selections of all of the type's
30034         discriminants rather than just the variant-controlling discriminant.
30035
30036 2004-02-18  Olivier Hainque  <hainque@act-europe.fr>
30037
30038         * 5gmastop.adb (Pop_Frame): Do not call exc_unwind, which is bound to
30039         fail in the current setup and triggers spurious system error messages.
30040         Pretend it occurred and failed instead.
30041
30042 2004-02-18  Vincent Celier  <celier@gnat.com>
30043
30044         * bld.adb: Mark FLDFLAGS as saved
30045         (Process_Declarative_Items): Add Linker'Linker_Options to FLDFLAGS when
30046         it is not the root project.  Put each directory to be
30047         extended between double quotes to prevent it to be expanded on Windows.
30048         (Recursive_Process): Reset CFLAGS/CXXFLAGS to nothing before processing
30049         the project file. Set them back to their initial values if they have not
30050         been set in the project file.
30051
30052         * gprcmd.adb: (Gprdebug, Debug): New global variables
30053         (Display_Command): New procedure
30054         (Usage): Document new command "linkopts"
30055         Call Display_Command when env var GPRDEBUG has the value "TRUE"
30056         Implement new command "linkopts"
30057         Remove quotes that may be around arguments for "extend"
30058         Always call Normalize_Pathname with arguments formatted for the platform
30059
30060         * Makefile.generic: Link C/C++ mains with $(FLDFLAGS)
30061         Change @echo to @$(display) in target clean to be able to clean silently
30062
30063         * Makefile.prolog: Save FLDFLAGS and give it an initial empty value
30064
30065         * prj-part.adb (Project_Path_Name_Of): Do not put final result in
30066         canonical case.
30067
30068         * prj-part.adb (Parse_Single_Project): Always call with From_Extended
30069         = Extending_All when current project is an extending all project.
30070
30071         * vms_conv.adb (Output_File_Expected): New Boolean global variable,
30072         set to True only for LINK command, after Unix switch -o.
30073         (Process_Arguments): Set Output_File_Expected to True for LINK command
30074         after Unix switch -o. When Output_File_Expected is True, never add an
30075         extension to a file name.
30076
30077         * 5vml-tgt.adb (Build_Dynamic_Library): Do not append "/OPTIONS" to the
30078         option file name, only to the --for-linker= switch.
30079         (Option_File_Name): If option file name do not end with ".opt", append
30080         "/OPTIONS".
30081
30082 2004-02-18  GNAT Script  <nobody@gnat.com>
30083
30084         * Make-lang.in: Makefile automatically updated
30085
30086 2004-02-17  Matt Kraai  <kraai@alumni.cmu.edu>
30087
30088         * Make-lang.in (stamp-sdefault): Do not depend on
30089         move-if-change.
30090
30091 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
30092
30093         * config-lang.in: Disable Ada by default until probe logic for
30094         a bootstrap Ada compiler can be moved to the top level configure
30095         script.
30096
30097 2004-02-12  Olivier Hainque  <hainque@act-europe.fr>
30098
30099         * decl.c (components_to_record): Don't claim that the internal fields
30100         we make to hold the variant parts are semantically addressable, because
30101         they are not.
30102
30103         * exp_pakd.adb (Create_Packed_Array_Type): Rename Esiz into PASize and
30104         adjust the comment describing the modular type form when we can use it.
30105         (Install_PAT): Account for the Esiz renaming.
30106
30107         * init.c (__gnat_error_handler for alpha-tru64): Arrange to clear the
30108         sc_onstack context indication before raising the exception to which
30109         the signal is mapped. Allows better handling of later signals possibly
30110         triggered by the resumed user code if the exception is handled.
30111
30112 2004-02-12  Arnaud Charlet  <charlet@act-europe.fr>
30113
30114         * 5zinit.adb: Removed, no longer used.
30115
30116 2004-02-12  Robert Dewar  <dewar@gnat.com>
30117
30118         * ali.adb: Remove separating space between parameters on R line. Makes
30119         format consistent with format used by the binder for Set_Globals call.
30120
30121         * atree.ads, atree.adb: Minor reformatting (new function header format)
30122
30123         * bindgen.adb: Add Run-Time Globals documentation section containing
30124         detailed documentation of the globals passed from the binder file to
30125         the run time.
30126
30127         * gnatls.adb: Minor reformatting
30128
30129         * init.c (__gnat_set_globals): Add note pointing to documentation in
30130         bindgen.
30131
30132         * lib-writ.ads, lib-writ.adb: Remove separating space between
30133         parameters on R line.
30134         Makes format consistent with format used by the binder for Set_Globals
30135         call.
30136
30137         * osint.ads: Add 2004 to copyright notice
30138         Minor reformatting
30139
30140         * snames.ads: Correct capitalization of FIFO_Within_Priorities
30141         Noticed during code reading, documentation issue only
30142
30143         * usage.adb: Remove junk line for obsolete C switch
30144         Noticed during code reading
30145
30146 2004-02-12  Vincent Celier  <celier@gnat.com>
30147
30148         * bld.adb (Process_Declarative_Items): For Source_Dirs call gprcmd
30149         extend for each directory, so that multiple /** directories are
30150         extended individually.
30151         (Recursive_Process): Set the default for LANGUAGES to ada
30152
30153         * gprcmd.adb: Define new command "ignore", to do nothing.
30154         Implement new comment "path".
30155
30156         * Makefile.generic: Suppress output when SILENT is set
30157         Make sure that when compiler for C/C++ is gcc, the correct -x switch is
30158         used, so that the correct compiler is invoked.
30159         When compiler is gcc/g++, put search path in env vars C_INCLUDE_PATH/
30160         CXX_INCLUDE_PATH, to avoid failure with too long command lines.
30161
30162 2004-02-12  Jerome Guitton  <guitton@act-europe.fr>
30163
30164         * Makefile.in: Clean ups and remove obsolete targets.
30165
30166 2004-02-12  Ed Schonberg  <schonberg@gnat.com>
30167
30168         * exp_ch5.adb: Remove Possible_Unligned_Slice, in favor of the similar
30169         predicate declared in exp_util.
30170
30171         * exp_util.adb: Add comments.
30172
30173         * sem_ch10.adb (Analyze_Subunit): Remove ultimate parent unit from
30174         visibility before compiling context of the subunit.
30175
30176         * sem_res.adb (Check_Parameterless_Call): If the context expects a
30177         value but the name is a procedure, do not attempt to analyze as a call,
30178         in order to obtain more telling diagnostics.
30179
30180         * sem_util.adb (Wrong_Type): Further enhancement to diagnose missing
30181         'Access on parameterless function calls.
30182         (Normalize_Actuals): For a parameterless function call with missing
30183         actuals, defer diagnostic until resolution of enclosing call.
30184
30185         * sem_util.adb (Wrong_Type): If the context type is an access to
30186         subprogram and the expression is a procedure name, suggest a missing
30187         'attribute.
30188
30189 2004-02-10  Arnaud Charlet  <charlet@act-europe.fr>,
30190             Nathanael Nerode  <neroden@gcc.gnu.org>
30191
30192         PR ada/6637
30193         PR ada/5911
30194         Merge with libada-branch:
30195         * config-lang.in: Build libada only when ada is built.
30196
30197 2004-02-09  Ed Schonberg  <schonberg@gnat.com>
30198
30199         * exp_ch4.adb (Expand_N_Op_Eq): When looking for the primitive equality
30200         for a tagged type, verify that both formals have the same type.
30201
30202         * exp_ch6.adb (Add_Call_By_Copy_Code): Initialize properly the
30203         temporary when the formal is an in-parameter and the actual a possibly
30204         unaligned slice.
30205
30206         * exp_ch9.adb (Expand_Entry_Barrier): Resolve barrier expression even
30207         when expansion is disabled, to ensure proper name capture with
30208         overloaded literals.  Condition can be of any boolean type, resolve
30209         accordingly.
30210
30211         * sem_ch8.adb (Analyze_Subprogram_Renaming): Emit warning if the
30212         renaming is for a formal subprogram with a default operator name, and
30213         there is a usable operator that is visible at the point of
30214         instantiation.
30215
30216 2004-02-09  Robert Dewar  <dewar@gnat.com>
30217
30218         * ali.adb (Scan_Ali) Add Ignore_Errors argument. This is a major
30219         rewrite to ignore errors in ali files, intended to allow tools downward
30220         compatibility with new versions of ali files.
30221
30222         * ali.ads: Add new parameter Ignore_Errors
30223
30224         * bcheck.adb (Check_Consistent_Restrictions): Fix error of sometimes
30225         duplicating the error message giving the file with restrictions.
30226
30227         * debug.adb: Add debug flag I for gnatbind
30228
30229         * errout.adb (Set_Msg_Insertion_Node): Suppress extra quotes around
30230         operators for the case where the operator is a defining operator.
30231
30232         * exp_ch3.adb: Minor reformatting (new function spec format).
30233
30234         * exp_ch4.adb: Add comment for previous change, and make minor
30235         adjustment to loop to always check for improper loop termination.
30236         Minor reformatting throughout (new function spec format).
30237
30238         * gnatbind.adb: Implement -di debug flag for gnatbind
30239
30240         * gnatlink.adb: Call Scan_ALI with Ignore_Errors set to True
30241
30242         * gnatls.adb: Call Scan_ALI with Ignore_Errors set to True
30243
30244         * lib-load.adb: Fix bad assertion.
30245         Found by testing and code reading.
30246         Minor reformatting.
30247
30248         * lib-load.ads: Minor reformatting.
30249
30250         * lib-writ.adb: There is only one R line now.
30251
30252         * lib-writ.ads: Add documentation on making downward compatible changes
30253         to ali files so old tools work with new ali files.
30254         There is only one R line now.
30255         Add documentation on format incompatibilities (with special GPS note)
30256
30257         * namet.ads, namet.adb: (Is_Operator_Name): New procedure
30258
30259         * par-load.adb: Minor reformatting
30260
30261         * sem_ch8.adb: Fix to error message from last update
30262         Minor reformatting and restructuring of code from last update
30263
30264         * par-prag.adb, snames.adb, snames.ads, snames.h,
30265         sem_prag.adb: Implement pragma Profile.
30266
30267         * stylesw.adb: Implement -gnatyN switch to turn off all style check
30268         options.
30269
30270         * usage.adb: Add line for -gnatyN switch
30271
30272         * vms_data.ads: Add entry STYLE_CHECKS=NONE for -gnatyN
30273
30274 2004-02-09  Albert Lee  <lee@gnat.com>
30275
30276         * errno.c: define _SGI_MP_SOURCE for task-safe errno on IRIX
30277
30278 2004-02-09  Ed Schonberg  <schonberg@gnat.com>
30279
30280         * exp_ch3.adb (Build_Slice_Assignment): Handle properly case of null
30281         slices.
30282
30283         * exp_ch6.adb (Expand_Call): Do not inline a call when the subprogram
30284         is nested in an instance that is not frozen yet, to avoid
30285         order-of-elaboration problems in gigi.
30286
30287         * sem_attr.adb (Analyze_Attribute, case 'Access): Within an inlined
30288         body the attribute is legal.
30289
30290 2004-02-09  Robert Dewar  <dewar@gnat.com>
30291
30292         * s-rident.ads: Minor comment correction
30293
30294         * targparm.adb: Remove dependence on uintp completely. There was
30295         always a bug in Make in that it called Targparm before initializing
30296         the Uint package. The old code appeared to get away with this, but
30297         the new code did not! This caused an assertion error in gnatmake.
30298
30299         * targparm.ads: Fix bad comment, restriction pragmas with parameters
30300         are indeed fully supported.
30301
30302 2004-02-06  Alan Modra  <amodra@bigpond.net.au>
30303
30304         * misc.c (default_pass_by_ref): Update INIT_CUMULATIVE_ARGS call.
30305
30306 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
30307
30308         * ada/utils.c (create_param_decl): Replace PROMOTE_PROTOTYPES
30309         with targetm.calls.promote_prototypes.
30310
30311 2004-02-04  Robert Dewar  <dewar@gnat.com>
30312
30313         * 5gtasinf.adb, 5gtasinf.ads, 5gtaprop.adb, ali.adb,
30314         ali.ads, gprcmd.adb: Minor reformatting
30315
30316         * bindgen.adb: Output restrictions string for new style restrictions
30317         handling
30318
30319         * impunit.adb: Add s-rident.ads (System.Rident) and
30320         s-restri (System.Restrictions)
30321
30322         * lib-writ.adb: Fix bug in writing restrictions string (last few
30323         entries wrong)
30324
30325         * s-restri.ads, s-restri.adb: Change name Restrictions to
30326         Run_Time_Restrictions to avoid conflict with package name.
30327         Add circuit to read and acquire run time restrictions.
30328
30329 2004-02-04  Jose Ruiz  <ruiz@act-europe.fr>
30330
30331         * restrict.ads, restrict.adb: Use the new restriction
30332         No_Task_Attributes_Package instead of the old No_Task_Attributes.
30333
30334         * sem_prag.adb: No_Task_Attributes is a synonym of
30335         No_Task_Attributes_Package.
30336
30337         * snames.ads, snames.adb: New entry for proper handling of
30338         No_Task_Attributes.
30339
30340         * s-rident.ads: Adding restriction No_Task_Attributes_Package
30341         (AI-00249) that supersedes the GNAT specific restriction
30342         No_Task_Attributes.
30343
30344 2004-02-04  Ed Schonberg  <schonberg@gnat.com>
30345
30346         * sem_prag.adb:
30347         (Analyze_Pragma, case Warnings): In an inlined body, as in an instance
30348          body, an identifier may be wrapped in an unchecked conversion.
30349
30350 2004-02-04  Vincent Celier  <celier@gnat.com>
30351
30352         * lib-writ.ads: Comment update for the W lines
30353
30354         * bld.adb: (Expression): An empty string list is static
30355
30356         * fname-uf.adb: Minor comment update
30357
30358         * fname-uf.ads: (Get_File_Name): Document new parameter May_Fail
30359
30360         * gnatbind.adb: Initialize Cumulative_Restrictions with the
30361         restrictions on the target.
30362
30363 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
30364
30365         * ada/trans.c (gigi): Use gen_rtx_SYMBOL_REF instead of
30366         gen_rtx.
30367
30368 2004-02-02  Arnaud Charlet  <charlet@gnat.com>
30369
30370         * Makefile.in: Remove setting of THREADSLIB on mips o32, unneeded.
30371
30372 2004-02-02  Vincent Celier  <celier@gnat.com>
30373
30374         * gprcmd.adb (Check_Args): If condition is false, print the invoked
30375         comment before the usage.
30376         Gprcmd: Fail when command is not recognized.
30377         (Usage): Document command "prefix"
30378
30379         * g-md5.adb (Digest): Process last block.
30380         (Update): Do not process last block. Store remaining characters and
30381         length in Context.
30382
30383         * g-md5.ads (Update): Document that several call to update are
30384         equivalent to one call with the concatenated string.
30385         (Context): Add fields to allow new Update behaviour.
30386
30387         * fname-uf.ads/adb (Get_File_Name): New Boolean parameter May_Fail,
30388         defaulted to False.
30389         When May_Fail is True and no existing file can be found, return No_File.
30390
30391         * 6vcstrea.adb: Inlined functions are now wrappers to implementation
30392         functions.
30393
30394         * lib-writ.adb (Write_With_Lines): When body file does not exist, use
30395         spec file name instead on the W line.
30396
30397 2004-02-02  Robert Dewar  <dewar@gnat.com>
30398
30399         * ali.adb: Read and acquire info from new format restrictions lines
30400
30401         * bcheck.adb: Add circuits for checking restrictions with parameters
30402
30403         * bindgen.adb: Output dummy restrictions data
30404         To be changed later
30405
30406         * ali.ads, checks.adb, exp_aggr.adb, exp_attr.adb, exp_ch11.adb,
30407         exp_ch3.adb, exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_util.adb,
30408         freeze.adb, gnat1drv.adb, sem_attr.adb, sem_ch10.adb, sem_ch11.adb,
30409         sem_ch12.adb, targparm.adb, targparm.ads, tbuild.adb, sem_ch2.adb,
30410         sem_elab.adb, sem_res.adb: Minor changes for new restrictions handling.
30411
30412         * exp_ch9.adb (Build_Master_Entity): Cleanup the code (also suppresses
30413         the warning message on access to possibly uninitialized variable S)
30414         Minor changes for new restrictions handling.
30415
30416         * gnatbind.adb: Minor reformatting
30417         Minor changes for new restrictions handling
30418         Move circuit for -r processing here from bcheck (cleaner)
30419
30420         * gnatcmd.adb, gnatlink.adb: Minor reformatting
30421
30422         * lib-writ.adb: Output new format restrictions lines
30423
30424         * lib-writ.ads: Document new R format lines for new restrictions
30425         handling.
30426
30427         * s-restri.ads/adb: New files
30428
30429         * Makefile.rtl: Add entry for s-restri.ads/adb
30430
30431         * par-ch3.adb: Fix bad error messages starting with upper case letter
30432         Minor reformatting
30433
30434         * restrict.adb: Major rewrite throughout for new restrictions handling
30435         Major point is to handle restrictions with parameters
30436
30437         * restrict.ads: Major changes in interface to handle restrictions with
30438         parameters. Also generally simplifies setting of restrictions.
30439
30440         * snames.ads/adb: New entry for proper handling of No_Requeue
30441
30442         * sem_ch3.adb (Count_Tasks): New circuitry for implementing Max_Tasks
30443         restriction counting.
30444         Other minor changes for new restrictions handling
30445
30446         * sem_prag.adb: No_Requeue is a synonym for No_Requeue_Statements.
30447         Restriction_Warnings now allows full parameter notation
30448         Major rewrite of Restrictions for new restrictions handling
30449
30450 2004-02-02  Javier Miranda  <miranda@gnat.com>
30451
30452         * par-ch3.adb (P_Identifier_Declarations): Give support to the Ada 0Y
30453         syntax rule for object renaming declarations.
30454         (P_Array_Type_Definition): Give support for the Ada 0Y syntax rule for
30455         component definitions.
30456
30457         * sem_ch3.adb (Analyze_Component_Declaration): Give support to access
30458         components.
30459         (Array_Type_Declaration): Give support to access components. In addition
30460         it was also modified to reflect the name of the object in anonymous
30461         array types. The old code did not take into account that it is possible
30462         to have an unconstrained anonymous array with an initial value.
30463         (Check_Or_Process_Discriminants): Allow access discriminant in
30464         non-limited types.
30465         (Process_Discriminants): Allow access discriminant in non-limited types
30466         Initialize the new Access_Definition field in N_Object_Renaming_Decl
30467         node.  Change Ada0Y to Ada 0Y in comments
30468
30469         * sem_ch4.adb (Find_Equality_Types): Allow anonymous access types in
30470         equality operators.
30471         Change Ada0Y to Ada 0Y in comments
30472
30473         * sem_ch8.adb (Analyze_Object_Renaming): Give support to access
30474         renamings Change Ada0Y to Ada 0Y in comments
30475
30476         * sem_type.adb (Find_Unique_Type): Give support to the equality
30477         operators for universal access types
30478         Change Ada0Y to Ada 0Y in comments
30479
30480         * sinfo.adb (Access_Definition, Set_Access_Definition): New subprograms
30481
30482         * sinfo.ads (N_Component_Definition): Addition of Access_Definition
30483         field.
30484         (N_Object_Renaming_Declaration): Addition of Access_Definition field
30485         Change Ada0Y to Ada 0Y in comments
30486
30487         * sprint.adb (Sprint_Node_Actual): Give support to the new syntax for
30488         component definition and object renaming nodes
30489         Change Ada0Y to Ada 0Y in comments
30490
30491 2004-02-02  Jose Ruiz  <ruiz@act-europe.fr>
30492
30493         * restrict.adb: Use the new restriction identifier
30494         No_Requeue_Statements instead of the old No_Requeue for defining the
30495         restricted profile.
30496
30497         * sem_ch9.adb (Analyze_Requeue): Check the new restriction
30498         No_Requeue_Statements.
30499
30500         * s-rident.ads: Adding restriction No_Requeue_Statements (AI-00249)
30501         that supersedes the GNAT specific restriction No_Requeue. The later is
30502         kept for backward compatibility.
30503
30504 2004-02-02  Ed Schonberg  <schonberg@gnat.com>
30505
30506         * lib.ads, i-cobol.ads, * s-stoele.ads, s-thread.ads, style.ads,
30507         5staprop.adb, atree.adb, atree.ads, g-crc32.ads: Remove redundant
30508         pragma and fix incorrect ones.
30509
30510         * sem_prag.adb For pragma Inline and pragma Pure_Function, emit a
30511         warning if the pragma is redundant.
30512
30513 2004-02-02  Thomas Quinot  <quinot@act-europe.fr>
30514
30515         * 5staprop.adb: Add missing 'constant' keywords.
30516
30517         * Makefile.in: use consistent value for SYMLIB on
30518         platforms where libaddr2line is supported.
30519
30520 2004-02-02  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
30521
30522         * utils.c (end_subprog_body): Do not call rest_of_compilation if just
30523         annotating types.
30524
30525 2004-02-02  Olivier Hainque  <hainque@act-europe.fr>
30526
30527         * init.c (__gnat_install_handler): Setup an alternate stack for signal
30528         handlers in the environment thread. This allows proper propagation of
30529         an exception on stack overflows in this thread even when the builtin
30530         ABI stack-checking scheme is used without support for a stack reserve
30531         region.
30532
30533         * utils.c (create_field_decl): Augment the head comment about bitfield
30534         creation, and don't account for DECL_BIT_FIELD in DECL_NONADDRESSABLE_P
30535         here, because the former is not accurate enough at this point.
30536         Let finish_record_type decide instead.
30537         Don't make a bitfield if the field is to be addressable.
30538         Always set a size for the field if the record is packed, to ensure the
30539         checks for bitfield creation are triggered.
30540         (finish_record_type): During last pass over the fields, clear
30541         DECL_BIT_FIELD when possible in the !STRICT_ALIGNMENT case, as this is
30542         not covered by the calls to layout_decl.  Adjust DECL_NONADDRESSABLE_P
30543         from DECL_BIT_FIELD.
30544
30545 2004-01-30  Kelley Cook  <kcook@gcc.gnu.org>
30546
30547         * Make-lang.in (doc/gnat_ug_unx.dvi): Use $(abs_docdir).
30548         (doc/gnat_ug_vms.dvi, doc/gnat_ug_unx.dvi): Likewise.
30549         (doc/gnat_ug_unx.dvi, doc/gnat-style.dvi): Likewise.
30550
30551 2004-01-26  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
30552
30553         * Makefile.in (mips-sgi-irix5): Remove -lathread from THREADSLIB.
30554
30555         * 5fsystem.ads (Functions_Return_By_DSP): Set to False.
30556         (ZCX_By_Default): Likewise.
30557         (Front_End_ZCX_Support): Likewise.
30558
30559         * 5gtaprop.adb (Stack_Guard): Mark T, On unreferenced.
30560         (Initialize_Lock): Mark Level unreferenced.
30561         (Sleep): Mark Reason unreferenced.
30562         (Timed_Sleep): Likewise.
30563         (Wakeup): Likewise.
30564         (Exit_Task): Use Result.
30565         (Check_No_Locks): Mark Self_ID unreferenced.
30566
30567         * 5gtasinf.adb (New_Sproc): Make Attr constant.
30568         (Bound_Thread_Attributes): Make Sproc constant.
30569         (New_Bound_Thread_Attributes): Likewise.
30570
30571 2004-01-26  Ed Schonberg  <schonberg@gnat.com>
30572
30573         * exp_ch3.adb (Build_Slice_Assignment): New TSS procedure for
30574         one-dimensional array an slice assignments, when component type is
30575         controlled.
30576
30577         * exp_ch5.adb (Expand_Assign_Array): If array is one-dimensional,
30578         component type is controlled, and control_actions are in effect, use
30579         TSS procedure rather than generating inline code.
30580
30581         * exp_tss.ads (TSS_Slice_Assign): New TSS procedure for one-dimensional
30582         arrays with controlled components.
30583
30584 2004-01-26  Vincent Celier  <celier@gnat.com>
30585
30586         * gnatcmd.adb (GNATCmd): Add specification of argument file on the
30587         command line for the non VMS case.
30588
30589         * gnatlink.adb (Process_Binder_File): When building object file, if
30590         GNU linker is used, put all object paths between quotes, to prevent ld
30591         error when there are unusual characters (such as '!') in the paths.
30592
30593         * Makefile.generic: When there are sources in Ada and the main is in
30594         C/C++, invoke gnatmake with -B, instead of -z.
30595
30596         * vms_conv.adb (Preprocess_Command_Data): New procedure, extracted
30597         from VMS_Conversion.
30598         (Process_Argument): New procedure, extracted from VMS_Conversion. Add
30599         specification of argument file on the command line.
30600
30601 2004-01-26  Bernard Banner  <banner@gnat.com>
30602
30603         * Makefile.in: Enable GMEM_LIB and SYMLIB for x86_64
30604
30605 2004-01-26  Ed Schonberg  <schonberg@gnat.com>
30606
30607         * snames.adb: Update copyright notice.
30608         Add info on slice assignment for controlled arrays.
30609
30610 2004-01-23  Robert Dewar  <dewar@gnat.com>
30611
30612         * exp_aggr.adb: Minor reformatting
30613
30614         * exp_ch9.adb: Minor code clean up
30615         Minor reformatting
30616         Fix bad character in comment
30617
30618         PR ada/13471
30619         * targparm.adb (Get_Target_Parameters): Give clean abort error on
30620         unexpected end of file, along with more detailed message.
30621
30622 2004-01-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
30623
30624         * exp_pakd.adb (Install_PAT): Clear Freeze_Node for PAT and Etype of
30625         PAT.
30626
30627         * decl.c (copy_alias_set): New function.
30628         (gnat_to_gnu_entity, make_aligning_type, make_packable_type): Use it.
30629
30630 2004-01-23  Doug Rupp  <rupp@gnat.com>
30631
30632         * Makefile.in (install-gnatlib): Change occurrences of lib$$file to
30633         lib$${file} in case subsequent character is not a separator.
30634
30635 2004-01-23  Vincent Celier  <celier@gnat.com>
30636
30637         * 5vml-tgt.adb (Build_Dynamic_Library): Invoke gcc with -shared-libgcc
30638         when the GCC version is at least 3.
30639
30640         * make.adb: (Scan_Make_Arg): Pass -B to Scan_Make_Switches
30641         Remove all "Opt.", to prepare for opt split
30642
30643         * prj-part.adb (Parse_Single_Project): New Boolean out parameter
30644         Extends_All. Set to True when the project parsed is an extending all
30645         project. Fails for importing an extending all project only when the
30646         imported project is an extending all project.
30647         (Post_Parse_Context_Clause): Set Is_Extending_All to the with clause,
30648         depending on the value of Extends_All returned.
30649
30650         * prj-proc.adb (Process): Check that no project shares its object
30651         directory with a project that extends it, directly or indirectly,
30652         including a virtual project.
30653         Check that no project extended by another project shares its object
30654         directory with another also extended project.
30655
30656         * prj-tree.adb (Is_Extending_All, Set_Is_Extending_All): Allow for
30657         Kind = N_With_Clause
30658
30659         * prj-tree.ads: Minor reformatting
30660         Indicate that Flag2 also applies to N_With_Clause (Is_Extending_All).
30661
30662 2004-01-23  Ed Schonberg  <schonberg@gnat.com>
30663
30664         * sem_ch13.adb (Analyze_Attribute_Definition_Clause): If the attribute
30665         applies to a type with an incomplete view, use full view in Name of
30666         clause, for consistency with uses of Get_Attribute_Definition_Clause.
30667
30668 2004-01-23  Arnaud Charlet  <charlet@act-europe.fr>
30669
30670         * 5itaprop.adb (Set_Priority): Reset the priority to 0 when using
30671         SCHED_RR, since other values are not supported by this policy.
30672         (Initialize): Move initialization of mutex attribute to package
30673         elaboration, to prevent early access to this variable.
30674
30675         * Makefile.in: Remove mention of Makefile.adalib, unused.
30676
30677         * Makefile.adalib, 1aexcept.adb, 1aexcept.ads, 1ic.ads, 1ssecsta.adb,
30678         1ssecsta.ads: Removed, unused.
30679
30680 2004-01-21  Javier Miranda  <miranda@gnat.com>
30681
30682         * exp_aggr.adb (Build_Record_Aggr_Code): Do not build the master
30683         entity if already built in the current scope.
30684
30685         * exp_ch9.adb (Build_Master_Entity): Do not set the has_master_entity
30686         reminder in internal scopes. Required for nested limited aggregates.
30687
30688 2004-01-21  Doug Rupp  <rupp@gnat.com>
30689
30690         * Makefile.in (hyphen): New variable, default value '-'. Set to '_' on
30691         VMS. Replace all occurences of libgnat- and libgnarl- with
30692         libgnat$(hyphen) and libgnarl$(hyphen).
30693         Fixed shared library build problem on VMS.
30694
30695 2004-01-21  Robert Dewar  <dewar@gnat.com>
30696
30697         * mlib-prj.adb: Minor reformatting
30698
30699 2004-01-21  Thomas Quinot  <quinot@act-europe.fr>
30700
30701         * prj-tree.adb, 7staprop.adb, vms_conv.adb, xr_tabls.adb: Add missing
30702         'constant' keywords for declaration of pointers that are not modified.
30703
30704         * exp_pakd.adb: Fix English in comment.
30705
30706 2004-01-21  Ed Schonberg  <schonberg@gnat.com>
30707
30708         PR ada/10889
30709         * sem_ch3.adb (Analyze_Subtype_Declaration): For an array subtype,
30710         copy all attributes of the parent, including the foreign language
30711         convention.
30712
30713 2004-01-21  Sergey Rybin  <rybin@act-europe.fr>
30714
30715         PR ada/10565
30716         * sem_ch9.adb (Analyze_Delay_Alternative): Add expression type check
30717         for 'delay until' statement.
30718
30719 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
30720
30721         * Make-lang.in: Replace $(docdir) with doc.
30722         (doc/gnat_ug_unx.info, doc/gnat_ug_vwx.info, doc/gnat_ug_vms.info
30723         doc/gnat_ug_wnt.info, doc/gnat_rm.info, doc/gnat-style.info): Update
30724         to use consistent MAKEINFO rule.
30725         (ada.man, ada.srcman): Dummy entry.
30726         (ADA_INFOFILES): Define.
30727         (ada.info, ada.srcinfo): New rules.
30728
30729 2004-01-19  Arnaud Charlet  <charlet@act-europe.fr>
30730
30731         * utils.c: Update copyright notice, missed in previous change.
30732
30733 2004-01-19  Vincent Celier  <celier@gnat.com>
30734
30735         * mlib-prj.adb (Build_Library.Add_ALI_For): Only add the ALI to the
30736         args if Bind is True. Set First_ALI, if not already done.
30737         (Build_Library): For Stand Alone Libraries, extract from one ALI file
30738         an eventual --RTS switch, for gnatbind, and all backend switches +
30739         --RTS, for linking.
30740
30741 2004-01-19  Robert Dewar  <dewar@gnat.com>
30742
30743         * sem_attr.adb, memtrack.adb: Minor reformatting
30744
30745 2004-01-19  Ed Schonberg  <schonberg@gnat.com>
30746
30747         * exp_ch6.adb (Expand_Call): Remove code to fold calls to functions
30748         that rename enumeration literals. This is properly done in sem_eval.
30749
30750         * sem_eval.ads, sem_eval.adb (Eval_Call): New procedure to fold calls
30751         to functions that rename enumeration literals.
30752
30753         * sem_res.adb (Resolve_Call): Use Eval_Call to fold static calls to
30754         functions that rename enumeration literals.
30755
30756 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
30757
30758         * Make-lang.in (utils.o): Depend on target.h.
30759         * utils.c: Include target.h.
30760         (process_attributes): Use targetm.have_named_sections instead
30761         of ASM_OUTPUT_SECTION_NAME.
30762
30763 2004-01-16  Andreas Jaeger  <aj@suse.de>
30764
30765         * Makefile.in: Add $(DESTDIR).
30766
30767 2004-01-15  Olivier Hainque  <hainque@act-europe.fr>
30768
30769         * decl.c (gnat_to_gnu_entity, E_Variable): Retrieve the object size
30770         also when not defining if a Size clause applies. That information is
30771         not to be ignored.
30772
30773 2004-01-15  Arnaud Charlet  <charlet@act-europe.fr>
30774
30775         * Makefile.in (install-gnatlib, gnatlib-shared-default): Set up
30776         symbolic links for the shared gnat run time when needed.
30777
30778 2004-01-15  Vasiliy Fofanov  <fofanov@act-europe.fr>
30779
30780         * memtrack.adb (Gmem_Initialize): check that gmem.out could be opened
30781         for writing, and terminate with an error message if not.
30782
30783 2004-01-15  Ed Schonberg  <schonberg@gnat.com>
30784
30785         * sem_attr.adb (Resolve_Attribute, case 'Access): Remove spurious
30786         warning on an access to subprogram in an instance, when the target
30787         type is declared in the same generic unit.
30788         (Eval_Attribute): If 'access is known to fail accessibility check,
30789         rewrite as a raise statement.
30790
30791 2004-01-15  GNAT Script  <nobody@gnat.com>
30792
30793         * Make-lang.in: Makefile automatically updated
30794
30795 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
30796
30797         * Make-lang.in (ada.srcextra): Dummy entry.
30798
30799 2004-01-14  Kelley Cook  <kcook@gcc.gnu.org>
30800
30801         * Make-lang.in: Only regenerate texi files if --enable-maintainer-mode.
30802
30803 2004-01-13  Ed Schonberg  <schonberg@gnat.com>
30804
30805         * exp_ch3.adb (Build_Assignment): Fix bug in handling of controlled
30806         components that are initialized with aggregates.
30807
30808 2004-01-13  Vincent Celier  <celier@gnat.com>
30809
30810         * gnatlink.adb (Process_Binder_File): To find directory of shared
30811         libgcc, if "gcc-lib" is not a subdirectory, look for the last
30812         subdirectory "lib" in the path of the shared libgnat or libgnarl.
30813
30814         * make.adb (Gnatmake): If GCC version is at least 3, link with
30815         -shared-libgcc, when there is at least one shared library project.
30816
30817         * opt.ads (GCC_Version): New integer constant.
30818
30819         * adaint.c (get_gcc_version): New function.
30820
30821 2004-01-13  Robert Dewar  <dewar@gnat.com>
30822
30823         * sem_dist.adb, sem_res.adb, sem_util.adb,
30824         sprint.adb, 3zsocthi.adb, einfo.adb, cstand.adb,
30825         exp_ch4.adb, exp_ch9.adb, exp_dist.adb: Minor reformatting
30826
30827 2004-01-13  Thomas Quinot  <quinot@act-europe.fr>
30828
30829         * s-interr.adb, s-stache.adb, s-taenca.adb, g-regpat.adb,
30830         g-spitbo.adb, 5itaprop.adb: Add missing 'constant' keywords in object
30831         declarations.
30832
30833 2004-01-12  Arnaud Charlet  <charlet@act-europe.fr>
30834
30835         * misc.c: Remove trailing spaces.
30836         Update copyright notice missed in previous change.
30837
30838         PR ada/13572
30839         * bld.adb (Recursive_Process): Reference prefix/share/gnat instead of
30840         prefix/share/make
30841
30842         * Makefile.generic: Update copyright.
30843         Add license notice.
30844
30845         * Makefile.in (ADA_SHARE_MAKE_DIR): Set to prefix/share/gnat instead
30846         of prefix/share/make.
30847
30848         * Makefile.prolog: Update copyright.
30849         Add license notice.
30850
30851 2004-01-12  Laurent Pautet  <pautet@act-europe.fr>
30852
30853         * 3vsocthi.adb, 3vsocthi.ads, 3wsocthi.adb,
30854         3wsocthi.ads, 3zsocthi.adb, 3zsocthi.ads, g-socthi.adb,
30855         g-socthi.ads (Socket_Error_Message): Return C.Strings.chars_ptr
30856         instead of String.
30857
30858         * g-socket.adb (Raise_Socket_Error): Use new Socket_Error_Message
30859         signature.
30860
30861 2004-01-12  Javier Miranda  <miranda@gnat.com>
30862
30863         * cstand.adb, exp_aggr.adb, exp_ch3.adb, exp_ch9.adb, exp_dist.adb,
30864         exp_imgv.adb, exp_pakd.adb, exp_util.adb, par-ch3.adb, sem.adb,
30865         sem_ch12.adb, sem_ch3.adb, sem_dist.adb, sem_prag.adb, sem_res.adb,
30866         sem_util.adb, sinfo.adb, sinfo.ads, sprint.adb: Addition of
30867         Component_Definition node.
30868
30869 2004-01-12  Ed Falis  <falis@gnat.com>
30870
30871         * impunit.adb: Add GNAT.Secondary_Stack_Info as user-visible unit
30872
30873 2004-01-12  Thomas Quinot  <quinot@act-europe.fr>
30874
30875         * link.c: Change default libgnat kind to STATIC for FreeBSD.
30876
30877 2004-01-12  Bernard Banner  <banner@gnat.com>
30878
30879         * Makefile.in: map 86numaux to a-numaux for x86_64
30880
30881 2004-01-12  Ed Schonberg  <schonberg@gnat.com>
30882
30883         * lib-xref.adb (Get_Type_Reference): If the type is the subtype entity
30884         generated to rename a generic actual, go to the actual itself, the
30885         subtype is not a user-visible entity.
30886
30887         * sem_ch7.adb (Uninstall_Declarations): If an entity in the visible
30888         part is a private subtype, reset the visibility of its full view, if
30889         any, to be consistent.
30890
30891         PR ada/13417
30892         * sem_ch12.adb (Analyze_Formal_Package): Diagnose properly an attempt
30893         to use a generic package G as a formal package for another generic
30894         declared within G.
30895
30896 2004-01-12  Robert Dewar  <dewar@gnat.com>
30897
30898         * trans.c (Eliminate_Error_Msg): New procedure called to generate msg
30899
30900         * usage.adb: Remove mention of obsolete -gnatwb switch
30901         Noticed during code reading
30902
30903 2004-01-12  Jerome Guitton  <guitton@act-europe.fr>
30904
30905         * 1ssecsta.adb: Minor changes for -gnatwa warnings
30906
30907 2004-01-12  GNAT Script  <nobody@gnat.com>
30908
30909         * Make-lang.in: Makefile automatically updated
30910
30911 2004-01-09  Mark Mitchell  <mark@codesourcery.com>
30912
30913         * misc.c (gnat_expand_expr): Add alt_rtl parameter.
30914
30915 2004-01-07  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
30916
30917         * link.c [sgi] (shared_libgnat_default): Change to STATIC.
30918
30919 2004-01-05  Kelley Cook  <kcook@gcc.gnu.org>
30920
30921         * Make-lang.in: Revert stamp-xgnatug change from 2003-12-18.
30922         Update comment and copyright date.
30923         * stamp-xgnatug: Delete.
30924
30925 2004-01-05  Robert Dewar  <dewar@gnat.com>
30926
30927         * 1ssecsta.ads: Default_Secondary_Stack is not a constant since it may
30928         be modified by the binder generated main program if the -D switch is
30929         used.
30930
30931         * 4onumaux.ads, 4znumaux.ads: Add Pure_Function pragmas for all
30932         imported functions (since now we expect this to be done for imported
30933         functions)
30934
30935         * 5vtaprop.adb: Add several ??? for sections requiring more comments
30936         Minor reformatting throughout
30937
30938         * 5zinit.adb: Minor reformatting
30939         Add 2004 to copyright date
30940         Minor changes to avoid -gnatwa warnings
30941         Correct some instances of using OR instead of OR ELSE (noted while
30942         doing reformatting)
30943
30944         * sprint.adb: Minor updates to avoid -gnatwa warnings
30945
30946         * s-secsta.ads, s-secsta.adb:
30947         (SS_Get_Max): New function to obtain high water mark for ss stack
30948         Default_Secondary_Stack is not a constant since it may be modified by
30949         the binder generated main program if the -D switch is used.
30950
30951         * switch-b.adb: New -Dnnn switch for binder
30952
30953         * switch-c.adb:
30954         Make -gnatg imply all warnings currently in -gnatwa
30955
30956         * vms_conv.adb: Minor reformatting
30957         Add 2004 to copyright notice
30958         Add 2004 to printed copyright notice
30959
30960         * 3vexpect.adb, 4zsytaco.adb, 3wsocthi.adb, 3zsocthi.adb,
30961         3zsocthi.adb, 56taprop.adb, 56tpopsp.adb, 5amastop.adb,
30962         5aml-tgt.adb, 5ataprop.adb, 5ataprop.adb, 5atpopsp.adb,
30963         5ftaprop.adb, 5ginterr.adb, 5gmastop.adb, 5gml-tgt.adb,
30964         5gtaprop.adb, 5hml-tgt.adb, 5hml-tgt.adb, 5hml-tgt.adb,
30965         5htaprop.adb, 5htraceb.adb, 5itaprop.adb, 5lml-tgt.adb,
30966         5sml-tgt.adb, 5staprop.adb, 5staprop.adb, 5stpopsp.adb,
30967         5vasthan.adb, 5vinmaop.adb, 5vinterr.adb, 5vtaprop.adb,
30968         5vml-tgt.adb, 5vtaprop.adb, 5wosprim.adb, 5wtaprop.adb,
30969         5zinterr.adb, 5zintman.adb, 5zml-tgt.adb, 5ztaprop.adb,
30970         6vcpp.adb, 6vcstrea.adb, 7staprop.adb, 7stpopsp.adb,
30971         vxaddr2line.adb, vxaddr2line.adb, xref_lib.adb, xr_tabls.adb,
30972         xr_tabls.ads, s-tasdeb.adb, s-tasdeb.adb, sem_res.ads,
30973         sem_util.adb, sem_util.adb, sem_util.ads, s-interr.adb,
30974         checks.adb, clean.adb, cstand.adb, einfo.ads,
30975         einfo.adb, exp_aggr.adb, exp_ch11.adb, exp_ch3.adb,
30976         exp_ch4.adb, exp_ch5.adb, exp_ch7.adb, exp_ch9.adb,
30977         prj-nmsc.adb, prj-pp.adb, prj-util.adb, sem_attr.adb,
30978         sem_ch10.adb, sem_ch12.adb, sem_ch4.adb, g-dirope.adb,
30979         g-dirope.ads, gnatlbr.adb, i-cstrea.adb, inline.adb,
30980         lib-xref.adb, sem_ch5.adb, sem_ch7.adb, sem_ch8.adb:
30981         Minor reformatting and code clean ups.
30982         Minor changes to prevent -gnatwa warnings
30983
30984         * ali.adb: Minor reformatting and cleanup of code
30985         Acquire new SS indication of secondary stack use from ali files
30986
30987         * a-numaux.ads: Add Pure_Function pragmas for all imported functions
30988         (since now we expect this to be done for imported functions)
30989
30990         * bindgen.adb: Generate call to modify default secondary stack size if
30991         -Dnnn switch given
30992
30993         * bindusg.adb: Add line for new -D switch
30994
30995         * exp_aggr.adb (Type_May_Have_Bit_Aligned_Components): More appropriate
30996         replacement name for Type_May_Have_Non_Bit_Aligned_Components!
30997         Add circuitry for both records and arrays to avoid gigi
30998         processing if the type involved has non-bit-aligned components
30999
31000         * exp_ch5.adb (Expand_Assign_Array): Avoid assumption that
31001         N_String_Literal node always references an E_String_Literal_Subtype
31002         entity. This may not be true in the future.
31003         (Possible_Bit_Aligned_Component): Move processing of
31004         Component_May_Be_Bit_Aligned from exp_ch5 to exp_util
31005
31006         * exp_ch6.adb (Expand_Thread_Body): Pick up
31007         Default_Secondary_Stack_Size as variable so that we get value modified
31008         by possible -Dnnn binder parameter.
31009
31010         * exp_util.adb (Component_May_Be_Bit_Aligned): New function.
31011         (Type_May_Have_Bit_Aligned_Components): New function.
31012
31013         * exp_util.ads (Component_May_Be_Bit_Aligned): New function.
31014         (Type_May_Have_Bit_Aligned_Components): New function.
31015
31016         * fe.h: (Set_Identifier_Casing): Fix prototype.
31017         Add declaration for Sem_Elim.Eliminate_Error_Msg.
31018         Minor reformatting.
31019
31020         * freeze.adb (Freeze_Entity): Add RM reference to error message about
31021         importing constant atomic/volatile objects.
31022         (Freeze_Subprogram): Reset Is_Pure indication for imported subprogram
31023         unless explicit Pure_Function pragma given, to avoid insidious bug of
31024         call to non-pure imported function getting eliminated.
31025
31026         * gnat1drv.adb, gnatbind.adb, gnatchop.adb, gnatfind.adb,
31027         gnatls.adb, gnatlink.adb, gnatmem.adb, gnatname.adb, gnatsym.adb,
31028         gnatxref.adb, gprcmd.adb, gprep.adb, make.adb: Minor reformatting
31029         Add 2004 to printed copyright notice
31030
31031         * lib-writ.ads, lib-writ.adb: Put new SS flag in ali file if secondary
31032         stack used.
31033
31034         * Makefile.rtl: Add entry for g-sestin.o
31035         g-sestin.ads: New file.
31036
31037         * mdll.adb: Minor changes to avoid -gnatwa warnings
31038
31039         * mlib-tgt.adb: Minor reformatting
31040
31041         * opt.ads: New parameter Default_Secondary_Stack_Size (GNATBIND)
31042         New switch Sec_Stack_Used (GNAT, GNATBIND)
31043         Make Default_Secondary_Stack_Size a variable instead of a constant,
31044         so that it can be modified by the new -Dnnn bind switch.
31045
31046         * rtsfind.adb (Load_Fail): Give full error message in configurable
31047         run-time mode if all_errors mode is set. This was not done in the case
31048         of a file not found, which was an oversight.
31049         Note if secondary stack unit is used by compiler.
31050
31051         * sem_elab.adb (Check_A_Call): Rewrite to avoid trying to put
31052         ineffective elaborate all pragmas on non-visible packages (this
31053         happened when a renamed subprogram was called). Now the elaborate all
31054         always goes on the package containing the renaming rather than the one
31055         containing the renamed subprogram.
31056
31057         * sem_elim.ads, sem_elim.adb (Eliminate_Error_Msg): New procedure
31058         (Process_Eliminate_Pragma): Add parameter to capture pragma location.
31059
31060         * sem_eval.adb (Eval_String_Literal): Do not assume that string literal
31061         has an Etype that references an E_String_Literal.
31062         (Eval_String_Literal): Avoid assumption that N_String_Literal node
31063         always references an E_String_Literal_Subtype entity. This may not
31064         be true in the future.
31065
31066         * sem_prag.adb (Process_Eliminate_Pragma): Add parameter to capture
31067         pragma location.
31068
31069         * sem_res.adb (Resolve): Specialize msg for function name used in proc
31070         call.
31071
31072 2004-01-05  Ed Falis  <falis@gnat.com>
31073
31074         * g-debuti.adb: Replaced direct boolean operator with short-circuit
31075         form.
31076
31077 2004-01-05  Vincent Celier  <celier@gnat.com>
31078
31079         * bld.adb: Minor comment updates
31080         (Process_Declarative_Items): Correct incorrect name (Index_Name instead
31081         of Item_Name).
31082
31083         * make.adb (Gnatmake): Special process for files to compile/check when
31084         -B is specified. Fail when there are only foreign mains in attribute
31085         Main of the project file and -B is not specified. Do not skip bind/link
31086         steps when -B is specified.
31087
31088         * makeusg.adb: Document new switch -B
31089
31090         * opt.ads (Build_Bind_And_Link_Full_Project): New Boolean flag
31091
31092         * switch-m.adb: (Scan_Make_Switches): Process -B switch
31093
31094         * vms_data.ads: Add new GNAT PRETTY qualifier
31095         /FORM_FEED_AFTER_PRAGMA_PAGE for switch -ff
31096
31097 2004-01-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
31098
31099         * trans.c (tree_transform, case N_Free_Statement): Handle thin pointer
31100         case.
31101
31102         * misc.c (gnat_printable_name): If VERBOSITY is 2, call
31103         Set_Identifier_Casing.
31104
31105         * decl.c (gnat_to_gnu_entity, E_Function): Give error if return type
31106         has size that overflows.
31107
31108 2004-01-05  Gary Dismukes  <dismukes@gnat.com>
31109
31110         * exp_ch4.adb (Expand_Array_Comparison): Add Boolean constant to avoid
31111         -gnatwa warning on static condition.
31112
31113 2004-01-05  Doug Rupp  <rupp@gnat.com>
31114
31115         * link.c: (shared_libgnat_default) [VMS]: Change to STATIC.
31116
31117 2004-01-05  Arnaud Charlet  <charlet@act-europe.fr>
31118
31119         * Makefile.in: Install ali files using INSTALL_DATA_DATE to preserve
31120         all attributes, including read-only attribute.
31121
31122 2004-01-05  Pascal Obry  <obry@gnat.com>
31123
31124         * bindgen.adb (Gen_Object_Files_Options): Generate the new shared
31125         library naming scheme.
31126
31127         * mlib-prj.adb (Build_Library): Generate different names for the static
31128         or dynamic version of the GNAT runtime. This is needed to support the
31129         new shared library naming scheme.
31130         (Process_Binder_File): Add detection of shared library in binder file
31131         based on the new naming scheme.
31132
31133         * gnatlink.adb (Process_Binder_File): Properly detect the new naming
31134         scheme for the shared runtime libraries.
31135
31136         * Makefile.in:
31137         (LIBRARY_VERSION) [VMS]: Convert all . to _ to conform to new naming
31138         scheme.
31139         (install-gnatlib): Do not create symlinks for shared libraries.
31140         (gnatlib-shared-default): Idem.
31141         (gnatlib-shared-dual-win32): New target. Not used for now as the
31142         auto-import feature does not support arrays/records.
31143         (gnatlib-shared-win32): Do not create copy for the shared libraries.
31144         (gnatlib-shared-vms): Fix shared runtime libraries names.
31145
31146         * osint.ads, osint.adb (Shared_Lib): New routine, returns the target
31147         dependent runtime shared library name.
31148
31149 2004-01-05  Vasiliy Fofanov  <fofanov@act-europe.fr>
31150
31151         * osint.adb (Read_Library_Info): Remove bogus check if ALI is older
31152         than the object.
31153
31154 2004-01-05  Ed Schonberg  <schonberg@gnat.com>
31155
31156         * sem_ch4.adb (Analyze_Allocator): Check restriction on dynamic
31157         protected objects when allocator has a subtype indication, not a
31158         qualified expression. Note that qualified expressions may have to be
31159         checked when limited aggregates are implemented.
31160
31161         * sem_prag.adb (Analyze_Pragma, case Import): If enclosing package is
31162         pure, emit warning.
31163         (Analyze_Pragma, case Pure_Function): If enclosing package is pure and
31164         subprogram is imported, remove warning.
31165
31166 2004-01-05  Geert Bosch  <bosch@gnat.com>
31167
31168         * s-poosiz.adb: Update copyright notice.
31169         (Allocate): Use Task_Lock to protect against concurrent access.
31170         (Deallocate): Likewise.
31171
31172 2004-01-05  Joel Brobecker  <brobecker@gnat.com>
31173
31174         * s-stalib.adb (Elab_Final_Code): Add missing year in date inside ???
31175         comment.
31176
31177 2003-12-23  Kelley Cook  <kcook@gcc.gnu.org>
31178
31179         * gnat_ug.texi: Force a CVS commit by updating copyright.
31180         * gnat_ug_vxw.texi: Regenerate.
31181         * gnat_ug_wnt.texi: Regenerate.
31182         * gnat_ug_vms.texi: Regenerate.
31183         * gnat_ug_unx.texi: Regenerate.
31184
31185 2003-12-20  Kazu Hirata  <kazu@cs.umass.edu>
31186
31187         * trans.c: Remove uses of "register" specifier in
31188         declarations of local variables.
31189
31190 2003-12-18  Kelley Cook  <kcook@gcc.gnu.org>
31191
31192         * stamp-xgnatug: New stamp file.
31193         * Make-lang.in (stamp-xgnatug):  New stamp file and comment.
31194         (ada/doctools/xgnatug): Add $(build_exeext).
31195         (ada/gnat_ug_unx.texi, ada/gnat_ug_vwx.texi, ada/gnat_ug_vms.texi
31196         ada/gnat_ug_wnt.texi): Update to depend on stamp-xgnatug.
31197
31198 2003-12-17  Ed Falis  <falis@gnat.com>
31199
31200         * a-elchha.adb (Tailored_Exception_Information): made Info constant to
31201         eliminate warning.
31202
31203         * a-exextr.adb: Add context clause for
31204         Ada.Exceptions.Last_Chance_Handler.
31205
31206 2003-12-17  Sergey Rybin  <rybin@act-europe.fr>
31207
31208         * cstand.adb (Create_Standard): Change the way how the declaration of
31209         the Duration type is created (making it the same way as it is for all
31210         the other standard types).
31211
31212 2003-12-17  Robert Dewar  <dewar@gnat.com>
31213
31214         * s-crtl.ads: Fix header format
31215         Change Pure to Preelaborate
31216
31217 2003-12-17  Ed Schonberg  <schonberg@gnat.com>
31218
31219         * checks.adb (Selected_Length_Checks): Generate an Itype reference for
31220         the expression type only if it is declared in the current unit.
31221
31222         * sem_ch3.adb (Constrain_Index): Handle properly a range whose bounds
31223         are universal and already analyzed, as can occur in constrained
31224         subcomponents that depend on discriminants, when one constraint is a
31225         subtype mark.
31226
31227         * sem_res.adb (Resolve_Type_Conversion): Any arithmetic expression of
31228         type Any_Fixed is legal as the argument of a conversion, if only one
31229         fixed-point type is in context.
31230
31231 2003-12-17  GNAT Script  <nobody@gnat.com>
31232
31233         * Make-lang.in: Makefile automatically updated
31234
31235 2003-12-15  Robert Dewar  <dewar@gnat.com>
31236
31237         * exp_ch6.adb (Expand_Thread_Body): Fix error in picking up default
31238         sec stack size.
31239
31240 2003-12-15  Vincent Celier  <celier@gnat.com>
31241
31242         * gnatchop.adb: (Error_Msg): Do not exit on error for a warning
31243         (Gnatchop): Do not set failure status when reporting the number of
31244         warnings.
31245
31246 2003-12-15  Doug Rupp  <rupp@gnat.com>
31247
31248         * s-ctrl.ads: New file.
31249
31250         * Makefile.rtl (GNAT_RTL_NONTASKING_OBJS): Add s-crtl$(objext).
31251
31252         * Make-lang.in: (GNAT_ADA_OBJS): Add ada/s-crtl.o.
31253         (GNATBIND_OBJS): Add ada/s-crtl.o.
31254
31255         * Makefile.in [VMS]: Clean up ifeq rules.
31256
31257         * gnatlink.adb, 6vcstrea.adb, a-direio.adb, a-sequio.adb,
31258         a-ststio.adb, a-textio.adb, g-os_lib.adb, a-witeio.adb,
31259         g-os_lib.ads, i-cstrea.adb, i-cstrea.ads, s-direio.adb,
31260         s-fileio.adb, s-memcop.ads, s-memory.adb, s-stache.adb,
31261         s-tasdeb.adb: Update copyright.
31262         Import System.CRTL.
31263         Make minor modifications to use System.CRTL declared functions instead
31264         of importing locally.
31265
31266 2003-12-15  GNAT Script  <nobody@gnat.com>
31267
31268         * Make-lang.in: Makefile automatically updated
31269
31270 2003-12-11  Ed Falis  <falis@gnat.com>
31271
31272         * 5zinit.adb: Clean up.
31273
31274         * 5zintman.adb (Notify_Exception): replaced case statement with a call
31275         to __gnat_map_signal, imported from init.c to support
31276         signal -> exception mappings that depend on the vxWorks version.
31277
31278         * init.c:
31279         Created and exported __gnat_map_signal to support signal -> exception
31280         mapping that is dependent on the VxWorks version.
31281         Change mapping of SIGBUS from Program_Error to Storage_Error on VxWorks
31282
31283 2003-12-11  Vasiliy Fofanv  <fofanov@act-europe.fr>
31284
31285         * 5wosinte.ads: Link with -mthreads switch.
31286
31287 2003-12-11  Arnaud Charlet  <charlet@act-europe.fr>
31288
31289         * init.c (__gnat_install_handler [NetBSD]): Set
31290         __gnat_handler_installed, as done on all other platforms.
31291         Remove duplicated code.
31292
31293 2003-12-11  Jerome Guitton  <guitton@act-europe.fr>
31294
31295         * Makefile.in (rts-zfp, rts-ravenscar): Create libgnat.a.
31296
31297 2003-12-11  Thomas Quinot  <quinot@act-europe.fr>
31298
31299         * sinfo.ads: Fix inconsistent example code in comment.
31300
31301 2003-12-11  Robert Dewar  <dewar@gnat.com>
31302
31303         * a-tiinau.adb: Add a couple of comments
31304
31305         * sem_ch3.adb: Minor reformatting
31306
31307         * sem_prag.adb:
31308         Fix bad prototype of Same_Base_Type in body (code reading cleanup)
31309         Minor reformatting throughout
31310
31311 2003-12-11  Ed Schonberg  <schonberg@gnat.com>
31312
31313         * exp_ch7.adb (Establish_Transient_Scope): If the call is within the
31314         bounds of a loop, create a separate block in order to generate proper
31315         cleanup actions to prevent memory leaks.
31316
31317         * sem_res.adb (Resolve_Call): After a call to
31318         Establish_Transient_Scope, the call may be rewritten and relocated, in
31319         which case no further processing is needed.
31320
31321         * sem_util.adb: (Wrong_Type): Refine previous fix.
31322          Fixes ACATS regressions.
31323
31324         PR ada/13353
31325         * sem_prag.adb (Back_End_Cannot_Inline): A renaming_as_body can always
31326         be inlined.
31327
31328 2003-12-08  Jerome Guitton  <guitton@act-europe.fr>
31329
31330         * 5ytiitho.adb, 5zthrini.adb, 5ztiitho.adb, i-vthrea.adb,
31331         i-vthrea.ads, s-tpae65.adb, s-tpae65.ads: Cleanup: Remove a bunch of
31332         obsolete files.
31333
31334         * Makefile.in: (rts-ravenscar): Generate an empty libgnat.a.
31335         (rts-zfp): Ditto.
31336
31337 2003-12-08  Robert Dewar  <dewar@gnat.com>
31338
31339         * 7sintman.adb: Minor reformatting
31340
31341         * bindgen.adb: Configurable_Run_Time mode no longer suppresses the
31342         standard linker options to get standard libraries linked. We now plan
31343         to provide dummy versions of these libraries to match the appropriate
31344         configurable run-time (e.g. if a library is not needed at all, provide
31345         a dummy empty library).
31346
31347         * targparm.ads: Configurable_Run_Time mode no longer affects linker
31348         options (-L parameters and standard libraries). What we plan to do is
31349         to provide dummy libraries where the libraries are not required.
31350
31351         * gnatbind.adb: Minor comment improvement
31352
31353 2003-12-08  Javier Miranda  <miranda@gnat.com>
31354
31355         * exp_aggr.adb (Build_Record_Aggr_Code): Do not remove the expanded
31356         aggregate in the parent. Otherwise constants with limited aggregates
31357         are not supported. Add new formal to pass the component type (Ctype).
31358         It is required to call the corresponding IP subprogram in case of
31359         default initialized components.
31360         (Gen_Assign): In case of default-initialized component, generate a
31361         call to the IP subprogram associated with the component.
31362         (Build_Record_Aggr_Code): Remove the aggregate from the parent in case
31363         of aggregate with default initialized components.
31364         (Has_Default_Init_Comps): Improve implementation to recursively check
31365         all the present expressions.
31366
31367         * exp_ch3.ads, exp_ch3.adb (Build_Initialization_Call): Add new formal
31368         to indicate that the initialization call corresponds to a
31369         default-initialized component of an aggregate.
31370         In case of default initialized aggregate with tasks this parameter is
31371         used to generate a null string (this is just a workaround that must be
31372         improved later). In case of discriminants, this parameter is used to
31373         generate a selected component node that gives access to the discriminant
31374         value.
31375
31376         * exp_ch9.ads, exp_ch9.adb (Build_Task_Allocate_Block_With_Stmts): New
31377         subprogram, based on Build_Task_Allocate_Block, but adapted to expand
31378         allocated aggregates with default-initialized components.
31379
31380         * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Improve error message if
31381         the box notation is used in positional aggregates.
31382
31383 2003-12-08  Samuel Tardieu  <tardieu@act-europe.fr>
31384
31385         * lib.ads: Fix typo in comment
31386
31387 2003-12-08  Vincent Celier  <celier@gnat.com>
31388
31389         * prj.adb (Project_Empty): New component Unkept_Comments
31390         (Scan): Remove procedure; moved to Prj.Err.
31391
31392         * prj.ads (Project_Data): New Boolean component Unkept_Comments
31393         (Scan): Remove procedure; moved to Prj.Err.
31394
31395         * prj-dect.adb: Manage comments for the different declarations.
31396
31397         * prj-part.adb (With_Record): New component Node
31398         (Parse): New Boolean parameter Store_Comments, defaulted to False.
31399         Set the scanner to return ends of line and comments as tokens, if
31400         Store_Comments is True.
31401         (Pre_Parse_Context_Clause): Create the N_With_Clause nodes so that
31402         comments are associated with these nodes. Store the node IDs in the
31403         With_Records.
31404         (Post_Parse_Context_Clause): Use the N_With_Clause nodes stored in the
31405         With_Records.
31406         (Parse_Single_Project): Call Pre_Parse_Context_Clause before creating
31407         the N_Project node. Call Tree.Save and Tree.Reset before scanning the
31408         current project. Call Tree.Restore afterwards. Set the various nodes
31409         for comment storage (Next_End, End_Of_Line, Previous_Line,
31410         Previous_End).
31411
31412         * prj-part.ads (Parse): New Boolean parameter Store_Comments,
31413         defaulted to False.
31414
31415         * prj-pp.adb (Write_String): New Boolean parameter Truncated, defaulted
31416         to False. When Truncated is True, truncate the string, never go to the
31417         next line.
31418         (Write_End_Of_Line_Comment): New procedure
31419         (Print): Process comments for nodes N_With_Clause,
31420         N_Package_Declaration, N_String_Type_Declaration,
31421         N_Attribute_Declaration, N_Typed_Variable_Declaration,
31422         N_Variable_Declaration, N_Case_Construction, N_Case_Item.
31423         Process nodes N_Comment.
31424
31425         * prj-tree.ads, prj-tree.adb (Default_Project_Node): If it is a node
31426         without comments and there are some comments, set the flag
31427         Unkept_Comments to True.
31428         (Scan): If there are comments, set the flag Unkept_Comments to True and
31429         clear the comments.
31430         (Project_Node_Kind): Add enum values N_Comment_Zones, N_Comment
31431         (Next_End_Nodes: New table
31432         (Comment_Zones_Of): New function
31433         (Scan): New procedure; moved from Prj. Accumulate comments in the
31434         Comments table and set end of line comments, comments after, after end
31435         and before end.
31436         (Add_Comments): New procedure
31437         (Save, Restore, Seset_State): New procedures
31438         (There_Are_Unkept_Comments): New function
31439         (Set_Previous_Line_Node, Set_Previous_End_Node): New procedures
31440         (Set_End_Of_Line, Set_Next_End_Node, Remove_Next_End_Node): New
31441         procedures.
31442         (First_Comment_After, First_Comment_After_End): New functions
31443         (First_Comment_Before, First_Comment_Before_End): New functions
31444         (Next_Comment): New function
31445         (End_Of_Line_Comment, Follows_Empty_Line,
31446         Is_Followed_By_Empty_Line): New functions
31447         (Set_First_Comment_After, Set_First_Comment_After_End): New procedures
31448         (Set_First_Comment_Before, Set_First_Comment_Before_End): New procedures
31449         (Set_Next_Comment): New procedure
31450         (Default_Project_Node): Associate comment before if the node can store
31451         comments.
31452
31453         * scans.ads (Token_Type): New enumeration value Tok_Comment
31454         (Comment_Id): New global variable
31455
31456         * scng.ads, scng.adb (Comment_Is_Token): New Boolean global variable,
31457         defaulted to False.
31458         (Scan): Store position of start of comment. If comments are tokens, set
31459         Comment_Id and set Token to Tok_Comment when scanning a comment.
31460         (Set_Comment_As_Token): New procedure
31461
31462         * sinput-p.adb: Update Copyright notice
31463         (Source_File_Is_Subunit): Call Prj.Err.Scanner.Scan instead of Prj.Scan
31464         that no longer exists.
31465
31466 2003-12-08  Javier Miranda  <miranda@gnat.com>
31467
31468         * sem_aggr.adb: Add dependence on Exp_Tss package
31469         Correct typo in comment
31470         (Resolve_Aggregate): In case of array aggregates set the estimated
31471         type of the aggregate before calling resolve. This is needed to know
31472         the name of the corresponding IP in case of limited array aggregates.
31473         (Resolve_Array_Aggregate): Delay the resolution to the expansion phase
31474         in case of default initialized array components.
31475
31476         * sem_ch12.adb (Analyze_Formal_Object_Declaration): Allow limited
31477         types. Required to give support to limited aggregates in generic
31478         formals.
31479
31480 2003-12-08  Ed Schonberg  <schonberg@gnat.com>
31481
31482         * sem_ch3.adb (Check_Initialization): For legality purposes, an
31483         inlined body functions like an instantiation.
31484         (Decimal_Fixed_Point_Declaration): Do not set kind of first subtype
31485         until bounds are analyzed, to diagnose premature use of type.
31486
31487         * sem_util.adb (Wrong_Type): Improve error message when the type of
31488         the expression is used prematurely.
31489
31490 2003-12-08  GNAT Script  <nobody@gnat.com>
31491
31492         * Make-lang.in: Makefile automatically updated
31493
31494 2003-12-08  Arnaud Charlet  <charlet@act-europe.fr>
31495
31496         * sinfo.h, einfo.h, nmake.ads, nmake.adb, treeprs.ads: Removed, since
31497         they are automatically generated by Make-lang.in and cause nothing but
31498         maintenance troubles.
31499
31500 2003-12-05  Thomas Quinot  <quinot@act-europe.fr>
31501
31502         * 3ssoliop.ads: Fix comment (this is the Solaris, not the UnixWare,
31503         version of this unit).
31504
31505 2003-12-05  Olivier Hainque  <hainque@act-europe.fr>
31506
31507         * 53osinte.ads, 54osinte.ads, 55osinte.ads, 56osinte.ads, 5bosinte.ads,
31508         5cosinte.ads, 5hosinte.ads, 5iosinte.ads, 5losinte.ads,
31509         5tosinte.ads: Define the SA_SIGINFO constant, to allow references from
31510         the body of System.Interrupt_Management common to several targets.
31511         Update copyright notice when appropriate.
31512
31513         * 52osinte.ads, 5posinte.ads: Define a dummy value for the SA_SIGINFO
31514         constant.
31515
31516         * 7sintman.adb (elaboration): Set SA_SIGINFO in the sigaction flags,
31517         to ensure that the kernel fills in the interrupted context structure
31518         before calling a signal handler, which is necessary to be able to
31519         unwind past it. Update the copyright notice.
31520
31521 2003-12-05  Jerome Guitton  <guitton@act-europe.fr>
31522
31523         * a-elchha.ads: New file.
31524
31525         * a-elchha.adb: New default last chance handler. Contents taken from
31526         Ada.Exceptions.Exception_Traces.Unhandled_Exception_Terminate.
31527
31528         * a-exextr.adb (Unhandled_Exception_Terminate): Most of this routine
31529         is moved to a-elchha.adb to provide a target-independent default last
31530         chance handler.
31531
31532         * Makefile.rtl: Add a-elchha.o
31533
31534         * Make-lang.in (GNAT_ADA_OBJS, GNATBIND_OBJS): Add a-elchha.o.
31535
31536 2003-12-05  Ed Schonberg  <schonberg@gnat.com>
31537
31538         * exp_ch6.adb (Expand_Call): If the subprogram is inlined and is
31539         declared in an instance, do not inline the call if the instance is not
31540         frozen yet, to prevent order of elaboration problems.
31541
31542         * sem_prag.adb: Add comments for previous fix.
31543
31544 2003-12-05  Samuel Tardieu  <tardieu@act-europe.fr>
31545
31546         * g-table.adb: Use the right variable in Set_Item.
31547         Update copyright notice.
31548
31549 2003-12-05  Arnaud Charlet  <charlet@act-europe.fr>
31550
31551         * Makefile.in: Remove unused rules.
31552
31553 2003-12-05  Vincent Celier  <celier@gnat.com>
31554
31555         * switch-c.adb (Scan_Front_End_Switches): Remove processing of
31556         -nostdlib. Not needed here after all.
31557
31558 2003-12-03  Thomas Quinot  <quinot@act-europe.fr>
31559
31560         PR ada/11724
31561         * adaint.h, adaint.c, g-os_lib.ads:
31562         Do not assume that the offset argument to lseek(2) is a 32 bit integer,
31563         on some platforms (including FreeBSD), it is a 64 bit value.
31564         Introduce a __gnat_lseek wrapper in adaint.c to allow for portability.
31565
31566 2003-12-03  Arnaud Charlet  <charlet@act-europe.fr>
31567
31568         * gnatvsn.ads (Library_Version): Now contain only the relevant
31569         version info.
31570         (Verbose_Library_Version): New constant.
31571
31572         * g-spipat.adb, g-awk.adb, g-debpoo.adb,
31573         g-memdum.adb, g-thread.adb, s-geveop.adb, s-interr.adb,
31574         s-taskin.adb, s-tassta.adb: Make code compile with -gnatwa.
31575
31576         * gnatlbr.adb: Clean up: replace Library_Version by
31577         Verbose_Library_Version.
31578
31579         * make.adb, lib-writ.adb, exp_attr.adb:
31580         Clean up: replace Library_Version by Verbose_Library_Version.
31581
31582         * 5lintman.adb: Removed.
31583
31584         * Makefile.in:
31585         Update and simplify computation of LIBRARY_VERSION.
31586         Fix computation of GSMATCH_VERSION.
31587         5lintman.adb is no longer used: replaced by 7sintman.adb.
31588
31589 2003-12-03  Robert Dewar  <dewar@gnat.com>
31590
31591         * exp_ch5.adb:
31592         (Possible_Bit_Aligned_Component): Maybe_Bit_Aligned_Large_Component new
31593         name. Modified to consider small non-bit-packed arrays as troublesome
31594         and in need of component-by-component assigment expansion.
31595
31596 2003-12-03  Vincent Celier  <celier@gnat.com>
31597
31598         * lang-specs.h: Process nostdlib as nostdinc
31599
31600         * back_end.adb: Update Copyright notice
31601         (Scan_Compiler_Arguments): Process -nostdlib directly.
31602
31603 2003-12-03  Jose Ruiz  <ruiz@act-europe.fr>
31604
31605         * Makefile.in:
31606         When defining LIBGNAT_TARGET_PAIRS for bare board targets, remove the
31607         redundant inclusion of EXTRA_HIE_NONE_TARGET_PAIRS, which is always
31608         included in HIE_NONE_TARGET_PAIRS.
31609
31610 2003-12-03  Ed Schonberg  <schonberg@gnat.com>
31611
31612         * sem_attr.adb:
31613         (Legal_Formal_Attribute): Attribute is legal in an inlined body, as it
31614         is legal in an instance, because legality is cheched in the template.
31615
31616         * sem_prag.adb:
31617         (Analyze_Pragma, case Warnings): In an inlined body, the pragma may be
31618         appplied to an unchecked conversion of a formal parameter.
31619
31620         * sem_warn.adb:
31621         (Output_Unreferenced_Messages): Suppress "not read" warnings on imported
31622         variables.
31623
31624 2003-12-03  Olivier Hainque  <hainque@act-europe.fr>
31625
31626         * tb-alvms.c (unwind_regular_code, unwind_kernel_handler): New
31627         routines. The second one is new functionality to deal with backtracing
31628         through signal handlers.
31629         (unwind): Split into the two separate subroutines above.
31630         Update the documentation, and deal properly with sizeof (REG) different
31631         from sizeof (void*).
31632
31633 2003-12-01  Nicolas Setton  <setton@act-europe.fr>
31634
31635         * a-except.adb (Raise_Current_Excep): Add a pragma Inspection_Point,
31636         so that the debugger can reliably access the value of the parameter,
31637         and therefore is able to display the exception name when an exception
31638         breakpoint is reached.
31639
31640 2003-12-01  Thomas Quinot  <quinot@act-europe.fr>
31641
31642         * fmap.adb: Fix typo in warning message.
31643
31644         * g-socket.ads, g-socket.adb: Make Free a visible instance of
31645         Ada.Unchecked_Deallocation (no need to wrap it in a subprogram).
31646
31647 2003-12-01  Vincent Celier  <celier@gnat.com>
31648
31649         * mlib-prj.adb (Build_Library.Process): Do not check a withed unit if
31650         ther is no Afile.
31651         (Build_Library): Get the switches only if Default_Switches is declared
31652         in package Binder.
31653
31654 2003-12-01  Ed Schonberg  <schonberg@gnat.com>
31655
31656         * exp_ch6.adb (Expand_Actuals): When applying validity checks to
31657         actuals that are indexed components, reanalyze actual to ensure that
31658         packed array references are properly expanded.
31659
31660         * sem_ch5.adb (Diagnose_Non_Variable_Lhs): Add special case for
31661         attempted assignment to a discriminant.
31662
31663 2003-12-01  Robert Dewar  <dewar@gnat.com>
31664
31665         * rtsfind.adb, exp_ch4.adb, s-exnint.ads, s-exnint.adb: Minor
31666         reformatting.
31667
31668         * switch-c.adb: Minor reformatting of comments
31669
31670 2003-12-01  Arnaud Charlet  <charlet@act-europe.fr>
31671
31672         * Makefile.in: Clean ups.
31673
31674 2003-12-01  GNAT Script  <nobody@gnat.com>
31675
31676         * Make-lang.in: Makefile automatically updated
31677
31678 2003-12-01  Arnaud Charlet  <charlet@act-europe.fr>
31679
31680         * 5wsystem.ads: Disable zero cost exception, not ready yet.
31681
31682 2003-11-29  Ulrich Weigand  <uweigand@de.ibm.com>
31683
31684         * Make-lang.in (nmake.ads): Add dependency on ada/nmake.adb
31685         to force serialization.
31686
31687 2003-11-26  Thomas Quinot  <quinot@act-europe.fr>
31688
31689         * g-socket.ads, g-socket.adb:
31690         Clarify documentation of function Stream. Introduce a Free procedure
31691         to release the returned Stream once it becomes unused.
31692
31693         * 5asystem.ads: For Alpha Tru64, enable ZCX by default.
31694
31695 2003-11-26  Arnaud Charlet  <charlet@act-europe.fr>
31696
31697         (Cond_Timed_Wait): Introduce new constant Time_Out_Max,
31698         since NT 4 cannot handle timeout values that are too large,
31699         e.g. DWORD'Last - 1.
31700
31701 2003-11-26  Ed Schonberg  <schonberg@gnat.com>
31702
31703         * exp_ch4.adb:
31704         (Expand_N_Slice): Recognize all cases of slices that appear as actuals
31705         in procedure calls and whose expansion must be deferred.
31706
31707         * exp_ch6.adb (Add_Call_By_Copy_Node): Remove previous fix. Proper fix
31708         is in exp_ch4.
31709
31710         * sem_ch3.adb:
31711         (Build_Derived_Array_Type): Create operator for unconstrained type
31712         if ancestor is unconstrained.
31713
31714 2003-11-26  Vincent Celier  <celier@gnat.com>
31715
31716         * make.adb (Project_Object_Directory): New global variable
31717         (Change_To_Object_Directory): New procedure
31718         (Collect_Arguments_And_Compile): Call Change_To_Object_Directory instead
31719         of Change_Dir directly. Do not change working directory to object
31720         directory of main project after each compilation.
31721         (Gnatmake): Use Change_To_Object_Directory instead of Change_Dir
31722         directly.
31723         Change to object directory of main project before binding step.
31724         (Initialize): Initialize Project_Object_Directory to No_Project
31725
31726         * mlib-prj.adb:
31727         (Build_Library): Take into account Builder'Default_Switches ("Ada") when
31728         binding a Stand-Alone Library.
31729
31730         * output.adb: Update Copyright notice
31731         (Write_Char): Output buffer when full
31732
31733 2003-11-26  Robert Dewar  <dewar@gnat.com>
31734
31735         * sem_ch13.adb: (Check_Size): Reset size if size is too small
31736
31737         * sem_ch13.ads:
31738         (Check_Size): Fix documentation to include bit-packed array case
31739
31740         * sem_res.adb: Implement restriction No_Direct_Boolean_Operators
31741
31742         * s-rident.ads: Put No_Direct_Boolean_Operators in proper order
31743
31744         * s-rident.ads: Add new restriction No_Direct_Boolean_Operators
31745
31746 2003-11-24  Arnaud Charlet  <charlet@act-europe.fr>
31747
31748         PR ada/13142
31749         * utils.c (init_gigi_decls): Change name of built-in setjmp to
31750         __builtin_setjmp, since this is apparently needed by recent
31751         non Ada changes.
31752
31753 2003-11-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
31754
31755         * adadecode.c: Only include ctype.h if not IN_GCC.
31756         (__gnat_decode): Use ISDIGIT from safe-ctype.h.
31757
31758 2003-11-24  Jose Ruiz  <ruiz@act-europe.fr>
31759
31760         * Makefile.in:
31761         Use 5zintman.ads for VxWorks targets. This file avoid confusion between
31762         signals and interrupts.
31763
31764         * 5zintman.ads: New File.
31765
31766         * 5zintman.adb: Replace Exception_Interrupts by Exception_Signals, and
31767         add exception signals to the set of unmasked signals.
31768
31769         * 5ztaprop.adb:
31770         Use Abort_Task_Signal instead of Abort_Task_Interrupt to avoid confusion
31771         between signals and interrupts.
31772         Add to Unblocked_Signal_Mask the set of signals that are in
31773         Keep_Unmasked.
31774
31775         * 7sinmaop.adb:
31776         Adding a check to see whether the Interrupt_ID we want to unmask is in
31777         the range of Keep_Unmasked (in procedure Interrupt_Self_Process). The
31778         reason is that the index type of the Keep_Unmasked array is not always
31779         Interrupt_ID; it may be a subtype of Interrupt_ID.
31780
31781 2003-11-24  Gary Dismukes  <dismukes@gnat.com>
31782
31783         * exp_util.adb:
31784         (Remove_Side_Effects): Condition constantness of object created for a
31785          an unchecked type conversion on the constantness of the expression
31786          to ensure the correct value for 'Constrained when passing components
31787          of view-converted class-wide objects.
31788
31789 2003-11-24  Robert Dewar  <dewar@gnat.com>
31790
31791         * par-load.adb (Load): Improve handling of misspelled and missing units
31792         Removes several cases of compilation abandoned messages
31793
31794         * lib.adb: (Remove_Unit): New procedure
31795
31796         * lib.ads: (Remove_Unit): New procedure
31797
31798         * lib-load.adb: Minor reformatting
31799
31800 2003-11-24  Vincent Celier  <celier@gnat.com>
31801
31802         * make.adb:
31803         (Gnatmake, Initialize): Call Usage instead of Makeusg directly
31804         (Marking_Label): Label to mark processed source files. Incremented for
31805         each executable.
31806         (Gnatmake): Increase Marking_Labet for each executable
31807         (Is_Marked): Compare against marking label
31808         (Mark): Mark with marking label
31809
31810 2003-11-24  Jerome Guitton  <guitton@act-europe.fr>
31811
31812         * s-thread.ads:
31813         Move the declaration of the TSD for System.Threads to System.Soft_Links.
31814         Add some comments.
31815
31816         * Makefile.in: Added target pair for s-thread.adb for cert runtime.
31817         (rts-cert): build a single relocatable object for the run-time lib.
31818         Fix perms.
31819
31820 2003-11-24  Vasiliy Fofanov  <fofanov@act-europe.fr>
31821
31822         * Make-lang.in:
31823         Use gnatls rather than gcc to obtain the location of GNAT RTL for
31824         crosstools build.
31825
31826 2003-11-24  Sergey Rybin  <rybin@act-europe.fr>
31827
31828         * opt.adb (Tree_Write): Gnat_Version_String is now a function, so we
31829         can not use it as before (that is, as a variable) when dumping it into
31830         the tree file. Add a local variable to store the result of this
31831         function and to be used as the string to be written into the tree.
31832
31833         * scn.adb (Initialize_Scanner): Add comments explaining the recent
31834         changes.
31835
31836         * sinput.adb (Source_First, Source_Last): In case of
31837         Internal_Source_File, replace returning attributes of
31838         Internal_Source_Ptr (which is wrong) with returning attributes of
31839         Internal_Source.
31840
31841 2003-11-24  Ed Schonberg  <schonberg@gnat.com>
31842
31843         * sem_ch3.adb:
31844         (New_Concatenation_Op): Proper name for New_Binary_Operator, only
31845         used for implicit concatenation operators.
31846         Code cleanup.
31847
31848         * sem_elab.adb:
31849         (Check_Elab_Call): Set No_Elaboration_Check appropriately on calls in
31850         task bodies that are in the scope of a Suppress pragma.
31851         (Check_A Call): Use the flag to prevent spurious elaboration checks.
31852
31853         * sinfo.ads, sinfo.adb:
31854         New flag No_Elaboration_Check on function/procedure calls, to properly
31855         suppress checks on calls in task bodies that are within a local suppress
31856         pragma.
31857
31858         * exp_ch4.adb:
31859         (Expand_Concatenate_Other): Use the proper integer type for the
31860         expression for the upper bound, to avoid universal_integer computations
31861         when possible.
31862
31863 2003-11-21  Kelley Cook  <kcook@gcc.gnu.org>
31864
31865         * .cvsignore: Delete.
31866
31867 2003-11-21  Andreas Schwab  <schwab@suse.de>
31868
31869         * 55system.ads: Set ZCX_By_Default and GCC_ZCX_Support to True.
31870
31871 2003-11-21  Vasiliy Fofanov  <fofanov@act-europe.fr>
31872
31873         * 5wsystem.ads: Enable zero cost exception.
31874
31875 2003-11-21  Jerome Guitton  <guitton@act-europe.fr>
31876
31877         * 5ztiitho.adb: Remove an unreferenced variable.
31878
31879 2003-11-21  Thomas Quinot  <quinot@act-europe.fr>
31880
31881         * adaint.c: For FreeBSD, use mkstemp.
31882
31883 2003-11-21  Arnaud Charlet  <charlet@act-europe.fr>
31884
31885         * gnatlbr.adb: Now reference Gnat_Static_Version_String.
31886
31887 2003-11-21  Robert Dewar  <dewar@gnat.com>
31888
31889         * bld.adb: Remove useless USE of gnatvsn
31890
31891         * gnatchop.adb: Minor reformatting
31892         Clean up version handling to be more consistent
31893
31894         * gnatxref.adb: Minor reformatting
31895
31896         * gprcmd.adb: Minor reformatting
31897         Fix output of copyright to be more consistent with other tools
31898
31899 2003-11-21  Vincent Celier  <celier@gnat.com>
31900
31901         * make.adb (Scan_Make_Args): Do not transmit --RTS= to gnatlink
31902
31903 2003-11-21  Sergey Rybin  <rybin@act-europe.fr>
31904
31905         * atree.adb (Initialize): Add initializations for global variables
31906         used in New_Copy_Tree.
31907
31908         * cstand.adb (Create_Standard): Add call to Initialize_Scanner (with
31909         Internal_Source_File as the actual).
31910         Put the set of statements creating Any_Character before the set of
31911         statements creating Any_Array to have Any_Character fully initialized
31912         when it is used in creating Any_Array.
31913
31914         * scn.adb (Initialize_Scanner): Do not set Comes_From_Source ON and do
31915         not call Scan in case if the actual is Internal_Source_File
31916         Add 2003 to copyright note.
31917
31918         * sinput.adb (Source_First, Source_Last, Source_Text): Add code for
31919         processing Internal_Source_File.
31920
31921         * types.ads: Add the constant Internal_Source_File representing the
31922         source buffer for artificial source-code-like strings created within
31923         the compiler (the definition of Source_File_Index is changed).
31924
31925 2003-11-20  Arnaud Charlet  <charlet@act-europe.fr>
31926
31927         * 35soccon.ads, 45intnam.ads, 55osinte.adb, 55osinte.ads,
31928         56system.ads: New file, FreeBSD version.
31929
31930 2003-11-20  Joseph S. Myers  <jsm@polyomino.org.uk>
31931
31932         * Make-lang.in (ada.extraclean): Delete.
31933
31934 2003-11-19  Arnaud Charlet  <charlet@act-europe.fr>
31935
31936         * gnatmem.adb: Clean up verbose output.
31937
31938         * gprcmd.adb: Change copyright to FSF.
31939
31940 2003-11-19  Vincent Celier  <celier@gnat.com>
31941
31942         * symbols.adb: (Initialize): New parameters Reference, Symbol_Policy
31943         and Version (ignored).
31944
31945         * symbols.ads: (Policy): New type
31946         (Initialize): New parameter Reference, Symbol_Policy and
31947         Library_Version.
31948         Remove parameter Force.
31949         Minor reformatting.
31950
31951         * snames.ads, snames.adbadb: New standard names
31952         Library_Reference_Symbol_File and Library_Symbol_Policy
31953
31954         * mlib-prj.adb:
31955         (Build_Library): Call Build_Dinamic_Library with the Symbol_Data of the
31956         project.
31957
31958         * mlib-tgt.adb:
31959         (Build_Dynamic_Library): New parameter Symbol_Data (ignored)
31960
31961         * mlib-tgt.ads: (Build_Dynamic_Library): New parameter Symbol_Data
31962
31963         * prj.adb: (Project_Empty): New component Symbol_Data
31964
31965         * prj.ads: (Policy, Symbol_Record): New types
31966         (Project_Data): New component Symbol_Data
31967
31968         * prj-attr.adb:
31969         New attributes Library_Symbol_File, Library_Symbol_Policy and
31970         Library_Reference_Symbol_File.
31971
31972         * prj-nmsc.adb:
31973         (Ada_Check): When project is a Stand-Alone library project, process
31974         attribute Library_Symbol_File, Library_Symbol_Policy and
31975         Library_Reference_Symbol_File.
31976
31977         * 5aml-tgt.adb, 5bml-tgt.adb, 5gml-tgt.adb, 5hml-tgt.adb,
31978         5wml-tgt.adb, 5zml-tgt.adb, 5lml-tgt.adb,
31979         5sml-tgt.adb (Build_Dynamic_Library): New parameter
31980         Symbol_Data (ignored).
31981
31982         * 5vml-tgt.adb (VMS_Options): Remove --for-linker=gsmatch=equal,1,0
31983         (Build_Dynamic_Library): New parameter Symbol_Data. New internal
31984         functions Option_File_Name and Version_String. Set new options of
31985         gnatsym related to symbol file, symbol policy and reference symbol
31986         file.
31987
31988         * 5vsymbol.adb:
31989         Extensive modifications to take into account the reference symbol file,
31990         the symbol policy, the library version and to put in the symbol file the
31991         minor and major IDs.
31992
31993         * bld.adb (Process_Declarative_Items): Put second argument of
31994         gprcmd to_absolute between single quotes, to avoid problems with
31995         Windows.
31996
31997         * bld-io.adb: Update Copyright notice.
31998         (Flush): Remove last character of a line, if it is a back slash, to
31999         avoid make problems.
32000
32001         * gnatsym.adb:
32002         Implement new scheme with reference symbol file and symbol policy.
32003
32004         * g-os_lib.ads: (Is_Directory): Clarify comment
32005
32006 2003-11-19  Robert Dewar  <dewar@gnat.com>
32007
32008         * atree.adb: Move New_Copy_Tree global variables to head of package
32009
32010         * errout.adb: Minor reformatting
32011
32012 2003-11-19  Javier Miranda  <miranda@gnat.com>
32013
32014         * sem_ch4.adb: (Diagnose_Call): Improve error message.
32015         Add reference to Ada0Y (AI-50217)
32016
32017         * sem_ch6.adb, sem_ch8.adb, sem_type.adb,
32018         sem_util.adb: Add reference to AI-50217
32019
32020         * sinfo.ads: (N_With_Clause): Document fields referred to AI-50217
32021
32022         * sprint.adb: Add reference to Ada0Y (AI-50217, AI-287)
32023
32024         * sem_aggr.adb: Complete documentation of AI-287 changes
32025
32026         * par-ch4.adb: Document previous changes.
32027
32028         * lib-load.adb, lib-writ.adb, einfo.ads, par-ch10.adb,
32029         sem_cat.adb, sem_ch3.adb, sem_ch10.adb, sem_ch12.adb: Add references to
32030         Ada0Y (AI-50217)
32031
32032         * exp_aggr.adb: Add references to AI-287 in previous changes
32033
32034 2003-11-19  Ed Schonberg  <schonberg@gnat.com>
32035
32036         * exp_ch6.adb:
32037         (Add_Call_By_Copy_Node): Do not original node of rewritten expression
32038         in the rewriting is the result of an inlined call.
32039
32040         * exp_ch6.adb (Add_Call_By_Copy_Node): If actual for (in-)out
32041         parameter is a type conversion, use original node to construct the
32042         post-call assignment, because expression may have been rewritten, e.g.
32043         if it is a packed array.
32044
32045         * sem_attr.adb:
32046         (Resolve_Attribute, case 'Constrained): Attribute is legal in an inlined
32047         body, just as it is in an instance.
32048         Categorization routines
32049
32050         * sem_ch12.adb (Analyze_Association, Instantiate_Formal_Subprogram,
32051         Instantiate_Object): Set proper sloc reference for message on missing
32052         actual.
32053
32054 2003-11-19  Thomas Quinot  <quinot@act-europe.fr>
32055
32056         * Makefile.in: Add FreeBSD libgnat pairs.
32057
32058         * usage.adb: Fix typo in usage message.
32059
32060 2003-11-19  Jerome Guitton  <guitton@act-europe.fr>
32061
32062         * Makefile.in: On powerpc-wrs-vxworksae: Add s-thread.ad?,
32063         s-thrini.ad? and s-tiitho.adb to the full runtime, to support the
32064         pragma Thread_Body.
32065         Remove i-vthrea.ad? and s-tpae65.ad?, not needed anymore.
32066
32067         * s-thread.adb: This file is now a dummy implementation of
32068         System.Thread.
32069
32070 2003-11-19  Sergey Rybin  <rybin@act-europe.fr>
32071
32072         * rtsfind.adb (Initialize): Add initialization for RTE_Is_Available
32073
32074 2003-11-19  Emmanuel Briot  <briot@act-europe.fr>
32075
32076         * xref_lib.adb (Parse_Identifier_Info): Add handling of generic
32077         instanciation references in the parent type description.
32078
32079 2003-11-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
32080
32081         * ada-tree.def: (ALLOCATE_EXPR): Class is "2", not "s".
32082
32083         * decl.c (gnat_to_gnu_entity, case E_Floating_Point_Subtype): Set
32084         TYPE_PRECISION directly from esize.
32085
32086 2003-11-18  Thomas Quinot  <quinot@act-europe.fr>
32087
32088         * cstreams.c:
32089         Use realpath(3) on FreeBSD. Fix typo in comment while we are at it.
32090
32091         * init.c: Initialization routines for FreeBSD
32092
32093         * link.c: Link info for FreeBSD
32094
32095         * sysdep.c: Add the case of FreeBSD
32096
32097 2003-11-17  Jerome Guitton  <guitton@act-europe.fr>
32098
32099         * 5zthrini.adb: Remove the call to Init_RTS at elaboration, as it is
32100         already called in System.Threads.
32101
32102         * 5ztiitho.adb (Initialize_Task_Hooks): Remove the registration of the
32103         environment task, as it has been moved to System.Threads.Initialization.
32104
32105 2003-11-17  Arnaud Charlet  <charlet@act-europe.fr>
32106
32107         * adaint.c (__gnatlib_install_locks): Only reference
32108         __gnat_install_locks on VMS, since other platforms can avoid using
32109         --enable-threads=gnat
32110
32111 2003-11-17  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
32112
32113         * ada-tree.h: (TYPE_IS_PACKED_ARRAY_TYPE_P): New macro.
32114
32115         * decl.c (gnat_to_gnu_entity, case E_Array_Subtype): Set
32116         TYPE_PACKED_ARRAY_TYPE_P.
32117         (validate_size): Do not verify size if TYPE_IS_PACKED_ARRAY_TYPE_P.
32118
32119         Part of PR ada/12806
32120         * utils.c (float_type_for_precision): Renamed from float_type_for_size.
32121         Use GET_MODE_PRECISION instead of GET_MODE_BITSIZE.
32122
32123 2003-11-17  Vincent Celier  <celier@gnat.com>
32124
32125         * gnatchop.adb (Error_Msg): New Boolean parameter Warning, defaulted
32126         to False.
32127         Do not set exit status to Failure when Warning is True.
32128         (Gnatchop): Make errors "no compilation units found" and
32129         "no source files written" warnings only.
32130
32131         * make.adb (Gnatmake): When using a project file, set
32132         Look_In_Primary_Dir to False.
32133         (Configuration_Pragmas_Switch): Check for Global_Configuration_Pragmas
32134         and Local_Configuration_Pragmas in the project where they are declared
32135         not an extending project which might have inherited them.
32136
32137         * osint.adb (Locate_File): If Name is already an absolute path, do not
32138         look for a directory.
32139
32140         * par-ch10.adb (P_Compilation_Unit): If source contains no token, and
32141         -gnats (Check_Syntax) is used, issue only a warning, not an error.
32142
32143         * prj.adb (Register_Default_Naming_Scheme): Add new component Project
32144         in objects of type Variable_Value.
32145
32146         * prj.ads: (Variable_Value): New component Project
32147
32148         * prj-nmsc.adb (Ada_Check.Warn_If_Not_Sources): No warning if source
32149         is in a project extended by Project.
32150
32151         * prj-proc.adb (Add_Attributes): New parameter Project. Set component
32152         Project of Variable_Values to this new parameter value.
32153         (Expression): Set component Project of Variable_Values.
32154         (Process_Declarative_Items): Call Add_Attributes with parameter Project.
32155         Set the component Project in array elements.
32156
32157 2003-11-17  Sergey Rybin  <rybin@act-europe.fr>
32158
32159         * errout.adb: (Initialize): Add initialization for error nodes.
32160
32161         * sem_ch12.adb (Initialize): Add missing initializations for
32162         Exchanged_Views and Hidden_Entities.
32163
32164 2003-11-17  Ed Schonberg  <schonberg@gnat.com>
32165
32166         * sem_ch12.adb (Copy_Generic_Node): Preserve entity when copying an
32167         already instantiated tree for use in subsequent inlining.
32168         (Analyze_Associations, Instantiate_Formal_Subprogram,
32169         Instantiate_Object): improve error message for mismatch in
32170         instantiations.
32171
32172         * sem_ch6.adb (Build_Body_To_Inline): Major cleanup to handle
32173         instantiations of subprograms declared in instances.
32174
32175 2003-11-17  Javier Miranda  <miranda@gnat.com>
32176
32177         * sem_ch4.adb (Analyze_Allocator): Previous modification must be
32178         executed only under the Extensions_Allowed flag.
32179
32180 2003-11-17  Robert Dewar  <dewar@gnat.com>
32181
32182         * a-exexda.adb (Address_Image): Fix documentation to indicate leading
32183         zeroes suppressed.
32184         (Address_Image): Fix bug of returning 0x instead of 0x0
32185         Minor reformatting (function specs).
32186
32187         * einfo.ads: Minor fix for documentation of Is_Bit_Packed_Array
32188         (missed case of 33-63)
32189
32190         * freeze.adb, sem_ch13.adb: Properly check size of packed bit array
32191
32192         * s-thread.adb: Add comments for pragma Restriction
32193
32194         * exp_aggr.adb, g-debuti.adb, par-ch4.adb, sem_aggr.adb,
32195         sem_ch6.adb, sprint.adb, xref_lib.adb: Minor reformatting
32196
32197 2003-11-17  Ed Falis  <falis@gnat.com>
32198
32199         * s-thread.adb: Added No_Tasking restriction for this implementation.
32200
32201 2003-11-17  Emmanuel Briot  <briot@act-europe.fr>
32202
32203         * xref_lib.adb (Parse_Identifier_Info): Add handling of generic
32204         instanciation references in the parent type description.
32205
32206 2003-11-17  GNAT Script  <nobody@gnat.com>
32207
32208         * Make-lang.in: Makefile automatically updated
32209
32210 2003-11-16  Jason Merrill  <jason@redhat.com>
32211
32212         * Make-lang.in (ada.tags): Create TAGS.sub files in each directory
32213         and TAGS files that include them for each front end.
32214
32215 2003-11-14  Andreas Jaeger  <aj@suse.de>
32216
32217         * lang.opt: Change -Wno-long-long to -Wlong-long since the latter
32218         is the canonical version.
32219         * misc.c (gnat_handle_option): Likewise.
32220
32221         * Makefile.in (LIBGNAT_TARGET_PAIRS): Add rules for x86_64-linux.
32222
32223         * 5nsystem.ads: New file for x86_64-linux-gnu.
32224
32225 2003-11-14  Arnaud Charlet  <charlet@act-europe.fr>
32226
32227         * nmake.ads, nmake.adb, sinfo.h, treeprs.ads: Regenerated.
32228
32229         * comperr.adb: Fix logic in previous change.
32230
32231 2003-11-13  Vincent Celier  <celier@gnat.com>
32232
32233         * 5bml-tgt.adb (Build_Dynamic_Library): Use
32234         Osint.Include_Dir_Default_Prefix instead of
32235         Sdefault.Include_Dir_Default_Name.
32236
32237         * gnatlbr.adb: Update Copyright notice
32238         (Gnatlbr): : Use Osint.Include_Dir_Default_Prefix instead of
32239         Sdefault.Include_Dir_Default_Name and Osint.Object_Dir_Default_Prefix
32240         instead of Sdefault.Object_Dir_Default_Name
32241
32242         * gnatlink.adb:
32243         (Process_Binder_File): Never suppress the option following -Xlinker
32244
32245         * mdll-utl.adb:
32246         (Gcc): Use Osint.Object_Dir_Default_Prefix instead of
32247         Sdefault.Object_Dir_Default_Name.
32248
32249         * osint.ads, osint.adb:
32250         (Include_Dir_Default_Prefix, Object_Dir_Default_Prefix): New functions
32251         Minor reformatting.
32252
32253         * vms_conv.ads: Minor reformating
32254         Remove GNAT STANDARD and GNAT PSTA
32255
32256         * vms_conv.adb:
32257         Allow GNAT MAKE to have several files on the command line.
32258         (Init_Object_Dirs): Use Osint.Object_Dir_Default_Prefix instead of
32259         Sdefault.Object_Dir_Default_Name.
32260         Minor Reformating
32261         Remove data for GNAT STANDARD
32262
32263         * vms_data.ads:
32264         Add new compiler qualifier /PRINT_STANDARD (-gnatS)
32265         Remove data for GNAT STANDARD
32266         Remove options and documentation for -gnatwb/-gnatwB: these warning
32267         options no longer exist.
32268
32269 2003-11-13  Ed Falis  <falis@gnat.com>
32270
32271         * 5zthrini.adb: (Init_RTS): Made visible
32272
32273         * 5zthrini.adb:
32274         (Register): Removed unnecessary call to taskVarGet that checked whether
32275          an ATSD was already set as a task var for the argument thread.
32276
32277         * s-thread.adb:
32278         Updated comment to reflect that this is a VxWorks version
32279         Added context clause for System.Threads.Initialization
32280         Added call to System.Threads.Initialization.Init_RTS
32281
32282 2003-11-13  Jerome Guitton  <guitton@act-europe.fr>
32283
32284         * 5zthrini.adb:
32285         (Init_RTS): New procedure, for the initialization of the run-time lib.
32286
32287         * s-thread.adb:
32288         Remove dependancy on System.Init, so that this file can be used in the
32289         AE653 sequential run-time lib.
32290
32291 2003-11-13  Robert Dewar  <dewar@gnat.com>
32292
32293         * bindgen.adb: Minor reformatting
32294
32295 2003-11-13  Ed Schonberg  <schonberg@gnat.com>
32296
32297         * checks.adb:
32298         (Apply_Discriminant_Check): Do no apply check if target type is derived
32299         from source type with no applicable constraint.
32300
32301         * lib-writ.adb:
32302         (Ensure_System_Dependency): Do not apply the style checks that may have
32303         been specified for the main unit.
32304
32305         * sem_ch8.adb:
32306         (Find_Selected_Component): Further improvement in error message, with
32307         RM reference.
32308
32309         * sem_res.adb:
32310         (Resolve): Handle properly the case of an illegal overloaded protected
32311         procedure.
32312
32313 2003-11-13  Javier Miranda  <miranda@gnat.com>
32314
32315         * exp_aggr.adb:
32316         (Has_Default_Init_Comps): New function to check the presence of
32317         default initialization in an aggregate.
32318         (Build_Record_Aggr_Code): Recursively expand the ancestor in case of
32319         extension aggregate of a limited record. In addition, a new formal
32320         was added to do not initialize the record controller (if any) during
32321         this recursive expansion of ancestors.
32322         (Init_Controller): Add support for limited record components.
32323         (Expand_Record_Aggregate): In case of default initialized components
32324         convert the aggregate into a set of assignments.
32325
32326         * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Update the comment
32327         describing the new syntax.
32328         Nothing else needed to be done because this subprogram delegates part of
32329         its work to P_Precord_Or_Array_Component_Association.
32330         (P_Record_Or_Array_Component_Association): Give support to the new
32331         syntax for default initialization of components.
32332
32333         * sem_aggr.adb:
32334         (Resolve_Aggregate): Relax the strictness of the frontend in case of
32335         limited aggregates.
32336         (Resolve_Record_Aggregate): Give support to default initialized
32337         components.
32338         (Get_Value): In case of default initialized components, duplicate
32339         the corresponding default expression (from the record type
32340         declaration). In case of default initialization in the *others*
32341         choice, do not check that all components have the same type.
32342         (Resolve_Extension_Aggregate): Give support to limited extension
32343         aggregates.
32344
32345         * sem_ch3.adb:
32346         (Check_Initialization): Relax the strictness of the front-end in case
32347         of aggregate and extension aggregates. This test is now done in
32348         Get_Value in a per-component manner.
32349
32350         * sem_ch4.adb (Analyze_Allocator): Don't post an error if the
32351         expression corresponds to a limited aggregate. This test is now done
32352         in Get_Value.
32353
32354         * sinfo.ads, sinfo.adb (N_Component_Association): Addition of
32355         Box_Present flag.
32356
32357         * sprint.adb (Sprint_Node_Actual): Modified to print an mbox if
32358         present in an N_Component_Association node
32359
32360 2003-11-13  Thomas Quinot  <quinot@act-europe.fr>
32361
32362         * sem_ch9.adb (Analyze_Accept_Statement): A procedure hides a
32363         type-conformant entry only if they are homographs.
32364
32365 2003-11-13  GNAT Script  <nobody@gnat.com>
32366
32367         * Make-lang.in: Makefile automatically updated
32368
32369 2003-11-12  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
32370
32371         * adadecode.c: Use <> form of include for ctype.h.
32372         * sysdep.c [IN_RTS]: Use <> form of include for time.h.
32373
32374 2003-11-12  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
32375
32376         * 5gsystem.ads (Functions_Return_By_DSP): Set to False.
32377         Works around PR middle-end/6552.
32378
32379 2003-11-10  Ed Falis  <falis@gnat.com>
32380
32381         * 5ytiitho.adb: (procStartHookAdd): Definition and call deleted
32382
32383         * 5zinit.adb: (Install_Handler): Moved back to spec
32384         (Install_Signal_Handlers): Deleted
32385
32386         * 5zthrini.adb: Added context clause for System.Storage_Elements
32387         (Register): Only handles creation of taskVar; initialization moved to
32388         Thread_Body_Enter.
32389         (Reset_TSD): Deleted; replaced by Thread_Body_Enter
32390         Added declaration of environment task secondary stack and
32391         initialization.
32392
32393         * s-thread.adb: Implement bodies for thread body processing
32394
32395         * s-thread.ads:
32396         Added comment identifying supported targets for pragma Thread_Body.
32397
32398 2003-11-10  Pascal Obry  <obry@gnat.com>
32399
32400         * adaint.c (_gnat_stat) [WIN32]: Check if name is not bigger than
32401         GNAT_MAX_PATH_LEN.
32402
32403         * s-fileio.adb:
32404         (Open): Properly check for string length before copying into the buffer.
32405         Raises Name_Error if buffer is too small. Note that this was a potential
32406         buffer overflow.
32407
32408 2003-11-10  Romain Berrendonner  <berrendo@act-europe.fr>
32409
32410         * bindgen.adb, comperr.adb: Code clean ups.
32411         * gnatvsn.ads, gnatvsn.adb (Get_Gnat_Version_Type): New function.
32412
32413 2003-11-10  Sergey Rybin  <rybin@act-europe.fr>
32414
32415         * gnat1drv.adb: Add call to Sem_Elim.Initialize.
32416
32417 2003-11-10  Vincent Celier  <celier@gnat.com>
32418
32419         * gprcmd.adb:
32420         (Gprcmd): Add new command "prefix" to get the prefix of the GNAT
32421         installation.
32422
32423         * make.adb (Scan_Make_Arg): Transmit -nostdlib to the compiler
32424
32425         * prj.adb: (Project_Empty): Add new boolean component Virtual
32426
32427         * prj.ads: (Virtual_Prefix): New constant string
32428         (Project_Data): New boolean component Virtual
32429
32430         * prj-nmsc.adb (Language_Independent_Check): Adjust error message when
32431         a library project is extended by a virtual extending project.
32432
32433         * prj-part.adb:
32434         Modifications throughout to implement extending-all project, including:
32435         (Virtual_Hash, Processed_Hash): New hash tables
32436         (Create_Virtual_Extending_Project): New procedure
32437         (Look_For_Virtual_Projects_For): New procedure
32438
32439         * prj-proc.adb:
32440         (Process): After checking the projects, if main project is an
32441         extending-all project, set the object directory of all virtual extending
32442         project to the object directory of the main project.
32443         Adjust error message when a virtual extending project has the same
32444         object directory as an project being extended.
32445         (Recursive_Process): If name starts with the virtual prefix, set Virtual
32446         to True in the project data.
32447
32448         * prj-tree.adb:
32449         (Default_Project_Node): Add new boolean component Extending_All
32450         (Is_Extending_All): New function
32451         (Set_Is_Extending_All): New procedure
32452
32453         * prj-tree.ads: (Is_Extending_All): New function
32454         (Set_Is_Extending_All): New procedure
32455         (Project_Node_Record): New boolean component Extending_All
32456
32457         * switch-c.adb: (Scan_Front_End_Switches): Process -nostdlib
32458
32459         * vms_data.ads:
32460         Add qualifier /NOSTD_LIBRARIES (-nostdlib) for the compiler
32461
32462         * bld.adb (Recursive_Process): If MAKE_ROOT is not defined, call
32463         "gprcmd prefix" to define it.
32464
32465 2003-11-10  Thomas Quinot  <quinot@act-europe.fr>
32466
32467         * einfo.ads: Fix a typo and remove an extraneous word in comments.
32468
32469         * lib-load.adb:
32470         (Create_Dummy_Package_Unit): Set the scope of the entity for the
32471         created dummy package to Standard_Standard, not to itself, to
32472         defend other parts of the front-end against encoutering a cycle in
32473         the scope chain.
32474
32475         * sem_ch10.adb:
32476         (Analyze_With_Clause): When setting the entities for the successive
32477         N_Expanded_Names that constitute the name of a child unit, do not
32478         attempt to go further than Standard_Standard in the chain of scopes.
32479         This case arises from the placeholder units created by
32480         Create_Dummy_Package_Unit in the case of a with_clause for a
32481         nonexistent child unit.
32482
32483 2003-11-10  Ed Schonberg  <schonberg@gnat.com>
32484
32485         * exp_ch6.adb:
32486         (Expand_Thread_Body): Place subprogram on scope stack, so that new
32487         declarations are given the proper scope.
32488
32489         * sem_ch13.adb:
32490         (Check_Expr_Constants): Reject an expression that contains a constant
32491         created during expansion, and that appears after the object to which
32492         the address clause applies.
32493
32494         * sem_ch5.adb (Check_Controlled_Array_Attribute): Subsidiary of
32495         Analyze_Iteration_Scheme, to rewrite a loop parameter specification
32496         that uses 'Range of a function call with controlled components, so
32497         that the function result can be finalized before starting the loop.
32498
32499         * sem_ch8.adb:
32500         (Find_Selected_Component): Improve error message when prefix is
32501         an implicit dereference of an incomplete type.
32502
32503 2003-11-10  Robert Dewar  <dewar@gnat.com>
32504
32505         * opt.ads: New Print_Standard flag for -gnatS switch
32506
32507         * sem_ch13.adb: Remove some additional checks for unaligned arrays
32508
32509         * cstand.adb (Create_Standard): Print out package standard if -gnatS
32510         switch set
32511
32512         * debug.adb: Update doc for -gnatds to discuss relationship with new
32513         -gnatS flag
32514
32515         * sinfo.adb: Add new field Entity_Or_Associated_Node
32516
32517         * sinfo.ads: Add new field Entity_Or_Associated_Node
32518         Update documentation for Associated_Node and Entity fields to clarify
32519         relationship and usage.
32520
32521         * sprint.adb:
32522         (Write_Id): Properly process Associated_Node field in generic template
32523
32524         * switch-c.adb:
32525         Recognize new -gnatS switch for printing package Standard
32526         This replaces gnatpsta
32527
32528         * usage.adb:
32529         Add line for  new -gnatS switch for printing package Standard
32530         This replaces gnatpsta
32531
32532 2003-11-10  Andreas Jaeger  <aj@suse.de>
32533
32534         * 7sosprim.adb: tv_usec of struct_timeval and time_t are long
32535         integer.
32536
32537 2003-11-10  Arnaud Charlet  <charlet@act-europe.fr>
32538
32539         * misc.c, lang.opt: Add handling of -nostdlib, now recognized/needed
32540         by gnat1.
32541
32542 2003-11-10  Arnaud Charlet  <charlet@act-europe.fr>
32543
32544         * Makefile.in, Make-lang.in: Remove build of gnat_wrapper and gnatpsta,
32545         no longer needed.
32546
32547         * gnatpsta.adb, gnat_wrapper.adb: Removed, no longer needed.
32548
32549         * sysdep.c: Add handling of cygwin.
32550
32551 2003-11-10  GNAT Script  <nobody@gnat.com>
32552
32553         * Make-lang.in: Makefile automatically updated
32554
32555 2003-11-10  Arnaud Charlet  <charlet@act-europe.fr>
32556
32557         PR 12950
32558         * osint.ads, osint.adb (Relocate_Path, Executable_Suffix): New
32559         functions. Used to handle dynamic prefix relocation, via set_std_prefix.
32560         Replace GNAT_ROOT by GCC_ROOT.
32561
32562         * Make-lang.in: Use new function Relocate_Path to generate sdefault.adb
32563
32564 2003-11-06  Zack Weinberg  <zack@codesourcery.com>
32565
32566         * misc.c (fp_prec_to_size, fp_size_to_prec): Use GET_MODE_PRECISION
32567         and update for changed meaning of GET_MODE_BITSIZE.
32568
32569 2003-11-04  Doug Rupp  <rupp@gnat.com>
32570
32571         * sysdep.c: Problem discovered during IA64 VMS port.
32572         [VMS] #include <unixio.h> to get proper prototypes.
32573
32574         * adaint.c:
32575         Issues discovered/problems fixed during IA64 VMS port.
32576         [VMS] #define _POSIX_EXIT for proper semantics.
32577         [VMS] #include <unixio.h> for proper prototypes.
32578         [VMS] (fork): #define IA64 version.
32579         (__gnat_os_exit): Remove unnecessary VMS specific code.
32580
32581 2003-11-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
32582
32583         Part of PR ada/12806
32584         * ada-tree.h (TYPE_DIGITS_VALUE, SET_TYPE_DIGITS_VALUE): Save count as
32585         tree, not integer.
32586
32587         * decl.c:
32588         (gnat_to_gnu_entity, case E_Floating_Point_Type): Save count as tree,
32589         not integer.
32590
32591         * targtyps.c, decl.c, misc.c,
32592         gigi.h (fp_prec_to_size, fp_size_to_prec): Temporary
32593         routines to work around change in FP sizing semantics in GCC.
32594
32595         * utils.c:
32596         (build_vms_descriptor): TYPE_DIGITS_VALUE is tree, not integer.
32597
32598         * gigi.h: (enumerate_modes): New function.
32599
32600         * Make-lang.in: (ada/misc.o): Add real.h.
32601
32602         * misc.c: (enumerate_modes): New function.
32603
32604 2003-11-04  Robert Dewar  <dewar@gnat.com>
32605
32606         * 3vtrasym.adb: Minor reformatting
32607         Use terminology encoded/decoded name, rather than C++ specific notion
32608         of mangling (this is the terminology used throughout GNAT).
32609
32610         * einfo.h: Regenerated
32611
32612         * einfo.ads, einfo.adb: Add new flag Is_Thread_Body
32613
32614         * exp_ch6.adb:
32615         (Expand_N_Subprogram_Body): Handle expansion of thread body procedure
32616
32617         * par-prag.adb: Add dummy entry for Thread_Body pragma
32618
32619         * rtsfind.ads:
32620         Add entries for System.Threads entities for thread body processing
32621
32622         * sem_attr.adb:
32623         (Analyze_Pragma, Access attributes): Check these are not applied to a
32624         thread body, since this is not permitted
32625
32626         * sem_prag.adb: Add processing for Thread_Body pragma.
32627         Minor comment fix.
32628
32629         * sem_res.adb:
32630         (Resolve_Call): Check for incorrect attempt to call a thread body
32631          procedure with a direct call.
32632
32633         * snames.ads, snames.adb: Add entry for Thread_Body pragma
32634         Add names associated with thread body expansion
32635
32636         * snames.h: Add entry for Thread_Body pragma
32637
32638         * s-thread.adb: Add entries for thread body processing
32639         These are dummy bodies so far
32640
32641         * s-thread.ads: Add documentation on thread body handling.
32642         Add entries for thread body processing.
32643
32644 2003-11-04  Javier Miranda  <miranda@gnat.com>
32645
32646         * sem_ch10.adb:
32647         (Build_Limited_Views): Return after posting an error in case of limited
32648         with_clause on subprograms, generics, instances or generic renamings
32649         (Install_Limited_Withed_Unit): Do nothing in case of limited with_clause
32650         on subprograms, generics, instances or generic renamings
32651
32652 2003-11-04  Arnaud Charlet  <charlet@act-europe.fr>
32653
32654         * raise.c (setup_to_install): Correct mistake in last revision; two
32655         arguments out of order.
32656
32657         * trans.c, cuintp.c, argv.c, aux-io.c, cal.c, errno.c, exit.c,
32658         gnatbl.c, init.c, stringt.h, utils.c, utils2.c: Update copyright
32659         notice, missed in previous change.
32660         Remove trailing blanks and other style errors introduced in previous
32661         change.
32662
32663 2003-11-04  Olivier Hainque  <hainque@act-europe.fr>
32664
32665         * decl.c (gnat_to_gnu_field): Adjust the conditions under which we get
32666         rid of the wrapper for a LJM type, ensuring we don't do that if the
32667         field is addressable.  This avoids potential low level type view
32668         mismatches later on, for instance in a by-reference argument passing
32669         process.
32670
32671 2003-11-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
32672
32673         * decl.c (gnat_to_gnu_field): No longer check for BLKmode being
32674         aligned at byte boundary.
32675
32676 2003-11-04  Joel Brobecker  <brobecker@gnat.com>
32677
32678         * decl.c (components_to_record): Do not delete the empty variants from
32679         the end of the union type.
32680
32681 2003-11-04  Ed Schonberg  <schonberg@gnat.com>
32682
32683         * exp_ch4.adb (Expand_N_Op_Eq): Use base type when locating primitive
32684         operation for a derived type, an explicit declaration may use a local
32685         subtype of Boolean.
32686
32687 2003-11-04  Vincent Celier  <celier@gnat.com>
32688
32689         * make.adb (Gnatmake): Allow main sources on the command line with a
32690         library project when it is only for compilation (no binding or
32691         linking).
32692
32693 2003-11-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
32694
32695         * Makefile.in: Remove many duplicate variables.
32696
32697 2003-11-03  Kelley Cook  <kcook@gcc.gnu.org>
32698
32699         * Make-lang.in (dvi): Move targets to $(docobjdir).
32700         (gnat_ug_vms.dvi): Simplify rule and adjust target.
32701         (gnat_ug_wnt.dvi): Likewise.
32702         (gnat_ug_unx.dvi): Likewise.
32703         (gnat_ug_vxw.dvi): Likewise.
32704         (gnat_rm.dvi): Likewise.
32705         (gnat-style.dvi): Likewise.
32706
32707 2003-10-31  Kelley Cook  <kcook@gcc.gnu.org>
32708
32709         * gigi.h: Missed commit from update for C90.
32710
32711 2003-10-31  Kelley Cook  <kcook@gcc.gnu.org>
32712
32713         * Makefile.in (ada/b_gnat1.o): Compile with -Wno-error.
32714
32715 2003-10-31  Andreas Schwab  <schwab@suse.de>
32716
32717         * raise.c (get_action_description_for): Fix typo in last change.
32718
32719 2003-10-31  Nathanael Nerode  <neroden@gcc.gnu.org>
32720
32721         PR ada/12761
32722         * ada/Make-lang.in: Move default definitions of X_ADA_CFLAGS,
32723         T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS from here to master Makefile.in.
32724
32725 2003-10-30  Kelley Cook  <kcook@gcc.gnu.org>
32726
32727         * adadecode.c, adaint.c, argv.c, aux-io.c, cal.c, cio.c, cstreams.c,
32728         ctrl_c.c, cuintp.c, decl.c, errno.c, exit.c, expect.c, final.c,
32729         gigi.h, gmem.c, gnatbl.c, init.c, misc.c, mkdir.c, raise.c, socket.c,
32730         sysdep.c, sysdep.c, targtyps.c, tb-alvms.c, tb-alvxw.c, tracebak.c,
32731         trans.c, utils.c, utils2.c: Convert function prototypes to C90.
32732
32733 2003-10-30  Vasiliy Fofanov  <fofanov@act-europe.fr>
32734
32735         * 3vtrasym.adb:
32736         Demangle Ada symbols returned by TBK$SYMBOLIZE. Correctly align line
32737         numbers when symbol name is too long.
32738
32739 2003-10-30  Ed Falis  <falis@gnat.com>
32740
32741         * g-signal.ads, g-signal.adb: New files
32742
32743         * impunit.adb: (Non_Imp_File_Names): Added "g-signal"
32744
32745         * Makefile.rtl: Introduce GNAT.Signals
32746
32747 2003-10-30  Robert Dewar  <dewar@gnat.com>
32748
32749         * freeze.adb: Minor reformatting
32750
32751         * lib-writ.adb (Write_ALI): Never write ali file if -gnats is specified
32752
32753         * par.adb, par-ch12.adb, par-ch13.adb, par-ch2.adb, par-ch3.adb,
32754         par-ch5.adb, par-ch6.adb, par-ch9.adb, par-util.adb:
32755         New handling of Id_Check parameter to improve recognition of keywords
32756         used as identifiers.
32757         Update copyright notice to include 2003
32758
32759 2003-10-29  Robert Dewar  <dewar@gnat.com>
32760
32761         * 3vtrasym.adb, 5vtraent.ads, sprint.adb,
32762         sem_ch10.adb: Minor reformatting
32763
32764         * exp_ch5.adb (Expand_Assign_Array): Test for bit unaligned operands
32765         (Expand_Assign_Record): Test right hand side for bit unaligned as well
32766
32767 2003-10-29  Vasiliy Fofanov  <fofanov@act-europe.fr>
32768
32769         * 3vtrasym.adb, 5vtraent.adb, 5vtraent.ads, tb-alvms.c:
32770         Support for TBK$SYMBOLIZE-based symbolic traceback.
32771
32772 2003-10-29  Jose Ruiz  <ruiz@act-europe.fr>
32773
32774         * exp_disp.adb:
32775         Revert previous change, that did not work well when pragma No_Run_Time
32776         was used in conjunction with a run-time other than ZFP.
32777
32778 2003-10-29  Vincent Celier  <celier@gnat.com>
32779
32780         * make.adb:
32781         (Gnatmake): When there are no Ada mains in attribute Main, disable the
32782          bind and link steps only is switch -z is not used.
32783
32784 2003-10-29  Arnaud Charlet  <charlet@act-europe.fr>
32785
32786         * Makefile.generic: Remove duplicated setting of CC.
32787
32788         * Makefile.prolog: Set CC to gcc by default, to override make's
32789         default (cc).
32790
32791         * einfo.h: Regenerated.
32792
32793 2003-10-29  Ed Schonberg  <schonberg@gnat.com>
32794
32795         * sem_ch10.adb (Analyze_Subunit): Restore state of suppress flags for
32796         current body, after compiling subunit.
32797
32798         * itypes.adb (Create_Itype): In ASIS_Mode, do not freeze the itype
32799         when in deleted code, because gigi needs properly ordered freeze
32800         actions to annotate types.
32801
32802         * freeze.adb (Is_Fully_Defined): Predicate must be recursive, to
32803         prevent the premature freezing of record type that contains
32804         subcomponents with a private type that does not yet have a completion.
32805
32806 2003-10-29  Javier Miranda  <miranda@gnat.com>
32807
32808         * sem_ch12.adb:
32809         (Analyze_Package_Instantiation): Check that instances can not be used in
32810         limited with_clauses.
32811
32812         * sem_ch8.adb:
32813         (Analyze_Package_Renaming): Check that limited withed packages cannot
32814         be renamed. Improve text on error messages related to limited
32815         with_clauses.
32816
32817         * einfo.adb, einfo.ads: Remove Non_Limited_Views attribute.
32818
32819         * sprint.adb: (Sprint_Node_Actual): Print limited with_clauses.
32820         Update copyright notice.
32821
32822         * sem_ch10.adb: (Build_Limited_Views): Complete its documentation.
32823         (Install_Limited_Context_Clauses): New subprogram that isolates all the
32824         checks required for limited context_clauses and installs the limited
32825         view.
32826         (Install_Limited_Withed_Unit): Complete its documentation.
32827         (Analyze_Context): Check that limited with_clauses are only allowed in
32828         package specs.
32829         (Install_Context): Call Install_Limited_Context_Clauses after the
32830         parents have been installed.
32831         (Install_Limited_Withed_Unit): Add documentation. Mark the installed
32832         package as 'From_With_Type'; this mark indicates that the limited view
32833         is installed. Used to check bad usages of limited with_clauses.
32834         (Build_Limited_Views): Do not add shadow entities to the scope's list
32835         of entities. Do not add real entities to the Non_Limited_Views chain.
32836         Improve error notification.
32837         (Remove_Context_Clauses): Remove context clauses in two phases:
32838         limited views first and regular views later (to maintain the
32839         stack model).
32840         (Remove_Limited_With_Clause): If the package is analyzed then reinstall
32841         its visible entities.
32842
32843 2003-10-29  Thomas Quinot  <quinot@act-europe.fr>
32844
32845         * sem_type.adb (Specific_Type): Type Universal_Fixed is compatible
32846         with any type that Is_Fixed_Point_Type.
32847
32848         * sinfo.ads: Fix documentation for Associated_Node attribute.
32849
32850 2003-10-29  Sergey Rybin  <rybin@act-europe.fr>
32851
32852         * switch-c.adb (Scan_Front_End_Switches): ASIS_Mode is set now when
32853         both '-gnatc' and '-gnatt' are specified.
32854
32855         * atree.adb (Initialize): Add initialization for Node_Count (set to
32856         zero).
32857
32858 2003-10-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
32859
32860         * decl.c (gnat_to_gnu_entity, case E_Subprogram): If no return value,
32861         do not consider as Pure.
32862
32863         Part of implementation of function-at-a-time:
32864
32865         * trans.c (gnat_to_gnu_code): If IS_STMT, call expand_expr_stmt.
32866         (tree_transform): Add new argument to build_component_ref.
32867         (tree_transform, case N_Assignment_Statement): Make and return an
32868         EXPR_STMT.
32869         (tree_transform): If result IS_STMT, set flags and return it.
32870         (gnat_expand_stmt, set_lineno_from_sloc): New functions.
32871
32872         * utils2.c (build_simple_component_ref, build_component_ref): Add new
32873         arg, NO_FOLD_P.
32874         (build_binary_op, case EQ_EXPR): Pass additional arg to it.
32875         (build_allocator): Likewise.
32876
32877         * utils.c (convert_to_fat_pointer, convert_to_thin_pointer, convert):
32878         Add new arg to build_component_ref.
32879         (maybe_unconstrained_array, unchecked_convert): Likewise.
32880
32881         * ada-tree.def (EXPR_STMT): New code.
32882
32883         * ada-tree.h (IS_STMT, TREE_SLOC, EXPR_STMT_EXPR): New macros.
32884
32885         * decl.c (gnat_to_gnu_entity, case object): Add extra arg to
32886         build_component_ref calls.
32887
32888         * misc.c (gnat_expand_expr): If IS_STMT, call gnat_expand_stmt.
32889
32890         * gigi.h (gnat_expand_stmt, set_lineno_from_sloc): New functions.
32891         (build_component_ref): Add new argument, NO_FOLD_P.
32892
32893 2003-10-27  Arnaud Charlet  <charlet@act-europe.fr>
32894
32895         * Makefile.generic: Add missing substitution on object_deps handling.
32896
32897         PR ada/5909
32898         * Make-lang.in (check-ada): Enable ACATS test suite.
32899
32900 2003-10-27  Robert Dewar  <dewar@gnat.com>
32901
32902         * exp_ch3.adb:
32903         (Freeze_Array_Type): We do not need an initialization routine for types
32904         derived from String or Wide_String. They should be treated the same
32905         as String and Wide_String themselves. This caused problems with the
32906         use of Initialize_Scalars.
32907
32908         * exp_ch5.adb:
32909         (Expand_Assign_Record): Do component-wise assignment of non-byte aligned
32910         composites. This allows use of component clauses that are not byte
32911         aligned.
32912
32913         * sem_prag.adb:
32914         (Analyze_Pragma, case Pack): Generate warning and ignore pack if there
32915         is an attempt to pack an array of atomic objects.
32916
32917         * make.adb, prj-env.adb, prj-env.ads: Minor reformatting
32918
32919 2003-10-27  Pascal Obry  <obry@gnat.com>
32920
32921         * g-dirope.adb:
32922         (Basename): Check for drive letters in a pathname only on DOS based OS.
32923
32924 2003-10-27  Vincent Celier  <celier@gnat.com>
32925
32926         * make.adb:
32927         (Gnatmake): When unable to change dir to the object dir, display the
32928         content of the parent dir of the obj dir, to try to understand why this
32929         happens.
32930
32931 2003-10-27  GNAT Script  <nobody@gnat.com>
32932
32933         * Make-lang.in: Makefile automatically updated
32934
32935 2003-10-27  Ed Schonberg  <schonberg@gnat.com>
32936
32937         * sem_ch12.adb:
32938         (Inline_Instance_Body): Indicate that the save/restore of use_clauses
32939         should not be done in Save/Restore_Scope_Stack, because it is performed
32940         locally.
32941
32942         * sem_ch8.adb:
32943         (Save_Scope_Stack, Restore_Scope_Stack): Add parameter to indicate
32944         whether use clauses should be removed/restored.
32945
32946         * sem_ch8.ads:
32947         (Save_Scope_Stack, Restore_Scope_Stack): Add parameter to indicate
32948         whether use clauses should be removed/restored.
32949
32950 2003-10-26  Andreas Jaeger  <aj@suse.de>
32951
32952         * Makefile.in: Remove duplicated lines.
32953
32954 2003-10-24  Arnaud Charlet  <charlet@act-europe.fr>
32955
32956         * gnatvsn.ads (Gnat_Static_Version_String): New constant, used to
32957         minimize the differences with ACT tree.
32958
32959         * gnatkr.adb, gnatlink.adb, gnatls.adb, gnatmake.adb,
32960         gnatprep.adb, gnatpsta.adb, gnatvsn.ads: Take advantage of
32961         Gnatvsn.Gnat_Static_Version_String to reduce differences between
32962         ACT and FSF trees.
32963
32964 2003-10-24  Pascal Obry  <obry@gnat.com>
32965
32966         PR ada/12014
32967         * adadecode.c (ostrcpy): New function.
32968         (__gnat_decode): Use ostrcpy of strcpy.
32969         (has_prefix): Set first parameter a const.
32970         (has_suffix): Set first parameter a const.
32971         Update copyright notice. Fix source name in header.
32972         Removes a trailing space.
32973
32974 2003-10-24  Jose Ruiz  <ruiz@act-europe.fr>
32975
32976         * exp_disp.adb:
32977         Remove the test against being in No_Run_Time_Mode before generating a
32978         call to Register_Tag. It is redundant with the test against the
32979         availability of the function Register_Tag.
32980
32981 2003-10-24  Vincent Celier  <celier@gnat.com>
32982
32983         * g-catiio.adb: (Month_Name): Correct spelling of February
32984
32985         * make.adb: (Mains): New package
32986         (Initialize): Call Mains.Delete
32987         (Gnatmake): Check that each main on the command line is a source of a
32988         project file and, if there are several mains, each of them is a source
32989         of the same project file.
32990         (Gnatmake): When a foreign language is specified in attribute Languages,
32991         no main is specified on the command line and attribute Mains is not
32992         empty, only build the Ada main. If there is no Ada main, just compile
32993         the Ada sources and their closure.
32994         (Gnatmake): If a main is specified on the command line with directory
32995         information, check that the source exists and, if it does, that the path
32996         is the actual path of a source of a project.
32997
32998         * prj-env.adb:
32999         (File_Name_Of_Library_Unit_Body): New Boolean parameter Full_Path. When
33000         Full_Path is True, return the full path instead of the simple file name.
33001         (Project_Of): New function
33002
33003         * prj-env.ads:
33004         (File_Name_Of_Library_Unit_Body): New Boolean parameter Full_Path,
33005         defaulted to False.
33006         (Project_Of): New function
33007
33008 2003-10-24  Arnaud Charlet  <charlet@act-europe.fr>
33009
33010         * Makefile.generic:
33011         Ensure objects of main project are always checked and rebuilt if needed.
33012         Set CC to gcc by default.
33013         Prepare new handling of link by creating a global archive (not activated
33014         yet).
33015
33016         * adadecode.h, atree.h, elists.h, nlists.h, raise.h,
33017         stringt.h: Update copyright notice. Remove trailing blanks.
33018         Fix source name in header.
33019
33020 2003-10-24  Robert Dewar  <dewar@gnat.com>
33021
33022         * sem_ch12.adb: Minor reformatting
33023
33024         * sem_ch3.adb:
33025         Minor reformatting (including new function return style throughout)
33026
33027         * sem_ch3.ads:
33028         Minor reformatting (including new function return style throughout)
33029
33030 2003-10-24  Arnaud Charlet  <charlet@act-europe.fr>
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  GNAT Script  <nobody@gnat.com>
33037
33038         * Make-lang.in: Makefile automatically updated
33039
33040 2003-10-23  Nathanael Nerode  <neroden@gcc.gnu.org>
33041
33042         * adadecode.h, atree.h, elists.h, namet.h, nlists.h, raise.h,
33043         stringt.h: Convert to ISO C90 declarations and definitions.
33044
33045 2003-10-23  Thomas Quinot  <quinot@act-europe.fr>
33046
33047         PR ada/11978
33048         * exp_ch13.adb (Expand_N_Freeze_Entity): Do not consider inherited
33049         External_Tag attribute definition clauses.
33050
33051 2003-10-23  Ed Schonberg  <schonberg@gnat.com>
33052
33053         PR ada/7613
33054         * exp_dbug.adb (Debug_Renaming_Declaration): For the renaming of a
33055         child unit, generate a fully qualified name to avoid spurious errors
33056         when the context contains renamings of different child units with
33057         the same simple name.
33058
33059         * exp_dbug.ads: Add documentation on name qualification for renamings
33060         of child units.
33061
33062 2003-10-23  Robert Dewar  <dewar@gnat.com>
33063
33064         * g-regpat.ads, g-regpat.adb: Minor reformatting
33065
33066 2003-10-23  Jose Ruiz  <ruiz@act-europe.fr>
33067
33068         * Makefile.in: Use the file 1atags.ads with the ZFP and cert run-times.
33069
33070 2003-10-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
33071
33072         * trans.c: (tree_transform, case N_Real_Literal): Add extra arg to
33073         Machine call.
33074
33075         * urealp.h: (Machine): Update to proper definition.
33076
33077 2003-10-23  Arnaud Charlet  <charlet@act-europe.fr>
33078
33079         * init.c, adaint.c: Minor reformatting.
33080
33081 2003-10-23  Danny Smith  <dannysmith@users.sourceforge.net>
33082
33083         * adaint.c (w32_epoch_offset): Define static const at file level.
33084         (win32_filetime): Replace offset with w32_epoch_offset. Use NULL
33085         rather than t_create, t_access in call to GetFileTime. Use union
33086         to convert between FILETIME and  unsigned long long.
33087         (__gnat_file_time_name): Test for invalid file handle.
33088         (__gnat_set_filetime_name): Support win32 targets using
33089         w32api SetFileTime.
33090
33091 2003-10-22  Danny Smith  <dannysmith@users.sourceforge.net>
33092
33093         * sysdep.c: Include conio.h if __MINGW32__ and !OLD_MINGW.
33094
33095         * ctrl_c.c (__gnat_int_handler): Remove declaration.
33096
33097         * decl.c (creat_concat_name):  Const-ify prefix.
33098
33099         * adaint.c: Include ctype.h if __MINGW32__.
33100         (__gnat_readlink): Mark arguments as possibly unused.
33101         (__gnat_symlink): Likewise.
33102         (__gnat_is_symbolic_link): Likewise.
33103         (__gnat_portable_spawn): Likewise.  Cast last arg of spawnvp to match
33104         declaration
33105         (__gnat_file_time_name): Don't declare struct stat statbuf when
33106         not needed.
33107         (__gnat_is_absolute_path): Add parenthesis around condition of
33108         'if' statement to avoid warning.
33109         (__gnat_plist_init): Specify void as parameter.
33110         (plist_enter): Likewise.
33111         (plist_leave): Likewise.
33112         (remove_handle): Make static. Initialize prev.
33113
33114 2003-10-22  Arnaud Charlet  <charlet@act-europe.fr>
33115
33116         PR ada/10110
33117         * Makefile.in: Disable build of gnatpsta.
33118         * cstreams.c (__gnat_full_name): Minor improvements and clean up
33119         of previous change.
33120
33121 2003-10-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
33122
33123         * tracebak.c (MAX): Avoid redefinition warning.
33124
33125         * init.c [sgi] (__gnat_error_handler): Remove i, unused.
33126         Change msg to const char *.
33127         (__gnat_install_handler): Remove ss, unused.
33128         [sun && __SVR4 && !__vxworks] (__gnat_error_handler): Change msg
33129         to const char *.
33130         * cstreams.c (__gnat_full_name): Declare p only when used.
33131         (__gnat_full_name) [sgi] Return buffer.
33132
33133 2003-10-22  Arnaud Charlet  <charlet@act-europe.fr>
33134
33135         * mingw32.h: New file.
33136         * gnat_wrapper.adb: New file.
33137
33138 2003-10-22  Jerome Roussel  <roussel@act-europe.fr>
33139
33140         * g-regpat.ads, g-regpat.adb (Match): new function, to know if a
33141         string match a pre compiled regular expression (the corresponding
33142         version of the function working on a raw regular expression)
33143         Fix typos in various comments
33144         Update copyright notice in spec
33145
33146 2003-10-21  Gary Dismukes  <dismukes@gnat.com>
33147
33148         * exp_ch3.adb:
33149         (Component_Needs_Simple_Initialization): Return False when the type is a
33150         packed bit array. Revise spec comments to document this case.
33151
33152         * exp_prag.adb:
33153         (Expand_Pragma_Import): Set any expression on the imported object to
33154         empty to avoid initializing imported objects (in particular this
33155         covers the case of zero-initialization of bit arrays).
33156         Update copyright notice.
33157
33158 2003-10-21  Ed Schonberg  <schonberg@gnat.com>
33159
33160         * sem_ch12.adb:
33161         (Load_Parent_Of_Generic): If parent is compilation unit, stop search,
33162         a subunit is missing.
33163         (Instantiate_Subprogram_Body): If body of function is missing, set type
33164         of return expression explicitly in dummy body, to prevent cascaded
33165         errors when a subunit is missing.
33166         Fixes PR 5677.
33167
33168         * sem_ch3.adb:
33169         (Access_Subprogram_Declaration): Verify that return type is valid.
33170         Fixes PR 8693.
33171
33172         * sem_elab.adb:
33173         (Check_Elab_Calls): Do not apply elaboration checks if the main unit is
33174         generic.
33175         Fixes PR 12318.
33176
33177         * sem_util.adb:
33178         (Corresponding_Discriminant): If the scope of the discriminant is a
33179         private type without discriminant, use its full view.
33180         Fixes PR 8247.
33181
33182 2003-10-21  Arnaud Charlet  <charlet@act-europe.fr>
33183
33184         * 3psoccon.ads, 3veacodu.adb, 3vexpect.adb, 3vsoccon.ads,
33185         3vsocthi.adb, 3vsocthi.ads, 3vtrasym.adb, 3zsoccon.ads,
33186         3zsocthi.adb, 3zsocthi.ads, 50system.ads, 51system.ads,
33187         55system.ads, 56osinte.adb, 56osinte.ads, 56taprop.adb,
33188         56taspri.ads, 56tpopsp.adb, 57system.ads, 58system.ads,
33189         59system.ads, 5aml-tgt.adb, 5bml-tgt.adb, 5csystem.ads,
33190         5dsystem.ads, 5fosinte.adb, 5gml-tgt.adb, 5hml-tgt.adb,
33191         5isystem.ads, 5lparame.adb, 5msystem.ads, 5psystem.ads,
33192         5sml-tgt.adb, 5sosprim.adb, 5stpopsp.adb, 5tsystem.ads,
33193         5usystem.ads, 5vml-tgt.adb, 5vsymbol.adb, 5vtraent.adb,
33194         5vtraent.ads, 5wml-tgt.adb, 5xparame.ads, 5xsystem.ads,
33195         5xvxwork.ads, 5yparame.ads, 5ytiitho.adb, 5zinit.adb,
33196         5zml-tgt.adb, 5zparame.ads, 5ztaspri.ads, 5ztfsetr.adb,
33197         5zthrini.adb, 5ztiitho.adb, 5ztpopsp.adb, 7stfsetr.adb,
33198         7straces.adb, 7strafor.adb, 7strafor.ads, 7stratas.adb,
33199         a-excach.adb, a-exexda.adb, a-exexpr.adb, a-exextr.adb,
33200         a-exstat.adb, a-strsup.adb, a-strsup.ads, a-stwisu.adb,
33201         a-stwisu.ads, bld.adb, bld.ads, bld-io.adb,
33202         bld-io.ads, clean.adb, clean.ads, ctrl_c.c,
33203         erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
33204         err_vars.ads, final.c, g-arrspl.adb, g-arrspl.ads,
33205         g-boubuf.adb, g-boubuf.ads, g-boumai.ads, g-bubsor.adb,
33206         g-bubsor.ads, g-comver.adb, g-comver.ads, g-ctrl_c.ads,
33207         g-dynhta.adb, g-dynhta.ads, g-eacodu.adb, g-excact.adb,
33208         g-excact.ads, g-heasor.adb, g-heasor.ads, g-memdum.adb,
33209         g-memdum.ads, gnatclean.adb, gnatsym.adb, g-pehage.adb,
33210         g-pehage.ads, g-perhas.ads, gpr2make.adb, gpr2make.ads,
33211         gprcmd.adb, gprep.adb, gprep.ads, g-semaph.adb,
33212         g-semaph.ads, g-string.adb, g-string.ads, g-strspl.ads,
33213         g-wistsp.ads, i-vthrea.adb, i-vthrea.ads, i-vxwoio.adb,
33214         i-vxwoio.ads, Makefile.generic, Makefile.prolog, Makefile.rtl,
33215         prep.adb, prep.ads, prepcomp.adb, prepcomp.ads,
33216         prj-err.adb, prj-err.ads, s-boarop.ads, s-carsi8.adb,
33217         s-carsi8.ads, s-carun8.adb, s-carun8.ads, s-casi16.adb,
33218         s-casi16.ads, s-casi32.adb, s-casi32.ads, s-casi64.adb,
33219         s-casi64.ads, s-casuti.adb, s-casuti.ads, s-caun16.adb,
33220         s-caun16.ads, s-caun32.adb, s-caun32.ads, s-caun64.adb,
33221         s-caun64.ads, scng.adb, scng.ads, s-exnint.adb,
33222         s-exnllf.adb, s-exnlli.adb, s-expint.adb, s-explli.adb,
33223         s-geveop.adb, s-geveop.ads, s-hibaen.ads, s-htable.adb,
33224         s-htable.ads, sinput-c.adb, sinput-c.ads, s-memcop.ads,
33225         socket.c, s-purexc.ads, s-scaval.adb, s-stopoo.adb,
33226         s-strcom.adb, s-strcom.ads, s-strxdr.adb, s-rident.ads,
33227         s-thread.adb, s-thread.ads, s-tpae65.adb, s-tpae65.ads,
33228         s-tporft.adb, s-traent.adb, s-traent.ads, styleg.adb,
33229         styleg.ads, styleg-c.adb, styleg-c.ads, s-veboop.adb,
33230         s-veboop.ads, s-vector.ads, symbols.adb, symbols.ads,
33231         tb-alvms.c, tb-alvxw.c, tempdir.adb, tempdir.ads,
33232         vms_conv.ads, vms_conv.adb, vms_data.ads,
33233         vxaddr2line.adb: Files added. Merge with ACT tree.
33234
33235         * 4dintnam.ads, 4mintnam.ads, 4uintnam.ads, 52system.ads,
33236         5dosinte.ads, 5etpopse.adb, 5mosinte.ads, 5qosinte.adb,
33237         5qosinte.ads, 5qstache.adb, 5qtaprop.adb, 5qtaspri.ads,
33238         5stpopse.adb, 5uintman.adb, 5uosinte.ads, adafinal.c,
33239         g-enblsp.adb, io-aux.c, scn-nlit.adb, scn-slit.adb,
33240         s-exnflt.ads, s-exngen.adb, s-exngen.ads, s-exnlfl.ads,
33241         s-exnlin.ads, s-exnsfl.ads, s-exnsin.ads, s-exnssi.ads,
33242         s-expflt.ads, s-expgen.adb, s-expgen.ads, s-explfl.ads,
33243         s-explin.ads, s-expllf.ads, s-expsfl.ads, s-expsin.ads,
33244         s-expssi.ads, style.adb: Files removed. Merge with ACT tree.
33245
33246         * 1ic.ads, 31soccon.ads, 31soliop.ads, 3asoccon.ads,
33247         3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3ssoccon.ads,
33248         3ssoliop.ads, 3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads,
33249         3wsoliop.ads, 41intnam.ads, 42intnam.ads, 4aintnam.ads,
33250         4cintnam.ads, 4gintnam.ads, 4hexcpol.adb, 4hintnam.ads,
33251         4lintnam.ads, 4nintnam.ads, 4ointnam.ads, 4onumaux.ads,
33252         4pintnam.ads, 4sintnam.ads, 4vcaldel.adb, 4vcalend.adb,
33253         4vintnam.ads, 4wexcpol.adb, 4wintnam.ads, 4zintnam.ads,
33254         51osinte.adb, 51osinte.ads, 52osinte.adb, 52osinte.ads,
33255         53osinte.ads, 54osinte.ads, 5aosinte.adb, 5aosinte.ads,
33256         5asystem.ads, 5ataprop.adb, 5atasinf.ads, 5ataspri.ads,
33257         5atpopsp.adb, 5avxwork.ads, 5bosinte.adb, 5bosinte.ads,
33258         5bsystem.ads, 5cosinte.ads, 5esystem.ads, 5fintman.adb,
33259         5fosinte.ads, 5fsystem.ads, 5ftaprop.adb, 5ftasinf.ads,
33260         5ginterr.adb, 5gintman.adb, 5gmastop.adb, 5gosinte.ads,
33261         5gproinf.ads, 5gsystem.ads, 5gtaprop.adb, 5gtasinf.ads,
33262         5gtpgetc.adb, 5hosinte.adb, 5hosinte.ads, 5hsystem.ads,
33263         5htaprop.adb, 5htaspri.ads, 5htraceb.adb, 5iosinte.adb,
33264         5itaprop.adb, 5itaspri.ads, 5ksystem.ads, 5kvxwork.ads,
33265         5lintman.adb, 5lml-tgt.adb, 5losinte.ads, 5lsystem.ads,
33266         5mvxwork.ads, 5ninmaop.adb, 5nintman.adb, 5nosinte.ads,
33267         5ntaprop.adb, 5ntaspri.ads, 5ointerr.adb, 5omastop.adb,
33268         5oosinte.adb, 5oosinte.ads, 5oosprim.adb, 5oparame.adb,
33269         5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5posinte.ads,
33270         5posprim.adb, 5pvxwork.ads, 5sintman.adb, 5sosinte.adb,
33271         5sosinte.ads, 5ssystem.ads, 5staprop.adb, 5stasinf.ads,
33272         5staspri.ads, 5svxwork.ads, 5tosinte.ads, 5vasthan.adb,
33273         5vinmaop.adb, 5vinterr.adb, 5vintman.adb, 5vintman.ads,
33274         5vmastop.adb, 5vosinte.adb, 5vosinte.ads, 5vosprim.adb,
33275         5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads, 5vtpopde.adb,
33276         5vtpopde.ads, 5wgloloc.adb, 5wintman.adb, 5wmemory.adb,
33277         5wosprim.adb, 5wsystem.ads, 5wtaprop.adb, 5wtaspri.ads,
33278         5ysystem.ads, 5zinterr.adb, 5zintman.adb, 5zosinte.adb,
33279         5zosinte.ads, 5zosprim.adb, 5zsystem.ads, 5ztaprop.adb,
33280         6vcpp.adb, 6vcstrea.adb, 6vinterf.ads, 7sinmaop.adb,
33281         7sintman.adb, 7sosinte.adb, 7sosprim.adb, 7staprop.adb,
33282         7staspri.ads, 7stpopsp.adb, 7straceb.adb, 9drpc.adb,
33283         a-caldel.adb, a-caldel.ads, a-charac.ads, a-colien.ads,
33284         a-comlin.adb, adaint.c, adaint.h, ada-tree.def,
33285         a-diocst.adb, a-diocst.ads, a-direio.adb, a-except.adb,
33286         a-except.ads, a-excpol.adb, a-exctra.adb, a-exctra.ads,
33287         a-filico.adb, a-interr.adb, a-intsig.adb, a-intsig.ads,
33288         ali.adb, ali.ads, ali-util.adb, ali-util.ads,
33289         a-ngcefu.adb, a-ngcoty.adb, a-ngelfu.adb, a-nudira.adb,
33290         a-nudira.ads, a-nuflra.adb, a-nuflra.ads, a-reatim.adb,
33291         a-reatim.ads, a-retide.ads, a-sequio.adb, a-siocst.adb,
33292         a-siocst.ads, a-ssicst.adb, a-ssicst.ads, a-strbou.adb,
33293         a-strbou.ads, a-strfix.adb, a-strmap.adb, a-strsea.ads,
33294         a-strunb.adb, a-strunb.ads, a-ststio.adb, a-stunau.adb,
33295         a-stunau.ads, a-stwibo.adb, a-stwibo.ads, a-stwifi.adb,
33296         a-stwima.adb, a-stwiun.adb, a-stwiun.ads, a-tags.adb,
33297         a-tags.ads, a-tasatt.adb, a-taside.adb, a-teioed.adb,
33298         a-textio.adb, a-textio.ads, a-tienau.adb, a-tifiio.adb,
33299         a-tiflau.adb, a-tiflio.adb, a-tigeau.adb, a-tigeau.ads,
33300         a-tiinau.adb, a-timoau.adb, a-tiocst.adb, a-tiocst.ads,
33301         atree.adb, atree.ads, a-witeio.adb, a-witeio.ads,
33302         a-wtcstr.adb, a-wtcstr.ads, a-wtdeio.adb, a-wtedit.adb,
33303         a-wtenau.adb, a-wtflau.adb, a-wtinau.adb, a-wtmoau.adb,
33304         bcheck.adb, binde.adb, bindgen.adb, bindusg.adb,
33305         checks.adb, checks.ads, cio.c, comperr.adb,
33306         comperr.ads, csets.adb, cstand.adb, cstreams.c,
33307         debug_a.adb, debug_a.ads, debug.adb, decl.c,
33308         einfo.adb, einfo.ads, errout.adb, errout.ads,
33309         eval_fat.adb, eval_fat.ads, exp_aggr.adb, expander.adb,
33310         expander.ads, exp_attr.adb, exp_ch11.adb, exp_ch13.adb,
33311         exp_ch2.adb, exp_ch3.adb, exp_ch3.ads, exp_ch4.adb,
33312         exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch7.ads,
33313         exp_ch8.adb, exp_ch9.adb, exp_code.adb, exp_dbug.adb,
33314         exp_dbug.ads, exp_disp.adb, exp_dist.adb, expect.c,
33315         exp_fixd.adb, exp_imgv.adb, exp_intr.adb, exp_pakd.adb,
33316         exp_prag.adb, exp_strm.adb, exp_strm.ads, exp_tss.adb,
33317         exp_tss.ads, exp_util.adb, exp_util.ads, exp_vfpt.adb,
33318         fe.h, fmap.adb, fmap.ads, fname.adb,
33319         fname.ads, fname-uf.adb, fname-uf.ads, freeze.adb,
33320         freeze.ads, frontend.adb, g-awk.adb, g-awk.ads,
33321         g-busora.adb, g-busora.ads, g-busorg.adb, g-busorg.ads,
33322         g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads,
33323         g-cgi.adb, g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads,
33324         g-cgideb.adb, g-cgideb.ads, g-comlin.adb, g-comlin.ads,
33325         g-crc32.adb, g-crc32.ads, g-debpoo.adb, g-debpoo.ads,
33326         g-debuti.adb, g-debuti.ads, g-diopit.adb, g-diopit.ads,
33327         g-dirope.adb, g-dirope.ads, g-dyntab.adb, g-dyntab.ads,
33328         g-except.ads, g-exctra.adb, g-exctra.ads, g-expect.adb,
33329         g-expect.ads, g-hesora.adb, g-hesora.ads, g-hesorg.adb,
33330         g-hesorg.ads, g-htable.adb, g-htable.ads, gigi.h,
33331         g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads,
33332         g-locfil.adb, g-locfil.ads, g-md5.adb, g-md5.ads,
33333         gmem.c, gnat1drv.adb, gnatbind.adb, gnatchop.adb,
33334         gnatcmd.adb, gnatfind.adb, gnatkr.adb, gnatlbr.adb,
33335         gnatlink.adb, gnatls.adb, gnatmake.adb, gnatmem.adb,
33336         gnatname.adb, gnatprep.adb, gnatprep.ads, gnatpsta.adb,
33337         gnatxref.adb, g-os_lib.adb, g-os_lib.ads, g-regexp.adb,
33338         g-regexp.ads, g-regist.adb, g-regist.ads, g-regpat.adb,
33339         g-regpat.ads, g-soccon.ads, g-socket.adb, g-socket.ads,
33340         g-socthi.adb, g-socthi.ads, g-soliop.ads, g-souinf.ads,
33341         g-speche.adb, g-speche.ads, g-spipat.adb, g-spipat.ads,
33342         g-spitbo.adb, g-spitbo.ads, g-sptabo.ads, g-sptain.ads,
33343         g-sptavs.ads, g-table.adb, g-table.ads, g-tasloc.adb,
33344         g-tasloc.ads, g-thread.adb, g-thread.ads, g-traceb.adb,
33345         g-traceb.ads, g-trasym.adb, g-trasym.ads, hostparm.ads,
33346         i-c.ads, i-cobol.adb, i-cpp.adb, i-cstrea.ads,
33347         i-cstrin.adb, i-cstrin.ads, impunit.adb, init.c,
33348         inline.adb, interfac.ads, i-pacdec.ads, itypes.adb,
33349         itypes.ads, i-vxwork.ads, lang.opt, lang-specs.h,
33350         layout.adb, lib.adb, lib.ads, lib-list.adb,
33351         lib-load.adb, lib-load.ads, lib-sort.adb, lib-util.adb,
33352         lib-writ.adb, lib-writ.ads, lib-xref.adb, lib-xref.ads,
33353         link.c, live.adb, make.adb, make.ads,
33354         Makefile.adalib, Makefile.in, Make-lang.in, makeusg.adb,
33355         mdll.adb, mdll-fil.adb, mdll-fil.ads, mdll-utl.adb,
33356         mdll-utl.ads, memroot.adb, memroot.ads, memtrack.adb,
33357         misc.c, mkdir.c, mlib.adb, mlib.ads,
33358         mlib-fil.adb, mlib-fil.ads, mlib-prj.adb, mlib-prj.ads,
33359         mlib-tgt.adb, mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads,
33360         namet.adb, namet.ads, namet.h, nlists.ads,
33361         nlists.h, nmake.adt, opt.adb, opt.ads,
33362         osint.adb, osint.ads, osint-b.adb, osint-c.adb,
33363         par.adb, par-ch10.adb, par-ch11.adb, par-ch2.adb,
33364         par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb,
33365         par-ch9.adb, par-endh.adb, par-labl.adb, par-load.adb,
33366         par-prag.adb, par-sync.adb, par-tchk.adb, par-util.adb,
33367         prj.adb, prj.ads, prj-attr.adb, prj-attr.ads,
33368         prj-com.adb, prj-com.ads, prj-dect.adb, prj-dect.ads,
33369         prj-env.adb, prj-env.ads, prj-ext.adb, prj-ext.ads,
33370         prj-makr.adb, prj-makr.ads, prj-nmsc.adb, prj-nmsc.ads,
33371         prj-pars.adb, prj-pars.ads, prj-part.adb, prj-part.ads,
33372         prj-pp.adb, prj-pp.ads, prj-proc.adb, prj-proc.ads,
33373         prj-strt.adb, prj-strt.ads, prj-tree.adb, prj-tree.ads,
33374         prj-util.adb, prj-util.ads, raise.c, raise.h,
33375         repinfo.adb, repinfo.h, restrict.adb, restrict.ads,
33376         rident.ads, rtsfind.adb, rtsfind.ads, s-addima.ads,
33377         s-arit64.adb, s-assert.adb, s-assert.ads, s-atacco.adb,
33378         s-atacco.ads, s-auxdec.adb, s-auxdec.ads, s-bitops.adb,
33379         scans.ads, scn.adb, scn.ads, s-crc32.adb,
33380         s-crc32.ads, s-direio.adb, sem.adb, sem.ads,
33381         sem_aggr.adb, sem_attr.adb, sem_attr.ads, sem_case.adb,
33382         sem_case.ads, sem_cat.adb, sem_cat.ads, sem_ch10.adb,
33383         sem_ch11.adb, sem_ch12.adb, sem_ch12.ads, sem_ch13.adb,
33384         sem_ch13.ads, sem_ch3.adb, sem_ch3.ads, sem_ch4.adb,
33385         sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
33386         sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads,
33387         sem_ch9.adb, sem_disp.adb, sem_disp.ads, sem_dist.adb,
33388         sem_elab.adb, sem_eval.adb, sem_eval.ads, sem_intr.adb,
33389         sem_maps.adb, sem_mech.adb, sem_prag.adb, sem_prag.ads,
33390         sem_res.adb, sem_res.ads, sem_type.adb, sem_type.ads,
33391         sem_util.adb, sem_util.ads, sem_warn.adb, s-errrep.adb,
33392         s-errrep.ads, s-exctab.adb, s-exctab.ads, s-exnint.ads,
33393         s-exnllf.ads, s-exnlli.ads, s-expint.ads, s-explli.ads,
33394         s-expuns.ads, s-fatflt.ads, s-fatgen.adb, s-fatgen.ads,
33395         s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads, s-fileio.adb,
33396         s-fileio.ads, s-finimp.adb, s-finimp.ads, s-finroo.adb,
33397         s-finroo.ads, sfn_scan.adb, s-gloloc.adb, s-gloloc.ads,
33398         s-imgdec.adb, s-imgenu.adb, s-imgrea.adb, s-imgwch.adb,
33399         sinfo.adb, sinfo.ads, s-inmaop.ads, sinput.adb,
33400         sinput.ads, sinput-d.adb, sinput-l.adb, sinput-l.ads,
33401         sinput-p.adb, sinput-p.ads, s-interr.adb, s-interr.ads,
33402         s-intman.ads, s-maccod.ads, s-mastop.adb, s-mastop.ads,
33403         s-memory.adb, s-memory.ads, snames.adb, snames.ads,
33404         snames.h, s-osprim.ads, s-parame.ads, s-parint.ads,
33405         s-pooloc.adb, s-pooloc.ads, s-poosiz.adb, sprint.adb,
33406         s-proinf.ads, s-scaval.ads, s-secsta.adb, s-secsta.ads,
33407         s-sequio.adb, s-shasto.adb, s-shasto.ads, s-soflin.ads,
33408         s-stache.adb, s-stache.ads, s-stalib.adb, s-stalib.ads,
33409         s-stoele.ads, s-stopoo.ads, s-stratt.adb, s-stratt.ads,
33410         s-strops.adb, s-strops.ads, s-taasde.adb, s-taasde.ads,
33411         s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads,
33412         s-taenca.adb, s-taenca.ads, s-taprob.adb, s-taprob.ads,
33413         s-taprop.ads, s-tarest.adb, s-tarest.ads, s-tasdeb.adb,
33414         s-tasdeb.ads, s-tasinf.adb, s-tasinf.ads, s-tasini.adb,
33415         s-tasini.ads, s-taskin.adb, s-taskin.ads, s-tasque.adb,
33416         s-tasque.ads, s-tasren.adb, s-tasren.ads, s-tasres.ads,
33417         s-tassta.adb, s-tassta.ads, s-tasuti.adb, s-tasuti.ads,
33418         s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
33419         s-tpoben.adb, s-tpoben.ads, s-tpobop.adb, s-tpobop.ads,
33420         s-tposen.adb, s-tposen.ads, s-traceb.adb, s-traceb.ads,
33421         stringt.adb, stringt.ads, stringt.h, style.ads,
33422         stylesw.adb, stylesw.ads, s-unstyp.ads, s-vaflop.ads,
33423         s-valrea.adb, s-valuti.adb, s-vercon.adb, s-vmexta.adb,
33424         s-wchcnv.ads, s-wchcon.ads, s-widcha.adb, switch.adb,
33425         switch.ads, switch-b.adb, switch-c.adb, switch-m.adb,
33426         s-wwdcha.adb, s-wwdwch.adb, sysdep.c, system.ads,
33427         table.adb, table.ads, targparm.adb, targparm.ads,
33428         targtyps.c, tbuild.adb, tbuild.ads, tracebak.c,
33429         trans.c, tree_io.adb, treepr.adb, treeprs.adt,
33430         ttypes.ads, types.ads, types.h, uintp.adb,
33431         uintp.ads, uintp.h, uname.adb, urealp.adb,
33432         urealp.ads, urealp.h, usage.adb, utils2.c,
33433         utils.c, validsw.adb, validsw.ads, widechar.adb,
33434         xeinfo.adb, xnmake.adb, xref_lib.adb, xref_lib.ads,
33435         xr_tabls.adb, xr_tabls.ads, xtreeprs.adb, xsnames.adb,
33436         einfo.h, sinfo.h, treeprs.ads, nmake.ads, nmake.adb,
33437         gnatvsn.ads: Merge with ACT tree.
33438
33439         * gnatvsn.adb: Rewritten in a simpler and more efficient way.
33440
33441 2003-10-20  Mark Mitchell  <mark@codesourcery.com>
33442
33443         * Make-lang.in (gnat_ug_unx.info): Add dependency on stmp-docobjdir.
33444         (gnat_ug_vmx.info): Likewise.
33445         (gnat_ug_vxw.info): Likewise.
33446         (gnat_ug_wnt.info): Likewise.
33447         (gnat_rm.info): Likewise.
33448         (gnat-style.info): Likewise.
33449
33450         * Make-lang.in (ada.install-info): Remove target.
33451         (info): New target.
33452         (install-info): Likewise.
33453         (gnat_ug_unx.info): Simplify rule.
33454         (gnat_ug_vmx.info): Likewise.
33455         (gnat_ug_vxw.info): Likewise.
33456         (gnat_ug_wnt.info): Likewise.
33457         (gnat_rm.info): Likewise.
33458         (gnat-style.info): Likewise.
33459
33460 2003-10-14  Nathanael Nerode  <neroden@gcc.gnu.org>
33461
33462         * Make-lang.in: Replace uses of $(target_alias) with
33463         $(target_noncanonical).
33464         * ada/Makefile.in: Remove unused mention of $(target_alias).
33465
33466 2003-10-06  Mark Mitchell  <mark@codesourcery.com>
33467
33468         * Make-lang.in (ada.info): Replace with ...
33469         (info): ... this.
33470         (ada.dvi): Replace with ...
33471         (dvi): ... this.
33472
33473 2003-09-29  Zack Weinberg  <zack@codesourcery.com>
33474
33475         * trans.c (gigi): Use REAL_ARITHMETIC, not REAL_VALUE_ATOF, to
33476         initialize dconstp5 and dconstmp5.
33477
33478 2003-09-28  Richard Henderson  <rth@redhat.com>
33479
33480         * trans.c (tree_transform): Update call to expand_asm_operands.
33481
33482 2003-09-21  Richard Henderson  <rth@redhat.com>
33483
33484         * trans.c, utils.c: Revert.
33485
33486 2003-09-21  Richard Henderson  <rth@redhat.com>
33487
33488         * trans.c, utils.c: Update for DECL_SOURCE_LOCATION rename and
33489         change to const.
33490
33491 2003-09-04  Michael Matz  <matz@suse.de>
33492
33493         * misc.c: Include "target.h".
33494         * Make-lang.in (misc.o): Add dependency on target.h.
33495
33496 2003-09-03  DJ Delorie  <dj@redhat.com>
33497
33498         * misc.c (default_pass_by_ref): Convert to calls.return_in_memory
33499         hook.
33500
33501 2003-08-30  Zack Weinberg  <zack@codesourcery.com>
33502
33503         * Makefile.in: Update substitutions to match changes to
33504         configure.  Use include directives instead of @-insertions
33505         to read in host and target fragments.  Add a rule to
33506         regenerate ada/Makefile.
33507
33508 2003-07-18  Neil Booth  <neil@daikokuya.co.uk>
33509
33510         * lang-options.h: Remove.
33511         * lang.opt: Add help text.
33512
33513 2003-07-07  Nathan Sidwell  <nathan@codesourcery.com>
33514
33515         * trans.c (build_unit_elab, set_lineno): Adjust emit_line_note
33516         calls.
33517
33518 2003-07-06  Neil Booth  <neil@daikokuya.co.uk>
33519
33520         * misc.c (gnat_handle_option): Don't handle filenames.
33521
33522 2003-07-04  H.J. Lu  <hongjiu.lu@intel.com>
33523
33524         * Make-lang.in: Replace PWD with PWD_COMMAND.
33525         * Makefile.adalib: Likewise.
33526         * Makefile.in: Likewise.
33527
33528 2003-07-04  Matt Kraai  <kraai@alumni.cmu.edu>
33529
33530         * misc.c (gnat_argv): Revert last change.
33531         (gnat_handle_option, gnat_init_options): Copy arguments.
33532
33533 2003-07-03  Neil Booth  <neil@daikokuya.co.uk>
33534
33535         * misc.c (gnat_argv): Make const.
33536
33537 2003-07-02  Neil Booth  <neil@daikokuya.co.uk>
33538
33539         * misc.c (save_argc, save_argv): Keep non-static!
33540
33541 2003-07-02  Neil Booth  <neil@daikokuya.co.uk>
33542
33543         * misc.c (save_argc, save_argv): Make static.
33544         (gnat_init_options): New prototype.
33545         (gnat_init_options): Update.
33546
33547 2003-07-01  Matt Kraai  <kraai@alumni.cmu.edu>
33548
33549         * gnat_ug.texi: Remove unlikely characters from @vars.
33550         * gnat_ug_vms.texi: Regenerate.
33551
33552 2003-06-27  Nathan Sidwell  <nathan@codesourcery.com>
33553
33554         * misc.c (record_code_position): Adjust emit_note call.
33555
33556 2003-06-26  Neil Booth  <neil@daikokuya.co.uk>
33557
33558         * misc.c (gnat_handle_option): Don't check for missing arguments.
33559
33560 2003-06-20  Nathan Sidwell  <nathan@codesourcery.com>
33561
33562         * utils.c (end_subprog_body): Adjust expand_function_end call.
33563
33564 2003-06-16  Matt Kraai  <kraai@alumni.cmu.edu>
33565
33566         * bindgen.adb (Gen_Main_Ada, Gen_Main_C): Do not test
33567         Bind_Main_Program.
33568
33569 2003-06-15  Neil Booth  <neil@daikokuya.co.uk>
33570
33571         * lang.opt: Declare Ada.
33572         * misc.c (gnat_init_options): Update.
33573
33574 2003-06-14  Nathan Sidwell  <nathan@codesourcery.com>
33575
33576         * utils.c (begin_subprog_body): Adjust init_function_start call.
33577
33578 2003-06-14  Neil Booth  <neil@daikokuya.co.uk>
33579
33580         * Make-lang.in: Update to use options.c and options.h.
33581         * misc.c: Include options.h not aoptions.h.
33582         (gnat_handle_option): Abort on unrecognized switch.
33583         (gnat_init_options): Request Ada switches.
33584
33585 2003-06-14  Neil Booth  <neil@daikokuya.co.uk>
33586
33587         * lang.opt: Add -Wall.
33588         * misc.c (gnat_handle_option): Handle it.
33589
33590 2003-06-12  Neil Booth  <neil@daikokuya.co.uk>
33591
33592         * misc.c (gnat_handle_option): Fix warnings.
33593
33594 2003-06-11  Matt Kraai  <kraai@alumni.cmu.edu>
33595
33596         * Make-lang.in (gnatbind): Remove $(LIBIBERTY).
33597
33598 2003-06-11  Neil Booth  <neil@daikokuya.co.uk>
33599
33600         * Make-lang.in: Update to handle command-line options.
33601         * lang.opt: New file.
33602         * misc.c: Include aoptions.h.
33603         (cl_options_count, cl_options): Remove.
33604         (gnat_handle_option): New.
33605         (gnat_decode_option): Remove.
33606         (LANG_HOOKS_DECODE_OPTION): Remove.
33607         (LANG_HOOKS_HANDLE_OPTION): Override.
33608
33609 2003-06-10  Nathanael Nerode  <neroden@gcc.gnu.org>
33610
33611         * init.c, misc.c, trans.c, utils.c: Remove dead code.
33612
33613 2003-06-09  Nathanael Nerode  <neroden@gcc.gnu.org>
33614
33615         * Makefile.in: Replace "host_canonical" with "host" for autoconf
33616         substitution.
33617
33618 2003-06-08  Neil Booth  <neil@daikokuya.co.uk>
33619
33620         * Make-lang.in: Update.
33621         * misc.c: Include opts.h. Define cl_options_count and cl_options.
33622
33623 2003-06-07  Neil Booth  <neil@daikokuya.co.uk>
33624
33625         * misc.c (gnat_init_options): Update.
33626
33627 2003-06-05  Matt Kraai  <kraai@alumni.cmu.edu>
33628
33629         * Make-lang.in (ada/b_gnatb.o-warn): Remove.
33630         * bindgen.adb (Gen_Main_C): Mark ensure_reference with
33631         __attribute__ ((__unused__)).
33632
33633 2003-06-05  Jan Hubicka  <jh@suse.cz>
33634
33635         * Make-lang.in:  Add support for stageprofile and stagefeedback
33636
33637 2003-06-05  Matt Kraai  <kraai@alumni.cmu.edu>
33638
33639         * bindgen.adb (Gen_Adafinal_C, Gen_Adainit_C, Gen_Elab_Defs_C)
33640         (Gen_Main_C, Gen_Output_File_C): Generate ISO C.
33641
33642 2003-06-04  Matt Kraai  <kraai@alumni.cmu.edu>
33643
33644         * gnat_ug.texi (The GNAT Run-Time Library Builder gnatlbr):
33645         Remove non-VMS directive.
33646         (Switches for gnatlbr, Optimization Levels): Remove non-VMS
33647         alternatives.
33648         (Examples of gnatls Usage): Remove VMS alternative.
33649
33650 2003-06-04  Olivier Hainque  <hainque@act-europe.fr>
33651
33652         PR ada/9953
33653         * 5hsystem.ads: Remove pragma Linker_Option for pthreads library,
33654         and turn ZCX_By_Default back to False since the underlying support
33655         is not quite there yet.
33656
33657 2003-06-01  Andreas Jaeger  <aj@suse.de>
33658
33659         * utils.c (finish_record_type): Remove usages of ROUND_TYPE_SIZE
33660         and ROUND_TYPE_SIZE_UNIT.
33661
33662 2003-05-22   Geert Bosch  <bosch@gnat.com>
33663
33664         * gnat_rm.texi : Remove reference to Ada Core Technologies.
33665
33666 2003-05-03  Nathan Sidwell  <nathan@codesourcery.com>
33667
33668         * trans.c (tree_transform): Use location_t and input_location
33669         directly.
33670         (build_unit_elab): Likewise.
33671         * utils.c (create_label_decl): Likewise.
33672
33673 2003-05-01  Nathan Sidwell  <nathan@codesourcery.com>
33674
33675         * trans.c (tree_transform, build_unit_elab,
33676         set_lineno): Rename lineno to input_line.
33677         * utils.c (pushdecl, create_label_decl, begin_subprog_body,
33678         end_subprog_body): Likewise.
33679         * utils2.c (build_call_raise): Likewise.
33680
33681 2003-05-01  Laurent Guerby  <guerby@acm.org>
33682
33683         PR ada/10546
33684         * 5iosinte.ads: Increase pthread_cond_t size to match recent
33685         LinuxThread and NPTL version, merge from ACT.
33686
33687 2003-04-28  Zack Weinberg  <zack@codesourcery.com>
33688
33689         * utils.c (convert): No need to clear TREE_CST_RTL.
33690
33691 2003-04-23   Geert Bosch  <bosch@gnat.com>
33692
33693         * 1aexcept.adb, 1aexcept.ads, 1ic.ads, 1ssecsta.adb,
33694         1ssecsta.ads, 31soccon.ads, 31soliop.ads, 3asoccon.ads,
33695         3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3ssoccon.ads,
33696         3ssoliop.ads, 3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads,
33697         3wsoliop.ads, 41intnam.ads, 42intnam.ads, 4aintnam.ads,
33698         4cintnam.ads, 4dintnam.ads, 4gintnam.ads, 4hexcpol.adb,
33699         4hintnam.ads, 4lintnam.ads, 4mintnam.ads, 4nintnam.ads,
33700         4ointnam.ads, 4onumaux.ads, 4pintnam.ads, 4rintnam.ads,
33701         4sintnam.ads, 4uintnam.ads, 4vcaldel.adb, 4vcalend.adb,
33702         4vcalend.ads, 4vintnam.ads, 4wcalend.adb, 4wexcpol.adb,
33703         4wintnam.ads, 4zintnam.ads, 4znumaux.ads, 4zsytaco.adb,
33704         4zsytaco.ads, 51osinte.adb, 51osinte.ads, 52osinte.adb,
33705         52osinte.ads, 52system.ads, 53osinte.ads, 54osinte.ads,
33706         5amastop.adb, 5aosinte.adb, 5aosinte.ads, 5asystem.ads,
33707         5ataprop.adb, 5atasinf.ads, 5ataspri.ads, 5atpopsp.adb,
33708         5avxwork.ads, 5bosinte.adb, 5bosinte.ads, 5bsystem.ads,
33709         5cosinte.ads, 5dosinte.ads, 5esystem.ads, 5etpopse.adb,
33710         5fintman.adb, 5fosinte.ads, 5fsystem.ads, 5ftaprop.adb,
33711         5ftasinf.ads, 5ginterr.adb, 5gintman.adb, 5gmastop.adb,
33712         5gosinte.ads, 5gproinf.adb, 5gproinf.ads, 5gsystem.ads,
33713         5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads, 5gtpgetc.adb,
33714         5hosinte.adb, 5hosinte.ads, 5hparame.ads, 5hsystem.ads,
33715         5htaprop.adb, 5htaspri.ads, 5htraceb.adb, 5iosinte.adb,
33716         5iosinte.ads, 5itaprop.adb, 5itaspri.ads, 5ksystem.ads,
33717         5kvxwork.ads, 5lintman.adb, 5lml-tgt.adb, 5losinte.ads,
33718         5lsystem.ads, 5mosinte.ads, 5mvxwork.ads, 5ninmaop.adb,
33719         5nintman.adb, 5nosinte.ads, 5ntaprop.adb, 5ntaspri.ads,
33720         5ointerr.adb, 5omastop.adb, 5oosinte.adb, 5oosinte.ads,
33721         5oosprim.adb, 5oparame.adb, 5osystem.ads, 5otaprop.adb,
33722         5otaspri.ads, 5posinte.ads, 5posprim.adb, 5pvxwork.ads,
33723         5qosinte.adb, 5qosinte.ads, 5qstache.adb, 5qtaprop.adb,
33724         5qtaspri.ads, 5rosinte.adb, 5rosinte.ads, 5rparame.adb,
33725         5sintman.adb, 5sosinte.adb, 5sosinte.ads, 5sparame.adb,
33726         5ssystem.ads, 5staprop.adb, 5stasinf.adb, 5stasinf.ads,
33727         5staspri.ads, 5stpopse.adb, 5svxwork.ads, 5tosinte.ads,
33728         5uintman.adb, 5uosinte.ads, 5vasthan.adb, 5vinmaop.adb,
33729         5vinterr.adb, 5vintman.adb, 5vintman.ads, 5vmastop.adb,
33730         5vosinte.adb, 5vosinte.ads, 5vosprim.adb, 5vosprim.ads,
33731         5vparame.ads, 5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads,
33732         5vtpopde.adb, 5vtpopde.ads, 5vvaflop.adb, 5wgloloc.adb,
33733         5wintman.adb, 5wmemory.adb, 5wosinte.ads, 5wosprim.adb,
33734         5wsystem.ads, 5wtaprop.adb, 5wtaspri.ads, 5ysystem.ads,
33735         5zinterr.adb, 5zintman.adb, 5zosinte.adb, 5zosinte.ads,
33736         5zosprim.adb, 5zsystem.ads, 5ztaprop.adb, 6vcpp.adb,
33737         6vcstrea.adb, 6vinterf.ads, 7sinmaop.adb, 7sintman.adb,
33738         7sosinte.adb, 7sosprim.adb, 7staprop.adb, 7staspri.ads,
33739         7stpopsp.adb, 7straceb.adb, 86numaux.adb, 86numaux.ads,
33740         9drpc.adb, a-astaco.adb, a-astaco.ads, a-caldel.adb,
33741         a-caldel.ads, a-calend.adb, a-calend.ads, a-chahan.adb,
33742         a-chahan.ads, a-charac.ads, a-chlat1.ads, a-chlat9.ads,
33743         a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
33744         a-comlin.adb, a-comlin.ads, a-cwila1.ads, a-cwila9.ads,
33745         a-decima.adb, a-decima.ads, a-diocst.adb, a-diocst.ads,
33746         a-direio.adb, a-direio.ads, a-dynpri.adb, a-dynpri.ads,
33747         a-einuoc.adb, a-einuoc.ads, a-except.adb, a-except.ads,
33748         a-excpol.adb, a-exctra.adb, a-exctra.ads, a-filico.adb,
33749         a-filico.ads, a-finali.adb, a-finali.ads, a-flteio.ads,
33750         a-fwteio.ads, a-inteio.ads, a-interr.adb, a-interr.ads,
33751         a-intnam.ads, a-intsig.adb, a-intsig.ads, a-ioexce.ads,
33752         a-iwteio.ads, a-lfteio.ads, a-lfwtio.ads, a-liteio.ads,
33753         a-liwtio.ads, a-llftio.ads, a-llfwti.ads, a-llitio.ads,
33754         a-lliwti.ads, a-ncelfu.ads, a-ngcefu.adb, a-ngcefu.ads,
33755         a-ngcoty.adb, a-ngcoty.ads, a-ngelfu.adb, a-ngelfu.ads,
33756         a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads,
33757         a-nllcty.ads, a-nllefu.ads, a-nscefu.ads, a-nscoty.ads,
33758         a-nselfu.ads, a-nucoty.ads, a-nudira.adb, a-nudira.ads,
33759         a-nuelfu.ads, a-nuflra.adb, a-nuflra.ads, a-numaux.ads,
33760         a-numeri.ads, a-reatim.adb, a-reatim.ads, a-retide.adb,
33761         a-retide.ads, a-sequio.adb, a-sequio.ads, a-sfteio.ads,
33762         a-sfwtio.ads, a-siocst.adb, a-siocst.ads, a-siteio.ads,
33763         a-siwtio.ads, a-ssicst.adb, a-ssicst.ads, a-ssitio.ads,
33764         a-ssiwti.ads, a-stmaco.ads, a-storio.adb, a-storio.ads,
33765         a-strbou.adb, a-strbou.ads, a-stream.ads, a-strfix.adb,
33766         a-strfix.ads, a-string.ads, a-strmap.adb, a-strmap.ads,
33767         a-strsea.adb, a-strsea.ads, a-strunb.adb, a-strunb.ads,
33768         a-ststio.adb, a-ststio.ads, a-stunau.adb, a-stunau.ads,
33769         a-stwibo.adb, a-stwibo.ads, a-stwifi.adb, a-stwifi.ads,
33770         a-stwima.adb, a-stwima.ads, a-stwise.adb, a-stwise.ads,
33771         a-stwiun.adb, a-stwiun.ads, a-suteio.adb, a-suteio.ads,
33772         a-swmwco.ads, a-swuwti.adb, a-swuwti.ads, a-sytaco.adb,
33773         a-sytaco.ads, a-tags.adb, a-tags.ads, a-tasatt.adb,
33774         a-tasatt.ads, a-taside.adb, a-taside.ads, a-teioed.adb,
33775         a-teioed.ads, a-textio.adb, a-textio.ads, a-ticoau.adb,
33776         a-ticoau.ads, a-ticoio.adb, a-ticoio.ads, a-tideau.adb,
33777         a-tideau.ads, a-tideio.adb, a-tideio.ads, a-tienau.adb,
33778         a-tienau.ads, a-tienio.adb, a-tienio.ads, a-tifiio.adb,
33779         a-tifiio.ads, a-tiflau.adb, a-tiflau.ads, a-tiflio.adb,
33780         a-tiflio.ads, a-tigeau.adb, a-tigeau.ads, a-tiinau.adb,
33781         a-tiinau.ads, a-tiinio.adb, a-tiinio.ads, a-timoau.adb,
33782         a-timoau.ads, a-timoio.adb, a-timoio.ads, a-tiocst.adb,
33783         a-tiocst.ads, a-titest.adb, a-titest.ads, a-unccon.ads,
33784         a-uncdea.ads, a-witeio.adb, a-witeio.ads, a-wtcoau.adb,
33785         a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads, a-wtcstr.adb,
33786         a-wtcstr.ads, a-wtdeau.adb, a-wtdeau.ads, a-wtdeio.adb,
33787         a-wtdeio.ads, a-wtedit.adb, a-wtedit.ads, a-wtenau.adb,
33788         a-wtenau.ads, a-wtenio.adb, a-wtenio.ads, a-wtfiio.adb,
33789         a-wtfiio.ads, a-wtflau.adb, a-wtflau.ads, a-wtflio.adb,
33790         a-wtflio.ads, a-wtgeau.adb, a-wtgeau.ads, a-wtinau.adb,
33791         a-wtinau.ads, a-wtinio.adb, a-wtinio.ads, a-wtmoau.adb,
33792         a-wtmoau.ads, a-wtmoio.adb, a-wtmoio.ads, a-wttest.adb,
33793         a-wttest.ads, ada-tree.h, ada.ads, ada.h,
33794         adadecode.c, adadecode.h, ali-util.adb, ali-util.ads,
33795         ali.adb, ali.ads, alloc.ads, argv.c,
33796         atree.adb, atree.ads, atree.h, aux-io.c,
33797         back_end.adb, back_end.ads, bcheck.adb, bcheck.ads,
33798         binde.adb, binde.ads, binderr.adb, binderr.ads,
33799         bindgen.adb, bindgen.ads, bindusg.adb, bindusg.ads,
33800         butil.adb, butil.ads, cal.c, calendar.ads,
33801         casing.adb, casing.ads, ceinfo.adb, checks.adb,
33802         checks.ads, cio.c, comperr.adb, comperr.ads,
33803         config-lang.in, csets.adb, csets.ads, csinfo.adb,
33804         cstand.adb, cstand.ads, cuintp.c, debug.adb,
33805         debug.ads, debug_a.adb, debug_a.ads, dec-io.adb,
33806         dec-io.ads, dec.ads, deftarg.c, directio.ads,
33807         einfo.adb, einfo.ads, elists.adb, elists.ads,
33808         elists.h, errno.c, errout.adb, errout.ads,
33809         eval_fat.adb, eval_fat.ads, exit.c, exp_aggr.adb,
33810         exp_aggr.ads, exp_attr.adb, exp_attr.ads, exp_ch10.ads,
33811         exp_ch11.adb, exp_ch11.ads, exp_ch12.adb, exp_ch12.ads,
33812         exp_ch13.adb, exp_ch13.ads, exp_ch2.adb, exp_ch2.ads,
33813         exp_ch3.adb, exp_ch3.ads, exp_ch4.adb, exp_ch4.ads,
33814         exp_ch5.adb, exp_ch5.ads, exp_ch6.adb, exp_ch6.ads,
33815         exp_ch7.adb, exp_ch7.ads, exp_ch8.adb, exp_ch8.ads,
33816         exp_ch9.adb, exp_ch9.ads, exp_code.adb, exp_code.ads,
33817         exp_dbug.adb, exp_dbug.ads, exp_disp.adb, exp_disp.ads,
33818         exp_dist.adb, exp_dist.ads, exp_fixd.adb, exp_fixd.ads,
33819         exp_imgv.adb, exp_imgv.ads, exp_intr.adb, exp_intr.ads,
33820         exp_pakd.adb, exp_pakd.ads, exp_prag.adb, exp_prag.ads,
33821         exp_smem.adb, exp_smem.ads, exp_strm.adb, exp_strm.ads,
33822         exp_tss.adb, exp_tss.ads, exp_util.adb, exp_util.ads,
33823         exp_vfpt.adb, exp_vfpt.ads, expander.adb, expander.ads,
33824         fmap.adb, fmap.ads, fname-sf.adb, fname-sf.ads,
33825         fname-uf.adb, fname-uf.ads, fname.adb, fname.ads,
33826         freeze.adb, freeze.ads, frontend.adb, frontend.ads,
33827         g-awk.adb, g-awk.ads, g-busora.adb, g-busora.ads,
33828         g-busorg.adb, g-busorg.ads, g-calend.adb, g-calend.ads,
33829         g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads,
33830         g-cgi.adb, g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads,
33831         g-cgideb.adb, g-cgideb.ads, g-comlin.adb, g-comlin.ads,
33832         g-crc32.adb, g-crc32.ads, g-curexc.ads, g-debpoo.adb,
33833         g-debpoo.ads, g-debuti.adb, g-debuti.ads, g-diopit.adb,
33834         g-diopit.ads, g-dirope.adb, g-dirope.ads, g-dyntab.adb,
33835         g-dyntab.ads, g-enblsp.adb, g-except.ads, g-exctra.adb,
33836         g-exctra.ads, g-expect.adb, g-expect.ads, g-flocon.ads,
33837         g-hesora.adb, g-hesora.ads, g-hesorg.adb, g-hesorg.ads,
33838         g-htable.adb, g-htable.ads, g-io.adb, g-io.ads,
33839         g-io_aux.adb, g-io_aux.ads, g-locfil.ads, g-md5.adb,
33840         g-md5.ads, g-moreex.adb, g-moreex.ads, g-os_lib.adb,
33841         g-os_lib.ads, g-regexp.adb, g-regexp.ads, g-regist.ads,
33842         g-regpat.adb, g-regpat.ads, g-soccon.ads, g-socket.adb,
33843         g-socket.ads, g-socthi.adb, g-socthi.ads, g-soliop.ads,
33844         g-souinf.ads, g-speche.adb, g-speche.ads, g-spipat.adb,
33845         g-spipat.ads, g-spitbo.adb, g-spitbo.ads, g-sptabo.ads,
33846         g-sptain.ads, g-sptavs.ads, g-table.adb, g-table.ads,
33847         g-tasloc.adb, g-tasloc.ads, g-thread.adb, g-thread.ads,
33848         g-traceb.adb, g-traceb.ads, g-trasym.adb, g-trasym.ads,
33849         get_targ.adb, get_targ.ads, gnat-style.texi, gnat.ads,
33850         gnat1drv.adb, gnat1drv.ads, gnatbind.adb, gnatbind.ads,
33851         gnatbl.c, gnatchop.adb, gnatcmd.adb, gnatcmd.ads,
33852         gnatdll.adb, gnatfind.adb, gnatkr.adb, gnatkr.ads,
33853         gnatlbr.adb, gnatlink.adb, gnatlink.ads, gnatls.adb,
33854         gnatls.ads, gnatmake.adb, gnatmake.ads, gnatmem.adb,
33855         gnatname.adb, gnatname.ads, gnatprep.adb, gnatprep.ads,
33856         gnatpsta.adb, gnatvsn.adb, gnatvsn.ads, gnatxref.adb,
33857         hlo.adb, hlo.ads, hostparm.ads, i-c.adb,
33858         i-c.ads, i-cexten.ads, i-cobol.adb, i-cobol.ads,
33859         i-cpoint.adb, i-cpoint.ads, i-cpp.adb, i-cpp.ads,
33860         i-cstrea.adb, i-cstrea.ads, i-cstrin.adb, i-cstrin.ads,
33861         i-fortra.adb, i-fortra.ads, i-os2err.ads, i-os2lib.adb,
33862         i-os2lib.ads, i-os2syn.ads, i-os2thr.ads, i-pacdec.adb,
33863         i-pacdec.ads, i-vxwork.ads, impunit.adb, impunit.ads,
33864         inline.adb, inline.ads, interfac.ads, ioexcept.ads,
33865         itypes.adb, itypes.ads, krunch.adb, krunch.ads,
33866         layout.adb, layout.ads, lib-list.adb, lib-load.adb,
33867         lib-load.ads, lib-sort.adb, lib-util.adb, lib-util.ads,
33868         lib-writ.adb, lib-writ.ads, lib-xref.adb, lib-xref.ads,
33869         lib.adb, lib.ads, live.adb, live.ads,
33870         machcode.ads, make.adb, make.ads, makeusg.adb,
33871         makeusg.ads, math_lib.adb, mdll-fil.adb, mdll-fil.ads,
33872         mdll-utl.adb, mdll-utl.ads, mdll.adb, mdll.ads,
33873         memroot.adb, memroot.ads, memtrack.adb, mlib-fil.adb,
33874         mlib-fil.ads, mlib-prj.adb, mlib-prj.ads, mlib-tgt.adb,
33875         mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads, mlib.adb,
33876         mlib.ads, namet.adb, namet.ads, nlists.adb,
33877         nlists.ads, opt.adb, opt.ads, osint-b.adb,
33878         osint-b.ads, osint-c.adb, osint-c.ads, osint-l.adb,
33879         osint-l.ads, osint-m.adb, osint-m.ads, osint.adb,
33880         osint.ads, output.adb, output.ads, par-ch10.adb,
33881         par-ch11.adb, par-ch12.adb, par-ch13.adb, par-ch2.adb,
33882         par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb,
33883         par-ch7.adb, par-ch8.adb, par-ch9.adb, par-endh.adb,
33884         par-labl.adb, par-load.adb, par-prag.adb, par-sync.adb,
33885         par-tchk.adb, par-util.adb, par.adb, par.ads,
33886         prj-attr.adb, prj-attr.ads, prj-com.adb, prj-com.ads,
33887         prj-dect.adb, prj-dect.ads, prj-env.adb, prj-env.ads,
33888         prj-ext.adb, prj-ext.ads, prj-makr.adb, prj-makr.ads,
33889         prj-nmsc.adb, prj-nmsc.ads, prj-pars.adb, prj-pars.ads,
33890         prj-part.adb, prj-part.ads, prj-pp.adb, prj-pp.ads,
33891         prj-proc.adb, prj-proc.ads, prj-strt.adb, prj-strt.ads,
33892         prj-tree.adb, prj-tree.ads, prj-util.adb, prj-util.ads,
33893         prj.adb, prj.ads, repinfo.adb, repinfo.ads,
33894         restrict.adb, restrict.ads, rident.ads, rtsfind.adb,
33895         rtsfind.ads, s-addima.adb, s-addima.ads, s-arit64.adb,
33896         s-arit64.ads, s-assert.adb, s-assert.ads, s-asthan.adb,
33897         s-asthan.ads, s-atacco.adb, s-atacco.ads, s-auxdec.adb,
33898         s-auxdec.ads, s-bitops.adb, s-bitops.ads, s-chepoo.ads,
33899         s-crc32.adb, s-crc32.ads, s-direio.adb, s-direio.ads,
33900         s-errrep.adb, s-errrep.ads, s-except.ads, s-exctab.adb,
33901         s-exctab.ads, s-exnflt.ads, s-exngen.adb, s-exngen.ads,
33902         s-exnint.ads, s-exnlfl.ads, s-exnlin.ads, s-exnllf.ads,
33903         s-exnlli.ads, s-exnsfl.ads, s-exnsin.ads, s-exnssi.ads,
33904         s-expflt.ads, s-expgen.adb, s-expgen.ads, s-expint.ads,
33905         s-explfl.ads, s-explin.ads, s-expllf.ads, s-explli.ads,
33906         s-expllu.adb, s-expllu.ads, s-expmod.adb, s-expmod.ads,
33907         s-expsfl.ads, s-expsin.ads, s-expssi.ads, s-expuns.adb,
33908         s-expuns.ads, s-fatflt.ads, s-fatgen.adb, s-fatgen.ads,
33909         s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads, s-ficobl.ads,
33910         s-fileio.adb, s-fileio.ads, s-finimp.adb, s-finimp.ads,
33911         s-finroo.adb, s-finroo.ads, s-fore.adb, s-fore.ads,
33912         s-gloloc.adb, s-gloloc.ads, s-imgbiu.adb, s-imgbiu.ads,
33913         s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads,
33914         s-imgdec.adb, s-imgdec.ads, s-imgenu.adb, s-imgenu.ads,
33915         s-imgint.adb, s-imgint.ads, s-imgllb.adb, s-imgllb.ads,
33916         s-imglld.adb, s-imglld.ads, s-imglli.adb, s-imglli.ads,
33917         s-imgllu.adb, s-imgllu.ads, s-imgllw.adb, s-imgllw.ads,
33918         s-imgrea.adb, s-imgrea.ads, s-imguns.adb, s-imguns.ads,
33919         s-imgwch.adb, s-imgwch.ads, s-imgwiu.adb, s-imgwiu.ads,
33920         s-inmaop.ads, s-interr.adb, s-interr.ads, s-intman.ads,
33921         s-io.adb, s-io.ads, s-maccod.ads, s-mantis.adb,
33922         s-mantis.ads, s-mastop.adb, s-mastop.ads, s-memory.adb,
33923         s-memory.ads, s-osprim.ads, s-pack03.adb, s-pack03.ads,
33924         s-pack05.adb, s-pack05.ads, s-pack06.adb, s-pack06.ads,
33925         s-pack07.adb, s-pack07.ads, s-pack09.adb, s-pack09.ads,
33926         s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads,
33927         s-pack12.adb, s-pack12.ads, s-pack13.adb, s-pack13.ads,
33928         s-pack14.adb, s-pack14.ads, s-pack15.adb, s-pack15.ads,
33929         s-pack17.adb, s-pack17.ads, s-pack18.adb, s-pack18.ads,
33930         s-pack19.adb, s-pack19.ads, s-pack20.adb, s-pack20.ads,
33931         s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads,
33932         s-pack23.adb, s-pack23.ads, s-pack24.adb, s-pack24.ads,
33933         s-pack25.adb, s-pack25.ads, s-pack26.adb, s-pack26.ads,
33934         s-pack27.adb, s-pack27.ads, s-pack28.adb, s-pack28.ads,
33935         s-pack29.adb, s-pack29.ads, s-pack30.adb, s-pack30.ads,
33936         s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads,
33937         s-pack34.adb, s-pack34.ads, s-pack35.adb, s-pack35.ads,
33938         s-pack36.adb, s-pack36.ads, s-pack37.adb, s-pack37.ads,
33939         s-pack38.adb, s-pack38.ads, s-pack39.adb, s-pack39.ads,
33940         s-pack40.adb, s-pack40.ads, s-pack41.adb, s-pack41.ads,
33941         s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads,
33942         s-pack44.adb, s-pack44.ads, s-pack45.adb, s-pack45.ads,
33943         s-pack46.adb, s-pack46.ads, s-pack47.adb, s-pack47.ads,
33944         s-pack48.adb, s-pack48.ads, s-pack49.adb, s-pack49.ads,
33945         s-pack50.adb, s-pack50.ads, s-pack51.adb, s-pack51.ads,
33946         s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads,
33947         s-pack54.adb, s-pack54.ads, s-pack55.adb, s-pack55.ads,
33948         s-pack56.adb, s-pack56.ads, s-pack57.adb, s-pack57.ads,
33949         s-pack58.adb, s-pack58.ads, s-pack59.adb, s-pack59.ads,
33950         s-pack60.adb, s-pack60.ads, s-pack61.adb, s-pack61.ads,
33951         s-pack62.adb, s-pack62.ads, s-pack63.adb, s-pack63.ads,
33952         s-parame.adb, s-parame.ads, s-parint.adb, s-parint.ads,
33953         s-pooglo.adb, s-pooglo.ads, s-pooloc.adb, s-pooloc.ads,
33954         s-poosiz.adb, s-poosiz.ads, s-powtab.ads, s-proinf.adb,
33955         s-proinf.ads, s-rpc.adb, s-rpc.ads, s-scaval.ads,
33956         s-secsta.adb, s-secsta.ads, s-sequio.adb, s-sequio.ads,
33957         s-shasto.adb, s-shasto.ads, s-soflin.adb, s-soflin.ads,
33958         s-sopco3.adb, s-sopco3.ads, s-sopco4.adb, s-sopco4.ads,
33959         s-sopco5.adb, s-sopco5.ads, s-stache.adb, s-stache.ads,
33960         s-stalib.adb, s-stalib.ads, s-stoele.adb, s-stoele.ads,
33961         s-stopoo.ads, s-stratt.adb, s-stratt.ads, s-strops.adb,
33962         s-strops.ads, s-taasde.adb, s-taasde.ads, s-tadeca.adb,
33963         s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-taenca.adb,
33964         s-taenca.ads, s-taprob.adb, s-taprob.ads, s-taprop.ads,
33965         s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads,
33966         s-tasinf.adb, s-tasinf.ads, s-tasini.adb, s-tasini.ads,
33967         s-taskin.adb, s-taskin.ads, s-tasque.adb, s-tasque.ads,
33968         s-tasren.adb, s-tasren.ads, s-tasres.ads, s-tassta.adb,
33969         s-tassta.ads, s-tasuti.adb, s-tasuti.ads, s-tataat.adb,
33970         s-tataat.ads, s-tpinop.adb, s-tpinop.ads, s-tpoben.adb,
33971         s-tpoben.ads, s-tpobop.adb, s-tpobop.ads, s-tposen.adb,
33972         s-tposen.ads, s-traceb.adb, s-traceb.ads, s-traces.adb,
33973         s-traces.ads, s-tratas.adb, s-tratas.ads, s-unstyp.ads,
33974         s-vaflop.adb, s-vaflop.ads, s-valboo.adb, s-valboo.ads,
33975         s-valcha.adb, s-valcha.ads, s-valdec.adb, s-valdec.ads,
33976         s-valenu.adb, s-valenu.ads, s-valint.adb, s-valint.ads,
33977         s-vallld.adb, s-vallld.ads, s-vallli.adb, s-vallli.ads,
33978         s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads,
33979         s-valuns.adb, s-valuns.ads, s-valuti.adb, s-valuti.ads,
33980         s-valwch.adb, s-valwch.ads, s-vercon.adb, s-vercon.ads,
33981         s-vmexta.adb, s-vmexta.ads, s-wchcnv.adb, s-wchcnv.ads,
33982         s-wchcon.ads, s-wchjis.adb, s-wchjis.ads, s-wchstw.adb,
33983         s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, s-widboo.adb,
33984         s-widboo.ads, s-widcha.adb, s-widcha.ads, s-widenu.adb,
33985         s-widenu.ads, s-widlli.adb, s-widlli.ads, s-widllu.adb,
33986         s-widllu.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb,
33987         s-wwdcha.ads, s-wwdenu.adb, s-wwdenu.ads, s-wwdwch.adb,
33988         s-wwdwch.ads, scans.adb, scans.ads, scn-nlit.adb,
33989         scn-slit.adb, scn.adb, scn.ads, sdefault.ads,
33990         sem.adb, sem.ads, sem_aggr.adb, sem_aggr.ads,
33991         sem_attr.adb, sem_attr.ads, sem_case.adb, sem_case.ads,
33992         sem_cat.adb, sem_cat.ads, sem_ch10.adb, sem_ch10.ads,
33993         sem_ch11.adb, sem_ch11.ads, sem_ch12.adb, sem_ch12.ads,
33994         sem_ch13.adb, sem_ch13.ads, sem_ch2.adb, sem_ch2.ads,
33995         sem_ch3.adb, sem_ch3.ads, sem_ch4.adb, sem_ch4.ads,
33996         sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
33997         sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads,
33998         sem_ch9.adb, sem_ch9.ads, sem_disp.adb, sem_disp.ads,
33999         sem_dist.adb, sem_dist.ads, sem_elab.adb, sem_elab.ads,
34000         sem_elim.adb, sem_elim.ads, sem_eval.adb, sem_eval.ads,
34001         sem_intr.adb, sem_intr.ads, sem_maps.adb, sem_maps.ads,
34002         sem_mech.adb, sem_mech.ads, sem_prag.adb, sem_prag.ads,
34003         sem_res.adb, sem_res.ads, sem_smem.adb, sem_smem.ads,
34004         sem_type.adb, sem_type.ads, sem_util.adb, sem_util.ads,
34005         sem_vfpt.adb, sem_vfpt.ads, sem_warn.adb, sem_warn.ads,
34006         sequenio.ads, sfn_scan.adb, sfn_scan.ads, sinfo-cn.adb,
34007         sinfo-cn.ads, sinfo.adb, sinfo.ads, sinput-d.adb,
34008         sinput-d.ads, sinput-l.adb, sinput-l.ads, sinput-p.adb,
34009         sinput-p.ads, sinput.adb, sinput.ads, snames.adb,
34010         snames.ads, sprint.adb, sprint.ads, stand.adb,
34011         stand.ads, stringt.adb, stringt.ads, style.adb,
34012         style.ads, stylesw.adb, stylesw.ads, switch-b.adb,
34013         switch-b.ads, switch-c.adb, switch-c.ads, switch-m.adb,
34014         switch-m.ads, switch.adb, switch.ads, system.ads,
34015         table.adb, table.ads, targparm.adb, targparm.ads,
34016         tbuild.adb, tbuild.ads, text_io.ads, trans.c,
34017         tree_gen.adb, tree_gen.ads, tree_in.adb, tree_in.ads,
34018         tree_io.adb, tree_io.ads, treepr.adb, treepr.ads,
34019         ttypef.ads, ttypes.ads, types.adb, types.ads,
34020         uintp.adb, uintp.ads, uname.adb, uname.ads,
34021         unchconv.ads, unchdeal.ads, urealp.adb, urealp.ads,
34022         usage.adb, usage.ads, validsw.adb, validsw.ads,
34023         widechar.adb, widechar.ads, xeinfo.adb, xnmake.adb,
34024         xr_tabls.adb, xr_tabls.ads, xref_lib.adb, xref_lib.ads,
34025         xsinfo.adb, xsnames.adb, xtreeprs.adb : Merge header,
34026         formatting and other trivial changes from ACT.
34027
34028 2003-04-12  Zack Weinberg  <zack@codesourcery.com>
34029
34030         * gigi.h, utils2.c (build_constructor):
34031         Rename gnat_build_constructor. Use build_constructor.
34032         * decl.c (gnat_to_gnu_entity)
34033         * trans.c (tree_transform, pos_to_constructor, extract_values)
34034         * ada/utils.c (build_template, convert_to_fat_pointer, convert)
34035         (unchecked_convert)
34036         * ada/utils2.c (build_binary_op, build_call_raise, build_allocator)
34037         (fill_vms_descriptor):
34038         Update to match.
34039
34040 2003-04-06  Zack Weinberg  <zack@codesourcery.com>
34041
34042         * ada-tree.def: Make fourth element for GNAT_LOOP_ID zero.
34043         * misc.c (gnat_tree_size): New function.
34044         (LANG_HOOKS_TREE_SIZE): Override.
34045
34046 2003-04-03  Jason Merrill  <jason@redhat.com>
34047
34048         * misc.c (gnat_adjust_rli): #if 0.
34049
34050 2003-03-31   Geert Bosch  <bosch@gnat.com>
34051
34052         PR ada/10020
34053         * link.c : Fix misspelled "const" keyword
34054
34055 2003-03-23  Mark Mitchell  <mark@codesourcery.com>
34056
34057         PR c++/7086
34058         * utils2.c: Adjust calls to put_var_into_stack.
34059
34060 2003-03-12  Nathanael Nerode  <neroden@gcc.gnu.org>
34061
34062         * Make-lang.in, Makefile.in, config-lang.in: GCC, not GNU CC.
34063
34064 2003-03-08  Neil Booth  <neil@daikokuya.co.uk>
34065
34066         * misc.c (gnat_init): Update for new prototype.
34067
34068 2003-03-05  Olivier Hainque  <hainque@gnat.com>
34069
34070         ada/9961
34071         * raise.c (__gnat_Unwind_RaiseException): Add prototype to avoid
34072         warning, and fix return type for the IN_RTS && !SJLJ case.
34073
34074 2003-03-04  Tom Tromey  <tromey@redhat.com>
34075
34076         * Make-lang.in (ada.tags): New target.
34077
34078 2003-03-04  Olivier Hainque  <hainque@act-europe.fr>
34079
34080         ada/9911
34081         * a-except.adb (Unwind_RaiseException): Import a GNAT specific
34082         wrapper, which name remains constant whatever underlying GCC
34083         scheme.
34084
34085         * raise.c (__gnat_Unwind_RaiseException): New wrappers, providing
34086         the stable interface needed for a-except.
34087
34088 2003-03-02  Andreas Jaeger  <aj@suse.de>
34089
34090         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
34091         gnat_ug_wnt.texi: Regenerate.
34092
34093 2003-03-02  Laurent Guerby  <guerby@acm.org>
34094
34095         * Makefile.in (install-gnatlib): Match previous change there
34096         so it works.
34097
34098 2003-02-28  Andreas Schwab  <schwab@suse.de>
34099
34100         * Make-lang.in (install-gnatlib): Change to ada directory before
34101         running make instead of using ada/Makefile directly.
34102
34103 2003-02-18  Ben Elliston  <bje@redhat.com>
34104
34105         Part of PR ada/9406
34106         * gnat_ug.texi (Binder output file): Grammar fix.
34107
34108 2003-02-18  Ben Elliston  <bje@redhat.com>
34109
34110         PR other/7350
34111         * 5qtaprop.adb (Sleep): Fix typo in comment.
34112
34113 2003-02-04  Joseph S. Myers  <jsm@polyomino.org.uk>
34114
34115         * gnat_rm.texi, gnat_ug.texi: Update to GFDL 1.2.
34116         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
34117         gnat_ug_wnt.texi: Regenerate.
34118
34119 2003-02-03  Christian Cornelssen  <ccorn@cs.tu-berlin.de>
34120
34121         * Make-lang.in (ada.install-info): Let $(DESTDIR)$(infodir)
34122         be created if necessary.
34123         (ada.install-common): Let $(DESTDIR)$(bindir) be created
34124         if necessary.  Remove erroneous and redundant gnatchop
34125         installation commands.  Test for gnatdll before attempting
34126         to install it.
34127         (ada.uninstall): Also uninstall gnatfind, gnatxref, gnatlbr,
34128         and gnatdll from all plausible locations.
34129
34130 2003-02-01  Richard Sandiford  <rsandifo@redhat.com>
34131
34132         * utils2.c (build_unary_op): Don't check flag_volatile.
34133         * gnat_ug.texi: Remove -fvolatile from example.
34134         * gnat_ug_vxw.texi: Likewise.
34135
34136 2003-01-29  Laurent Guerby  <guerby@acm.org>
34137
34138         PR ada/8344
34139         * final.c: rename to adafinal.c to avoid file name conflicts with gcc file.
34140         * Makefile.in: match previous change.
34141         * Make-lang.in: match previous change.
34142
34143 2003-01-29  Joel Sherrill  <joel@OARcorp.com>
34144
34145         * 5rosinte.ads: Add SIGXCPU.
34146         * 5rtpopsp.adb: New file.
34147         * Make-lang.in: Do not build gnatpsta and gnatpsys when cross.
34148         * Makefile.in: Recognize more RTEMS targets and add the RTEMS
34149         specific file 5rtpopsp.adb.
34150         * adaint.h: Add include of <stdio.h> when target is RTEMS.  This
34151         is likely needed for all newlib targets.
34152         * init.c: Add RTEMS specific version of __gnat_initialize().
34153
34154 2003-01-28  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
34155
34156         * adaint.c, adaint.h, gmem.c, init.c: Update copyright year.
34157
34158 2003-01-27  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
34159
34160         * init.c (__gnat_error_handler): Make msg const.
34161
34162         * gmem.c (convert_addresses): Move declaration ...
34163         * adaint.h: ... here.
34164         * adaint.c (convert_addresses): Adapt addrs type to match
34165         prototype.
34166
34167         * adaint.c (__gnat_try_lock): Cast pid_t to long, adapt format.
34168
34169 2003-01-24  Andreas Schwab  <schwab@suse.de>
34170
34171         * ada-tree.h (SET_TYPE_DIGITS_VALUE): Add intermediate cast to
34172         size_t to avoid warning.
34173
34174 2003-01-21  Zack Weinberg  <zack@codesourcery.com>
34175
34176         * Make-lang.in: Disable -Werror for tracebak.c and b_gnatb.c.
34177
34178 2003-01-09  Geoffrey Keating  <geoffk@apple.com>
34179
34180         * gnat_rm.texi: Remove RCS version number.
34181
34182         * ada-tree.h (union lang_tree_node): Add chain_next option.
34183
34184 2003-01-09  Christian Cornelssen  <ccorn@cs.tu-berlin.de>
34185
34186         * Make-lang.in (ada.install-info, ada.install-common,
34187         ada.uninstall): Prepend $(DESTDIR) to the destination
34188         directory in all (un)installation commands.
34189         * Makefile.in (install-gnatlib, install-rts): Ditto.
34190
34191 2002-12-28  Joseph S. Myers  <jsm@polyomino.org.uk>
34192
34193         * gnat_rm.texi, gnat_ug.texi: Use @copying.
34194         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
34195         gnat_ug_wnt.texi: Regenerate.
34196
34197 2002-12-23  Joseph S. Myers  <jsm@polyomino.org.uk>
34198
34199         * gnat_rm.texi: Include gcc-common.texi.  Use GCC version number
34200         only.
34201         * Make-lang.in ($(srcdir)/ada/gnat_ug_unx.info,
34202         $(srcdir)/ada/gnat_ug_vms.info, $(srcdir)/ada/gnat_ug_vxw.info,
34203         $(srcdir)/ada/gnat_ug_wnt.info, $(srcdir)/ada/gnat_rm.info,
34204         ada/gnat_ug_unx.dvi, ada/gnat_ug_vms.dvi, ada/gnat_ug_vxw.dvi,
34205         ada/gnat_ug_wnt.dvi, ada/gnat_rm.dvi): Depend on
34206         $(srcdir)/doc/include/gcc-common.texi.
34207
34208 2002-12-15   Geert Bosch  <bosch@gnat.com>
34209
34210         * sem_ch6.adb (Analyze_Subprogram_Body): Fix typo and formatting
34211
34212 2002-12-14   Geert Bosch  <bosch@gnat.com>
34213
34214         PR ada/5690
34215         * sem_ch6.adb (Analyze_Subprogram_Body): Recognize additional
34216         case of a body created for a Renaming_As_Body, on which
34217         conformance checks are not performed.
34218
34219 2002-11-30  Zack Weinberg  <zack@codesourcery.com>
34220
34221         * cuintp.c, decl.c, deftarg.c, misc.c, targtyps.c, trans.c,
34222         utils.c, utils2.c: Include coretypes.h and tm.h, and system.h when
34223         not already included.
34224         * Make-lang.in: Update dependencies.
34225
34226 2002-11-18  Nathanael Nerode  <neroden@gcc.gnu.org>
34227         * adaint.c (__gnat_tmp_name): Better, but good enough for now,
34228         solution to buffer overflow bug on GNU/Linux.
34229
34230 2002-11-14  Nathanael Nerode  <neroden@gcc.gnu.org>
34231
34232         PR ada/5856
34233         PR ada/6919
34234         * bindgen.adb: Remove all references to Public_Version.
34235         * comperr.adb: Remove all references to Public_Version and
34236         GNATPRO_Version; correct bug reporting instructions.
34237         * comperr.ads: Change to match bug box.
34238         * gnatvsn.ads: Remove all references to Public version and
34239         GNATPRO version.
34240
34241 2002-11-13  Nathanael Nerode  <neroden@gcc.gnu.org>
34242
34243         PR ada/6919
34244         * adaint.c (__gnat_tmp_name): Remove buffer overflow bug on
34245         GNU/Linux.
34246
34247         PR ada/6558
34248         * config-lang.in: Remove diff_excludes.
34249
34250 2002-11-05  Graham Stott  <graham.stott@btinternet.com>
34251
34252         PR ada/8358
34253         * trans.c (gnu_pending_elaboration_lists): New GC root.
34254         (build_unit_elab): Use..
34255
34256 2002-10-30   Geert Bosch  <bosch@gnat.com>
34257
34258         PR ada/6558
34259         * misc.c : Include optabs.h
34260
34261         * Make-lang.in (misc.o): Add dependency on optabs.h
34262
34263 2002-10-29   Geert Bosch  <bosch@gnat.com>
34264
34265         PR ada/6558
34266         * Make-lang.in (gnatbind): Depend on CONFIG_H
34267
34268 2002-10-29  Geert bosch  <bosch@gnat.com>
34269
34270         PR ada/6558
34271         * misc.c: Unrevert misc.c (1.13)
34272
34273 2002-10-28  Nathanael Nerode  <neroden@gcc.gnu.org>
34274
34275         * a-chlat9.ads a-cwila9.ads a-dynpri.adb a-retide.adb: Update
34276         maintainership comments.
34277
34278 2002-09-25  Nathanael Nerode  <neroden@gcc.gnu.org>
34279
34280         PR ada/5904
34281         * 5ataprop.adb 5atpopsp.adb 5bosinte.adb 5ftaprop.adb
34282         5gtaprop.adb 5htaprop.adb 5rosinte.ads 5staprop.adb
34283         5stpopse.adb 5vtaspri.ads 5zintman.adb 5ztaprop.adb
34284         7staprop.adb: Correct statements in comments about
34285         maintainership of GNAT.
34286
34287         PR ada/5904
34288         * 1ssecsta.adb 1ssecsta.ads adadecode.c adadecode.h aux-io.c
34289         gnatname.adb gnatname.ads mkdir.c osint-b.adb osint-b.ads
34290         osint-c.adb osint-c.ads osint-l.adb osint-l.ads osint-m.adb
34291         osint-m.ads prj-makr.adb prj-makr.ads prj-pp.adb prj-pp.ads
34292         s-atacco.ads s-traceb.adb s-traceb.ads s-traces.adb
34293         s-traces.ads s-tratas.adb s-tratas.ads sinput-d.adb
34294         sinput-d.ads switch-b.adb switch-b.ads switch-c.adb
34295         switch-c.ads switch-m.adb switch-m.ads: Correct statements in
34296         comments about maintainership of GNAT.
34297
34298         PR ada/6919 (forward port of patch for PR ada/5904)
34299         * 1aexcept.adb 1aexcept.ads 41intnam.ads 42intnam.ads
34300         4aintnam.ads 4cintnam.ads 4dintnam.ads 4hexcpol.adb
34301         4lintnam.ads 4mintnam.ads 4nintnam.ads 4onumaux.ads
34302         4pintnam.ads 4rintnam.ads 4sintnam.ads 4uintnam.ads
34303         4vcalend.adb 4vintnam.ads 4wcalend.adb 4wexcpol.adb
34304         4wintnam.ads 4zintnam.ads 4znumaux.ads 4zsytaco.adb
34305         4zsytaco.ads 51osinte.adb 51osinte.ads 52osinte.adb
34306         52osinte.ads 52system.ads 53osinte.ads 5aosinte.ads
34307         5asystem.ads 5atasinf.ads 5ataspri.ads 5avxwork.ads
34308         5bosinte.ads 5bsystem.ads 5cosinte.ads 5dosinte.ads
34309         5esystem.ads 5fosinte.ads 5fsystem.ads 5ftasinf.ads
34310         5ginterr.adb 5gmastop.adb 5gosinte.ads 5gproinf.adb
34311         5gproinf.ads 5gsystem.ads 5gtasinf.adb 5gtasinf.ads
34312         5gtpgetc.adb 5hparame.ads 5hsystem.ads 5htaspri.ads
34313         5iosinte.ads 5itaspri.ads 5ksystem.ads 5kvxwork.ads
34314         5losinte.ads 5lsystem.ads 5mosinte.ads 5mvxwork.ads
34315         5ninmaop.adb 5nintman.adb 5nosinte.ads 5ntaspri.ads
34316         5oosprim.adb 5oparame.adb 5osystem.ads 5posinte.ads
34317         5posprim.adb 5pvxwork.ads 5rosinte.ads 5rparame.adb
34318         5sintman.adb 5sosinte.ads 5sparame.adb 5ssystem.ads
34319         5stasinf.adb 5stasinf.ads 5staspri.ads 5svxwork.ads
34320         5tosinte.ads 5uosinte.ads 5vasthan.adb 5vinterr.adb
34321         5vintman.ads 5vosinte.ads 5vosprim.adb 5vosprim.ads
34322         5vparame.ads 5vsystem.ads 5vtaspri.ads 5vtpopde.adb
34323         5vtpopde.ads 5vvaflop.adb 5wintman.adb 5wmemory.adb
34324         5wosinte.ads 5wosprim.adb 5wsystem.ads 5wtaprop.adb
34325         5wtaspri.ads 5ysystem.ads 5zinterr.adb 5zosinte.adb
34326         5zosinte.ads 5zosprim.adb 5zsystem.ads 6vcpp.adb 6vcstrea.adb
34327         7sosprim.adb 86numaux.adb 86numaux.ads 9drpc.adb a-astaco.adb
34328         a-caldel.ads a-calend.adb a-calend.ads a-chahan.adb
34329         a-chahan.ads a-colien.adb a-colien.ads a-colire.adb
34330         a-colire.ads a-comlin.adb a-comlin.ads a-cwila1.ads
34331         a-decima.adb a-decima.ads a-diocst.adb a-diocst.ads
34332         a-direio.adb a-direio.ads a-einuoc.adb a-einuoc.ads
34333         a-except.adb a-except.ads a-excpol.adb a-exctra.adb
34334         a-exctra.ads a-filico.adb a-filico.ads a-finali.adb
34335         a-finali.ads a-interr.ads a-intsig.adb a-intsig.ads
34336         a-ngcefu.adb a-ngcoty.adb a-ngcoty.ads a-ngelfu.adb
34337         a-nudira.adb a-nudira.ads a-nuflra.adb a-nuflra.ads
34338         a-numaux.ads a-reatim.ads a-retide.ads a-sequio.adb
34339         a-sequio.ads a-siocst.adb a-siocst.ads a-ssicst.adb
34340         a-ssicst.ads a-stmaco.ads a-storio.adb a-strbou.adb
34341         a-strbou.ads a-stream.ads a-strfix.adb a-strfix.ads
34342         a-strmap.adb a-strmap.ads a-strsea.adb a-strsea.ads
34343         a-strunb.adb a-strunb.ads a-ststio.adb a-ststio.ads
34344         a-stunau.adb a-stunau.ads a-stwibo.adb a-stwibo.ads
34345         a-stwifi.adb a-stwima.adb a-stwima.ads a-stwise.adb
34346         a-stwise.ads a-stwiun.adb a-stwiun.ads a-suteio.adb
34347         a-suteio.ads a-swmwco.ads a-swuwti.adb a-swuwti.ads
34348         a-sytaco.adb a-sytaco.ads a-tags.adb a-tags.ads a-tasatt.ads
34349         a-taside.adb a-taside.ads a-teioed.adb a-teioed.ads
34350         a-textio.adb a-textio.ads a-ticoau.adb a-ticoau.ads
34351         a-ticoio.adb a-ticoio.ads a-tideau.adb a-tideau.ads
34352         a-tideio.adb a-tideio.ads a-tienau.adb a-tienau.ads
34353         a-tienio.adb a-tienio.ads a-tifiio.adb a-tifiio.ads
34354         a-tiflau.adb a-tiflau.ads a-tiflio.adb a-tiflio.ads
34355         a-tigeau.adb a-tigeau.ads a-tiinau.adb a-tiinau.ads
34356         a-tiinio.adb a-tiinio.ads a-timoau.adb a-timoau.ads
34357         a-timoio.adb a-timoio.ads a-tiocst.adb a-tiocst.ads
34358         a-titest.adb a-witeio.adb a-witeio.ads a-wtcoau.adb
34359         a-wtcoau.ads a-wtcoio.adb a-wtcstr.adb a-wtcstr.ads
34360         a-wtdeau.adb a-wtdeau.ads a-wtdeio.adb a-wtdeio.ads
34361         a-wtedit.adb a-wtedit.ads a-wtenau.adb a-wtenau.ads
34362         a-wtenio.adb a-wtenio.ads a-wtfiio.adb a-wtfiio.ads
34363         a-wtflau.adb a-wtflau.ads a-wtflio.adb a-wtflio.ads
34364         a-wtgeau.adb a-wtgeau.ads a-wtinau.adb a-wtinau.ads
34365         a-wtinio.adb a-wtmoau.adb a-wtmoau.ads a-wtmoio.adb
34366         a-wtmoio.ads a-wttest.adb ada-tree.def ada-tree.h ada.h
34367         adaint.c adaint.h ali-util.adb ali-util.ads ali.adb ali.ads
34368         alloc.ads argv.c atree.adb atree.ads atree.h back_end.adb
34369         back_end.ads bcheck.adb bcheck.ads binde.adb binde.ads
34370         binderr.adb binderr.ads bindgen.adb bindgen.ads bindusg.adb
34371         bindusg.ads butil.adb butil.ads cal.c casing.adb casing.ads
34372         ceinfo.adb checks.adb checks.ads cio.c comperr.adb comperr.ads
34373         csets.adb csets.ads csinfo.adb cstand.adb cstand.ads
34374         cstreams.c cuintp.c debug.adb debug.ads debug_a.adb
34375         debug_a.ads dec-io.adb dec-io.ads dec.ads decl.c deftarg.c
34376         einfo.adb einfo.ads einfo.h elists.adb elists.ads elists.h
34377         errno.c errout.adb errout.ads eval_fat.adb eval_fat.ads exit.c
34378         exp_aggr.adb exp_aggr.ads exp_attr.adb exp_attr.ads
34379         exp_ch10.ads exp_ch11.adb exp_ch11.ads exp_ch12.adb
34380         exp_ch12.ads exp_ch13.adb exp_ch13.ads exp_ch2.adb exp_ch2.ads
34381         exp_ch3.adb exp_ch3.ads exp_ch4.adb exp_ch4.ads exp_ch5.adb
34382         exp_ch5.ads exp_ch6.adb exp_ch6.ads exp_ch7.adb exp_ch7.ads
34383         exp_ch8.adb exp_ch8.ads exp_ch9.adb exp_ch9.ads exp_code.adb
34384         exp_code.ads exp_dbug.adb exp_dbug.ads exp_disp.adb
34385         exp_disp.ads exp_dist.adb exp_dist.ads exp_fixd.adb
34386         exp_fixd.ads exp_imgv.adb exp_imgv.ads exp_intr.adb
34387         exp_intr.ads exp_pakd.adb exp_pakd.ads exp_prag.adb
34388         exp_prag.ads exp_smem.adb exp_smem.ads exp_strm.adb
34389         exp_strm.ads exp_tss.adb exp_tss.ads exp_util.adb exp_util.ads
34390         exp_vfpt.adb exp_vfpt.ads expander.adb expander.ads fe.h
34391         final.c fmap.adb fmap.ads fname-sf.adb fname-sf.ads
34392         fname-uf.adb fname-uf.ads fname.adb fname.ads freeze.adb
34393         freeze.ads frontend.adb frontend.ads g-calend.ads g-comlin.adb
34394         g-debpoo.adb g-debpoo.ads g-locfil.adb g-os_lib.ads
34395         g-regist.adb g-regist.ads get_targ.adb get_targ.ads gigi.h
34396         gmem.c gnat1drv.adb gnat1drv.ads gnat_ug.texi gnatbind.adb
34397         gnatbind.ads gnatbl.c gnatcmd.adb gnatcmd.ads gnatdll.adb
34398         gnatfind.adb gnatkr.adb gnatkr.ads gnatlbr.adb gnatlink.adb
34399         gnatlink.ads gnatls.adb gnatls.ads gnatmake.adb gnatmake.ads
34400         gnatmem.adb gnatprep.adb gnatprep.ads gnatpsta.adb gnatvsn.ads
34401         gnatxref.adb hlo.adb hlo.ads hostparm.ads i-c.adb i-cexten.ads
34402         i-cobol.adb i-cobol.ads i-cpoint.adb i-cpoint.ads i-cpp.adb
34403         i-cpp.ads i-cstrea.adb i-cstrea.ads i-cstrin.adb i-cstrin.ads
34404         i-fortra.adb i-os2err.ads i-os2lib.adb i-os2lib.ads
34405         i-os2syn.ads i-os2thr.ads i-pacdec.adb i-pacdec.ads
34406         impunit.adb impunit.ads init.c inline.adb inline.ads io-aux.c
34407         itypes.adb itypes.ads krunch.adb krunch.ads lang-options.h
34408         lang-specs.h layout.adb layout.ads lib-list.adb lib-load.adb
34409         lib-load.ads lib-sort.adb lib-util.adb lib-util.ads
34410         lib-writ.adb lib-writ.ads lib-xref.adb lib-xref.ads lib.adb
34411         lib.ads link.c live.adb live.ads make.adb make.ads makeusg.adb
34412         makeusg.ads math_lib.adb mdll.adb mdll.ads memtrack.adb misc.c
34413         namet.adb namet.ads namet.h nlists.adb nlists.ads nlists.h
34414         nmake.adb nmake.ads nmake.adt opt.adb opt.ads osint.adb
34415         osint.ads output.adb output.ads par-ch10.adb par-ch11.adb
34416         par-ch12.adb par-ch13.adb par-ch2.adb par-ch3.adb par-ch4.adb
34417         par-ch5.adb par-ch6.adb par-ch7.adb par-ch8.adb par-ch9.adb
34418         par-endh.adb par-labl.adb par-load.adb par-prag.adb
34419         par-sync.adb par-tchk.adb par-util.adb par.adb par.ads
34420         prj-attr.adb prj-attr.ads prj-com.adb prj-com.ads prj-dect.adb
34421         prj-dect.ads prj-env.adb prj-env.ads prj-ext.adb prj-ext.ads
34422         prj-nmsc.adb prj-nmsc.ads prj-pars.adb prj-pars.ads
34423         prj-part.adb prj-part.ads prj-proc.adb prj-proc.ads
34424         prj-strt.adb prj-strt.ads prj-tree.adb prj-tree.ads
34425         prj-util.adb prj-util.ads prj.adb prj.ads raise.c raise.h
34426         repinfo.adb repinfo.ads repinfo.h restrict.adb restrict.ads
34427         rident.ads rtsfind.adb rtsfind.ads s-addima.adb s-addima.ads
34428         s-arit64.adb s-arit64.ads s-assert.adb s-assert.ads
34429         s-asthan.adb s-asthan.ads s-atacco.adb s-auxdec.adb
34430         s-auxdec.ads s-bitops.adb s-bitops.ads s-chepoo.ads
34431         s-direio.adb s-direio.ads s-except.ads s-exctab.adb
34432         s-exctab.ads s-exnflt.ads s-exngen.adb s-exngen.ads
34433         s-exnint.ads s-exnlfl.ads s-exnlin.ads s-exnllf.ads
34434         s-exnlli.ads s-exnsfl.ads s-exnsin.ads s-exnssi.ads
34435         s-expflt.ads s-expgen.adb s-expgen.ads s-expint.ads
34436         s-explfl.ads s-explin.ads s-expllf.ads s-explli.ads
34437         s-expllu.adb s-expllu.ads s-expmod.adb s-expmod.ads
34438         s-expsfl.ads s-expsin.ads s-expssi.ads s-expuns.adb
34439         s-expuns.ads s-fatflt.ads s-fatgen.adb s-fatgen.ads
34440         s-fatlfl.ads s-fatllf.ads s-fatsfl.ads s-ficobl.ads
34441         s-fileio.adb s-fileio.ads s-finimp.adb s-finimp.ads
34442         s-finroo.adb s-finroo.ads s-fore.adb s-fore.ads s-imgbiu.adb
34443         s-imgbiu.ads s-imgboo.adb s-imgboo.ads s-imgcha.adb
34444         s-imgcha.ads s-imgdec.adb s-imgdec.ads s-imgenu.adb
34445         s-imgenu.ads s-imgint.adb s-imgint.ads s-imgllb.adb
34446         s-imgllb.ads s-imglld.adb s-imglld.ads s-imglli.adb
34447         s-imglli.ads s-imgllu.adb s-imgllu.ads s-imgllw.adb
34448         s-imgllw.ads s-imgrea.adb s-imgrea.ads s-imguns.adb
34449         s-imguns.ads s-imgwch.adb s-imgwch.ads s-imgwiu.adb
34450         s-imgwiu.ads s-inmaop.ads s-interr.adb s-interr.ads
34451         s-intman.ads s-io.adb s-io.ads s-maccod.ads s-mantis.adb
34452         s-mantis.ads s-memory.adb s-memory.ads s-osprim.ads
34453         s-pack03.adb s-pack03.ads s-pack05.adb s-pack05.ads
34454         s-pack06.adb s-pack06.ads s-pack07.adb s-pack07.ads
34455         s-pack09.adb s-pack09.ads s-pack10.adb s-pack10.ads
34456         s-pack11.adb s-pack11.ads s-pack12.adb s-pack12.ads
34457         s-pack13.adb s-pack13.ads s-pack14.adb s-pack14.ads
34458         s-pack15.adb s-pack15.ads s-pack17.adb s-pack17.ads
34459         s-pack18.adb s-pack18.ads s-pack19.adb s-pack19.ads
34460         s-pack20.adb s-pack20.ads s-pack21.adb s-pack21.ads
34461         s-pack22.adb s-pack22.ads s-pack23.adb s-pack23.ads
34462         s-pack24.adb s-pack24.ads s-pack25.adb s-pack25.ads
34463         s-pack26.adb s-pack26.ads s-pack27.adb s-pack27.ads
34464         s-pack28.adb s-pack28.ads s-pack29.adb s-pack29.ads
34465         s-pack30.adb s-pack30.ads s-pack31.adb s-pack31.ads
34466         s-pack33.adb s-pack33.ads s-pack34.adb s-pack34.ads
34467         s-pack35.adb s-pack35.ads s-pack36.adb s-pack36.ads
34468         s-pack37.adb s-pack37.ads s-pack38.adb s-pack38.ads
34469         s-pack39.adb s-pack39.ads s-pack40.adb s-pack40.ads
34470         s-pack41.adb s-pack41.ads s-pack42.adb s-pack42.ads
34471         s-pack43.adb s-pack43.ads s-pack44.adb s-pack44.ads
34472         s-pack45.adb s-pack45.ads s-pack46.adb s-pack46.ads
34473         s-pack47.adb s-pack47.ads s-pack48.adb s-pack48.ads
34474         s-pack49.adb s-pack49.ads s-pack50.adb s-pack50.ads
34475         s-pack51.adb s-pack51.ads s-pack52.adb s-pack52.ads
34476         s-pack53.adb s-pack53.ads s-pack54.adb s-pack54.ads
34477         s-pack55.adb s-pack55.ads s-pack56.adb s-pack56.ads
34478         s-pack57.adb s-pack57.ads s-pack58.adb s-pack58.ads
34479         s-pack59.adb s-pack59.ads s-pack60.adb s-pack60.ads
34480         s-pack61.adb s-pack61.ads s-pack62.adb s-pack62.ads
34481         s-pack63.adb s-pack63.ads s-parame.adb s-parame.ads
34482         s-parint.adb s-parint.ads s-pooglo.adb s-pooglo.ads
34483         s-pooloc.adb s-pooloc.ads s-poosiz.adb s-poosiz.ads
34484         s-powtab.ads s-proinf.adb s-proinf.ads s-rpc.adb s-rpc.ads
34485         s-scaval.ads s-secsta.adb s-secsta.ads s-sequio.adb
34486         s-sequio.ads s-shasto.adb s-shasto.ads s-soflin.adb
34487         s-soflin.ads s-sopco3.adb s-sopco3.ads s-sopco4.adb
34488         s-sopco4.ads s-sopco5.adb s-sopco5.ads s-stache.adb
34489         s-stache.ads s-stalib.adb s-stalib.ads s-stoele.adb
34490         s-stopoo.ads s-stratt.adb s-stratt.ads s-strops.adb
34491         s-strops.ads s-taprob.ads s-taprop.ads s-tarest.ads
34492         s-tasdeb.adb s-tasdeb.ads s-tasinf.adb s-tasinf.ads
34493         s-tasini.ads s-taskin.ads s-tasren.ads s-tasres.ads
34494         s-tassta.ads s-tpinop.adb s-tpinop.ads s-tpoben.ads
34495         s-tpobop.ads s-unstyp.ads s-vaflop.adb s-vaflop.ads
34496         s-valboo.adb s-valboo.ads s-valcha.adb s-valcha.ads
34497         s-valdec.adb s-valdec.ads s-valenu.adb s-valenu.ads
34498         s-valint.adb s-valint.ads s-vallld.adb s-vallld.ads
34499         s-vallli.adb s-vallli.ads s-valllu.adb s-valllu.ads
34500         s-valrea.adb s-valrea.ads s-valuns.adb s-valuns.ads
34501         s-valuti.adb s-valuti.ads s-valwch.adb s-valwch.ads
34502         s-vercon.adb s-vercon.ads s-vmexta.adb s-vmexta.ads
34503         s-wchcnv.adb s-wchcnv.ads s-wchcon.ads s-wchjis.adb
34504         s-wchjis.ads s-wchstw.adb s-wchstw.ads s-wchwts.adb
34505         s-wchwts.ads s-widboo.adb s-widboo.ads s-widcha.adb
34506         s-widcha.ads s-widenu.adb s-widenu.ads s-widlli.adb
34507         s-widlli.ads s-widllu.adb s-widllu.ads s-widwch.adb
34508         s-widwch.ads s-wwdcha.adb s-wwdcha.ads s-wwdenu.adb
34509         s-wwdenu.ads s-wwdwch.adb s-wwdwch.ads scans.adb scans.ads
34510         scn-nlit.adb scn-slit.adb scn.adb scn.ads sdefault.ads sem.adb
34511         sem.ads sem_aggr.adb sem_aggr.ads sem_attr.adb sem_attr.ads
34512         sem_case.adb sem_case.ads sem_cat.adb sem_cat.ads sem_ch10.adb
34513         sem_ch10.ads sem_ch11.adb sem_ch11.ads sem_ch12.adb
34514         sem_ch12.ads sem_ch13.adb sem_ch13.ads sem_ch2.adb sem_ch2.ads
34515         sem_ch3.adb sem_ch3.ads sem_ch4.adb sem_ch4.ads sem_ch5.adb
34516         sem_ch5.ads sem_ch6.adb sem_ch6.ads sem_ch7.adb sem_ch7.ads
34517         sem_ch8.adb sem_ch8.ads sem_ch9.adb sem_ch9.ads sem_disp.adb
34518         sem_disp.ads sem_dist.adb sem_dist.ads sem_elab.adb
34519         sem_elab.ads sem_elim.adb sem_elim.ads sem_eval.adb
34520         sem_eval.ads sem_intr.adb sem_intr.ads sem_maps.adb
34521         sem_maps.ads sem_mech.adb sem_mech.ads sem_prag.adb
34522         sem_prag.ads sem_res.adb sem_res.ads sem_smem.adb sem_smem.ads
34523         sem_type.adb sem_type.ads sem_util.adb sem_util.ads
34524         sem_vfpt.adb sem_vfpt.ads sem_warn.adb sem_warn.ads
34525         sfn_scan.adb sfn_scan.ads sinfo-cn.adb sinfo-cn.ads sinfo.adb
34526         sinfo.ads sinfo.h sinput-l.adb sinput-l.ads sinput-p.adb
34527         sinput-p.ads sinput.adb sinput.ads snames.adb snames.ads
34528         snames.h sprint.adb sprint.ads stand.adb stand.ads stringt.adb
34529         stringt.ads stringt.h style.adb style.ads stylesw.adb
34530         stylesw.ads switch.adb switch.ads sysdep.c system.ads
34531         table.adb table.ads targparm.adb targparm.ads targtyps.c
34532         tbuild.adb tbuild.ads trans.c tree_gen.adb tree_gen.ads
34533         tree_in.adb tree_in.ads tree_io.adb tree_io.ads treepr.adb
34534         treepr.ads treeprs.ads treeprs.adt ttypef.ads ttypes.ads
34535         types.adb types.ads types.h uintp.adb uintp.ads uintp.h
34536         uname.adb uname.ads urealp.adb urealp.ads urealp.h usage.adb
34537         usage.ads utils.c utils2.c validsw.adb validsw.ads
34538         widechar.adb widechar.ads xeinfo.adb xnmake.adb xr_tabls.adb
34539         xr_tabls.ads xref_lib.adb xref_lib.ads xsinfo.adb xsnames.adb
34540         xtreeprs.adb: Correct statements in comments about maintainership
34541         of GNAT.
34542
34543 2002-09-23  Zack Weinberg  <zack@codesourcery.com>
34544
34545         * Make-lang.in (EXTRA_GNATBIND_OBJS): Add version.o.
34546         * Makefile.in (TOOLS_LIBS): Add ../../version.o.
34547         * gnatvsn.ads: Gnat_Version_String is now a function.
34548         * gnatvsn.adb: New file.  When asked for Gnat_Version_String,
34549         copy the C version_string into a String and return it.
34550         * gnatcmd.adb, gnatkr.adb, gnatlbr.adb, gnatlink.adb,
34551         gnatls.adb,gnatmake.adb, gnatprep.adb, gnatpsta.adb:
34552         Remove pragma Ident (Gnat_Version_String).  If this was the
34553         sole use of package Gnatvsn, remove the with statement too.
34554         * gnat1drv.adb: Tweak -gnatv output.
34555
34556 2002-09-17  Richard Henderson  <rth@redhat.com>
34557
34558         * trans.c (tree_transform): Use real_ldexp not REAL_VALUE_LDEXP.
34559         * config/dsp16xx/dsp16xx.md (fixuns_trunchfhi2): Use real_2expN.
34560         * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
34561         (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
34562         * config/m68k/m68k.c (floating_exact_log2): Use real_exponent
34563         and real_2expN instead of a loop.
34564         * doc/tm.texi (REAL_VALUE_LDEXP): Remove.
34565         (REAL_VALUE_RNDZINT, REAL_VALUE_UNSIGNED_RNDZINT): Remove.
34566
34567 2002-08-25  Andre Leis  <a.leis@gmx.net>
34568             David Billinghurst  <David.Billinghurst@riotinto.com>
34569
34570         * sysdep.c (__gnat_ttyname): include <termios.h> on cygwin
34571
34572 2002-08-13  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
34573
34574         * Make-lang.in (gnatbind$(exeext)): Link with $(SYSLIBS).
34575         Remove $(CONFIG_H) dependency.
34576
34577 2002-08-08  Nathan Sidwell  <nathan@codesourcery.com>
34578
34579         * ada/Make-lang.in (ada.mostlyclean): Remove coverage files.
34580
34581 2002-07-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
34582
34583         * adadecode.c (ada_demangle): Use xstrdup in lieu of
34584         xmalloc/strcpy.
34585         * misc.c (gnat_decode_option): Likewise.
34586
34587 2002-07-15  Florian Weimer  <fw@deneb.enyo.de>
34588
34589         * make.adb (Add_Switch): Make Generic_Position a procedure.  The
34590         function approach did not work well because of a side effect (the
34591         function call could reallocate the table which was being indexed
34592         using its result). Fixes ada/4851. [RESURRECTED]
34593
34594 2002-07-01  Roger Sayle  <roger@eyesopen.com>
34595
34596         * ada/utils.c (builtin_function): Accept an additional parameter.
34597
34598 2002-06-28  Andreas Jaeger  <aj@suse.de>
34599
34600         PR ada/7144
34601         * Makefile.in: Fix typo in comment, patch by Adrian Knoth
34602         <adi@thur.de>.
34603
34604 2002-06-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
34605
34606         * Makefile.in (SHELL): Set to @SHELL@.
34607
34608 2002-06-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
34609
34610         * utils.c (init_gigi_decls): Use ARRAY_SIZE in lieu of explicit
34611         array size calculation.
34612
34613 2002-06-04  Andreas Jaeger  <aj@suse.de>
34614
34615         * Make-lang.in (gnatbind): Readd rule that has been lost in last
34616         patch.
34617
34618 2002-06-03  Geoffrey Keating  <geoffk@redhat.com>
34619
34620         Merge from pch-branch:
34621
34622         * config-lang.in (gtfiles): Add ada-tree.h.
34623         * ada-tree.h (SET_TYPE_CI_CO_LIST): New.
34624         (SET_TYPE_MODULUS): New.
34625         (SET_TYPE_INDEX): New.
34626         (SET_TYPE_DIGITS_VALUE): New.
34627         (SET_TYPE_RM_SIZE): New.
34628         (SET_TYPE_UNCONSTRAINED_ARRAY): New.
34629         (SET_TYPE_ADA_SIZE): New.
34630         (SET_TYPE_ACTUAL_BOUNDS): New.
34631         (SET_DECL_CONST_CORRESPONDING_VAR): New.
34632         (SET_DECL_ORIGINAL_FIELD): New.
34633         (TREE_LOOP_ID): Correct typo.
34634         * decl.c: Use new macros.
34635         * utils.c: Include debug.h, use new macros.
34636         * utils2.c: Use new macros.
34637
34638         * ada-tree.h: Update all macros for new tree description.
34639         (struct tree_loop_id): New.
34640         (union lang_tree_node): New.
34641         (struct lang_decl): New.
34642         (struct lang_type): New.
34643         * misc.c (gnat_mark_tree): Delete.
34644         (LANG_HOOKS_MARK_TREE): Delete.
34645         * trans.c (tree_transform): No longer any need to cast
34646         for TREE_LOOP_ID.
34647
34648         * utils.c (struct language_function): New dummy structure.
34649
34650         * Makefile.in (decl.o): gt-ada-<filename.h> is in objdir, not srcdir.
34651         (misc.o): Likewise.
34652         (utils.o): Likewise; also gtype-ada.h.
34653         * Make-lang.in (gnat1): Add dependency on s-gtype.
34654         (gnatbind): Add dependency on $(CONFIG_H).
34655         * utils.c: Correct last #include.
34656         (stuct e_stack): Remove unnecessary 'static'.
34657         (mark_e_stack): Remove unused prototype.
34658
34659         * scn-nlit.adb: Remove whitespace after version number to
34660         keep lines under 80 chars.
34661         * snames.adb: Likewise.
34662         * treepr.ads: Likewise.
34663
34664         * Makefile.in (decl.o): Include gt-ada-<filename>.h.
34665         (misc.o): Likewise.
34666         (utils.o): Include gt-ada-<filename>.h and gtype-ada.h.
34667         * config-lang.in (gtfiles): New.
34668         * decl.c: Use gengtype for roots.
34669         * gigi.h: Use gengtype for roots.
34670         * trans.c: Use gengtype for roots.
34671         * utils.c: Use gengtype for roots, marking.  Include gtype-ada.h.
34672
34673 2002-06-02  Gabriel Dos Reis  <gdr@codesourcery.com>
34674
34675         * misc.c (gnat_init): Adjust setting of internal_error_function.
34676
34677 2002-06-01  Joseph S. Myers  <jsm28@cam.ac.uk>
34678
34679         * gnat_ug.texi: Use @ifnottex instead of @ifinfo.
34680         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
34681         gnat_ug_wnt.texi: Regenerate.
34682
34683 2002-05-31  Florian Weimer  <fw@deneb.enyo.de>
34684
34685         * 5ntaprop.adb (with System.OS_Primitives): Remove.
34686
34687         * cstreams.c (max_path_len): Move from here ...
34688         * adaint.c (__gnat_max_path_len): ... to here.
34689         * adaint.c (__gnat_max_path_len): Declare.
34690         * g-dirope.adb (Max_Path): Adjust.
34691         * g-os_lib.adb (Normalize_Pathname.Max_Path): Adjust.
34692         * i-cstrea.ads (max_path_len): Adjust.
34693         * osint.adb (Get_RTS_Search_Dir.Max_Path): Adjust.
34694         * xr_tabls.adb (Dir_Name.Max_Path: Adjust.
34695
34696         * Makefile.in, Make-lang.in: Documentation is now built in
34697         Make-lang.in.  Store Info and generated Texinfo files in the
34698         source directory.
34699         * gnat_ug.texi: Remove CVS keywords, correct version number.
34700         Set file name correctly.
34701
34702         * gnat_ug_*.texi: Add.
34703         * .cvsignore: Ignore generated Texinfo files.
34704
34705 2002-05-30  Zack Weinberg  <zack@codesourcery.com>
34706
34707         * ada.h: Add MI guard macro.
34708         (SUBTYPE): Define constants with an anonymous enum, not static
34709         const variables.
34710         (IN): Cast constants to appropriate type before use.
34711
34712 2002-05-26  Joseph S. Myers  <jsm28@cam.ac.uk>
34713
34714         * gnatvsn.ads (Gnat_Version_String): Change to "3.2 20020526
34715         (experimental)".
34716
34717 2002-05-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
34718
34719         * Make-lang.in (CP, ECHO): Copy from Makefile.in.
34720         (X_ADA_CFLAGS, T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS): Likewise.
34721         (ALL_ADAFLAGS, FORCE_DEBUG_ADAFLAGS, ADA_CFLAGS): Likewise.
34722         (ALL_ADA_CFLAGS): Likewise.
34723         (ADA_INCLUDES): Likewise.
34724         Adapt for new working dir.
34725         (GNATBIND): Use Makefile.in version.
34726         (.SUFFIXES): Copy from Makefile.in.
34727         (ada-warn): Define.
34728         (.adb.o, .ads.o): Copy from Makefile.in.
34729         Added $(OUTPUT_OPTION).
34730         (GNAT1_C_OBJS): Moved from Makefile.in.
34731         Prefix with ada subdir.
34732         (GNAT_ADA_OBJS, GNAT1_ADA_OBJS, GNAT1_OBJS, GNATBIND_OBJS): Likewise.
34733         (EXTRA_GNAT1_OBJS): Moved from Makefile.in.
34734         Adapt for new working dir.
34735         (EXTRA_GNATBIND_OBJS): Likewise.
34736         (ADA_BACKEND): Moved from Makefile.in.
34737         Renamed to avoid conflict with global BACKEND.
34738         Use that one.
34739         (TARGET_ADA_SRCS): Moved from Makefile.in.
34740         (gnat1$(exeext)): Replaced recursive rule with Makefile.in version.
34741         Use ADA_BACKEND.
34742         (gnatbind$(exeext)): Replaced recursive rule with Makefile.in version.
34743         (ada_extra_files): Moved from Makefile.in.
34744         Prefix with ada subdir.
34745         (ada/b_gnat1.c, ada/b_gnat1.o, ada/b_gnatb.c, ada/b_gnatb.o): Likewise.
34746         (ada/treeprs.ads, ada/einfo.h, ada/sinfo.h, ada/nmake.adb): Likewise.
34747         (ada/nmake.ads): Likewise.
34748         (update-sources): Moved from Makefile.in.
34749         Prefix with ada subdir.
34750         (ada/sdefault.adb, ada/stamp-sdefault, ada/sdefault.o): Likewise.
34751         (ADA_TREE_H): Likewise.
34752         (ada/a-except.o, ada/s-assert.o, ada/s-memory.o): Likewise.
34753         (ada/memtrack.o): Likewise.
34754         (ada/adadecode.o): Likewise.
34755         Update dependencies.
34756         (ada/adaint.o): New.
34757         (ada/argv.o): Moved from Makefile.in.
34758         Prefix with ada subdir.
34759         Update dependencies.
34760         (ada/cstreams.o, ada/exit.o, ada/final.o, ada/link.o): Likewise.
34761         (ada/cio.o, ada/init.o, ada/raise.o, ada/tracebak.o): Likewise.
34762         (ada/cuintp.o, ada/decl.o, ada/misc.o): Moved from Makefile.in.
34763         Prefix with ada subdir.
34764         (ada/targtyps.o, ada/trans.o, ada/utils.o, ada/utils2.o): Likewise.
34765         (GNAT DEPENDENCIES): Regenerate.
34766         * Makefile.in (MACHMODE_H, RTL_H, TREE_H): Removed, provided by
34767         toplevel Makefile.in.
34768         (EXTRA_GNAT1_OBJS, EXTRA_GNATBIND_OBJS): Removed.
34769         (TARGET_ADA_SRCS): Removed.
34770         (GNAT1_C_OBJS, GNAT_ADA_OBJS, GNAT1_ADA_OBJS, GNAT1_OBJS): Likewise.
34771         (GNATBIND_OBJS): Likewise.
34772         (ADA_INCLUDE_DIR, ADA_RTL_OBJ_DIR): Moved here.
34773         (BACKEND): Removed.
34774         (../gnat1$(exeext), ../gnatbind$(exeext)): Likewise.
34775         (TREE_H): Likewise.
34776         (ada_extra_files): Likewise.
34777         (b_gnat1.c, b_gnat1.o, b_gnatb.c, b_gnatb.o): Likewise.
34778         (treeprs.ads, einfo.h, sinfo.h, nmake.adb, nmake.ads): Likewise.
34779         (update-sources): Likewise.
34780         (sdefault.adb, stamp-sdefault, sdefault.o): Likewise
34781         (ADA_TREE_H): Likewise.
34782         (adadecoce.o): Likewise.
34783         (cuintp.o, decl.o, misc.o, trans.o, utils.o, utils2.o): Likewise.
34784         (GNAT DEPENDENCIES): Likewise.
34785
34786 2002-05-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
34787
34788         * Makefile.adalib: Allow for PWDCMD to override hardcoded pwd.
34789         * Makefile.in: Likewise.
34790
34791 2002-05-14  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
34792
34793         * Make-lang.in (gnat1$(exeext), gnatbind$(exeext), gnattools):
34794         Restore $(CONFIG_H) and prefix.o dependencies.
34795         (ada.stage[1-4]): Depend on stage?-start.
34796
34797         * Makefile.in (b_gnatb.c): Depend on interfac.o.
34798
34799 2002-05-02  Jim Wilson  <wilson@redhat.com>
34800
34801         * utils.c (finish_record_type): Change record_size to record_type.
34802
34803 2001-05-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
34804
34805         * ada/Makefile.in (X_ADA_CFLAGS, T_ADA_CFLAGS): New fragment overrides.
34806         (ALL_ADA_CFLAGS): Define.  Replace ADA_CFLAGS with ALL_ADA_CFLAGS in
34807         ALL_ADAFLAGS, MOST_ADAFLAGS, and all compilations using CC.
34808
34809 2002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>
34810
34811         * misc.c (gnat_parse_file): Update.
34812
34813 2002-04-24  Neil Booth  <neil@daikokuya.demon.co.uk>
34814
34815         * misc.c (gnat_init): Don't set lang_attribute_common.
34816
34817 2002-04-21  Joseph S. Myers  <jsm28@cam.ac.uk>
34818
34819         * gnat_rm.texi: Use @ifnottex instead of @ifinfo.
34820
34821 2002-04-21  Florian Weimer  <fw@deneb.enyo.de>
34822
34823         * gnat_ug.texi: New file.
34824
34825         * gnat_rm.texi: Do not include texiplus.texi.  Include fdl.texi
34826         instead of gfdl.texi
34827
34828         * xgnatug.adb, ug_words: New files.
34829
34830         * Makefile.in (doc, dvi): New targets.  Build gnat_ug_*,
34831         gnat_rm and gnat-style manuals.
34832
34833 2002-04-18  Neil Booth  <neil@daikokuya.demon.co.uk>
34834
34835         * gigi.h (incomplete_type_error): Remove.
34836         * utils.c (incomplete_type_error): Remove.
34837
34838 2002-04-16  Mark Mitchell  <mark@codesourcery.com>
34839
34840         * trans.c (tree_transform): Add has_scope argument to
34841         expand_start_stmt_expr.
34842
34843 2002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>
34844
34845         * gigi.h (truthvalue_conversion): Rename.
34846         * misc.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
34847         * trans.c (tree_transform): Update.
34848         * utils2.c (truthvalue_conversion): Rename, update.
34849         (build_binary_op, build_unary_op): Update.
34850
34851 2002-04-04  Laurent Guerby  <guerby@acm.org>
34852
34853         * make.adb: Implement -margs, remove restriction about file name placement.
34854         * makeusg.adb: Documentation update.
34855         * Makefile.in (TOOLS_FLAGS_TO_PASS): Add VPATH=$(fsrcdir).
34856         * Makefile.in (gnattools3): Comment out, gnatmem does not build without libaddr2line.
34857
34858 2002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>
34859
34860         * utils.c (create_subprog_decl): Use SET_DECL_ASSEMBLER_NAME.
34861         (builtin_function): Similarly.
34862
34863 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
34864
34865         * decl.c (gnat_to_gnu_entity): Update.
34866         * gigi.h (mark_addressable): Rename.
34867         * misc.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
34868         * trans.c (tree_transform): Update.
34869         * utils.c (create_var_decl): Update.
34870         * util2.c (build_binary_op, build_unary_op,
34871         fill_vms_descriptor): Update.
34872         (mark_addressable): Rename, update.
34873
34874 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
34875
34876         * gigi.h (unsigned_type, signed_type, signed_or_unsigned_type):
34877         Rename.
34878         * misc.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
34879         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
34880         * trans.c (tree_transform, convert_with_check): Update.
34881         * utils.c (unsigned_type, signed_type, signed_or_unsigned_type):
34882         Rename.
34883
34884 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
34885
34886         * gigi.h (finish_incomplete_decl): Rename.
34887         * misc.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL): Redefine.
34888         * utils.c (gnat_init_decl_processing): Don't set hook.
34889         (finish_incomplete_decl): Rename.
34890
34891 2002-03-29  Andreas Schwab  <schwab@suse.de>
34892
34893         * Makefile.in: Pass VPATH=$(fsrcdir) when calling make in rts
34894         directory.
34895
34896 2001-03-28  Robert Dewar  <dewar@gnat.com>
34897
34898         * checks.ads:
34899         (Remove_Checks): New procedure
34900
34901         * checks.adb:
34902         (Remove_Checks): New procedure
34903
34904         * exp_util.adb:
34905         Use new Duplicate_Subexpr functions
34906         (Duplicate_Subexpr_No_Checks): New procedure
34907         (Duplicate_Subexpr_No_Checks_Orig): New procedure
34908         (Duplicate_Subexpr): Restore original form (checks duplicated)
34909         (Duplicate_Subexpr): Call Remove_Checks
34910
34911         * exp_util.ads:
34912         (Duplicate_Subexpr_No_Checks): New procedure
34913         (Duplicate_Subexpr_No_Checks_Orig): New procedure
34914         Add 2002 to copyright notice
34915
34916         * sem_util.adb: Use new Duplicate_Subexpr functions
34917
34918         * sem_eval.adb:
34919         (Eval_Indexed_Component): This is the place to call
34920         Constant_Array_Ref and to replace the value. We simply merge
34921         the code of this function in here, since it is now no longer
34922         used elsewhere. This fixes the problem of the back end not
34923         realizing we were clever enough to see that this was
34924         constant.
34925         (Expr_Val): Remove call to Constant_Array_Ref
34926         (Expr_Rep_Val): Remove call to Constant_Array_Ref
34927         Minor reformatting
34928         (Constant_Array_Ref): Deal with string literals (patch
34929         suggested by Zack Weinberg on the gcc list)
34930
34931 2001-03-28  Ed Schonberg  <schonber@gnat.com>
34932
34933         * exp_util.adb: Duplicate_Subexpr_No_Checks_Orig =>
34934         Duplicate_Subexpr_Move_Checks.
34935
34936         * exp_util.ads: Duplicate_Subexpr_No_Checks_Orig =>
34937         Duplicate_Subexpr_Move_Checks.
34938
34939         * sem_eval.adb: (Constant_Array_Ref): Verify that constant
34940         value of array exists before retrieving it (it may a private
34941         protected component in a function).
34942
34943 2002-03-28   Geert Bosch  <bosch@gnat.com>
34944
34945         * prj-pp.adb : New file.
34946
34947         * prj-pp.ads : New file.
34948
34949 2002-03-28  Andreas Jaeger  <aj@suse.de>
34950
34951         * Makefile.in (stamp-sdefault): Fix path for Makefile.
34952
34953 2002-03-28  Neil Booth  <neil@daikokuya.demon.co.uk>
34954
34955         * misc.c (gnat_expand_expr): Move prototype.
34956
34957 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
34958
34959         * misc.c (insert_default_attributes): Remove.
34960
34961 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
34962
34963         * misc.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
34964         (gnat_init): Don't set hook.
34965         (gnat_expand_expr): Fix prototype.
34966
34967 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
34968
34969         * misc.c (ggc_p): Remove.
34970
34971 2002-03-27  Geert Bosch  <bosch@gnat.com>
34972
34973         * prj-makr.ads, prj-makr.adb : New files.
34974
34975 2002-03-26  Neil Booth  <neil@daikokuya.demon.co.uk>
34976
34977         * misc.c (LANG_HOOKS_MARK_TREE): Redefine.
34978         (lang_mark_tree): Make static, rename.
34979
34980 2002-03-25  Neil Booth  <neil@daikokuya.demon.co.uk>
34981
34982         * misc.c (maybe_build_cleanup): Remove.
34983
34984 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
34985
34986         * gigi.h (yyparse): Remove.
34987
34988 2002-03-23  Florian Weimer  <fw@deneb.enyo.de>
34989
34990         From Ben Brosgol  <brosgol@gnat.com>
34991         * gnat_rm.texi: Sync with ACT version.
34992
34993 2002-03-20  Neil Booth  <neil@daikokuya.demon.co.uk>
34994
34995         * misc.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
34996         (gnat_init): Remove old hook.
34997
34998 2002-03-17  Neil Booth  <neil@daikokuya.demon.co.uk>
34999
35000         * misc.c (LANG_HOOKS_PARSE_FILE): Redefine.
35001         (yyparse): Rename gnat_parse_file.
35002
35003 2002-03-14  Geoffrey Keating  <geoffk@redhat.com>
35004
35005         Delete all lines containing "$Revision:".
35006         * xeinfo.adb: Don't look for revision numbers.
35007         * xnmake.adb: Likewise.
35008         * xsinfo.adb: Likewise.
35009         * xsnames.adb: Likewise.
35010         * xtreeprs.adb: Likewise.
35011
35012 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
35013
35014         * misc.c (gnat_tree_code_type, gnat_tree_code_length,
35015         gnat_tree_code_name): Delete.
35016         (tree_code_type, tree_code_length, tree_code_name): Define.
35017         (gnat_init): Don't try to copy into the various tree_code
35018         arrays.
35019
35020 2002-03-11  Richard Henderson  <rth@redhat.com>
35021
35022         * Makefile.in (.NOTPARALLEL): Add fake tag.
35023
35024 2002-03-07  Geert Bosch  <bosch@gnat.com>
35025
35026         * adadecode.c, adadecode.h, aux-io.c, s-traces.adb, s-traces.ads,
35027         s-tratas.adb, s-tratas.ads, sinput-d.adb, sinput-d.ads,
35028         switch-b.adb, switch-b.ads, switch-c.adb, switch-c.ads,
35029         switch-m.adb, switch-m.ads : New files.
35030
35031 2002-03-07  Geert Bosch  <bosch@gnat.com>
35032
35033         * 41intnam.ads, 42intnam.ads, 4aintnam.ads, 4cintnam.ads,
35034         4dintnam.ads, 4gintnam.ads, 4hintnam.ads, 4lintnam.ads,
35035         4mintnam.ads, 4pintnam.ads, 4rintnam.ads, 4sintnam.ads,
35036         4uintnam.ads, 4vcalend.adb, 4zintnam.ads, 52system.ads,
35037         5amastop.adb, 5asystem.ads, 5ataprop.adb, 5atpopsp.adb,
35038         5avxwork.ads, 5bosinte.adb, 5bsystem.ads, 5esystem.ads,
35039         5fsystem.ads, 5ftaprop.adb, 5ginterr.adb, 5gmastop.adb,
35040         5gsystem.ads, 5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads,
35041         5hparame.ads, 5hsystem.ads, 5htaprop.adb, 5htraceb.adb,
35042         5itaprop.adb, 5ksystem.ads, 5kvxwork.ads, 5lintman.adb,
35043         5lsystem.ads, 5mvxwork.ads, 5ninmaop.adb, 5nosinte.ads,
35044         5ntaprop.adb, 5ointerr.adb, 5omastop.adb, 5oosinte.adb,
35045         5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5pvxwork.ads,
35046         5qtaprop.adb, 5sintman.adb, 5ssystem.ads, 5staprop.adb,
35047         5stpopse.adb, 5svxwork.ads, 5tosinte.ads, 5uintman.adb,
35048         5vasthan.adb, 5vinmaop.adb, 5vinterr.adb, 5vintman.adb,
35049         5vmastop.adb, 5vparame.ads, 5vsystem.ads, 5vtaprop.adb,
35050         5vtpopde.adb, 5wmemory.adb, 5wsystem.ads, 5wtaprop.adb,
35051         5ysystem.ads, 5zinterr.adb, 5zintman.adb, 5zosinte.adb,
35052         5zosinte.ads, 5zsystem.ads, 5ztaprop.adb, 6vcpp.adb, 6vcstrea.adb,
35053         7sintman.adb, 7staprop.adb, 7stpopsp.adb, 9drpc.adb,
35054         Make-lang.in, Makefile.in, a-caldel.adb, a-comlin.ads,
35055         a-dynpri.adb, a-except.adb, a-except.ads, a-finali.adb,
35056         a-ncelfu.ads, a-reatim.adb, a-retide.adb, a-stream.ads,
35057         a-ststio.adb, a-ststio.ads, a-stwifi.adb, a-tags.adb, a-tasatt.adb,
35058         a-textio.adb, a-tideau.adb, a-tiflau.adb, a-tigeau.adb,
35059         a-tigeau.ads, a-tiinau.adb, a-timoau.adb, a-witeio.adb,
35060         a-wtdeau.adb, a-wtenau.adb, a-wtflau.adb, a-wtgeau.adb,
35061         a-wtgeau.ads, a-wtinau.adb, a-wtmoau.adb, ada-tree.def, ada-tree.h,
35062         adaint.c, adaint.h, ali-util.adb, ali.adb, ali.ads, atree.adb,
35063         atree.ads, atree.h, back_end.adb, bcheck.adb, bindgen.adb,
35064         bindusg.adb, checks.adb, comperr.adb, config-lang.in, csets.adb,
35065         csets.ads, cstand.adb, cstreams.c, debug.adb, debug.ads, decl.c,
35066         einfo.adb, einfo.ads, einfo.h, elists.h, errout.adb, errout.ads,
35067         eval_fat.adb, exp_aggr.adb, exp_attr.adb, exp_ch11.adb,
35068         exp_ch12.adb, exp_ch13.adb, exp_ch2.adb, exp_ch3.adb, exp_ch3.ads,
35069         exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch7.ads,
35070         exp_ch9.adb, exp_ch9.ads, exp_dbug.adb, exp_dbug.ads, exp_disp.ads,
35071         exp_dist.adb, exp_fixd.adb, exp_intr.adb, exp_pakd.adb,
35072         exp_prag.adb, exp_strm.adb, exp_util.adb, exp_util.ads,
35073         expander.adb, expect.c, fe.h, fmap.adb, fmap.ads, fname-uf.adb,
35074         freeze.adb, frontend.adb, g-awk.adb, g-cgideb.adb, g-comlin.adb,
35075         g-comlin.ads, g-debpoo.adb, g-dirope.adb, g-dirope.ads,
35076         g-dyntab.adb, g-expect.adb, g-expect.ads, g-io.ads, g-io_aux.adb,
35077         g-io_aux.ads, g-locfil.adb, g-locfil.ads, g-os_lib.adb,
35078         g-os_lib.ads, g-regexp.adb, g-regpat.adb, g-socket.adb,
35079         g-socket.ads, g-spipat.adb, g-table.adb, g-trasym.adb,
35080         g-trasym.ads, gigi.h, gmem.c, gnat1drv.adb, gnatbind.adb, gnatbl.c,
35081         gnatchop.adb, gnatcmd.adb, gnatdll.adb, gnatfind.adb, gnatlbr.adb,
35082         gnatlink.adb, gnatls.adb, gnatmem.adb, gnatprep.adb, gnatvsn.ads,
35083         gnatxref.adb, hlo.adb, hostparm.ads, i-cobol.adb, i-cpp.adb,
35084         i-cstrea.ads, i-cstrin.adb, i-pacdec.adb, i-vxwork.ads,
35085         impunit.adb, init.c, inline.adb, io-aux.c, layout.adb, lib-load.adb,
35086         lib-util.adb, lib-writ.adb, lib-writ.ads, lib-xref.adb,
35087         lib-xref.ads, lib.adb, lib.ads, make.adb, makeusg.adb, mdll.adb,
35088         memroot.adb, misc.c, mlib-tgt.adb, mlib-utl.adb, mlib-utl.ads,
35089         mlib.adb, namet.adb, namet.ads, namet.h, nlists.h, nmake.adb,
35090         nmake.ads, nmake.adt, opt.adb, opt.ads, osint.adb, osint.ads,
35091         output.adb, output.ads, par-ch2.adb, par-ch3.adb, par-ch5.adb,
35092         par-prag.adb, par-tchk.adb, par-util.adb, par.adb, prj-attr.adb,
35093         prj-dect.adb, prj-env.adb, prj-env.ads, prj-nmsc.adb, prj-part.adb,
35094         prj-proc.adb, prj-strt.adb, prj-tree.adb, prj-tree.ads, prj.adb,
35095         prj.ads, raise.c, raise.h, repinfo.adb, restrict.adb, restrict.ads,
35096         rident.ads, rtsfind.adb, rtsfind.ads, s-arit64.adb, s-asthan.adb,
35097         s-atacco.adb, s-atacco.ads, s-auxdec.adb, s-crc32.adb, s-crc32.ads,
35098         s-direio.adb, s-fatgen.adb, s-fileio.adb, s-finimp.adb,
35099         s-gloloc.adb, s-gloloc.ads, s-interr.adb, s-mastop.adb,
35100         s-mastop.ads, s-memory.adb, s-parame.ads, s-parint.adb,
35101         s-pooglo.adb, s-pooloc.adb, s-rpc.adb, s-secsta.adb, s-sequio.adb,
35102         s-shasto.adb, s-soflin.adb, s-soflin.ads, s-stache.adb,
35103         s-taasde.adb, s-taasde.ads, s-tadeca.adb, s-tadeca.ads,
35104         s-tadert.adb, s-tadert.ads, s-taenca.adb, s-taenca.ads,
35105         s-taprob.adb, s-taprop.ads, s-tarest.adb, s-tasdeb.adb,
35106         s-tasini.adb, s-tasini.ads, s-taskin.adb, s-taskin.ads,
35107         s-tasque.adb, s-tasque.ads, s-tasren.adb, s-tasren.ads,
35108         s-tassta.adb, s-tasuti.adb, s-tasuti.ads, s-tataat.adb,
35109         s-tataat.ads, s-tpoben.adb, s-tpoben.ads, s-tpobop.adb,
35110         s-tposen.adb, s-tposen.ads, s-traceb.adb, s-traceb.ads,
35111         s-unstyp.ads, s-widenu.adb, scn-nlit.adb, scn.adb, sem.adb,
35112         sem_aggr.adb, sem_attr.adb, sem_attr.ads, sem_case.adb,
35113         sem_ch10.adb, sem_ch11.adb, sem_ch11.ads, sem_ch12.adb,
35114         sem_ch13.adb, sem_ch13.ads, sem_ch2.adb, sem_ch3.adb, sem_ch3.ads,
35115         sem_ch4.adb, sem_ch5.adb, sem_ch6.adb, sem_ch6.ads, sem_ch7.adb,
35116         sem_ch8.adb, sem_ch8.ads, sem_ch9.adb, sem_disp.adb, sem_dist.adb,
35117         sem_elab.adb, sem_elim.adb, sem_elim.ads, sem_eval.adb,
35118         sem_intr.adb, sem_mech.adb, sem_prag.adb, sem_res.adb,
35119         sem_type.adb, sem_util.adb, sem_util.ads, sem_vfpt.adb,
35120         sem_warn.adb, sinfo.adb, sinfo.ads, sinfo.h, sinput-l.adb,
35121         sinput-l.ads, sinput.adb, sinput.ads, snames.adb, snames.ads,
35122         snames.h, sprint.adb, sprint.ads, stringt.adb, stringt.ads,
35123         stringt.h, style.adb, switch.adb, switch.ads, sysdep.c, system.ads,
35124         table.adb, targparm.adb, targparm.ads, targtyps.c, tbuild.adb,
35125         tbuild.ads, tracebak.c, trans.c, tree_gen.adb, tree_io.adb,
35126         treepr.adb, treepr.ads, treeprs.ads, treeprs.adt, ttypes.ads,
35127         types.adb, types.ads, types.h, uintp.ads, urealp.ads, usage.adb,
35128         utils.c, utils2.c, validsw.adb, xnmake.adb, xr_tabls.adb,
35129         xr_tabls.ads, xref_lib.adb, xref_lib.ads : Merge in ACT changes.
35130
35131         * 1ssecsta.adb, 1ssecsta.ads, a-chlat9.ads, a-cwila9.ads,
35132         g-enblsp.adb, g-md5.adb, g-md5.ads, gnatname.adb, gnatname.ads,
35133         mkdir.c, osint-b.adb, osint-b.ads, osint-c.adb, osint-c.ads,
35134         osint-l.adb, osint-l.ads, osint-m.adb, osint-m.ads : New files
35135
35136         * 3lsoccon.ads, 5qparame.ads, 5qvxwork.ads, 5smastop.adb,
35137         5zparame.ads, gnatmain.adb, gnatmain.ads, gnatpsys.adb : Removed
35138
35139         * mdllfile.adb, mdllfile.ads, mdlltool.adb, mdlltool.ads : Renamed
35140         to mdll-fil.ad[bs] and mdll-util.ad[bs]
35141
35142         * mdll-fil.adb, mdll-fil.ads, mdll-utl.adb, mdll-utl.ads : Renamed
35143         from mdllfile.ad[bs] and mdlltool.ad[bs]
35144
35145 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
35146
35147         * utils.c (init_gnat_to_gnu, init_gigi_decls): Use ARRAY_SIZE in
35148         lieu of explicit sizeof/sizeof.
35149
35150 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
35151
35152         * misc.c (copy_lang_decl): Remove.
35153
35154 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
35155
35156         * misc.c: Delete traditional-mode-related code copied from the
35157         C front end but not used, or used only to permit the compiler
35158         to link.
35159
35160 2002-02-07  Richard Henderson  <rth@redhat.com>
35161
35162         * adaint.c (__gnat_to_gm_time): First arg is int, not time_t.
35163         * adaint.h (__gnat_to_gm_time): Update prototype.
35164
35165 2002-01-30  Richard Henderson  <rth@redhat.com>
35166
35167         * trans.c (tree_transform) [N_Loop_Statement]: Use
35168         expand_exit_loop_top_cond.
35169
35170 2001-12-23  Richard Henderson  <rth@redhat.com>
35171
35172         * utils.c (end_subprog_body): Push GC context around
35173         rest_of_compilation for nested functions.
35174
35175 2001-12-23  Richard Henderson  <rth@redhat.com>
35176
35177         * 5nosinte.ads: Get definition of "int" from Interfaces.C.
35178
35179 2001-12-23  Florian Weimer  <fw@deneb.enyo.de>
35180
35181         * gnat-style.texi (Declarations and Types): Remove ancient style
35182         rule which was mandated by code generation issues.
35183
35184         * gnat-style.texi (header): Add @dircategory, @direntry.
35185         (title page): Remove date.
35186         (general) Add @./@: where approriate, and two spaces after the
35187         full stop at the end of a sentence.  Use @samp markup when
35188         referring concrete lexical entities (keywords, attribute names
35189         etc.), and @syntax for ARM grammar elements. Use @r for English
35190         text in comments.  Use @emph for emphasis.  Change "if-statements"
35191         etc. to "if statements" (without @samp). Break long lines.  Make
35192         casing of section names consistent.
35193         (Identifiers): Use @samp markup for variable names.
35194         (Comments): Use @samp markup for comment characters. Line-end
35195         comments may follow any Ada code, not just statements.  Fix
35196         misspelling of "Integer" as "integer".
35197         (Loop statements): Do not use variable name "I", use "J".
35198         (Subprogram Declarations): Document alignment.
35199         (Subprogram Bodies, Block statements): Document empty line before
35200         "begin".
35201
35202 2001-12-22  Florian Weimer  <fw@deneb.enyo.de>
35203
35204         * make.adb (Add_Switch): Make Generic_Position a procedure.  The
35205         function approach did not work well because of a side effect (the
35206         function call could reallocate the table which was being indexed
35207         using its result). Fixes ada/4851.
35208
35209 2001-12-19  Robert Dewar  <dewar@gnat.com>
35210
35211         * bindgen.adb: Minor reformatting
35212
35213         * cstand.adb: Minor reformatting
35214
35215         * fmap.adb: Minor reformatting
35216         Change name from Add for Add_To_File_Map (Add is much too generic)
35217         Change Path_Name_Of to Mapped_Path_Name
35218         Change File_Name_Of to Mapped_File_Name
35219         Fix copyright dates in header
35220
35221         * fmap.ads:
35222         Change name from Add for Add_To_File_Map (Add is much too generic)
35223         Change Path_Name_Of to Mapped_Path_Name
35224         Change File_Name_Of to Mapped_File_Name
35225         Fix copyright dates in header
35226
35227         * fname-uf.adb: Minor reformatting.  New names of stuff in Fmap.
35228         Add use clause for Fmap.
35229
35230         * make.adb: Minor reformatting
35231
35232         * osint.adb: Minor reformatting.  Change of names in Fmap.
35233         Add use clause for Fmap.
35234
35235         * prj-env.adb: Minor reformatting
35236
35237         * prj-env.ads: Minor reformatting
35238
35239         * switch.adb: Minor reformatting.  Do proper raise of Bad_Switch if
35240         error found (there were odd exceptions to this general rule in
35241         -gnatec/-gnatem processing)
35242
35243 2001-12-19  Olivier Hainque  <hainque@gnat.com>
35244
35245         * raise.c (__gnat_eh_personality): Exception handling personality
35246         routine for Ada.  Still in rough state, inspired from the C++ version
35247         and still containing a bunch of debugging artifacts.
35248         (parse_lsda_header, get_ttype_entry): Local (static) helpers, also
35249         inspired from the C++ library.
35250
35251         * raise.c (eh_personality): Add comments. Part of work for the GCC 3
35252         exception handling integration.
35253
35254 2001-12-19  Arnaud Charlet  <charlet@gnat.com>
35255
35256         * Makefile.in: Remove use of 5smastop.adb which is obsolete.
35257         (HIE_SOURCES): Add s-secsta.ad{s,b}.
35258         (HIE_OBJS): Add s-fat*.o
35259         (RAVEN_SOURCES): Remove files that are no longer required. Add
35260         interrupt handling files.
35261         (RAVEN_MOD): Removed, no longer needed.
35262
35263 2001-12-19  Robert Dewar  <dewar@gnat.com>
35264
35265         * a-ngelfu.adb: Remove ??? comment for inappropriate Inline_Always
35266         Add 2001 to copyright date
35267
35268         * g-regpat.adb: Change pragma Inline_Always to Inline. There is no
35269         need to force universal inlining for these cases.
35270
35271 2001-12-19  Arnaud Charlet  <charlet@gnat.com>
35272
35273         * s-taprob.adb: Minor clean ups so that this unit can be used in
35274         Ravenscar HI.
35275
35276         * exp_ch7.adb: Allow use of secondary stack in HI mode.
35277         Disallow it when pragma Restrictions (No_Secondary_Stack) is specified.
35278
35279 2001-12-19  Vincent Celier  <celier@gnat.com>
35280
35281         * prj-tree.ads (Project_Node_Record): Add comments for components
35282         Pkg_Id and Case_Insensitive.
35283
35284 2001-12-19  Pascal Obry  <obry@gnat.com>
35285
35286         * g-socket.adb: Minor reformatting. Found while reading code.
35287
35288 2001-12-19  Robert Dewar  <dewar@gnat.com>
35289
35290         * prj-tree.ads: Minor reformatting
35291
35292 2001-12-20  Joseph S. Myers  <jsm28@cam.ac.uk>
35293
35294         * config-lang.in (diff_excludes): Remove.
35295
35296 2001-12-17  Ed Schonberg  <schonber@gnat.com>
35297
35298         * sem_res.adb (Resolve_Selected_Component): do not generate a
35299         discriminant check if the selected component is a component of
35300         the argument of an initialization procedure.
35301
35302         * trans.c (tree_transform, case of arithmetic operators): If result
35303         type is private, the gnu_type is the base type of the full view,
35304         given that the full view itself may be a subtype.
35305
35306 2001-12-17  Robert Dewar  <dewar@gnat.com>
35307
35308         * sem_res.adb: Minor reformatting
35309
35310         * trans.c (tree_transform, case N_Real_Literal): Add missing third
35311         parameter in call to Machine (unknown horrible effects from this
35312         omission).
35313
35314         * urealp.h: Add definition of Round_Even for call to Machine
35315         Add third parameter for Machine
35316
35317 2001-12-17  Ed Schonberg  <schonber@gnat.com>
35318
35319         * sem_warn.adb (Check_One_Unit): Suppress warnings completely on
35320         predefined units in No_Run_Time mode.
35321
35322 2001-12-17  Richard Kenner  <kenner@gnat.com>
35323
35324         * misc.c (insn-codes.h): Now include.
35325
35326 2001-12-17  Olivier Hainque  <hainque@gnat.com>
35327
35328         * a-except.adb: Preparation work for future integration of the GCC 3
35329         exception handling mechanism
35330         (Notify_Handled_Exception, Notify_Unhandled_Exception): New routines
35331         to factorize previous code sequences and make them externally callable,
35332         e.g. for the Ada personality routine when the GCC 3 mechanism is used.
35333         (Propagate_Exception, Raise_Current_Excep, Raise_From_Signal_Handler):
35334         Use the new notification routines.
35335
35336 2001-12-17  Emmanuel Briot  <briot@gnat.com>
35337
35338         * prj-tree.ads (First_Choice_Of): Document the when others case
35339
35340 2001-12-17  Arnaud Charlet  <charlet@gnat.com>
35341
35342         * bindgen.adb (Gen_Ada_Init_*): Set priority of environment task in
35343         HI-E mode, in order to support Ravenscar profile properly.
35344
35345         * cstand.adb (Create_Standard): Duration is a 32 bit type in HI-E
35346         mode on 32 bits targets.
35347
35348 2001-12-17  Vincent Celier  <celier@gnat.com>
35349
35350         * fmap.adb: Initial version.
35351
35352         * fmap.ads: Initial version.
35353
35354         * fname-uf.adb (Get_File_Name): Use mapping if unit name mapped.
35355         If search is successfully done, add to mapping.
35356
35357         * frontend.adb: Initialize the mapping if a -gnatem switch was used.
35358
35359         * make.adb:
35360         (Gnatmake): Add new local variable Mapping_File_Name.
35361          Create mapping file when using project file(s).
35362          Delete mapping file before exiting.
35363
35364         * opt.ads (Mapping_File_Name): New variable
35365
35366         * osint.adb (Find_File): Use path name found in mapping, if any.
35367
35368         * prj-env.adb (Create_Mapping_File): New procedure
35369
35370         * prj-env.ads (Create_Mapping_File): New procedure.
35371
35372         * switch.adb (Scan_Front_End_Switches): Add processing for -gnatem
35373         (Mapping_File)
35374
35375         * usage.adb: Add entry for new switch -gnatem.
35376
35377         * Makefile.in: Add dependencies for fmap.o.
35378
35379 2001-12-17  Ed Schonberg  <schonber@gnat.com>
35380
35381         * sem_ch10.adb (Analyze_With_Clause): Retrieve proper entity when unit
35382         is a package instantiation rewritten as a package body.
35383         (Install_Withed_Unit): Undo previous change, now redundant.
35384
35385 2001-12-17  Gary Dismuke  <dismukes@gnat.com>
35386
35387         * layout.adb:
35388         (Compute_Length): Move conversion to Unsigned to callers.
35389         (Get_Max_Size): Convert Len expression to Unsigned after calls to
35390         Compute_Length and Determine_Range.
35391         (Layout_Array_Type): Convert Len expression to Unsigned after calls to
35392         Compute_Length and Determine_Range.
35393         Above changes fix problem with length computation for supernull arrays
35394         where Max (Len, 0) wasn't getting applied due to the Unsigned
35395         conversion used by Compute_Length.
35396
35397 2001-12-17  Arnaud Charlet  <charlet@gnat.com>
35398
35399         * rtsfind.ads:
35400         (OK_To_Use_In_No_Run_Time_Mode): Allow Ada.Exceptions and
35401          System.Secondary_Stack.
35402         (OK_To_Use_In_Ravenscar_Mode): New table needed to implement Ravenscar
35403          in HI-E mode.
35404         Remove unused entity RE_Exception_Data.
35405
35406         * rtsfind.adb (RTE): Allow Ravenscar Profile in HI mode.
35407
35408         * rident.ads (No_Secondary_Stack): New restriction.
35409
35410 2001-12-17  Joel Brobecker  <brobecke@gnat.com>
35411
35412         * gnat_rm.texi: Fix minor typos. Found while reading the section
35413         regarding "Bit_Order Clauses" that was sent to a customer.
35414         Very interesting documentation!
35415
35416 2001-12-17  Robert Dewar  <dewar@gnat.com>
35417
35418         * sem_case.adb (Choice_Image): Avoid creating improper character
35419         literal names by using the routine Set_Character_Literal_Name. This
35420         fixes bombs in certain error message cases.
35421
35422 2001-12-17  Arnaud Charlet  <charlet@gnat.com>
35423
35424         * a-reatim.adb: Minor reformatting.
35425
35426 2001-12-17  Ed Schonberg  <schonber@gnat.com>
35427
35428         * sem_ch12.adb (Validate_Derived_Type_Instance): Handle properly the
35429         case where the formal is an extension of another formal in the current
35430         unit or in a parent generic unit.
35431
35432 2001-12-17  Arnaud Charlet  <charlet@gnat.com>
35433
35434         * s-tposen.adb: Update comments.  Minor reformatting.
35435         Minor code clean up.
35436
35437         * s-tarest.adb: Update comments.  Minor code reorganization.
35438
35439 2001-12-17  Gary Dismukes  <dismukes@gnat.com>
35440
35441         * exp_attr.adb (Attribute_Tag): Suppress expansion of <type_name>'Tag
35442         when Java_VM.
35443
35444 2001-12-17  Robert Dewa  <dewar@gnat.com>
35445
35446         * exp_attr.adb: Minor reformatting
35447
35448 2001-12-17  Ed Schonberg  <schonber@gnat.com>
35449
35450         * sem_ch3.adb (Build_Derived_Private_Type): Refine check to handle
35451         derivations nested within a child unit: verify that the parent
35452         type is declared in an outer scope.
35453
35454 2001-12-17  Robert Dewar  <dewar@gnat.com>
35455
35456         * sem_ch12.adb: Minor reformatting
35457
35458 2001-12-17  Ed Schonberg  <schonber@gnat.com>
35459
35460         * sem_warn.adb (Check_One_Unit): In No_Run_Time mode, do not post
35461         warning if current unit is a predefined one, from which bodies may
35462         have been deleted.
35463
35464 2001-12-17  Robert Dewar  <dewar@gnat.com>
35465
35466         * eval_fat.ads: Add comment that Round_Even is referenced in Ada code
35467         Fix header format. Add 2001 to copyright date.
35468
35469         * exp_dbug.adb (Get_Encoded_Name): Fix out of bounds reference,
35470         which caused CE during compilation if checks were enabled.
35471
35472 2001-12-17  Vincent Celier  <celier@gnat.com>
35473
35474         * make.adb:
35475         (Switches_Of): New function
35476         (Test_If_Relative_Path): New procedure
35477         (Add_Switches): Use new function Switches_Of
35478         (Collect_Arguments_And_Compile): Use new function Switches_Of.
35479         When using a project file, test if there are any relative
35480         search path. Fail if there are any.
35481         (Gnatmake): Only add switches for the primary directory when not using
35482         a project file. When using a project file, change directory to the
35483         object directory of the main project file. When using a project file,
35484         test if there are any relative search path. Fail if there are any.
35485         When using a project file, fail if specified executable is relative
35486         path with directory information, and prepend executable, if not
35487         specified as an absolute path, with the exec directory.  Make sure
35488         that only one -o switch is transmitted to the linker.
35489
35490         * prj-attr.adb (Initialization_Data): Add project attribute Exec_Dir
35491
35492         * prj-nmsc.adb:
35493         (Ada_Check): Get Spec_Suffix_Loc and Impl_Suffix_Loc,
35494         when using a non standard naming scheme.
35495         (Check_Ada_Naming_Scheme): Make sure that error messages
35496         do not raise exceptions.
35497         (Is_Illegal_Append): Return True if there is no dot in the suffix.
35498         (Language_Independent_Check): Check the exec directory.
35499
35500         * prj.adb (Project_Empty): Add new component Exec_Directory
35501
35502         * prj.ads:
35503         (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Add defaults.
35504         (Project_Data): Add component Exec_Directory
35505
35506         * snames.adb: Updated to match snames.ads revision 1.215
35507
35508         * snames.ads: Added Exec_Dir
35509
35510 2001-12-17  Robert Dewar  <dewar@gnat.com>
35511
35512         * make.adb: Minor reformatting
35513
35514         * prj-nmsc.adb: Minor reformatting
35515
35516         * snames.adb: Updated to match snames.ads
35517
35518         * snames.ads: Alphebetize entries for project file
35519
35520 2001-12-17  Ed Schonberg  <schonber@gnat.com>
35521
35522         * trans.c (process_freeze_entity): Do nothing if the entity is a
35523         subprogram that was already elaborated.
35524
35525 2001-12-17  Richard Kenner  <kenner@gnat.com>
35526
35527         * decl.c (gnat_to_gnu_entity, object): Do not back-annotate Alignment
35528         and Esize if object is referenced via pointer.
35529
35530 2001-12-17  Ed Schonberg  <schonber@gnat.com>
35531
35532         * sem_ch3.adb (Analyze_Variant_Part): check that type of discriminant
35533         is discrete before analyzing choices.
35534
35535 2001-12-17  Joel Brobecker  <brobecke@gnat.com>
35536
35537         * bindgen.adb (Gen_Output_File_Ada): Generate a new C-like string
35538         containing the name of the Ada Main Program. This string is mainly
35539         intended for the debugger.
35540         (Gen_Output_File_C): Do the equivalent change when generating a C file.
35541
35542 2001-12-17  Robert Dewar  <dewar@gnat.com>
35543
35544         * ali.adb: Set new Dummy_Entry field in dependency entry
35545
35546         * ali.ads: Add Dummy_Entry field to source dependency table
35547
35548         * bcheck.adb (Check_Consistency): Ignore dummy D lines
35549
35550         * lib-writ.adb (Writ_ALI): Write dummy D lines for missing source files
35551
35552         * lib-writ.ads: Document dummy D lines for missing files.
35553
35554         * types.ads: (Dummy_Time_Stamp): New value for non-existant files
35555
35556 2001-12-17  Robert Dewar  <dewar@gnat.com>
35557
35558         * ali.adb: Type reference does not reset current file.
35559
35560         * ali.adb: Recognize and scan renaming reference
35561
35562         * ali.ads: Add spec for storing renaming references.
35563
35564         * lib-xref.ads: Add documentation for handling of renaming references
35565
35566         * lib-xref.adb: Implement output of renaming reference.
35567
35568         * checks.adb:
35569         (Determine_Range): Document local variables
35570         (Determine_Range): Make sure Hbound is initialized. It looks as though
35571          there could be a real problem here with an uninitialized reference
35572          to Hbound, but no actual example of failure has been found.
35573
35574 2001-12-17  Laurent Pautet  <pautet@gnat.com>
35575
35576         * g-socket.ads:
35577         Fix comment of Shutdown_Socket and Close_Socket. These functions
35578         should not fail silently because if they are called twice, this
35579         probably means that there is a race condition in the user program.
35580         Anyway, this behaviour is consistent with the rest of this unit.
35581         When an error occurs, an exception is raised with the error message
35582         as exception message.
35583
35584 2001-12-17  Robert Dewar  <dewar@gnat.com>
35585
35586         * frontend.adb: Move call to Check_Unused_Withs from Frontend, so
35587         that it happens before modification of Sloc values for -gnatD.
35588
35589         * gnat1drv.adb: Move call to Check_Unused_Withs to Frontend,
35590         so that it happens before modification of Sloc values for -gnatD.
35591
35592         * switch.adb: Minor reformatting
35593
35594 2001-12-15  Richard Henderson  <rth@redhat.com>
35595
35596         * sem_ch7.adb: Wrap comment.
35597
35598 2001-12-16  Joseph S. Myers  <jsm28@cam.ac.uk>
35599
35600         * 5ataprop.adb, 5atpopsp.adb, 5ftaprop.adb, 5gmastop.adb,
35601         5gtaprop.adb, 5htaprop.adb, 5itaprop.adb, 5lintman.adb,
35602         5omastop.adb, 5oosinte.adb, 5otaprop.adb, 5staprop.adb,
35603         5vinterr.adb, 5vtaprop.adb, 5vtpopde.adb, 5wintman.adb,
35604         5wtaprop.adb, 5zinterr.adb, 5ztaprop.adb, 6vcstrea.adb,
35605         7sintman.adb, 7staprop.adb, 9drpc.adb, ChangeLog, Makefile.in,
35606         a-except.adb, a-tags.ads, a-tasatt.adb, a-teioed.adb,
35607         a-textio.ads, a-witeio.ads, a-wtedit.adb, ali.ads, comperr.adb,
35608         cstand.adb, einfo.ads, errout.adb, exp_ch11.adb, exp_ch2.adb,
35609         exp_ch3.adb, exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch9.adb,
35610         exp_util.adb, exp_util.ads, fname-uf.adb, g-cgi.ads, g-exctra.ads,
35611         g-expect.ads, g-regist.adb, g-spipat.adb, gnatchop.adb,
35612         gnatlink.adb, gnatls.adb, gnatmain.adb, gnatmem.adb, init.c,
35613         make.adb, make.ads, mdlltool.adb, nlists.ads, osint.ads,
35614         par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb, par.adb,
35615         repinfo.adb, s-fatflt.ads, s-fatlfl.ads, s-fatllf.ads,
35616         s-fatsfl.ads, s-finimp.adb, s-finimp.ads, s-interr.adb,
35617         s-secsta.ads, s-shasto.ads, s-stalib.adb, s-stalib.ads,
35618         s-tarest.ads, s-tasdeb.adb, s-tassta.adb, s-tassta.ads,
35619         s-vaflop.ads, scans.ads, scn.adb, sem.ads, sem_aggr.adb,
35620         sem_attr.adb, sem_case.ads, sem_ch10.adb, sem_ch12.adb,
35621         sem_ch13.adb, sem_ch3.adb, sem_ch3.ads, sem_ch5.adb, sem_ch7.adb,
35622         sem_ch8.adb, sem_ch8.ads, sem_type.adb, sem_util.ads, sinfo.ads,
35623         sprint.adb, tbuild.ads, types.ads, utils.c, xeinfo.adb: Fix
35624         spelling errors.
35625
35626 2001-12-14  Vincent Celier  <celier@gnat.com>
35627
35628         * osint.adb(Create_Debug_File): When an object file is specified,
35629         put the .dg file in the same directory as the object file.
35630
35631 2001-12-14  Robert Dewar  <dewar@gnat.com>
35632
35633         * osint.adb: Minor reformatting
35634
35635         * lib-xref.adb (Output_Instantiation): New procedure to generate
35636         instantiation references.
35637
35638         * lib-xref.ads: Add documentation of handling of generic references.
35639
35640         * ali.adb (Read_Instantiation_Ref): New procedure to read
35641         instantiation references
35642
35643         * ali.ads: Add spec for storing instantiation references
35644
35645         * bindusg.adb: Minor reformatting
35646
35647         * switch.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
35648
35649         * usage.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
35650
35651         * gnatcmd.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
35652
35653         * csets.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
35654
35655         * csets.ads:
35656         Fix header format
35657         Add 2001 to copyright date
35658         Add entry for Latin-5 (Cyrillic ISO-8859-5)
35659
35660 2001-12-14  Matt Gingell  <gingell@gnat.com>
35661
35662         * adaint.c: mktemp is a macro on Lynx and can not be used as an
35663         expression.
35664
35665 2001-12-14  Richard Kenner  <kenner@gnat.com>
35666
35667         * misc.c (gnat_expand_constant): Do not strip UNCHECKED_CONVERT_EXPR
35668         if operand is CONSTRUCTOR.
35669
35670 2001-12-14  Ed Schonberg  <schonber@gnat.com>
35671
35672         * trans.c (tree_transform, case N_Assignment_Statement): Set lineno
35673         before emiting check on right-hand side, so that exception information
35674         is correct.
35675
35676 2001-12-14  Richard Kenner  <kenner@gnat.com>
35677
35678         * utils.c (create_var_decl): Throw away initializing expression
35679         if just annotating types and non-constant.
35680
35681 2001-12-14  Vincent Celier  <celier@gnat.com>
35682
35683         * prj-nmsc.adb: (Ada_Check): Migrate drom Ada_Default_... to
35684         Default_Ada_...
35685
35686         * prj.adb: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
35687         Remove functions.
35688         (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Move to spec.
35689
35690         * prj.ads: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
35691         Remove functions.
35692         (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Move from body.
35693
35694 2001-12-16  Joseph S. Myers  <jsm28@cam.ac.uk>
35695
35696         * ChangeLog: Remove piece of diff output.
35697
35698 2001-12-14  Geert Bosch  <bosch@gnat.com>
35699
35700         * config-lang.in: Update copyright notice
35701
35702         * layout.adb: Remove commented out code.
35703
35704         * mdllfile.ads: Update copyright notice. Fix header format.
35705
35706         * sem_case.ads: Likewise.
35707
35708         * sem_ch3.adb: Minor reformatting.
35709
35710 2001-12-12  Geert Bosch  <bosch@gnat.com>
35711
35712         * freeze.ads: Update copyright date.
35713
35714         * g-comlin.ads: Minor reformatting.
35715
35716         * gnat-style.texi: Fix typo.
35717
35718 2001-12-12  Geert Bosch  <bosch@gnat.com>
35719
35720         *  einfo.h: Regenerate.
35721
35722 2001-12-12  Ed Schonberg  <schonber@gnat.com>
35723
35724         * sem_ch12.adb (Save_Entity_Descendant): Use syntactic field names
35725         on known node types, rather than untyped fields. Further cleanups.
35726
35727 2001-12-12  Robert Dewar  <dewar@gnat.com>
35728
35729         * sem_ch12.adb:
35730         (Save_Entity_Descendant): Minor comment update.
35731         (Copy_Generic_Node): Deal with incorrect reference to Associated_Node
35732          of an N_Attribute_Reference node. As per note below, this does not
35733         eliminate need for Associated_Node in attribute ref nodes.
35734         (Associated_Node): Documentation explicitly mentions attribute
35735         reference nodes, since this field is used in such nodes.
35736
35737         * sem_ch12.adb (Associated_Node): Minor documentation cleanup.
35738
35739 2001-12-12  Robert Dewar  <dewar@gnat.com>
35740
35741         * s-stalib.adb: Add more comments on with statements being needed
35742
35743         * par-ch12.adb: Minor reformatting
35744
35745         * prj-dect.ads: Fix copyright header
35746
35747         * s-arit64.adb (Multiply_With_Ovflo_Check): Fix case where both
35748         inputs fit in 32 bits, but the result still overflows.
35749
35750         * s-fatgen.ads: Minor comment improvement
35751
35752 2001-12-12  Ed Schonberg  <schonber@gnat.com>
35753
35754         * sem_ch4.adb (Analyze_Selected_Component): If the prefix is of a
35755         formal derived type, look for an inherited component from the full
35756         view of the parent, if any.
35757
35758 2001-12-12  Robert Dewar  <dewar@gnat.com>
35759
35760         * checks.ads (Apply_Alignment_Check): New procedure.
35761
35762         * exp_ch13.adb (Expand_N_Freeze_Entity): Generate dynamic check to
35763         ensure that the alignment of objects with address clauses is
35764         appropriate, and raise PE if not.
35765
35766         * exp_util.ads (Must_Be_Aligned): Removed, replaced by
35767         Exp_Pakd.Known_Aligned_Enough
35768
35769         * mdllfile.ads: Minor reformatting
35770
35771         * mlib-fil.ads: Minor reformatting
35772
35773 2001-12-12  Ed Schonberg  <schonber@gnat.com>
35774
35775         * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Extend previous
35776         fix to any component reference if enclosing record has non-standard
35777         representation.
35778
35779 2001-12-12  Vincent Celier  <celier@gnat.com>
35780
35781         * g-dirope.ads (Find, Wildcard_Iterator): Moved to child package
35782         Iteration
35783
35784 2001-12-12  Ed Schonberg  <schonber@gnat.com>
35785
35786         * freeze.ads: Make Freeze_Fixed_Point_Type visible, for use in
35787         sem_attr.
35788
35789 2001-12-12  Robert Dewar  <dewar@gnat.com>
35790
35791         * impunit.adb: Add entry for GNAT.Directory_Operations.Iteration
35792
35793 2001-12-12  Emmanuel Briot  <briot@gnat.com>
35794
35795         * g-regexp.adb: Remove all debug code, since it isn't required anymore,
35796         and it adds dependencies to system.io.
35797
35798 2001-12-12  Pascal Obry  <obry@gnat.com>
35799
35800         * g-dirope.adb (Expand_Path.Var): Correctly detect end of
35801         variable name.
35802
35803 2001-12-11  Ed Schonberg  <schonber@gnat.com>
35804
35805         * sem_ch10.adb (Install_Withed_Unit): If the unit is a generic instance
35806         that is the parent of other generics, the instance body replaces the
35807         instance node.  Retrieve the instance of the spec, which is the one
35808         that is visible in clients and within the body.
35809
35810 2001-12-11  Vincent Celier  <celier@gnat.com>
35811
35812         * gnatmain.adb: Initial version.
35813
35814         * gnatmain.ads: Initial version.
35815
35816         * prj-attr.adb (Initialisation_Data): Add package Gnatstub.
35817
35818         * snames.adb: Updated to match snames.ads.
35819
35820         * snames.ads: Added Gnatstub.
35821
35822 2001-12-11  Vincent Celier  <celier@gnat.com>
35823
35824         * prj-attr.adb (Initialization_Data): Change name from
35825         Initialisation_Data.
35826
35827 2001-12-11  Emmanuel Briot  <briot@gnat.com>
35828
35829         * g-regpat.adb (Parse_Literal): Properly handle simple operators ?,
35830         + and * applied to backslashed expressions like \r.
35831
35832 2001-12-11  Vasiliy Fofanov  <fofanov@gnat.com>
35833
35834         * g-os_lib.ads: String_List type added, Argument_List type is now
35835         subtype of String_List.
35836
35837 2001-12-11  Robert Dewar  <dewar@gnat.com>
35838
35839         * g-os_lib.ads: Change copyright to FSF
35840         Add comments for String_List type
35841
35842 2001-12-11  Vincent Celier  <celier@gnat.com>
35843
35844         * g-dirope.adb (Expand_Path): Fix bug. (wrong length when adding a
35845         string to the buffer).
35846
35847 2001-12-11  Ed Schonberg  <schonber@gnat.com>
35848
35849         * freeze.adb: Make Freeze_Fixed_Point_Type visible, for use in
35850         sem_attr.
35851
35852         * sem_attr.adb: Simplify previous fix for Address.
35853         (Set_Bounds): If prefix is a non-frozen fixed-point type, freeze now,
35854         to avoid anomalies where the bound of the type appears to raise
35855         constraint error.
35856
35857 2001-12-11  Robert Dewar  <dewar@gnat.com>
35858
35859         * lib-xref.adb (Output_Refs): Make sure pointers are always properly
35860         handled.
35861
35862 2001-12-11  Ed Schonber   <schonber@gnat.com>
35863
35864         * sem_ch12.adb (Analyze_Subprogram_Instantiation): Check for a
35865         renamed unit before checking for recursive instantiations.
35866
35867 2001-12-11  Emmanuel Briot  <briot@gnat.com>
35868
35869         * prj.ads: Add comments for some of the fields.
35870
35871 2001-12-11  Robert Dewar  <dewar@gnat.com>
35872
35873         * lib-xref.adb (Output_Refs): Don't output type references outside
35874         the main unit if they are not otherwise referenced.
35875
35876 2001-12-11  Ed Schonberg  <schonber@gnat.com>
35877
35878         * sem_attr.adb (Analyze_attribute, case Address and Size): Simplify
35879         code and diagnose additional illegal uses
35880
35881         * sem_util.adb (Is_Object_Reference): An indexed component is an
35882         object only if the prefix is.
35883
35884 2001-12-11  Vincent Celier  <celier@gnat.com>
35885
35886         * g-diopit.adb: Initial version.
35887
35888         * g-diopit.ads: Initial version.
35889
35890         * g-dirope.adb:
35891         (Expand_Path): Avoid use of Unbounded_String
35892         (Find, Wildcard_Iterator): Moved to child package Iteration
35893
35894         * Makefile.in: Added g-diopit.o to GNATRTL_NONTASKING_OBJS
35895
35896 2001-12-11  Robert Dewar  <dewar@gnat.com>
35897
35898         * sem_attr.adb: Minor reformatting
35899
35900 2001-12-11  Ed Schonberg  <schonber@gnat.com>
35901
35902         * sem_ch3.adb: Clarify some ???.
35903
35904 2001-12-11  Robert Dewar  <dewar@gnat.com>
35905
35906         * exp_util.adb (Must_Be_Aligned): Removed, replaced by
35907         Exp_Pakd.Known_Aligned_Enough
35908
35909         * sem_ch13.adb (Check_Address_Alignment): Removed, extended
35910         version is moved to Exp_Ch13.
35911
35912 2001-12-11  Robert Dewar  <dewar@gnat.com>
35913
35914         * einfo.ads: Minor reformatting
35915
35916         * exp_ch5.adb: Add comment for previous.change
35917
35918         * ali.adb: New interface for extended typeref stuff.
35919
35920         * ali.ads: New interface for typeref stuff.
35921
35922         * checks.adb (Apply_Alignment_Check): New procedure.
35923
35924         * debug.adb: Add -gnatdM for modified ALI output
35925
35926         * exp_pakd.adb (Known_Aligned_Enough): Replaces Known_Aligned_Enough.
35927
35928         * lib-xref.adb: Extend generation of <..> notation to cover
35929         subtype/object types. Note that this is a complete rewrite,
35930         getting rid of the very nasty quadratic algorithm previously
35931         used for derived type output.
35932
35933         * lib-xref.ads: Extend description of <..> notation to cover
35934         subtype/object types. Uses {..} for these other cases.
35935         Also use (..) for pointer types.
35936
35937         * sem_util.adb (Check_Potentially_Blocking_Operation): Slight cleanup.
35938
35939         * exp_pakd.adb: Minor reformatting.  Note that prevous RH should say:
35940         (Known_Aligned_Enough): Replaces Must_Be_Aligned.
35941
35942 2001-12-11  Vincent Celier  <celier@gnat.com>
35943
35944         * gnatcmd.adb:
35945         Changed /COMPILE_ONLY to /ACTIONS=COMPILE
35946         Changed /BIND_ONLY to /ACTIONS=BIND
35947         Changed /LINK_ONLY to /ACTIONS=LINK
35948
35949 2001-12-11  Ed Schonberg  <schonber@gnat.com>
35950
35951         * sem_ch8.adb (Find_Selected_Component): improved search for a
35952         candidate package in case of error.
35953
35954         * sem_ch12.adb (Inline_Instance_Body): place head of use_clause
35955         chain back on scope stack before reinstalling use clauses.
35956
35957         * exp_ch5.adb (Expand_N_If_Statement): if Constant_Condition_Warnings
35958         is enabled, do not kill the code for the condition, to preserve
35959         warning.
35960
35961 2001-12-11  Robert Dewar  <dewar@gnat.com>
35962
35963         * checks.adb (Insert_Valid_Check): Apply validity check to expression
35964         of conversion, not to result of conversion.
35965
35966 2001-12-11  Ed Schonberg  <schonber@gnat.com>
35967
35968         * sem_ch3.adb (Build_Derived_Record_Type): set Controlled flag
35969         before freezing parent. If the declarations are mutually recursive,
35970         an access to the current record type may be frozen before the
35971         derivation is complete.
35972
35973 2001-12-05  Vincent Celier  <celier@gnat.com>
35974
35975         * gnatcmd.adb: (MAKE): Add new translations: -b /BIND_ONLY,
35976         -c /COMPILE_ONLY, -l /LINK_ONLY
35977
35978         * opt.ads:
35979         (Bind_Only): New Flag
35980         (Link_Only): New flag
35981
35982         * switch.adb (Scan_Make_Switches): Add processing for -b (Bind_Only)
35983         and -l (Link_Only)
35984
35985         * makeusg.adb: Add new switches -b and -l. Update Copyright notice.
35986
35987         * make.adb:
35988         (Do_Compile_Step, Do_Bind_Step, Do_Link_Step): New flags.
35989         (Gnatmake): Set the step flags. Only perform a step if the
35990         corresponding step flag is True.
35991         (Scan_Make_Arg): Reset the bind and link step flags when -u
35992         or -gnatc has been specified.
35993
35994 2001-12-05  Ed Schonberg  <schonber@gnat.com>
35995
35996         * sem_eval.adb (Eval_Concatenation): If left operand is a null string,
35997         get bounds from right operand.
35998
35999         * sem_eval.adb: Minor reformatting
36000
36001         * exp_util.adb (Make_Literal_Range): use bound of literal rather
36002         than Index'First, its lower bound may be different from 1.
36003
36004         * exp_util.adb: Undo earlier change, fixes ACVC regressions C48009B
36005         and C48009J
36006
36007 2001-12-05  Vincent Celier  <celier@gnat.com>
36008
36009         * prj-nmsc.adb Minor reformatting
36010
36011         * prj-nmsc.adb (Language_Independent_Check): Reset Library flag if
36012         set and libraries are not supported.
36013
36014 2001-12-05  Ed Schonberg  <schonber@gnat.com>
36015
36016         * sem_ch3.adb (Build_Derived_Private_Type): set Public status of
36017         private view explicitly, so the back-end can treat as a global
36018         when appropriate.
36019
36020 2001-12-05  Ed Schonberg  <schonber@gnat.com>
36021
36022         * sem_ch12.adb (Instantiate_Package_Body): if instance is a compilation
36023          unit, always replace instance node with new body, for ASIS use.
36024
36025 2001-12-05  Vincent Celier  <celier@gnat.com>
36026
36027         * prj-nmsc.adb (Language_Independent_Check): Issue a warning if
36028         libraries are not supported and both attributes Library_Name and
36029         Library_Dir are specified.
36030
36031         * prj-proc.adb (Expression): Set location of Result to location of
36032         first term.
36033
36034         * Makefile.in: Add mlib.o, mlib-fil.o, mlib-tgt and mlib-utl to GNATLS.
36035         (prj-nmsc is now importing MLib.Tgt)
36036
36037         * prj-proc.adb: Put the change indicated above that was forgotten.
36038
36039 2001-12-05  Robert Dewar  <dewar@gnat.com>
36040
36041         * Makefile.in: Add dependencies for System.IO for GNAT.Regexp
36042
36043 2001-12-05  Ed Schonberg  <schonber@gnat.com>
36044
36045         * sem_ch3.adb (Build_Derived_Concurrent_Type): If derivation imposes a
36046         constraint, introduce explicit subtype declaration and derive from it.
36047
36048         * sem_ch3.adb: Minor reformatting
36049
36050 2001-12-05  Robert Dewar  <dewar@gnat.com>
36051
36052         * checks.adb (Determine_Range): Increase cache size for checks.
36053         Minor reformatting
36054
36055         * exp_ch6.adb: Minor reformatting
36056         (Expand_N_Subprogram_Body): Reset Is_Pure for any subprogram that has
36057         a parameter whose root type is System.Address, since treating such
36058         subprograms as pure in the code generator is almost surely a mistake
36059         that will lead to unexpected results.
36060
36061         * exp_util.adb (Remove_Side_Effects): Clean up old ??? comment and
36062         change handling of conversions.
36063
36064         * g-regexp.adb: Use System.IO instead of Ada.Text_IO.
36065
36066 2001-12-05  Ed Schonberg  <schonber@gnat.com>
36067
36068         * sem_ch3.adb (Analyze_Object_Declaration): If expression is an
36069         aggregate with static wrong size, attach generated Raise node to
36070         declaration.
36071
36072 2001-12-05  Robert Dewar  <dewar@gnat.com>
36073
36074         * sem_attr.adb (Analyze_Attribute): Defend against bad Val attribute.
36075         Fixes compilation abandoned bomb in B24009B.
36076
36077 2001-12-05  Ed Schonberg  <schonber@gnat.com>
36078
36079         * sem_ch12.adb:
36080         Document use of Associated_Node on Selected_Components.
36081         (Save_Global_Operand_Descendants): Change to Save_Entity_Descendants,
36082         to clarify use of untyped descendant fields.
36083
36084 2001-12-05  Robert Dewar  <dewar@gnat.com>
36085
36086         * prj-dect.ads: Add ??? comment
36087         Add 2001 to copyright notice (was not done in after all)
36088
36089         * prj-part.adb: Minor reformatting. Reword one awkward error message.
36090
36091         * prj.ads: Minor reformatting throughout, and add some ??? comments
36092
36093         * snames.ads: Minor reformatting
36094
36095 2001-12-05  Geert Bosch  <bosch@gnat.com>
36096
36097         * snames.adb: Autoupdate
36098
36099 2001-12-05  Vincent Celier  <celier@gnat.com>
36100
36101         * prj-dect.adb (Parse): Rename parameter Modifying to Extends.
36102
36103         * prj-dect.ads (Parse): Rename parameter Modifying to Extends.
36104
36105         * prj-env.adb: Minor comment changes (modifying -> extends).
36106
36107         * prj-nmsc.adb: Minor comment changes (modifying -> extends).
36108
36109         * prj-part.adb (Parse_Single_Project): Change Tok_Modifying to
36110         Tok_Extends.
36111
36112         * prj.adb (Initialize): Change Modifying to Extends.
36113
36114         * scans.ads (Token_Type): Change Tok_Modifying to Tok_Extends.
36115
36116         * prj.ads: Minor comment change (Modifying -> extending).
36117
36118         * snames.ads: Change modifying to extends.
36119
36120 2001-12-05  Robert Dewar  <dewar@gnat.com>
36121
36122         * sem_warn.adb: Remove stuff for conditionals, we are not going to
36123         do this after all.
36124
36125         * sem_warn.ads: Remove stuff for conditionals, we are not going to
36126         do this after all.  Add 2001 to copyright notice
36127
36128 2001-12-04  Geert Bosch  <bosch@gnat.com>
36129
36130         *  einfo.h, sinfo.h, treeprs.ads: Regenerate.
36131
36132 2001-12-04  Robert Dewar  <dewar@gnat.com>
36133
36134         * errout.adb (Error_Msg): Ignore attempt to put error msg at junk
36135         location if we already have errors. Stops some cases of cascaded
36136         errors.
36137
36138         * errout.adb: Improve comment.
36139
36140 2001-12-04  Robert Dewar  <dewar@gnat.com>
36141
36142         * sem_ch12.adb:
36143         (Analyze_Formal_Type_Definition): Defend against Error.
36144         (Analyze_Formal_Subprogram): Defend against Error.
36145
36146         * par-ch12.adb (F_Formal_Type_Declaration): In case of error,
36147         remove following semicolon if present. Removes cascaded error.
36148
36149 2001-12-04  Douglas B. Rupp  <rupp@gnat.com>
36150
36151         * bindgen.adb:
36152         (Gen_Exception_Table_Ada): Write "begin" and then return if Num
36153          exceptions equals 0.
36154         (Gen_Exception_Table_C): Return if Num exceptions equals 0.
36155         Fixes PIWG E tests (which have to be run with -gnatL).
36156
36157 2001-12-04  Robert Dewar  <dewar@gnat.com>
36158
36159         * einfo.ads: Minor reformatting
36160
36161 2001-12-04  Ed Schonberg  <schonber@gnat.com>
36162
36163         * einfo.ads: Block_Node points to the identifier of the block, not to
36164         the block node itself, to preserve the link when the block is
36165         rewritten, e.g. within an if-statement with a static condition.
36166
36167         * inline.adb (Cleanup_Scopes): recover block statement from block
36168         entity using new meaning of Block_Node.
36169
36170         * sem_ch5.adb (Analyze_Block_Statement): set Block_Node to point to
36171         identifier of block node, rather than to node itself.
36172
36173 2001-12-04  Gary Dismukes  <dismukes@gnat.com>
36174
36175         * layout.adb:
36176         (Get_Max_Size): Fix "start of processing" comment to say Get_Max_Size.
36177         (Discrimify): Go back to setting the Etypes of the selected component
36178         because the Vname component does not exist at this point and will
36179         fail name resolution. Also set Analyzed.
36180         Remove with and use of Sem_Res.
36181
36182 2001-12-04  Arnaud Charlet  <charlet@gnat.com>
36183
36184         * Makefile.in: (HIE_SOURCES): add s-fat*.
36185
36186 2001-12-04  Robert Dewar  <dewar@gnat.com>
36187
36188         * sem_attr.adb:
36189         (Compile_Time_Known_Attribute): New procedure.
36190         (Eval_Attribute, case Size): Use Compile_Time_Known_Attribute to ensure
36191          proper range check.
36192
36193 2001-12-04  Ed Schonberg  <schonber@gnat.com>
36194
36195         * sem_ch7.adb (New_Private_Type): Set Is_Tagged_Type flag before
36196         processing discriminants to diagnose illegal default values.
36197
36198 2001-12-04  Ed Schonberg  <schonber@gnat.com>
36199
36200         * sem_attr.adb (Resolve_Attribute): Handle properly an non-classwide
36201         access discriminant within a type extension that constrains its
36202         parent discriminants.
36203
36204 2001-12-04  Ed Schonberg  <schonber@gnat.com>
36205
36206         * sem_ch3.adb (Find_Type_Of_Subtype_Indic): If subtype indication
36207         is malformed, use instance of Any_Id to allow analysis to proceed.
36208
36209         * par-ch12.adb (P_Formal_Type_Declaration): Propagate Error if
36210         type definition is illegal.
36211         (P_Formal_Derived_Type_Definition): Better recovery when TAGGED is
36212         misplaced.
36213
36214 2001-12-04  Ed Schonberg  <schonber@gnat.com>
36215
36216         * sem_warn.adb (Output_Unreferenced_Messages): Extend previous fix to
36217         constants.
36218
36219 2001-12-04  Robert Dewar  <dewar@gnat.com>
36220
36221         * errout.adb: Minor reformatting
36222
36223 2001-12-04  Robert Dewar  <dewar@gnat.com>
36224
36225         * exp_util.adb: Minor reformatting from last change
36226
36227         * errout.adb (Check_For_Warning): For a Raised_Constraint_Error node
36228         which is a rewriting of an expression, traverse the original
36229         expression to remove warnings that may have been posted on it.
36230
36231 2001-12-04  Ed Schonberg  <schonber@gnat.com>
36232
36233         * exp_util.adb (Must_Be_Aligned): Return false for a component of a
36234         record that has other packed components.
36235
36236 2001-12-04  Douglass B. Rupp  <rupp@gnat.com>
36237
36238         * adaint.c: Minor cleanups.
36239
36240 2001-12-04  Douglass B. Rupp  <rupp@gnat.com>
36241
36242         * adaint.c: Do not use utime.h on vxworks.
36243
36244 2001-12-04  Arnaud Charlet  <charlet@gnat.com>
36245
36246         * Makefile.adalib: Clarify step 3 (use of gnat.adc) as it causes
36247         more confusion than it solves.
36248
36249 2001-12-04  Geert bosch  <bosch@gnat.com>
36250
36251         * einfo.h, nmake.adb, nmake.ads, sinfo.h treeprs.ads: Regenerate.
36252
36253 2001-12-04  Geert Bosch  <bosch@gnat.com>
36254
36255         * Makefile.in (update-sources): New target.
36256         For use by gcc_release script.
36257
36258 2001-12-04  Ed Schonberg  <schonber@gnat.com>
36259
36260         * sem_prag.adb (Analyze_Pragma, case Validity_Checks): do not treat as
36261         a configuration pragma, it is now legal wherever a pragma can appear.
36262
36263 2001-12-04  Zack Weinberg  <zack@codesourcery.com>
36264
36265         * Makefile.in: Don't set ALL.  Delete @cross_defines@,
36266         @cross_overrides@, @build_overrides@ stanzas.  INTERNAL_CFLAGS
36267         is now @CROSS@ -DIN_GCC; update comment.
36268
36269 2001-12-04  Robert Dewar  <dewar@gnat.com>
36270
36271         * einfo.adb (Has_Pragma_Pure_Function): New flag.
36272         Fix problem that stopped ceinfo from working
36273
36274         * einfo.ads (Has_Pragma_Pure_Function): New flag.
36275
36276         * sem_prag.adb (Pure_Function): Set new flag Has_Pragma_Pure_Function.
36277
36278 2001-12-04  Douglas B. Rupp  <rupp@gnat.com>
36279
36280         * gnatchop.adb:
36281         (File_Time_Stamp): New procedure.
36282         (Preserve_Mode): New boolean.
36283         (Write_Unit): Pass time stamp.
36284         Implement -p switch (preserve time stamps).
36285
36286         * gnatcmd.adb (CHOP): Add translation for -p (/PRESERVE).
36287
36288         * gnatchop.adb: Do usage info for -p switch
36289
36290         * adaint.h (__gnat_set_file_time_name): New function
36291
36292         * adaint.c (__gnat_set_file_time_name): Implement
36293
36294         * adaint.h: Fix typo
36295
36296 2001-12-03  Robert Dewar  <dewar@gnat.com>
36297
36298         * sinfo.ads: Minor reformatting. N_Freeze_Entity node does not
36299         have Associated_Node.
36300
36301 2001-12-03  Robert Dewar  <dewar@gnat.com>
36302
36303         * prj-proc.adb: Minor reformatting
36304
36305         * make.adb: Minor reformatting
36306
36307 2001-12-03  Geert Bosch  <bosch@gnat.com>
36308
36309         * make.adb: Minor reformatting.
36310
36311 2001-12-03 Robert Dewar  <dewar@gnat.com>
36312
36313         * sem_ch12.adb: Minor reformatting
36314
36315 2001-12-03  Ed Schonberg  <schonber@gnat.com>
36316
36317         * sem_ch12.adb (Inline_Instance_Body): Use Save_Scope_Stack and
36318         push Standard on the stack before analyzing the instance body,
36319         in order to have a clean visibility environment.
36320
36321         * sem_ch12.adb (Inline_Instance_Body): Remove redundant code.
36322
36323 2001-12-03  Ed Schonberg  <schonber@gnat.com>
36324
36325         * sem_ch12.adb (Instantiate_Package_Body): Protect against double
36326         instantiation of a body that contains an inlined body.
36327
36328 2001-12-03  Ed Schonberg  <schonber@gnat.com>
36329
36330         * sem_ch12.adb:
36331         (Analyze_generic_subprogram_Declaration): Set outer_generic_scope,
36332         to prevent freezing within formal packages.
36333         (Freeze_Subprogram_Body): If body comes from another instance that
36334         appeared before its own body, place freeze node at end of current
36335         declarative part, to prevent a back-end crash.
36336         (Inline_Instance_Body): Handle properly a package instance within
36337         a subprogram instance that is a child unit.
36338
36339 2001-12-01  Graham Stott  <grahams@redhat.com>
36340
36341         * Makefile.in (misc.o): Add missing $(srcdir) prefix
36342         and add optabs.h dependency.
36343
36344         * misc.c: Include optabs.h
36345         (gnat_tree_code_type): Make static and const.
36346         (gnat_tree_code_length): Likewise.
36347         (gnat_tree_code_name): Likewise.
36348         (update_setjmp_buf): Obtain operands mode from insn_data.
36349
36350 2001-11-29  Richard Henderson  <rth@redhat.com>
36351
36352         * init.c: Remove obsolete dwarf2 frame.h section.
36353
36354 2001-11-29  Joseph S. Myers  <jsm28@cam.ac.uk>
36355
36356         * Make-lang.in (ada.generated-manpages): New dummy target.
36357
36358 2001-11-29  Ed Schonberg  <schonber@gnat.com>
36359
36360         * g-os_lib.adb (Add_To_Command): use explicit loop to move string
36361         into Command, an array conversion is illegal here. Uncovered by
36362         ACATS B460005.
36363
36364 2001-11-28  Geert Bosch  <bosch@gnat.com>
36365
36366         * init.c: Minor whitespace changes.
36367
36368 2001-11-28  Doug Rupp  <rupp@gnat.com>
36369
36370         * init.c: (__gnat_install_handler,VMS): Increase size of alternate
36371         signal stack.
36372
36373 2001-11-28  Zack Weinberg  <zack@codesourcery.com>
36374
36375         * misc.c (gnat_expand_constant): Move declaration above
36376         definition of lang_hooks.
36377         (LANG_HOOKS_EXPAND_CONSTANT): Set to gnat_expand_constant.
36378         (gnat_init): lang_expand_constant no longer exists.
36379
36380         (internal_error_function): Remove #ifdef HAVE_VPRINTF.  We
36381         always have vprintf.
36382         (gnat_init): Always call set_internal_error_function.
36383
36384 2001-11-27  Andreas Jaeger  <aj@suse.de>
36385
36386         * Makefile.in (stamp-tool_src_dir): Use symbolic link.
36387
36388 2001-11-27  Laurent Guerby  <guerby@acm.org>
36389
36390         * Makefile.in: Regenerate Ada dependencies.
36391
36392 2001-11-26  Richard Henderson  <rth@redhat.com>
36393
36394         * Make-lang.in (gnatbind, gnatmake, gnatbl, gnatchop, gnatcmd,
36395         gnatlink, gnatkr, gnatls, gnatmem, gnatprep, gnatpsta, gnatpsys,
36396         gnatxref, gnatfind, gnatlbr): Depend on CONFIG_H and prefix.o.
36397
36398 2001-11-25  Laurent Guerby  <guerby@acm.org>
36399
36400         * sysdep.c (rts_get_*): Fix style.
36401
36402 2001-11-19  Laurent Guerby  <guerby@acm.org>
36403
36404         * Makefile.in (INCLUDES_FOR_SUBDIR): Remove redundant system include
36405         since it is of no apparent use and cause warnings.
36406
36407 2001-11-18  Neil Booth  <neil@daikokuya.demon.co.uk>
36408
36409         * misc.c (gnat_decode_option, gnat_init_options): Make definitions
36410         static too.
36411         (gnat_init): Don't return NULL.
36412         (finish_parse): Remove.
36413
36414 2001-11-17  Laurent Guerby  <guerby@acm.org>
36415
36416         * Make-lang.in (GNATLIBFLAGS): Add -W -Wall.
36417         * gigi.h (init_decl_processing): Rename to gnat_init_decl_processing.
36418         * io-aux.c: Provide K&R prototypes to all functions, reformat code.
36419         * lang-spec.h: Add missing struct field to silence warnings.
36420         * sysdep.c (rts_get_*): Provide K&R prototype.
36421         * sysdep.c (Unlock_Task, Lock_Task): Move to K&R prototype.
36422         * traceback.c (Unlock_Task, Lock_Task): Likewise.
36423         * tracebak.c (__gnat_backtrace): Remove unused variable.
36424         * utils.c (end_subprog_body): Move to K&R style.
36425
36426 Thu Nov 15 18:16:17 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
36427
36428         * trans.c, utils2.c: Remove PALIGN parameter to get_inner_reference.
36429
36430 2001-11-15  Neil Booth  <neil@daikokuya.demon.co.uk>
36431
36432         * misc.c (gnat_init): Change prototype.  Include the
36433         functionality of the old init_parse and init_decl_processing.
36434         (gnat_init_decl_processing): New prototype.
36435         (init_parse): Remove.
36436         * utils.c (init_decl_processing): Rename gnat_init_decl_processing.
36437
36438 2001-11-09  Neil Booth  <neil@daikokuya.demon.co.uk>
36439
36440         * misc.c (gnat_print_decl, gnat_print_type): Renamed.
36441         (LANG_HOOKS_PRINT_DECL, LANG_HOOKS_PRINT_TYPE): Override.
36442         (print_lang_statistics, lang_print_xnode, print_lang_identifier,
36443         set_yydebug): Remove.
36444
36445 2001-11-09  Neil Booth  <neil@daikokuya.demon.co.uk>
36446
36447         * misc.c (LANG_HOOKS_NAME, LANG_HOOKS_IDENTIFIER_SIZE): Override.
36448         (struct lang_hooks): Constify.
36449         (language_string, lang_identify): Remove.
36450         * utils.c (init_decl_processing): Update.
36451
36452 2001-11-06  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
36453
36454         * misc.c: Include langhooks-def.h.
36455         * Makefile.in: Update.
36456
36457 2001-10-30  Robert Dewar  <dewar@gnat.com>
36458
36459         * style.adb:
36460         (Check_Identifier): Rewrite circuit to be compatible with use of letters
36461         in the upper half of ASCII.
36462         (Check_Identifier): Minor reformatting
36463
36464 2001-10-30  Geert Bosch  <bosch@gnat.com>
36465
36466         * (Associated_Node, Set_Associated_Node): Do not check for
36467         Freeze_Entity.
36468
36469 2001-10-30  Robert Dewar  <dewar@gnat.com>
36470
36471         * a-reatim.ads: Minor reformatting
36472
36473 2001-10-30  Robert Dewar  <dewar@gnat.com>
36474
36475         * gnatdll.adb: Minor reformatting throughout. Many ??? added for
36476         undocumented declarations.
36477
36478 2001-10-30  Pascal Obry  <obry@gnat.com>
36479
36480         * gnatdll.adb (Parse_Command_Line): handle -g option to be passed
36481         to the binder and linker.
36482         Minor style fix.
36483
36484         * mdll.ads: Fix layout.  Update copyright notice.
36485
36486         * mdll.adb: Fix layout.  Update copyright notice.
36487
36488 2001-10-30  Robert Dewar  <dewar@gnat.com>
36489
36490         * usage.adb: Minor fix to output for -gnaty.
36491
36492 2001-10-30  Ed Schonberg  <schonber@gnat.com>
36493
36494         * a-reatim.ads: Makes Seconds_Count into a 64-bit integer,
36495         to accommodate all its possible values.
36496
36497         * a-reatim.adb (Split): Special-case handling of Time_Span_First
36498         and of small absolute values of T.
36499
36500 2001-10-30  Richard Kenner  <kenner@gnat.com>
36501
36502         * misc.c (gnat_expand_expr, case NULL_EXPR): Remove call to
36503         set_mem_attributes since not needed and wrong if RESULT if a REG;
36504         fixes ACATS failures.
36505
36506 2001-10-30  Geert Bosch  <bosch@gnat.com>
36507
36508         * 86numaux.adb, a-tigeau.ads, a-wtgeau.ads, fname-sf.ads, g-traceb.ads,
36509         s-tasdeb.ads, sem_maps.ads: Add 2001 to copyright notice.
36510
36511 2001-10-30  Robert Dewar  <dewar@gnat.com>
36512
36513         * bindusg.adb: Undocument -f switch.
36514
36515         * gnatcmd.adb: Remove /FULL_ELABORATION.
36516
36517         * opt.ads (Force_RM_Elaboration_Order): Document that this is
36518         obsolescent.
36519
36520         * gnatbind.adb: Output new warning for use of obsolescent -f switch.
36521
36522         * gnatbind.adb: Minor update of warning msg.
36523
36524 2001-10-30  Vincent Celier  <celier@gnat.com>
36525
36526         * gnatcmd.adb (MAKE, BIND, LINK, LIST, FIND, XREF): Add translations
36527         for project file switches (-P (/PROJECT_FILE=),
36528          -X (/EXTERNAL_REFERENCE=) and -vPx (/PROJECT_FILE_VERBOSITY=DEFAULT
36529         or MEDIUM or HIGH)
36530
36531 2001-10-30  Geert Bosch  <bosch@gnat.com>
36532
36533         * decl.c: Minor whitespace fixes.
36534
36535 2001-10-30  Richard Kenner  <kenner@gnat.com>
36536
36537         * utils2.c (build_allocator): Test for SIZE overflow in array case too
36538
36539 2001-10-30  Geert Bosch  <bosch@gnat.com>
36540
36541         * ali-util.adb (Initialize_Checksum): Use out-mode instead of in out.
36542         Found due to GCC 3.0 warning of using uninitialized value.
36543
36544         * layout.adb:
36545         (Get_Max_Size): Use variant record for tracking value/expression.
36546          Makes logic clearer and prevents warnings for uninitialized variables.
36547         (Layout_Array_Type): Use variant record for tracking value/expression.
36548          Makes logic clearer and prevents warnings for uninitialized variables.
36549
36550 2001-10-30  Robert Dewar  <dewar@gnat.com>
36551
36552         * lib.adb: Minor reformatting
36553
36554         * s-taprop.ads: Minor reformatting
36555
36556 2001-10-29  Laurent Guerby  <guerby@acm.org>
36557
36558         * init.c:
36559         (Raise_From_Signal_Handler, Propagate_Signal_Exception): Make arg
36560         const.
36561         (_gnat_error_handler): Make MSG const.
36562
36563 2001-10-29  Richard Kenner  <kenner@gnat.com>
36564
36565         * sysdep.c: Fix localtime_r problem on LynxOS.
36566         Also remove #elif to avoid warnings.
36567
36568         * misc.c (yyparse): Don't set up and register jmpbuf; remove decls
36569         used by this.
36570
36571         * decl.c (annotate_value): Make SIZE unsigned to avoid warning.
36572
36573 2001-10-28  Joseph S. Myers  <jsm28@cam.ac.uk>
36574
36575         * 86numaux.adb, a-tigeau.ads, a-wtgeau.ads, decl.c, exp_ch6.adb,
36576         exp_ch9.adb, exp_util.adb, fname-sf.ads, freeze.ads, g-awk.adb,
36577         g-comlin.ads, g-dirope.adb, g-dyntab.ads, g-socket.ads,
36578         g-table.ads, g-traceb.ads, gnat-style.texi, gnatchop.adb, init.c,
36579         layout.adb, layout.ads, mdllfile.ads, mlib-fil.ads, osint.ads,
36580         s-fatgen.adb, s-imgrea.adb, s-taprop.ads, s-tasdeb.ads,
36581         sem_aggr.adb, sem_attr.adb, sem_case.ads, sem_ch13.adb,
36582         sem_ch3.adb, sem_elab.adb, sem_maps.ads, sem_res.adb,
36583         sem_util.ads, sinfo.ads, sinput.ads, table.adb, table.ads,
36584         types.ads, urealp.adb: Fix spelling errors.
36585
36586 2001-10-27  Laurent Guerby  <guerby@acm.org>
36587
36588         * trans.c (gigi): Fix non determinism leading to bootstrap
36589         comparison failures for debugging information.
36590
36591 2001-10-26  Florian Weimer  <fw@deneb.enyo.de>
36592
36593         * gnat_rm.texi: Use @./@: where appropriate.
36594
36595 2001-10-26  Robert Dewar  <dewar@gnat.com>
36596
36597         * sinfo.adb: Define Associated_Node to overlap Entity field. Cleanup.
36598
36599 2001-10-26  Richard Kenner  <kenner@gnat.com>
36600
36601         * gmem.c (__gnat_gmem_read_next): Properly check for EOF
36602
36603 2001-10-26  Richard Kenner  <kenner@gnat.com>
36604
36605         * decl.c (validate_size): Modify message for bad size to avoid
36606         implication that compiler is modifying the size.
36607
36608 2001-10-26  Robert Dewar  <dewar@gnat.com>
36609
36610         * prj-util.adb: Minor reformatting. Fix bad header format.
36611
36612 2001-10-26  Robert Dewar  <dewar@gnat.com>
36613
36614         * sinfo.ads: Define Associated_Node to overlap Entity field. Cleanup.
36615
36616         * sinfo.ads: Clarify use of Associated_Node (documentation only).
36617
36618         * sem_ch12.adb: Change Node4 to Associated_Node. Change
36619         Associated_Node to Get_Associated_Node. Put use of Unchecked_Access
36620         much more narrowly in places where needed. These are cleanups.
36621
36622 2001-10-26  Joel Brobecker  <brobecke@gnat.com>
36623
36624         * 5zosinte.ads (null_pthread): new constant.
36625
36626         * 5ztaprop.adb:
36627         (Initialize_TCB): Initialize thread ID to null, to be able to verify
36628          later that this field has been set.
36629         (Finalize_TCB): ditto.
36630         (Suspend_Task): Verify that the thread ID is not null before using it.
36631         (Resume_Task): ditto.
36632
36633         * s-tasdeb.adb:
36634         (Resume_All_Tasks): Lock the tasks list before using it.
36635         (Suspend_All_Tasks): ditto.
36636
36637 2001-10-26  Richard Kenner  <kenner@gnat.com>
36638
36639         * decl.c (gnat_to_gnu_entity, case E_General_Access_Type):
36640         Make constant variant of designated type for Is_Access_Constant.
36641         Call update_pointer_to with main variant.
36642
36643         * trans.c (process_freeze_entity, process_type):
36644         Call update_pointer_to on main variant.
36645
36646         * utils.c (update_pointer_to): Make corresponding variant for NEW_TYPE.
36647         If main variant, update all other variants.
36648
36649         * utils2.c (build_unary_op, case INDIRECT_REF): No longer set
36650         TREE_STATIC.
36651
36652 2001-10-26  Robert Dewar  <dewar@gnat.com>
36653
36654         * prj-util.adb: Minor reformatting
36655
36656 2001-10-26  Robert Dewar  <dewar@gnat.com>
36657
36658         * prj-util.adb: Minor reformatting
36659
36660 2001-10-26  Robert Dewar  <dewar@gnat.com>
36661
36662         * prj-attr.adb: Minor reformatting throughout
36663
36664 2001-10-26  Robert Dewar  <dewar@gnat.com>
36665
36666         * prj-attr.ads: Minor reformatting
36667         Add ??? comment (this whole spec has almost no comments)
36668
36669 2001-10-26  Vincent Celier  <celier@gnat.com>
36670
36671         * g-os_lib.adb (Normalize_Pathname): Preserve the double slash
36672         ("//") that precede the drive letter on Interix.
36673
36674 2001-10-26  Geert Bosch  <bosch@gnat.com>
36675
36676         * gnat_rm.texi: Add GNAT Reference Manual.
36677
36678 2001-10-25  Robert Dewar  <dewar@gnat.com>
36679
36680         * sem_ch8.adb (Analyze_Package_Renaming): Skip analysis if Name
36681         is Error. Similar change for other renaming cases.
36682
36683 2001-10-25  Robert Dewar  <dewar@gnat.com>
36684
36685         * s-atacco.ads: Add pragma Inline_Always for functions.
36686         Fix header format. Add copyright 2001
36687
36688 2001-10-25  Ed Schonberg  <schonber@gnat.com>
36689
36690         * par-ch3.adb (P_Subtype_Mark_Resync): for an anonymous array
36691         return Error rather than Empty so that analysis can proceed.
36692
36693 2001-10-25  Ed Schonberg  <schonber@gnat.com>
36694
36695         * sem_util.adb (Enter_Name): better handling of cascaded error
36696         messages when a unit appears in its own context.
36697
36698 2001-10-25  Ed Schonberg  <schonber@gnat.com>
36699
36700         * sem_util.adb (Defining_Entity): in case of error, attach created
36701         entity to specification, so that semantic analysis can proceed.
36702
36703 2001-10-25  Robert Dewar  <dewar@gnat.com>
36704
36705         * sem_util.adb
36706         (Defining_Entity): Deal with Error.
36707         (Process_End_Label): Deal with bad end label for.
36708
36709 2001-10-25  Ed Schonberg  <schonber@gnat.com>
36710
36711         * sem_elab.adb (Check_A_Call): refine message when call is in an
36712         instance but callee is not declared in the generic unit.
36713
36714 2001-10-25  Ed Schonberg  <schonber@gnat.com>
36715
36716         * sem_elab.adb (Check_A_Call): check for renaming before finding the
36717         enclosing unit, which may already be different from the calling unit.
36718
36719 2001-10-25  Geert Bosch  <bosch@gnat.com>
36720
36721         * 4gintnam.ads: fix header format.
36722
36723 2001-10-25  Ed Schonberg  <schonber@gnat.com>
36724
36725         * sem_res.adb (Resolve_Call): if the call is actually an indexing
36726         operation on the result of a parameterless call, perform elaboration
36727         check after the node has been properly rewritten.
36728
36729         * sem_ch12.adb (Copy_Generic_Node): after the proper body has been
36730         inlined within the generic tree, the defining identifier is not a
36731         compilation_unit.
36732
36733 2001-10-25  Ed Schonberg  <schonber@gnat.com>
36734
36735         * sem_res.adb (Resolve): special-case resolution of Null in an
36736          instance or an inlined body to avoid view conflicts.
36737
36738         * sem_ch12.adb (Copy_Generic_Node): for allocators, check for view
36739          compatibility by retrieving the access type of the generic copy.
36740
36741 2001-10-25  Robert Dewar  <dewar@gnat.com>
36742
36743         * sem_ch3.adb:
36744         (Analyze_Number_Declaration): Handle error expression.
36745         (Signed_Integer_Type_Declaration): Handle error bound.
36746         (Analyze_Subtype_Indication): Handle error range.
36747
36748         * sem_util.adb (Get_Index_Bounds): Check for Error.
36749
36750 2001-10-25  Robert Dewar  <dewar@gnat.com>
36751
36752         * restrict.adb (Set_No_Run_Time_Mode): Set Discard_Names as default
36753         in no run time mode.
36754
36755 2001-10-25  Pascal Obry  <obry@gnat.com>
36756
36757         * gnatmem.adb (Read_Next): fix Curs2 value to properly handle quiet
36758         mode case for ALLOC case.
36759
36760         * gnatmem.adb (Read_Next): correctly fix parsing in Quiet mode on
36761         all platforms. Improvement of last change.
36762
36763 2001-10-25  Robert Dewar  <dewar@gnat.com>
36764
36765         * exp_ch4.adb (Expand_N_Allocator): Minor reformatting.
36766
36767 2001-10-25  Geert Bosch  <bosch@gnat.com>
36768
36769         * osint.adb (Is_Relative): Remove duplicate.
36770
36771 2001-10-25  Pascal Obry  <obry@gnat.com>
36772
36773         * osint.adb (Read_Default_Search_Dirs): correctly detect relative
36774         pathnames in UNIX and DOS style with drive letter.
36775         (Is_Relative): new routine.
36776
36777         * osint.adb: Minor reformatting
36778
36779         * osint.adb (Is_Relative): implementation using
36780         GNAT.OS_Lib.Is_Absolute_Path. Better fix.
36781
36782 2001-10-25  Pascal Obry  <obry@gnat.com>
36783
36784         * g-dirope.adb (Basename): correctly compute offset between the
36785         original Path and the translated one.
36786
36787         * g-dirope.adb: (Base_Name): add some comments.
36788
36789 2001-10-25  Robert Dewar  <dewar@gnat.com>
36790
36791         * exp_imgv.adb (Expand_Image_Attribute): Defend against bad use
36792         in HIE mode, avoids compilation abandoned message
36793
36794         * exp_imgv.adb: Correct typo in previous change
36795
36796         * exp_imgv.adb: Correct typo in previous change (not my day!)
36797
36798 2001-10-25  Robert Dewar  <dewar@gnat.com>
36799
36800         * s-tpinop.ads: Add 2001 to copyright notice. Fix header format.
36801
36802 2001-10-25  Pascal Obry  <obry@gnat.com>
36803
36804         * g-awk.ads: Move all pragma inlines next to the routine
36805          declarations. This is more uniform with other GNAT spec.
36806
36807 2001-10-22  Geert Bosch  <bosch@gnat.com>
36808
36809         * Make-lang.in (gnattools, cross-gnattools): Remove gnatmem.
36810
36811 2001-10-19  Geert Bosch  <bosch@gnat.com>
36812
36813         * Makefile.in (tools, gnattools): Remove gnatmem.
36814
36815 2001-10-17  Richard Henderson  <rth@redhat.com>
36816
36817         * Makefile.in (misc.o): Depend on langhooks.h.
36818         * misc.c: Include it.
36819         (LANG_HOOKS_INIT, LANG_HOOKS_INIT_OPTIONS): New.
36820         (LANG_HOOKS_DECODE_OPTION): New.
36821         (lang_hooks): Use LANG_HOOKS_INITIALIZER.
36822
36823 2001-10-16  Florian Weimer  <fw@deneb.enyo.de>
36824
36825         * trans.c (tree_transform): Adjust to recent change in
36826         expand_asm_operands to implement named asm operands.
36827
36828 2001-10-11  Ed Schonberg  <schonber@gnat.com>
36829
36830         * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Bugfix in
36831         renaming of discriminant for mutable record type.
36832
36833 2001-10-11  Robert Dewar  <dewar@gnat.com>
36834
36835         * validsw.adb: Properly save -gnatVn status.
36836
36837 2001-10-11  Robert Dewar  <dewar@gnat.com>
36838
36839         * usage.adb: Add lines for V switch.
36840
36841         * gnatcmd.adb (COMPILE): Revise translations for -gnatV
36842         (/VALIDITY_CHECKING).
36843
36844 2001-10-11  Ed Schonberg  <schonber@gnat.com>
36845
36846         * sem_type.adb (Add_One_Interp): an operator for a type declared in
36847         an extension of System is known to be visible.
36848
36849 2001-10-11  Ed Schonberg  <schonber@gnat.com>
36850
36851         * sem_eval.adb (Compare_Fixup): get the bounds of a String_Literal
36852         properly. Fixes regression on ACATS C34005G.
36853
36854 2001-10-11  Robert Dewar  <dewar@gnat.com>
36855
36856         * sem_ch5.adb (Analyze_Iteration_Scheme): Suppress warning on null
36857         loop in generic instance, since this is likely not very useful.
36858
36859 2001-10-11  Robert Dewar  <dewar@gnat.com>
36860
36861         * restrict.adb (Disallow in No_Run_Time_Mode): Properly specialize
36862         the error message for high integrity mode.
36863
36864         * rtsfind.adb (RTE): Give message if we try to find an entity that
36865         is not available in high integrity mode.
36866
36867         * rtsfind.ads:
36868         (OK_To_Use_In_HIE_Mode): New array.
36869         (RTE): May return Empty in high integrity mode.
36870
36871         * rtsfind.ads (OK_To_Use_In_No_Run_Time_Mode): New name for
36872         OK_To_Use_In_HIE_Mode, now includes System_FAT_xxx.
36873
36874         * sem_ch6.adb (Analyze_Subprogram_Body): Kill body in predefined
36875         unit if not inlined always and in no runtime mode. Fixes problem
36876         caused by new Rtsfind changes.
36877
36878         * sem_ch6.adb (Analyze_Subrogram_Body): Do not Check_References if
36879         body is deleted.
36880
36881         * rtsfind.adb (RTE): Make sure we do not try to load unit after
36882         giving message for entity not available in high integrity mode.
36883
36884 2001-10-11  Pascal Obry  <obry@gnat.com>
36885
36886         * impunit.adb: Add GNAT.CRC32.
36887
36888 2001-10-11  Ed Schonberg  <schonber@gnat.com>
36889
36890         * exp_fixd.adb (Expand_Multiply_Fixed_By_Fixed_Giving_Fixed): handle
36891         properly the case where one universal operand in a non-static
36892         exponentiation of a real literal.
36893
36894 2001-10-11  Ed Schonberg  <schonber@gnat.com>
36895
36896         * exp_ch7.adb (Find_Final_List): for a type appearing in a with_type
36897         clause, return the gobal finalization list, for lack of anthing else.
36898
36899 2001-10-11  Ed Schonberg  <schonber@gnat.com>
36900
36901         * exp_ch7.adb (Make_Transient_Block): if statement is within
36902         exception handler, always use new transient scope to place Clean
36903         procedure.
36904
36905 2001-10-11  Pascal Obry  <obry@gnat.com>
36906
36907         * Makefile.in:
36908         (GNAT_ADA_OBJS): add g-crc32.o, a-tags.o, a-stream.o
36909         (GNATBIND_OBJS): add g-crc32.o, a-tags.o, a-stream.o
36910         (GNATLS_RTL_OBJS): add g-crc32.o
36911         (GNATMAKE_RTL_OBJS): add g-crc32.o
36912
36913         * ali-util.adb:
36914         (CRC_Match): new function.
36915         (Get_File_Checksum): renamed Get_File_CRC. Use the GNAT.CRC32 unit
36916         instead of the previous simple checksum algorithm.
36917         (Time_Stamp_Mismatch): use CRC_Match for comparison.
36918         (Set_Source_Table): idem.
36919
36920         * ali-util.ads:
36921         (Get_File_Checksum): renamed Get_File_CRC as now we compute CRC
36922         instead of simple checksum.
36923         (CRC_Match): new function.
36924         (CRC_Error): new constant.
36925
36926         * ali.adb (Scan_ALI): rename variable Chk to CRC as we are handling
36927         a CRC now and not a simple checksum. A CRC uses lower-case hex
36928         letters, fixes ambiguity in parsing.
36929
36930         * ali.ads (Sdep_Record.Checksum): renamed Sdep_Record.CRC as this
36931         is what this variable will store.
36932
36933         * bcheck.adb: Change reference to chechsum in comments by CRC.
36934         (Check_Consistency): Rename Get_File_Checksum to Get_File_CRC.
36935         rename All_Checksum_Match to All_CRC_Match. Change due to API
36936         renaming since now GNAT does not use a simple checksum but a
36937         CRC using GNAT.CRC32.
36938
36939         * gnatls.adb: Rename Checksum to CRC in many places, we use a CRC
36940         now and not anymore a simple checksum.
36941
36942         * lib-load.adb: Use Source_CRC instead of Source_Checksum in many
36943         places.
36944
36945         * lib-writ.adb (Write_ALI): Use Source_CRC instead of Source_Checksum.
36946
36947         * scans.adb:
36948         (Restore_Scan_State): rename Checksum to CRC.
36949         (Save_Scan_State): idem.
36950
36951         * scans.ads:
36952         With GNAT.CRC32.
36953         (Checksum): rename to CRC.
36954         (Saved_Scan_State): Save_Checksum field renamed to Save_CRC
36955
36956         * scn-nlit.adb: Rename many Accumulate_Checksum to Update (from
36957         GNAT.CRC32).  Update copyright notice.
36958
36959         * scn-slit.adb: Rename many Accumulate_Checksum to Update (from
36960         GNAT.CRC32).  Update copyright notice.
36961
36962         * scn.adb:
36963         (Accumulate_Checksum): removed.
36964         (Update): new procedure. Add a wide-character into the CRC.
36965
36966         * sinput-l.adb:
36967         (Complete_Source_File_Entry): use CRC32 instead of simple checksum.
36968         (Load_File): fix initialization of S (change Source_Checksum to
36969         Source_CRC)
36970
36971         * sinput-p.adb (Load_Project_File): rename Source_Checksum to
36972         Source_CRC in S initialization.
36973
36974         * sinput.adb (Source_Checksum): renamed to Source_CRC.
36975
36976         * sinput.ads (Source_Checksum): renamed to Source_CRC.
36977         Update comments for the CRC.
36978
36979         * types.adb (Hex): Use lowercase for the letter part.
36980
36981         * types.ads (Get_Hex_String): Returns the hexadecimal representation
36982         for a word. This is currently used only for CRC. In previous version,
36983         the checksum was using a representation with all letter being
36984         upper-case. With the new implementation (using CRC) we do not remove
36985         the 32th bit of the CRC, so we can have an upper-case starting letter
36986         in the CRC. This is not possible to parse in Scan_ALI (ali.adb).
36987         It is ambigous since the CRC was optional and could be followed by
36988         options like EB, EE. So now this routines uses lower-case letter for
36989         the hexadecimal representation. Strange enough only lower case letters
36990         where checked in Scan_ALI (even if this was not a possible case).
36991
36992         * gnatvsn.ads (Library_Version): changed to 3.15a.
36993
36994         * s-crc32.ads: Initial version from GNAT.CRC32. This is the version
36995         for the compiler.
36996
36997         * s-crc32.adb: Initial version from GNAT.CRC32. This is the version
36998         for the compiler.
36999
37000         * ali-util.adb: Redo previous change to avoid using word CRC everywhere
37001         Add 2001 to copyright notice
37002         (Accumulate_Checksum): Modify to use System.CRC32.
37003
37004         * ali-util.ads: Redo changes of previous revision to continue to use
37005         the word Checksum. Add 2001 to copyright notice.
37006
37007         * ali.adb: Undo some of previous changes, not needed.
37008         Keep the change for lower case letters in the checksum.
37009
37010         * ali.ads: Undo previous change not needed.
37011
37012         * bcheck.adb: Undo most of previous change, not needed.
37013         But do use Checksums_Match for checksum comparison.
37014
37015         * gnatls.adb: Undo most of previous change, not needed.
37016         But do use Checksums_Match for comparing checksums.
37017
37018         * lib-load.adb: Undo previous change, not needed.
37019
37020         * lib-writ.adb: Undo previous change, not needed.
37021
37022         * lib-writ.ads: Document that checksums use lower case,
37023         not upper case letters.
37024
37025         * scans.adb: Undo previous change, not needed
37026
37027         * scans.ads: Undo previous change, not needed.
37028
37029         * scn-nlit.adb: Undo previous changes, not needed.
37030
37031         * scn-slit.adb: Undo previous change, not needed.  Fix header format.
37032
37033         * scn.adb:
37034         (Accumulate_Checksum): Use System.CRC32.
37035         (Initialize_Checksum): New procedure.
37036         Remove other changes of previous revision.
37037
37038         * sinput-p.adb: Undo previous change, not needed.
37039
37040         * sinput.adb: Undo previous change, not needed.
37041
37042         * sinput-l.adb: Undo previous change, not needed.
37043
37044         * sinput.ads: Undo previous change, not needed.  Keep only comment
37045         on new checksum algorithm
37046
37047         * Makefile.in: Add s-crc32 as needed, remove g-crc32.
37048         Also remove a-tags and a-stream from GNAT sources.
37049
37050         * ali.adb (Scan_ALI): fix typo introduce in latest check-in.
37051
37052         * Makefile.in (GNATRTL_NONTASKING_OBJS): Add g-crc32.o.
37053
37054 2001-10-11  Geert Bosch  <bosch@gnat.com>
37055
37056         * einfo.h: Regenerate.
37057
37058         * nmake.ads: Regenerate.
37059
37060         * nmake.adb: Regenerate.
37061
37062         * sinfo.h: Regenerate.
37063
37064         * treeprs.adb: Regenerate.
37065
37066 2001-10-10  Geert Bosch  <bosch@gnat.com>
37067
37068         * gnat-style.texi: New file describing coding guidelines for Ada.
37069
37070 2001-10-10  Ed Schonberg  <schonber@gnat.com>
37071
37072         * einfo.adb (Write_Entity_Flags): Elaboration_Entity_Required
37073         is Flag174.
37074
37075 2001-10-10  Geert Bosch  <bosch@gnat.com>
37076
37077         * snames.ads: Add new names for project facility.
37078
37079         * snames.adb: Update to reflect snames.ads changes.
37080
37081         * snames.h: Update to reflect snames.ads changes.
37082
37083 2001-10-10  Vincent Celier  <celier@gnat.com>
37084
37085         * make.adb:
37086         (Add_Switches): reflect the changes for the switches attributes
37087         Default_Switches indexed by the programming language,
37088         Switches indexed by the file name.
37089         (Collect_Arguments_And_Compile): Idem.
37090         Reflect the attribute name changes.
37091
37092         * prj-attr.adb:
37093         (Initialisation_Data): Change the names of some packages and
37094         attributes.
37095         (Initialize): process case insensitive associative arrays.
37096
37097         * prj-attr.ads:
37098         (Attribute_Kind): Remove Both, add Case_Insensitive_Associative_Array.
37099
37100         * prj-dect.adb:
37101         (Parse_Attribute_Declaration): For case insensitive associative
37102          arrays, set the index string to lower case.
37103
37104         * prj-env.adb:
37105         Reflect the changes of the project attributes.
37106
37107         * prj-nmsc.adb:
37108         Replace Check_Naming_Scheme by Ada_Check and
37109         Language_Independent_Check.
37110
37111         * prj-nmsc.ads:
37112         Replaced Check_Naming_Scheme by 2 procedures:
37113         Ada_Check and Language_Independent_Check.
37114
37115         * prj-proc.adb:
37116         (Process_Declarative_Items): For case-insensitive associative
37117         arrays, set the index string to lower case.
37118         (Recursive_Check): Call Prj.Nmsc.Ada_Check, instead of
37119         Prj.Nmsc.Check_Naming_Scheme.
37120
37121         * prj-tree.adb:
37122         (Case_Insensitive): New function
37123         (Set_Case_Insensitive): New procedure
37124
37125         * prj-tree.ads:
37126         (Case_Insensitive): New function
37127         (Set_Case_Insensitive): New procedure
37128         (Project_Node_Record): New flag Case_Insensitive.
37129
37130         * prj-util.adb:
37131         (Value_Of): new function to get the string value of a single
37132         string variable or attribute.
37133
37134         * prj-util.ads:
37135         (Value_Of): new function to get the string value of a single
37136         string variable or attribute.
37137
37138         * prj.adb:
37139         (Ada_Default_Spec_Suffix): New function
37140         (Ada_Default_Impl_Suffix): New function
37141         Change definitions of several constants to reflect
37142         new components of record types.
37143
37144         * prj.ads:
37145         (Naming_Data): Change several components to reflect new
37146         elements of naming schemes.
37147         (Project_Data): New flags Sources_Present and
37148         Language_Independent_Checked.
37149         (Ada_Default_Spec_Suffix): New function.
37150         (Ada_Default_Impl_Suffix): New function.
37151
37152         * snames.ads:
37153         Modification of predefined names for project manager: added
37154         Implementation, Specification_Exceptions, Implementation_Exceptions,
37155         Specification_Suffix, Implementation_Suffix, Separate_Suffix,
37156         Default_Switches, _Languages, Builder, Cross_Reference,
37157         Finder. Removed Body_Part, Specification_Append, Body_Append,
37158         Separate_Append, Gnatmake, Gnatxref, Gnatfind, Gnatbind,
37159         Gnatlink.
37160
37161         * prj.ads: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
37162         Add comments.
37163
37164         * prj-nmsc.adb (Ada_Check): Test that Separate_Suffix is defaulted,
37165         not that it is Nil_Variable_Value.
37166
37167         * prj.ads: Add ??? for uncommented declarations
37168
37169 2001-10-10  Ed Schonberg  <schonber@gnat.com>
37170
37171         * sem_prag.adb: (Analyze_Pragma, case External): If entity is a
37172         constant, do not indicate possible modification, so that gigi can
37173         treat it as a bona fide constant.
37174
37175 2001-10-10  Robert Dewar  <dewar@gnat.com>
37176
37177         * sem_prag.adb: Add processing for pragma External.
37178
37179         * snames.ads: Add entry for pragma External.
37180
37181         * par-prag.adb: Add pragma External.
37182
37183         * snames.adb: Updated to match snames.ads.
37184
37185 2001-10-10  Ed Schonberg  <schonber@gnat.com>
37186
37187         * exp_ch4.adb (Expand_N_Allocator): Generate meaningful names for
37188         a dynamic task if the allocator appears in an indexed assignment
37189         or selected component assignment.
37190
37191         * exp_util.adb (Build_Task_Array_Image, Build_Task_Record_Image):
37192         For a dynamic task in an assignment statement, use target of
37193         assignment to generate meaningful name.
37194
37195 2001-10-10  Ed Schonberg  <schonber@gnat.com>
37196
37197         * einfo.adb (Write_Field19_Name): Body_Entity is also defined for
37198         a generic package.
37199
37200         * einfo.ads: Body_Entity is also defined for generic package.
37201         Documentation change only
37202
37203         * exp_aggr.adb (Build_Array_Aggr_Code): When expanding an
37204         others_choice for a discriminated component initialization,
37205         convert discriminant references into the corresponding discriminals.
37206
37207         * exp_ch3.adb (Get_Simple_Init_Val): Add qualification to aggregate
37208         only if original type is private and expression has to be wrapped
37209         in a conversion.
37210
37211         * checks.adb:
37212         (Apply_Constraint_Check): Do not perform length check
37213         if expression is an aggregate with only an others_choice.
37214         (Length_N_Cond): two references to the same in_parameter
37215         (typically the discriminal in an init_proc) denote the same value.
37216         Two useful optimization uncovered by bugfixes above.
37217
37218 2001-10-10  Robert Dewar  <dewar@gnat.com>
37219
37220         * xeinfo.adb: Change int to char in translation of enumeration types.
37221         This fixes a problem in the C representation of component alignment.
37222         Add 2001 to copyright notice
37223
37224 2001-10-10  Richard Kenner  <kenner@gnat.com>
37225
37226         * decl.c: (validate_size): Do check size of object of integral type
37227         if it is a packed array type.
37228
37229 2001-10-10  Richard Kenner  <kenner@gnat.com>
37230
37231         * decl.c: (gnat_to_gnu_entity, case object): Also materialize
37232         VAR_DECL for constant if not Is_Public but -O0.
37233
37234 2001-10-10  Richard Kenner  <kenner@gnat.com>
37235
37236         * misc.c (struct lang_hooks): Add new initializer to match GCC change.
37237
37238 2001-10-10  Geert Bosch  <bosch@gnat.com>
37239
37240         * xnmake.adb (XNmake): Fix handling of -s/-b options.  No longer
37241         use '/' as switch character, allowing for absolute file names.
37242
37243 2001-10-09  Joseph S. Myers  <jsm28@cam.ac.uk>
37244
37245         * 4gintnam.ads, Make-lang.in, Makefile.in, config-lang.in: Update
37246         FSF address.
37247
37248 2001-10-08  Geert Bosch  <bosch@gnat.com>
37249
37250         * Makefile.in (treeprs.ads, einfo.h, sinfo.h, nmake.adb, nmake.ads):
37251         Automatically build utilities when files need to be regenerated.
37252
37253 2001-10-08  Geert Bosch  <bosch@gnat.com>
37254
37255         * xsnames.adb: New utility for updating snames.ads and snames.adb
37256
37257 2001-10-08  Zack Weinberg  <zack@codesourcery.com>
37258
37259         * Make-lang.in (ADAFLAGS): Add -W -Wall.
37260         (ADA_FLAGS_TO_PASS): Set ADA_CFLAGS=$(CFLAGS) also.
37261         (gnat1): Also depend on attribs.o.
37262         (gnatlib, gnatlib-shared): Set CC and ADAC in recursive make.
37263         * Makefile.in (X_ADAFLAGS, T_ADAFLAGS): New.
37264         (ADAC): Set to @ADAC@ in stage1, $(CC) later.
37265         (ADAFLAGS): Add -W -Wall.
37266         (ALL_ADAFLAGS, MOST_ADAFLAGS): Add X_ADAFLAGS and T_ADAFLAGS;
37267         take out CFLAGS.
37268
37269         (.adb.o, .ads.o, a-numaux.o, a-teioed.o, s-interr.o,
37270         s-taskin.o, sdefault.o, s-tasdeb.o, s-vaflop.o, a-except.o,
37271         s-assert.o, s-stalib.o, s-memory.o, memtrack.o, mlib-tgt.o):
37272         Use $(ADAC), not $(CC), as compilation command.
37273
37274         (gnattools): Depend directly on tools to build, don't use
37275         recursive make.
37276         (gnatlib): Set ADA_CFLAGS=$(GNATLIBCFLAGS) in recursive make.
37277
37278         * einfo.h, sinfo.h: New files (autogenerated).
37279
37280 2001-10-08  Richard Henderson  <rth@redhat.com>
37281
37282         * comperr.adb (Abort_In_Progress): New.
37283         (Compiler_Abort): Use it to prevent recursion.
37284
37285 2001-10-08  Robert Dewar  <dewar@gnat.com>
37286
37287         * atree.adb: Set Error_Posted in Error node, helps error recovery.
37288
37289         * par-endh.adb (Output_End_Expected): We should also not test
37290         Error_Posted on the Error node, since now it is always set.
37291
37292         * cstand.adb (Create_Standard): Set Etype of Error to Any_Type
37293         to help error recovery. Part of general work on 9407-004.
37294
37295         * par.adb: Add ??? for misuse of error
37296
37297         * sem_res.adb:
37298         (Resolve): Defend against Error, fixes 9407-003.
37299         (Resolve_Discrete_Subtype_Indication): Defend against Error.
37300
37301         * sinfo.ads (N_Error): Now has Etype field (which will be set
37302         to Any_Type to help error recovery).
37303
37304 2001-10-08  Richard Kenner  <kenner@gnat.com>
37305
37306         * misc.c (gnat_expand_expr, case UNCHECKED_CONVERT_EXPR):
37307         Consistently set MEM attributes from expression; fixes
37308         bootstrap failure on x86.
37309
37310 2001-10-08  Geert Bosch  <bosch@gnat.com>
37311
37312         * 5oosinte.adb: Add 2001 to copyright notice.
37313
37314 2001-10-08  Geert Bosch  <bosch@gnat.com>
37315
37316         * ceinfo.adb: Add utility for consistency checking of einfo.ad[bs].
37317
37318         * csinfo.adb: Add utility for consistency checking of sinfo.ad[bs].
37319
37320 2001-10-07  Joseph S. Myers  <jsm28@cam.ac.uk>
37321
37322         * 5oosinte.adb: Fix spelling error of "separate" as "seperate".
37323
37324 2001-10-05  Geert Bosch  <bosch@gnat.com>
37325
37326         * adaint.h: Small formatting fix.
37327
37328 2001-10-04  Geert Bosch  <bosch@gnat.com>
37329
37330         * sysdep.c (__gnat_set_binary_mode, __gnat_set_text_mode):
37331         Arg is int, not FILE *, in dummy version of functions.
37332
37333         * adaint.h (__gnat_set_binary_mode, __gnat_set_text_mode):
37334         Arg is int, not FILE *.
37335
37336 2001-10-04  Geert Bosch  <bosch@gnat.com>
37337
37338         * 3lsoccon.ads: Added file, missed with initial check ins.
37339
37340         * 4lintnam.ads: Fix header format.
37341         Change Linux to GNU/Linux.
37342
37343         * 5iosinte.adb: Change Linux to GNU/Linux.
37344
37345         * 5iosinte.ads: Change Linux to GNU/Linux.
37346
37347         * 5itaprop.adb: Change Linux to GNU/Linux.
37348
37349         * 5itaspri.ads: Change Linux to GNU/Linux.
37350         Update copyright notice.
37351
37352         * 5lintman.adb: Change Linux to GNU/Linux.
37353
37354         * 5lml-tgt.adb: Change Linux to GNU/Linux.
37355
37356         * 5losinte.ads: Change Linux to GNU/Linux.
37357
37358         * 5lsystem.ads: Change Linux to GNU/Linux.
37359
37360         * 5qosinte.adb: Change Linux to GNU/Linux.
37361
37362         * 5qosinte.ads: Change Linux to GNU/Linux.
37363
37364         * 5qparame.ads: Change Linux to GNU/Linux.
37365
37366         * 5qtaprop.adb: Change Linux to GNU/Linux.
37367
37368         * 5qtaspri.ads: Change Linux to GNU/Linux.
37369         Add 2001 to copyright notice.
37370
37371         * 5vintman.ads: Change Linux to GNU/Linux.
37372         Fix header format.  Add 2001 to copyright notice.
37373
37374         * g-soccon.ads: Change Linux to GNU/Linux.
37375
37376         * g-trasym.ads: Change Linux to GNU/Linux.
37377         Add 2001 to copyright notice.
37378
37379         * memtrack.adb: Change Linux to GNU/Linux.
37380
37381         * s-intman.ads: Change Linux to GNU/Linux.
37382         Add 2001 to copyright notice.  Fix header format.
37383
37384         * s-stache.adb: Change Linux to GNU/Linux.
37385
37386         * adaint.c: Change Linux to GNU/Linux.
37387
37388         * cio.c: Change Linux to GNU/Linux.
37389
37390         * cstreams.c: Change Linux to GNU/Linux.
37391
37392         * init.c: Change Linux to GNU/Linux.
37393
37394         * gmem.c: Change Linux to GNU/Linux.
37395
37396         * tracebak.c: Change Linux to GNU/Linux.
37397
37398
37399 2001-10-02  Geert Bosch  <bosch@gnat.com>
37400
37401         * misc.c (insert_default_attributes): Add dummy version.