OSDN Git Service

2006-06-07 Paolo Bonzini <bonzini@gnu.org>
[pf3gnuchains/gcc-fork.git] / gcc / ada / ChangeLog
1 2006-06-06  Laurent GUERBY  <laurent@guerby.net>
2
3         PR ada/27769
4         mlib-utl.adb: Use Program_Name.
5         
6 2006-05-28  Kazu Hirata  <kazu@codesourcery.com>
7
8         * decl.c, env.c, gigi.h, init.c, initialize.c, raise-gcc.c,
9         sem_ch13.adb, sysdep.c, targtyps.c, tb-alvxw.c, tracebak.c,
10         trans.c, utils.c: Fix comment typos.  Follow spelling
11         conventions.
12         * gnat_rm.texi, gnat_ugn.texi, : Fix typos.  Follow spelling
13         conventions.
14
15 2006-05-14  H.J. Lu  <hongjiu.lu@intel.com>
16
17         * Make-lang.in (ada/decl.o): Replace target.h with $(TARGET_H).
18         (ada/misc.o): Likewise.
19         (ada/utils.o): Likewise.
20
21 2006-04-08  Aurelien Jarno  <aurel32@debian.org>
22
23         * Makefile.in: Add Ada support for GNU/kFreeBSD.
24         * s-osinte-kfreebsd-gnu.ads: New file.
25
26 2006-03-29  Carlos O'Donell  <carlos@codesourcery.com>
27
28         * Make-lang.in: Rename docdir to gcc_docdir.
29
30 2006-03-04  Eric Botcazou  <ebotcazou@adacore.com>
31
32         * gigi.h (get_ada_base_type): Delete.
33         * utils2.c (get_ada_base_type): Likewise.
34         * trans.c (convert_with_check): Operate in the real base type.
35
36 2006-03-03  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
37
38         * uintp.adb (Num_Bits): Handle Uint_Int_First specially.
39
40 2006-03-02  Richard Sandiford  <richard@codesourcery.com>
41
42         * utils.c (create_var_decl): Use have_global_bss_p when deciding
43         whether to make the decl common.
44
45 2006-02-20 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
46
47         * Make-lang.in (Ada): Remove
48         (.PHONY): Remove Ada
49
50 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
51
52         * sem_ch4.adb (Find_Boolean_Types): If one of the operands is an
53         aggregate, check the interpretations of the other operand to find one
54         that may be a boolean array.
55
56         (Analyze_Selected_Component): Fix flow-of-control typo in case where
57         the prefix is a private extension.
58
59 2006-02-17  Eric Botcazou  <botcazou@adacore.com>
60
61         PR ada/26315
62
63         * utils2.c (find_common_type): If both input types are BLKmode and
64         have the same constant size, keep using the first one.
65
66         * bindgen.adb: (Gen_Versions_Ada): Revert previous workaround.
67
68         * decl.c (gnat_to_gnu_entity): Only check TREE_OVERFLOW for a constant.
69
70         * misc.c (gnat_handle_option): New case for -Woverlength-strings.
71
72 2006-02-17  Jose Ruiz  <ruiz@adacore.com>
73
74         * s-taprop-irix.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb, 
75         s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb, 
76         s-taprop-posix.adb, s-taprop-vxworks.adb, s-taprop-lynxos.adb, 
77         s-taprop-tru64.adb (Set_False, Set_True, Suspend_Until_True): Add
78         Abort_Defer/Undefer pairs to avoid the possibility of a task being
79         aborted while owning a lock.
80
81 2006-02-17  Javier Miranda  <miranda@adacore.com>
82             Robert Dewar  <dewar@adacore.com>
83
84         * exp_ch4.adb (Expand_N_Allocator): If the allocated object is accessed
85         through an access to class-wide interface we force the displacement of
86         the pointer to the allocated object to reference the corresponding
87         secondary dispatch table.
88         (Expand_N_Op_Divide): Allow 64 bit divisions by small power of 2,
89         if Long_Shifts are supported on the target, even if 64 bit divides
90         are not supported (configurable run time mode).
91         (Expand_N_Type_Conversion): Do validity check if validity checks on
92         operands are enabled.
93         (Expand_N_Qualified_Expression): Do validity check if validity checks
94         on operands are enabled.
95
96 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
97
98         * exp_dbug.adb (Debug_Renaming_Declaration): Indicate that the entity
99         must be materialized when the renamed expression is an explicit
100         dereference.
101
102 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
103
104         * freeze.adb (Statically_Discriminated_Components): Return false if
105         the bounds of the type of the discriminant are not static expressions.
106
107         * sem_aggr.adb (Check_Static_Discriminated_Subtype): Return false if
108         the bounds of the discriminant type are not static.
109
110 2006-02-17  Robert Dewar  <dewar@adacore.com>
111
112         * g-os_lib.adb (Copy_File): Make sure that if From has an Invalid_FD,
113         then we close To if it is valid.
114
115 2006-02-17  Vasiliy Fofanov  <fofanov@adacore.com>
116
117         * init.c (facility_resignal_table): new array
118         (__gnat_default_resignal_p): enhance default predicate to resignal if
119         VMS condition has one of the predefined facility codes.
120
121 2006-02-17  Vasiliy Fofanov  <fofanov@adacore.com>
122
123         * Makefile.in: Use VMS64 specialized versions of several units in
124         Interfaces.C hierarchy to be compatible with HP C default size choices.
125         Use the default version of Ada.Synchronous_Task_Control for VxWorks 653.
126
127 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
128
129         * sem_ch10.adb (Analyze_With_Clause): If the unit is a subprogram
130         instantiation, the corresponding entity is the related_instance of the
131         wrapper package created for the instance.
132
133 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
134
135         * sem_ch12.adb (Analyze_Package_Instantiation): Inline_Now is false if
136         the current instance is nested within another instance in a child unit.
137
138 2006-02-17  Javier Miranda  <miranda@adacore.com>
139             Ed Schonberg  <schonberg@adacore.com>
140
141         * sem_ch3.adb (Build_Discriminated_Subtype): In case of concurrent
142         type we cannot inherit the primitive operations; we inherit the
143         Corresponding_Record_Type (which has the list of primitive operations).
144         (Check_Anonymous_Access_Types): When creating anonymous access types for
145         access components, use Rewrite in order to preserve the tree structure,
146         for ASIS use.
147         (Analyze_Object_Declaration): For limited types with access
148         discriminants with defaults initialized by an aggregate, obtain
149         subtype from aggregate as for other mutable types.
150         (Derived_Type_Declaration): If the derived type is a limited interface,
151         set the corresponding flag (Is_Limited_Record is not sufficient).
152
153 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
154
155         * sem_ch6.adb (Build_Body_To_Inline): Enforce the rule that in order
156         to inline a function that returns an unconstrained type, the return
157         expression must be the first variable declared in the body of the
158         function.
159
160 2006-02-17  Javier Miranda  <miranda@adacore.com>
161
162         * sem_res.adb (Resolve_Type_Conversion): In case of conversion to an
163         abstract interface type, the static analysis is not enough to know if
164         the interface is implemented or not by the source tagged type. Hence
165         we must pass the work to the expander to generate the required code to
166         evaluate the conversion at run-time.
167         (Resolve_Equality_Op): Do not apply previous
168         transformation if expansion is disasbled, to prevent anomalies when
169         locating global references in a generic unit.
170
171 2006-02-17  Vincent Celier  <celier@adacore.com>
172
173         * snames.ads, snames.adb: New standard names for new project attributes:
174         archive_builder, archive_indexer, compiler_pic_option,
175         config_body_file_name, config_body_file_name_pattern,
176         config_file_switches, config_file_unique, config_spec_file_name,
177         config_spec_file_name_pattern, default_builder_switches,
178         default_global_compiler_switches, default_language,
179         dependency_file_kind, global_compiler_switches, include_path,
180         include_path_file, language_kind, linker_executable_option,
181         linker_lib_dir_option, linker_lib_name_option, mapping_file_switches,
182         roots, runtime_project.
183
184 2006-02-17  Matthew Heaney  <heaney@adacore.com>
185
186         * a-convec.ads, a-convec.adb: 
187         (operator "&"): handle potential overflow for large index types
188         (Insert): removed Contraint_Error when using large index types
189         (Insert_Space): removed Constraint_Error for large index types
190         (Length): moved constraint check from Length to Insert
191
192         * a-coinve.ads, a-coinve.adb: Stream attribute procedures are declared
193         as not null access.
194         Explicit raise statements now include an exception message.
195         (operator "&"): handle potential overflow for large index types
196         (Insert): removed Contraint_Error when using large index types
197         (Insert_Space): removed Constraint_Error for large index types
198         (Length): moved constraint check from Length to Insert
199
200 2006-02-17  Robert Dewar  <dewar@adacore.com>
201
202         * s-wchcnv.adb: Document handling of [ on output (we do not change
203         this to ["5B"] and the new comments say why not.
204
205         * gnat_ugn.texi: 
206         Add note for -gnatVo that this now includes the cases of type
207         conversions and qualified expressions.
208         Add comments on handling of brackets encoding for Text_IO
209
210 2006-02-17  Ramon Fernandez  <fernandez@adacore.com>
211             Thomas Quinot  <quinot@adacore.com>
212             Robert Dewar  <dewar@adacore.com>
213             Javier Miranda  <miranda@adacore.com>
214
215         * expander.adb: Fix typo in comment
216
217         * exp_pakd.adb: Fix typo
218         Minor comment reformatting.
219
220         * g-dyntab.adb: Minor reformatting
221
222         * exp_ch6.adb (Register_Interface_DT_Entry): Traverse the list of
223         aliased subprograms to look for the abstract interface subprogram.
224
225 2006-02-16  Eric Botcazou  <ebotcazou@adacore.com>
226
227         * env.c (__gnat_setenv): Use size_t.
228         (__gnat_unsetenv): Likewise.
229         (__gnat_clearenv): Likewise.
230
231 2006-02-16  Arnaud Charlet  <charlet@adacore.com>
232
233         * opt.ads (Ada_Version_Default): Set to Ada 2005 by default.
234
235 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
236
237         * a-intnam-os2.ads, a-intnam-unixware.ads, g-soccon-unixware.ads,
238         g-soliop-unixware.ads, i-os2err.ads, i-os2lib.adb, i-os2lib.ads,
239         i-os2syn.ads, i-os2thr.ads, s-intman-irix-athread.adb,
240         s-osinte-aix-fsu.ads, s-osinte-fsu.adb, s-parame-os2.adb,
241         s-osinte-irix-athread.ads, s-osinte-linux-fsu.ads, s-osinte-os2.adb,
242         s-osinte-os2.ads, s-osinte-solaris-fsu.ads, s-osinte-unixware.adb,
243         s-osinte-unixware.ads, s-osprim-os2.adb, s-taprop-irix-athread.adb,
244         s-taprop-os2.adb, s-tasinf-irix-athread.adb, s-tasinf-irix-athread.ads,
245         s-taspri-os2.ads, system-os2.ads, system-unixware.ads: Removed,
246         no longer used.
247
248 2006-02-13  Jose Ruiz  <ruiz@adacore.com>
249
250         * a-taster.adb (Current_Task_Fallback_Handler): Document why explicit
251         protection against race conditions is not needed.
252         (Set_Dependents_Fallback_Handler): Add mutual exclusive access to the
253         fallback handler.
254         (Set_Specific_Handler): Add mutual exclusive access to the specific
255         handler.
256         (Specific_Handler): Add mutual exclusive access for retrieving the
257         specific handler.
258
259         * s-tarest.adb (Task_Wrapper): Add mutual exclusive access to the fall
260         back handler.
261
262         * s-taskin.ads (Common_ATCB): Remove pragma Atomic for
263         Fall_Back_Handler and Specific_Handler.
264
265         * s-tassta.adb (Task_Wrapper): Add mutual exclusive access to the task
266         termination handlers.
267         Set two different owerflow depending on the maximal stack size.
268
269         * s-solita.adb (Task_Termination_Handler_T): Document why explicit
270         protection against race conditions is not needed when executing the
271         task termination handler.
272
273 2006-02-13  Robert Dewar  <dewar@adacore.com>
274
275         * s-gloloc-mingw.adb, a-cgaaso.ads, a-stzmap.adb, a-stzmap.adb,
276         a-stzmap.ads, a-ztcoio.adb, a-ztedit.adb, a-ztedit.ads, a-ztenau.adb,
277         a-ztenau.ads, a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
278         a-comlin.adb, a-decima.adb, a-decima.ads, a-direio.adb, a-direio.adb,
279         a-direio.adb, a-direio.ads, a-ngcoty.adb, a-ngcoty.ads, a-nuflra.adb,
280         a-nuflra.ads, a-sequio.adb, a-sequio.ads, a-sequio.ads, a-storio.ads,
281         a-stream.ads, a-ststio.adb, a-ststio.adb, a-ststio.ads, a-ststio.ads,
282         a-stwima.adb, a-stwima.adb, a-stwima.ads, a-stwise.adb, a-teioed.adb,
283         a-teioed.ads, a-ticoau.adb, a-ticoau.ads, a-ticoio.adb, a-tasatt.ads,
284         a-tideau.adb, a-tideau.ads, a-tideio.adb, a-tideio.ads, a-tienau.adb,
285         a-tienau.ads, a-tienio.adb, a-tienio.ads, a-tifiio.ads, a-tiflau.adb,
286         a-tiflau.ads, a-tiflio.adb, a-tiflio.adb, a-tiflio.ads, a-tigeau.ads,
287         a-tiinau.adb, a-tiinau.ads, a-tiinio.adb, a-tiinio.ads, a-timoio.adb,
288         a-timoio.ads, a-titest.adb, a-titest.ads, a-wtcoio.adb, a-wtdeau.adb,
289         a-wtdeau.ads, a-wtdeio.adb, a-wtdeio.ads, a-wtedit.adb, a-wtedit.adb,
290         a-wtedit.ads, a-wtenau.adb, a-wtenau.ads, a-wtenau.ads, a-wtenio.adb,
291         a-wtenio.ads, a-wtfiio.adb, a-wtfiio.ads, a-wtflau.adb, a-wtflau.ads,
292         a-wtflio.adb, a-wtflio.adb, a-wtflio.ads, a-wtgeau.ads, a-wtinau.adb,
293         a-wtinau.ads, a-wtinio.adb, a-wtinio.ads, a-wtmoau.adb, a-wtmoau.ads,
294         a-wtmoio.adb, a-wtmoio.ads, xref_lib.adb, xref_lib.ads, xr_tabls.adb,
295         g-boubuf.adb, g-boubuf.ads, g-cgideb.adb, g-io.adb, gnatdll.adb,
296         g-pehage.adb, i-c.ads, g-spitbo.adb, g-spitbo.ads, mdll.adb,
297         mlib-fil.adb, mlib-utl.adb, mlib-utl.ads, prj-env.adb, prj-tree.adb,
298         prj-tree.ads, prj-util.adb, s-arit64.adb, s-asthan.ads, s-auxdec.adb,
299         s-auxdec.ads, s-chepoo.ads, s-direio.adb, s-direio.ads, s-errrep.adb,
300         s-errrep.ads, s-fileio.adb, s-fileio.ads, s-finroo.adb, s-finroo.ads,
301         s-gloloc.adb, s-gloloc.ads, s-io.adb, s-io.ads, s-rpc.adb,
302         s-rpc.ads, s-shasto.ads, s-sequio.adb, s-stopoo.ads, s-stratt.adb,
303         s-stratt.ads, s-taasde.adb, s-taasde.ads, s-tadert.adb, s-sequio.ads,
304         s-taskin.adb, s-tasque.adb, s-tasque.ads, s-wchjis.ads, makegpr.adb,
305         a-coinve.adb, a-cidlli.adb, eval_fat.adb, exp_dist.ads, exp_smem.adb,
306         fmap.adb, g-dyntab.ads, g-expect.adb, lib-xref.ads, osint.adb,
307         par-load.adb, restrict.adb, sinput-c.ads, a-cdlili.adb,
308         system-vms.ads, system-vms-zcx.ads, system-vms_64.ads: Minor
309         reformatting.
310
311 2006-02-13  Hristian Kirtchev  <kirtchev@adacore.com>
312
313         * a-tasatt.adb, s-osinte-lynxos-3.adb, s-osinte-lynxos.adb,
314         s-osinte-aix.adb, s-interr-sigaction.adb, s-asthan-vms-alpha.adb,
315         s-interr-vms.adb, s-intman-vms.adb, s-interr-vxworks.adb,
316         s-intman-vxworks.adb, s-asthan-vms-alpha.adb, a-ztexio.adb,
317         a-reatim.adb, a-taside.adb, a-textio.adb, a-witeio.adb, prj-attr.adb,
318         s-intman-irix.adb, s-intman-solaris.adb, s-intman-posix.adb,
319         a-dynpri.adb, a-interr.adb, g-dynhta.adb, s-asthan.adb, s-interr.adb,
320         s-pooglo.adb, s-pooloc.adb, s-poosiz.adb, s-tasren.adb, s-tasuti.adb,
321         s-tataat.adb, s-tpobop.adb: Remove redundant with clauses.
322
323 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
324
325         * s-osinte-darwin.adb, s-osinte-darwin.ads, s-osinte-vxworks.ads, 
326         s-osinte-solaris.ads, s-osinte-linux.ads, s-osinte-freebsd.ads, 
327         s-osinte-solaris-posix.ads, s-osinte-lynxos-3.ads, s-osinte-lynxos.ads, 
328         s-osinte-tru64.ads, s-osinte-aix.ads, s-osinte-irix.ads, 
329         s-osinte-hpux-dce.ads, s-osinte-linux-hppa.ads, 
330         s-osinte-linux-alpha.ads, s-inmaop-posix.adb (sigset_t_ptr): Removed,
331         replaced by anonymous access type.
332         (pthread_sigmask): Now take an access sigset_t
333
334         * s-osinte-hpux.ads:  Ditto.
335         (pthread_mutex_t, pthread_cond_t): Update definitions to support
336         properly 32 and 64 bit ABIs.
337
338 2006-02-13  Pascal Obry  <obry@adacore.com>
339
340         * s-taprop-posix.adb, s-taprop-vxworks.adb, s-taprop-tru64.adb, 
341         s-taprop-lynxos.adb, s-taprop-irix.adb, s-taprop-hpux-dce.adb, 
342         s-taprop-linux.adb, s-taprop-solaris.adb,
343         s-taprop-vms.adb (Create_Task): Remove task adjustment code. This
344         adjustement is already done when calling this routine.
345
346 2006-02-13  Pascal Obry  <obry@adacore.com>
347
348         * system-mingw.ads (Underlying_Priorities): Update the priority mapping
349         table to take advantage of the 16 priority levels available on Windows
350         2000 and XP. On NT4 there are only 7 priority levels, this is properly
351         supported by this new mapping.
352
353 2006-02-13  Nicolas Setton  <setton@adacore.com>
354
355         * adadecode.h, adadecode.c: (__gnat_decode): Improve support of types.
356         (get_encoding): New subprogram. Extracts the encodings from an encoded
357         Ada name.
358
359 2006-02-13  Pascal Obry  <obry@adacore.com>
360             Nicolas Roche  <roche@adacore.com>
361             Arnaud Charlet  <charlet@adacore.com>
362
363         * adaint.h, adaint.c (DIR_SEPARATOR): Use _T() macro for Unicode
364         support.
365         (__gnat_try_lock): Add unicode support by using a specific section on
366         Windows.
367         (__gnat_get_current_dir): Idem.
368         (__gnat_open_read): Idem.
369         (__gnat_open_rw): Idem.
370         (__gnat_open_create): Idem.
371         (__gnat_create_output_file): Idem.
372         (__gnat_open_append): Idem.
373         (__gnat_open_new): Idem.
374         (__gnat_file_time_name): Idem.
375         (__gnat_set_file_time_name): Idem.
376         (__gnat_stat): Idem.
377         (win32_no_block_spawn): Idem.
378         (__gnat_locate_exec_on_path): Idem.
379         (__gnat_opendir): New routine.
380         (__gnat_closedir): Idem.
381         (__gnat_readdir): Add new parameter length (pointer to int). Update
382         implementation to use it and add specific Win32 code for Unicode
383         support.
384         (__gnat_get_env_value_ptr): Remove. Replaced by __gnat_getenv in env.c
385         (__gnat_set_env_value): Remove. Replaced by __gnat_setenv in env.c
386         (convert_addresses): Do not define this dummy routine on VMS.
387
388         * mingw32.h (GNAT_UNICODE_SUPPORT): New definition, if set the GNAT
389         runtime Unicode support will be activated.
390         (S2WS): String to Wide-String conversion. This version just copy a
391         string in non Unicode version.
392         (WS2S): Wide-String to String conversion. This version just copy a
393         string in non Unicode version.
394
395         * g-dirope.adb: (Close): Now import __gnat_closedir from adaint.c.
396         (Open): Now import __gnat_opendir from adaint.c.
397         (Read): Change the implementation to support unicode characters. It is
398         not possible to use strlen() on Windows as this version supports only
399         standard ASCII characters. So the length of the directory entry is now
400         returned from the imported __gnat_readdir routine.
401         Update copyright notice.
402
403         * s-crtl-vms64.ads, s-crtl.ads: (closedir): Moved to adaint.c.
404         (opendir): Moved to adaint.c.
405
406         * g-os_lib.adb (Copy_Time_Stamp): Fix off-by-one range computation.
407         (Get_Directory): Fix wrong indexing.
408         (Getenv): replace __gnat_get_env_value_ptr from adaint.c by
409         __gnat_getenv from env.c
410         (Setenv): replace __gnat_set_env_value from adaint.c by __gnat_setenv
411         from env.c
412
413         * env.h, env.c: New file.
414
415         * s-scaval.adb (Initialize): Replace __gnat_get_env_value_ptr from
416         adaint.c by __gnat_getenv from env.c
417
418         * s-shasto.adb (Initialize): replace __gnat_get_env_value_ptr from
419         adaint.c by __gnat_getenv from env.c
420
421         * Make-lang.in: Add env.o in the list of C object needed by gnat1
422         and gnatbind.
423         Update dependencies.
424
425 2006-02-13  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
426             Olivier Hainque  <hainque@adacore.com>
427             Eric Botcazou  <ebotcazou@adacore.com>
428
429         * ada-tree.h: (TYPE_UNCHECKED_UNION_P): Deleted.
430         
431         * gigi.h (value_factor_p): Add prototype and description, now public.
432
433         * decl.c (gnat_to_gnu_field): Don't attempt BLKmode to integral type
434         promotion for field with rep clause if the associated size was proven
435         to be in error.
436         Expand comments describing attempts to use a packable type.
437         (gnat_to_gnu_entity) <E_Signed_Integer_Subtype,
438         E_Floating_Point_Subtype>: Inherit alias set of what we are making a
439         subtype of to ensure conflicts amongst all subtypes in a hierarchy,
440         necessary since these are not different types and pointers may
441         actually designate any subtype in this hierarchy.
442         (gnat_to_gnu_entity, case E_Record_Type): Always make fields for
443         discriminants but put them into record only if not Unchecked_Union;
444         pass flag to components_to_record showing Unchecked_Union.
445         (make_dummy_type): Use UNION_TYPE only if Unchecked_Union and no
446         components before variants; don't set TYPE_UNCHECKED_UNION_P.
447         (components_to_record): New argument UNCHECKED_UNION.
448         Remove special case code for Unchecked_Union and instead use main code
449         with small changes.
450
451         PR ada/26096
452         (gnat_to_gnu_entity) <E_Variable>: Do not initialize the
453         aligning variable with the expression being built, only its inner
454         field.
455
456         * trans.c (Handled_Sequence_Of_Statements_to_gnu): Remove call to
457         emit_sequence_entry_statements.
458         (emit_sequence_entry_statements, body_with_handlers_p): Delete.
459         (establish_gnat_vms_condition_handler): Move before
460         Subprogram_Body_to_gnu.
461         (Subprogram_Body_to_gnu): On VMS, establish_gnat_vms_condition_handler
462         for a subprogram if it has a foreign convention or is exported.
463         (Identifier_to_gnu): Manually unshare the DECL_INITIAL tree when it is
464         substituted for a CONST_DECL.
465         (tree_transform, case N_Aggregate): Remove code for UNION_TYPE and pass
466         Etype to assoc_to_constructor.
467         (assoc_to_constructor): New argument, GNAT_ENTITY; use it to ignore
468         discriminants of Unchecked_Union.
469         (TARGET_ABI_OPEN_VMS): Define to 0 if not defined, so that later uses
470         don't need cluttering preprocessor directives.
471         (establish_gnat_vms_condition_handler): New function. Establish the GNAT
472         condition handler as current in the compiled function.
473         (body_with_handlers_p): New function. Tell whether a given sequence of
474         statements node is attached to a package or subprogram body and involves
475         exception handlers possibly nested within inner block statements.
476         (emit_sequence_entry_statements): New function, to emit special
477         statements on entry of sequences when necessary. Establish GNAT
478         condition handler in the proper cases for VMS.
479         (Handled_Sequence_Of_Statements_to_gnu): Start block code with
480         emit_sequence_entry_statements.
481
482         * utils2.c (find_common_type): If both input types are BLKmode and
483         have a constant size, use the smaller one.
484         (build_simple_component_ref): Also match if FIELD and NEW_FIELD are
485         the same.
486
487         * utils.c (value_factor_p): Make public, to allow uses from other gigi
488         units.
489         (create_type_decl): Do not set the flag DECL_IGNORED_P for dummy types.
490         (convert, case UNION_TYPE): Remove special treatment for unchecked
491         unions.
492
493         PR ada/18659
494         (update_pointer_to): Update variants of pointer types to
495         unconstrained arrays by attaching the list of fields of the main
496         variant.
497
498 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
499             Robert Dewar  <dewar@adacore.com>
500
501         * a-exexpr.adb, a-exexpr-gcc.adb
502         (Process_Raise_Exception): Removed, merged with Propagate_Exception.
503         (Propagate_Exception): Now take extra From_Signal_Handler parameter.
504         Remove code unused for exception propagation for the compiler itself
505         from a-except.adb and update to still share separate packages.
506
507         * a-except.ads, a-except.adb: Ditto.
508         Add comments that this version is now used only by the compiler and
509         other basic tools. The full version that includes the Ada 2005 stuff
510         is in separate files a-except-2005.ads/adb. The reason is that we do
511         not want to cause bootstrap problems with compilers not recognizing
512         Wide_Wide_String.
513         Add exception reason code PE_Implicit_Return
514         Add new exception reason code (Null Exception_Id)
515
516         * a-except-2005.adb, a-except-2005.ads: New files.
517
518         * s-wchcon.ads: (Get_WC_Encoding_Method): New function.
519
520         * s-wchcon.adb: New file.
521
522         * Makefile.in (LIBGNAT_SRCS): Add tb-gcc.c.
523         (traceback.o deps): Likewise.
524         (SPARC/Solaris): Accept sparc[64|v9]-sun-solaris.
525         Activate build of GMEM instrumentation library on VMS targets.
526         (gnatlib-sjlj, gnatlib-zcx): Pass EH_MECHANISM to make gnatlib.
527         Use a-except-2005.ads/adb for all run-time library builds unless
528         specified otherwise.
529         [VMS] (LIBGNAT_TARGET_PAIRS_AUX1,2): Rename s-parame-vms.ads to
530         s-parame-vms-alpha.ads and add s-parame-vms-ia64.ads.
531         Use s-parame.adb on all native platforms.
532         Use s-parame-vxworks.adb on all vxworks platforms.
533         Add env.c env.h in LIBGNAT_SRCS
534         Add env.o in LIBGNAT_OBJS
535         (GNATMAKE_OBJS): Remove ctrl_c.o object.
536         (LIBGNAT_TARGET_PAIRS for x86-vxworks): Use an specialized version of
537         s-osinte.adb, s-tpopsp.adb, and system.ads for the run time that
538         supports VxWorks 6 RTPs.
539         (EXTRA_GNATRTL_NONTASKING_OBJS for x86-vxworks): Remove the use of
540         i-vxworks and i-vxwoio from the run time that supports VxWorks 6 RTPs.
541
542         * types.h, types.ads (Terminate_Program): New exception
543         Add comment on modifying multiple versions of a-except.adb when the
544         table of exception reasons is modified.
545         Add exception reason code PE_Implicit_Return
546         Add new exception reason code (Null Exception_Id)
547
548         * clean.adb (Initialize): Get the target parameters before checking
549         if target is OpenVMS. Move the OpenVMS specific code here from package
550         body elaboration code.
551
552 2006-02-13  Thomas Quinot  <quinot@adacore.com>
553             Vincent Celier  <celier@adacore.com>
554             Robert Dewar  <dewar@adacore.com>
555
556         * ali-util.adb (Get_File_Checksum): Update to account for change in
557         profile of Initialize_Scanner.
558
559         * gprep.adb (Gnatprep): Update to account for change in profile of
560         Initialize_Scanner.
561         (Process_One_File): Same.
562
563         * lib.adb (Get_Code_Or_Source_Unit): New subprogram factoring the
564         common code between Get_Code_Unit and Get_Source_Unit. Reimplement
565         that behaviour using the new Unit information recorded in the source
566         files table, rather than going through all units every time.
567         (Get_Code_Unit): Reimplement in terms of Get_Code_Or_Source_Unit.
568         (Get_Source_Unit): Same.
569
570         * prepcomp.adb (Parse_Preprocessing_Data_File): Update to account for
571         change in profile of Initialize_Scanner.
572         (Prepare_To_Preprocess): Same.
573
574         * lib.ads: Fix typo in comment (templace -> template).
575
576         * prj-part.adb (Parse_Single_Project): Update to account for change in
577         profile of Initialize_Scanner.
578
579         * scn.adb (Initialize_Scanner): Account for change in profile of
580         Scng.Initialize_Scanner: set Current_Source_Unit in Scn instead of Scng.
581         Also record the association of the given Source_File_Index to the
582         corresponding Unit_Number_Type.
583
584         * scng.ads, scng.adb (Initialize_Scanner.Set_Reserved): Remove
585         procedure.
586         (Initialize_Scanner): Call Scans.Initialize_Ada_Keywords.
587         Remove Unit formal for generic scanner: this formal
588         is only relevant to Scn (the scanner instance used to parse Ada source
589         files), not to other instances. Update comment accordingly.
590         (Scan): Use new function Snames.Is_Keyword_Name.
591
592         * sinfo-cn.adb: Fix typo in comment.
593
594         * sinput.adb (Unit, Set_Unit): Accessors for new source file attribute
595         Unit.
596
597         * sinput.ads (Source_File_Record): New component Unit, used to capture
598         the unit identifier (if any) associated to a source file.
599
600         * sinput-c.adb, sinput-l.adb (Load_File): Initialize new component
601         Unit in Source_File_Record.
602
603         * sinput-p.adb (Source_File_Is_Subunit): Update to account for change
604         in profile of Initialize_Scanner.
605
606         * scans.adb (Initialize_Ada_Keywords): New procedure
607
608         * scans.ads (Initialize_Ada_Keywords): New procedure to initialize the
609         Ada keywords in the Namet table, without the need to call
610         Initialize_Scanner.
611
612         * snames.adb: Add pragma Ada_2005 (synonym for Ada_05)
613         (Is_Keyword_Name): New function
614
615         * snames.ads: Add subtype Configuration_Pragma_Names
616         Add pragma Ada_2005 (synonym for Ada_05)
617         (Is_Keyword_Name): New function
618
619         * snames.h: Add pragma Ada_2005 (synonym for Ada_05)
620
621 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
622
623         * a-stwisu.adb, a-strsup.adb, a-stzsup.adb (Super_Slice): Fix slice
624         index.
625
626         * a-stwima.adb (To_Set): Add extra check when N = 0.
627
628         * g-regpat.adb: (Match_Simple_Operator): Avoid possible overflow.
629
630 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
631
632         * s-parame-mingw.adb, s-parame-linux.adb,
633         s-parame-solaris.adb: Removed, replaced by s-parame.adb
634
635         * s-parame-vxworks.ads: Fix typo.
636
637         * s-parame-vxworks.adb: New file.
638
639         * s-parame.adb: Version now used by all native platforms.
640         (Default_Stack_Size): Use 2 megs for default stack size and use
641         __gl_default_stack_size when available.
642         (Minimum_Stack_Size): Use 12K.
643
644         * s-taprop-mingw.adb: Set default stack size linker switch to 2megs.
645         (Create_Task): Refine implementation taking advantage of the XP stack
646         size support. On XP, we now create the thread using the flag
647         STACK_SIZE_PARAM_IS_A_RESERVATION.
648
649         * s-osinte-mingw.ads (Stack_Size_Param_Is_A_Reservation): New constant.
650
651         * sysdep.c (__gnat_is_windows_xp): New routine, returns 1 on Windows
652         XP and 0 on older Windows versions.
653
654         * interfac-vms.ads: Removed, no longer used.
655
656 2006-02-13  Matthew Heaney  <heaney@adacore.com>
657
658         * a-rbtgso.adb, a-crbtgo.adb, a-crbtgk.adb, a-coorse.adb, 
659         a-cohama.adb, a-ciorse.adb, a-cihama.adb, a-cihase.adb, 
660         a-cohase.adb: All explicit raise statements now include an exception
661         message.
662
663         * a-ciormu.ads, a-ciormu.adb, a-coormu.ads, a-coormu.adb
664         (Update_Element_Preserving_Key): renamed op to just Update_Element.
665         Explicit raise statements now include an exception message
666
667         * a-cihase.ads, a-cohase.ads: Removed comment.
668
669         * a-stboha.ads, a-stboha.adb, a-stfiha.ads, a-envvar.adb,
670         a-envvar.ads, a-swbwha.ads, a-swbwha.adb, a-swfwha.ads, a-szbzha.ads,
671         a-szbzha.adb, a-szfzha.ads: New files.
672
673 2006-02-13  Matthew Heaney  <heaney@adacore.com>
674
675         * a-cgcaso.adb, a-cgaaso.adb: Implemented using heapsort instead of
676         quicksort.
677
678 2006-02-13  Eric Botcazou  <ebotcazou@adacore.com>
679
680         * lang.opt: Wvariadic-macros: New option.
681         Wold-style-definition: Likewise.
682         Wmissing-format-attribute: Likewise.
683
684         * misc.c (gnat_handle_option): New cases for -Wvariadic-macros,
685         -Wold-style-definition and -Wmissing-format-attribute.
686
687 2006-02-13  Robert Dewar  <dewar@adacore.com>
688
689         * a-ticoio.ads, a-ticoio.adb: Add use clause (moved here from spec)
690
691         * a-coteio.ads, a-lcteio.ads, a-llctio.ads, a-scteio.ads: New files.
692
693 2006-02-13  Nicolas Roche  <roche@adacore.com>
694
695         * a-envvar.adb, a-envvar.ads: New files.
696
697 2006-02-13  Douglas Rupp  <rupp@adacore.com>
698
699         * s-parame-vms.ads: Renamed to s-parame-vms-alpha.ads
700
701         * s-parame-vms-alpha.ads, s-parame-vms-ia64.ads: New files.
702
703 2006-02-13  Pat Rogers  <rogers@adacore.com>
704
705         * a-rttiev.adb, a-rttiev.ads: New files.
706
707 2006-02-13  Hristian Kirtchev  <kirtchev@adacore.com>
708
709         * a-tiboio.adb, a-tiboio.ads, a-wwboio.adb,
710         a-wwboio.ads, a-zzboio.adb, a-zzboio.ads:  New files.
711
712         * impunit.adb, Makefile.rtl: Added new Ada 2005 units.
713
714 2006-02-13  Robert Dewar  <dewar@adacore.com>
715
716         * rtsfind.adb, exp_prag.adb, lib-writ.adb, par-labl.adb, 
717         sem_case.adb: Minor code reorganization (not Present should be No)
718
719 2006-02-13  Geert Bosch  <bosch@adacore.com>
720             Gary Dismukes  <dismukes@adacore.com>
721
722         * a-tifiio.adb (Put_Digits): Test Last against To'First - 1 instead of
723         0, since the lower bound of the actual string may be greater than one.
724
725         PR ada/20753
726
727         (Put): Fix condition to raise Layout_Error when invalid
728         layout is requested.
729
730 2006-02-13  Vincent Celier  <celier@adacore.com>
731
732         * back_end.adb (Scan_Compiler_Arguments): Check if
733         Search_Directory_Present is True and, if it is, add the argument in
734         the source search directory path.
735
736         * switch-c.adb (Scan_Front_End_Switches): Accept switch "-I". Set
737         Search_Directory_Present to True.
738
739 2006-02-13  Joel Brobecker  <brobecke@adacore.com>
740
741         * bindgen.adb (Gen_Main_C): declare the ensure_reference variable as
742         volatile, to tell the compiler to preserve this variable at any level
743         of optimization.
744         (Gen_Versions_Ada): Temporarily work around codegen bug.
745
746 2006-02-13  Vincent Celier  <celier@adacore.com>
747
748         * gnatlink.adb (Process_Binder_File): If -shared is specified, invoke
749         gcc to link with option -shared-libgcc.
750         (Gnatlink): Remove duplicate switches -shared-libgcc
751
752 2006-02-13  Robert Dewar  <dewar@adacore.com>
753
754         * gnatvsn.ads (Current_Year): New constant, used to easily update
755         copyright on all GNAT tools.
756
757         * gnatls.adb, gnatname.adb, vms_conv.adb: Add 2006 to displayed
758         copyright notice.
759
760 2006-02-13  Robert Dewar  <dewar@adacore.com>
761
762         * erroutc.ads, erroutc.adb (Set_Message_Blank): Don't insert space
763         after hyphen (small aesthetic change useful for a range of numbers
764         using ^-^.
765         Suppress range checks for a couple of assignments which otherwise
766         cause validity checks with validity checking turned on.
767
768         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Size):
769         Improvement in error message for object.
770         (Rep_Item_Too_Late): Remove '!' in warning message.
771
772 2006-02-13  Robert Dewar  <dewar@adacore.com>
773             Eric Botcazou  <ebotcazou@adacore.com>
774
775         * err_vars.ads: Suppress range checks for a couple of assignments
776         which otherwise cause validity checks with validity checking turned on.
777         Update comments.
778
779         * errout.adb (Error_Msg_Internal): Do not suppress warning messages.
780         Make message unconditional if it is a warning.
781         (Error_Msg_NEL): Always output warning messages.
782         Suppress range checks for a couple of assignments which otherwise
783         cause validity checks with validity checking turned on.
784
785         * errout.ads (Message Insertion Characters): Document that '!' is
786         implied by '?' in error messages.
787
788         * gnat1drv.adb: (Bad_Body): Remove '!' in warning message.
789         (Gnat1drv): Use a goto to end of main subprogram instead of
790         Exit_Program (E_Success) so that finalization can occur normally.
791
792 2006-02-13  Eric Botcazou  <ebotcazou@adacore.com>
793
794         * s-stchop.adb (Stack_Check): Raise Storage_Error if the argument has
795         wrapped around.
796
797 2006-02-13  Vincent Celier  <celier@adacore.com>
798
799         * a-direct.adb (Duration_To_Time, OS_Time_To_Long_Integer): New
800         Unchecked_Conversion functions.
801         (Modification_Time): Use direct conversion of OS_Time to Calendar time
802         when OpenVMS returns False.
803
804         * a-dirval-mingw.adb, a-dirval-vms.adb, a-dirval.ads,
805         a-dirval.adb (OpenVMS): New Boolean function
806
807 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
808             Thomas Quinot  <quinot@adacore.com>
809
810         * checks.adb (Build_Discriminant_Checks): If the expression being
811         checks is an aggregate retrieve the values of its discriminants to
812         generate the check, rather than creating a temporary and a reference
813         to it.
814         (Apply_Access_Check): Rewritten to handle new Is_Known_Null flag
815         (Install_Null_Excluding_Check): Ditto
816         (Selected_Length_Checks): Build actual subtype for the original Ck_Node,
817         not for the renamed object, so that the actual itype is attached in the
818         proper context.
819
820 2006-02-13  Robert Dewar  <dewar@adacore.com>
821             Vincent Celier  <celier@adacore.com>
822
823         * debug.adb: Eliminate numeric switches for binder/gnatmake
824
825         * switch-m.adb (Normalize_Compiler_Switches): Record numeric debug
826         switches for the compiler.
827         (Scan_Make_Switches): Do not allow numeric debug switches for gnatmake
828         (Scan_Make_Switches): When failing with an illegal switch, output an
829         error message with the full switch.
830         Eliminate numeric switches for binder/gnatmake
831
832         * switch.ads, switch.adb (Bad_Switch): New procedure
833
834         * switch-b.adb (Scan_Binder_Switches): Do not accept combined switches.
835         Remove 0-9 as debug flag character possibilities
836         -d is now controlling the primary stack size when its value is a
837         positive. Also add checks against invalid values, and support for kb,
838         mb. Ditto for -D switch.
839
840 2006-02-13  Robert Dewar  <dewar@adacore.com>
841             Serguei Rybin  <rybin@adacore.com>
842
843         * opt.ads opt.adb: Add Ada_Version_Explicit_Config along with
844         save/restore routines.
845         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
846         were not always properly handled previously.
847         Since we are changing the tree format anyway, also get rid of the
848         junk obsolete Immediate_Errors flag.
849         (Tree_Read): Change the way of reading Tree_Version_String - now we
850         read the version string from the tree even if its length is not the
851         same as the length of the version string computed from Gnatvsn.
852         (Search_Directory_Present): New Boolean flag for the compiler.
853         Define Tree_Version_String as a dynamic string.
854         (Default_Stack_Size): new variable, used to handle switch -d.
855
856         * par-prag.adb: 
857         For pragma Ada_2005, remove stuff about setting Ada_Version_Explicit
858         only for main unit.
859         Add pragma Ada_2005 (synonym for Ada_05)
860         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
861         were not always properly handled previously.
862
863         * directio.ads, ioexcept.ads, sequenio.ads, text_io.ads: Change
864         explicit Ada_95 to Ada_2005.
865
866 2006-02-13  Javier Miranda  <miranda@adacore.com>
867             Robert Dewar  <dewar@adacore.com>
868             Ed Schonberg  <schonberg@adacore.com>
869
870         * einfo.ads, einfo.adb (First_Tag_Component): Protect the frontend
871         against errors in the source program: a private types for which the
872         corresponding full type declaration is missing and pragma CPP_Virtual
873         is used.
874         (Is_Unchecked_Union): Check flag on Implementation_Base_Type.
875         (Is_Known_Null): New flag
876         (Has_Pragma_Pure): New flag
877         (No_Return): Present in all entities, set only for procedures
878         (Is_Limited_Type): A type whose ancestor is an interface is limited if
879         explicitly declared limited.
880         (DT_Offset_To_Top_Func): New attribute that is present in E_Component
881         entities. Only used for component marked Is_Tag. If present it stores
882         the Offset_To_Top function used to provide this value in tagged types
883         whose ancestor has discriminants.
884
885         * exp_ch2.adb: Update status of new Is_Known_Null flag
886
887         * sem_ch7.adb: Maintain status of new Is_Known_Null flag
888
889         * sem_cat.adb (Get_Categorization): Don't treat function as Pure in
890         the categorization sense if Is_Pure was set by pragma Pure_Function.
891
892 2006-02-13  Quentin Ochem  <ochem@adacore.com>
893             Olivier Hainque  <hainque@adacore.com>
894
895         * bindusg.adb: Updated documentation for -d and -D switches.
896
897         * raise.h (__gnat_set_globals): added new parameter for
898         Default_Stack_Size.
899
900         * init.c (__gnat_adjust_context_for_raise) <alpha-vms case>: Implement.
901         (__gnat_handle_vms_condition): Adjust context before raise.
902         (__gnat_install_handler): Restore the global vector setup for GCC
903         versions before 3.4, as the frame based circtuitry is not available
904         in this case.
905         (__gnat_set_globals): added a parameter default_stack_size
906         (__gl_default_stack_size): new variable.
907
908 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
909
910         * exp_aggr.adb (Build_Array_Aggr_Code): Rename variable
911         "Others_Mbox_Present" to "Others_Box_Present" because the mbox concept
912         does not exist in the Ada RM.
913         (Compatible_Int_Bounds): Determine whether two integer range bounds
914         are of equal length and have the same start and end values.
915         (Is_Int_Range_Bounds): Determine whether a node is an integer range.
916         (Build_Record_Aggr_Code): Perform proper sliding of a nested array
917         aggregate when it is part of an object declaration.
918         (Build_Record_Aggr_Code)  If the aggregate ttype is a derived type that
919         constrains discriminants of its parent, add explicitly the discriminant
920         constraints of the ancestor by retrieving them from the
921         stored_constraint of the parent.
922
923 2006-02-13  Robert Dewar  <dewar@adacore.com>
924
925         * exp_attr.adb (Expand_N_Attribute_Reference, case Mechanism_Code): If
926         attribute Mechanism_Code is applied to renamed subprogram, modify
927         prefix to point to base subprogram.
928         Max/Min attributes now violate Restriction No_Implicit_Conditionals
929
930         * sinfo.ads: Document that Mechanism_Code cannot be applied to
931         renamed subprograms so that the front-end must replace the prefix
932         appropriately.
933
934 2006-02-13  Javier Miranda  <miranda@adacore.com>
935             Gary Dismukes  <dismukes@adacore.com>
936
937         * exp_ch3.adb (Component_Needs_Simple_Initialization): Add check for
938         availability of RE_Interface_Tag.
939         (Build_Initialization_Call): Fix wrong access to the discriminant value.
940         (Freeze_Record_Type): Do not generate the tables associated with
941         timed and conditional dispatching calls through synchronized
942         interfaces if compiling under No_Dispatching_Calls restriction.
943         When compiling for Ada 2005, for a nonabstract
944         type with a null extension, call Make_Controlling_Function_Wrappers
945         and insert the wrapper function declarations and bodies (the latter
946         being appended as freeze actions).
947         (Predefined_Primitive_Bodies): Do not generate the bodies of the
948         predefined primitives associated with timed and conditional
949         dispatching calls through synchronized interfaces if we are
950         compiling under No_Dispatching_Calls.
951         (Build_Init_Procedure):  Use RTE_Available to check if a run-time
952         service is available before generating a call.
953         (Make_Controlling_Function_Wrappers): New procedure.
954         (Expand_N_Full_Type_Declaration): Create a class-wide master for
955         access-to-limited-interfaces because they can be used to reference
956         tasks that implement such limited interface.
957         (Build_Offset_To_Top_Functions): Build the tree corresponding to the
958         procedure spec and body of the Offset_To_Top function that is generated
959         when the parent of a type with discriminants has secondary dispatch
960         tables.
961         (Init_Secondary_Tags): Handle the case in which the parent of the type
962         containing secondary dispatch tables has discriminants to generate the
963         correct arguments to call Set_Offset_To_Top.
964         (Build_Record_Init_Proc): Add call to Build_Offset_To_Top_Functions.
965
966         * a-tags.ads, a-tags.adb: (Check_Index): Removed.
967         Add Wide_[Wide_]Expanded_Name.
968         (Get_Predefined_Prim_Op_Address): New subprogram that provides exactly
969         the same functionality of Get_Prim_Op_Address but applied to predefined
970         primitive operations because the pointers to the predefined primitives
971         are now saved in a separate table.
972         (Parent_Size): Modified to get access to the separate table of primitive
973         operations or the parent type.
974         (Set_Predefined_Prim_Op_Address): New subprogram that provides the same
975         functionality of Set_Prim_Op_Address but applied to predefined primitive
976         operations.
977         (Set_Signature): New subprogram used to store the signature of a DT.
978         (Displace): If the Offset_To_Top value is not static then call the
979         function generated by the expander to get such value; otherwise use
980         the value stored in the table of interfaces.
981         (Offset_To_Top): The type of the actual has been changed to Address to
982         give the correct support to tagged types with discriminants. In this
983         case this value is stored just immediately after the tag field.
984         (Set_Offset_To_Top): Two new formals have been added to indicate if the
985         offset_to_top value is static and hence pass this value to the run-time
986         to store it in the table of interfaces, or else if this value is dynamic
987         and then pass to the run-time the address of a function that is
988         generated by the expander to provide this value for each object of the
989         type.
990
991         * rtsfind.ads (Default_Prin_Op_Count): Removed.
992         (Default_Prim_Op_Count): New entity
993         (Get_Predefined_Prim_Op_Address): New entity
994         (Set_Predefined_Prim_Op_Address): New entity
995         (RE_Set_Signature): New entity
996
997 2006-02-13  Thomas Quinot  <quinot@adacore.com>
998             Ed Schonberg  <schonberg@adacore.com>
999
1000         * exp_ch4.adb (Expand_Allocator_Expression): Pass Allocator => True to
1001         Make_Adjust_Call done for a newly-allocated object.
1002
1003         * exp_ch7.ads, exp_ch7.adb (Expand_Cleanup_Actions): If the statements
1004         in a subprogram are wrapped in a cleanup block, indicate that the
1005         subprogram contains an inner block with an exception handler.
1006         (Make_Adjust_Call): New Boolean formal Allocator indicating whether the
1007         Adjust call is for a newly-allocated object. In that case we must not
1008         assume that the finalization list chain pointers are correct (since they
1009         come from a bit-for-bit copy of the original object's pointers) so if
1010         the attach level would otherwise be zero (no change), we set it to 4
1011         instead to cause the pointers to be reset to null.
1012
1013         * s-finimp.adb (Attach_To_Final_List): New attach level: 4, meaning
1014         reset chain pointers to null.
1015
1016 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
1017
1018         * exp_ch5.adb (Expand_Assign_Array): If the right-hand side is a
1019         string, and the context requires a loop for the assignment (e.g.
1020         because the left-hand side is packed), generate a unique name for the
1021         temporary that holds the string, to prevent spurious name clashes.
1022
1023 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
1024             Javier Miranda  <miranda@adacore.com>
1025             Robert Dewar  <dewar@adacore.com>
1026             Gary Dismukes  <dismukes@adacore.com>
1027
1028         * exp_ch6.adb (Expand_Inlined_Call): Handle calls to functions that
1029         return unconstrained arrays.
1030         Update comments.
1031         (Expand_Call):  An indirect call through an access parameter of a
1032         protected operation is not a protected call.
1033         Add circuit to raise CE in Ada 2005 mode following call
1034         to Raise_Exception.
1035         (Register_DT_Entry): Do nothing if
1036         the run-time does not give support to abstract interfaces.
1037         (Freeze_Subprogram): In case of dispatching operations, do not generate
1038         code to register the operation in the dispatch table if the source
1039         is compiled with No_Dispatching_Calls.
1040         (Register_Predefined_DT_Entry): Generate code that calls the new
1041         run-time subprogram Set_Predefined_Prim_Op_Address instead of
1042         Set_Prim_Op_Address.
1043
1044         * sem_ch5.adb (Analyze_Assignment_Statement): Do not apply length checks
1045         on array assignments if the right-hand side is a function call that has
1046         been inlined. Check is performed on the assignment in the block.
1047         (Process_Bounds): If bounds and range are overloaded, apply preference
1048         rule for root operations to disambiguate, and diagnose true ambiguity.
1049         (Analyze_Assignment): Propagate the tag for a class-wide assignment with
1050         a tag-indeterminate right-hand side even when Expander_Active is True.
1051         Needed to ensure that dispatching calls to T'Input are allowed and
1052         get the tag of the target class-wide object.
1053
1054         * sem_ch6.adb (New_Overloaded_Entity): Handle entities that override
1055         an inherited primitive operation that already overrides several
1056         abstract interface primitives. For transitivity, the new entity must
1057         also override all the abstract interface primitives covered by the
1058         inherited overriden primitive.
1059         Emit warning if new entity differs from homograph in same scope only in
1060         that one has an access parameter and the other one has a parameter of
1061         a general access type with the same designated type, at the same
1062         position in the signature.
1063         (Make_Inequality_Operator): Use source locations of parameters and
1064         subtype marks from corresponding equality operator when creating the
1065         tree structure for the implicit declaration of "/=". This does not
1066         change anything in behaviour except that the decoration of the
1067         components of the subtree created for "/=" allows ASIS to get the
1068         string images of the corresponding identifiers.
1069         (Analyze_Return_Statement): Remove '!' in warning message.
1070         (Check_Statement_Sequence): Likewise.
1071         (Analyze_Subprogram_Body): For an access parameter whose designated type
1072         is an incomplete type imported through a limited_with clause, use the
1073         type of the corresponding formal in the body.
1074         (Check_Returns): Implicit return in No_Return procedure now raises
1075         Program_Error with a compile time warning, instead of beging illegal.
1076         (Has_Single_Return):  Function returning unconstrained type cannot be
1077         inlined if expression in unique return statement is not an identifier.
1078         (Build_Body_To_Inline): It is possible to inline a function call that
1079         returns an unconstrained type if all return statements in the function
1080         return the same local variable. Subsidiary procedure Has_Single_Return
1081         verifies that the body conforms to this restriction.
1082
1083         * sem_res.adb (Resolve_Equality_Op): If the operands do not have the
1084         same type, and  one of them is of an anonymous access type, convert
1085         the other operand to it, so that this is a valid binary operation for
1086         gigi.
1087         (Resolve_Type_Conversion): Handle subtypes of protected types and
1088         task types when accessing to the corresponding record type.
1089         (Resolve_Allocator): Add '\' in 2-line warning message.
1090         Remove '!' in warning message.
1091         (Resolve_Call): Add '\' in 2-line warning message.
1092         (Valid_Conversion): Likewise.
1093         (Resolve_Overloaded_Selected_Component): If disambiguation succeeds, the
1094         resulting type may be an access type with an implicit dereference.
1095         Obtain the proper component from the designated type.
1096         (Make_Call_Into_Operator): Handle properly a call to predefined equality
1097         given by an expanded name with prefix Standard, when the operands are
1098         of an anonymous access type.
1099         (Check_Fully_Declared_Prefix): New procedure, subsidiary of Resolve_
1100         Explicit_Dereference and Resolve_Selected_Component, to verify that the
1101         prefix of the expression is not of an incomplete type. Allows full
1102         diagnoses of all semantic errors.
1103         (Resolve_Actuals): If the actual is an allocator whose directly
1104         designated type is a class-wide interface we build an anonymous
1105         access type to use it as the type of the allocator. Later, when
1106         the subprogram call is expanded, if the interface has a secondary
1107         dispatch table the expander will add a type conversion to force
1108         the displacement of the pointer.
1109         (Resolve_Call): If a function that returns an unconstrained type is
1110         marked Inlined_Always and inlined, the call will be inlined and does
1111         not require the creation of a transient scope.
1112         (Check_Direct_Boolean_Op): Removed
1113         (Resolve_Comparison_Op): Remove call to above
1114         (Resolve_Equality_Op): Remove call to above
1115         (Resolve_Logical_Op): Inline above, since this is only call.
1116         (Valid_Conversion): Handle properly conversions between arrays of
1117         convertible anonymous access types.
1118
1119         PR ada/25885
1120
1121         (Set_Literal_String_Subtype): If the lower bound is not static, wrap
1122         the literal in an unchecked conversion, because GCC 4.x needs a static
1123         value for a string bound.
1124
1125 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
1126             Hristian Kirtchev  <kirtchev@adacore.com>
1127
1128         * exp_ch9.adb (Expand_N_Protected_Type_Declaration): When creating the
1129         components of the corresponding record, take into account component
1130         definitions that are access definitions.
1131         (Expand_N_Asynchronous_Select): A delay unit statement rewritten as a
1132         procedure is not considered a dispatching call and will be expanded
1133         properly.
1134
1135 2006-02-13  Javier Miranda  <miranda@adacore.com>
1136
1137         * exp_disp.ads, exp_disp.adb (Expand_Dispatching_Call): If the
1138         controlling argument of the dispatching call is an abstract interface
1139         class-wide type then we use it directly.
1140         Check No_Dispatching_Calls restriction.
1141         (Default_Prim_Op_Position): Remove the code that looks for the last
1142         entity in the list of aliased subprograms. This code was wrong in
1143         case of renamings.
1144         (Fill_DT_Entry): Add assertion to avoid the use of this subprogram
1145         when the source is compiled with the No_Dispatching_Calls restriction.
1146         (Init_Predefined_Interface_Primitives): No need to inherit primitives
1147         if we are compiling with restriction No_Dispatching_Calls.
1148         (Make_Disp_XXX): Addition of assertion to avoid the use of all these
1149         subprograms if we are compiling under No_Dispatching_Calls restriction.
1150         (Make_DT): Generate a dispatch table with a single dummy entry if
1151         we are compiling with the No_Dispatching_Calls restriction. In
1152         addition, in this case we don't generate code that calls to the
1153         following run-time subprograms: Set_Type_Kind, Inherit_DT.
1154         (Make_Select_Specific_Data_Table): Add assertion to avoid the use
1155         of this subprogram if compiling with the No_Dispatching_Calls
1156         restriction.
1157         (Expand_Type_Conversion): Instead of using the actual parameter,
1158         the argument passed as parameter to the conversion function was
1159         erroneously referenced by the expander.
1160         (Ada_Actions): Addition of Get_Predefined_Prim_Op_Address,
1161         Set_Predefined_Primitive_Op_Address and Set_Signature.
1162         (Expand_Dispatching_Call): Generate call to
1163         Get_Predefined_Prim_Op_Address for predefined primitives.
1164         (Fill_DT_Entry): Generate call to Set_Predefined_Prim_Op_Address for
1165         predefined primitives.
1166         (Make_DT, Make_Secondary_DT): If the tagged type has no user defined
1167         primitives we reserve one dummy entry to ensure that the tag does not
1168         point to some memory that is associated with some other object. In
1169         addition, remove all the old code that generated the assignments
1170         associated with the signature of the dispatch table and replace them
1171         by a call to the new subprogram Set_Signature.
1172         (Set_All_DT_Position): Change the algorithm because now we have a
1173         separate dispatch table associated with predefined primitive operations.
1174         (Expand_Interface_Conversion): In case of non-static offset_to_top
1175         add explicit dereference to get access to the object after the call
1176         to displace the pointer to the object.
1177         (Expand_Interface_Thunk): Modify the generation of the actual used
1178         in the calls to the run-time function Offset_To_Top to fulfil its
1179         new interface.
1180         (Make_DT): Add the new actuals required to call Set_Offset_To_Top.
1181
1182 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
1183
1184         * exp_dist.adb (Copy_Specification): For access parameters, copy
1185         Null_Exclusion flag, which will have been set for stream subprograms
1186         in Ada2005 mode.
1187
1188 2006-02-13  Pascal Obry  <obry@adacore.com>
1189
1190         * expect.c (__gnat_expect_portable_execvp): New implementation. The
1191         previous implementation was using the C runtime spawnve routine but
1192         the corresponding wait was using directly the Win32 API. This was
1193         causing some times a lock when waiting for an event using
1194         WaitForSingleObject in __gnat_waitpid. This new implementation uses
1195         the Win32 CreateProcess routine. Avoiding mixing C runtime and Win32
1196         API fixes this problem.
1197
1198 2006-02-13  Robert Dewar  <dewar@adacore.com>
1199
1200         * exp_intr.adb (Expand_Unc_Deallocation): Correct error of bad analyze
1201         call.
1202
1203 2006-02-13  Thomas Quinot  <quinot@adacore.com>
1204
1205         * exp_pakd.ads: Fix typos in comments.
1206
1207         * exp_pakd.adb (Convert_To_PAT_Type): For the case of a bit packed
1208         array reference that is an explicit dereference, mark the converted
1209         (packed) array reference as analyzed to prevent a forthcoming
1210         reanalysis from resetting its type to the original (non-packed) array
1211         type.
1212
1213 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
1214             Javier Miranda  <miranda@adacore.com>
1215             Eric Botcazou  <ebotcazou@adacore.com>
1216
1217         * exp_util.ads, exp_util.adb (Find_Prim_Op,
1218         Is_Predefined_Primitive_Operation): When
1219         searching for the predefined equality operator, verify that operands
1220         have the same type.
1221         (Is_Predefined_Dispatching_Operation): Remove the code that looks
1222         for the last entity in the list of aliased subprograms. This code
1223         was wrong in case of renamings.
1224         (Set_Renamed_Subprogram): New procedure
1225         (Remove_Side_Effects): Replace calls to Etype (Exp) with use of the
1226         Exp_Type constant computed when entering this subprogram.
1227         (Known_Null): New function
1228         (OK_To_Do_Constant_Replacement): New function
1229         (Known_Non_Null): Check scope before believing Is_Known_Non_Null flag
1230         (Side_Effect_Free): An attribute reference 'Input is not free of
1231         side effect, unlike other attributes that are functions. (from code
1232         reading).
1233         (Remove_Side_Effects): Expressions that involve packed arrays or records
1234         are copied at the point of reference, and therefore must be marked as
1235         renamings of objects.
1236         (Is_Predefined_Dispatching_Operation): Return false if the operation is
1237         not a dispatching operation.
1238
1239         PR ada/18819
1240         (Remove_Side_Effects): Lift enclosing type conversion nodes for
1241         elementary types in all cases.
1242
1243 2006-02-13  Javier Miranda  <miranda@adacore.com>
1244
1245         * freeze.adb (Freeze_Entity): Handle subtypes of protected types and
1246         task types when accessing to the corresponding record type.
1247         Remove '!' in warning message.
1248
1249 2006-02-13  Olivier Hainque  <hainque@adacore.com>
1250
1251         * g-altive.ads (VECTOR_ALIGNMENT): Set to Min (16, Max_Alignment),
1252         to avoid useless and space inefficient overalignments on targets where
1253         Max_Alignment is larger than 16.
1254
1255 2006-02-13  Pascal Obry  <obry@adacore.com>
1256
1257         * g-catiio.adb (Sec_Number): New type used to compute the number of
1258         seconds since 1-1-1970.
1259         (Image) [Natural]: The parameter was an Integer, as we can't deal with
1260         negative numbers (years, months...) it is better to have a Natural here.
1261         Code clean-up.
1262         (Image) [Number]: Change parameter from Long_Integer to Number.
1263         (Image): Use Number type to compute the seconds since 1-1-1970 to fix an
1264         overflow for dates past year 2038.
1265
1266 2006-02-13  Matthew Heaney  <heaney@adacore.com>
1267
1268         *  g-dyntab.adb (Index_Of): conversion from Natural can no longer raise
1269         Constraint_Error.
1270
1271 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
1272
1273         * gnatbind.adb (Scan_Bind_Arg): Replace error by warning on -M and
1274         native platforms.
1275         (Gnatbind): Do not call Exit_Program (E_Success) at the end, so that
1276         finalization can occur normally.
1277
1278 2006-02-13  Vincent Celier  <celier@adacore.com>
1279
1280         * gnatcmd.adb (Rules_Switches): New table
1281         (Add_To_Rules_Switches): New procedure
1282         (GNATCmd): For command CHECK, put all options following "-rules" in the
1283         Rules_Switches table. Append these -rules switches after the -cargs
1284         switches.
1285
1286 2006-02-13  Robert Dewar  <dewar@adacore.com>
1287
1288         * g-spipat.adb (Image, case PC_Assign_Imm and case PC_Assign_OnM):
1289         These two cases were generating incorrect output, and if this unit
1290         was built with checks on, generated a discriminant mismatch constraint
1291         error.
1292
1293 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
1294             Robert Dewar  <dewar@adacore.com>
1295
1296         * lib-xref.adb (Get_Type_Reference): For a private type whose full
1297         view is an array type, indicate the component type as well, for
1298         navigation purposes.
1299         (Generate_Reference): Don't consider array ref on LHS to be a case
1300         of violating pragma Unreferenced.
1301         Do not give Ada 2005 warning except on real reference.
1302
1303 2006-02-13  Vincent Celier  <celier@adacore.com>
1304
1305         * make.adb (Collect_Arguments_And_Compile): For VMS, when compiling the
1306         main source, add switch -mdebug-main=_ada_ so that the executable can
1307         be debugged by the standard VMS debugger.
1308         (Gnatmake): Set No_Main_Subprogram to True when there is no main
1309         subprogram, to avoid issuing -mdebug-main=_ada_ for VMS uselessly.
1310         Exit the Multi_Main_Loop when Unique_Compile is True after compilation
1311         of the last source, as the binding and linking phases are never
1312         performed.
1313         Set all executable obsolete when rebuilding a library.
1314
1315         * makeutl.adb (Linker_Options_Switches): Do not process empty linker
1316         options.
1317
1318 2006-02-13  Javier Miranda  <miranda@adacore.com>
1319
1320         PR ada/23973
1321
1322         * par-ch3.adb (P_Derived_Type_Def_Or_Private_Ext_Decl): Reorganize the
1323         code to improve the error message reported when the program has
1324         declarations of abstract interface types and it is not compiled with
1325         the -gnat05 switch.
1326         (P_Access_Definition): Reorganize the code to improve the error
1327         message reported when the new Ada 2005 syntax for anonymous
1328         access types is used and the program is not compiled with the
1329         -gnat05 switch.
1330
1331 2006-02-13  Robert Dewar  <dewar@adacore.com>
1332
1333         * par-ch6.adb, style.ads, styleg.adb, styleg.ads, stylesw.adb,
1334         stylesw.ads, usage.adb, vms_data.ads: Implement -gnatyI switch
1335         (MODE_IN)
1336
1337 2006-02-13  Javier Miranda  <miranda@adacore.com>
1338
1339         * par-endh.adb (Explicit_Start_Label): Add code to protect the parser
1340         against source containing syntax errors.
1341
1342 2006-02-13  Vincent Celier  <celier@adacore.com>
1343
1344         * prj.adb (Reset): Initialize the first element of table Namings with
1345         the standard naming data.
1346
1347 2006-02-13  Vincent Celier  <celier@adacore.com>
1348
1349         * prj.ads (Error_Warning): New enumeration type
1350
1351         * prj-nmsc.ads, prj-nmsc.adb (Error_Msg): If location parameter is
1352         unknown, use the location of the project to report the error.
1353         (When_No_Sources): New global variable
1354         (Report_No_Ada_Sources): New procedure
1355         (Check): New parameter When_No_Sources. Set value of global variable
1356         When_No_Sources,
1357         (Find_Sources): Call Report_No_Ada_Sources when appropriate
1358         (Get_Sources_From_File): Ditto
1359         (Warn_If_Not_Sources): Better warning messages indicating the unit name
1360         and the file name.
1361
1362         * prj-pars.ads, prj-pars.adb (Parse): New parameter When_No_Sources.
1363         Call Prj.Proc.Process with parameter When_No_Sources.
1364
1365         * prj-proc.ads, prj-proc.adb (Check): New parameter When_No_Sources.
1366         Call Recursive_Check with parameter When_No_Sources.
1367         (Recursive_Check): New parameter When_No_Sources. Call itself and
1368         Prj.Nmsc.Check with parameter When_No_Sources.
1369         (Process): New parameter When_No_Sources. Call Check with parameter
1370         When_No_Sources.
1371         (Copy_Package_Declarations): New procedure to copy renamed parameters
1372         and setting the location of the declared attributes to the location
1373         of the renamed package.
1374         (Process_Declarative_Items): Call Copy_Package_Declarations for renamed
1375         packages.
1376
1377 2006-02-13  Vincent Celier  <celier@adacore.com>
1378
1379         * prj-makr.adb (Make): Preserve the comments from the original project
1380         file.
1381         When removing nodes (attributes Source_Dirs, Source_Files,
1382         Source_List_File and package Naming), save the comments and attach the
1383         saved comments to the newly created nodes.
1384         Do not add a with clause for the naming package if one already exists.
1385
1386 2006-02-13  Javier Miranda  <miranda@adacore.com>
1387             Gary Dismukes  <dismukes@adacore.com>
1388             Robert Dewar  <dewar@adacore.com>
1389
1390         * restrict.ads (No_Dispatching_Calls): New GNAT restriction.
1391
1392         * sem_disp.adb (Override_Dispatching_Operation): Traverse the list of
1393         aliased entities to look for the overriden abstract interface
1394         subprogram.
1395         (Is_Interface_Subprogram): Complete documentation.
1396         (Check_Dispatching_Operation): Do not generate code to register the
1397         operation in the dispatch table if the source is compiled with
1398         restriction No_Dispatching_Calls.
1399         (Override_Dispatching_Operation): Check for illegal attempt to override
1400         No_Return procedure with procedure that is not No_Return
1401         (Check_Dispatching_Call): Suppress the check for an abstract operation
1402         when the original node of an actual is a tag-indeterminate attribute
1403         call, since the attribute, which must be 'Input, can never be abstract.
1404         (Is_Tag_Indeterminate): Handle checking of tag indeterminacy of a
1405         call to the Input attribute (even when rewritten).
1406         (Propagate_Tag): Augment comment to indicate the possibility of a call
1407         to an Input attribute.
1408
1409         * sem_disp.ads (Override_Dispatching_Operation): Moved to spec to allow
1410         calling it from Exp_Ch3.Make_Controlling_Function_Wrappers.
1411
1412         * s-rident.ads: (No_Dispatching_Calls): New GNAT restriction.
1413         No_Wide_Characters is no longer partition-wide
1414         No_Implementation_Attributes/Pragmas are now Ada 2005 (AI-257)
1415         rather than GNAT
1416
1417 2006-02-13  Douglas Rupp  <rupp@adacore.com>
1418
1419         * s-auxdec-vms_64.ads (Short_Address): Wrap it in a type.
1420
1421 2006-02-13  Javier Miranda  <miranda@adacore.com>
1422
1423         * sem_aggr.adb (Resolve_Record_Aggregate): Restructure the code that
1424         handles default-initialized components to keep separate the management
1425         of this feature but also avoid the unrequired resolution and
1426         expansion of components that do not have partially initialized
1427         values.
1428         (Collect_Aggr_Bounds): Add '\' in 2-line warning message.
1429         (Check_Bounds): Likewise.
1430         (Check_Length): Likewise.
1431
1432 2006-02-13  Javier Miranda  <miranda@adacore.com>
1433             Ed Schonberg  <schonberg@adacore.com>
1434
1435         * sem_attr.adb (Analyze_Attribute): In case of 'Class applied to an
1436         abstract interface type call analyze_and_resolve to expand the type
1437         conversion into the corresponding displacement of the
1438         reference to the base of the object.
1439         (Eval_Attribute, case Width): For systems where IEEE extended precision
1440         is supported, the maximum exponent occupies 4 decimal digits.
1441         (Accessibility_Message): Add '\' in 2-line warning message.
1442         (Resolve_Attribute): Likewise.
1443         (case Attribute_Access): Significantly revise checks
1444         for illegal access-to-subprogram Access attributes to properly enforce
1445         the rules of 3.10.2(32/2).
1446         Diagnose use of current instance with an illegal attribute.
1447
1448         * sem_util.ads, sem_util.adb (Enclosing_Generic_Body): Change formal
1449         to a Node_Id.
1450         (Enclosing_Generic_Unit): New function to return a node's innermost
1451         enclosing generic declaration node.
1452         (Compile_Time_Constraint_Error): Remove '!' in warning messages.
1453         (Type_Access_Level): The accessibility level of anonymous acccess types
1454         associated with discriminants is that of the current instance of the
1455         type, and that's deeper than the type itself (AARM 3.10.2 (12.3.21)).
1456         (Compile_Time_Constraint_Error): Handle case of conditional expression.
1457         (Kill_Current_Values_For_Entity): New function
1458         (Enter_Name): Change formal type to Entity_Id
1459
1460 2006-02-13  Hristian Kirtchev  <kirtchev@adacore.com>
1461             Ed Schonberg  <schonberg@adacore.com>
1462             Gary Dismukes  <dismukes@adacore.com>
1463
1464         * sem_ch10.adb (Check_Redundant_Withs): New procedure in
1465         Analyze_Compilation_Unit.
1466         Detect and warn on redundant with clauses detected in a package spec
1467         and/or body when -gnatwr is used.
1468         (Analyze_Context): Analyze config pragmas before other items
1469         (Install_Context_Items): Don't analyze config pragmas here
1470         (Install_Limited_Withed_Unit): Set limited entity of package in
1471         with_clause so that cross-reference information or warning messages on
1472         unused packages can be properly generated
1473         (Is_Visible_Through_Renamings): Return false if the limited_with_clause
1474         has Error_Posted set. Prevent infinite loops in illegal programs.
1475         (Check_Private_Child_Unit): Move test for a nonprivate with clause down
1476         to the point of the error test requiring the current unit to be private.
1477         This ensures that private with clauses are not exempted from the basic
1478         checking for being a descendant of the same library unit parent as a
1479         withed private descendant unit.
1480         (Check_Private_Limited_Withed_Unit): Revise the checking algorithm to
1481         handle private with clauses properly, as well as to account for cases
1482         where the withed unit is a public descendant of a private ancestor
1483         (in which case the current unit must be a descendant of the private
1484         ancestor's parent). The spec comments were updated accordingly. Also,
1485         the old error message in this subprogram was replaced with error
1486         messages that mirror the errors tested and reported by
1487         Check_Private_Child_Unit.
1488         Parameter and variable names improved for readability.
1489         (Install_Limited_Context_Clauses): Remove test for a withed unit being
1490         private as the precondition for calling
1491         Check_Private_Limited_Withed_Unit since that subprogram has been
1492         revised to test public units as well as private units.
1493
1494 2006-02-13  Thomas Quinot  <quinot@adacore.com>
1495             Robert Dewar  <dewar@adacore.com>
1496             Ed Schonberg  <schonberg@adacore.com>
1497             Javier Miranda  <miranda@adacore.com>
1498
1499         * sem_ch12.adb (Inline_Instance_Body): Remove erroneous assumption
1500         that Scope_Stack.First = 1.
1501         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
1502         were not always properly handled previously.
1503         (Formal_Entity): Complete rewrite, to handle properly some complex case
1504         with multiple levels of parametrization by formal packages.
1505         (Analyze_Formal_Derived_Type): Propagate Ada 2005 "limited" indicator
1506         to the corresponding derived type declaration for proper semantics.
1507
1508         * sem_prag.adb (Analyze_Pragma): Remove '!' in warning message.
1509         (Check_Component): Enforce restriction on components of
1510         unchecked_unions: a component in a variant cannot contain tasks or
1511         controlled types.
1512         (Unchecked_Union): Allow nested variants and multiple discriminants, to
1513         conform to AI-216.
1514         Add pragma Ada_2005 (synonym for Ada_05)
1515         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
1516         were not always properly handled previously.
1517         Document that pragma Propagate_Exceptions has no effect
1518         (Analyze_Pragma, case Pure): Set new flag Has_Pragma_Pure
1519         (Set_Convention_From_Pragma): Check that if a convention is
1520         specified for a dispatching operation, then it must be
1521         consistent with the existing convention for the operation.
1522         (CPP_Class): Because of the C++ ABI compatibility, the programmer is no
1523         longer required to specify an vtable-ptr component in the record. For
1524         compatibility reasons we leave the support for the previous definition.
1525         (Analyze_Pragma, case No_Return): Allow multiple arguments
1526
1527         * sem_ch3.ads, sem_ch3.adb (Check_Abstract_Overriding): Flag a
1528         non-overrideen inherited operation with a controlling result as
1529         illegal only its implicit declaration comes from the derived type
1530         declaration of its result's type.
1531         (Check_Possible_Deferred_Completion): Relocate the object definition
1532         node of the subtype indication of a deferred constant completion rather
1533         than directly analyzing it. The analysis of the generated subtype will
1534         correctly decorate the GNAT tree.
1535         (Record_Type_Declaration): Check whether this is a declaration for a
1536         limited derived record before analyzing components.
1537         (Analyze_Component_Declaration): Diagnose record types  not explicitly
1538         declared limited when a component has a limited type.
1539         (Build_Derived_Record_Type): Code reorganization to check if some of
1540         the inherited subprograms of a tagged type cover interface primitives.
1541         This check was missing in case of a full-type associated with a private
1542         type declaration.
1543         (Constant_Redeclaration): Check that the subtypes of the partial and the
1544         full view of a constrained deferred constant statically match.
1545         (Mentions_T): A reference to the current type in an anonymous access
1546         component declaration  must be an entity name.
1547         (Make_Incomplete_Type_Declaration): If type is tagged, set type of
1548         class_wide type to refer to full type, not to the incomplete one.
1549         (Add_Interface_Tag_Components): Do nothing if RE_Interface_Tag is not
1550         available. Required to give support to the certified run-time.
1551         (Analyze_Component_Declaration): In case of anonymous access components
1552         perform missing checks for AARM 3.9.2(9) and 3.10.2 (12.2).
1553         (Process_Discriminants): For an access discriminant, use the
1554         discriminant specification as the associated_node_for_itype, to
1555         simplify accessibility checks.
1556
1557 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
1558             Javier Miranda  <miranda@adacore.com>
1559
1560         * sem_ch4.adb (Remove_Abstract_Interpretations): Even if there are no
1561         abstract interpretations on an operator, remove interpretations that
1562         yield Address or a type derived from it, if one of the operands is an
1563         integer literal.
1564         (Try_Object_Operation.Try_Primitive_Operation,
1565         Try_Object_Operation.Try_Class_Wide_Operation): Set proper source
1566         location when creating the new reference to a primitive or class-wide
1567         operation as a part of rewriting a subprogram call.
1568         (Try_Primitive_Operations): If context requires a function, collect all
1569         interpretations after the first match, because there may be primitive
1570         operations of the same type with the same profile and different return
1571         types. From code reading.
1572         (Try_Primitive_Operation): Use the node kind to choose the proper
1573         operation when a function and a procedure have the same parameter
1574         profile.
1575         (Complete_Object_Operation): If formal is an access parameter and prefix
1576         is an object, rewrite as an Access reference, to match signature of
1577         primitive operation.
1578         (Find_Equality_Type, Find_One_Interp): Handle properly equality given
1579         by an expanded name with prefix Standard, when the operands are of an
1580         anonymous access type.
1581         (Remove_Abstract_Operations): If the operation is abstract because it is
1582         inherited by a user-defined type derived from Address, remove it as
1583         well from the set of candidate interpretations of an overloaded node.
1584         (Analyze_Membership_Op): Membership test not applicable to cpp-class
1585         types.
1586
1587 2006-02-13  Bob Duff  <duff@adacore.com>
1588
1589         * sem_ch8.adb (Note_Redundant_Use): Suppress unhelpful warning about
1590         redundant use clauses.
1591         In particular, if the scope of two use clauses overlaps, but one is not
1592         entirely included in the other, we should not warn.  This can happen
1593         with nested packages.
1594         (Analyze_Subprogram_Renaming): Protect the compiler against previously
1595         reported errors. The bug was reported when the compiler was built
1596         with assertions enabled.
1597         (Find_Type): If the node is a 'Class reference and the prefix is a
1598         synchronized type without a corresponding record, return the type
1599         itself.
1600
1601 2006-02-13  Javier Miranda  <miranda@adacore.com>
1602
1603         * sem_ch9.adb (Analyze_Protected_Type, Analyze_Task_Type): Check that
1604         if this is the full-declaration associated with a private declaration
1605         that implement interfaces, then the private type declaration must be
1606         limited.
1607         (Analyze_Single_Protected, Analyze_Single_Task): Do not mark the object
1608         as aliased. The use of the 'access attribute is not available for such
1609         object (for this purpose the object should be explicitly marked as
1610         aliased, but being an anonymous type this is not possible).
1611
1612 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
1613             Robert Dewar  <dewar@adacore.com>
1614
1615         * sem_elab.adb (Same_Elaboration_Scope): A package that is a
1616         compilation unit is an elaboration scope.
1617         (Add_Task_Proc): Add '\' in 2-line warning message.
1618         (Activate_All_Desirable): Deal with case of unit with'ed by parent
1619
1620 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
1621             Javier Miranda  <miranda@adacore.com>
1622
1623         * sem_type.adb (Write_Overloads): Improve display of candidate
1624         interpretations.
1625         (Add_One_Interp): Do not add to the list of interpretations aliased
1626         entities corresponding with an abstract interface type that is an
1627         immediate ancestor of a tagged type; otherwise we have a dummy
1628         conflict between this entity and the aliased entity.
1629         (Disambiguate): The predefined equality on universal_access is not
1630         usable if there is a user-defined equality with the proper signature,
1631         declared in the same declarative part as the designated type.
1632         (Find_Unique_Type): The universal_access equality operator defined under
1633         AI-230 does not cover pool specific access types.
1634         (Covers): If one of the types is a generic actual subtype, check whether
1635         it matches the partial view of the other type.
1636
1637 2006-02-13  Thomas Quinot  <quinot@adacore.com>
1638
1639         * sinput-d.adb (Write_Line): Update the Source_Index_Table after each
1640         line. This is necessary to allow In_Extended_Main_Unit to provide
1641         correct results for itypes while writing out expanded source.
1642         (Close_File): No need to update the source_index_table here since it's
1643         now done for each line.
1644
1645 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
1646             Robert Dewar  <dewar@adacore.com>
1647
1648         * sprint.adb (Write_Itype): Preserve Sloc of declaration, if any, to
1649         preserve the source unit where the itype is declared, and prevent a
1650         backend abort.
1651         (Note_Implicit_Run_Time_Call): New procedure
1652         (Write_Itype): Handle missing cases (E_Class_Wide_Type and
1653         E_Subprogram_Type)
1654
1655         * sprint.ads: Document use of $ for implicit run time routine call
1656
1657 2006-02-13  Quentin Ochem  <ochem@adacore.com>
1658
1659         * s-stausa.adb (Initialize_Analyzer): fixed error in assignment of
1660         task name.
1661
1662 2006-02-13  Bob Duff  <duff@adacore.com>
1663
1664         * s-valint.adb (Scan_Integer): Call Scan_Raw_Unsigned instead of
1665         Scan_Unsigned, so we do not scan leading blanks and sign twice.
1666         Integer'Value("- 5") and Integer'Value("-+5") now correctly
1667         raise Constraint_Error.
1668
1669         * s-vallli.adb (Scan_Long_Long_Integer): Call
1670         Scan_Raw_Long_Long_Unsigned instead of Scan_Long_Long_Unsigned, so we
1671         do not scan leading blanks and sign twice.
1672         Integer'Value("- 5") and Integer'Value("-+5") now correctly
1673         raise Constraint_Error.
1674
1675         * s-valllu.ads, s-valllu.adb (Scan_Raw_Long_Long_Unsigned,
1676         Scan_Long_Long_Unsigned): Split out most of the processing from
1677         Scan_Long_Long_Unsigned out into
1678         Scan_Raw_Long_Long_Unsigned, so that Val_LLI can call the Raw_ version.
1679         This prevents scanning leading blanks and sign twice.
1680         Also fixed a bug: Modular'Value("-0") should raise Constraint_Error
1681         See RM-3.5(44).
1682
1683         * s-valuns.ads, s-valuns.adb (Scan_Raw_Unsigned, Scan_Unsigned): Split
1684         out most of the processing from Scan_Unsigned out into
1685         Scan_Raw_Unsigned, so that Val_LLI can call the Raw_ version.
1686         This prevents scanning leading blanks and sign twice.
1687
1688         * s-valuti.ads, s-valuti.adb (Scan_Plus_Sign): Add Scan_Plus_Sign, for
1689         use with Modular'Value attribute.
1690         (Scan_Plus_Sign): Add Scan_Plus_Sign, for use with Modular'Value
1691         attribute.
1692
1693 2006-02-13  Robert Dewar  <dewar@adacore.com>
1694
1695         * s-wchjis.adb (JIS_To_EUC): Raise Constraint_Error for invalid value
1696
1697 2006-02-13  Eric Botcazou  <ebotcazou@adacore.com>
1698
1699         * tracebak.c (PPC AIX/Darwin): Define FORCE_CALL to 1.
1700         (PPC VxWorks): Likewise.
1701         (Generic unwinder): Define FORCE_CALL to 0 if not already defined.
1702         (forced_callee): Make non-inlinable and non-pure.
1703         (__gnat_backtrace): Call forced_callee if FORCE_CALL is set to 1.
1704
1705 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
1706             Ben Brosgol  <brosgol@adacore.com>
1707             Robert Dewar  <dewar@adacore.com>
1708
1709         * gnat_rm.texi, gnat_ugn.texi: Remove limitations with sparc m64
1710         support.
1711         Document that gnatbind -M option is for cross environments only.
1712         Added description of using gnatmem to trace gnat rtl allocs and deallocs
1713         Add note on use of $ to label implicit run time calls
1714         Add documentation for -gnatyI (check mode IN)
1715         Updated chapter on compatibility with HP Ada
1716         VMS-oriented edits.
1717         Ran spell and corrected errors
1718         Add documentation for gnatbind -d and rework documentation of -D
1719         at the same time.
1720         Add subprogram/data elimination section.
1721         Minor editing of annex A.
1722         Add section for gnatcheck.
1723         Add documentation for restriction No_Dispatching_Calls
1724         Add documentation for pragma Ada_2005
1725         Remove mention of obsolete pragma Propagate_Exceptions
1726         Document that pragma Unreferenced can appear after DO in ACCEPT
1727         Clarify Pure_Function for library level units
1728         Mention Max/Min in connection with No_Implicit_Conditionals
1729         No_Wide_Characters restriction is no longer partition-wide
1730         Add a nice example for Universal_Literal_String attribute
1731         Document that pragma No_Return can take multiple arguments
1732
1733         * ug_words: Added entry for gnatcheck
1734
1735         * g-ctrl_c.ads (Install_Handler): Enhance comments
1736
1737         * g-os_lib.ads: Add comments to OS_Exit that it is abrupt termination
1738
1739         * g-trasym.ads: Add documentation on how to do off line symbolic
1740         traceback computation.
1741
1742         * s-fatgen.adb: Add comments for Unaligned_Valid
1743
1744         * stand.ads: Fix typo in comment
1745
1746 2006-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1747
1748         * Make-lang.in (check-gnat): Run run_acats with $(SHELL).
1749
1750 2006-02-06  Roger Sayle  <roger@eyesopen.com>
1751
1752         * decl.c (gnat_substitute_in_type): Don't handle CHAR_TYPE.
1753
1754 2006-02-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1755
1756         PR target/25926
1757         * initialize.c (__gnat_initialize): Provide HP-UX 10 host and target
1758         implementation that calls __main.
1759
1760 2006-01-25  Peter O'Gorman  <peter@pogma.com>
1761
1762         PR bootstrap/25859
1763         * Makefile.in (GCC_LINK): Remove quotes.
1764         (tools targets): Link with either $(GNATLINK) --GCC="$(GCC_LINK)"
1765         or $(GCC_LINK).
1766
1767         (powerpc-darwin): Pass -shared-libgcc when building shared library.
1768
1769 2006-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1770
1771         PR ada/24533
1772         * s-osinte-linux-hppa.ads: Reduce alignment of atomic_lock_t to 8.
1773
1774 2005-12-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1775
1776         * s-osinte-linux-hppa.ads: Correct alignment of atomic_lock_t.
1777
1778 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
1779
1780         * Makefile.in: Remove dummy setting of GCC_FOR_TARGET, no longer
1781         needed.
1782
1783 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
1784
1785         * Make-lang.in: Update dependencies
1786
1787 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
1788
1789         * Make-lang.in: Add rule for ada/exp_sel.o
1790
1791 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
1792
1793         * Makefile.in (mingw section): Remove EH_MECHANISM setting.
1794
1795 2005-12-09  Arnaud Charlet  <charlet@adacore.com>
1796
1797         * gnatvsn.ads (Library_Version): Bump to version 4.2
1798         (ASIS_Version_Number): Bumped.
1799
1800 2005-12-09  Doug Rupp  <rupp@adacore.com>
1801
1802         * mlib-tgt-vms-ia64.adb, mlib-tgt-vms-alpha.adb (Is_Interface): Change
1803         Ada bind file prefix on VMS from b$ to b__.
1804         (Build_Dynamic_Library): Change Init file suffix on VMS from $init to
1805         __init.
1806
1807         * prj-nmsc.adb: Change some Hostparm.OpenVMS checks to
1808         Targparm.OpenVMS_On_Target.
1809         (Object_Suffix): Initialize with target object suffix.
1810         (Get_Unit): Change Ada bind file prefix on VMS from b$ to b__.
1811
1812         * butil.adb: Change some Hostparm.OpenVMS checks to
1813         Targparm.OpenVMS_On_Target.
1814
1815         * clean.adb: Change some Hostparm.OpenVMS checks to
1816         Targparm.OpenVMS_On_Target.
1817         (Object_Suffix): Initialize with call to Get_Target_Object_Suffix.
1818         ({declaraction},Delete_Binder_Generated_Files,{initialization}): Change
1819         Ada bind file prefix on VMS from b$ to b__.
1820
1821         * gnatlink.adb (Process_Args): Call Add_Src_Search_Dir for -I in
1822         --GCC so that Get_Target_Parameters can find system.ads.
1823         (Gnatlink): Call Get_Target_Parameters in mainline.
1824         Initialize standard packages for Targparm.
1825         Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target.
1826         (Process_Args): Also Check for object files with target object
1827         extension.
1828         (Make_Binder_File_Names): Create with target object extension.
1829         (Make_Binder_File_Names): Change Ada bind file prefix on VMS from b$
1830         to b__.
1831
1832         * mlib-prj.adb: Change some Hostparm.OpenVMS checks to
1833         Targparm.OpenVMS_On_Target.
1834         ({declaration},Build_Library,Check_Library): Change Ada bind file
1835         prefix on VMS from b$ to b__.
1836
1837         * osint-b.adb: Change some Hostparm.OpenVMS checks to
1838         Targparm.OpenVMS_On_Target.
1839         (Create_Binder_Output): Change Ada bind file prefix on VMS from b$ to
1840         b__.
1841
1842         * targext.c: New file.
1843
1844         * Makefile.in: add support for vxworks653 builds
1845         (../../vxaddr2line): gnatlink with targext.o.
1846         (TOOLS_LIBS): Move targext.o to precede libgnat.
1847         (init.o, initialize.o): Minor clean up in dependencies.
1848         (GNATLINK_OBJS): Add targparm.o, snames.o
1849         Add rules fo building targext.o and linking it explicitly with all
1850         tools.
1851         Also add targext.o to gnatlib.
1852
1853         * Make-lang.in: Add rules for building targext.o and linking it in
1854         with gnat1 and gnatbind.
1855         Add entry for exp_sel.o.
1856
1857         * osint.adb Change some Hostparm.OpenVMS checks to
1858         Targparm.OpenVMS_On_Target.
1859         (Object_File_Name): Use target object suffix.
1860
1861         * osint.ads (Object_Suffix): Remove, no longer used.
1862         (Target_Object_Suffix): Initialize with target object suffix.
1863
1864         * rident.ads: Add special exception to license.
1865
1866         * targparm.adb (Get_Target_Parameters): Set the value of
1867         Multi_Unit_Index_Character after OpenVMS_On_Target gets its definitive
1868         value.
1869         (Get_Target_Parameters): Set OpenVMS_On_Target if openvms.
1870         
1871         * targparm.ads: Add special exception to license.
1872
1873         * g-os_lib.ads, g-os_lib.adb (Get_Target_Debuggable_Suffix): New
1874         function.
1875         (Copy_File): Make sure from file is closed if error on to file
1876         (Get_Target_Executable_Suffix, Get_Target_Object_Suffix): New functions.
1877
1878         * make.adb (Object_Suffix): Intialize with Get_Target_Object_Suffix.
1879         (Executable_Suffix): Intialize with Get_Target_Executable_Suffix.
1880
1881         * osint-c.adb (Set_Output_Object_File_Name): Initialize extension with
1882         target object suffix.
1883
1884 2005-12-09  Jose Ruiz  <ruiz@adacore.com>
1885             Quentin Ochem  <ochem@adacore.com>
1886             Florian Villoing  <villoing@adacore.com>
1887
1888         * a-taster.ads, a-taster.adb: New files.
1889
1890         * a-elchha.adb (Last_Chance_Handler): Change the task termination soft
1891         link to the version that does nothing. This way the task termination
1892         routine is not executed twice for the environment task when finishing
1893         because of an unhandled exception.
1894
1895         * a-exextr.adb (Notify_Unhandled_Exception): Call the task termination
1896         handler because of an unhandled exception.
1897
1898         * a-taside.adb (Abort_Tasks): Call the Abort_Tasks procedure from
1899         System.Tasking.Utilities instead of that in System.Tasking.Stages.
1900
1901         * s-finimp.adb (initialization code): Modify the soft link for the
1902         finalization of the global list instead of Adafinal.
1903
1904         * s-soflin.ads, s-soflin.adb (Task_Termination_NT): Add this
1905         non-tasking version of the soft link for task termination. We do
1906         nothing since if we are using the non-tasking version it
1907         means that the task termination functionality is not used.
1908         (Null_Finalize_Global_List): Add this null version for the procedure
1909         in charge of finalizing the global list for controlled objects.
1910         (Null_Adafinal): Remove this procedure. Adafinal_NT has been created
1911         instead for handling run-time termination in a more flexible way.
1912         (Adafinal_NT): This new procedure will take care of finalizing the
1913         global list for controlled objects if needed, but no tasking
1914         finalization.
1915
1916         * s-tarest.adb (Task_Lock): Do not try to lock again the
1917         Global_Task_Lock if we already own it. Otherwise, we get blocked in
1918         some run-time operations.
1919         (Task_Unlock): Do not try to actually unlock the Global_Task_Lock
1920         until all nested locks have been released.
1921         (Task_Wrapper): Call the fall-back task termination handler. It
1922         applies to all tasks but the environment task.
1923         (Finalize_Global_Tasks): Add the call for the task termination
1924         procedure for the environment task.
1925         (Task_Wrapper): suppress warnings around declaration of
1926         Secondary_Stack_Address.
1927
1928         * s-tasini.adb (Final_Task_Unlock): Global_Task_Lock_Nesting has been
1929         moved to the Common_ATCB record.
1930         (Task_Lock): Global_Task_Lock_Nesting has been moved to the
1931         Common_ATCB record.
1932         (Task_Unlock): Global_Task_Lock_Nesting has been moved to the
1933         Common_ATCB record.
1934
1935         * s-taskin.adb (Initialize_ATCB): Initialize Global_Task_Lock_Nesting,
1936         Fall_Back_Handler, and Specific_Handler.
1937
1938         * s-taskin.ads (Cause_Of_Termination): Redefine this type here, already
1939         defined in Ada.Task_Termination, to avoid circular dependencies.
1940         (Termination_Handler): Redefine this type here, alredy defined in
1941         Ada.Task_Termination, for avoiding circular dependencies.
1942         (Common_ATCB): Add the Fall_Back_Handler and Specific_Handler required
1943         for storing task termination handlers. In addition,
1944         Global_Task_Lock_Nesting has been moved from Ada_Task_Control_Block to
1945         Common_ATCB because it is used by both the regular and the restricted
1946         run times.
1947         (Ada_Task_Control_Block): Move Global_Task_Lock_Nesting from here to
1948         Common_ATCB because it is used by both the regular and the restricted
1949         run times.
1950         (Common_ATCB): Added a dynamic task analyzer field.
1951
1952         * s-tassta.adb (Abort_Tasks): Move the code in charge of checking
1953         potentially blocking operations to System.Tasking.Utilities.Abort_Tasks.
1954         (Task_Wrapper): Call the task termination handler. It applies to all
1955         tasks but the environment task.
1956         (Finalize_Global_Tasks): Call the task termination procedure for the
1957         environment task. The call to Finalize_Global_List is now performed
1958         using the soft links mechanism.
1959         (Task_Wrapper): added dynamic stack analysis.
1960
1961         * s-tasuti.adb (Abort_Tasks): The code in charge of checking
1962         potentially blocking operations has been moved from
1963         System.Tasking.Stages.Abort_Tasks to this procedure. There can be
1964         direct calls to System.Tasking.Utilities.Abort_Tasks that do not pass
1965         through System.Tasking.Stages.Abort_Tasks, and we do not want to miss
1966         this run-time check.
1967
1968         * s-solita.adb (Task_Termination_Handler_T): Add this task-safe version
1969         of task termination procedure.
1970         (Init_Tasking_Soft_Links): Install the task-safe version of the soft
1971         link for the task termination procedure.
1972
1973         * bindusg.adb: (Bindusg): Added documentation for -u option.
1974
1975         * bindgen.adb (Get_Main_Ada) Added handling of dynamic stack analysis.
1976         (Get_Main_C): Add handling of dynamic stack analysis.
1977         (Gen_Output_File_C): Add external functions for dynamic stack analysis.
1978
1979         * Makefile.rtl: Add entry for a-taster (Ada.Task_Termination).
1980         (GNATRTL_NONTASKING_OBJS) Added entries for dynamic stack analysis
1981         (GNATRTL_NONTASKING_OBJS): Add AltiVec files.
1982
1983         * opt.ads: Added flags used by dynamic stack measurement.
1984         (Max_Line_Length): Remove (not used anymore)
1985
1986         * s-io.ads, s-io.adb (Standard_Error): new subprogram
1987         (Standart_Output): new subprogram
1988         (Set_Output): new subprogram
1989         (Put): now uses the value of Current_Out to know if the output has to be
1990         send to stderr or stdout.
1991         
1992         * s-stausa.ads: Complete implementation.
1993
1994         * switch-b.adb: Added handling of -u switch for dynamic stack analysis.
1995         
1996         * impunit.adb (Non_Imp_File_Names_05): Add Ada.Task_Termination to the
1997         list of Ada 05 files.
1998         (GNAT Library Units): Add AltiVec files.
1999
2000         * g-allein.ads, g-alleve.adb, g-alleve.ads, g-altcon.adb,
2001         g-altcon.ads, g-altive.ads, g-alveop.adb, g-alveop.ads
2002         g-alvety.ads, g-alvevi.ads: New files providing altivec API.
2003
2004 2005-12-09  Nicolas Setton  <setton@adacore.com>
2005
2006         * adaint.c (__gnat_locate_regular_file): Return immediately if
2007         file_name is empty.
2008
2009 2005-12-09  Javier Miranda  <miranda@adacore.com>
2010             Hristian Kirtchev  <kirtchev@adacore.com>
2011
2012         * a-tags.ads, a-tags.adb (Offset_To_Top): Moved from the package body
2013         to the specification because the frontend generates code that uses this
2014         subprogram.
2015         (Set_Interface_Table): Add missing assertion.
2016         Update documentation describing the run-time structure.
2017         (Displace): New subprogram that displaces the pointer to the object
2018         to reference one of its secondary dispatch tables.
2019         (IW_Membership): Modified to use the new table of interfaces.
2020         (Inherit_TSD): Modified to use the new table of interfaces.
2021         (Register_Interface_Tag): Use the additional formal to fill the
2022         contents of the new table of interfaces.
2023         (Set_Interface_Table): New subprogram that stores in the TSD the
2024         pointer to the table of interfaces.
2025         (Set_Offset_To_Top): Use the additional formal to save copy of
2026         the offset value in the table of interfaces.
2027         Update structure of GNAT Primary and Secondary dispatch table diagram.
2028         Add comment section on GNAT dispatch table prologue.
2029         (Offset_To_Signature): Update the constant value of the Signature field.
2030         (Dispatch_Table): Update comment on hidden fields in the prologue.
2031         (Get_Entry_Index, Get_Prim_Op_Kind, Get_Offset_Index, OSD,
2032         Set_Entry_Index, Set_Offset_Index, Set_Prim_Op_Kind, SSD, TSD): Change
2033         the type of formal parameter T to Tag, introduce additional assertions.
2034         (Get_Num_Prim_Ops, Set_Num_Prim_Ops): Remove an unnecessary type
2035         conversion.
2036         (Get_Tagged_Kind, Set_Tagged_Kind): New bodies.
2037
2038         * exp_ch6.adb (Register_Interface_DT_Entry): Remove the Thunk_Id actual
2039         in all the calls to Expand_Interface_Thunk. Instead of referencing the
2040         record component containing the tag of the secondary dispatch table we
2041         have to use the Offset_To_Top run-time function to get this information;
2042         otherwise if the pointer to the base of the object has been displace
2043         we get a wrong value if we use the 'position attribute.
2044
2045         * exp_disp.adb (Expand_Interface_Thunk): Remove the Thunk_Id actual in
2046         all the calls to Expand_Interface_Thunk.
2047         (Make_Secondary_DT): Secondary dispatch tables do not have a table of
2048         interfaces; hence the call to Set_Interface_Table was clearly wrong.
2049         (Collect_All_Interfaces): Modify the internal subprogram Collect to
2050         ensure that the interfaces implemented by the ancestors are placed
2051         at the header of the generated list.
2052         (Expand_Interface_Conversion): Handle the case in which the displacement
2053         associated with the interface conversion is not statically known. In
2054         this case we generate a call to the new run-time subprogram Displace.
2055         (Make_DT): Generate and fill the new table of interfaces.
2056         (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Add entries for
2057         Get_Tagged_Kind and Set_Tagged_Kind.
2058         (Tagged_Kind): New function that determines the tagged kind of a type
2059         with respect to limitedness and concurrency and returns a reference to
2060         RE_Tagged_Kind.
2061         (Make_Disp_Asynchronous_Select_Body, Make_Disp_Conditional_Select_Body,
2062         Make_Disp_Timed_Select_Body): Correctly retrieve the pointer to the
2063         primary dispatch table for a type.
2064         (Make_DT, Make_Secondary_DT): Set the tagged kind in the primary and
2065         secondary dispatch table respectively of a tagged type.
2066
2067         * exp_disp.ads (Expand_Interface_Thunk): Remove Thunk_Id formal.
2068         (Expand_Interface_Conversion): New subprogram to indicate if the
2069         displacement of the type conversion is statically known.
2070         (DT_Access_Action): Add values Get_Tagged_Kind and Set_Tagged_Kind.
2071
2072         * rtsfind.ads (RE_Offset_To_Top): New entity
2073         (RTU_Id): Add Ada_Task_Termination to the list so that it is made
2074         accessible to users.
2075         (Re_Displace): New entity
2076         (RE_Interface_Data): New entity
2077         (RE_Set_Interface_Data): New_Entity
2078         (RE_Id, RE_Unit_Table): Add entry for RE_Get_Tagged_Kind,
2079         Set_Tagged_Kind, RE_Tagged_Kind, RE_TK_Abstract_Limited_Tagged,
2080         RE_TK_Abstract_Tagged, RE_TK_Limited_Tagged, RE_TK_Protected,
2081         RE_TK_Tagged, RE_TK_Task.
2082
2083         * exp_ch3.adb (Init_Secondary_Tags): Modify the subprogram
2084         Init_Secondary_Tags_Internal to allow its use with interface types and
2085         also to generate the code for the new additional actual required
2086         by Set_Offset_To_Top.
2087         (Build_Init_Statements): In case of components associated with abstract
2088         interface types there is no need to generate a call to its IP.
2089         (Freeze_Record_Type): Generate Select Specific Data tables only for
2090         concurrent types.
2091         (Make_Predefined_Primitive_Specs, Predefined_Primitive_Bodies): Generate
2092         the bodies and specifications of the predefined primitive operations
2093         dealing with dispatching selects and abort, 'Callable, 'Terminated only
2094         for concurrent types.
2095
2096         * exp_sel.ads, exp_sel.adb: New files.
2097
2098         * exp_ch9.adb (Build_Protected_Entry, Expand_N_Protected_Body,
2099         Expand_N_Protected_Type_Declaration, Make_Initialize_Protection): Handle
2100         properly protected objects and attach handler in the case of the
2101         restricted profile.
2102         Move embeded package Select_Expansion_Utilities into a separate external
2103         package.
2104         (Expand_N_Asynchronous_Select, Expand_N_Conditional_Select,
2105         Expand_N_Timed_Entry_Call): Correct calls external package Exp_Sel.
2106         (Build_K, Build_S_Assignment): New subprograms, part of the select
2107         expansion utilities.
2108         (Expand_N_Asynchronous_Select, Expand_N_Conditional_Entry_Call,
2109         Expand_N_Timed_Entry_Call): Optimize expansion of select statements
2110         where the trigger is a dispatching procedure of a limited tagged type.
2111
2112 2005-12-09  Olivier Hainque  <hainque@adacore.com>
2113
2114         * decl.c (gnat_to_gnu_entity, renaming object case): Don't early expand
2115         pointer initialization values. Make a SAVE_EXPR instead. Add comments
2116         about the use and expansion of SAVE_EXPRs in the various possible
2117         renaming handling cases.
2118         (components_to_record, compare_field_bitpos): Sort by DECL_UID, not by
2119         abusing DECL_FCONTEXT.
2120
2121 2005-12-09  Matthew Heaney  <heaney@adacore.com>
2122
2123         * a-convec.adb (Merge): Added assertions to check whether vector params
2124         are sorted.
2125
2126         * a-coinve.adb (Merge): Added assertions to check whether vector params
2127         are sorted.
2128
2129         * a-cohama.ads (Cursor'Write): raises Program_Error per latest AI-302
2130         draft.
2131         (Cursor'Read): raises PE
2132
2133         * a-cohama.adb (Insert.New_Node): Uses box-style syntax to init elem
2134         to its default value.
2135
2136         * a-cihama.adb: Manually check whether cursor's key and elem are
2137         non-null
2138
2139         * a-cidlli.ads, a-cidlli.adb (Splice): Changed param name and param mode
2140         (Merge): Assert that target and source lists are in order
2141         (Swap): Declare non-const temporaries, to pass to Splice
2142
2143         * a-cdlili.ads: (Splice): Changed param name and param mode
2144
2145         * a-cdlili.adb: (Splice): Changed param name and param mode
2146         (Merge): Assert that target and source lists are in order
2147         (Swap): Declare non-const temporaries, to pass to Splice
2148
2149         * a-ciorma.ads, a-coorma.ads: (Read): declare Stream param as not null
2150         (Write): declare Stream param as not null
2151
2152         * a-ciorma.adb, a-coorma.adb: All explicit raise statements now include
2153         an exception message.
2154
2155 2005-12-09  Thomas Quinot  <quinot@adacore.com>
2156             Robert Dewar  <dewar@adacore.com>
2157
2158         * hostparm.ads (Max_Line_Length): Set to Types.Column_Number'Last - 1,
2159         which is the absolute maximum length we can support.
2160
2161         * frontend.adb: For the processing of configuration pragma files,
2162         remove references to Opt.Max_Line_Length, which is not checked anymore.
2163
2164         * namet.ads (Name_Buffer): Adjust size to reflect increase on max line
2165         length.
2166
2167         * scn.adb, scng.adb: 
2168         Always check line length against the absolute supported maximum,
2169         Hostparm.Max_Line_Length.
2170
2171         * stylesw.adb (Set_Style_Check_Options, case M): The maximum supported
2172         value for the maximum line length is Max_Line_Length (not
2173         Column_Number'Last).
2174         Minor error msg update
2175         (Set_Style_Check_Options): New interface returning error msg
2176         Minor code reorganization (processing for 'M' was out of alpha order)
2177
2178         * switch-c.adb: New interface for Set_Style_Check_Options
2179
2180         * stylesw.ads (Set_Style_Check_Options): New interface returning error
2181         msg.
2182
2183 2005-12-09  Javier Miranda  <miranda@adacore.com>
2184
2185         * exp_aggr.adb (Build_Record_Aggr_Code): Default-initialialized records
2186         with IP subprogram were only supported if there were limited types.
2187
2188         * sem_aggr.adb (Resolve_Record_Aggregate): Default-initialialized
2189         records with IP subprogram were only supported if there were limited
2190         types.
2191
2192 2005-12-09  Olivier Hainque  <hainque@adacore.com>
2193             Eric Botcazou  <ebotcazou@adacore.com>
2194
2195         * trans.c (tree_transform, emit_check): Adjust calls to
2196         build_call_raise, passing the now expected GNAT_NODE argument.
2197
2198         * gigi.h (build_call_raise): Add a GNAT_NODE argument to convey better
2199         source line information than what the current global locus indicates
2200         when appropriate.
2201
2202         * utils2.c (build_simple_component_ref): Return 0 if the offset of the
2203         field has overflowed.
2204         (build_call_raise): Add a GNAT_NODE argument to convey better source
2205         line information than what the current global locus indicates when
2206         appropriate.
2207         (build_component_ref): Adjust call to build_call_raise.
2208
2209 2005-12-09  Pascal Obry  <obry@adacore.com>
2210
2211         * g-diopit.adb (Find): Fix test to exit the iterator and make sure that
2212         the iterator is quitting iteration on parent directory.
2213
2214 2005-12-09  Javier Miranda  <miranda@adacore.com>
2215
2216         * exp_ch5.adb (Expand_N_Assignment_Statement): In case of tagged types
2217         and the assignment to a class-wide object, before the assignment we
2218         generate a run-time check to ensure that the tag of the Target is
2219         covered by the tag of the source.
2220
2221 2005-12-09  Robert Dewar  <dewar@adacore.com>
2222
2223         * exp_imgv.adb (Expand_Image_Attribute): Generate extra boolean
2224         parameter in call to Image_Wide_Character.
2225
2226         * s-imgwch.ads, s-imgwch.adb (Image_Wide_Character): Add boolean
2227         parameter Ada_2005 to deal with annoying FFFE/FFFF inconsistency.
2228         (Image_Wide_Character): Add boolean parameter Ada_2005 to deal with
2229         annoying FFFE/FFFF inconsistency.
2230
2231 2005-12-09  Robert Dewar  <dewar@adacore.com>
2232             Javier Miranda  <miranda@adacore.com>
2233             Ed Schonberg  <schonberg@adacore.com>
2234
2235         * exp_util.ads, exp_util.adb (Is_Ref_To_Bit_Packed_Slice): Handle case
2236         of type conversion.
2237         (Find_Interface): New subprogram that given a tagged type and one of its
2238         component associated with the secondary table of an abstract interface
2239         type, return the entity associated with such abstract interface type.
2240         (Make_Subtype_From_Expr): If type has unknown discriminants, always use
2241         base type to create anonymous subtype, because entity may be a locally
2242         declared subtype or generic actual.
2243         (Find_Interface): New subprogram that given a tagged type and one of its
2244         component associated with the secondary table of an abstract interface
2245         type, return the entity associated with such abstract interface type.
2246
2247         * sem_res.adb (Resolve_Type_Conversion): Handle the case in which the
2248         conversion cannot be handled at compile time. In this case we pass this
2249         information to the expander to generate the appropriate code.
2250
2251 2005-12-09  Robert Dewar  <dewar@adacore.com>
2252             Ed Schonberg  <schonberg@adacore.com>
2253             Gary Dismukes  <dismukes@adacore.com>
2254             Javier Miranda  <miranda@adacore.com>
2255             Hristian Kirtchev  <kirtchev@adacore.com>
2256
2257         * einfo.adb (Itype_Printed): New flag
2258         (Is_Limited_Type): Derived types do not inherit limitedness from
2259         interface progenitors.
2260         (Is_Return_By_Reference_Type): Predicate does not apply to limited
2261         interfaces.
2262
2263         * einfo.ads (Itype_Printed): New flag
2264         Move Is_Wrapper_Package to proper section
2265         Add missing Inline for Is_Volatile
2266
2267         * output.ads, output.adb (Write_Erase_Char): New procedure
2268         (Save/Restore_Output_Buffer): New procedures
2269         (Save/Restore_Output_Buffer): New procedures
2270
2271         * sprint.ads, sprint.adb (Write_Itype): Handle case of record itypes
2272         Add missing support for anonymous access type
2273         (Write_Id): Insert calls to Write_Itype
2274         (Write_Itype): New procedure to output itypes
2275
2276         * par-ch12.adb (P_Formal_Derived_Type_Definition): In Ada 2005, handle
2277         use of "limited" in declaration.
2278
2279         * sinfo.ads, sinfo.adb: 
2280         Formal derived types can carry an explicit "limited" indication.
2281
2282         * sem_ch3.adb: Add with and use of Targparm.
2283         (Create_Component): If Frontend_Layout_On_Target is True and the
2284         copied component does not have a known static Esize, then reset
2285         the size and positional fields of the new component.
2286         (Analyze_Component_Declaration): A limited component is
2287         legal within a protected type that implements an interface.
2288         (Collect_Interfaces): Do not add to the list the interfaces that
2289         are implemented by the ancestors.
2290         (Derived_Type_Declaration): If the parent of the full-view is an
2291         interface perform a transformation of the tree to ensure that it has
2292         the same parent than the partial-view. This simplifies the job of the
2293         expander in order to generate the correct object layout, and it is
2294         needed because the list of interfaces of the full-view can be given in
2295         any order.
2296         (Process_Full_View): The parent of the full-view does not need to be
2297         a descendant of the parent of the partial view if both parents are
2298         interfaces.
2299         (Analyze_Private_Extension_Declaration): If declaration has an explicit
2300         "limited" the parent must be a limited type.
2301         (Build_Derived_Record_Type): A derived type that is explicitly limited
2302         must have limited ancestor and progenitors.
2303         (Build_Derived_Type): Ditto.
2304         (Process_Full_View): Verify that explicit uses of "limited" in partial
2305         and full declarations are consistent.
2306         (Find_Ancestor_Interface): Remove function.
2307         (Collect_Implemented_Interfaces): New procedure used to gather all
2308         implemented interfaces by a type.
2309         (Contain_Interface): New function used to check whether an interface is
2310         present in a list.
2311         (Find_Hidden_Interface): New function used to determine whether two
2312         lists of interfaces constitute a set equality. If not, the first
2313         differing interface is returned.
2314         (Process_Full_View): Improve the check for the "no hidden interface"
2315         rule as defined by AI-396.
2316
2317 2005-12-09  Robert Dewar  <dewar@adacore.com>
2318
2319         * freeze.adb (Freeze_Record_Type): Only test for useless pack on record
2320         types, not on record subtypes.
2321         (Freeze_Entity): Code cleanup. Add barrier to the loop
2322         that generates the references for primitive operations. This allows to
2323         remove an unnecessary exception handler.
2324         Code reformatting and comment clean ups.
2325
2326 2005-12-09  Vincent Celier  <celier@adacore.com>
2327
2328         * gnatcmd.adb (GNATCmd): GNAT CHECK accepts switch -U
2329         If GNAT CHECK is called with a project file, but with no
2330         source on the command line, call gnatcheck with all the compilable
2331         sources of the project.
2332         Take into account the new command Check, for gnatcheck. Treat as for
2333         other ASIS tools: take into account project, specific package Check and
2334         Compiler switches.
2335         For ASIS tools, add the switches in package Compiler for
2336         the invocation of the compiler.
2337
2338         * prj-attr.adb: Add package Check and its attributes
2339
2340         * vms_conv.ads (Command_Type): New command Check, for gnatcheck
2341
2342         * vms_conv.adb (Initialize): Change Params of command Check to
2343         unlimited files.
2344         Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target.
2345         Add data for new command Check
2346
2347         * vms_data.ads: Add project related qualifiers for GNAT CHECK and GNAT
2348         ELIM.
2349         Add qualifiers for Check command options
2350         (Command_Type): New command Check
2351
2352 2005-12-09  Thomas Quinot  <quinot@adacore.com>
2353
2354         * mlib-utl.adb (Ar): Use Output.Buffer_Max to determine whether a
2355         command line switch overruns the output buffer.
2356
2357 2005-12-09  Robert Dewar  <dewar@adacore.com>
2358
2359         * sem_prag.adb: Processing for new pragma Complete_Representation
2360         (Analyze_Pragma, case Debug): Implement two argument form.
2361
2362         * par-prag.adb: Entry for new pragma Complete_Representation
2363         (Prag, case Debug): Recognize two argument form of pragma Debug
2364         New interface for Set_Style_Check_Options.
2365
2366         * sem_ch13.adb: Implement new pragma Complete_Representation.
2367
2368         * snames.adb, snames.ads, snames.h: Entry for new pragma
2369         Complete_Representation.
2370
2371 2005-12-09  Gary Dismukes  <dismukes@adacore.com>
2372
2373         * sem_cat.adb (Validate_RCI_Subprogram_Declaration): Revise test for
2374         available user-specified stream attributes on limited parameters to
2375         also test the type directly rather than only its underlying type (for
2376         Ada 95) and, in the case of Ada 2005, to check that the user-specified
2377         attributes are visible at the point of the subprogram declaration.
2378         For Ada 2005, the error message is modified to indicate that the
2379         type's stream attributes must be visible (again, only for -gnat05).
2380
2381 2005-12-09  Ed Schonberg  <schonberg@adacore.com>
2382
2383         * sem_ch12.adb (Subtypes_Match): Handle properly Ada05 arrays of
2384         anonymous access types.
2385
2386         * sem_eval.adb (Subtypes_Statically_Match): Implement new rules for
2387         matching of anonymous access types and anonymous access to subprogram
2388         types. 'R'M 4.9.1 (2/2).
2389
2390 2005-12-09  Ed Schonberg  <schonberg@adacore.com>
2391
2392         * sem_ch4.adb (Remove_Abstract_Operations): Do not apply preference
2393         rule prematurely when operands are universal, remaining ambiguities
2394         will be removed during resolution.
2395         Code cleanup.
2396
2397         * sem_type.adb (Disambiguate): In Ada95 mode, discard interpretations
2398         that are Ada 2005 functions.
2399         (Has_Abstract_Interpretation): Subsidiary to
2400         Remove_Conversions, to remove ambiguities caused by abstract operations
2401         on numeric types when operands are universal.
2402
2403 2005-12-09  Robert Dewar  <dewar@adacore.com>
2404
2405         * sem_ch6.adb (Analyze_Subprogram_Body): Properly check categorization
2406         for case where spec is categorized.
2407
2408 2005-12-09  Javier Miranda  <miranda@adacore.com>
2409
2410         * sem_ch8.adb (Find_Type): In case of tagged types that are concurrent
2411         types use the corresponding record type. This was not needed before
2412         the implementation of Ada 2005 synchronized types because
2413         concurrent types were never tagged types in Ada 95.
2414
2415 2005-12-09  Ed Schonberg  <schonberg@adacore.com>
2416
2417         * sem_ch9.adb (Analyze_Delay_Alternative, Analyze_Delay_Until): Use the
2418         first subtype of the type of the expression to verify that it is a
2419         legal Time type.
2420
2421 2005-12-09  Robert Dewar  <dewar@adacore.com>
2422
2423         * sem_util.ads, sem_util.adb (Full_Qualified_Name): Now provides
2424         decoded names.
2425
2426 2005-12-09  Quentin Ochem  <ochem@adacore.com>
2427             Robert Dewar  <dewar@adacore.com>
2428             Ed Falis  <falis@adacore.com>
2429             Florian Villoing  <villoing@adacore.com>
2430             Thomas Quinot  <quinot@adacore.com>
2431             Arnaud Charlet  <charlet@adacore.com>
2432
2433         * gnat_ugn.texi: Created section "Stack Related Tools"
2434         Moved "Stack Overflow Checking" subsection from "Switches for gcc" to
2435         "Stack Related Tools"
2436         Added subsection "Static Stack Usage Analysis"
2437         Added subsection "Dynamic Stack Usage Analysis"
2438         Include documentation of itypes in sprint listing (-gnatG)
2439         Documented gnatbind -D switch (default sec stack size for fixed sec
2440         stacks).
2441         Added Interrupt_State and Persistent_BSS to list of configuration
2442         pragmas.
2443         Add missing doc for maximum value of nnn in -gnatyMnnn
2444
2445         * gnat_rm.texi: Document the AltiVec binding.
2446         Add documentation for pragma Complete_Representation
2447         Shortened an overly long line (> 79 chars)
2448         Clarify documentation of unchecked conversion in implementation
2449         defined cases.
2450         Document two argument form of pragma Debug
2451
2452         * types.ads (Column_Number): Update documentation.
2453
2454         * exp_ch7.ads (Make_Adjust_Call): Document the special processing for
2455         library level Finalize_Storage_Only objects (these are not attached to
2456         any finalization list).
2457
2458         * system-mingw.ads: (Underlying_Priorities): Update comment.
2459
2460 2005-12-09  Robert Dewar  <dewar@adacore.com>
2461
2462         * i-c.adb, i-cexten.ads, i-cobol.adb, i-cobol.ads, i-cpoint.ads,
2463         i-cpp.adb, i-cpp.ads, i-cstrea.ads, i-cstrin.adb, i-cstrin.ads,
2464         inline.adb, interfac.ads, i-os2err.ads, i-os2lib.ads, i-os2syn.ads,
2465         i-os2thr.ads, itypes.adb, itypes.adb, itypes.ads, krunch.ads,
2466         krunch.adb, lib.adb, lib.ads, lib-list.adb, lib-load.adb,
2467         lib-load.ads, lib-sort.adb, live.adb, make.ads, i-cstrea-vms.adb,
2468         interfac-vms.ads, makegpr.adb, indepsw-gnu.adb, indepsw.ads,
2469         s-wchcon.ads, sdefault.ads, sem_ch10.adb, sem_eval.ads: Minor
2470         reformatting.
2471
2472 2005-12-09  Robert Dewar  <dewar@adacore.com>
2473
2474         * s-vaflop-vms-alpha.adb: (Ne_F): New function
2475         (Ne_G): New function
2476
2477         * exp_ch4.adb (Expand_Allocator_Expression): Factor duplicated code
2478         for tag assignment.
2479         (Rewrite_Comparison): Handle case where operation is not a comparison
2480         and ignore, and also handle type conversion case.
2481
2482 2005-12-09  Thomas Quinot  <quinot@adacore.com>
2483
2484         * exp_aggr.ads: Fix typo in comment.
2485         ???-mark Convert_Aggr_In_Assignment as needing documentation.
2486
2487 2005-12-09  Gary Dismukes  <dismukes@adacore.com>
2488
2489         * layout.adb: Replace various uses of byte by storage unit throughout.
2490         (Get_Max_SU_Size): Name changed from Get_Max_Size. In the case of a
2491         static size, convert to storage units before returning, to conform to
2492         spec.
2493
2494 2005-12-09  Matthew Gingell  <gingell@adacore.com>
2495
2496         * g-exctra.ads: Fix typo in comment.
2497
2498 2005-12-09  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2499
2500         * utils.c: Minor reformatting.
2501
2502 2005-12-09  Robert Dewar  <dewar@adacore.com>
2503
2504         * g-soccon.ads: 
2505         Further comment fixes to make the status of the default file clear
2506
2507         * s-bitops.adb: Clarify comment for Bits_Array
2508
2509 2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
2510
2511         * Make-lang.in (ada.install-normal): Remove.
2512
2513 2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
2514
2515         * Make-lang.in: Remove all dependencies on s-gtype.
2516
2517 2005-12-05  Richard Guenther  <rguenther@suse.de>
2518
2519         * utils.c (convert): Use fold_convert where appropriate.
2520
2521 2005-12-05  Paolo Bonzini  <bonzini@gnu.org>
2522
2523         * Makefile.in (gnatlib): Fix regex, using \. instead of . when
2524         a period is meant.
2525
2526 2005-12-02  Richard Guenther  <rguenther@suse.de>
2527
2528         * trans.c (gnat_gimplify_expr): Use buildN instead of build.
2529
2530 2005-12-01  Roger Sayle  <roger@eyesopen.com>
2531
2532         * utils.c (max_size): Only test for TREE_OVERFLOW on INTEGER_CST
2533         nodes.
2534
2535 2005-11-23  Laurent GUERBY  <laurent@guerby.net>
2536
2537         * mlib-prj.adb (Build_Library): Initialize Delete.
2538
2539 2005-11-21  Joel Sherrill <joel.sherrill@oarcorp.com>
2540
2541         * socket.c: Add extern int h_errno for rtems since networking header
2542         files are not available at this point in a tool bootstrap. Newlib
2543         only has basic C library header files.
2544
2545 2005-11-19  Richard Guenther  <rguenther@suse.de>
2546         Roger Sayle  <roger@eyesopen.com>
2547
2548         PR ada/23717
2549         * misc.c (internal_error_function): Don't use vsprintf to format
2550         the error message text, instead use pp_format_text and the new
2551         pretty printer APIs.  This allows handling of %qs, %w, etc.
2552
2553 2005-11-18  Laurent GUERBY  <laurent@guerby.net>
2554
2555         PR ada/24857
2556         * Makefile.in: Use s-auxdec-empty for RTEMS.
2557
2558 2005-11-17  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2559
2560         PR ada/22333
2561         * trans.c (gnat_gimplify_expr, case ADDR_EXPR): Always make
2562         a temporary if taking the address of something that is neither
2563         reference, declaration, or constant, since the gimplifier
2564         can't handle that case.
2565
2566 2005-11-17  Laurent GUERBY  <laurent@guerby.net>
2567
2568         PR ada/24857
2569         * s-auxdec-empty.ads, s-auxdec-empty.adb: New files.
2570         
2571 2005-11-16  Richard Guenther  <rguenther@suse.de>
2572
2573         * Makefile.in: Add EH_MECHANISM=-gcc to s390(x) linux.
2574
2575 2005-11-16  Joel Sherrill <joel.sherrill@oarcorp.com>
2576
2577         PR ada/24855
2578         * raise-gcc.c: Add missing stdarg.h include.
2579  
2580 2005-11-16  Richard Guenther  <rguenther@suse.de>
2581
2582         * Make-lang.in (ada/decl.o): Add $(EXPR_H) dependency.
2583         (ada/misc.o): Likewise.
2584
2585 2005-11-14  Thomas Quinot  <quinot@adacore.com>
2586
2587         * g-soccon.ads: Minor reformatting. Update comments.
2588
2589         * gsocket.h: Include <sys/times.h> in the VxWorks case, in order to
2590         gain visibility on the declaration of struct timeval.
2591
2592         * g-soccon-freebsd.ads,
2593         g-soccon-darwin.ads,
2594         g-soccon-tru64.ads,
2595         g-soccon-aix.ads,
2596         g-soccon-irix.ads,
2597         g-soccon-hpux.ads,
2598         g-soccon-solaris.ads,
2599         g-soccon-vms.ads,
2600         g-soccon-mingw.ads,
2601         g-soccon-vxworks.ads (SIZEOF_tv_sec, SIZEOF_tv_usec): New constants.
2602
2603         * g-soccon-hpux-ia64.ads, g-soccon-linux-ppc.ads,
2604         g-soccon-solaris-64.ads, g-soccon-linux-64.ads,
2605         g-soccon-linux-x86.ads: New files.
2606
2607         * g-socthi-mingw.adb: 
2608         (Socket_Error_Message): Remove redundant use of GNAT.Sockets.Constants
2609
2610         * g-socthi-vxworks.ads, g-socthi-vms.ads, g-socthi-mingw.ads
2611         (time_t, suseconds_t): New types constructed to match the tv_sec
2612         and tv_usec fields of C struct timeval.
2613         (Timeval): Construct structure in terms of the new types.
2614         (Host_Errno): New function (imported from socket.c), returns last hosts
2615         database error.
2616
2617         * g-socthi-vxworks.adb:  Add error handling circuitry.
2618
2619         * g-socket.ads, g-socket.adb (To_Timeval): Reflect change of type for
2620         components of struct timeval.
2621         (Get_Host_By_Name, Get_Host_By_Address): Fix error reporting circuitry.
2622         (Check_Selector): In error conditions, clear internal socket sets to
2623         avoid a memory leak.
2624         (Get_Socket_Option, Set_Socket_Option): Support for Multicast_If,
2625         Send_Timeout, Receive_Timeout.
2626
2627         * g-socthi.ads (time_t, suseconds_t): New types constructed to match
2628         the tv_sec and tv_usec fields of C struct timeval.
2629         (Timeval): Construct structure in terms of the new types.
2630         (Host_Errno): New function (imported from socket.c), returns last hosts
2631         database error.
2632
2633         * socket.c (__gnat_get_h_errno): New function to retrieve h_errno, the
2634         hosts database last error code.
2635
2636         * gen-soccon.c: Complete value expansion should not be performed on
2637         TARGET, as it has the form of a math expression, and some components
2638         may be platform-defined macros.
2639         For VxWorks, generate the OK and ERROR values.
2640         New constants giving the sizes of the components of C struct timeval.
2641
2642 2005-11-14  Robert Dewar  <dewar@adacore.com>
2643             Ed Schonberg  <schonberg@adacore.com>
2644
2645         PR ada/18434
2646
2647         * types.ads: Include All_Checks in Suppress_Array
2648
2649         * checks.adb (Check_Needed): Remove kludge for a/=b rewritten as
2650         not(a=b), since we no longer do this rewriting, and hence it is not
2651         needed.
2652         (Elaboration_Checks_Suppressed): Add special casing to
2653         deal with different cases of static and dynamic elaboration checks (all
2654         checks does not count in the first case, but does in the second).
2655         (Expr_Known_Valid): Do not assume that the result of any arbitrary
2656         function call is valid, since this is not the case.
2657         (Ensure_Valid): Do not apply validity check to a real literal
2658         in a universal or fixed context
2659
2660         * exp_ch4.adb (Expand_N_Op_Ne): Don't expand a/=b to not(a=b) for
2661         elementary types using the operator in standard. It is cleaner not to
2662         modify the programmers intent, especially in the case of floating-point.
2663         (Rewrite_Comparison): Fix handling of /= (this was always wrong, but
2664         it did not matter because we always rewrote a/=b to not(a=b).
2665         (Expand_Allocator_Expression): For an allocator expression whose nominal
2666         subtype is an unconstrained packed type, convert the expression to its
2667         actual constrained subtype.
2668         Implement warning for <= or >= where < or > not possible
2669         Fix to Vax_Float tests (too early in many routines, causing premature
2670         Vax_Float expansions.
2671
2672         * sem_prag.adb (Analyze_Pragma, case Obsolescent): Allow this pragma
2673         to be used with packages and generic packages as well as with
2674         subprograms.
2675         (Suppress): Set All_Checks, but not Elaboration_Check, for case
2676         of pragma Suppress (All_Checks)
2677         (Analyze_Pragma, case Warnings): Implement first argument allowed to be
2678         a string literal for precise control over warnings.
2679         Avoid raise of pragma in case of unrecognized pragma and just return
2680         instead.
2681
2682         * sem_prag.ads: Minor reformatting
2683
2684         * switch-c.adb (Scan_Front_End_Switches): Replace "raise Bad_Switch;"
2685         with call to new procedure Bad_Switch. Call Scan_Pos with new parameter
2686         Switch. Do not handle any exception.
2687         Include -gnatwx as part of -gnatg (warn on redundant parens)
2688         Allow optional = after -gnatm
2689         (Scan_Front_End_Switches): The -gnatp switch sets All_Checks, but no
2690         longer sets Elaboration_Checks.
2691         Code to set warning mode moved to Sem_Warn
2692         so that it can be shared by pragma processing.
2693
2694         * s-mastop-tru64.adb (Pop_Frame): Remove redundant parentheses in if
2695         statement.
2696
2697         * s-taprop-solaris.adb: 
2698         Change some <= to =, to avoid new warning
2699
2700         * a-exexda.adb, prj-proc.adb: 
2701         Fix obvious typo (Num_Tracebacks compared <= 0 instead of < 0)
2702         Fix obvious typo (Total_Errors_Detected <= 0 should be = 0)
2703
2704 2005-11-14  Robert Dewar  <dewar@adacore.com>
2705
2706         * exp_vfpt.adb: Handle /= case
2707         (Expand_Vax_Conversion): Properly recognize Conversion_OK flag
2708         so that we do not get duplicate scaling for fixed point conversions.
2709
2710         * s-vaflop.ads, s-vaflop.adb: (Ne_F): New function
2711
2712 2005-11-14  Matthew Gingell  <gingell@adacore.com>
2713
2714         * system-lynxos-ppc.ads, system-lynxos-x86.ads: 
2715         Increase default priority on Lynx from 15 to 17, and meet the Ada
2716         requirement that Default_Priority be ((Priority'First +
2717         Priority'Last) / 2) by increasing the range of Interrupt_Priority.
2718
2719 2005-11-14  Vincent Celier  <celier@adacore.com>
2720
2721         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
2722         mlib-tgt-hpux.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
2723         mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-alpha.adb,
2724         mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb,
2725         mlib-tgt-darwin.adb, mlib-tgt.adb, mlib-tgt.ads,
2726         mlib-tgt-lynxos.adb (DLL_Prefix): New function
2727
2728 2005-11-14  Doug Rupp  <rupp@adacore.com>
2729
2730         * system-vms.ads, system-vms_64.ads: ADA$GNAT: New exported object in
2731         private part.
2732
2733 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
2734
2735         * s-traces-default.adb, s-trafor-default.ads,
2736         s-tratas-default.adb: Fix compilation errors.
2737
2738 2005-11-14  Jose Ruiz  <ruiz@adacore.com>
2739
2740         * s-taprop-posix.adb (Initialize_Lock): Destroy mutex attribute before
2741         raising the exception so the memory used is freed.
2742
2743 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
2744
2745         * adaint.h, adaint.c (__gnat_is_cross_compiler): New constant.
2746         (Gnat_Install_Locks, __gnatlib_install_locks): Removed, no longer used.
2747         (convert_address): Update comments and list of platforms using this.
2748
2749         * s-tasini.adb (Gnat_Install_Locks, __gnatlib_install_locks): Removed,
2750         no longer used.
2751
2752 2005-11-14  Pascal Obry  <obry@adacore.com>
2753             Vincent Celier  <celier@adacore.com>
2754
2755         * gnatdll.adb (Parse_Command_Line): Remove redundant use of
2756         GNAT.Command_Line.
2757
2758         * memroot.adb: Remove redundant with/use clause on
2759         System.Storage_Elements.
2760
2761 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
2762
2763         * a-except.adb (Zero_Cost_Exceptions): Removed, no longer used.
2764         (builtin_longjmp, Process_Raise_Exceeption): Move setjmp/longjmp
2765         related code to a-exexpr.adb
2766         (Save_Occurrence_And_Private): Move GCC EH related code to
2767         a-exexpr-gcc.adb
2768         (Raise_Current_Excep): Add new variable Id with pragma
2769         volatile, to ensure that the variable lives on stack.
2770
2771         * a-exexpr-gcc.adb, raise-gcc.c: New file.
2772
2773         * a-exexpr.adb (builtin_longjmp, Propagate_Exception): Moved here code
2774         from a-except.adb.
2775         Move GCC EH related code to a-exexpr-gcc.adb
2776
2777         * Makefile.in: Add or update g-soccon LIBGNAT pairs for Linux/PPC and
2778         64-bit Solaris
2779         Split the Linux version of g-soccon into separate variants for 32 and 64
2780         bit platforms.
2781         (gnatlib): Use $(AR_FOR_TARGET) and $(RANLIB_FOR_TARGET)
2782         vice $(AR) and $(RANLIB). Remove use of host variable $(RANLIB_FLAGS).
2783         install-gnatlib: Use $(RANLIB_FOR_TARGET) vice $(RANLIB). Remove use
2784         of host variable $(RANLIB_FLAGS).
2785         (alpha64-dec-*vms*): Fix translations for 64 bit compiler.
2786         Code clean up: remove unused/obsolete targets.
2787         (EH_MECHANISM): New variable introduced to differenciate between the
2788         two EH mechanisms statically.
2789         (gnatlib-zcx, gnatlib-sjlj): Force EH_MECHANISM manually.
2790         (LIBGNAT_OBJS): Add raise-gcc.o
2791         (LIBGNAT_TARGET_PAIRS for ppc-vxworks): Use an specialized version of
2792         s-osinte.adb, s-tpopsp.adb, and system.ads for the run time that
2793         supports VxWorks 6 RTPs.
2794         (EXTRA_GNATRTL_NONTASKING_OBJS for ppc-vxworks): Remove the use of
2795         i-vxworks and i-vxwoio from the run time that supports VxWorks 6 RTPs.
2796
2797         * raise.c: Move all GCC EH-related routines to raise-gcc.c
2798
2799 2005-11-14  Jose Ruiz  <ruiz@adacore.com>
2800
2801         * s-tassta.adb (Create_Task): Move the code in charge of resetting the
2802         deferral level, when abort is not allowed, to a later stage (the
2803         Task_Wrapper).
2804         (Task_Wrapper): If Abort is not allowed, reset the deferral level since
2805         it will not get changed by the generated code. It was previously done
2806         in Create_Task.
2807
2808 2005-11-14  Thomas Quinot  <quinot@adacore.com>
2809             Olivier Hainque  <hainque@adacore.com>
2810             Eric Botcazou  <ebotcazou@adacore.com>
2811
2812         * decl.c:
2813         Factor common code to build a storage type for an unconstrained object
2814         from a fat or thin pointer type and a constrained object type.
2815         (annotate_value): Handle BIT_AND_EXPR.
2816         (annotate_rep): Don't restrict the back annotation of inherited
2817         components to the type_annotate_only case.
2818         (gnat_to_gnu_entity) <E_Array_Type>: Do not invoke create_type_decl if
2819         we are not defining the type.
2820         <E_Record_Type>: Likewise.
2821         (gnat_to_gnu_entity) <object, renaming>: Adjust comments and structure
2822         to get advantage of the new maybe_stabilize_reference interface, to
2823         ensure that what we reference is indeed stabilized instead of relying
2824         on assumptions on what the stabilizer does.
2825         (gnat_to_gnu_entity) <E_Incomplete_Type>: If the entity is an incomplete
2826         type imported through a limited_with clause, use its non-limited view.
2827         (Has_Stdcall_Convention): New macro, to centralize the Windows vs others
2828         differentiation.
2829         (gnat_to_gnu_entity): Use Has_Stdcall_Convention instead of a spread mix
2830         of #if sections + explicit comparisons of convention identifiers.
2831         (gnat_to_gnu_entity) <E_Variable>: Decrement force_global if necessary
2832         before early-returning for certain types when code generation is
2833         disabled.
2834         (gnat_to_gnu_entity) <object>: Adjust comment attached to the
2835         nullification of gnu_expr we do for objects with address clause and
2836         that we are not defining.
2837         (elaborate_expression_1): Do not create constants when creating
2838         variables needed by the debug info: the dwarf2 writer considers that
2839         CONST_DECLs is used only to represent enumeration constants, and emits
2840         nothing for them.
2841         (gnat_to_gnu_entity) <object>: When turning a non-definition of an
2842         object with an address clause into an indirect reference, drop the
2843         initializing expression.
2844         Include "expr.h".
2845         (STACK_CHECK_BUILTIN): Delete.
2846         (STACK_CHECK_PROBE_INTERVAL): Likewise.
2847         (STACK_CHECK_MAX_FRAME_SIZE): Likewise.
2848         (STACK_CHECK_MAX_VAR_SIZE): Likewise.
2849         (gnat_to_gnu_entity): If gnat_entity is a renaming, do not mark the tree
2850         corresponding to the renamed object as ignored for debugging purposes.
2851
2852         * trans.c (tree_transform, case N_Attribute_Reference, case Attr_Size &
2853         related): For a prefix that is a dereference of a fat or thin pointer,
2854         if there is an actual subtype provided by the front-end, use that
2855         subtype to build an actual type with bounds template.
2856         (tree_transform, case N_Free_Statement): If an Actual_Designated_Subtype
2857         is provided by the front-end, use that subtype to compute the size of
2858         the deallocated object.
2859         (gnat_to_gnu): When adding a statement into an elaboration procedure,
2860         check for a potential violation of a No_Elaboration_Code restriction.
2861         (maybe_stabilize_reference): New function, like gnat_stabilize_reference
2862         with extra arguments to control whether to recurse through non-values
2863         and to let the caller know if the stabilization has succeeded.
2864         (gnat_stabilize_reference): Now a simple wrapper around
2865         maybe_stabilize, for common uses without restriction on lvalues and
2866         without need to check for the success indication.
2867         (gnat_to_gnu, call_to_gnu): Adjust calls to gnat_stabilize_reference, to
2868         pass false instead of 0 as the FORCE argument which is a bool.
2869         (Identifier_to_gnu): Remove checks ensuring that an renamed object
2870         attached to a renaming pointer has been properly stabilized, as no such
2871         object is attached otherwise.
2872         (call_to_gnu): Invoke create_var_decl to create the temporary when the
2873         function uses the "target pointer" return mechanism.
2874         Reinstate conversion of the actual to the type of the formal
2875         parameter before any other specific treatment based on the passing
2876         mechanism. This turns out to be necessary in order for PLACEHOLDER
2877         substitution to work properly when the latter type is unconstrained.
2878
2879         * gigi.h (build_unc_object_type_from_ptr): New subprogram, factoring a
2880         common pattern.
2881         (maybe_stabilize_reference): New function, like gnat_stabilize_reference
2882         with extra arguments to control whether to recurse through non-values
2883         and to let the caller know if the stabilization has succeeded.
2884
2885         * utils2.c (gnat_build_constructor): Only sort the fields for possible
2886         static output of record constructor if all the components are constant.
2887         (gnat_build_constructor): For a record type, sort the list of field
2888         initializers in increasing bit position order.
2889         Factor common code to build a storage type for an unconstrained object
2890         from a fat or thin pointer type and a constrained object type.
2891         (build_unary_op) <ADDR_EXPR>: Always recurse down conversions between
2892         types variants, and process special cases of VIEW_CONVERT expressions
2893         as their NOP_EXPR counterpart to ensure we get to the
2894         CORRESPONDING_VARs associated with CONST_DECls.
2895         (build_binary_op) <MODIFY_EXPR>: Do not strip VIEW_CONVERT_EXPRs
2896         on the right-hand side.
2897
2898         * utils.c (build_unc_object_type_from_ptr): New subprogram, factoring
2899         a common pattern.
2900         (convert) <VIEW_CONVERT_EXPR>: Return the inner operand directly if we
2901         are converting back to its original type.
2902         (convert) <JM input>: Fallthrough regular conversion code instead of
2903         extracting the object if converting to a type variant.
2904         (create_var_decl): When a variable has an initializer requiring code
2905         generation and we are at the top level, check for a potential violation
2906         of a No_Elaboration_Code restriction.
2907         (create_var_decl): call expand_decl for CONST_DECLs, to set MODE, ALIGN
2908         SIZE and SIZE_UNIT which we need for later back-annotations.
2909         * utils.c: (convert) <STRING_CST>: Remove obsolete code.
2910         <VIEW_CONVERT_EXPR>: Do not lift the conversion if the target type
2911         is an unchecked union.
2912         (pushdecl): Set DECL_NO_STATIC_CHAIN on imported nested functions.
2913         (convert) <VIEW_CONVERT_EXPR>: When the types have the same
2914         main variant, just replace the VIEW_CONVERT_EXPR.
2915         <UNION_TYPE>: Revert 2005-03-02 change.
2916
2917         * repinfo.h, repinfo.ads: Add tcode for BIT_AND_EXPR.
2918
2919         * repinfo.adb (Print_Expr, Rep_Value): Handle Bit_And_Expressions.
2920
2921 2005-11-14  Matthew Heaney  <heaney@adacore.com>
2922
2923         * a-crbtgo.ads, a-crbtgo.adb, a-coorse.ads, a-coorse.adb, a-convec.ads, 
2924         a-convec.adb, a-coinve.ads, a-coinve.adb, a-cohama.ads, a-cohama.adb, 
2925         a-ciorse.ads, a-ciorse.adb, a-cihama.ads, a-cihama.adb, a-cidlli.ads, 
2926         a-cidlli.adb, a-cdlili.ads, a-cdlili.adb, a-coormu.adb, a-ciormu.adb, 
2927         a-cihase.adb, a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads, 
2928         a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-ciorma.adb, a-coorma.adb: 
2929         Compiles against the spec for ordered maps described in sections
2930         A.18.6 of the most recent (August 2005) AI-302 draft.
2931
2932 2005-11-14  Olivier Hainque  <hainque@adacore.com>
2933
2934         * cuintp.c (UI_To_gnu): Use a proper type for intermediate computations
2935         to ensure bias adjustments take place when need be and to prevent
2936         occurrences of intermediate overflows.
2937
2938 2005-11-14  Matthew Gingell  <gingell@adacore.com>
2939             Olivier Hainque  <hainque@adacore.com>
2940
2941         * tb-gcc.c (trace_callback): Work around problem with _Unwind_GetIP on
2942         ia64 HP-UX.
2943
2944         * tracebak.c (ia64 configuration): Enable _Unwind_Backtrace driven
2945         tracebacks on ia64 HP-UX and provide explanatory comment.
2946         Enable backtraces on ia64 GNU/Linux.
2947         (x86 configuration): Bump FRAME_LEVEL to 1 to ensure we retrieve a real
2948         base pointer from builtin_frame_address. Adjust BASE_SKIP accordingly.
2949
2950 2005-11-14  Hristian Kirtchev  <kirtchev@adacore.com>
2951             Javier Miranda  <miranda@adacore.com>
2952
2953         * rtsfind.ads, exp_util.adb, exp_util.ads, exp_disp.adb, exp_disp.ads,
2954         exp_ch7.adb, sem_ch9.adb, snames.adb, snames.ads,
2955         exp_ch9.adb, exp_ch9.ads, exp_ch6.adb, exp_ch3.adb, exp_ch3.ads,
2956         einfo.ads, einfo.adb: Complete support for Ada 2005 interfaces.
2957
2958         * a-tags.ads, a-tags.adb: Major rewrite and additions to implement
2959         properly new Ada 2005 interfaces (AI-345) and add run-time checks (via
2960         assertions).
2961
2962         * exp_dbug.ads, exp_dbug.adb (Get_Secondary_DT_External_Name): New
2963         subprogram that generates the external name associated with a
2964         secondary dispatch table.
2965         (Get_Secondary_DT_External_Name): New subprogram that generates the
2966         external name associated with a secondary dispatch table.
2967
2968 2005-11-14  Emmanuel Briot  <briot@adacore.com>
2969
2970         * xref_lib.adb (Parse_Identifier_Info): It is possible for an entity
2971         line in the ALI file to include both an instantiation reference, and a
2972         returned value.
2973
2974 2005-11-14  Vincent Celier  <celier@adacore.com>
2975
2976         * clean.adb (Check_Project): Look for Ada code in extending project,
2977         even if Ada is not specified as a language.
2978         Use new function DLL_Prefix for DLL_Name
2979         (Clean_Interface_Copy_Directory): New procedure
2980         (Clean_Library_Directory): New procedure
2981         (Clean_Directory): Remove procedure, no longer used
2982         (Clean_Project): Do not delete any file in an externally built project
2983
2984         * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Add the object
2985         directory of an extending project, even when there are no Ada source
2986         present.
2987         (Ada_Objects_Path.Add): Add Library_ALI_Dir, not Library_Dir to the path
2988         (Set_Ada_Paths.Add.Recursive_Add): Ditto
2989
2990         * mlib-prj.adb (Check_Library): For all library projects, get the
2991         library file timestamp.
2992         (Build_Library): Copy ALI files in Library_ALI_Dir, not in Library_Dir
2993         (Build_Library): Use new function DLL_Prefix for the DLL_Name
2994         (Clean): Remove procedure, no longer used
2995         (Ultimate_Extension_Of): New function
2996         (Build_Library): When cleaning the library directory, only remove an
2997         existing library file and any ALI file of a source of the project.
2998         When cleaning the interface copy directory, remove any source that
2999         could be a source of the project.
3000
3001         * prj.ads, prj.adb (Project_Empty): Add values of new components
3002         Library_TS and All_Imported_Projects.
3003         (Project_Empty): Add values for new components of Project_Data:
3004         Library_ALI_Dir and Display_Library_ALI_Dir
3005
3006         * prj-attr.adb: New project level attribute name Library_ALI_Dir
3007
3008         * prj-nmsc.adb (Check_Library_Attributes): Take into account new
3009         attribute Library_ALI_Dir.
3010         (Check_Library_Attributes): The library directory cannot be the same as
3011         any source directory of the project tree.
3012         (Check_Stand_Alone_Library): The interface copy directory cannot be
3013         the same as any source directory of the project tree.
3014
3015         * mlib.adb: Use Prj.Com.Fail, instead of Osint.Fail directly, to delete
3016         all temporary files.
3017
3018 2005-11-14  Robert Dewar  <dewar@adacore.com>
3019             Ed Schonberg  <schonberg@adacore.com>
3020
3021         * sem_elab.adb: Change name Is_Package to Is_Package_Or_Generic_Package
3022         (Check_Elab_Call): A call within a protected body is never an
3023         elaboration call, and does not require checking.
3024         (Same_Elaboration_Scope): Take into account protected types for both
3025         entities.
3026         (Activate_Elaborate_All_Desirable): New procedure
3027
3028         * ali.ads, ali.adb: Implement new AD/ED for Elaborate_All/Elaborate
3029         desirable
3030
3031         * binde.adb: Implement new AD/ED for Elaborate_All/Elaborate desirable
3032         (Elab_Error_Msg): Use -da to include internal unit links, not -de.
3033
3034         * lib-writ.ads, lib-writ.adb: 
3035         Implement new AD/ED for Elaborate_All/Elaborate desirable
3036         Use new Elaborate_All_Desirable flag in N_With_Clause node
3037
3038         * sinfo.ads, sinfo.adb (Actual_Designated_Subtype): New attribute for
3039         N_Free_Statement nodes.
3040         Define new class N_Subprogram_Instantiation
3041         Add Elaborate_Desirable flag to N_With_Clause node
3042         Add N_Delay_Statement (covering two kinds of delay)
3043
3044         * debug.adb: Introduce d.f flag for compiler
3045         Add -da switch for binder
3046
3047 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
3048             Cyrille Comar  <comar@adacore.com>
3049
3050         * exp_aggr.adb (Build_Record_Aggr_Code): Do not create master entity
3051         for task component, in the case of a limited aggregate. The enclosed
3052         object declaration will create it earlier. Otherwise, in the case of a
3053         nested aggregate, the object may appear in the wrong scope.
3054         (Convert_Aggr_In_Object_Decl): Create a transient scope when needed.
3055         (Gen_Assign): If the component being assigned is an array type and the
3056         expression is itself an aggregate, wrap the assignment in a block to
3057         force finalization actions on the temporary created for each row of the
3058         enclosing object.
3059         (Build_Record_Aggr_Code): Significant rewrite insuring that ctrl
3060         structures are initialized after all discriminants are set so that
3061         they can be accessed even when their offset is dynamic.
3062
3063 2005-11-14  Robert Dewar  <dewar@adacore.com>
3064             Hristian Kirtchev  <kirtchev@adacore.com>
3065
3066         * sem_attr.adb: Implement Machine_Rounding attribute
3067         (Analyze_Access_Attribute): The access attribute may appear within an
3068         aggregate that has been expanded into a loop.
3069         (Check_Task_Prefix): Add semantic check for attribute 'Callable and
3070         'Terminated whenever the prefix is of a task interface class-wide type.
3071         (Analyze_Attribute): Add semantic check for attribute 'Identity whenever
3072         the prefix is of a task interface class-wide type.
3073
3074         * s-vaflop-vms-alpha.adb: Valid_D, Valid_F, Valid_G: Make Val constant
3075         to avoid warnings.
3076
3077         * s-fatgen.ads, s-fatgen.adb (Machine_Rounding): New function
3078         Remove pragma Inline for [Unaligned_]Valid.
3079         Add comments that Valid routines do not work for Vax_Float
3080
3081         * exp_attr.adb: Implement Machine_Rounding attribute
3082
3083         * snames.h: Add entry for Machine_Rounding attribute
3084
3085 2005-11-14  Javier Miranda  <miranda@adacore.com>
3086             Robert Dewar  <dewar@adacore.com>
3087             Hristian Kirtchev  <kirtchev@adacore.com>
3088
3089         * exp_attr.adb (Expand_N_Attribute_Reference, cases of Attribute_Size
3090         and related): For a prefix that is an explicit dereference of an
3091         access to unconstrained packed array type, annotate the dereference
3092         with an actual subtype so GIGI can make a correct size computation.
3093         (Expand_N_Attribute_Reference): In case of 'Unchecked_Access and
3094         'Unrestricted_Access, if the designated type is an interface we
3095         add a type conversion to force the displacement of the pointer
3096         to the secondary dispatch table.
3097         Use Universal_Real instead of Long_Long_Float when we need a high
3098         precision float type for the generated code (prevents gratuitous
3099         Vax_Float stuff when pragma Float_Representation (Vax_Float) used)
3100         (Expand_N_Attribute_Reference): Add support for attribute 'Callable and
3101         'Terminated for task interface class-wide objects. Generate a call to
3102         the predefined dispatching routine used to retrieve the _task_id from
3103         a task corresponding record.
3104         (Expand_Fpt_Attribute): Major change to properly handle Vax_Float
3105
3106         * sem_disp.adb: Change name Is_Package to Is_Package_Or_Generic_Package
3107         (Check_Dispatching_Operation): Protect the frontend againts
3108         previously detected errors.
3109
3110         * Makefile.rtl: Add new instantiations of system.fat_gen
3111
3112         * s-fatflt.ads, s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads: 
3113         Change name of instantiated package for better consistency
3114         with newly added system.fat_gen instantiations.
3115
3116         * s-filofl.ads, s-fishfl.ads, s-fvadfl.ads, s-fvaffl.ads,
3117         s-fvagfl.ads: New files.
3118
3119 2005-11-14  Cyrille Comar  <comar@adacore.com>
3120             Thomas Quinot  <quinot@adacore.com>
3121
3122         * exp_ch5.adb (Expand_N_Assignment_Statement, Tagged_Case): For an
3123         assignment of a value of a tagged type that has been rewritten to a
3124         block statement, it is known by construction that no checks are
3125         necessary for the statements within the block: analyze it with checks
3126         suppressed.
3127         (Expand_N_If_Statement): When killing a dead then-branch in an
3128         if-statement that has elsif_parts, recompute the Current_Value node
3129         for any entity whose value is known from the condition of the first
3130         elsif_part.
3131         (Expand_N_Return_Statement): When returning a mutable record, convert
3132         the return value into its actual subtype in order to help the backend
3133         to return the actual size instead of the maximum. This is another
3134         aftermath of not returning mutable records on the sec-stack anymore.
3135
3136         * sem_ch5.ads, sem_ch5.adb (Analyze_Iteration_Scheme): Minor change to
3137         handling of error msg for suspicious reverse range iteration.
3138         (Check_Possible_Current_Value_Condition): Move declaration from body to
3139         spec, to allow this subprogram to be called from exp_ch5.
3140
3141 2005-11-14  Thomas Quinot  <quinot@adacore.com>
3142
3143         * exp_dist.adb (Append_Array_Traversal): Modify constrained case to
3144         generate a set of nested array aggregates instead of a single flat
3145         aggregate for multi-dimensional arrays.
3146
3147 2005-11-14  Pascal Obry  <obry@adacore.com>
3148
3149         * expect.c (__gnat_kill) [Win32]: Fix implementation, the pid returned
3150         by spawnve is a process handle, no need to convert. Add a parameter
3151         close to control wether the process handle must be closed.
3152         (__gnat_waitpid): Fix implementation, the pid returned by spawnve is
3153         a process handle, not need to convert.
3154         (__gnat_kill) [*]: Add dummy parameter close to match the Win32 spec.
3155
3156         * g-expect.adb: (Kill): Document the new close parameter.
3157         (Close): Do not release the process handle in the kill there as
3158         waitpid() is using it.
3159         (Send_Signal): Release the process handle.
3160
3161 2005-11-14  Robert Dewar  <dewar@adacore.com>
3162
3163         * exp_fixd.adb: Use Universal_Real instead of Long_Long_Float when we
3164         need a high precision float type for the generated code (prevents
3165         gratuitous Vax_Float stuff when pragma Float_Representation (Vax_Float)
3166         used).
3167
3168         * exp_imgv.adb: Use Universal_Real instead of Long_Long_Float when we
3169         need a high precision float type for the generated code (prevents
3170         gratuitous Vax_Float stuff when pragma Float_Representation (Vax_Float)
3171         used).
3172         (Expand_Width_Attribute): In configurable run-time, the attribute is not
3173         allowed on non-static enumeration subtypes. Force a load error to emit
3174         the correct diagnostic.
3175
3176 2005-11-14  Thomas Quinot  <quinot@adacore.com>
3177             Robert Dewar  <dewar@adacore.com>
3178             Ed Schonberg  <schonberg@adacore.com>
3179
3180         * exp_intr.adb (Expand_Unc_Deallocation): If GIGI needs an actual
3181         subtype to compute the size of the designated object at run-time,
3182         create such a subtype and store it in the Actual_Designated_Subtype
3183         attribute of the N_Free_Statement.
3184         Generate itype for classwide designated object in both cases of
3185         user-specified storage pool: specific and class-wide, not only in the
3186         specific case.
3187         Raise CE when trying to set a not null access type object to null.
3188         (Expand_Dispatching_Constructor_Call): Retrieve subprogram actual with
3189         an explicit loop, because freeze nodes make its position variable.
3190
3191         * sem_intr.adb (Check_Intrinsic_Call): Given warning for freeing not
3192         null object.
3193
3194 2005-11-14  Javier Miranda  <miranda@adacore.com>
3195
3196         * exp_strm.adb (Build_Stream_Attr_Profile, Build_Stream_Function,
3197         Build_Stream_Procedure): Add the null-excluding attribute to the first
3198         formal.
3199         This has no semantic meaning under Ada95 mode but it is a
3200         requirement under Ada05 mode.
3201
3202         * par-ch3.adb (P_Access_Definition): Addition of warning message if
3203         the null exclusion is used under Ada95 mode
3204         (P_Null_Exclusion): The qualifier has no semantic meaning in Ada 95.
3205         (P_Access_Definition): Remove assertion that forbids the use of
3206         the null-exclusion feature in Ada95.
3207
3208 2005-11-14  Robert Dewar  <dewar@adacore.com>
3209
3210         * impunit.adb: Exclude container helper units not intended for use by
3211         users.
3212
3213 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
3214
3215         * freeze.adb (Freeze_Entity): For an access formal that is an access
3216         to subprogram, freeze the anonymous subprogram type at the same time,
3217         to prevent later freezing in the wrong scope, such as the enclosing
3218         subprogram body.
3219         (Freeze_Entity): Freeze the equivalent_type of an access_to_protected_
3220         subprogram whenever available.
3221
3222 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
3223
3224         PR ada/23732
3225         * gnatvsn.ads (Library_Version): Bump to 4.1
3226
3227 2005-11-14  Robert Dewar  <dewar@adacore.com>
3228
3229         * g-debpoo.adb (Set_Valid): Use Integer_Address instead of
3230         Storage_Offset to avoid wrap around causing invalid results.
3231
3232 2005-11-14  Pascal Obry  <obry@adacore.com>
3233
3234         * gnatbind.adb (Is_Cross_Compiler): New function returning True for
3235         cross-compiler.
3236         (Scan_Bind_Arg): Fail with an error message if -M option is used
3237         on a native compiler.
3238
3239 2005-11-14  Robert Dewar  <dewar@adacore.com>
3240             Vincent Celier  <celier@adacore.com>
3241
3242         * gprep.adb: Implement -C switch to scan comments
3243
3244         * scng.adb: Scan comment symbol separately if Replace_In_Comments set
3245
3246         * scans.ads: Comment updates (including new use of Tok_Comment in
3247         preprocessing)
3248
3249         * opt.ads: Add documentation for flags that are used by gprmake,
3250         currently and in the next version of gprmake.
3251         (Verbosity_Level): New variable
3252         Add Replace_In_Comments switch
3253
3254         * vms_data.ads: Add VMS equivalent for new gnatmake switches -vl, -vm
3255         and -vm.
3256         Add /REPLACE_IN_COMMENTS for gnatprep -C switch
3257
3258 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
3259
3260         * g-regpat.adb (Fail): raise Expression_Error including the diagnostic
3261         message, friendlier.
3262
3263 2005-11-14  Robert Dewar  <dewar@adacore.com>
3264
3265         * g-spitbo.adb: (Hash): Rotate by 3 instead of 1
3266
3267 2005-11-14  Doug Rupp  <rupp@adacore.com>
3268
3269         * init.c [VMS]: Don't install __gnat_error_handler if DBG$TDBG defined.
3270
3271 2005-11-14  Robert Dewar  <dewar@adacore.com>
3272
3273         * interfac.ads: Change declarations of IEEE float types so that we no
3274         longer need a separate version of this package for VMS.
3275
3276 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
3277
3278         * lib-xref.adb (Generate_Definition, Generate_Reference): Treat the
3279         internal entity created for the declaration of a child subprogram body
3280         with no spec as coming from source, to generate proper cross-reference
3281         information.
3282
3283 2005-11-14  Vincent Celier  <celier@adacore.com>
3284
3285         * make.adb (Compile_Sources): Change verbose message to minimum
3286         verbosity level High for "is in an Ada library", "is a read-only
3287         library" and "is an internal library",
3288         (Create_Binder_Mapping_File): Path name of ALI file for library project
3289         must include the library directory, not the object directory.
3290         (Scan_Make_Arg): Make sure that Switch.M.Scan_Make_Switches is called
3291         for new switches -vl, -vm and -vh.
3292         (Verbose_Msg): Add new defaulted parameter Minimum_Verbosity
3293         (Check): Use minimum verbosity Medium for some Verbose_Msg calls
3294         (Compile_Sources): Do not attempt to compile if an ALI file is missing
3295         in a project that is externally built.
3296         (Compute_All_Imported_Projects): New procedure
3297         (Gnatmake): Check if importing libraries should be regenerated because
3298         at least an imported library is more recent.
3299         (Initialize): For each project compute the list of the projects it
3300         imports directly or indirectly.
3301         (Add_Library_Search_Dir): New procedure, used in place of
3302         Add_Lib_Search_Dir in procedure Scan_Make_Arg so that absolute paths are
3303         put in the search paths.
3304         (Add_Source_Search_Dir): New procedure, used in place of
3305         Add_Src_Search_Dir in procedure Scan_Make_Arg so that absolute paths are
3306         put in the search paths.
3307         (Mark_Directory): Resolve the absolute path the directory before marking
3308         it.
3309
3310         * switch-m.adb (Scan_Make_Switches): Replace "raise Bad_Switch;" with
3311         call to new procedure Bad_Switch. Call Scan_Pos with new parameter
3312         Switch. Do not handle any exception.
3313         (Scan_Make_Switches): Increment Ptr for new switches -vl, -vm and -vh
3314         so that the switch is recognized as valid.
3315         (Scan_Make_Switches): Implement new switches -vl, -vm and -vh.
3316
3317 2005-11-14  GNAT Script  <nobody@adacore.com>
3318
3319         * Make-lang.in: Makefile automatically updated
3320
3321 2005-11-14  Pascal Obry  <obry@adacore.com>
3322
3323         * mdll.adb (Build_Reloc_DLL): Fix parameter handling when a map file is
3324         used.
3325         (Ada_Build_Reloc_DLL): Fix parameter handling when a map file is used.
3326         In both cases the last argument was dropped.
3327
3328 2005-11-14  Eric Botcazou  <ebotcazou@adacore.com>
3329
3330         * namet.h: (Column_Numbe): New type.
3331         (Get_Column_Number): Define to sinput__get_column_number.
3332         (Instantiation): Define to sinput__instantiation.
3333         (Get_Column_Number): Declare.
3334         (Instantiation): Likewise.
3335
3336 2005-11-14  Robert Dewar  <dewar@adacore.com>
3337
3338         * par-ch10.adb (P_Compilation_Unit): Add defenses against junk unit
3339         syntax, which could cause compiler hangs.
3340
3341 2005-11-14  Vincent Celier  <celier@adacore.com>
3342
3343         * prj-ext.adb: Take into account new environment variable
3344         GPR_PROJECT_PATH. Warn if both GPR_PROJECT_PATH and ADA_PROJECT_PATH
3345         are defined.
3346         (Prj.Ext elaboration): For each directory in the ADA_PROJECT_PATH,
3347         normalize its path name, making it absolute and resolving symbolic
3348         links, and replace the original if resolved path is different.
3349
3350 2005-11-14  Vincent Celier  <celier@adacore.com>
3351
3352         * prj-part.adb (Create_Virtual_Extending_Project): Put virtual project
3353         into Prj.Tree.Tree_Private_Part.Projects_Htable for GPS.
3354
3355 2005-11-14  Emmanuel Briot  <briot@adacore.com>
3356
3357         * prj-pp.adb (Print): Do not output the with statement if the
3358         associated name is empty, which happens for virtual extending projects.
3359         (Print): Preserve the "extends all" attribute when printing the project.
3360
3361         * prj-tree.ads (String_Value_Of): Add comment about returned value for
3362         a virtual extending project.
3363
3364 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
3365
3366         * sem_aggr.adb (Resolve_Aggregate): An others choice is legal on the
3367         rhs of an assignment even if the type is unconstrained, when the
3368         context is non-expanding.
3369         In an inlined body, if the context type is private,
3370         resolve with its full view, which must be a composite type.
3371
3372 2005-11-14  Robert Dewar  <dewar@adacore.com>
3373             Ed Schonberg  <schonberg@adacore.com>
3374
3375         * sem_ch10.adb: Change name Is_Package to Is_Package_Or_Generic_Package
3376         Do not give obsolescent warning on with of subprogram (since we
3377         diagnose calls)
3378         (Analyze_With_Clause): Add test for obsolescent package
3379         (Install_Context_Clauses): If the unit is the body of a child unit, do
3380         not install twice the private declarations of the parents, to prevent
3381         circular lists of Use_Clauses in a parent.
3382         (Implicit_With_On_Parent): Do add duplicate with_clause on parent when
3383         compiling body of child unit.
3384         Use new class N_Subprogram_Instantiation
3385         (Expand_With_Clause): If this is a private with_clause for a child unit,
3386         appearing in the context of a package declaration, then the implicit
3387         with_clauses generated for parent units are private as well.
3388         (License_Check): Do not generate message if with'ed unit is internal
3389
3390 2005-11-14  Gary Dismukes  <dismukes@adacore.com>
3391             Ed Schonberg  <schonberg@adacore.com>
3392             Thomas Quinot  <quinot@adacore.com>
3393
3394         * sem_ch12.ads, sem_ch12.adb (Map_Entities): Exclude entities whose
3395         names are internal, because they will not have a corresponding partner
3396         in the actual package.
3397         (Analyze_Formal_Package): Move the setting of the formal package spec's
3398         Generic_Parent field so that it occurs prior to analyzing the package,
3399         to allow proper operation of Install_Parent_Private_Declarations.
3400         (Analyze_Package_Instantiation): Set the instantiated package entity's
3401         Package_Instantiation field.
3402         (Get_Package_Instantiation_Node): Move declaration to package spec.
3403         Retrieve the N_Package_Instantiation node when the Package_Instantiation
3404         field is present.
3405         (Check_Generic_Child_Unit): Within an inlined call, the only possible
3406         instantiation is Unchecked_Conversion, for which no parents are needed.
3407         (Inline_Instance_Body): Deinstall and record the use_clauses for all
3408         parent scopes of a scope being removed prior to inlining an instance
3409         body.
3410         (Analyze_Package_Instantiation): Do not perform front-end inlining when
3411         the current context is itself an instance within a non-instance child
3412         unit, to prevent scope stack errors.
3413         (Save_References): If the node is an aggregate that is an actual in a
3414         call, rewrite as a qualified expression to preserve some type
3415         information, to resolve possible ambiguities in the instance.
3416         (Instance_Parent_Unit): New global variable to record the ultimate
3417         parent unit associated with a generic child unit instance (associated
3418         with the existing Parent_Unit_Visible flag).
3419         (type Instance_Env): New component Instance_Parent_Unit for stacking
3420         parents recorded in the global Instance_Parent_Unit.
3421         (Init_Env): Save value of Instance_Parent_Unit in the Instance_Env
3422         stack.
3423         (Install_Spec): Save the parent unit entity in Instance_Parent_Unit when
3424         it's not a top-level unit, and only do this if Instance_Parent_Unit is
3425         not already set. Replace test of Is_Child_Unit with test of parent's
3426         scope against package Standard. Add comments and a ??? comment.
3427         (Remove_Parent): Revise condition for resetting Is_Immediately_Visible
3428         on a child instance parent to test that the parent equals
3429         Instance_Parent rather than simply checking that the unit is not a
3430         child unit.
3431         (Restore_Env): Restore value of Instance_Parent_Unit from Instance_Env.
3432         (Validate_Derived_Interface_Type_Instance): Verify that all ancestors of
3433         a formal interface are ancestors of the corresponding actual.
3434         (Validate_Formal_Interface_Type): Additional legality checks.
3435         (Analyze_Formal_Derived_Interface_Type): New procedure to handle formal
3436         interface types with ancestors.
3437         (Analyze_Formal_Package): If formal is a renaming, use renamed entity
3438         to diagnose attempts to use generic within its own declaration.
3439
3440 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
3441             Javier Miranda  <miranda@adacore.com>
3442
3443         * sem_ch3.ads, sem_ch3.adb (Build_Discriminal): Add link to original
3444         discriminant.
3445         (Build_Private_Derived_Type): The entity of the created full view of the
3446         derived type does not come from source. If after installing the private
3447         declarations of the parent scope the parent is still private, use its
3448         full view to construct the full declaration of the derived type.
3449         (Build_Derived_Record_Type): Relax the condition that controls the
3450         execution of the check that verifies that the partial view and
3451         the full view agree in the set of implemented interfaces. In
3452         addition, this test now only takes into account the progenitors.
3453         (Derive_Interface_Subprograms): No need to derive subprograms
3454         of ancestors that are interfaces.
3455         (Derive_Subprograms): Remove formal No_Predefined_Prims and the
3456         associated code.
3457         Change name Is_Package to Is_Package_Or_Generic_Package
3458         (Complete_Subprograms_Derivation): Handle the case in which the full
3459         view is a transitive derivation of the ancestor of the partial view.
3460         (Process_Full_View): Rename local subprogram Find_Interface_In_
3461         Descendant to Find_Ancestor_Interface to leave the code more clear.
3462         Remove wrong code that avoids the generation of an error message
3463         when the immediate ancestor of the partial view is an interface.
3464         In addition some minor reorganization of the code has been done to
3465         leave it more clear.
3466         (Analyze_Type_Declaration): If type has previous incomplete tagged
3467         partial view, inherit properly its primitive operations.
3468         (Collect_Interfaces): Make public, for analysis of formal
3469         interfaces.
3470         (Analyze_Interface_Declaration): New procedure for use for regular and
3471         formal interface declarations.
3472         (Build_Derived_Record_Type): Add support for private types to the code
3473         that checks if a tagged type implements abstract interfaces.
3474         (Check_Aliased_Component_Type): The test applies in the spec of an
3475         instance as well.
3476         (Access_Type_Declaration): Clean up declaration of malformed type
3477         declared as an access to its own classwide type, to prevent cascaded
3478         crash.
3479         (Collect_Interfaces): For private extensions and for derived task types
3480         and derived protected types, the parent may be an interface that must
3481         be included in the interface list.
3482         (Access_Definition): If the designated type is an interface that may
3483         contain tasks, create Master_Id for it before analyzing the expression
3484         of the declaration, which may be an allocator.
3485         (Record_Type_Declaration): Set properly the interface kind, for use
3486         in allocators, the creation of master id's for task interfaces, etc.
3487
3488 2005-11-14  Javier Miranda  <miranda@adacore.com>
3489             Ed Schonberg  <schonberg@adacore.com>
3490
3491         * sem_ch6.adb (Check_Conformance): The null-exclusion feature can be
3492         omitted in case of stream attribute subprograms.
3493         (Check_Inline_Pragma): Handle Inline and Inline_Always pragmas that
3494         appear immediately after a subprogram body, when there is no previous
3495         subprogram declaration.
3496         Change name Is_Package to Is_Package_Or_Generic_Package
3497         (Process_Formals): A non null qualifier on a non null named access
3498         type is not an error, and is a warning only if Redundant_Constructs
3499         are flagged.
3500
3501 2005-11-14  Gary Dismukes  <dismukes@adacore.com>
3502             Ed Schonberg  <schonberg@adacore.com>
3503
3504         * sem_ch7.adb (Install_Parent_Private_Declarations): New procedure
3505         nested within Analyze_Package_Specification to install the private
3506         declarations and use clauses within each of the parent units of a
3507         package instance of a generic child package.
3508         (Analyze_Package_Specification): When entering a private part of a
3509         package associated with a generic instance or formal package, the
3510         private declarations of the parent must be installed (by calling new
3511         procedure Install_Parent_Private_Declarations).
3512         Change name Is_Package to Is_Package_Or_Generic_Package
3513         (Preserve_Full_Attributes): For a synchronized type, the corresponding
3514         record is absent in a generic context, which does not indicate a
3515         compiler error.
3516
3517 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
3518
3519         * sem_ch8.adb (Analyze_Subprogram_Renaming): In a generic context, do
3520         not try to rewrite a renamed stream attribute, because the operations
3521         on the type may not have been generated.
3522         Handle properly a renaming_as_body generated for a stream operation
3523         whose default is abstract because the object type itself is abstract.
3524         (Find_Type): If the type is incomplete and appears as the prefix of a
3525         'Class reference, it is tagged, and its list of primitive operations
3526         must be initialized properly.
3527         (Chain_Use_Clauses): When chaining the use clauses that appear in the
3528         private declaration of a parent unit, prior to compiling the private
3529         part of a child unit, find on the scope stack the proper parent entity
3530         on which to link the use clause.
3531         (Note_Redundant_Use): Emit a warning when a redundant use clause is
3532         detected.
3533         (Analyze_Object_Renaming): An attribute reference is not a legal object
3534         if it is not a function call.
3535
3536 2005-11-14  Robert Dewar  <dewar@adacore.com>
3537             Ed Schonberg  <schonberg@adacore.com>
3538
3539         * sem_eval.adb: Implement d.f flag
3540         (Subtype_Statically_Match): A generic actual type has unknown
3541         discriminants when the corresponding actual has a similar partial view.
3542         If the routine is called to validate the signature of an inherited
3543         operation in a child instance, the generic actual matches the full view,
3544
3545 2005-11-14  Hristian Kirtchev  <kirtchev@adacore.com>
3546             Ed Schonberg  <schonberg@adacore.com>
3547             Robert Dewar  <dewar@adacore.com>
3548             Thomas Quinot  <quinot@adacore.com>
3549
3550         * sem_res.adb (Resolve_Call): Provide a better error message whenever
3551         a procedure call is used as a select statement trigger and is not an
3552         entry renaming or a primitive of a limited interface.
3553         (Valid_Conversion): If the operand has a single interpretation do not
3554         remove address operations.
3555         (Check_Infinite_Recursion): Skip freeze nodes when looking for a raise
3556         statement to inhibit warning.
3557         (Resolve_Unary_Op): Do not produce a warning when
3558         processing an expression of the form -(A mod B)
3559         Use Universal_Real instead of Long_Long_Float when we need a high
3560         precision float type for the generated code (prevents gratuitous
3561         Vax_Float stuff when pragma Float_Representation (Vax_Float) used)
3562         (Resolve_Concatenation_Arg): Improve error message when argument is an
3563         ambiguous call to a function that returns an array.
3564         (Make_Call_Into_Operator, Operand_Type_In_Scope): Do not check that
3565         there is an implicit operator in the given scope if we are within an
3566         instance: legality check has been performed on the generic.
3567         (Resolve_Unary_Op): Apply warnings checks on argument of Abs operator
3568         after resolving operand, to avoid false warnings on overloaded calls.
3569
3570 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
3571             Javier Miranda  <miranda@adacore.com>
3572
3573         PR ada/15604
3574
3575         * sem_type.adb (Covers): In an inlined body, a composite type matches
3576         a private type whose full view is a composite type.
3577         (Interface_Present_In_Ancestor): Protect the frontend against
3578         previously detected errors to ensure that its compilation
3579         with assertions enabled gives the same output that its
3580         compilation without assertions.
3581         (Interface_Present_In_Ancestor): Add support for private types.
3582         Change name In_Actual to In_Generic_Actual (clean up)
3583         (Disambiguate): New predicate In_Actual, to recognize expressions that
3584         appear in the renaming declaration generated for generic actuals, and
3585         which must be resolved in the outer context.
3586
3587 2005-11-14  Robert Dewar  <dewar@adacore.com>
3588             Thomas Quinot  <quinot@adacore.com>
3589             Hristian Kirtchev  <kirtchev@adacore.com>
3590             Ed Schonberg  <schonberg@adacore.com>
3591
3592         * sem_util.ads, sem_util.adb: Change name Is_Package to
3593         Is_Package_Or_Generic_Package.
3594         (Check_Obsolescent): New procedure.
3595         (Set_Is_Public): Remove obsolete junk test.
3596         (Set_Public_Status): Do not set Is_Public on an object whose declaration
3597         occurs within a handled_sequence_of_statemets.
3598         (Is_Controlling_Limited_Procedure): Factor some of the logic, account
3599         for a parameterless procedure.
3600         (Enter_Name): Recognize renaming declarations created for private
3601         component of a protected type within protected operations, so that
3602         the source name of the component can be used in the debugger.
3603
3604 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
3605             Robert Dewar  <dewar@adacore.com>
3606
3607         * sem_warn.ads, sem_warn.adb (Publicly_Referenceable): Generic formals
3608         of a generic subprogram are not visible outside the body.
3609         (Set_Warning_Switch): New procedure (code to set warning mode moved
3610         here from Switch.C so that it can be shared by pragma processing.
3611         (Check_References): Special case warning for non-modified non-imported
3612         volatile objects.
3613         * par-prag.adb: Modify processing of pragma Warnings to accomodate new
3614         form with a string literal argument
3615
3616 2005-11-14  Javier Miranda  <miranda@adacore.com>
3617
3618         * s-finroo.ads, s-finroo.adb (Read): Addition of "not null" to the
3619         anonymous access.
3620         (Write): Addition of "not null" to the anonymous access.
3621         (Read): Addition of "not null" to the anonymous access.
3622         (Write): Addition of "not null" to the anonymous access.
3623
3624         * s-strxdr.adb, s-stratt.ads, s-stratt.adb (I_AD, I_AS, I_B, I_C, I_F,
3625         I_I, I_LF, I_LI, I_LLF, I_LLI, I_LLU, I_LU, I_SF, I_SI, I_SSI, I_SSU,
3626         I_SU, I_U, I_WC): Addition of "not null" to the anonymous access.
3627         (W_AD, W_AS, W_B, W_C, W_F, W_I, W_LF, W_LI, W_LLF, W_LLI, W_LLU,
3628         W_LU, W_SF, W_SI, W_SSI, W_SSU, W_SU, W_U, W_WC): Addition of
3629         "not null" to the anonymous access.
3630
3631 2005-11-14  Robert Dewar  <dewar@adacore.com>
3632
3633         * s-stoele.adb: Fix code for Address mod Storage_Offset for negative
3634         offset values
3635
3636 2005-11-14  Vincent Celier  <celier@adacore.com>
3637
3638         * switch.adb (Bad_Switch): New procedure
3639         (Scan_Nat, Scan_Pos): Directly call Osint.Fail with the appropriate
3640         message when in error.
3641
3642         * switch.ads (Bad_Switch, Bad_Switch_Value, Missing_Switch_Value,
3643         Too_Many_Output_Files): Remove declarations, no longer used.
3644         (Scan_Nat): New parameter Switch
3645         (Scan_Pos): Ditto
3646         (Bad_Switch): New procedure
3647
3648         * switch-b.adb (Scan_Binder_Switches): Replace "raise Bad_Switch;"
3649         with call to new procedure Bad_Switch. Call Scan_Pos and Scan_Natwith
3650         new parameter Switch. Replace "raise Too_Many_Output_Files;" with call
3651         to Osint.Fail. Do not handle any exception.
3652
3653 2005-11-14  Vincent Celier  <celier@adacore.com>
3654
3655         * tempdir.adb (Tempdir): Do not use environment variable TMPDIR if it
3656         designates a non existent directory.
3657
3658 2005-11-14  Robert Dewar  <dewar@adacore.com>
3659
3660         * xgnatugn.adb: Replace invalid membership test by 'Valid
3661
3662 2005-11-14  Vincent Celier  <celier@adacore.com>
3663
3664         * makegpr.adb (Gprmake): Do not attempt to build the global archive if
3665         there is no object directory.
3666
3667 2005-11-14  Robert Dewar  <dewar@adacore.com>
3668
3669         * usage.adb: Minor adjustment to output format, use nn instead of nnn
3670         (so that -gnateInnn does not run into next column)
3671
3672 2005-11-14  Ed Falis  <falis@adacore.com>
3673
3674         * s-bitops.adb (Bits_Array): corrected comment: "unconstrained" =>
3675         "constrained"
3676
3677 2005-11-14  Cyrille Comar  <comar@adacore.com>
3678
3679         * s-chepoo.ads: Add comments on Dereference.
3680         Remove unnecessary inherited abstract primitives.
3681         Cosmetic cleanup.
3682
3683 2005-11-14  Robert Dewar  <dewar@adacore.com>
3684
3685         * sem_cat.ads (Validate_Access_Type_Declaration): Remove declaration
3686         node parameter, not needed, since it is available as Declaration_Node.
3687
3688 2005-11-14  Geert Bosch  <bosch@adacore.com>
3689
3690         * s-exnllf.adb (Exn_LLF): Fix comment to be more precise and
3691         grammatically correct.
3692
3693 2005-11-14  Vincent Celier  <celier@adacore.com>
3694
3695         * s-fileio.ads: Correct spelling error in comment
3696
3697 2005-11-14  Cyrille Comar  <comar@adacore.com>
3698             Robert Dewar  <dewar@adacore.com>
3699             Vincent Celier  <celier@adacore.com>
3700             Ben Brosgol  <brosgol@adacore.com>
3701             Jose Ruiz  <ruiz@adacore.com>
3702             Pascal Obry  <obry@adacore.com>
3703
3704         * gnat_ugn.texi: 
3705         Document that -fstack-check is needed for strict compliance with the
3706         Ada 95 Reference Manual.
3707         Correct reference to VAX systems to meet HP guidelines
3708         Add documentation for new gnatmake switches -vl, -vm and -vh
3709         Replace DEC Ada by HP Ada
3710         Replace DIGITAL by HP
3711         Remove empty section on tools in compatibility section
3712         Clarify the Windows convention semantics.
3713         Document the Win32 calling convention.
3714         The Stdcall, Win32 and DLL convention are synonyms.
3715         Add a note in -gnatR description about zero size record components
3716         Note on new >= and <= warnings for -gnatwc
3717         Document that equal sign after -gnatm is optional.
3718         Note that strip is working fine on DLL built with a Library
3719         Project. The restriction apply only to DLL built with gnatdll.
3720         Update section about the way to debug a DLL.
3721         Update information about the DLL convention.
3722         Document -C switch for gnatprep
3723         Document new attribute Library_ALI_Dir
3724         Update elaboration doc to include implicit Elaborate pragmas now
3725         generated for subprogram instantiations.
3726         Document limitation on executable names that include spaces for --GCC,
3727         --GNATBIND, and --GNATLINK switches.
3728         Document that -w causes -gnatws to be added at start of gcc switches
3729
3730         * gnat_rm.texi: Document that -mieee is needed for generating infinite
3731         and NaN values in case of overflow on machines that are not fully
3732         compliant with the IEEE floating-point standard.
3733         Create a section describing the set of compiler options needed for
3734         strict compliance with the Ada 95 Reference Manual.
3735         Add documentation for pragma Obsolescent applied to a package
3736         Clarify potential issues of mixed language programs related to the
3737         I/O buffering enabling in the elaboration of the GNAT runtime.
3738         Add extra documentation for pragma Restrictions (No_Elaboration_Code)
3739         This documentation only patch adds extra documentsion for pragma
3740         Restrictions (No_Elaboration_Code), explaining why it is not possible
3741         to document this restriction in terms of allowed source constructs.
3742         Document string literal form of pragma Warnings
3743         Document new attribute Library_ALI_Dir
3744         Add documentation on stable attributes in project files that was missing
3745
3746         * gnat-style.texi: Indicate that paragraphs within a single comment
3747         should be separated by empty comment lines
3748
3749         * ug_words: Added replacements for -gnat95 and -gnat05 (/95 and
3750         /05 respectively)
3751
3752         * bindusg.adb: Minor cleanup, put -m before -M for consistency
3753
3754 2005-11-14  Robert Dewar  <dewar@adacore.com>
3755
3756         * a-secain.adb, a-slcain.adb, a-shcain.adb, a-chtgke.ads, a-chtgke.adb,
3757         a-stwiha.adb, a-strhas.adb, a-chzla1.ads, a-chzla9.ads, a-stzbou.adb,
3758         a-stzbou.ads, a-stzfix.adb, a-stzhas.adb, a-stzmap.adb, a-stzmap.ads,
3759         a-stzsea.adb, a-stzsea.ads, a-stzsup.adb, a-stzsup.ads, a-stzunb.adb,
3760         a-stzunb.ads, a-szuzha.adb, a-szuzha.ads, a-szuzti.adb, a-szuzti.ads,
3761         a-ztcoau.adb, a-ztcoau.ads, a-ztcoio.adb, a-ztcstr.adb, a-ztcstr.ads,
3762         a-ztdeau.adb, a-ztdeau.ads, a-ztdeio.adb, a-ztdeio.ads, a-ztedit.adb,
3763         a-ztedit.ads, a-ztenau.ads, a-ztenio.adb, a-ztenio.ads, a-ztexio.adb,
3764         a-ztexio.ads, a-ztfiio.adb, a-ztfiio.ads, a-ztflau.adb, a-ztflau.ads,
3765         a-ztflio.adb, a-ztflio.ads, a-ztgeau.adb, a-ztgeau.ads, a-ztinau.adb,
3766         a-ztinau.ads, a-ztinio.adb, a-ztmoau.ads, a-ztmoio.adb, a-ztmoio.ads,
3767         a-zttest.adb, g-enblsp-vms-alpha.adb, g-enblsp-vms-alpha.adb,
3768         g-enblsp-vms-ia64.adb, g-enblsp-vms-ia64.adb, system-linux-hppa.ads,
3769         a-chacon.adb, a-chacon.ads, a-wichun.adb, a-wichun.ads, a-zchuni.adb,
3770         a-zchuni.ads, g-trasym-vms-alpha.adb, g-trasym-vms-ia64.adb,
3771         system-hpux-ia64.ads, g-soccon-unixware.ads, g-soliop-unixware.ads,
3772         g-soccon-interix.ads, g-soliop-solaris.ads, g-eacodu-vms.adb,
3773         g-expect-vms.adb, g-socthi-vms.adb, g-soliop-mingw.ads,
3774         a-intnam-unixware.ads, a-intnam-lynxos.ads, a-intnam-tru64.ads,
3775         a-intnam-aix.ads, a-intnam-linux.ads, a-intnam-linux.ads,
3776         a-intnam-dummy.ads, a-numaux-libc-x86.ads, a-intnam-interix.ads,
3777         a-intnam-solaris.ads, a-calend-vms.adb, a-calend-vms.ads,
3778         a-intnam-vms.ads, a-calend-mingw.adb, a-intnam-mingw.ads,
3779         a-intnam-vxworks.ads, a-numaux-vxworks.ads, system-unixware.ads,
3780         system-linux-ia64.ads, a-intnam-freebsd.ads, system-freebsd-x86.ads,
3781         system-lynxos-ppc.ads, system-linux-x86_64.ads, a-stunha.adb,
3782         a-cgaaso.ads, a-cgaaso.adb, a-chtgop.adb, a-cgcaso.adb, a-cgarso.adb,
3783         a-cohata.ads, a-crbtgk.adb, a-crbltr.ads, a-coprnu.adb, a-rbtgso.adb,
3784         a-intnam-darwin.ads, system-darwin-ppc.ads, gprmake.adb, makegpr.ads,
3785         system-tru64.ads, system-aix.ads, system-solaris-x86.ads,
3786         system-irix-o32.ads, s-interr-sigaction.adb, system-irix-n32.ads,
3787         s-parame-mingw.adb, system-hpux.ads, s-traceb-hpux.adb,
3788         system-linux-x86.ads, s-inmaop-dummy.adb, system-os2.ads,
3789         system-interix.ads, system-solaris-sparc.ads,
3790         system-solaris-sparcv9.ads, s-inmaop-vms.adb,
3791         s-mastop-vms.adb, expander.adb, expander.ads, s-gloloc-mingw.adb,
3792         system-mingw.ads, system-vms-zcx.ads, s-osinte-fsu.adb,
3793         s-traceb-mastop.adb, a-exextr.adb, a-exstat.adb, a-filico.ads,
3794         a-finali.ads, a-interr.ads, a-intsig.adb, a-intsig.ads,
3795         a-except.ads, a-numaux-x86.ads, a-astaco.adb, a-calend.adb,
3796         a-calend.ads, a-chahan.adb, a-chahan.ads, a-chlat9.ads,
3797         a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
3798         a-comlin.adb, a-comlin.ads, a-cwila1.ads, a-cwila9.ads,
3799         a-elchha.adb, a-decima.adb, a-decima.ads, a-diocst.ads,
3800         a-direio.adb, a-direio.ads, a-excach.adb, a-excach.adb,
3801         a-exctra.ads, ali-util.adb, a-ngcefu.adb, a-ngcoty.adb,
3802         a-ngcoty.ads, a-nudira.adb, a-nudira.ads, a-nuflra.adb,
3803         a-numaux.ads, a-reatim.ads, a-sequio.adb, a-sequio.ads,
3804         a-siocst.ads, a-ssicst.ads, a-stmaco.ads, a-storio.adb,
3805         a-strbou.adb, a-strbou.ads, a-stream.ads, a-strfix.adb,
3806         a-strmap.adb, a-strmap.ads, a-strsea.adb, a-strsea.ads,
3807         a-strsup.adb, a-strsup.ads, a-strunb.adb, a-strunb.ads,
3808         a-stwibo.adb, a-stwibo.ads, a-stwifi.adb, a-stwima.adb,
3809         a-stwima.ads, a-stwise.adb, a-stwise.ads, a-stwisu.adb,
3810         a-stwisu.ads, a-stwiun.adb, a-stwiun.ads, a-suteio.adb,
3811         a-suteio.ads, a-swmwco.ads, a-swuwti.adb, a-swuwti.ads,
3812         a-sytaco.adb, a-sytaco.ads, a-tasatt.adb, a-taside.adb,
3813         a-taside.ads, a-teioed.adb, a-textio.adb, a-textio.ads,
3814         a-ticoau.adb, a-ticoau.ads, a-ticoio.adb, a-tideau.adb,
3815         a-tideio.adb, a-tienau.adb, a-tienio.adb, a-tifiio.adb,
3816         a-tiflio.adb, a-tigeau.adb, a-tigeau.ads, a-tiinau.adb,
3817         a-tiinio.adb, a-timoau.adb, a-timoio.adb, a-timoio.ads,
3818         a-tiocst.ads, a-titest.adb, atree.adb, a-witeio.adb,
3819         a-witeio.ads, a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb,
3820         a-wtcstr.ads, a-wtdeau.adb, a-wtdeio.adb, a-wtedit.adb,
3821         a-wtedit.ads, a-wtenau.adb, a-wtenio.adb, a-wtfiio.adb,
3822         a-wtflio.adb, a-wtgeau.adb, a-wtinau.adb, a-wtinio.adb,
3823         a-wtmoau.adb, a-wtmoio.adb, a-wttest.adb, back_end.adb,
3824         bindgen.adb, butil.adb, butil.ads, checks.ads, cio.c, comperr.adb,
3825         csets.ads, cstand.adb, debug.ads, elists.ads, errno.c, errout.adb,
3826         errout.ads, erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
3827         errutil.ads, err_vars.ads, eval_fat.adb, exp_ch11.adb, exp_ch11.ads,
3828         exp_ch2.adb, exp_ch7.ads, exp_imgv.ads, exp_pakd.adb, exp_prag.adb,
3829         exp_prag.ads, exp_tss.adb, exp_tss.ads, exp_vfpt.ads, fe.h, fmap.adb,
3830         freeze.ads, frontend.adb, frontend.ads, g-arrspl.adb, g-arrspl.ads,
3831         g-awk.adb, g-awk.ads, g-boumai.ads, g-calend.adb, g-calend.ads,
3832         g-catiio.adb, g-comlin.adb, g-comlin.ads, g-comlin.ads, g-comlin.ads,
3833         g-comver.adb, g-crc32.adb, g-crc32.ads, g-ctrl_c.ads, g-curexc.ads,
3834         g-debpoo.ads, g-debuti.adb, g-diopit.adb, g-diopit.ads, g-dirope.adb,
3835         g-dirope.ads, g-dyntab.adb, g-dyntab.ads, g-excact.adb, g-excact.ads,
3836         g-except.ads, g-exctra.adb, g-exctra.ads, g-expect.ads, g-flocon.ads,
3837         g-hesorg.ads, g-io.adb, g-locfil.ads, g-md5.adb, g-md5.ads, g-md5.ads,
3838         g-moreex.adb, g-signal.ads, g-signal.adb, gnatbind.ads, gnatchop.adb,
3839         gnatcmd.adb, gnatfind.adb, gnatlbr.adb, gnatmake.ads, gnatmem.adb,
3840         gnatprep.adb, gnatprep.ads, gnatsym.adb, gnatxref.adb, g-os_lib.adb,
3841         g-os_lib.ads, g-pehage.adb, g-pehage.ads, gprep.ads, g-regexp.adb,
3842         g-regexp.ads, g-regist.adb, g-regist.ads, g-regpat.ads, g-semaph.adb,
3843         g-socthi.adb, g-soliop.ads, g-spipat.adb, g-spipat.ads, g-sptabo.ads,
3844         g-sptain.ads, g-sptavs.ads, g-string.ads, g-tasloc.adb, g-tasloc.ads,
3845         g-trasym.adb, g-trasym.ads, i-fortra.adb, i-fortra.ads, inline.adb,
3846         layout.adb, live.adb, make.ads, makeutl.ads, makeutl.adb, mdll-fil.adb,
3847         mdll-fil.ads, mdll-utl.ads, memroot.ads, memtrack.adb, mlib.ads,
3848         mlib-fil.adb, mlib-fil.ads, mlib-prj.ads, mlib-utl.adb, mlib-utl.ads,
3849         nlists.adb, nlists.ads, osint.adb, osint.ads, osint-c.adb, osint-l.adb,
3850         osint-l.ads, osint-m.ads, output.adb, par.adb, par.adb, par.ads,
3851         par-ch11.adb, par-ch12.adb, par-ch2.adb, par-ch4.adb, par-ch5.adb,
3852         par-ch6.adb, par-ch9.adb, par-endh.adb, par-labl.adb, par-load.adb,
3853         par-tchk.adb, prep.adb, prepcomp.adb, prepcomp.ads, prj-attr.ads,
3854         prj-com.ads, prj-dect.adb, prj-dect.ads, prj-env.ads, prj-err.ads,
3855         prj-ext.ads, prj-makr.adb, prj-makr.ads, prj-nmsc.ads, prj-pars.adb,
3856         prj-pars.ads, prj-part.ads, prj-pp.ads, prj-proc.ads, prj-strt.adb,
3857         prj-strt.ads, prj-tree.adb, prj-util.adb, prj-util.ads, rtsfind.adb,
3858         sem.adb, sem.ads, sem_case.adb, sem_case.ads, sem_ch11.adb,
3859         sem_ch4.adb, sem_ch6.ads, sem_ch7.ads, sem_dist.ads, sem_elab.ads,
3860         sem_elim.ads, sem_eval.ads, sem_intr.ads, sem_maps.adb, sem_maps.ads,
3861         sem_maps.ads, sem_res.ads, sem_type.ads, sfn_scan.adb, sfn_scan.ads,
3862         s-imgwch.ads, s-imgwiu.adb, s-imgwiu.ads, s-inmaop.ads, sinput.adb,
3863         sinput.ads, s-pack03.adb, s-pack03.ads, s-pack05.adb, s-pack05.ads,
3864         s-pack06.adb, s-pack06.ads, s-pack07.adb, s-pack07.ads, s-pack09.adb,
3865         s-pack09.ads, s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads,
3866         s-pack12.adb, s-pack12.ads, s-pack13.adb, s-pack13.ads, s-pack14.adb,
3867         s-pack14.ads, s-pack15.adb, s-pack15.ads, s-pack17.adb, s-pack17.ads,
3868         s-pack18.adb, s-pack18.ads, s-pack19.adb, s-pack19.ads, s-pack20.adb,
3869         s-pack20.ads, s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads,
3870         s-pack23.adb, s-pack23.ads, s-pack24.adb, s-pack24.ads, s-pack25.adb,
3871         s-pack25.ads, s-pack26.adb, s-pack26.ads, s-pack27.adb, s-pack27.ads,
3872         s-pack28.adb, s-pack28.ads, s-pack29.adb, s-pack29.ads, s-pack30.adb,
3873         s-pack30.ads, s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads,
3874         s-pack34.adb, s-pack34.ads, s-pack35.adb, s-pack35.ads, s-pack36.adb,
3875         s-pack36.ads, s-pack37.adb, s-pack37.ads, s-pack38.adb, s-pack38.ads,
3876         s-pack39.adb, s-pack39.ads, s-pack40.adb, s-pack40.ads, s-pack41.adb,
3877         s-pack41.ads, s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads,
3878         s-pack44.adb, s-pack44.ads, s-pack45.adb, s-pack45.ads, s-pack46.adb,
3879         s-pack46.ads, s-pack47.adb, s-pack47.ads, s-pack48.adb, s-pack48.ads,
3880         s-pack49.adb, s-pack49.ads, s-pack50.adb, s-pack50.ads, s-pack51.adb,
3881         s-pack51.ads, s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads,
3882         s-pack54.adb, s-pack54.ads, s-pack55.adb, s-pack55.ads, s-pack56.adb,
3883         s-pack56.ads, s-pack57.adb, s-pack57.ads, s-pack58.adb, s-pack58.ads,
3884         s-pack59.adb, s-pack59.ads, s-pack60.adb, s-pack60.adb, s-pack60.ads,
3885         s-pack61.adb, s-pack61.ads, s-pack62.adb, s-pack62.ads, s-pack63.adb,
3886         s-pack63.ads, s-parint.adb, s-parint.adb, s-parint.ads, sprint.ads,
3887         s-purexc.ads, s-restri.ads, s-restri.adb, s-scaval.adb, s-scaval.ads,
3888         s-secsta.adb, s-secsta.ads, s-sequio.adb, s-sequio.ads, stand.ads,
3889         s-tasuti.adb, s-traceb.adb, s-traceb.ads, stringt.adb, stringt.ads,
3890         styleg.ads, s-valboo.adb, s-valboo.ads, s-valcha.adb, s-valcha.ads,
3891         s-valdec.adb, s-valdec.ads, s-valint.adb, s-valint.ads, s-valint.ads,
3892         s-vallld.adb, s-vallld.ads, s-vallli.adb, s-vallli.ads, s-valllu.adb,
3893         s-valllu.ads, s-valrea.adb, s-valrea.ads, s-valuns.adb, s-valuns.ads,
3894         s-valuti.adb, s-valuti.ads, s-valwch.ads, s-veboop.adb, s-veboop.ads,
3895         s-vercon.adb, s-vercon.ads, s-wchcnv.adb, s-wchcnv.ads, s-wchcon.ads,
3896         s-wchjis.adb, s-wchjis.ads, s-wchstw.adb, s-wchstw.adb, s-wchstw.ads,
3897         s-wchwts.adb, s-wchwts.ads, s-widboo.adb, s-widboo.ads, s-widcha.adb,
3898         s-widcha.ads, s-widenu.adb, s-widenu.ads, s-widlli.adb, s-widlli.ads,
3899         s-widllu.adb, s-widllu.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb,
3900         s-wwdcha.ads, s-wwdenu.adb, s-wwdenu.ads, symbols.adb, symbols.ads,
3901         table.ads, targparm.adb, targparm.ads, tb-alvms.c, tb-alvxw.c,
3902         tbuild.adb, tree_io.ads, treepr.adb, treeprs.adt, ttypef.ads,
3903         ttypes.ads, types.adb, uintp.adb, uintp.ads, uname.ads, urealp.ads,
3904         usage.ads, validsw.ads, vxaddr2line.adb, widechar.adb, widechar.ads,
3905         xeinfo.adb, xnmake.adb, xref_lib.ads, xr_tabls.adb, xr_tabls.ads,
3906         xsinfo.adb, xtreeprs.adb, xsnames.adb, vms_conv.ads, vms_conv.adb,
3907         a-dirval.ads, a-dirval.adb, a-dirval-mingw.adb, a-direct.ads,
3908         a-direct.adb, indepsw.ads, prj-attr-pm.ads, system-linux-ppc.ads,
3909         a-numaux-darwin.ads, a-numaux-darwin.adb,
3910         a-swuwha.ads, a-stunha.ads: Minor reformatting
3911
3912 2005-11-14  Robert Dewar  <dewar@adacore.com>
3913
3914         PR ada/18434
3915         * osint-m.adb: Add pragma Elaborate_All for Osint
3916
3917 2005-11-10  Eric Botcazou  <ebotcazou@adacore.com>
3918
3919         PR ada/23995
3920         * trans.c (call_to_gnu): Restore statement lost in translation.
3921
3922 2005-11-08  Eric Botcazou  <ebotcazou@adacore.com>
3923
3924         * init.c: Use the Linux-specific section for the IA-64/Linux target.
3925         (__gnat_adjust_context_for_raise): Add conditional code so that the
3926         IA-64 is also supported.
3927
3928 2005-11-03  James E Wilson  <wilson@specifix.com>
3929
3930         PR ada/23427
3931         * trans.c (gnat_to_gnu): Use TYPE_SIZE_UNIT not TYPE_SIZE in
3932         TREE_OVERFLOW check.
3933
3934 2005-09-21  Olivier Hainque  <hainque@adacore.com>
3935
3936         PR ada/22418
3937         * decl.c (maybe_pad_type): Use proper bitsizetype for XVZ objects,
3938         as we create them to store a size in bits.
3939
3940 2005-10-21  Eric Botcazou  <ebotcazou@adacore.com>
3941
3942         PR ada/21937
3943         PR ada/22328
3944         PR ada/22381
3945         PR ada/22383
3946         PR ada/22419
3947         PR ada/22420
3948         * utils2.c (build_return_expr): New helper function.
3949         * gigi.h (build_return_expr): Declare it.
3950         * trans.c (Subprogram_Body_to_gnu): Use build_return_expr instead
3951         of manually building the RETURN_EXPR tree.
3952         (call_to_gnu): Pass MODIFY_EXPR through build_binary_op.
3953         (gnat_to_gnu) <N_Return_Statement>: Pass MODIFY_EXPR through
3954         build_binary_op for the "target pointer" case.  Use build_return_expr
3955         instead of manually building the RETURN_EXPR tree.
3956
3957 2005-09-16  Laurent GUERBY  <laurent@guerby.net>
3958
3959         PR ada/23788
3960         * s-tpinop.ads: Make this unit Preelaborate.
3961
3962 2005-09-16  Andreas Jaeger  <aj@suse.de>
3963
3964         * socket.c: Add string.h for memcpy.
3965
3966 2005-09-05  Arnaud Charlet  <charlet@adacore.com>
3967
3968         * dec-io.ads, dec-io.adb: Removed, no longer used.
3969
3970 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
3971
3972         * a-calend-mingw.adb: Add call to OS_Primitives.Initialize;
3973
3974         * s-taprop-mingw.adb, s-taprop-vms.adb, s-taprop-solaris.adb,
3975         s-taprop-os2.adb, s-taprop-irix-athread.adb, s-taprop-linux.adb,
3976         s-taprop-hpux-dce.adb, s-taprop-irix.adb, s-taprop-tru64.adb,
3977         s-taprop-lynxos.adb: Move with clauses outside Warnings Off now that
3978         dependent units are Preelaborate.
3979         (Initialize): Call Interrupt_Managemeent.Initialize and
3980         OS_Primitives.Initialize to ensure proper initialization of this unit.
3981         Remove use of System.Soft_Links
3982         Make this unit Preelaborate.
3983
3984         * s-stache.ads, s-taspri-vxworks.ads, s-taspri-mingw.ads,
3985         s-taspri-vms.ads, s-tasinf-solaris.ads, s-taspri-os2.ads,
3986         s-taspri-lynxos.ads, s-taspri-hpux-dce.ads, s-taspri-tru64.ads,
3987         s-tasinf-tru64.ads, s-tasinf-irix.ads, s-tasinf-irix-athread.ads,
3988         s-proinf-irix-athread.adb, s-proinf-irix-athread.ads,
3989         s-tratas.ads, s-tasinf.ads: Minor reformatting.
3990         Add pragma Preelaborate, since these packages are suitable for this
3991         categorization.
3992         Update comments.
3993
3994         * s-traent-vms.ads, s-intman-dummy.adb,
3995         s-taprop-dummy.adb: Make this unit Preelaborate.
3996
3997         * s-osprim-vxworks.adb, s-osprim-vms.adb, s-osprim-vms.ads,
3998         s-osprim-mingw.adb, s-intman-vxworks.ads, s-intman-vxworks.adb,
3999         s-intman-vms.adb, s-intman-mingw.adb, s-intman-vms.ads,
4000         s-osprim-unix.adb, s-osprim-os2.adb, s-osprim-solaris.adb,
4001         s-intman-solaris.adb, s-intman-irix-athread.adb,
4002         s-intman-irix.adb: Mark this unit Preelaborate.
4003         (Initialize): New procedure.
4004         Update comments.
4005
4006         * s-taspri-linux.ads: Removed.
4007
4008         * s-tpopsp-solaris.adb (Initialize): Create the key in this procedure,
4009         as done by other implementations (e.g. posix).
4010
4011         * s-taprop.ads (Timed_Delay): Update spec since the caller now is
4012         responsible for deferring abort.
4013         Mark this unit Preelaborate.
4014
4015         * s-taprob.adb, s-tarest.adb: Call System.Tasking.Initialize to ensure
4016         proper initialization of the tasking run-time.
4017
4018         * s-tasdeb.ads: Mark this unit Preelaborate.
4019         (Known_Tasks): Add explicit default value to avoid elaboration code.
4020
4021         * s-inmaop-vms.adb (Elaboration code): Add call to
4022         Interrupt_Management.Initialize since the elaboration code depends on
4023         proper initialization of this package.
4024
4025         * s-intman.ads, s-inmaop-posix.adb, s-intman-posix.adb,
4026         s-osprim.ads, s-taprop-posix.adb, s-taspri-posix.ads,
4027         s-osprim-posix.adb: Make this unit Preelaborate.
4028
4029         * a-calend.adb: Add call to OS_Primitives.Initialize
4030
4031         * a-elchha.adb: Update use of Except.Id.Full_Name.
4032         Minor reformatting.
4033         Remove use of Ada.Exceptions.Traceback when possible, cleaner.
4034
4035         * a-dynpri.adb, a-sytaco.adb, a-sytaco.ads:
4036         Move with clauses outside Warnings Off now that dependent units are
4037         Preelaborate.
4038         Use raise xxx with "..."; Ada 2005 form.
4039
4040         * a-taside.ads, a-taside.adb:
4041         Remove some dependencies, to make it easier to make this unit truly
4042         Preelaborate.
4043         Rewrite some code to be conformant with Preelaborate rules.
4044
4045         * g-os_lib.adb: Remove non-preelaborate code so that this unit can be
4046         marked Preelaborate in the future.
4047
4048         * s-proinf.ads, g-string.ads, s-auxdec.ads, s-auxdec-vms_64.ads: Make
4049         these units Preelaborate.
4050
4051         * s-exctab.adb: Update use of Except.Id.Full_Name.
4052
4053         * s-soflin.ads, s-soflin.adb: Mark this unit Preelaborate_05.
4054         (Set_Exc_Stack_Addr_Soft, Get_Exc_Stack_Addr_NT, Set_Exc_Stack_Addr_NT,
4055         Set_Exc_Stack_Addr): Removed, no longer used.
4056         Remove reference to *Machine_State_Addr*, no longer needed.
4057
4058         * s-stalib.ads: Mark this unit as Preelaborate[_05].
4059         (Exception_Data): Full_Name is now a System.Address so that this unit
4060         can be made Preelaborate.
4061         Clean up/simplify code thanks to Full_Name being a System.Address.
4062         Remove obsolete pragma Suppress (All_Checks), no longer needed.
4063
4064         * s-taskin.ads, s-taskin.adb:
4065         Move with clauses outside Warnings Off now that dependent units are
4066         Preelaborate.
4067         Make this unit Preelaborate.
4068         (Initialize): New proceduure, replace elaboration code and makes the
4069         set up of the tasking run-time cleaner.
4070         (Detect_Blocking): Now a function instead of a deferred boolean, to
4071         obey Preelaborate rules.
4072
4073         * s-tassta.adb (Finalize_Global_Tasks): Remove Get/Set_Exc_Stack_Addr
4074         soft links, no longer used.
4075
4076         * s-traces.ads, s-traent.ads: Add pragma Preelaborate, since these
4077         packages are suitable for this categorization.
4078
4079         * s-solita.adb: Replace use of Ada.Exception by raise xxx with "..."
4080         since we compile run-time sources in Ada 2005 mode.
4081         (Timed_Delay_T): Call Abort_Defer/Undefer around Timed_Delay, to
4082         avoid having s-taprop*.adb depend on s-soflin and to avoid code
4083         duplication.
4084         Remove reference to *Machine_State_Addr*, no longer needed.
4085
4086 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
4087
4088         * s-mastop-tru64.adb, s-mastop-irix.adb, s-mastop-vms.adb
4089         (Enter_Handler, Set_Signal_Machine_State): Removed, no longer used.
4090         Remove reference to System.Exceptions.
4091
4092         * s-mastop-x86.adb: Removed, no longer used.
4093
4094         * s-traceb-mastop.adb: Adjust calls to Pop_Frame.
4095
4096         * a-excach.adb: Minor reformatting.
4097
4098         * a-except.ads, a-except.adb: Remove global Warnings (Off) pragma, and
4099         instead fix new warnings that were hidden by this change.
4100         (AAA, ZZZ): Removed, replaced by...
4101         (Code_Address_For_AAA, Code_Address_For_ZZZ): ... these functions, who
4102         are used instead of constants, to help make Ada.Exception truly
4103         preelaborate.
4104         (Rcheck_*, Raise_Constraint_Error, Raise_Program_Error,
4105         Raise_Storage_Error): File is now a System.Address, to simplify code.
4106         (Elab code): Removed, no longer used.
4107         (Null_Occurrence): Remove Warnings Off and make this construct
4108         preelaborate.
4109         Remove code related to front-end zero cost exception handling, since
4110         it is no longer used.
4111         Remove -gnatL/-gnatZ switches.
4112
4113         * a-exexda.adb (Append_Info_Exception_Name, Set_Exception_C_Msg):
4114         Update use of Except.Msg.
4115
4116         * gnat1drv.adb, inline.adb, bindgen.adb, debug.adb, exp_ch11.ads,
4117         freeze.adb, frontend.adb, lib.adb, exp_ch11.adb: Remove code related
4118         to front-end zero cost exception handling, since it is no longer used.
4119         Remove -gnatL/-gnatZ switches.
4120
4121         * lib-writ.ads: Minor reformatting
4122         Remove doc of UX
4123
4124         * Makefile.rtl: Remove references to s-except*, s-mastop-x86*
4125
4126         * Make-lang.in: Remove references to s-except.ads
4127
4128         * s-except.ads: Removed, no longer used.
4129
4130         * s-mastop.ads, s-mastop.adb:
4131         (Enter_Handler, Set_Signal_Machine_State): Removed, no longer used.
4132         Remove reference to System.Exceptions.
4133
4134         * raise.h, usage.adb, targparm.adb, targparm.ads, switch-m.adb,
4135         switch-b.adb: Remove code related to front-end zero cost exception
4136         handling, since it is no longer used.
4137         Remove -gnatL/-gnatZ switches.
4138
4139 2005-09-01  Robert Dewar  <dewar@adacore.com>
4140             Gary Dismukes  <dismukes@adacore.com>
4141             Javier Miranda  <miranda@adacore.com>
4142
4143         * exp_ch4.adb (Expand_N_In): Replace test of expression in its own
4144         type by valid test and generate warning.
4145         (Tagged_Membership): Generate call to the run-time
4146         subprogram IW_Membership in case of "Iface_CW_Typ in Typ'Class"
4147         Change formal name Subtype_Mark to Result_Definition in several calls to
4148         Make_Function_Specification.
4149         (Expand_Allocator_Expression): Add tests for suppression of the AI-344
4150         check for proper accessibility of the operand of a class-wide allocator.
4151         The check can be left out if checks are suppressed or if the expression
4152         has a specific tagged type whose level is known to be safe.
4153
4154         * exp_ch5.adb (Expand_N_Assignment_Statement): Simplify the code that
4155         generates the run-time check associated with null-excluding entities.
4156         (Expand_N_Return_Statement): Add tests to determine if the accessibility
4157         check on the level of the return expression of a class-wide function
4158         can be elided. The check usually isn't needed if the expression has a
4159         specific type (unless it's a conversion or a formal parameter). Also
4160         add a test for whether accessibility checks are suppressed. Augment
4161         the comments to describe the conditions for performing the check.
4162
4163 2005-09-01  Hristian Kirtchev  <kirtchev@adacore.com>
4164             Javier Miranda  <miranda@adacore.com>
4165             Gary Dismukes  <dismukes@adacore.com>
4166             Ed Schonberg  <schonberg@adacore.com>
4167
4168         * a-tags.adb (IW_Membership): Give support to
4169         "Iface_CW_Typ in T'Class". For this purpose the functionality of this
4170         subprogram has been extended to look for the tag in the ancestors tag
4171         table.
4172         Update the structure of the GNAT Dispatch Table to reflect the
4173         additional two tables used in dispatching selects.
4174         Introduce appropriate array types and record components in
4175         Type_Specific_Data to reflect the two tables.
4176         (Get_Entry_Index, Set_Entry_Index): Retrieve and set the entry index in
4177         the TSD of a tag, indexed by position.
4178         (Get_Prim_Op_Kind, Set_Prim_Op_Kind): Retrieve and set the primitive
4179         operation kind in the TSD of a tag, indexed by position.
4180
4181         * a-tags.ads: Introduce an enumeration type to capture different
4182         primitive operation kinds. Define a constant reflecting the number of
4183         predefined primitive operations.
4184         (Get_Entry_Index, Set_Entry_Index): Set and retrieve the entry index
4185         of an entry wrapper.
4186         (Get_Prim_Op_Kind, Set_Prim_Op_Kind): Set and retrieve the kind of
4187         callable entity of a primitive operation.
4188
4189         * exp_ch3.adb (Freeze_Record_Type): Generate the declarations of the
4190         primitive operations used in dispatching selects for limited
4191         interfaces, limited tagged, task and protected types what implement a
4192         limited interface.
4193         (Freeze_Type): Generate the bodies of the primitive operations used in
4194         dispatching selects for limited tagged, task and protected types that
4195         implement a limited interface. Generate statements to populate the two
4196         auxiliary tables used for dispatching in select statements.
4197         (Freeze_Record_Type): Add call to initialize the dispatch table entries
4198         associated with predefined interface primitive operations.
4199         (Build_Dcheck_Function): Change Set_Subtype_Mark to
4200         Set_Result_Definition.
4201         (Build_Variant_Record_Equality): Change Subtype_Mark to
4202         Result_Definition.
4203         (Freeze_Enumeration_Type): Change Subtype_Mark to Result_Definition.
4204         (Predef_Spec_Or_Body): Change Subtype_Mark to Result_Definition.
4205         (Build_Assignment): Simplify the code that adds the run-time-check.
4206         (Expand_N_Object_Declaration): Code cleanup.
4207
4208         * exp_ch7.adb (Make_Clean): Select the appropriate type for locking
4209         entries when there is a protected type that implements a limited
4210         interface.
4211
4212         * exp_ch9.adb: Add package Select_Expansion_Utilities that contains
4213         common routines used in expansion of dispatching selects.
4214         (Add_Private_Declarations): Select the appropriate protection type when
4215         there is a protected type that implements a limited interface.
4216         (Build_Parameter_Block): Generate a wrapped parameter block.
4217         (Build_Protected_Subprogram_Body): Select the appropriate type for
4218         locking entries when there is a protected type that implements a
4219         limited interface.
4220         (Build_Wrapper_Spec): Set the flag and wrapped entity for procedures
4221         classified as entry wrappers.
4222         (Expand_N_Asynchronous_Select): Add support for expansion of dispatching
4223         asynchronous selects.
4224         (Expand_N_Conditional_Entry_Call): Add support for expansion of
4225         dispatching conditional selects.
4226         (Expand_N_Protected_Type_Declaration): Select the appropriate type for
4227         protection when there is a protected type that implements limited
4228         interfaces.
4229         (Expand_N_Timed_Entry_Call): Add support for expansion of dispatching
4230         timed selects.
4231         (Extract_Dispatching_Call): Extract the entity of the name of a
4232         dispatching call, the object parameter, actual parameters and
4233         corresponding formals.
4234         (Make_Initialize_Protection): Correct logic of protection initialization
4235         when there is a protected type that implements a limited interface.
4236         (Parameter_Block_Pack): Populate a wrapped parameter block with the
4237         values of actual parameters.
4238         (Parameter_Block_Unpack): Retrieve the values from a wrapped parameter
4239         block and assign them to the original actual parameters.
4240
4241         * exp_ch9.ads (Subprogram_Protection_Mode): New type.
4242         (Build_Protected_Sub_Specification): Change the type and name of the
4243         last formal to account for the increased variety of protection modes.
4244
4245         * einfo.ads, einfo.adb (Was_Hidden): New attribute. Present in all
4246         entities. Used to save the value of the Is_Hidden attribute when the
4247         limited-view is installed.
4248         (Is_Primitive_Wrapper, Set_Is_Primitive_Wrapper): Retrieve and change
4249         the attribute of procedures classified as entry wrappers.
4250         (Wrapped_Entity, Set_Wrapped_Entity): Retrieve and change the wrapped
4251         entity of a primitive wrapper.
4252         (Write_Entity_Flags): Output the name and value of the
4253         Is_Primitive_Wrapper attribute.
4254         (Write_Field27_Name): Output the name and entity of the field Wrapped_
4255         Entity.
4256         (Underlying_Type): If we have an incomplete entity that comes from
4257         the limited view then we return the Underlying_Type of its non-limited
4258         view if it is already available.
4259         (Abstract_Interface_Alias): Flag applies to all subrogram kinds,
4260         including operators.
4261         (Write_Field26_Name): Add entry for Overridden_Operation
4262         (Overridden_Operation): New attribute of functions and procedures.
4263
4264         * exp_disp.ads, exp_disp.adb (Default_Prim_Op_Position): Return a
4265         predefined position in the dispatch table for the primitive operations
4266         used in dispatching selects.
4267         (Init_Predefined_Interface_Primitives): Remove the hardcoded number of
4268         predefined primitive operations and replace it with
4269         Default_Prim_Op_Count.
4270         (Make_Disp_Asynchronous_Select_Spec, Make_Disp_Conditional_Select_Spec,
4271         Make_Disp_Get_Prim_Op_Kind_Spec, Make_Disp_Timed_Select_Spec): Update
4272         the names of the generated primitive operations used in dispatching
4273         selects.
4274         (Init_Predefined_Interface_Primitives): No need to inherit primitives in
4275         case of abstract interface types. They will be inherit by the objects
4276         implementing the interface.
4277         (Make_DT): There is no need to inherit the dispatch table of the
4278         ancestor interface for the elaboration of abstract interface types.
4279         The dispatch table will be inherited by the object implementing the
4280         interface.
4281         (Copy_Secondary_DTs): Add documentation.
4282         (Validate_Position): Improve this static check in case of
4283         aliased subprograms because aliased subprograms must have
4284         the same position.
4285         (Init_Predefined_Interface_Primitives): New subprogram that initializes
4286         the entries associated with predefined primitives of all the secondary
4287         dispatch tables.
4288         (Build_Anonymous_Access_Type): Removed.
4289         (Expand_Interface_Actuals): With the previous cleanup there is no need
4290         to build an anonymous access type. This allows further cleanup in the
4291         code generated by the expander.
4292         (Expand_Interface_Conversion): If the actual is an access type then
4293         build an internal function to handle the displacement. If the actual
4294         is null this function returns null because no displacement is
4295         required; otherwise performs a type conversion that will be
4296         expanded in the code that returns the value of the displaced actual.
4297         (Expand_Interface_Actuals): Avoid the generation of unnecessary type
4298         conversions that have no effect in the generated code because no
4299         displacement is required. Code cleanup; use local variables to
4300         avoid repeated calls to the subprogram directly_designated_type().
4301
4302         * exp_util.ads, exp_util.adb (Is_Predefined_Dispatching_Operation):
4303         Classify the primitive operations used in dispatching selects as
4304         predefined.
4305         (Implements_Limited_Interface): Determine whether some type either
4306         directly implements a limited interface or extends a type that
4307         implements a limited interface.
4308         (Build_Task_Image_Function): Change Subtype_Mark to Result_Definition.
4309         (Expand_Subtype_From_Expr): Do not build actual subtype if the
4310         expression is limited.
4311         (Find_Interface_Tag): Add code to handle class-wide types and
4312         entities from the limited-view.
4313
4314         * rtsfind.ads: Add entries in RE_Id and RE_Unit_Table for
4315         Get_Entry_Index, Get_Prim_Op_Kind, POK_Function, POK_Procedure,
4316         POK_Protected_Entry, POK_Protected_Function, POK_Protected_Procedure,
4317         POK_Task_Entry, POK_Task_Procedure, Prim_Op_Kind, Set_Entry_Index,
4318         Set_Prim_Op_Kind.
4319
4320         * sem_ch9.adb (Analyze_Triggering_Alternative): Check for legal type
4321         of procedure name or prefix that appears as a trigger in a triggering
4322         alternative.
4323
4324         * uintp.ads: Introduce constants Uint_11 and Uint_13.
4325
4326 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
4327
4328         * s-tataat.adb, a-tasatt.adb:
4329         Replace calls to Defer/Undefer_Abortion by Defer/Undefer_Abort.
4330
4331         * s-tasini.ads, s-tasini.adb (Defer_Abortion, Undefer_Abortion): Moved
4332         these procedures to body, and renamed Abort_Defer, Abort_Undefer.
4333         (Get_Exc_Stack_Addr, Set_Exc_Stack_Addr): Removed, no
4334         longer used.
4335
4336 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
4337             Jose Ruiz  <ruiz@adacore.com>
4338
4339         * s-taprop-vxworks.adb:
4340         Move with clauses outside Warnings Off now that dependent units are
4341         Preelaborate.
4342         (Initialize): Call Interrupt_Managemeent.Initialize to ensure proper
4343         initialization of this unit.
4344         (Specific): Add new procedures Initialize and Delete so that this
4345         package can be used for VxWorks 5.x and 6.x
4346         (ATCB_Key, ATCB_Key_Address): Moved to Specific package body to hide
4347         differences between VxWorks 5.x and 6.x
4348         Minor reformatting.
4349         (Timed_Delay): Remove calls to Defer/Undefer_Abort, now performed by
4350         caller.
4351         Use only Preelaborate-compatible constructs.
4352
4353         * s-tpopsp-vxworks.adb (ATBC_Key, ATCB_Key_Addr): Moved from
4354         Primitives.Operations.
4355         (Delete, Initialize): New procedures.
4356
4357         * s-osinte-vxworks.adb: Body used to handle differences between
4358         VxWorks 5.x and 6.x
4359         (kill, Set_Time_Slice, VX_FP_TASK): New functions.
4360
4361         * s-osinte-vxworks.ads: Minor reformatting.
4362         Add VxWworks 6.x specific functions (only called from VxWorks 6 files).
4363         (VX_FP_TASK): Now a function, to handle differences between VxWorks 5
4364         and 6.
4365         (Set_Time_Slice): New function, replacing kerneltimeSlice to share code
4366         between Vxworks 5 and 6.
4367         (taskLock, taskUnlock): Removeed, no longer used.
4368
4369         * adaint.c: The wait.h header is not located in the sys directory on
4370         VxWorks when using RTPs.
4371         (__gnat_set_env_value): Use setenv instead of putenv on VxWorks when
4372         using RTPs.
4373         (__gnat_dup): dup is available on Vxworks when using RTPs.
4374         (__gnat_dup2): dup2 is available on Vxworks when using RTPs.
4375
4376         * cal.c: Use the header time.h for Vxworks 6.0 when using RTPs.
4377
4378         * expect.c: The wait.h header is not located in the sys directory on
4379         VxWorks when using RTPs.
4380
4381 2005-09-01  Thomas Quinot  <quinot@adacore.com>
4382
4383         * g-soccon-vms.adb: Renamed to g-soccon-vms.ads
4384
4385         * g-soccon-vms.ads: Renamed from g-soccon-vms.adb
4386
4387         * g-soccon.ads, g-soccon-tru64.ads, g-soccon-aix.ads,
4388         g-soccon-darwin.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
4389         g-soccon-solaris.ads, g-soccon-mingw.ads, g-soccon-vxworks.ads,
4390         g-soccon-freebsd.ads: Add new constants:
4391          IP_MULTICAST_IF
4392          SO_RCVTIMEO/SO_SNDTIMEO
4393          IOV_MAX
4394
4395         * gen-soccon.c:
4396         Move all target-specific file inclusions and macro definitions to
4397         gsocket.h, in order to ensure that any C code in socket.c will see a
4398         set of constants that is consistent with the contents of g-soccon.ads.
4399
4400         * gsocket.h: Code imported from gen-soccon.c:
4401         Move all target-specific file inclusions and macro definitions to
4402         gsocket.h, in order to ensure that any C code in socket.c will see a set
4403         of constants that is consistent with the contents of g-soccon.ads.
4404         This change also makes gen-soccon self-contained (removing dependencies
4405         upon GCC internal headers).
4406
4407         * g-socket.adb (Send_Vector): Make calls to Writev at most IOV_MAX
4408         iovecs at a time.
4409         (To_Inet_Addr): Now a procedure instead of a function, more efficient.
4410
4411         * socket.c: Minor reformatting.
4412
4413 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
4414             Thomas Quinot  <quinot@adacore.com>
4415
4416         * fname-sf.adb, mlib-tgt.ads,
4417         back_end.adb, casing.adb, g-debpoo.adb, g-excact.adb, g-spipat.adb,
4418         g-spipat.ads, g-thread.adb, lib-list.adb, makeutl.adb, mlib.adb,
4419         osint.adb, par-ch10.adb, par-load.adb, prep.adb, prj.adb, prj-attr.ads,
4420         prj-env.ads, prj-err.adb, prj-err.ads, prj-ext.adb, prj-ext.ads,
4421         prj-makr.adb, prj-makr.ads, prj-pars.ads, prj-part.adb, prj-strt.adb,
4422         prj-tree.ads, prj-util.ads, sem_dist.adb, sinput-c.ads, sinput-l.ads,
4423         sinput-p.ads, styleg-c.ads, xr_tabls.adb, prj-attr-pm.ads,
4424         makegpr.adb: Remove redundant use_clauses.
4425
4426 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
4427
4428         * s-stoele.ads, s-stopoo.ads, s-stratt.ads, s-strops.ads, s-unstyp.ads,
4429         s-valboo.ads, s-valcha.ads, s-valdec.ads, s-valenu.ads, s-valint.ads,
4430         s-vallld.ads, s-vallli.ads, s-valllu.ads, s-valrea.ads, s-valuns.ads,
4431         s-valuti.ads, s-valwch.ads, s-veboop.ads, s-vector.ads, s-vercon.ads,
4432         s-wchcnv.ads, s-wchcon.ads, s-wchjis.ads, s-wchstw.ads, s-wchwts.ads,
4433         s-widboo.ads, s-widcha.ads, s-widenu.ads, s-widlli.ads, s-widllu.ads,
4434         s-widwch.ads, s-wwdcha.ads, s-wwdenu.ads, s-wwdwch.ads, system.ads,
4435         table.ads, types.ads, system-vms_64.ads, s-crtl-vms64.ads,
4436         s-addope.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
4437         s-vxwork-x86.ads, system-linux-ppc.ads, i-vxwork-x86.ads,
4438         a-numaux-darwin.ads, a-crbtgo.ads, a-crbtgk.ads, a-crbltr.ads,
4439         a-coprnu.ads, a-convec.ads, a-contai.ads, a-coinve.ads, a-cohata.ads,
4440         a-cohama.ads, a-cihama.ads, a-cidlli.ads, a-cdlili.ads,
4441         a-numaux-libc-x86.ads, a-numaux-vxworks.ads, system-linux-ia64.ads,
4442         system-freebsd-x86.ads, system-unixware.ads, system-lynxos-ppc.ads,
4443         system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
4444         s-vxwork-alpha.ads, system-aix.ads, system-vxworks-sparcv9.ads,
4445         system-solaris-x86.ads, system-irix-o32.ads, system-irix-n32.ads,
4446         s-parame-hpux.ads, system-hpux.ads, system-vxworks-m68k.ads,
4447         s-vxwork-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads,
4448         s-vxwork-mips.ads, system-os2.ads, system-interix.ads,
4449         s-vxwork-ppc.ads, system-solaris-sparc.ads, s-vxwork-sparcv9.ads,
4450         system-solaris-sparcv9.ads, s-parame-vms.ads, system-vms.ads,
4451         s-osinte-mingw.ads, system-mingw.ads, s-parame-vms-restrict.ads,
4452         system-vms-zcx.ads, s-parame-ae653.ads, system-vxworks-ppc.ads,
4453         s-parame-vxworks.ads, system-vxworks-alpha.ads, interfac-vms.ads,
4454         a-numaux-x86.ads, a-astaco.ads, a-chahan.ads, a-charac.ads,
4455         a-chlat1.ads, a-chlat9.ads, a-colire.adb, a-colire.ads, a-comlin.ads,
4456         a-cwila1.ads, a-cwila9.ads, ada.ads, a-decima.ads, a-exextr.adb,
4457         a-filico.ads, a-finali.ads, a-interr.ads, a-ioexce.ads, a-dynpri.ads,
4458         a-ngcefu.ads, a-ngcefu.adb, a-ngcoty.adb, a-ngcoty.ads, a-ngelfu.ads,
4459         a-nudira.adb, a-nudira.ads, a-nuflra.adb, a-numaux.ads, a-numeri.ads,
4460         a-reatim.adb, a-stmaco.ads, a-storio.ads, a-strbou.ads, a-stream.ads,
4461         a-strfix.ads, a-string.ads, a-strmap.ads, a-strsea.ads, a-strsup.ads,
4462         a-strunb.ads, a-stunau.ads, a-stwibo.ads, a-stwifi.ads, a-stwima.ads,
4463         a-stwise.ads, a-stwisu.ads, a-stwiun.ads, a-swmwco.ads, a-textio.ads,
4464         csets.ads, debug.ads, dec.ads, g-curexc.ads, get_targ.ads,
4465         g-except.ads, system-linux-hppa.ads, a-chacon.ads, a-widcha.ads,
4466         a-zchara.ads, system-hpux-ia64.ads, a-ciorma.ads, a-coorma.ads,
4467         a-ciormu.ads, a-coormu.ads, a-rbtgso.ads, a-chzla1.ads, a-chzla9.ads,
4468         a-stzbou.ads, a-stzfix.ads, a-stzmap.ads, a-stzsea.ads, a-stzsup.ads,
4469         a-stzunb.ads, a-swunau.ads, a-szunau.ads, gnat.ads, g-regpat.ads,
4470         g-speche.ads, g-spitbo.ads, g-table.ads, g-tasloc.ads, g-trasym.ads,
4471         i-c.ads, i-cpoint.ads, i-cpp.ads, i-cstrin.ads, i-fortra.ads,
4472         interfac.ads, i-os2err.ads, i-os2lib.ads, i-os2syn.ads, i-os2thr.ads,
4473         i-vxwork.ads, output.ads, s-arit64.ads, s-atacco.ads, s-boarop.ads,
4474         s-casuti.ads, s-crtl.ads, s-exctab.ads, s-exnint.ads, s-exnllf.ads,
4475         s-exnlli.ads, s-expint.ads, s-explli.ads, s-expllu.ads, s-expmod.ads,
4476         s-expuns.ads, s-fatflt.ads, s-fatgen.ads, s-fatlfl.ads, s-fatllf.ads,
4477         s-fatsfl.ads, s-finimp.ads, s-finroo.ads, s-fore.ads, s-geveop.ads,
4478         s-htable.ads, s-imgbiu.ads, s-imgboo.ads, s-imgcha.ads, s-imgdec.ads,
4479         s-imgenu.ads, s-imgint.ads, s-imgllb.ads, s-imglld.ads, s-imglli.ads,
4480         s-imgllu.ads, s-imgllw.ads, s-imgrea.ads, s-imguns.ads, s-imgwch.ads,
4481         s-imgwiu.ads, s-io.ads, s-maccod.ads, s-mantis.ads, s-memcop.ads,
4482         s-pack03.ads, s-pack05.ads, s-pack06.ads, s-pack07.ads, s-pack09.ads,
4483         s-pack10.ads, s-pack11.ads, s-pack12.ads, s-pack13.ads, s-pack14.ads,
4484         s-pack15.ads, s-pack17.ads, s-pack18.ads, s-pack19.ads, s-pack20.ads,
4485         s-pack21.ads, s-pack22.ads, s-pack23.ads, s-pack24.ads, s-pack25.ads,
4486         s-pack26.ads, s-pack27.ads, s-pack28.ads, s-pack29.ads, s-pack30.ads,
4487         s-pack31.ads, s-pack33.ads, s-pack34.ads, s-pack35.ads, s-pack36.ads,
4488         s-pack37.ads, s-pack38.ads, s-pack39.ads, s-pack40.ads, s-pack41.ads,
4489         s-pack42.ads, s-pack43.ads, s-pack44.ads, s-pack45.ads, s-pack46.ads,
4490         s-pack47.ads, s-pack48.ads, s-pack49.ads, s-pack50.ads, s-pack51.ads,
4491         s-pack52.ads, s-pack53.ads, s-pack54.ads, s-pack55.ads, s-pack56.ads,
4492         s-pack57.ads, s-pack58.ads, s-pack59.ads, s-pack60.ads, s-pack61.ads,
4493         s-pack62.ads, s-pack63.ads, s-parame.ads, s-pooglo.ads, s-pooloc.ads,
4494         s-poosiz.ads, s-powtab.ads, s-purexc.ads, s-sopco3.ads, s-sopco4.ads,
4495         s-sopco5.ads: Minor reformatting: reindent pragma Pure/Preelaborate
4496         and always use the no parameter form for consistency.
4497
4498         * gnat-style.texi: Document rules about Preelaborate/Pure pragmas.
4499
4500 2005-09-01  Robert Dewar  <dewar@adacore.com>
4501
4502         * binde.adb: Minor reformatting
4503         (Find_Elab_Order): Output warning if -p used with static elab order
4504
4505 2005-09-01  Robert Dewar  <dewar@adacore.com>
4506
4507         * checks.adb (Check_Needed): New procedure, deals with removing checks
4508         based on analysis of short-circuited forms. Also generates warnings for
4509         improper use of non-short-circuited forms.
4510         Code clean ups.
4511
4512 2005-09-01  Robert Dewar  <dewar@adacore.com>
4513
4514         * a-ztexio.adb, a-textio.adb, a-witeio.adb: Replace bad range checks
4515         with 'Valid tests.
4516
4517 2005-09-01  Robert Dewar  <dewar@adacore.com>
4518
4519         * errout.ads, errout.adb (Fix Error_Msg_F): Fix implementation to meet
4520         spec.
4521         Implement new insertion char < (conditional warning)
4522         * errutil.adb, erroutc.adb: Implement new insertion char <
4523         (conditional warning).
4524         * sem_elab.adb, prj-dect.adb, erroutc.ads, err_vars.ads
4525         (Error_Msg_Warn): New variable for < insertion char.
4526         * prj-nmsc.adb: Implement new errout insertion char < (conditional
4527         warning).
4528         (Check_For_Source): Change value of Source_Id only after the current
4529         source has been dealt with.
4530
4531 2005-09-01  Robert Dewar  <dewar@adacore.com>
4532             Doug Rupp  <rupp@adacore.com>
4533
4534         * exp_attr.adb: Handle vax fpt for 'Valid attribute
4535         * exp_vfpt.ads, exp_vfpt.adb: (Expand_Vax_Valid): New procedure
4536         * s-vaflop-vms-alpha.adb, s-vaflop.ads, s-vaflop.adb
4537         (Valid_D, Valid_F, Valid_G): New functions
4538
4539 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
4540             Hristian Kirtchev  <kirtchev@adacore.com>
4541             Javier Miranda  <miranda@adacore.com>
4542
4543         * exp_ch6.adb (Expand_Call): If an actual is a function call rewritten
4544         from object notation, the original node is unanalyzed and carries no
4545         semantic information, so that accessiblity checks must be performed on
4546         the type of the actual itself.
4547         (Expand_N_Subprogram_Declaration): Change last actual parameter for
4548         compatibility with Build_Protected_Sub_Specification.
4549         (Check_Overriding_Inherited_Interfaces): Add suport to handle
4550         overloaded primitives.
4551         (Register_Interface_DT_Entry): Use the new name of the formal
4552         the the calls to Expand_Interface_Thunk
4553
4554         * exp_dbug.ads: Augment comments on encoding of protected types to
4555         include the generation of dispatching subprograms when the type
4556         implements at least one interface.
4557
4558         * lib.ads: Extend information in Load_Stack to include whether a given
4559         load comes from a Limited_With_Clause.
4560
4561         * lib-load.adb (From_Limited_With_Chain): New predicate to determine
4562         whether a potential circularity is harmless, because it includes units
4563         loaded through a limited_with clause. Extends previous treatment which
4564         did not handle properly arbitrary combinations of limited and
4565         non-limited clauses.
4566
4567 2005-09-01  Nicolas Setton  <setton@adacore.com>
4568
4569         * exp_dbug.adb (Get_Encoded_Name): Fixed bug that caused biaised types
4570         to be encoded as typ___XBLU_lowerbound__upperbound instead of
4571         typ___XB_lowerbound__upperbound.
4572
4573 2005-09-01  Thomas Quinot  <quinot@adacore.com>
4574
4575         * exp_dist.adb (Add_RACW_TypeCode, Add_RAS_TypeCode): Do not generate
4576         dummy access formal for RACW/RAS TypeCode TSS.
4577         (Build_TypeCode_Call): Do not generate dummy null access actual for
4578         calls to the TypeCode TSS.
4579
4580 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
4581
4582         * exp_intr.adb (Expand_Source_Name): For Enclosing_Entity, generate
4583         fully qualified name, to distinguish instances with the same local name.
4584
4585         * g-souinf.ads (Enclosing_Entity): Document that entity name is now
4586         fully qualified.
4587
4588 2005-09-01  Robert Dewar  <dewar@adacore.com>
4589
4590         * exp_pakd.adb (Create_Packed_Array_Type): Properly handle very large
4591         packed arrays.
4592
4593 2005-09-01  Jerome Lambourg  <lambourg@adacore.com>
4594
4595         * g-expect.adb (Non_Blocking_Spawn): Initialize the filters field to
4596         (Free): New deallocation procedure for filter elements
4597         (Close): Deallocate any existing filter for the concerned connection
4598
4599 2005-09-01  Laurent Pautet  <pautet@adacore.com>
4600
4601         * g-pehage.ads, g-pehage.adb (Select_Char_Position): When no character
4602         position set is provided, we compute one in order to reduce the maximum
4603         length of the keys.  This computation first selects a character
4604         position between 1 and the minimum length of the keys in order to
4605         avoid reducing one of the keys to an empty string.
4606         (Initialize, Compute): When the ratio V to K is too low, the algorithm
4607         does not converge. The initialization procedure now comes with a
4608         maximum number of iterations such that when exceeded, an exception is
4609         raised in Compute. The user can initialize this ratio to another value
4610         and try again
4611         Reformating and updated headers.
4612
4613 2005-09-01  Javier Miranda  <miranda@adacore.com>
4614
4615         * itypes.ads, itypes.adb (Create_Null_Excluding_Itype): New subprogram
4616         that given an entity T creates and returns an Itype that duplicates the
4617         contents of T. The returned Itype has the null-exclusion
4618         attribute set to True, and its Etype attribute references T
4619         to keep the association between the two entities.
4620         Update copyright notice
4621
4622         * sem_aggr.adb (Check_Can_Never_Be_Null,
4623         Aggregate_Constraint_Checks, Resolve_Aggregate,
4624         Resolve_Array_Aggregate, Resolve_Record_Aggregate): Code cleanup.
4625
4626         * sem_ch5.adb (Analyze_Assignment): Code cleanup.
4627
4628 2005-09-01  Gary Dismukes  <dismukes@adacore.com>
4629             Robert Dewar  <dewar@adacore.com>
4630             Hristian Kirtchev  <kirtchev@adacore.com>
4631
4632         * layout.adb (SO_Ref_From_Expr): Change Subtype_Mark to
4633         Result_Definition.
4634
4635         * par-ch6.adb (P_Subprogram): Handle parsing of Access_Definitions in
4636         function specs.
4637         Call Set_Result_Definition instead of Set_Subtype_Mark.
4638         (P_Subprogram_Specification): Add parsing of anonymous access result
4639         plus null exclusions. Call Set_Result_Definition instead of
4640         Set_Subtype_Mark.
4641
4642         * par-ch3.adb: Add support for LIMITED NEW for Ada 2005 AI-419
4643         (P_Access_Type_Definition): Add parsing for an anonymous access result
4644         subtype, plus parsing for null exclusions. Call Set_Result_Definition
4645         instead of Set_Subtype_Mark.
4646
4647         * sinfo.adb: Add support for LIMITED NEW for Ada 2005 AI-419
4648         (Null_Exclusion_Present): Allow this flag for N_Function_Specification.
4649         (Result_Definition): New function for N_Function_Specifications.
4650         (Subtype_Mark): No longer allowed for N_Access_Function_Definition and
4651         N_Function_Specification.
4652         (Set_Null_Exclusion_Present): Allow this flag for
4653         N_Function_Specification.
4654         (Set_Result_Definition): New procedure for N_Function_Specifications.
4655         (Set_Subtype_Mark): No longer allowed for N_Access_Function_Definition
4656         and N_Function_Specification.
4657
4658         * sinfo.ads: Update grammar rules for 9.7.2: Entry_Call_Alternative,
4659         Procedure_Or_Entry_Call; 9.7.4: Triggering_Statement.
4660         Add support for LIMITED NEW for Ada 2005 AI-419
4661         Update the syntax of PARAMETER_AND_RESULT_PROFILE to reflect the new
4662         syntax for anonymous access results.
4663         Replace Subtype_Mark field by Result_Definition in
4664         N_Function_Specification and N_Access_Definition specs.
4665         Add Null_Exclusion_Present to spec of N_Function_Specification.
4666         (Result_Definition): New function for N_Function_Specification and
4667         N_Access_Function_Definition.
4668         (Set_Result_Definition): New procedure for N_Function_Specification and
4669         N_Access_Function_Definition.
4670
4671         * sprint.adb (S_Print_Node_Actual): Change Subtype_Mark calls to
4672         Result_Definition for cases of N_Access_Function_Definition and
4673         N_Function_Specification.
4674         Print "not null" if Null_Exclusion_Present on N_Function_Specification.
4675
4676 2005-09-01  Vincent Celier  <celier@adacore.com>
4677
4678         * lib-writ.adb: Update Copyright notice
4679         (Write_With_Lines): On platforms where file names are case-insensitive,
4680         record the file names in lower case.
4681         (Write_ALI): For D lines, on platforms where file names are
4682         case-insensitive, record the file names in lower case.
4683
4684 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
4685             Emmanuel Briot  <briot@adacore.com>
4686
4687         * lib-xref.adb (Output_Overridden_Op): Display information on
4688         overridden operation.
4689
4690         * lib-xref.ads: Add documentation on overridden operations.
4691
4692         * ali.ads (Xref_Entity_Record): Add support for storing the overriding
4693         information.
4694
4695         * ali.adb (Get_Typeref): New subprogram. Adds support for parsing the
4696         overriding entity information.
4697
4698 2005-09-01  Vincent Celier  <celier@adacore.com>
4699
4700         * mlib-prj.adb (Copy_Interface_Sources): Copy all interface sources,
4701         including those that are inherited.
4702
4703 2005-09-01  Robert Dewar  <dewar@adacore.com>
4704
4705         * opt.ads, opt.adb: Add new switches Debug_Pragmas_Enabled[_Config]
4706
4707         * par-prag.adb: Implement new pragma Debug_Policy
4708
4709         * sem_prag.adb Implement new pragma Debug_Policy
4710         (Analyze_Pragma, case Pack): do not let pragma Pack override an explicit
4711         Component_Size attribute specification. Give warning for ignored pragma
4712         Pack.
4713
4714         * snames.h, snames.ads, snames.adb: Introduce entries in
4715         Preset_Names for Name_Disp_Asynchronous_Select,
4716         Name_Disp_Conditional_Select, Name_Disp_Get_Prim_Op_Kind,
4717         Name_Disp_Timed_Select.
4718         New pragma Debug_Policy
4719
4720         * switch-c.adb (Scan_Front_End_Switches): Set Ada 2005 mode
4721         explicitly.
4722         Switch -gnata also sets Debug_Pragmas_Enabled
4723
4724         * sem.adb, par.adb (Set_Opt_Config_Switch): Add parameter Main_Unit to
4725         handle an explicit -gnata when compiling predefined files.
4726
4727 2005-09-01  Vincent Celier  <celier@adacore.com>
4728
4729         * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Do not add the object
4730         directories of projects that have no Ada sources.
4731
4732 2005-09-01  Robert Dewar  <dewar@adacore.com>
4733
4734         * scng.adb (Check_End_Of_Line): Count characters, rather than bytes
4735         (makes a difference for wide characters)
4736
4737         * widechar.adb, widechar.ads:
4738         Add Wide_Char_Byte_Count feature to count chars vs bytes
4739
4740 2005-09-01  Thomas Quinot  <quinot@adacore.com>
4741             Ed Schonberg  <schonberg@adacore.com>
4742             Robert Dewar  <dewar@adacore.com>
4743
4744         * sem_attr.adb (Resolve_Attribute, case 'Address): For an illegal
4745         'Address attribute reference with an overloaded prefix, use the
4746         location of the prefix (not the location of the attribute reference) as
4747         the error location.
4748         (Analyze_Attribute, case 'Size): The name of an enumeration literal, or
4749         a function renaming thereof, is a valid prefix for 'Size (where it is
4750         intepreted as a function call).
4751         (Statically_Denotes_Entity): New predicate to determine whether the
4752         prefix of an array attribute can be considered static.
4753
4754         PR ada/9087
4755         (Eval_Attr): Fix failure to evaluate Component_Size for
4756         unconstrained arrays (resulted in wrong value in packed case, since
4757         back end cannot handle this case)
4758
4759 2005-09-01  Robert Dewar  <dewar@adacore.com>
4760
4761         * sem_cat.adb (Check_Categorization_Dependencies): Add more detail to
4762         error msgs for most common cases.
4763         Use new errout insertion char < (conditional warning)
4764
4765 2005-09-01  Javier Miranda  <miranda@adacore.com>
4766             Ed Schonberg  <schonberg@adacore.com>
4767
4768         * sem_ch10.adb (In_Chain): Moved from the scope of a subprogram to
4769         become local to the whole package.
4770         (Install_Limited_Withed_Unit): Instead of unchaining real entities if
4771         the package was already analyzed the new algorithm "replaces" the
4772         real entities by the shadow ones. This is required to ensure that
4773         the order of these entities in the homonym chains does not change;
4774         otherwise we can have undefined references at linking time because
4775         in case of conflicts the external name of the entities will have
4776         a suffix that depends on the order of the entities in the chain.
4777         (Remove_Limited_With_Clause): Complementary code that completes the
4778         new algorithm and replaces the shadow entities by the real ones.
4779         (Install_Limited_Withed_Unit): When unchaining entities before the
4780         installation of the shadow entities, only regular entities of the
4781         public part must be taken into account. This is required to
4782         keep this routine in synch with the work done by Remove_Limited_
4783         With_Clause
4784         (Install_Limited_With_Clause): Introduce implicit limited_with_clause
4785         even if unit is analyzed, because the analysis of the unit is
4786         idempotent in any case, and the limited view of the unit may have to
4787         be installed for proper visibility.
4788         (Expand_Limited_With_Clause): Even if the unit in the implicit
4789         with_clause has been analyzed already, a limited view of the package
4790         must be built for the current context, if it does not exist yet.
4791
4792 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
4793             Javier Miranda  <miranda@adacore.com>
4794             Gary Dismukes  <dismukes@adacore.com>
4795
4796         * sem_ch12.adb (Instantiate_Subprogram_Body): When creating the
4797         defining entity for the instance body, make a new defining identifier
4798         rather than copying the entity of the spec, to prevent accidental
4799         sharing of the entity list.
4800         (Check_Private_View): When exchanging views of private types, build the
4801         list of exchanged views as a stack, to ensure that on exit the exchanges
4802         are undone in the proper order.
4803         (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation):
4804         Restore the compilation environment in case of instantiation_error.
4805         (Analyze_Generic_Subprogram_Declaration): Handle creation of type entity
4806         for an anonymous access result.
4807         (Instantiate_Generic_Subprogram): Subtype_Mark => Result_Definition
4808         (Formal_Entity): Handle properly the case of a formal package that
4809         denotes a generic package renaming.
4810
4811 2005-09-01  Thomas Quinot  <quinot@adacore.com>
4812
4813         * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Reject the
4814         clause if the array aggregate is surrounded by parentheses.
4815
4816 2005-09-01  Cyrille Comar  <comar@adacore.com>
4817             Gary Dismukes  <dismukes@adacore.com>
4818             Ed Schonberg  <schonberg@adacore.com>
4819             Javier Miranda  <miranda@adacore.com>
4820
4821         * sem_ch3.ads, sem_ch3.adb (Analyze_Object_Declaration): Go to the
4822         underlying type
4823         to check if a type is Constrained in cases related to code generation
4824         (rather than semantic checking) since otherwise we do not generate
4825         similar code for mutable private types depending if their
4826         discriminants are visible or not.
4827         (Check_Abstract_Overriding): Do not complain about failure to override
4828         the primitive operations used in dispatching selects since they will
4829         always be overriden at the freeze point of the type.
4830         (Access_Definition): Separate out handling for resetting the scope
4831         of an anonymous access function result type. Retrieve the scope
4832         of the associated function rather than using Current_Scope, which
4833         does not have a consistent value (depends on whether we're in the
4834         middle of analyzing formal parameters). Add ??? comment about
4835         finding a cleaner way to handle the special cases of scope setting.
4836         (Process_Incomplete_Dependents): A protected operation is never a
4837         dispatching operation (only its wrapper may be).
4838         (Build_Derived_Record_Type): In case of tagged private types that
4839         implement interfaces add derivation of predefined primitive
4840         operations.
4841         (Derive_Subprograms): Replace the Is_Interface_Derivation parameter
4842         by two parameters that are used in case of derivation from abstract
4843         interface types: No_Predefined_Prims is used to avoid the derivation
4844         of predefined primitives from the interface, and Predefined
4845         Prims_Only is used to complete the derivation predefined primitives
4846         in case of private tagged types implementing interfaces.
4847         Fix typo in comments
4848         (Find_Interface_In_Descendant): Protect the frontend against
4849         wrong code with large circularity chains.
4850         (Is_Private_Overriding): Add support for entities overriding interface
4851         subprograms. The test failed because Entities associated with overriden
4852         interface subprograms are always marked as hidden (and used to build
4853         the secondary dispatch table); in this case the overriden entity is
4854         available through the field abstract_interface_alias (cf. override_
4855         dispatching_operation)
4856         (Access_Definition): Set the scope of the type to Current_Scope for the
4857         case of a function with an anonymous access result type.
4858         (Access_Subprogram_Declaration): Handle creation of the type entity for
4859         an access-to-function type with an anonymous access result.
4860         (Check_Anonymous_Access_Types): Change Subtype_Mark to Result_Definition
4861         in handling for N_Access_Function_Definition.
4862         (Analyze_Subtype_Declaration): Modify the text of error message.
4863         (Derived_Type_Declaration): Modify the text of error message.
4864         (Process_Subtype): Modify the text of error message plus cleanup
4865         of one redundant error message.
4866         (Analyze_Component_Declaration): Code cleanup.
4867         (Analyze_Object_Declaration): Code cleanup.
4868         (Analyze_Subtype_Declaration): Propagate the null-exclusion
4869         attribute in case of access types. Code cleanup.
4870         (Array_Type_Declaration): Code cleanup.
4871         (Process_Discriminants): Create the new null-excluding itype
4872         if required. Code cleanup.
4873         (Process_Subtype): Create the new null-excluding itype if
4874         required. Code cleanup.
4875         (Build_Derived_Record_Type): Code cleanup to avoid calling
4876         twice the subprogram derive_subprograms in case of private
4877         types that implement interfaces. In this particular case the
4878         subprogram Complete_Subprograms_Derivation already does the
4879         job associated with the second call.
4880
4881         * exp_strm.adb (Build_Elementary_Input_Call): Add an explicit
4882         conversion to the full view when generating an operation for a
4883         discriminant whose type may currently be private.
4884
4885 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
4886             Javier Miranda  <miranda@adacore.com>
4887
4888         * sem_ch4.adb (Transform_Object_Operation): In a context off the form
4889         V (Obj.F), the rewriting does not involve the indexed component, but
4890         only the selected component itself.
4891         Do not apply the transformation if the analyzed node is an actual of a
4892         call to another subprogram.
4893         (Complete_Object_Operation): Retain the entity of the
4894         dispatching operation in the selector of the rewritten node. The
4895         entity will be used in the expansion of dispatching selects.
4896         (Analyze_One_Call): Improve location of the error message associated
4897         with interface.
4898         (Analyze_Selected_Component): No need to resolve prefix when it is a
4899         function call, resolution is done when parent node is resolved, as
4900         usual.
4901         (Analyze_One_Call): Add a flag to suppress analysis of the first actual,
4902         when attempting to resolve a call transformed from its object notation.
4903         (Try_Object_Operation, Transform_Object_Operastion): Avoid makind copies
4904         of the argument list for each interpretation of the operation.
4905         (Try_Object_Operation): The designated type of an access parameter may
4906         be an incomplete type obtained through a limited_with clause, in which
4907         case the primitive operations of the type are retrieved from its full
4908         view.
4909         (Analyze_Call): If this is an indirect call, and the return type of the
4910         access_to_subprogram is incomplete, use its full view if available.
4911
4912 2005-09-01  Javier Miranda  <miranda@adacore.com>
4913             Gary Dismukes  <dismukes@adacore.com>
4914
4915         * sem_ch6.ads, sem_ch6.adb (Check_Conformance): In case of anonymous
4916         access types the null-exclusion and access-to-constant attributes must
4917         also match.
4918         (Analyze_Return_Statement): When the result type is an anonymous access
4919         type, apply a conversion of the return expression to the access type
4920         to ensure that appropriate accessibility checks are performed.
4921         (Analyze_Return_Type): For the case of an anonymous access result type,
4922         generate the Itype and set Is_Local_Anonymous_Access on the type.
4923         Add ??? placeholder for check to disallow returning a limited object
4924         in Ada 2005 unless it's an aggregate or a result of a function call.
4925         Change calls from Subtype_Mark to Result_Definition.
4926         (Analyze_Subprogram_Body): Change formal Subtype_Mark to
4927         Result_Definition in call to Make_Function_Specification.
4928         (Build_Body_To_Inline): Change Set_Subtype_Mark to
4929         Set_Result_Definition.
4930         (Make_Inequality_Operator): Change formal Subtype_Mark to
4931         Result_Definition in call to Make_Function_Specification.
4932         (Process_Formals): Create the new null-excluding itype if required.
4933         (New_Overloaded_Entity): For an entity overriding an interface primitive
4934         check if the entity also covers other abstract subprograms in the same
4935         scope. This is required to handle the general case, that is, overriding
4936         other interface primitives and overriding abstract subprograms inherited
4937         from some abstract ancestor type.
4938         (New_Overloaded_Entity): For an overriding entity that comes from
4939         source, note the operation that it overrides.
4940         (Check_Conformance, Type_Conformant): Addition of one new formal
4941         to skip controlling formals in the analysis. This is used to
4942         handle overloading of abstract interfaces.
4943         (Base_Types_Match): Add missing case for types imported from
4944         limited-with clauses
4945         (New_Overloaded_Entity): Add barrier to protect the use of
4946         the "alias" attribute.
4947
4948 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
4949
4950         * sem_ch8.adb (Analyze_Renamed_Entry): For a renaming_as_declaration,
4951         verify that the procedure and the entry are mode conformant.
4952         (Analyze_Subprogram_Renaming): Emit a warning if an operator is renamed
4953         as a different operator, which is often a cut-and-paste error.
4954
4955 2005-09-01  Javier Miranda  <miranda@adacore.com>
4956             Ed Schonberg  <schonberg@adacore.com>
4957
4958         * sem_disp.adb (Check_Controlling_Formals): Anonymous access types
4959         used in controlling parameters exclude null because it is necessary to
4960         read the tag to dispatch, and null has no tag.
4961         (Override_Dispatching_Operation): If the previous operation is inherited
4962         from an interface, it becomes hidden  and does not participate in later
4963         name resolution.
4964
4965 2005-09-01  Javier Miranda  <miranda@adacore.com>
4966             Ed Schonberg  <schonberg@adacore.com>
4967             Gary Dismukes  <dismukes@adacore.com>
4968
4969         * sem_res.adb (Resolve_Membership_Op): In case of the membership test
4970         "Iface_CW_Typ in T'Class" we have nothing else to do in the frontend;
4971         the expander will generate the corresponding run-time check to evaluate
4972         the expression.
4973         (Resolve_Call): Check for legal type of procedure name or prefix that
4974         appears as a trigger in a triggering alternative.
4975         (Valid_Conversion): If expression is ambiguous and the context involves
4976         an extension of System, remove System.Address interpretations.
4977         (Resolve_Qualified_Expression): Reject the case of a specific-type
4978         qualification applied to a class-wide argument. Enhance comment
4979         to explain checking of Original_Node.
4980         (Resolve_Type_Conversion): The location of the error message was not
4981         general enough to handle the general case and hence it has been removed.
4982         In addition, this patch improves the text of the message.
4983         (Resolve_Type_Conversion): Add missing support for access to interface
4984         types.
4985         (Resolve_Type_Conversion): If the target is a class-wide interface type,
4986         do not expand if the expression is the actual in a call, because proper
4987         expansion will take place when the call itself is expanded.
4988         (Resolve_Allocator): If the context is an unchecked conversion, the
4989         allocator inherits its storage pool, if any, from the target type of
4990         the conversion.
4991
4992 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
4993             Javier Miranda  <miranda@adacore.com>
4994
4995         * sem_type.adb (Add_One_Interp): If a candidate operation is an
4996         inherited interface operation that has an implementation, use the
4997         implementation to avoid spurious ambiguities.
4998         (Interface_Present_In_Ancestor): In case of concurrent types we can't
4999         use the Corresponding_Record_Typ attribute to look for the interface
5000         because it is set by the expander (and hence it is not always
5001         available). For this reason we traverse the list of interfaces
5002         (available in the parent of the concurrent type).
5003         (Interface_Present_In_Ancestor): Handle entities from the limited view
5004
5005 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
5006
5007         * sem_util.ads, sem_util.adb (Gather_Components): Omit interface tags
5008         from the list of required components.
5009         (Is_Controlling_Limited_Procedure): Determine whether an entity is a
5010         primitive procedure of a limited interface with a controlling first
5011         parameter.
5012         (Is_Renamed_Entry): Determine whether an entry is a procedure renaming
5013         of an entry.
5014         (Safe_To_Capture_Value): A value (such as non_null) is not safe to
5015         capture if it is generated in the second operand of a short-circuit
5016         operation.
5017         Do not capture values for variables with address clauses.
5018         (Is_Object_Reference): Treat a function call as an object reference only
5019         if its type is not Standard_Void_Type.
5020
5021 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
5022
5023         * sem_warn.adb (Warn_On_Known_Condition): Refine warning when applied
5024         to a variable that is statically known to be constant.
5025
5026 2005-09-01  Geert Bosch  <bosch@adacore.com>
5027             Robert Dewar  <dewar@adacore.com>
5028
5029         * ttypef.ads (VAXDF_Safe_First): Use correct value for constant.
5030         (VAXGF_Safe_First): Idem.
5031
5032 2005-09-01  Robert Dewar  <dewar@adacore.com>
5033             Arnaud Charlet  <charlet@adacore.com>
5034
5035         * g-dirope.ads: Minor reformatting
5036         Document that bounds of result of Base_Name match the input index
5037         positions.
5038         Add documentation on environment variable syntax for Expand_Path
5039
5040         * gnat_ugn.texi: Update documentation to include mention of -m switches
5041         Document new treatment of wide characters in max line length
5042         style check.
5043         Remove -gnatL/-gnatZ switches, no longer used.
5044         Add note on pragmas Assertion_Policy and Debug_Policy in discussion
5045         of -gnata switch.
5046
5047         * gnat_rm.texi: Add doc for two argument form of pragma
5048         Float_Representation.
5049         Add documentation for pragma No_Strict_Aliasing
5050         Add note that explicit component clause overrides pragma Pack.
5051         Add documentation of pragma Debug_Policy
5052
5053 2005-09-01  Matthew Heaney  <heaney@adacore.com>
5054
5055         * a-cihase.adb, a-coorse.ads, a-coorse.adb, a-cohama.adb,
5056         a-ciorse.ads, a-ciorse.adb, a-cihama.adb, a-cdlili.adb,
5057         a-cidlli.adb, a-chtgop.adb, a-cihase.adb, a-cihase.ads,
5058         a-cohase.adb, a-cohase.adb, a-cohase.ads: Synchronized with latest
5059         draft (Draft 13, August 2005) of Ada Amendment 1.
5060
5061 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
5062
5063         * Makefile.in: Adjust the libgnat target pairs for Xscale to ARM.
5064         Note that the platform-specific version of g-soccon.ads for VMS is now
5065         named g-soccon-vms.ads (it was previously g-soccon-vms.adb, although it
5066         really is a package spec).
5067         Replace s-taspri-linux.ads by s-taspri-posix.ads
5068         Remove references to s-mastop-x86.adb
5069
5070         * system-vxworks-xscale.ads: Removed, no longer used.
5071         * s-vxwork-xscale.ads: Removed, no longer used.
5072
5073 2005-09-01  Robert Dewar  <dewar@adacore.com>
5074
5075         * a-dirval-mingw.adb, a-direct.adb, a-coinve.adb,
5076         g-dynhta.adb, g-dynhta.ads, cstand.adb, exp_smem.adb, g-debuti.ads,
5077         g-dirope.adb, g-table.adb, lib-sort.adb, sem_maps.adb,
5078         exp_fixd.adb, exp_aggr.adb, a-intnam-mingw.ads, a-intnam-vxworks.ads,
5079         g-arrspl.adb, g-arrspl.ads, g-awk.adb, g-awk.ads, g-boubuf.ads,
5080         g-boubuf.ads, g-boubuf.ads, g-bubsor.ads, g-bubsor.adb, g-busora.adb,
5081         g-busora.ads, g-busorg.adb, g-busorg.ads, g-calend.adb, g-calend.ads,
5082         g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads, g-cgi.adb,
5083         g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads, g-cgideb.adb, g-cgideb.ads,
5084         g-comlin.adb, g-comver.ads, g-semaph.ads, g-socthi.ads,
5085         sem_ch7.adb, a-direio.adb, a-caldel.ads, i-cstrea-vms.adb,
5086         a-ztedit.adb, a-ztenau.adb, g-socthi-vms.adb, g-socthi-vms.ads,
5087         g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vxworks.ads,
5088         a-intnam-irix.ads, a-intnam-irix.ads, a-intnam-hpux.ads,
5089         a-intnam-os2.ads, a-intnam-os2.ads, a-caldel-vms.adb, a-calend-vms.adb,
5090         a-calend-vms.ads, g-heasor.adb, g-heasor.ads, g-hesora.adb,
5091         g-hesora.ads, g-hesorg.adb, g-hesorg.ads, g-htable.adb, g-htable.ads,
5092         g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads, g-locfil.ads,
5093         g-memdum.adb, g-memdum.ads, g-traceb.adb, g-traceb.ads, i-cobol.adb,
5094         i-cobol.ads, i-cstrea.ads, i-cstrin.adb, a-wtedit.adb, a-tifiio.adb,
5095         a-wtenau.adb, a-wtenau.adb, a-teioed.adb: Minor reformatting
5096
5097 2005-08-29  Arnaud Charlet  <charlet@adacore.com>
5098
5099         PR ada/23187
5100         * adaint.c
5101         (GNAT_MAXPATH_LEN): Use default value if MAXPATHLEN is undefined.
5102
5103 2005-08-29  Arnaud Charlet  <charlet@adacore.com>
5104             Doug Rupp  <rupp@adacore.com>
5105
5106         * s-stalib.adb: Add missing pragma Warnings (On) to reenable Warnings
5107         when needed.
5108         (Inside_Elab_Final_Code): Moved to init.c to avoid having to keep
5109         this code in the GNAT run-time.
5110
5111         * decl.c, fe.h: Replace GCC_ZCX by Back_End_Exceptions.
5112
5113         PR ada/21053
5114         * init.c (__gnat_error_handler [many]): Mark "msg" as const
5115         (__gnat_error_handler [HPUX]): Mark siginfo parameter as unused
5116
5117         (__gnat_inside_elab_final_code): Moved here from
5118         Standard_Library and only defined for the compiler.
5119         __gnat_error_handler [VMS]: Adjust sigargs to account for PC & PSL.
5120         (__gnat_inum_to_ivec): Do not define this function on VxWorks when
5121         using RTPs because directly vectored Interrupt routines are not
5122         supported on this configuration.
5123         (getpid): Do not redefine this function on VxWorks when using RTPs
5124         because this primitive is well supported by the RTP libraries.
5125         (copy_msg): Correct the code that checks for buffer overflow.
5126         Discovered during code reading.
5127
5128 2005-08-29  Olivier Hainque  <hainque@adacore.com>
5129
5130         * decl.c (gnat_to_gnu_entity) <E_Variable>: When allocating storage for
5131         a library level mutable variable with an initializer, tell
5132         build_allocator to ignore the initializer's size. It may not be large
5133         enough for all the values that might be assigned to the variable later
5134         on.
5135
5136 2005-08-29  Arnaud Charlet  <charlet@adacore.com>
5137             Eric Botcazou  <ebotcazou@adacore.com>
5138
5139         * trans.c: Protect < in error msg with quote
5140         Replace GCC_ZCX by Back_End_Exceptions.
5141         (addressable_p) <COMPONENT_REF>: Also return 1 if the field
5142         has been sufficiently aligned in the record.
5143
5144 2005-08-15  James E. Wilson  <wilson@specifix.com>
5145
5146         * system-linux-alpha.ads: Change ia64 to alpha.
5147
5148 2005-08-01  Kazu Hirata  <kazu@codesourcery.com>
5149
5150         * decl.c, utils.c: Fix comment typos.
5151
5152 2005-07-29  Kazu Hirata  <kazu@codesourcery.com>
5153
5154         * decl.c, init.c, initialize.c: Fix comment typos.
5155
5156 2005-07-20  Giovanni Bajo  <giovannibajo@libero.it>
5157
5158         Make CONSTRUCTOR use VEC to store initializers.
5159         * decl.c (gnat_to_gnu_entity): Update to cope with VEC in
5160         CONSTRUCTOR_ELTS.
5161         * trans.c (extract_values): Likewise.
5162         * utils.c (convert, remove_conversions): Likewise.
5163         * utils2.c (contains_save_expr_p, build_binary_op, build_unary_op,
5164         gnat_build_constructor): Likewise.
5165
5166 2005-07-09  Andrew Pinski  <pinskia@physics.uc.edu>
5167
5168         * decl.c (components_to_record): Use DECL_FCONTEXT instead of
5169         DECL_SECTION_NAME.
5170         (compare_field_bitpos): Likewise.
5171
5172 2005-07-09  Andrew Pinski  <pinskia@physics.uc.edu>
5173
5174         * utils.c (create_var_decl): Only set DECL_COMMON on
5175         VAR_DECLs. Only set SET_DECL_ASSEMBLER_NAME on
5176         VAR_OR_FUNCTION_DECL_P.
5177
5178 2005-07-08  Daniel Berlin  <dberlin@dberlin.org>
5179
5180         * utils.c (create_param_decl): DECL_ARG_TYPE_AS_WRITTEN is
5181         removed.
5182
5183 2005-07-07  Pascal Obry  <obry@adacore.com>
5184
5185         * g-socthi-mingw.adb (C_Inet_Addr): New body used to convert the
5186         returned type on Windows.
5187
5188         * g-socthi-mingw.ads (C_Inet_Addr): Remove pragma Import for this
5189         routine.
5190
5191         * g-socket.adb (Inet_Addr): Check for empty Image and raises an
5192         exception in this case.
5193         Simplify the code as "Image (Image'Range)" = "Image".
5194
5195 2005-07-07  Vincent Celier  <celier@adacore.com>
5196
5197         * bindgen.adb (Gen_Output_File_C): When switch -a was specified, put
5198         the destructor/constructor attributes for <lib>final/<lib>init.
5199
5200         * gnatbind.adb (Gnatbind): Allow -a to be used in conjunction with -C
5201
5202 2005-07-07  Eric Botcazou  <ebotcazou@adacore.com>
5203
5204         * decl.c (gnat_to_gnu_entity) <E_Procedure>: Do not strip the padding
5205         type if the parameter is not passed by copy but reference by default.
5206
5207 2005-07-07  Javier Miranda  <miranda@adacore.com>
5208
5209         * exp_ch3.adb (Build_Record_Init_Proc/Freeze_Record_Type):
5210         Reimplementation of the support for abstract interface types in order
5211         to leave the code more clear and easy to maintain.
5212
5213         * exp_ch6.adb (Freeze_Subprogram): Reimplementation of the support for
5214         abstract interface types in order to leave the code clearer and easier
5215         to maintain.
5216
5217         * exp_disp.ads, exp_disp.adb (Fill_DT_Entry): Part of its functionality
5218         is now implemented by the new subprogram Fill_Secondary_DT_Entry.
5219         (Fill_Secondary_DT_Entry): Generate the code necessary to fill the
5220         appropriate entry of the secondary dispatch table.
5221         (Make_DT): Add code to inherit the secondary dispatch tables of
5222         the ancestors.
5223
5224         * exp_util.adb (Find_Interface_Tag/Find_Interface_ADT): Instead of
5225         implementing both functionalities by means of a common routine, each
5226         routine has its own code.
5227
5228 2005-07-07  Javier Miranda  <miranda@adacore.com>
5229
5230         * freeze.adb (Freeze_Entity): Check wrong uses of tag incomplete types.
5231
5232         * par-ch3.adb (P_Type_Declaration): Give support to tagged incomplete
5233         types:
5234         --
5235           type DEFINING_IDENTIFIER [DISCRIMINANT_PART] [IS TAGGED];
5236         --
5237
5238         * sem_attr.adb (Check_Not_Incomplete_Type): Additional checks for wrong
5239         use of tag incomplete types.
5240
5241         * sem_ch3.adb (Analyze_Incomplete_Type): Add mininum decoration to
5242         give support to tagged incomplete types.
5243
5244         * sem_ch5.adb (Analyze_Case_Statement): In generated code, if the
5245         expression is a discriminant reference and its type is private, as can
5246         happen within a stream operation for a mutable record, use the full
5247         view of the type to resolve the case alternatives.
5248         (Analyze_Assignment): Check wrong dereference of incomplete types.
5249
5250         * sem_ch6.adb (Process_Formals): Allow the use of tagged incomplete
5251         types.
5252
5253         * sem_res.adb (Resolve_Explicit_Dereference): Allow the use of tagged
5254         incomplete types.
5255
5256         * sinfo.adb (Taggged_Present/Set_Taggged_Present): Applicable to
5257         N_Incomplete_Type_Declaration nodes.
5258
5259         * sinfo.ads (N_Incomplete_Type_Declaration): Addition of attribute
5260         Tag_Present to give support to tagged incomplete types:
5261         --
5262           type DEFINING_IDENTIFIER [DISCRIMINANT_PART] [IS TAGGED];
5263         --
5264
5265 2005-07-07  Olivier Hainque  <hainque@adacore.com>
5266
5267         PR ada/22301
5268
5269         * raise.c: Only include unwind.h if IN_RTS, and provide dummy type
5270         definitions for the Unwind wrappers in the compiler case.
5271
5272 2005-07-07  Ed Schonberg  <schonberg@adacore.com>
5273             Javier Miranda  <miranda@adacore.com>
5274
5275         * par-load.adb (Load): If a child unit is loaded through a limited_with
5276         clause, each parent must be loaded as a limited unit as well.
5277
5278         * sem_ch10.adb (Previous_Withed_Unit): Better name for
5279         Check_Withed_Unit. Return true if there is a previous with_clause for
5280         this unit, whether limited or not.
5281         (Expand_Limited_With_Clause): Do not generate a limited_with_clause on
5282         the current unit.
5283         (Is_Visible_Through_Renamings): New local subprogram of install_limited
5284         _withed_unit that checks if some package installed through normal with
5285         clauses has a renaming declaration of package whose limited-view is
5286         ready to be installed. This enforces the check of the rule 10.1.2 (21/2)
5287         of the current Draft document for Ada 2005.
5288         (Analyze_Context): Complete the list of compilation units that
5289         are allowed to contain limited-with clauses. It also contains
5290         checks that were previously done by Install_Limited_Context_Clauses.
5291         This makes the code more clear and easy to maintain.
5292         (Expand_Limited_With_Clause) It is now a local subprogram of
5293         Install_Limited_Context_Clauses, and contains the code that adds
5294         the implicit limited-with clauses for parents of child units.
5295         This functionality was prevously done by Analyze_Context.
5296
5297         * sem_ch4.adb (Analyze_Selected_Component): Check wrong use of
5298         incomplete type.
5299
5300         * sem_ch7.adb (Analyze_Package_Declaration): Check if the package has
5301         been erroneously named in a limited-with clause of its own context.
5302         In this case the error has been previously notified by Analyze_Context.
5303
5304 2005-07-07  Ed Schonberg  <schonberg@adacore.com>
5305
5306         * sem_ch8.adb (Find_Direct_Name): Handle properly the case of a
5307         generic package that contains local declarations with the same name.
5308         (Analyze_Object_Renaming): Check wrong renaming of incomplete type.
5309
5310 2005-07-07  Bernard Banner  <banner@adacore.com>
5311
5312         * tracebak.c: Refine tracebacks to use Unwind_Backtrace scheme on
5313         ia64 platform only on platforms that you the GCC unwind library
5314         rather than the system unwind library.
5315
5316 2005-07-07  Thomas Quinot  <quinot@adacore.com>
5317
5318         * expect.c: Minor reformatting
5319
5320 2005-07-07  Sergey Rybin  <rybin@adacore.com>
5321
5322         * vms_data.ads: Add VMS qualifiers for new gnatpp switch
5323         --no-separate-is
5324
5325         * gnat_ugn.texi: Add description for new gnatpp option
5326         (--no-separate-is)
5327
5328 2005-07-04  Thomas Quinot  <quinot@adacore.com>
5329
5330         * g-expect-vms.adb, g-expect.ads, g-expect.adb
5331         (Get_Command_Output): New subprogram to launch a process and get its
5332         standard output as a string.
5333
5334 2005-07-04  Eric Botcazou  <ebotcazou@adacore.com>
5335             Olivier Hainque  <hainque@adacore.com>
5336
5337         * s-mastop-tru64.adb (Pop_Frame): Use exc_lookup_function_entry to
5338         fetch a code-range descriptor associated with the machine state. On
5339         failure set the machine state's PC to 0; on success, pass the
5340         descriptor to exc_virtual_unwind.
5341
5342         * init.c (Tru64 section): New function __gnat_set_code_loc.
5343
5344 2005-07-04  Vincent Celier  <celier@adacore.com>
5345
5346         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
5347         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
5348         mlib-tgt-mingw.adb, mlib-tgt-darwin.adb (Build_Dynamic_Library):
5349         Remove all auto-initialization code, as this is now done through the
5350         constructor mechanism.
5351
5352         * adaint.h, adaint.c (__gnat_binder_supports_auto_init,
5353         __gnat_sals_init_using_constructors): New functions.
5354
5355         * bindgen.adb (Gen_Output_File_Ada): Generate pragmas
5356         Linker_Constructor and Linker_Destructor when switch -a is used.
5357
5358         * bindusg.adb: Add line for new switch -a
5359
5360         * gnatbind.adb (Gnatbind_Supports_Auto_Init): New Boolean function
5361         (Gnatbind): When switch -a is used, check if it is allowed
5362
5363         * switch-b.adb (Scan_Binder_Switches): Process new switch -a
5364
5365 2005-07-04  Joel Brobecker  <brobecker@adacore.com>
5366
5367         * a-tags.adb (Type_Specific_Data): Define Tags_Table as a small array.
5368         This prevents us from hitting a limitation during the debug info
5369         generation when using stabs.
5370         (Prims_Ptr): Likewise.
5371
5372 2005-07-04  Gary Dismukes  <dismukes@adacore.com>
5373             Ed Schonberg  <schonberg@adacore.com>
5374             Javier Miranda  <miranda@adacore.com>
5375
5376         * checks.adb (Null_Exclusion_Static_Checks): In the case of
5377         N_Object_Declaration, only perform the checks if the Object_Definition
5378         is not an Access_Definition.
5379
5380         * sem_ch3.adb (Access_Subprogram_Declaration): Add test for the case
5381         where the parent of an the access definition is an N_Object_Declaration
5382         when determining the Associated_Node_For_Itype and scope of an
5383         anonymous access-to-subprogram type.
5384
5385         * exp_ch6.adb (Expand_N_Subprogram_Declaration): Set the
5386         Corresponding_Spec on the body created for a null procedure. Add ???
5387         comment. Remove New_Copy_Tree call on body argument to
5388         Set_Body_To_Inline.
5389
5390         * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): For an out parameter with
5391         discriminants, use the type of the actual as well, because the
5392         discriminants may be read by the called subprogram.
5393
5394         * sem_ch3.adb (Access_Type_Declaration): If the designated type is an
5395         access type we do not need to handle non-limited views.
5396         (Build_Derived_Record_Type): Additional check to check that in case of
5397         private types, interfaces are only allowed in private extensions.
5398
5399 2005-07-04  Eric Botcazou  <ebotcazou@adacore.com>
5400
5401         * decl.c (prepend_attributes) <Pragma_Linker_Constructor>: New case.
5402         <Pragma_Linker_Destructor>: Likewise.
5403
5404         * einfo.ads (Has_Gigi_Rep_Item): Document Pragma_Linker_Constructor and
5405         Pragma_Linker_Destructor.
5406
5407         * gigi.h (attr_type): Add ATTR_LINK_CONSTRUCTOR and
5408         ATTR_LINK_DESTRUCTOR.
5409         (static_ctors, static_dtors): New variables.
5410
5411         * misc.c (gnat_expand_body): Output current function as constructor
5412         and destructor if requested.
5413
5414         * par-prag.adb: Add processing for pragma Linker_Constructor and
5415         Linker_Destructor.
5416
5417         * sem_prag.adb (Find_Unique_Parameterless_Procedure): New function
5418         extracted from Check_Interrupt_Or_Attach_Handler.
5419         (Check_Interrupt_Or_Attach_Handler): Invoke it.
5420         Implement pragma Linker_Constructor and Linker_Destructor with the
5421         help of Find_Unique_Parameterless_Procedure.
5422         Replace Name_Alias with Name_Target for pragma Linker_Alias.
5423
5424         * snames.h, snames.ads, snames.adb:
5425         Add Name_Linker_Constructor and Name_Linker_Destructor.
5426         Add Pragma_Linker_Constructor and Pragma_Linker_Destructor.
5427         * snames.adb: Remove Name_Alias.
5428
5429         * trans.c: Include cgraph.h.
5430         (build_global_cdtor): New function.
5431         (Compilation_Unit_to_gnu): Build global constructor and destructor if
5432         needed.
5433         (tree_transform) <N_Identifier>: Substitute renaming of view-conversions
5434         of objects too.
5435         (addressable_p) <COMPONENT_REF>: Unconditionally test
5436         DECL_NONADDRESSABLE_P on STRICT_ALIGNMENT platforms.
5437
5438         * utils.c (process_attributes) <ATTR_LINK_ALIAS>: Do not assemble the
5439         variable if it is external.
5440
5441         (static_ctors, static_dtors): New global variables.
5442         (process_attributes) <ATTR_LINK_CONSTRUCTOR>: New case.
5443         <ATTR_LINK_DESTRUCTOR>: Likewise.
5444         (end_subprog_body): Chain function as constructor and destructor
5445         if requested.
5446
5447         * exp_util.adb (Force_Evaluation): Unconditionally invoke
5448         Remove_Side_Effects with Variable_Ref set to true.
5449         (Remove_Side_Effects): Handle scalar types first. Use a renaming
5450         for non-scalar types even if Variable_Ref is true and for class-wide
5451         expressions.
5452
5453 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
5454
5455         * exp_attr.adb (Mod): Evaluate condition expression with checks off,
5456         to prevent spurious warnings.
5457
5458 2005-07-04  Thomas Quinot  <quinot@adacore.com>
5459
5460         * exp_dist.adb (Build_TypeCode_Call): Remove incorrect processing for
5461         Itypes. Itypes are really unexpected there.
5462         (Build_TypeCode_Function): Generalise special processing for Itypes to
5463         handle the case of numeric implicit base types as well as enumerated
5464         ones.
5465
5466 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
5467
5468         * exp_intr.adb (Expand_Unc_Deallocation): If the designated type is
5469         controlled, indicate the expected type of the dereference that is
5470         created for the call to Deep_Finalize, to prevent spurious errors when
5471         the designated type is private and completed with a derivation from
5472         another private type.
5473
5474 2005-07-04  Vincent Celier  <celier@adacore.com>
5475
5476         * make.adb (Change_To_Object_Directory): When unable to change the
5477         current dir to the object directory, output the full path of the
5478         directory.
5479
5480 2005-07-04  Matthew Gingell  <gingell@adacore.com>
5481
5482         * Makefile.in: Replace indepsw-linux.adb by indepsw-gnu.adb
5483
5484         * indepsw-linux.adb: Replace by...
5485
5486         * indepsw-gnu.adb: ...this new file
5487
5488 2005-07-04  Vincent Celier  <celier@adacore.com>
5489
5490         * mlib-prj.adb (Auto_Initialize): New constant String
5491         (SALs_Use_Constructors): New Boolean function
5492         (Build_Library): Call gnatbind with Auto_Initialize switch when
5493         SALs_Use_Constructors returns True.
5494
5495         * mlib-tgt.ads: Minor reformatting
5496
5497         * mlib-utl.ads: Minor reformatting
5498
5499         * opt.ads: (Use_Pragma_Linker_Constructor): New Boolean flag
5500
5501 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
5502
5503         * par-ch9.adb (P_Task, P_Protected): Indicate that single task and
5504         single protected declarations can have an interface list.
5505         (P_Entry_Declaration): Add handler for Error_Resync, which can be raised
5506         with seriously malformed entry declarations, and lead to compilation
5507         abandoned messages.
5508
5509 2005-07-04  Javier Miranda  <miranda@adacore.com>
5510
5511         * par-load.adb: Load the context items in two rounds.
5512
5513 2005-07-04  Robert Dewar  <dewar@adacore.com>
5514
5515         * scng.adb: Do not consider Mod used as an attribute to be a keyword
5516
5517 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
5518             Javier Miranda  <miranda@adacore.com>
5519
5520         * sem_ch10.adb (Build_Limited_Views): A type declared with a private
5521         type extension needs a limited view.
5522         Remove previous restriction on private types available through the
5523         limited-view (only tagged private types were previously allowed).
5524         (Install_Withed_Unit): In the code that implements the
5525         legality rule given in AI-377, exclude a child unit with the name
5526         Standard, because it is a homonym of the Standard environment package.
5527
5528 2005-07-04  Thomas Quinot  <quinot@adacore.com>
5529
5530         * sem_ch4.adb (Transform_Object_Operation): For an actual that is an
5531         overloaded function call, carry interpretations from the original tree
5532         to the copy.
5533
5534 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
5535
5536         * sem_ch6.adb (Conforming_Types): If the types are anonymous access
5537         types check whether some designated type is a limited view, and use
5538         the non-limited view if available.
5539
5540 2005-07-04  Gary Dismukes  <dismukes@adacore.com>
5541
5542         * sem_eval.adb (Subtypes_Statically_Match): Use the discriminant
5543         constraint of full view of a private view T1 if present, when T2 is a
5544         discriminated full view.
5545
5546 2005-07-04  Thomas Quinot  <quinot@adacore.com>
5547
5548         * sem_res.adb (Resolve_Actuals): Do not resolve the expression of an
5549         actual that is a view conversion of a bit packed array reference.
5550
5551 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
5552
5553         * sem_type.adb (Covers): Verify that Corresponding_Record_Type is
5554         present before checking whether an interface type covers a synchronized
5555         type.
5556
5557 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
5558
5559         * sem_util.adb (Is_Object_Reference): An indexed or selected component
5560         whose prefix is an implicit dereference is an object reference. Removes
5561         spurious errors when compiling with -gnatc.
5562
5563 2005-07-04  Robert Dewar  <dewar@adacore.com>
5564
5565         PR ada/22039
5566
5567         * s-sopco3.ads, s-sopco4.ads, s-sopco5.ads: Minor documentation fix
5568
5569 2005-07-04  Matthew Gingell  <gingell@adacore.com>
5570
5571         * tracebak.c: Enable tracebacks on ia64 platforms
5572
5573 2005-07-04  Vincent Celier  <celier@adacore.com>
5574
5575         * vms_conv.adb (Initialize): Allow multiple ALI files to be given to
5576         the GNAT BIND command, as gnatbind accepts multiples ALI files with
5577         the -L or -n switches.
5578
5579 2005-07-04  Vincent Celier  <celier@adacore.com>
5580
5581         * makegpr.adb (Build_Global_Archive): Make sure the list of sources is
5582         correctly computed and the main project data is not modified while
5583         doing so.
5584         (Add_C_Plus_Plus_Link_For_Gnatmake): Always link with the C++ compiler
5585         (Choose_C_Plus_Plus_Link_Process): Do not generate shell script
5586         c++linker as this does not work on some platforms.
5587
5588 2005-07-04  Matthew Heaney  <heaney@adacore.com>
5589
5590         * a-convec.ads, a-coinve.ads: Declaration of subtype Extended_Index
5591         was changed.
5592         * a-coinve.adb: Perform constraint checks explicitly.
5593
5594 2005-07-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5595             Thomas Quinot  <quinot@adacore.com>
5596
5597         * Make-lang.in: (ada/targtyps.o): Add missing TREE_H dependency.
5598         new target gen-soccon.
5599
5600 2005-07-04  Robert Dewar  <dewar@adacore.com>
5601
5602         * s-mastop-irix.adb, s-mastop-vms.adb: Minor reformatting
5603
5604 2005-07-04  Thomas Quinot  <quinot@adacore.com>
5605
5606         * g-socket.ads (Check_Selector): Minor rewording of comment.
5607
5608 2005-07-04  Vincent Celier  <celier@adacore.com>
5609
5610         * vms_data.ads: Add VMS qualifiers for new gnatpp switch --eol=
5611
5612 2005-07-04  Thomas Quinot  <quinot@adacore.com>
5613
5614         * gen-soccon.c: Add constants SO_SNDTIMEO and SO_RCVTIMEO.
5615
5616 2005-07-04  Sergey Rybin  <rybin@adacore.com>
5617
5618         * gnat_ugn.texi: Add description of --eol gnatpp option
5619
5620 2005-07-04  Eric Botcazou  <ebotcazou@adacore.com>
5621             Thomas Quinot  <quinot@adacore.com>
5622
5623         * gnat_rm.texi: Add a note that pragma Unreferenced is not appropriate
5624         if the user wants all calls of a subprogram to be flagged,
5625         independently of whether they are made from within the same unit or
5626         another unit.
5627         Mention restriction for pragma Linker_Alias on some platforms.
5628         Document pragma Linker_Constructor and Linker_Destructor.
5629         Rewrite documentation of Weak_External, Linker_Section and
5630         Linker_Alias pragmas.
5631
5632 2005-07-04  Arnaud Charlet  <charlet@adacore.com>
5633
5634         * s-stausa.ads, s-stausa.adb: New files.
5635
5636 2005-06-30  Kelley Cook
5637
5638         * all files:  Update FSF address in copyright headers.
5639         * gen-soccon.co (main): Output new FSF address in generated files.
5640
5641 2005-06-28  Paul Brook  <paul@codesourcery.com>
5642
5643         * misc.c (gnat_init_gcc_eh): Call default_init_unwind_resume_libfunc.
5644
5645 2005-06-14  Olivier Hainque  <hainque@adacore.com>
5646             Eric Botcazou  <ebotcazou@adacore.com>
5647
5648         * s-mastop-irix.adb (Pop_Frame): Revert shorcuts avoiding calls to
5649         exc_unwind, now that we are generating proper .debug_frame output for
5650         that target.
5651
5652         * tracebak.c: Remove the mips-irix section, as we are now using the
5653         s-mastop based unwinder again.
5654         Under SPARC/Solaris, take into account the stack bias to compute the
5655         frame offset.  The stack bias is 0 for the V8 ABI and 2047 for the V9
5656         ABI.
5657
5658 2005-06-14  Doug Rupp  <rupp@adacore.com>
5659
5660         * g-trasym-vms.adb: renamed g-trasym-vms-alpha.adb
5661
5662         * g-trasym-vms-alpha.adb, g-trasym-vms-ia64.adb: New files
5663
5664 2005-06-14  Pascal Obry  <obry@adacore.com>
5665
5666         * a-strhas.ads, a-secain.adb, a-secain.ads, a-rbtgso.ads, a-cgaaso.adb,
5667         a-cgaaso.ads, a-cgarso.adb, a-cgcaso.adb, a-cgarso.ads, a-cgcaso.ads,
5668         a-contai.ads, a-coprnu.ads, a-coprnu.adb: Fix header style (spaces in
5669         package name).
5670
5671         * a-intnam-lynxos.ads, a-intnam-unixware.ads, a-intnam-tru64.ads,
5672         a-intnam-aix.ads, a-intnam-irix.ads, a-excpol-interix.adb,
5673         a-intnam-hpux.ads, a-intnam-linux.ads, a-intnam-dummy.ads,
5674         a-intnam-os2.ads, a-numaux-libc-x86.ads, a-intnam-interix.ads,
5675         a-intnam-solaris.ads, a-caldel-vms.adb, a-calend-vms.ads,
5676         a-intnam-vms.ads, a-excpol-abort.adb, a-intnam-mingw.ads,
5677         a-intnam-vxworks.ads, a-numaux-vxworks.ads, s-osinte-unixware.adb,
5678         s-osinte-unixware.ads, s-osinte-lynxos-3.adb, s-osinte-lynxos-3.ads,
5679         s-osinte-hpux.ads, s-osinte-solaris-posix.ads, a-intnam-freebsd.ads,
5680         s-osinte-freebsd.adb, s-osinte-freebsd.ads, s-osinte-lynxos.adb,
5681         s-osinte-lynxos.ads, s-tpopsp-lynxos.adb, s-osinte-tru64.adb,
5682         s-osinte-tru64.ads, s-tpopsp-posix-foreign.adb, s-vxwork-alpha.ads,
5683         s-osinte-aix.adb, s-osinte-aix.ads, s-osinte-aix-fsu.ads,
5684         s-osinte-irix.adb, s-osinte-irix.ads, s-interr-sigaction.adb,
5685         s-osinte-irix-athread.ads, s-osinte-hpux-dce.adb,
5686         s-osinte-hpux-dce.ads, s-osinte-posix.adb, s-osinte-linux.ads,
5687         s-vxwork-m68k.ads, s-osinte-linux-fsu.ads, s-vxwork-mips.ads,
5688         s-osinte-dummy.ads, s-interr-dummy.adb, s-osinte-os2.adb,
5689         s-osinte-os2.ads, s-osprim-os2.adb, s-osinte-interix.ads,
5690         s-osprim-unix.adb, s-vxwork-ppc.ads, s-osinte-solaris.adb,
5691         s-osinte-solaris.ads, s-osprim-solaris.adb, s-tpopsp-solaris.adb,
5692         s-vxwork-sparcv9.ads, s-osinte-solaris-fsu.ads, s-interr-vms.adb,
5693         s-osinte-vms.adb, s-osinte-vms.ads, s-osprim-vms.adb,
5694         s-osprim-vms.ads, s-tpopde-vms.adb, s-tpopde-vms.ads,
5695         s-osprim-mingw.adb, s-vxwork-xscale.ads, s-interr-vxworks.adb,
5696         s-osinte-vxworks.adb, s-osinte-vxworks.ads, s-osprim-vxworks.adb,
5697         s-tfsetr-vxworks.adb, s-tpopsp-vxworks.adb, s-intman-posix.adb,
5698         s-osinte-fsu.adb, s-osprim-posix.adb, s-tfsetr-default.adb,
5699         s-tpopsp-posix.adb, s-traces-default.adb, s-trafor-default.adb,
5700         s-trafor-default.ads, s-tratas-default.adb, a-numaux-x86.adb,
5701         a-numaux-x86.ads, a-astaco.adb, a-astaco.ads, a-caldel.adb,
5702         a-caldel.ads, a-charac.ads, a-chlat1.ads, a-chlat9.ads, a-colien.adb,
5703         a-colien.ads, a-colire.adb, a-colire.ads, a-comlin.adb, a-cwila1.ads,
5704         a-cwila9.ads, ada.ads, a-decima.adb, a-diocst.ads, a-direio.adb,
5705         a-dynpri.adb, a-dynpri.ads, a-excpol.adb, a-flteio.ads, a-fwteio.ads,
5706         a-inteio.ads, a-interr.adb, a-intnam.ads, a-intsig.adb, a-intsig.ads,
5707         a-ioexce.ads, a-iwteio.ads, a-lfteio.ads, a-lfwtio.ads, a-liteio.ads,
5708         a-liwtio.ads, a-llftio.ads, a-llfwti.ads, a-llitio.ads, a-lliwti.ads,
5709         a-ncelfu.ads, a-ngcefu.adb, a-ngcefu.ads, a-ngcoty.adb, a-ngelfu.adb,
5710         a-ngelfu.ads, a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads,
5711         a-nllcty.ads, a-nllefu.ads, a-nscefu.ads, a-nscoty.ads, a-nselfu.ads,
5712         a-nucoty.ads, a-nudira.adb, a-nuelfu.ads, a-nuflra.adb, a-numaux.ads,
5713         a-numeri.ads, a-reatim.adb, a-retide.adb, a-retide.ads, a-sequio.adb,
5714         a-sequio.ads, a-sfteio.ads, a-sfwtio.ads, a-siocst.ads, a-siteio.ads,
5715         a-siwtio.ads, a-ssicst.ads, a-ssitio.ads, a-ssiwti.ads, a-stmaco.ads,
5716         a-storio.adb, a-strbou.adb, a-strfix.adb, a-string.ads, a-strmap.adb,
5717         a-strsea.adb, a-strsup.adb, a-strunb.ads, a-ststio.adb, a-stunau.adb,
5718         a-stunau.ads, a-stwibo.adb, a-stwifi.adb, a-stwifi.ads, a-stwima.adb,
5719         a-stwise.adb, a-stwisu.adb, a-suteio.adb, a-suteio.ads, a-swuwti.adb,
5720         a-swuwti.ads, a-teioed.adb, a-ticoau.adb, a-ticoau.ads, a-ticoio.adb,
5721         a-tideau.adb, a-tideio.adb, a-tienau.adb, a-tienio.adb, a-tifiio.adb,
5722         a-tiflio.adb, a-tigeau.adb, a-tigeau.ads, a-tiinio.adb, a-timoau.adb,
5723         a-timoio.adb, a-timoio.ads, a-tiocst.ads, a-titest.adb, a-titest.ads,
5724         a-witeio.adb, a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads,
5725         a-wtcstr.ads, a-wtdeau.adb, a-wtdeio.adb, a-wtenau.adb, a-wtenio.adb,
5726         a-wtfiio.adb, a-wtflio.adb, a-wtgeau.adb, a-wtinau.adb, a-wtinio.adb,
5727         a-wtinio.ads, a-wtmoau.adb, a-wtmoio.adb, a-wttest.adb, calendar.ads,
5728         dec.ads, dec-io.adb, dec-io.ads, directio.ads, errno.c, g-bubsor.adb,
5729         g-bubsor.ads, g-busora.adb, g-busora.ads, g-busorg.adb, g-busorg.ads,
5730         g-casuti.adb, g-casuti.ads, g-debuti.ads, g-heasor.adb, g-heasor.ads,
5731         g-hesora.adb, g-hesora.ads, g-hesorg.adb, g-hesorg.ads, g-htable.adb,
5732         g-htable.ads, g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads,
5733         g-memdum.adb, g-memdum.ads, g-sestin.ads, g-signal.ads, g-signal.adb,
5734         gnat.ads, g-souinf.ads, g-speche.adb, g-speche.ads, g-table.adb,
5735         g-table.ads, g-thread.adb, g-thread.ads, ioexcept.ads, i-vxwoio.adb,
5736         i-vxwoio.ads, math_lib.adb, s-assert.adb, s-assert.ads, s-asthan.ads,
5737         s-bitops.adb, s-bitops.ads, s-boarop.ads, s-carsi8.adb, s-carsi8.ads,
5738         s-carun8.adb, s-carun8.ads, s-casi16.adb, s-casi16.ads, s-casi32.adb,
5739         s-casi32.ads, s-casi64.adb, s-casi64.ads, s-casuti.adb, s-casuti.ads,
5740         s-caun16.adb, s-caun16.ads, s-caun32.adb, s-caun32.ads, s-caun64.adb,
5741         s-caun64.ads, s-direio.adb, s-direio.ads, sequenio.ads, s-errrep.adb,
5742         s-errrep.ads, s-exnint.adb, s-exnint.ads, s-exnllf.adb, s-exnllf.ads,
5743         s-exnlli.adb, s-exnlli.ads, s-expint.adb, s-expint.ads, s-explli.adb,
5744         s-explli.ads, s-expllu.adb, s-expllu.ads, s-expmod.adb, s-expmod.ads,
5745         s-expuns.adb, s-expuns.ads, s-fore.adb, s-fore.ads, s-geveop.adb,
5746         s-geveop.ads, s-htable.adb, s-htable.ads, s-imgbiu.adb, s-imgbiu.ads,
5747         s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads, s-imgdec.adb,
5748         s-imgdec.ads, s-imgenu.adb, s-imgenu.ads, s-imgint.adb, s-imgint.ads,
5749         s-imgllb.adb, s-imgllb.ads, s-imglld.adb, s-imglld.ads, s-imglli.adb,
5750         s-imglli.ads, s-imgllu.adb, s-imgllu.ads, s-imgllw.adb, s-imgllw.ads,
5751         s-imgrea.ads, s-imguns.adb, s-imguns.ads, s-imgwiu.adb, s-imgwiu.ads
5752         s-interr.ads, s-io.adb, s-mantis.adb, s-mantis.ads, s-osprim.ads,
5753         s-pack03.adb, s-pack03.ads, s-pack05.adb, s-pack05.ads, s-pack06.adb,
5754         s-pack06.ads, s-pack07.adb, s-pack07.ads, s-pack09.adb, s-pack09.ads,
5755         s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads, s-pack12.adb,
5756         s-pack12.ads, s-pack13.adb, s-pack13.ads, s-pack14.adb, s-pack14.ads,
5757         s-pack15.adb, s-pack15.ads, s-pack17.adb, s-pack17.ads, s-pack18.adb,
5758         s-pack18.ads, s-pack19.adb, s-pack19.ads, s-pack20.adb, s-pack20.ads,
5759         s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads, s-pack23.adb,
5760         s-pack23.ads, s-pack24.adb, s-pack24.ads, s-pack25.adb, s-pack25.ads,
5761         s-pack26.adb, s-pack26.ads, s-pack27.adb, s-pack27.ads, s-pack28.adb,
5762         s-pack28.ads, s-pack29.adb, s-pack29.ads, s-pack30.adb, s-pack30.ads,
5763         s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads, s-pack34.adb,
5764         s-pack34.ads, s-pack35.adb, s-pack35.ads, s-pack36.adb, s-pack36.ads,
5765         s-pack37.adb, s-pack37.ads, s-pack38.adb, s-pack38.ads, s-pack39.adb,
5766         s-pack39.ads, s-pack40.adb, s-pack40.ads, s-pack41.adb, s-pack41.ads,
5767         s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads, s-pack44.adb,
5768         s-pack44.ads, s-pack45.adb, s-pack45.ads, s-pack46.adb, s-pack46.ads,
5769         s-pack47.adb, s-pack47.ads, s-pack48.adb, s-pack48.ads, s-pack49.adb,
5770         s-pack49.ads, s-pack50.adb, s-pack50.ads, s-pack51.adb, s-pack51.ads,
5771         s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads, s-pack54.adb,
5772         s-pack54.ads, s-pack55.adb, s-pack55.ads, s-pack56.adb, s-pack56.ads,
5773         s-pack57.adb, s-pack57.ads, s-pack58.adb, s-pack58.ads, s-pack59.adb,
5774         s-pack59.ads, s-pack60.adb, s-pack60.ads, s-pack61.adb, s-pack61.ads,
5775         s-pack62.adb, s-pack62.ads, s-pack63.adb, s-pack63.ads, s-scaval.adb,
5776         s-scaval.ads, s-sequio.adb, s-sequio.ads, s-stache.adb, s-stache.ads,
5777         s-stratt.adb, s-stratt.ads, s-strcom.adb, s-strcom.ads, s-strops.adb,
5778         s-strops.ads, s-taasde.ads, s-tadeca.adb, s-tadeca.ads, s-tadert.adb,
5779         s-tadert.ads, s-taenca.adb, s-taenca.ads, s-taprob.adb, s-taprob.ads,
5780         s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads, s-tasini.adb,
5781         s-tasini.ads, s-taskin.adb, s-taskin.ads, s-tasque.adb, s-tasque.ads,
5782         s-tasren.ads, s-tasres.ads, s-tassta.adb, s-tassta.ads, s-tasuti.adb,
5783         s-tasuti.ads, s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
5784         s-tpoben.adb, s-tpoben.ads, s-tpobop.ads, s-tporft.adb, s-tposen.ads,
5785         s-traces.adb, s-traces.ads, s-tratas.adb, s-tratas.ads, s-valint.ads,
5786         s-unstyp.ads, s-veboop.adb, s-veboop.ads, s-vector.ads, s-vercon.adb,
5787         s-vercon.ads, s-wchcnv.adb, s-wchcnv.ads, s-wchjis.adb, s-wchjis.ads,
5788         s-wchstw.adb, s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, s-widboo.adb,
5789         s-widboo.ads, s-widcha.adb, s-widcha.ads, s-widenu.adb, s-widenu.ads,
5790         s-widlli.adb, s-widlli.ads, s-widllu.adb, s-widllu.ads, s-wwdcha.ads,
5791         s-wwdenu.adb, s-wwdwch.ads, text_io.ads, s-stchop.ads, s-stchop.adb,
5792         s-stchop-vxworks.adb, a-intnam-darwin.ads, s-osinte-darwin.adb,
5793         s-osinte-darwin.ads, s-vxwork-x86.ads, a-numaux-darwin.ads,
5794         a-numaux-darwin.adb, a-chzla1.ads, a-chzla9.ads, a-lfztio.ads,
5795         a-liztio.ads, a-llfzti.ads, a-llizti.ads, a-sfztio.ads, a-siztio.ads,
5796         a-ssizti.ads, a-stzbou.adb, a-stzfix.adb, a-stzfix.ads, a-stzmap.adb,
5797         a-stzsea.adb, a-stzsup.adb, a-swunau.adb, a-swunau.ads, a-szuzti.adb,
5798         a-szuzti.ads, a-tiunio.ads, a-wwunio.ads, a-ztcoau.adb, a-ztcoau.ads,
5799         a-ztcoio.adb, a-ztcoio.ads, a-ztcstr.ads, a-ztdeau.adb, a-ztdeio.adb,
5800         a-ztenio.adb, a-ztexio.adb, a-ztfiio.adb, a-ztflio.adb, a-ztgeau.adb,
5801         a-ztinau.adb, a-ztinio.adb, a-ztinio.ads, a-ztmoau.adb, a-ztmoio.adb,
5802         a-zttest.adb, a-zzunio.ads, g-utf_32.adb: Fix header style.
5803         "GNU Ada" to GNAT, use proper casing for RUN-TIME.
5804
5805 2005-06-14  Jose Ruiz  <ruiz@adacore.com>
5806             Arnaud Charlet  <charlet@adacore.com>
5807
5808         * a-sytaco.ads, a-sytaco.adb (Suspension_Object): These objects are no
5809         longer protected objects. They have been replaced by lower-level
5810         suspension objects made up by a mutex and a condition variable (or
5811         their equivalent given a particular OS) plus some internal data to
5812         reflect the state of the suspension object.
5813         (Initialize, Finalize): Add this initialization procedure for
5814         Suspension_Object, which is a controlled type.
5815         (Finalize): Add the finalization procedure for Suspension_Object,
5816         which is a controlled type.
5817
5818         * a-sytaco-vxworks.ads, a-sytaco-vxworks.adb: Remove this version of
5819         Ada.Synchronous_Task_Control because there is no longer a need for a
5820         VxWorks specific version of this package. Target dependencies
5821         has been moved to System.Task_Primitives.Operations.
5822
5823         * s-osinte-mingw.ads (pCRITICAL_SECTION): Remove this type which is no
5824         longer needed.
5825         (InitializeCriticalSection, EnterCriticalSection,
5826         LeaveCriticalSection, DeleteCriticalSection): Replace the type
5827         pCriticalSection by an anonymous access type so that we avoid problems
5828         of accessibility to local objects.
5829
5830         * s-taprop.ads, s-taprop-posix.adb, s-taprop-vxworks.adb,
5831         s-taprop-mingw.adb, s-taprop-vms.adb, s-taprop-solaris.adb,
5832         s-taprop-os2.adb, s-taprop-dummy.adb, s-taprop-hpux-dce.adb,
5833         s-taprop-linux.adb, s-taprop-irix.adb, s-taprop-irix-athread.adb,
5834         s-taprop-tru64.adb, s-taprop-lynxos.adb (Elaboration Code): No longer
5835         set the environment task mask here.
5836         (Current_State): Add this function that returns the state of the
5837         suspension object.
5838         (Set_False): Add this procedure that sets the state of the suspension
5839         object to False.
5840         (Set_True): Add this procedure that sets the state of the suspension
5841         object to True, releasing the task that was suspended, if any.
5842         (Suspend_Until_True): Add this procedure that blocks the calling task
5843         until the state of the object is True. Program_Error is raised if
5844         another task is already waiting on that suspension object.
5845         (Initialize): Add this procedure for initializing the suspension
5846         object. It initializes the mutex and the condition variable which are
5847         used for synchronization and queuing, and it sets the internal state
5848         to False.
5849         (Finalize): Add this procedure for finalizing the suspension object,
5850         destroying the mutex and the condition variable.
5851
5852         * s-taspri-posix.ads, s-taspri-vxworks.ads, s-taspri-mingw.ads,
5853         s-taspri-vms.ads, s-taspri-solaris.ads, s-taspri-os2.ads,
5854         s-taspri-dummy.ads, s-taspri-hpux-dce.ads, s-taspri-linux.ads,
5855         s-taspri-tru64.ads, s-taspri-lynxos.ads (Suspension_Object): New object
5856         which provides a low-level abstraction (using operating system
5857         primitives) for Ada.Synchronous_Task_Control.
5858         This object is made up by a mutex (for ensuring mutual exclusion), a
5859         condition variable (for queuing threads until the condition is
5860         signaled), a Boolean (State) indicating whether the object is open,
5861         and a Boolean (Waiting) reflecting whether there is a task already
5862         suspended on this object.
5863
5864         * s-intman.ads, s-intman-irix.adb, s-intman-irix-athread.adb,
5865         s-intman-dummy.adb, s-intman-solaris.adb, s-intman-vms.adb,
5866         s-intman-vms.ads, s-intman-mingw.adb,
5867         (Initialize_Interrupts): Removed, no longer used.
5868
5869         * s-inmaop-posix.adb, s-inmaop-vms.adb, s-inmaop-dummy.adb,
5870         (Setup_Interrupt_Mask): New procedure.
5871
5872         * s-intman-vxworks.ads, s-intman-vxworks.adb:  Update comments.
5873
5874         * s-inmaop.ads (Setup_Interrupt_Mask): New procedure
5875
5876         * s-interr.adb: Add explicit call to Setup_Interrupt_Mask now that
5877         this is no longer done in the body of s-taprop
5878         (Server_Task): Explicitely test for Pending_Action in case
5879         System.Parameters.No_Abort is True.
5880
5881         * s-taasde.adb: Add explicit call to Setup_Interrupt_Mask now that this
5882         is no longer done in the body of s-taprop
5883
5884 2005-06-14  Robert Dewar  <dewar@adacore.com>
5885
5886         * system-unixware.ads, system-linux-ia64.ads, system-freebsd-x86.ads,
5887         system-lynxos-ppc.ads, system-lynxos-x86.ads, system-linux-x86_64.ads,
5888         system-tru64.ads, system-aix.ads, system-vxworks-sparcv9.ads,
5889         system-vxworks-xscale.ads, system-solaris-x86.ads, system-irix-o32.ads,
5890         system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
5891         system-linux-x86.ads, system-vxworks-mips.ads, system-vxworks-mips.ads,
5892         system-os2.ads, system-interix.ads, system-solaris-sparc.ads,
5893         system-solaris-sparcv9.ads, system-vms.ads, system-mingw.ads,
5894         system-vms-zcx.ads, system-vxworks-ppc.ads, system.ads,
5895         system-darwin-ppc.ads, system-vxworks-x86.ads, system-linux-ppc.ads,
5896         system-linux-hppa.ads, system-vms_64.ads,
5897         system-vxworks-alpha.ads: Minor comment update for
5898         AI-362 (unit is Pure).
5899
5900         * a-chahan.ads, a-chahan.adb: Move Wide_Wide functions to Conversions
5901         Add pragma Pure_05 for AI-362
5902         Make remaining conversion functions obsolescent in Ada 95
5903
5904         * impunit.adb: Change a-swunha to a-swuwha and a-szunha to a-szuzha
5905         Make Ada.Wide_Characters[.Unicode] available in Ada 95 mode
5906         Add entries for a-wichun and a-zchuni
5907         Add a-widcha a-zchara for AI-395
5908         Add a-chacon (Ada.Characters.Conversions) to list of Ada 2005 routines
5909
5910         * Makefile.rtl: Change a-swunha to a-swuwha and a-szunha to a-szuzha
5911         Add entries for a-wichun.o and a-zchuni.o
5912         Entries for a-widcha.o and a-zchara.o
5913         Add entry for a-chacon.o
5914
5915         * a-ztenau.adb: Add with of Ada.Characters.Conversions
5916
5917         * a-chacon.ads, a-chacon.adb: New files.
5918
5919         * a-taside.adb, a-exstat.adb, a-excach.adb: Add warnings off to allow
5920         categorization violations.
5921
5922         * a-strmap.ads: Add pragma Pure_05 for AI-362
5923         * a-strmap.ads: Add note on implicit categorization for AI-362
5924
5925         * a-tgdico.ads, a-taside.ads: Add pragma Preelaborate_05 for AI-362
5926
5927         * par-prag.adb: Dummy entry for pragma Persistent_BSS
5928         Set Ada_Version_Explicit, for implementation of AI-362
5929         Add processing for pragma Pure_05 and Preelaborate_05
5930         Add entry for Assertion_Policy pragma
5931
5932         * sem.adb: Make sure predefined units are compiled with GNAT_Mode true
5933         when needed for proper processing of categorization stuff
5934
5935         * sem_cat.adb:
5936         For several cases, make errors in preealborate units warnings,
5937         instead of errors, if GNAT_Mode is set. For AI-362.
5938
5939         * sem_elab.adb (Check_Elab_Call): Call to non-static subprogram in
5940         preelaborate unit is now warning if in GNAT mode
5941
5942         * s-stoele.ads: Document AI-362 for pragma preelaborate
5943
5944 2005-06-14  Doug Rupp  <rupp@adacore.com>
5945
5946         * s-parame-vms.ads, s-parame-hpux.ads, s-parame-vms-restrict.ads,
5947         s-parame-ae653.ads, s-parame.ads, s-parame-vxworks.ads:
5948         Default_Exception_Msg_Max_Length: new parameter.
5949
5950         * a-except.ads: (Exception_Msg_Max_Length): Set to
5951         System.Parameters.Default_Exception_Msg_Max_Length
5952         Add pragma Preelaborate_05 for AI-362
5953         Add warnings off to allow categorization violations for AI-362
5954
5955 2005-06-14  Vincent Celier  <celier@adacore.com>
5956
5957         * gnatsym.adb: Adapt to modification of package Symbols: procedure
5958         Process is now in package Processing.
5959
5960         * symbols.ads, symbols.adb:
5961         (Processing): New package, containing procedure Process
5962
5963         * symbols-vms-alpha.adb:
5964         Replaced by symbols-vms.adb and symbols-processing-vms-alpha.adb
5965
5966         * symbols-vms.adb, symbols-processing-vms-alpha.adb,
5967         symbols-processing-vms-ia64.adb: New files.
5968
5969 2005-06-14  Pascal Obry  <obry@adacore.com>
5970
5971         * mlib-tgt-mingw.adb (Build_Dynamic_Library): Replace the previous
5972         implementation. This new version generates the proper DllMain routine
5973         to initialize the SAL. The DllMain is generated in Ada and compiled
5974         before being added as option to the library build command.
5975
5976 2005-06-14  Doug Rupp  <rupp@adacore.com>
5977             Pascal Obry  <obry@adacore.com>
5978
5979         * adaint.c (__gnat_to_canonical_file_spec): Check for error returns in
5980         call to decc$translate_vms.
5981         (__gnat_locate_regular_file): Check if the path_val contains quotes. We
5982         need to remove those quotes before catenating the filename.
5983         (__gnat_locate_exec_on_path): improvements to the Win32 section:
5984         * avoid allocating the memory twice for better efficiency;
5985         * allocate 32K buffer for environment expansion as suggested by MSDN;
5986         * prepend ".;" to the path so that current directory is searched too.
5987
5988 2005-06-14  Robert Dewar  <dewar@adacore.com>
5989
5990         * a-except.adb (Exception_Identity): return Null_Id for null occurrence
5991         instead of raising CE (AI-241)
5992         Add warnings off to allow categorization violations for AI-362
5993
5994 2005-06-14  Robert Dewar  <dewar@adacore.com>
5995
5996         * ali-util.adb, gnatbind.adb: Remove references to
5997         Force_RM_Elaboration_Order.
5998
5999         * switch-b.adb: Remove recognition of -f switch
6000
6001 2005-06-14  Pascal Obry  <obry@adacore.com>
6002
6003         * a-stzunb.adb, a-stwiun.adb, a-strunb.adb (Realloc_For_Chunk): New
6004         implementation which is slightly more efficient.
6005
6006 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
6007             Javier Miranda  <miranda@adacore.com>
6008             Ed Schonberg  <schonberg@adacore.com>
6009             Hristian Kirtchev  <kirtchev@adacore.com>
6010
6011         * exp_ch4.adb (Expand_Allocator_Expression): When an initialized
6012         allocator's designated type is a class-wide type, and compiling for
6013         Ada 2005, emit a run-time check that the accessibility level of the
6014         type given in the allocator's expression is not deeper than the level
6015         of the allocator's access type.
6016
6017         (Tagged_Membership): Modified to gives support to abstract interface
6018         types.
6019
6020         * a-tags.ads, a-tags.adb (type Type_Specific_Data): Add component
6021         Access_Level.
6022         (Descendant_Tag): New predefined function
6023         (Is_Descendant_At_Same_Level): New predefined function
6024         (Get_Access_Level): New private function
6025         (Set_Access_Level): New private procedure
6026         (IW_Membership): New function. Given the tag of an object and the tag
6027         associated with an interface, evaluate if the object implements the
6028         interface.
6029         (Register_Interface_Tag): New procedure used to initialize the table of
6030         interfaces used by the IW_Membership function.
6031         (Set_Offset_To_Top): Initialize the Offset_To_Top field in the prologue
6032         of the dispatch table.
6033         (Inherit_TSD): Modified to copy the table of ancestor tags plus the
6034         table of interfaces of the parent.
6035         (Expanded_Name): Raise Tag_Error if the passed tag equals No_Tag.
6036         (External_Tag): Raise Tag_Error if the passed tag equals No_Tag.
6037         (Parent_Tag): Return No_Tag in the case of a root-level tagged type,
6038         and raise Tag_Error if the passed tag equalis No_Tag, to conform with
6039         Ada 2005 semantics for the new predefined function.
6040
6041         * exp_attr.adb (Expand_N_Attribute, case Attribute_Input): Generate
6042         call to Descendant_Tag rather than Internal_Tag.
6043         (Expand_N_Attribute, case Attribute_Output): Emit a check to ensure that
6044         the accessibility level of the attribute's Item parameter is not deeper
6045         than the level of the attribute's prefix type. Tag_Error is raised if
6046         the check fails. The check is only emitted for Ada_05.
6047         (Find_Stream_Subprogram): If a TSS exists on the type itself for the
6048         requested stream attribute, use it.
6049         (Expand_N_Attribute_Reference): If the designated type is an interface
6050         then rewrite the referenced object as a conversion to force the
6051         displacement of the pointer to the secondary dispatch table.
6052         (Expand_N_Attribute_Reference, case 'Constrained): Return false if this
6053         is a dereference of an object with a constrained partial view.
6054
6055         * exp_ch5.adb (Expand_N_Return_Statement): When a function's result
6056         type is a class-wide type, emit a run-time check that the accessibility
6057         level of the returned object is not deeper than the level of the
6058         function's master (only when compiling for Ada 2005).
6059
6060         * exp_disp.ads, exp_disp.adb (Ada_Actions, Action_Is_Proc,
6061         Action_Nb_Arg): Add entries for new Get_Access_Level and
6062         Set_Access_Level routines in these tables.
6063         (Make_DT): Generate a call to set the accessibility level of the
6064         tagged type in its TSD.
6065         (Make_DT): Code cleanup. The functionality of generating all the
6066         secondary dispatch tables has been moved to freeze_record_type.
6067         (Make_Abstract_Interface_DT): Minor code cleanup.
6068         (Set_All_DT_Position): Code cleanup. As part of the code cleanup
6069         this subprogram implements a new algorithm that provides the
6070         same functionality and it is more clear in case of primitives
6071         associated with abstract interfaces.
6072         (Set_All_Interfaces_DTC_Entity): Removed. As part of the code
6073         clean up, the functionality of this subprogram is now provided
6074         by Set_All_DT_Position.
6075         (Write_DT): New subprogram: a debugging procedure designed to be called
6076         within gdb to display the dispatch tables associated with a tagged
6077         type.
6078         (Collect_All_Interfaces): New subprogram that collects the whole list
6079         of interfaces that are directly or indirectly implemented by a tagged
6080         type.
6081         (Default_Prim_Op_Position): New subprogram that returns the fixed
6082         position in the dispatch table of the default primitive operations.
6083         (Expand_Interface_Actuals): New subprogram to generate code that
6084         displaces all the actuals corresponding to class-wide interfaces to
6085         reference the interface tag of the actual object.
6086         (Expand_Interface_Conversion): New subprogram. Reference the base of
6087         the object to give access to the interface tag associated with the
6088         secondary dispatch table.
6089         (Expand_Interface_Thunk): New subprogram that generates the code of the
6090         thunk. This is required for compatibility with the C+ ABI.
6091         (Make_Abstract_Interface_DT): New subprogram that generate the
6092         declarations for the secondary dispatch tables associated with an
6093         abstract interface.
6094         (Set_All_Interfaces_DTC_Entity): New subprogram that sets the DTC_Entity
6095         attribute for each primitive operation covering interface subprograms
6096         (Expand_Dispatching_Call, Fill_DT_Entry, Make_DT, Set_All_DT_Position):
6097         These subprograms were upgraded to give support to abstract interfaces
6098
6099         * rtsfind.ads (type RE_Id): Add RE_Descendant_Tag,
6100         RE_Is_Descendant_At_Same_Level, RE_Get_Access_Level, and
6101         RE_Set_Access_Level.
6102         (RE_Unit_Table): Add entries for new Ada.Tags operations.
6103         Add support to call the followig new run-time subprograms:
6104         IW_Membership, Register_Interface_Tag, and Set_Offset_To_Top
6105
6106         * sem_ch3.adb (Constant_Redeclaration): Allow a deferred constant to
6107         match its full declaration when both have an access definition with
6108         statically matching designated subtypes.
6109         (Analyze_Component_Declaration): Delete commented out code that was
6110         incorrectly setting the scope of an anonymous access component's type.
6111         (Process_Discriminants): Set Is_Local_Anonymous_Access for the type of
6112         an access discriminant when the containing type is nonlimited.
6113         (Make_Incomplete_Type_Declaration): Create an incomplete type
6114         declaration for a record type that includes self-referential access
6115         components.
6116         (Check_Anonymous_Access_Types): Before full analysis of a record type
6117         declaration, create anonymous access types for each self-referential
6118         access component.
6119         (Analyze_Component_Declaration, Array_Type_Declaration): Indicate that
6120         an access component in this context is a Local_Anonymous_Access, for
6121         proper accessibility checks.
6122         (Access_Definition): Set properly the scope of the anonymous access type
6123         created for a stand-alone access object.
6124         (Find_Type_Of_Object): An object declaration may be given with an access
6125         definition.
6126         (Complete_Subprograms_Derivation): New subprogram used to complete
6127         type derivation of private tagged types implementing interfaces.
6128         In this case some interface primitives may have been overriden
6129         with the partial-view and, instead of re-calculating them, they
6130         are included in the list of primitive operations of the full-view.
6131         (Build_Derived_Record_Type): Modified to give support to private
6132         types implemening interfaces.
6133         (Access_Definition): Reject ALL on anonymous access types.
6134         (Build_Derived_Record_Type): In the case of Ada 2005, allow a tagged
6135         type derivation to occur at a deeper accessibility level than the
6136         parent type.
6137         For the case of derivation within a generic body however, disallow the
6138         derivation if the derived type has an ancestor that is a formal type
6139         declared in the formal part of an enclosing generic.
6140         (Analyze_Object_Declaration): For protected objects, remove the check
6141         that they cannot contain interrupt handlers if not declared at library
6142         level.
6143         (Add_Interface_Tag_Components): New subprogram to add the tag components
6144         corresponding to all the abstract interface types implemented by a
6145         record type or a derived record type.
6146         (Analyze_Private_Extension_Declaration, Build_Derived_Record_Type,
6147         Derived_Type_Declaration, Find_Type_Name, Inherit_Components,
6148         Process_Full_View, Record_Type_Declaration): Modified to give
6149         support to abstract interface types
6150         (Collect_Interfaces): New subprogram that collects the list of
6151         interfaces that are not already implemented by the ancestors
6152         (Process_Full_View): Set flag Has_Partial_Constrained_View appropriately
6153         when partial view has no discriminants and full view has defaults.
6154         (Constrain_Access): Reject a constraint on a general access type
6155         if the discriminants of the designated type have defaults.
6156         (Access_Subprogram_Declaration): Associate the Itype node with the inner
6157         full-type declaration or subprogram spec. This is required to handle
6158         nested anonymous declarations.
6159         (Analyze_Private_Extension_Declaration, Build_Derived_Record_Type,
6160         Derived_Type_Declaration, Find_Type_Name, Inherit_Components,
6161         Process_Full_View, Record_Type_Declaration): Modified to give
6162         support to abstract interface types
6163         (Derive_Subprograms): Addition of a new formal to indicate if
6164         we are in the case of an abstact-interface derivation
6165         (Find_Type_Of_Subtype_Indic): Moved from the body of the package
6166         to the specification because it is requied to analyze all the
6167         identifiers found in a list of interfaces
6168
6169         * debug.adb: Complete documentation of flag "-gnatdZ"
6170
6171         * exp_ch3.adb: Implement config version of persistent_bss pragma
6172         (Check_Stream_Attributes): Use Stream_Attribute_Available instead of
6173         testing for TSS presence to properly enforce visibility rules.
6174         (Freeze_Record_Type): Code cleanup. Modified to call the subprogram
6175         Make_Abstract_Interfaces_DT to generate the secondary tables
6176         associated with abstract interfaces.
6177         (Build_Init_Procedure): Modified to initialize all the tags
6178         corresponding.
6179         (Component_Needs_Simple_Initialization): Similar to other tags,
6180         interface tags do not need initialization.
6181         (Freeze_Record_Type): Modified to give support to abstract interface
6182         types.
6183         (Expand_N_Object_Declaration): Do not generate an initialization for
6184         a scalar temporary marked as internal.
6185
6186         * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): Handle properly an
6187         in-out parameter that is a component in an initialization procedure,
6188         whose constraint might depend on discriminants, and that may be
6189         misaligned because of packing or representation clauses.
6190         (Is_Legal_Copy): New predicate to determine whether a possibly
6191         misaligned in-out actual can actually be passed by copy/return. This
6192         is an error in case the type is by_reference, and a warning if this is
6193         the consequence of a DEC import pragma on the subprogram.
6194         (Expand_Call, Freeze_Subprogram): Modified to give support to abstract
6195         interface types
6196         (Expand_Inlined_Call): Mark temporary generated for the return value as
6197         internal, so that no useless scalar normalization is generated for it.
6198         (Expand_N_Subprogram_Declaration): Save unanalyzed body so calls to
6199         null procedure can always be inlined.
6200         (Expand_N_Subprogram_Declaration): If this is the declaration of a null
6201         procedure, generate an explicit empty body for it.
6202
6203         * exp_util.ads, exp_util.adb (Find_Interface_ADT): New subprogram.
6204         Given a type implementing an interface, returns the corresponding
6205         access_disp_table value.
6206         (Find_Interface_Tag): New subprogram. Given a type implementing an
6207         interface, returns the record component containing the tag of the
6208         interface.
6209         (Find_Interface_Tag): New overloaded subprogram. Subsidiary to the
6210         previous ones that return the corresponding tag and access_disp_table
6211         entities.
6212         (Is_Predefined_Dispatching_Operation): Determines if a subprogram
6213         is a predefined primitive operation.
6214         (Expand_Subtype_From_Expr): If the expression is a selected component
6215         within an initialization procedure, compute its actual subtype, because
6216         the component may depend on the discriminants of the enclosing record.
6217
6218         * i-cpp.ads, i-cpp.adb:
6219         This package has been left available for compatibility with previous
6220         versions of the frontend. As part of the new layout this is now a
6221         dummy package that uses declarations available at a-tags.ads
6222
6223         * par-ch3.adb (P_Identifier_Declarations): Give an error for use of
6224         "constant access" and "aliased [constant] access" when not compiling
6225         with -gnat05.
6226         Suppress Ada 2005 keyword warning if -gnatwY used
6227         (P_Identifier_Declarations): Add support for object declarations with
6228         access definitions.
6229         (Private_Extension_Declaration): Complete the documentation
6230         (P_Derived_Type_Def_Or_Private_Ext_Decl): Fill the inteface_list
6231         attribute in case of private extension declaration
6232         (P_Type_Declaration): Mark as "abstract" the type declarations
6233         corresponding with protected, synchronized and task interfaces
6234         (P_Declarative_Items): "not" and "overriding" are overriding indicators
6235         for a subprogram or instance declaration.
6236
6237         * sem_ch12.adb (Analyze_Subprogram_Instantiation): Verify that an
6238         instantiation that is a dispatching operation has controlling access
6239         parameters that are null excluding.
6240         Save and restore Ada_Version_Explicit, for implementation of AI-362
6241         (Validate_Derived_Type_Instance): Add check for abstract interface
6242         types.
6243         (Analyze_Formal_Package): Establish Instantiation source for the copy of
6244         the generic that is created to represent the formal package.
6245         (Analyze_Package_Instantiation): Instantiate body immediately if the
6246         package is a predefined unit that contains inlined subprograms, and
6247         we are compiling for a Configurable_Run_Time.
6248         (Instantiate_Formal_Subprogram): Indicate that null default subprogram
6249         If the program has a null default, generate an empty body for it.
6250
6251         * sem_ch6.adb, sem_ch9.adb (Analyze_Subprograms_Declaration): Update
6252         error message condition, null procedures are correctly detected now.
6253         (New_Overloaded_Entity): Bypass trivial overriding indicator check
6254         for subprograms in the context of protected types. Instead, the
6255         indicator is examined in Sem_Ch9 while analysing the subprogram
6256         declaration.
6257         (Check_Overriding_Indicator): Check consistency of overriding indicator
6258         on subprogram stubs as well.
6259         (Analyze_Subprogram_Declaration): Diagnose null procedures declared at
6260         the library level.
6261         (Analize_Subprogram_Specification): When analyzing a subprogram in which
6262         the type of the first formal is a concurrent type, replace this type
6263         by the corresponding record type.
6264         (Analyze_Subprogram_Body): Undo the previous work.
6265         (Analyze_Procedure_Call): If the call has the form Object.Op, the
6266         analysis of the prefix ends up analyzing the call itself, after which
6267         we are done.
6268         (Has_Interface_Formals): New subprogram subsidiary to analyze
6269         subprogram_specification that returns true if some non
6270         class-wide interface subprogram is found
6271         (New_Overloaded_Entity): Modified to give support to abstract
6272         interface types
6273         (Conforming_Types): In Ada 2005 mode, conformance checking of anonymous
6274         access to subprograms must be recursive.
6275         (Is_Unchecked_Conversion): Improve the test that recognizes
6276         instantiations of Unchecked_Conversion, and allows them in bodies that
6277         are to be inlined by the front-end. When the body comes from an
6278         instantiation, a reference to Unchecked_Conversion will be an
6279         Expanded_Name, even though the body has not been analyzed yet.
6280         Replace Is_Overriding and Not_Overriding in subprogram_indication with
6281         Must_Override and Must_Not_Override, to better express intent of AI.
6282         (Analyze_Subprogram_Body): If an overriding indicator is given, check
6283         that it is consistent with the overrinding status of the subprogram
6284         at this point.
6285         (Analyze_Subprogram_Declaration): Indicate that a null procedure is
6286         always inlined.
6287         If the subprogram is a null procedure, indicate that it does not need
6288         a completion.
6289
6290         * sem_disp.adb (Check_Controlling_Type): Give support to entities
6291         available through limited-with clauses.
6292         (Check_Dispatching_Operation): A stub acts like a body, and therefore is
6293         allowed as the last primitive of a tagged type if it has no previous
6294         spec.
6295         (Override_Dispatching_Operation, Check_Dispatching_Operation): Modified
6296         to give support to abstract interface types
6297
6298         * sem_res.adb (Valid_Conversion): Perform an accessibility level check
6299         in the case where the target type is an anonymous access type of an
6300         object or component (that is, when Is_Local_Anonymous_Access is true).
6301         Prevent the special checks for conversions of access discriminants in
6302         the case where the discriminant belongs to a nonlimited type, since
6303         such discriminants have their accessibility level defined in the same
6304         way as a normal component of an anonymous access type.
6305         (Resolve_Allocator): When an allocator's designated type is a class-wide
6306         type, check that the accessibility level of type given in the
6307         allocator's expression or subtype indication is not statically deeper
6308         than the level of the allocator's access type.
6309         (Check_Discriminant_Use): Diagnose discriminant given by an expanded
6310         name in a discriminant constraint of a record component.
6311         (Resolve_Explicit_Dereference): Do not check whether the type is
6312         incomplete when the dereference is a use of an access discriminant in
6313         an initialization procedure.
6314         (Resolve_Type_Conversion): Handle conversions to abstract interface
6315         types.
6316         (Valid_Tagged_Conversion): The conversion of a tagged type to an
6317         abstract interface type is always valid.
6318         (Valid_Conversion): Modified to give support to abstract interface types
6319         (Resolve_Actuals): Enable full error reporting on view conversions
6320         between unrelated by_reference array types.
6321         The rule for view conversions of arrays with aliased components is
6322         weakened in Ada 2005.
6323         Call to obsolescent subprogram is now considered to be a violation of
6324         pragma Restrictions (No_Obsolescent_Features).
6325         (Check_Direct_Boolean_Operator): If the boolean operation has been
6326         constant-folded, there is nothing to check.
6327         (Resolve_Comparison_Op, Resolve_Equality_Op, Resolve_Boolean_Op): Defer
6328         check on possible violation of restriction No_Direct_Boolean_Operators
6329         until after expansion of operands, to prevent spurious errors when
6330         operation is constant-folded.
6331
6332         * sem_type.ads, sem_type.adb (Covers, Intersect_Types, Specific_Type,
6333         Has_Compatible_Type): Modified to give support to abstract interface
6334         types.
6335         (Interface_Present_In_Ancestor): New function to theck if some ancestor
6336         of a given type implements a given interface
6337
6338         * sem_ch4.adb (Analyze_Call): Handle properly an indirect call whose
6339         prefix is a parameterless function that returns an access_to_procedure.
6340         (Transform_Object_Operation): Handle properly function calls of the
6341         form Obj.Op (X), which prior to analysis appear as indexed components.
6342         (Analyze_One_Call): Complete the error notification to help new Ada
6343         2005 users.
6344         (Analyze_Allocator): For an allocator without an initial value, where
6345         the designated type has a constrained partial view, a discriminant
6346         constraint is illegal.
6347
6348 2005-06-14  Robert Dewar  <dewar@adacore.com>
6349
6350         * a-textio.adb (Set_Col): Fix two errors noticed recently, having to
6351         do with treatment of Set_Col when positioned at end of line character.
6352
6353 2005-06-14  Robert Dewar  <dewar@adacore.com>
6354
6355         * atree.adb: (Elist*): Protect against uninitialized field
6356
6357 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
6358
6359         * checks.adb (Install_Null_Excluding_Check): Do not generate checks
6360         for an attribute reference that returns an access type.
6361         (Apply_Discriminant_Check): No need for check if (designated) type has
6362         constrained partial view.
6363
6364         (Apply_Float_Conversion_Check): Generate a short-circuit expression for
6365         both bound checks, rather than a conjunction.
6366         (Insert_Valid_Check): If the expression is an actual that is an indexed
6367         component of a bit-packed array, force expansion of the packed element
6368         reference, because it is specifically inhibited elsewhere.
6369
6370 2005-06-14  Vincent Celier  <celier@adacore.com>
6371
6372         * clean.adb (Clean_Project): Correctly delete executable specified as
6373         absolute path names.
6374
6375         * make.adb (Gnatmake): Allow relative executable path names with
6376         directory information even when project files are used.
6377         (Change_To_Object_Directory): Fail gracefully when unable to change
6378         current working directory to object directory of a project.
6379         (Gnatmake): Remove exception handler that could no longer be exercized
6380         (Compile_Sources.Compile): Use deep copies of arguments, as some of them
6381         may be deallocated by Normalize_Arguments.
6382         (Collect_Arguments): Eliminate empty arguments
6383
6384         * gnatcmd.adb (All_Projects): New Boolean flag, initialized to False,
6385         and set to True when -U is used for GNAT PRETTY or GNAT METRIC.
6386         (Check_Project): Return False when Project is No_Project. Return True
6387         when All_Projects is True.
6388         (GNATCmd): Recognize switch -U for GNAT PRETTY and GNAT METRIC and set
6389         All_Projects to True.
6390         Minor reformatting
6391
6392 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
6393             Javier Miranda  <miranda@adacore.com>
6394             Thomas Quinot  <quinot@adacore.com>
6395             Robert Dewar  <dewar@adacore.com>
6396             Hristian Kirtchev  <kirtchev@adacore.com>
6397             Gary Dismukes  <dismukes@adacore.com>
6398
6399         * einfo.ads, einfo.adb (Is_Local_Anonymous_Access): New flag on
6400         anonymous access types, to indicate that the accessibility level of
6401         the type is determined by that of the enclosing declaration.
6402         (Has_Persistent_BSS): New flag
6403         (Set_Is_Primitive_Wrapper): Upgrade the barrier to allow the usage
6404         of this attribute with functions.
6405         (Is_Primitive_Wrapper): Remove the barrier.
6406         (Has_Specified_Stream_Input, Has_Specified_Stream_Output,
6407         Has_Specified_Stream_Read, Has_Specified_Stream_Write):
6408         New subprograms.
6409         (Set_Has_Specified_Stream_Input, Set_Has_Specified_Stream_Output,
6410         Set_Has_Specified_Stream_Read, Set_Has_Specified_Stream_Write):
6411         New subprograms.
6412         (Is_Pure_Unit_Access_Type): New flag
6413         (Abstract_Interfaces): Complete the assertion to cover all usages.
6414         (Set_Is_Interface): Complete the assertion to cover all usages.
6415         (Is_Primitive_Wrapper): New attribute.
6416         (Is_Obsolescent): Now applies to all entities (though it is only set
6417         for subprograms currently)
6418         New flag:  Has_Constrained_Partial_View, to implemente Ada 2005 AI-363,
6419         which solves various problems concerning access subtypes.
6420         (Has_Persistent_BSS): New flag
6421         (Is_Primitive_Wrapper, Set_Primitive_Wrapper): Code cleanup.
6422         Remove these subprograms because this attribute is currently
6423         not used.
6424         New entity flags:
6425         Has_Specified_Stream_Input (Flag190)
6426         Has_Specified_Stream_Output (Flag191)
6427         Has_Specified_Stream_Read (Flag192)
6428         Has_Specified_Stream_Write (Flag193)
6429         Present in all type and subtype entities. Set for a given view if the
6430         corresponding stream-oriented attribute has been defined by an
6431         attribute definition clause. When such a clause occurs, a TSS is set
6432         on the underlying full view; the flags are used to track visibility of
6433         the attribute definition clause for partial or incomplete views.
6434         (Is_Pure_Unit_Access_Type): New flag
6435         Clarify use of Is_Internal.
6436         (Is_Primitive_Wrapper): New attribute present in primitive subprograms
6437         internally generated to wrap the invocation of tasks and protected
6438         types that implement interfaces.
6439         (Implementation_Base_Type): Documentation correction
6440         (Is_Obsolescent): Now applies to all entities (though it is only set
6441         for subprograms currently)
6442         New flag:  Has_Constrained_Partial_View, to implement Ada 2005 AI-363,
6443         which solves various problems concerning access subtypes.
6444
6445         * exp_ch9.adb (Type_Conformant_Parameters): Introduce mode conformance
6446         for examined parameters. Identify unequal parameter list lengths as
6447         non-conformant parameters.
6448         (Overriding_Possible): Do not check for "All" qualifier in declaration
6449         of controlling access parameter, following prescription of AI-404.
6450         (Build_Entry_Wrapper_Spec, Build_Entry_Wrapper_Body): New subprograms
6451         that build the procedure body that wraps an entry invocation
6452         (Build_Corresponding_Record, Build_Protected_Sub_Specification,
6453         Expand_N_Protected_Body, Expand_N_Protected_Type_Declaration,
6454         Expand_N_Task_Body, Expand_N_Task_Type_Declaration): Modified to
6455         give support to abstract interface types
6456
6457         * freeze.adb (Freeze_Entity): Issue error message if
6458         Is_Pure_Unit_Access_Type set, unless we are in Ada 2005 mode and the
6459         type has no storage pool (Ada 2005) AI-366.
6460         Also modified to give support to abstract interface types
6461         (Freeze_Subprogram): Issue an error for a dispatching subprogram with an
6462         Inline_Always pragma.
6463
6464         * par-ch9.adb (P_Task_Items): Reserved words "not" or "overriding" may
6465         now begin an entry declaration.
6466         (P_Entry_Or_Subprogram_With_Indicator): New procedure in
6467         P_Protected_Operation_Declaration_Opt. Parse an entry declaration or
6468         a subprogram declaration preceded by an overriding indicator.
6469         (P_Protected_Operation_Declaration_Opt): Add case for parsing entry
6470         declarations or subprogram declarations preceded by reserved words
6471         "not" or "overriding".
6472         (P_Entry_Declaration): Update comment. Parse and check overriding
6473         indicator, set semantic flags of entry declarations.
6474         (P_Task): New error message in case of private applied
6475         to a task type declaration.
6476         (P_Protected): New error message in case of private applied
6477         to a task type declaration.
6478
6479         * sem_ch7.adb (Preserve_Full_Attributes): Modified to handle the case
6480         in which the full view of a type implementing an interface is a
6481         concurrent type.
6482         (Has_Overriding_Pragma): Remove obsolete implementation of AI-218.
6483         Declare_Inherited_Private_Subprograms): If an explicit operation
6484         overrides an operation that is inherited in the private part, mark the
6485         explicit one as overriding, to enable overriding indicator checks.
6486         (Preserve_Full_Attributes): Propagate Is_Unchecked_Union attribute from
6487         full view to partial view, to simplify handling in back-end.
6488
6489         * sprint.adb: Print interface lists where needed: derived types,
6490         protected types, task types.
6491         output "is null" for null procedures. Part of implementation of
6492
6493         * sem_cat.adb (Validate_Access_Type_Declaration): Implement AI-366
6494         relaxation of rules for access types in pure, shared passive partitions.
6495
6496         * exp_strm.adb (Build_Mutable_Record_Read_Procedure): Reorganize to
6497         first read discriminants into temporary objects, performing checks on
6498         the read values, then possibly performing discriminant checks on the
6499         actual (if it is constrained), and only finally reading the components
6500         into a constrained temporary object.
6501         (Build_Elementary_Input_Call): Adjust the specific circuitry for the
6502         case of reading discriminants of a mutable record type to recognize
6503         the new form of the code generated by
6504         Build_Mutable_Record_Read_Procedure.
6505
6506         * exp_tss.ads, exp_tss.adb (Make_Init_Proc_Name): Reimplement in terms
6507         of a simple call to Make_TSS_Name.
6508         (Make_TSS_Name_Local): Add the TSS name as the last thing in the name
6509         buffer, in order for Is_TSS to work correctly on local TSS names.
6510
6511         * sem_attr.ads, sem_attr.adb (Resolve_Attribute, case 'Access): Use flag
6512         Is_Local_Anonymous_Access to check legaliy of attributes in the
6513         context of  access components and stand-alone access objects.
6514         (Stream_Attribute_Available): In Ada 95 mode, a stream attribute is
6515         treated as available for a limited private type if there is an
6516         attribute_definition_clause that applies to its full view, but not in
6517         other cases where the attribute is available for the full view
6518         (specifically, the sole fact that the full view is non-limited does not
6519         make the attribute available for the partial view).
6520         (Build_Access_Subprogram_Type): Diagnose attempt to apply 'access to a
6521         non-overloaded intrinsic subprogram.
6522         (Check_Stream_Attribute): Reject an attribute reference for an
6523         unavailable stream attribute even if the prefix is not a limited type
6524         (case of a 'Input attribute reference for an abstract, non-classwide
6525         type)
6526         (Stream_Attribute_Available): New function to determine whether a stream
6527         attribute is available at a place.
6528         (Check_Attribute): Use Stream_Attribute_Available instead of just
6529         testing for TSS presence on the implementation base type.
6530         (Analyze_Attribute): Modified to give support to task interfaces.
6531         (Analyze_Access_Attribute): Add error check for use of an Access (or
6532         Unrestricted_Access) attribute with a subprogram marked as
6533         Inline_Always.
6534         (Analyze_Attribute, case Attribute_Address): Add error check for use of
6535         an Address attribute with a subprogram marked as Inline_Always.
6536         Update Eval_Attribute to handle new value of Width from AI-395
6537
6538         * sem_ch13.adb (Analyze_Stream_TSS_Definition): New subprogram.
6539         (Analyze_Attribute_Definition_Clause, cases Input, Output, Read, Write):
6540         Factor common code across the stream-oriented attribute circcuits into
6541         a new subprogram, Analyze_Stream_TSS_Definition. The new uniform
6542         processing is functionally identical to the previous duplicated one,
6543         except that an expression that denotes an abstract subprogram will now
6544         be rejected, as mandated by AI-195 item 5.
6545
6546         * sem_util.ads, sem_util.adb (Type_Access_Level): Use flag
6547         Is_Local_Anonymous_Access to apply accessibility checks to access
6548         components and stand-alone access objects.
6549         (Has_Discriminant_Dependent_Constraint): Moved to spec for use
6550         elsewhere.
6551         (Is_Potentially_Persistent_Type): New function
6552         (Is_Dependent_Component_Of_Mutable_Object): If the enclosing object is
6553         a heap-object whose type has a constrained partial view, the object is
6554         unconstrained and the component may depend on a discriminant, making its
6555         renaming illegal.
6556
6557         * sinfo.ads, sinfo.adb
6558         (Must_Not_Override): Flag applicable to N_Entry_Declaration.
6559         (Must_Override): Flag applicable to N_Entry_Declaration.
6560         Indicate that interface_list can appear in single task and single
6561         protected declarations.
6562         Replace Is_Overriding and Not_Overriding with Must_Override and
6563         Must_Not_Override, to better express intent of AI.
6564         Is_Overriding, Not_Overriding: Ada2005 flags that indicate the presence
6565         of an overriding indicator in a subprogram or instance.
6566         Ada 2005 (AI-248) Null_Present can appear in a procedure specification.
6567         Add the overriding indicator [[not] overriding] construct to the
6568         following grammar productions:
6569          ENTRY_DECLARATION
6570          GENERIC_INSTANTIATION
6571          SUBPROGRAM_SPECIFICATION
6572
6573         * par-ch10.adb (P_Compilation_Unit): Subprogram declaration or body
6574         can start with an overriding indicator.
6575
6576         * par-ch6.adb (P_Subprogram): Recognize overriding indicator, and set
6577         flags accordingly on subrogram specifications or instances.
6578
6579         * sem_ch8.adb:
6580         (Analyze_Subprogram_Renaming): For a renaming_as_body, verify that the
6581         overriding_indicator, if present, is consistent with status of spec.
6582         Improve error message for null-excluding checks on controlling access
6583         parameters.
6584         (Check_In_Previous_With_Clause): Protect the frontend against
6585         previously reported critical errors in the context clauses.
6586         Save and restore Ada_Version_Explicit, for implementation of AI-362
6587         (Analyze_Subprogram_Renaming): If the new entity is a dispatching
6588         operation verify that controlling formals of the renamed entity that
6589         are access parameters are explicitly non-null.
6590         (Find_Expanded_Name): Improve error message when prefix is an illegal
6591         reference to a private child unit.
6592
6593         * exp_imgv.adb, s-imgwch.ads, s-imgwch.adb, s-valwch.adb,
6594         s-valwch.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb, s-wwdwch.adb:
6595         Rewrite to correspond to new wide character names in AI-395
6596
6597         * par-ch12.adb (P_Formal_Subprogram_Declaration): Recognize null
6598         default procedures.
6599
6600 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
6601             Robert Dewar  <dewar@adacore.com>
6602
6603         * errout.ads, errout.adb (Error_Msg_NW): Only emit warning on user
6604         code, not on the bodies of predefined operations, to cut down on
6605         spurious noise.
6606
6607 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
6608
6609         * exp_aggr.adb (Aggr_Size_OK): An array with no components can always
6610         be expanded in place. The size computation does not require a
6611         subtraction, which would raise an exception on a compiler built with
6612         assertions when the upper bound is Integer'first.
6613         (Flatten): For an array of composite components, take into account the
6614         size of the components to determine whether it is safe to expand the
6615         array into a purely positional representation.
6616
6617 2005-06-14  Thomas Quinot  <quinot@adacore.com>
6618
6619         * exp_ch2.adb (Param_Entity): Take the case of an expanded_name
6620         denoting a formal parameter into account.
6621
6622 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
6623
6624         * exp_ch7.adb (Find_Node_To_Be_Wrapped): If the node appears within
6625         the entry_call alternative of a conditional entry call, wrap the
6626         conditional entry call itself.
6627
6628 2005-06-14  Nicolas Setton  <setton@adacore.com>
6629             Ed Schonberg  <schonberg@adacore.com>
6630
6631         * exp_dbug.ads, exp_dbug.adb (Get_Variant_Part): Fix the encoding of
6632         the "simple_choice" member in a variant record, in accordance with the
6633         description in the package spec: the information output for a constant
6634         should be "S number", not "SS number".
6635         (Get_Encoded_Name): Return at once if not generating code. Avoids name
6636         overflow problem when compiling with -gnatct, for ASIS/gnatmetrics.
6637
6638 2005-06-14  Thomas Quinot  <quinot@adacore.com>
6639
6640         * exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): For an
6641         RACW without any primitives, do not generate the if statement for
6642         dispatching by name in the PolyORB/DSA case, as it would be malformed
6643         (it would have an Elsif_Parts list that is not No_List, but with a
6644         length of 0).
6645
6646 2005-06-14  Robert Dewar  <dewar@adacore.com>
6647
6648         * exp_intr.adb, par-ch5.adb: Minor fix to error message text
6649
6650 2005-06-14  Jose Ruiz  <ruiz@adacore.com>
6651
6652         * fe.h: Add entry for Opt.Exception_Locations_Suppressed so that gigi
6653         can determine whether pragma Suppress_Exception_Locations is in effect.
6654
6655         * utils2.c (build_call_raise): Do not pass the file name to the
6656         exception handler if pragma Suppress_Exception_Locations is in effect.
6657         (build_allocator): Add and process arg IGNORE_INIT_TYPE.
6658
6659 2005-06-14  Emmanuel Briot  <briot@adacore.com>
6660
6661         * g-debpoo.adb (Deallocate, Dereference): Improve output.
6662
6663 2005-06-14  Nicolas Roche  <roche@adacore.com>
6664
6665         * g-diopit.adb (Wildcard_Iterator): Return directly if Path is equal
6666         to ""
6667         (Next_Level): Fix minor bug in handling of ../dir case
6668         (Read): Add dir separator to Directory name so that "" is understood as
6669          "/"
6670
6671 2005-06-14  Pascal Obry  <obry@adacore.com>
6672
6673         * g-dynhta.ads, g-dynhta.adb (Reset): Free the table itself after
6674         releasing the items.
6675
6676 2005-06-14  Vincent Celier  <celier@adacore.com>
6677             Cyrille Comar  <comar@adacore.com>
6678
6679         * g-os_lib.ads, g-os_lib.adb (Non_Blocking_Spawn): Two new versions
6680         with output file descriptor and with output file name.
6681         (Dup, Dup2): Now global procedures as they are used by two subprograms
6682         (Copy): Allocate the 200K buffer on the heap rather than on the stack.
6683
6684 2005-06-14  Thomas Quinot  <quinot@adacore.com>
6685
6686         PR ada/6717
6687
6688         * g-socket.ads, g-socket.adb (Inet_Addr): Special case the all-ones
6689         broadcast address.
6690         (Create_Selector): Bind listening socket used to create the signalling
6691         socket pair to 127.0.0.1 to limit the scope for 'theft' of connection.
6692         Set listen backlog to 1 to ensure that we detect socket theft by a
6693         failure of our own connect(2) call.
6694         (Check_Selector): Improve documentation of the selector mechanism.
6695         (Broadcast_Inet_Addr): New constant.
6696
6697 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
6698
6699         * layout.adb (Discrimify): Remove resetting of Vtype to the underlying
6700         type which turns out to be an incomplete and incorrect fix.
6701         (Layout_Array_Type): Use Underlying_Type when checking whether the scope
6702         of the type is declared in a record (for determination of insertion
6703         type).
6704         (SO_Ref_From_Expr): Test whether Vtype denotes a partial or full view of
6705         a private type and ensure that the primary entity is used for the type
6706         of the newly created function's V formal by taking the Etype of the
6707         view.
6708
6709 2005-06-14  Javier Miranda  <miranda@adacore.com>
6710             Jose Ruiz  <ruiz@adacore.com>
6711             Robert Dewar  <dewar@adacore.com>
6712             Ed Schonberg  <schonberg@adacore.com>
6713
6714         * lib-load.ads, lib-load.adb (Load_Unit): Addition of a new parameter
6715         that indicates if we are parsing a compilation unit found in a
6716         limited-with clause.
6717         It is use to avoid the circularity check.
6718
6719         * par.ads, par.adb (Par): Addition of a new parameter to indicate if
6720         we are parsing a compilation unit found in a limited-with clause. This
6721         is use to avoid the circularity check.
6722
6723         * par-load.adb (Load): Indicate Lib.Load_Unit if we are loading the
6724         unit as a consequence of parsing a limited-with clause. This is used
6725         to avoid the circularity check.
6726
6727         * sem_ch10.adb: Suppress Ada 2005 unit warning if -gnatwY used
6728         (Analyze_Context): Limited-with clauses are now allowed
6729         in more compilation units.
6730         (Analyze_Subunit_Context, Check_Parent): Protect the frontend
6731         againts previously reported critical errors in context clauses
6732         (Install_Limited_Withed_Unit): Code cleanup plus static detection
6733         of two further errors: renamed subprograms and renamed packages
6734         are not allowed in limited with clauses.
6735         (Install_Siblings): Do not install private_with_clauses on the package
6736         declaration for a non-private child unit.
6737         (Re_Install_Parents): When a parent of the subunit is reinstalled,
6738         reset visibility of child units properly.
6739         (Install_Withed_Unit): When a child unit appears in a with_clause of its
6740         parent, it is immediately visible.
6741
6742 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
6743             Emmanuel Briot  <briot@adacore.com>
6744
6745         * lib-xref.ads, lib-xref.adb (Generate_Definition): Treat any entity
6746         declared within an inlined body as referenced, to prevent spurious
6747         warnings.
6748         (Output_One_Ref): If an entity renames an array component, indicate in
6749         the ALI file that this aliases (renames) the array. Capture as well
6750         function renamings that rename predefined operations.
6751         Add information about generic parent for package and subprogram
6752         instances.
6753         (Get_Type_Reference): For a subtype that is the renaming of an actual in
6754         an instantiation, use the first_subtype to ensure that we don't generate
6755         cross-reference information for internal types.
6756         For objects and parameters of a generic private type, retain the '*'
6757         indicator to distinguish such an entity from its type.
6758
6759         * ali.ads (Xref_Entity_Record): New fields Iref_File_Num and Iref_Line,
6760         to store information about instantiated entities.
6761
6762         * ali.adb (Scan_ALI): Add support for parsing the reference to the
6763         generic parent
6764
6765         * xref_lib.adb (Skip_To_Matching_Closing_Bracket): New subprogram
6766         (Parse_Identifier_Info, Parse_Token): Add support for the generic parent
6767         information.
6768
6769 2005-06-10  Doug Rupp  <rupp@adacore.com>
6770             Arnaud Charlet  <charlet@adacore.com>
6771             Olivier Hainque  <hainque@adacore.com>
6772             Jose Ruiz  <ruiz@adacore.com>
6773
6774         * Make-lang.in: Add initialize.o when needed.
6775         Remove obsolete references to RT_FLAGS.
6776         Add missing dependencies for sdefault.o
6777
6778         * initialize.c: New file.
6779
6780         * init.c [VMS] Declare ADA$ externs weak to fix build problem in IVMS.
6781         [VMS] cond_signal_table: Fix problem in declaration.
6782         [VMS] __gnat_error_handler: rewrite.
6783         Move all __gnat_initialize() routines to initialize.c
6784         Specialize the former "hpux" section to "hppa hpux", as this is what the
6785         section really is here for and we now have other hpux ports that need
6786         different contents.
6787         (__gnat_adjust_context_for_raise) i386-linux: First version of this
6788         function for this target. Adjust PC by one in the machine context. This
6789         adjustment was previously done in the MD_FALLBACK_FRAME_STATE_FOR, but
6790         it is more reliable to do that in the signal handler itself.
6791         (__gnat_install_handler) i386-linux: Set SA_SIGINFO in the sigaction
6792         flags, so that the handler is passed the context structure to adjust
6793         prior to the raise.
6794         (__gnat_error_handler) i386-linux: Adjust the signature to match what a
6795         SA_SIGINFO sigaction should look like. Call
6796         __gnat_adjust_context_for_raise before actually raising. Cleanup unused
6797         Machine_State_Operations stuff.
6798         Add conditional code so that the x86_64 is also supported.
6799
6800 2005-06-14  Pascal Obry  <obry@adacore.com>
6801
6802         * mdll.adb (Get_Dll_Name): New routine that returns the DLL name given
6803         the library name.
6804
6805 2005-06-14  Robert Dewar  <dewar@adacore.com>
6806
6807         * opt.ads, opt.adb: New flags for persistent_bss mode
6808         Add Ada_Version_Explicit, for implementation of AI-362
6809         Add Assertions_Enabled_Config and associated handling
6810         Needed since setting can be changed with Assertion_Policy pragma
6811         Add new flag Warn_On_Ada_2005_Compatibility
6812
6813         * switch-c.adb: Recognize -gnatwy/Y
6814         Set Ada_Version_Explicit, for implementation of AI-362
6815         The -gnatg switch now includes -gnatyu
6816
6817         * usage.adb: Add -gnatwy/Y
6818         Remove wrong asterisk on -gnatwX line
6819         Add line for -gnatyu switch
6820
6821 2005-06-14  Vincent Celier  <celier@adacore.com>
6822
6823         * osint.adb (Add_Default_Search_Dirs): Put source and object
6824         directories of project files before directories coming from
6825         ADA_INCLUDE_PATH and ADA_OBJECTS_PATH.
6826
6827 2005-06-14  Robert Dewar  <dewar@adacore.com>
6828
6829         PR ada/15613
6830
6831         * par-ch2.adb (Scan_Pragma_Argument): New procedure
6832         (P_Pragma): Implement RM 2.8(4) check for no pos args after named args
6833
6834 2005-06-14  Vincent Celier  <celier@adacore.com>
6835
6836         * prep.adb (Preprocess): Ignore error when scanning the first token of
6837         a line.
6838
6839 2005-06-14  Vincent Celier  <celier@adacore.com>
6840
6841         * prj-nmsc.adb (Suffix_For): Change default suffix for C++ to ".cpp"
6842         (Check_Stand_Alone_Library): If the specified reference symbol file does
6843         not exist, only issue a warning when the symbol policy is not
6844         Controlled. And, when symbol policy is Compliant, set the symbol
6845         policy to Autonomous.
6846
6847 2005-06-14  Vincent Celier  <celier@adacore.com>
6848
6849         * prj-part.adb (Pre_Parse_Context_Clause): Call Set_Is_Not_Last_In_List
6850         when the project file in a with clause is not the last one, that is the
6851         project file name is followed by a comma.
6852         * prj-pp.adb: (First_With_In_List): New Boolean global variable
6853         (Print): Issue list of project files separated by commas in with clauses
6854         according to the values returned by Is_Not_Last_In_List.
6855         * prj-tree.ads, prj-tree.adb: (Is_Not_Last_In_List): New function
6856         (Set_Is_Not_Last_In_List): New procedure
6857
6858 2005-06-14  Eric Botcazou  <ebotcazou@adacore.com>
6859
6860         * s-atacco.ads: Put a pragma No_Strict_Aliasing on Object_Pointer.
6861
6862 2005-06-14  Robert Dewar  <dewar@adacore.com>
6863
6864         * scng.adb: Add call to new Check_EOF routine
6865         (Accumulate_Checksum): Properly handle wide wide char >= 2 ** 24
6866         Add some comments regarding wide character handling
6867
6868         * style.ads, styleg.ads, styleg.adb: Implement new style switch -gnatyu
6869
6870         * stylesw.ads, stylesw.adb: Implement new style switch -gnatyu
6871
6872         * g-utf_32.ads, g-utf_32.adb (Is_UTF_32_Non_Graphic): Other_Format
6873         characters are now considered graphic characters and hence yield false
6874         in this call.
6875
6876         * nmake.adt: Modify header so that xnmake does not generate output
6877         files with multiple blank lines.
6878
6879         * treeprs.adt: Remove a blank line so that output from xtreeprs does
6880         not have an extra blank line
6881
6882 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
6883
6884         * sem_aggr.adb (Aggregate_Constraint_Checks): Apply a conversion to the
6885         expression when the component type is an anonymous access type to
6886         ensure that appropriate accessibility checks are done.
6887
6888         * sem_ch5.adb (Analyze_Assignment): Apply a implicit conversion to the
6889         expression of an assignment when the target object is of an anonymous
6890         access type. This ensures that required accessibility checks are done.
6891         (One_Bound): Move the check for type Universal_Integer to
6892         Process_Bounds.
6893         (Process_Bounds): Check whether the type of the preanalyzed range is
6894         Universal_Integer, and in that case set Typ to Integer_Type prior
6895         to setting the type of the original range and the calls to One_Bound.
6896
6897 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
6898
6899         * sem_case.adb (Expand_Others_Choice): Improve warning.
6900
6901 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
6902
6903         * sem_eval.adb (Subtypes_Statically_Match): Use discriminant
6904         constraint of full view if present, when other type is discriminated.
6905         (Eval_Relational_Op): Recognize tests of pointer values against Null,
6906         when the pointer is known to be non-null, and emit appropriate warning.
6907
6908 2005-06-14  Robert Dewar  <dewar@adacore.com>
6909             Ed Schonberg  <schonberg@adacore.com>
6910
6911         PR ada/10671
6912
6913         * sem_prag.adb: Implement pragma Persistent_BSS
6914         Remove obsolete pragma Persistent_Data, Persistent_Object
6915         Set Ada_Version_Explicit, for implementation of AI-362
6916         Test Ada_Version_Explicit for Preelaborate_05 and Pure_05
6917         Add processing for pragma Pure_05 and Preelaborate_05
6918         Add processing for Assertion_Policy pragma
6919         Add pragma identifiers for Assert
6920         (Analyze_Pragma, case Assert): Check number of arguments
6921         (Process_Inline): Additional guard against an illegal program, where the
6922         argument of the pragma is undefined, and warnings on redundant
6923         constructs are enabled.
6924         (Analyze_Pragma, case Obsolescent): Allow an optional second argument
6925         Ada_05 to this pragma, specifying that the pragma is only active in
6926         Ada_05 mode.
6927         (Check_Arg_Order): New procedure
6928         Add appropriate calls to this procedure throughout
6929         Also throughout, check entity name before doing any other checks
6930
6931         * snames.h snames.ads, snames.adb: Add pragma Persistent_BSS
6932         Remove obsolete pragma Persistent_Data, Persistent_Object
6933         Add entries for pragma Pure_05 and Preelaborate_05
6934         Add entries for Assertion_Policy pragma and associated names
6935         Add some names for pragma argument processing
6936
6937         * tbuild.ads, tbuild.adb: (Make_Linker_Section_Pragma): New function
6938
6939 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
6940
6941         * sem_warn.adb (Warn_On_Known_Condition): If the constant expression
6942         appears within a negation (either from source or as a rewriting of
6943         inequality) adjust text of warning accordingly.
6944
6945 2005-06-14  Thomas Quinot  <quinot@adacore.com>
6946
6947         * s-strxdr.adb: Follow AI95-00132
6948
6949 2005-06-14  Arnaud Charlet  <charlet@adacore.com>
6950
6951         * s-tasren.adb (Exceptional_Complete_Rendezvous): Fix race condition.
6952
6953 2005-06-14  Arnaud Charlet  <charlet@adacore.com>
6954             Jose Ruiz  <ruiz@adacore.com>
6955
6956         * s-tposen.adb, s-tpobop.adb
6957         (Exceptional_Complete_Rendezvous): Save the occurrence and not only
6958         the exception id.
6959         (PO_Do_Or_Queue): Before queuing a task on an entry queue we check that
6960         there is no violation of the Max_Entry_Queue_Length restriction (if it
6961         has been set); Program_Error is raised otherwise.
6962         (Requeue_Call): Before requeuing the task on the target entry queue we
6963         check that there is no violation of the Max_Entry_Queue_Length
6964         restriction (if it has been set); Program_Error is raised otherwise.
6965
6966 2005-06-14  Robert Dewar  <dewar@adacore.com>
6967
6968         * styleg.adb: Fix several remaining problems in -gnatyu switch
6969         Blank line count not reset at start
6970         Scanning outside source buffer in some cases
6971         Confusing message for blanks at end of file
6972         Non-empty blank lines not recognized
6973
6974         * nmake.adt: Modify header so that xnmake does not generate output
6975         files with multiple blank lines.
6976
6977         * treeprs.adt: Remove a blank line so that output from xtreeprs does
6978         not have an extra blank line
6979
6980 2005-06-14  Sergey Rybin  <rybin@adacore.com>
6981
6982         * styleg-c.adb (Body_With_No_Spec): Remove ':' from warning message.
6983
6984 2005-06-14  Doug Rupp  <rupp@adacore.com>
6985             Vincent Celier  <celier@adacore.com>
6986
6987         * vms_conv.ads, vms_conv.adb: Remove "Library" command.
6988         Update copyright.
6989
6990         * vms_data.ads: Add entry for -gnaty/Y [NO]ADA_2005_COMPATIBILITY
6991         Remove "Library" command.
6992         Change keyword for style check -gnatyd from NOCRLF to
6993         DOS_LINE_ENDINGS.
6994         Remove useless second style check keyword NONE
6995         Remove help documentation for inexistent style check keyword
6996         RM_COLUMN_LAYOUT.
6997         Add help documentation for style check keywords DOS_LINE_ENDINGS,
6998         UNNECESSARY_BLANK_LINES and XTRA_PARENS
6999         Add UNNECESSARY_BLANK_LINES for -gnatyu
7000         Add qualifiers /ALL_PROJECTS (-U) for GNAT PRETTY and GNAT METRIC
7001
7002         * ug_words: Add entry for -gnaty/Y [NO]ADA_2005_COMPATIBILITY
7003
7004 2005-06-14  Vincent Celier  <celier@adacore.com>
7005
7006         * makegpr.adb (Compile_Link_With_Gnatmake): Invoke gnatmake with -d if
7007         gprmake was invoked with -d.
7008         (Compile_Sources): If -d was used, output the "completed ..." message
7009         for each compilation.
7010         (Scan_Arg): Recognize new switch -d
7011         When -c and at least one main is specified, set
7012         Unique_Compile to True to guarantee that no other sources will be
7013         compiled.
7014
7015 2005-06-14  Matthew Heaney  <heaney@adacore.com>
7016
7017         * a-swunha.ads, a-swunha.adb: Removed. Replaced by a-swuwha.ad[sb]
7018         * a-swuwha.ads, a-swuwha.adb: New files
7019
7020         * a-szunha.ads, a-szunha.adb: Removed, replaced by a-szuzha.ad[sb]
7021         * a-szuzha.ads, a-szuzha.adb: New files.
7022
7023         * a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb, a-crbtgk.ads,
7024         a-crbtgk.adb, a-crbltr.ads, a-coorse.ads, a-coorse.adb, a-convec.ads,
7025         a-convec.adb, a-coinve.ads, a-coinve.adb, a-cohata.ads, a-cohama.ads,
7026         a-cohama.adb, a-ciorse.ads, a-ciorse.adb, a-cihama.ads, a-cihama.adb,
7027         a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cdlili.ads,
7028         a-cdlili.adb, a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cohase.adb,
7029         a-cohase.ads, a-ciorma.ads, a-coorma.ads, a-ciormu.ads, a-coormu.ads,
7030         a-swunha.adb, a-stunha.adb, a-ciorma.adb, a-coorma.adb, a-shcain.ads,
7031         a-shcain.adb, a-chtgke.ads, a-chtgke.adb, a-stwiha.ads, a-stwiha.adb,
7032         a-strhas.adb, a-stzhas.adb: synchronized to the latest version of the
7033         Ada 2005 RM.
7034
7035 2005-06-10  Eric Botcazou  <ebotcazou@adacore.com>
7036             Olivier Hainque  <hainque@adacore.com>
7037             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7038             Pascal Obry  <obry@adacore.com>
7039
7040         * gigi.h: (build_allocator): Add arg IGNORE_INIT_TYPE.
7041
7042         * trans.c (call_to_gnu): Issue a warning for users of Starlet when
7043         making a temporary around a procedure call because of non-addressable
7044         actual parameter.
7045         (process_freeze_entity): If entity is a private type, capture size
7046         information that may have been computed for the full view.
7047         (tree_transform, case N_Allocator): If have initializing expression,
7048         check type for Has_Constrained_Partial_View and pass that to
7049         build_allocator.
7050         (tree_transform, case N_Return_Statement): Pass extra arg to
7051         build_allocator.
7052
7053         * decl.c (annotate_value): Remove early return if -gnatR is not
7054         specified.
7055         (gnat_to_gnu_field): Don't make a packable type for a component clause
7056         if the position is byte aligned, the field is aliased, and the clause
7057         size isn't a multiple of the packable alignment. It serves no useful
7058         purpose packing-wise and would be rejected later on.
7059         (gnat_to_gnu_entity, case object): Pass extra arg to build_allocator.
7060
7061         PR ada/20515
7062         (gnat_to_gnu_entity): Remove use of macro _WIN32 which is wrong in the
7063         context of cross compilers. We use TARGET_DLLIMPORT_DECL_ATTRIBUTES
7064         instead.
7065         (create_concat_name): Idem.
7066
7067 2005-06-10  Robert Dewar  <dewar@adacore.com>
7068             Eric Botcazou  <ebotcazou@adacore.com>
7069             Ben Brosgol  <brosgol@adacore.com>
7070             Cyrille Comar  <comar@adacore.com>
7071             Sergey Rybin  <rybin@adacore.com>
7072             Pascal Obry  <obry@adacore.com>
7073
7074         * gnat_rm.texi: Add documentation for pragma Persistent_BSS
7075         Document second argument (Ada_05) of pragma Obsolescent
7076         Add note that call to subprogram marked with pragma Obsolescent
7077         is now considered to be a violation of program Restrictions
7078         (No_Obsolescent_Features).
7079         (Implementation Defined Pragmas) <Machine_Attribute>: Make it clear
7080         that only machine-dependent attributes are supported.
7081
7082         * gnat_ugn.texi:
7083         Commented out menu lines and empty section for gnatclean examples
7084         Document -gnatwy/Y
7085         Fix some over long lines
7086         Clarify and enhance documentation of ADA_PROJECT_PATH.
7087         Rework section 2.11.2(3) about linking with a non-GNU compiler.
7088         Mention new switch -fcallgraph-info.
7089         Mention new switch -fstack-usage.
7090         For gnatpp, replace '-notab' with '-N' and add this option to Index
7091         Corrected VMS example.
7092         VMS keyword for style check -gnatyd is DOS_LINE_ENDINGS, no NOCRLF
7093         Minor reformatting
7094         Add documentation for -gnatyu switch (unnecessary blank lines)
7095         Document new switch -U for GNAT PRETTY and GNAT METRIC
7096         Add note about Stdcall being handled as C convention on non Windows OS.
7097         Remove some junk typo in description of gnatbind -S switch
7098         Remove reference to Extensions_Allowed pragma
7099         Document the new order of the directories to be searched (source and
7100         object directories of project files before directories in ADA_*_PATH
7101         environment variables.
7102
7103         * g-trasym.ads: Document that IRIX is supported
7104
7105 2005-06-10  Arnaud Charlet  <charlet@adacore.com>
7106
7107         * Makefile.in: Add initialize.o when needed.
7108         Adapt to new VMS package body Symbols and subunits
7109         No specialized version of a-sytaco is needed for VxWorks.
7110
7111         * a-wichun.ads, a-wichun.adb, a-zchuni.ads, a-zchuni.adb: New files.
7112         * a-zchara.ads, a-widcha.ads: New files.
7113
7114         * system-hpux-ia64.ads: New file.
7115
7116         * i-vxwork-x86.ads, i-vxwork.ads (intContext): Add this function which
7117         is imported from the VxWorks kernel.
7118
7119 2005-06-14  Robert Dewar  <dewar@adacore.com>
7120
7121         * g-soliop-mingw.ads, g-soccon-vms.adb, a-swmwco.ads, exp_smem.adb,
7122         fmap.adb, a-szmzco.ads, s-traent-vms.adb, s-traent-vms.ads,
7123         a-direio.ads, a-exctra.ads, a-exexda.adb, a-exextr.adb, a-stream.ads,
7124         s-restri.ads, s-restri.adb, s-traent.adb, s-traent.ads, a-slcain.adb,
7125         a-stzhas.ads, a-tiinau.adb, comperr.adb, exp_ch11.adb, g-boubuf.adb,
7126         g-calend.adb, g-debpoo.ads, g-moreex.ads, gprep.adb, g-regpat.ads,
7127         i-cexten.ads, i-os2thr.ads, makeutl.ads, memroot.adb, mlib-prj.adb,
7128         namet.adb, namet.ads, prj-makr.adb, prj-proc.adb, sem_dist.adb,
7129         sem_elim.ads, s-valint.adb, s-vallli.adb, s-vallli.adb, s-vallli.ads,
7130         s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads, scn.adb,
7131         s-tasinf.adb, targparm.adb, uname.adb, uname.ads, xnmake.adb,
7132         xsinfo.adb, a-direct.ads: Remove extra blank lines. Minor reformatting.
7133
7134 2005-06-14  Thomas Quinot  <quinot@adacore.com>
7135
7136         * xeinfo.adb: Fix typo in comment
7137
7138 2005-06-14  Javier Miranda  <miranda@adacore.com>
7139
7140         * repinfo.ads: Fix typo in comment
7141
7142 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
7143
7144         * s-finimp.adb (Parent_Tag): Delete this imported function (function
7145         Parent_Tag is now in the visible part of Ada.Tags).
7146         (Get_Deep_Controller): Call Ada.Tags.Parent_Tag directly instead of
7147         using imported function.
7148
7149 2005-06-14  Bernard Banner  <banner@adacore.com>
7150
7151         * vxaddr2line.adb: Add support for Windows hosted x86 vxworks. Should
7152         also apply for handling support for VxSim 653.
7153
7154 2005-06-14  Eric Botcazou  <ebotcazou@adacore.com>
7155
7156         * xsnames.adb: Add automatic generation of snames.h.
7157
7158 2005-06-14  Thomas Quinot  <quinot@adacore.com>
7159
7160         * gen-soccon.c: Add IP_MULTICAST_IF constant
7161         Minor reformatting and adjustments to prevent warnings.
7162
7163 2005-06-14  Pascal Obry  <obry@adacore.com>
7164
7165         * seh_init.c: Do not include <sys/stat.h>. This is not needed.
7166
7167 2005-06-03  Andrew Pinski  <pinskia@physics.uc.edu>
7168
7169         * trans.c (gnat_gimplify_expr): Call
7170         recompute_tree_invarant_for_addr_expr when we change
7171         the operand of the ADDR_EXPR.
7172
7173 2005-05-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7174
7175         * misc.c: Don't include errors.h.
7176
7177 2005-05-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7178
7179         * raise.c (db): Add ATTRIBUTE_PRINTF_2.
7180
7181 2005-05-29  Kazu Hirata  <kazu@cs.umass.edu>
7182
7183         * cal.c, decl.c, init.c, raise.c, trans.c, utils2.c: Fix
7184         comment typos.
7185         * gnat_rm.texi, gnat_ugn.texi: Fix typos.
7186
7187 2005-05-16  Nathanael Nerode <neroden@gcc.gnu.org>
7188
7189         PR ada/20270
7190         * Makefile.in: Make TGT_LIB behave correctly.
7191
7192 2005-04-23  DJ Delorie  <dj@redhat.com>
7193
7194         * misc.c: Adjust warning() callers.
7195
7196 2005-04-16  Laurent GUERBY  <laurent@guerby.net>
7197
7198         PR ada/18847
7199         * a-nudira.adb (Value): Check for valid string.
7200         * a-nuflra.adb (Value): Likewise.
7201
7202 2005-04-11  Richard Sandiford  <rsandifo@redhat.com>
7203
7204         * lang.opt: Refer to the GCC internals documentation instead of c.opt.
7205
7206 2005-04-10  Kazu Hirata  <kazu@cs.umass.edu>
7207
7208         * adaint.c, init.c, tracebak.c: Fix comment typos.
7209         * gnat-style.texi, gnat_rm.texi, gnat_ugn.texi: Fix typos.
7210
7211 2005-04-07  Laurent GUERBY  <laurent@guerby.net>
7212             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7213
7214         * Makefile.in: Add make ifeq define for hppa linux tasking support.
7215         * system-hpux.ads: Define Signed_Zeros to be True.
7216         * system-linux-hppa.ads, s-osinte-linux-hppa.ads: New files.
7217
7218 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
7219
7220         * adaint.c, cal.c, decl.c, gigi.h, gmem.c, init.c, link.c,
7221         raise.c, tracebak.c, trans.c, utils2.c, utils.c: Fix comment
7222         typos.
7223
7224 2005-03-30  Tom Tromey  <tromey@redhat.com>
7225
7226         * decl.c (gnat_substitute_in_type): Don't handle FILE_TYPE.
7227
7228 2005-03-30  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
7229
7230         * adaint.c (_gnat_set_close_on_exec): Mark parameters unused.
7231
7232 2005-03-29  Robert Dewar  <dewar@adacore.com>
7233
7234         * sem_res.adb (Resolve_Real_Literal): Generate warning if static
7235         fixed-point expression has value that is not a multiple of the Small
7236         value.
7237
7238         * opt.ads (Warn_On_Bad_Fixed_Value): New flag
7239
7240         * s-taprop-tru64.adb (RT_Resolution): Return an integer number of
7241         nanoseconds.
7242
7243         * ug_words: Add entry for [NO_]BAD_FIXED_VALUES for -gnatwb/-gnatwB
7244
7245 2005-03-29  Vincent Celier  <celier@adacore.com>
7246
7247         * mlib-tgt-vms-ia64.adb, mlib-tgt-vms-alpha.adb
7248         (Build_Dynamic_Library.Version_String): Return the empty string when
7249         Lib_Version is empty or when the symbol policy is not Autonomous.
7250
7251         * symbols-vms-alpha.adb (Finalize): For symbol policy Compliant, when
7252         a symbol is not in the reference symbol file, increase the Major ID
7253         and set the Minor ID to 0.
7254         Use gsmatch=lequal instead of gsmatch=equal
7255
7256 2005-03-29  Doug Rupp  <rupp@adacore.com>
7257
7258         * adaint.c (__gnat_to_canonical_file_spec [VMS]): Check for logical
7259         name and translate.
7260
7261 2005-03-29  Javier Miranda  <miranda@adacore.com>
7262
7263         * a-tags.ads, a-tags.adb (Get_TSD): Subprogram removed.
7264         (Inherit_DT): The first formal has been redefined as a Tag.
7265         This allows us the removal of the subprogram Get_TSD.
7266         (TSD): Replace the call to Get_TSD by the actual code.
7267
7268         * exp_disp.ads, exp_disp.adb: Remove support to call Get_TSD.
7269         (Make_DT): Upgrade the call to Inherit_TSD according to the
7270         new interface: the first formal is now a Tag.
7271
7272         * i-cpp.ads, i-cpp.adb (CPP_Inherit_DT): The first formal has been
7273         redefined as a Tag.
7274         This change allows us to remove the subprogram Get_TSD.
7275         (CPP_Get_TSD): Subprogram removed.
7276         (TSD): Replace the call to CPP_Get_TSD by the actual code.
7277
7278         * rtsfind.ads: Remove support to call the run-time
7279         subprogram Get_TSD
7280
7281 2005-03-29  Robert Dewar  <dewar@adacore.com>
7282
7283         * errutil.adb, errout.adb:
7284         Minor comment updates on Line_Terminator references
7285
7286         * par-ch10.adb: Add ??? comment about line terminator
7287
7288         * styleg.adb (Check_Line_Terminator): Add check for new switch -gnatyd
7289         (check dos line terminator).
7290         (Check_Line_Max_Length): New procedure, split off from the existing
7291         Check_Line_Terminator routine. Separating this out allows -gnatyf to
7292         be properly recognized.
7293
7294         * styleg.adb: Add ??? comment for line terminator reference
7295
7296         * scng.adb (Check_End_Of_Line): Fix bug of -gnatyf being ignored
7297         (Check_End_Of_Line): Add -gnatyd handling (check dos line terminators)
7298
7299         * styleg.ads (Check_Line_Terminator): Add check for new switch -gnatyd
7300         (check dos line terminator).
7301         (Check_Line_Max_Length): New procedure, split off from the existing
7302         Check_Line_Terminator routine. Separating this out allows -gnatyf to
7303         be properly recognized.
7304
7305         * stylesw.ads, stylesw.adb:
7306         Add handling for new -gnatyd switch (check dos line terminator)
7307
7308         * switch-c.adb: Recognize new -gnatyd switch (check dos line terminator)
7309         Recognize -gnatwb/-gnatwB switches
7310         Include Warn_On_Bad_Fixed_Value for -gnatg
7311
7312         * usage.adb:
7313         Add line for new -gnatyd switch (check dos line terminator)
7314
7315         * usage.adb: Add lines for -gnatwb/-gnatwB
7316
7317         * vms_data.ads: Add entry for NOCRLF (-gnatyd)
7318
7319         * vms_data.ads: [NO_]BAD_FIXED_VALUES synonym for -gnatwb/-gnatwB
7320
7321         * gnat_ugn.texi: Fix overlong lines
7322         Document new -gnatyd switch
7323         Document new -gnatwb/-gnatwB switches
7324
7325 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
7326
7327         * exp_ch4.adb (Has_Unconstrained_UU_Component): Use the base type in
7328         order to retrieve the component list of the type, before examining
7329         individual components.
7330
7331         * sem_type.adb (Covers): Types are compatible if one is the base type
7332         of the other, even though their base types might differ when private
7333         views are involved.
7334
7335 2005-03-29  Thomas Quinot  <quinot@adacore.com>
7336
7337         * exp_dist.adb (Add_RAST_Features, PolyORB version): Set the From_Any,
7338         To_Any and TypeCode TSSs on RAS types directly using Set_TSS, instead
7339         of using Set_Renaming_TSS. This ensures that the TSS bodies are not
7340         analyzed if expansion is disabled (which could otherwise cause spurious
7341         error messages if expansion has been disabled due to previous
7342         (unrelated) errors).
7343
7344         * sem_prag.adb (Analyze_Pragma, case Asynchronous): If RAS expansion
7345         is disabled, the entity denoted by the argument is the access type
7346         itself, not an underlying record type, so there is no need to go back
7347         to the Corresponding_Remote_Type.
7348
7349 2005-03-29  Gary Dismukes  <dismukes@adacore.com>
7350             Robert Dewar  <dewar@adacore.com>
7351
7352         * exp_intr.adb (Expand_Dispatching_Constructor_Call): New procedure to
7353         expand a call to an instance of
7354         Ada.Tags.Generic_Dispatching_Constructor into a dispatching call to the
7355         Constructor actual of the instance. A class-wide membership
7356         check is also generated, to ensure that the tag passed to the instance
7357         denotes a type in the class.
7358         (Expand_Intrinsic_Call): Call Expand_Dispatching_Constructor in the case
7359         of Name_Generic_Dispatching_Constructor.
7360
7361         * Makefile.rtl: Add a-tgdico.ads to the list of library units (new Ada
7362         05 unit for AI-260-02).
7363
7364         * a-tgdico.ads: New file.
7365
7366         * impunit.adb (Non_Imp_File_Names_05): Add entry "a-tgdico" for new
7367         predefined Ada 05 generic unit Ada.Tags.Generic_Dispatching_Constructor.
7368
7369         * snames.ads, snames.adb (Preset_Names): Add entry for
7370         Generic_Dispatching_Constructor.
7371
7372         PR ada/20300
7373
7374         * sem_ch8.adb (Find_Direct_Name): Go to root type for check of
7375         character type cases.
7376         (Analyze_Subprogram_Renaming): Add special handling for
7377         the case of renaming of stream attributes when the renaming denotes a
7378         generic formal subprogram association for an abstract formal subprogram.
7379         Check that the attribute is a primitive stream attribute (and not
7380         a class-wide stream attribute) and then rewrite the attribute name
7381         as the name of the appropriate compiler-generated stream primitive.
7382
7383 2005-03-29  Robert Dewar  <dewar@adacore.com>
7384
7385         * exp_util.adb (Remove_Side_Effects): Properly propagate arguments to
7386         recursive calls.
7387         (Is_Possibly_Unaligned_Object): Correct typo that
7388         resulted in inaccurate result for unaligned scalars within records.
7389
7390 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
7391
7392         * freeze.adb (Freeze_Record_Type): If the type of the component is an
7393         itype whose parent is controlled and not yet frozen, do not create a
7394         freeze node for the itype if expansion is disabled.
7395
7396 2005-03-29  Vincent Celier  <celier@adacore.com>
7397
7398         * make.adb (Gnatmake): Don't fail if the main project file is declared
7399         as having no Ada sources. Do not display message "no sources to
7400         compile" in quiet output.
7401
7402 2005-03-29  Doug Rupp  <rupp@adacore.com>
7403
7404         * Makefile.in [VMS] (EXTRA_GNATTOOLS): Add vms_help and gnat.hlp as
7405         extra tools.
7406
7407 2005-03-29  Robert Dewar  <dewar@adacore.com>
7408
7409         * par-ch12.adb (P_Generic): Give better msg for illegal private generic
7410         child.
7411
7412 2005-03-29  Robert Dewar  <dewar@adacore.com>
7413
7414         * par-ch3.adb (P_Type_Declaration): Fix bad error recovery after
7415         missing TYPE Improve the error message generated when compiling a
7416         limited interface in Ada83 or Ada95 mode.
7417
7418 2005-03-29  Robert Dewar  <dewar@adacore.com>
7419
7420         * par-ch4.adb (P_Name): When a bad attribute is returned, return error,
7421         rather than proceed ahead using a junk attribute name.
7422
7423 2005-03-29  Vincent Celier  <celier@adacore.com>
7424
7425         * prj.ads, prj.adb: (Project_Data): Add new component Display_Name
7426
7427         * prj-part.adb (Parse_Single_Project): Set the location of a project
7428         on its defining identifier, rather than on the reserved word "project".
7429
7430         * prj-proc.adb (Expression): Adapt to the fact that default of external
7431         references may be string expressions, not always literal strings.
7432         (Recursive_Process): Set Display_Name equal to Name
7433         when Location is No_Location, that is when there is no actual file.
7434         Get the Display_Name of the project from the source, when it is not a
7435         virtual project.
7436         (Process): Use the Display_Name in error messages
7437
7438         * prj-strt.adb (External_Reference): Allow default to be string
7439         expressions, not only literal strings.
7440
7441 2005-03-29  Vincent Celier  <celier@adacore.com>
7442
7443         * prj-nmsc.adb (Check_Stand_Alone_Library): Do not forbid the symbol
7444         file and the reference symbol file to be the same file.
7445
7446 2005-03-29  Thomas Quinot  <quinot@adacore.com>
7447
7448         * sem_cat.adb (Validate_Remote_Types_Type_Conversion): Perform check to
7449         forbid conversion of a local access-to-subprogram type to a remote one.
7450
7451         * sem_util.adb (Wrong_Type): For a record type that is the expanded
7452         equivalent type for a remote access-to-subprogram type, go back to the
7453         original RAS entity when displaying an error message, so the casing is
7454         the original source casing.
7455
7456 2005-03-29  Robert Dewar  <dewar@adacore.com>
7457
7458         * sem_ch11.adb (Analyze_Raise_Statement): Change message for warning
7459         on param update.
7460
7461 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
7462
7463         * sem_ch4.adb (Analyze_Selected_Component): Do not generate an actual
7464         subtype if code is being pre-analyzed, to prevent un-expanded
7465         references to protected formals, among others.
7466         (Analyze_Explicit_Dereference): If the overloaded prefix includes some
7467         interpretation that can be a call, include the result of the call as a
7468         possible interpretation of the dereference.
7469
7470         * sem_ch5.adb (Process_Bounds): Determine type of range by
7471         pre-analyzing a copy of the original range, and then analyze the range
7472         with the expected type.
7473
7474         * sem_res.adb (Check_Parameterless_Call): For an explicit dereference
7475         with an overloaded prefix where not all interpretations yield an
7476         access to subprogram, do not rewrite node as a call.
7477         (Resolve_Explicit_Dereference): Recognize the previous case and rewrite
7478         the node as a call once the context identifies the interpretation of
7479         the prefix whose call yields the context type.
7480         (Valid_Conversion): For the case of a conversion between
7481         local access-to-subprogram types, check subtype conformance using
7482         Check_Subtype_Conformant instead of Subtype_Conformant, to have a more
7483         detailed error message.
7484
7485 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
7486
7487         * sem_ch6.adb (Set_Formal_Mode): If the subtype has a non_null
7488         indicator, indicate that the formal can never be null.
7489         (Process_Formals): If a formal has a non_null indicator, insert the
7490         resulting subtype immediately before the enclosing subprogram decl,
7491         and not at the beginning of the corresponding declarative part, to
7492         prevent access before elaboration (Ada2005).
7493
7494 2005-03-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7495
7496         PR ada/19956
7497         * utils.c (finish_record_type): Use variable_size when setting sizes.
7498
7499 2005-03-29  Robert Dewar  <dewar@adacore.com>
7500
7501         * xtreeprs.adb, xnmake.adb: Use Stream_IO instead of Text_IO to
7502         guarantee Unix style line terminators for the output files, even when
7503         running on windows.
7504
7505 2005-03-29  Robert Dewar  <dewar@adacore.com>
7506
7507         * a-direct.ads, a-direct.adb (Start_Search): Free allocated search
7508         buffer if an exception is raised.
7509
7510 2005-03-29  Ed Falis  <falis@adacore.com>
7511
7512         * cio.c: Undefine putchar and getchar for VTHREADS: incompatible with
7513         VxWorks 653 1.4
7514
7515 2005-03-29  Robert Dewar  <dewar@adacore.com>
7516
7517         * sem_util.ads: Minor reformatting
7518         * gnat_rm.texi: Minor editing.
7519
7520 2005-03-29  Eric Botcazou  <ebotcazou@adacore.com>
7521
7522         * decl.c (gnat_to_gnu_entity) <E_Variable>: Rework comment.
7523         * trans.c (tree_transform) <N_Identifier>: Use correct predicates.
7524
7525 2005-03-24  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
7526
7527         * adaint.c (__gnat_portable_spawn): Adjust cast.
7528
7529 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
7530
7531         * misc.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
7532
7533 2005-03-17  Pascal Obry  <obry@adacore.com>
7534
7535         * adaint.h, adaint.c (__gnat_waitpid): Moved to expect.c where it is
7536         used.
7537
7538         * expect.c (__gnat_waitpid): Moved here from adaint.c.
7539         Reimplement under Win32 using Win32 API.
7540
7541         (__gnat_kill) [Win32]: Properly close the process handle before leaving
7542         this routine.
7543
7544 2005-03-17  Eric Botcazou  <ebotcazou@adacore.com>
7545
7546         * ada-tree.h: (DECL_RENAMING_GLOBAL_P): New predicate.
7547         (DECL_RENAMED_OBJECT): New accessor macro.
7548         (SET_DECL_RENAMED_OBJECT): New setter macro.
7549
7550         * decl.c (gnat_to_gnu_entity) <E_Variable>: Stabilize the renamed
7551         object in all cases.  Attach the renamed object to the VAR_DECL.
7552         (gnat_to_gnu_field): Do not lift the record wrapper if the size of the
7553         field is not prescribed.
7554
7555         * misc.c (gnat_handle_option): Handle -gnatO separately.
7556         (gnat_print_decl) <VAR_DECL>: New case.
7557         Print the DECL_RENAMED_OBJECT node.
7558
7559         * lang.opt:  Declare separate -gnatO option.
7560
7561         * trans.c (tree_transform) <N_Identifier>: If the object is a renaming
7562         pointer, replace it with the renamed object.
7563         <N_Validate_Unchecked_Conversion>: Warn for a conversion to a fat
7564         pointer type if the source is not a fat pointer type whose underlying
7565         array has the same non-zero alias set as that of the destination array.
7566
7567 2005-03-17  Javier Miranda  <miranda@adacore.com>
7568
7569         * a-tags.ads, a-tags.adb (Get_Expanded_Name): Removed.
7570         (Get_Inheritance_Depth): Removed.
7571         (Set_Inheritance_Depth): Removed.
7572
7573         * rtsfind.ads, exp_disp.ads, exp_disp.adb: Remove support to call the
7574         subprogram Get_Expanded_Name because it is not referenced by the
7575         frontend.
7576
7577         * i-cpp.ads, i-cpp.adb (CPP_Get_Expanded_Name): Removed.
7578         (CPP_Get_Inheritance_Depth): Removed.
7579         (CPP_Set_Inheritance_Depth): Removed.
7580
7581         * tbuild.ads, tbuild.adb (Make_DT_Component): Removed.
7582
7583 2005-03-17  Robert Dewar  <dewar@adacore.com>
7584
7585         * checks.adb (Apply_Array_Size_Check): Completely remove this for GCC
7586         3, since we now expect GCC 3 to do all the work.
7587
7588 2005-03-17  Javier Miranda  <miranda@adacore.com>
7589
7590         * einfo.adb (First_Private_Entity, Set_First_Private_Entity): Addition
7591         of one barrier to avoid wrong usage of this attribute.
7592
7593         * sem_ch12.adb (Formal_Entity): Fix erroneous usage of the attribute
7594         First_Private_Entity.
7595
7596         * sem_ch7.adb (Install_Visible_Declarations): Add a barrier to protect
7597         the subprogram against wrong usage.
7598         Adapt the code to traverse the entities in the
7599         scope of a record_type because in addition to its usage regarding
7600         packages, this subprogram is also called by Expand_N_Freeze_Entity
7601         to install the visible declarations of the enclosing scope of a
7602         record_type_with_private to establish the proper visibility before
7603         freezing the entity and related subprograms.
7604
7605 2005-03-17  Ed Schonberg  <schonberg@adacore.com>
7606
7607         * exp_ch2.adb (In_Assignment_Context): Recognize slice assignments to
7608         entry formals.
7609
7610 2005-03-17  Thomas Quinot  <quinot@adacore.com>
7611
7612         * exp_ch3.adb (Check_Attr): New subprogram.
7613         (Check_Stream_Attribute): Move the code for 13.13.2(9/1) enforcement
7614         into a new Check_Attr subprogram, in order to provide a more
7615         explanatory error message (including the name of the missing attribute).
7616         (Stream_Operation_OK): Renamed from Stream_Operations_OK. This
7617         subprogram determines whether a default implementation exists for a
7618         given stream attribute.
7619         (Make_Predefined_Primitive_Specs, Predefined_Primitive_Bodies):
7620         Determine whether to generate a default implementation for each stream
7621         attribute separately, as this depends on the specific attribute.
7622
7623         * exp_strm.adb (Make_Field_Attribute): For the case of an illegal
7624         limited extension where a stream attribute is missing for a limited
7625         component (which will have been flagged in Exp_Ch3.Sem_Attr), do not
7626         generate a bogus reference to the missing attribute to prevent
7627         cascaded errors. Instead, generate a null statement.
7628
7629         * sem_attr.adb (Check_Stream_Attribute): A stream attribute is
7630         available for a limited type if it has been specified for an ancestor
7631         of the type.
7632
7633 2005-03-17  Ed Schonberg  <schonberg@adacore.com>
7634
7635         * exp_ch6.adb (Expand_Inlined_Call): handle the case when the renamed
7636         entity is an operator.
7637
7638 2005-03-17  Thomas Quinot  <quinot@adacore.com>
7639
7640         * exp_dist.adb (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist
7641         spec, to make this predicate available to other units.
7642
7643         * rtsfind.adb (Check_RPC): Use Sem_Dist.Get_PCS_Name instead of
7644         reimplementing it.
7645
7646         * sem_ch8.adb: Disable expansion of remote access-to-subprogram types
7647         when no distribution runtime library is available.
7648
7649         * sem_res.adb, sem_dist.adb: Disable expansion of remote
7650         access-to-subprogram types when no distribution runtime library is
7651         available.
7652         (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist spec, to make this
7653         predicate available to other units.
7654
7655         * sem_dist.ads (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist
7656         spec, to make this predicate available to other units.
7657
7658 2005-03-17  Vincent Celier  <celier@adacore.com>
7659
7660         * make.adb (Insert_Project_Sources): Make sure the Q is always
7661         initialized.
7662
7663         * prj-nmsc.adb (Check_Ada_Naming_Scheme_Validity): Check Naming against
7664         the default for the tree, not the global default naming.
7665
7666         * prj-proc.adb (Recursive_Process): No need to put the default naming
7667         in the project data, it's already there.
7668
7669 2005-03-17  Doug Rupp  <rupp@adacore.com>
7670
7671         * Makefile.in: (ia64-hp-*vms*): Use s-crtl-vms64.ads.
7672
7673         * 5xcrtl.ads: Renamed to...
7674         * s-crtl-vms64.ads: ...this new file
7675
7676 2005-03-17  Robert Dewar  <dewar@adacore.com>
7677
7678         PR ada/19519
7679
7680         * namet.adb (Copy_One_Character): Set proper wide character encoding
7681         for upper half character if we have upper half encoding.
7682
7683 2005-03-17  Robert Dewar  <dewar@adacore.com>
7684
7685         * par.adb (Par): Improved msg for attempt to recompile predefined unit
7686
7687 2005-03-17  Thomas Quinot  <quinot@adacore.com>
7688
7689         * sem_ch13.adb (New_Stream_Function, New_Stream_Procedure): For a
7690         tagged limited type, the TSS is a newly built renaming declaration:
7691         insert it using Set_TSS, not Copy_TSS.
7692
7693 2005-03-17  Javier Miranda  <miranda@adacore.com>
7694
7695         * sem_ch4.adb (Try_Primitive_Operation, Class_Wide_Operation and
7696         Try_Object_Operation): Analyze the object that is accessible
7697         through the prefix of the subprogram call before we apply
7698         the transformation of the object-operation notation.
7699
7700 2005-03-17  Jose Ruiz  <ruiz@adacore.com>
7701
7702         * s-taprob.adb (Initialize_Protection): Initialize the protected
7703         object's owner to Null_Task.
7704         (Lock): If pragma Detect_Blocking is in effect and the caller of this
7705         procedure is already the protected object's owner then Program_Error
7706         is raised. In addition the protected object's owner is updated.
7707         (Lock_Read_Only): If pragma Detect_Blocking is in effect and the caller
7708         of this procedure is already the protected object's owner then
7709         Program_Error is raised.
7710         In addition the protected object's owner is updated.
7711         (Unlock): Remove the ownership of the protected object.
7712
7713         * s-taprob.ads (Protection): Add the field Owner, used to store the
7714         protected object's owner.
7715         This component is needed for detecting one type of potentially blocking
7716         operations (external calls on a protected subprogram with the same
7717         target object as that of the protected action). Document the rest of
7718         the components.
7719
7720         * s-tposen.adb, s-tpoben.adb (Initialize_Protection_Entries):
7721         Initialize the protected object's owner to Null_Task.
7722         (Lock_Read_Only_Entries): If pragma Detect_Blocking is in effect and the
7723         caller of this procedure is already the protected object's owner then
7724         Program_Error is raised.
7725         Do not raise Program_Error when this procedure is called from a
7726         protected action.
7727         (Unlock_Entries): Remove the ownership of the protected object.
7728         (Lock_Entries): If pragma Detect_Blocking is in effect and the caller
7729         of this procedure is already the protected object's owner then
7730         Program_Error is raised.
7731         Do not raise Program_Error when this procedure is called from
7732         a protected action.
7733
7734         * s-tposen.ads, s-tpoben.ads (Protection_Entries): Add the field Owner,
7735         used to store the protected object's owner.
7736
7737         * s-tpobop.adb (Protected_Entry_Call): If pragma Detect_Blocking is in
7738         effect and this procedure (a potentially blocking operation) is called
7739         from whithin a protected action, Program_Error is raised.
7740         (Timed_Protected_Entry_Call): If pragma Detect_Blocking is in effect
7741         and this procedure (a potentially blocking operation) is called from
7742         whithin a protected action, Program_Error is raised.
7743
7744 2005-03-17  Vincent Celier  <celier@adacore.com>
7745             Nicolas Setton  <setton@adacore.com>
7746
7747         * mlib-tgt-darwin.adb (Build_Dynamic_Library): Remove the "-fini"
7748         switch, not supported by the linker on Darwin. Add '_' before
7749         <library>init, as this character is added unconditionally by the
7750         compiler.
7751         (Is_Archive_Ext): Replace the wrong library extension ".dyld" by the
7752         correct one ".dylib". This fixes detection of the archive files when
7753         building library projects.
7754
7755 2005-03-17  Vincent Celier  <celier@adacore.com>
7756
7757         * switch-m.adb (Normalize_Compiler_Switches): Recognize switches
7758         -gnat83, -gnat95 and -gnat05.
7759
7760 2005-03-17  Vasiliy Fofanov  <fofanov@adacore.com>
7761
7762         * gnat_ugn.texi: Document gnatmem restriction
7763
7764 2005-03-17  Thomas Quinot  <quinot@adacore.com>
7765
7766         * snames.adb: Document new TSS names introduced by exp_dist/exp_tss
7767         cleanup
7768
7769 2005-03-17  Robert Dewar  <dewar@adacore.com>
7770
7771         * s-interr.ads, s-interr.adb, sem_ch3.adb, prj.ads, prj.adb,
7772         a-interr.adb, a-interr.ads, s-interr-sigaction.adb, s-interr-dummy.adb,
7773         s-interr-vms.adb, s-interr-vxworks.adb: Minor reformatting
7774
7775         * casing.adb: Comment improvements
7776
7777 2005-03-17  Pascal Obry  <obry@adacore.com>
7778
7779         * g-expect.adb: Minor reformatting.
7780
7781 2005-03-15  Zack Weinberg  <zack@codesourcery.com>
7782
7783         * Make-lang.in (doc/gnat_ugn_unw.info, doc/gnat_rm.info)
7784         (doc/gnat_ugn_unw.dvi, doc/gnat_rm.dvi): Add gcc-vers.texi
7785         to dependencies.
7786
7787 2005-03-15  Vincent Celier  <celier@adacore.com>
7788
7789         * mlib-tgt-darwin.adb (Library_Exist_For, Library_File_Name_For):
7790         Add new parameter In_Tree to specify the project tree: needed
7791         by the project manager. Adapt to changes in project manager
7792         using new parameter In_Tree.
7793
7794 2005-03-15  Jakub Jelinek  <jakub@redhat.com>
7795
7796         * Make-lang.in (ada/treeprs.ads, ada/einfo.h, ada/sinfo.h,
7797         ada/nmake.adb, ada/nmake.ads): Use unique subdirectories of
7798         ada/bldtools to avoid make -jN failures.
7799
7800 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
7801
7802         * trans.c (gnat_to_gnu) <N_Return_Statement>: Set gnu_result
7803         to NULL_TREE on entry.
7804
7805 2005-03-15  Robert Dewar  <dewar@adacore.com>
7806
7807         * system-unixware.ads, system-linux-ia64.ads, system-freebsd-x86.ads,
7808         system-lynxos-ppc.ads, system-lynxos-x86.ads, system-linux-x86_64.ads,
7809         system-tru64.ads, system-aix.ads, system-vxworks-sparcv9.ads,
7810         system-vxworks-xscale.ads, system-solaris-x86.ads, system-irix-o32.ads,
7811         system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
7812         system-linux-x86.ads, system-vxworks-mips.ads, system-os2.ads,
7813         system-interix.ads, system-solaris-sparc.ads,
7814         system-solaris-sparcv9.ads, system-vms.ads, system-mingw.ads,
7815         system-vms-zcx.ads, system-vxworks-ppc.ads, system-vxworks-alpha.ads,
7816         system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
7817         system-linux-ppc.ads, system-linux-alpha.ads, system-linux-sparc.ads,
7818         system-linux-s390.ads, system-linux-s390x.ads: Add line defining
7819         Compiler_System_Version to be False.
7820
7821         * opt.ads: Add new flag Opt.Address_Is_Private
7822
7823         * targparm.ads, targparm.adb: Set new flag Opt.Address_Is_Private
7824         Add new parameter Compiler_System_Version to avoid checking for
7825         completeness of parameters when compiler is compiling itself.
7826         Allows old versions of GNAT to be compiled with new compiler.
7827
7828 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
7829
7830         * s-osinte-tru64.ads, s-osinte-tru64.adb (Get_Stack_Base): New function
7831         (Hide_Yellow_Zone): New procedure to hide the Yellow Zone of the
7832         calling thread.
7833         (Stack_Base_Available): New flag.
7834         (Get_Page_Size): New overloaded functions imported from C.
7835         (PROT_NONE, PROT_READ, PROT_WRITE, PROT_EXEC, PROT_ALL,
7836         PROT_ON, PROT_OFF): New constants.
7837         (mprotect): New function imported from C.
7838         (pthread_teb_t): New record type.
7839
7840         * s-taprop-tru64.adb: (Enter_Task): Invoke Hide_Yellow_Zone.
7841         (Create_Task): Account for the Yellow Zone and the guard page.
7842
7843 2005-03-15  Vincent Celier  <celier@adacore.com>
7844
7845         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
7846         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
7847         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb,
7848         mlib-tgt-vxworks.adb, mlib-tgt-lynxos.adb (Library_Exist_For,
7849         Library_File_Name_For): Add new parameter In_Tree
7850         to specify the project tree: needed by the project manager.
7851         Adapt to changes in project manager using new parameter In_Tree.
7852         Remove local imports, use functions in System.CRTL.
7853
7854         * make.adb, clean.adb, gnatcmd.adb (Project_Tree): New constant needed
7855         to use the project manager.
7856
7857         * makeutl.ads, makeutl.adb (Linker_Options_Switches): New parameter
7858         In_Tree to designate the project tree. Adapt to changes in the project
7859         manager, using In_Tree.
7860
7861         * mlib-prj.ads, mlib-prj.adb (Build_Library, Check_Library,
7862         Copy_Interface_Sources): Add new parameter In_Tree to specify the
7863         project tree: needed by the project manager.
7864         (Build_Library): Check that Arg'Length >= 6 before checking if it
7865         contains "--RTS=...".
7866
7867         * mlib-tgt.ads, mlib-tgt.adb (Library_Exist_For,
7868         Library_File_Name_For): Add new parameter In_Tree to specify the
7869         project tree: needed by the project manager.
7870
7871         * prj.ads, prj.adb: Major modifications to allow several project trees
7872         in memory at the same time.
7873         Change tables to dynamic tables and hash tables to dynamic hash
7874         tables. Move tables and hash tables from Prj.Com (in the visible part)
7875         and Prj.Env (in the private part). Move some constants from the visible
7876         part to the private part. Make other constants deferred.
7877         (Project_Empty): Make it a variable, not a function
7878         (Empty_Project): Add parameter Tree. Returns the data with the default
7879         naming data of the project tree Tree.
7880         (Initialize): After updating Std_Naming_Data, copy its value to the
7881         component Naming of Project Empty.
7882         (Register_Default_Naming_Scheme): Use and update the default naming
7883         component of the project tree, instead of the global variable
7884         Std_Naming_Data.
7885         (Standard_Naming_Data): Add defaulted parameter Tree. If project tree
7886         Tree is not defaulted, return the default naming data of the Tree.
7887         (Initial_Buffer_Size): Constant moved from private part
7888         (Default_Ada_Spec_Suffix_Id, Default_Ada_Body_Suffix_Id, Slash_Id); new
7889         variables initialized in procedure Initialize.
7890         (Add_To_Buffer): Add two in out parameters to replace global variables
7891         Buffer and Buffer_Last.
7892         (Default_Ada_Spec_Suffix, Default_Body_Spec_Suffix, Slash): New
7893         functions.
7894         Adapt to changes to use new type Project_Tree_Ref and dynamic tables and
7895         hash tables.
7896         (Initialize, Reset, register-Default_Namng-Scheme): Add a new parameter
7897         for the project tree.
7898         (Project_Tree_Data, Project_Tree_Ref, No_Project): Declare types and
7899         constant at the beginning of the package spec, so that they cane be used
7900         in subprograms before their full declarations.
7901         (Standard_Naming_Data): Add defaulted parameter of type Project_Node_Ref
7902         (Empty_Project): Add parameter of type Project_Node_Ref
7903         (Private_Project_Tree_Data): Add component Default_Naming of type
7904         Naming_Data.
7905         (Buffer, Buffer_Last): remove global variables
7906         (Add_To_Buffer): Add two in out parameters to replace global variables
7907         Buffer and Buffer_Last.
7908         (Current_Packages_To_Check): Remove global variable
7909         (Empty_Name): Move to private part
7910         (No-Symbols): Make it a constant
7911         (Private_Project_Tree_Data): New type for the private part of the
7912         project tree data.
7913         (Project_Tree_Data): New type for the data of a project tree
7914         (Project_Tree_Ref): New type to designate a project tree
7915         (Initialize, Reset, register-Default_Namng-Scheme): Add a new parameter
7916         for the project tree.
7917
7918         * prj-attr.ads: Add with Table; needed, as package Prj no longer
7919         imports package Table.
7920
7921         * prj-com.adb: Remove empty, no longer needed body
7922
7923         * prj-com.ads: Move most of the content of this package to package Prj.
7924
7925         * prj-dect.ads, prj-dect.adb (Parse): New parameters In_Tree to
7926         designate the project node tree and Packages_To_Check to replace
7927         global variable Current_Packages_To_Check.
7928         Add new parameters In_Tree and Packages_To_Check to local subprograms,
7929         when needed. Adapt to changes in project manager with project node tree
7930         In_Tree.
7931
7932         * prj-env.ads, prj-env.adb: Add new parameter In_Tree to designate the
7933         project tree to most subprograms. Move tables and hash tables to
7934         private part of package Prj.
7935         Adapt to changes in project manager using project tree In_Tree.
7936
7937         * prj-makr.adb (Tree): New constant to designate the project node tree
7938         Adapt to change in project manager using project node tree Tree
7939
7940         * prj-nmsc.ads, prj-nmsc.adb (Check_Stand_Alone_Library): Correctly
7941         display the Library_Src_Dir and the Library_Dir.
7942         Add new parameter In_Tree to designate the project node tree to most
7943         subprograms. Adapt to changes in the project manager, using project tree
7944         In_Tree.
7945         (Check_Naming_Scheme): Do not alter the casing on platforms where
7946         the casing of file names is not significant.
7947         (Check): Add new parameter In_Tree to designate the
7948
7949         * prj-pars.ads, prj-pars.adb (Parse): Add new parameter In_Tree to
7950         designate the project tree.
7951         Declare a project node tree to call Prj.Part.Parse and Prj.Proc.Process
7952
7953         * prj-part.ads, prj-part.adb (Buffer, Buffer_Last): Global variables,
7954         to replace those that were in the private part of package Prj.
7955         Add new parameter In__Tree to designate the project node tree to most
7956         subprograms. Adapt to change in Prj.Tree with project node tree In_Tree.
7957         (Post_Parse_Context_Clause): When specifying the project node of a with
7958         clause, indicate that it is a limited with only if there is "limited"
7959         in the with clause, not necessarily when In_Limited is True.
7960         (Parse): Add new parameter In_Tree to designate the project node tree
7961
7962         * prj-pp.ads, prj-pp.adb (Pretty_Print): Add new parameter In_Tree to
7963         designate the project node tree. Adapt to change in Prj.Tree with
7964         project node tree In_Tree.
7965
7966         * prj-proc.ads, prj-proc.adb (Recursive_Process): Specify the project
7967         tree In_Tree in the call to function Empty_Process to give its initial
7968         value to the project data Processed_Data.
7969         Add new parameters In_Tree to designate the project tree and
7970         From_Project_Node_Tree to designate the project node tree to several
7971         subprograms. Adapt to change in project manager with project tree
7972         In_Tree and project node tree From_Project_Node_Tree.
7973
7974         * prj-strt.ads, prj-strt.adb (Buffer, Buffer_Last): Global variables,
7975         to replace those that were in the private part of package Prj.
7976         Add new parameter In_Tree to designate the project node tree to most
7977         subprograms. Adapt to change in Prj.Tree with project node tree In_Tree.
7978
7979         * prj-tree.ads, prj-tree.adb: Add new parameter of type
7980         Project_Node_Tree_Ref to most subprograms.
7981         Use this new parameter to store project nodes in the designated project
7982         node tree.
7983         (Project_Node_Tree_Ref): New type to designate a project node tree
7984         (Tree_Private_Part): Change table to dynamic table and hash tables to
7985         dynamic hash tables.
7986
7987         * prj-util.ads, prj-util.adb: Add new parameter In_Tree to designate
7988         the project tree to most subprograms. Adapt to changes in project
7989         manager using project tree In_Tree.
7990
7991         * makegpr.adb (Project_Tree): New constant needed to use project
7992         manager.
7993
7994 2005-03-15  Olivier Hainque  <hainque@adacore.com>
7995
7996         * s-intman-posix.adb (Notify_Exception): Adjust signature, as handler
7997         for sigactions with SA_SIGINFO set. Call
7998         __gnat_adjust_context_for_raise before raising, to perform the
7999         potentially required adjustments to the machine context for the GCC
8000         unwinder.
8001
8002         * raise.h (__gnat_adjust_context_for_raise): New prototype.
8003
8004         * init.c (__gnat_adjust_context_for_raise) HPUX: Initial revision.
8005         Adjust PC by one in the provided machine context.
8006         (__gnat_install_handler) HPUX: Set SA_SIGINFO in the sigaction flags,
8007         so that the handler is passed the context structure to adjust prior to
8008         the raise.
8009         (__gnat_error_handler) HPUX: Adjust the signature to match what an
8010         SA_SIGINFO sigaction should look like. Call
8011         __gnat_adjust_context_for_raise before actually raising.
8012         (__gnat_adjust_context_for_raise): Default noop to help PC
8013         adjustments before raise from signal handlers.
8014         (__gnat_error_handler): Indirectly call a predicate function to
8015         determine if a condition should be resignaled or not.
8016         (__gnat_set_resignal_predicate): User interface to modify the predicate.
8017         (__gnat_default_resignal_p): Default GNAT predicate.
8018
8019 2005-03-15  Doug Rupp  <rupp@adacore.com>
8020
8021         * adaint.c: Prefix #include of VMS system header files with vms/
8022         [VMS] (HOST_EXECUTABLE_SUFFIX, HOST_OBJECT_SUFFIX): Define for VMS.
8023         Do not define a dummy function "convert_addresses" under Darwin,
8024         not needed.
8025
8026         * tb-alvms.c, expect.c: Prefix #include of VMS system header files
8027         with vms/
8028
8029 2005-03-15  Nicolas Setton  <setton@adacore.com>
8030
8031         * tracebak.c: Under Darwin, use the same unwinding mechanisms as under
8032         PPC/AIX.
8033
8034 2005-03-15  Robert Dewar  <dewar@adacore.com>
8035
8036         * a-reatim.ads, a-reatim.adb: Add functions Minutes and Seconds for
8037         AI-386.
8038
8039         * a-retide.ads: Minor comment changes
8040
8041 2005-03-15  Robert Dewar  <dewar@adacore.com>
8042
8043         * a-stzunb.adb, a-stzunb.adb a-stzunb.ads, a-stzunb.ads,
8044         a-stwiun.ads, a-stwiun.adb, a-strunb.ads, a-strunb.adb: Move
8045         Realloc_For_Chunk to private part of package.
8046         New subprograms for AI-301
8047
8048         * a-szuzti.adb, a-suteio.adb, a-swuwti.adb: Improve efficiency of
8049         Get_Line procedure.
8050         Avoid unnecessary use of Get/Set_Wide_String
8051
8052 2005-03-15  Robert Dewar  <dewar@adacore.com>
8053
8054         PR ada/13470
8055
8056         * a-stunau.ads, a-stunau.adb:
8057         Change interface to allow efficient (and correct) implementation
8058         The previous changes to allow extra space in unbounded strings had
8059         left this interface a bit broken.
8060
8061         * a-suteio.adb: Avoid unnecessary use of Get/Set_String
8062
8063         * g-spipat.ads, g-spipat.adb: New interface for Get_String
8064         Minor reformatting (function specs)
8065
8066         * g-spitbo.adb: New interface for Get_String
8067
8068         * g-spitbo.ads: Minor reformatting
8069
8070         * a-swunau.ads, a-swunau.adb: New interface for Get_Wide_String
8071
8072         * a-szunau.ads, a-szunau.adb: New interface for Get_Wide_Wide_String
8073
8074 2005-03-15  Javier Miranda  <miranda@adacore.com>
8075             Robert Dewar  <dewar@adacore.com>
8076             Thomas Quinot  <quinot@adacore.com>
8077             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8078
8079         * atree.ads, atree.adb: Add support for Elist24 field
8080
8081         * atree.h: Fix wrong definition of Field27
8082         Add support for Elist16 field
8083         Add support for Elist24 field
8084
8085         * einfo.ads, einfo.adb (Abstract_Interfaces,
8086         Set_Abstract_Interfaces): New subprograms.
8087         (Abstract_Interface_Alias, Set_Abstract_Interface_Alias): New
8088         subprograms.
8089         (Access_Disp_Table, Set_Access_Disp_Table): Modified to handle a list of
8090         entities rather than a single node.
8091         (Is_Interface, Set_Is_Interface): New subprogram
8092         (First_Tag_Component): New syntesized attribute
8093         (Next_Tag_Component): New synthesized attribute
8094         (Write_Entity_Flags): Upgraded to write Is_Interface
8095         (Write_Field24_Name): Upgraded to write Abstract_Interfaces
8096         (Write_Field25_Name): Upgraded to write Abstract_Interface_Alias
8097         (Task_Body_Procedure): New subprogram to read this attribute.
8098         (Set_Task_Body_Procedure): New subprogram to set this attribute.
8099         (Has_Controlled_Component): Now applies to all entities.
8100         This is only a documentation change, since it always worked to apply
8101         this to other than composite types (yielding false), but now this is
8102         official.
8103         Update documentation on Must_Be_Byte_Aligned for new spec
8104
8105         * tbuild.adb, exp_dist.adb, exp_disp.adb, exp_ch3.ads, exp_ch3.adb,
8106         exp_attr.adb, exp_aggr.adb, exp_ch4.adb, exp_ch5.adb: Upgrade all the
8107         uses of the Access_Disp_Table attribute to reference the first dispatch
8108         table associated with a tagged type. As
8109         part of the implementation of abstract interface types,
8110         Access_Disp_Table has been redefined to contain a list of dispatch
8111         tables (rather than a single dispatch table).
8112         Similarly, upgrade all the references to Tag_Component by the
8113         new attribute First_Tag_Component.
8114         (Find_Inherited_TSS): Moved to exp_tss.
8115         Clean up test in Expand_N_Object_Declaration for cases
8116         where we need to do a separate assignment of the initial value.
8117         (Expand_N_Object_Declaration): If the expression in the
8118         declaration of a tagged type is an aggregate, no need to generate an
8119         additional tag assignment.
8120         (Freeze_Type): Now a function that returns True if the N_Freeze_Entity
8121         is to be deleted.
8122         Bit packed array ops are only called if operands are known to be
8123         aligned.
8124         (Component_Equality): When returning an N_Raise_Program_Error statement,
8125         ensure that its Etype is set to Empty to avoid confusing GIGI (which
8126         expects that only expressions have a bona fide type).
8127         (Make_Tag_Ctrl_Assignment): Use Build_Actual_Subtype to correctly
8128         determine the amount of data to be copied.
8129
8130         * par.adb (P_Interface_Type_Definition): New subprogram that parses the
8131         new syntax rule of Ada 2005 interfaces (for AI-251 and AI-345):
8132             INTERFACE_TYPE_DEFINITION ::=
8133               [limited | task | protected | synchronized] interface
8134                 [AND interface_list]
8135
8136         * par-ch3.adb (P_Type_Declaration): Modified to give support to
8137         interfaces.
8138         (P_Derived_Type_Def_Or_Private_Ext_Decl): Modified to give support to
8139         interfaces.
8140         (P_Interface_Type_Definition): New subprogram that parses the new
8141         syntax rule of Ada 2005 interfaces
8142         (P_Identifier_Declarations): fix two occurrences of 'RENAMES' in error
8143         messages by the correct RENAMES (quotes removed).
8144
8145         * sem_prag.adb: Upgrade all the references to Tag_Component by the new
8146         attribute First_Tag_Component.
8147
8148         * sinfo.ads, sinfo.adb: Remove OK_For_Stream flag, not used, not needed
8149         (Interface_List, Set_Interface_List): New subprograms.
8150         (Interface_Present, Set_Interface_Present): New subprograms.
8151         (Limited_Present, Set_Limited_Present): Available also in derived
8152         type definition nodes.
8153         (Protected_Present, Set_Protected_Present): Available also in
8154         record type definition and
8155         derived type definition nodes.
8156         (Synchronized_Present, Set_Synchronized_Present): New subprograms.
8157         (Task_Present, Set_Task_Present): New subprogram.
8158         (Task_Body_Procedure): Removed.
8159         (Set_Task_Body_Procedure): Removed.
8160         These subprogram have been removed because the attribute
8161         Task_Body_Procedure has been moved to the corresponding task type
8162         or task subtype entity to leave a field free to store the list
8163         of interfaces implemented by a task (for AI-345)
8164         Add Expression field to N_Raise_Statement node for Ada 2005 AI-361
8165         (Null_Exclusion_Present): Change to Flag11, to avoid conflict with
8166         expression flag Do_Range_Check
8167         (Exception_Junk): Change to Flag7 to accomodate above change
8168         (Box_Present, Default_Name, Specification, Set_Box_Present,
8169         Set_Default_Name, Set_Specification): Expand the expression
8170         "X in N_Formal_Subprogram_Declaration" into the corresponding
8171         two comparisons. Required to use the csinfo tool.
8172
8173         * exp_ch11.adb (Expand_N_Raise_Statement): Deal with case where
8174         "with string" given.
8175
8176         * sem_ch11.adb (Analyze_Raise_Statement): Handle case where string
8177         expression given.
8178
8179         * par-ch11.adb (P_Raise_Statement): Recognize with string expression
8180         in 2005 mode
8181
8182         * exp_ch9.adb (Build_Task_Proc_Specification): Modified to use entity
8183         attribute Task_Body_Procedure rather than the old semantic field that
8184         was available in the task_type_declaration node.
8185
8186         * par-ch12.adb (P_Formal_Type_Definition): Modified to handle formal
8187         interface type definitions.
8188         (P_Formal_Derived_Type_Definition): Modified to handle the list of
8189         interfaces.
8190
8191         * par-ch9.adb (P_Task): Modified to handle the list of interfaces in a
8192         task type declaration.
8193         (P_Protected): Modified to handle the list of interfaces in a
8194         protected type declaration.
8195
8196 2005-03-15  Doug Rupp  <rupp@adacore.com>
8197             Vincent Celier  <celier@adacore.com>
8198
8199         * bindgen.adb (Gen_Main_C): Change WBI __posix_exit to decc$posix_exit
8200         (Gen_Output_File_C): Likewise.
8201         (Gen_Main_C): Issue #include <stdlib.h> to avoid warning
8202
8203 2005-03-15  Thomas Quinot  <quinot@adacore.com>
8204
8205         * checks.adb (Get_E_First_Or_Last): When the expression being retrieved
8206         is an N_Raise_Constraint_Error node, create a new copy of it without
8207         going through a call to Duplicate_Subexpr.
8208
8209 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
8210             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8211             Nicolas Setton  <setton@adacore.com>
8212             Ed Schonberg  <schonberg@adacore.com>
8213
8214         PR ada/19900
8215         PR ada/19408
8216         PR ada/19140
8217         PR ada/20255
8218
8219         * decl.c (gnat_to_gnu_field): Reject aliased components with a
8220         representation clause that prescribes a size not equal to the rounded
8221         size of their types.
8222         (gnat_to_gnu_entity, case E_Component): Always look at
8223         Original_Record_Component if Present and not the entity.
8224         (gnat_to_gnu_entity, case E_Record_Subtype): Rework handling of subtypes
8225         of tagged extension types by not making field for components that are
8226         inside the parent.
8227         (gnat_to_gnu_entity) <E_Record_Type>: Fix typo in the alignment formula
8228         (gnat_to_gnu_entity) <E_Variable>: Do not convert again the
8229         expression to the type of the object when the object is constant.
8230         Reverse defer_debug_incomplete_list before traversing it, so that trees
8231         are processed in the order at which they were added to the list. This
8232         order is important when using the stabs debug format.
8233         If we are deferring the output of debug information, also defer this
8234         output for a function return type.
8235         When adding fields to a record, prevent emitting debug information
8236         for incomplete records, emit the information only when the record is
8237         complete.
8238         (components_to_record): New parameter defer_debug.
8239         (gnat_to_gnu_entity, case E_Array_Subtype): Call copy_alias_set.
8240         (gnat_to_gnu_field_decl): New function.
8241         (substitution_list, annotate_rep): Call it.
8242         (gnat_to_gnu_entity, case E_Record_Subtype): Likewise.
8243         (gnat_to_gnu_entity, case E_Record_Type): Likewise.
8244         No longer update discriminants to not be a COMPONENT_REF.
8245         (copy_alias_set): Strip padding from input type; also handle
8246         unconstrained arrays properly.
8247
8248         * gigi.h (write_record_type_debug_info): New function.
8249         Convert to use ANSI-style prototypes. Remove unused
8250         declarations for emit_stack_check, elab_all_gnat and
8251         set_second_error_entity.
8252         (gnat_to_gnu_field_decl): New decl.
8253
8254         * utils.c (write_record_type_debug_info): New function.
8255         (finish_record_type): Delegate generation of debug information to
8256         write_record_type_debug_info.
8257         (update_pointer_to): Remove unneeded calls to rest_of_decl_compilation.
8258         (update_pointer_to): Fix pasto.
8259         (convert) <UNION_TYPE>: Accept slight type variations when
8260         converting to an unchecked union type.
8261
8262         * exp_ch13.adb (Expand_N_Freeze_Entity): If Freeze_Type returns True,
8263         replace the N_Freeze_Entity with a null statement.
8264
8265         * freeze.adb (Freeze_Expression): If the freeze nodes are generated
8266         within a constrained subcomponent of an enclosing record, place the
8267         freeze nodes in the scope stack entry for the enclosing record.
8268         (Undelay_Type): New Subprogram.
8269         (Set_Small_Size): Pass T, the type to modify; all callers changed.
8270         (Freeze_Entity, Freeze_Record_Type): Change the way we handle types
8271         within records; allow them to have freeze nodes if their base types
8272         aren't frozen yet.
8273
8274         * exp_util.adb (Remove_Side_Effects): Properly test for
8275         Expansion_Delayed and handle case when it's inside an
8276         N_Qualified_Expression.
8277
8278         * sem_ch3.adb (Derived_Type_Declaration): New predicate
8279         Comes_From_Generic, to recognize accurately that the parent type in a
8280         derived type declaration can be traced back to a formal type, because
8281         it is one or is derived from one, or because its completion is derived
8282         from one.
8283         (Constrain_Component_Type): If component comes from source and has no
8284         explicit constraint, no need to constrain in in a subtype of the
8285         enclosing record.
8286         (Constrain_Access, Constrain_Array): Allow itypes to be delayed.
8287         Minor change to propagate Is_Ada_2005 flag
8288
8289         * trans.c (gnat_to_gnu, case N_Aggregate): Verify that
8290         Expansion_Delayed is False.
8291         (assoc_to_constructor): Ignore fields that have a
8292         Corresponding_Discriminant.
8293         (gnat_to_gnu) <N_Return_Statement>: Restructure. If the
8294         function returns "by target", dereference the target pointer using the
8295         type of the actual return value.
8296         <all>: Be prepared for a null gnu_result.
8297         (processed_inline_subprograms): Check flag_really_no_inline
8298         instead of flag_no_inline.
8299         (set_second_error_entity): Remove unused function.
8300         (gnat_to_gnu, case N_Selected_Component): Call
8301         gnat_to_gnu_field_decl.
8302         (assoc_to_constructor): Likewise.
8303
8304 2005-03-15  Robert Dewar  <dewar@adacore.com>
8305             Ed Schonberg  <schonberg@adacore.com>
8306             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8307
8308         * exp_pakd.adb (Create_Packed_Array_Type): Do not set
8309         Must_Be_Byte_Aligned for cases where we do not need to use a
8310         System.Pack_nn unit.
8311
8312         * exp_ch6.adb (Expand_Call): Call Expand_Actuals for functions as well
8313         as procedures.
8314         Needed now that we do some processing for IN parameters as well. This
8315         may well fix some unrelated errors.
8316         (Expand_Call): Handle case of unaligned objects (in particular those
8317         that come from packed arrays).
8318         (Expand_Inlined_Call): If the subprogram is a renaming as body, and the
8319         renamed entity is an inherited operation, re-expand the call using the
8320         original operation, which is the one to call.
8321         Detect attempt to inline parameterless recursive subprogram.
8322         (Represented_As_Scalar): Fix to work properly with private types
8323         (Is_Possibly_Unaligned_Object): Major rewrite to get a much more
8324         accurate estimate. Yields True in far fewer cases than before,
8325         improving the quality of code that depends on this test.
8326
8327         * exp_util.adb (Kill_Dead_Code): For a package declaration, iterate
8328         over both visible and private declarations to remove them from tree,
8329         and mark subprograms declared in package as eliminated, to prevent
8330         spurious use in subsequent compilation of generic units in the context.
8331
8332         * exp_util.ads: Minor cleanup in variable names
8333
8334         * sem_eval.ads, sem_eval.adb: Minor reformatting
8335         (Compile_Time_Known_Bounds): New function
8336
8337 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
8338
8339         * exp_ch7.adb (Convert_View): Use base types of underlying types when
8340         determining whether an unchecked conversion is needed for the argument
8341         of an initialization call.
8342
8343 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
8344
8345         * exp_intr.adb (Expand_Unc_Conversion): As a target type, use the type
8346         that appears in the instantiation rather than the internal subtype
8347         generated in the wrapper package, to avoid anomalies in gigi when the
8348         target is derived from a private type whose full view is an access type.
8349
8350 2005-03-15  Robert Dewar  <dewar@adacore.com>
8351
8352         * exp_smem.adb, sem_attr.adb: Remove OK_For_Stream flag, not used,
8353         not needed.
8354         Add documentation to replace the use of this flag
8355         Fix kludge for Maximum_Alignment on x86 so that it does not apply to
8356         the x86_64.
8357
8358 2005-03-15  Thomas Quinot  <quinot@adacore.com>
8359
8360         * exp_tss.ads, exp_tss.adb (Find_Inherited_TSS): New subprogram, moved
8361         here from exp_attr so it can be shared between exp_attr and exp_dist.
8362         (TSS_Names): Renamed from OK_TSS_Names. This array contains the list of
8363         all TSS names, not a subset thereof, and the previous name introduced
8364         an unnecessarily confusion that a distinction might exist between
8365         "OK" TSS names and some "not OK" TSS names.
8366
8367 2005-03-15  Doug Rupp  <rupp@adacore.com>
8368
8369         * gnatchop.adb (Locate_Executable): Normalize the possibly VMS style
8370         Command_Name.
8371
8372 2005-03-15  Pascal Obry  <obry@adacore.com>
8373             Eric Botcazou  <ebotcazou@adacore.com>
8374
8375         PR ada/20226
8376         PR ada/20344
8377
8378         * init.c (__gnat_initialize): Do not call __gnat_install_SEH_handler()
8379         when IN_RTS. This is to work around a bootstrap path problem.
8380
8381         * misc.c (gnat_parse_file): Create a SEH (Structured Exception Handler)
8382         table and pass it to __gnat_install_SEH_handler().
8383         (gnat_handle_option): Accept OPT_fRTS_, not OPT_fRTS.
8384
8385         * lang.opt: Fix specification of -fRTS=.
8386
8387 2005-03-15  Doug Rupp  <rupp@adacore.com>
8388             Bernard Banner  <banner@adacore.com>
8389             Vincent Celier  <celier@adacore.com>
8390             Arnaud Charlet  <charlet@adacore.com>
8391
8392         PR ada/6852
8393         This change works fine when gnatlib is built from the gcc directory,
8394         but does not work when using the libada Makefile, since GCC_FOR_TARGET
8395         is not passed to ada/Makefile.in, so more work is needed by a
8396         Makefile/configure expert.
8397
8398         * Makefile.in(gnatlib): Use $(GCC_FOR_TARGET) for compiling library.
8399         set GMEM_LIB on ia64 linux to add optional support for gnatmem.
8400         Setup gnatlink switch -M for x86_64 linux, as it is already setup
8401         for Linux x86.
8402         (gnatlib-shared-default): Use GNATLIBCFLAGS as well.
8403         Run ranlib on libgccprefix.a
8404         Define PREFIX_OBJS for Darwin, to build libgccprefix.
8405         (ADA_INCLUDE_SRCS): Split Ada packages.
8406
8407 2005-03-15  Robert Dewar  <dewar@adacore.com>
8408
8409         * Make-lang.in: Add g-utf_32 unit for gnat and gnatbind
8410
8411         * impunit.adb: Add GNAT.UTF_32
8412
8413         * scng.adb: Use gnat.utf_32 instead of widechar for utf_32 stuff
8414
8415         * widechar.ads, widechar.adb: Remove redundant UTF-32 tables (scng
8416         now uses GNAT.UTF_32).
8417
8418         * g-utf_32.ads, g-utf_32.adb: This is a new unit with full
8419         capabilities for categorizing characters using Unicode categories
8420
8421 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
8422
8423         * sem_ch10.adb (Build_Ancestor_Name): If the ancestor is an
8424         instantiation that has been rewritten as a package body, retrieve spec
8425         to generate proper name for implicit_with_clause.
8426         (Install_Parents): Recognize a parent that is an instantiation but has
8427         been rewritten as a package declaration during analysis.
8428
8429 2005-03-15  Javier Miranda  <miranda@adacore.com>
8430             Ed Schonberg  <schonberg@adacore.com>
8431
8432         * sem_ch12.adb (Instantiate_Object): If the analysis of the actual
8433         parameter reported some error we immediately return. This improves the
8434         behaviour of the frontend in case of errors.
8435         (Install_Parent, Remove_Parent): Introduce new flag
8436         Parent_Unit_Visible, to preserve the proper visibility of the ultimate
8437         ancestor of a generic child unit, when the child is being instantiated.
8438         (Inline_Instance_Body): If we are compiling the private
8439         part or the body of a child unit, restore the proper visibility of the
8440         parents after compiling the instance body.
8441
8442 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
8443             Javier Miranda  <miranda@adacore.com>
8444
8445         PR ada/15608
8446         * sem_util.adb (Get_Task_Body_Procedure): Type may be the completion
8447         of a private type, in which case it is underlying_type that denotes
8448         the proper task. Also modified to use the new entity attribute
8449         that is directly available in the task type and task subtype entities
8450         (Build_Actual_Subtype_Of_Component): Handle properly multidimensional
8451         arrays when other dimensions than the first are constrained by
8452         discriminants of an enclosing record.
8453         (Insert_Explicit_Dereference): If the prefix is an indexed component or
8454         a combination of indexed and selected components, find ultimate entity
8455         and generate the appropriate reference for it, to suppress spurious
8456         warnings.
8457         (Note_Possible_Modification): If an entity name has no entity, return.
8458         (Is_Variable): A function call never denotes a variable.
8459         (Requires_Transient_Scope): For record types, recurse only on
8460         components, not on internal subtypes that may have been generated for
8461         constrained components.
8462
8463 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
8464
8465         * sem_ch4.adb (Analyze_Concatenation): Do not consider operators marked
8466         Eliminated as candidates for resolution. Both efficient, and avoids
8467         anomalies with operators declared in deleted code.
8468         (Process_Implicit_Dereference_Prefix): Use this procedure whenever
8469         expansion is disabled (as when compiling a generic) to prevent spurious
8470         warnings on prefixes of selected components.
8471
8472 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
8473
8474         * sem_ch6.adb (Is_Private_Declaration): Verify that the declaration is
8475         attached to a list before checking whether it appears in the private
8476         declarations of the current package.
8477         (Make_Inequality_Operator): Insert declaration in proper declarative
8478         list rather than just setting the Parent field, so that
8479         Is_Private_Declaration can handle it properly.
8480
8481 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
8482
8483         * sem_ch8.adb (Analyze_Subprogram_Renaming): In a generic, if this is
8484         a renaming a body, check that the renamed subprogram in not intrinsic.
8485         (Find_Direct_Name): If several use_visible entities hide
8486         each other, and the context is a predefined file compiled through
8487         rtsfind, keep only the entity that comes from a predefined file.
8488
8489 2005-03-15  Geert Bosch  <bosch@adacore.com>
8490
8491         * s-fatgen.adb (Valid): Extend special exceptions to account for long
8492         long float padding to also cover AMD64 and IA64.
8493
8494 2005-03-15  Gary Dismukes  <dismukes@adacore.com>
8495
8496         * s-imgwch.adb: Add with and use of Interfaces.
8497         (Img_Wide_Character): Change type of Val to Unsigned_16.
8498         (Img_Wide_Wide_Character): Change type of Val to Unsigned_32.
8499
8500 2005-03-15  Matthew Gingell  <gingell@adacore.com>
8501
8502         * sysdep.c: Implement __gnat_localtime_r as call to localtime_r on AIX.
8503
8504 2005-03-15  Robert Dewar  <dewar@adacore.com>
8505
8506         * usage.adb: Add missing lines for -gnat95 and -gnat05 switches
8507
8508         * sem_ch7.adb: Minor change to propagate Is_Ada_2005 flag
8509
8510         * i-c.adb: Clarify that AI-258 behavior is also intended in Ada 95
8511
8512 2005-03-15  Robert Dewar  <dewar@adacore.com>
8513
8514         * s-bitops.adb, s-bitops.ads,
8515         s-taprop-os2.adb, s-intman-vms.ads, s-intman-vxworks.ads,
8516         s-taprop-vxworks.adb, a-caldel.ads, a-calend.adb, a-tasatt.adb,
8517         tbuild.ads, s-finimp.adb, s-imgwch.adb, s-intman.ads, s-intman.ads,
8518         s-memory.adb, s-soflin.ads, s-taasde.ads, s-taprob.adb, s-taprop.ads,
8519         s-taprop.ads, s-tasini.adb, s-tasini.ads, s-tasini.ads, s-tasini.ads,
8520         s-taskin.ads, s-tasren.adb, s-tassta.adb, s-tassta.ads, s-tassta.ads,
8521         s-tasuti.ads, s-tataat.ads, s-tataat.ads, s-tataat.ads, s-tataat.ads,
8522         s-tpoben.adb, s-tpoben.adb, s-tpobop.ads: Update comments. Minor
8523         reformatting.
8524
8525 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
8526
8527         * utils2.c (build_binary_op): Fix typo.
8528
8529 2005-03-15  Doug Rupp  <rupp@adacore.com>
8530
8531         * s-crtl.ads (popen,pclose): New imports.
8532
8533 2005-03-15  Cyrille Comar  <comar@adacore.com>
8534
8535         * comperr.adb (Compiler_Abort): remove references to obsolete
8536         procedures in the bug boxes for various GNAT builds.
8537
8538 2005-03-15  Vincent Celier  <celier@adacore.com>
8539
8540         * snames.ads, snames.adb: Save as Unix text file, not as DOS text file
8541
8542 2005-03-15  Geert Bosch  <bosch@adacore.com>
8543             Arnaud Charlet  <charlet@adacore.com>
8544             Robert Dewar  <dewar@adacore.com>
8545             Cyrille Comar  <comar@adacore.com>
8546             Sergey Rybin  <rybin@adacore.com>
8547
8548         * gnat_ugn.texi: Remove extended inline assembly example, as it was far
8549         too specific and long-winded to be appropriate for the GNAT User's
8550         Guide.
8551         Warn about use of GCC switches not documented in the GNAT User's Guide,
8552         as these may cause generated code to not conform to Ada semantics.
8553         Remove mention of -gdwarf-2 for sparc64, since this is now the default.
8554         Add documentation for -gnat95 and -gnat05 switches
8555         Remove paragraph documenting obsolete way to refer to third party
8556         libraries.
8557         Add a few references to Ada_05 that were missing.
8558         Update documentation on -gnatZ/-gnatL.
8559         Document limitation when using -m64 under Solaris.
8560         Change the "Name Casing" subsection of the pretty-printer section
8561         according to the changes in the dictionary processing.
8562
8563         * gnat_rm.texi: Document the Ada_05 pragma.
8564         Section on record representation clauses describes the new more
8565         relaxed rules about placement of large packed bit array components.
8566         Add documentation of GNAT.UTF_32
8567
8568 2005-03-12  Daniel Berlin <dberlin@dberlin.org>
8569
8570         * misc.c (gnat_post_options): Turn off structural
8571         aliasing for now.
8572
8573 2005-03-08  Laurent Guerby <laurent@guerby.net>
8574
8575         * system-linux-sparc.ads: Fix typo in previous commit.
8576
8577 2005-03-07  James A. Morrison <phython@gcc.gnu.org>
8578             Laurent Guerby <laurent@guerby.net>
8579
8580         PR ada/20035
8581         * system-linux-sparc.ads: New.
8582         * Makefile.in: Add sparc linux entry.
8583
8584 2005-02-27  Danny Smith  <dannysmith@users.sourceforge.net>
8585
8586         * seh_init.c (__gnat_SEH_error_handler): Mark third and fourth
8587         parameters as unused.
8588
8589 2005-02-26  Nathanael Nerode  <neroden@gcc.gnu.org>
8590         Partial merge from libada-gnattools-branch:
8591
8592         2004-12-02  Nathanael Nerode  <neroden@gcc.gnu.org>
8593         * Makefile.in: Move gnattools{1,1re,2,3,4} and corresponding flags
8594         into code in gnattools/Makefile.in.  Remove direct dependencies on
8595         stamp-tools by tools clauses.
8596         2004-12-02  Nathanael Nerode  <neroden@gcc.gnu.org>
8597         * config-lang.in: Add gnattools to $lang_dirs.
8598
8599 2005-02-13  Andrew Pinski  <pinskia@physics.uc.edu>
8600
8601         PR ada/19942
8602         * utils.c (gnat_type_for_mode): Return null instead of ICE because
8603         we asked for an unknown mode.
8604
8605 2005-02-12  Richard Henderson  <rth@redhat.com>
8606
8607         * utils.c (gnat_type_for_mode): Return NULL for COMPLEX modes;
8608         validate SCALAR_INT_MODE_P before calling gnat_type_for_size.
8609
8610 2005-02-10  Andreas Jaeger  <aj@suse.de>
8611
8612         * init.c (__gnat_initialize): Mark parameter as unused.
8613
8614 2005-02-09  Doug Rupp  <rupp@adacore.com>
8615
8616         * g-expect-vms.adb (Non_Blocking_Spawn): Separate out.
8617         * g-enblsp-vms-alpha.adb g-enblsp-vms-ia64.adb: New subunits.
8618
8619 2005-02-09  Doug Rupp  <rupp@adacore.com>
8620
8621         * gnatchop.adb (dup, dup2),
8622         g-dirope.adb (closedir, opendir, rmdir): Reference via System.CRTL.
8623
8624         * gnatlbr.adb (mkdir),
8625         mlib-tgt-vms-ia64.adb (popen, plose):  Import with decc$ prefix.
8626
8627         * s-crtl.ads (closdir, dup, dup2, opendir, rmdir): Import.
8628
8629 2005-02-09  Doug Rupp  <rupp@adacore.com>
8630
8631         * s-tpopde-vms.adb: Add pragma Warnings (Off) for Task_Id conversions.
8632
8633 2005-02-09  Robert Dewar  <dewar@adacore.com>
8634             Thomas Quinot  <quinot@adacore.com>
8635             Javier Miranda  <miranda@adacore.com>
8636             Pascal Obry  <obry@adacore.com>
8637             Ed Schonberg  <schonberg@adacore.com>
8638             Doug Rupp  <rupp@adacore.com>
8639             Gary Dismukes  <dismukes@adacore.com>
8640             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8641
8642         * g-zstspl.ads: New file.
8643
8644         * a-chahan.ads, a-chahan.adb: Add declarations from AI-285
8645
8646         * a-string.ads: Add pragma Ada_05 for wide_wide_space to get warning in
8647         Ada 95 mode
8648         Add definition of Wide_Wide_Space for AI-285
8649
8650         * impunit.ads, impunit.adb, sem_ch10.adb: Complete rewrite and new
8651         interface (to support Ada 95 and Ada 2005 units).
8652         Add Unbounded_IO files
8653         Add entries for Wide_Wide packages for AI-285
8654         Add list of containers packages to Ada 2005 unit list
8655
8656         * a-swuwti.ads, a-swuwti.adb, a-suteio.ads, a-suteio.adb: Updates to
8657         support new Unbounded_IO package cleanly.
8658
8659         * g-utf_32.ads, g-utf_32.adb: New files.
8660
8661         * Makefile.rtl: Add entry for g-utf_32
8662         Add new files for Unbounded_IO
8663         Adjust make file for new AI-285 wide wide packages
8664         Add AI-302 containers to the run time.
8665
8666         * a-stwibo.adb, a-stwibo.ads, a-stwisu.adb, a-stwisu.ads,
8667         a-strbou.ads, a-strbou.adb, a-strsup.ads, a-strsup.adb: New
8668         subprograms for AI-301.
8669
8670         * a-stwiun.adb, a-stwiun.ads: Minor reformatting.
8671
8672         * a-stunau.ads: Minor comment correction
8673
8674         * rtsfind.ads, rtsfind.adb: Add definitions for Wide_Wide attributes
8675         etc.
8676         Also extend Text_IO_Kludge to support Wide_Wide_Text_IO
8677         (Check_RPC): Update to match changes in expanded code.
8678         Clean up unused entity.
8679
8680         * exp_ch3.ads, exp_ch3.adb: Fix various places where Wide_Wide_String
8681         was not taken into account.
8682         This includes proper initialization with Normalize_Scalars.
8683         (Get_Simple_Init_Val): Major rewrite for initialize scalars and
8684         normalize scalars cases (particularly the latter) to do a better job
8685         of finding invalid representations.
8686
8687         * s-scaval.ads, s-scaval.adb: Add values for zero invalid values
8688
8689         * s-strops.ads, s-strops.adb: Remove string normalize routines, never
8690         used
8691
8692         * exp_dist.adb: Add support for wide wide character type
8693         (Expand_Receiving_Stubs_Bodies): For a package declaration that has a
8694         private part, generate stub bodies at the end of the private part,
8695         not the visible part.
8696         (Add_RACW_Primitive_Operations_And_Bodies): Add last missing code for
8697         PolyORB support.
8698         (Add_Obj_RPC_Receiver_Completion): Add PCS-specific subprograms and
8699         generic wrapper to execute final processing after completing the
8700         expansion of the RPC receiver for an RACW.
8701
8702         * snames.h, snames.ads, snames.adb: Add definitions for wide_wide
8703         packages and attributes.
8704         (Preset_Names): Addition of the new reserved words of Ada 2005,
8705         that is interface, overriding and synchronized.
8706         (Get_Pragma_Id): Give support to the use of the new reserved word
8707         "interface" as a pragma name.
8708         (Is_Pragma_Name): Give support to the use of the new reserved word
8709         "interface" as a pragma name.
8710         (Preset_Names): Add stream_size string for the Stream_Size Ada2005
8711         attribute implementation.
8712
8713         * exp_attr.adb (Expand_Attribute_Reference): Do not apply validity
8714         checks to entities that are output parameters of Asm operations.
8715         Handle the Stream_Size attribute.
8716         Add implementation of Wide_Wide_Value, Wide_Wide_Image, Wide_Wide_Width
8717
8718         * exp_imgv.ads, exp_imgv.adb: Add support for wide wide character type
8719
8720         * sem_attr.adb (Eval_Attribute): Raise compile-time constraint error
8721         for second parameter being 0.0.
8722         Add support for wide wide character type.
8723         (Analyze_Attribute, Eval_Attribute): Handle the Stream_Size attribute.
8724
8725         * s-valwch.adb, s-valwch.ads, s-imgwch.ads, s-imgwch.adb,
8726         s-wchstw.ads, s-wchstw.adb, s-wchwts.adb, s-wchwts.ads,
8727         s-widwch.adb, s-widwch.ads, s-wwdcha.adb, s-wwdcha.ads,
8728         s-wwdenu.adb, s-wwdenu.ads, s-wwdwch.adb, s-wwdwch.ads: Add support
8729         for wide wide character cases.
8730
8731         * cstand.adb: Create entities for Wide_Wide_Character and
8732         Wide_Wide_String.
8733
8734         * i-c.ads, i-c.adb: Fix not raising CE for null wide strings in
8735         accordance with AI-258.
8736         Add new declarations for 16/32 bit C character types (Part of AI285)
8737
8738         * einfo.ads, einfo.adb (Is_Obsolescent, Is_Ada_2005): New flag
8739         (Obsolescent_Warning): New field
8740         (Rep_Clause): New local subprogram used to share code. Returns the rep
8741         clause for which the name is given in parameter.
8742         (Has_Stream_Size_Clause): New routine.
8743         (Stream_Size_Clause): Idem. Implementation is based on Rep_Clause.
8744         (Address_Clause): Implementation is now using Rep_Clause.
8745         (Alignment_Clause): Idem.
8746         (Size_Clause): Idem.
8747
8748         * lib-xref.adb (Generate_Reference): Test for reference to Ada 2005
8749         entity in non-Ada 2005 mode and generate warning.
8750
8751         * par-prag.adb: Add handling of one argument form for pragma Ada_05.
8752         (Prag): Code cleanup. Remove old gnat pragma "overriding"
8753
8754         * sem_prag.adb: Add handling of one argument form for pragma Ada_05
8755         (Analyze_Pragma, case Elaborate, Elaborate_All): Do not disable warnings
8756         on the named unit if the pragma is not in the current compilation unit,
8757         so that elaboration calls in the current unit can set up an elaboration
8758         dependency on the named unit, as needed.
8759         (Analyze_Pragma, case Obsolescent): Allow pragma to be used for library
8760         subprogram as well as for subprograms declared within a package.
8761         (Analyze_Pragma, Sig_Flags): Code cleanup. Remove support for the GNAT
8762         pragma overriding.
8763
8764         * krunch.ads, krunch.adb: Add special handling of Wide_Wide (krunched
8765         to z) to avoid some instances of duplication for Wide_Wide packages.
8766
8767         * namet.ads, namet.adb: Implement encoding (WWhhhhhhhh) for wide wide
8768         characters.
8769
8770         * scn.adb: Char_Literal_Value field is now a Uint
8771
8772         * scng.adb: Significant rewrite to handle new Ada 2005 features
8773         allowing wide and wide wide characters in program text, e.g. for
8774         identifiers, as described in AI-285.
8775         (Set_Reserved): New procedure, makes setting up keywords cleaner.
8776         (Initialize_Scanner): Register the new reserved words of Ada 2005.
8777         (Scan): Give support to the new reserved words.
8778
8779         * par-ch2.adb (P_Identifier): Compiling in Ada95 mode, generate a
8780         warning notifying that interface, overriding, and synchronized are
8781         new reserved words.
8782         (P_Pragma): Allow the use of the new reserved word "interface" as
8783         a pragma name.
8784
8785         * gnatls.adb, gnatbind.adb,
8786         ali-util.adb, binde.adb, ali.ads, ali.adb: Code cleanup. Rename
8787         identifiers named "interface" to "SAL_Interface".
8788
8789         * bindgen.adb (Gen_Main_Ada): Add support for the new SEH
8790         (Structured Exception handling).
8791         (Gen_Main_C): Idem.
8792
8793         * bindgen.adb:
8794         (Gen_Main_Ada): Set the default exit code if specified.
8795         (Gen_Main_C): Likewise.
8796         Part of *DC20-006.
8797         (Gen_Output_File_C): Remove redundant output of gnat_exit_status.
8798         Code cleanup. Rename identifiers named "interface" to "SAL_Interface"
8799
8800         * switch-b.adb, bindusg.adb, opt.ads, vms_data.ads: Add handling of
8801         new -Xnnn switch.
8802
8803         * mlib-prj.adb, mlib.adb: Code cleanup. Rename one identifier that
8804         has a collision with the new Ada 2005 "interface" reserved word.
8805
8806         * par-ch3.adb (P_Defining_Identifier): Compiling in Ada95 mode,
8807         generate a warning notifying that interface, overriding, and
8808         synchronized are new reserved words.
8809
8810         * scans.ads (Token_Type): Addition of the tokens corresponding to the
8811         new reserved words of Ada 2005: Tok_Interface, Tok_Overriding
8812         and Tok_Synchronized.
8813
8814         * sem_res.adb (Resolve_Actuals): Change error messages to refer to
8815         "dispatching" rather than "primitive" operations, since dispatching
8816         calls are now allowed to abstract formal subprograms (which are not
8817         primitive).
8818         Char_Literal_Value field is now a Uint
8819         (Resolve_Slice): If the prefix is an access to an unconstrained array,
8820         compute the actual subtype of the designated object to impose the proper
8821         index constraints.
8822         (Resolve_Selected_Component): Do not insert an access check if the
8823         prefix is an access type: such a node is expanded into an explicit
8824         dereference, on which the access check is performed anyway. Removes
8825         expensive duplicate checks.
8826         (Resolve_Call): Use new flag Is_Obsolescent and field
8827         Obsolescent_Warning so that pragma Obsolescent works on library
8828         subprograms.
8829         Add support for wide wide character type
8830         (Resolve_Allocator): Replace the error message on wrong null-exclusion
8831         value by a warning message.
8832         (Resolve_Type_Conversion): If the mixed-mode expression is interpreted
8833         as fixed-point, and one of the operands is non-static and universal, it
8834         can only be an illegal exponentiation operation, in which case there is
8835         no real value to retrieve.
8836
8837         * exp_strm.adb: Add support for wide wide character type
8838         (Build_Elementary_Input_Call): Compute the size of the stream element by
8839         querying the rep chain to find the Stream_Attribute attribute value.
8840         (Build_Elementary_Write_Call): Ditto.
8841
8842         * sem_aggr.adb: Char_Literal_Value field is now a Uint
8843         Add support for wide wide character type
8844         Replace the error messages on wrong null-exclusion value by warnings
8845         as described in Ada 2005.
8846         (Resolve_Extension_Aggregate): Document the fact that the error
8847         message on class-wide expressions in extensions aggregates.
8848
8849         * sem_case.adb: Add support for wide wide character type
8850
8851         * sem_ch13.adb: Add support for wide wide character type
8852         (Analyze_Attribute_Definition_Clause): Handle the Stream_Size attribute.
8853
8854         * sem_ch3.adb: Add support for wide wide character type
8855         (Process_Subtype): If constraint is illegal for the type, set Ekind of
8856         now-useless Itype, to prevent cascaded errors on a compiler built
8857         without -gnatp.
8858
8859         * sem_ch8.adb: Add with and use of Sem_Disp.
8860         (Analyze_Subprogram_Renaming): Replace unclean uses of
8861         Corresponding_Spec with Corresponding_Formal_Spec (and delete setting
8862         of Corresponding_Spec to Empty).
8863         (Attribute_Renaming): Replace use of Corresponding_Spec with
8864         Corresponding_ Formal_Spec and simplify condition.
8865         (Use_One_Package): Check that scope of homonym of identifier is defined,
8866         before checking whether it is a wrapper package.
8867         Add support for wide wide character type
8868
8869         * sem_eval.adb: Add support for wide wide character type.
8870         (Eval_Arithmetic_Op): Check for compile time known signed integer
8871         overflow in the non-static case.
8872         (Subtypes_Statically_Match): A formal scalar type and its base type do
8873         not statically match.
8874
8875         * sem_util.adb (Collect_Primitive_Operations): Minor change of "/=" to
8876         "not in" for test of N_Formal_Subprogram_Declaration (which is now a
8877         subtype).
8878         (Unit_Declaration_Node): Ditto.
8879         (Is_Variable_Prefix):  For the case of an indexed component whose prefix
8880         has a packed array type, the prefix has been rewritten into a type
8881         conversion. Determine variable-ness from the converted expression.
8882         Handle wide wide character cases.
8883
8884         * stand.ads: Add types Wide_Wide_Character and Wide_Wide_String
8885
8886         * stringt.ads, stringt.adb: Handle full UTF-32 range.
8887         Remove ["0A"] from comment, since it can look like a line terminator.
8888         Currently we don't permit this, but this is under discussion by the
8889         ARG, and it is easy enough to use a different example.
8890
8891         * s-wchcon.ads, s-wchcnv.ads, s-wchcnv.adb: Add new subprograms for
8892         handling UTF-32 encoding for wide wide character.
8893         Implement new brackets coding ["hhhhhhhh"]
8894         Add UTF-8 encodings for full UTF-32 range
8895
8896         * ttypes.ads: Add definition of Standard_Wide_Wide_Character_Size
8897
8898         * types.h, types.ads, types.adb: Wide_Wide_Character now has full 31
8899         bit range Add full UTF-32 support.
8900         (RT_Exception_Code): Addition of CE_Null_Not_Allowed; used to
8901         notify that constraint error will be raised at run-time
8902         because a null value is assigned to a null-excluding object.
8903         Remove some obsolete declarations and make Char_Code
8904         unsigned.
8905
8906         * a-except.adb (Rcheck_30): New subprogram. Addition of the message
8907         corresponding to CE_Null_Not_Allowed, and adjust the output of all the
8908         Rcheck subprograms.
8909
8910         * checks.adb (Check_Null_Not_Allowed): Replace the error message on
8911         wrong null-exclusion value by a warning message.
8912         (Enable_Range_Check): Do range check if the prefix is an
8913         explicit dereference whose designated object is an unconstrained array.
8914         Current algorithm for removing duplicate checks is over-eager in this
8915         case.
8916
8917         * sem_ch5.adb (Analyze_Assignment): Replace the error messages on wrong
8918         null-exclusion value by a warning message
8919
8920         * atree.h, atree.ads, atree.adb: Remove Char_Code field support
8921         completely. Add support for Uint2 field
8922
8923         sem_ch2.adb, exp_ch11.adb, exp_dbug.adb,
8924         exp_prag.adb: Char_Literal_Value field is now a Uint.
8925
8926         * exp_util.adb (Insert_Actions): Replace
8927         N_Formal_Subprogram_Declaration by
8928         N_Formal_{Abstract|Concrete}_Subprogram_Declaration.
8929         Char_Literal_Value field is now a Uint.
8930
8931         * sinfo.ads, sinfo.adb (Corresponding_Formal_Spec): New function
8932         defined for subprogram renaming declarations. When set, the field
8933         indicates the defining entity of a corresponding formal subprogram
8934         when the renaming corresponds to a formal subprogram association in an
8935         instantiation.
8936         (Set_Corresponding_Formal_Spec): New procedure to return
8937         Corresponding_Formal_Spec field.
8938         Minor changes of "=" to "in" in tests of N_Formal_Subprogram_Declaration
8939         (which is now a subtype).
8940         Char_Literal_Value field is now a Uint
8941
8942         * exp_disp.ads, exp_disp.adb (Make_DT): Generate code that moves the
8943         pointer to the base of the dispatch table.
8944         Minor changes to comments.
8945         (Controlling_Type): New function for determining the tagged type
8946         associated with a tagged primitive subprogram.
8947         (Expand_Dispatching_Call): Add support for a controlling actual that is
8948         directly a value of type Ada.Tag rather than a tagged object.
8949
8950         * i-cpp.ads, i-cpp.adb, a-tags.ads, a-tags.adb: Update documentation
8951         describing the new layout.
8952         (Dispatch_Table): The expander computes the actual array size, allocates
8953         the Dispatch_Table record accordingly, and generates code that displaces
8954         the base of the record after the Typeinfo_Ptr component. The access to
8955         these components is done by means of local functions.
8956         (Offset_To_Top): New function.
8957         (Typeinfo_Ptr): New function.
8958         (Get_TSD): Modified to access the new position of the TSD.
8959         (Set_TSD): Modified to save the TSD in its new position.
8960
8961         * par-ch12.adb (P_Formal_Subprogram_Declaration): Add parsing for the
8962         case of formal abstract subprograms. Add check and message for -gnat05.
8963         Update comments.
8964
8965         * sem_ch12.adb: Add with and use for Sem_Disp.
8966         (Analyze_Associations): Minor change from "=" to "in" for use of
8967         N_Formal_Subtype_Declaration (which is now a subtype).
8968         (Set_Analyzed_Formal): Minor changes from "=" to "in" for uses of
8969         N_Formal_Subtype_Declaration (which is now a subtype).
8970         (Analyze_Formal_Subprogram): Add handling for
8971         N_Formal_Abstract_Subprogram, marking the formal as abstract and
8972         dispatching, setting the controlling status of the formal parameters
8973         and result, and issuing an error if there is no controlling type for
8974         the formal subprogram.
8975         (Instantiate_Formal_Subprogram): Rather than setting Corresponding_Spec,
8976         which is an unclean use of that field, we set the new field
8977         Corresponding_Formal_Spec to make the formal subprogram available to
8978         processing in Analyze_Subprogram_Declaration.
8979         (Analyze_Formal_{Discrete, Decimal_Fixed_Point, Fixed_Point,
8980         Floating_Point, Modular_Integer, Signed_Integer}_Type: Make formal type
8981         Constrained, so that it is is does not statically match its anonymous
8982         base type.
8983
8984         * sem_ch6.adb (Analyze_Subprogram_Specification): Include test for
8985         abstract formal subprograms in error check for functions returning
8986         abstract types. Set scope of new designator for
8987         a parameterless subprogram, so that it is available when checking the
8988         body for nested subprograms, before full analysis of said body.
8989         (Analyze_Subprogram_Body): Warn on inlining bodies with nested
8990         subprogram only if inner one comes from source.
8991         (Analyze_Function_Call): If the call is given in object notation, the
8992         analysis of the name rewrites the node and analyzes it with the proper
8993         argument list. After analyzing the name, if the call has been rewritten
8994         and the result type is set, no further analysis is needed.
8995         (Analyze_Return_Type): Subsidiary to Process_Formals: analyze subtype
8996         mark in function specification, in a context where the formals are
8997         visible and hide outer homographs.
8998
8999         * sem_disp.adb (Check_Controlling_Type): Relax the check for same scope
9000         as the tagged type for the cases of abstract formal subprograms and
9001         renamings of those.  Clean up spec comments.
9002         (Check_Dispatching_Context): Add error message to indicate "abstract
9003         procedure", covering the case of a call to a formal abstract procedure
9004         that has statically tagged operands.
9005         (Check_Dispatching_Call): Check for the case of an actual given by
9006         a tag-indeterminate function call whose type is an ancestor of the
9007         containing call's associated tagged type. This situation can occur
9008         for inherited primitives with function defaults. In this case we
9009         use the tagged type's tag directly as the controlling argument for
9010         the calls.
9011         (Expand_Call): Name change on call to Expand_Dispatch_Call.
9012
9013         * sprint.adb (Sprint_Node_Actual): Split
9014         N_Formal_Subprogram_Declaration into two alternatives for the new
9015         cases N_Formal_Abstract_Subprogram_Declaration and
9016         N_Formal_Concrete_Subprogram_Declaration.
9017         Char_Literal_Value field is now a Uint.
9018
9019         * trans.c: Get rid of junk Uint2 reference.
9020         Char_Literal_Value field is now a Uint.
9021         (gnat_to_gnu, case N_Aggregate): Check TYPE_UNCHECKED_UNION_P.
9022         (gigi): Correct third arg to gimplify_body.
9023
9024         * ada-tree.h: (TYPE_UNCHECKED_UNION_P): New flag.
9025         (TYPE_LANG_FLAG_0): Check for record or union.
9026
9027         * treepr.adb: Char_Literal_Value field is now a Uint
9028
9029         * uintp.h, uintp.ads, uintp.adb: Add new routines UI_To_CC and
9030         UI_From_CC.
9031
9032         * widechar.ads, widechar.adb (Is_UTF_32_Non_Graphic): New function
9033         Add full UTF-32 support
9034         Char_Code is now 32 bits
9035
9036         * sinput.ads, sinput.adb (Skip_Line_Terminators): Extend to deal with
9037         wide character UTF_32 line terminators.
9038         Initialize Main_Source_File to avoid error when no main
9039         source is loaded.
9040
9041         * errout.adb (Finalize): Do not check Num_SRef_Pragmas
9042         (Main_Source_File) when no main source has been loaded, to avoid
9043         potential crash.
9044
9045 2005-02-09  Robert Dewar  <dewar@adacore.com>
9046
9047         * a-strunb.ads, a-strunb.adb: Add missing pragma Ada_05 statements
9048         Fix name of Set routine
9049
9050         * a-strfix.ads, a-strfix.adb: Add new index functions from AI-301 to
9051         fixed packages.
9052
9053         * a-stwise.ads, a-stwise.adb, a-stwifi.ads, a-stwifi.adb,
9054         a-strsea.ads, a-strsea.adb: Add new index functions from AI-301 to
9055         fixed packages
9056
9057         * a-witeio.ads, a-witeio.adb, a-textio.ads, a-textio.adb: New function
9058         forms of Get_Line subprograms for AI-301.
9059
9060         * a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads,
9061         a-wtedit.adb, a-wtedit.adb, a-wtedit.ads, a-wttest.adb,
9062         a-wttest.ads, a-strmap.ads, a-strmap.adb, a-stwima.adb,
9063         a-stwima.ads: Minor reformatting.
9064
9065 2005-02-09  Doug Rupp  <rupp@adacore.com>
9066             Thomas Quinot  <quinot@adacore.com>
9067
9068         * adaint.c, adaint.h
9069         [VMS] (to_ptr32): New function.
9070         (MAYBE_TO_PTR32): New macro.
9071         (__gnat_portable_spawn,__gnat_portable_no_block_spawn): Adjust argv
9072         for pointer size.
9073         [VMS] (descriptor_s, ile_s): Use __char_ptr32 for adr field.
9074         [VMS] (#define fork()): Remove since unneccessary.
9075         (__gnat_set_close_on_exec): New routine to support
9076         GNAT.OS_Lib.Set_Close_On_Exec.
9077
9078         * g-expect.adb (Set_Up_Communications): Mark the pipe descriptors for
9079         the parent side as close-on-exec so that they are not inherited by the
9080         child.
9081
9082         * g-os_lib.ads, g-os_lib.adb (Set_Close_On_Exec): New subprogram to
9083         set or clear the FD_CLOEXEC flag on a file descriptor.
9084
9085 2005-02-09  Eric Botcazou  <ebotcazou@adacore.com>
9086             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9087
9088         Fix for c330001 - PR ada/19386
9089
9090         * decl.c:
9091         (gnat_to_gnu_field): Do not necessarily invoke make_packable_type
9092         on the field if Pragma Component_Alignment (Storage_Unit).
9093         (gnat_to_gnu_entity, case object): Do not treat a renaming that has
9094         side-effects as if it were a constant; also make SAVE_EXPR to protect
9095         side-effects.
9096         (gnat_to_gnu_entity, case E_Record_Subtype): If have _Parent, make a
9097         UNION_TYPE.
9098         (make_dummy_type): Set TYPE_UNCHECKED_UNION_P.
9099         (components_to_record): Test it.
9100         Fix improper usage of REFERENCE_CLASS_P.
9101
9102         * utils2.c (build_binary_op, case MODIFY_EXPRP): Treat UNION_TYPE as
9103         RECORD_TYPE.
9104
9105         * utils2.c: Minor reformatting.
9106
9107         * utils.c (convert, case UNION_TYPE): Check TYPE_UNCHECKED_UNION;
9108         handle other cases like RECORD_TYPE.
9109
9110         * utils.c (gnat_pushdecl): Set TREE_NO_WARNING.
9111
9112 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
9113
9114         * exp_aggr.adb (Gen_Assign): If the expression is an aggregate for a
9115         component of an array of arrays in an assignment context, and the
9116         aggregate has component associations that require sliding on
9117         assignment, force reanalysis of the aggregate to generate a temporary
9118         before the assignment.
9119         (Must_Slide): Make global to the package, for use in Gen_Assign.
9120
9121 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
9122
9123         * exp_ch4.adb (Expand_Composite_Equality): If a component is an
9124         unchecked union with no inferable discriminants, return a
9125         Raise_Program_Error node, rather than inserting it at the point the
9126         type is frozen.
9127         (Expand_Record_Equality, Component_Equality): Handle properly the case
9128         where some subcomponent is an unchecked union whose generated equality
9129         code raises program error.
9130
9131 2005-02-09  Doug Rupp  <rupp@adacore.com>
9132
9133         * gnatbl.c: [VMS] (_POSIX_EXIT): Define.
9134         [VMS] (#define exit hack): Remove.
9135
9136 2005-02-09  Pascal Obry  <obry@adacore.com>
9137             Arnaud Charlet <charlet@adacore.com>
9138
9139         * init.c (__gnat_initialize): Add a new parameter eh which contains the
9140         address of the exception registration. The Win32 version of this
9141         routine calls __gnat_install_SEH_handler() to initialize the SEH
9142         (Structured Exception Handling) handler.
9143         (__gnat_error_handler) [Win32]: Removed. Not needed as we use
9144         SEH (Structured Exception Handling) now.
9145         (__gnat_install_handler) [Win32]: Nothing to do now as we use SEH.
9146         (__gnat_initialize for ppc-vxworks): Adjust comments and the
9147         preprocessor condition protecting the call to the extra eh setup
9148         subprogram, which is only available for the ppc target.
9149         (__gnat_clear_exception_count): replaced reference to
9150         variable taskIdCurrent by call to taskIdSelf(), cleaner.
9151
9152         * seh_init.c: New file.
9153
9154         * Make-lang.in: (GNAT_ADA_OBJS): Add seh_init.o.
9155         (GNATBIND_OBJS): Idem.
9156
9157         * misc.c (gnat_parse_file): Update call to __gnat_initialize. This
9158         routine takes a new parameter (a pointer to the exception registration
9159         for the SEH (Structured Exception Handling) support.
9160
9161         * raise.h: (__gnat_install_SEH_handler): New prototype.
9162         Update copyright notice.
9163
9164         * s-tassta.adb (Task_Wrapper): Declare the exception registration
9165         record and initialize it by calling __gnat_install_SEH_handler.
9166
9167 2005-02-09  Vincent Celier  <celier@adacore.com>
9168
9169         * make.adb (Gnatmake): Do not fail when the main project has no object
9170         directory.
9171
9172 2005-02-09  Doug Rupp  <rupp@adacore.com>
9173
9174         * Makefile.in [VMS] (LN,LN_S): Define as cp -p
9175         Rename s-asthan-vms.adb to s-asthan-vms-alpha.adb.
9176         [VMS]: Add translations for g-enblsp.adb.
9177
9178         * s-asthan-vms.adb: Removed.
9179         * s-asthan-vms-alpha.adb: Added.
9180
9181 2005-02-09  Pascal Obry  <obry@adacore.com>
9182
9183         * Makefile.in (LIBGNAT_SRCS): Add seh_init.c.
9184         (LIBGNAT_OBJS): Add seh_init.o.
9185
9186 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
9187
9188         PR ada/16592
9189
9190         * Makefile.in: Link all gnat tools with -static-libgcc, since
9191         -shared-libgcc is now used by default on some systems (e.g. linux with
9192         recent binutils).
9193         Remove references to Makefile.prolog/generic, no longer used.
9194
9195 2005-02-09  Vincent Celier  <celier@adacore.com>
9196
9197         * prj-makr.adb (Process_Directory): Put file name in canonical case
9198         before matching against the patterns.
9199         If gnatname has been invoked as <prefix>-gnatname
9200         then invoke the compiler as <prefix>-gcc, not just "gcc".
9201
9202 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
9203
9204         * sem_ch4.adb (Analyze_Selected_Component): Create Actual_Subtype even
9205         with expansion disabled. The actual subtype is needed among other
9206         places when the selected component appears in the context of a loop
9207         bound, and denotes a packed array.
9208         (Operator_Check): Always use the first subtype in the
9209         error message, to avoid the appearance of internal base types.
9210         (Transform_Object_Operation): Copy each actual in full
9211         to the parameter associations of the constructed call, rather than
9212         using the shallow copy mechanism of New_Copy_List. This ensures that
9213         the chaining of named associations is done properly.
9214         (Complete_Object_Operation): Rewrite node, rather than
9215         replacing it, so that we can trace back to the original selected
9216         component.
9217
9218         * sem_elab.adb (Set_Elaboration_Constraint): For initialization calls,
9219         and calls that use object notation, if the called function is not
9220         declared  in a withed unit, place the elaboration constraint on the
9221         unit in the context that makes the function accessible.
9222         (Check_Elab_Subtype_Declaration): Check whether a subtype declaration
9223         imposes an elaboration constraint between two packages.
9224
9225 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
9226
9227         * sem_ch7.adb (Uninstall_Declarations): Exchange full and private
9228         views of a private type after handling its private dependents, to
9229         maintain proper stack discipline between entry and exit from the
9230         package.
9231
9232 2005-02-09  Cyrille Comar  <comar@adacore.com>
9233
9234         * s-finimp.adb: (Finalize_List): Optimize in the no-abort case.
9235         Minor reformatting.
9236
9237 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
9238
9239         * s-tporft.adb (Register_Foreign_Thread): Initialize Task_Image[_Len]
9240         fields for foreign threads.
9241
9242 2005-02-09  Doug Rupp  <rupp@adacore.com>
9243
9244         * s-vaflop.adb: Add pragma Warnings (Off) to eliminate infinite
9245         recursion warnings when compiled with -gnatdm.
9246
9247 2005-02-09  Robert Dewar  <dewar@adacore.com>
9248
9249         * usage.adb: Add line for switch -gnat05 (allow Ada 2005 extensions)
9250         Slight fix to documentation of -gnaty with no parameters
9251
9252         * xr_tabls.ads: Add ??? comment for missing overall comment
9253
9254         * xsinfo.adb: Make default file name be sinfo.h, since this is what
9255         we now use by default.
9256
9257         * xsnames.adb: Adjust end of file test to look for five space followed
9258         by '#' instead of six spaces. The format of xsnames.adb was modified
9259         in the last update.
9260
9261         * a-numeri.ads: Add reference to AI-388 for greek letter pi
9262         identifier.
9263
9264         * clean.adb: Minor reformatting.
9265
9266         * gnat1drv.adb, gnatfind.adb, gnatlink.adb, gnatmem.adb,
9267         gnatname.adb: Minor reformatting
9268         Add 2005 to copyright output when utility is run
9269
9270         * csets.adb: Eliminate obsolete comment
9271
9272         * debug.adb, g-socket.ads, i-cobol.adb: Minor reformatting throughout
9273         Update comments.
9274
9275         * sem_eval.ads (Eval_Integer_Literal): Do not inline this, not useful.
9276
9277 2005-02-09  Sergey Rybin  <rybin@adacore.com>
9278
9279         * gnat_ugn.texi: Add to the gnatpp section the paragraph describing
9280         the difference between compact and incompact layout and add the record
9281         representation clause to the example illustrating different layouts.
9282         Add the description of '-A5' gnatpp option ("align 'AT' keywords in
9283         component clauses").
9284
9285 2005-02-09  Florian Villoing  <villoing@adacore.com>
9286
9287         * gnat_ugn.texi: Fix typos.
9288         Use @command to display 'gcc', 'gnatbind', etc. insted of @code or
9289         @file.
9290         Make proper use of @ref, @xref and @pxref to avoid duplication of "see"
9291         in the generated documentation.
9292
9293 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
9294
9295         * gnat_ugn.texi: Remove all mentions of FSU threads, which are no
9296         longer supported.
9297         Update linker wrapper when linking with non GNU C++.
9298
9299 2005-02-09  Pascal Obry  <obry@adacore.com>
9300
9301         * gnat_ugn.texi:
9302         Document the procedure to debug the DllMain routine on Windows.
9303         Add note about -funwind-tables and mixed Ada and C/C++ programming in
9304         ZCX mode.
9305         Document new BIND qualifer /RETURN_CODES=VMS.
9306
9307 2005-02-09  Ben Brosgol  <brosgol@adacore.com>
9308
9309         * gnat_ugn.texi: Wordsmithing of "GNAT and Libraries" chapter
9310         Edited gnatmetric chapter
9311
9312 2005-02-09  Robert Dewar  <dewar@adacore.com>
9313
9314         * gnat_rm.texi:
9315         Changes to document new wide wide character support
9316         For AI-285
9317         Update documentation on Normalize_Scalars and Initialize_Scalars
9318
9319 2005-02-09  Pascal Obry  <obry@adacore.com>
9320
9321         * s-taprop-mingw.adb, s-soflin.ads: Minor reformatting.
9322
9323 2005-02-09  Jose Ruiz  <ruiz@adacore.com>
9324
9325         * s-osinte-vxworks.ads (taskPriorityGet): Add this function (imported
9326         from the VxWorks kernel) that is needed for getting the active
9327         priority of the different tasks.
9328
9329         * s-atacco.ads, s-atacco.adb (Nothing): Remove this dummy procedure.
9330         Use a pragma Elaborate_Body in the spec file instead.
9331         Noticed by code reading.
9332
9333 2005-02-09  Thomas Quinot  <quinot@adacore.com>
9334
9335         * exp_util.ads: Minor correction in comment.
9336
9337 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
9338
9339         * s-taprop.ads (Initialize): Update comments. Remove pragma Inline,
9340         since this procedure is now too complex to be worth inlining.
9341
9342 2005-02-09  Richard Henderson  <rth@redhat.com>
9343
9344         * utils.c (gnat_define_builtin): Remove.
9345         (gnat_install_builtins): Use build_common_builtin_nodes.
9346
9347 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
9348
9349         * a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb, a-crbtgk.ads,
9350         a-crbtgk.adb, a-crbltr.ads, a-coprnu.ads, a-coprnu.adb,
9351         a-coorse.ads, a-coorse.adb, a-convec.ads, a-convec.adb,
9352         a-contai.ads, a-coinve.ads, a-coinve.adb, a-cohata.ads,
9353         a-cohama.ads, a-cohama.adb, a-ciorse.ads, a-ciorse.adb,
9354         a-cihama.ads, a-cihama.adb, a-cidlli.ads, a-cidlli.adb,
9355         a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads, a-cgcaso.adb,
9356         a-cgarso.ads, a-cgarso.adb, a-cdlili.ads, a-cdlili.adb,
9357         a-cgaaso.adb, a-coormu.adb, a-ciormu.adb, a-cihase.adb,
9358         a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads,
9359         a-coorma.ads, a-swunha.ads, a-stunha.ads, a-ciormu.ads,
9360         a-coormu.ads, a-rbtgso.ads, a-swunha.adb, a-stunha.adb,
9361         a-cgaaso.ads, a-ciorma.adb, a-coorma.adb, a-secain.adb,
9362         a-secain.ads, a-slcain.ads, a-slcain.adb, a-shcain.ads,
9363         a-shcain.adb, a-chtgke.ads, a-chtgke.adb, a-stwiha.ads,
9364         a-stwiha.adb, a-strhas.ads, a-strhas.adb, a-chzla1.ads,
9365         a-chzla9.ads, a-lfztio.ads, a-liztio.ads, a-llfzti.ads,
9366         a-llizti.ads, a-sfztio.ads, a-siztio.ads, a-ssizti.ads,
9367         a-stzbou.adb, a-stzbou.ads, a-stzfix.adb, a-stzfix.ads,
9368         a-stzhas.adb, a-stzhas.ads, a-stzmap.adb, a-stzmap.ads,
9369         a-stzsea.adb, a-stzsea.ads, a-stzsup.adb, a-stzsup.ads,
9370         a-stzunb.adb, a-stzunb.ads, a-swunau.adb, a-swunau.ads,
9371         a-szmzco.ads, a-szunau.adb, a-szunau.ads, a-szunha.adb,
9372         a-szunha.ads, a-szuzti.adb, a-szuzti.ads, a-tiunio.ads,
9373         a-wwunio.ads, a-ztcoau.adb, a-ztcoau.ads, a-ztcoio.adb,
9374         a-ztcoio.ads, a-ztcstr.adb, a-ztcstr.ads, a-ztdeau.adb,
9375         a-ztdeau.ads, a-ztdeio.adb, a-ztdeio.ads, a-ztedit.adb,
9376         a-ztedit.ads, a-ztenau.adb, a-ztenau.ads, a-ztenio.adb,
9377         a-ztenio.ads, a-ztexio.adb, a-ztexio.ads, a-ztfiio.adb,
9378         a-ztfiio.ads, a-ztflau.adb, a-ztflau.ads, a-ztflio.adb,
9379         a-ztflio.ads, a-ztgeau.adb, a-ztgeau.ads, a-ztinau.adb,
9380         a-ztinau.ads, a-ztinio.adb, a-ztinio.ads, a-ztmoau.adb,
9381         a-ztmoau.ads, a-ztmoio.adb, a-ztmoio.ads, a-zttest.adb,
9382         a-zttest.ads, a-zzunio.ads: New files. Part of new Ada 2005
9383         library.
9384
9385 2005-01-27  Laurent GUERBY <laurent@guerby.net>
9386
9387         * Makefile.in: Fix a-intnam.ads from previous commit,
9388         add 2005 to copyright.
9389         * a-intman-rtems.ads: Renamed to...
9390         * a-intnam-rtems.ads:
9391
9392 2005-01-27  Laurent GUERBY <laurent@guerby.net>
9393
9394         * Makefile.in: Rename GNAT RTEMS specific files.
9395         * 5rtpopsp.adb, 4rintnam.ads, 5rosinte.adb,
9396         5rosinte.ads, 5rparame.adb: Replaced by files below.
9397         * s-tpopsp-rtems.adb, a-intman-rtems.ads, s-osinte-rtems.adb,
9398         s-osinte-rtems.ads, s-parame-rtems.adb: Replace files above.
9399
9400 2005-01-27  Joel Sherrill <joel.sherrill@oarcorp.com>
9401             Laurent GUERBY <laurent@guerby.net>
9402
9403         PR ada/19488
9404         * 5rosinte.ads: Add No_Key constant.
9405         * 5rtpopsp.adb: Initialize ATCB_Key with No_Key and fix style.
9406         * gsocket.h: Do not include <sys/socket.h> with RTEMS either.
9407
9408 2005-01-26  Laurent GUERBY <laurent@guerby.net>
9409
9410         PR ada/19414
9411         * i-cobol.adb (Valid_Numeric): Handle zero length case.
9412
9413 2005-01-20  Richard Henderson  <rth@redhat.com>
9414
9415         * Makefile.in (alpha-linux, LIBGNAT_TARGET_PAIRS): Use
9416         a-intnam-linux.ads and system-linux-alpha.ads.
9417         * a-intnam-linux-alpha.ads: Remove file.
9418         * s-osinte-linux-alpha.ads (SIGUNUSED, SIGSTKFLT, SIGLOST): New.
9419         * system-linux-alpha.ads: New file.
9420
9421 2005-01-18  Jakub Jelinek  <jakub@redhat.com>
9422
9423         PR ada/13470
9424         * a-stunau.adb (Get_String): Don't return U.Reference, but Ret that is
9425         set to the new string.
9426
9427 2005-01-18  Toon Moene  <toon@moene.indiv.nluug.nl>
9428
9429         * system-linux-ppc.ads: Set ZCX_By_Default and GCC_ZCX_Support
9430         to True.
9431
9432 2005-01-18  Richard Henderson  <rth@redhat.com>
9433
9434         * Makefile.in (LIBGNAT_TARGET_PAIRS, TOOLS_TARGET_PAIRS, MISCLIB,
9435         THREADSLIB, GNATLIB_SHARED, PREFIX_OBJS, LIBRARY_VERSION): Specialize
9436         for alpha-linux.
9437         * s-osinte-linux-alpha.ads, a-intnam-linux-alpha.ads: New files.
9438
9439 2005-01-14  Andrew Pinski  <pinskia@physics.uc.edu>
9440
9441         * system-darwin-ppc.ads (ZCX_By_Default): Change to True.
9442         (GCC_ZCX_Support): Likewise.
9443
9444 2005-01-11  Bastian Blank  <waldi@debian.org>
9445
9446         * system-linux-s390.ads: Define Preallocated_Stacks.
9447         * system-linux-s390x.ads: Likewise.
9448
9449 2005-01-04  Arnaud Charlet  <charlet@adacore.com>
9450
9451         * gnat_ugn.texi: Fix texi errors with null variables.
9452
9453 2005-01-03  Thomas Quinot  <quinot@adacore.com>
9454
9455         * gen-soccon.c: New utility program to generate g-soccon.ads
9456         automatically.
9457
9458         * socket.c, gsocket.h: Split inclusion of system header files into a
9459         gsocket.h file separated from socket.c, to allow reuse in gen-soccon.c.
9460
9461         * g-soccon.ads, g-soccon-unixware.ads, g-soccon-tru64.ads,
9462         g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
9463         g-soccon-interix.ads, g-soccon-solaris.ads, g-soccon-mingw.ads,
9464         g-soccon-vxworks.ads, g-soccon-freebsd.ads: Note that these files
9465         should not be edited by hand anymore, but should be regenerated using
9466         gen-soccon.
9467
9468 2005-01-03  Robert Dewar  <dewar@adacore.com>
9469             Ed Schonberg  <schonberg@adacore.com>
9470             Vincent Celier  <celier@adacore.com>
9471
9472         * s-atacco.ads, a-direio.adb: Protect use of 'Constrained by warnings
9473         on/off, since this is an obsolescent feature, for which we now generate
9474         a warning.
9475
9476         * sem_attr.adb (Analyze_Attribute, case Constrained): Issue warning if
9477         warning mode is set and obsolescent usage of this attribute occurs.
9478         (Resolve_Access, case 'Access): Note that GNAT uses the context type to
9479         disambiguate overloaded prefixes, in accordance with AI-235. GNAT code
9480         predates, and partly motivates, the adoption of the AI.
9481         Implement new Ada 2005 attribute Mod
9482
9483         * exp_attr.adb (Expand_N_Attribute_Reference): Implement Ada 2005
9484         attribute Mod.
9485
9486         * par-ch4.adb (P_Name): In Ada 2005 mode, recognize new attribute Mod
9487
9488         * snames.h, snames.ads, snames.adb: Add entry for No_Dependence for
9489         pragma restrictions.
9490         New entry for Ada 2005 attribute Mod.
9491
9492         * par-prag.adb:
9493         Add recognition of new pragma Restrictions No_Dependence
9494         Recognize restriction No_Obsolescent_Features at parse time
9495
9496         * bcheck.adb: Add circuitry for checking for consistency of
9497         No_Dependence restrictions.
9498
9499         * lib-writ.ads, lib-writ.adb: Output new R lines for No_Dependence
9500         restrictions.
9501
9502         * restrict.ads, restrict.adb: Add subprograms to deal with
9503         No_Dependence restrictions.
9504
9505         * rtsfind.adb: Check that implicit with's do not violate No_Dependence
9506         restrictions.
9507
9508         * sem_ch3.adb, sem_ch11.adb, sem_ch13.adb, lib-xref.adb,
9509         sem_attr.adb: Add check for new restriction No_Obsolescent_Features
9510
9511         * scn.ads, prj-err.ads, prj-err.adb, ali-util.adb, gprep.adb: Add new
9512         dummy parameter to scng instantiation.
9513         Needed for new restriction No_Obsolescent_Features
9514
9515         * scn.adb: (Obsolescent_Check): New procedure
9516         Needed for new restriction No_Obsolescent_Features
9517
9518         * scng.ads, scng.adb: Always allow wide characters in Ada 2005 mode, as
9519         specified by AI-285, needed for implementation of AI-388 (adding greek
9520         pi to Ada.Numerics).
9521         Add new generic formal to scng, needed for new restriction
9522         No_Obsolescent_Features.
9523
9524         * s-rident.ads: Add new restriction No_Obsolescent_Features.
9525
9526         * ali.ads, ali.adb: Adjustments for reading new No_Dependence
9527         restrictions lines.
9528         (Scan_ALI): When finding an unexpected character on an R line, raise
9529         exception Bad_R_Line, instead of calling Fatal_Error, so that, when
9530         Ignore_Errors is True, default restrictions are set and scanning of the
9531         ALI file continues with the next line. Also, when Bad_R_Line is raised
9532         and Ignore_Errors is True, skip to the end of le line.
9533
9534         * sem_ch10.adb: Check that explicit with's do not violate
9535         No_Dependence restrictions.
9536         (Install_Withed_Unit): Add code to implement AI-377 and diagnose
9537         illegal context clauses containing child units of instance.
9538
9539         * sem_prag.adb: Processing and checking for new No_Dependence
9540         restrictions.
9541         (Analyze_Pragma, case Psect_Object): Call Check_Arg_Is_External_Name to
9542         analyze and check the External argument.
9543
9544         * a-numeri.ads: Add greek letter pi as alternative spelling of Pi
9545
9546 2005-01-03  Robert Dewar  <dewar@adacore.com>
9547
9548         * atree.adb: Add a fifth component to entities
9549         This allows us to add 32 flags and four new fields
9550
9551         * atree.ads: Add a fifth component to entities
9552         This allows us to add 32 flags and four new fields
9553
9554         * einfo.ads, einfo.adb: Document new fields and new flags now available
9555         Add routines for printing new fields
9556
9557         * treepr.adb: Call routines to print out additional fields if present
9558
9559 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
9560
9561         * bld.ads, bld.adb, bld-io.ads, bld-io.adb, gprcmd.adb,
9562         gpr2make.ads, gpr2make.adb: Remove gpr2make, replaced by gprmake.
9563
9564         * Makefile.in: Add support to build shared Ada libraries on solaris x86
9565         Remove gpr2make, replaced by gprmake.
9566         Remove references to gnatmem and libaddr2line.
9567         Add indepsw.adb<indepsw-linux.adb to TOOLS_TARGET_PAIRS for IA64 linux.
9568         (gnatlib-shared-darwin): Add "-fno-common" to GNATLIBCFLAGS.
9569         Add support for specialized version of Ada.Numerics.Aux for Darwin: use
9570         a-numaux-darwin.ads and a-numaux-darwin.adb
9571         Enable mlib-tgt-lynxos.adb on lynxos.
9572
9573         * Make-lang.in: Remove rules for gpr2make.
9574         When generating sdefault.adb, do not call Relocate_Path
9575         on S3 for function Target_Name, as it is not a path.
9576         Remove references to gnatmem and libaddr2line.
9577
9578         * a-numaux-darwin.ads, a-numaux-darwin.adb, g-soccon-darwin.ads: New
9579         files.
9580
9581 2005-01-03  Samuel Tardieu  <tardieu@adacore.com>
9582
9583         * checks.adb (Apply_Alignment_Check): Generate a warning if an object
9584         address is incompatible with its base type alignment constraints when
9585         this can be decided statically.
9586
9587 2005-01-03  Olivier Hainque  <hainque@adacore.com>
9588
9589         * decl.c (compatible_signatures_p): New function. The intended purpose
9590         is to check if two function signatures for a call-site and a callee are
9591         compatible enough for the call to be valid. The underlying purpose is
9592         to check if a call to a mapped builtin is using the right interface.
9593         The current code actually does not check antyhing - this a placeholder
9594         for future refinements.
9595         (gnat_to_gnu_entity) <E_Subprogram_Call>: Add preliminary bits to handle
9596         builtin calls for convention Intrinsic.
9597
9598         * gigi.h (builtin_decl_for): Declare (new function).
9599
9600         * utils.c (gnat_install_builtins): Install the target specific builtins.
9601         (builtin_decl_for): New function, provide a dummy body for now.
9602
9603 2005-01-03  Geert Bosch  <bosch@adacore.com>
9604
9605         * eval_fat.adb: (Eps_Model,Eps_Denorm): Remove, no longer used.
9606         (Succ): Re-implement using Scaling, Exponent and Ceiling attributes.
9607         (Pred): Implement in terms of Succ.
9608
9609         * trans.c (convert_with_check): Reimplement conversion of float to
9610         integer.
9611
9612 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
9613             Vincent Celier  <celier@adacore.com>
9614
9615         * exp_aggr.adb (Packed_Array_Aggregate_Handled): The values of the
9616         bounds can be negative, and must be declared Int, not Nat.
9617
9618         * sem_elim.adb (Line_Num_Match): Correct wrong code when index in an
9619         array is checked after using the index in the array.
9620
9621         * makegpr.adb (Add_Switches): Check if there is a package for the
9622         processor. If there is no package, do not look for switches.
9623
9624 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
9625
9626         * exp_ch3.adb (Stream_Operations_OK): Predicate to determine when the
9627         generation of predefined stream operations (specs and bodies) should
9628         proceed. Under various restrictions these subprograms must not be
9629         generated.
9630
9631 2005-01-03  Thomas Quinot  <quinot@adacore.com>
9632
9633         * exp_dist.adb:
9634         Declare subprogram index in Build_RPC_Receiver_Body, to reduce the
9635         amount of PCS-specific code in RACW stubs generation.
9636         (Copy_Specification): Set Etype on copied formal parameter entities, as
9637         this information is needed for PolyORB stubs generation.
9638         (PolyORB_Support.Build_Subprogram_Receiving_Stubs): Remove unused
9639         variable Dynamic_Async.
9640         (Build_Subprogram_Receiving_Stubs): Make PCS-specific
9641         (Build_RPC_Receiver_Specification): Make generic again, as recent
9642         changes have allowed RPC receivers to have the same profile for both
9643         variants of the PCS.
9644         Reorganise RPC receiver generation to reduce differences between the
9645         structure of GARLIC and PolyORB RPC receivers.
9646         (Add_Receiving_Stubs_To_Declarations): Make this subprogram
9647         PCS-specific.
9648         Simplify elaboration code for RCI packages.
9649
9650         * s-parint.ads, s-parint.adb, rtsfind.ads: Reorganise RPC receiver
9651         generation to reduce differences between the structure of GARLIC and
9652         PolyORB RPC receivers.
9653
9654         * s-stratt.adb: Fix typo in comment.
9655
9656 2005-01-03  Thomas Quinot  <quinot@adacore.com>
9657
9658         * exp_ch7.ads (Make_Final_Call): Rewrite comment (was incorrectly
9659         copied from Make_Init_Call).
9660
9661         * exp_strm.adb (Build_Mutable_Record_Read_Procedure): Do component
9662         reads and assignments on a temporary variable declared with appropriate
9663         discriminants.
9664
9665 2005-01-03  Robert Dewar  <dewar@adacore.com>
9666
9667         * i-c.adb (To_C): Raise CE if string is null and Append_Null
9668
9669 2005-01-03  Robert Dewar  <dewar@adacore.com>
9670
9671         * i-cstrin.adb (Update): Do not append a null in form called with a
9672         String. This avoids unintended behavior.
9673
9674 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
9675
9676         PR ada/17527
9677         * init.c: Fix warnings on Free BSD section.
9678
9679 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
9680
9681         PR ada/16949
9682         * sinfo.ads: Fix obsolete reference to xsinfo.spt (replaced by
9683         xsinfo.adb).
9684
9685 2005-01-03  Vincent Celier  <celier@adacore.com>
9686
9687         * make.adb (Collect_Arguments_And_Compile): Do not attempt to build
9688         libraries when Unique_Compile is True (-u switch).
9689         (Gnatmake): ditto.
9690
9691 2005-01-03  Robert Dewar  <dewar@adacore.com>
9692
9693         * namet.adb (Get_Decoded_Name_With_Brackets): Fix case of not allowing
9694         upper case letter or underscore after W, as allowed by spec.
9695
9696 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
9697
9698         * s-osinte-darwin.ads, s-osinte-darwin.adb: Clean up
9699         darwin port by using proper type definitions from header files.
9700         Use SIGTERM instead of SIGABRT for SIGADAABORT.
9701
9702 2005-01-03  Robert Dewar  <dewar@adacore.com>
9703
9704         * par.adb: Enhance error message handling for configuration file
9705         pragmas.
9706
9707 2005-01-03  Robert Dewar  <dewar@adacore.com>
9708
9709         * s-arit64.adb (Double_Divide): Put back changes that got accidentally
9710         removed during the previous update (test properly for case of dividing
9711         largest negative number by -1, which generates overflow).
9712
9713 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
9714             Sergey Rybin  <rybin@adacore.com>
9715
9716         * sem_ch12.adb (Analyze_Package_Instantiation): Create a separate node
9717         to use as the defining identifier for a formal package.
9718         (Remove_Parent): If the instance takes place within (an instance of)
9719         a sibling, preserve private declarations of common parent.
9720
9721 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
9722
9723         * sem_ch4.adb (Has_Fixed_Op): New predicate in Check_Arithmetic_Pair,
9724         to determine whether one of the operands is a fixed-point type for
9725         which a user-defined multiplication or division operation might be
9726         defined.
9727
9728         * sem_res.adb (Valid_Conversion): The legality rules for conversions
9729         of access types are symmetric in Ada 2005: either designated type can
9730         be unconstrained.
9731
9732 2005-01-03  Vincent Celier  <celier@adacore.com>
9733
9734         * s-fileio.adb (Temp_File_Record): Change length of string component
9735         Name from L_tmpnam + 1 to max_path_len + 1.
9736
9737 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
9738
9739         * s-tasini.ads, s-tasini.adb (Undefer_Abortion): Handle case of
9740         Self_Id.Deferral_Level = 0.
9741         (Do_Pending_Action): Move this function to the spec.
9742
9743         * s-tasren.adb (Selective_Wait [Terminate_Selected]): Call
9744         Do_Pending_Action explicitely when needed, in case we're using
9745         No_Abort restrictions.
9746
9747         * s-tassta.adb (Create_Task): If Abort is not allowed, reset the
9748         deferral level since it will not get changed by the generated code.
9749         Keeping a default value of 1 would prevent some operations (e.g.
9750         select or delay) to proceed successfully.
9751
9752 2005-01-03  Ben Brosgol  <brosgol@adacore.com>
9753             Robert Dewar  <dewar@adacore.com>
9754             Cyrille Comar  <comar@adacore.com>
9755
9756         * ug_words, gnat_ugn.texi: Added alpha-ivms transitioning section to
9757         porting guide chapter (vms version).
9758         Revised doc title (removed "for native platforms") and subtitle.
9759         Add discussion on warning flag for obsolescent features. First we
9760         note that it applies to obsolete GNAT features, which was previously
9761         omitted. Second we contrast the behavior with that of the new
9762         Ada 2005 AI-368 restriction No_Obsolescent_Features.
9763         Preliminary rewriting of GNAT & libraries chapter in order to take
9764         into account default project locations & new project manager
9765         capabilities.
9766
9767 2005-01-03  Robert Dewar  <dewar@adacore.com>
9768
9769         * cstand.adb (Create_Operators): Clean up format and documentation of
9770         unary and binary operator result tables. No change in code, just
9771         reformatting and addition of comments.
9772
9773         * errout.ads, gnatfind.adb, s-maccod.ads, sem.adb,
9774         sem_ch2.adb: Minor reformatting
9775
9776         * atree.ads, elists.ads, lib.ads, namet.ads, nlists.ads, repinfo.ads,
9777         sinput.ads, stringt.ads, uintp.ads, urealp.ads: Minor clarification to
9778         comments for Tree_Read and Tree_Write.
9779
9780 2005-01-03  Pascal Obry  <obry@adacore.com>
9781
9782         * exp_attr.ads: Minor reformatting.
9783
9784 2005-01-03  Romain Berrendonner  <berrendo@adacore.com>
9785
9786         * comperr.adb (Compiler_Abort): Add specialized message for GAP
9787         versions.
9788
9789 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
9790
9791         * exp_pakd.adb (Create_Packed_Array_Type): Add a guard to check
9792         whether the ancestor type is private, as may be the case with nested
9793         instantiations.
9794
9795 2004-12-30  Sohail Somani <sohail@sohailsomani.com>
9796
9797         PR ada/19128
9798         * trans.c (gnat_to_gnu): Fix typo: Use correct return variable.
9799
9800 2004-12-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
9801
9802         * trans.c (Attribute_to_gnu): Adjust call to get_inner_reference.
9803         * utils2.c (build_unary_op): Likewise.
9804
9805 2004-12-22  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9806
9807         * trans.c (mark_visited): Set TYPE_SIZES_GIMPLIFIED.
9808
9809 2004-12-19  Richard Henderson  <rth@redhat.com>
9810
9811         * trans.c (gigi): Update gimplify_body call.
9812
9813 2004-12-09  Nathan Sidwell  <nathan@codesourcery.com>
9814
9815         * decl.c (gnat_substitute_in_type): Remove SET_TYPE case.
9816
9817 2004-12-07  Ed Falis  <falis@adacore.com>
9818
9819         * s-intman-vxworks.adb (Notify_Exception): removed useless check for
9820         current task being suspended.
9821
9822         * init.c (__gnat_clear_exception): added to reset VxWorks exception
9823         count.
9824         (__gnat_map_signal): removed test for current task being suspended.
9825
9826 2004-12-07  Gary Dismukes  <dismukes@adacore.com>
9827
9828         * a-exexpr.adb (Others_Value, All_Others_Value): Change initial values
9829         from 16#BEEF# to 16#7FFF# to avoid exceeding Integer'Last on 16-bit
9830         targets (such as AAMP).
9831
9832 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
9833
9834         * atree.adb (Visit_Itype): Create a new name for the generated itype,
9835         because the back-end may otherwise treat it as a redefinition of the
9836         old symbol.
9837
9838 2004-12-07  Eric Botcazou  <ebotcazou@adacore.com>
9839
9840         * back_end.adb (Scan_Back_End_Switches): Accept --param.
9841
9842         * lang-specs.h: Accept --param.
9843
9844 2004-12-07  Vincent Celier  <celier@adacore.com>
9845
9846         * make.adb (Check_Mains, Switches_Of): Adapt to name changes in
9847         package Prj (Current_Spec_Suffix => Ada_Spec_Suffix,
9848         Current_Body_Suffix => Ada_Body_Suffix).
9849         Take into account Externally_Built attribute.
9850
9851         * clean.adb (In_Extension_Chain): Always return False when one of the
9852         parameter is No_Project.
9853         (Clean_Project): Adapt to changes in package Prj (Lang_Ada =>
9854         Ada_Language_Index).
9855         (Gnatclean): Adapt to change in package Prj.Pars (no parameter
9856         Process_Languages for procedure Parse).
9857
9858         * gnatcmd.adb (Carg_Switches): New table.
9859         (GNATCmd): Put all switches following -cargs in the Carg_Switches table.
9860         Adapt to name changes in package Prj (Current_Spec_Suffix =>
9861         Ada_Spec_Suffix, Current_Body_Suffix => Ada_Body_Suffix).
9862
9863         * mlib-prj.adb: Adapt to changes in packages Prj and Prj.Com: type
9864         Header_Num and function Hash are now declared in package Prj,
9865         not Prj.Com.
9866
9867         * prj.adb (Suffix_Of): New function.
9868         (Set (Suffix)): New procedure.
9869         (Hash): One function moved from Prj.Com
9870         (Is_Present, Language_Processing_Data_Of): New functions
9871         (Set): Two new procedures
9872         (Add_Language_Name, Display_Language_Name): New procedures
9873
9874         * prj.ads: (Suffix_Of): New function
9875         (Set (Suffix)): New procedure
9876         Add several types and tables for multi-language support.
9877         (Header_Num): Type moved from Prj.Com
9878         (Hash): Two functions moved from Prj.Com
9879         (Is_Present, Language_Processing_Data_Of): New functions
9880         (Set): Two new procedures
9881         (Add_Language_Name, Display_Language_Name): New procedures
9882         (Naming): Component name changes:
9883         Current_Spec_Suffix => Ada_Spec_Suffix,
9884         Current_Body_Suffix => Ada_Body_Suffix. Add new components:
9885         Impl_Suffixes, Supp_Suffixes.
9886         (Project_Data): New components: Externally_Built, Supp_Languages,
9887         First_Language_Processing, Supp_Language_Processing, Default_Linker,
9888         Default_Linker_Path.
9889
9890         * prj-attr.adb: Add new attributes Ada_Roots and Externally_Built and
9891         new package Language_Processing with its attributes (Compiler_Driver,
9892         Compiler_Kind, Dependency_Option, Compute_Dependency, Include_Option,
9893         Binder_Driver, Default_Linker).
9894
9895         * prj-com.ads, prj-com.adb (Hash): Function moved to package Prj.
9896         (Header_Num): Type moved to package Prj
9897
9898         * prj-env.adb: Adapt to name changes in package Prj
9899         (Current_Spec_Suffix => Ada_Spec_Suffix,
9900         Current_Body_Suffix => Ada_Body_Suffix).
9901
9902         * prj-ext.adb: Add the default project dir (<prefix>/log/gnat) by
9903         default to the project path, except the "-" is one of the directories
9904         in env var ADA_PROJECT_PATH.
9905         (Current_Project_Path): Global variable, replacing Project_Path
9906         that was in the body of Prj.Part.
9907         (Project_Path): New function
9908         (Set_Project_Path): New procedure
9909         Initialize Current_Project_Path during elaboration of the package
9910         Remove dependency on Prj.Com, no longer needed
9911
9912         * prj-ext.ads (Project_Path): New function
9913         (Set_Project_Path): New procedure
9914
9915         * prj-nmsc.adb (Body_Suffix_Of): New function. Returns .<lang> when no
9916         suffix is defined for language <lang>.
9917         (Find_Sources, Record_Other_Sources): Use Body_Suffix_Of, instead of
9918         accessing directly the components of Naming.
9919         (Look_For_Sources): Use Set (Suffix) to set the suffix of a language.
9920         Reorganise of this package.
9921         Break procedure Check in several procedures.
9922
9923         * prj-nmsc.ads: Replace all procedures (Ada_Check,
9924         Other_Languages_Check and Language_Independent_Check) with a single
9925         procedure Check.
9926
9927         * prj-pars.ads, prj-pars.adb (Parse): Remove parameter
9928         Process_Languages, no longer needed.
9929
9930         * prj-part.adb (Project_Path): Move to the body of Prj.Ext as
9931         Current_Project_Path.
9932         Remove elaboration code, moved to the body of Prj.Ext
9933         Use new function Prj.Ext.Project_Path instead of old variable
9934         Project_Path.
9935         (Post_Parse_Context_Clause): Get Resolved_Path as a case-sensitive path.
9936         When comparing with project paths on the stack, first put the resolved
9937         path in canonical case.
9938         (Parse_Single_Project): Set the path name of the project file in the
9939         tree to the normalized path.
9940
9941         * prj-proc.ads, prj-proc.adb (Check, Recursive_Check, Process): Remove
9942         parameter Process_Languages, no longer needed.
9943         (Recursive_Check): Call Prj.Nmsc.Check, instead of Ada_Check and
9944         Other_Languages_Check.
9945
9946         * prj-tree.ads (Project_Name_And_Node): New component Canonical_Path
9947         to store the resolved canonical path of the project file.
9948         Remove dependency to Prj.Com, no longer needed
9949
9950         * prj-util.adb: Adapt to name changes in package Prj
9951         (Current_Spec_Suffix => Ada_Spec_Suffix, Current_Body_Suffix =>
9952         Ada_Body_Suffix).
9953
9954         * snames.ads, snames.adb: New standard names: Ada_Roots, Binder_Driver,
9955         Compiler_Driver, Compiler_Kind, Compute_Dependency, Default_Linker,
9956         Externally_Built, Include_Option, Language_Processing.
9957
9958         * makegpr.adb: Numerous changes due to changes in packages
9959         Prj and Prj.Nmsc.
9960
9961         * gnatls.adb: Add the default project dir (<prefix>/log/gnat) by
9962         default to the project path, except whe "-" is one of the directories
9963         in env var ADA_PROJECT_PATH.
9964         (Gnatls): In verbose mode, add the new section "Project Search Path:"
9965
9966 2004-12-07  Robert Dewar  <dewar@adacore.com>
9967
9968         * debug.adb: Document that -gnatdA automatically sets -gnatR3m
9969
9970         * gnat1drv.adb (Gnat1drv): If debug flag A set, then automatically
9971         set -gnatR3m mode.
9972
9973         * repinfo.adb (List_Rep_Info): Remove special handling of -gnatdA
9974         flag. No longer needed now that we handle this in gnat1drv.adb.
9975
9976         * repinfo.ads: Minor reformatting
9977
9978 2004-12-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9979             Olivier Hainque  <hainque@adacore.com>
9980             Eric Botcazou  <ebotcazou@adacore.com>
9981
9982         * decl.c (maybe_pad_type): Use TYPE_SIZE_UNIT of the input type for
9983         TYPE_SIZE_UNIT of result type if SIZE is not specified.
9984         (make_aligning_type): Pass -1 as ADDRESSABLE to prevent the creation
9985         of a bitfield, which we know is useless and causes trouble because of
9986         alignment implications.
9987
9988         * utils.c (create_var_decl): Set DECL_COMMON again on targets without
9989         BSS sections.
9990         (process_attributes): Clear DECL_COMMON again when a section attribute
9991         is present.
9992         (finish_record_type): Independently track if RECORD_TYPE has SIZE and/or
9993         SIZE_UNIT already set and use to compute final SIZE and SIZE_UNIT.
9994         (create_field_decl): Special case ADDRESSABLE negative to mean
9995         "no bitfield creation", to be used by make_aligning_type. Don't
9996         restrict bitfield creation to !ADDRESSABLE any more, as some BLKmode
9997         fields claimed addressable still have to be bitfields. Use
9998         value_factor_p instead of a raw binop construction to check for the
9999         position's alignment.
10000
10001 2004-12-07  Geert Bosch  <bosch@adacore.com>
10002
10003         * eval_fat.adb: Revert previous change.
10004
10005 2004-12-07  Thomas Quinot  <quinot@adacore.com>
10006             Ed Schonberg  <schonberg@adacore.com>
10007
10008         * exp_ch4.adb (Expand_N_Indexed_Component): For an indexed component
10009         with an implicit dereference as its prefix, use
10010         Insert_Explicit_Dereference instead of merely rewriting the prefix into
10011         an explicit dereference. This ensures that a reference to the original
10012         prefix is generated, if appropriate.
10013
10014         * sem_util.adb (Insert_Explicit_Dereference): When an implicit
10015         dereference is rewritten to an explicit one, generate a reference to
10016         the entity denoted by its prefix using the original prefix node, so
10017         the dereference can be properly recorded as a read of the denoted
10018         access value, if appropriate.
10019
10020         * sem_warn.adb (Output_Unreferenced_Messages): Do not abstain from
10021         emitting 'assigned but never read' warning on a variable on the basis
10022         that it has an access type.
10023         (Check_References): Emit unreferenced warning when the scope is a
10024         subprogram body.
10025
10026 2004-12-07  Robert Dewar  <dewar@adacore.com>
10027             Ed Schonberg  <schonberg@adacore.com>
10028
10029         * exp_ch6.adb (Expand_Call): Add comment on handling of back end
10030         intrinsic
10031
10032         * exp_intr.adb (Expand_Intrinsic_Call): Ignore unrecognized intrinsic,
10033         leaving call unchanged.
10034         This deals with the case where the pragma Import specified
10035         an external name, to be handled by the back end.
10036
10037         * sem_prag.adb (Process_Import_Or_Interface): Do not check validity of
10038         subprogram which is Imported with convention Intrinsic if an
10039         External_Name argument is specified.
10040         (Process_Import_Or_Interface): Properly diagnose link name argument.
10041         (Inlining_Not_Possible): New name for Cannot_Inline, to avoid confusion
10042         with Sem_Ch6.Cannot_Inline.
10043         (Process_Inline): Provide separate warning for inapplicable inline
10044         pragma.
10045         (Cannot_Inline): Reject subprograms that have an at_end handler, so that
10046         treatment is uniform on different targets.
10047
10048 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
10049
10050         * exp_ch7.adb (Expand_Cleanup_Actions): If statement sequence of
10051         construct is rewritten, preserve end label to permit source navigation.
10052
10053 2004-12-07  Thomas Quinot  <quinot@adacore.com>
10054
10055         * exp_dist.adb (Specific_Build_General_Calling_Stubs,
10056         Specific_Build_Stub_Target): New subprograms.
10057         (Build_Subprogram_Calling_Stubs): Make this procedure independent from
10058         the PCS implementation used, using the above PCS-customized subprograms.
10059         Minor reformatting.
10060         (PolyORB_Support.Helpers): New subunit containing supporting subprograms
10061         for generation of DSA code targeted to the PolyORB PCS.
10062         (Add_Stub_Type): Rewrite to isolate the parts that are specific to one
10063         implementation of the partition communication subsystem in ancillary
10064         subprograms.
10065         (Specific_Build_Stub_Type, GARLIC_Support.Build_Stub_Type,
10066         PolyORB_Support.Build_Stub_Type): New subrograms containing the
10067         PCS-specific part of Add_Stub_Type.
10068         (Insert_Partition_Check): Use runtime library function to perform
10069         E.4(19) check.
10070
10071         * rtsfind.ads: New entity System.PolyORB_Interface.Make_Ref
10072         (RE_Same_Partition): New entity, from s-parint.
10073
10074         * s-parint.ads, s-parint.adb (Same_Partition): New subprogram.
10075
10076 2004-12-07  Gary Dismukes  <dismukes@adacore.com>
10077
10078         * gnatmem.adb, gnatname.adb, gnatsym.adb, gprcmd.adb, vms_conv.adb:
10079         Output the copyright message on a separate line from the version
10080         message.
10081
10082 2004-12-07  Joel Brobecker  <brobecker@adacore.com>
10083
10084         * g-os_lib.adb (Spawn): Explicitly initialize Saved_Error to avoid a
10085         compile-time warning.
10086
10087 2004-12-07  Robert Dewar  <dewar@adacore.com>
10088
10089         * g-regpat.adb: (Match): Change a misuse of or to or else
10090
10091 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
10092
10093         * lib-xref.adb:
10094         (Generate_Reference): Handle properly a reference to an entry formal,
10095          when an accept statement has a pragma Unreferenced for it.
10096
10097         * sem_ch9.adb (Analyze_Accept_Statement): Reset the Is_Referenced flag
10098         and the Has_Pragma_Unreferenced flag for each formal before analyzing
10099         the body, to ensure that warnings are properly emitted for each accept
10100         statement of a given task entry.
10101
10102 2004-12-07  Vasiliy Fofanov  <fofanov@adacore.com>
10103
10104         * Makefile.in: Add support for foreign threads on VMS.
10105
10106 2004-12-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10107
10108         * misc.c (gnat_types_compatible_p, LANG_HOOKS_TYPES_COMPATIBLE_P):
10109         Remove.
10110         (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): New.
10111
10112         * adaint.h: (__gnat_dup, __gnat_dup2): Add missing decls.
10113
10114         * trans.c (Exception_Handler_to_gnu_sjlj): Also handle renamed
10115         exception.
10116         (call_to_gnu): Convert to actual DECL_ARG_TYPE, not variant of it.
10117
10118 2004-12-07  Robert Dewar  <dewar@adacore.com>
10119
10120         * nlists.adb (Prepend_Debug): Remove parameters and nest within
10121         Prepend.
10122         (Remove_Next_Debug): Same fix
10123
10124         * nlists.ads: Correct bad comments for Prev and Prev_Non_Pragma (we do
10125         maintain back pointers now, though we did not used to, and comments
10126         were out of date).
10127         (Prepend): Remove pragma Inline.
10128         (Remove_Next): Same cleanup
10129
10130 2004-12-07  Thomas Quinot  <quinot@adacore.com>
10131
10132         * sem_ch4.adb (Process_Implicit_Dereference_Prefix): New subprogram
10133         used to record an implicit dereference as a read operation on its
10134         prefix when operating under -gnatc. Necessary to avoid spurious
10135         'variable assigned but never read' warnings in that mode.
10136         (Process_Indexed_Component, Analyze_Selected_Component): When the prefix
10137         is a non-overloaded implicit dereference, call the above subprogram to
10138         ensure proper recording of references.
10139
10140 2004-12-07  Gary Dismukes  <dismukes@adacore.com>
10141
10142         * sem_ch5.adb (One_Bound): Remove call to Resolve, as the bound needs
10143         to be resolved later as part of Analyze_Iteration_Scheme's call to
10144         Make_Index.
10145
10146 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
10147
10148         * sem_ch8.adb (Find_Type): If node is a reference to 'Base and the
10149         prefix is not a scalar type, place error message on prefix, not on
10150         type entity.
10151
10152 2004-12-07  Bernard Banner  <banner@adacore.com>
10153
10154         * vxaddr2line.adb: Add support for x86 vxworks
10155
10156 2004-12-07  Thomas Quinot  <quinot@adacore.com>
10157
10158         * g-socket.ads (Get_Host_By_Address, Get_Host_By_Name): Clarify
10159         documentation of the behaviour of these functions when passed an IP
10160         address that has no record in the system hosts database and no reverse
10161         record in the DNS.
10162
10163         * cstand.adb, a-tags.ads: Fix typos in comment.
10164
10165 2004-12-07  Robert Dewar  <dewar@adacore.com>
10166
10167         * exp_ch2.adb, exp_ch3.adb, exp_ch5.adb, exp_ch8.adb,
10168         exp_ch9.adb, exp_pakd.adb, interfac.ads, sem_ch6.adb,
10169         sem_ch7.adb, sem_ch10.adb, sem_ch13.adb, sem_ch3.adb,
10170         s-poosiz.ads: Minor reformatting
10171
10172         * make.adb: Minor reformatting
10173         Add some ??? comments asking for more comments
10174
10175         * s-poosiz.adb: Minor reformatting
10176         Add comments on alignment requirement
10177
10178         * sinfo.ads: Remove obsolete comment and fix typo.
10179
10180 2004-12-07  Vincent Celier  <celier@adacore.com>
10181             Sergey Rybin  <rybin@adacore.com>
10182
10183         * gnat_ugn.texi: Update the section "The GNAT Driver and Project
10184         Files" with the new tool and package names.
10185         Reformatting to suppress most of the warnings for line too long
10186         Document the new section "Project Search Path:" in the output of
10187         gnatls -v.
10188         Add gnatmetric section
10189
10190 2004-12-07  Vincent Celier  <celier@adacore.com>
10191
10192         * vms_data.ads: Correct GNAT METRIC qualifiers: -I-, -Idir and
10193         -gnatec= are not direct switches of gnatmetric. Changed -eis to -eps
10194         and -eit to -ept. Added qualifier
10195         /ELEMENT_METRICS=CONSTRUCT_NESTING_MAX for new switch -ec.
10196
10197 2004-11-27  Andreas Schwab  <schwab@suse.de>
10198
10199         * Make-lang.in (ada/trans.o): Depend on $(EXPR_H).
10200
10201 2004-11-25  Arnaud Charlet  <charlet@adacore.com>
10202
10203         * g-socthi-mingw.ads, g-socthi-vms.ads: Remove C_Read and C_Write from
10204         internal implementation unit GNAT.Sockets.Thin,
10205         as their usage for sockets is non-portable (using the read and write
10206         functions from the system runtime library is fine on UNIX but won't
10207         work under Windows).
10208
10209         * mingw32.h: Update copyright notice.
10210
10211 2004-11-25  Arnaud Charlet  <charlet@adacore.com>
10212
10213         * ada-tree.h: Minor reformatting of previous change to avoid lines
10214         longer than 79 characters.
10215
10216 2004-11-25  Olivier Hainque  <hainque@adacore.com>
10217
10218         * tb-gcc.c: GCC infrastructure based implementation of
10219         __gnat_backtrace.
10220
10221 2004-11-24  Steven Bosscher  <stevenb@suse.de>
10222
10223         * misc.c (gnat_post_options): Don't clear
10224         flag_inline_functions.
10225
10226 2004-11-22  Andrew Pinski  <pinskia@physics.uc.edu>
10227
10228         PR ada/17986
10229         * ada-tree.h (lang_tree_node): Set chain_next to be the chain of the
10230         tree.
10231
10232 2004-11-21  Andreas Jaeger  <aj@suse.de>
10233
10234         * stylesw.adb: Change Style_Check_Subprogram_Order to
10235         Style_Check_Order_Subprograms.
10236
10237 2004-11-18  Arnaud Charlet  <charlet@adacore.com>
10238
10239         * adaint.h, adaint.c
10240         (__gnat_portable_spawn): Fix cast of spawnvp third parameter
10241         to avoid warnings.
10242         Add also a cast to kill another warning.
10243         (win32_no_block_spawn): Initialize CreateProcess's dwCreationFlags
10244         parameter with the priority class of the parent process instead of
10245         always using the NORMAL_PRIORITY_CLASS.
10246         (__gnat_dup): New function.
10247         (__gnat_dup2): New function.
10248         (__gnat_is_symbolic_link): Enable the effective body of this
10249         function when __APPLE__ is defined.
10250
10251         * g-os_lib.ads, g-os_lib.adb (Spawn): Two new procedures.
10252         Update comments.
10253
10254 2004-11-18  Olivier Hainque  <hainque@adacore.com>
10255
10256         * a-exexpr.adb (Others_Value, All_Others_Value): New variables, the
10257         address of which may be used to represent "others" and "all others"
10258         choices in exception tables, instead of the current harcoded
10259         (void *)0 and (void *)1.
10260         (Setup_Exception): Do nothing in the GNAT SJLJ case.
10261
10262         * gigi.h (others_decl, all_others_decl): New decls representing the
10263         new Others_Value and All_Others_Value objects.
10264         (struct attrib): Rename "arg" component as "args", since GCC expects a
10265         list of arguments in there.
10266
10267         * raise.c (GNAT_OTHERS, GNAT_ALL_OTHERS): Are now the address of the
10268         corresponding objects exported by a-exexpr, instead of hardcoded dummy
10269         addresses.
10270
10271         * trans.c (Exception_Handler_to_gnu_zcx): Use the address of
10272         others_decl and all_others_decl instead of hardcoded dummy addresses
10273         to represent "others" and "all others" choices, which is cleaner and
10274         more flexible with respect to the possible eh pointer encoding policies.
10275
10276         * utils.c (init_gigi_decls): Initialize others_decl and all_others_decl.
10277         (process_attributes): Account for the naming change of the "args"
10278         attribute list entry component.
10279
10280         * decl.c (build_attr_list): Rename into prepend_attributes to allow
10281         cumulating attributes for different entities into a single list.
10282         (gnat_to_gnu_entity): Use prepend_attributes to build the list of
10283         attributes for the current entity and propagate first subtype
10284         attributes to other subtypes.
10285         <E_Procedure>: Attribute arguments are attr->args and not
10286         attr->arg any more.
10287         (build_attr_list): Ditto. Make attr->args a TREE_LIST when there is an
10288         argument provided, as this is what GCC expects. Use NULL_TREE instead
10289         of 0 for trees.
10290
10291 2004-11-18  Robert Dewar  <dewar@adacore.com>
10292
10293         * a-stmaco.ads, exp_util.ads, exp_util.adb, i-cpp.ads, i-cpp.adb:
10294         Minor reformatting througout (including new function specs)
10295         Add ??? comments asking for clarification.
10296
10297 2004-11-18  Thomas Quinot  <quinot@adacore.com>
10298
10299         * butil.ads, butil.adb, bindgen.adb (Get_Unit_Name_String): Remove
10300         incomplete duplicate implementation of this subprogram from butil.
10301
10302 2004-11-18  Thomas Quinot  <quinot@adacore.com>
10303
10304         * exp_dist.adb (Build_RPC_Receiver_Body): New subprogram. This
10305         procedures factors the common processing for building an RPC receiver
10306         for an RCI package or an RACW type.
10307         Stylistic cleanup: change '/= Empty' to 'Present ()'; move body of
10308         Build_Remote_Subprogram_Proxy_Type into proper alphabetical order.
10309         (Get_PCS_Name): New subprogram. Returns the name of the PCS currently
10310         in use.
10311         (Specific_Add_RACW_Features): New subprogram. PCS-specific part of
10312         Add_RACW_Features.
10313         (Specific_Add_RAST_Features): New subprogram. PCS-specific part of
10314         Add_RAST_Features.
10315         (Assign_Subprogram_Identifier): New subprogram. Provision for assigning
10316         distribution subprogram identifiers that are either subprogram numbers
10317         or strings.
10318         (Get_Subprogram_Ids): New subprogram. Retrieve both the numeric and
10319         string distribution identifiers assigned to a given subprogram.
10320         (Get_Subprogram_Id): Reimplement in terms of Get_Subprogram_Ids.
10321         (Add_RAS_Dereference_TSS): Add comments.
10322         (Build_General_Calling_Stubs): Note that the RACW_Type formal parameter
10323         is not referenced yet because it will be used by the PolyORB DSA
10324         implementation.
10325         (Insert_Partition_Check): Remove fossile code.
10326         (First_RCI_Subprogram_Id): Document this constant.
10327         (Add_RAS_Access_TSS): Correct the setting of the Etype of the
10328         RAS_Access TSS.
10329         (Get_Pkg_Name_String): Remove subprogram. Usage occurrences are
10330         replaced with calls to Get_Library_Unit_Name_String. Previously there
10331         were several instances of the same code in different locations in the
10332         compiler; this checkin completes the replacement of all of these
10333         instances with calls to a common subprogram.
10334         Minor reformatting.
10335
10336         * sem_dist.adb: Remove comment noting that RPC receiver generation
10337         should be disabled for RACWs that implement RASs.
10338         (Process_Partition_Id): Use new subprogram Get_Library_Unit_Name_String.
10339
10340         * sem_util.ads, sem_util.adb (Has_Stream): New function
10341         (Get_Library_Unit_Name_String): New subprogram to retrieve the fully
10342         qualified name of a library unit into the name buffer.
10343         (Note_Possible_Modification): Generate a reference only
10344         if the context comes from source.
10345
10346         * snames.ads (PCS_Names): New subtype corresponding to names of
10347         supported implementations of the Partition Communication Subsystem
10348         (PCS) (i.e. the runtime library support modules for the distributed
10349         systems annex).
10350
10351 2004-11-18  Robert Dewar  <dewar@adacore.com>
10352             Ed Schonberg  <schonberg@adacore.com>
10353
10354         * einfo.ads, einfo.adb: Remove Is_Psected flag, no longer used
10355         (Has_Rep_Pragma): New function
10356         (Has_Attribute_Definition_Clause): New function
10357         (Record_Rep_Pragma): Moved here from sem_ch13.adb
10358         (Get_Rep_Pragma): Remove junk kludge for Stream_Convert pragma
10359
10360         * sem_ch13.ads, sem_ch13.adb (Record_Rep_Pragma): Moved to einfo.adb
10361
10362         * exp_prag.adb: (Expand_Pragma_Common_Object): New procedure
10363         (Expand_Pragma_Psect_Object): New procedure
10364         These procedures contain the revised and cleaned up processing for
10365         these two pragmas. This processing was formerly in Sem_Prag, but
10366         is more appropriately moved here. The cleanup involves making sure
10367         that the pragmas are properly attached to the tree, and that no
10368         nodes are improperly shared.
10369
10370         * sem_prag.adb: Move expansion of Common_Object and Psect_Object
10371         pragmas to Exp_Prag, which is more appropriate.
10372         Attach these two pragmas to the Rep_Item chain Use Rep_Item chain to
10373         check for duplicates Remove use of Is_Psected flag, no longer needed.
10374         Use new Make_String_Literal function with string.
10375
10376         * exp_attr.adb (Expand_Fpt_Attribute): The floating-point attributes
10377         that are functions return universal values, that have to be converted
10378         to the context type.
10379         Use new Make_String_Literal function with string.
10380         (Get_Stream_Convert_Pragma): New function, replaces the use of
10381         Get_Rep_Pragma, which had to be kludged to work in this case.
10382
10383         * freeze.adb: Use new Has_Rep_Pragma function
10384
10385         * exp_intr.adb, exp_ch3.adb, sem_attr.adb: Use new Make_String_Literal
10386         function with string.
10387         Use new Has_Rep_Pragma function.
10388
10389         * tbuild.ads, tbuild.adb (Make_String_Literal): New function, takes
10390         string argument.
10391
10392 2004-11-18  Robert Dewar  <dewar@adacore.com>
10393
10394         * errout.ads, errout.adb: (First_Sloc): New function
10395
10396         * par-ch5.adb (P_Condition): Check for redundant parens is now a style
10397         check (-gnatyx) instead of being included as a redundant construct
10398         warning.
10399
10400         * sem_ch6.adb: Change name Style_Check_Subprogram_Order to
10401         Style_Check_Order_Subprograms.
10402
10403         * style.ads, styleg.ads, styleg.adb, styleg-c.adb, stylesw.ads,
10404         stylesw.adb: Add Style_Check_Xtra_Parens
10405
10406         * usage.adb: Add line for -gnatyx (check extra parens)
10407
10408         * vms_data.ads: Add entry for STYLE_CHECKS=XTRA_PARENS => -gnatyx
10409
10410 2004-11-18  Ed Schonberg  <schonberg@adacore.com>
10411             Robert Dewar  <dewar@adacore.com>
10412
10413         * exp_ch4.adb (Expand_N_Selected_Component): If the component is the
10414         discriminant of a constrained subtype, analyze the copy of the
10415         corresponding constraint, because in some cases it may be only
10416         partially analyzed.
10417         Removes long-lived ??? comments.
10418
10419         * exp_ch7.adb (Establish_Transient_Scope): Remove complex code that
10420         handled controlled or secondary-stack expressions within the
10421         iteration_scheme of a loop.
10422
10423         * sem_ch5.adb (Analyze_Iteration_Scheme): Build a block to evaluate
10424         bounds that may contain functions calls, to prevent memory leaks when
10425         the bound contains a call to a function that uses the secondary stack.
10426         (Check_Complex_Bounds): Subsidiary of Analyze_Iteration_Scheme, to
10427         generate temporaries for loop bounds that might contain function calls
10428         that require secondary stack and/or finalization actions.
10429
10430         * sem_ch4.adb (Analyze_Indexed_Component_Form): If the prefix is a
10431         selected component and the selector is overloadable (not just a
10432         function) treat as function call, Analyze_Call will disambiguate if
10433         necessary.
10434         (Analyze_Selected_Component): Do not generate an actual subtype for the
10435         selected component if expansion is disabled. The actual subtype is only
10436         needed for constraint checks.
10437         (Analyze_Allocator): If restriction No_Streams is set, then do
10438         not permit objects to be declared of a stream type, or of a
10439         composite type containing a stream.
10440
10441         * restrict.ads: Remove the a-stream entry from Unit_Array, since
10442         No_Streams no longer prohibits with'ing this package.
10443
10444         * sem_ch3.adb (Build_Derived_Record_Type): If the parent type has
10445         discriminants, but the parent base has unknown discriminants, there is
10446         no discriminant constraint to inherit. Such a discrepancy can arise
10447         when the actual for a formal type with unknown discriminants is a
10448         similar private type whose full view has discriminants.
10449         (Analyze_Object_Declaration): If restriction No_Streams is set, then
10450         do not permit objects to be declared of a stream type, or of a
10451         composite type containing a stream.
10452
10453 2004-11-18  Ed Schonberg  <schonberg@adacore.com>
10454
10455         * exp_dbug.ads: Update documentation to reflect simpler encoding for
10456         protected operations.
10457
10458         * exp_ch9.adb (Build_Selected_Name): Do not include "PT" suffix in
10459         generated name, it complicates decoding in gdb and hinders debugging
10460         of protected operations.
10461         (Build_Barrier_Function_Specification): Set the Needs_Debug_Info
10462         flag for the protected entry barrier function.
10463         (Build_Protected_Entry_Specification): Set the Needs_Debug_Info
10464         flag for the protected entry function.
10465
10466 2004-11-18  Nicolas Setton  <setton@adacore.com>
10467
10468         * expect.c: Define __unix__ when __APPLE__ is defined.
10469
10470         * Makefile.in: Inform the value of the variable GMEM_LIB in the
10471         Darwin-specific section.
10472
10473         * lang-specs.h: Change the placement of the %1 marker.
10474         Works around the fact that gcc adds -fPIC by default under Darwin.
10475
10476 2004-11-18  Ed Schonberg  <schonberg@adacore.com>
10477
10478         * exp_pakd.adb (Convert_To_PAT_Type): After replacing the original
10479         type of the object with the packed array type, set the Analyzed flag
10480         on the object if it is an entity or simple indexed component, to avoid
10481         spurious type errors.
10482
10483 2004-11-18  Gary Dismukes  <dismukes@adacore.com>
10484
10485         * gnat1drv.adb, gnatbind.adb, gnatchop.adb, gnatfind.adb, gnatlink.adb,
10486         gnatls.adb, gnatxref.adb, gprep.adb: Output the copyright message on a
10487         separate line from the version message.
10488
10489 2004-11-18  Ed Falis  <falis@adacore.com>
10490
10491         * init.c (__gnat_map_signal): map SIGSEGV to Storage_Error for AE653
10492         vthreads.
10493         (init_float): Eliminate initialization of floating point status for
10494         AE653. The instructions have no effect for vThreads.
10495
10496 2004-11-18  Vincent Celier  <celier@adacore.com>
10497
10498         * make.adb (Gnatmake): Invoke gnatlink with -shared-libgcc when
10499         gnatbind is invoked with -shared.
10500
10501 2004-11-18  Jose Ruiz  <ruiz@adacore.com>
10502
10503         * s-tposen.adb (Lock_Entry): Remove the code for raising Program_Error
10504         for Detect_Blocking which is redundant with the check done within the
10505         procedure Protected_Single_Entry_Call.
10506         (Lock_Read_Only_Entry): Remove the code for raising Program_Error for
10507         Detect_Blocking which is redundant with the check done within the
10508         procedure Protected_Single_Entry_Call.
10509
10510 2004-11-18  Vincent Celier  <celier@adacore.com>
10511
10512         * makegpr.adb (Compile): Put the compiling switches (in package
10513         Compiler and on the command line) immediately after "-c", instead of
10514         at the end of the command line invocation of the compiler, when
10515         compiling a non-Ada file.
10516         (Build_Global_Archive): When there is no need to rebuild the archive,
10517         set Global_Archive_Exists, so that the archive is passed to the linker
10518         if one is needed.
10519
10520 2004-11-18  Robert Dewar  <dewar@adacore.com>
10521             Sergey Rybin  <rybin@adacore.com>
10522
10523         * gnat_ugn.texi:
10524         Remove extra paren check from list of checks for redundant constructs
10525         Add documentation of new -gnatyx style check (check extra parens)
10526         Remove paragraph about gnatelim debug options.
10527
10528         * gnat_rm.texi: Document that Ada.Streams now forbids creating stream
10529         objects rather than forbidding dependencies on the package Ada.Streams.
10530
10531         * sinfo.ads: Add ??? note that we should document pragmas passed to
10532         back end.
10533
10534         * g-expect.ads: Fix a few typos in the comments.
10535
10536 2004-11-09  Joseph S. Myers  <joseph@codesourcery.com>
10537
10538         * misc.c (gnat_handle_option): Use %< and %> for quoting in
10539         warning message.
10540
10541 2004-11-08  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10542
10543         * a-numaux-x86.adb (Tan): Fix fdivp syntax.
10544
10545 2004-11-07  Andreas Schwab  <schwab@suse.de>
10546
10547         * Makefile.in (install-gnatlib): Remove spurious hyphen.
10548
10549 2004-11-02  Andrew Pinski  <pinskia@physics.uc.edu>
10550
10551         PR ada/18228
10552         * Makefile.in (darwin): Set soext to .dylib.
10553
10554 2004-10-26  Vincent Celier  <celier@gnat.com>
10555             Thomas Quinot   <quinot@act-europe.fr>
10556
10557         * g-socthi-vms.adb, g-socthi-mingw.adb, g-socthi-vxworks.ads:
10558         (C_Writev): Change MSG_Forced_Flags to Constants.MSG_Forced_Flags as
10559         there is no use of GNAT.Sockets.Constants.
10560         Remove remaining pragma Import for C_Write
10561         Remove C_Read and C_Write from internal implementation unit
10562         GNAT.Sockets.Thin, as their usage for sockets is non-portable (using
10563         the read and write functions from the system runtime library is fine
10564         on UNIX but won't work under Windows).
10565
10566         * g-socket.adb: (Abort_Selector): Use C_Send instead of C_Write.
10567         (Check_Selector): Use C_Recv instead of C_Read.
10568         Selectors are the GNAT.Sockets abstraction to perform a select()
10569         call on a set of descriptors. To allow abortion of an ongoing
10570         select operation, some data is written to a dedicated socket that
10571         is always monitored.
10572         Under Windows, the write and read library functions cannot operate
10573         on sockets, so we need to use send and recv instead, which is portable
10574         across all supported platforms.
10575
10576         * g-socthi.ads: Remove C_Read and C_Write from internal implementation
10577         unit GNAT.Sockets.Thin, as their usage for sockets is non-portable
10578         (using the read and write functions from the system runtime library is
10579         fine on UNIX but won't work under Windows).
10580
10581 2004-10-26  Nicolas Setton  <setton@act-europe.fr>
10582
10583         * mlib-tgt-darwin.adb: New file.
10584
10585         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
10586         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
10587         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
10588         mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb (Archive_Indexer_Options): New
10589         subprogram body.
10590
10591         * Makefile.in: Add support for building shared libraries under Darwin.
10592         (EXTRA_GNATRTL_NONTASKING_OBJS, ppc-vxworks): Add s-vxwexc.o, containing
10593         the low level EH init subprogram to be called from __gnat_initialize.
10594
10595         * mlib-tgt.ads, mlib-tgt.adb (Archive_Indexer_Options): New subprogram,
10596         indicates which options to pass to the archive indexer.
10597
10598         * mlib-utl.adb: Add support for calling ranlib with additional
10599         options. This is needed for instance under Mac OS X.
10600         (Ranlib_Options): New global variable, used to store the potential
10601         options to pass to ranlib.
10602         (Ar): Use Ranlib_Options when spawning ranlib.
10603         (Initialize): Set the value of ranlib option.
10604
10605 2004-10-26  Olivier Hainque  <hainque@act-europe.fr>
10606
10607         * s-parame-linux.adb (Minimum_Stack_Size): Adjust to return 12K
10608         instead of 8K, to reflect the real potential needs for stack-checking
10609         in the ZCX case.
10610
10611 2004-10-26  Pascal Obry  <obry@gnat.com>
10612
10613         * s-parame-mingw.adb (Default_Stack_Size): Add some comments.
10614
10615         * s-taprop-mingw.adb (Create_Task): Set initial stack size to 1024. On
10616         Windows only the initial thread stack size can be set so it is good to
10617         start we a low stack size.
10618         The OS will adjust the size as needed.
10619
10620 2004-10-26  Olivier Hainque  <hainque@act-europe.fr>
10621             Nicolas Setton  <setton@act-europe.fr>
10622
10623         * expect.c, adaint.c, link.c, sysdep.c (unix sections): Guard with
10624         "__unix__" instead of "unix".
10625         The latter is implicitly defined by gcc3.2 but not by gcc >= 3.4, so the
10626         sections were just mistakenly ignored. The former is
10627         implicitely defined by gcc2.8, gcc3.2 and gcc3.4.
10628         Update #ifdef preprocessor macro to detect the symbol __hpux__ instead
10629         of hpux. This prevents an unwanted definition of the symbol
10630         convert_addresses in adaint.o.
10631
10632 2004-10-26  Gary Dismukes  <dismukes@gnat.com>
10633
10634         * a-exexpr.adb (Setup_Key): Change initial value to 16#DEAD#, for
10635         compatibility with type Unwind_Word on 16-bit targets such as AAMP.
10636
10637 2004-10-26  Cyrille Comar  <comar@act-europe.fr>
10638
10639         * a-filico.ads, a-filico.adb: fix incorrect header.
10640
10641 2004-10-26  Javier Miranda  <miranda@gnat.com>
10642
10643         * a-ststio.ads: Fix typo in identifier
10644
10645 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
10646
10647         * sem_ch4.adb: Minor reformatting.
10648
10649 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
10650
10651         * checks.adb (Expr_Known_Valid): If floating-point validity checks are
10652         enabled, check the result of unary and binary operations when the
10653         expression is the right-hand side of an assignment.
10654
10655 2004-10-26  Vincent Celier  <celier@gnat.com>
10656
10657         * clean.adb (Delete): Do not output warnings when in quiet output and
10658         not in verbose mode.
10659         (Force_Deletions): New Boolean flag, defaulted to False
10660         (Delete): Only delete a file if it is writable, and when
10661         Force_Deletions is True.
10662         (Parse_Cmd_Line): New switch -f: set Force_Deletions to True
10663         (Usage): Line for new switch -f
10664         (Clean_Directory): Use GNAT.OS_Lib.Set_Writable instead of rolling our
10665         own.
10666
10667 2004-10-26  Eric Botcazou  <ebotcazou@act-europe.fr>
10668
10669         * decl.c (gnat_to_gnu_field): Use the type of the inner object for a
10670         JM type only if its size matches that of the wrapper.  When a size is
10671         prescribed and the field is not aliased, remove the wrapper of a JM
10672         type only if the size is not greater than that of the packed array.
10673         (gnat_to_gnu_entity): Change the extension of packed array wrappers
10674         from LJM to JM.
10675
10676 2004-10-26  Geert Bosch  <bosch@gnat.com>
10677
10678         * eval_fat.adb (Eps_Model,Eps_Denorm): Remove, no longer used.
10679         (Succ): Re-implement using Scaling, Exponent and Ceiling attributes.
10680         (Pred): Implement in terms of Succ.
10681
10682 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
10683
10684         * exp_aggr.adb (Safe_Component): An aggregate component that is an
10685         unchecked conversion is safe for in-place use if the expression of the
10686         conversion is safe.
10687         (Expand_Array_Aggregate): An aggregate that initializes an allocator may
10688         be expandable in place even if the aggregate does not come from source.
10689         (Convert_Array_Aggr_In_Allocator): New procedure to initialize the
10690         designated object of an allocator in place, rather than building it
10691         first on the stack. The previous scheme forces a full copy of the array,
10692         and may be altogether unsusable if the size of the array is too large
10693         for stack allocation.
10694
10695 2004-10-26  Robert Dewar  <dewar@gnat.com>
10696
10697         * exp_ch4.adb (Expand_N_Op_Eq): Make sure we expand a loop for array
10698         compares if the component is atomic.
10699
10700         * exp_ch5.adb (Expand_Assign_Array): Make sure we expand a loop for
10701         array assignment if the component type is atomic.
10702
10703 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
10704             Eric Botcazou  <ebotcazou@act-europe.fr>
10705
10706         * exp_ch6.adb (Expand_Actuals): If the actual for an in-out parameter
10707         is aliased and is a by_reference type, do not pass by copy.
10708         (Expand_N_Function_Call) <Rhs_Of_Assign_Or_Decl>: New function to
10709         detect whether the call is in the right side of an assignment or
10710         the expression of an object declaration.  Recurse on component
10711         association within aggregates.
10712         Call it in the condition that determines whether the temporary is
10713         necessary for correct stack-checking.
10714
10715 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
10716
10717         * exp_dist.adb (Build_General_Calling_Stubs): New formal parameter
10718         RACW_Type, used in the PolyORB version.
10719         Rename RCI_Info to RCI_Locator, for consistency between the PolyORB
10720         version and the GARLIC version.
10721
10722         * snames.ads, snames.adb, s-parint.ads, s-parint.adb:
10723         Rename RCI_Info to RCI_Locator for better consistency between the
10724         GARLIC and PolyORB versions of the distributed systems annex.
10725         (DSA_Implementation_Name): This enumeration lists the possible
10726         implementations of the Partition Communication Subsystem for the
10727         Distributed Systems Annex (DSA). The three available implementations
10728         are the dummy stub implementation (No_DSA), and two versions based on
10729         two different distribution runtime libraries: GARLIC and PolyORB. Both
10730         the GARLIC PCS and the PolyORB PCS are part of the GLADE distribution
10731         technology.
10732         Change the literal GLADE_DSA to GARLIC_DSA to accurately describe
10733         that organization.
10734
10735         * rtsfind.ads: Rename RCI_Info to RCI_Locator for better consistency
10736         between the GARLIC and PolyORB versions of the distributed systems
10737         annex.
10738         Remove RE_Unbounded_Reclaim_Pool since it is unused.
10739
10740 2004-10-26  Gary Dismukes  <dismukes@gnat.com>
10741
10742         * gnat1drv.adb: Suppress calling the back end when
10743         Frontend_Layout_On_Target is true.
10744
10745 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
10746
10747         * g-os_lib.ads, g-os_lib.adb (Set_Executable, Set_Writable,
10748         Set_Read_Only): New subprograms.
10749         These new routines allow the user to set or unset the Owner execute
10750         and Owner write permission flags on a file.
10751
10752         * makegpr.adb, mlib.adb, mlib-prj.adb: Use
10753         GNAT.OS_Lib.Set_Executable instead of rolling our own.
10754
10755 2004-10-26  Matthew Gingell  <gingell@gnat.com>
10756
10757         * i-cpp.ads, i-cpp.adb: Change layout of VTable for new C++ ABI.
10758
10759 2004-10-26  Pascal Obry  <obry@gnat.com>
10760
10761         * init.c (__gnat_error_handler) [Win32]: Instead of trying to read the
10762         memory before the faulting page we properly test the process read
10763         access for this address using appropriate Win32 routine.
10764         (HPUX sections): guard with "__hpux__" instead of "hpux".
10765
10766 2004-10-26  Robert Dewar  <dewar@gnat.com>
10767
10768         * lib-xref.adb (Generate_Reference): Don't complain about reference to
10769         entry parameter if pragma Unreferenced set, since we do not properly
10770         handle the case of multiple parameters.
10771
10772 2004-10-26  Vincent Celier  <celier@gnat.com>
10773
10774         * prj-env.adb: (Contains_ALI_Files): New Boolean function
10775         (Ada_Objects_Path.Add): For a library project, add to the object path
10776         the library directory only if there is no object directory or if the
10777         library directory contains ALI files.
10778         (Set_Ada_Paths.Add.Recursive_Add): Ditto
10779
10780 2004-10-26  Vincent Celier  <celier@gnat.com>
10781
10782         * prj-nmsc.adb (Language_Independent_Check): Do not forbid virtual
10783         extension of library projects.
10784
10785         * prj-part.adb: If env var ADA_PROJECT_PATH is not defined, project
10786         path defaults to ".:<prefix>/lib/gnat".
10787         (Parse): For an extending all project, allow direct import of a project
10788         that is virtually extended.
10789
10790         * prj-proc.adb (Imported_Or_Extended_Project_From): If a project with
10791         the specified name is directly imported, return its ID. Otherwise, if
10792         an extension of this project is imported, return the ID of the
10793         extension.
10794
10795 2004-10-26  Robert Dewar  <dewar@gnat.com>
10796
10797         * s-arit64.adb: (Le3): New function, used by Scaled_Divide
10798         (Sub3): New procedure, used by Scaled_Divide
10799         (Scaled_Divide): Substantial rewrite, avoid duplicated code, and also
10800         correct more than one instance of failure to propagate carries
10801         correctly.
10802         (Double_Divide): Handle overflow case of largest negative number
10803         divided by minus one.
10804
10805         * s-arit64.ads (Double_Divide): Document that overflow can occur in
10806         the case of a quotient value out of range.
10807         Fix comments.
10808
10809 2004-10-26  Robert Dewar  <dewar@gnat.com>
10810
10811         * s-bitops.adb (Bit_Eq): Remove redundant check.
10812
10813         * s-bitops.ads: Minor comment updates
10814         Change some occurrences of Address to System.Address
10815
10816         * s-carsi8.ads: Fix minor cut-and-paste error in comments
10817
10818 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
10819
10820         * sem_attr.adb (Resolve_Attribute, case 'Access): Apply proper
10821         accessibility check to prefix that is a protected operation.
10822
10823 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
10824
10825         * sem_ch10.adb (Optional_Subunit): If file of expected subunit is
10826         empty, post message on stub.
10827
10828 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
10829             Javier Miranda  <miranda@gnat.com>
10830
10831         * sem_ch12.adb (In_Main_Context): Predicate to determine whether the
10832         current instance appears within a unit that is directly in the context
10833         of the main unit.
10834         Used to determine whether the body of the instance should be analyzed
10835         immediately after its spec, to make its subprogram bodies available
10836         for front-end inlining.
10837         (Analyze_Formal_Array_Type): Cleanup condition that checks that range
10838         constraint is not allowed on the component type (AARM 12.5.3(3))
10839
10840 2004-10-26  Cyrille Comar  <comar@act-europe.fr>
10841
10842         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case
10843         'Storage_Pool): enhance, document & limit detection of non-sharable
10844         internal pools.
10845
10846         * impunit.adb: Make System.Pool_Global and System.Pool_Local visible.
10847
10848         * s-pooglo.ads: Add more documentation now that this pool is properly
10849         documented.
10850
10851 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
10852
10853         * sem_ch3.adb (Complete_Private_Subtype): If the full view is a task
10854         or protected type with discriminants, do not constrain the
10855         corresponding record type if the subtype declaration has no
10856         discriminant constraints. This can be the case in source code, or in
10857         the subtype declaration created to rename an actual type within an
10858         instantiation.
10859
10860 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
10861
10862         * sem_ch6.adb (Analyze_Subprogram_Body): If body is a subunit for a
10863         different kind of stub (possibly wrong name for file), do not check
10864         for conformance.
10865         (Uses_Secondary_Stack): New subsidiary to Build_Body_To_Inline. If body
10866         includes call to some function that returns an unconstrained type, do
10867         not inline.
10868
10869 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
10870
10871         * sem_elab.adb (Check_Elab_Call): Do not check a call that does not
10872         appear in the code for the main unit. Dependencies among units in the
10873         context of the main unit are established when those other units are
10874         compiled. Otherwise spurious elaboration constraints can generate
10875         incorrect elaboration circularities.
10876
10877 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
10878             Ed Schonberg   <schonberg@gnat.com>
10879
10880         * sem_util.adb (Is_Aliased_View): Defend against the case where this
10881         subprogram is called with a parameter that is not an object name. This
10882         situation arises for some cases of illegal code, which is diagnosed
10883         later, and in this case it is wrong to call Is_Aliased, as that might
10884         cause a compiler crash.
10885         (Explain_Limited_Type): Refine previous fix to include
10886         inherited components of derived types, to provide complete information.
10887
10888         * exp_ch9.adb (Set_Privals): Set the Ekind of the actual object that
10889         is the prival for a protected object.
10890         It is necessary to mark this entity as a variable, in addition to
10891         flagging it as Aliased, because Sem_Util.Is_Aliased_View has been
10892         modified to avoid checking the Aliased flag on entities that are not
10893         objects. (Checking that flag for non-objects is erroneous and could
10894         lead to a compiler crash).
10895
10896 2004-10-26  Robert Dewar  <dewar@gnat.com>
10897
10898         * s-fatgen.adb (Pred): Fix redundant test for X > 0.0, since if
10899         X_Frac = 0.5, then we know that the number X must be positive.
10900         (Succ): Remove the same redundant test, and also fix the primary test
10901         to test for X_Frac = -0.5 (used to be 0.5) which is clearly wrong.
10902         Minor reformatting
10903         (Decompose): Add fuller comments to spec
10904
10905 2004-10-26  Pascal Obry  <obry@gnat.com>
10906
10907         * tracebak.c (IS_BAD_PTR): Use IsBadCodePtr on Win32 to check for ptr
10908         validity (process must have read access). Set to 0 in all other cases.
10909         (STOP_FRAME): Now check for ptr validity to avoid a segmentation
10910         violation on Win32.
10911         (VALID_STACK_FRAME): Check for ptr validity on Win32 to avoid a
10912         segmentation violation.
10913
10914 2004-10-26  Eric Botcazou  <ebotcazou@act-europe.fr>
10915
10916         * trans.c (call_to_gnu): For an (in-)out parameter passed by reference
10917         whose type is a constructed subtype of an aliased object with an
10918         unconstrained nominal subtype, convert the actual to the constructed
10919         subtype before taking its address.
10920
10921 2004-10-26  Vincent Celier  <celier@gnat.com>
10922
10923         * a-dirval.ads, a-dirval.adb, a-dirval-vms.adb, a-dirval-mingw.adb
10924         (Is_Path_Name_Case_Sensitive): New function
10925
10926         * a-direct.adb (To_Lower_If_Case_Insensitive): New procedure
10927         (Base_Name, Simple_Name, Current_Directory, Compose,
10928         Containing_Directory, Full_Name): Call To_Lower_If_Case_Insensitive on
10929         the result.
10930
10931 2004-10-26  Cyrille Comar    <comar@act-europe.fr>
10932             Vasiliy Fofanov  <fofanov@act-europe.fr>
10933             Vincent Celier   <celier@gnat.com>
10934
10935         * gnat_ugn.texi: Generalize "finding memory problems" section into a
10936         "memory management issues" section and document some of the useful
10937         memory pools provided as part of the GNAT library.
10938         Remove "virtual" from declaration of A::method2 in
10939         the simple example of Ada/C++ mixed system.
10940         Library Projects may be virtually extended: their virtual extensions
10941         are not Library Projects.
10942         Added section on extending project hierarchies.
10943
10944 2004-10-19  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
10945
10946         * adaint.c (__gnat_get_libraries_from_registry): Cast value
10947         to LPBYTE.
10948         (__gnat_portable_spawn): Remove const.
10949
10950         * mingw32.h (MAXPATHLEN): Check for previous definition.
10951
10952 2004-10-17  Matthias Klose  <doko@debian.org>
10953
10954         * gnatvsn.ads: Set gnat library version to 4.0.
10955
10956 2004-10-05  Vincent Celier  <celier@gnat.com>
10957
10958         * mlib-tgt.ads: (Build_Dynamic_Library): New parameter Options_2
10959
10960 2004-10-04  Laurent GUERBY <laurent@guerby.net>
10961
10962         PR ada/15156
10963         * Makefile.in: Define and use RANLIB_FLAGS.
10964
10965 2004-10-04  Pascal Obry  <obry@gnat.com>
10966
10967         * tracebak.c: Always set LOWEST_ADDR to 0 on Win32 (as done on all
10968         other x86 platforms).
10969
10970 2004-10-04  Olivier Hainque  <hainque@act-europe.fr>
10971
10972         * s-tassta.adb (Task_Wrapper): Make it Convention C, which makes sense
10973         in general and triggers stack alignment adjustment for thread entry
10974         points on targets where this is necessary.
10975
10976 2004-10-04  Bernard Banner  <banner@gnat.com>
10977
10978         PR ada/13897
10979
10980         * Makefile.in: Add section for powerpc linux
10981         Add variant i-vxwork-x86.ads
10982
10983         * i-vxwork-x86.ads, system-linux-ppc.ads: New files.
10984
10985 2004-10-04  Olivier Hainque  <hainque@act-europe.fr>
10986
10987         * init.c (__gnat_initialize): Call an Ada subprogram to perform the
10988         table registration calls when need be. Ensures no reference to the crt
10989         ctors symbol are issued in the SJLJ case, which avoids possible
10990         undefined symbol errors in the case of modules to be statically linked
10991         with the kernel.
10992
10993 2004-10-04  Javier Miranda  <miranda@gnat.com>
10994
10995         * sem_ch4.adb (Try_Object_Operation): Reformat the code to expand
10996         in-line the code corresponding to subprogram Analyze_Actuals. In
10997         addition, analyze the actuals only in case of subprogram call.
10998
10999 2004-10-04  Ed Falis  <falis@gnat.com>
11000
11001         * s-vxwork-x86.ads: (FP_CONTEXT): Defined to be correct size
11002
11003 2004-10-04  Sergey Rybin  <rybin@act-europe.fr>
11004
11005         * g-dirope.ads (Base_Name): Clarify the meaning of the Suffix parameter
11006         in the documentation.
11007
11008 2004-10-04  Robert Dewar  <dewar@gnat.com>
11009
11010         * sem_ch5.adb (Unblocked_Exit_Count): Now used for blocks as well as
11011         IF and CASE.
11012         (Analyze_Block_Statement): Add circuitry to detect following dead code
11013         (Check_Unreachable_Code): Handle case of block exit
11014
11015 2004-10-04  Robert Dewar  <dewar@gnat.com>
11016
11017         * g-spipat.adb: (XMatch): Avoid warning for Logic_Error call
11018         (XMatchD): Avoid warning for Logic_Error call
11019
11020 2004-10-04  Robert Dewar  <dewar@gnat.com>
11021
11022         * exp_ch4.adb (Is_Procedure_Actual): Correct so that this does not
11023         consider expressions buried within a procedure actual to be an actual.
11024         This caused some blowups with uses of packed slices within a procedure
11025         actual.
11026
11027 2004-10-04  Robert Dewar  <dewar@gnat.com>
11028
11029         * exp_ch3.adb (Needs_Simple_Initialization): Modular packed arrays no
11030         longer need to be initialized to zero.
11031         (Get_Simple_Init_Val): Modular packed arrays no longer need to be
11032         initialized to zero.
11033
11034         * checks.adb (Expr_Known_Valid): Packed arrays are now always
11035         considered valid, even if the representation is modular. That's correct
11036         now that we no longer initialize packed modular arrays to zero.
11037
11038         * exp_dbug.ads: Clarify documentation on handling of PAD and JM
11039         suffixes. These are now documented as the only cases in which the
11040         debugger ignores outer records.
11041         Previously, the spec allowed arbitrary suffixes for this purpose.
11042         Change name of LJM to JM for packed array pad records
11043         Create separate section on packed array handling, and add a whole new
11044         set of comments to this section describing the situation with packed
11045         modular types and justification requirements depending on endianness.
11046
11047 2004-10-04  Robert Dewar  <dewar@gnat.com>
11048
11049         * a-except.adb: Add a comment for last change
11050
11051         * einfo.ads: Minor spelling correction in comment
11052
11053         * exp_pakd.adb, gnatdll.adb, prj-attr.ads: Minor reformatting
11054
11055         * sem_ch11.adb: Fix a case of using | instead of \ for continuation
11056         messages.
11057
11058         * sem_util.ads: Minor comment update
11059
11060 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
11061
11062         * sem_ch6.adb (Analyze_Subprogram_Body): Do not treat Inline as
11063         Inline_Always when in Configurable_Run_Time mode.
11064
11065         * sem_prag.adb (Process_Convention): If entity is an inherited
11066         subprogram, apply convention to parent subprogram if in same scope.
11067         (Analyze_Pragma, case Inline): Do not treat Inline as Inline_Always
11068         when in Configurable_Run_Time mode.
11069
11070 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
11071
11072         * sem_ch3.adb (Build_Derived_Record_Type): Set First/Last entity of
11073         class_wide type after component list has been inherited.
11074
11075 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
11076
11077         * sem_ch12.adb (Check_Generic_Actuals): New predicate
11078         Denotes_Previous_Actual, to handle properly the case of a private
11079         actual that is also the component type of a subsequent array actual.
11080         The visibility status of the first actual is not affected when the
11081         second is installed.
11082         (Process_Nested_Formal): Subsidiary of Instantiate_Formal_Package, to
11083         make fully recursive the treatment of formals of packages declared
11084         with a box.
11085         (Restore_Nested_Formal): Subsidiary of Restore_Private_Views, to undo
11086         the above on exit from an instantiation.
11087         (Denotes_Formal_Package): When called from Restore_Private_Views, ignore
11088         current instantiation which is now complete.
11089         (Analyze_Package_Instantiation): No instantiated body is needed if the
11090         main unit is generic. Efficient, and avoid anomalies when a instance
11091         appears in a package accessed through rtsfind.
11092
11093 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
11094
11095         * exp_ch6.adb (Expand_N_Function_Call): If stack checking is enabled,
11096         do not generate a declaration for a temporary if the call is part of a
11097         library-level instantiation.
11098
11099 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
11100
11101         * sem_util.adb (Explain_Limited_Type): Ignore internal components when
11102         searching for a limited component to flag.
11103
11104         * exp_attr.adb (Freeze_Stream_Subprogram): Subsidiary procedure to
11105         expansion of Input, to account for the fact that the implicit call
11106         generated by the attribute reference must freeze the user-defined
11107         stream subprogram. This is only relevant to 'Input, because it can
11108         appear in an object declaration, prior to the body of the subprogram.
11109
11110         * sem_ch13.adb (Rep_Item_Too_Late): Make the error non-serious, so that
11111         expansion can proceed and further errors uncovered.
11112         (Minor clean up): Fix cases of using | instead of \ for continuation
11113         messages.
11114
11115 2004-10-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11116
11117         * cuintp.c, decl.c, utils2.c: Use gcc_assert and gcc_unreachable.
11118
11119         * trans.c (assoc_to_constructor): Fix unused var warning if no checking.
11120         (gnat_gimplify_expr, case ADDR_EXPR): Fix error in last change.
11121         Use gcc_assert and gcc_unreachable.
11122
11123         * decl.c (gnat_to_gnu_entity, case object): Check and process a
11124         specified alignment before validating size.
11125         (gnat_to_gnu_entity) <E_Modular_Integer_Subtype>: Create a
11126         stripped-down declaration for the type of the inner field when making
11127         a JM type.
11128
11129         * utils.c (finish_record_type): Do not compute the size in units
11130         incrementally. Instead compute it once for the rep clause case.
11131         Use gcc_assert and gcc_unreachable.
11132
11133 2004-10-04  Vincent Celier  <celier@gnat.com>
11134
11135         * a-dirval-mingw.adb (Invalid_Character): Add '\' as invalid character
11136         in file name.
11137         (Is_Valid_Path_Name): Take '/' as a directory separator.
11138
11139 2004-10-04  Vincent Celier  <celier@gnat.com>
11140
11141         * prj-part.adb (Parse_Single_Project): Call Is_Extending_All
11142         (Extended_Project) only if Extended_Project is defined, to avoid
11143         assertion error.
11144         (Post_Parse_Context_Clause): Always call Set_Path_Name_Of with a
11145         resolved path.
11146         (Parse_Single_Project): Ditto.
11147
11148         * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Do not call
11149         Add_To_Project_Path for virtual projects.
11150
11151 2004-10-04  Vincent Celier  <celier@gnat.com>
11152
11153         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
11154         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
11155         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb,
11156         mlib-tgt-vxworks.adb, mlib-tgt.adb (Build_Dynamic_Library): New
11157         parameter Options_2.
11158
11159         * mlib-prj.ads, mlib-prj.adb (Build_Library): Call
11160         Build_Dynamic_Library with an empty Options_2.
11161
11162         * mlib-utl.ads, mlib-utl.adb (Gcc): Parameter Options_2 has no
11163         default anymore.
11164
11165         * makegpr.adb (Get_Imported_Directories.add): Remove trailing
11166         directory separator, if any.
11167         (Gprmake): Do not allow mains on the command line for library projects.
11168         Do not attempt to link when the project is a library project.
11169         (Library_Opts): New table to store Library_Options.
11170         (Build_Library): If Library_Options is specified, pass these options
11171         when building a shared library.
11172
11173 2004-10-04  Jose Ruiz  <ruiz@act-europe.fr>
11174
11175         * s-tposen.adb (Service_Entry): The object must be always unlocked at
11176         the end of this procedure now that the unlock operation was inserted
11177         by the expander.
11178
11179 2004-10-04  Jose Ruiz  <ruiz@act-europe.fr>
11180
11181         * targparm.ads, targparm.adb (Targparm_Tags): Add PAS value
11182         corresponding to the Preallocated_Stacks flags in System.
11183         (Get_Target_Parameters): Including the processing for
11184         Preallocated_Stacks.
11185
11186         * system.ads, system-vxworks-x86.ads, system-darwin-ppc.ads,
11187         system-vms_64.ads, system-unixware.ads, system-linux-ia64.ads,
11188         system-freebsd-x86.ads, system-lynxos-ppc.ads, system-lynxos-x86.ads,
11189         system-linux-x86_64.ads, system-tru64.ads, system-aix.ads,
11190         system-vxworks-sparcv9.ads, system-vxworks-xscale.ads,
11191         system-solaris-x86.ads, system-irix-o32.ads, system-irix-n32.ads,
11192         system-hpux.ads, system-vxworks-m68k.ads, system-linux-x86.ads,
11193         system-vxworks-mips.ads, system-os2.ads, system-interix.ads,
11194         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
11195         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
11196         system-vxworks-alpha.ads: Add the flag Preallocated_Stacks, that is
11197         used to signal whether the compiler creates the required stacks and
11198         descriptors for the different tasks (when True) or it is done by the
11199         underlying operating system at run time (when False).
11200         It is initially set to False in all targets.
11201
11202         * exp_ch9.adb (Expand_N_Task_Type_Declaration): Create the task stack
11203         if it is supported by the target.
11204         (Make_Task_Create_Call): Pass the stack address if it has been
11205         previously created. Otherwise pass a Null_Address.
11206
11207         * snames.adb: Add _stack.
11208
11209         * snames.ads: Add Name_uStack. Required to allow the expander to
11210         statically allocated task stacks.
11211
11212         * s-tarest.ads, s-tarest.adb (Create_Restricted_Task): Add
11213         Stack_Address argument.
11214         Check that its value is equal to Null_Address because this target does
11215         not support the static stack allocation.
11216
11217 2004-10-04  Thomas Quinot  <quinot@act-europe.fr>
11218
11219         * usage.adb: Change "pragma inline" to "pragma Inline" in information
11220         and error messages
11221
11222 2004-10-04  Thomas Quinot  <quinot@act-europe.fr>
11223
11224         * exp_dist.adb: Split declaration of asynchronous flag out of
11225         Add_RACW_Read_Attribute.
11226         Minor reformatting for better alignment with PolyORB version.
11227         Store the entity for the asynchronous flag of an RACW, rather than the
11228         expression, in the asynchronous flags table. This will allow this flag
11229         to be used in other subprograms beside Add_RACW_Read_Attribute.
11230
11231 2004-10-04  Thomas Quinot  <quinot@act-europe.fr>
11232
11233         * g-socket.ads, g-socket.adb, g-socthi.adb, socket.c,
11234         g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
11235         g-soccon-interix.ads, g-soccon-solaris.ads, g-soccon-vms.adb,
11236         g-soccon-mingw.ads, g-soccon-vxworks.ads, g-soccon-freebsd.ads,
11237         g-soccon.ads, g-soccon-unixware.ads, g-soccon-tru64.ads:  Add new
11238         sockets constant MSG_NOSIGNAL (Linux-specific).
11239         Add new sockets constant MSG_Forced_Flags, list of flags to be set on
11240         all Send operations.
11241         For Linux, set MSG_NOSIGNAL on all send operations to prevent them
11242         from trigerring SIGPIPE.
11243         Rename components to avoid clash with Ada 2005 possible reserved
11244         word 'interface'.
11245         (Check_Selector): When the select system call returns with an error
11246         condition, propagate Socket_Error to the caller.
11247
11248 2004-10-01  Jan Hubicka  <jh@suse.cz>
11249
11250         * misc.c (gnat_expand_body): Update call of tree_rest_of_compilation.
11251
11252 2004-09-23  Robert Dewar  <dewar@gnat.com>
11253
11254         PR ada/17540
11255
11256         * sem_prag.adb (Process_Import_Or_Interface): Don't set Is_Public here,
11257         instead do this at freeze time (we won't do it if there is an address
11258         clause).
11259         Change "pragma inline" to "pragma Inline" in information and error
11260         messages.
11261         Minor reformatting.
11262
11263         * freeze.adb (Check_Address_Clause): Remove previous change, not the
11264         right way of doing things after all.
11265         (Freeze_Entity): For object, set Is_Public for imported entities
11266         unless there is an address clause present.
11267
11268 2004-09-21  Olivier Hainque  <hainque@act-europe.fr>
11269
11270         * decl.c (gnat_to_gnu_entity) <E_General_Access_Type>: Check for a
11271         dummy designated type via TYPE_MODE instead of COMPLETE_TYPE_P. This
11272         ensures proper handling of types with rep clauses, which might have
11273         their TYPE_SIZE set already.
11274
11275 2004-09-21  Robert Dewar  <dewar@gnat.com>
11276
11277         * decl.c (gnat_to_gnu_type, case E_Modular_Integer_Type): Wrap modular
11278         packed array types in both little- and big-endian cases. This change
11279         ensures that we no longer count on the unused bits being initialized
11280         for such types (and in particular ensures that equality testing will
11281         only read the relevant bits).
11282         Change name TYPE_LEFT_JUSTIFIED_MODULAR_P to TYPE_JUSTIFIED_MODULAR_P
11283         These changes mean that we no longer need to initialize small packed
11284         arrays.
11285         (gnat_to_gnu_entity) <E_Record_Subtype>: Apply the same
11286         optimization to an LJM field as to its parent field.
11287
11288         * ada-tree.h, trans.c, utils.c, utils2.c:
11289         Change name TYPE_LEFT_JUSTIFIED_MODULAR_P to TYPE_JUSTIFIED_MODULAR_P
11290
11291 2004-09-20  Jan Hubicka  <jh@suse.cz>
11292
11293         * utils.c (gnat_finalize): Remove.
11294         (end_subprog_body): Directly call cgraph_finalize_function;
11295         do not lower the nested functions.
11296
11297 2004-09-20  Robert Dewar  <dewar@gnat.com>
11298
11299         PR ada/17540
11300
11301         * freeze.adb (Check_Address_Clause): Reset Is_Imported and Is_Public
11302         if an address clause is present, since that means that the Import
11303         should be ignored.
11304
11305 2004-09-20  Arnaud Charlet  <charlet@act-europe.fr>
11306
11307         * 5tsystem.ads: Removed, no longer used.
11308
11309 2004-09-17  Jeffrey D. Oldham  <oldham@codesourcery.com>
11310             Zack Weinberg  <zack@codesourcery.com>
11311
11312         * ada-tree.def: Use tree_code_class enumeration constants
11313         instead of code letters.
11314         * ada-tree.h, decl.c, misc.c, trans.c, utils.c, utils2.c:
11315         Update for new tree-class enumeration constants.
11316
11317 2004-09-17  Vincent Celier  <celier@gnat.com>
11318
11319         * prj-attr-pm.ads, prj-attr-pm.adb: New files, to split some private
11320         capabilities of the general project manager.
11321
11322 2004-09-09  Vincent Celier  <celier@gnat.com>
11323
11324         * a-direct.ads: Add pragma Ada_05
11325         (Directory_Entry_Type): Give default value to component Kind to avoid
11326         not initialized warnings.
11327
11328         * a-direct.adb (Current_Directory): Remove directory separator at the
11329         end.
11330         (Delete_Directory, Delete_Tree): Raise Name_Error if Directory is not
11331         an existing directory.
11332         (Fetch_Next_Entry): Give default value to variable Kind to avoid warning
11333         (Size (String)): Function C_Size returns Long_Integer, not File_Size.
11334         Convert the result to File_Size.
11335
11336         * prj.ads: (Project_Error): New exception
11337
11338         * prj-attr.adb: Except in procedure Initialize, Fail comes from
11339         Prj.Com, not from Osint.
11340         (Attrs, Package_Attributes): Tables moved to private part of spec
11341         (Add_Attribute, Add_Unknown_Package): Moved to new child package
11342         Prj.Attr.PM.
11343         (Register_New_Package (Name, Attributes), Register_New_Attribute): Raise
11344         Prj.Project_Error after call to Fail.
11345         (Register_New_Package (Name, Id)): Set Id to Empty_Package after calling
11346         Fail. Check that package name is not already in use.
11347
11348         * prj-attr.ads: Comment updates to indicate that all subprograms may be
11349         used by tools, not only by the project manager, and to indicate that
11350         exception Prj.Prj_Error may be raised in case of problem.
11351         (Add_Unknown_Package, Add_Attribute): Moved to new child package
11352         Prj.Attr.PM.
11353         (Attrs, Package_Attributes): Table instantiations moved from the body to
11354         the private part to be accessible from Prj.Attr.PM body.
11355
11356         * prj-dect.adb (Parse_Package_Declaration): Call Add_Unknown_Package
11357         from new package Prj.Attr.PM.
11358         (Parse_Attribute_Declaration): Call Add_Attribute from new package
11359         Prj.Attr.PM.
11360
11361         * Makefile.in: Add prj-attr-pm.o to gnatmake object list
11362
11363         * gnatbind.adb (Gnatbind): Correct warning message (Elaboration_Check
11364         instead of Elaboration_Checks).
11365
11366         * a-calend.adb: Minor reformatting
11367
11368 2004-09-09  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11369
11370         * gigi.h (maybe_pad_type): New declaration.
11371         (create_subprog_type): New arg RETURNS_BY_TARGET_PTR.
11372
11373         * ada-tree.h: (TYPE_RETURNS_BY_TARGET_PTR_P): New macro.
11374
11375         * cuintp.c: Convert to use buildN.
11376
11377         * decl.c (maybe_pad_type): No longer static.
11378         (gnat_to_gnu_entity, case E_Function): Handle case of returning by
11379         target pointer.
11380         Convert to use buildN.
11381
11382         * trans.c (call_to_gnu): Add arg GNU_TARGET; support
11383         TYPE_RETURNS_BY_TARGET_PTR_P.  All callers changed.
11384         (gnat_to_gnu, case N_Assignment_Statement): Call call_to_gnu if call on
11385         RHS.
11386         (gnat_to_gnu, case N_Return): Handle TYPE_RETURN_BY_TARGET_PTR_P.
11387         (gnat_gimplify_expr, case ADDR_EXPR): New case.
11388         Convert to use buildN.
11389
11390         * utils2.c (gnat_build_constructor): Also set TREE_INVARIANT and
11391         TREE_READONLY for const.
11392         Convert to use buildN.
11393
11394         * utils.c (create_subprog_type): New operand RETURNS_BY_TARGET_PTR.
11395         (create_var_decl): Refine when TREE_STATIC is set.
11396         Convert to use buildN.
11397
11398 2004-09-09  Gary Dismukes  <dismukes@gnat.com>
11399
11400         * gnat_ugn.texi: Delete text relating to checking of ali and object
11401         consistency.
11402
11403         * a-except.adb (Rcheck_*): Add pragmas No_Return for each of these
11404         routines.
11405
11406 2004-09-09  Jose Ruiz  <ruiz@act-europe.fr>
11407
11408         * gnat_ugn.texi: Add Detect_Blocking to the list of configuration
11409         pragmas recognized by GNAT.
11410
11411         * gnat_rm.texi: Document pragma Detect_Blocking.
11412
11413         * s-solita.adb (Timed_Delay_T): When pragma Detect_Blocking is active,
11414         raise Program_Error if called from a protected operation.
11415
11416         * s-taprob.adb (Lock): When pragma Detect_Blocking is active increase
11417         the protected action nesting level.
11418         (Lock_Read_Only): When pragma Detect_Blocking is active increase the
11419         protected action nesting level.
11420         (Unlock): When pragma Detect_Blocking is active decrease the protected
11421         action nesting level.
11422
11423         * s-taskin.adb (Initialize_ATCB): Initialize to 0 the
11424         Protected_Action_Nesting.
11425
11426         * s-taskin.ads: Adding the field Protected_Action_Nesting to the
11427         Common_ATCB record. It contains the dynamic level of protected action
11428         nesting for each task. It is needed for checking whether potentially
11429         blocking operations are called from protected operations.
11430         (Detect_Blocking): Adding a Boolean constant reflecting whether pragma
11431         Detect_Blocking is active or not in the partition.
11432
11433         * s-tasren.adb (Call_Simple): When pragma Detect_Blocking is active,
11434         raise Program_Error if called from a protected operation.
11435         (Task_Entry_Call): When pragma Detect_Blocking is active, raise
11436         Program_Error if called from a protected operation.
11437         (Timed_Task_Entry_Call): When pragma Detect_Blocking is active, raise
11438         Program_Error if called from a protected operation.
11439
11440         * s-tassta.adb (Abort_Tasks): When pragma Detect_Blocking is active,
11441         raise Program_Error if called from a protected operation.
11442
11443         * s-tpoben.adb (Lock_Entries): When pragma Detect_Blocking is active,
11444         raise Program_Error if called from a protected operation, and increase
11445         the protected action nesting level.
11446         (Lock_Read_Only_Entries): When pragma Detect_Blocking is active, raise
11447         Program_Error if called from a protected operation, and increase the
11448         protected action nesting level.
11449         (Unlock_Entries): When pragma Detect_Blocking is active decrease the
11450         protected action nesting level.
11451
11452         * s-tposen.adb (Lock_Entry): When pragma Detect_Blocking is active,
11453         raise Program_Error if called from a protected operation, and increase
11454         the protected action nesting level.
11455         (Lock_Read_Only_Entry): When pragma Detect_Blocking is active, raise
11456         Program_Error if called from a protected operation, and increase the
11457         protected action nesting level.
11458         (Protected_Single_Entry_Call): When pragma Detect_Blocking is active,
11459         raise Program_Error if called from a protected operation.
11460         (Timed_Protected_Single_Entry_Call): When pragma Detect_Blocking is
11461         active, raise Program_Error if called from a protected operation.
11462         (Unlock_Entry): When pragma Detect_Blocking is active decrease the
11463         protected action nesting level.
11464
11465         * sem_util.adb (Check_Potentially_Blocking_Operation): Remove the
11466         insertion of the statement raising Program_Error. The run time
11467         contains the required machinery for handling that.
11468
11469         * sem_util.ads: Change comment associated to procedure
11470         Check_Potentially_Blocking_Operation.
11471         This procedure does not insert a call for raising the exception because
11472         that is currently done by the run time.
11473
11474         * raise.h (__gnat_set_globals): Pass the detect_blocking parameter.
11475
11476         * init.c: Add the global variable __gl_detect_blocking that indicates
11477         whether pragma Detect_Blocking is active (1) or not (0). Needed for
11478         making the pragma available at run time.
11479         (__gnat_set_globals): Pass and update the detect_blocking parameter.
11480
11481         * lib-writ.adb (Write_ALI): Set the DB flag in the ali file if
11482         pragma Detect_Blocking is active.
11483
11484         * lib-writ.ads: Document the Detect_Blocking flag (DB) in ali files.
11485
11486         * ali.adb (Scan_ALI): Set the Detect_Blocking value to true if the flag
11487         DB is found in the ali file. Any unit compiled with pragma
11488         Detect_Blocking active forces its effect in the whole partition.
11489
11490         * a-retide.adb (Delay_Until): Raise Program_Error if pragma
11491         Detect_Blocking is active and delay is called from a protected
11492         operation.
11493
11494         * bindgen.adb (Gen_Adainit_Ada): When generating the call to
11495         __gnat_set_globals, pass 1 as Detect_Blocking parameter if pragma
11496         Detect_Blocking is active (0 otherwise).
11497         (Gen_Adainit_C): When generating the call to __gnat_set_globals, pass 1
11498         as Detect_Blocking parameter if pragma Detect_Blocking is active (0
11499         otherwise).
11500
11501 2004-09-09  Thomas Quinot  <quinot@act-europe.fr>
11502
11503         * gnat_rm.texi: Rename GNAT.Perfect_Hash.Generators to
11504         GNAT.Perfect_Hash_Generators, and remove the empty GNAT.Perfect_Hash
11505         package.
11506
11507         * s-parint.ads, s-parint.adb (Get_RAS_Info): New subprogram.
11508         (Register_Receiving_Stub): Add Subp_Info formal parameter.
11509         Update API in placeholder implemetation of s-parint to reflect changes
11510         in distribution runtime library.
11511
11512         * sem_ch3.adb (Expand_Derived_Record): Rename to
11513         Expand_Record_Extension.
11514
11515         * sem_disp.adb (Check_Controlling_Formals): Improve error message for
11516         primitive operations of potentially distributed object types that have
11517         non-controlling anonymous access formals.
11518
11519         * sem_dist.ads, sem_dist.adb (Build_RAS_Primitive_Specification): New
11520         subprogram.
11521         New implementation of expansion for remote access-to-subprogram types,
11522         based on the RACW infrastructure.
11523         This version of sem_dist is compatible with PolyORB/DSA as well as
11524         GLADE.
11525
11526         * sem_prag.adb (Analyze_Pragma, case Pragma_Asynchronous): For a pragma
11527         Asynchrronous that applies to a remote access-to-subprogram type, mark
11528         the underlying RACW type as asynchronous.
11529
11530         * link.c: FreeBSD uses GNU ld: set __gnat_objlist_file_supported and
11531          __gnat_using_gnu_linker to 1.
11532
11533         * Makefile.rtl, impunit.adb, g-perhas.ads, g-pehage.ads,
11534         g-pehage.adb: Rename GNAT.Perfect_Hash.Generators to
11535         GNAT.Perfect_Hash_Generators, and remove the empty
11536         GNAT.Perfect_Hash package.
11537
11538         * atree.adb: Minor reformatting
11539
11540         * exp_ch3.adb (Expand_Derived_Record): Rename to
11541         Expand_Record_Extension.
11542         (Build_Record_Init_Proc.Build_Assignment): The default expression in
11543         a component declaration must remain attached at that point in the
11544         tree so New_Copy_Tree copies it if the enclosing record type is derived.
11545         It is therefore necessary to take a copy of the expression when building
11546         the corresponding assignment statement in the init proc.
11547         As a side effect, in the case of a derived record type, we now see the
11548         original expression, without any rewriting that could have occurred
11549         during expansion of the ancestor type's init proc, and we do not need
11550         to go back to Original_Node.
11551
11552         * exp_ch3.ads (Expand_Derived_Record): Rename to
11553         Expand_Record_Extension.
11554
11555         * exp_dist.ads, exp_dist.adb (Underlying_RACW_Type): New subprogram.
11556         Returns the RACW type used to implement a remote access-to-subprogram
11557         type.
11558         (Add_RAS_Proxy_And_Analyze, Build_Remote_Subprogram_Proxy_Type):
11559         New subprograms. Used to create a proxy tagged object for a remote
11560         subprogram. The proxy object is used as the designated object
11561         for RAS values on the same partition (unless All_Calls_Remote applies).
11562         (Build_Get_Unique_RP_Call): New subprogram. Build a call to
11563         System.Partition_Interface.Get_Unique_Remote_Pointer.
11564         (Add_RAS_Access_TSS, Add_RAS_Dereference_TSS):
11565         Renamed from Add_RAS_*_Attribute.
11566         (Add_Receiving_Stubs_To_Declarations): Generate a table of local
11567         subprograms.
11568         New implementation of expansion for remote access-to-subprogram types,
11569         based on the RACW infrastructure.
11570
11571         * exp_dist.ads (Copy_Specification): Update comment to note that this
11572         function can copy the specification from either a subprogram
11573         specification or an access-to-subprogram type definition.
11574
11575 2004-09-09  Ed Schonberg  <schonberg@gnat.com>
11576
11577         * sem_type.adb (Disambiguate): Handle properly an accidental ambiguity
11578         in an instance, between an explicit subprogram an one inherited from a
11579         type derived from an actual.
11580
11581         * exp_ch6.adb (Expand_N_Subprogram_Body): If polling is enabled, do not
11582         add a polling call if the subprogram is to be inlined by the back-end,
11583         to avoid repeated calls with multiple inlinings.
11584
11585         * checks.adb (Apply_Alignment_Check): If the expression in the address
11586         clause is a call whose name is not a static entity (e.g. a dispatching
11587         call), treat as dynamic.
11588
11589 2004-09-09  Robert Dewar  <dewar@gnat.com>
11590
11591         * g-trasym.ads: Minor reformatting
11592
11593         * exp_ch3.adb (Component_Needs_Simple_Initialization): Don't except
11594         packed arrays, since unused bits are expected to be zero for a
11595         comparison.
11596
11597 2004-09-09  Eric Botcazou  <ebotcazou@act-europe.fr>
11598
11599         * exp_pakd.ads: Fix an inacurracy and a couple of typos in the head
11600         comment.
11601
11602 2004-09-09  Pascal Obry  <obry@gnat.com>
11603
11604         * mdll.ads, mdll.adb (Build_Dynamic_Library): New parameter Map_File to
11605         enable map file generation. Add the right option to generate the map
11606         file if Map_File is set to True.
11607
11608         * gnatdll.adb (Gen_Map_File): New variable.
11609         (Syntax): Add info about new -m (Map_File) option.
11610         (Parse_Command_Line): Add support for -m option.
11611         (gnatdll): Pass Gen_Map_File to Build_Dynamic_Library calls.
11612         Minor reformatting.
11613
11614 2004-09-09  Laurent Pautet  <pautet@act-europe.fr>
11615
11616         * gnatls.adb: Add a very verbose mode -V. Such mode is required by the
11617         new gnatdist implementation.
11618         Define a subpackage isolating the output routines specific to this
11619         verbose mode.
11620
11621 2004-09-09  Joel Brobecker  <brobecker@gnat.com>
11622
11623         * Makefile.rtl: (GNATRTL_NONTASKING_OBJS): Add g-dynhta.
11624
11625         * gnat_ugn.texi (Main Subprograms): Fix typo. Deduced, not deducted.
11626
11627 2004-09-09  Cyrille Comar  <comar@act-europe.fr>
11628
11629         * opt.adb (Set_Opt_Config_Switches): Use Ada_Version_Runtime to compile
11630         internal unit.
11631
11632         * opt.ads: Add Ada_Version_Runtime constant used to decide which
11633         version of the language is used to compile the run time.
11634
11635 2004-09-09  Arnaud Charlet  <charlet@act-europe.fr>
11636
11637         * sem_util.adb (Requires_Transient_Scope): Re-enable handling
11638         of variable length temporaries for function return now that the
11639         back-end and gigi support it.
11640
11641 2004-09-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11642
11643         * misc.c (gnat_print_type): Use TYPE_RM_SIZE_NUM.
11644
11645         * trans.c (struct stmt_group): Delete field GLOBAL.
11646         (gnat_init_stmt_group): Do not initialize it.
11647         (call_to_gnu): Use save_expr, not protect_multiple_eval.
11648         (Exception_Handler_to_gnu_sjlj): Call build_int_cst, not build_int_2
11649         (gnat_to_gnu, case N_Character_Literal, N_String_Literal): Likewise.
11650         (gnat_to_gnu, case N_Compilation_Unit): Do not set GLOBAL in stmt group.
11651         (start_stmt_group): Likewise.
11652         (add_stmt, add_decl_expr): Rework handling of global DECL_EXPRs.
11653
11654         * utils2.c (ggc.h): Include.
11655         (build_call_raise): Call build_int_cst, not build_int_2.
11656
11657         * utils.c (gnat_init_decl_processing): Fix arg to
11658         build_common_tree_nodes.
11659         (create_subprog_type): Do not use SET_TYPE_CI_CO_LIST.
11660         (gnat_define_builtin): Set built_in_decls.
11661         (init_gigi_decls): Call build_int_cst, not build_int_2.
11662
11663         * ada-tree.h (struct lang_decl, struct lang_type): Field is type tree.
11664         (GET_TYPE_LANG_SPECIFIC, SET_TYPE_LANG_SPECIFIC): New macros.
11665         (GET_DECL_LANG_SPECIFIC, SET_DECL_LANG_SPECIFIC): Likewise.
11666         (TYPE_CI_CO_LIST, SET_TYPE_CI_CO_LIST, TYPE_MODULE,
11667         SET_TYPE_MODULE): Use them.
11668         (TYPE_INDEX_TYPE, SET_TYPE_INDEX_TYPE, TYPE_DIGITS_VALUE): Likewise.
11669         (SET_TYPE_DIGITS_VALUE, TYPE_UNCONSTRAINED_ARRAY): Likewise.
11670         (SET_TYPE_UNCONSTRAINED_ARRAY, TYPE_ADA_SIZE,
11671         SET_TYPE_ADA_SIZE): Likewise.
11672         (TYPE_ACTUAL_BOUNDS, SET_TYPE_ACTUAL_BOUNDS): Likewise.
11673         (DECL_CONST_CORRESPONDING_VAR,
11674         SET_DECL_CONST_CORRESPONDING_VAR): Likewise.
11675         (DECL_ORIGINAL_FIELD, SET_DECL_ORIGINAL_FIELD): Likewise.
11676         (TYPE_RM_SIZE_INT, TYPE_RM_SIZE_ENUM, SET_TYPE_RM_SIZE_ENUM): Deleted.
11677         (TYPE_RM_SIZE_NUM): New macro.
11678         (TYPE_RM_SIZE): Modified to use above.
11679
11680         * cuintp.c: (build_cst_from_int): New function.
11681         (UI_To_gnu): Use it.
11682
11683         * decl.c (gnat_to_gnu_entity): Use TYPE_RM_SIZE_NUM.
11684         (make_type_from_size): Avoid changing TYPE_UNSIGNED of a type.
11685         (gnat_substitute_in_type, case ARRAY_TYPE): If old had a
11686         MIN_EXPR for the size, copy it into new.
11687
11688 2004-09-01  Robert Dewar  <dewar@gnat.com>
11689
11690         * exp_ch6.adb (Expand_Call): Properly handle validity checks for
11691         packed indexed component where array is an IN OUT formal. This
11692         generated garbage code previously.
11693
11694         * gnat_ugn.texi: Document -fverbose-asm
11695
11696         * gnat-style.texi: Minor updates (note that boolean constants and
11697         variables are joined with AND/OR rather than short circuit forms).
11698
11699 2004-09-01  Ed Schonberg  <schonberg@gnat.com>
11700
11701         * exp_util.adb (Safe_Unchecked_Type_Conversion): Conversion is safe if
11702         it is an upward conversion of an untagged type with no representation
11703         change.
11704
11705 2004-09-01  Thomas Quinot  <quinot@act-europe.fr>
11706
11707         * rtsfind.ads: Move RCI_Subp_Info and RCI_Subp_Info_Array to
11708         System.Partition_Interface.
11709
11710         * checks.adb (Apply_Access_Checks): Do not generate checks when
11711         expander is not active (but check for unset reference to prefix of
11712         dereference).
11713
11714         * sem_prag.adb (Analyze_Pragma, case Pragma_Debug): Uniformly rewrite
11715         pragma Debug as an if statement with a constant condition, for
11716         consistent treatment of entity references contained within the
11717         enclosed procedure call.
11718
11719 2004-09-01  Vincent Celier  <celier@gnat.com>
11720
11721         * bindgen.adb: (Set_EA_Last): New procedure
11722         (Gen_Exception_Table_Ada, Gen_Exception_Table_C): Use new procedure
11723         Set_EA_Last.
11724         (Gen_Adafinal_Ada): If no finalization, adafinal does nothing
11725         (Gen_Output_File_Ada): Always call Gen_Adafinal_Ada, so that SAL can be
11726         linked without errors.
11727         (Gen_Exception_Table_Ada): Correct bugs when generating code for arrays
11728         ST and EA.
11729         (Gen_Exception_Table_C): Correct same bugs
11730
11731         * vms_data.ads: Add new qualifier /VERBOSE_ASM to GCC_Switches
11732
11733         * g-os_lib.adb (Normalize_Pathname.Get_Directory): When Dir is empty,
11734         on Windows, make sure that the drive letter is in upper case.
11735
11736         * g-os_lib.ads (Normalize_Pathname): Add a comment to indicate that on
11737         Windows, when the drive letter is added and Case_Sensitive is True, the
11738         drive letter is forced to upper case.
11739
11740         * mlib-tgt-irix.adb (Build_Dynamic_Library): Transfer all -lxxx options
11741         to Options_2 for the call to MLib.Utl.Gcc.
11742
11743         * bld.adb (Put_Include_Project): Use '/', not '\' on Windows as
11744         directory separator when defining BASE_DIR.
11745
11746 2004-09-01  Pascal Obry  <obry@gnat.com>
11747
11748         * gprcmd.adb (Extend): Do not output trailing directory separator. This
11749         is not needed and it confuses Windows GNU/make which does not report
11750         directory terminated by a slash as a directory.
11751         (gprcmd): Idem for "pwd" internal command.
11752
11753         * Makefile.generic: Use __GPRCOLON__ instead of pipe character in
11754         target names rewrite to fix regressions with recent version of
11755         GNU/make. Starting with GNU/make 3.80 the pipe character was not
11756         handled properly anymore.
11757
11758 2004-09-01  Andreas Schwab  <schwab@suse.de>
11759
11760         * Make-lang.in (EXTRA_GNATBIND_OBJS): Revert last change.
11761         * raise.c [!IN_RTS]: Undef abort.
11762
11763 2004-08-27  Nathan Sidwell  <nathan@codesourcery.com>
11764
11765         * utils2.c (build_allocator): Use ssize_int.
11766
11767         * utils.c (gnat_init_decl_processing): Ada has a signed sizetype.
11768
11769 2004-08-27  Andreas Schwab  <schwab@suse.de>
11770
11771         * Make-lang.in (EXTRA_GNATBIND_OBJS): Add errors.o.
11772
11773 2004-08-25  Nathan Sidwell  <nathan@codesourcery.com>
11774             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11775
11776         * ada-tree.h (TYPE_RM_SIZE_INT): Use TYPE_LANG_SLOT_1.
11777
11778 2004-08-25  Nathan Sidwell  <nathan@codesourcery.com>
11779
11780         * cuintp.c (UI_To_gnu): Adjust build_int_cst calls.
11781         * trans.c (Exception_Handler_to_gnu_sjlj, gnat_to_gnu): Likewise.
11782         * utils.c (init_gigi_decls): Likewise.
11783         * utils2.c (build_call_raise, build_allocator): Likewise.
11784
11785 2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
11786
11787         * utils.c (gnat_init_decl_processing): Adjust
11788         build_common_tree_nodes call.
11789
11790 2004-08-20  Nathan Sidwell  <nathan@codesourcery.com>
11791
11792         * utils2.c (build_allocator): Use build_int_cst for negative
11793         size types.
11794
11795 2004-08-18  Richard Henderson  <rth@redhat.com>
11796
11797         * misc.c (LANG_HOOKS_HONOR_READONLY): Remove.
11798
11799 2004-08-16  Nathan Sidwell  <nathan@codesourcery.com>
11800
11801         * cuintp.c (UI_To_gnu): Be more conservative with build_int_cst
11802         call.s
11803         * trans.c (Exception_Handler_to_gnu_sjlj): Likewise.
11804         (gnat_to_gnu): Likewise.
11805
11806 2004-08-16  Pascal Obry  <obry@gnat.com>
11807
11808         * adaint.c (__gnat_prj_add_obj_files): Set to 0 only on Win32 for GCC
11809         backend prior to GCC 3.4. With GCC 3.4 we are using the GCC's shared
11810         option and not mdll anymore. Update comment.
11811
11812 2004-08-16  Pascal Obry  <obry@gnat.com>
11813
11814         * bld.adb (Put_Include_Project): Properly handle directory separators
11815         on Windows.
11816
11817 2004-08-16  Ed Schonberg  <schonberg@gnat.com>
11818
11819         * sem_ch4.adb (Try_Object_Operation): Restructure code. Optimize by
11820         decreasing the number of allocated junk nodes while searching for the
11821         appropriate subprogram.
11822
11823 2004-08-15  Nathan Sidwell  <nathan@codesourcery.com>
11824
11825         * cuintp.c (UI_To_gnu): Use build_int_cst..
11826         * trans.c (Exception_Handler_to_gnu_sjlj, gnat_to_gnu): Likewise.
11827         * utils.c (init_gigi_decls): Likewise.
11828         * utils2.c (build_call_raise): Likewise.
11829
11830 2004-08-13  Olivier Hainque  <hainque@act-europe.fr>
11831
11832         * decl.c (gnat_to_gnu_entity) <E_Variable>: When building an allocator
11833         for a global aliased object with a variable size and an unconstrained
11834         nominal subtype, pretend there is no initializer if the one we have is
11835         incomplete, and avoid referencing an inexistant component in there. The
11836         part we have will be rebuilt anyway and the reference may confuse
11837         further operations.
11838
11839 2004-08-13  Thomas Quinot  <quinot@act-europe.fr>
11840
11841         * einfo.ads: Minor reformatting
11842
11843         * lib-writ.adb (Output_Main_Program_Line): Do not set parameter
11844         restrictions in the ALI if we only want to warn about violations.
11845
11846 2004-08-13  Vincent Celier  <celier@gnat.com>
11847
11848         * ali.adb (Scan_ALI): Initialize component Body_Needed_For_SAL to False
11849         when creating a new Unit_Record in table Units.
11850
11851         * gnatls.adb (Output_Unit): In verbose mode, output the restrictions
11852         that are violated, if any.
11853
11854         * prj-nmsc.adb (Ada_Check.Get_Path_Names_And_Record_Sources): Do not
11855         add directory separator if path already ends with a directory separator.
11856
11857 2004-08-13  Ed Schonberg  <schonberg@gnat.com>
11858
11859         * rtsfind.adb (Entity_Not_Defined): If the error ocurrs in a predefined
11860         unit, this is an attempt to inline a construct that is not available in
11861         the current restricted mode, so abort rather than trying to continue.
11862
11863         * sem_ch3.adb (Build_Underlying_Full_View): If the new type has
11864         discriminants that rename those of the parent, recover names of
11865         original discriminants for the constraint on the full view of the
11866         parent.
11867         (Complete_Private_Subtype): Do not create a subtype declaration if the
11868         subtype is an itype.
11869
11870         * gnat_rm.texi: Added section on implementation of discriminated
11871         records with default values for discriminants.
11872
11873 2004-08-13  Ed Schonberg  <schonberg@gnat.com>
11874
11875         PR ada/15601
11876         * sem_res.adb (Make_Call_Into_Operator): Handle properly the case where
11877         the second operand is overloaded.
11878
11879 2004-08-10  Richard Henderson  <rth@redhat.com>
11880
11881         * utils.c (gnat_install_builtins): Remove __builtin_stack_alloc,
11882         add __builtin_alloca.
11883
11884 2004-08-10  Richard Henderson  <rth@redhat.com>
11885
11886         * config-lang.in (boot_language): Yes.
11887
11888 2004-08-09  Thomas Quinot  <quinot@act-europe.fr>
11889
11890         * g-socket.adb (Abort_Selector): Initialize Buf to prevent valgrind
11891         from complaining on potential uninitialized reference.
11892         Change calls to GNAT.Sockets.Thin.Is_Socket_In_Set to account for
11893         new specification and test explicitly for non-zero return value.
11894
11895         * g-socthi.ads (Is_Socket_In_Set): Declare imported function as
11896         returning C.int, to avoid using a derived boolean type.
11897
11898         * exp_ch5.adb (Make_Tag_Ctrl_Assignments): Use
11899         Duplicate_Subexpr_No_Checks in preference to direct use of
11900         Remove_Side_Effects and New_Copy_Tree.
11901         Clear Comes_From_Source on prefix of 'Size attribute reference.
11902
11903         * g-socthi.adb, g-socthi-vms.adb, g-socthi-mingw.adb,
11904         g-socthi-vxworks.adb: Change calls to
11905         GNAT.Sockets.Thin.Is_Socket_In_Set to account for new specification
11906         and test explicitly for non-zero return value.
11907
11908         * g-socthi-vms.ads, g-socthi-mingw.ads, g-socthi-vxworks.ads:
11909         (Is_Socket_In_Set): Declare imported function as returning C.int, to
11910         avoid using a derived boolean type.
11911
11912 2004-08-09  Albert Lee  <lee@gnat.com>
11913
11914         * system-irix-n32.ads: Refine tasking priority constants for IRIX.
11915
11916 2004-08-09  Pascal Obry  <obry@gnat.com>
11917
11918         * gnat_ugn.texi: Document new way to build DLLs on Windows using
11919         GCC's -shared option.
11920
11921         * mlib-tgt-mingw.adb (Build_Dynamic_Library): Pass GCC's options into
11922         Options_2 parameter (options put after object files).
11923
11924 2004-08-09  Olivier Hainque  <hainque@act-europe.fr>
11925
11926         * decl.c (gnat_to_gnu_entity) <E_Array_Subtype>: Adjust condition to
11927         ignore overflows on low and high bounds of an index to also account for
11928         differences in signedness between sizetype and gnu_index_subtype.
11929         These are as legitimate as the ones caused by a lower TYPE_PRECISION
11930         on sizetype.
11931
11932 2004-08-09  Robert Dewar  <dewar@gnat.com>
11933
11934         * s-solita.ads, s-solita.adb: Minor reformatting
11935
11936         * gnat_rm.texi: Add documentation for pragma Profile (Restricted)
11937         Move pragma Restricted_Run_Time, No_Run_Time, Ravenscar to new
11938         obsolescent section
11939         Add note that No_Implicit_Conditionals does not suppress
11940         run time constraint checks.
11941
11942         * vms_conv.ads: Minor reformatting
11943
11944         * s-secsta.adb: Use SS_Ptr instead of Mark_Id as stack pointer (cleanup
11945         and necessary for following change).
11946         (Mark): Return new format Mark_Id containing sec stack address
11947         (Release): Use sec stack address from Mark_Id avoiding Self call
11948
11949         * s-secsta.ads: Define SS_Ptr to be used instead of Mark_Id as stack
11950         pointer (cleanup and necessary for following change).
11951         Define Mark_Id as record containing address of secondary stack, that way
11952         Release does not need to find the stack again, decreasing the number of
11953         calls to Self and improving efficiency.
11954
11955         * sem_util.ads: Add a ??? comment for Is_Local_Variable_Reference
11956
11957         * sem_ch5.adb (Analyze_Case_Statement): Add circuitry to track value of
11958         case variable into the individual case branches when possible.
11959
11960         * sem_ch11.adb: Minor reformatting
11961
11962         * prj.ads: Correct spelling of suffixs
11963
11964         * prj-nmsc.adb: Minor reformatting
11965         Correct spelling suffixs throughout (also in identifiers)
11966
11967         * freeze.adb: Minor spelling correction
11968
11969         * exp_ch2.adb: Cleanups to handling of Current_Value
11970         (no functional effect).
11971
11972         * bld.adb: Correct spelling of suffixs
11973
11974         * einfo.adb (Enclosing_Dynamic_Scope): Defend against junk argument
11975
11976 2004-08-09  Ed Schonberg  <schonberg@gnat.com>
11977
11978         PR ada/15408
11979
11980         * sem_ch7.adb (Install_Private_Declarations): In the body of the
11981         package or of a child, private entities are both immediately_visible
11982         and not hidden.
11983
11984 2004-08-09  Ed Schonberg  <schonberg@gnat.com>
11985
11986         * sem_eval.adb (Eval_Integer_Literal): If the context is Any_Integer,
11987         there are no range checks on the value of the literal.
11988
11989         * exp_ch7.adb (Insert_Actions_In_Scope_Around): If the node being
11990         wrapped is the triggering alternative of an asynchronous select, action
11991         statements mustbe inserted before the select itself.
11992
11993         * sem_attr.adb (Analyze_Attribute, case 'Size): Handle properly the
11994         case where the prefix is a protected function call.
11995         (Resolve_Attribute, case 'Access): The attribute reference on a
11996         subprogram is legal in a generic body if the subprogram is declared
11997         elsewhere.
11998
11999 2004-08-09  Vincent Celier  <celier@gnat.com>
12000
12001         * makegpr.adb (Build_Library): Link with g++ if C++ is one of the
12002         languages, otherwise building the library may fail with unresolved
12003         symbols.
12004         (Compile_Sources): Do not build libraries if -c switch is used
12005
12006         * gnatlink.adb (Process_Args): New switches -M and -Mmap
12007         (Write_Usage): If map file creation is supported, output new switches
12008         -M and -Mmap.
12009         (Gnatlink): When -M is specified, add the necessary switch(es) to the
12010         gcc call, when supported.
12011
12012         * Makefile.in: Added indepsw.o to the object list for gnatlink
12013         Specified the AIX, GNU/Linux and Windows versions of indepsw.adb
12014
12015         * indepsw-aix.adb, indepsw-linux.adb, indepsw-mingw.adb,
12016         indepsw.adb, indepsw.ads: New files.
12017
12018 2004-08-09  Bernard Banner  <banner@gnat.com>
12019
12020         * system-vxworks-x86.ads, s-vxwork-x86.ads: New files.
12021
12022         * Makefile.in: add section for vxworks x86
12023
12024 2004-08-09  Hristian Kirtchev  <kirtchev@gnat.com>
12025
12026         * exp_ch3.adb (Build_Init_Statements): Add extra condition to deal with
12027         per-object constrained components where the discriminant is of an
12028         Access type.
12029         (Build_Record_Init_Proc): Add condition to prevent the inheritance of
12030         the parent initialization procedure for derived Unchecked_Unions.
12031         Instead, derived Unchecked_Unions build their own initialization
12032         procedure.
12033         (Build_Variant_Record_Equality): Implement Unchecked_Union equality.
12034         Check the body of the subprogram for details.
12035         (Freeze_Record_Type): Prevent the inheritance of discriminant checking
12036         functions for derived Unchecked_Union types by introducing a condition.
12037         Allow the creation of TSS equality functions for Unchecked_Unions.
12038         (Make_Eq_Case): Rename formal parameter Node to E in function signature.
12039         Add formal parameter Discr to function signature. Discr is used to
12040         control the generated case statement for Unchecked_Union types.
12041         (Make_Eq_If): Rename formal parameter Node to E in function signature.
12042
12043         * exp_ch4.adb (Build_Equality_Call): Implement equality calls for
12044         Unchecked_Unions.
12045         Check the body of the subprogram for details.
12046         (Expand_Composite_Equality): Augment composite type equality to include
12047         correct handling of Unchecked_Union components.
12048         (Expand_N_In): Add condition to detect illegal membership tests when the
12049         subtype mark is a constrained Unchecked_Union and the expression lacks
12050         inferable discriminants, and build a Raise_Program_Error node.
12051         (Expand_N_Op_Eq): Add function Has_Unconstrained_UU_Component. Used
12052         to detect types that contain components of unconstrained Unchecked_Union
12053         subtype. Add condition to detect equality between types that have an
12054         unconstrained Unchecked_Union component, and build a Raise_Program_Error
12055         node. Add condition to detect equality between Unchecked_Union types
12056         that lack inferable discriminants, and build a Raise_Program_Error node.
12057         Otherwise build a TSS equality function call.
12058         (Expand_N_Type_Conversion): Add condition to detect illegal conversions
12059         from a derived Unchecked_Union to an unconstrained non-Unchecked_Union
12060         with the operand lacking inferable discriminants, and build a Raise_
12061         Program_Error node.
12062         (Expand_Record_Equality): Remove guard that prevents Unchecked_Union
12063         composite equality.
12064         (Has_Inferable_Discriminants): Implement new predicate for objects and
12065         expressions of Unchecked_Union type. Check the body of subprogram for
12066         details.
12067         (Has_Unconstrained_UU_Components): Add function
12068         Component_Is_Unconstrained_UU. It is used to detect whether a single
12069         component is of an unconstrained Unchecked_Union subtype. Add function
12070         Variant_Is_Unconstrained_UU. It is used to detect whether a single
12071         component inside a variant is of an unconstrained Unchecked_Union type.
12072
12073         * exp_ch5.adb (Expand_Assign_Record): Add condition to copy the
12074         inferred discriminant values. Add condition to generate a case
12075         statement with an inferred discriminant as the switch.
12076         (Make_Component_List_Assign): Introduce a Boolean flag that determines
12077         the behaviour of the subprogram in the presence of an Unchecked_Union.
12078         Add condition to trigger the usage of the inferred discriminant value
12079         as the generated case statement switch.
12080         (Make_Field_Assign): Introduce a Boolean flag that determines the
12081         behaviour of the subprogram in the presence of an Unchecked_Union. Add
12082         condition to trigger the usage of the inferred discriminant value as
12083         the right-hand side of the generated assignment.
12084
12085         * exp_ch6.adb (Expand_Call): Add condition to skip extra actual
12086         parameter generation when dealing with Unchecked_Unions.
12087
12088         * checks.adb (Apply_Discriminant_Check): Do not apply discriminant
12089         checks for Unchecked_Unions.
12090
12091         * einfo.ads: Update comment on usage of flag Has_Per_Object_Constraint
12092
12093         * exp_attr.adb (Expand_N_Attribute_Reference): Produce
12094         Raise_Program_Error nodes for the execution of Read and Write
12095         attributes of Unchecked_Union types and the execution of Input and
12096         Output attributes of Unchecked_Union types that lack default
12097         discriminant values.
12098
12099         * sem_prag.adb (Analyze_Pragma): Remodel the analysis of pragma
12100         Unchecked_Union. Add procedure Check_Component. It is used to inspect
12101         per-object constrained components of Unchecked_Unions for being
12102         Unchecked_Unions themselves. Add procedure Check_Variant. It is used to
12103         check individual components withing a variant.
12104
12105         * sem_res.adb (Resolve_Comparison_Op): Remove guard that prevents
12106         comparison of Unchecked_Unions.
12107         (Resolve_Equality_OP): Remove guard that prevents equality between
12108         Unchecked_Unions.
12109
12110         * sem_util.adb (Build_Component_Subtype): Add guard to prevent creation
12111         of component subtypes for Unchecked_Union components.
12112         (Get_Actual_Subtype): Add condition that returs the Unchecked_Union type
12113         since it is the actual subtype.
12114
12115         * sem_ch12.adb (Instantiate_Type): Add condition to detect the correct
12116         pass of Unchecked_Union subtypes as generic actuals to formal types
12117         that lack known_discriminant_parts or that are derived Unchecked_Union
12118         types, and do nothing. In any other case, produce an error message.
12119
12120         * sem_ch3.adb (Analyze_Component_Declaration): Add function
12121         Contains_POC. It determines whether a constraint uses the discriminant
12122         of an enclosing record type.
12123         Add condition to detect per-object constrained component and set the
12124         appropriate flag.
12125         (Derived_Type_Declaration): Remove guard that prevents derivation from
12126         Unchecked_Union types.
12127         (Process_Subtype): Remove quard that prevents the creation of Unchecked_
12128         Union subtypes.
12129
12130         * sem_ch4.adb (Analyze_Selected_Component): Correct the detection of
12131         references to Unchecked_Union discriminants.
12132
12133         * sem_ch6.adb (Create_Extra_Formals): Add condition to skip extra
12134         formal generation when dealing with Unchecked_Unions.
12135         (Set_Actual_Subtypes): Add condition to prevent generation of actual
12136         subtypes for Unchecked_Unions.
12137
12138         * sem_ch7.adb (Analyze_Package_Specification): Add procedure
12139         Inspect_Unchecked_Union_Completion. It is used to detect incorrect
12140         completions of discriminated partial views by Unchecked_Unions and
12141         produce an error message.
12142
12143 2004-08-09  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12144
12145         * trans.c (struct stmt_group): New field, GLOBAL.
12146         (global_stmt_group, gnu_elab_proc_decl, build_unit_elab): Deleted.
12147         (struct elab_info): New struct.
12148         (elab_info_list, gnu_elab_proc_stack): New variables.
12149         (Compilation_Unit_to_gnu): New procedure.
12150         (gigi): Call it and also handle elaboration procs we've saved.
12151         (gnat_init_stmt_group): Don't set global_stmt_group; instead initialize
12152         global field from parent.
12153         (gnat_to_gnu): Get decl from gnu_elab_proc_stack.
12154         (gnat_to_gnu, case N_Compilation_Unit): Call Compilation_Unit_to_gnu.
12155         (start_stmt_group): Initialize global field from parent.
12156         (add_decl_expr): Set to global for current statement group.
12157         (gnat_gimplify_expr, case NULL_EXPR): Add operand 0 to pre list, not
12158         post.
12159
12160         * utils.c (global_bindings_p): True when no current_function_decl; no
12161         longer check current_binding_level.
12162
12163 2004-08-09  Ben Brosgol  <brosgol@gnat.com>
12164
12165         * xgnatugn.adb: Added logic to deal with @ifset/@ifclear for edition
12166         choice.
12167
12168         * gnat_rm.texi, gnat_ugn.texi: Added edition conditionalization logic.
12169
12170 2004-08-06  Andreas Schwab  <schwab@suse.de>
12171
12172         * utils.c (gnat_define_builtin): Remove second parameter of
12173         make_decl_rtl.
12174         (begin_subprog_body): Likewise.
12175
12176 2004-07-26  Arnaud Charlet  <charlet@act-europe.fr>
12177
12178         * sem_util.adb (Requires_Transient_Scope): Temporarily disable
12179         optimization, not supported by the tree-ssa back-end.
12180
12181 2004-07-26  Olivier Hainque  <hainque@act-europe.fr>
12182
12183         * s-mastop-irix.adb: Update comments.
12184
12185         * a-except.adb (Exception_Information): Raise Constraint_Error if
12186         exception Id is Null_Id.
12187         This is required behavior, which is more reliably and clearly checked
12188         at the top level interface level.
12189
12190 2004-07-26  Javier Miranda  <miranda@gnat.com>
12191
12192         * exp_aggr.adb (Build_Array_Aggr_Code): Do not build the initialization
12193         call if a component has no default_expression and the box is used.
12194
12195         * sem_aggr.adb (Resolve_Array_Aggregate): If a component has no
12196         default_expression and you use box, it behaves as if you had declared a
12197         stand-alone object.
12198         (Resolve_Record_Aggregate): If a component has no default_expression and
12199         you use box, it behaves as if you had declared a stand-alone object.
12200
12201         * sem_ch10.adb (Install_Siblings): Do not make visible the private
12202         entities of private-with siblings.
12203
12204 2004-07-26  Ed Schonberg  <schonberg@gnat.com>
12205
12206         * sem_ch3.adb (Build_Underlying_Full_View): If this is the full view
12207         for a component of an itype, set the parent pointer for analysis,
12208         there is no list in which to insert it.
12209
12210         * sem_res.adb (Resolve): Call Rewrite_Renamed_Operator only for
12211         bona-fide renamings, not for inherited operations.
12212
12213         * exp_ch4.adb (Expand_Allocator_Expression): If the allocator is an
12214         actual for a formal that is an access parameter, create local
12215         finalization list even if the expression is not an aggregate.
12216
12217 2004-07-26  Ed Schonberg  <schonberg@gnat.com>
12218
12219         PR ada/16213
12220         * sem_ch8.adb (Attribute_Renaming, Check_Library_Level_Renaming):
12221         Diagnose properly illegal subprogram renamings that are library units.
12222
12223 2004-07-26  Ed Schonberg  <schonberg@gnat.com>
12224
12225         PR ada/15588
12226         * sem_util.adb (Is_OK_Variable_For_Out_Formal): If actual is a type
12227         conversion rewritten as an unchecked conversion, check that original
12228         expression is a variable.
12229
12230         * exp_ch4.adb (Expand_N_Type_Conversion): If rewriting as an
12231         unchecked_conversion, create new node rather than rewriting in place,
12232         to preserve original construct.
12233
12234 2004-07-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12235
12236         * gigi.h (gnat_expand_body): Deleted.
12237
12238         * Make-lang.in: (trans.o): Depends on function.h.
12239
12240         * misc.c: (gnat_expand_body): Moved to here.
12241
12242         * trans.c (gnat_expand_body_1): Deleted.
12243         (gnat_expand_body): Moved from here.
12244         (gnat_to_gnu): N_Implicit_Label_Declaration forces being in elab proc.
12245         (add_stmt): Check for marked visited with global_bindings_p.
12246         (gnat_gimplify_expr, case COMPONENT_REF): New case.
12247         (gnat_gimplify_expr, case NULL_EXPR): Set TREE_NO_WARNING for temp.
12248
12249         * utils2.c (build_binary_op, case MODIFY_EXPR): Put LHS in a
12250         VIEW_CONVERT_EXPR if not operation type.
12251
12252         * utils.c (update_pointer_to): Set DECL_ORIGINAL_FIELD for
12253         fat pointer.
12254
12255         * decl.c, cuintp.c, gigi.h, misc.c, trans.c, utils.c, utils2.c: Minor
12256         changes: reformatting of negation operators, removing unneeded
12257         inequality comparison with zero, converting equality comparisons with
12258         zero to negations, changing int/0/1 to bool/false/true, replace calls
12259         to gigi_abort with abort, and various other similar changes.
12260
12261 2004-07-26  Vincent Celier  <celier@gnat.com>
12262
12263         * gnatcmd.adb (GNATCmd): Add processing for new built-in command
12264         "setup".
12265
12266         * make.adb (Gnatmake): Fail when a library is not present and there is
12267         no object directory.
12268
12269         * mlib-prj.adb (Check_Library): No need to check if the library needs
12270         to be rebuilt if there is no object directory, hence no object files
12271         to build the library.
12272
12273         * opt.ads (Setup_Projects): New Boolean flag.
12274
12275         * prj-nmsc.adb (Locate_Directory): New parameter Project, Kind and
12276         Location.
12277         Create directory when Kind /= "" and in "gnat setup". Report error if
12278         directory cannot be created.
12279         (Ada_Check): Create library interface copy dir if it does not exist
12280         and we are in "gnat setup".
12281         (Find_Sources): No error if in "gnat setup" and no Ada sources were
12282         found.
12283         (Language_Independent_Check): Create object directory, exec directory
12284         and/or library directory if they do not exist and we are in
12285         "gnat setup".
12286
12287         * vms_conv.ads: (Command_Type): New command Setup.
12288
12289         * vms_conv.adb (Initialize): Add Setup component of Cammand_List.
12290
12291         * vms_data.ads: Add qualifiers/switches for new built-in command
12292         "setup".
12293
12294 2004-07-25  Richard Henderson  <rth@redhat.com>
12295
12296         * utils.c (create_subprog_decl): Set DECL_ARTIFICIAL and
12297         DECL_IGNORED_P on RESULT_DECL.
12298
12299 2004-07-20  Olivier Hainque  <hainque@act-europe.fr>
12300
12301         * a-elchha.adb (Last_Chance_Handler): Remove the bogus buffer dynamic
12302         allocation and potentially overflowing update with
12303         Tailored_Exception_Information. Use the sec-stack free procedural
12304         interface to output Exception_Information instead.
12305
12306         * a-except.adb (To_Stderr): New subprogram for character, and string
12307         version moved from a-exextr to be visible from other separate units.
12308         (Tailored_Exception_Information): Remove the procedural version,
12309         previously used by the default Last_Chance_Handler and not any more.
12310         Adjust various comments.
12311
12312         * a-exexda.adb: Generalize the exception information procedural
12313         interface, to minimize the use of secondary stack and the need for
12314         local buffers when the info is to be output to stderr:
12315         (Address_Image): Removed.
12316         (Append_Info_Character): New subprogram, checking for overflows and
12317         outputing to stderr if buffer to fill is of length 0.
12318         (Append_Info_String): Output to stderr if buffer to fill is of length 0.
12319         (Append_Info_Address, Append_Info_Exception_Name,
12320         Append_Info_Exception_Message, Append_Info_Basic_Exception_Information,
12321         Append_Info_Basic_Exception_Traceback,
12322         Append_Info_Exception_Information): New subprograms.
12323         (Append_Info_Nat, Append_Info_NL): Use Append_Info_Character.
12324         (Basic_Exception_Info_Maxlength, Basic_Exception_Tback_Maxlength,
12325         Exception_Info_Maxlength, Exception_Name_Length,
12326         Exception_Message_Length): New subprograms.
12327         (Exception_Information): Use Append_Info_Exception_Information.
12328         (Tailored_Exception_Information): Use
12329         Append_Info_Basic_Exception_Information.
12330         Export services for the default Last_Chance_Handler.
12331
12332         * a-exextr.adb (To_Stderr): Remove. Now in a-except to be usable by
12333         other separate units.
12334
12335 2004-07-20  Vincent Celier  <celier@gnat.com>
12336
12337         * clean.adb, mlib-utl.adb, osint.adb, makegpr.adb: Minor reformatting.
12338
12339 2004-07-20  Ed Schonberg  <schonberg@gnat.com>
12340
12341         * freeze.adb (Freeze_Entity): If entity is a discriminated record type,
12342         emit itype references for the designated types of component types that
12343         are declared outside of the full record declaration, and that may
12344         denote a partial view of that record type.
12345
12346 2004-07-20  Ed Schonberg  <schonberg@gnat.com>
12347
12348         PR ada/15607
12349         * sem_ch3.adb (Build_Discriminated_Subtype): Do not attach a subtype
12350         which is the designated type in an access component declaration, to the
12351         list of incomplete dependents of the parent type, to avoid elaboration
12352         issues with out-of-scope subtypes.
12353         (Complete_Private_Subtype): Recompute Has_Unknown_Discriminants from the
12354         full view of the parent.
12355
12356 2004-07-20  Ed Schonberg  <schonberg@gnat.com>
12357
12358         PR ada/15610
12359         * sem_ch8.adb (Find_Expanded_Name): If name is overloaded, reject
12360         entities that are hidden, such as references to generic actuals
12361         outside an instance.
12362
12363 2004-07-20  Javier Miranda  <miranda@gnat.com>
12364
12365         * sem_ch4.adb (Try_Object_Operation): New subprogram that gives
12366         support to the new notation.
12367         (Analyze_Selected_Component): Add call to Try_Object_Operation.
12368
12369 2004-07-20  Jose Ruiz  <ruiz@act-europe.fr>
12370
12371         * s-taprob.adb: Adding the elaboration code required for initializing
12372         the tasking soft links that are common to the full and the restricted
12373         run times.
12374
12375         * s-tarest.adb (Init_RTS): Tasking soft links that are shared with the
12376         restricted run time has been moved to the package
12377         System.Soft_Links.Tasking.
12378
12379         * s-tasini.adb (Init_RTS): Tasking soft links that are shared with the
12380         restricted run time has been moved to the package
12381         System.Soft_Links.Tasking.
12382
12383         * Makefile.rtl: Add entry for s-solita.o in run-time library list.
12384
12385         * s-solita.ads, s-solita.adb: New files.
12386
12387 2004-07-20  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12388
12389         * trans.c (Identifier_to_gnu, Pragma_to_gnu, Attribute_to_gnu,
12390         Case_Statement_to_gnu): Split off from gnat_to_gnu.
12391         (Loop_Statement_to_gnu, Subprogram_Body_to_gnu, call_to_gnu,
12392         Handled_Sequence_Of_Statements_to_gnu, Exception_Handler_to_gnu_sjlj,
12393         Exception_Handler_to_gnu_zcx): Likewise.
12394
12395 2004-07-17  Joseph S. Myers  <jsm@polyomino.org.uk>
12396
12397         * gigi.h (builtin_function): Declare.
12398
12399 2004-07-15  Robert Dewar  <dewar@gnat.com>
12400
12401         * makegpr.adb, s-secsta.ads, sem_ch3.adb, sem_case.adb: Minor
12402         reformatting
12403
12404         * gnat_ugn.texi: Add instantiation of direct_io or sequential_io with
12405         access values as an example of a warning.
12406
12407         * gnat_rm.texi: Document new attribute Has_Access_Values
12408
12409         * gnat-style.texi: Document that box comments belong on nested
12410         subprograms
12411
12412         * sem_util.ads (Has_Access_Values): Improved documentation
12413
12414         * s-finimp.ads, s-finimp.adb: Fix spelling error in comment
12415
12416         * sem_prag.adb (Check_Duplicated_Export_Name): New procedure
12417         (Process_Interface_Name): Call to this new procedure
12418         (Set_Extended_Import_Export_External_Name): Call to this new procedure
12419
12420         * s-mastop-x86.adb, 9drpc.adb: Fix spelling error in comment
12421
12422         * a-direio.ads, a-sequio.ads: Warn if Element_Type has access values
12423
12424         * einfo.ads: Minor comment typo fixed
12425
12426 2004-07-15  Jose Ruiz  <ruiz@act-europe.fr>
12427
12428         * snames.adb: Add _atcb.
12429
12430         * snames.ads: Add Name_uATCB.
12431
12432         * s-tarest.adb (Create_Restricted_Task): ATCBs are always preallocated
12433         (in the expanded code) when using the restricted run time.
12434
12435         * s-tarest.ads (Create_Restricted_Task): Created_Task transformed into
12436         a in parameter in order to allow ATCBs to be preallocated (in the
12437         expanded code).
12438
12439         * s-taskin.adb (Initialize_ATCB): T converted into a in parameter in
12440         order to allow ATCBs to be preallocated. In case of error, the ATCB is
12441         deallocated in System.Tasking.Stages.
12442
12443         * s-taskin.ads (Initialize_ATCB): T converted into a in parameter in
12444         order to allow ATCBs to be preallocated.
12445
12446         * s-tassta.adb (Create_Task): In case of error the ATCB is deallocated
12447         here. It was previously done in Initialize_ATCB.
12448
12449         * rtsfind.ads: Make the Ada_Task_Control_Block visible.
12450
12451         * exp_ch9.adb: Preallocate the Ada_Task_Control_Block when using the
12452         Restricted run time.
12453
12454         * exp_ch3.adb: When using the Restricted run time, pass the
12455         preallocated Ada_Task_Control_Block when creating a task.
12456
12457 2004-07-15  Ed Schonberg  <schonberg@gnat.com>
12458
12459         * sem_util.adb (Normalize_Actuals): If there are no actuals on a
12460         function call that is itself an actual in an enclosing call, diagnose
12461         problem here rather than assuming that resolution will catch it.
12462
12463         * sem_ch7.adb (Analyze_Package_Specification): If the specification is
12464         the local copy of a generic unit for a formal package, and the generic
12465         is a child unit, install private part of ancestors before compiling
12466         private part of spec.
12467
12468         * sem_cat.adb (Validate_Categorization_Dependency): Simplify code to
12469         use scope entities rather than tree structures, to handle properly
12470         parent units that are instances rewritten as bodies for inlining
12471         purposes.
12472
12473         * sem_ch10.adb (Get_Parent_Entity, Implicit_With_On_Parent,
12474         Remove_Parents): Handle properly a parent unit that is an
12475         instantiation, when the unit has been rewritten as a body for inlining
12476         purposes.
12477
12478         * par.adb (Goto_List): Global variable to collect goto statements in a
12479         given unit, for use in detecting natural loops.
12480
12481         * par-ch5.adb (P_Goto_Statement): Add goto to global Goto_List, for
12482         use in detecting natural loops.
12483
12484         * par-labl.adb (Find_Natural_Loops): Recognize loops create by
12485         backwards goto's, and rewrite as a infinite loop, to improve locality
12486         of temporaries.
12487
12488         * exp_util.adb (Force_Evaluation): Recognize a left-hand side
12489         subcomponent that includes an indexed reference, to prevent the
12490         generation of copies that would miscompile the desired assignment
12491         statement.
12492         (Build_Task_Image_Decls): Add a numeric suffix to
12493         generated name for string variable, to avoid spurious conflicts with
12494         the name of the type of a single protected object.
12495
12496         * exp_ch4.adb (Expand_Array_Equality): If indices are distinct, use a
12497         loop with an explicit exit statement, to avoid generating an
12498         out-of-range value with 'Succ leading to spurious constraint_errors
12499         when compiling with -gnatVo.
12500
12501 2004-07-15  Thomas Quinot  <quinot@act-europe.fr>
12502
12503         * sem_ch4.adb (Analyze_Slice): Always call Analyze on the prefix: it
12504         might not be analyzed yet, even if its Etype is already set (case of an
12505         unchecked conversion built using Unchecked_Convert_To, for example).
12506         If the prefix has already been analyzed, this will be a nop anyway.
12507
12508         * exp_ch5.adb (Make_Tag_Ctrl_Assignment): For an assignment of a
12509         controller type, or an assignment of a record type with controlled
12510         components, copy only user data, and leave the finalization chain
12511         pointers untouched.
12512
12513 2004-07-15  Vincent Celier  <celier@gnat.com>
12514
12515         * make.adb (Collect_Arguments): Improve error message when attempting
12516         to compile a source not part of any project, when -x is not used.
12517
12518         * prj.ads: (Defined_Variable_Kind): New subtype
12519
12520         * prj-attr.adb (Register_New_Package): Two new procedures to register
12521         a package with or without its attributes.
12522         (Register_New_Attribute): Mew procedure to register a new attribute in a
12523         package.
12524         New attribute oriented subprograms: Attribute_Node_Id_Of,
12525         Attribute_Kind_Of, Set_Attribute_Kind_Of, Attribute_Name_Of,
12526         Variable_Kind_Of, Set_Variable_Kind_Of, Optional_Index_Of,
12527         Next_Attribute.
12528         New package oriented subprograms: Package_Node_Id_Of,
12529         Add_Unknown_Package, First_Attribute_Of, Add_Attribute.
12530
12531         * prj-attr.ads (Attribute_Node_Id): Now a private, self initialized
12532         type.
12533         (Package_Node_Id): Now a private, self initialized type
12534         (Register_New_Package): New procedure to register a package with its
12535         attributes.
12536         New attribute oriented subprograms: Attribute_Node_Id_Of,
12537         Attribute_Kind_Of, Set_Attribute_Kind_Of, Attribute_Name_Of,
12538         Variable_Kind_Of, Set_Variable_Kind_Of, Optional_Index_Of,
12539         Next_Attribute.
12540         New package oriented subprograms: Package_Node_Id_Of,
12541         Add_Unknown_Package, First_Attribute_Of, Add_Attribute.
12542
12543         * prj-dect.adb (Parse_Attribute_Declaration,
12544         Parse_Package_Declaration): Adapt to new spec of Prj.Attr.
12545
12546         * prj-makr.adb (Make): Parse existing project file before creating
12547         other files. Fail if there was an error during parsing.
12548
12549         * prj-proc.adb (Add_Attributes, Process_Declarative_Items): Adapt to
12550         new spec of Prj.Attr.
12551
12552         * prj-strt.adb (Attribute_Reference, Parse_Variable_Reference): Adapt
12553         to new spec of Prj.Attr.
12554
12555 2004-07-15  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12556
12557         * utils2.c: Fix typo in comment.
12558
12559 2004-07-14  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12560
12561         * trans.c (add_decl_expr): Clear TREE_READONLY if clear DECL_INITIAL.
12562         * utils.c (unchecked_convert): Don't do two VIEW_CONVERT_EXPRs.
12563
12564 2004-07-14  Andreas Schwab  <schwab@suse.de>
12565
12566         * trans.c (gnat_init_stmt_group): Remove duplicate definition.
12567
12568 2004-07-13  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12569
12570         * decl.c: (gnat_to_gnu_entity, object case): Convert initializer to
12571         object type.
12572         (gnat_to_gnu_entity, case E_Record_Subtype): Properly set
12573         TYPE_STUB_DECL.
12574
12575         * misc.c (gnat_types_compatible_p): New function.
12576         (LANG_HOOKS_TYPES_COMPATIBLE_P): New hook, to use it.
12577         (LANG_HOOKS_TYPE_MAX_SIZE, gnat_type_max_size): New.
12578
12579         * trans.c (gigi): Move processing of main N_Compilation_Unit here.
12580         (gnat_to_gnu, case N_Compilation_Unit): Just handle nested case here.
12581         (add_stmt): Force walking of sizes and DECL_INITIAL for DECL_EXPR.
12582         (mark_visited): Don't mark dummy type.
12583         (tree_transform <N_Procedure_Call_Statement>): Unless this is an In
12584         parameter, we must remove any LJM building from GNU_NAME.
12585         (gnat_to_gnu, case N_String_Literal): Fill in indices in CONSTRUCTOR.
12586         (pos_to_constructor): Use int_const_binop.
12587         (gnat_to_gnu, case N_Identifier): Don't reference DECL_INITIAL of
12588         PARM_DECL.
12589
12590         * utils.c (gnat_init_decl_processing): Don't make two "void" decls.
12591         (gnat_pushlevel): Set TREE_USE on BLOCK node.
12592         (gnat_install_builtins): Add __builtin_memset.
12593
12594 2004-07-13  Olivier Hainque  <hainque@act-europe.fr>
12595
12596         * decl.c (gnat_to_gnu_entity <E_Variable>): If we are making a pointer
12597         for a renaming, stabilize the initialization expression if we are at a
12598         local level.  At the local level, uses of the renaming may be performed
12599         by a direct dereference of the initializing expression, and we don't
12600         want possible variables there to be evaluated for every use.
12601
12602         * trans.c (gnat_stabilize_reference, gnat_stabilize_reference_1):
12603         Propagate TREE_SIDE_EFFECTS and TREE_THIS_VOLATILE to avoid loosing
12604         them on the way.  Account for the fact that we may introduce side
12605         effects in the process.
12606
12607 2004-07-13  Richard Henderson  <rth@redhat.com>
12608
12609         * misc.c (default_pass_by_ref): Use pass_by_reference.
12610
12611 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
12612
12613         * misc.c (LANG_HOOKS_CLEAR_BINDING_STACK, LANG_HOOKS_PUSHLEVEL,
12614         LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
12615
12616 2004-07-08  Richard Henderson  <rth@redhat.com>
12617
12618         * trans.c (gnat_to_gnu <N_Handled_Sequence_Of_Statements>): Update
12619         commentary.
12620
12621 2004-07-06  Vincent Celier  <celier@gnat.com>
12622
12623         * vms_conv.ads: Minor reformatting.
12624         Alphabetical order for enumerated values of type Command_Type, to have
12625         the command in alphabetical order for the usage.
12626
12627         * vms_conv.adb (Process_Argument): Set Keep_Temporary_Files to True for
12628         the special qualifier /KEEP_TEMPORARY_FILES (minimum 6 characters).
12629
12630         * gnat_ugn.texi: Document new switch -dn for the GNAT driver.
12631
12632         * makegpr.adb (Global_Archive_Exists): New global Boolean variable
12633         (Add_Archive_Path): Only add the global archive if there is one.
12634         (Build_Global_Archive): Set Global_Archive_Exists depending if there is
12635         or not any object file to put in the global archive, and don't build
12636         a global archive if there is none.
12637         (X_Switches): New table
12638         (Compile_Link_With_Gnatmake): Pass to gnatmake the -X switches stored
12639         in the X_Switches table, if any.
12640         (Initialize): Make sure the X_Switches table is empty
12641         (Scan_Arg): Record -X switches in table X_Switches
12642
12643         * opt.ads (Keep_Temporary_Files): New Boolean flag, defaulted to False.
12644
12645         * make.adb: Minor comment fix
12646
12647         * gnatname.adb (Gnatname): When not on VMS, and gnatname has been
12648         invoked with directory information, add the directory in front of the
12649         path.
12650
12651         * gnatchop.adb (Gnatchop): When not on VMS, and gnatchop has been
12652         invoked with directory information, add the directory in front of the
12653         path.
12654
12655         * gnatcmd.adb (Delete_Temp_Config_Files): Only delete temporary files
12656         when Keep_Temporary_Files is False.
12657         (GNATCmd): When not on VMS, and the GNAT driver has been invoked with
12658         directory information, add the directory in front of the path.
12659         When not on VMS, handle new switch -dn before the command to set
12660         Keep_Temporary_Files to True.
12661         (Non_VMS_Usage): Use lower case for the non VMS usage: this is valid
12662         everywhere.
12663
12664         * gnatlink.adb (Gnatlink): When not on VMS, and gnatlink has been
12665         invoked with directory information, add the directory in front of the
12666         path.
12667
12668 2004-07-06  Thomas Quinot  <quinot@act-europe.fr>
12669
12670         * snames.ads, snames.adb (Name_Stub): New name for the distributed
12671         systems annex.
12672
12673         * rtsfind.ads: New RTE TC_Object, for DSA/PolyORB.
12674         New RTEs RAS_Proxy_Type and RAS_Proxy_Type_Access, for DSA.
12675
12676         * g-socket.adb (To_Timeval): Fix incorrect conversion of
12677         Selector_Duration to Timeval for the case of 0.0.
12678
12679         * exp_util.ads (Evolve_Or_Else): Fix overenthusiastic copy/paste of
12680         documentation from Evolve_And_Then.
12681
12682 2004-07-06  Jose Ruiz  <ruiz@act-europe.fr>
12683
12684         * s-taprop-tru64.adb, s-taprop-os2.adb,
12685         s-taprop-mingw.adb, s-taprop-posix.adb: Update comment.
12686
12687 2004-07-06  Robert Dewar  <dewar@gnat.com>
12688
12689         * s-osinte-hpux.ads, s-osinte-freebsd.ads,
12690         s-osinte-lynxos.ads, s-taprop-lynxos.adb, s-osinte-tru64.ads,
12691         s-osinte-aix.ads, s-osinte-irix.ads, s-taprop-irix.adb,
12692         s-interr-sigaction.adb, s-taprop-irix-athread.adb,
12693         s-osinte-hpux-dce.adb, s-taprop-hpux-dce.adb,
12694         s-taprop-linux.adb, s-taprop-dummy.adb, s-taprop-solaris.adb,
12695         s-interr-vms.adb, s-osinte-vms.ads, s-taprop-vms.adb,
12696         s-osinte-vxworks.ads, s-osprim-vxworks.adb, a-numaux-x86.adb,
12697         a-except.adb, a-exexpr.adb, a-intsig.adb, a-tags.adb,
12698         a-tags.ads, bindgen.ads, checks.adb, checks.adb,
12699         csets.ads, einfo.ads, einfo.ads, elists.adb, exp_ch4.adb,
12700         exp_ch7.adb, exp_dist.adb, exp_util.adb, freeze.adb,
12701         g-dynhta.adb, gnatmem.adb, g-regexp.adb, inline.adb,
12702         i-os2thr.ads, osint.adb, prj.adb, scng.adb, sem_cat.adb,
12703         sem_ch10.adb, sem_ch12.adb, sem_ch4.adb, sem_ch7.adb,
12704         sem_ch8.adb, sem_disp.adb, sem_prag.adb, sem_res.adb,
12705         sem_type.adb, sem_type.ads, sem_warn.adb, s-ficobl.ads,
12706         s-finimp.adb, s-htable.adb, sinfo.ads, sinput-l.ads,
12707         s-interr.adb, s-interr.ads, sprint.adb, s-tarest.adb,
12708         s-tasini.ads, s-taskin.ads, s-taskin.ads, uname.adb,
12709         vms_data.ads: Minor reformatting,
12710         Fix bad box comment format.
12711
12712         * gnat_rm.texi: Fix minor grammatical error
12713
12714         * sem_attr.adb, exp_attr.adb: New attribute Has_Access_Values
12715
12716         * sem_util.ads, sem_util.adb (Requires_Transient_Scope): Allow many
12717         more cases of discriminated records to be recognized as not needing a
12718         secondary stack.
12719         (Has_Access_Values): New function.
12720
12721         * snames.h, snames.adb, snames.ads: New attribute Has_Access_Values
12722
12723         * cstand.adb, layout.ads, layout.adb, sem_ch13.ads: Change name
12724         Set_Prim_Alignment to Set_Elem_Alignment (more accurate correspondence
12725         with LRM terminology).
12726         Change terminology in comments primitive type => elementary type.
12727
12728 2004-07-06  Ed Schonberg  <schonberg@gnat.com>
12729
12730         PR ada/15602
12731         * sem_ch7.adb (Unit_Requires_Body): For a generic package, the formal
12732         parameters do not impose any requirements on the presence of a body.
12733
12734 2004-07-06  Ed Schonberg  <schonberg@gnat.com>
12735
12736         PR ada/15593
12737         * sem_ch12.adb (Analyze_Package_Instantiation): If the generic is not a
12738         compilation unit and is in an open scope at the point of instantiation,
12739         assume that a body may be present later.
12740
12741 2004-07-06  Ed Schonberg  <schonberg@gnat.com>
12742
12743         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case 'Size):
12744         Improve error message when specified size is not supported.
12745
12746         * sem_ch6.adb (Maybe_Primitive_Operation): A library-level subprogram
12747         is never a primitive operation.
12748
12749 2004-07-05  Andreas Schwab  <schwab@suse.de>
12750
12751         * ada-tree.h (TYPE_LEFT_JUSTIFIED_MODULAR_P): Use
12752         RECORD_OR_UNION_CHECK.
12753         (TYPE_CONTAINS_TEMPLATE_P): Likewise.
12754
12755 2004-07-04  Kelley Cook  <kcook@gcc.gnu.org>
12756
12757         * Make-lang.in (doc/gnat_ugn_unw.texi): Eliminate explicit
12758         dependency on xgnatugn, instead build it via a submake.
12759         (ADA_INFOFILES): Add doc/gnat_ugn_unw.texi.
12760
12761 2004-07-04  Richard Henderson  <rth@redhat.com>
12762
12763         * utils2.c (gnat_mark_addressable): Don't put_var_into_stack.
12764
12765 2004-07-01  Richard Henderson  <rth@redhat.com>
12766
12767         * trans.c (gnat_stabilize_reference): Don't handle RTL_EXPR.
12768         * utils.c (max_size): Likewise.
12769
12770 2004-06-28  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12771
12772         * decl.c: Remove calls to add_decl_expr, pushdecl, rest_of_compilation,
12773         and rest_of_type_compilation; add arg to create_*_decl.
12774         (annotate_decl_with_node): Deleted.
12775         (gnat_to_gnu_entity, case E_Array_Type): Set location of fields.
12776         * gigi.h (get_decls, block_has_vars, pushdecl): Deleted.
12777         (get_current_block_context, gnat_pushdecl): New declarations.
12778         (gnat_init_stmt_group): Likewise.
12779         (create_var_decl, create_type_decl, create_subprog_decl): Add new arg.
12780         * misc.c (LANG_HOOKS_CLEAR_BINDING_STACK): Deleted.
12781         (LANG_HOOKS_GETDECLS, LANG_HOOKS_PUSHDECL): Deleted.
12782         (gnat_init): Call gnat_init_stmt_group.
12783         * trans.c (global_stmt_group, gnu_elab_proc_decl): New variables.
12784         (gnu_pending_elaboration_list): Deleted.
12785         (mark_visited, mark_unvisited, gnat_init_stmt_group): New functions.
12786         (gigi): Rearrange initialization calls and move some to last above.
12787         (gnat_to_gnu): If statement and not in procedure, go into elab proc.
12788         Delete calls to add_decl_expr; add arg to create_*_decl.
12789         (gnat_to_gnu, case N_Loop): Recalculate side effects on COND_EXPR.
12790         (gnat_to_gnu, case N_Subprogram_Body): Move some code to
12791         begin_subprog_body and call it.
12792         Don't push and pop ggc context.
12793         (gnat_to_gnu, case N_Compilation_Unit): Rework to support elab proc.
12794         (add_stmt): Remove handling of DECL_EXPR from here.
12795         If not in function, mark visited.
12796         (add_decl_expr): Put global at top level.
12797         Check for cases of DECL_INITIAL we have to handle here.
12798         (process_type): Add extra arg to create_type_decl.
12799         (build_unit_elab): Rework to just gimplify.
12800         * utils.c (pending_elaborations, elist_stack, getdecls): Deleted.
12801         (block_has_vars, mark_visited, add_pending_elaborations): Likewise.
12802         (get_pending_elaborations, pending_elaborations_p): Likewise.
12803         (push_pending_elaborations, pop_pending_elaborations): Likewise.
12804         (get_elaboration_location, insert_elaboration_list): Likewise.
12805         (gnat_binding_level): Renamed from ada_binding_level.
12806         (init_gnat_to_gnu): Don't clear pending_elaborations.
12807         (global_bindings_p): Treat as global if no current_binding_level.
12808         (set_current_block_context): New function.
12809         (gnat_pushdecl): Renamed from pushdecl; major rework.
12810         All callers changed.
12811         (create_type_decl, create_var_decl, create_subprog_decl): Add new arg.
12812         (finish_record_type): Call call pushdecl for stub decl.
12813         (function_nesting_depth): Deleted.
12814         (begin_subprog_body): Delete obsolete code.
12815         * utils2.c (build_call_alloc_dealloc): Add new arg to create_var_decl.
12816
12817 2004-06-28  Robert Dewar  <dewar@gnat.com>
12818
12819         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
12820         mlib-tgt-irix.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
12821         mlib-tgt-linux.adb, mlib-tgt-solaris.adb, mlib-tgt-solaris.adb,
12822         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
12823         a-strmap.adb, a-strmap.ads, clean.adb: Minor reformatting
12824
12825         * exp_util.adb (Is_Possibly_Unaligned_Slice): Completely rewritten, to
12826         deal with problem of inefficient slices on machines with strict
12827         alignment, when the slice is a component of a composite.
12828
12829         * checks.adb (Apply_Array_Size_Check): Do not special case 64-bit
12830         machines, we need the check there as well.
12831
12832 2004-06-28  Ed Schonberg  <schonberg@gnat.com>
12833
12834         * exp_ch5.adb (Expand_Assign_Array): Use correct condition to
12835         determine safe copying direction for overlapping slice assignments
12836         when component is controlled.
12837
12838         * sem_ch12.adb (Instantiate_Formal_Package): Implicit operations of a
12839         formal derived type in the actual for a formal package are visible in
12840         the enclosing instance.
12841
12842 2004-06-28  Ed Schonberg  <schonberg@gnat.com>
12843
12844         PR ada/15600
12845         * sem_util.adb (Trace_Components): Diagnose properly an illegal
12846         circularity involving a private type whose completion includes a
12847         self-referential component.
12848         (Enter_Name): Use Is_Inherited_Operation to distinguish a source
12849         renaming or an instantiation from an implicit derived operation.
12850
12851 2004-06-28  Pascal Obry  <obry@gnat.com>
12852
12853         * mlib-tgt-mingw.adb: (Library_Exists_For): Remove "lib" prefix from
12854         DLL.
12855         (Library_File_Name_For): Idem.
12856
12857 2004-06-28  Matthew Gingell  <gingell@gnat.com>
12858
12859         * g-traceb.ads: Add explanatory note on the format of addresses
12860         expected by addr2line.
12861
12862 2004-06-28  Jerome Guitton  <guitton@act-europe.fr>
12863
12864         * Makefile.in: Force debugging information on s-tasdeb.adb,
12865         a-except.adb and s-assert.adb needed by the debugger.
12866
12867 2004-06-28  Vincent Celier  <celier@gnat.com>
12868
12869         * make.adb (Collect_Arguments_And_Compile): Change Flag1 to
12870         Need_To_Build_Lib.
12871         (Gnatmake): Ditto.
12872
12873         * mlib-prj.adb (Check_Library): Replace Flag1 with Need_To_Build_Lib
12874
12875         * prj.adb: Minor reformatting
12876         (Project_Empty): Change Flag1 to Need_To_Build_Lib. Remove Flag2.
12877
12878         * prj.ads: Comment updates
12879         Minor reformatting
12880         (Project_Data): Change Flag1 to Need_To_Build_Lib.
12881         Remove Flag2: not used.
12882
12883         * prj-dect.adb (Parse_Declarative_Items): Accept "null" as a
12884         declaration.
12885
12886         * gnat_ugn.texi: Put a "null;" declaration in one project file example
12887
12888         * gnat_rm.texi: Document Empty declarations "null;".
12889
12890         * makegpr.adb (Compile_Link_With_Gnatmake): Put the global archives in
12891         front of the linker options.
12892         (Link_Foreign): Put the global archives and the libraries in front of
12893         the linker options.
12894
12895 2004-06-28  Javier Miranda  <miranda@gnat.com>
12896
12897         * rtsfind.adb: (Get_Unit_Name): Fix typo in comment
12898         (RTU_Loaded): Code cleanup
12899         (Set_RTU_Loaded): New procedure to register as *loaded* explicitly
12900         withed predefined units.
12901
12902         * rtsfind.ads (Set_RTU_Loaded): New procedure to register as *loaded*
12903         explicitly withed predefined units.
12904         Fix typo in comment
12905
12906         * sem_ch10.adb (Analyze_Compilation_Unit): Register as *loaded*
12907         explicitly withed predefined units.
12908
12909 2004-06-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12910
12911         * ada-tree.def (DECL_STMT): Deleted.
12912         * ada-tree.h (IS_ADA_STMT): Now test against STMT_STMT.
12913         (DECL_STMT_VAR): Deleted.
12914         * decl.c: add_decl_stmt now add_decl_expr.
12915         * gigi.h: Likewise.
12916         * trans.c: Likewise.
12917         (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Deleted.
12918         (gnat_to_gnu, case N_Subprogram_Body): Set cfun->function_end_locus.
12919         (add_stmt): Only handle padded type here.
12920         (add_stmt_with_node): Allow gnat_node to not be present.
12921         (gnat_gimplify_stmt, case USE_STMT): Set *STMT_P to null.
12922         (gnat_gimplify_stmt, case DECL_STMT): Deleted.
12923         (gnat_stabilize_reference_1): If COMPONENT_REF of fat pointer,
12924         make a SAVE_EXPR for the entire fat pointer.
12925         * utils.c (pushdecl): Walk a DECL_EXPR in global case.
12926         (create_index_type): Make a DECL_EXPR.
12927         (end_subprog_body): Don't call allocate_struct_function here but
12928         do clear cfun.
12929
12930 2004-06-25  Pascal Obry  <obry@gnat.com>
12931
12932         * makegpr.adb (Build_Library): Remove parameter Lib_Address and
12933         Relocatable from Build_Dynamic_Library call.
12934
12935         * gnat_ugn.texi: Change documentation about Library_Kind. Dynamic and
12936         Relocatable are now synonym.
12937
12938         * Makefile.in: Use s-parame-mingw.adb on MingW platform.
12939
12940         * mlib-prj.adb (Build_Library): Remove DLL_Address constant definition.
12941         Remove parameter Lib_Address and Relocatable from Build_Dynamic_Library
12942         call.
12943
12944         * mlib-tgt.ads, mlib-tgt.adb (Build_Dynamic_Library): Remove parameter
12945         Lib_Address and Relocatable.
12946         (Default_DLL_Address): Removed.
12947
12948         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
12949         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
12950         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-vxworks.adb:
12951         (Build_Dynamic_Library): Remove parameter Lib_Address and Relocatable.
12952         (Default_DLL_Address): Removed.
12953
12954         * mlib-tgt-mingw.adb: Ditto.
12955         (Build_Dynamic_Library): Do not add "lib" prefix to the DLL name.
12956
12957         * s-taprop-mingw.adb (Create_Task): Use Adjust_Storage_Size to compute
12958         the initial thread stack size.
12959
12960         * a-strmap.ads: Move package L to private part as it is not used in
12961         the spec. Found while reading code.
12962
12963 2004-06-25  Olivier Hainque  <hainque@act-europe.fr>
12964
12965         * tracebak.c: Introduce support for a GCC infrastructure based
12966         implementation of __gnat_backtrace.
12967
12968         * raise.c: Don't rely on a C mapping of the GNAT_GCC_Exception record
12969         any more. Use accessors instead. This eases maintenance and relaxes
12970         some alignment constraints.
12971         (_GNAT_Exception structure): Remove the Ada specific fields
12972         (EID_For, Adjust_N_Cleanups_For): New accessors, exported by
12973         a-exexpr.adb.
12974         (is_handled_by, __gnat_eh_personality): Replace component references to
12975         exception structure by use of the new accessors.
12976
12977         * init.c (__gnat_initialize): Adjust comments to match the just
12978         reverted meaning of the -static link-time option.
12979
12980         * adaint.c (convert_addresses): Arrange not to define a stub for
12981         mips-irix any more, as we now want to rely on a real version from a
12982         recent libaddr2line.
12983
12984         * a-exexpr.adb: Provide new accessors to a GNAT_GCC occurrence, so that
12985         the personality routine can use them and not have to rely on a C
12986         counterpart of the record anymore. This simplifies maintenance and
12987         relaxes the constraint of having Standard'Maximum_Alignment match
12988         BIGGEST_ALIGNMENT.
12989         Update comments, and add a section on the common header alignment issue.
12990
12991 2004-06-25  Geert Bosch  <bosch@gnat.com>
12992
12993         * a-ngelfu.adb (Tanh): Use full 20 digit precision for constants in
12994         polynomial approximation. Fixes inconsistency with Cody/Waite algorithm.
12995
12996 2004-06-25  Robert Dewar  <dewar@gnat.com>
12997
12998         * gnat_rm.texi: Fix section on component clauses to indicate that the
12999         restriction on byte boundary placement still applies for bit packed
13000         arrays.
13001         Add comment on stack usage from Initialize_Scalars
13002
13003         * gnat_ugn.texi: Add documentation for -gnatyLnnn
13004
13005         * stylesw.ads, stylesw.adb: Implement new -gnatyLnnn option for
13006         limiting nesting level.
13007
13008         * usage.adb: Add line for -gnatyLnnn switch
13009
13010         * g-debpoo.ads, xtreeprs.adb, sinput.ads, sem_ch13.ads,
13011         sem_ch13.adb, exp_aggr.adb: Minor reformatting
13012
13013         * sem_prag.adb (Process_Atomic_Shared_Volatile): Set Is_Atomic on base
13014         type as well as on the subtype. This corrects a problem in freeze in
13015         setting alignments of atomic types.
13016
13017         * sem_eval.ads: Minor comment typo fixed
13018
13019         * par-util.adb (Push_Scope_Stack): Check for violation of max nesting
13020         level.  Minor reformatting.
13021
13022         * fname.adb (Is_Predefined_File_Name): Require a letter after the
13023         minus sign. This means that file names like a--b.adb will not be
13024         considered predefined.
13025
13026         * freeze.adb: Propagate new flag Must_Be_On_Byte_Boundary to containing
13027         record Test new flag and give diagnostic for bad component clause.
13028         (Freeze_Entity): Set alignment of array from component alignment in
13029         cases where this is safe to do.
13030
13031         * exp_pakd.adb: Set new flag Must_Be_On_Byte_Boundary for large packed
13032         arrays.
13033
13034         * cstand.adb: (Create_Standard): Set alignment of String to 1
13035
13036         * einfo.ads, einfo.adb: Introduce new flag Must_Be_On_Byte_Boundary
13037
13038         * exp_ch4.adb (Expand_Array_Equality): Improve efficiency of generated
13039         code in the common constrained array cases.
13040
13041         * a-storio.adb: Change implementation to avoid possible alignment
13042         problems on machines requiring strict alignment (data should be moved
13043         as type Buffer, not type Elmt).
13044
13045         * checks.adb (Apply_Array_Size_Check): Improve these checks by
13046         killing the overflow checks which we really do not need (64-bits is
13047         enough).
13048
13049 2004-06-25  Vincent Celier  <celier@gnat.com>
13050
13051         * makegpr.adb (Is_Included_In_Global_Archive): New Boolean function
13052         (Add_Archives.Recursive_Add_Archives): Call Add_Archive_Path
13053         inconditionally for the main project.
13054         (Recursive_Add_Archives.Add_Archive_Path): New procedure
13055         (Link_Executables.Check_Time_Stamps): New procedure
13056         (Link_Executables.Link_Foreign): New procedure
13057         Changes made to reduce nesting level of this package
13058         (Check): New procedure
13059         (Add_Switches): When not in quiet output, check that a switch is not
13060         the concatenation of several valid switches. If it is, issue a warning.
13061         (Build_Global_Archive): If the global archive is rebuilt, linking need
13062         to be done.
13063         (Compile_Sources): Rebuilding a library archive does not imply
13064         rebuilding the global archive.
13065         (Build_Global_Archive): New procedure
13066         (Build_Library): New name for Build_Archive, now only for library
13067         project
13068         (Check_Archive_Builder): New procedure
13069         (Create_Global_Archive_Dependency_File): New procedure
13070         (Gprmake): Call Build_Global_Archive before linking
13071         * makegpr.adb: Use Other_Sources_Present instead of Sources_Present
13072         throughout.
13073         (Scan_Arg): Display the Copyright notice when -v is used
13074
13075         * gnat_ugn.texi: Document new switch -files= (VMS qualifier /FILES=)
13076         for gnatls.
13077
13078         * vms_data.ads: Add qualifier /MAX_NESTING=nnn (-gnatyLnnn) for GNAT
13079         COMPILE.
13080         Add new GNAT LIST qualifier /FILES=
13081         Added qualifier /DIRECTORY= to GNAT METRIC
13082         Added qualifier /FILES= to GNAT METRIC
13083         Added qualifier /FILES to GNAT PRETTY
13084
13085         * switch.adb (Is_Front_End_Switch): Refine the test for --RTS or -fRTS,
13086         to take into account both versions of the switch.
13087
13088         * switch-c.adb (Scan_Front_End_Switches): New switch -gnatez. Should
13089         always be the last switch to the gcc driver. Disable switch storing so
13090         that switches automatically added by the gcc driver are not put in the
13091         ALI file.
13092
13093         * prj.adb (Project_Empty): Take into account changes in components of
13094         Project_Data.
13095
13096         * prj.ads (Languages_Processed): New enumaration value All_Languages.
13097
13098         * prj.ads (Project_Data): Remove component Lib_Elaboration: never
13099         used. Split Boolean component Ada_Sources_Present in two Boolean
13100         components Ada_Sources_Present and Other_Sources_Present.
13101         Minor reformatting
13102
13103         * prj-env.adb (For_All_Source_Dirs.Add): Use Ada_Sources_Present
13104         instead of Sources_Present.
13105         (Set_Ada_Paths.Add.Recursive_Add): Ditto
13106
13107         * prj-nmsc.adb: Minor reformatting
13108         (Check_Ada_Naming_Scheme): New name of procedure Check_Naming_Scheme
13109         (Check_Ada_Naming_Scheme_Validity): New name of previous procedure
13110         Check_Ada_Naming_Scheme.
13111         Change Sources_Present to Ada_Sources_Present or Other_Sources_Present
13112         throughout.
13113
13114         * prj-part.adb (Post_Parse_Context_Clause): New Boolean parameter
13115         In_Limited.
13116         Make sure that all cycles where there is at least one "limited with"
13117         are detected.
13118         (Parse_Single_Project): New Boolean parameter In_Limited
13119
13120         * prj-proc.adb (Recursive_Check): When Process_Languages is
13121         All_Languages, call first Prj.Nmsc.Ada_Check, then
13122         Prj.Nmsc.Other_Languages_Check.
13123
13124         * prj-proc.adb (Process): Use Ada_Sources_Present or
13125         Other_Sources_Present (instead of Sources_Present) depending on
13126         Process_Languages.
13127
13128         * lang-specs.h: Keep -g and -m switches in the same order, and as the
13129         last switches.
13130
13131         * lib.adb (Switch_Storing_Enabled): New global Boolean flag
13132         (Disable_Switch_Storing): New procedure. Set Switch_Storing_Enabled to
13133         False.
13134         (Store_Compilation_Switch): Do nothing if Switch_Storing_Enabled is
13135         False.
13136
13137         * lib.ads (Disable_Switch_Storing): New procedure.
13138
13139         * make.adb: Modifications to reduce nesting level of this package.
13140         (Check_Standard_Library): New procedure
13141         (Gnatmake.Check_Mains): New procedure
13142         (Gnatmake.Create_Binder_Mapping_File): New procedure
13143         (Compile_Sources.Compile): Add switch -gnatez as the last option
13144         (Display): Never display -gnatez
13145
13146         * Makefile.generic:
13147         When using $(MAIN_OBJECT), always use $(OBJ_DIR)/$(MAIN_OBJECT)
13148
13149         * gnatcmd.adb (Check_Project): New function
13150         (Process_Link): New procedure to reduce nesting depth
13151         (Check_Files): New procedure to reduce the nesting depth.
13152         For GNAT METRIC, include the inherited sources in extending projects.
13153         (GNATCmd): When GNAT LS is invoked with a project file and no files,
13154         add the list of files from the sources of the project file. If this list
13155         is too long, put it in a temp text files and use switch -files=
13156         (Delete_Temp_Config_Files): Delete the temp text file that contains
13157         a list of source for gnatpp or gnatmetric, if one has been created.
13158         (GNATCmd): For GNAT METRIC and GNAT PRETTY, if the number of sources
13159         in the project file is too large, create a temporary text file that
13160         list them and pass it to the tool with "-files=<temp text file>".
13161         (GNATCmd): For GNAT METRIC add "-d=<abject dir>" as the first switch
13162
13163         * gnatlink.adb (Gnatlink): Do not compile with --RTS= when the
13164         generated file is in not in Ada.
13165
13166         * gnatls.adb: Remove all parameters And_Save that are no longer used.
13167         (Scan_Ls_Arg): Add processing for -files=
13168         (Usage): Add line for -files=
13169
13170         * g-os_lib.adb (On_Windows): New global constant Boolean flag
13171         (Normalize_Pathname): When on Windows and the path starts with a
13172         directory separator, make sure that the resulting path will start with
13173         a drive letter.
13174
13175         * clean.adb (Clean_Archive): New procedure
13176         (Clean_Project): When there is non-Ada code, delete the global archive,
13177         the archive dependency files, the object files and their dependency
13178         files, if they exist.
13179         (Gnatclean): Call Prj.Pars.Parse for All_Languages, not for Ada only.
13180
13181 2004-06-25  Thomas Quinot  <quinot@act-europe.fr>
13182
13183         * sinfo.ads: Fix typo in comment.
13184
13185         * sem_dist.adb (Process_Remote_AST_Attribute): Simplify code that uses
13186         the TSS for remote access-to-subprogram types, since these TSS are
13187         always present once the type has been analyzed.
13188         (RAS_E_Dereference): Same.
13189
13190         * sem_attr.adb (Analyze_Attribute): When analysis of an attribute
13191         reference raises Bad_Attribute, mark the reference as analyzed so the
13192         node (and any children resulting from rewrites that could have occurred
13193         during the analysis that ultimately failed) is not analyzed again.
13194
13195         * exp_ch7.ads (Find_Final_List): Fix misaligned comment.
13196
13197         * exp_dist.adb: Minor comment fix.
13198
13199         * exp_ch4.adb (Expand_N_Allocator): For an allocator whose expected
13200         type is an anonymous access type, no unchecked deallocation of the
13201         allocated object can occur. If the object is controlled, attach it with
13202         a count of 1. This allows attachment to the Global_Final_List, if
13203         no other relevant list is available.
13204         (Get_Allocator_Final_List): For an anonymous access type that is
13205         the type of a discriminant or record component, the corresponding
13206         finalisation list is the one of the scope of the type.
13207
13208 2004-06-25  Ed Schonberg  <schonberg@gnat.com>
13209
13210         * sem_ch3.adb (Replace_Type): When computing the signature of an
13211         inherited subprogram, use the first subtype if the derived type
13212         declaration has no constraint.
13213
13214         * exp_ch6.adb (Add_Call_By_Copy_Code): Check that formal is an array
13215         before applying previous optimization. Minor code cleanup.
13216
13217         * exp_util.adb (Is_Possibly_Unaligned_Slice): If the component is
13218         placed at the beginning of an unpacked record without explicit
13219         alignment, a slice of it will be aligned and does not need a copy when
13220         used as an actual.
13221
13222 2004-06-25  Ed Schonberg  <schonberg@gnat.com>
13223
13224         PR ada/15591
13225         PR ada/15592
13226         * sem_ch8.adb (Attribute_Renaming): Reject renaming if the attribute
13227         reference is written with expressions mimicking parameters.
13228
13229 2004-06-25  Hristian Kirtchev  <kirtchev@gnat.com>
13230
13231         PR ada/15589
13232         * sem_ch3.adb (Build_Derived_Record_Type): Add additional check to
13233         STEP 2a. The constraints of a full type declaration of a derived record
13234         type are checked for conformance with those declared in the
13235         corresponding private extension declaration. The message
13236         "not conformant with previous declaration" is emitted if an error is
13237         detected.
13238
13239 2004-06-25  Vasiliy Fofanov  <fofanov@act-europe.fr>
13240
13241         * g-traceb.ads: Document the need for -E binder switch in the spec.
13242
13243         * g-trasym.ads: Document the need for -E binder switch in the spec.
13244
13245 2004-06-25  Jose Ruiz  <ruiz@act-europe.fr>
13246
13247         * sem_prag.adb: Add handling of pragma Detect_Blocking.
13248
13249         * snames.h, snames.ads, snames.adb: Add entry for pragma
13250         Detect_Blocking.
13251
13252         * s-rident.ads: Change reference to pragma Detect_Blocking.
13253
13254         * targparm.ads, targparm.adb: Allow pragma Detect_Blocking in
13255         system.ads.
13256
13257         * opt.ads (Detect_Blocking): New Boolean variable (defaulted to False)
13258         to indicate whether pragma Detect_Blocking is active.
13259
13260         * par-prag.adb: Add entry for pragma Detect_Blocking.
13261
13262         * rtsfind.adb (RTU_Loaded): Fix the temporary kludge to get past bug
13263         of not handling WITH.
13264         Note that this replaces the previous update which was incorrect.
13265
13266 2004-06-25  Javier Miranda  <miranda@gnat.com>
13267
13268         * sem_ch10.adb (Re_Install_Use_Clauses): Force the installation of the
13269         use-clauses to have a clean environment.
13270
13271         * sem_ch8.adb (Install_Use_Clauses): Addition of a new formal to force
13272         the installation of the use-clauses to stablish a clean environment in
13273         case of compilation of a separate unit; otherwise the call to
13274         use_one_package is protected by the barrier Applicable_Use.
13275
13276         * sem_ch8.ads (Install_Use_Clauses): Addition of a new formal to force
13277         the installation of the use-clauses to stablish a clean environment in
13278         case of compilation of a separate unit.
13279         (End_Use_Clauses): Minor comment cleanup.
13280
13281 2004-06-25  Sergey Rybin  <rybin@act-europe.fr>
13282
13283         * gnat_ugn.texi: Add description of the gnatpp 'files' switch
13284
13285 2004-06-23  Richard Henderson  <rth@redhat.com>
13286
13287         * trans.c (gnat_gimplify_stmt): Update gimplify_type_sizes call.
13288
13289 2004-06-20  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13290
13291         * decl.c (elaborate_expression, elaborate_expression_1): Arguments
13292         now bool instead of int.
13293         (gnat_to_gnu_entity, elaborate_expression_1): New arg to COMPONENT_REF.
13294         * trans.c (gnu_switch_label_stack): New function.
13295         (gnat_to_gnu, N_Object_Renaming_Declaration): Result is what the
13296         elaboration of renamed entity returns.
13297         (gnat_to_gnu, case N_Case_Statement): Add branches to end label.
13298         (add_decl_stmt): Don't add TYPE_DECL for UNCONSTRAINED_ARRAY_TYPE.
13299         (gnat_gimplify_stmt): Use alloc_stmt_list, not build_empty_stmt.
13300         (gnat_gimplify_stmt, case DECL_STMT): gimplify DECL_SIZE and
13301         DECL_SIZE_UNIT and simplify variable-sized case.
13302         (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Deleted.
13303         Callers changes to call gimplify_type_sizes and gimplify_one_sizepos.
13304         (gnat_stabilize_reference): Add arg to COMPONENT_REF.
13305         (build_unit_elab): Disable for now.
13306         * utils.c (mark_visited): New function.
13307         (pushdecl): Walk tree to call it for global decl.
13308         (update_pointer_to): Update all variants of pointer and ref types.
13309         Add arg to COMPONENT_REF.
13310         (convert): Likewise.
13311         Move check for converting between variants lower down.
13312         * utils2.c (build_simple_component_ref): Add arg to COMPONENT_REF.
13313         (build_allocator): Don't force type of MODIFY_EXPR.
13314         (gnat_mark_addressable, case VAR_DECL): Unconditionally call
13315         put_var_into_stack.
13316
13317 2004-06-14  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13318
13319         * ada-tree.def (LOOP_STMT, EXIT_STMT): Update documentation.
13320         * ada-tree.h (EXIT_STMT_LABEL): Renamed from EXIT_STMT_LOOP.
13321         * decl.c (gnat_to_gnu_entity): Also set force_global for imported
13322         subprograms.
13323         * trans.c (gnu_loop_label_stack): Renamed from gnu_loop_stmt_stack;
13324         all callers changed.
13325         (gnat_to_gnu, case N_Loop_Statement, case N_Exit_Statement): Change
13326         the way that EXIT_STMT finds the loop label.
13327         (gnat_gimplify_stmt, case LOOP_STMT, EXIT_STMT): Likewise.
13328         (gnat_gimplify_stmt, case DECL_STMT): Handle variable-sized decls here.
13329         (add_stmt): Use annotate_with_locus insted of setting directly.
13330         (pos_to_construct): Set TREE_PURPOSE of each entry to index.
13331         (gnat_stabilize_reference, case ARRAY_RANGE_REF): Merge with ARRAY_REF.
13332         * utils.c (gnat_install_builtins): Install __builtin_memcmp.
13333         (build_vms_descriptor): Add extra args to ARRAY_REF.
13334         (convert): Use VIEW_CONVERT_EXPR between aggregate types.
13335         * utils2.c (gnat_truthvalue_conversion, case INTEGER_CST, REAL_CST):
13336         New cases.
13337         (build_binary_op): Don't make explicit CONVERT_EXPR.
13338         Add extra rgs to ARRAY_REF.
13339
13340 2004-06-14  Pascal Obry  <obry@gnat.com>
13341
13342         * gnat_ugn.texi: Document relocatable vs. dynamic Library_Kind on
13343         Windows.  Fix minor typo.
13344
13345         * mlib-tgt-mingw.adb: New implementation using the GCC -shared option
13346         which is now supported on Windows. With this implementation using the
13347         Library Project feature is no different on Windows than on UNIX.
13348
13349 2004-06-14  Vincent Celier  <celier@gnat.com>
13350
13351         * makegpr.adb (Compile_Sources): Nothing to do when there are no
13352         non-Ada sources.
13353
13354         * mlib-tgt-vxworks.adb (Library_Exists_For): Remove incorrect comment
13355
13356         * prj-part.adb (Parse_Single_Project): When a duplicate project name is
13357         found, show the project name and the path of the previously parsed
13358         project file.
13359
13360 2004-06-14  Ed Schonberg  <schonberg@gnat.com>
13361
13362         * exp_ch6.adb (Add_Call_By_Copy_Code): For an out-parameter that is an
13363         array, avoid copying the actual before the call.
13364
13365 2004-06-14  Thomas Quinot  <quinot@act-europe.fr>
13366
13367         * g-debpoo.adb: Remove alignment assumptions from GNAT.Debug_Pools.
13368         Instead, allocate memory on worst-case alignment assumptions, and then
13369         return an aligned address within the allocated zone.
13370
13371 2004-06-14  Robert Dewar  <dewar@gnat.com>
13372
13373         * bindgen.adb (Gen_Adainit_Ada): Do not generate external references to
13374         elab entities in predefined units in No_Run_Time_Mode.
13375         (Gen_Adainit_C): Same fix
13376         (Gen_Elab_Calls_Ada): Do not generate calls to elaborate predefined
13377         units in No_Run_Time_Mode
13378         (Gen_Elab_Calls_C): Same fix
13379
13380         * symbols-vms-alpha.adb: Minor reformatting
13381
13382         * g-debpoo.ads: Minor reformatting
13383
13384         * lib.adb (In_Same_Extended_Unit): Version working on node id's
13385
13386         * lib.ads (In_Same_Extended_Unit): Version working on node id's
13387
13388         * lib-xref.adb: Minor cleanup, use new version of In_Same_Extended_Unit
13389         working on nodes.
13390
13391         * make.adb: Minor reformatting
13392
13393         * par-ch12.adb: Minor reformatting
13394
13395         * par-prag.adb: Add dummy entry for pragma Profile_Warnings
13396
13397         * prj-strt.adb: Minor reformatting
13398
13399         * restrict.ads, restrict.adb: Redo handling of profile restrictions to
13400         be more general.
13401
13402         * sem_attr.adb: Minor reformatting
13403
13404         * sem_ch7.adb: Minor reformatting
13405
13406         * sem_elab.adb (Check_A_Call): Deal with problem of calling init proc
13407         for type in the same unit as the object declaration.
13408
13409         * sem_prag.adb (Check_Arg_Is_External_Name): New procedure, allows
13410         static string expressions and not just string literals.
13411         Minor reformatting
13412         (Set_Warning): Reset restriction warning flag for restriction pragma
13413         Implement pragma Profile_Warnings
13414         Implement pragma Profile (Restricted)
13415         Give obolescent messages for old restrictions and pragmas
13416
13417         * snames.h, snames.ads, snames.adb: Add new entry for pragma
13418         Profile_Warnings.
13419
13420         * s-rident.ads: Add declarations for restrictions required by profile
13421         Restricted and profile Ravenscar.
13422
13423         * targparm.ads, targparm.adb: Allow pragma Profile in system.ads
13424
13425         * gnat_ugn.texi: Correct some missing entries in the list of GNAT
13426         configuration pragmas.
13427
13428 2004-06-11  Vincent Celier  <celier@gnat.com>
13429
13430         * mlib-tgt-vms-alpha.adb (Build_Dynamic_Library): Issue switch -R to
13431         gnatsym, when symbol policy is Restricted.
13432
13433         * mlib-tgt-vms-ia64.adb (Build_Dynamic_Library): Issue switch -R to
13434         gnatsym, when symbol policy is Restricted.
13435
13436         * symbols-vms-alpha.adb (Initialize): When symbol policy is Restricted,
13437         read the symbol file.
13438         (Finalize): Fail in symbol policy Restricted if a symbol in the original
13439         symbol file is not in the object files. Do not create a new symbol file
13440         when symbol policy is Restricted.
13441
13442         * gnatbind.adb (Gnatbind): Initialize Snames, because Snames is used
13443         in Scng.
13444
13445         * gnatsym.adb (Parse_Vmd_Line): Process new switch -R for symbol policy
13446         Restricted.
13447         (Usage): Line for new switch -R
13448
13449         * make.adb (Initialize): When the platform is not VMS, add the
13450         directory where gnatmake is invoked in the front of the path, if
13451         gnatmake is invoked with directory information.  Change the Scan_Args
13452         while loop to a for loop.
13453         (Recursive_Compute_Depth): Remove parameter Visited. Improve efficiency:
13454         if Depth is equal or greater than the proposed depth, there is nothing
13455         to do.
13456         (Initialize): Call Recursive_Compute_Depth with initial Depth equal to 1
13457         instead of 0.
13458
13459         * prj.ads: Add new symbol policy Restricted.
13460
13461         * prj-dect.adb (Parse_Case_Construction): Call End_Case_Construction
13462         with the new parameters Check_All_Labels and Case_Location.
13463
13464         * prj-nmsc.adb (Ada_Check): Process new symbol policy Restricted
13465         (Library_Symbol_File needs to be defined).
13466
13467         * prj-strt.adb (End_Case_Construction): New parameters Check_All_Labels
13468         and Case_Location If Check_All_Labels is True, check that all values of
13469         the string type are used, and output warning(s) if they are not.
13470
13471         * prj-strt.ads (End_Case_Construction): New parameters Check_All_Labels
13472         and Case_Location.
13473
13474         * gnat_ugn.texi: Reorder subclauses in menus "Switches for gcc"
13475
13476         * gnat_ugn.texi: Update documentation about the library directory in
13477         Library Projects.
13478
13479         * makegpr.adb (Display_Command): In verbose mode, also display the
13480         value of the CPATH env var, when the compiler is gcc.
13481         (Initialize): Change the Scan_Args while loop to a for loop
13482         (Compile_Individual_Sources): Change directory to object directory
13483         before compilations.
13484
13485         * symbols.ads: New symbol policy Restricted.
13486
13487 2004-06-11  Olivier Hainque  <hainque@act-europe.fr>
13488
13489         * a-except.adb (Raise_After_Setup family): Remove. The responsibility
13490         is now taken care of internally in the Exception_Propagation package
13491         and does not require clients assistance any more.
13492
13493         * a-exexpr.adb (Is_Setup_And_Not_Propagated,
13494         Set_Setup_And_Not_Propagated, and Clear_Setup_And_Not_Propagated): New
13495         functions. Helpers to maintain a predicate required in the handling of
13496         occurrence transfer between tasks.
13497         This is now handled internally and does not require clients assistance
13498         for the setup/propagate separation anymore.
13499         (Setup_Exception, Propagate_Exception): Simplify the Private_Data
13500         allocation strategy, handle the Setup_And_Not_Propagated predicate and
13501         document.
13502
13503         * s-taenca.adb (Check_Exception): Use raise_with_msg instead of
13504         raise_after_setup, now that everything is handled internally within the
13505         setup/propagation engine.
13506
13507 2004-06-11  Hristian Kirtchev  <kirtchev@gnat.com>
13508
13509         * exp_ch6.adb (Expand_Inlined_Call): Add function Formal_Is_Used_Once.
13510         Add additional conditions for the case of an actual being a simple
13511         name or literal. Improve inlining by preventing the generation
13512         of temporaries with a short lifetime (one use).
13513
13514 2004-06-11  Hristian Kirtchev  <kirtchev@gnat.com>
13515
13516         PR ada/15587
13517
13518         * einfo.ads: Minor comment updates for Has_Completion and
13519         E_Constant list of flags.
13520
13521         * sem_ch3.adb (Analyze_Object_Declaration): Full constant declarations
13522         and constant redeclarations now set the Has_Completion flag of their
13523         defining identifiers.
13524
13525         * sem_ch7.adb (Analyze_Package_Spec): Add procedure
13526         Inspect_Deferred_Constant_Completion.
13527         Used to detect private deferred constants that have not been completed
13528         either by a constant redeclaration or pragma Import. Emits error message
13529         "constant declaration requires initialization expression".
13530
13531         * sem_prag.adb (Process_Import_Or_Interface): An Import pragma now
13532         completes a deferred constant.
13533
13534 2004-06-11  Geert Bosch  <bosch@gnat.com>
13535
13536         * eval_fat.adb (Decompose_Int): Fix rounding of negative numbers.
13537
13538         * s-fatgen.adb (Gradual_Scaling): Correct off-by-one error in
13539         calculating exponent for scaling denormal numbers.
13540         (Leading_Part): Properly raise Constraint_Error for zero or negative
13541         Adjustment.
13542         (Remainder): Properly raise Constraint_Error for zero divisor.
13543
13544 2004-06-11  Thomas Quinot  <quinot@act-europe.fr>
13545
13546         * sem_util.adb: Minor reformatting.
13547
13548         * exp_ch2.adb (Expand_Entry_Parameter): Generate an explicit
13549         dereference when accessing the entry parameter record.
13550         (Check_Array_Type): Always check for possible implicit dereference.
13551         (maybe_implicit_dereference): Rename to check_no_implicit_derefence.
13552         Abort if a pointer is still present (denoting that an implicit
13553         dereference was left in the tree by the front-end).
13554
13555         * sem_attr.adb (Expand_Entry_Parameter): Generate an explicit
13556         dereference when accessing the entry parameter record.
13557         (Check_Array_Type): Always check for possible implicit dereference.
13558         (maybe_implicit_dereference): Rename to check_no_implicit_derefence.
13559         Abort if a pointer is still present (denoting that an implicit
13560         dereference was left in the tree by the front-end).
13561
13562 2004-06-11  Emmanuel Briot  <briot@act-europe.fr>
13563
13564         * g-debpoo.adb (Deallocate, Dereference): Add prefix "error:" to error
13565         message, like the compiler itself does. Easier to parse the output.
13566
13567         * g-debpoo.ads: (Allocate, Deallocate, Dereference): Add comments.
13568
13569         * gnat_ugn.texi (gnatxref, gnatfind): Clarify that source names should
13570         be base names, and not includes directories.
13571
13572 2004-06-11  Arnaud Charlet  <charlet@act-europe.fr>
13573
13574         * Makefile.generic ($(EXEC)): Depend on $(OBJECTS), not $(OBJ_FILES),
13575         so that dependencies are properly taken into account by make.
13576
13577 2004-06-11  Arnaud Charlet  <charlet@act-europe.fr>
13578
13579         PR ada/15622
13580         * s-unstyp.ads, s-maccod.ads, sem_ch8.adb, s-auxdec.ads,
13581         exp_intr.adb, s-auxdec-vms_64.ads: Fix typo: instrinsic -> intrinsic
13582
13583 2004-06-11  Jerome Guitton  <guitton@act-europe.fr>
13584
13585         * Makefile.in (install-gnatlib): install target-specific run-time files.
13586
13587         * Make-lang.in: Remove obsolete targets.
13588
13589 2004-06-11  Ed Schonberg  <schonberg@gnat.com>
13590
13591         * par-ch12.adb (P_Generic): Add scope before analyzing subprogram
13592         specification, to catch misuses of program unit names.
13593
13594         * sem_res.adb (Resolve_Type_Conversion): Do not emit warnings on
13595         superfluous conversions in an instance.
13596
13597 2004-06-11  Ed Schonberg  <schonberg@gnat.com>
13598
13599         PR ada/15403
13600
13601         * sem_ch12.adb (Save_References): If operator node has been folded to
13602         enumeration literal, associated_node must be discarded.
13603
13604 2004-06-11  Jose Ruiz  <ruiz@act-europe.fr>
13605
13606         * s-stchop-vxworks.adb: Add required pragma Convention to
13607         Task_Descriptor because it is updated by a C function.
13608
13609 2004-06-08  Arnaud Charlet  <charlet@act-europe.fr>
13610
13611         PR ada/15568
13612
13613         * Makefile.in: Remove target specific SO_OPT on IRIX
13614
13615 2004-06-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13616
13617         * ada-tree.def (TRANSFORM_EXPR, ALLOCATE_EXPR, USE_EXPR): Deleted.
13618         (GNAT_NOP_EXPR, GNAT_LOOP_ID, EXPR_STMT, NULL_STMT): Likewise.
13619         (BLOCK_STMT, IF_STMT, GOTO_STMT, LABEL_STMT, RETURN_STMT): Likewise.
13620         (ASM_STMT, BREAK_STMT, REGION_STMT,HANDLER_STMT): Likewise.
13621         (STMT_STMT, USE_STMT): New statement codes.
13622         (LOOP_STMT, EXIT_STMT): Make slight semantic changes.
13623         * ada-tree.h: Reflect above changes.
13624         (struct tree_loop_id): Deleted.
13625         (union lang_tree_node, struct lang_decl, struct lang_type):
13626         Now just contains a tree node; update macros using TYPE_LANG_SPECIFIC
13627         and DECL_LANGUAGE_SPECIFIC to reflect these changes.
13628         (DECL_INIT_BY_ASSIGN_P, TRE_LOOP_NODE_ID, TREE_SLOC): Deleted.
13629         (IS_ADA_STMT): New macro.
13630         * decl.c (annotate_decl_with_node): New function.
13631         (gnat_to_gnu_entity): Use it and Sloc_to_locus instead of set_lineno.
13632         (gnat_to_gnu_entity, case object): Remove call to expand CONVERT_EXPR.
13633         Call add_stmt_with_node to do needed assignments.
13634         Add call to update setjmp buffer directly, not via EXPR_STMT.
13635         (maybe_variable): Argment GNAT_NODE deleted.
13636         * gigi.h (maybe_variable): Likewise.
13637         (make_transform, add_stmt_with_node, set_block_for_group): New.
13638         (gnat_gimplify_expr, gnat_expand_body, Sloc_to_locus): Likewise.
13639         (set_block_jmpbuf_decl, get_block_jmpbuf_decl): Likewise.
13640         (discard_file_names, gnu_block_stack, gnat_to_code): Deleted.
13641         (set_lineno, set_lineno_from_sloc): Likewise.
13642         (record_code_position, insert_code_for): Likewise.
13643         (gnat_poplevel): Now returns void.
13644         (end_subprog_body): Now takes argument.
13645         * misc.c (cgraph.h, tree-inline.h): New includes.
13646         (gnat_tree_size, LANG_HOOKS_TREE_SIZE): Deleted.
13647         (gnat_post_options, LANG_HOOKS_POST_OPTIONS): New.
13648         (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Likewise.
13649         (LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_GIMPLIFY_EXPR): Likewise.
13650         (gnat_parse_file): Don't set immediate_size_expand.
13651         Call cgraph functions.
13652         (gnat_expand_expr): Remove most cases.
13653         (record_code_position, insert_code_for): Remove from here.
13654         * trans.c (toplev.h, tree-gimple.h): Now included.
13655         (discard_file_names): Deleted.
13656         (gnu_block_stack, gnu_block_stmt_node, gnu_block_stmt_free_list): Del.
13657         (first_nondeleted_insn, make_expr_stmt_from_rtl): Likewise.
13658         (struct stmt_group, current_stmt_group, stmt_group_free_list): New.
13659         (gnu_stack_free_list, record_cost_position, insert_code_for): Likewise.
13660         (add_cleanup, push_stack, gnat_gimplify_stmt, add_cleanup): Likewise.
13661         (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Likewise.
13662         (gnat_expand_body_1, gnat_gimplify_expr, annotate_with_node): Likewise.
13663         (set_block_for_group, add_stmt_list): Likewise.
13664         (start_stmt_group): Renamed from start_block_stmt.
13665         (end_stmt_group): Likewise, from end_block_stmt.
13666         (build_stmt_group): Likewise, from build_block_stmt, also add arg.
13667         (gigi): Don't set discard_file_names or call set_lineno.
13668         Disallow front end ZCX; call gnat_to_gnu, not gnat_to_code.
13669         (tree_transform): Deleted, now renamed to be gnat_to_gnu.
13670         Numerous changes throughout to reflect new names and complete
13671         function-at-a-time implementation.
13672         (gnat_expand_stmt): Delete or comment out all cases.
13673         (process_inlined_subprograms): Use add_stmt.
13674         (process_decls): Use gnat_to_gnu, not gnat_to_code, and don't
13675         call set_lineno; also remove unneeded block handling.
13676         (process_type): Remove unneeded block handling.
13677         (build_unit_elab): Remove calls to deleted functions.
13678         * utils.c (cgraph.h, tree-inline.h, tree-gimple.h): Now include.
13679         (tree-dump.h): Likewise.
13680         (struct ada_binding_level): Add field jmpbuf_decl.
13681         (gnat_define_builtin, gnat_install_builtins): New.
13682         (gnat_gimplify_function, gnat_finalize): Likewise.
13683         (gnat_poplevel): No longer return BLOCK, set it instead.
13684         Remove code dealing with nested functions.
13685         (gnat_init_decl_processing): Also set size_type_node.
13686         Call gnat_install_builtins.
13687         (create_var_decl): Don't set DECL_INIT_BY_ASSIGN.
13688         (create_subprog_decl): Change handling of inline_flag; set TREE_STATIC.
13689         Remove special-case for "main".
13690         (end_subprog_body): Add arg and rework for tree-ssa.
13691         (convert): Don't use GNAT_NOP_EXPR or look for TRANSFORM_EXPR.
13692         Add case for BOOLEAN_TYPE.
13693         * utils2.c (rtl.h): Now include.
13694         (build_call_raise): Test Debug_Flag_NN directly.
13695         (build_call_alloc_dealloc): Don't use local stack allocation for now.
13696         (gnat_mark_addressable, case GNAT_NOP_EXPR): Deleted.
13697         (gnat_mark_addressable, case VAR_DECL): Handle both early & late cases.
13698
13699 2004-06-07  Robert Dewar  <dewar@gnat.com>
13700
13701         * a-direct.ads, einfo.ads: Minor comment updates
13702
13703         * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
13704         s-taprop-irix-athread.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
13705         s-taprop-dummy.adb, s-taprop-os2.adb, s-taprop-solaris.adb,
13706         s-taprop-vms.adb, s-taprop-mingw.adb, s-taprop-vxworks.adb,
13707         s-taprop-posix.adb, s-taprop.ads, exp_dbug.adb: Minor reformatting.
13708
13709         * s-interr-sigaction.adb: Remove unreferenced variable
13710         (Attached_Interrupts).  Minor reformatting.
13711         Avoid use of variable I (replace by J).
13712
13713         * par-ch10.adb: Fix text of one error message
13714
13715         * checks.adb, checks.ads, cstand.adb, vms_data.ads, errout.ads,
13716         exp_aggr.adb, exp_ch3.adb, exp_ch3.ads, exp_ch5.adb, exp_ch6.adb,
13717         exp_ch9.adb, exp_code.adb, gnat1drv.adb, lib-load.adb, lib-writ.adb,
13718         opt.adb, par.adb, opt.ads, par-ch11.adb, par-ch3.adb, par-ch4.adb,
13719         par-ch5.adb, par-ch6.adb, par-ch8.adb, par-ch9.adb, par-prag.adb,
13720         par-util.adb, scng.adb, sem_aggr.adb, sem_attr.adb, sem_cat.adb,
13721         sem_ch10.adb, sem_ch10.adb, sem_ch11.adb, sem_ch12.adb, sem_ch2.adb,
13722         sem_ch3.adb, sem_ch3.ads, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb,
13723         sem_ch7.adb, sem_ch8.adb, sem_ch9.adb, sem_eval.adb, sem_prag.adb,
13724         sem_res.adb, sem_type.adb, sem_util.adb, sinfo.ads, snames.adb,
13725         snames.ads, snames.h, sprint.adb, switch-c.adb: Modifications for Ada
13726         2005 support.
13727
13728 2004-06-07  Doug Rupp  <rupp@gnat.com>
13729
13730         * mlib-tgt-vms.adb: Rename mlib-tgt-vms.adb mlib-tgt-vms-alpha.adb
13731
13732         * s-vaflop-vms.adb: Rename s-vaflop-vms.adb to s-vaflop-vms-alpha.adb
13733
13734         * mlib-tgt-vms-ia64.adb: New file.
13735
13736         * Makefile.in: Rename mlib-tgt-vms.adb to mlib-tgt-vms-alpha.adb
13737         Add mlib-tgt-vms-ia64.adb
13738         Rename s-vaflop-vms.adb to s-vaflop-vms-alpha.adb.
13739         Move to alpha specific ifeq section.
13740         Add VMS specific versions of symbols.adb
13741         Renaming of 5q vms files.
13742
13743         * 5qsystem.ads renamed to system-vms_64.ads.
13744
13745 2004-06-07  Vincent Celier  <celier@gnat.com>
13746
13747         * a-calend.ads: Add a GNAT Note comment after function Time_Of to
13748         explain that when a time of day corresponding to the non existing hour
13749         on the day switching to DST is specified, Split may return a different
13750         value for Seconds.
13751
13752         * gnatcmd.adb: Add processing of GNAT METRIC (for gnatmetric), similar
13753         to GNAT PRETTY.
13754
13755         * g-os_lib.adb (OpenVMS): New Boolean value imported from System.
13756         (Normalize_Pathname): Only resolve VMS logical names when on VMS.
13757
13758         * mlib-prj.adb (Build_Library): New flag Gtrasymobj_Needed, initialize
13759         to False.
13760         If Gtrasymobj_Needed is True, add the full path of g-trasym.obj to
13761         the linking options.
13762         (Build_Library.Check_Libs): On VMS, if there is a dependency on
13763         g-trasym.ads, set Gtrasymobj_Needed to True.
13764
13765         * prj-attr.adb: Add new package Metrics for gnatmetric
13766
13767         * prj-nmsc.adb (Record_Other_Sources): Put source file names in
13768         canonical case to take into account files with upper case characters on
13769         Windows.
13770         (Ada_Check): Load the reference symbol file name in the name buffer to
13771         check it, not the symbol file name.
13772
13773         * snames.ads, snames.adb: Add standard name Metrics (name of project
13774         file package for gnatmetric).
13775
13776         * vms_conv.ads: Add Metric to Comment_Type
13777
13778         * vms_conv.adb (Initialize): Add component dor Metric in Command_List
13779
13780         * vms_data.ads: Add qualifiers for GNAT METRIC
13781
13782         * makegpr.adb (Link_Executables): Take into account the switches
13783         specified in package Linker of the main project.
13784
13785 2004-06-07  Thomas Quinot  <quinot@act-europe.fr>
13786
13787         * bindgen.adb (Set_Unit_Number): Units is an instance of Table, and so
13788         the index of the last element is Units.Last, not Units.Table'Last
13789         (which is usually not a valid index within the actually allocated
13790         storage for the table).
13791
13792         * exp_ch4.adb (Insert_Dereference_Action): Change predicate that
13793         determines whether to generate a call to a checked storage pool
13794         Dereference action.
13795         Generate such a call only for a dereference that either comes from
13796         source, or is the result of rewriting a dereference that comes from
13797         source.
13798
13799 2004-06-07  Romain Berrendonner  <berrendo@act-europe.fr>
13800
13801         * bindgen.adb (Gen_Output_File): Add support for GAP builds.
13802
13803 2004-06-07  Eric Botcazou  <ebotcazou@act-europe.fr>
13804
13805         (gnat_to_gnu_entity) <E_Array_Subtype>: For multi-dimensional arrays at
13806         file level, elaborate the stride for inner dimensions in alignment
13807         units, not bytes.
13808
13809         * exp_ch5.adb: Correct wrong reference to Component_May_Be_Bit_Aligned
13810         in a comment.
13811
13812 2004-06-07  Javier Miranda  <miranda@gnat.com>
13813
13814         * exp_ch6.adb: Correct wrong modification in previous patch
13815
13816 2004-06-07  Vasiliy Fofanov  <fofanov@act-europe.fr>
13817
13818         * g-trasym.ads: Corrected comment to properly reflect level of support
13819         on VMS.
13820
13821 2004-06-07  Hristian Kirtchev  <kirtchev@gnat.com>
13822
13823         * lib-xref.adb (Generate_Reference): Add nested function Is_On_LHS. It
13824         includes case of a variable referenced on the left hand side of an
13825         assignment, therefore remove redundant code. Variables and prefixes of
13826         indexed or selected components are now marked as referenced on left
13827         hand side. Warnings are now properly emitted when variables or prefixes
13828         are assigned but not read.
13829
13830         * sem_warn.adb (Output_Unreferenced_Messages): Add additional checks to
13831         left hand side referenced variables. Private access types do not
13832         produce the warning "variable ... is assigned but never read".
13833         Add also additional checks to left hand side referenced variables.
13834         Aliased, renamed objects and access types do not produce the warning
13835         "variable ... is assigned but never read" since other entities may read
13836         the memory location.
13837
13838 2004-06-07  Jerome Guitton  <guitton@act-europe.fr>
13839
13840         * Makefile.in: In the powerpc/vxworks-specific section, restore
13841         EXTRA_GNATRTL_NONTASKING_OBJS and EXTRA_GNATRTL_TASKING_OBJS (removed
13842         by mistake).
13843
13844 2004-06-07  Ed Schonberg  <schonberg@gnat.com>
13845
13846         * sem_ch4.adb (Remove_Abstract_Operations): Refine the removal of
13847         predefined operators.
13848         Removes spurious type errors from g-trasym-vms.adb.
13849
13850         * sem_res.adb (Rewrite_Renamed_Operator): If intrinsic operator is
13851         distinct from the operator appearing in the source, call appropriate
13852         routine to insert conversions when needed, and complete resolution of
13853         node.
13854         (Resolve_Intrinsic_Operator): Fix cut-and-paste bug on transfer of
13855         interpretations for rewritten right operand.
13856         (Set_Mixed_Mode_Operand): Handle properly a universal real operand when
13857         the other operand is overloaded and the context is a type conversion.
13858
13859 2004-06-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13860
13861         * ada-tree.def (BLOCK_STMT): Now has two operands.
13862         (BREAK_STMT): New.
13863
13864         * ada-tree.h: (BLOCK_STMT_BLOCK): New macro.
13865
13866         * gigi.h: (gnat_poplevel): Now returns a tree.
13867
13868         * trans.c (end_block_stmt): Add arg; all callers changed.
13869         (tree_transform, case N_Case_Statement): Make a BLOCK_STMT for a WHEN.
13870         (start_block_stmt): Clear BLOCK_STMT_BLOCK.
13871         (add_stmt): Set TREE_TYPE.
13872         (gnat_expand_stmt, case BLOCK_STMT): Handle BLOCK_STMT_BLOCK.
13873         (gnat_expand_stmt, case BREAK_STMT): New case.
13874
13875         * utils.c (gnat_poplevel): Return a BLOCK, if we made one.
13876
13877 2004-06-07  Jose Ruiz  <ruiz@act-europe.fr>
13878
13879         * s-stchop.adsm s-stchop.adb, s-stchop-vxworks.adb: Remove the
13880         procedure Set_Stack_Size that is not needed.
13881
13882 2004-06-07  Sergey Rybin  <rybin@act-europe.fr>
13883
13884         * gnat_ugn.texi: Clarify the case when non-standard naming scheme is
13885         used for gnatpp input file and for the files upon which it depends
13886
13887 2004-06-07  Ben Brosgol  <brosgol@gnat.com>
13888
13889         * gnat_ugn.texi: Wordsmithing of "GNAT and Libraries" chapter
13890
13891 2004-06-07  Arnaud Charlet  <charlet@act-europe.fr>
13892
13893         * gnatvsn.ads: Bump version numbers appropriately.
13894         Add new build type.
13895
13896 2004-06-07  Pascal Obry  <obry@gnat.com>
13897
13898         * gnat_ugn.texi: Improve comments about imported names and link names
13899         on Windows. Add a note about the requirement to use -k gnatdll's option
13900         when working with a DLL which has stripped stdcall symbols (no @nn
13901         suffix).
13902
13903 2004-05-27  Vincent Celier  <celier@gnat.com>
13904
13905         * vms_data.ads: Add new GNAT PRETTY qualifiers /NO_BACKUP and
13906         COMMENTS_LAYOUT=UNTOUCHED
13907
13908         * symbols-vms.adb, symbols-vms-alpha.adb: Renamed symbols-vms.adb to
13909         symbols-vms-alpha.adb
13910
13911 2004-05-27  Thomas Quinot  <quinot@act-europe.fr>
13912
13913         * sem.ads: Clarify documentation on checks suppression.
13914
13915         * einfo.ads (Is_Known_Non_Null): Minor comment typo fix and rephrasing.
13916
13917 2004-05-27  Ed Schonberg  <schonberg@gnat.com>
13918
13919         * sem_util.adb (Is_Descendent_Of): Examine properly all ancestors in
13920         the case of multiple derivations.
13921         (Is_Object_Reference): For a selected component, verify that the prefix
13922         is itself an object and not a value.
13923
13924         * sem_ch12.adb (Same_Instantiated_Constant): New name for
13925         Same_Instantiated_Entity.
13926         (Same_Instantiated_Variable): Subsidiary to
13927         Check_Formal_Package_Instance, to recognize actuals for in-out generic
13928         formals that are obtained from a previous formal package.
13929         (Instantiate_Subprogram_Body): Emit proper error when
13930         generating code and the proper body of a stub is missing.
13931
13932         * sem_ch4.adb (Remove_Address_Interpretations): If the operation still
13933         has a universal interpretation, do the disambiguation here.
13934
13935         * exp_ch4.adb (Expand_N_Type_Conversion,
13936         Expand_N_Unchecked_Type_Conversion): Special handling when target type
13937         is Address, to avoid typing anomalies when Address is a visible integer
13938         type.
13939
13940         * exp_ch6.adb (Expand_N_Subprogram_Body): Use Is_Descendent_Of_Address
13941         to determine whether a subprogram should not be marked Pure, even when
13942         declared in a pure package.
13943
13944 2004-05-27  Jose Ruiz  <ruiz@act-europe.fr>
13945
13946         * gnat_ugn.texi: Replace pragma Ravenscar by pragma Profile.
13947
13948         * gnat_rm.texi: Replace Max_Entry_Queue_Depth by Max_Entry_Queue_Length
13949         Document No_Dynamic_Attachment, that supersedes No_Dynamic_Interrupts.
13950         Update the documentation about the Ravenscar profile, following the
13951         definition found in AI-249.
13952
13953         * sem_prag.adb: Use FIFO_Within_Priorities and Ceiling_Locking when
13954         setting the Profile (Ravenscar). This must be done in addition to
13955         setting the required restrictions.
13956
13957         * rtsfind.ads: Add the set of operations defined in package
13958         Ada.Interrupts.
13959
13960         * exp_ch6.adb: Check whether we are violating the No_Dynamic_Attachment
13961         restriction.
13962
13963 2004-05-27  Eric Botcazou  <ebotcazou@act-europe.fr>
13964
13965         lang-specs.h: Always require -c or -S and always redirect to /dev/null
13966         if -gnatc or -gnats is passed.
13967
13968 2004-05-27  Hristian Kirtchev  <kirtchev@gnat.com>
13969
13970         * sem_prag.adb (Sig_Flags): A Pragma_Unchecked_Union does not count as
13971         a significant reference. Warnings are now properly emitted when a
13972         discriminated type is not referenced.
13973
13974         * lib-xref.adb (Generate_Reference): A deferred constant completion,
13975         record representation clause or record type discriminant does not
13976         produce a reference to its corresponding entity. Warnings are now
13977         properly emitted when deferred constants and record types are not
13978         referenced.
13979
13980 2004-05-27  Geert Bosch  <bosch@gnat.com>
13981
13982         * Makefile.in: Use long version of libm routines on ia64 gnu/linux.
13983         Fixes ACATS Annex G tests.
13984
13985 2004-05-27  Robert Dewar  <dewar@gnat.com>
13986
13987         * rtsfind.adb (RTU_Loaded): Temporary kludge to get past bug of not
13988         handling WITH
13989
13990 2004-05-27  Arnaud Charlet  <charlet@act-europe.fr>
13991
13992         * s-interr.adb (Server_Task): Take into account case of early return
13993         from sigwait under e.g. linux.
13994
13995 2004-05-27  Sergey Rybin  <rybin@act-europe.fr>
13996
13997         * gnat_ugn.texi: Add description for the new gnatpp options:
13998          -rnb - replace the original source without creating its backup copy
13999          -c0 - do not format comments
14000
14001 2004-05-24  Geert Bosch  <bosch@gnat.com>
14002
14003         * a-numaux-x86.adb (Reduce): Reimplement using an approximation of Pi
14004         with 192 bits of precision, sufficient to reduce a double-extended
14005         arguments X with a maximum relative error of T'Machine_Epsilon, for X
14006         in -2.0**32 .. 2.0**32.
14007         (Cos, Sin):  Always reduce arguments of 1/4 Pi or larger, to prevent
14008         reduction by the processor, which only uses a 68-bit approximation of
14009         Pi.
14010         (Tan): Always reduce arguments and compute function either using
14011         the processor's fptan instruction, or by dividing sin and cos as needed.
14012
14013 2004-05-24  Doug Rupp  <rupp@gnat.com>
14014
14015         * adaint.c (__gnat_readdir): Cast CRTL function retun value to avoid
14016         gcc error on 32/64 bit VMS.
14017
14018 2004-05-24  Olivier Hainque  <hainque@act-europe.fr>
14019
14020         * init.c (__gnat_error_handler): Handle EEXIST as EACCES for SIGSEGVs,
14021         since this is what we get for stack overflows although not documented
14022         as such.
14023         Document the issues which may require adjustments to our signal
14024         handlers.
14025
14026 2004-05-24  Ed Schonberg  <schonberg@gnat.com>
14027
14028         * inline.adb (Add_Scope_To_Clean): Do not add cleanup actions to the
14029         enclosing dynamic scope if the instantiation is within a generic unit.
14030
14031 2004-05-24  Arnaud Charlet  <charlet@act-europe.fr>
14032
14033         * exp_dbug.ads: Fix typo.
14034
14035         * Makefile.in: s-osinte-linux-ia64.ads was misnamed.
14036         Rename it to its proper name: system-linux-ia64.ads
14037         (stamp-gnatlib1): Remove extra target specific run time files when
14038         setting up the rts directory.
14039
14040 2004-05-24  Javier Miranda  <miranda@gnat.com>
14041
14042         * einfo.ads, einfo.adb (Limited_Views): Removed.
14043         (Limited_View): New attribute that replaces the previous one. It is
14044         now a bona fide package with the limited-view list through the
14045         first_entity and first_private attributes.
14046
14047         * sem_ch10.adb (Install_Private_With_Clauses): Give support to
14048         limited-private-with clause.
14049         (Install_Limited_Withed_Unit): Install the private declarations of a
14050         limited-private-withed package. Update the installation of the shadow
14051         entities according to the new structure (see Build_Limited_Views)
14052         (Build_Limited_Views): Replace the previous implementation of the
14053         limited view by a package entity that references the first shadow
14054         entity plus the first shadow private entity (required for limited-
14055         private-with clause)
14056         (New_Internal_Shadow_Entity): Code cleanup.
14057         (Remove_Limited_With_Clause): Update the implementation to undo the
14058         new work carried out by Build_Limited_Views.
14059         (Build_Chain): Complete documentation.
14060         Replace Ada0Y by Ada 0Y in comments
14061         Minor reformating
14062
14063         * sem_ch3.adb (Array_Type_Declaration): In case of anonymous access
14064         types the level of accessibility depends on the enclosing type
14065         declaration.
14066
14067         * sem_ch8.adb (Find_Expanded_Name): Fix condition to detect shadow
14068         entities. Complete documentation of previous change.
14069
14070 2004-05-24  Robert Dewar  <dewar@gnat.com>
14071
14072         * namet.adb: Minor reformatting
14073         Avoid use of name I (replace by J)
14074         Minor code restructuring
14075
14076         * sem_ch6.adb: Minor reformatting
14077
14078         * lib-writ.adb: Do not set restriction as active if this is a
14079         Restriction_Warning case.
14080
14081         * sem_prag.adb: Reset restriction warning flag if real pragma
14082         restriction encountered.
14083
14084         * s-htable.adb: Minor reformatting
14085         Change rotate count to 3 in Hash (improves hash for small strings)
14086
14087         * 5qsystem.ads: Add comments for type Address (no literals allowed).
14088
14089         * gnat_ugn.texi: Add new section of documentation "Code Generation
14090         Control", which describes the use of -m switches.
14091
14092 2004-05-24  Eric Botcazou  <ebotcazou@act-europe.fr>
14093
14094         trans.c (tree_transform) <N_Identifier>: Do the dereference directly
14095         through the DECL_INITIAL for renamed variables.
14096
14097 2004-05-24  Arnaud Charlet  <charlet@act-europe.fr>
14098
14099         * s-osinte-linux-ia64.ads: Renamed system-linux-ia64.ads
14100
14101 2004-05-19  Joel Brobecker  <brobecker@gnat.com>
14102
14103         * exp_dbug.ads: Correct comments concerning handling of overloading,
14104         since we no longer use $ anymore.
14105
14106 2004-05-19  Sergey Rybin  <rybin@act-europe.fr>
14107
14108         * sem_ch10.adb (Optional_Subunit): When loading a subunit, do not
14109         ignore errors if ASIS_Mode is set. This prevents creating ASIS trees
14110         with illegal subunits.
14111
14112 2004-05-19  Ed Schonberg  <schonberg@gnat.com>
14113
14114         * sem_ch6.adb (Check_Following_Pragma): When compiling a subprogram
14115         body with front-end inlining enabled, check whether an inline pragma
14116         appears immediately after the body and applies to it.
14117
14118         * sem_prag.adb (Cannot_Inline): Emit warning if front-end inlining is
14119         enabled and the pragma appears after the body of the subprogram.
14120
14121 2004-05-17  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14122
14123         Part of function-at-a-time conversion
14124
14125         * misc.c (adjust_decl_rtl): Deleted.
14126         (LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK):
14127         Define.
14128
14129         * gigi.h: (adjust_decl_rtl, kept_level_p, set_block): Deleted.
14130         (add_decl_stmt, add_stmt, block_has_vars): New functions.
14131         (gnat_pushlevel, gnat_poplevel): Renamed from pushlevel and poplevel.
14132
14133         * decl.c (elaborate_expression, maybe_pad_type): Call add_decl_stmt
14134         when making a decl.
14135         (gnat_to_gnu_entity): Likewise.
14136         Use add_stmt to update setjmp buffer.
14137         Set TREE_ADDRESSABLE instead of calling put_var_into_stack and
14138         flush_addressof.
14139         No longer call adjust_decl_rtl.
14140         (DECL_INIT_BY_ASSIGN_P): New macro.
14141         (DECL_STMT_VAR): Likewise.
14142
14143         * trans.c (gigi): Call start_block_stmt to make the outermost
14144         BLOCK_STMT.
14145         (gnat_to_code, gnu_to_gnu, tree_transform, process_decls, process_type):
14146         Call start_block_stmt and end_block_stmt temporarily.
14147         Use gnat_expand_stmt instead of expand_expr_stmt.
14148         (add_decl_stmt): New function.
14149         (tree_transform): Call it.
14150         (add_stmt): Also emit initializing assignment for DECL_STMT if needed.
14151         (end_block_stmt): Set type and NULL_STMT.
14152         (gnat_expand_stmt): Make recursize call instead of calling
14153         expand_expr_stmt.
14154         (gnat_expand_stmt, case DECL_STMT): New case.
14155         (set_lineno_from_sloc): Do nothing if global.
14156         (gnu_block_stmt_node, gnu_block_stmt_free_list): New variables.
14157         (start_block_stmt, add_stmt, end_block_stmt): New functions.
14158         (build_block_stmt): Call them.
14159         (gnat_to_code): Don't expand NULL_STMT.
14160         (build_unit_elab): Rename pushlevel and poplevel to gnat_* and change
14161         args.
14162         (tree_transform): Likewise.
14163         (tree_transform, case N_Null_Statement): Return NULL_STMT.
14164         (gnat_expand_stmt, case NULL_STMT): New case.
14165         (gnat_expand_stmt, case IF_STMT): Allow nested IF_STMT to have no
14166         IF_STMT_TRUE.
14167
14168         * utils2.c (gnat_mark_addressable, case VAR_DECL): Do not set
14169         TREE_ADDRESSABLE.
14170
14171         * utils.c (create_var_decl): Do not call expand_decl or
14172         expand_decl_init.
14173         Set TREE_ADDRESSABLE instead of calling gnat_mark_addressable.
14174         Set DECL_INIT_BY_ASSIGN_P when needed and do not generate MODIFY_EXPR
14175         here.
14176         (struct e_stack): Add chain_next to GTY.
14177         (struct binding_level): Deleted.
14178         (struct ada_binding_level): New struct.
14179         (free_block_chain): New.
14180         (global_binding_level, clear_binding_level): Deleted.
14181         (global_bindings_p): Rework to see if no chain.
14182         (kept_level_p, set_block): Deleted.
14183         (gnat_pushlevel): Renamed from pushlevel and extensive reworked to use
14184         new data structure and work directly on BLOCK node.
14185         (gnat_poplevel): Similarly.
14186         (get_decls): Look at BLOCK_VARS.
14187         (insert_block): Work directly on BLOCK node.
14188         (block_has_var): New function.
14189         (pushdecl): Rework for new binding structures.
14190         (gnat_init_decl_processing): Rename and rework calls to pushlevel and
14191         poplevel.
14192         (build_subprog_body): Likewise.
14193         (end_subprog_body): Likewise; also set up BLOCK in DECL_INITIAL.
14194
14195         * ada-tree.def (DECL_STMT, NULL_STMT): New codes.
14196
14197         * ada-tree.h: (DECL_INIT_BY_ASSIGN_P): New macro.
14198         (DECL_STMT_VAR): Likewise.
14199
14200 2004-05-17  Robert Dewar  <dewar@gnat.com>
14201
14202         * restrict.ads, restrict.adb (Process_Restriction_Synonym): New
14203         procedure
14204
14205         * sem_prag.adb (Analyze_Pragma, case Restrictions): Cleanup handling
14206         of restriction synonyums by using
14207         Restrict.Process_Restriction_Synonyms.
14208
14209         * snames.ads, snames.adb: Add entries for Process_Restriction_Synonym
14210
14211         * s-restri.ads (Tasking_Allowed): Correct missing comment
14212
14213         * s-rident.ads: Add entries for restriction synonyms
14214
14215         * ali.adb: Fix some problems with badly formatted ALI files that can
14216         result in infinite loops.
14217
14218         * s-taprop-lynxos.adb, s-tpopsp-lynxos.adb, s-taprop-tru64.adb,
14219         s-tpopsp-posix-foreign.adb, s-taprop-irix.adb, s-interr-sigaction.adb,
14220         s-taprop-irix-athread.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
14221         s-taprop-dummy.adb, s-interr-dummy.adb, s-taprop-os2.adb,
14222         s-taprop-solaris.adb, s-tpopsp-solaris.adb, s-asthan-vms.adb,
14223         s-inmaop-vms.adb, s-interr-vms.adb, s-taprop-vms.adb,
14224         s-tpopde-vms.adb, s-taprop-mingw.adb, s-interr-vxworks.adb,
14225         s-taprop-vxworks.adb, s-tpopsp-vxworks.adb, s-taprop-posix.adb,
14226         s-tpopsp-posix.adb, s-tratas-default.adb, a-dynpri.adb,
14227         a-tasatt.adb, a-taside.adb, a-taside.ads, exp_attr.adb,
14228         exp_ch9.adb, g-thread.adb, rtsfind.ads, sem_attr.adb,
14229         s-interr.adb, s-interr.ads, s-soflin.ads, s-taasde.adb,
14230         s-taasde.ads, s-taenca.adb, s-taenca.ads, s-taprop.ads,
14231         s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads,
14232         s-tasini.adb, s-tasini.ads, s-taskin.adb, s-taskin.ads,
14233         s-tasque.adb, s-tasque.ads, s-tasren.adb, s-tasren.ads,
14234         s-tassta.adb, s-tassta.ads, s-tasuti.adb, s-tasuti.ads,
14235         s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
14236         s-tpoben.adb, s-tpobop.adb, s-tpobop.ads, s-tporft.adb,
14237         s-tposen.adb, s-tposen.ads, s-tratas.adb, s-tratas.ads: Change Task_ID
14238         to Task_Id (minor cleanup).
14239
14240 2004-05-17  Vincent Celier  <celier@gnat.com>
14241
14242         * g-os_lib.adb (Normalize_Pathname.Final_Value): Remove trailing
14243         directory separator.
14244
14245         * prj-proc.adb (Recursive_Process): Inherit attribute Languages from
14246         project being extended, if Languages is not declared in extending
14247         project.
14248
14249 2004-05-17  Javier Miranda  <miranda@gnat.com>
14250
14251         * sem_ch10.adb (Install_Limited_Withed_Unit): Do not install the
14252         limited view of a visible sibling.
14253
14254 2004-05-14  Robert Dewar  <dewar@gnat.com>
14255
14256         * gnat_ugn.texi: Minor change to -gnatS documentation
14257
14258         * sprint.adb: Remove some instances of Assert (False) and for this
14259         purpose replace them by output of a ??? string.
14260
14261         * checks.adb, exp_aggr.adb, sem_elim.adb: Remove useless pragma
14262         Assert (False).
14263
14264         * lib-writ.adb, lib-load.adb, lib.ads, lib.adb: Remove Dependent_Unit
14265         flag processing. This was suppressing required dependencies in
14266         No_Run_Time mode and is not needed since the binder does not generate
14267         references for things in libgnat anyway.
14268
14269         * sem_ch3.adb (Access_Type_Declaration): Reorganize code to avoid GCC
14270         warning.
14271
14272 2004-05-14  Thomas Quinot  <quinot@act-europe.fr>
14273
14274         * gnat_ugn.texi: Document AIX-specific issue with initialization of
14275         resolver library.
14276
14277         * exp_ch4.adb (Insert_Dereference_Action): Do not generate dereference
14278         action for the case of an actual parameter in an init proc call.
14279
14280 2004-05-14  Ed Schonberg  <schonberg@gnat.com>
14281
14282         * sem_ch4.adb (Analyze_Selected_Component): If prefix is a protected
14283         subtype, check visible entities in base type.
14284
14285         * exp_ch7.adb (Clean_Simple_Protected_Objects): Do not generate cleanup
14286         actions if the object is a renaming.
14287
14288         * sem_ch12.adb (Same_Instantiated_Entity): Predicate for
14289         Check_Formal_Package_Instance, to determine more precisely when the
14290         formal and the actual denote the same entity.
14291
14292 2004-05-14  Javier Miranda  <miranda@gnat.com>
14293
14294         * par-ch10.adb (P_Context_Clause): Complete documentation on AI-262
14295
14296         * sem_ch10.adb (Analyze_With_Clause): After analyzed, the entity
14297         corresponding to a private_with must be removed from visibility; it
14298         will be made visible later, just before we analyze the private part of
14299         the package.
14300         (Check_Private_Child_Unit): Allow private_with clauses in public
14301         siblings.
14302         (Install_Siblings): Make visible the private entities of private-withed
14303         siblings.
14304         (Install_Withed_Unit): Do not install the private withed unit if we
14305         are compiling a package declaration and the Private_With_OK flag was
14306         not set by the caller. These declarations will be installed later,
14307         just before we analyze the private part of the package.
14308
14309         * sem_ch3.adb (Analyze_Object_Declaration): In case of errors detected
14310         during the evaluation of the expression that initializes the object,
14311         decorate it with the expected type to avoid cascade errors.
14312         Code cleanup.
14313
14314         * sem_ch6.adb (Analyze_Subprogram_Body): If we are compiling a library
14315         subprogram we have to install the private_with clauses after its
14316         specification has been analyzed (as documented in AI-262.TXT).
14317
14318         * sem_ch8.adb (Has_Private_With): New function. Determines if the
14319         current compilation unit has a private with on a given entity.
14320         (Find_Direct_Name): Detect the Beaujolais problem described in
14321         AI-262.TXT
14322
14323         * sem_utils.ads, sem_util.adb (Is_Ancestor_Package): New function. It
14324         provides the functionality of the function Is_Ancestor that was
14325         previously available in sem_ch10. It has been renamed to avoid
14326         overloading.
14327
14328         * sprint.adb (Sprint_Node_Actual): Print limited_with clauses
14329
14330 2004-05-14  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14331
14332         * utils.c (build_vms_descriptor): Use SImode pointers.
14333
14334 2004-05-14  Vasiliy Fofanov  <fofanov@act-europe.fr>
14335
14336         * gnat_ugn.texi: Revised chapter "GNAT and Libraries".
14337
14338 2004-05-14  GNAT Script  <nobody@gnat.com>
14339
14340         * Make-lang.in: Makefile automatically updated
14341
14342 2004-05-14  Arnaud Charlet  <charlet@act-europe.fr>
14343
14344         Renaming of target specific files for clarity
14345
14346         * Makefile.in: Rename GNAT target specific files.
14347
14348         * 31soccon.ads, 31soliop.ads 35soccon.ads, 3asoccon.ads,
14349         3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3psoccon.ads,
14350         3ssoccon.ads, 3ssoliop.ads, 3veacodu.adb, 3vexpect.adb,
14351         3vsoccon.ads, 3vsocthi.adb, 3vsocthi.ads, 3vtrasym.adb,
14352         3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads, 3wsoliop.ads,
14353         3zsoccon.ads, 3zsocthi.adb, 3zsocthi.ads, 41intnam.ads,
14354         42intnam.ads, 45intnam.ads, 4aintnam.ads, 4cintnam.ads,
14355         4gintnam.ads, 4hexcpol.adb, 4hintnam.ads, 4lintnam.ads,
14356         4nintnam.ads, 4ointnam.ads, 4onumaux.ads, 4pintnam.ads,
14357         4sintnam.ads, 4vcaldel.adb, 4vcalend.adb, 4vcalend.ads,
14358         4vintnam.ads, 4wcalend.adb, 4wexcpol.adb, 4wintnam.ads,
14359         4zintnam.ads, 4znumaux.ads, 4zsytaco.adb, 4zsytaco.ads,
14360         51osinte.adb, 51osinte.ads, 51system.ads,
14361         52osinte.adb, 52osinte.ads, 53osinte.ads, 54osinte.ads,
14362         55osinte.adb, 55osinte.ads, 55system.ads, 56osinte.adb,
14363         56osinte.ads, 56system.ads, 56taprop.adb, 56taspri.ads,
14364         56tpopsp.adb, 57system.ads, 58system.ads,
14365         5amastop.adb, 5aml-tgt.adb, 5aosinte.adb, 5aosinte.ads,
14366         5asystem.ads, 5ataprop.adb, 5atasinf.ads, 5ataspri.ads,
14367         5atpopsp.adb, 5avxwork.ads, 5bml-tgt.adb, 5bosinte.adb,
14368         5bosinte.ads, 5bsystem.ads, 5cosinte.ads, 5csystem.ads,
14369         5dsystem.ads, 5esystem.ads, 5fintman.adb, 5fosinte.adb,
14370         5fosinte.ads, 5fsystem.ads, 5ftaprop.adb, 5ftasinf.ads,
14371         5ginterr.adb, 5gintman.adb, 5gmastop.adb, 5gml-tgt.adb,
14372         5gosinte.ads, 5gproinf.adb, 5gproinf.ads, 5gsystem.ads,
14373         5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads, 5gtpgetc.adb,
14374         5hml-tgt.adb, 5hosinte.adb, 5hosinte.ads, 5hparame.ads,
14375         5hsystem.ads, 5htaprop.adb, 5htaspri.ads, 5htraceb.adb,
14376         5iosinte.adb, 5iosinte.ads, 5itaprop.adb, 5itaspri.ads,
14377         5ksystem.ads, 5kvxwork.ads, 5lml-tgt.adb, 5losinte.ads,
14378         5lparame.adb, 5lsystem.ads, 5msystem.ads, 5mvxwork.ads,
14379         5ninmaop.adb, 5nintman.adb, 5nosinte.ads, 5nsystem.ads,
14380         5ntaprop.adb, 5ntaspri.ads, 5ointerr.adb, 5omastop.adb,
14381         5oosinte.adb, 5oosinte.ads, 5oosprim.adb, 5oparame.adb,
14382         5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5posinte.ads,
14383         5posprim.adb, 5psystem.ads, 5pvxwork.ads, 5sintman.adb,
14384         5sml-tgt.adb, 5sosinte.adb, 5sosinte.ads, 5sosprim.adb,
14385         5sparame.adb, 5ssystem.ads, 5staprop.adb, 5stasinf.adb,
14386         5stasinf.ads, 5staspri.ads, 5stpopsp.adb, 5svxwork.ads,
14387         5tosinte.ads, 5usystem.ads, 5vasthan.adb, 5vdirval.adb,
14388         5vinmaop.adb, 5vinterr.adb, 5vintman.adb, 5vintman.ads,
14389         5vmastop.adb, 5vml-tgt.adb, 5vosinte.adb, 5vosinte.ads,
14390         5vosprim.adb, 5vosprim.ads, 5vparame.ads, 5vsymbol.adb,
14391         5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads, 5vtpopde.adb,
14392         5vtpopde.ads, 5vtraent.adb, 5vtraent.ads, 5vvaflop.adb,
14393         5wdirval.adb, 5wgloloc.adb, 5wintman.adb, 5wmemory.adb,
14394         5wml-tgt.adb, 5wosinte.ads, 5wosprim.adb, 5wsystem.ads,
14395         5wtaprop.adb, 5wtaspri.ads, 5xparame.ads, 5xsystem.ads,
14396         5xvxwork.ads, 5yparame.ads, 5ysystem.ads, 5zinterr.adb,
14397         5zintman.adb, 5zintman.ads, 5zml-tgt.adb, 5zosinte.adb,
14398         5zosinte.ads, 5zosprim.adb, 5zparame.ads, 5zstchop.adb,
14399         5zsystem.ads, 5ztaprop.adb, 5ztaspri.ads, 5ztfsetr.adb,
14400         5ztpopsp.adb, 6vcpp.adb, 6vcstrea.adb, 6vinterf.ads,
14401         7sinmaop.adb, 7sintman.adb, 7sosinte.adb, 7sosprim.adb,
14402         7staprop.adb, 7staspri.ads, 7stfsetr.adb, 7stpopsp.adb,
14403         7straceb.adb, 7straces.adb, 7strafor.adb, 7strafor.ads,
14404         7stratas.adb, 86numaux.adb, 86numaux.ads: Replaced by files below.
14405
14406         * a-caldel-vms.adb, a-calend-mingw.adb, a-calend-vms.adb,
14407         a-calend-vms.ads, a-dirval-mingw.adb, a-dirval-vms.adb,
14408         a-excpol-abort.adb, a-excpol-interix.adb, a-intnam-aix.ads,
14409         a-intnam-dummy.ads, a-intnam-freebsd.ads, a-intnam-hpux.ads,
14410         a-intnam-interix.ads, a-intnam-irix.ads, a-intnam-linux.ads,
14411         a-intnam-lynxos.ads, a-intnam-mingw.ads, a-intnam-os2.ads,
14412         a-intnam-solaris.ads, a-intnam-tru64.ads, a-intnam-unixware.ads,
14413         a-intnam-vms.ads, a-intnam-vxworks.ads, a-numaux-libc-x86.ads,
14414         a-numaux-vxworks.ads, a-numaux-x86.adb, a-numaux-x86.ads,
14415         a-sytaco-vxworks.adb, a-sytaco-vxworks.ads, g-eacodu-vms.adb,
14416         g-expect-vms.adb, g-soccon-aix.ads, g-soccon-freebsd.ads,
14417         g-soccon-hpux.ads, g-soccon-interix.ads, g-soccon-irix.ads,
14418         g-soccon-mingw.ads, g-soccon-solaris.ads, g-soccon-tru64.ads,
14419         g-soccon-unixware.ads, g-soccon-vms.adb, g-soccon-vxworks.ads,
14420         g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vms.adb,
14421         g-socthi-vms.ads, g-socthi-vxworks.adb, g-socthi-vxworks.ads,
14422         g-soliop-mingw.ads, g-soliop-solaris.ads, g-soliop-unixware.ads,
14423         g-trasym-vms.adb, i-cpp-vms.adb, i-cstrea-vms.adb,
14424         interfac-vms.ads, mlib-tgt-aix.adb, mlib-tgt-hpux.adb,
14425         mlib-tgt-irix.adb, mlib-tgt-linux.adb, mlib-tgt-mingw.adb,
14426         mlib-tgt-solaris.adb, mlib-tgt-tru64.adb, mlib-tgt-vms.adb,
14427         mlib-tgt-vxworks.adb, s-asthan-vms.adb, s-gloloc-mingw.adb,
14428         s-inmaop-dummy.adb, s-inmaop-posix.adb, s-inmaop-vms.adb,
14429         s-interr-dummy.adb, s-interr-sigaction.adb, s-interr-vms.adb,
14430         s-interr-vxworks.adb, s-intman-dummy.adb, s-intman-irix.adb,
14431         s-intman-irix-athread.adb, s-intman-mingw.adb, s-intman-posix.adb,
14432         s-intman-solaris.adb, s-intman-vms.adb, s-intman-vms.ads,
14433         s-intman-vxworks.adb, s-intman-vxworks.ads, s-mastop-irix.adb,
14434         s-mastop-tru64.adb, s-mastop-vms.adb, s-mastop-x86.adb,
14435         s-memory-mingw.adb, s-osinte-aix.adb, s-osinte-aix.ads,
14436         s-osinte-aix-fsu.ads, s-osinte-dummy.ads, s-osinte-freebsd.adb,
14437         s-osinte-freebsd.ads, s-osinte-fsu.adb, s-osinte-hpux.ads,
14438         s-osinte-hpux-dce.adb, s-osinte-hpux-dce.ads, s-osinte-interix.ads,
14439         s-osinte-irix.adb, s-osinte-irix.ads, s-osinte-irix-athread.ads,
14440         s-osinte-linux.ads, s-osinte-linux-fsu.ads, s-osinte-linux-ia64.ads,
14441         s-osinte-lynxos-3.adb, s-osinte-lynxos-3.ads, s-osinte-lynxos.adb,
14442         s-osinte-lynxos.ads, s-osinte-mingw.ads, s-osinte-os2.adb,
14443         s-osinte-os2.ads, s-osinte-posix.adb, s-osinte-solaris.adb,
14444         s-osinte-solaris.ads, s-osinte-solaris-fsu.ads,
14445         s-osinte-solaris-posix.ads, s-osinte-tru64.adb, s-osinte-tru64.ads,
14446         s-osinte-unixware.adb, s-osinte-unixware.ads, s-osinte-vms.adb,
14447         s-osinte-vms.ads, s-osinte-vxworks.adb,
14448         s-osinte-vxworks.ads, s-osprim-mingw.adb,
14449         s-osprim-os2.adb, s-osprim-posix.adb, s-osprim-solaris.adb,
14450         s-osprim-unix.adb, s-osprim-vms.adb, s-osprim-vms.ads,
14451         s-osprim-vxworks.adb, s-parame-ae653.ads, s-parame-hpux.ads,
14452         s-parame-linux.adb, s-parame-os2.adb, s-parame-solaris.adb,
14453         s-parame-vms.ads, s-parame-vms-restrict.ads, s-parame-vxworks.ads,
14454         s-proinf-irix-athread.adb, s-proinf-irix-athread.ads,
14455         s-stchop-vxworks.adb, s-taprop-dummy.adb,
14456         s-taprop-hpux-dce.adb, s-taprop-irix.adb,
14457         s-taprop-irix-athread.adb, s-taprop-linux.adb, s-taprop-lynxos.adb,
14458         s-taprop-mingw.adb, s-taprop-os2.adb, s-taprop-posix.adb,
14459         s-taprop-solaris.adb, s-taprop-tru64.adb, s-taprop-vms.adb,
14460         s-taprop-vxworks.adb, s-tasinf-irix.ads, s-tasinf-irix-athread.adb,
14461         s-tasinf-irix-athread.ads, s-tasinf-solaris.adb, s-tasinf-solaris.ads,
14462         s-tasinf-tru64.ads, s-taspri-dummy.ads, s-taspri-hpux-dce.ads,
14463         s-taspri-linux.ads, s-taspri-lynxos.ads, s-taspri-mingw.ads,
14464         s-taspri-os2.ads, s-taspri-posix.ads, s-taspri-solaris.ads,
14465         s-taspri-tru64.ads, s-taspri-vms.ads, s-taspri-vxworks.ads,
14466         s-tfsetr-default.adb, s-tfsetr-vxworks.adb, s-tpopde-vms.adb,
14467         s-tpopde-vms.ads, s-tpopsp-lynxos.adb, s-tpopsp-posix.adb,
14468         s-tpopsp-posix-foreign.adb, s-tpopsp-solaris.adb, s-tpopsp-vxworks.adb,
14469         s-traceb-hpux.adb, s-traceb-mastop.adb, s-traces-default.adb,
14470         s-traent-vms.adb, s-traent-vms.ads, s-trafor-default.adb,
14471         s-trafor-default.ads, s-tratas-default.adb, s-vaflop-vms.adb,
14472         s-vxwork-alpha.ads, s-vxwork-m68k.ads, s-vxwork-mips.ads,
14473         s-vxwork-ppc.ads, s-vxwork-sparcv9.ads, s-vxwork-xscale.ads,
14474         symbols-vms.adb, system-aix.ads, system-freebsd-x86.ads,
14475         system-hpux.ads, system-interix.ads, system-irix-n32.ads,
14476         system-irix-o32.ads, system-linux-x86_64.ads,
14477         system-linux-x86.ads, system-lynxos-ppc.ads, system-lynxos-x86.ads,
14478         system-mingw.ads, system-os2.ads, system-solaris-sparc.ads,
14479         system-solaris-sparcv9.ads, system-solaris-x86.ads, system-tru64.ads,
14480         system-unixware.ads, system-vms.ads, system-vms-zcx.ads,
14481         system-vxworks-alpha.ads, system-vxworks-m68k.ads,
14482         system-vxworks-mips.ads, system-vxworks-ppc.ads,
14483         system-vxworks-sparcv9.ads, system-vxworks-xscale.ads: Replace files
14484         above.
14485
14486 2004-05-13  Zack Weinberg  <zack@codesourcery.com>
14487
14488         * trans.c (gnat_stabilize_reference_1): Remove case 'b'.
14489
14490 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
14491
14492         Merge from tree-ssa-20020619-branch.
14493
14494         * config-lang.in (boot_language, build_by_default): Set
14495         to no.
14496         * utils.c (unchecked_convert): Use OEP_ONLY_CONST.
14497         (max_size): Add static chain op for call_expr.
14498
14499 2004-05-12  Richard Sandiford  <rsandifo@redhat.com>
14500
14501         PR target/15331
14502         * 5gmastop.adb (Roff): Choose between '4' and '0', not '4' and ' '.
14503
14504 2004-05-11  Roger Sayle  <roger@eyesopen.com>
14505
14506         * utils.c (max_size): Use MIN_EXPR to find the minimum value of a
14507         COND_EXPR.
14508
14509 2004-05-10  Doug Rupp  <rupp@gnat.com>
14510
14511         * 5qsystem.ads: Remove Short_Address subtype declaration. Moved to
14512         system.aux_dec.
14513
14514         * s-auxdec.ads: Add Short_Address subtype (moved here from System).
14515
14516         * Makefile.in: [VMS]: Add translation for 5qauxdec.ads.
14517
14518         * init.c: [VMS] Macroize LIB$ calls for IA64 and Alpha.
14519         Fixes undefined symbols in IA64 gnatlib.
14520
14521         * 5vinmaop.adb: Reference s-auxdec for Short_Address.
14522
14523         * 5xsystem.ads, 5vsystem.ads: Back out last change (addition of subtype
14524         Short_Address). This will be moved to system.auxdec.
14525
14526 2004-05-10  Thomas Quinot  <quinot@act-europe.fr>
14527
14528         * sem_util.adb: Replace test for presence of a node that is always
14529         present with a call to Discard_Node.
14530
14531         * sem_ch10.adb (Analyze_Compilation_Unit): Remove superfluous call to
14532         Analyze on the library unit node after generation of distribution stub
14533         constructs.  The call was a no-op because Unit_Node has already been
14534         Analyzed, and the tree fragments for the distribution stubs are
14535         analyzed as they are inserted in Exp_Dist.
14536         Update comment regarding to distribution stubs to reflect that we
14537         do not generate stub in separate files anymore.
14538
14539         * einfo.ads: Clarify the fact that a tagged private type has the
14540         E_Record_Type_With_Private Ekind.
14541
14542         * erroutc.adb: Minor reformatting
14543
14544         * erroutc.ads (Max_Msg_Length): Increase to cover possible larger
14545         values if line length is increased using -gnatyM (noticed during code
14546         reading).
14547
14548         * eval_fat.adb: Minor reformatting
14549         Put spaces around exponentiation operator
14550
14551 2004-05-10  Ed Schonberg  <schonberg@gnat.com>
14552
14553         PR ada/15005
14554         * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): If prefix
14555         has been rewritten as an explicit dereference, retrieve type of
14556         original node to check for possibly unconstrained record type.
14557
14558 2004-05-10  Ed Schonberg  <schonberg@gnat.com>
14559
14560         * exp_ch7.adb (Check_Visibly_Controlled): If given operation is not
14561         overriding, use the operation of the parent unconditionally.
14562
14563         * sem_ch4.adb (Remove_Address_Interpretations): Remove address
14564         operation when either operand is a literal, to avoid further
14565         ambiguities.
14566
14567         * sem_ch6.adb (New_Overloaded_Entity): If new entity is inherited and
14568         overridden by a previous explicit declaration, mark the previous entity
14569         as overriding.
14570
14571         * sem_disp.adb (Check_Dispatching_Operation): New predicate
14572         Is_Visibly_Controlled, to determine whether a declaration of a
14573         primitive control operation for a derived type overrides an inherited
14574         one. Add warning if the explicit declaration does not override.
14575
14576 2004-05-10  Vincent Celier  <celier@gnat.com>
14577
14578         * gnatls.adb (Gnatls): Initialize Snames, to avoid assertion error in
14579         some cases when the sources are no longer present.
14580
14581         * make.adb (Collect_Arguments): Fail if an external source, not part
14582         of any project need to be compiled, when switch -x has not been
14583         specified.
14584
14585         * makeusg.adb: Document new switch -x
14586
14587         * opt.ads (External_Unit_Compilation_Allowed): New Boolean flag,
14588         defaulted to False.
14589
14590         * switch-m.adb (Scan_Make_Switches): New switch -x
14591
14592         * vms_data.ads: Add VMS qualifier /NON_PROJECT_UNIT_COMPILATION for
14593         gnatmake switch -x.
14594
14595         * gnat_ugn.texi: Document new gnatmake switch -x
14596
14597 2004-05-10  Eric Botcazou  <ebotcazou@act-europe.fr>
14598
14599         * misc.c (gnat_init_options): Set flag_zero_initialized_in_bss to 0.
14600
14601         * utils.c (create_var_decl): Do not modify the DECL_COMMON flag.
14602         (process_attributes): Likewise.
14603
14604 2004-05-10  Joel Brobecker  <brobecker@gnat.com>
14605
14606         * s-inmaop.ads: Fix spelling mistake in one of the comments.
14607
14608 2004-05-10  Robert Dewar  <dewar@gnat.com>
14609
14610         * gnat_ugn.texi: Document that for config pragma files, the maximum
14611         line length is always 32767.
14612
14613         * gnat_rm.texi: For pragma Eliminate, note that concatenation of string
14614         literals is now allowed.
14615
14616         * gnat-style.texi: Remove statement about splitting long lines before
14617         an operator rather than after, since we do not follow this rule at all.
14618         Clarify rule (really lack of rule) for spaces around exponentiation
14619
14620         * sem_elim.adb: Allow concatenation of string literals as well as a
14621         single string literal for pragma arguments.
14622
14623         * sem_prag.ads, sem_prag.adb: (Is_Config_Static_String): New function
14624
14625         * a-textio.adb (Terminate_Line): Do not add line feed if nothing
14626         written for append case.
14627
14628         * frontend.adb: Changes to avoid checking max line length in config
14629         pragma files.
14630
14631         * g-os_lib.ads: Minor reformatting
14632
14633         * mlib-utl.adb: Do not define Max_Line_Length locally (definition was
14634         wrong in any case. Instead use standard value. Noticed during code
14635         reading.
14636
14637         * opt.ads (Max_Line_Length): New field, used to implement removal of
14638         limitation on length of lines when scanning config pragma files.
14639
14640         * osint.ads, prj-dect.adb, prj-strt.adb, prj-tree.adb,
14641         makeutl.ads, makeutl.adb: Minor reformatting
14642
14643         * scn.adb: Do not check line length while scanning config pragma files
14644         Do not check line length while scanning out license information
14645
14646         * scng.adb: Changes to avoid line length checks while parsing config
14647         pragma files.
14648
14649 2004-05-10  GNAT Script  <nobody@gnat.com>
14650
14651         * Make-lang.in: Makefile automatically updated
14652
14653 2004-05-05  Arnaud Charlet  <charlet@act-europe.fr>
14654
14655         * osint.adb (Find_Program_Name): Fix handling of VMS version
14656         number.
14657
14658 2004-05-05  Emmanuel Briot  <briot@act-europe.fr>
14659
14660         * g-os_lib.ads (Invalid_Time): New constant
14661
14662         * adaint.h, adaint.c (__gnat_file_time_name, __gnat_file_time_fd): Now
14663         return OS_Time instead of time_t to match what is imported by Ada.
14664         Now return -1 if the file doesn't exist, instead of a random value
14665
14666 2004-05-05  Robert Dewar  <dewar@gnat.com>
14667
14668         * usage.adb: Add line for -gnatR?s switch
14669
14670         * sem_ch13.adb, exp_ch2.adb: Minor reformatting
14671
14672         * g-regpat.ads, g-regpat.adb: Add documentation on handling of Size
14673         and for Match (Data_First, Data_last)
14674
14675         * lib-writ.adb (Write_With_Lines): Ensure that correct index number is
14676         written when we are dealing with multi-unit files.
14677
14678 2004-05-05  Jerome Guitton  <guitton@act-europe.fr>
14679
14680         * Makefile.in: Remove unused targets and variables.
14681
14682 2004-05-05  Vincent Celier  <celier@gnat.com>
14683
14684         * switch-m.adb: New gnatmake switch -eI
14685
14686         * vms_data.ads: Add VMS equivalents of new gnatclean swith -innn and
14687         of new gnatmake switch -eInnn.
14688
14689         * makegpr.adb: Take into account new parameters Index and Src_Index in
14690         Prj.Util.
14691
14692         * clean.adb: Implement support for multi-unit sources, including new
14693         switch -i.
14694
14695         * gnatcmd.adb (GNATCmd): Call Prj.Util.Value_Of with new parameter
14696         Src_Index.
14697
14698         * make.ads, make.adb (Insert_Q): New parameter Index, defaulted to 0
14699         (Extract_From_Q): New out parameter Index
14700         (Mark, Is_Marked): Subprograms moved to Makeutl
14701         (Switches_Of): New parameter Source_Index
14702         (Add_Switch): New parameter Index
14703         (Check): New parameter Source_Index
14704         (Collect_Arguments): New parameter Source_Index
14705         (Collect_Arguments_And_Compile): New parameter Source_Index
14706         (Compile): New parameter Source_Index
14707         Put subprograms in alphabetical order
14708         Add support for multi-source sources, including in project files.
14709
14710         * makeutl.ads, makeutl.adb (Unit_Index_Of): New function
14711         (Mark, Is_Marked, Delete_All_Marks): New subprograms, moved from
14712         Make.
14713
14714         * makeusg.adb: New gnatmake switch -eInnn
14715
14716         * mlib-prj.adb (Build_Library): Add new parameter Src_Index to call to
14717         Prj.Util.Value_Of.
14718
14719         * opt.ads (Main_Index): New variable, defaulted to 0.
14720
14721         * osint.ads, osinte.adb (Add_File): New parameter Index
14722         (Current_Source_Index): New function
14723
14724         * prj.adb: Take into account new components Index and Src_Index
14725
14726         * prj.ads (String_Element): New component Index
14727         (Variable_Value): New component Index
14728         (Array_Element): New component Src_Index
14729
14730         * prj-attr.adb: Indicate that optional index may be specified for
14731         attributes Main, Executable, Spec, Body and some of Switches.
14732
14733         * prj-attr.ads (Attribute_Kind): New values for optional indexes
14734         (Attribute_Record): New component Optional_Index
14735
14736         * prj-com.ads (File_Name_Data): New component Index
14737
14738         * prj-dect.adb (Parse_Attribute_Declaration): Process optional index
14739
14740         * prj-env.adb (Put): Output optional index
14741
14742         * prj-makr.adb: Put indexes for multi-unit sources in SFN pragmas and
14743         attributes Spec and Body.
14744
14745         * prj-nmsc.adb: Process optional indexes
14746
14747         * prj-pp.adb: Ouput "at" for optional indexes
14748
14749         * prj-proc.adb: Take into account optional indexes
14750
14751         * prj-strt.ads, prj-strt.adb (Terms): New Boolean parameter
14752         Optional_Index. For string literal,
14753         process optional index when Optional_Index is True.
14754         (Parse_Expresion): New Boolean parameter Optional_Index
14755
14756         * prj-tree.ads, prj-tree.adb (Source_Index_Of): New function
14757         (Set_Source_Index_Of): New procedure
14758
14759         * prj-util.adb (Executable_Of, Value_Of): Take into account optional
14760         index.
14761
14762         * prj-util.ads (Executable_Of): New parameter Index
14763         (Value_Of (Name_Id, Array_Element_Id) returning Variable_Value):
14764         New parameter Src_Index, defaulted to 0.
14765
14766 2004-05-05  Ed Schonberg  <schonberg@gnat.com>
14767
14768         PR ada/15257
14769         * sem_ch3.adb (Access_Definition): If this is an access parameter
14770         whose designated type is imported through a limited_with clause, do
14771         not add the enclosing subprogram to the list of private dependents of
14772         the type.
14773
14774 2004-05-05  Ed Schonberg  <schonberg@gnat.com>
14775
14776         PR ada/15258
14777         * sem_ch6.adb (Base_Types_Match): True if one type is imported through
14778         a limited_with clause, and the other is its non-limited view.
14779
14780 2004-05-05  Thomas Quinot  <quinot@act-europe.fr>
14781
14782         * cstand.adb (Create_Standard): Initialize Stand.Boolean_Literals.
14783
14784         * exp_attr.adb, exp_ch5.adb, exp_ch9.adb, exp_disp.adb,
14785         exp_fixd.adb, sem_attr.adb, sem_dist.adb, sem_util.adb: Use
14786         Stand.Boolean_Literals to produce references to entities
14787         Standard_False and Standard_True from compile-time computed boolean
14788         values.
14789
14790         * stand.ads (Boolean_Literals): New variable, provides the entity
14791         values for False and True, for use by the expander.
14792
14793 2004-05-05  Doug Rupp  <rupp@gnat.com>
14794
14795         * 5vinmaop.adb, 5[vx]system.ads: Add Short_Address subtype
14796         5vinmaop.adb: Unchecked convert Short_Address vice Address
14797
14798         * adaint.c, raise.c: Caste CRTL function return value
14799         to avoid gcc error on 32/64 bit IVMS.
14800
14801         * Makefile.in [VMS]: Use iar archiver if host = Alpha/VMS and
14802         target = IA64/VMS.
14803
14804         * init.c[VMS]: Only call Alpha specific __gnat_error_prehandler IN_RTS.
14805
14806         * 5qsystem.ads (Address): Declare as Long_Integer
14807         (Short_Address): Declare as 32 bit subtype of Address
14808         Declare  abstract address operations to avoid gratuitous ambiguities.
14809
14810 2004-05-05  Jose Ruiz  <ruiz@act-europe.fr>
14811
14812         * gnat_rm.texi: Use the new restriction Simple_Barriers (AI-249)
14813         instead of the old Boolean_Entry_Barriers.
14814         Ditto for No_Task_Attributes_Package instead of No_Task_Attributes.
14815
14816 2004-05-05  GNAT Script  <nobody@gnat.com>
14817
14818         * Make-lang.in: Makefile automatically updated
14819
14820 2004-05-03  Arnaud Charlet  <charlet@act-europe.fr>
14821
14822         * 50system.ads, 59system.ads, s-thread.ads: Removed, no longer used.
14823
14824 2004-05-03  Olivier Hainque  <hainque@act-europe.fr>
14825
14826         PR ada/15152
14827
14828         * exp_ch2.adb (Expand_Current_Value): Leave Machine_Code Asm arguments
14829         alone. Replacing object references by literals is inappropriate in a
14830         so low level context.
14831
14832 2004-05-03  Arnaud Charlet  <charlet@act-europe.fr>
14833
14834         * a-exexpr.adb: Add comments
14835
14836 2004-05-03  Joel Brobecker  <brobecker@gnat.com>
14837
14838         * a-tags.adb (Tag_Table): Add Index_Check pragma Suppress. Allows us to
14839         declare the Ancestor_Tags array in Type_Specific_Data with a small size
14840         without risking a bounds check error when accessing one of its
14841         components.
14842         (Type_Specific_Data): Define Ancestor_Tags as a small array.
14843         This prevents us from hitting a limitation during the debug info
14844         generation when using stabs.
14845
14846         * a-tags.adb (Dispatch_Table): Define the Prims_Ptr component as a
14847         small array.
14848         This prevents us from hitting a limitation during the debug info
14849         generation when using stabs.
14850
14851 2004-05-03  Eric Botcazou  <ebotcazou@act-europe.fr>
14852
14853         lang-specs.h: Remove -gnatz* from specs.
14854
14855 2004-05-03  Vincent Celier  <celier@gnat.com>
14856
14857         * gprmake.adb, makegpr.ads, makegpr.adb: New files.
14858
14859         * Make-lang.in, Makefile.in: Add gprmake
14860
14861 2004-05-03  Thomas Quinot  <quinot@act-europe.fr>
14862
14863         * sem_aggr.adb: Fix typo in comment.
14864
14865 2004-05-03  Robert Dewar  <dewar@gnat.com>
14866
14867         * make.adb: Minor reformatting
14868
14869         * rtsfind.ads, rtsfind.adb: (RTU_Loaded): New function
14870
14871         * sem_attr.adb (Eval_Attribute, case Type_Class): Fix check for address
14872         so that it works when address is not a private type.
14873
14874         * sem_ch13.adb (Check_Expr_Constants, case N_Integer_Literal): Deal
14875         properly with rewritten unchecked conversions. This prevents
14876         order-of-elaboration issues that can otherwise arise.
14877         (Minimum_Size): Don't check size of access types under VMS
14878
14879         * sem_ch4.adb (Remove_Address_Interpretation): New circuit to remove
14880         interpretations of integer literals as type System.Address.
14881
14882         * sem_util.ads, sem_util.adb (Is_Descendent_Of_Address): New function
14883         (Is_Descendent_Of): New function
14884
14885 2004-05-03  Jose Ruiz  <ruiz@act-europe.fr>
14886
14887         * sem_prag.adb: Boolean_Entry_Barriers is a synonym of Simple_Barriers.
14888         Max_Entry_Queue_Depth is a synonym of Max_Entry_Queue_Length.
14889         No_Dynamic_Interrupts is a synonym of No_Dynamic_Attachment.
14890
14891         * sem_res.adb: Use the new restriction Max_Entry_Queue_Length instead
14892         of the old Max_Entry_Queue_Depth.
14893
14894         * snames.adb: Boolean_Entry_Barriers is a synonym of Simple_Barriers.
14895         Max_Entry_Queue_Depth is a synonym of Max_Entry_Queue_Length
14896         No_Dynamic_Interrupts is a synonym of No_Dynamic_Attachment
14897
14898         * snames.ads: New entry for proper handling of Boolean_Entry_Barriers.
14899         New entry for proper handling of Max_Entry_Queue_Depth.
14900         New entry for proper handling of No_Dynamic_Interrupts.
14901
14902         * s-rident.ads: Adding restriction Simple_Barriers (AI-00249) that
14903         supersedes the GNAT specific restriction Boolean_Entry_Barriers.
14904         Adding restriction Max_Entry_Queue_Length (AI-00249) that supersedes
14905         the GNAT specific restriction Max_Entry_Queue_Depth.
14906         Adding restriction No_Dynamic_Attachment (AI-00249) that supersedes
14907         the GNAT specific restriction No_Dynamic_Interrupts.
14908
14909         * restrict.ads, restrict.adb: Use the new restriction Simple_Barriers
14910         instead of the old Boolean_Entry_Barriers.
14911         Use the new restriction No_Dynamic_Attachment instead of the old
14912         No_Dynamic_Interrupts.
14913
14914         * exp_ch9.adb: Check restriction Simple_Barriers (AI-00249) that
14915         supersedes the GNAT specific restriction Boolean_Entry_Barriers.
14916
14917         * gnatbind.adb: Use the new restriction Max_Entry_Queue_Length instead
14918         of the old Max_Entry_Queue_Depth.
14919
14920 2004-05-03  GNAT Script  <nobody@gnat.com>
14921
14922         * Make-lang.in: Makefile automatically updated
14923
14924 2004-04-29  Ed Schonberg  <schonberg@gnat.com>
14925
14926         * checks.adb (Enable_Range_Check): If the prefix of an index component
14927         is an access to an unconstrained array, perform check unconditionally.
14928
14929 2004-04-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14930
14931         * decl.c (gnat_to_gnu_field): Also call make_packable_type if
14932         Component_Clause.
14933
14934 2004-04-29  Olivier Hainque  <hainque@act-europe.fr>
14935
14936         * init.c (__gnat_install_handler, __gnat_error_handler): Remove
14937         alternate stack setting. There was no support for the tasking cases
14938         and the changes eventually caused a number of side-effect failures in
14939         the non-tasking case too.
14940
14941 2004-04-29  Eric Botcazou  <ebotcazou@act-europe.fr>
14942
14943         lang-specs.h: Redirect output to /dev/null if -gnatc or -gnatz or
14944         -gnats is passed.
14945
14946 2004-04-29  Vincent Celier  <celier@gnat.com>
14947
14948         * make.adb (Gnatmake): Increase max size of argument array for
14949         gnatbind for the potential addition of -F.
14950         If there are Stand-Alone Library projects, invoke gnatbind with -F to
14951         be sure that elaboration flags will be checked.
14952
14953         * switch-c.adb: Correct call to Scan_Pos for -gnateI
14954
14955 2004-04-29  Thomas Quinot  <quinot@act-europe.fr>
14956
14957         * sem_warn.adb (Check_References): Move '<access-variable> may be
14958         null' warning out of under Warn_On_No_Value_Assigned.
14959
14960 2004-04-29  Ed Falis  <falis@gnat.com>
14961
14962         * gnat_ugn.texi: Fixed texi error
14963
14964 2004-04-29  Robert Dewar  <dewar@gnat.com>
14965
14966         * sem_ch4.adb (Remove_Abstract_Operations): Unconditionally remove
14967         abstract operations if they come from predefined files.
14968
14969         * gnat_rm.texi: Fix bad doc for pragma Elaboration_Checks (should be
14970         Dynamic, not RM).
14971
14972         * s-addope.adb: Correct obvious error in mod function
14973
14974 2004-04-28  Andrew W. Reynolds  <awreynolds@mac.com>
14975
14976         * Makefile.in: Add target pairs for powerpc darwin*
14977         tasking support.
14978
14979         * a-intnam-darwin.ads, s-osinte-darwin.adb,
14980         s-osinte-darwin.ads, system-darwin-ppc.ads: New files.
14981
14982 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
14983
14984         * Makefile.in: Add target macro definitions for s390*-linux*.
14985         * system-linux-s390.ads: New file.
14986         * system-linux-s390x.ads: New file.
14987
14988 2004-04-28  Joseph S. Myers  <jsm@polyomino.org.uk>
14989
14990         * gnat_ugn.texi: Correct argument to @setfilename.
14991
14992 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
14993
14994         * a-exexpr.adb (Unwind_Word): New data type.
14995         (Unwind_Exception): Use it as type of Private1 and Private2.
14996
14997         * raise.c (db_action_for): Fix debug printf.
14998
14999 2004-04-27  Ed Schonberg  <schonberg@gnat.com>
15000
15001         * a-wtmoio.ads: Formal type must be a modular type, not a signed
15002         integer type.
15003
15004 2004-04-27  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15005
15006         * decl.c (gnat_to_gnu_entity, case object): Call
15007         __builtin_update_setjmp_buf.
15008
15009         * gigi.h (update_setjmp_buf): Deleted.
15010         (ADT_update_setjmp_buf_decl, update_setjmp_buf_decl): New.
15011
15012         * misc.c: (update_setjmp_buf): Deleted.
15013
15014         * trans.c (gnat_to_gnu): Call do_pending_stack_adjust and emit_queue
15015         around block of RTL.
15016
15017         * utils.c (init_gigi_decls): Initialize update_setjmp_buf.
15018
15019 2004-04-26  Thomas Quinot  <quinot@act-europe.fr>
15020
15021         * sem_dist.adb, exp_dist.adb: When constructing a RAS value for a local
15022         subprogram for which no pragma All_Calls_Remote applies, store the
15023         address of the real subprogram in the underlying record type, so local
15024         dereferences do not go through the PCS.
15025
15026 2004-04-26  Robert Dewar  <dewar@gnat.com>
15027
15028         * i-c.ads: Add some type qualifications to avoid ambiguities when
15029         compiling with s-auxdec.ads and a non-private address type.
15030
15031 2004-04-26  Arnaud Charlet  <charlet@act-europe.fr>
15032
15033         * Makefile.rtl: Fix error in previous check-in:
15034         Add s-addope.o to non tasking object list (rather than tasking object
15035         list).
15036
15037 2004-04-26  Javier Miranda  <miranda@gnat.com>
15038
15039         * sem_aggr.adb: Fix typo in comments
15040         (Resolve_Aggr_Expr): Propagate the type to the nested aggregate.
15041         Required to check the null-exclusion attribute.
15042
15043         * sem_attr.adb (Resolve_Attribute): Check the accessibility level in
15044         case of anonymous access types in record and array components. For a
15045         component definition the level is the same of the enclosing composite
15046         type.
15047
15048         * sem_ch3.adb (Analyze_Component_Declaration): In case of components
15049         that are anonymous access types the level of accessibility depends on
15050         the enclosing type declaration. In order to have this information, set
15051         the scope of the anonymous access type to the enclosing record type
15052         declaration.
15053         (Array_Type_Declaration): In case of components that are anonymous
15054         access types the level of accessibility depends on the enclosing type
15055         declaration. In order to have this information, set the scope of the
15056         anonymous access type to the enclosing array type declaration.
15057
15058         * sem_ch3.adb (Array_Type_Declaration): Set the scope of the anonymous
15059         access type.
15060
15061         * sem_ch8.adb (Analyze_Object_Renaming): Add check to verify that
15062         renaming of anonymous access-to-constant types allowed if and only if
15063         the renamed object is access-to-constant.
15064
15065         * sem_util.adb (Type_Access_Level): In case of anonymous access types
15066         that are component_definition or discriminants of a nonlimited type,
15067         the level is the same as that of the enclosing component type.
15068
15069 2004-04-26  Sergey Rybin  <rybin@act-europe.fr>
15070
15071         * sem_elim.adb: Some minor code reorganization from code reading. Fix
15072         misprint in the function name (File_Name_Match).
15073
15074 2004-04-23  Laurent GUERBY <laurent@guerby.net>
15075
15076         * Makefile.in: Remove RANLIB_TEST, use -$(RANLIB) including after
15077         install.
15078
15079 2004-04-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
15080
15081         * Make-lang.in (GNATBIND_OBJS): Add s-addope.o.
15082
15083 2004-04-23  Emmanuel Briot  <briot@act-europe.fr>
15084
15085         * adaint.c (__gnat_try_lock): No longer requires that the parent
15086         directory be writable, the directory itself is enough.
15087         (gnat_is_absolute_path): Change profile, so that the call from
15088         GNAT.OS_Lib can be made more efficient.
15089
15090         * adaint.h (gnat_is_absolute_path): Change profile, so that the call
15091         from GNAT.OS_Lib can be made more efficient.
15092
15093         * g-os_lib.adb (Is_Absolute_Path): More efficient implementation, avoid
15094         one copy of the file name. Found by code reading.
15095
15096 2004-04-23  Vincent Celier  <celier@gnat.com>
15097
15098         * gnat_ugn.texi: Add documentation for gnatmake switch -eL
15099         Correct documentation on gnatmake switches transmitted to the compiler
15100
15101         * ali.ads: Minor comment fix
15102
15103 2004-04-23  Javier Miranda  <miranda@gnat.com>
15104
15105         * sem_ch6.adb: (Confirming Types): Code cleanup
15106
15107         * decl.c (gnat_to_gnu_entity): Give support to anonymous access to
15108         subprogram types: E_Anonymous_Access_Subprogram_Type and
15109         E_Anonymous_Access_Protected_Subprogram_Type.
15110
15111 2004-04-23  Thomas Quinot  <quinot@act-europe.fr>
15112
15113         * sem_dist.adb: Add a new paramter to the RAS_Access TSS indicating
15114         whether a pragma All_Calls_Remote applies to the subprogram on which
15115         'Access is taken.
15116         No functional change is introduced by this revision; the new parameter
15117         will be used to allow calls to local RCI subprograms to be optimized
15118         to not use the PCS in the case where no pragma All_Calls_Remote applies,
15119         as is already done in the PolyORB implementation of the DSA.
15120
15121         * exp_dist.adb: Add a new paramter to the RAS_Access TSS indicating
15122         whether a pragma All_Calls_Remote applies to the subprogram on which
15123         'Access is taken.
15124         No functional change is introduced by this revision; the new parameter
15125         will be used to allow calls to local RCI subprograms to be optimized
15126         to not use the PCS in the case where no pragma All_Calls_Remote applies,
15127         as is already done in the PolyORB implementation of the DSA.
15128
15129 2004-04-23  Robert Dewar  <dewar@gnat.com>
15130
15131         * Makefile.rtl: Add entry for s-addope.o in run time library list
15132         * Make-lang.in: Add entry for s-addope.o to GNAT1 objects
15133         * s-addope.ads, s-addope.adb: New files.
15134
15135         * s-carsi8.adb, s-carun8.adb, s-casi16.adb, s-casi32.adb,
15136         s-casi64.adb, s-caun16.adb, s-caun32.adb, s-caun64.adb,
15137         s-finimp.adb, s-geveop.adb, s-stoele.adb: Modifications to allow
15138         System.Address to be non-private and signed.
15139
15140         * sem_elim.adb: Minor reformatting (fairly extensive)
15141         Some minor code reorganization from code reading
15142         Add a couple of ??? comments
15143
15144 2004-04-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15145
15146         * trans.c (tree_transform, build_unit_elab): Don't call getdecls.
15147         (tree_transform, case N_If_Statement): Remove non-determinism.
15148
15149         * utils.c (begin_subprog_body): Just set DECL_CONTEXT in PARM_DECL.
15150
15151 2004-04-23  Sergey Rybin  <rybin@act-europe.fr>
15152
15153         * gnat_rm.texi: Small fixes in the changes made in the 'pragma
15154         Eliminate' section.
15155
15156         * snames.ads, snames.adb: Remove Name_Homonym_Number (Homonym_Number is
15157         no longer used as a parameter name for Eliminate pragma).
15158
15159 2004-04-22  Laurent GUERBY <laurent@guerby.net>
15160
15161         PR optimization/14984
15162         PR optimization/14985
15163         * trans.c (gigi): Fix non determinism leading to bootstrap
15164         comparison failures.
15165
15166 2004-04-21  Pascal Obry  <obry@gnat.com>
15167
15168         * adaint.c (__gnat_portable_spawn): Quote first argument (argv[0])
15169         passed to spawnvp() to properly handle program pathname with spaces on
15170         Win32.
15171
15172 2004-04-21  Emmanuel Briot  <briot@act-europe.fr>
15173
15174         * g-debpoo.adb (Print_Info): Avoid extra work if Display_Slots is False.
15175         (Allocate, Deallocate, Free_Physically): Make sure the tasks are
15176         unlocked in case of exceptions.
15177
15178 2004-04-21  Joel Brobecker  <brobecker@gnat.com>
15179
15180         * gigi.h (get_target_no_dollar_in_label): Remove extern declaration.
15181         This function does not exist anymore.
15182
15183 2004-04-21  Thomas Quinot  <quinot@act-europe.fr>
15184
15185         * gnatbind.adb, gnatlink.adb: Update name of imported C symbol.
15186
15187         * link.c: Move variables to the __gnat name space.
15188
15189         * Makefile.in: list link.o explicitly when needed.
15190
15191         * mlib.adb: Remove pragma Linker_Option for "link.o" from mlib.
15192
15193 2004-04-21  Javier Miranda  <miranda@gnat.com>
15194
15195         * einfo.adb (Original_Access_Type): New subprogram
15196         (Set_Original_Access_Type): New subprogram
15197         (Write_Field21_Name): Write the name of the new field
15198
15199         * einfo.ads (Original_Access_Type): New field present in access to
15200         subprogram types.
15201         Addition of two new entities: E_Anonymous_Access_Subprogram_Type, and
15202         E_Anonymous_Access_Protected_Subprogram_Type.
15203
15204         * lib-xref.adb (Output_One_Ref): Give support to anonymous access to
15205         subprogram types.
15206
15207         * lib-xref.ads (Xref_Entity_Letters): Initialize values corresponding
15208         to anonymous access to subprogram types.
15209
15210         * sem_attr.adb (Resolve_Attribute): Give support to anonymous access
15211         to subprogram types.
15212
15213         * sem_ch3.adb (Access_Definition): Complete decoration of entities
15214         corresponding to anonymous access to subprogram types.
15215         (Analyze_Component_Declaration): Add new actual to the call to
15216         subprogram replace_anonymous_access_to_protected_subprogram.
15217         (Array_Type_Declaration): Add new actual to the call to subprogram
15218         replace_anonymous_access_to_protected_subprogram.
15219         (Process_Discriminants): Add new actual to the call to subprogram
15220         replace_anonymous_access_to_protected_subprogram.
15221         (Replace_Anonymous_Access_To_Protected_Subprogram): New formal.
15222
15223         * sem_ch3.ads (Replace_Anonymous_Access_To_Protected_Subprogram): New
15224         formal.
15225
15226         * sem_ch6.adb, sem_type.adb, sem_res.adb: Give support to anonymous
15227         access to subprogram types.
15228
15229         * sem_util.adb (Has_Declarations): Addition of package_specification
15230         nodes.
15231
15232 2004-04-21  Ed Schonberg  <schonberg@gnat.com>
15233
15234         * sem_prag.adb (Make_Inline): If subprogram is a renaming, propagate
15235         inlined flags to renamed entity only if in current unit.
15236
15237 2004-04-21  Thomas Quinot  <quinot@act-europe.fr>
15238
15239         * s-parint.ads: Add DSA implementation marker.
15240
15241         * rtsfind.ads, rtsfind.adb, snames.ads, snames.adb, s-rpc.adb: Use the
15242         value of System.Partition_Interface.DSA_Implementation to determine
15243         what version of the distributed systems annex is available (no
15244         implementation, GLADE, or PolyORB).
15245
15246 2004-04-21  Joel Brobecker  <brobecker@gnat.com>
15247
15248         * targtyps.c (get_target_no_dollar_in_label): Remove, no longer used.
15249
15250 2004-04-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15251
15252         * utils.c (convert, case CONSTRUCTOR, COMPONENT_REF): Do not make node
15253         with new type if alias sets differ.
15254         Fixes ACATS c41103b.
15255
15256 2004-04-21  Vincent Celier  <celier@gnat.com>
15257
15258         * prj.ads: Remove FORTRAN as an accepted language: not tested yet.
15259         Add array Lang_Args for the language specific compiling argument
15260         switches.
15261
15262         * gnat_ugn.texi: Explain in more details when a library is rebuilt.
15263
15264 2004-04-21  Sergey Rybin  <rybin@act-europe.fr>
15265
15266         * gnat_rm.texi: Update the descripton of the Eliminate pragma
15267         according to the recent changes in the format of the parameters of the
15268         pragma (replacing Homonym_Number with Source_Location).
15269
15270 2004-04-19  Arnaud Charlet  <charlet@act-europe.fr>
15271
15272         * 5isystem.ads: Removed, unused.
15273
15274         * gnat_rm.texi: Redo 1.13 change.
15275
15276 2004-04-19  Robert Dewar  <dewar@gnat.com>
15277
15278         * s-stoele.ads: Clean up definition of Storage_Offset (the new
15279         definition is cleaner, avoids the kludge of explicit Standard operator
15280         references, and also is consistent with a visible System.Address with
15281         no visible operations.
15282
15283         * s-geveop.adb: Add declarations to avoid assumption of visible
15284         operations on type System.Address (since these might not be available
15285         if Address is a non-private type for which the operations
15286         are made abstract).
15287
15288         * sem_eval.adb: Minor reformatting
15289
15290         * s-carsi8.ads, s-carun8.ads, s-casi16.ads, s-casi32.ads,
15291         s-casi64.ads, s-caun16.ads, s-caun32.ads, s-caun64.ads: Minor
15292         reformatting (new function spec format).
15293
15294         * s-auxdec.adb, s-carsi8.adb, s-carun8.adb, s-casi16.adb,
15295         s-casi32.adb, s-casi64.adb, s-caun16.adb, s-caun32.adb,
15296         s-caun64.adb: Add declarations to avoid assumption of visible
15297         operations on type System.Address (since these might not be available
15298         if Address is a non-private type for which the operations are made
15299         abstract).
15300
15301         * lib.ads, lib.adb (Synchronize_Serial_Number): New procedure.
15302
15303         * exp_intr.adb: Minor comment update
15304
15305         * exp_aggr.adb, exp_attr.adb, exp_ch13.adb: Minor reformatting.
15306
15307         * 5omastop.adb: Add declarations to avoid assumption of visible
15308         operations on type System.Address (since these might not be available
15309         if Address is a non-private type for which the operations
15310         are made abstract).
15311
15312 2004-04-19  Vincent Celier  <celier@gnat.com>
15313
15314         * switch-m.adb: (Scan_Make_Switches): Process new switch -eL
15315
15316         * prj-pars.ads (Parse): New Boolean parameter Process_Languages,
15317         defaulted to Ada.
15318
15319         * prj-proc.adb (Process): New Boolean parameter Process_Languages,
15320         defaulted to Ada.
15321         Call Check with Process_Languages.
15322         (Check): New Boolean parameter Process_Languages. Call Recursive_Check
15323         with Process_Languages.
15324         (Recursive_Check): New Boolean parameter Process_Languages. Call
15325         Nmsc.Ada_Check or Nmsc.Other_Languages_Check according to
15326         Process_Languages.
15327
15328         * prj-proc.ads (Process): New Boolean parameter Process_Languages,
15329
15330         * prj-util.ads, prj-util.adb (Executable_Of): New Boolean
15331         parameter Ada_Main, defaulted to True.
15332         Check for Ada specific characteristics only when Ada_Main is True.
15333
15334         * opt.ads: (Follow_Links): New Boolean flag for gnatmake
15335
15336         * prj.adb: (Project_Empty): Add new Project_Data components.
15337
15338         * prj.ads: New types and tables for non Ada languages.
15339         (Project_Data): New components Languages, Impl_Suffixes,
15340         First_Other_Source, Last_Other_Source, Imported_Directories_Switches,
15341         Include_Path, Include_Data_Set.
15342
15343         * prj-env.ads, prj-env.adb: Minor reformatting
15344
15345         * prj-nmsc.ads, prj-nmsc.adb: (Other_Languages_Check): New procedure
15346         Put subprograms in alphabetical order
15347
15348         * prj-pars.adb (Parse): New Boolean parameter Process_Languages,
15349         defaulted to Ada; Call Prj.Proc.Process with Process_Languages and
15350         Opt.Follow_Links.
15351
15352         * mlib-prj.adb: Back out modification in last version, as they are
15353         incorrect.
15354         (Build_Library.Check_Libs): Remove useless pragma Warnings (Off)
15355
15356         * make.adb: (Mains): Moved to package Makeutl
15357         (Linker_Opts): Moved to package Makeutl
15358         (Is_External_Assignment): Moved to package Makeutl
15359         (Test_If_Relative_Path): Moved to package Makeutl
15360         (Gnatmake): Move sorting of linker options to function
15361         Makeutl.Linker_Options_Switches.
15362
15363         * makeutl.ads, makeutl.adb: New files.
15364
15365         * Makefile.in: Add makeutl.o to the object files for gnatmake
15366
15367         * makeusg.adb: Add line for new switch -eL.
15368
15369         * gnatls.adb (Image): New function.
15370         (Output_Unit): If in verbose mode, output the list of restrictions
15371         specified by pragmas Restrictions.
15372
15373         * 5bml-tgt.adb, 5vml-tgt.adb (Build_Dynamic_Library): Do not use
15374         Text_IO.
15375
15376         * a-calend.adb (Split): Shift the date by multiple of 56 years, if
15377         needed, to put it in the range 1970 (included) - 2026 (excluded).
15378         (Time_Of): Do not shift Unix_Min_Year (1970).
15379         Shift the date by multiple of 56 years, if needed, to put it in the
15380         range 1970 (included) - 2026 (excluded).
15381
15382         * adaint.h, adaint.c (__gnat_set_executable): New function.
15383
15384 2004-04-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15385
15386         * trans.c (tree_transform, case N_Subprogram_Body): Temporarily push
15387         and pop GC context.
15388         (tree_transform, case N_Procedure_Call): Fix typo in setting TREE_TYPE.
15389         (tree_transform, case N_Label): Don't set LABEL_STMT_FIRST_IN_EH.
15390         (tree_transform, case N_Procedure_Call_Statement): Build a tree.
15391         (tree_transform, case N_Code_Statement): Likewise.
15392         (gnat_expand_stmt, case LABEL_STMT): Don't look at
15393         LABEL_STMT_FIRST_IN_EH.
15394         (gnat_expand_stmt, case ASM_STMT): New case.
15395
15396         * utils2.c (build_unary_op): Properly set TREE_READONLY of
15397         UNCONSTRAINED_ARRAY_REF.
15398
15399         * utils.c (poplevel): Temporarily push/pop GC context around inline
15400         function expansion.
15401
15402         * decl.c (maybe_variable): Properly set TREE_READONLY of
15403         UNCONSTRAINED_ARRAY_REF.
15404         (make_packable_type): Only reference TYPE_IS_PADDING_P for RECORD_TYPE.
15405
15406         * ada-tree.def: (ASM_STMT): New.
15407
15408         * ada-tree.h: (LABEL_STMT_FIRST_IN_EH): Deleted.
15409         (ASM_STMT_TEMPLATE, ASM_STMT_OUTPUT, ASM_STMT_ORIG_OUT,
15410         ASM_STMT_INPUT): New.
15411         (ASM_STMT_CLOBBER): Likewise.
15412
15413 2004-04-19  Thomas Quinot  <quinot@act-europe.fr>
15414
15415         * a-except.adb, s-parint.ads, s-parint.adb, types.ads, types.h: Use
15416         general rcheck mechanism to raise Program_Error for E.4(18), instead
15417         of a custom raiser in System.Partition_Interface.
15418         Part of general cleanup work before PolyORB integration.
15419
15420         * snames.ads, snames.adb: Add new runtime library entities and names
15421         for PolyORB DSA.
15422
15423         * sem_dist.ads, sem_dist.adb (Get_Subprogram_Id): Move from sem_dist to
15424         exp_dist.
15425         (Build_Subprogram_Id): New subprogram provided by exp_dist
15426         Code reorganisation in preparation for PolyORB integration.
15427
15428         * exp_dist.ads, exp_dist.adb (Get_Subprogram_Id): Move from sem_dist to
15429         exp_dist.
15430         (Build_Subprogram_Id): New subprogram provided by exp_dist
15431
15432         * sem_ch4.adb (Analyze_One_Call): Fix error message for mismatch in
15433         actual parameter types for call to dereference of an
15434         access-to-subprogram type.
15435
15436         * rtsfind.ads: Add new runtime library entities and names for PolyORB
15437         DSA.
15438
15439         * gnatlink.adb (Value): Remove. Use Interfaces.C.Strings.Value
15440         instead, which has the same behaviour here since we never pass it a
15441         NULL pointer.
15442
15443         * link.c (run_path_option, Solaris case): Use -Wl, as for other
15444         platforms.
15445
15446         * Makefile.in: adjust object file lists for gnatlink and gnatmake
15447         to account for new dependency upon Interfaces.C.Strings + link.o
15448         For x86 FreeBSD, use 86numaux.
15449
15450         * make.adb, gnatcmd.adb: Linker_Library_Path_Option has been moved up
15451         from Mlib.Tgt to Mlib.
15452
15453         * mlib.ads, mlib.adb (Linker_Library_Path_Option): New subprogram, now
15454         target-independent.
15455
15456         * mlib-tgt.ads, mlib-tgt.adb (Linker_Library_Path_Option): Remove
15457         target-specific versions of this subprogram, now implemented as a
15458         target-independent function in Mlib.
15459
15460         * 5aml-tgt.adb, 5bml-tgt.adb, 5gml-tgt.adb, 5hml-tgt.adb, 5lml-tgt.adb,
15461         5sml-tgt.adb, 5vml-tgt.adb, 5zml-tgt.adb, 5wml-tgt.adb
15462         (Linker_Library_Path_Option): Remove target-specific versions of this
15463         subprogram, now implemented as a target-independent function in Mlib.
15464
15465         * atree.adb: (Allocate_Initialize_Node): New subprogram.
15466         Factors out node table slots allocation.
15467         (Fix_Parents): New subprogram.
15468         Encapsulate the pattern of fixing up parent pointers for syntactic
15469         children of a rewritten node.
15470         (New_Copy_Tree): Use New_Copy to copy non-entity nodes.
15471         (Rewrite): Use New_Copy when creating saved copy of original node.
15472         (Replace): Use Copy_Node to copy nodes.
15473
15474 2004-04-19  Javier Miranda  <miranda@gnat.com>
15475
15476         * sprint.adb (Sprint_Node_Actual): Give support to the new
15477         Access_To_Subprogram node available in Access_Definition nodes. In
15478         addition, give support to the AI-231 node fields: null-exclusion,
15479         all-present, constant-present.
15480
15481         * sem_util.ads, sem_util.adb: (Has_Declarations): New subprogram
15482
15483         * sinfo.ads, sinfo.adb:
15484         New field Access_To_Subprogram_Definition in Access_Definition nodes
15485
15486         * sem_ch6.adb (Process_Formals): Move here the code that creates and
15487         decorates internal subtype declaration corresponding to the
15488         null-excluding formal. This code was previously in Set_Actual_Subtypes.
15489         In addition, carry out some code cleanup on this code. In case of
15490         access to protected subprogram call
15491         Replace_Anonymous_Access_To_Protected_Subprogram.
15492         (Set_Actual_Subtypes): Code cleanup.
15493
15494         * sem_ch8.adb (Analyze_Object_Renaming): Remove un-necessary call to
15495         Find_Type in case of anonymous access renamings. Add warning in case of
15496         null-excluding attribute used in anonymous access renaming.
15497
15498         * sem_ch3.ads (Replace_Anonymous_Access_To_Protected_Subprogram): New
15499         subprogram
15500
15501         * sem_ch3.adb (Replace_Anonymous_Access_To_Protected_Subprogram): New
15502         subprogram.
15503         (Access_Definition): In case of anonymous access to subprograms call
15504         the corresponding semantic routine to decorate the node.
15505         (Access_Subprogram_Declaration): Addition of some comments indicating
15506         some code that probably should be added here. Detected by comparison
15507         with the access_definition subprogram.
15508         (Analyze_Component_Declaration): In case of access to protected
15509         subprogram call Replace_Anonymous_Access_To_Protected.
15510         (Array_Type_Declaration): In case of access to protected subprogram call
15511         Replace_Anonymous_Access_To_Protected_Subprogram.
15512         (Process_Discriminants): In case of access to protected subprogram call
15513         Replace_Anonymous_Access_To_Protected_Subprogram.
15514
15515         * par.adb (P_Access_Definition): New formal that indicates if the
15516         null-exclusion part was present.
15517         (P_Access_Type_Definition): New formal that indicates if the caller has
15518         already parsed the null-excluding part.
15519
15520         * par-ch3.adb (P_Subtype_Declaration): Code cleanup.
15521         (P_Identifier_Declarations): Code cleanup and give support to renamings
15522         of anonymous access to subprogram types.
15523         (P_Derived_Type_Def_Or_Private_Ext_Decl): Code cleanup.
15524         (P_Array_Type_Definition): Give support to AI-254.
15525         (P_Component_Items): Give support to AI-254.
15526         (P_Access_Definition): New formal that indicates if the header was
15527         already parsed by the caller.
15528         (P_Access_Type_Definition): New formal that indicates if the caller has
15529         already parsed the null-excluding part.
15530
15531         * par-ch6.adb (P_Formal_Part): Add the null-excluding parameter to the
15532         call to P_Access_Definition.
15533
15534 2004-04-19  Geert Bosch  <bosch@gnat.com>
15535
15536         * checks.adb (Apply_Float_Conversion_Check): New procedure to implement
15537         the delicate semantics of floating-point to integer conversion.
15538         (Apply_Type_Conversion_Checks): Use Apply_Float_Conversion_Check.
15539
15540         * eval_fat.adb (Machine_Mantissa): Moved to spec.
15541         (Machine_Radix): New function.
15542
15543         * eval_fat.ads (Machine_Mantissa): Moved from body for use in
15544         conversion checks.
15545         (Machine_Radix): New function also for use in conversion checks.
15546
15547 2004-04-19  Ed Schonberg  <schonberg@gnat.com>
15548
15549         * par-prag.adb (Source_File_Name_Project): Fix typo in error message.
15550
15551         * exp_ch9.adb (Expand_Access_Protected_Subprogram_Type): Call analyze
15552         to decorate the access-to-protected subprogram and the equivalent type.
15553
15554         * checks.adb (Null_Exclusion_Static_Checks): Code cleanup. Give support
15555         to anonymous access to subprogram types.
15556
15557         * exp_ch4.adb (Expand_N_In): Preserve Static flag before
15558         constant-folding, for legality checks in contexts that require an RM
15559         static expression.
15560
15561         * exp_ch6.adb (Expand_N_Function_Call): If call may generate large
15562         temporary but stack checking is not enabled, increment serial number
15563         to so that symbol generation is consistent with and without stack
15564         checking.
15565
15566         * exp_util.ads, exp_util.adb (May_Generate_Large_Temp): Predicate is
15567         independent on whether stack checking is enabled, caller must check
15568         the corresponding flag.
15569
15570         * sem_ch3.adb (Constrain_Index): Index bounds given by attributes need
15571         range checks.
15572         (Build_Derived_Concurrent_Type): Inherit Is_Constrained flag from
15573         parent if it has discriminants.
15574         (Build_Derived_Private_Type): Constructed full view does
15575         not come from source.
15576         (Process_Discriminants): Default discriminants on a tagged type are
15577         legal if this is the internal completion of a private untagged
15578         derivation.
15579
15580         * sem_ch6.adb (Set_Actual_Subtypes): The generated declaration needs
15581         no constraint checks, because it corresponds to an existing object.
15582
15583         * sem_prag.adb (Process_Convention): Pragma applies
15584         only to subprograms in the same declarative part, i.e. the same unit,
15585         not the same scope.
15586
15587         * sem_res.adb (Valid_Conversion): In an instance or inlined body,
15588         ignore type mismatch on a numeric conversion if expression comes from
15589         expansion.
15590
15591 2004-04-19  Sergey Rybin  <rybin@act-europe.fr>
15592
15593         * sem_elim.adb (Process_Eliminate_Pragma): Remove the processing for
15594         Homonym_Number parameter, add processing for Source_Location parameter
15595         corresponding.
15596         (Check_Eliminated): Remove the check for homonym numbers, add the check
15597         for source location traces.
15598
15599         * sem_elim.ads (Process_Eliminate_Pragma): Replace Arg_Homonym_Number
15600         with Arg_Source_Location corresponding to the changes in the format of
15601         the pragma.
15602
15603         * sem_prag.adb: (Analyze_Pragma): Changes in the processing of
15604         Eliminate pragma corresponding to the changes in the format of the
15605         pragma: Homonym_Number is replaced with Source_Location, two ways of
15606         distinguishing homonyms are mutially-exclusive.
15607
15608 2004-04-19  Joel Brobecker  <brobecker@gnat.com>
15609
15610         * get_targ.ads (Get_No_Dollar_In_Label): Remove.
15611
15612         * exp_dbug.adb (Output_Homonym_Numbers_Suffix): Remove use of
15613         No_Dollar_In_Label, no longer necessary, as it is always True.
15614         (Strip_Suffixes): Likewise.
15615
15616 2004-04-19  Gary Dismukes  <dismukes@gnat.com>
15617
15618         * s-stalib.ads (type Exception_Code): Use Integer'Size for exponent of
15619         modulus for compatibility with size clause on targets with 16-bit
15620         Integer.
15621
15622         * layout.adb (Discrimify): In the case of private types, set Vtyp to
15623         full type to fix type mismatches on calls to size functions for
15624         discriminant-dependent array components.
15625
15626 2004-04-19  Jerome Guitton  <guitton@act-europe.fr>
15627
15628         * Makefile.in (gnatlib-zcx): New target, for building a ZCX run-time
15629         lib.
15630
15631 2004-04-19  Pascal Obry  <obry@gnat.com>
15632
15633         * mdll-utl.adb (Locate): New version is idempotent.
15634
15635 2004-04-17  Laurent Guerby <laurent@guerby.net>
15636
15637         PR ada/14988 (partial)
15638         * impunit.adb: Fix typo.
15639
15640 2004-04-14  Nathanael Nerode  <neroden@gcc.gnu.org>
15641
15642         * Make-lang.in: Remove obsolete rts-none, rts-cert, install-rts-none,
15643         and install-rts-cert targets.  Remove all gnatlib and gnattools
15644         targets and all other rts-* targets (moved to libada).  Remove (now)
15645         unused Make variables CHMOD, CHMOD_AX_FLAGS, shext, THREAD_KIND,
15646         TRACE, GNATLIBFLAGS, GNATLIBCFLAGS.
15647
15648 2004-04-08  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15649
15650         * trans.c (tree_transform): Shortcut returning error_mark_node for
15651         statements in annotate_only_mode.
15652         (tree_transform, case N_Label, case N_Return_Statement,
15653         N_Goto_Statement): Make statement tree instead of generating code.
15654         (tree_transform, case N_Assignment_Statement): No longer check
15655         type_annotate_only.
15656         (gnat_expand_stmt, case GOTO_STMT, case LABEL_STMT, case
15657         RETURN_STMT): New.
15658         (first_nondeleted_insn, build_block_stmt, make_expr_stmt_from_rtl):
15659         New fcns.
15660         (gnat_to_gnu): Collect any RTL generated and deal with it.
15661         (tree_transform, case N_And_Then): Refine when have non-null RTL_EXPR.
15662         (tree_transform case N_If_Statement): Rewrite to make IF_STMT.
15663         (gnat_expand_stmt, case BLOCK_STMT, IF_STMT): New cases.
15664
15665         * ada-tree.def (GOTO_STMT, LABEL_STMT, RETURN_STMT): New tree nodes.
15666
15667         * ada-tree.def (EXPR_STMT): Fix typo in name.
15668         (BLOCK_STMT, IF_STMT): New nodes.
15669
15670         * ada-tree.h (GOTO_STMT_LABEL, LABEL_STMT_LABEL,
15671         LABEL_STMT_FIRST_IN_EH): New macros.
15672         (RETURN_STMT_EXPR): Likewise.
15673
15674         * ada-tree.h: (BLOCK_STMT_LIST, IF_STMT_COND, IF_STMT_TRUE,
15675         IF_STMT_ELSEIF, IF_STMT_ELSE): New macros.
15676
15677 2004-04-08  Thomas Quinot  <quinot@act-europe.fr>
15678
15679         * atree.ads: Correct documentation on extended nodes.
15680
15681         * link.c: Set run_path_option for FreeBSD.
15682
15683 2004-04-08  Vincent Celier  <celier@gnat.com>
15684
15685         * mlib-prj.adb (Build_Library.Check_Libs): On OpenVMS, if dec.ali is
15686         one of the ALI file, do not link with DEC lib.
15687
15688         * par.adb Remove the last two characters ("%s" or "%b") when checking
15689         if a language defined unit may be recompiled.
15690
15691 2004-04-08  Ed Schonberg  <schonberg@gnat.com>
15692
15693         * sem_ch4.adb (Remove_Abstract_Operations): Improve error message when
15694         removal of abstract operation leaves no possible interpretation for
15695         expression.
15696
15697         * sem_eval.adb (Eval_Qualified_Expression): Use
15698         Set_Raises_Constraint_Error on node when needed, so that it does not
15699         get optimized away by subsequent optimizations.
15700
15701         * sem_res.adb (Resolve_Intrinsic_Operator): Save interpretations of
15702         operands even when they are not wrapped in a type conversion.
15703
15704 2004-04-08  Olivier Hainque  <hainque@act-europe.fr>
15705
15706         * sem_prag.adb (Set_Exported): Warn about making static as result of
15707         export only when the export is coming from source. This may be not
15708         be true e.g. on VMS where we expand export pragmas for exception codes
15709         together with imported or exported exceptions, and we don't want the
15710         user to be warned about something he didn't write.
15711
15712 2004-04-08  Thomas Quinot  <quinot@act-europe.fr>
15713
15714         * sem_util.adb (Note_Possible_Modification): Reorganize to remove code
15715         duplication between normal entities and those declared as renamings.
15716         No functional change.
15717
15718         * s-fileio.ads (Form): Remove pragma Inline, as we cannot currently
15719         inline functions returning an unconstrained result.
15720
15721 2004-04-08  Eric Botcazou  <ebotcazou@act-europe.fr>
15722
15723         * utils.c (type_for_mode): Handle BLKmode and VOIDmode properly, to
15724         conform to what other front-ends do.
15725
15726 2004-04-08  Doug Rupp  <rupp@gnat.com>
15727
15728         * 5vml-tgt.adb: Use Gas instead of VMS Macro to build auto init shared
15729         libraries.
15730
15731 2004-04-06  Pascal Obry  <obry@gnat.com>
15732
15733         * adaint.c (DIR_SEPARATOR): Properly set DIR_SEPARATOR on Win32.
15734
15735         * osint.adb (Program_Name): Do not look past a directory separator.
15736
15737 2004-04-06  Thomas Quinot  <quinot@act-europe.fr>
15738
15739         * atree.adb: Update comment (Rewrite_Substitute_Node no longer exists).
15740
15741         * exp_ch6.adb (Rewrite_Function_Call): Clarify documentation of
15742         requirement for preserving a copy of the original assignment node.
15743
15744         * sinfo.ads: Update comment (Original_Tree -> Original_Node).
15745
15746 2004-04-06  Olivier Hainque  <hainque@act-europe.fr>
15747
15748         (__gnat_initialize [Vxworks]): Enable references to the crtstuff bits
15749         when supported.
15750
15751 2004-04-06  Ed Schonberg  <schonberg@gnat.com>
15752
15753         * sem_ch4.adb (Remove_Abstract_Operations): Extend previous changes to
15754         operator calls in functional notation, and apply
15755         Universal_Interpretation to operands, not to their type.
15756
15757 2004-04-06  Robert Dewar  <dewar@gnat.com>
15758
15759         * 5wdirval.adb: Minor reformatting
15760
15761 2004-04-06  Ed Falis  <falis@gnat.com>
15762
15763         * gnat_rm.texi: Improve a reference to the GCC manual
15764
15765 2004-04-05  Vincent Celier  <celier@gnat.com>
15766
15767         * adaint.h, adaint.c: Add function __gnat_named_file_length
15768
15769         * impunit.adb: Add Ada.Directories to the list
15770
15771         * Makefile.in: Add VMS and Windows versions of
15772         Ada.Directories.Validity package body.
15773
15774         * Makefile.rtl: Add a-direct and a-dirval
15775
15776         * mlib-tgt.ads: Minor comment update.
15777
15778         * a-dirval.ads, a-dirval.adb, 5vdirval.adb, 5wdirval.adb,
15779         a-direct.ads, a-direct.adb: New files.
15780
15781 2004-04-05  Vincent Celier  <celier@gnat.com>
15782
15783         PR ada/13620
15784         * make.adb (Scan_Make_Arg): Pass any -fxxx switches to gnatlink, not
15785         just to the compiler.
15786
15787 2004-04-05  Robert Dewar  <dewar@gnat.com>
15788
15789         * a-except.adb (Exception_Name_Simple): Make sure lower bound of
15790         returned string is 1.
15791
15792         * ali-util.adb: Use proper specific form for Warnings (Off, entity)
15793
15794         * eval_fat.ads: Minor reformatting
15795
15796         * g-curexc.ads: Document that lower bound of returned string values
15797         is always one.
15798
15799         * gnatlink.adb: Add ??? comment for previous change
15800         (need to document why this is VMS specific)
15801
15802         * s-stoele.ads: Minor reformatting
15803
15804         * tbuild.ads: Minor reformatting throughout (new function specs)
15805
15806         * par-ch10.adb (P_Context_Clause): Handle comma instead of semicolon
15807         after WITH.
15808
15809         * scng.adb: Minor reformatting
15810
15811 2004-04-05  Geert Bosch  <bosch@gnat.com>
15812
15813         * eval_fat.adb (Machine): Remove unnecessary suppression of warning.
15814         (Leading_Part): Still perform truncation to machine number if the
15815         specified radix_digits is greater or equal to machine_mantissa.
15816
15817 2004-04-05  Javier Miranda  <miranda@gnat.com>
15818
15819         * par-ch3.adb: Complete documentation of previous change
15820         Correct wrong syntax documentation of the OBJECT_DECLARATION rule
15821         (aliased must appear before constant).
15822
15823         * par-ch4.adb: Complete documentation of previous change.
15824
15825         * par-ch6.adb: Complete documentation of previous change.
15826
15827         * sinfo.ads: Fix typo in commment.
15828
15829 2004-04-05  Ed Schonberg  <schonberg@gnat.com>
15830
15831         * sem_ch3.adb (Inherit_Components): If derived type is private and has
15832         stored discriminants, use its discriminants to constrain parent type,
15833         as is done for non-private derived record types.
15834
15835         * sem_ch4.adb (Remove_Abstract_Operations): New subprogram to implement
15836         Ada 2005 AI-310: an abstract non-dispatching operation is not a
15837         candidate interpretation in an overloaded call.
15838
15839         * tbuild.adb (Unchecked_Convert_To): Preserve conversion node if
15840         expression is Null and target type is not an access type (e.g. a
15841         non-private address type).
15842
15843 2004-04-05  Thomas Quinot  <quinot@act-europe.fr>
15844
15845         * exp_ch6.adb (Rewrite_Function_Call): When rewriting an assignment
15846         statement whose right-hand side is an inlined call, save a copy of the
15847         original assignment subtree to preserve enough consistency for
15848         Analyze_Assignment to proceed.
15849
15850         * sem_ch5.adb (Analyze_Assignment): Remove a costly copy of the
15851         complete assignment subtree which is now unnecessary, as the expansion
15852         of inlined call has been improved to preserve a consistent assignment
15853         tree.  Note_Possible_Modification must be called only
15854         after checks have been applied, or else unnecessary checks will
15855         be generated.
15856
15857         * sem_util.adb (Note_Possible_Modification): Reorganise the handling
15858         of explicit dereferences that do not Come_From_Source:
15859          - be selective on cases where we must go back to the dereferenced
15860            pointer (an assignment to an implicit dereference must not be
15861            recorded as modifying the pointer);
15862          - do not rely on Original_Node being present (Analyze_Assignment
15863            calls Note_Possible_Modification on a copied tree).
15864
15865         * sem_warn.adb (Check_References): When an unset reference to a pointer
15866         that is never assigned is encountered, prefer '<pointer> may be null'
15867         warning over '<pointer> is never assigned a value'.
15868
15869 2004-04-05  Ramon Fernandez  <fernandez@gnat.com>
15870
15871         * tracebak.c: Change STOP_FRAME in ppc vxworks to be compliant with
15872         the ABI.
15873
15874 2004-04-05  Olivier Hainque  <hainque@act-europe.fr>
15875
15876         * 5gmastop.adb (Pop_Frame): Comment out the pragma Linker_Option for
15877         libexc. We currently don't reference anything in this library and
15878         linking it in triggers linker warnings we don't want to see.
15879
15880         * init.c: Update comments.
15881
15882 2004-04-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15883
15884         * decl.c (gnat_to_gnu_entity): Use TYPE_READONLY.
15885         * utils.c (create_field_decl): Likewise.
15886         * utils2.c (build_unary_op, gnat_build_constructor): Likewise.
15887
15888 2004-04-02  Arnaud Charlet  <charlet@act-europe.fr>
15889
15890         * gnat-style.texi, gnat_rm.texi, gnat_ugn.texi: Remove RCS tags.
15891         Replace ifinfo by ifnottex, to make makeinfo --html happy again.
15892         Add info directory entry and category.
15893
15894 2004-04-02  Jan Hubicka  <jh@suse.cz>
15895
15896         * utils.c: Include function.h
15897         (end_subprog_body): Clear DECL_STRUCT_FUNCTION.
15898
15899 2004-04-01  Arnaud Charlet  <charlet@act-europe.fr>
15900
15901         PR ada/14150
15902         * Make-lang.in: Clean up generation of documentation
15903
15904         * gnat-style.texi, gnat_rm.texi, ug_words: Resync with AdaCore version
15905
15906         * xgnatug.adb: Removed, replaced by xgnatugn.adb
15907
15908         * xgnatugn.adb: Replaces xgnatug.adb
15909
15910         * gnat_ug.texi: Removed, replaced by gnat_ugn.texi
15911
15912         * gnat_ugn.texi: Replaces gnat_ug.texi. Resync with AdaCore version
15913
15914         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
15915         gnat_ug_wnt.texi: Removed.
15916
15917 2004-04-01  Arnaud Charlet  <charlet@act-europe.fr>
15918
15919         * utils2.c: Update copyright notice.
15920
15921 2004-04-01  Robert Dewar  <dewar@gnat.com>
15922
15923         * checks.adb: Minor reformatting throughout
15924         Note that prev checkin added RM reference to alignment warning
15925
15926 2004-04-01  Ed Schonberg  <schonberg@gnat.com>
15927
15928         * exp_aggr.adb (Get_Component_Val): Treat a string literal as
15929         non-static when building aggregate for bit-packed array.
15930
15931         * exp_ch4.adb (Expand_N_Slice): If a packed slice is an actual of a
15932         function call that is itself the actual in a procedure call, build
15933         temporary for it.
15934
15935         * exp_pakd.adb (Expand_Bit_Packed_Element_Set): If right-hand side is
15936         a string literal, create a temporary for it, constant folding only
15937         handles scalars here.
15938
15939 2004-04-01  Vincent Celier  <celier@gnat.com>
15940
15941         * ali-util.adb (Post_Scan, Error_Msg, Error_Msg_S, Error_Msg_SC,
15942         Error_Msg_SP): New empty procedures to instantiate the Scanner.
15943         (Style, Scanner): Instantiations of Styleg and Scng to be able to scan
15944         tokens.
15945         (Accumulate_Checksum, Initialize_Checksum): Remove procedures.
15946         (Get_File_Checksum): Use the instantiated scanner to scan all the tokens
15947         and get the checksum.
15948
15949         * make.adb (Gnatmake): Do not insert into Q the Main_Source if it is
15950         already in the Q.
15951         Increase the Marking_Label at the end of the Multiple_Main_Loop,
15952         instead of at the beginning.
15953
15954         * osint.adb (Lib_File_Name): Use Multi_Unit_Index_Character, not '~'
15955         directly.
15956         (Osint package elaboration): Change Multi_Unit_Index_Character to '$' if
15957         on VMS.
15958
15959         * osint.ads (Multi_Unit_Index_Character): New Character global variable
15960
15961         * osint-c.adb (Set_Library_Info_Name): Use Multi_Unit_Index_Character,
15962         not '~' directly.
15963
15964         * par.adb: Remove test on file name to detect language defined units.
15965         Add test on unit name, after parsing, to detect language defined units
15966         that are not compiled with -gnatg (except System.RPC and its children)
15967
15968         * par-ch10.adb (P_Compilation_Unit): In multi-unit sources, scan the
15969         following units without style checking.
15970
15971         * switch-c.adb: Change -gnatC to -gnateI
15972
15973         * usage.adb: Document new switch -gnateInnn
15974
15975         * scng.adb (Accumulate_Token_Checksum): New procedure
15976         (Scan): Call Accumulate_Token_Checksum after each identifier, reserved
15977         word or literal number.
15978         (Scan.Nlit.Scan_Integer): Do not accumulate internal '_' in litteral
15979         numbers.
15980
15981 2004-04-01  Thomas Quinot  <quinot@act-europe.fr>
15982
15983         * a-tasatt.adb,
15984         g-comlin.adb, sinput-c.adb, s-secsta.adb, s-tpobop.adb,
15985         switch-m.adb, 56taprop.adb, 5ginterr.adb, 5gmastop.adb,
15986         5staprop.adb, 5vinterr.adb, 5vtaprop.adb, 5vtpopde.adb,
15987         5vtpopde.adb: Add missing 'constant' keywords.
15988
15989 2004-04-01  Javier Miranda  <miranda@gnat.com>
15990
15991         * par-ch4.adb: (P_Allocator): Code cleanup
15992
15993         * sem_ch3.adb (Access_Definition): Properly set the null-excluding
15994         attribute.
15995
15996         * sinfo.ads: Complete documentation of previous change
15997
15998 2004-04-01  Pascal Obry  <obry@gnat.com>
15999
16000         * gnatlink.adb (Process_Binder_File): Remove duplicate linker options
16001         only on VMS.  This special handling was done because an old GNU/ld bug
16002         on Windows which has been fixed.
16003
16004 2004-04-01  GNAT Script  <nobody@gnat.com>
16005
16006         * Make-lang.in: Makefile automatically updated
16007
16008 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16009
16010         * decl.c (gnat_to_gnu_entity, make_type_from_size):
16011         Use TYPE_UNSIGNED, not TREE_UNSIGNED.
16012         * trans.c (tree_transform, convert_with_check): Likewise.
16013         * utils.c (gnat_signed_or_unsigned_type): Likewise.
16014         (build_vms_descriptor, unchecked_convert): Likewise.
16015         * utils2.c (nonbinary_modular_operation): Likewise.
16016
16017 2004-03-29  Javier Miranda  <miranda@gnat.com>
16018
16019         * checks.adb (Null_Exclusion_Static_Checks): New subprogram
16020         (Install_Null_Excluding_Check): Local subprogram that determines whether
16021         an access node requires a runtime access check and if so inserts the
16022         appropriate run-time check.
16023         (Apply_Access_Check): Call Install_Null_Excluding check if required
16024         (Apply_Constraint_Check): Call Install_Null_Excluding check if required
16025
16026         * checks.ads: (Null_Exclusion_Static_Checks): New subprogram
16027
16028         * einfo.ads: Fix typo in comment
16029
16030         * exp_ch3.adb (Build_Assignment): Generate conversion to the
16031         null-excluding type to force the corresponding run-time check.
16032         (Expand_N_Object_Declaration): Generate conversion to the null-excluding
16033         type to force the corresponding run-time check.
16034
16035         * exp_ch5.adb (Expand_N_Assignment_Statement): Generate conversion to
16036         the null-excluding type to force the corresponding run-time check.
16037
16038         * exp_ch6.adb (Expand_Call): Do not generate the run-time check in
16039         case of access types unless they have the null-excluding attribute.
16040
16041         * sprint.adb (Sprint_Node_Actual): Give support to the null-exclusing
16042         part.
16043
16044         * exp_util.ads: Fix typo in comment
16045
16046         * par.adb (P_Null_Exclusion): New subprogram
16047         (P_Subtype_Indication): New formal that indicates if the null-excluding
16048         part has been scanned-out and it was present
16049
16050         * par-ch3.adb, par-ch4.adb, par-ch6.adb: Give support to AI-231
16051
16052         * sem_aggr.adb: (Check_Can_Never_Be_Null): New subprogram
16053         (Aggregate_Constraint_Checks): Generate conversion to the null-excluding
16054         type to force the corresponding run-time check
16055         (Resolve_Aggregate): Propagate the null-excluding attribute to the array
16056         components
16057         (Resolve_Array_Aggregate): Carry out some static checks
16058         (Resolve_Record_Aggregate.Get_Value): Carry out some static check
16059
16060         * sem_ch3.adb (Access_Definition): In Ada 0Y the Can_Never_Be_Null
16061         attribute must be set only if specified by means of the null-excluding
16062         part. In addition, we must also propagate the access-constant attribute
16063         if present.
16064         (Access_Subprogram_Declaration, Access_Type_Declaration,
16065         Analyze_Component_Declaration, Analyze_Object_Declaration,
16066         Array_Type_Declaration, Process_Discriminants,
16067         Analyze_Subtype_Declaration): Propagate the null-excluding attribute
16068         and carry out some static checks.
16069         (Build_Derived_Access_Type): Set the null-excluding attribute
16070         (Derived_Type_Declaration, Process_Subtype): Carry out some static
16071         checks.
16072
16073         * sem_ch4.adb (Analyze_Allocator): Carry out some static checks
16074
16075         * sem_ch5.adb (Analyze_Assignment): Carry out some static checks
16076
16077         * sem_ch6.adb (Process_Formals): Carry out some static checks.
16078         (Set_Actual_Subtypes): Generate null-excluding subtype if the
16079         null-excluding part was present; it is not required to be done here in
16080         case of anonymous access types.
16081         (Set_Formal_Mode): Ada 0Y allows anonymous access to have the null
16082         value.
16083
16084         * sem_res.adb (Resolve_Actuals): Carry out some static check
16085         (Resolve_Null): Allow null in anonymous access
16086
16087         * sinfo.adb: New subprogram Null_Exclusion_Present
16088         All_Present and Constant_Present available on access_definition nodes
16089
16090         * sinfo.ads: New flag Null_Exclusion_Present on subtype_declaration,
16091         object_declaration, derived_type_definition, component_definition,
16092         discriminant_specification, access_to_object_definition,
16093         access_function_definition, allocator, access_procedure_definition,
16094         access_definition, parameter_specification, All_Present and
16095         Constant_Present flags available on access_definition nodes.
16096
16097 2004-03-29  Robert Dewar  <dewar@gnat.com>
16098
16099         * fname.adb, fname.ads, fname-sf.adb, fname-uf.adb, fname-uf.ads,
16100         gnat1drv.adb, lib.adb, lib.ads, lib-load.adb, lib-writ.adb,
16101         opt.ads, osint.adb, osint.ads, osint-c.adb, par.adb,
16102         par-ch10.adb, par-load.adb, par-prag.adb, sfn_scan.adb,
16103         sfn_scan.ads, sinput-l.adb, sinput-l.ads, switch-c.adb,
16104         sem_prag.adb: Updates to handle multiple units/file
16105
16106         * par.adb: Change test for s-rpc to s-rp for detecting rpc and children
16107
16108         * par.adb, memtrack.adb, prj-makr.adb, prj-part.adb,
16109         sem_util.adb: Minor reformatting
16110
16111         * sem_ch12.adb: Add comment for previous change
16112
16113 2004-03-29  Laurent Pautet  <pautet@act-europe.fr>
16114
16115         * osint.adb (Executable_Prefix): Set Exec_Name to the current
16116         executable name when not initialized. Otherwise, use its current value.
16117
16118         * osint.ads (Exec_Name): Move Exec_Name from body to spec in order to
16119         initialize it to another executable name than the current one. This
16120         allows to configure paths for an executable name (gnatmake) different
16121         from the current one (gnatdist).
16122
16123 2004-03-29  Ed Schonberg  <schonberg@gnat.com>
16124
16125         * exp_ch6.adb (Expand_Call): A call to a function declared in the
16126         current unit cannot be inlined if it appears in the body of a withed
16127         unit, to avoid order of elaboration problems in gigi.
16128
16129         * exp_ch9.adb (Build_Protected_Sub_Specification): Generate debugging
16130         information for protected (wrapper) operation as well, to simplify gdb
16131         use.
16132
16133         * sem_ch6.adb (Analyze_Subprogram_Body): For a private operation in a
16134         protected body, indicate that the entity for the generated spec comes
16135         from source, to ensure that references are properly generated for it.
16136         (Build_Body_To_Inline): Do not inline a function that returns a
16137         controlled type.
16138
16139         * sem_prag.adb (Process_Convention): If subprogram is overloaded, only
16140         apply convention to homonyms that are declared explicitly.
16141
16142         * sem_res.adb (Make_Call_Into_Operator): If the operation is a function
16143         that renames an equality operator and the operands are overloaded,
16144         resolve them with the declared formal types, before rewriting as an
16145         operator.
16146
16147 2004-03-29  GNAT Script  <nobody@gnat.com>
16148
16149         * Make-lang.in: Makefile automatically updated
16150
16151 2004-03-25  Vasiliy Fofanov  <fofanov@act-europe.fr>
16152
16153         * memtrack.adb: Log realloc calls, which are treated as free followed
16154         by alloc.
16155
16156 2004-03-25  Vincent Celier  <celier@gnat.com>
16157
16158         * prj-makr.adb (Process_Directories): Detect when a file contains
16159         several units. Do not include such files in the config pragmas or
16160         in the naming scheme.
16161
16162         * prj-nmsc.adb (Record_Source): New parameter Trusted_Mode.
16163         Resolve links only when not in Trusted_Mode.
16164         (Find_Sources, Recursive_Find_Dirs, Find_Source_Dirs, Locate_Directory):
16165         Do not resolve links for the display names.
16166
16167         * prj-part.adb (Parse_Single_Project, Project_Path_Name_Of): Do not
16168         resolve links when computing the display names.
16169
16170 2004-03-25  Thomas Quinot  <quinot@act-europe.fr>
16171
16172         * sem_attr.adb (Check_Dereference): When the prefix of a 'Tag
16173         attribute reference does not denote a subtype, it can be any
16174         expression that has a classwide type, potentially after an implicit
16175         dereference.  In particular, the prefix can be a view conversion for
16176         a classwide type (for which Is_Object_Reference holds), but it can
16177         also be a value conversion for an access-to-classwide type. In the
16178         latter case, there is an implicit dereference, and the original node
16179         for the prefix does not verify Is_Object_Reference.
16180
16181         * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): A view
16182         conversion of a discriminant-dependent component of a mutable object
16183         is one itself.
16184
16185 2004-03-25  Ed Schonberg  <schonberg@gnat.com>
16186
16187         * freeze.adb (Freeze_Entity): When an inherited subprogram is
16188         inherited, has convention C, and has unconstrained array parameters,
16189         place the corresponding warning on the derived type declaration rather
16190         than the original subprogram.
16191
16192         * sem_ch12.adb (Instantiate_Formal_Subprogram): Set From_Default
16193         indication on renaming declaration, if formal has a box and actual
16194         is absent.
16195
16196         * sem_ch8.adb (Analyze_Subprogram_Renaming): Use From_Default flag to
16197         determine whether to generate an implicit or explicit reference to
16198         the renamed entity.
16199
16200         * sinfo.ads, sinfo.adb: New flag From_Default, to indicate that a
16201         subprogram renaming comes from a defaulted formal subprogram in an
16202         instance.
16203
16204 2004-03-25  Gary Dismukes  <dismukes@gnat.com>
16205
16206         * sem_elab.adb (Check_Elab_Call): Refine loop that checks for default
16207         value expressions to ensure that calls within a component definition
16208         will be checked (since those are evaluated during the record type's
16209         elaboration).
16210
16211 2004-03-25  Arnaud Charlet  <charlet@act-europe.fr>
16212
16213         * s-tpobop.adb: Code clean up:
16214         (Requeue_Call): Extract from PO_Service_Entries to remove duplicated
16215         code.
16216         (PO_Do_Or_Queue): Remove duplicated code and use Requeue_Call.
16217
16218 2004-03-25  Jose Ruiz  <ruiz@act-europe.fr>
16219
16220         * Makefile.in: Clean up in the ravenscar run time.
16221
16222 2004-03-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16223
16224         * decl.c (gnat_to_gnu_entity, case E_Access_Type): Pass value
16225         of No_Strict_Aliasing to build_pointer_type_for_mode.
16226         * utils.c (update_pointer_to): Walk pointer and ref chains.
16227
16228 2004-03-22  Cyrille Comar  <comar@act-europe.fr>
16229
16230         * ali.ads: Fix Comment about Dynamic_Elab.
16231
16232         * gnatls.adb (Output_Unit): Add output of many flags (Dynamic_Elab,
16233         Has_RACW, Is_Generic, etc.)
16234         (Output_Object, Gnatls): Take into account ALI files not attached to
16235         an object.
16236
16237 2004-03-22  Vincent Celier  <celier@gnat.com>
16238
16239         * gprep.adb: Change all String_Access to Name_Id
16240         (Is_ASCII_Letter): new function
16241         (Double_File_Name_Buffer): New procedure
16242         (Preprocess_Infile_Name): New procedure
16243         (Process_Files): New procedure
16244         (Gnatprep): Check if output and input are existing directories.
16245         Call Process_Files to do the real job.
16246
16247 2004-03-22  Robert Dewar  <dewar@gnat.com>
16248
16249         * prj-env.adb, prj-nmsc.ads, prj-proc.ads,
16250         s-stache.ads, s-stache.adb: Comment updates. Minor reformatting.
16251
16252 2004-03-22  Sergey Rybin  <rybin@act-europe.fr>
16253
16254         * scn.adb (Contains): Add check for EOF, is needed for a degenerated
16255         case when the source contains only comments.
16256
16257 2004-03-22  Ed Schonberg  <schonberg@gnat.com>
16258
16259         * sem_ch10.adb (Analyze_Compilation_Unit): When generating a
16260         declaration for a child subprogram body that acts as a spec, indicate
16261         that the entity in the declaration needs debugging information.
16262
16263         * sem_ch3.adb (Complete_Private_Subtype): Do not build an underlying
16264         full view if the subtype is created for a constrained record component;
16265         gigi has enough information to construct the record, and there is no
16266         place in the tree for the declaration.
16267
16268         * sem_ch6.adb (Build_Body_To_Inline): Use an internal name without
16269         serial number for the dummy body that is built for analysis, to avoid
16270         inconsistencies in the generation of internal names when compiling
16271         with -gnatN.
16272
16273 2004-03-22  Thomas Quinot  <quinot@act-europe.fr>
16274
16275         * sem_util.adb (Is_Object_Reference): A view conversion denotes an
16276         object.
16277
16278 2004-03-22  GNAT Script  <nobody@gnat.com>
16279
16280         * Make-lang.in: Makefile automatically updated
16281
16282 2004-03-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16283
16284         * decl.c (gnat_to_gnu_entity): Use SUBSTITUTE_PLACEHOLDER_IN_EXPR.
16285         * trans.c (tree_transform, emit_index_check): Likewise.
16286         * utils.c (build_template): Likewise.
16287         (max_size, convert): Remove handling of WITH_RECORD_EXPR.
16288         (maybe_unconstrained_array, unchecked_convert): Likewise.
16289         * utils2.c (gnat_truthvalue_conversion, build_binary_op): Likewise.
16290         (build_unary_op): Likewise.
16291         (compare_arrays, build_allocator): Use SUBSTITUTE_PLACEHOLDER_IN_EXPR.
16292         (fill_vms_descriptor): Likewise.
16293         (build_call_alloc_dealloc): Likewise.
16294         ALIGN is unsigned.
16295         * gigi.h (build_call_alloc_dealloc): Alignment is unsigned.
16296
16297 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
16298
16299         PR other/14630
16300         * gnat_ug.texi: Add info directory category and entry.
16301         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
16302         gnat_ug_wnt.texi: Regenerate.
16303
16304 2004-03-19  Arnaud Charlet  <charlet@act-europe.fr>
16305
16306         * ada-tree.h: Update copyright notice.
16307         Minor reformatting.
16308
16309 2004-03-19  Olivier Hainque  <hainque@act-europe.fr>
16310
16311         * decl.c (gnat_to_gnu_entity, case E_Exception): Handle VMS exceptions
16312         as regular exception objects and not as mere integers representing the
16313         condition code.  The latter approach required some dynamics to mask off
16314         severity bits, which did not fit well into the GCC table based model.
16315         (gnat_to_gnu_entity, objects): Don't supply an external name for VMS
16316         exception data objects. We don't it and it would conflict with the other
16317         external symbol we have to generate for such exceptions.
16318
16319         * trans.c (tree_transform, case N_Exception_Handler): Remove part of
16320         the special code for VMS exceptions, since these are now represented
16321         as regular exceptions objects.
16322
16323 2004-03-19 Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16324
16325         * decl.c (debug_no_type_hash): Remove.
16326         (gnat_to_gnu_entity, case E_Array_Type): Don't set and clear it.
16327         * misc.c (LANG_HOOK_HASH_TYPE): Redefine.
16328
16329 2004-03-19  Laurent Guerby <laurent@guerby.net>
16330
16331         * sem_prag.adb (Suppress_Unsuppress_Echeck): use loop instead of
16332         aggregate, allows bootstrap from 3.3 on powerpc-darwin.
16333
16334 2004-03-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16335
16336         * ada-tree.h (TYPE_LEFT_JUSTIFIED_MODULAR_P): Add checking.
16337         (TYPE_CONTAINS_TEMPLATE_P, TYPE_OBJECT_RECORD_TYPE): Likewise.
16338         (TYPE_RM_SIZE_INT): Directly use type.values.
16339         (TREE_LOOP_ID): Clean up check.
16340         * decl.c (gnat_to_gnu_entity, case E_Enumeration_Type): Use
16341         TYPE_VALUES, not TYPE_FIELDS.
16342         * trans.c (convert_with_check): Delay access of bounds of basetype
16343         until sure is numeric.
16344
16345 2004-03-18  Arnaud Charlet  <charlet@act-europe.fr>
16346
16347         * 5atpopsp.adb: Remove RTEMS from list of platforms using this file.
16348
16349         Code clean up:
16350         * 5ataprop.adb, 5ftaprop.adb, 5htaprop.adb, 5itaprop.adb, 5staprop.adb,
16351         5vtaprop.adb, 5wtaprop.adb, 7staprop.adb (Finalize_TCB): Use
16352         Specific.Set instead of direct call to e.g pthread_setspecific.
16353
16354 2004-03-18  Thomas Quinot  <quinot@act-europe.fr>
16355
16356         * adaint.c: Update comments.
16357
16358         * Makefile.in: set PREFIX_OBJS, SYMLIB, THREADSLIB, and
16359         GNATLIB_SHARED for FreeBSD.
16360
16361 2004-03-18  Jose Ruiz  <ruiz@act-europe.fr>
16362
16363         * init.c [VxWorks]: Do not fix the stack size for the environment task.
16364         When needed (stack checking) the stack size is retrieved
16365         from the VxWorks kernel.
16366
16367         * Makefile.in: Flag -nostdinc is required when building the run time
16368         for avoiding looking for files in the base compiler.
16369         Add the VxWorks specific version of the package body for
16370         System.Stack_checking.Operations (5zstchop.adb).
16371
16372         * Make-lang.in: Add the object file for
16373         System.Stack_Checking.Operations.
16374
16375         * Makefile.rtl: Add object file for the package
16376         System.Stack_Checking.Operations.
16377
16378         * s-stchop.ads, s-stchop.adb, 5zstchop.adb: New files.
16379
16380         * s-stache.ads, s-stache.adb: Move the operations related to stack
16381         checking from this package to package System.Stack_Checking.Operations.
16382         This way, stack checking operations are only linked in the final
16383         executable when using the -fstack-check flag.
16384
16385 2004-03-18  Doug Rupp  <rupp@gnat.com>
16386
16387         * Makefile.in [VMS]: Handle 64 bit specs (5qsystem.ads, 5xcrtl.ads).
16388         Reorganize ifeq's.
16389
16390         * 5qsystem.ads, 5xcrtl.ads: New files.
16391
16392 2004-03-18  Vincent Celier  <celier@gnat.com>
16393
16394         * prj.adb (Reset): Reset hash table Files_Htable
16395
16396         * prj-env.adb (Source_Paths, Object_Paths): New tables.
16397         (Add_To_Source_Path, Add_To_Object_Path): New procedures, to replace
16398         the procedures Add_To_Path_File.
16399         (Set_Ada_Paths): Accumulate source and object dirs in the tables,
16400         making sure that each directory is present only once and, for object
16401         dirs, when a directory already present is added, the duplicate is
16402         removed and the directory is always put as the last in the table.
16403         Write the path files at the end of these accumulations.
16404
16405         * prj-nmsc.adb (Record_Source): Add source file name in hash table
16406         Files_Htable for all sources.
16407
16408         * prj-proc.adb (Process): Remove restrictions between not directly
16409         related extending projects.
16410
16411 2004-03-18  Emmanuel Briot  <briot@act-europe.fr>
16412
16413         * prj-nmsc.ads, prj-nmsc.adb (Ada_Check): New parameter Trusted_Mode.
16414         (Find_Sources): Minor speed optimization.
16415
16416         * prj-proc.ads, prj-proc.adb (Check, Recursive_Check, Process): New
16417         parameter Trusted_Mode.
16418
16419 2004-03-18  Sergey Rybin  <rybin@act-europe.fr>
16420
16421         * scn.adb (Determine_License): Take into account a degenerated case
16422         when the source contains only comments.
16423
16424 2004-03-18  Ed Schonberg  <schonberg@gnat.com>
16425
16426         * sem_warn.adb (Check_References): For a warning on a selected
16427         component that does not come from source, locate an uninitialized
16428         component of the record type to produce a more precise error message.
16429
16430 2004-03-15  Jerome Guitton  <guitton@act-europe.fr>
16431
16432         * 3zsoccon.ads: Fix multicast options.
16433
16434         * s-thread.ads: Move unchecked conversion from ATSD_Access to Address
16435         in the spec.
16436
16437 2004-03-15  Robert Dewar  <dewar@gnat.com>
16438
16439         * sem_prag.adb: Make sure No_Strict_Aliasing flag is set right when
16440         pragma used for a private type.
16441
16442         * lib-xref.adb (Generate_Reference): Do not generate warning if
16443         reference is in a different unit from the pragma Unreferenced.
16444
16445         * 5vtpopde.adb: Minor reformatting
16446         Fix casing of To_Task_ID
16447
16448         * sem_ch13.adb (Validate_Unchecked_Conversion): Set No_Strict_Aliasing
16449         flag if we have an unchecked conversion to an access type in the same
16450         unit.
16451
16452 2004-03-15  Geert Bosch  <bosch@gnat.com>
16453
16454         * a-ngcoty.adb (Modulus): In alternate formula for large real or
16455         imaginary parts, use Double precision throughout.
16456
16457         * a-tifiio.adb (Put_Scaled): Remove remaining pragma Debug. Not only
16458         we want to be able to compile run-time with -gnata for testing, but
16459         this may also be instantiated in user code that is compiled with -gnata.
16460
16461 2004-03-15  Olivier Hainque  <hainque@act-europe.fr>
16462
16463         * s-stalib.ads (Exception_Code): New type, to represent Import/Export
16464         codes. Having a separate type for this is useful to enforce consistency
16465         throughout the various run-time units.
16466         (Exception_Data): Use Exception_Code for Import_Code.
16467
16468         * s-vmextra.ads, s-vmexta.adb: Use Exception_Code instead of a mix of
16469         Natural and Integer in various places.
16470         (Register_VMS_Exception): Use Base_Code_In to compute the exception code
16471         with the severity bits masked off.
16472         (Register_VMS_Exception): Handle the additional exception data pointer
16473         argument.
16474
16475         * raise.c (_GNAT_Exception structure): Remove the handled_by_others
16476         component, now reflected by an exported accessor.
16477         (is_handled_by): New routine to compute whether the propagated
16478         occurrence matches some handler choice specification. Extracted out of
16479         get_action_description_for, and expanded to take care of the VMS
16480         specifities.
16481         (get_action_description_for): Use is_handled_by instead of an explicit
16482         complex condition to decide if the current choice at hand catches the
16483         propagated occurrence.
16484
16485         * raise.h (Exception_Code): New type for C.
16486
16487         * rtsfind.ads (RE_Id, RE_Unit_Table): Add
16488         System.Standard_Library.Exception_Code, to allow references from the
16489         pragma import/export expander.
16490
16491         * a-exexpr.adb (Is_Handled_By_Others, Language_For, Import_Code_For):
16492         New accessors to allow easy access to GNAT exception data
16493         characteristics.
16494         (GNAT_GCC_Exception record, Propagate_Exception): Get rid of the
16495         redundant Handled_By_Others component, helper for the personality
16496         routine which will now be able to call the appropriate exception data
16497         accessor instead.
16498
16499         * cstand.adb (Create_Standard): Adjust the type of the Import_Code
16500         component of Standard_Exception_Type to be the closest possible to
16501         Exception_Code in System.Standard_Library, that we cannot get at this
16502         point. Expand a ??? comment to notify that this type node should
16503         probably be rewritten later on.
16504
16505         * exp_prag.adb (Expand_Pragma_Import_Export_Exception): Adjust the
16506         registration call to include a pointer to the exception object in the
16507         arguments.
16508
16509         * init.c (__gnat_error_handler): Use Exception_Code and Base_Code_In
16510         instead of int and explicit bitmasks.
16511
16512 2004-03-15  Vincent Celier  <celier@gnat.com>
16513
16514         * vms_data.ads: Add new GNAT BIND qualifier /STATIC. Makes /NOSHARED
16515         equivalent to /STATIC and /NOSTATIC equivalent to /SHARED.
16516
16517         * a-tasatt.adb (To_Access_Code): Remove this UC instantiation, no
16518         longer needed now that it is in the spec of
16519         System.Tasking.Task_Attributes.
16520
16521         * adaint.h, adaint.c: (__gnat_create_output_file): New function
16522
16523         * gnatcmd.adb: Fix bug introduced in previous rev: /= instead of =
16524
16525         * g-os_lib.ads, g-os_lib.adb (Create_Output_Text_File): New function.
16526
16527         * make.adb (Gnatmake): Do not check the executable suffix; it is being
16528         taken care of in Scan_Make_Arg.
16529         (Scan_Make_Arg): Add the executable suffix only if the argument
16530         following -o, in canonical case, does not end with the executable
16531         suffix.  When in verbose mode and executable file name does not end
16532         with executable suffix, output the executable name, in canonical case.
16533
16534         * s-tataat.ads (Access_Dummy_Wrapper): Add pragma No_Strict_Aliasing
16535         to avoid warnings when instantiating Ada.Task_Attributes.
16536         Minor reformating.
16537
16538         * mlib-prj.adb (Process_Imported_Libraries): Get the imported libraries
16539         in the correct order.
16540
16541         * prj-makr.adb (Process_Directory): No longer use GNAT.Expect, but
16542         redirect standard output and error to a file for the invocation of the
16543         compiler, then read the file.
16544
16545         * prj-nmsc.adb (Find_Sources): Use the Display_Value for each
16546         directory, instead of the Value.
16547         (Find_Source_Dirs): Remove useless code & comments.
16548
16549 2004-03-15  Ed Schonberg  <schonberg@gnat.com>
16550
16551         * exp_ch3.adb (Freeze_Record_Type): If a primitive operation of a
16552         tagged type is inherited, and the parent operation is not frozen yet,
16553         force generation of a freeze node for the inherited operation, so the
16554         corresponding dispatch entry is properly initialized.
16555         (Make_Predefined_Primitive_Specs): Check that return type is Boolean
16556         when looking for user-defined equality operation.
16557
16558         * exp_ch4.adb (Expand_Composite_Equality): Check that return type is
16559         boolean when locating primitive equality of tagged component.
16560
16561         * exp_ch5.adb (Expand_Assign_Array): If the left-hand side is a
16562         bit-aligned field and the right-hand side a string literal, introduce
16563         a temporary before expanding assignment into a loop.
16564
16565         * exp_ch9.adb (Expand_N_Task_Type_Declaration): Copy expression for
16566         priority in full, to ensure that any expanded subepxressions of it are
16567         elaborated in the scope of the init_proc.
16568
16569         * exp_prag.adb (Expand_Pragma_Import): Search for initialization call
16570         after object declaration, skipping over code that may have been
16571         generated for validity checks.
16572
16573         * sem_ch12.adb (Validate_Private_Type_Instance): If type has unknown
16574         discriminants, ignore the known discriminants of its full view, if
16575         any, to check legality.
16576
16577         * sem_ch3.adb (Complete_Private_Subtype): Do not create constrained
16578         component if type has unknown discriminants.
16579         (Analyze_Private_Extension_Declaration): Discriminant constraint is
16580         null if type has unknown discriminants.
16581
16582         * sem_ch6.adb (Analyze_Generic_Subprogram_Body): Generate reference
16583         for end label when present.
16584
16585         * s-fileio.adb (Open): When called with a C_Stream, use given name for
16586         temporary file, rather than an empty string.
16587
16588 2004-03-15  Ed Falis  <falis@gnat.com>
16589
16590         * s-thread.adb: Removed, no longer used.
16591
16592 2004-03-15  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16593
16594         * decl.c (target.h): Now include.
16595         (gnat_to_gnu_entity, case E_Access_Type): Use mode derived from ESIZE
16596         in new build_pointer_from_mode calls for non-fat/non-thin pointer.
16597         (validate_size): For POINTER_TYPE, get smallest size permitted on
16598         machine.
16599
16600         * fe.h: Sort Einfo decls and add Set_Mechanism.
16601
16602         * Makefile.in: (LIBGNAT_SRCS): Remove types.h.
16603         (ada/decl.o): Depends on target.h.
16604
16605         * trans.c (tree_transform, N_Unchecked_Type_Conversion): Do not use
16606         FUNCTION_BOUNDARY; always use TYPE_ALIGN.
16607
16608 2004-03-15  Thomas Quinot  <quinot@act-europe.fr>
16609
16610         * 5ztpopsp.adb, 56tpopsp.adb: Fix spelling of Task_ID.
16611
16612         * exp_ch4.adb (Expand_N_Indexed_Component): Do not call
16613         Insert_Dereference_Action when rewriting an implicit dereference into
16614         an explicit one, this will be taken care of during expansion of the
16615         explicit dereference.
16616         (Expand_N_Slice): Same. Always do the rewriting, even for the case
16617         of non-packed slices, since the dereference action generated by
16618         expansion of the explicit dereference is needed in any case.
16619         (Expand_N_Selected_Component): When rewriting an implicit dereference,
16620         analyze and resolve the rewritten explicit dereference so it is seen
16621         by the expander.
16622         (Insert_Dereference_Action): This procedure is now called only for the
16623         expansion of an N_Explcit_Dereference_Node. Do insert a check even for
16624         dereferences that do not come from source (including explicit
16625         dereferences resulting from rewriting implicit ones), but do not
16626         recursively insert a check for the dereference nodes contained within
16627         the check.
16628         (Insert_Dereference_Action): Clarify and correct comment.
16629
16630 2004-03-08  Paolo Bonzini  <bonzini@gnu.org>
16631
16632         PR ada/14131
16633         Move language detection to the top level.
16634         * config-lang.in: Build by default.
16635
16636 2004-03-05  Robert Dewar  <dewar@gnat.com>
16637
16638         * 56taprop.adb, 5ataprop.adb: Remove unneeded unchecked conversions
16639
16640         * a-tags.adb, a-tags.ads, s-finimp.adb, s-finroo.ads,
16641         i-cpoint.ads, i-cpoint.adb, i-cstrin.adb, i-cstrin.ads,
16642         5iosinte.ads, 5sosinte.ads, 5staspri.ads, 5itaprop.adb,
16643         5staprop.adb, 5wtaprop.adb, s-tataat.ads, s-tataat.adb: Move
16644         unchecked conversion to spec to avoid warnings.
16645
16646         * s-tasini.adb, s-taskin.ads, 5atpopsp.adb: Correct spelling Task_Id
16647         to Task_ID
16648
16649         * 7stpopsp.adb: Correct casing in To_Task_ID call
16650
16651         * a-strsea.ads, a-strsea.adb: Minor reformatting
16652
16653         * einfo.ads, einfo.adb: Define new flag No_Strict_Aliasing
16654
16655         * errout.ads: Switch for VMS is now NO_STRICT_ALIASING.
16656         Adjust Max_Msg_Length to be clearly large enough.
16657
16658         * fe.h: Define In_Same_Source_Unit
16659
16660         * osint.adb: Add pragma Warnings Off to suppress warnings
16661         * g-dyntab.adb, g-table.adb, g-thread.adb: Add Warnings (Off) to kill
16662         aliasing warnings.
16663
16664         * opt.ads: Put entries in alpha order. Add entry for No_Strict_Aliasing
16665
16666         * par-prag.adb: Add dummy entry for No_Strict_Aliasing pragma
16667
16668         * sem_ch13.adb: Generate validate unchecked conversion nodes for gcc.
16669
16670         * sem_ch3.adb: Set No_Strict_Aliasing flag if config pragma set.
16671
16672         * sem_prag.adb: Implement pragma No_Strict_Aliasing.
16673
16674         * sinfo.ads: Remove obsolete comment on validate unchecked conversion
16675         node. We now do generate them for gcc back end.
16676
16677         * table.adb, sinput.adb: Add pragma Warnings Off to suppress aliasing
16678         warning.
16679
16680         * sinput-c.adb: Fix bad name in header.
16681         Add pragma Warnings Off to suppress aliasing warning.
16682
16683         * sinput-l.adb: Add pragma Warnings Off to suppress aliasing warning.
16684
16685         * snames.h, snames.ads, snames.adb: Add entry for pragma
16686         No_Strict_Aliasing.
16687
16688 2004-03-05  Vincent Celier  <celier@gnat.com>
16689
16690         * prj-com.ads: Add hash table Files_Htable to check when a file name
16691         is already a source of another project.
16692
16693         * prj-nmsc.adb (Record_Source): Before recording a new source, check
16694         if its file name is not already a source of another project. Report an
16695         error if it is.
16696
16697         * gnatcmd.adb: When GNAT PRETTY is invoked with a project file and no
16698         source file name, call gnatpp with all the sources of the main project.
16699
16700         * vms_conv.adb (Initialize): GNAT PRETTY may be called with any number
16701         of file names.
16702
16703         * vms_data.ads: Correct documentation of new /OPTIMIZE keyword
16704         NO_STRICT_ALIASING. Add new qualifier for GNAT PRETTY:
16705         /RUNTIME_SYSTEM=, converted to --RTS=
16706         /NOTABS, converted to -notabs
16707
16708 2004-03-05  Pascal Obry  <obry@gnat.com>
16709
16710         * make.adb: Minor reformatting.
16711
16712 2004-03-05  Ed Schonberg  <schonberg@gnat.com>
16713
16714         Part of implemention of AI-262.
16715         * par-ch10.adb (P_Context_Clause): Recognize private with_clauses.
16716
16717         * sem_ch10.ads, sem_ch10.adb: (Install_Private_With_Clauses): New
16718         procedure.
16719
16720         * sem_ch3.adb (Analyze_Component_Declaration): Improve error message
16721         when component type is a partially constrained class-wide subtype.
16722         (Constrain_Discriminated_Type): If parent type has unknown
16723         discriminants, a constraint is illegal, even if full view has
16724         discriminants.
16725         (Build_Derived_Record_Type): Inherit discriminants when deriving a type
16726         with unknown discriminants whose full view is a discriminated record.
16727
16728         * sem_ch7.adb (Preserve_Full_Attributes): Preserve Has_Discriminants
16729         flag, to handle properly derivations of tagged types with unknown
16730         discriminants.
16731         (Analyze_Package_Spec, Analyze_Package_Body): Install
16732         Private_With_Clauses before analyzing private part or body.
16733
16734         * einfo.ads: Indicate that both Has_Unknown_Discriminants and
16735         Has_Discriminants can be true for a given type (documentation).
16736
16737 2004-03-05  Arnaud Charlet  <charlet@act-europe.fr>
16738
16739         * s-restri.ads: Fix license (GPL->GMGPL).
16740
16741         * s-tassta.adb: Minor reformatting.
16742
16743         * s-tasren.adb: Replace manual handling of Self_Id.ATC_Nesting_Level
16744         by calls to Exit_One_ATC_Level, since additional clean up is performed
16745         by this function.
16746
16747         * s-tpobop.adb: Replace manual handling of Self_Id.ATC_Nesting_Level
16748         by calls to Exit_One_ATC_Level, since additional clean up is performed
16749         by this function.
16750
16751 2004-03-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16752
16753         * trans.c: Reflect GCC changes to fix bootstrap problem.
16754         Add warning for suspicious aliasing unchecked conversion.
16755
16756 2004-03-05  GNAT Script  <nobody@gnat.com>
16757
16758         * Make-lang.in: Makefile automatically updated
16759
16760 2004-03-02  Emmanuel Briot  <briot@act-europe.fr>
16761
16762         * ali.adb (Read_Instantiation_Instance): Do not modify the
16763         current_file_num when reading information about instantiations, since
16764         this corrupts files in later references.
16765
16766 2004-03-02  Vincent Celier  <celier@gnat.com>
16767
16768         * bcheck.adb (Check_Consistency): Get the full path of an ALI file
16769         before checking if it is read-only.
16770
16771         * bld.adb (Recursive_Process): Concatenate <PROJECT>.src_dirs in front
16772         of SRC_DIRS and eliminate duplicates.
16773
16774         * gprcmd.adb: Replace command "path" with command "path_sep" to return
16775         the path separator.
16776         (Usage): Document path_sep
16777
16778         * Makefile.generic: For Ada and GNU C++ cases, link directly with the
16779         C++ compiler. No need for a script.
16780         Replace use of C*_INCLUDE_PATH env var for GCC compilers with CPATH.
16781         Do not call gprcmd to build the C*_INCLUDE_PATHs, do it with function
16782         subst.
16783
16784         * prj-env.adb (For_All_Source_Dirs): Only add source dirs in project
16785         where there are Ada sources.
16786         (Set_Ada_Paths): Only add to the include path the source dirs of project
16787         with Ada sources.
16788         (Add_To_Path): Add the Display_Values of the directories, not their
16789         Values.
16790
16791         * prj-nmsc.adb (Find_Sources): Set flag Sources_Present in the project
16792         data.
16793
16794         * prj-nmsc.adb (Add_ALI_For): Make sure that the element Display_Value
16795         is not No_Name.
16796         (Find_Source_Dirs): Set Display_Value to a non canonicalized value, only
16797         Value is canonicalized.
16798         (Language_Independent_Check): Do not copy Value to Display_Value when
16799         canonicalizing Value.
16800
16801         * prj-part.adb (Post_Parse_Context_Clause): Compare canonical cased
16802         path to find limited with cycles.
16803         (Parse_Single_Project): Use canonical cased path to find the end of a
16804         with cycle.
16805
16806 2004-03-02  Ed Schonberg  <schonberg@gnat.com>
16807
16808         * sem_ch10.adb (Optional_Subunit): Verify that unit contains a subunit
16809         and not a child unit.
16810
16811         * sinfo.ads, sinfo.adb: Rearrange flags so that Private_Present can
16812         appear in a with_clause.
16813
16814         * decl.c (gnat_to_gnu_type): If entity is a generic type, which can
16815         only happen in type_annotate mode, do not try to elaborate it.
16816
16817         * exp_util.adb (Force_Evaluation): If expression is a selected
16818         component on the left of an assignment, use a renaming rather than a
16819         temporary to remove side effects.
16820
16821         * freeze.adb (Freeze_Entity): Do not freeze a global entity within an
16822         inlined instance body, which is analyzed before the end of the
16823         enclosing scope.
16824
16825 2004-03-02  Robert Dewar  <dewar@gnat.com>
16826
16827         * par-ch10.adb, par-ch3.adb, par-ch4.adb, scng.adb,
16828         sem_ch4.adb: Use new feature for substitution of keywords in VMS
16829
16830         * errout.ads, errout.adb: Implement new circuit for substitution of
16831         keywords in VMS.
16832
16833         * sem_case.adb (Analyze_Choices): Place message properly when case is
16834         a subtype reference rather than an explicit range.
16835
16836         * sem_elim.adb, s-tpobop.ads, exp_ch2.adb: Minor reformatting
16837
16838 2004-03-02  Doug Rupp  <rupp@gnat.com>
16839
16840         * init.c (__gnat_initialize)[VMS]: Resignal RDB-E-STREAM_EOF.
16841
16842 2004-03-02  Thomas Quinot  <quinot@act-europe.fr>
16843
16844         * s-tporft.adb: Add missing locking around call to Initialize_ATCB.
16845
16846 2004-03-02  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16847
16848         * utils.c (finish_record_type): Do not set DECL_NONADDRESSABLE for a
16849         BLKmode bitfield.
16850
16851 2004-02-25  Robert Dewar  <dewar@gnat.com>
16852
16853         * 51osinte.ads, 52osinte.ads, 53osinte.ads, 54osinte.ads,
16854         55osinte.ads, 56osinte.ads, 5aosinte.ads, 5bosinte.ads,
16855         5cosinte.ads, 5fosinte.ads, 5gosinte.ads, 5hosinte.ads,
16856         5iosinte.ads, 5losinte.ads, 5nosinte.ads, 5oosinte.ads,
16857         5posinte.ads, 5sosinte.ads, 5tosinte.ads, 5vosinte.ads,
16858         5wosinte.ads, 5zosinte.ads: Move instances of Unchecked_Conversion to
16859         the defining instance of the type to avoid aliasing problems.
16860         Fix copyright header.  Fix bad comments in package header.
16861
16862         * exp_util.adb, prj-part.adb, prj-part.adb: Minor reformatting
16863
16864 2004-02-25  Ed Schonberg  <schonberg@gnat.com>
16865
16866         * exp_ch2.adb (Param_Entity): Handle properly formals that have been
16867         rewritten as references when aliased through an address clause.
16868
16869         * sem_ch4.adb (Try_Indirect_Call): Normalize actuals before checking
16870         whether call can be interpreted as an indirect call to the result of a
16871         parameterless function call returning an access subprogram.
16872
16873 2004-02-25  Arnaud Charlet  <charlet@act-europe.fr>
16874
16875         Code clean up:
16876         * exp_ch7.adb (Make_Clean): Remove generation of calls to
16877         Unlock[_Entries], since this is now done by Service_Entries directly.
16878
16879         * exp_ch9.adb (Build_Protected_Subprogram_Body): ditto.
16880
16881         * s-tpobop.ads, s-tpobop.adb (PO_Service_Entries): New nested procedure
16882         Requeue_Call for better code readability. Change spec and update calls:
16883         PO_Service_Entries now unlock the PO on exit.
16884         (Protected_Entry_Call, Timed_Protected_Entry_Call): Update calls to
16885         PO_Service_Entries.
16886
16887         * s-tposen.ads, s-tposen.adb (Service_Entry): Now unlock the PO on exit.
16888
16889         * s-taenca.adb, s-tasren.adb: Update calls to PO_Service_Entries.
16890
16891 2004-02-25  Sergey Rybin  <rybin@act-europe.fr>
16892
16893         * exp_ch9.adb (Build_Simple_Entry_Call): Prevent expanding the
16894         protected subprogram call and analyzing the result of such expanding
16895         in case when the called protected subprogram is eliminated.
16896
16897         * sem_elim.adb (Check_Eliminated): Skip blocks when comparing scope
16898         names.
16899
16900 2004-02-25  Jerome Guitton  <guitton@act-europe.fr>
16901
16902         * Makefile.in: Clean ups.
16903
16904 2004-02-23  Ed Schonberg  <schonberg@gnat.com>
16905
16906         * exp_ch6.adb (Expand_N_Subprogram_Declaration): Do not create
16907         protected operations if original subprogram is flagged as eliminated.
16908         (Expand_N_Subprogram_Body): For a protected operation, create
16909         discriminals for next operation before checking whether the operation
16910         is eliminated.
16911
16912         * exp_ch9.adb (Expand_N_Protected_Body,
16913         Expand_N_Protected_Type_Declaration): Do not generate specs and bodies
16914         for internal protected operations if the original subprogram is
16915         eliminated.
16916
16917         * sem_elim.adb (Check_Eliminated): Handle properly protected operations
16918         declared in a single protected object.
16919
16920 2004-02-23  Vincent Celier  <celier@gnat.com>
16921
16922         * prj-attr.adb: Make attribute Builder'Executable an associative array,
16923         case insensitive if file names are case insensitive, instead of a
16924         standard associative array.
16925
16926         * prj-attr.adb (Initialize): For 'b' associative arrays, do not set
16927         them as case insensitive on platforms where the file names are case
16928         sensitive.
16929
16930         * prj-part.adb (Parse_Single_Project): Make sure, when checking if
16931         project file has already been parsed that canonical path are compared.
16932
16933 2004-02-23  Robert Dewar  <dewar@gnat.com>
16934
16935         * sinput-c.ads: Correct bad unit title in header
16936
16937         * freeze.adb: Minor reformatting
16938
16939 2004-02-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16940
16941         * trans.c (tree_transform, case N_Procedure_Call_Statement): For
16942         nonaddressable COMPONENT_REF that is removing padding that we are
16943         taking the address of, take the address of the padded record instead
16944         if item is variable size.
16945
16946 2004-02-20  Robert Dewar  <dewar@gnat.com>
16947
16948         * bld.adb, exp_util.adb, gprcmd.adb: Minor reformatting
16949
16950 2004-02-20  Ed Schonberg  <schonberg@gnat.com>
16951
16952         * freeze.adb (Freeze_Record_Type): Generalize mechanism that generates
16953         itype references for the constrained designated type of a component
16954         whose base type is already frozen.
16955
16956 2004-02-20  Arnaud Charlet  <charlet@act-europe.fr>
16957
16958         * init.c (__gnat_error_handler [tru64]): Rewrite previous change to
16959         avoid GCC warnings.
16960
16961 2004-02-20  Sergey Rybin  <rybin@act-europe.fr>
16962
16963         * sem_ch12.adb (Analyze_Formal_Package): Create a new defining
16964         identifier for a phantom package that rewrites the formal package
16965         declaration with a box. The Add semantic decorations for the defining
16966         identifier from the original node (that represents the formal package).
16967
16968 2004-02-19  Matt Kraai  <kraai@alumni.cmu.edu>
16969
16970         * Make-lang.in (ada/stamp-sdefault): Use the top level
16971         move-if-change.
16972
16973 2004-02-19  Richard Henderson  <rth@redhat.com>
16974
16975         * misc.c (record_code_position): Add third build arg for RTL_EXPR.
16976
16977 2004-02-18  Emmanuel Briot  <briot@act-europe.fr>
16978
16979         * ali.ads, ali.adb (First_Sdep_Entry): No longer a constant, so that
16980         Scan_ALI can be used for multiple ALI files without reinitializing
16981         between calls.
16982
16983 2004-02-18  Robert Dewar  <dewar@gnat.com>
16984
16985         * debug.adb: Minor reformatting.
16986
16987 2004-02-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16988
16989         * decl.c (gnat_to_gnu_entity, case object): Set DECL_POINTER_ALIAS_SET
16990         to zero if there is an address clause.
16991
16992 2004-02-18  Thomas Quinot  <quinot@act-europe.fr>
16993
16994         * exp_util.adb (Side_Effect_Free): Any literal is side effects free.
16995
16996 2004-02-18  Gary Dismukes  <dismukes@gnat.com>
16997
16998         * layout.adb (Layout_Component_List): Revise generation of call to
16999         discriminant-checking function to pass selections of all of the type's
17000         discriminants rather than just the variant-controlling discriminant.
17001
17002 2004-02-18  Olivier Hainque  <hainque@act-europe.fr>
17003
17004         * 5gmastop.adb (Pop_Frame): Do not call exc_unwind, which is bound to
17005         fail in the current setup and triggers spurious system error messages.
17006         Pretend it occurred and failed instead.
17007
17008 2004-02-18  Vincent Celier  <celier@gnat.com>
17009
17010         * bld.adb: Mark FLDFLAGS as saved
17011         (Process_Declarative_Items): Add Linker'Linker_Options to FLDFLAGS when
17012         it is not the root project.  Put each directory to be
17013         extended between double quotes to prevent it to be expanded on Windows.
17014         (Recursive_Process): Reset CFLAGS/CXXFLAGS to nothing before processing
17015         the project file. Set them back to their initial values if they have not
17016         been set in the project file.
17017
17018         * gprcmd.adb: (Gprdebug, Debug): New global variables
17019         (Display_Command): New procedure
17020         (Usage): Document new command "linkopts"
17021         Call Display_Command when env var GPRDEBUG has the value "TRUE"
17022         Implement new command "linkopts"
17023         Remove quotes that may be around arguments for "extend"
17024         Always call Normalize_Pathname with arguments formatted for the platform
17025
17026         * Makefile.generic: Link C/C++ mains with $(FLDFLAGS)
17027         Change @echo to @$(display) in target clean to be able to clean silently
17028
17029         * Makefile.prolog: Save FLDFLAGS and give it an initial empty value
17030
17031         * prj-part.adb (Project_Path_Name_Of): Do not put final result in
17032         canonical case.
17033
17034         * prj-part.adb (Parse_Single_Project): Always call with From_Extended
17035         = Extending_All when current project is an extending all project.
17036
17037         * vms_conv.adb (Output_File_Expected): New Boolean global variable,
17038         set to True only for LINK command, after Unix switch -o.
17039         (Process_Arguments): Set Output_File_Expected to True for LINK command
17040         after Unix switch -o. When Output_File_Expected is True, never add an
17041         extension to a file name.
17042
17043         * 5vml-tgt.adb (Build_Dynamic_Library): Do not append "/OPTIONS" to the
17044         option file name, only to the --for-linker= switch.
17045         (Option_File_Name): If option file name do not end with ".opt", append
17046         "/OPTIONS".
17047
17048 2004-02-18  GNAT Script  <nobody@gnat.com>
17049
17050         * Make-lang.in: Makefile automatically updated
17051
17052 2004-02-17  Matt Kraai  <kraai@alumni.cmu.edu>
17053
17054         * Make-lang.in (stamp-sdefault): Do not depend on
17055         move-if-change.
17056
17057 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
17058
17059         * config-lang.in: Disable Ada by default until probe logic for
17060         a bootstrap Ada compiler can be moved to the top level configure
17061         script.
17062
17063 2004-02-12  Olivier Hainque  <hainque@act-europe.fr>
17064
17065         * decl.c (components_to_record): Don't claim that the internal fields
17066         we make to hold the variant parts are semantically addressable, because
17067         they are not.
17068
17069         * exp_pakd.adb (Create_Packed_Array_Type): Rename Esiz into PASize and
17070         adjust the comment describing the modular type form when we can use it.
17071         (Install_PAT): Account for the Esiz renaming.
17072
17073         * init.c (__gnat_error_handler for alpha-tru64): Arrange to clear the
17074         sc_onstack context indication before raising the exception to which
17075         the signal is mapped. Allows better handling of later signals possibly
17076         triggered by the resumed user code if the exception is handled.
17077
17078 2004-02-12  Arnaud Charlet  <charlet@act-europe.fr>
17079
17080         * 5zinit.adb: Removed, no longer used.
17081
17082 2004-02-12  Robert Dewar  <dewar@gnat.com>
17083
17084         * ali.adb: Remove separating space between parameters on R line. Makes
17085         format consistent with format used by the binder for Set_Globals call.
17086
17087         * atree.ads, atree.adb: Minor reformatting (new function header format)
17088
17089         * bindgen.adb: Add Run-Time Globals documentation section containing
17090         detailed documentation of the globals passed from the binder file to
17091         the run time.
17092
17093         * gnatls.adb: Minor reformatting
17094
17095         * init.c (__gnat_set_globals): Add note pointing to documentation in
17096         bindgen.
17097
17098         * lib-writ.ads, lib-writ.adb: Remove separating space between
17099         parameters on R line.
17100         Makes format consistent with format used by the binder for Set_Globals
17101         call.
17102
17103         * osint.ads: Add 2004 to copyright notice
17104         Minor reformatting
17105
17106         * snames.ads: Correct capitalization of FIFO_Within_Priorities
17107         Noticed during code reading, documentation issue only
17108
17109         * usage.adb: Remove junk line for obsolete C switch
17110         Noticed during code reading
17111
17112 2004-02-12  Vincent Celier  <celier@gnat.com>
17113
17114         * bld.adb (Process_Declarative_Items): For Source_Dirs call gprcmd
17115         extend for each directory, so that multiple /** directories are
17116         extended individually.
17117         (Recursive_Process): Set the default for LANGUAGES to ada
17118
17119         * gprcmd.adb: Define new command "ignore", to do nothing.
17120         Implement new comment "path".
17121
17122         * Makefile.generic: Suppress output when SILENT is set
17123         Make sure that when compiler for C/C++ is gcc, the correct -x switch is
17124         used, so that the correct compiler is invoked.
17125         When compiler is gcc/g++, put search path in env vars C_INCLUDE_PATH/
17126         CXX_INCLUDE_PATH, to avoid failure with too long command lines.
17127
17128 2004-02-12  Jerome Guitton  <guitton@act-europe.fr>
17129
17130         * Makefile.in: Clean ups and remove obsolete targets.
17131
17132 2004-02-12  Ed Schonberg  <schonberg@gnat.com>
17133
17134         * exp_ch5.adb: Remove Possible_Unligned_Slice, in favor of the similar
17135         predicate declared in exp_util.
17136
17137         * exp_util.adb: Add comments.
17138
17139         * sem_ch10.adb (Analyze_Subunit): Remove ultimate parent unit from
17140         visibility before compiling context of the subunit.
17141
17142         * sem_res.adb (Check_Parameterless_Call): If the context expects a
17143         value but the name is a procedure, do not attempt to analyze as a call,
17144         in order to obtain more telling diagnostics.
17145
17146         * sem_util.adb (Wrong_Type): Further enhancement to diagnose missing
17147         'Access on parameterless function calls.
17148         (Normalize_Actuals): For a parameterless function call with missing
17149         actuals, defer diagnostic until resolution of enclosing call.
17150
17151         * sem_util.adb (Wrong_Type): If the context type is an access to
17152         subprogram and the expression is a procedure name, suggest a missing
17153         'attribute.
17154
17155 2004-02-10  Arnaud Charlet  <charlet@act-europe.fr>,
17156             Nathanael Nerode  <neroden@gcc.gnu.org>
17157
17158         PR ada/6637, PR ada/5911
17159         Merge with libada-branch:
17160         * config-lang.in: Build libada only when ada is built.
17161
17162 2004-02-09  Ed Schonberg  <schonberg@gnat.com>
17163
17164         * exp_ch4.adb (Expand_N_Op_Eq): When looking for the primitive equality
17165         for a tagged type, verify that both formals have the same type.
17166
17167         * exp_ch6.adb (Add_Call_By_Copy_Code): Initialize properly the
17168         temporary when the formal is an in-parameter and the actual a possibly
17169         unaligned slice.
17170
17171         * exp_ch9.adb (Expand_Entry_Barrier): Resolve barrier expression even
17172         when expansion is disabled, to ensure proper name capture with
17173         overloaded literals.  Condition can be of any boolean type, resolve
17174         accordingly.
17175
17176         * sem_ch8.adb (Analyze_Subprogram_Renaming): Emit warning if the
17177         renaming is for a formal subprogram with a default operator name, and
17178         there is a usable operator that is visible at the point of
17179         instantiation.
17180
17181 2004-02-09  Robert Dewar  <dewar@gnat.com>
17182
17183         * ali.adb (Scan_Ali) Add Ignore_Errors argument. This is a major
17184         rewrite to ignore errors in ali files, intended to allow tools downward
17185         compatibility with new versions of ali files.
17186
17187         * ali.ads: Add new parameter Ignore_Errors
17188
17189         * bcheck.adb (Check_Consistent_Restrictions): Fix error of sometimes
17190         duplicating the error message giving the file with restrictions.
17191
17192         * debug.adb: Add debug flag I for gnatbind
17193
17194         * errout.adb (Set_Msg_Insertion_Node): Suppress extra quotes around
17195         operators for the case where the operator is a defining operator.
17196
17197         * exp_ch3.adb: Minor reformatting (new function spec format).
17198
17199         * exp_ch4.adb: Add comment for previous change, and make minor
17200         adjustment to loop to always check for improper loop termination.
17201         Minor reformatting throughout (new function spec format).
17202
17203         * gnatbind.adb: Implement -di debug flag for gnatbind
17204
17205         * gnatlink.adb: Call Scan_ALI with Ignore_Errors set to True
17206
17207         * gnatls.adb: Call Scan_ALI with Ignore_Errors set to True
17208
17209         * lib-load.adb: Fix bad assertion.
17210         Found by testing and code reading.
17211         Minor reformatting.
17212
17213         * lib-load.ads: Minor reformatting.
17214
17215         * lib-writ.adb: There is only one R line now.
17216
17217         * lib-writ.ads: Add documentation on making downward compatible changes
17218         to ali files so old tools work with new ali files.
17219         There is only one R line now.
17220         Add documentation on format incompatibilities (with special GPS note)
17221
17222         * namet.ads, namet.adb: (Is_Operator_Name): New procedure
17223
17224         * par-load.adb: Minor reformatting
17225
17226         * sem_ch8.adb: Fix to error message from last update
17227         Minor reformatting and restructuring of code from last update
17228
17229         * par-prag.adb, snames.adb, snames.ads, snames.h,
17230         sem_prag.adb: Implement pragma Profile.
17231
17232         * stylesw.adb: Implement -gnatyN switch to turn off all style check
17233         options.
17234
17235         * usage.adb: Add line for -gnatyN switch
17236
17237         * vms_data.ads: Add entry STYLE_CHECKS=NONE for -gnatyN
17238
17239 2004-02-09  Albert Lee  <lee@gnat.com>
17240
17241         * errno.c: define _SGI_MP_SOURCE for task-safe errno on IRIX
17242
17243 2004-02-09  Ed Schonberg  <schonberg@gnat.com>
17244
17245         * exp_ch3.adb (Build_Slice_Assignment): Handle properly case of null
17246         slices.
17247
17248         * exp_ch6.adb (Expand_Call): Do not inline a call when the subprogram
17249         is nested in an instance that is not frozen yet, to avoid
17250         order-of-elaboration problems in gigi.
17251
17252         * sem_attr.adb (Analyze_Attribute, case 'Access): Within an inlined
17253         body the attribute is legal.
17254
17255 2004-02-09  Robert Dewar  <dewar@gnat.com>
17256
17257         * s-rident.ads: Minor comment correction
17258
17259         * targparm.adb: Remove dependence on uintp completely. There was
17260         always a bug in Make in that it called Targparm before initializing
17261         the Uint package. The old code appeared to get away with this, but
17262         the new code did not! This caused an assertion error in gnatmake.
17263
17264         * targparm.ads: Fix bad comment, restriction pragmas with parameters
17265         are indeed fully supported.
17266
17267 2004-02-06  Alan Modra  <amodra@bigpond.net.au>
17268
17269         * misc.c (default_pass_by_ref): Update INIT_CUMULATIVE_ARGS call.
17270
17271 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
17272
17273         * ada/utils.c (create_param_decl): Replace PROMOTE_PROTOTYPES
17274         with targetm.calls.promote_prototypes.
17275
17276 2004-02-04  Robert Dewar  <dewar@gnat.com>
17277
17278         * 5gtasinf.adb, 5gtasinf.ads, 5gtaprop.adb, ali.adb,
17279         ali.ads, gprcmd.adb: Minor reformatting
17280
17281         * bindgen.adb: Output restrictions string for new style restrictions
17282         handling
17283
17284         * impunit.adb: Add s-rident.ads (System.Rident) and
17285         s-restri (System.Restrictions)
17286
17287         * lib-writ.adb: Fix bug in writing restrictions string (last few
17288         entries wrong)
17289
17290         * s-restri.ads, s-restri.adb: Change name Restrictions to
17291         Run_Time_Restrictions to avoid conflict with package name.
17292         Add circuit to read and acquire run time restrictions.
17293
17294 2004-02-04  Jose Ruiz  <ruiz@act-europe.fr>
17295
17296         * restrict.ads, restrict.adb: Use the new restriction
17297         No_Task_Attributes_Package instead of the old No_Task_Attributes.
17298
17299         * sem_prag.adb: No_Task_Attributes is a synonym of
17300         No_Task_Attributes_Package.
17301
17302         * snames.ads, snames.adb: New entry for proper handling of
17303         No_Task_Attributes.
17304
17305         * s-rident.ads: Adding restriction No_Task_Attributes_Package
17306         (AI-00249) that supersedes the GNAT specific restriction
17307         No_Task_Attributes.
17308
17309 2004-02-04  Ed Schonberg  <schonberg@gnat.com>
17310
17311         * sem_prag.adb:
17312         (Analyze_Pragma, case Warnings): In an inlined body, as in an instance
17313          body, an identifier may be wrapped in an unchecked conversion.
17314
17315 2004-02-04  Vincent Celier  <celier@gnat.com>
17316
17317         * lib-writ.ads: Comment update for the W lines
17318
17319         * bld.adb: (Expression): An empty string list is static
17320
17321         * fname-uf.adb: Minor comment update
17322
17323         * fname-uf.ads: (Get_File_Name): Document new parameter May_Fail
17324
17325         * gnatbind.adb: Initialize Cumulative_Restrictions with the
17326         restrictions on the target.
17327
17328 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
17329
17330         * ada/trans.c (gigi): Use gen_rtx_SYMBOL_REF instead of
17331         gen_rtx.
17332
17333 2004-02-02  Arnaud Charlet  <charlet@gnat.com>
17334
17335         * Makefile.in: Remove setting of THREADSLIB on mips o32, unneeded.
17336
17337 2004-02-02  Vincent Celier  <celier@gnat.com>
17338
17339         * gprcmd.adb (Check_Args): If condition is false, print the invoked
17340         comment before the usage.
17341         Gprcmd: Fail when command is not recognized.
17342         (Usage): Document command "prefix"
17343
17344         * g-md5.adb (Digest): Process last block.
17345         (Update): Do not process last block. Store remaining characters and
17346         length in Context.
17347
17348         * g-md5.ads (Update): Document that several call to update are
17349         equivalent to one call with the concatenated string.
17350         (Context): Add fields to allow new Update behaviour.
17351
17352         * fname-uf.ads/adb (Get_File_Name): New Boolean parameter May_Fail,
17353         defaulted to False.
17354         When May_Fail is True and no existing file can be found, return No_File.
17355
17356         * 6vcstrea.adb: Inlined functions are now wrappers to implementation
17357         functions.
17358
17359         * lib-writ.adb (Write_With_Lines): When body file does not exist, use
17360         spec file name instead on the W line.
17361
17362 2004-02-02  Robert Dewar  <dewar@gnat.com>
17363
17364         * ali.adb: Read and acquire info from new format restrictions lines
17365
17366         * bcheck.adb: Add circuits for checking restrictions with parameters
17367
17368         * bindgen.adb: Output dummy restrictions data
17369         To be changed later
17370
17371         * ali.ads, checks.adb, exp_aggr.adb, exp_attr.adb, exp_ch11.adb,
17372         exp_ch3.adb, exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_util.adb,
17373         freeze.adb, gnat1drv.adb, sem_attr.adb, sem_ch10.adb, sem_ch11.adb,
17374         sem_ch12.adb, targparm.adb, targparm.ads, tbuild.adb, sem_ch2.adb,
17375         sem_elab.adb, sem_res.adb: Minor changes for new restrictions handling.
17376
17377         * exp_ch9.adb (Build_Master_Entity): Cleanup the code (also suppresses
17378         the warning message on access to possibly uninitialized variable S)
17379         Minor changes for new restrictions handling.
17380
17381         * gnatbind.adb: Minor reformatting
17382         Minor changes for new restrictions handling
17383         Move circuit for -r processing here from bcheck (cleaner)
17384
17385         * gnatcmd.adb, gnatlink.adb: Minor reformatting
17386
17387         * lib-writ.adb: Output new format restrictions lines
17388
17389         * lib-writ.ads: Document new R format lines for new restrictions
17390         handling.
17391
17392         * s-restri.ads/adb: New files
17393
17394         * Makefile.rtl: Add entry for s-restri.ads/adb
17395
17396         * par-ch3.adb: Fix bad error messages starting with upper case letter
17397         Minor reformatting
17398
17399         * restrict.adb: Major rewrite throughout for new restrictions handling
17400         Major point is to handle restrictions with parameters
17401
17402         * restrict.ads: Major changes in interface to handle restrictions with
17403         parameters. Also generally simplifies setting of restrictions.
17404
17405         * snames.ads/adb: New entry for proper handling of No_Requeue
17406
17407         * sem_ch3.adb (Count_Tasks): New circuitry for implementing Max_Tasks
17408         restriction counting.
17409         Other minor changes for new restrictions handling
17410
17411         * sem_prag.adb: No_Requeue is a synonym for No_Requeue_Statements.
17412         Restriction_Warnings now allows full parameter notation
17413         Major rewrite of Restrictions for new restrictions handling
17414
17415 2004-02-02  Javier Miranda  <miranda@gnat.com>
17416
17417         * par-ch3.adb (P_Identifier_Declarations): Give support to the Ada 0Y
17418         syntax rule for object renaming declarations.
17419         (P_Array_Type_Definition): Give support for the Ada 0Y syntax rule for
17420         component definitions.
17421
17422         * sem_ch3.adb (Analyze_Component_Declaration): Give support to access
17423         components.
17424         (Array_Type_Declaration): Give support to access components. In addition
17425         it was also modified to reflect the name of the object in anonymous
17426         array types. The old code did not take into account that it is possible
17427         to have an unconstrained anonymous array with an initial value.
17428         (Check_Or_Process_Discriminants): Allow access discriminant in
17429         non-limited types.
17430         (Process_Discriminants): Allow access discriminant in non-limited types
17431         Initialize the new Access_Definition field in N_Object_Renaming_Decl
17432         node.  Change Ada0Y to Ada 0Y in comments
17433
17434         * sem_ch4.adb (Find_Equality_Types): Allow anonymous access types in
17435         equality operators.
17436         Change Ada0Y to Ada 0Y in comments
17437
17438         * sem_ch8.adb (Analyze_Object_Renaming): Give support to access
17439         renamings Change Ada0Y to Ada 0Y in comments
17440
17441         * sem_type.adb (Find_Unique_Type): Give support to the equality
17442         operators for universal access types
17443         Change Ada0Y to Ada 0Y in comments
17444
17445         * sinfo.adb (Access_Definition, Set_Access_Definition): New subprograms
17446
17447         * sinfo.ads (N_Component_Definition): Addition of Access_Definition
17448         field.
17449         (N_Object_Renaming_Declaration): Addition of Access_Definition field
17450         Change Ada0Y to Ada 0Y in comments
17451
17452         * sprint.adb (Sprint_Node_Actual): Give support to the new syntax for
17453         component definition and object renaming nodes
17454         Change Ada0Y to Ada 0Y in comments
17455
17456 2004-02-02  Jose Ruiz  <ruiz@act-europe.fr>
17457
17458         * restrict.adb: Use the new restriction identifier
17459         No_Requeue_Statements instead of the old No_Requeue for defining the
17460         restricted profile.
17461
17462         * sem_ch9.adb (Analyze_Requeue): Check the new restriction
17463         No_Requeue_Statements.
17464
17465         * s-rident.ads: Adding restriction No_Requeue_Statements (AI-00249)
17466         that supersedes the GNAT specific restriction No_Requeue. The later is
17467         kept for backward compatibility.
17468
17469 2004-02-02  Ed Schonberg  <schonberg@gnat.com>
17470
17471         * lib.ads, i-cobol.ads, * s-stoele.ads, s-thread.ads, style.ads,
17472         5staprop.adb, atree.adb, atree.ads, g-crc32.ads: Remove redundant
17473         pragma and fix incorrect ones.
17474
17475         * sem_prag.adb For pragma Inline and pragma Pure_Function, emit a
17476         warning if the pragma is redundant.
17477
17478 2004-02-02  Thomas Quinot  <quinot@act-europe.fr>
17479
17480         * 5staprop.adb: Add missing 'constant' keywords.
17481
17482         * Makefile.in: use consistent value for SYMLIB on
17483         platforms where libaddr2line is supported.
17484
17485 2004-02-02  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17486
17487         * utils.c (end_subprog_body): Do not call rest_of_compilation if just
17488         annotating types.
17489
17490 2004-02-02  Olivier Hainque  <hainque@act-europe.fr>
17491
17492         * init.c (__gnat_install_handler): Setup an alternate stack for signal
17493         handlers in the environment thread. This allows proper propagation of
17494         an exception on stack overflows in this thread even when the builtin
17495         ABI stack-checking scheme is used without support for a stack reserve
17496         region.
17497
17498         * utils.c (create_field_decl): Augment the head comment about bitfield
17499         creation, and don't account for DECL_BIT_FIELD in DECL_NONADDRESSABLE_P
17500         here, because the former is not accurate enough at this point.
17501         Let finish_record_type decide instead.
17502         Don't make a bitfield if the field is to be addressable.
17503         Always set a size for the field if the record is packed, to ensure the
17504         checks for bitfield creation are triggered.
17505         (finish_record_type): During last pass over the fields, clear
17506         DECL_BIT_FIELD when possible in the !STRICT_ALIGNMENT case, as this is
17507         not covered by the calls to layout_decl.  Adjust DECL_NONADDRESSABLE_P
17508         from DECL_BIT_FIELD.
17509
17510 2004-01-30  Kelley Cook  <kcook@gcc.gnu.org>
17511
17512         * Make-lang.in (doc/gnat_ug_unx.dvi): Use $(abs_docdir).
17513         (doc/gnat_ug_vms.dvi, doc/gnat_ug_unx.dvi): Likewise.
17514         (doc/gnat_ug_unx.dvi, doc/gnat-style.dvi): Likewise.
17515
17516 2004-01-26  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
17517
17518         * Makefile.in (mips-sgi-irix5): Remove -lathread from THREADSLIB.
17519
17520         * 5fsystem.ads (Functions_Return_By_DSP): Set to False.
17521         (ZCX_By_Default): Likewise.
17522         (Front_End_ZCX_Support): Likewise.
17523
17524         * 5gtaprop.adb (Stack_Guard): Mark T, On unreferenced.
17525         (Initialize_Lock): Mark Level unreferenced.
17526         (Sleep): Mark Reason unreferenced.
17527         (Timed_Sleep): Likewise.
17528         (Wakeup): Likewise.
17529         (Exit_Task): Use Result.
17530         (Check_No_Locks): Mark Self_ID unreferenced.
17531
17532         * 5gtasinf.adb (New_Sproc): Make Attr constant.
17533         (Bound_Thread_Attributes): Make Sproc constant.
17534         (New_Bound_Thread_Attributes): Likewise.
17535
17536 2004-01-26  Ed Schonberg  <schonberg@gnat.com>
17537
17538         * exp_ch3.adb (Build_Slice_Assignment): New TSS procedure for
17539         one-dimensional array an slice assignments, when component type is
17540         controlled.
17541
17542         * exp_ch5.adb (Expand_Assign_Array): If array is one-dimensional,
17543         component type is controlled, and control_actions are in effect, use
17544         TSS procedure rather than generating inline code.
17545
17546         * exp_tss.ads (TSS_Slice_Assign): New TSS procedure for one-dimensional
17547         arrays with controlled components.
17548
17549 2004-01-26  Vincent Celier  <celier@gnat.com>
17550
17551         * gnatcmd.adb (GNATCmd): Add specification of argument file on the
17552         command line for the non VMS case.
17553
17554         * gnatlink.adb (Process_Binder_File): When building object file, if
17555         GNU linker is used, put all object paths between quotes, to prevent ld
17556         error when there are unusual characters (such as '!') in the paths.
17557
17558         * Makefile.generic: When there are sources in Ada and the main is in
17559         C/C++, invoke gnatmake with -B, instead of -z.
17560
17561         * vms_conv.adb (Preprocess_Command_Data): New procedure, extracted
17562         from VMS_Conversion.
17563         (Process_Argument): New procedure, extracted from VMS_Conversion. Add
17564         specification of argument file on the command line.
17565
17566 2004-01-26  Bernard Banner  <banner@gnat.com>
17567
17568         * Makefile.in: Enable GMEM_LIB and SYMLIB for x86_64
17569
17570 2004-01-26  Ed Schonberg  <schonberg@gnat.com>
17571
17572         * snames.adb: Update copyright notice.
17573         Add info on slice assignment for controlled arrays.
17574
17575 2004-01-23  Robert Dewar  <dewar@gnat.com>
17576
17577         * exp_aggr.adb: Minor reformatting
17578
17579         * exp_ch9.adb: Minor code clean up
17580         Minor reformatting
17581         Fix bad character in comment
17582
17583         PR ada/13471
17584         * targparm.adb (Get_Target_Parameters): Give clean abort error on
17585         unexpected end of file, along with more detailed message.
17586
17587 2004-01-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17588
17589         * exp_pakd.adb (Install_PAT): Clear Freeze_Node for PAT and Etype of
17590         PAT.
17591
17592         * decl.c (copy_alias_set): New function.
17593         (gnat_to_gnu_entity, make_aligning_type, make_packable_type): Use it.
17594
17595 2004-01-23  Doug Rupp  <rupp@gnat.com>
17596
17597         * Makefile.in (install-gnatlib): Change occurrences of lib$$file to
17598         lib$${file} in case subsequent character is not a separator.
17599
17600 2004-01-23  Vincent Celier  <celier@gnat.com>
17601
17602         * 5vml-tgt.adb (Build_Dynamic_Library): Invoke gcc with -shared-libgcc
17603         when the GCC version is at least 3.
17604
17605         * make.adb: (Scan_Make_Arg): Pass -B to Scan_Make_Switches
17606         Remove all "Opt.", to prepare for opt split
17607
17608         * prj-part.adb (Parse_Single_Project): New Boolean out parameter
17609         Extends_All. Set to True when the project parsed is an extending all
17610         project. Fails for importing an extending all project only when the
17611         imported project is an extending all project.
17612         (Post_Parse_Context_Clause): Set Is_Extending_All to the with clause,
17613         depending on the value of Extends_All returned.
17614
17615         * prj-proc.adb (Process): Check that no project shares its object
17616         directory with a project that extends it, directly or indirectly,
17617         including a virtual project.
17618         Check that no project extended by another project shares its object
17619         directory with another also extended project.
17620
17621         * prj-tree.adb (Is_Extending_All, Set_Is_Extending_All): Allow for
17622         Kind = N_With_Clause
17623
17624         * prj-tree.ads: Minor reformatting
17625         Indicate that Flag2 also applies to N_With_Clause (Is_Extending_All).
17626
17627 2004-01-23  Ed Schonberg  <schonberg@gnat.com>
17628
17629         * sem_ch13.adb (Analyze_Attribute_Definition_Clause): If the attribute
17630         applies to a type with an incomplete view, use full view in Name of
17631         clause, for consistency with uses of Get_Attribute_Definition_Clause.
17632
17633 2004-01-23  Arnaud Charlet  <charlet@act-europe.fr>
17634
17635         * 5itaprop.adb (Set_Priority): Reset the priority to 0 when using
17636         SCHED_RR, since other values are not supported by this policy.
17637         (Initialize): Move initialization of mutex attribute to package
17638         elaboration, to prevent early access to this variable.
17639
17640         * Makefile.in: Remove mention of Makefile.adalib, unused.
17641
17642         * Makefile.adalib, 1aexcept.adb, 1aexcept.ads, 1ic.ads, 1ssecsta.adb,
17643         1ssecsta.ads: Removed, unused.
17644
17645 2004-01-21  Javier Miranda  <miranda@gnat.com>
17646
17647         * exp_aggr.adb (Build_Record_Aggr_Code): Do not build the master
17648         entity if already built in the current scope.
17649
17650         * exp_ch9.adb (Build_Master_Entity): Do not set the has_master_entity
17651         reminder in internal scopes. Required for nested limited aggregates.
17652
17653 2004-01-21  Doug Rupp  <rupp@gnat.com>
17654
17655         * Makefile.in (hyphen): New variable, default value '-'. Set to '_' on
17656         VMS. Replace all occurences of libgnat- and libgnarl- with
17657         libgnat$(hyphen) and libgnarl$(hyphen).
17658         Fixed shared library build problem on VMS.
17659
17660 2004-01-21  Robert Dewar  <dewar@gnat.com>
17661
17662         * mlib-prj.adb: Minor reformatting
17663
17664 2004-01-21  Thomas Quinot  <quinot@act-europe.fr>
17665
17666         * prj-tree.adb, 7staprop.adb, vms_conv.adb, xr_tabls.adb: Add missing
17667         'constant' keywords for declaration of pointers that are not modified.
17668
17669         * exp_pakd.adb: Fix English in comment.
17670
17671 2004-01-21  Ed Schonberg  <schonberg@gnat.com>
17672
17673         PR ada/10889
17674         * sem_ch3.adb (Analyze_Subtype_Declaration): For an array subtype,
17675         copy all attributes of the parent, including the foreign language
17676         convention.
17677
17678 2004-01-21  Sergey Rybin  <rybin@act-europe.fr>
17679
17680         PR ada/10565
17681         * sem_ch9.adb (Analyze_Delay_Alternative): Add expression type check
17682         for 'delay until' statement.
17683
17684 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
17685
17686         * Make-lang.in: Replace $(docdir) with doc.
17687         (doc/gnat_ug_unx.info, doc/gnat_ug_vwx.info, doc/gnat_ug_vms.info
17688         doc/gnat_ug_wnt.info, doc/gnat_rm.info, doc/gnat-style.info): Update
17689         to use consistent MAKEINFO rule.
17690         (ada.man, ada.srcman): Dummy entry.
17691         (ADA_INFOFILES): Define.
17692         (ada.info, ada.srcinfo): New rules.
17693
17694 2004-01-19  Arnaud Charlet  <charlet@act-europe.fr>
17695
17696         * utils.c: Update copyright notice, missed in previous change.
17697
17698 2004-01-19  Vincent Celier  <celier@gnat.com>
17699
17700         * mlib-prj.adb (Build_Library.Add_ALI_For): Only add the ALI to the
17701         args if Bind is True. Set First_ALI, if not already done.
17702         (Build_Library): For Stand Alone Libraries, extract from one ALI file
17703         an eventual --RTS switch, for gnatbind, and all backend switches +
17704         --RTS, for linking.
17705
17706 2004-01-19  Robert Dewar  <dewar@gnat.com>
17707
17708         * sem_attr.adb, memtrack.adb: Minor reformatting
17709
17710 2004-01-19  Ed Schonberg  <schonberg@gnat.com>
17711
17712         * exp_ch6.adb (Expand_Call): Remove code to fold calls to functions
17713         that rename enumeration literals. This is properly done in sem_eval.
17714
17715         * sem_eval.ads, sem_eval.adb (Eval_Call): New procedure to fold calls
17716         to functions that rename enumeration literals.
17717
17718         * sem_res.adb (Resolve_Call): Use Eval_Call to fold static calls to
17719         functions that rename enumeration literals.
17720
17721 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
17722
17723         * Make-lang.in (utils.o): Depend on target.h.
17724         * utils.c: Include target.h.
17725         (process_attributes): Use targetm.have_named_sections instead
17726         of ASM_OUTPUT_SECTION_NAME.
17727
17728 2004-01-16  Andreas Jaeger  <aj@suse.de>
17729
17730         * Makefile.in: Add $(DESTDIR).
17731
17732 2004-01-15  Olivier Hainque  <hainque@act-europe.fr>
17733
17734         * decl.c (gnat_to_gnu_entity, E_Variable): Retrieve the object size
17735         also when not defining if a Size clause applies. That information is
17736         not to be ignored.
17737
17738 2004-01-15  Arnaud Charlet  <charlet@act-europe.fr>
17739
17740         * Makefile.in (install-gnatlib, gnatlib-shared-default): Set up
17741         symbolic links for the shared gnat run time when needed.
17742
17743 2004-01-15  Vasiliy Fofanov  <fofanov@act-europe.fr>
17744
17745         * memtrack.adb (Gmem_Initialize): check that gmem.out could be opened
17746         for writing, and terminate with an error message if not.
17747
17748 2004-01-15  Ed Schonberg  <schonberg@gnat.com>
17749
17750         * sem_attr.adb (Resolve_Attribute, case 'Access): Remove spurious
17751         warning on an access to subprogram in an instance, when the target
17752         type is declared in the same generic unit.
17753         (Eval_Attribute): If 'access is known to fail accessibility check,
17754         rewrite as a raise statement.
17755
17756 2004-01-15  GNAT Script  <nobody@gnat.com>
17757
17758         * Make-lang.in: Makefile automatically updated
17759
17760 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
17761
17762         * Make-lang.in (ada.srcextra): Dummy entry.
17763
17764 2004-01-14  Kelley Cook  <kcook@gcc.gnu.org>
17765
17766         * Make-lang.in: Only regenerate texi files if --enable-maintainer-mode.
17767
17768 2004-01-13  Ed Schonberg  <schonberg@gnat.com>
17769
17770         * exp_ch3.adb (Build_Assignment): Fix bug in handling of controlled
17771         components that are initialized with aggregates.
17772
17773 2004-01-13  Vincent Celier  <celier@gnat.com>
17774
17775         * gnatlink.adb (Process_Binder_File): To find directory of shared
17776         libgcc, if "gcc-lib" is not a subdirectory, look for the last
17777         subdirectory "lib" in the path of the shared libgnat or libgnarl.
17778
17779         * make.adb (Gnatmake): If GCC version is at least 3, link with
17780         -shared-libgcc, when there is at least one shared library project.
17781
17782         * opt.ads (GCC_Version): New integer constant.
17783
17784         * adaint.c (get_gcc_version): New function.
17785
17786 2004-01-13  Robert Dewar  <dewar@gnat.com>
17787
17788         * sem_dist.adb, sem_res.adb, sem_util.adb,
17789         sprint.adb, 3zsocthi.adb, einfo.adb, cstand.adb,
17790         exp_ch4.adb, exp_ch9.adb, exp_dist.adb: Minor reformatting
17791
17792 2004-01-13  Thomas Quinot  <quinot@act-europe.fr>
17793
17794         * s-interr.adb, s-stache.adb, s-taenca.adb, g-regpat.adb,
17795         g-spitbo.adb, 5itaprop.adb: Add missing 'constant' keywords in object
17796         declarations.
17797
17798 2004-01-12  Arnaud Charlet  <charlet@act-europe.fr>
17799
17800         * misc.c: Remove trailing spaces.
17801         Update copyright notice missed in previous change.
17802
17803         PR ada/13572
17804         * bld.adb (Recursive_Process): Reference prefix/share/gnat instead of
17805         prefix/share/make
17806
17807         * Makefile.generic: Update copyright.
17808         Add license notice.
17809
17810         * Makefile.in (ADA_SHARE_MAKE_DIR): Set to prefix/share/gnat instead
17811         of prefix/share/make.
17812
17813         * Makefile.prolog: Update copyright.
17814         Add license notice.
17815
17816 2004-01-12  Laurent Pautet  <pautet@act-europe.fr>
17817
17818         * 3vsocthi.adb, 3vsocthi.ads, 3wsocthi.adb,
17819         3wsocthi.ads, 3zsocthi.adb, 3zsocthi.ads, g-socthi.adb,
17820         g-socthi.ads (Socket_Error_Message): Return C.Strings.chars_ptr
17821         instead of String.
17822
17823         * g-socket.adb (Raise_Socket_Error): Use new Socket_Error_Message
17824         signature.
17825
17826 2004-01-12  Javier Miranda  <miranda@gnat.com>
17827
17828         * cstand.adb, exp_aggr.adb, exp_ch3.adb, exp_ch9.adb, exp_dist.adb,
17829         exp_imgv.adb, exp_pakd.adb, exp_util.adb, par-ch3.adb, sem.adb,
17830         sem_ch12.adb, sem_ch3.adb, sem_dist.adb, sem_prag.adb, sem_res.adb,
17831         sem_util.adb, sinfo.adb, sinfo.ads, sprint.adb: Addition of
17832         Component_Definition node.
17833
17834 2004-01-12  Ed Falis  <falis@gnat.com>
17835
17836         * impunit.adb: Add GNAT.Secondary_Stack_Info as user-visible unit
17837
17838 2004-01-12  Thomas Quinot  <quinot@act-europe.fr>
17839
17840         * link.c: Change default libgnat kind to STATIC for FreeBSD.
17841
17842 2004-01-12  Bernard Banner  <banner@gnat.com>
17843
17844         * Makefile.in: map 86numaux to a-numaux for x86_64
17845
17846 2004-01-12  Ed Schonberg  <schonberg@gnat.com>
17847
17848         * lib-xref.adb (Get_Type_Reference): If the type is the subtype entity
17849         generated to rename a generic actual, go to the actual itself, the
17850         subtype is not a user-visible entity.
17851
17852         * sem_ch7.adb (Uninstall_Declarations): If an entity in the visible
17853         part is a private subtype, reset the visibility of its full view, if
17854         any, to be consistent.
17855
17856         PR ada/13417
17857         * sem_ch12.adb (Analyze_Formal_Package): Diagnose properly an attempt
17858         to use a generic package G as a formal package for another generic
17859         declared within G.
17860
17861 2004-01-12  Robert Dewar  <dewar@gnat.com>
17862
17863         * trans.c (Eliminate_Error_Msg): New procedure called to generate msg
17864
17865         * usage.adb: Remove mention of obsolete -gnatwb switch
17866         Noticed during code reading
17867
17868 2004-01-12  Jerome Guitton  <guitton@act-europe.fr>
17869
17870         * 1ssecsta.adb: Minor changes for -gnatwa warnings
17871
17872 2004-01-12  GNAT Script  <nobody@gnat.com>
17873
17874         * Make-lang.in: Makefile automatically updated
17875
17876 2004-01-09  Mark Mitchell  <mark@codesourcery.com>
17877
17878         * misc.c (gnat_expand_expr): Add alt_rtl parameter.
17879
17880 2004-01-07  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
17881
17882         * link.c [sgi] (shared_libgnat_default): Change to STATIC.
17883
17884 2004-01-05  Kelley Cook  <kcook@gcc.gnu.org>
17885
17886         * Make-lang.in: Revert stamp-xgnatug change from 2003-12-18.
17887         Update comment and copyright date.
17888         * stamp-xgnatug: Delete.
17889
17890 2004-01-05  Robert Dewar  <dewar@gnat.com>
17891
17892         * 1ssecsta.ads: Default_Secondary_Stack is not a constant since it may
17893         be modified by the binder generated main program if the -D switch is
17894         used.
17895
17896         * 4onumaux.ads, 4znumaux.ads: Add Pure_Function pragmas for all
17897         imported functions (since now we expect this to be done for imported
17898         functions)
17899
17900         * 5vtaprop.adb: Add several ??? for sections requiring more comments
17901         Minor reformatting throughout
17902
17903         * 5zinit.adb: Minor reformatting
17904         Add 2004 to copyright date
17905         Minor changes to avoid -gnatwa warnings
17906         Correct some instances of using OR instead of OR ELSE (noted while
17907         doing reformatting)
17908
17909         * sprint.adb: Minor updates to avoid -gnatwa warnings
17910
17911         * s-secsta.ads, s-secsta.adb:
17912         (SS_Get_Max): New function to obtain high water mark for ss stack
17913         Default_Secondary_Stack is not a constant since it may be modified by
17914         the binder generated main program if the -D switch is used.
17915
17916         * switch-b.adb: New -Dnnn switch for binder
17917
17918         * switch-c.adb:
17919         Make -gnatg imply all warnings currently in -gnatwa
17920
17921         * vms_conv.adb: Minor reformatting
17922         Add 2004 to copyright notice
17923         Add 2004 to printed copyright notice
17924
17925         * 3vexpect.adb, 4zsytaco.adb, 3wsocthi.adb, 3zsocthi.adb,
17926         3zsocthi.adb, 56taprop.adb, 56tpopsp.adb, 5amastop.adb,
17927         5aml-tgt.adb, 5ataprop.adb, 5ataprop.adb, 5atpopsp.adb,
17928         5ftaprop.adb, 5ginterr.adb, 5gmastop.adb, 5gml-tgt.adb,
17929         5gtaprop.adb, 5hml-tgt.adb, 5hml-tgt.adb, 5hml-tgt.adb,
17930         5htaprop.adb, 5htraceb.adb, 5itaprop.adb, 5lml-tgt.adb,
17931         5sml-tgt.adb, 5staprop.adb, 5staprop.adb, 5stpopsp.adb,
17932         5vasthan.adb, 5vinmaop.adb, 5vinterr.adb, 5vtaprop.adb,
17933         5vml-tgt.adb, 5vtaprop.adb, 5wosprim.adb, 5wtaprop.adb,
17934         5zinterr.adb, 5zintman.adb, 5zml-tgt.adb, 5ztaprop.adb,
17935         6vcpp.adb, 6vcstrea.adb, 7staprop.adb, 7stpopsp.adb,
17936         vxaddr2line.adb, vxaddr2line.adb, xref_lib.adb, xr_tabls.adb,
17937         xr_tabls.ads, s-tasdeb.adb, s-tasdeb.adb, sem_res.ads,
17938         sem_util.adb, sem_util.adb, sem_util.ads, s-interr.adb,
17939         checks.adb, clean.adb, cstand.adb, einfo.ads,
17940         einfo.adb, exp_aggr.adb, exp_ch11.adb, exp_ch3.adb,
17941         exp_ch4.adb, exp_ch5.adb, exp_ch7.adb, exp_ch9.adb,
17942         prj-nmsc.adb, prj-pp.adb, prj-util.adb, sem_attr.adb,
17943         sem_ch10.adb, sem_ch12.adb, sem_ch4.adb, g-dirope.adb,
17944         g-dirope.ads, gnatlbr.adb, i-cstrea.adb, inline.adb,
17945         lib-xref.adb, sem_ch5.adb, sem_ch7.adb, sem_ch8.adb:
17946         Minor reformatting and code clean ups.
17947         Minor changes to prevent -gnatwa warnings
17948
17949         * ali.adb: Minor reformatting and cleanup of code
17950         Acquire new SS indication of secondary stack use from ali files
17951
17952         * a-numaux.ads: Add Pure_Function pragmas for all imported functions
17953         (since now we expect this to be done for imported functions)
17954
17955         * bindgen.adb: Generate call to modify default secondary stack size if
17956         -Dnnn switch given
17957
17958         * bindusg.adb: Add line for new -D switch
17959
17960         * exp_aggr.adb (Type_May_Have_Bit_Aligned_Components): More appropriate
17961         replacement name for Type_May_Have_Non_Bit_Aligned_Components!
17962         Add circuitry for both records and arrays to avoid gigi
17963         processing if the type involved has non-bit-aligned components
17964
17965         * exp_ch5.adb (Expand_Assign_Array): Avoid assumption that
17966         N_String_Literal node always references an E_String_Literal_Subtype
17967         entity. This may not be true in the future.
17968         (Possible_Bit_Aligned_Component): Move processing of
17969         Component_May_Be_Bit_Aligned from exp_ch5 to exp_util
17970
17971         * exp_ch6.adb (Expand_Thread_Body): Pick up
17972         Default_Secondary_Stack_Size as variable so that we get value modified
17973         by possible -Dnnn binder parameter.
17974
17975         * exp_util.adb (Component_May_Be_Bit_Aligned): New function.
17976         (Type_May_Have_Bit_Aligned_Components): New function.
17977
17978         * exp_util.ads (Component_May_Be_Bit_Aligned): New function.
17979         (Type_May_Have_Bit_Aligned_Components): New function.
17980
17981         * fe.h: (Set_Identifier_Casing): Fix prototype.
17982         Add declaration for Sem_Elim.Eliminate_Error_Msg.
17983         Minor reformatting.
17984
17985         * freeze.adb (Freeze_Entity): Add RM reference to error message about
17986         importing constant atomic/volatile objects.
17987         (Freeze_Subprogram): Reset Is_Pure indication for imported subprogram
17988         unless explicit Pure_Function pragma given, to avoid insidious bug of
17989         call to non-pure imported function getting eliminated.
17990
17991         * gnat1drv.adb, gnatbind.adb, gnatchop.adb, gnatfind.adb,
17992         gnatls.adb, gnatlink.adb, gnatmem.adb, gnatname.adb, gnatsym.adb,
17993         gnatxref.adb, gprcmd.adb, gprep.adb, make.adb: Minor reformatting
17994         Add 2004 to printed copyright notice
17995
17996         * lib-writ.ads, lib-writ.adb: Put new SS flag in ali file if secondary
17997         stack used.
17998
17999         * Makefile.rtl: Add entry for g-sestin.o
18000         g-sestin.ads: New file.
18001
18002         * mdll.adb: Minor changes to avoid -gnatwa warnings
18003
18004         * mlib-tgt.adb: Minor reformatting
18005
18006         * opt.ads: New parameter Default_Secondary_Stack_Size (GNATBIND)
18007         New switch Sec_Stack_Used (GNAT, GNATBIND)
18008         Make Default_Secondary_Stack_Size a variable instead of a constant,
18009         so that it can be modified by the new -Dnnn bind switch.
18010
18011         * rtsfind.adb (Load_Fail): Give full error message in configurable
18012         run-time mode if all_errors mode is set. This was not done in the case
18013         of a file not found, which was an oversight.
18014         Note if secondary stack unit is used by compiler.
18015
18016         * sem_elab.adb (Check_A_Call): Rewrite to avoid trying to put
18017         ineffective elaborate all pragmas on non-visible packages (this
18018         happened when a renamed subprogram was called). Now the elaborate all
18019         always goes on the package containing the renaming rather than the one
18020         containing the renamed subprogram.
18021
18022         * sem_elim.ads, sem_elim.adb (Eliminate_Error_Msg): New procedure
18023         (Process_Eliminate_Pragma): Add parameter to capture pragma location.
18024
18025         * sem_eval.adb (Eval_String_Literal): Do not assume that string literal
18026         has an Etype that references an E_String_Literal.
18027         (Eval_String_Literal): Avoid assumption that N_String_Literal node
18028         always references an E_String_Literal_Subtype entity. This may not
18029         be true in the future.
18030
18031         * sem_prag.adb (Process_Eliminate_Pragma): Add parameter to capture
18032         pragma location.
18033
18034         * sem_res.adb (Resolve): Specialize msg for function name used in proc
18035         call.
18036
18037 2004-01-05  Ed Falis  <falis@gnat.com>
18038
18039         * g-debuti.adb: Replaced direct boolean operator with short-circuit
18040         form.
18041
18042 2004-01-05  Vincent Celier  <celier@gnat.com>
18043
18044         * bld.adb: Minor comment updates
18045         (Process_Declarative_Items): Correct incorrect name (Index_Name instead
18046         of Item_Name).
18047
18048         * make.adb (Gnatmake): Special process for files to compile/check when
18049         -B is specified. Fail when there are only foreign mains in attribute
18050         Main of the project file and -B is not specified. Do not skip bind/link
18051         steps when -B is specified.
18052
18053         * makeusg.adb: Document new switch -B
18054
18055         * opt.ads (Build_Bind_And_Link_Full_Project): New Boolean flag
18056
18057         * switch-m.adb: (Scan_Make_Switches): Process -B switch
18058
18059         * vms_data.ads: Add new GNAT PRETTY qualifier
18060         /FORM_FEED_AFTER_PRAGMA_PAGE for switch -ff
18061
18062 2004-01-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18063
18064         * trans.c (tree_transform, case N_Free_Statement): Handle thin pointer
18065         case.
18066
18067         * misc.c (gnat_printable_name): If VERBOSITY is 2, call
18068         Set_Identifier_Casing.
18069
18070         * decl.c (gnat_to_gnu_entity, E_Function): Give error if return type
18071         has size that overflows.
18072
18073 2004-01-05  Gary Dismukes  <dismukes@gnat.com>
18074
18075         * exp_ch4.adb (Expand_Array_Comparison): Add Boolean constant to avoid
18076         -gnatwa warning on static condition.
18077
18078 2004-01-05  Doug Rupp  <rupp@gnat.com>
18079
18080         * link.c: (shared_libgnat_default) [VMS]: Change to STATIC.
18081
18082 2004-01-05  Arnaud Charlet  <charlet@act-europe.fr>
18083
18084         * Makefile.in: Install ali files using INSTALL_DATA_DATE to preserve
18085         all attributes, including read-only attribute.
18086
18087 2004-01-05  Pascal Obry  <obry@gnat.com>
18088
18089         * bindgen.adb (Gen_Object_Files_Options): Generate the new shared
18090         library naming scheme.
18091
18092         * mlib-prj.adb (Build_Library): Generate different names for the static
18093         or dynamic version of the GNAT runtime. This is needed to support the
18094         new shared library naming scheme.
18095         (Process_Binder_File): Add detection of shared library in binder file
18096         based on the new naming scheme.
18097
18098         * gnatlink.adb (Process_Binder_File): Properly detect the new naming
18099         scheme for the shared runtime libraries.
18100
18101         * Makefile.in:
18102         (LIBRARY_VERSION) [VMS]: Convert all . to _ to conform to new naming
18103         scheme.
18104         (install-gnatlib): Do not create symlinks for shared libraries.
18105         (gnatlib-shared-default): Idem.
18106         (gnatlib-shared-dual-win32): New target. Not used for now as the
18107         auto-import feature does not support arrays/records.
18108         (gnatlib-shared-win32): Do not create copy for the shared libraries.
18109         (gnatlib-shared-vms): Fix shared runtime libraries names.
18110
18111         * osint.ads, osint.adb (Shared_Lib): New routine, returns the target
18112         dependent runtime shared library name.
18113
18114 2004-01-05  Vasiliy Fofanov  <fofanov@act-europe.fr>
18115
18116         * osint.adb (Read_Library_Info): Remove bogus check if ALI is older
18117         than the object.
18118
18119 2004-01-05  Ed Schonberg  <schonberg@gnat.com>
18120
18121         * sem_ch4.adb (Analyze_Allocator): Check restriction on dynamic
18122         protected objects when allocator has a subtype indication, not a
18123         qualified expression. Note that qualified expressions may have to be
18124         checked when limited aggregates are implemented.
18125
18126         * sem_prag.adb (Analyze_Pragma, case Import): If enclosing package is
18127         pure, emit warning.
18128         (Analyze_Pragma, case Pure_Function): If enclosing package is pure and
18129         subprogram is imported, remove warning.
18130
18131 2004-01-05  Geert Bosch  <bosch@gnat.com>
18132
18133         * s-poosiz.adb: Update copyright notice.
18134         (Allocate): Use Task_Lock to protect against concurrent access.
18135         (Deallocate): Likewise.
18136
18137 2004-01-05  Joel Brobecker  <brobecker@gnat.com>
18138
18139         * s-stalib.adb (Elab_Final_Code): Add missing year in date inside ???
18140         comment.
18141
18142 2003-12-23  Kelley Cook  <kcook@gcc.gnu.org>
18143
18144         * gnat_ug.texi: Force a CVS commit by updating copyright.
18145         * gnat_ug_vxw.texi: Regenerate.
18146         * gnat_ug_wnt.texi: Regenerate.
18147         * gnat_ug_vms.texi: Regenerate.
18148         * gnat_ug_unx.texi: Regenerate.
18149
18150 2003-12-20  Kazu Hirata  <kazu@cs.umass.edu>
18151
18152         * trans.c: Remove uses of "register" specifier in
18153         declarations of local variables.
18154
18155 2003-12-18  Kelley Cook  <kcook@gcc.gnu.org>
18156
18157         * stamp-xgnatug: New stamp file.
18158         * Make-lang.in (stamp-xgnatug):  New stamp file and comment.
18159         (ada/doctools/xgnatug): Add $(build_exeext).
18160         (ada/gnat_ug_unx.texi, ada/gnat_ug_vwx.texi, ada/gnat_ug_vms.texi
18161         ada/gnat_ug_wnt.texi): Update to depend on stamp-xgnatug.
18162
18163 2003-12-17  Ed Falis  <falis@gnat.com>
18164
18165         * a-elchha.adb (Tailored_Exception_Information): made Info constant to
18166         eliminate warning.
18167
18168         * a-exextr.adb: Add context clause for
18169         Ada.Exceptions.Last_Chance_Handler.
18170
18171 2003-12-17  Sergey Rybin  <rybin@act-europe.fr>
18172
18173         * cstand.adb (Create_Standard): Change the way how the declaration of
18174         the Duration type is created (making it the same way as it is for all
18175         the other standard types).
18176
18177 2003-12-17  Robert Dewar  <dewar@gnat.com>
18178
18179         * s-crtl.ads: Fix header format
18180         Change Pure to Preelaborate
18181
18182 2003-12-17  Ed Schonberg  <schonberg@gnat.com>
18183
18184         * checks.adb (Selected_Length_Checks): Generate an Itype reference for
18185         the expression type only if it is declared in the current unit.
18186
18187         * sem_ch3.adb (Constrain_Index): Handle properly a range whose bounds
18188         are universal and already analyzed, as can occur in constrained
18189         subcomponents that depend on discriminants, when one constraint is a
18190         subtype mark.
18191
18192         * sem_res.adb (Resolve_Type_Conversion): Any arithmetic expression of
18193         type Any_Fixed is legal as the argument of a conversion, if only one
18194         fixed-point type is in context.
18195
18196 2003-12-17  GNAT Script  <nobody@gnat.com>
18197
18198         * Make-lang.in: Makefile automatically updated
18199
18200 2003-12-15  Robert Dewar  <dewar@gnat.com>
18201
18202         * exp_ch6.adb (Expand_Thread_Body): Fix error in picking up default
18203         sec stack size.
18204
18205 2003-12-15  Vincent Celier  <celier@gnat.com>
18206
18207         * gnatchop.adb: (Error_Msg): Do not exit on error for a warning
18208         (Gnatchop): Do not set failure status when reporting the number of
18209         warnings.
18210
18211 2003-12-15  Doug Rupp  <rupp@gnat.com>
18212
18213         * s-ctrl.ads: New file.
18214
18215         * Makefile.rtl (GNAT_RTL_NONTASKING_OBJS): Add s-crtl$(objext).
18216
18217         * Make-lang.in: (GNAT_ADA_OBJS): Add ada/s-crtl.o.
18218         (GNATBIND_OBJS): Add ada/s-crtl.o.
18219
18220         * Makefile.in [VMS]: Clean up ifeq rules.
18221
18222         * gnatlink.adb, 6vcstrea.adb, a-direio.adb, a-sequio.adb,
18223         a-ststio.adb, a-textio.adb, g-os_lib.adb, a-witeio.adb,
18224         g-os_lib.ads, i-cstrea.adb, i-cstrea.ads, s-direio.adb,
18225         s-fileio.adb, s-memcop.ads, s-memory.adb, s-stache.adb,
18226         s-tasdeb.adb: Update copyright.
18227         Import System.CRTL.
18228         Make minor modifications to use System.CRTL declared functions instead
18229         of importing locally.
18230
18231 2003-12-15  GNAT Script  <nobody@gnat.com>
18232
18233         * Make-lang.in: Makefile automatically updated
18234
18235 2003-12-11  Ed Falis  <falis@gnat.com>
18236
18237         * 5zinit.adb: Clean up.
18238
18239         * 5zintman.adb (Notify_Exception): replaced case statement with a call
18240         to __gnat_map_signal, imported from init.c to support
18241         signal -> exception mappings that depend on the vxWorks version.
18242
18243         * init.c:
18244         Created and exported __gnat_map_signal to support signal -> exception
18245         mapping that is dependent on the VxWorks version.
18246         Change mapping of SIGBUS from Program_Error to Storage_Error on VxWorks
18247
18248 2003-12-11  Vasiliy Fofanv  <fofanov@act-europe.fr>
18249
18250         * 5wosinte.ads: Link with -mthreads switch.
18251
18252 2003-12-11  Arnaud Charlet  <charlet@act-europe.fr>
18253
18254         * init.c (__gnat_install_handler [NetBSD]): Set
18255         __gnat_handler_installed, as done on all other platforms.
18256         Remove duplicated code.
18257
18258 2003-12-11  Jerome Guitton  <guitton@act-europe.fr>
18259
18260         * Makefile.in (rts-zfp, rts-ravenscar): Create libgnat.a.
18261
18262 2003-12-11  Thomas Quinot  <quinot@act-europe.fr>
18263
18264         * sinfo.ads: Fix inconsistent example code in comment.
18265
18266 2003-12-11  Robert Dewar  <dewar@gnat.com>
18267
18268         * a-tiinau.adb: Add a couple of comments
18269
18270         * sem_ch3.adb: Minor reformatting
18271
18272         * sem_prag.adb:
18273         Fix bad prototype of Same_Base_Type in body (code reading cleanup)
18274         Minor reformatting throughout
18275
18276 2003-12-11  Ed Schonberg  <schonberg@gnat.com>
18277
18278         * exp_ch7.adb (Establish_Transient_Scope): If the call is within the
18279         bounds of a loop, create a separate block in order to generate proper
18280         cleanup actions to prevent memory leaks.
18281
18282         * sem_res.adb (Resolve_Call): After a call to
18283         Establish_Transient_Scope, the call may be rewritten and relocated, in
18284         which case no further processing is needed.
18285
18286         * sem_util.adb: (Wrong_Type): Refine previous fix.
18287          Fixes ACATS regressions.
18288
18289         PR ada/13353
18290
18291         * sem_prag.adb (Back_End_Cannot_Inline): A renaming_as_body can always
18292         be inlined.
18293
18294 2003-12-08  Jerome Guitton  <guitton@act-europe.fr>
18295
18296         * 5ytiitho.adb, 5zthrini.adb, 5ztiitho.adb, i-vthrea.adb,
18297         i-vthrea.ads, s-tpae65.adb, s-tpae65.ads: Cleanup: Remove a bunch of
18298         obsolete files.
18299
18300         * Makefile.in: (rts-ravenscar): Generate an empty libgnat.a.
18301         (rts-zfp): Ditto.
18302
18303 2003-12-08  Robert Dewar  <dewar@gnat.com>
18304
18305         * 7sintman.adb: Minor reformatting
18306
18307         * bindgen.adb: Configurable_Run_Time mode no longer suppresses the
18308         standard linker options to get standard libraries linked. We now plan
18309         to provide dummy versions of these libraries to match the appropriate
18310         configurable run-time (e.g. if a library is not needed at all, provide
18311         a dummy empty library).
18312
18313         * targparm.ads: Configurable_Run_Time mode no longer affects linker
18314         options (-L parameters and standard libraries). What we plan to do is
18315         to provide dummy libraries where the libraries are not required.
18316
18317         * gnatbind.adb: Minor comment improvement
18318
18319 2003-12-08  Javier Miranda  <miranda@gnat.com>
18320
18321         * exp_aggr.adb (Build_Record_Aggr_Code): Do not remove the expanded
18322         aggregate in the parent. Otherwise constants with limited aggregates
18323         are not supported. Add new formal to pass the component type (Ctype).
18324         It is required to call the corresponding IP subprogram in case of
18325         default initialized components.
18326         (Gen_Assign): In case of default-initialized component, generate a
18327         call to the IP subprogram associated with the component.
18328         (Build_Record_Aggr_Code): Remove the aggregate from the parent in case
18329         of aggregate with default initialized components.
18330         (Has_Default_Init_Comps): Improve implementation to recursively check
18331         all the present expressions.
18332
18333         * exp_ch3.ads, exp_ch3.adb (Build_Initialization_Call): Add new formal
18334         to indicate that the initialization call corresponds to a
18335         default-initialized component of an aggregate.
18336         In case of default initialized aggregate with tasks this parameter is
18337         used to generate a null string (this is just a workaround that must be
18338         improved later). In case of discriminants, this parameter is used to
18339         generate a selected component node that gives access to the discriminant
18340         value.
18341
18342         * exp_ch9.ads, exp_ch9.adb (Build_Task_Allocate_Block_With_Stmts): New
18343         subprogram, based on Build_Task_Allocate_Block, but adapted to expand
18344         allocated aggregates with default-initialized components.
18345
18346         * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Improve error message if
18347         the box notation is used in positional aggregates.
18348
18349 2003-12-08  Samuel Tardieu  <tardieu@act-europe.fr>
18350
18351         * lib.ads: Fix typo in comment
18352
18353 2003-12-08  Vincent Celier  <celier@gnat.com>
18354
18355         * prj.adb (Project_Empty): New component Unkept_Comments
18356         (Scan): Remove procedure; moved to Prj.Err.
18357
18358         * prj.ads (Project_Data): New Boolean component Unkept_Comments
18359         (Scan): Remove procedure; moved to Prj.Err.
18360
18361         * prj-dect.adb: Manage comments for the different declarations.
18362
18363         * prj-part.adb (With_Record): New component Node
18364         (Parse): New Boolean parameter Store_Comments, defaulted to False.
18365         Set the scanner to return ends of line and comments as tokens, if
18366         Store_Comments is True.
18367         (Pre_Parse_Context_Clause): Create the N_With_Clause nodes so that
18368         comments are associated with these nodes. Store the node IDs in the
18369         With_Records.
18370         (Post_Parse_Context_Clause): Use the N_With_Clause nodes stored in the
18371         With_Records.
18372         (Parse_Single_Project): Call Pre_Parse_Context_Clause before creating
18373         the N_Project node. Call Tree.Save and Tree.Reset before scanning the
18374         current project. Call Tree.Restore afterwards. Set the various nodes
18375         for comment storage (Next_End, End_Of_Line, Previous_Line,
18376         Previous_End).
18377
18378         * prj-part.ads (Parse): New Boolean parameter Store_Comments,
18379         defaulted to False.
18380
18381         * prj-pp.adb (Write_String): New Boolean parameter Truncated, defaulted
18382         to False. When Truncated is True, truncate the string, never go to the
18383         next line.
18384         (Write_End_Of_Line_Comment): New procedure
18385         (Print): Process comments for nodes N_With_Clause,
18386         N_Package_Declaration, N_String_Type_Declaration,
18387         N_Attribute_Declaration, N_Typed_Variable_Declaration,
18388         N_Variable_Declaration, N_Case_Construction, N_Case_Item.
18389         Process nodes N_Comment.
18390
18391         * prj-tree.ads, prj-tree.adb (Default_Project_Node): If it is a node
18392         without comments and there are some comments, set the flag
18393         Unkept_Comments to True.
18394         (Scan): If there are comments, set the flag Unkept_Comments to True and
18395         clear the comments.
18396         (Project_Node_Kind): Add enum values N_Comment_Zones, N_Comment
18397         (Next_End_Nodes: New table
18398         (Comment_Zones_Of): New function
18399         (Scan): New procedure; moved from Prj. Accumulate comments in the
18400         Comments table and set end of line comments, comments after, after end
18401         and before end.
18402         (Add_Comments): New procedure
18403         (Save, Restore, Seset_State): New procedures
18404         (There_Are_Unkept_Comments): New function
18405         (Set_Previous_Line_Node, Set_Previous_End_Node): New procedures
18406         (Set_End_Of_Line, Set_Next_End_Node, Remove_Next_End_Node): New
18407         procedures.
18408         (First_Comment_After, First_Comment_After_End): New functions
18409         (First_Comment_Before, First_Comment_Before_End): New functions
18410         (Next_Comment): New function
18411         (End_Of_Line_Comment, Follows_Empty_Line,
18412         Is_Followed_By_Empty_Line): New functions
18413         (Set_First_Comment_After, Set_First_Comment_After_End): New procedures
18414         (Set_First_Comment_Before, Set_First_Comment_Before_End): New procedures
18415         (Set_Next_Comment): New procedure
18416         (Default_Project_Node): Associate comment before if the node can store
18417         comments.
18418
18419         * scans.ads (Token_Type): New enumeration value Tok_Comment
18420         (Comment_Id): New global variable
18421
18422         * scng.ads, scng.adb (Comment_Is_Token): New Boolean global variable,
18423         defaulted to False.
18424         (Scan): Store position of start of comment. If comments are tokens, set
18425         Comment_Id and set Token to Tok_Comment when scanning a comment.
18426         (Set_Comment_As_Token): New procedure
18427
18428         * sinput-p.adb: Update Copyright notice
18429         (Source_File_Is_Subunit): Call Prj.Err.Scanner.Scan instead of Prj.Scan
18430         that no longer exists.
18431
18432 2003-12-08  Javier Miranda  <miranda@gnat.com>
18433
18434         * sem_aggr.adb: Add dependence on Exp_Tss package
18435         Correct typo in comment
18436         (Resolve_Aggregate): In case of array aggregates set the estimated
18437         type of the aggregate before calling resolve. This is needed to know
18438         the name of the corresponding IP in case of limited array aggregates.
18439         (Resolve_Array_Aggregate): Delay the resolution to the expansion phase
18440         in case of default initialized array components.
18441
18442         * sem_ch12.adb (Analyze_Formal_Object_Declaration): Allow limited
18443         types. Required to give support to limited aggregates in generic
18444         formals.
18445
18446 2003-12-08  Ed Schonberg  <schonberg@gnat.com>
18447
18448         * sem_ch3.adb (Check_Initialization): For legality purposes, an
18449         inlined body functions like an instantiation.
18450         (Decimal_Fixed_Point_Declaration): Do not set kind of first subtype
18451         until bounds are analyzed, to diagnose premature use of type.
18452
18453         * sem_util.adb (Wrong_Type): Improve error message when the type of
18454         the expression is used prematurely.
18455
18456 2003-12-08  GNAT Script  <nobody@gnat.com>
18457
18458         * Make-lang.in: Makefile automatically updated
18459
18460 2003-12-08  Arnaud Charlet  <charlet@act-europe.fr>
18461
18462         * sinfo.h, einfo.h, nmake.ads, nmake.adb, treeprs.ads: Removed, since
18463         they are automatically generated by Make-lang.in and cause nothing but
18464         maintenance troubles.
18465
18466 2003-12-05  Thomas Quinot  <quinot@act-europe.fr>
18467
18468         * 3ssoliop.ads: Fix comment (this is the Solaris, not the UnixWare,
18469         version of this unit).
18470
18471 2003-12-05  Olivier Hainque  <hainque@act-europe.fr>
18472
18473         * 53osinte.ads, 54osinte.ads, 55osinte.ads, 56osinte.ads, 5bosinte.ads,
18474         5cosinte.ads, 5hosinte.ads, 5iosinte.ads, 5losinte.ads,
18475         5tosinte.ads: Define the SA_SIGINFO constant, to allow references from
18476         the body of System.Interrupt_Management common to several targets.
18477         Update copyright notice when appropriate.
18478
18479         * 52osinte.ads, 5posinte.ads: Define a dummy value for the SA_SIGINFO
18480         constant.
18481
18482         * 7sintman.adb (elaboration): Set SA_SIGINFO in the sigaction flags,
18483         to ensure that the kernel fills in the interrupted context structure
18484         before calling a signal handler, which is necessary to be able to
18485         unwind past it. Update the copyright notice.
18486
18487 2003-12-05  Jerome Guitton  <guitton@act-europe.fr>
18488
18489         * a-elchha.ads: New file.
18490
18491         * a-elchha.adb: New default last chance handler. Contents taken from
18492         Ada.Exceptions.Exception_Traces.Unhandled_Exception_Terminate.
18493
18494         * a-exextr.adb (Unhandled_Exception_Terminate): Most of this routine
18495         is moved to a-elchha.adb to provide a target-independent default last
18496         chance handler.
18497
18498         * Makefile.rtl: Add a-elchha.o
18499
18500         * Make-lang.in (GNAT_ADA_OBJS, GNATBIND_OBJS): Add a-elchha.o.
18501
18502 2003-12-05  Ed Schonberg  <schonberg@gnat.com>
18503
18504         * exp_ch6.adb (Expand_Call): If the subprogram is inlined and is
18505         declared in an instance, do not inline the call if the instance is not
18506         frozen yet, to prevent order of elaboration problems.
18507
18508         * sem_prag.adb: Add comments for previous fix.
18509
18510 2003-12-05  Samuel Tardieu  <tardieu@act-europe.fr>
18511
18512         * g-table.adb: Use the right variable in Set_Item.
18513         Update copyright notice.
18514
18515 2003-12-05  Arnaud Charlet  <charlet@act-europe.fr>
18516
18517         * Makefile.in: Remove unused rules.
18518
18519 2003-12-05  Vincent Celier  <celier@gnat.com>
18520
18521         * switch-c.adb (Scan_Front_End_Switches): Remove processing of
18522         -nostdlib. Not needed here after all.
18523
18524 2003-12-03  Thomas Quinot  <quinot@act-europe.fr>
18525
18526         PR ada/11724
18527
18528         * adaint.h, adaint.c, g-os_lib.ads:
18529         Do not assume that the offset argument to lseek(2) is a 32 bit integer,
18530         on some platforms (including FreeBSD), it is a 64 bit value.
18531         Introduce a __gnat_lseek wrapper in adaint.c to allow for portability.
18532
18533 2003-12-03  Arnaud Charlet  <charlet@act-europe.fr>
18534
18535         * gnatvsn.ads (Library_Version): Now contain only the relevant
18536         version info.
18537         (Verbose_Library_Version): New constant.
18538
18539         * g-spipat.adb, g-awk.adb, g-debpoo.adb,
18540         g-memdum.adb, g-thread.adb, s-geveop.adb, s-interr.adb,
18541         s-taskin.adb, s-tassta.adb: Make code compile with -gnatwa.
18542
18543         * gnatlbr.adb: Clean up: replace Library_Version by
18544         Verbose_Library_Version.
18545
18546         * make.adb, lib-writ.adb, exp_attr.adb:
18547         Clean up: replace Library_Version by Verbose_Library_Version.
18548
18549         * 5lintman.adb: Removed.
18550
18551         * Makefile.in:
18552         Update and simplify computation of LIBRARY_VERSION.
18553         Fix computation of GSMATCH_VERSION.
18554         5lintman.adb is no longer used: replaced by 7sintman.adb.
18555
18556 2003-12-03  Robert Dewar  <dewar@gnat.com>
18557
18558         * exp_ch5.adb:
18559         (Possible_Bit_Aligned_Component): Maybe_Bit_Aligned_Large_Component new
18560         name. Modified to consider small non-bit-packed arrays as troublesome
18561         and in need of component-by-component assigment expansion.
18562
18563 2003-12-03  Vincent Celier  <celier@gnat.com>
18564
18565         * lang-specs.h: Process nostdlib as nostdinc
18566
18567         * back_end.adb: Update Copyright notice
18568         (Scan_Compiler_Arguments): Process -nostdlib directly.
18569
18570 2003-12-03  Jose Ruiz  <ruiz@act-europe.fr>
18571
18572         * Makefile.in:
18573         When defining LIBGNAT_TARGET_PAIRS for bare board targets, remove the
18574         redundant inclusion of EXTRA_HIE_NONE_TARGET_PAIRS, which is always
18575         included in HIE_NONE_TARGET_PAIRS.
18576
18577 2003-12-03  Ed Schonberg  <schonberg@gnat.com>
18578
18579         * sem_attr.adb:
18580         (Legal_Formal_Attribute): Attribute is legal in an inlined body, as it
18581         is legal in an instance, because legality is cheched in the template.
18582
18583         * sem_prag.adb:
18584         (Analyze_Pragma, case Warnings): In an inlined body, the pragma may be
18585         appplied to an unchecked conversion of a formal parameter.
18586
18587         * sem_warn.adb:
18588         (Output_Unreferenced_Messages): Suppress "not read" warnings on imported
18589         variables.
18590
18591 2003-12-03  Olivier Hainque  <hainque@act-europe.fr>
18592
18593         * tb-alvms.c (unwind_regular_code, unwind_kernel_handler): New
18594         routines. The second one is new functionality to deal with backtracing
18595         through signal handlers.
18596         (unwind): Split into the two separate subroutines above.
18597         Update the documentation, and deal properly with sizeof (REG) different
18598         from sizeof (void*).
18599
18600 2003-12-01  Nicolas Setton  <setton@act-europe.fr>
18601
18602         * a-except.adb (Raise_Current_Excep): Add a pragma Inspection_Point,
18603         so that the debugger can reliably access the value of the parameter,
18604         and therefore is able to display the exception name when an exception
18605         breakpoint is reached.
18606
18607 2003-12-01  Thomas Quinot  <quinot@act-europe.fr>
18608
18609         * fmap.adb: Fix typo in warning message.
18610
18611         * g-socket.ads, g-socket.adb: Make Free a visible instance of
18612         Ada.Unchecked_Deallocation (no need to wrap it in a subprogram).
18613
18614 2003-12-01  Vincent Celier  <celier@gnat.com>
18615
18616         * mlib-prj.adb (Build_Library.Process): Do not check a withed unit if
18617         ther is no Afile.
18618         (Build_Library): Get the switches only if Default_Switches is declared
18619         in package Binder.
18620
18621 2003-12-01  Ed Schonberg  <schonberg@gnat.com>
18622
18623         * exp_ch6.adb (Expand_Actuals): When applying validity checks to
18624         actuals that are indexed components, reanalyze actual to ensure that
18625         packed array references are properly expanded.
18626
18627         * sem_ch5.adb (Diagnose_Non_Variable_Lhs): Add special case for
18628         attempted assignment to a discriminant.
18629
18630 2003-12-01  Robert Dewar  <dewar@gnat.com>
18631
18632         * rtsfind.adb, exp_ch4.adb, s-exnint.ads, s-exnint.adb: Minor
18633         reformatting.
18634
18635         * switch-c.adb: Minor reformatting of comments
18636
18637 2003-12-01  Arnaud Charlet  <charlet@act-europe.fr>
18638
18639         * Makefile.in: Clean ups.
18640
18641 2003-12-01  GNAT Script  <nobody@gnat.com>
18642
18643         * Make-lang.in: Makefile automatically updated
18644
18645 2003-12-01  Arnaud Charlet  <charlet@act-europe.fr>
18646
18647         * 5wsystem.ads: Disable zero cost exception, not ready yet.
18648
18649 2003-11-29  Ulrich Weigand  <uweigand@de.ibm.com>
18650
18651         * Make-lang.in (nmake.ads): Add dependency on ada/nmake.adb
18652         to force serialization.
18653
18654 2003-11-26  Thomas Quinot  <quinot@act-europe.fr>
18655
18656         * g-socket.ads, g-socket.adb:
18657         Clarify documentation of function Stream. Introduce a Free procedure
18658         to release the returned Stream once it becomes unused.
18659
18660         * 5asystem.ads: For Alpha Tru64, enable ZCX by default.
18661
18662 2003-11-26  Arnaud Charlet  <charlet@act-europe.fr>
18663
18664         (Cond_Timed_Wait): Introduce new constant Time_Out_Max,
18665         since NT 4 cannot handle timeout values that are too large,
18666         e.g. DWORD'Last - 1.
18667
18668 2003-11-26  Ed Schonberg  <schonberg@gnat.com>
18669
18670         * exp_ch4.adb:
18671         (Expand_N_Slice): Recognize all cases of slices that appear as actuals
18672         in procedure calls and whose expansion must be deferred.
18673
18674         * exp_ch6.adb (Add_Call_By_Copy_Node): Remove previous fix. Proper fix
18675         is in exp_ch4.
18676
18677         * sem_ch3.adb:
18678         (Build_Derived_Array_Type): Create operator for unconstrained type
18679         if ancestor is unconstrained.
18680
18681 2003-11-26  Vincent Celier  <celier@gnat.com>
18682
18683         * make.adb (Project_Object_Directory): New global variable
18684         (Change_To_Object_Directory): New procedure
18685         (Collect_Arguments_And_Compile): Call Change_To_Object_Directory instead
18686         of Change_Dir directly. Do not change working directory to object
18687         directory of main project after each compilation.
18688         (Gnatmake): Use Change_To_Object_Directory instead of Change_Dir
18689         directly.
18690         Change to object directory of main project before binding step.
18691         (Initialize): Initialize Project_Object_Directory to No_Project
18692
18693         * mlib-prj.adb:
18694         (Build_Library): Take into account Builder'Default_Switches ("Ada") when
18695         binding a Stand-Alone Library.
18696
18697         * output.adb: Update Copyright notice
18698         (Write_Char): Output buffer when full
18699
18700 2003-11-26  Robert Dewar  <dewar@gnat.com>
18701
18702         * sem_ch13.adb: (Check_Size): Reset size if size is too small
18703
18704         * sem_ch13.ads:
18705         (Check_Size): Fix documentation to include bit-packed array case
18706
18707         * sem_res.adb: Implement restriction No_Direct_Boolean_Operators
18708
18709         * s-rident.ads: Put No_Direct_Boolean_Operators in proper order
18710
18711         * s-rident.ads: Add new restriction No_Direct_Boolean_Operators
18712
18713 2003-11-24  Arnaud Charlet <charlet@act-europe.fr>
18714
18715         PR ada/13142
18716         * utils.c (init_gigi_decls): Change name of built-in setjmp to
18717         __builtin_setjmp, since this is apparently needed by recent
18718         non Ada changes.
18719
18720 2003-11-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
18721
18722         * adadecode.c: Only include ctype.h if not IN_GCC.
18723         (__gnat_decode): Use ISDIGIT from safe-ctype.h.
18724
18725 2003-11-24  Jose Ruiz  <ruiz@act-europe.fr>
18726
18727         * Makefile.in:
18728         Use 5zintman.ads for VxWorks targets. This file avoid confusion between
18729         signals and interrupts.
18730
18731         * 5zintman.ads: New File.
18732
18733         * 5zintman.adb: Replace Exception_Interrupts by Exception_Signals, and
18734         add exception signals to the set of unmasked signals.
18735
18736         * 5ztaprop.adb:
18737         Use Abort_Task_Signal instead of Abort_Task_Interrupt to avoid confusion
18738         between signals and interrupts.
18739         Add to Unblocked_Signal_Mask the set of signals that are in
18740         Keep_Unmasked.
18741
18742         * 7sinmaop.adb:
18743         Adding a check to see whether the Interrupt_ID we want to unmask is in
18744         the range of Keep_Unmasked (in procedure Interrupt_Self_Process). The
18745         reason is that the index type of the Keep_Unmasked array is not always
18746         Interrupt_ID; it may be a subtype of Interrupt_ID.
18747
18748 2003-11-24  Gary Dismukes  <dismukes@gnat.com>
18749
18750         * exp_util.adb:
18751         (Remove_Side_Effects): Condition constantness of object created for a
18752          an unchecked type conversion on the constantness of the expression
18753          to ensure the correct value for 'Constrained when passing components
18754          of view-converted class-wide objects.
18755
18756 2003-11-24  Robert Dewar  <dewar@gnat.com>
18757
18758         * par-load.adb (Load): Improve handling of misspelled and missing units
18759         Removes several cases of compilation abandoned messages
18760
18761         * lib.adb: (Remove_Unit): New procedure
18762
18763         * lib.ads: (Remove_Unit): New procedure
18764
18765         * lib-load.adb: Minor reformatting
18766
18767 2003-11-24  Vincent Celier  <celier@gnat.com>
18768
18769         * make.adb:
18770         (Gnatmake, Initialize): Call Usage instead of Makeusg directly
18771         (Marking_Label): Label to mark processed source files. Incremented for
18772         each executable.
18773         (Gnatmake): Increase Marking_Labet for each executable
18774         (Is_Marked): Compare against marking label
18775         (Mark): Mark with marking label
18776
18777 2003-11-24  Jerome Guitton  <guitton@act-europe.fr>
18778
18779         * s-thread.ads:
18780         Move the declaration of the TSD for System.Threads to System.Soft_Links.
18781         Add some comments.
18782
18783         * Makefile.in: Added target pair for s-thread.adb for cert runtime.
18784         (rts-cert): build a single relocatable object for the run-time lib.
18785         Fix perms.
18786
18787 2003-11-24  Vasiliy Fofanov  <fofanov@act-europe.fr>
18788
18789         * Make-lang.in:
18790         Use gnatls rather than gcc to obtain the location of GNAT RTL for
18791         crosstools build.
18792
18793 2003-11-24  Sergey Rybin  <rybin@act-europe.fr>
18794
18795         * opt.adb (Tree_Write): Gnat_Version_String is now a function, so we
18796         can not use it as before (that is, as a variable) when dumping it into
18797         the tree file. Add a local variable to store the result of this
18798         function and to be used as the string to be written into the tree.
18799
18800         * scn.adb (Initialize_Scanner): Add comments explaining the recent
18801         changes.
18802
18803         * sinput.adb (Source_First, Source_Last): In case of
18804         Internal_Source_File, replace returning attributes of
18805         Internal_Source_Ptr (which is wrong) with returning attributes of
18806         Internal_Source.
18807
18808 2003-11-24  Ed Schonberg  <schonberg@gnat.com>
18809
18810         * sem_ch3.adb:
18811         (New_Concatenation_Op): Proper name for New_Binary_Operator, only
18812         used for implicit concatenation operators.
18813         Code cleanup.
18814
18815         * sem_elab.adb:
18816         (Check_Elab_Call): Set No_Elaboration_Check appropriately on calls in
18817         task bodies that are in the scope of a Suppress pragma.
18818         (Check_A Call): Use the flag to prevent spurious elaboration checks.
18819
18820         * sinfo.ads, sinfo.adb:
18821         New flag No_Elaboration_Check on function/procedure calls, to properly
18822         suppress checks on calls in task bodies that are within a local suppress
18823         pragma.
18824
18825         * exp_ch4.adb:
18826         (Expand_Concatenate_Other): Use the proper integer type for the
18827         expression for the upper bound, to avoid universal_integer computations
18828         when possible.
18829
18830 2003-11-21  Kelley Cook  <kcook@gcc.gnu.org>
18831
18832         * .cvsignore: Delete.
18833
18834 2003-11-21  Andreas Schwab  <schwab@suse.de>
18835
18836         * 55system.ads: Set ZCX_By_Default and GCC_ZCX_Support to True.
18837
18838 2003-11-21  Vasiliy Fofanov  <fofanov@act-europe.fr>
18839
18840         * 5wsystem.ads: Enable zero cost exception.
18841
18842 2003-11-21  Jerome Guitton  <guitton@act-europe.fr>
18843
18844         * 5ztiitho.adb: Remove an unreferenced variable.
18845
18846 2003-11-21  Thomas Quinot  <quinot@act-europe.fr>
18847
18848         * adaint.c: For FreeBSD, use mkstemp.
18849
18850 2003-11-21  Arnaud Charlet  <charlet@act-europe.fr>
18851
18852         * gnatlbr.adb: Now reference Gnat_Static_Version_String.
18853
18854 2003-11-21  Robert Dewar  <dewar@gnat.com>
18855
18856         * bld.adb: Remove useless USE of gnatvsn
18857
18858         * gnatchop.adb: Minor reformatting
18859         Clean up version handling to be more consistent
18860
18861         * gnatxref.adb: Minor reformatting
18862
18863         * gprcmd.adb: Minor reformatting
18864         Fix output of copyright to be more consistent with other tools
18865
18866 2003-11-21  Vincent Celier  <celier@gnat.com>
18867
18868         * make.adb (Scan_Make_Args): Do not transmit --RTS= to gnatlink
18869
18870 2003-11-21  Sergey Rybin  <rybin@act-europe.fr>
18871
18872         * atree.adb (Initialize): Add initializations for global variables
18873         used in New_Copy_Tree.
18874
18875         * cstand.adb (Create_Standard): Add call to Initialize_Scanner (with
18876         Internal_Source_File as the actual).
18877         Put the set of statements creating Any_Character before the set of
18878         statements creating Any_Array to have Any_Character fully initialized
18879         when it is used in creating Any_Array.
18880
18881         * scn.adb (Initialize_Scanner): Do not set Comes_From_Source ON and do
18882         not call Scan in case if the actual is Internal_Source_File
18883         Add 2003 to copyright note.
18884
18885         * sinput.adb (Source_First, Source_Last, Source_Text): Add code for
18886         processing Internal_Source_File.
18887
18888         * types.ads: Add the constant Internal_Source_File representing the
18889         source buffer for artificial source-code-like strings created within
18890         the compiler (the definition of Source_File_Index is changed).
18891
18892 2003-11-20  Arnaud Charlet  <charlet@act-europe.fr>
18893
18894         * 35soccon.ads, 45intnam.ads, 55osinte.adb, 55osinte.ads,
18895         56system.ads: New file, FreeBSD version.
18896
18897 2003-11-20  Joseph S. Myers  <jsm@polyomino.org.uk>
18898
18899         * Make-lang.in (ada.extraclean): Delete.
18900
18901 2003-11-19  Arnaud Charlet  <charlet@act-europe.fr>
18902
18903         * gnatmem.adb: Clean up verbose output.
18904
18905         * gprcmd.adb: Change copyright to FSF.
18906
18907 2003-11-19  Vincent Celier  <celier@gnat.com>
18908
18909         * symbols.adb: (Initialize): New parameters Reference, Symbol_Policy
18910         and Version (ignored).
18911
18912         * symbols.ads: (Policy): New type
18913         (Initialize): New parameter Reference, Symbol_Policy and
18914         Library_Version.
18915         Remove parameter Force.
18916         Minor reformatting.
18917
18918         * snames.ads, snames.adbadb: New standard names
18919         Library_Reference_Symbol_File and Library_Symbol_Policy
18920
18921         * mlib-prj.adb:
18922         (Build_Library): Call Build_Dinamic_Library with the Symbol_Data of the
18923         project.
18924
18925         * mlib-tgt.adb:
18926         (Build_Dynamic_Library): New parameter Symbol_Data (ignored)
18927
18928         * mlib-tgt.ads: (Build_Dynamic_Library): New parameter Symbol_Data
18929
18930         * prj.adb: (Project_Empty): New component Symbol_Data
18931
18932         * prj.ads: (Policy, Symbol_Record): New types
18933         (Project_Data): New component Symbol_Data
18934
18935         * prj-attr.adb:
18936         New attributes Library_Symbol_File, Library_Symbol_Policy and
18937         Library_Reference_Symbol_File.
18938
18939         * prj-nmsc.adb:
18940         (Ada_Check): When project is a Stand-Alone library project, process
18941         attribute Library_Symbol_File, Library_Symbol_Policy and
18942         Library_Reference_Symbol_File.
18943
18944         * 5aml-tgt.adb, 5bml-tgt.adb, 5gml-tgt.adb, 5hml-tgt.adb,
18945         5wml-tgt.adb, 5zml-tgt.adb, 5lml-tgt.adb,
18946         5sml-tgt.adb (Build_Dynamic_Library): New parameter
18947         Symbol_Data (ignored).
18948
18949         * 5vml-tgt.adb (VMS_Options): Remove --for-linker=gsmatch=equal,1,0
18950         (Build_Dynamic_Library): New parameter Symbol_Data. New internal
18951         functions Option_File_Name and Version_String. Set new options of
18952         gnatsym related to symbol file, symbol policy and reference symbol
18953         file.
18954
18955         * 5vsymbol.adb:
18956         Extensive modifications to take into account the reference symbol file,
18957         the symbol policy, the library version and to put in the symbol file the
18958         minor and major IDs.
18959
18960         * bld.adb (Process_Declarative_Items): Put second argument of
18961         gprcmd to_absolute between single quotes, to avoid problems with
18962         Windows.
18963
18964         * bld-io.adb: Update Copyright notice.
18965         (Flush): Remove last character of a line, if it is a back slash, to
18966         avoid make problems.
18967
18968         * gnatsym.adb:
18969         Implement new scheme with reference symbol file and symbol policy.
18970
18971         * g-os_lib.ads: (Is_Directory): Clarify comment
18972
18973 2003-11-19  Robert Dewar  <dewar@gnat.com>
18974
18975         * atree.adb: Move New_Copy_Tree global variables to head of package
18976
18977         * errout.adb: Minor reformatting
18978
18979 2003-11-19  Javier Miranda  <miranda@gnat.com>
18980
18981         * sem_ch4.adb: (Diagnose_Call): Improve error message.
18982         Add reference to Ada0Y (AI-50217)
18983
18984         * sem_ch6.adb, sem_ch8.adb, sem_type.adb,
18985         sem_util.adb: Add reference to AI-50217
18986
18987         * sinfo.ads: (N_With_Clause): Document fields referred to AI-50217
18988
18989         * sprint.adb: Add reference to Ada0Y (AI-50217, AI-287)
18990
18991         * sem_aggr.adb: Complete documentation of AI-287 changes
18992
18993         * par-ch4.adb: Document previous changes.
18994
18995         * lib-load.adb, lib-writ.adb, einfo.ads, par-ch10.adb,
18996         sem_cat.adb, sem_ch3.adb, sem_ch10.adb, sem_ch12.adb: Add references to
18997         Ada0Y (AI-50217)
18998
18999         * exp_aggr.adb: Add references to AI-287 in previous changes
19000
19001 2003-11-19  Ed Schonberg  <schonberg@gnat.com>
19002
19003         * exp_ch6.adb:
19004         (Add_Call_By_Copy_Node): Do not original node of rewritten expression
19005         in the rewriting is the result of an inlined call.
19006
19007         * exp_ch6.adb (Add_Call_By_Copy_Node): If actual for (in-)out
19008         parameter is a type conversion, use original node to construct the
19009         post-call assignment, because expression may have been rewritten, e.g.
19010         if it is a packed array.
19011
19012         * sem_attr.adb:
19013         (Resolve_Attribute, case 'Constrained): Attribute is legal in an inlined
19014         body, just as it is in an instance.
19015         Categorization routines
19016
19017         * sem_ch12.adb (Analyze_Association, Instantiate_Formal_Subprogram,
19018         Instantiate_Object): Set proper sloc reference for message on missing
19019         actual.
19020
19021 2003-11-19  Thomas Quinot  <quinot@act-europe.fr>
19022
19023         * Makefile.in: Add FreeBSD libgnat pairs.
19024
19025         * usage.adb: Fix typo in usage message.
19026
19027 2003-11-19  Jerome Guitton  <guitton@act-europe.fr>
19028
19029         * Makefile.in: On powerpc-wrs-vxworksae: Add s-thread.ad?,
19030         s-thrini.ad? and s-tiitho.adb to the full runtime, to support the
19031         pragma Thread_Body.
19032         Remove i-vthrea.ad? and s-tpae65.ad?, not needed anymore.
19033
19034         * s-thread.adb: This file is now a dummy implementation of
19035         System.Thread.
19036
19037 2003-11-19  Sergey Rybin  <rybin@act-europe.fr>
19038
19039         * rtsfind.adb (Initialize): Add initialization for RTE_Is_Available
19040
19041 2003-11-19  Emmanuel Briot  <briot@act-europe.fr>
19042
19043         * xref_lib.adb (Parse_Identifier_Info): Add handling of generic
19044         instanciation references in the parent type description.
19045
19046 2003-11-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19047
19048         * ada-tree.def: (ALLOCATE_EXPR): Class is "2", not "s".
19049
19050         * decl.c (gnat_to_gnu_entity, case E_Floating_Point_Subtype): Set
19051         TYPE_PRECISION directly from esize.
19052
19053 2003-11-18  Thomas Quinot  <quinot@act-europe.fr>
19054
19055         * cstreams.c:
19056         Use realpath(3) on FreeBSD. Fix typo in comment while we are at it.
19057
19058         * init.c: Initialization routines for FreeBSD
19059
19060         * link.c: Link info for FreeBSD
19061
19062         * sysdep.c: Add the case of FreeBSD
19063
19064 2003-11-17  Jerome Guitton  <guitton@act-europe.fr>
19065
19066         * 5zthrini.adb: Remove the call to Init_RTS at elaboration, as it is
19067         already called in System.Threads.
19068
19069         * 5ztiitho.adb (Initialize_Task_Hooks): Remove the registration of the
19070         environment task, as it has been moved to System.Threads.Initialization.
19071
19072 2003-11-17  Arnaud Charlet  <charlet@act-europe.fr>
19073
19074         * adaint.c (__gnatlib_install_locks): Only reference
19075         __gnat_install_locks on VMS, since other platforms can avoid using
19076         --enable-threads=gnat
19077
19078 2003-11-17  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19079
19080         * ada-tree.h: (TYPE_IS_PACKED_ARRAY_TYPE_P): New macro.
19081
19082         * decl.c (gnat_to_gnu_entity, case E_Array_Subtype): Set
19083         TYPE_PACKED_ARRAY_TYPE_P.
19084         (validate_size): Do not verify size if TYPE_IS_PACKED_ARRAY_TYPE_P.
19085
19086         Part of PR ada/12806
19087         * utils.c (float_type_for_precision): Renamed from float_type_for_size.
19088         Use GET_MODE_PRECISION instead of GET_MODE_BITSIZE.
19089
19090 2003-11-17  Vincent Celier  <celier@gnat.com>
19091
19092         * gnatchop.adb (Error_Msg): New Boolean parameter Warning, defaulted
19093         to False.
19094         Do not set exit status to Failure when Warning is True.
19095         (Gnatchop): Make errors "no compilation units found" and
19096         "no source files written" warnings only.
19097
19098         * make.adb (Gnatmake): When using a project file, set
19099         Look_In_Primary_Dir to False.
19100         (Configuration_Pragmas_Switch): Check for Global_Configuration_Pragmas
19101         and Local_Configuration_Pragmas in the project where they are declared
19102         not an extending project which might have inherited them.
19103
19104         * osint.adb (Locate_File): If Name is already an absolute path, do not
19105         look for a directory.
19106
19107         * par-ch10.adb (P_Compilation_Unit): If source contains no token, and
19108         -gnats (Check_Syntax) is used, issue only a warning, not an error.
19109
19110         * prj.adb (Register_Default_Naming_Scheme): Add new component Project
19111         in objects of type Variable_Value.
19112
19113         * prj.ads: (Variable_Value): New component Project
19114
19115         * prj-nmsc.adb (Ada_Check.Warn_If_Not_Sources): No warning if source
19116         is in a project extended by Project.
19117
19118         * prj-proc.adb (Add_Attributes): New parameter Project. Set component
19119         Project of Variable_Values to this new parameter value.
19120         (Expression): Set component Project of Variable_Values.
19121         (Process_Declarative_Items): Call Add_Attributes with parameter Project.
19122         Set the component Project in array elements.
19123
19124 2003-11-17  Sergey Rybin  <rybin@act-europe.fr>
19125
19126         * errout.adb: (Initialize): Add initialization for error nodes.
19127
19128         * sem_ch12.adb (Initialize): Add missing initializations for
19129         Exchanged_Views and Hidden_Entities.
19130
19131 2003-11-17  Ed Schonberg  <schonberg@gnat.com>
19132
19133         * sem_ch12.adb (Copy_Generic_Node): Preserve entity when copying an
19134         already instantiated tree for use in subsequent inlining.
19135         (Analyze_Associations, Instantiate_Formal_Subprogram,
19136         Instantiate_Object): improve error message for mismatch in
19137         instantiations.
19138
19139         * sem_ch6.adb (Build_Body_To_Inline): Major cleanup to handle
19140         instantiations of subprograms declared in instances.
19141
19142 2003-11-17  Javier Miranda  <miranda@gnat.com>
19143
19144         * sem_ch4.adb (Analyze_Allocator): Previous modification must be
19145         executed only under the Extensions_Allowed flag.
19146
19147 2003-11-17  Robert Dewar  <dewar@gnat.com>
19148
19149         * a-exexda.adb (Address_Image): Fix documentation to indicate leading
19150         zeroes suppressed.
19151         (Address_Image): Fix bug of returning 0x instead of 0x0
19152         Minor reformatting (function specs).
19153
19154         * einfo.ads: Minor fix for documentation of Is_Bit_Packed_Array
19155         (missed case of 33-63)
19156
19157         * freeze.adb, sem_ch13.adb: Properly check size of packed bit array
19158
19159         * s-thread.adb: Add comments for pragma Restriction
19160
19161         * exp_aggr.adb, g-debuti.adb, par-ch4.adb, sem_aggr.adb,
19162         sem_ch6.adb, sprint.adb, xref_lib.adb: Minor reformatting
19163
19164 2003-11-17  Ed Falis  <falis@gnat.com>
19165
19166         * s-thread.adb: Added No_Tasking restriction for this implementation.
19167
19168 2003-11-17  Emmanuel Briot  <briot@act-europe.fr>
19169
19170         * xref_lib.adb (Parse_Identifier_Info): Add handling of generic
19171         instanciation references in the parent type description.
19172
19173 2003-11-17  GNAT Script  <nobody@gnat.com>
19174
19175         * Make-lang.in: Makefile automatically updated
19176
19177 2003-11-16  Jason Merrill  <jason@redhat.com>
19178
19179         * Make-lang.in (ada.tags): Create TAGS.sub files in each directory
19180         and TAGS files that include them for each front end.
19181
19182 2003-11-14  Andreas Jaeger  <aj@suse.de>
19183
19184         * lang.opt: Change -Wno-long-long to -Wlong-long since the latter
19185         is the canonical version.
19186         * misc.c (gnat_handle_option): Likewise.
19187
19188         * Makefile.in (LIBGNAT_TARGET_PAIRS): Add rules for x86_64-linux.
19189
19190         * 5nsystem.ads: New file for x86_64-linux-gnu.
19191
19192 2003-11-14  Arnaud Charlet  <charlet@act-europe.fr>
19193
19194         * nmake.ads, nmake.adb, sinfo.h, treeprs.ads: Regenerated.
19195
19196         * comperr.adb: Fix logic in previous change.
19197
19198 2003-11-13  Vincent Celier  <celier@gnat.com>
19199
19200         * 5bml-tgt.adb (Build_Dynamic_Library): Use
19201         Osint.Include_Dir_Default_Prefix instead of
19202         Sdefault.Include_Dir_Default_Name.
19203
19204         * gnatlbr.adb: Update Copyright notice
19205         (Gnatlbr): : Use Osint.Include_Dir_Default_Prefix instead of
19206         Sdefault.Include_Dir_Default_Name and Osint.Object_Dir_Default_Prefix
19207         instead of Sdefault.Object_Dir_Default_Name
19208
19209         * gnatlink.adb:
19210         (Process_Binder_File): Never suppress the option following -Xlinker
19211
19212         * mdll-utl.adb:
19213         (Gcc): Use Osint.Object_Dir_Default_Prefix instead of
19214         Sdefault.Object_Dir_Default_Name.
19215
19216         * osint.ads, osint.adb:
19217         (Include_Dir_Default_Prefix, Object_Dir_Default_Prefix): New functions
19218         Minor reformatting.
19219
19220         * vms_conv.ads: Minor reformating
19221         Remove GNAT STANDARD and GNAT PSTA
19222
19223         * vms_conv.adb:
19224         Allow GNAT MAKE to have several files on the command line.
19225         (Init_Object_Dirs): Use Osint.Object_Dir_Default_Prefix instead of
19226         Sdefault.Object_Dir_Default_Name.
19227         Minor Reformating
19228         Remove data for GNAT STANDARD
19229
19230         * vms_data.ads:
19231         Add new compiler qualifier /PRINT_STANDARD (-gnatS)
19232         Remove data for GNAT STANDARD
19233         Remove options and documentation for -gnatwb/-gnatwB: these warning
19234         options no longer exist.
19235
19236 2003-11-13  Ed Falis  <falis@gnat.com>
19237
19238         * 5zthrini.adb: (Init_RTS): Made visible
19239
19240         * 5zthrini.adb:
19241         (Register): Removed unnecessary call to taskVarGet that checked whether
19242          an ATSD was already set as a task var for the argument thread.
19243
19244         * s-thread.adb:
19245         Updated comment to reflect that this is a VxWorks version
19246         Added context clause for System.Threads.Initialization
19247         Added call to System.Threads.Initialization.Init_RTS
19248
19249 2003-11-13  Jerome Guitton  <guitton@act-europe.fr>
19250
19251         * 5zthrini.adb:
19252         (Init_RTS): New procedure, for the initialization of the run-time lib.
19253
19254         * s-thread.adb:
19255         Remove dependancy on System.Init, so that this file can be used in the
19256         AE653 sequential run-time lib.
19257
19258 2003-11-13  Robert Dewar  <dewar@gnat.com>
19259
19260         * bindgen.adb: Minor reformatting
19261
19262 2003-11-13  Ed Schonberg  <schonberg@gnat.com>
19263
19264         * checks.adb:
19265         (Apply_Discriminant_Check): Do no apply check if target type is derived
19266         from source type with no applicable constraint.
19267
19268         * lib-writ.adb:
19269         (Ensure_System_Dependency): Do not apply the style checks that may have
19270         been specified for the main unit.
19271
19272         * sem_ch8.adb:
19273         (Find_Selected_Component): Further improvement in error message, with
19274         RM reference.
19275
19276         * sem_res.adb:
19277         (Resolve): Handle properly the case of an illegal overloaded protected
19278         procedure.
19279
19280 2003-11-13  Javier Miranda  <miranda@gnat.com>
19281
19282         * exp_aggr.adb:
19283         (Has_Default_Init_Comps): New function to check the presence of
19284         default initialization in an aggregate.
19285         (Build_Record_Aggr_Code): Recursively expand the ancestor in case of
19286         extension aggregate of a limited record. In addition, a new formal
19287         was added to do not initialize the record controller (if any) during
19288         this recursive expansion of ancestors.
19289         (Init_Controller): Add support for limited record components.
19290         (Expand_Record_Aggregate): In case of default initialized components
19291         convert the aggregate into a set of assignments.
19292
19293         * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Update the comment
19294         describing the new syntax.
19295         Nothing else needed to be done because this subprogram delegates part of
19296         its work to P_Precord_Or_Array_Component_Association.
19297         (P_Record_Or_Array_Component_Association): Give support to the new
19298         syntax for default initialization of components.
19299
19300         * sem_aggr.adb:
19301         (Resolve_Aggregate): Relax the strictness of the frontend in case of
19302         limited aggregates.
19303         (Resolve_Record_Aggregate): Give support to default initialized
19304         components.
19305         (Get_Value): In case of default initialized components, duplicate
19306         the corresponding default expression (from the record type
19307         declaration). In case of default initialization in the *others*
19308         choice, do not check that all components have the same type.
19309         (Resolve_Extension_Aggregate): Give support to limited extension
19310         aggregates.
19311
19312         * sem_ch3.adb:
19313         (Check_Initialization): Relax the strictness of the front-end in case
19314         of aggregate and extension aggregates. This test is now done in
19315         Get_Value in a per-component manner.
19316
19317         * sem_ch4.adb (Analyze_Allocator): Don't post an error if the
19318         expression corresponds to a limited aggregate. This test is now done
19319         in Get_Value.
19320
19321         * sinfo.ads, sinfo.adb (N_Component_Association): Addition of
19322         Box_Present flag.
19323
19324         * sprint.adb (Sprint_Node_Actual): Modified to print an mbox if
19325         present in an N_Component_Association node
19326
19327 2003-11-13  Thomas Quinot  <quinot@act-europe.fr>
19328
19329         * sem_ch9.adb (Analyze_Accept_Statement): A procedure hides a
19330         type-conformant entry only if they are homographs.
19331
19332 2003-11-13  GNAT Script  <nobody@gnat.com>
19333
19334         * Make-lang.in: Makefile automatically updated
19335
19336 2003-11-12  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
19337
19338         * adadecode.c: Use <> form of include for ctype.h.
19339         * sysdep.c [IN_RTS]: Use <> form of include for time.h.
19340
19341 2003-11-12  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
19342
19343         * 5gsystem.ads (Functions_Return_By_DSP): Set to False.
19344         Works around PR middle-end/6552.
19345
19346 2003-11-10  Ed Falis  <falis@gnat.com>
19347
19348         * 5ytiitho.adb: (procStartHookAdd): Definition and call deleted
19349
19350         * 5zinit.adb: (Install_Handler): Moved back to spec
19351         (Install_Signal_Handlers): Deleted
19352
19353         * 5zthrini.adb: Added context clause for System.Storage_Elements
19354         (Register): Only handles creation of taskVar; initialization moved to
19355         Thread_Body_Enter.
19356         (Reset_TSD): Deleted; replaced by Thread_Body_Enter
19357         Added declaration of environment task secondary stack and
19358         initialization.
19359
19360         * s-thread.adb: Implement bodies for thread body processing
19361
19362         * s-thread.ads:
19363         Added comment identifying supported targets for pragma Thread_Body.
19364
19365 2003-11-10  Pascal Obry  <obry@gnat.com>
19366
19367         * adaint.c (_gnat_stat) [WIN32]: Check if name is not bigger than
19368         GNAT_MAX_PATH_LEN.
19369
19370         * s-fileio.adb:
19371         (Open): Properly check for string length before copying into the buffer.
19372         Raises Name_Error if buffer is too small. Note that this was a potential
19373         buffer overflow.
19374
19375 2003-11-10  Romain Berrendonner  <berrendo@act-europe.fr>
19376
19377         * bindgen.adb, comperr.adb: Code clean ups.
19378         * gnatvsn.ads, gnatvsn.adb (Get_Gnat_Version_Type): New function.
19379
19380 2003-11-10  Sergey Rybin  <rybin@act-europe.fr>
19381
19382         * gnat1drv.adb: Add call to Sem_Elim.Initialize.
19383
19384 2003-11-10  Vincent Celier  <celier@gnat.com>
19385
19386         * gprcmd.adb:
19387         (Gprcmd): Add new command "prefix" to get the prefix of the GNAT
19388         installation.
19389
19390         * make.adb (Scan_Make_Arg): Transmit -nostdlib to the compiler
19391
19392         * prj.adb: (Project_Empty): Add new boolean component Virtual
19393
19394         * prj.ads: (Virtual_Prefix): New constant string
19395         (Project_Data): New boolean component Virtual
19396
19397         * prj-nmsc.adb (Language_Independent_Check): Adjust error message when
19398         a library project is extended by a virtual extending project.
19399
19400         * prj-part.adb:
19401         Modifications throughout to implement extending-all project, including:
19402         (Virtual_Hash, Processed_Hash): New hash tables
19403         (Create_Virtual_Extending_Project): New procedure
19404         (Look_For_Virtual_Projects_For): New procedure
19405
19406         * prj-proc.adb:
19407         (Process): After checking the projects, if main project is an
19408         extending-all project, set the object directory of all virtual extending
19409         project to the object directory of the main project.
19410         Adjust error message when a virtual extending project has the same
19411         object directory as an project being extended.
19412         (Recursive_Process): If name starts with the virtual prefix, set Virtual
19413         to True in the project data.
19414
19415         * prj-tree.adb:
19416         (Default_Project_Node): Add new boolean component Extending_All
19417         (Is_Extending_All): New function
19418         (Set_Is_Extending_All): New procedure
19419
19420         * prj-tree.ads: (Is_Extending_All): New function
19421         (Set_Is_Extending_All): New procedure
19422         (Project_Node_Record): New boolean component Extending_All
19423
19424         * switch-c.adb: (Scan_Front_End_Switches): Process -nostdlib
19425
19426         * vms_data.ads:
19427         Add qualifier /NOSTD_LIBRARIES (-nostdlib) for the compiler
19428
19429         * bld.adb (Recursive_Process): If MAKE_ROOT is not defined, call
19430         "gprcmd prefix" to define it.
19431
19432 2003-11-10  Thomas Quinot  <quinot@act-europe.fr>
19433
19434         * einfo.ads: Fix a typo and remove an extraneous word in comments.
19435
19436         * lib-load.adb:
19437         (Create_Dummy_Package_Unit): Set the scope of the entity for the
19438         created dummy package to Standard_Standard, not to itself, to
19439         defend other parts of the front-end against encoutering a cycle in
19440         the scope chain.
19441
19442         * sem_ch10.adb:
19443         (Analyze_With_Clause): When setting the entities for the successive
19444         N_Expanded_Names that constitute the name of a child unit, do not
19445         attempt to go further than Standard_Standard in the chain of scopes.
19446         This case arises from the placeholder units created by
19447         Create_Dummy_Package_Unit in the case of a with_clause for a
19448         nonexistent child unit.
19449
19450 2003-11-10  Ed Schonberg  <schonberg@gnat.com>
19451
19452         * exp_ch6.adb:
19453         (Expand_Thread_Body): Place subprogram on scope stack, so that new
19454         declarations are given the proper scope.
19455
19456         * sem_ch13.adb:
19457         (Check_Expr_Constants): Reject an expression that contains a constant
19458         created during expansion, and that appears after the object to which
19459         the address clause applies.
19460
19461         * sem_ch5.adb (Check_Controlled_Array_Attribute): Subsidiary of
19462         Analyze_Iteration_Scheme, to rewrite a loop parameter specification
19463         that uses 'Range of a function call with controlled components, so
19464         that the function result can be finalized before starting the loop.
19465
19466         * sem_ch8.adb:
19467         (Find_Selected_Component): Improve error message when prefix is
19468         an implicit dereference of an incomplete type.
19469
19470 2003-11-10  Robert Dewar  <dewar@gnat.com>
19471
19472         * opt.ads: New Print_Standard flag for -gnatS switch
19473
19474         * sem_ch13.adb: Remove some additional checks for unaligned arrays
19475
19476         * cstand.adb (Create_Standard): Print out package standard if -gnatS
19477         switch set
19478
19479         * debug.adb: Update doc for -gnatds to discuss relationship with new
19480         -gnatS flag
19481
19482         * sinfo.adb: Add new field Entity_Or_Associated_Node
19483
19484         * sinfo.ads: Add new field Entity_Or_Associated_Node
19485         Update documentation for Associated_Node and Entity fields to clarify
19486         relationship and usage.
19487
19488         * sprint.adb:
19489         (Write_Id): Properly process Associated_Node field in generic template
19490
19491         * switch-c.adb:
19492         Recognize new -gnatS switch for printing package Standard
19493         This replaces gnatpsta
19494
19495         * usage.adb:
19496         Add line for  new -gnatS switch for printing package Standard
19497         This replaces gnatpsta
19498
19499 2003-11-10  Andreas Jaeger  <aj@suse.de>
19500
19501         * 7sosprim.adb: tv_usec of struct_timeval and time_t are long
19502         integer.
19503
19504 2003-11-10  Arnaud Charlet  <charlet@act-europe.fr>
19505
19506         * misc.c, lang.opt: Add handling of -nostdlib, now recognized/needed
19507         by gnat1.
19508
19509 2003-11-10  Arnaud Charlet  <charlet@act-europe.fr>
19510
19511         * Makefile.in, Make-lang.in: Remove build of gnat_wrapper and gnatpsta,
19512         no longer needed.
19513
19514         * gnatpsta.adb, gnat_wrapper.adb: Removed, no longer needed.
19515
19516         * sysdep.c: Add handling of cygwin.
19517
19518 2003-11-10  GNAT Script  <nobody@gnat.com>
19519
19520         * Make-lang.in: Makefile automatically updated
19521
19522 2003-11-10  Arnaud Charlet  <charlet@act-europe.fr>
19523
19524         PR 12950
19525         * osint.ads, osint.adb (Relocate_Path, Executable_Suffix): New
19526         functions. Used to handle dynamic prefix relocation, via set_std_prefix.
19527         Replace GNAT_ROOT by GCC_ROOT.
19528
19529         * Make-lang.in: Use new function Relocate_Path to generate sdefault.adb
19530
19531 2003-11-06  Zack Weinberg  <zack@codesourcery.com>
19532
19533         * misc.c (fp_prec_to_size, fp_size_to_prec): Use GET_MODE_PRECISION
19534         and update for changed meaning of GET_MODE_BITSIZE.
19535
19536 2003-11-04  Doug Rupp  <rupp@gnat.com>
19537
19538         * sysdep.c: Problem discovered during IA64 VMS port.
19539         [VMS] #include <unixio.h> to get proper prototypes.
19540
19541         * adaint.c:
19542         Issues discovered/problems fixed during IA64 VMS port.
19543         [VMS] #define _POSIX_EXIT for proper semantics.
19544         [VMS] #include <unixio.h> for proper prototypes.
19545         [VMS] (fork): #define IA64 version.
19546         (__gnat_os_exit): Remove unnecessary VMS specific code.
19547
19548 2003-11-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19549
19550         Part of PR ada/12806
19551
19552         * ada-tree.h (TYPE_DIGITS_VALUE, SET_TYPE_DIGITS_VALUE): Save count as
19553         tree, not integer.
19554
19555         * decl.c:
19556         (gnat_to_gnu_entity, case E_Floating_Point_Type): Save count as tree,
19557         not integer.
19558
19559         * targtyps.c, decl.c, misc.c,
19560         gigi.h (fp_prec_to_size, fp_size_to_prec): Temporary
19561         routines to work around change in FP sizing semantics in GCC.
19562
19563         * utils.c:
19564         (build_vms_descriptor): TYPE_DIGITS_VALUE is tree, not integer.
19565
19566         * gigi.h: (enumerate_modes): New function.
19567
19568         * Make-lang.in: (ada/misc.o): Add real.h.
19569
19570         * misc.c: (enumerate_modes): New function.
19571
19572 2003-11-04  Robert Dewar  <dewar@gnat.com>
19573
19574         * 3vtrasym.adb: Minor reformatting
19575         Use terminology encoded/decoded name, rather than C++ specific notion
19576         of mangling (this is the terminology used throughout GNAT).
19577
19578         * einfo.h: Regenerated
19579
19580         * einfo.ads, einfo.adb: Add new flag Is_Thread_Body
19581
19582         * exp_ch6.adb:
19583         (Expand_N_Subprogram_Body): Handle expansion of thread body procedure
19584
19585         * par-prag.adb: Add dummy entry for Thread_Body pragma
19586
19587         * rtsfind.ads:
19588         Add entries for System.Threads entities for thread body processing
19589
19590         * sem_attr.adb:
19591         (Analyze_Pragma, Access attributes): Check these are not applied to a
19592         thread body, since this is not permitted
19593
19594         * sem_prag.adb: Add processing for Thread_Body pragma.
19595         Minor comment fix.
19596
19597         * sem_res.adb:
19598         (Resolve_Call): Check for incorrect attempt to call a thread body
19599          procedure with a direct call.
19600
19601         * snames.ads, snames.adb: Add entry for Thread_Body pragma
19602         Add names associated with thread body expansion
19603
19604         * snames.h: Add entry for Thread_Body pragma
19605
19606         * s-thread.adb: Add entries for thread body processing
19607         These are dummy bodies so far
19608
19609         * s-thread.ads: Add documentation on thread body handling.
19610         Add entries for thread body processing.
19611
19612 2003-11-04  Javier Miranda  <miranda@gnat.com>
19613
19614         * sem_ch10.adb:
19615         (Build_Limited_Views): Return after posting an error in case of limited
19616         with_clause on subprograms, generics, instances or generic renamings
19617         (Install_Limited_Withed_Unit): Do nothing in case of limited with_clause
19618         on subprograms, generics, instances or generic renamings
19619
19620 2003-11-04  Arnaud Charlet  <charlet@act-europe.fr>
19621
19622         * raise.c (setup_to_install): Correct mistake in last revision; two
19623         arguments out of order.
19624
19625         * trans.c, cuintp.c, argv.c, aux-io.c, cal.c, errno.c, exit.c,
19626         gnatbl.c, init.c, stringt.h, utils.c, utils2.c: Update copyright
19627         notice, missed in previous change.
19628         Remove trailing blanks and other style errors introduced in previous
19629         change.
19630
19631 2003-11-04  Olivier Hainque  <hainque@act-europe.fr>
19632
19633         * decl.c (gnat_to_gnu_field): Adjust the conditions under which we get
19634         rid of the wrapper for a LJM type, ensuring we don't do that if the
19635         field is addressable.  This avoids potential low level type view
19636         mismatches later on, for instance in a by-reference argument passing
19637         process.
19638
19639 2003-11-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19640
19641         * decl.c (gnat_to_gnu_field): No longer check for BLKmode being
19642         aligned at byte boundary.
19643
19644 2003-11-04  Joel Brobecker  <brobecker@gnat.com>
19645
19646         * decl.c (components_to_record): Do not delete the empty variants from
19647         the end of the union type.
19648
19649 2003-11-04  Ed Schonberg  <schonberg@gnat.com>
19650
19651         * exp_ch4.adb (Expand_N_Op_Eq): Use base type when locating primitive
19652         operation for a derived type, an explicit declaration may use a local
19653         subtype of Boolean.
19654
19655 2003-11-04  Vincent Celier  <celier@gnat.com>
19656
19657         * make.adb (Gnatmake): Allow main sources on the command line with a
19658         library project when it is only for compilation (no binding or
19659         linking).
19660
19661 2003-11-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
19662
19663         * Makefile.in: Remove many duplicate variables.
19664
19665 2003-11-03  Kelley Cook  <kcook@gcc.gnu.org>
19666
19667         * Make-lang.in (dvi): Move targets to $(docobjdir).
19668         (gnat_ug_vms.dvi): Simplify rule and adjust target.
19669         (gnat_ug_wnt.dvi): Likewise.
19670         (gnat_ug_unx.dvi): Likewise.
19671         (gnat_ug_vxw.dvi): Likewise.
19672         (gnat_rm.dvi): Likewise.
19673         (gnat-style.dvi): Likewise.
19674
19675 2003-10-31  Kelley Cook  <kcook@gcc.gnu.org>
19676
19677         * gigi.h: Missed commit from update for C90.
19678
19679 2003-10-31  Kelley Cook  <kcook@gcc.gnu.org>
19680
19681         * Makefile.in (ada/b_gnat1.o): Compile with -Wno-error.
19682
19683 2003-10-31  Andreas Schwab  <schwab@suse.de>
19684
19685         * raise.c (get_action_description_for): Fix typo in last change.
19686
19687 2003-10-31  Nathanael Nerode  <neroden@gcc.gnu.org>
19688
19689         PR ada/12761
19690         * ada/Make-lang.in: Move default definitions of X_ADA_CFLAGS,
19691         T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS from here to master Makefile.in.
19692
19693 2003-10-30  Kelley Cook  <kcook@gcc.gnu.org>
19694
19695         * adadecode.c, adaint.c, argv.c, aux-io.c, cal.c, cio.c, cstreams.c,
19696         ctrl_c.c, cuintp.c, decl.c, errno.c, exit.c, expect.c, final.c,
19697         gigi.h, gmem.c, gnatbl.c, init.c, misc.c, mkdir.c, raise.c, socket.c,
19698         sysdep.c, sysdep.c, targtyps.c, tb-alvms.c, tb-alvxw.c, tracebak.c,
19699         trans.c, utils.c, utils2.c: Convert function prototypes to C90.
19700
19701 2003-10-30  Vasiliy Fofanov  <fofanov@act-europe.fr>
19702
19703         * 3vtrasym.adb:
19704         Demangle Ada symbols returned by TBK$SYMBOLIZE. Correctly align line
19705         numbers when symbol name is too long.
19706
19707 2003-10-30  Ed Falis  <falis@gnat.com>
19708
19709         * g-signal.ads, g-signal.adb: New files
19710
19711         * impunit.adb: (Non_Imp_File_Names): Added "g-signal"
19712
19713         * Makefile.rtl: Introduce GNAT.Signals
19714
19715 2003-10-30  Robert Dewar  <dewar@gnat.com>
19716
19717         * freeze.adb: Minor reformatting
19718
19719         * lib-writ.adb (Write_ALI): Never write ali file if -gnats is specified
19720
19721         * par.adb, par-ch12.adb, par-ch13.adb, par-ch2.adb, par-ch3.adb,
19722         par-ch5.adb, par-ch6.adb, par-ch9.adb, par-util.adb:
19723         New handling of Id_Check parameter to improve recognition of keywords
19724         used as identifiers.
19725         Update copyright notice to include 2003
19726
19727 2003-10-29  Robert Dewar  <dewar@gnat.com>
19728
19729         * 3vtrasym.adb, 5vtraent.ads, sprint.adb,
19730         sem_ch10.adb: Minor reformatting
19731
19732         * exp_ch5.adb (Expand_Assign_Array): Test for bit unaligned operands
19733         (Expand_Assign_Record): Test right hand side for bit unaligned as well
19734
19735 2003-10-29  Vasiliy Fofanov  <fofanov@act-europe.fr>
19736
19737         * 3vtrasym.adb, 5vtraent.adb, 5vtraent.ads, tb-alvms.c:
19738         Support for TBK$SYMBOLIZE-based symbolic traceback.
19739
19740 2003-10-29  Jose Ruiz  <ruiz@act-europe.fr>
19741
19742         * exp_disp.adb:
19743         Revert previous change, that did not work well when pragma No_Run_Time
19744         was used in conjunction with a run-time other than ZFP.
19745
19746 2003-10-29  Vincent Celier  <celier@gnat.com>
19747
19748         * make.adb:
19749         (Gnatmake): When there are no Ada mains in attribute Main, disable the
19750          bind and link steps only is switch -z is not used.
19751
19752 2003-10-29  Arnaud Charlet  <charlet@act-europe.fr>
19753
19754         * Makefile.generic: Remove duplicated setting of CC.
19755
19756         * Makefile.prolog: Set CC to gcc by default, to override make's
19757         default (cc).
19758
19759         * einfo.h: Regenerated.
19760
19761 2003-10-29  Ed Schonberg  <schonberg@gnat.com>
19762
19763         * sem_ch10.adb (Analyze_Subunit): Restore state of suppress flags for
19764         current body, after compiling subunit.
19765
19766         * itypes.adb (Create_Itype): In ASIS_Mode, do not freeze the itype
19767         when in deleted code, because gigi needs properly ordered freeze
19768         actions to annotate types.
19769
19770         * freeze.adb (Is_Fully_Defined): Predicate must be recursive, to
19771         prevent the premature freezing of record type that contains
19772         subcomponents with a private type that does not yet have a completion.
19773
19774 2003-10-29  Javier Miranda  <miranda@gnat.com>
19775
19776         * sem_ch12.adb:
19777         (Analyze_Package_Instantiation): Check that instances can not be used in
19778         limited with_clauses.
19779
19780         * sem_ch8.adb:
19781         (Analyze_Package_Renaming): Check that limited withed packages cannot
19782         be renamed. Improve text on error messages related to limited
19783         with_clauses.
19784
19785         * einfo.adb, einfo.ads: Remove Non_Limited_Views attribute.
19786
19787         * sprint.adb: (Sprint_Node_Actual): Print limited with_clauses.
19788         Update copyright notice.
19789
19790         * sem_ch10.adb: (Build_Limited_Views): Complete its documentation.
19791         (Install_Limited_Context_Clauses): New subprogram that isolates all the
19792         checks required for limited context_clauses and installs the limited
19793         view.
19794         (Install_Limited_Withed_Unit): Complete its documentation.
19795         (Analyze_Context): Check that limited with_clauses are only allowed in
19796         package specs.
19797         (Install_Context): Call Install_Limited_Context_Clauses after the
19798         parents have been installed.
19799         (Install_Limited_Withed_Unit): Add documentation. Mark the installed
19800         package as 'From_With_Type'; this mark indicates that the limited view
19801         is installed. Used to check bad usages of limited with_clauses.
19802         (Build_Limited_Views): Do not add shadow entities to the scope's list
19803         of entities. Do not add real entities to the Non_Limited_Views chain.
19804         Improve error notification.
19805         (Remove_Context_Clauses): Remove context clauses in two phases:
19806         limited views first and regular views later (to maintain the
19807         stack model).
19808         (Remove_Limited_With_Clause): If the package is analyzed then reinstall
19809         its visible entities.
19810
19811 2003-10-29  Thomas Quinot  <quinot@act-europe.fr>
19812
19813         * sem_type.adb (Specific_Type): Type Universal_Fixed is compatible
19814         with any type that Is_Fixed_Point_Type.
19815
19816         * sinfo.ads: Fix documentation for Associated_Node attribute.
19817
19818 2003-10-29  Sergey Rybin  <rybin@act-europe.fr>
19819
19820         * switch-c.adb (Scan_Front_End_Switches): ASIS_Mode is set now when
19821         both '-gnatc' and '-gnatt' are specified.
19822
19823         * atree.adb (Initialize): Add initialization for Node_Count (set to
19824         zero).
19825
19826 2003-10-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19827
19828         * decl.c (gnat_to_gnu_entity, case E_Subprogram): If no return value,
19829         do not consider as Pure.
19830
19831         Part of implementation of function-at-a-time:
19832
19833         * trans.c (gnat_to_gnu_code): If IS_STMT, call expand_expr_stmt.
19834         (tree_transform): Add new argument to build_component_ref.
19835         (tree_transform, case N_Assignment_Statement): Make and return an
19836         EXPR_STMT.
19837         (tree_transform): If result IS_STMT, set flags and return it.
19838         (gnat_expand_stmt, set_lineno_from_sloc): New functions.
19839
19840         * utils2.c (build_simple_component_ref, build_component_ref): Add new
19841         arg, NO_FOLD_P.
19842         (build_binary_op, case EQ_EXPR): Pass additional arg to it.
19843         (build_allocator): Likewise.
19844
19845         * utils.c (convert_to_fat_pointer, convert_to_thin_pointer, convert):
19846         Add new arg to build_component_ref.
19847         (maybe_unconstrained_array, unchecked_convert): Likewise.
19848
19849         * ada-tree.def (EXPR_STMT): New code.
19850
19851         * ada-tree.h (IS_STMT, TREE_SLOC, EXPR_STMT_EXPR): New macros.
19852
19853         * decl.c (gnat_to_gnu_entity, case object): Add extra arg to
19854         build_component_ref calls.
19855
19856         * misc.c (gnat_expand_expr): If IS_STMT, call gnat_expand_stmt.
19857
19858         * gigi.h (gnat_expand_stmt, set_lineno_from_sloc): New functions.
19859         (build_component_ref): Add new argument, NO_FOLD_P.
19860
19861 2003-10-27  Arnaud Charlet  <charlet@act-europe.fr>
19862
19863         * Makefile.generic: Add missing substitution on object_deps handling.
19864
19865         PR ada/5909:
19866         * Make-lang.in (check-ada): Enable ACATS test suite.
19867
19868 2003-10-27  Robert Dewar  <dewar@gnat.com>
19869
19870         * exp_ch3.adb:
19871         (Freeze_Array_Type): We do not need an initialization routine for types
19872         derived from String or Wide_String. They should be treated the same
19873         as String and Wide_String themselves. This caused problems with the
19874         use of Initialize_Scalars.
19875
19876         * exp_ch5.adb:
19877         (Expand_Assign_Record): Do component-wise assignment of non-byte aligned
19878         composites. This allows use of component clauses that are not byte
19879         aligned.
19880
19881         * sem_prag.adb:
19882         (Analyze_Pragma, case Pack): Generate warning and ignore pack if there
19883         is an attempt to pack an array of atomic objects.
19884
19885         * make.adb, prj-env.adb, prj-env.ads: Minor reformatting
19886
19887 2003-10-27  Pascal Obry  <obry@gnat.com>
19888
19889         * g-dirope.adb:
19890         (Basename): Check for drive letters in a pathname only on DOS based OS.
19891
19892 2003-10-27  Vincent Celier  <celier@gnat.com>
19893
19894         * make.adb:
19895         (Gnatmake): When unable to change dir to the object dir, display the
19896         content of the parent dir of the obj dir, to try to understand why this
19897         happens.
19898
19899 2003-10-27  GNAT Script  <nobody@gnat.com>
19900
19901         * Make-lang.in: Makefile automatically updated
19902
19903 2003-10-27  Ed Schonberg  <schonberg@gnat.com>
19904
19905         * sem_ch12.adb:
19906         (Inline_Instance_Body): Indicate that the save/restore of use_clauses
19907         should not be done in Save/Restore_Scope_Stack, because it is performed
19908         locally.
19909
19910         * sem_ch8.adb:
19911         (Save_Scope_Stack, Restore_Scope_Stack): Add parameter to indicate
19912         whether use clauses should be removed/restored.
19913
19914         * sem_ch8.ads:
19915         (Save_Scope_Stack, Restore_Scope_Stack): Add parameter to indicate
19916         whether use clauses should be removed/restored.
19917
19918 2003-10-26  Andreas Jaeger  <aj@suse.de>
19919
19920         * Makefile.in: Remove duplicated lines.
19921
19922 2003-10-24  Arnaud Charlet  <charlet@act-europe.fr>
19923
19924         * gnatvsn.ads (Gnat_Static_Version_String): New constant, used to
19925         minimize the differences with ACT tree.
19926
19927         * gnatkr.adb, gnatlink.adb, gnatls.adb, gnatmake.adb,
19928         gnatprep.adb, gnatpsta.adb, gnatvsn.ads: Take advantage of
19929         Gnatvsn.Gnat_Static_Version_String to reduce differences between
19930         ACT and FSF trees.
19931
19932 2003-10-24  Pascal Obry  <obry@gnat.com>
19933
19934         * adadecode.c (ostrcpy): New function.
19935         (__gnat_decode): Use ostrcpy of strcpy.
19936         (has_prefix): Set first parameter a const.
19937         (has_suffix): Set first parameter a const.
19938         Update copyright notice. Fix source name in header.
19939         Removes a trailing space.
19940         PR ada/12014.
19941
19942 2003-10-24  Jose Ruiz  <ruiz@act-europe.fr>
19943
19944         * exp_disp.adb:
19945         Remove the test against being in No_Run_Time_Mode before generating a
19946         call to Register_Tag. It is redundant with the test against the
19947         availability of the function Register_Tag.
19948
19949 2003-10-24  Vincent Celier  <celier@gnat.com>
19950
19951         * g-catiio.adb: (Month_Name): Correct spelling of February
19952
19953         * make.adb: (Mains): New package
19954         (Initialize): Call Mains.Delete
19955         (Gnatmake): Check that each main on the command line is a source of a
19956         project file and, if there are several mains, each of them is a source
19957         of the same project file.
19958         (Gnatmake): When a foreign language is specified in attribute Languages,
19959         no main is specified on the command line and attribute Mains is not
19960         empty, only build the Ada main. If there is no Ada main, just compile
19961         the Ada sources and their closure.
19962         (Gnatmake): If a main is specified on the command line with directory
19963         information, check that the source exists and, if it does, that the path
19964         is the actual path of a source of a project.
19965
19966         * prj-env.adb:
19967         (File_Name_Of_Library_Unit_Body): New Boolean parameter Full_Path. When
19968         Full_Path is True, return the full path instead of the simple file name.
19969         (Project_Of): New function
19970
19971         * prj-env.ads:
19972         (File_Name_Of_Library_Unit_Body): New Boolean parameter Full_Path,
19973         defaulted to False.
19974         (Project_Of): New function
19975
19976 2003-10-24  Arnaud Charlet  <charlet@act-europe.fr>
19977
19978         * Makefile.generic:
19979         Ensure objects of main project are always checked and rebuilt if needed.
19980         Set CC to gcc by default.
19981         Prepare new handling of link by creating a global archive (not activated
19982         yet).
19983
19984         * adadecode.h, atree.h, elists.h, nlists.h, raise.h,
19985         stringt.h: Update copyright notice. Remove trailing blanks.
19986         Fix source name in header.
19987
19988 2003-10-24  Robert Dewar  <dewar@gnat.com>
19989
19990         * sem_ch12.adb: Minor reformatting
19991
19992         * sem_ch3.adb:
19993         Minor reformatting (including new function return style throughout)
19994
19995         * sem_ch3.ads:
19996         Minor reformatting (including new function return style throughout)
19997
19998 2003-10-24  Arnaud Charlet  <charlet@act-europe.fr>
19999
20000         * adadecode.h, atree.h, elists.h, nlists.h, raise.h,
20001         stringt.h: Update copyright notice. Remove trailing blanks.
20002         Fix source name in header.
20003
20004 2003-10-24  GNAT Script  <nobody@gnat.com>
20005
20006         * Make-lang.in: Makefile automatically updated
20007
20008 2003-10-23  Nathanael Nerode  <neroden@gcc.gnu.org>
20009
20010         * adadecode.h, atree.h, elists.h, namet.h, nlists.h, raise.h,
20011         stringt.h: Convert to ISO C90 declarations and definitions.
20012
20013 2003-10-23  Thomas Quinot  <quinot@act-europe.fr>
20014
20015         PR ada/11978:
20016         * exp_ch13.adb (Expand_N_Freeze_Entity): Do not consider inherited
20017         External_Tag attribute definition clauses.
20018
20019 2003-10-23  Ed Schonberg  <schonberg@gnat.com>
20020
20021         PR ada/7613:
20022         * exp_dbug.adb (Debug_Renaming_Declaration): For the renaming of a
20023         child unit, generate a fully qualified name to avoid spurious errors
20024         when the context contains renamings of different child units with
20025         the same simple name.
20026
20027         * exp_dbug.ads: Add documentation on name qualification for renamings
20028         of child units.
20029
20030 2003-10-23  Robert Dewar  <dewar@gnat.com>
20031
20032         * g-regpat.ads, g-regpat.adb: Minor reformatting
20033
20034 2003-10-23  Jose Ruiz  <ruiz@act-europe.fr>
20035
20036         * Makefile.in: Use the file 1atags.ads with the ZFP and cert run-times.
20037
20038 2003-10-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20039
20040         * trans.c: (tree_transform, case N_Real_Literal): Add extra arg to
20041         Machine call.
20042
20043         * urealp.h: (Machine): Update to proper definition.
20044
20045 2003-10-23  Arnaud Charlet  <charlet@act-europe.fr>
20046
20047         * init.c, adaint.c: Minor reformatting.
20048
20049 2003-10-23  Danny Smith  <dannysmith@users.sourceforge.net>
20050
20051         * adaint.c (w32_epoch_offset): Define static const at file level.
20052         (win32_filetime): Replace offset with w32_epoch_offset. Use NULL
20053         rather than t_create, t_access in call to GetFileTime. Use union
20054         to convert between FILETIME and  unsigned long long.
20055         (__gnat_file_time_name): Test for invalid file handle.
20056         (__gnat_set_filetime_name): Support win32 targets using
20057         w32api SetFileTime.
20058
20059 2003-10-22  Danny Smith  <dannysmith@users.sourceforge.net>
20060
20061         * sysdep.c: Include conio.h if __MINGW32__ and !OLD_MINGW.
20062
20063         * ctrl_c.c (__gnat_int_handler): Remove declaration.
20064
20065         * decl.c (creat_concat_name):  Const-ify prefix.
20066
20067         * adaint.c: Include ctype.h if __MINGW32__.
20068         (__gnat_readlink): Mark arguments as possibly unused.
20069         (__gnat_symlink): Likewise.
20070         (__gnat_is_symbolic_link): Likewise.
20071         (__gnat_portable_spawn): Likewise.  Cast last arg of spawnvp to match
20072         declaration
20073         (__gnat_file_time_name): Don't declare struct stat statbuf when
20074         not needed.
20075         (__gnat_is_absolute_path): Add parenthesis around condition of
20076         'if' statement to avoid warning.
20077         (__gnat_plist_init): Specify void as parameter.
20078         (plist_enter): Likewise.
20079         (plist_leave): Likewise.
20080         (remove_handle): Make static. Initialize prev.
20081
20082 2003-10-22  Arnaud Charlet  <charlet@act-europe.fr>
20083
20084         * Makefile.in: Disable build of gnatpsta. PR ada/10110.
20085         * cstreams.c (__gnat_full_name): Minor improvements and clean up
20086         of previous change.
20087
20088 2003-10-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
20089
20090         * tracebak.c (MAX): Avoid redefinition warning.
20091
20092         * init.c [sgi] (__gnat_error_handler): Remove i, unused.
20093         Change msg to const char *.
20094         (__gnat_install_handler): Remove ss, unused.
20095         [sun && __SVR4 && !__vxworks] (__gnat_error_handler): Change msg
20096         to const char *.
20097         * cstreams.c (__gnat_full_name): Declare p only when used.
20098         (__gnat_full_name) [sgi] Return buffer.
20099
20100 2003-10-22  Arnaud Charlet  <charlet@act-europe.fr>
20101
20102         * mingw32.h: New file.
20103         * gnat_wrapper.adb: New file.
20104
20105 2003-10-22  Jerome Roussel  <roussel@act-europe.fr>
20106
20107         * g-regpat.ads, g-regpat.adb (Match): new function, to know if a
20108         string match a pre compiled regular expression (the corresponding
20109         version of the function working on a raw regular expression)
20110         Fix typos in various comments
20111         Update copyright notice in spec
20112
20113 2003-10-21  Gary Dismukes  <dismukes@gnat.com>
20114
20115         * exp_ch3.adb:
20116         (Component_Needs_Simple_Initialization): Return False when the type is a
20117         packed bit array. Revise spec comments to document this case.
20118
20119         * exp_prag.adb:
20120         (Expand_Pragma_Import): Set any expression on the imported object to
20121         empty to avoid initializing imported objects (in particular this
20122         covers the case of zero-initialization of bit arrays).
20123         Update copyright notice.
20124
20125 2003-10-21  Ed Schonberg  <schonberg@gnat.com>
20126
20127         * sem_ch12.adb:
20128         (Load_Parent_Of_Generic): If parent is compilation unit, stop search,
20129         a subunit is missing.
20130         (Instantiate_Subprogram_Body): If body of function is missing, set type
20131         of return expression explicitly in dummy body, to prevent cascaded
20132         errors when a subunit is missing.
20133         Fixes PR 5677.
20134
20135         * sem_ch3.adb:
20136         (Access_Subprogram_Declaration): Verify that return type is valid.
20137         Fixes PR 8693.
20138
20139         * sem_elab.adb:
20140         (Check_Elab_Calls): Do not apply elaboration checks if the main unit is
20141         generic.
20142         Fixes PR 12318.
20143
20144         * sem_util.adb:
20145         (Corresponding_Discriminant): If the scope of the discriminant is a
20146         private type without discriminant, use its full view.
20147         Fixes PR 8247.
20148
20149 2003-10-21  Arnaud Charlet  <charlet@act-europe.fr>
20150
20151         * 3psoccon.ads, 3veacodu.adb, 3vexpect.adb, 3vsoccon.ads,
20152         3vsocthi.adb, 3vsocthi.ads, 3vtrasym.adb, 3zsoccon.ads,
20153         3zsocthi.adb, 3zsocthi.ads, 50system.ads, 51system.ads,
20154         55system.ads, 56osinte.adb, 56osinte.ads, 56taprop.adb,
20155         56taspri.ads, 56tpopsp.adb, 57system.ads, 58system.ads,
20156         59system.ads, 5aml-tgt.adb, 5bml-tgt.adb, 5csystem.ads,
20157         5dsystem.ads, 5fosinte.adb, 5gml-tgt.adb, 5hml-tgt.adb,
20158         5isystem.ads, 5lparame.adb, 5msystem.ads, 5psystem.ads,
20159         5sml-tgt.adb, 5sosprim.adb, 5stpopsp.adb, 5tsystem.ads,
20160         5usystem.ads, 5vml-tgt.adb, 5vsymbol.adb, 5vtraent.adb,
20161         5vtraent.ads, 5wml-tgt.adb, 5xparame.ads, 5xsystem.ads,
20162         5xvxwork.ads, 5yparame.ads, 5ytiitho.adb, 5zinit.adb,
20163         5zml-tgt.adb, 5zparame.ads, 5ztaspri.ads, 5ztfsetr.adb,
20164         5zthrini.adb, 5ztiitho.adb, 5ztpopsp.adb, 7stfsetr.adb,
20165         7straces.adb, 7strafor.adb, 7strafor.ads, 7stratas.adb,
20166         a-excach.adb, a-exexda.adb, a-exexpr.adb, a-exextr.adb,
20167         a-exstat.adb, a-strsup.adb, a-strsup.ads, a-stwisu.adb,
20168         a-stwisu.ads, bld.adb, bld.ads, bld-io.adb,
20169         bld-io.ads, clean.adb, clean.ads, ctrl_c.c,
20170         erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
20171         err_vars.ads, final.c, g-arrspl.adb, g-arrspl.ads,
20172         g-boubuf.adb, g-boubuf.ads, g-boumai.ads, g-bubsor.adb,
20173         g-bubsor.ads, g-comver.adb, g-comver.ads, g-ctrl_c.ads,
20174         g-dynhta.adb, g-dynhta.ads, g-eacodu.adb, g-excact.adb,
20175         g-excact.ads, g-heasor.adb, g-heasor.ads, g-memdum.adb,
20176         g-memdum.ads, gnatclean.adb, gnatsym.adb, g-pehage.adb,
20177         g-pehage.ads, g-perhas.ads, gpr2make.adb, gpr2make.ads,
20178         gprcmd.adb, gprep.adb, gprep.ads, g-semaph.adb,
20179         g-semaph.ads, g-string.adb, g-string.ads, g-strspl.ads,
20180         g-wistsp.ads, i-vthrea.adb, i-vthrea.ads, i-vxwoio.adb,
20181         i-vxwoio.ads, Makefile.generic, Makefile.prolog, Makefile.rtl,
20182         prep.adb, prep.ads, prepcomp.adb, prepcomp.ads,
20183         prj-err.adb, prj-err.ads, s-boarop.ads, s-carsi8.adb,
20184         s-carsi8.ads, s-carun8.adb, s-carun8.ads, s-casi16.adb,
20185         s-casi16.ads, s-casi32.adb, s-casi32.ads, s-casi64.adb,
20186         s-casi64.ads, s-casuti.adb, s-casuti.ads, s-caun16.adb,
20187         s-caun16.ads, s-caun32.adb, s-caun32.ads, s-caun64.adb,
20188         s-caun64.ads, scng.adb, scng.ads, s-exnint.adb,
20189         s-exnllf.adb, s-exnlli.adb, s-expint.adb, s-explli.adb,
20190         s-geveop.adb, s-geveop.ads, s-hibaen.ads, s-htable.adb,
20191         s-htable.ads, sinput-c.adb, sinput-c.ads, s-memcop.ads,
20192         socket.c, s-purexc.ads, s-scaval.adb, s-stopoo.adb,
20193         s-strcom.adb, s-strcom.ads, s-strxdr.adb, s-rident.ads,
20194         s-thread.adb, s-thread.ads, s-tpae65.adb, s-tpae65.ads,
20195         s-tporft.adb, s-traent.adb, s-traent.ads, styleg.adb,
20196         styleg.ads, styleg-c.adb, styleg-c.ads, s-veboop.adb,
20197         s-veboop.ads, s-vector.ads, symbols.adb, symbols.ads,
20198         tb-alvms.c, tb-alvxw.c, tempdir.adb, tempdir.ads,
20199         vms_conv.ads, vms_conv.adb, vms_data.ads,
20200         vxaddr2line.adb: Files added. Merge with ACT tree.
20201
20202         * 4dintnam.ads, 4mintnam.ads, 4uintnam.ads, 52system.ads,
20203         5dosinte.ads, 5etpopse.adb, 5mosinte.ads, 5qosinte.adb,
20204         5qosinte.ads, 5qstache.adb, 5qtaprop.adb, 5qtaspri.ads,
20205         5stpopse.adb, 5uintman.adb, 5uosinte.ads, adafinal.c,
20206         g-enblsp.adb, io-aux.c, scn-nlit.adb, scn-slit.adb,
20207         s-exnflt.ads, s-exngen.adb, s-exngen.ads, s-exnlfl.ads,
20208         s-exnlin.ads, s-exnsfl.ads, s-exnsin.ads, s-exnssi.ads,
20209         s-expflt.ads, s-expgen.adb, s-expgen.ads, s-explfl.ads,
20210         s-explin.ads, s-expllf.ads, s-expsfl.ads, s-expsin.ads,
20211         s-expssi.ads, style.adb: Files removed. Merge with ACT tree.
20212
20213         * 1ic.ads, 31soccon.ads, 31soliop.ads, 3asoccon.ads,
20214         3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3ssoccon.ads,
20215         3ssoliop.ads, 3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads,
20216         3wsoliop.ads, 41intnam.ads, 42intnam.ads, 4aintnam.ads,
20217         4cintnam.ads, 4gintnam.ads, 4hexcpol.adb, 4hintnam.ads,
20218         4lintnam.ads, 4nintnam.ads, 4ointnam.ads, 4onumaux.ads,
20219         4pintnam.ads, 4sintnam.ads, 4vcaldel.adb, 4vcalend.adb,
20220         4vintnam.ads, 4wexcpol.adb, 4wintnam.ads, 4zintnam.ads,
20221         51osinte.adb, 51osinte.ads, 52osinte.adb, 52osinte.ads,
20222         53osinte.ads, 54osinte.ads, 5aosinte.adb, 5aosinte.ads,
20223         5asystem.ads, 5ataprop.adb, 5atasinf.ads, 5ataspri.ads,
20224         5atpopsp.adb, 5avxwork.ads, 5bosinte.adb, 5bosinte.ads,
20225         5bsystem.ads, 5cosinte.ads, 5esystem.ads, 5fintman.adb,
20226         5fosinte.ads, 5fsystem.ads, 5ftaprop.adb, 5ftasinf.ads,
20227         5ginterr.adb, 5gintman.adb, 5gmastop.adb, 5gosinte.ads,
20228         5gproinf.ads, 5gsystem.ads, 5gtaprop.adb, 5gtasinf.ads,
20229         5gtpgetc.adb, 5hosinte.adb, 5hosinte.ads, 5hsystem.ads,
20230         5htaprop.adb, 5htaspri.ads, 5htraceb.adb, 5iosinte.adb,
20231         5itaprop.adb, 5itaspri.ads, 5ksystem.ads, 5kvxwork.ads,
20232         5lintman.adb, 5lml-tgt.adb, 5losinte.ads, 5lsystem.ads,
20233         5mvxwork.ads, 5ninmaop.adb, 5nintman.adb, 5nosinte.ads,
20234         5ntaprop.adb, 5ntaspri.ads, 5ointerr.adb, 5omastop.adb,
20235         5oosinte.adb, 5oosinte.ads, 5oosprim.adb, 5oparame.adb,
20236         5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5posinte.ads,
20237         5posprim.adb, 5pvxwork.ads, 5sintman.adb, 5sosinte.adb,
20238         5sosinte.ads, 5ssystem.ads, 5staprop.adb, 5stasinf.ads,
20239         5staspri.ads, 5svxwork.ads, 5tosinte.ads, 5vasthan.adb,
20240         5vinmaop.adb, 5vinterr.adb, 5vintman.adb, 5vintman.ads,
20241         5vmastop.adb, 5vosinte.adb, 5vosinte.ads, 5vosprim.adb,
20242         5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads, 5vtpopde.adb,
20243         5vtpopde.ads, 5wgloloc.adb, 5wintman.adb, 5wmemory.adb,
20244         5wosprim.adb, 5wsystem.ads, 5wtaprop.adb, 5wtaspri.ads,
20245         5ysystem.ads, 5zinterr.adb, 5zintman.adb, 5zosinte.adb,
20246         5zosinte.ads, 5zosprim.adb, 5zsystem.ads, 5ztaprop.adb,
20247         6vcpp.adb, 6vcstrea.adb, 6vinterf.ads, 7sinmaop.adb,
20248         7sintman.adb, 7sosinte.adb, 7sosprim.adb, 7staprop.adb,
20249         7staspri.ads, 7stpopsp.adb, 7straceb.adb, 9drpc.adb,
20250         a-caldel.adb, a-caldel.ads, a-charac.ads, a-colien.ads,
20251         a-comlin.adb, adaint.c, adaint.h, ada-tree.def,
20252         a-diocst.adb, a-diocst.ads, a-direio.adb, a-except.adb,
20253         a-except.ads, a-excpol.adb, a-exctra.adb, a-exctra.ads,
20254         a-filico.adb, a-interr.adb, a-intsig.adb, a-intsig.ads,
20255         ali.adb, ali.ads, ali-util.adb, ali-util.ads,
20256         a-ngcefu.adb, a-ngcoty.adb, a-ngelfu.adb, a-nudira.adb,
20257         a-nudira.ads, a-nuflra.adb, a-nuflra.ads, a-reatim.adb,
20258         a-reatim.ads, a-retide.ads, a-sequio.adb, a-siocst.adb,
20259         a-siocst.ads, a-ssicst.adb, a-ssicst.ads, a-strbou.adb,
20260         a-strbou.ads, a-strfix.adb, a-strmap.adb, a-strsea.ads,
20261         a-strunb.adb, a-strunb.ads, a-ststio.adb, a-stunau.adb,
20262         a-stunau.ads, a-stwibo.adb, a-stwibo.ads, a-stwifi.adb,
20263         a-stwima.adb, a-stwiun.adb, a-stwiun.ads, a-tags.adb,
20264         a-tags.ads, a-tasatt.adb, a-taside.adb, a-teioed.adb,
20265         a-textio.adb, a-textio.ads, a-tienau.adb, a-tifiio.adb,
20266         a-tiflau.adb, a-tiflio.adb, a-tigeau.adb, a-tigeau.ads,
20267         a-tiinau.adb, a-timoau.adb, a-tiocst.adb, a-tiocst.ads,
20268         atree.adb, atree.ads, a-witeio.adb, a-witeio.ads,
20269         a-wtcstr.adb, a-wtcstr.ads, a-wtdeio.adb, a-wtedit.adb,
20270         a-wtenau.adb, a-wtflau.adb, a-wtinau.adb, a-wtmoau.adb,
20271         bcheck.adb, binde.adb, bindgen.adb, bindusg.adb,
20272         checks.adb, checks.ads, cio.c, comperr.adb,
20273         comperr.ads, csets.adb, cstand.adb, cstreams.c,
20274         debug_a.adb, debug_a.ads, debug.adb, decl.c,
20275         einfo.adb, einfo.ads, errout.adb, errout.ads,
20276         eval_fat.adb, eval_fat.ads, exp_aggr.adb, expander.adb,
20277         expander.ads, exp_attr.adb, exp_ch11.adb, exp_ch13.adb,
20278         exp_ch2.adb, exp_ch3.adb, exp_ch3.ads, exp_ch4.adb,
20279         exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch7.ads,
20280         exp_ch8.adb, exp_ch9.adb, exp_code.adb, exp_dbug.adb,
20281         exp_dbug.ads, exp_disp.adb, exp_dist.adb, expect.c,
20282         exp_fixd.adb, exp_imgv.adb, exp_intr.adb, exp_pakd.adb,
20283         exp_prag.adb, exp_strm.adb, exp_strm.ads, exp_tss.adb,
20284         exp_tss.ads, exp_util.adb, exp_util.ads, exp_vfpt.adb,
20285         fe.h, fmap.adb, fmap.ads, fname.adb,
20286         fname.ads, fname-uf.adb, fname-uf.ads, freeze.adb,
20287         freeze.ads, frontend.adb, g-awk.adb, g-awk.ads,
20288         g-busora.adb, g-busora.ads, g-busorg.adb, g-busorg.ads,
20289         g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads,
20290         g-cgi.adb, g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads,
20291         g-cgideb.adb, g-cgideb.ads, g-comlin.adb, g-comlin.ads,
20292         g-crc32.adb, g-crc32.ads, g-debpoo.adb, g-debpoo.ads,
20293         g-debuti.adb, g-debuti.ads, g-diopit.adb, g-diopit.ads,
20294         g-dirope.adb, g-dirope.ads, g-dyntab.adb, g-dyntab.ads,
20295         g-except.ads, g-exctra.adb, g-exctra.ads, g-expect.adb,
20296         g-expect.ads, g-hesora.adb, g-hesora.ads, g-hesorg.adb,
20297         g-hesorg.ads, g-htable.adb, g-htable.ads, gigi.h,
20298         g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads,
20299         g-locfil.adb, g-locfil.ads, g-md5.adb, g-md5.ads,
20300         gmem.c, gnat1drv.adb, gnatbind.adb, gnatchop.adb,
20301         gnatcmd.adb, gnatfind.adb, gnatkr.adb, gnatlbr.adb,
20302         gnatlink.adb, gnatls.adb, gnatmake.adb, gnatmem.adb,
20303         gnatname.adb, gnatprep.adb, gnatprep.ads, gnatpsta.adb,
20304         gnatxref.adb, g-os_lib.adb, g-os_lib.ads, g-regexp.adb,
20305         g-regexp.ads, g-regist.adb, g-regist.ads, g-regpat.adb,
20306         g-regpat.ads, g-soccon.ads, g-socket.adb, g-socket.ads,
20307         g-socthi.adb, g-socthi.ads, g-soliop.ads, g-souinf.ads,
20308         g-speche.adb, g-speche.ads, g-spipat.adb, g-spipat.ads,
20309         g-spitbo.adb, g-spitbo.ads, g-sptabo.ads, g-sptain.ads,
20310         g-sptavs.ads, g-table.adb, g-table.ads, g-tasloc.adb,
20311         g-tasloc.ads, g-thread.adb, g-thread.ads, g-traceb.adb,
20312         g-traceb.ads, g-trasym.adb, g-trasym.ads, hostparm.ads,
20313         i-c.ads, i-cobol.adb, i-cpp.adb, i-cstrea.ads,
20314         i-cstrin.adb, i-cstrin.ads, impunit.adb, init.c,
20315         inline.adb, interfac.ads, i-pacdec.ads, itypes.adb,
20316         itypes.ads, i-vxwork.ads, lang.opt, lang-specs.h,
20317         layout.adb, lib.adb, lib.ads, lib-list.adb,
20318         lib-load.adb, lib-load.ads, lib-sort.adb, lib-util.adb,
20319         lib-writ.adb, lib-writ.ads, lib-xref.adb, lib-xref.ads,
20320         link.c, live.adb, make.adb, make.ads,
20321         Makefile.adalib, Makefile.in, Make-lang.in, makeusg.adb,
20322         mdll.adb, mdll-fil.adb, mdll-fil.ads, mdll-utl.adb,
20323         mdll-utl.ads, memroot.adb, memroot.ads, memtrack.adb,
20324         misc.c, mkdir.c, mlib.adb, mlib.ads,
20325         mlib-fil.adb, mlib-fil.ads, mlib-prj.adb, mlib-prj.ads,
20326         mlib-tgt.adb, mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads,
20327         namet.adb, namet.ads, namet.h, nlists.ads,
20328         nlists.h, nmake.adt, opt.adb, opt.ads,
20329         osint.adb, osint.ads, osint-b.adb, osint-c.adb,
20330         par.adb, par-ch10.adb, par-ch11.adb, par-ch2.adb,
20331         par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb,
20332         par-ch9.adb, par-endh.adb, par-labl.adb, par-load.adb,
20333         par-prag.adb, par-sync.adb, par-tchk.adb, par-util.adb,
20334         prj.adb, prj.ads, prj-attr.adb, prj-attr.ads,
20335         prj-com.adb, prj-com.ads, prj-dect.adb, prj-dect.ads,
20336         prj-env.adb, prj-env.ads, prj-ext.adb, prj-ext.ads,
20337         prj-makr.adb, prj-makr.ads, prj-nmsc.adb, prj-nmsc.ads,
20338         prj-pars.adb, prj-pars.ads, prj-part.adb, prj-part.ads,
20339         prj-pp.adb, prj-pp.ads, prj-proc.adb, prj-proc.ads,
20340         prj-strt.adb, prj-strt.ads, prj-tree.adb, prj-tree.ads,
20341         prj-util.adb, prj-util.ads, raise.c, raise.h,
20342         repinfo.adb, repinfo.h, restrict.adb, restrict.ads,
20343         rident.ads, rtsfind.adb, rtsfind.ads, s-addima.ads,
20344         s-arit64.adb, s-assert.adb, s-assert.ads, s-atacco.adb,
20345         s-atacco.ads, s-auxdec.adb, s-auxdec.ads, s-bitops.adb,
20346         scans.ads, scn.adb, scn.ads, s-crc32.adb,
20347         s-crc32.ads, s-direio.adb, sem.adb, sem.ads,
20348         sem_aggr.adb, sem_attr.adb, sem_attr.ads, sem_case.adb,
20349         sem_case.ads, sem_cat.adb, sem_cat.ads, sem_ch10.adb,
20350         sem_ch11.adb, sem_ch12.adb, sem_ch12.ads, sem_ch13.adb,
20351         sem_ch13.ads, sem_ch3.adb, sem_ch3.ads, sem_ch4.adb,
20352         sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
20353         sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads,
20354         sem_ch9.adb, sem_disp.adb, sem_disp.ads, sem_dist.adb,
20355         sem_elab.adb, sem_eval.adb, sem_eval.ads, sem_intr.adb,
20356         sem_maps.adb, sem_mech.adb, sem_prag.adb, sem_prag.ads,
20357         sem_res.adb, sem_res.ads, sem_type.adb, sem_type.ads,
20358         sem_util.adb, sem_util.ads, sem_warn.adb, s-errrep.adb,
20359         s-errrep.ads, s-exctab.adb, s-exctab.ads, s-exnint.ads,
20360         s-exnllf.ads, s-exnlli.ads, s-expint.ads, s-explli.ads,
20361         s-expuns.ads, s-fatflt.ads, s-fatgen.adb, s-fatgen.ads,
20362         s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads, s-fileio.adb,
20363         s-fileio.ads, s-finimp.adb, s-finimp.ads, s-finroo.adb,
20364         s-finroo.ads, sfn_scan.adb, s-gloloc.adb, s-gloloc.ads,
20365         s-imgdec.adb, s-imgenu.adb, s-imgrea.adb, s-imgwch.adb,
20366         sinfo.adb, sinfo.ads, s-inmaop.ads, sinput.adb,
20367         sinput.ads, sinput-d.adb, sinput-l.adb, sinput-l.ads,
20368         sinput-p.adb, sinput-p.ads, s-interr.adb, s-interr.ads,
20369         s-intman.ads, s-maccod.ads, s-mastop.adb, s-mastop.ads,
20370         s-memory.adb, s-memory.ads, snames.adb, snames.ads,
20371         snames.h, s-osprim.ads, s-parame.ads, s-parint.ads,
20372         s-pooloc.adb, s-pooloc.ads, s-poosiz.adb, sprint.adb,
20373         s-proinf.ads, s-scaval.ads, s-secsta.adb, s-secsta.ads,
20374         s-sequio.adb, s-shasto.adb, s-shasto.ads, s-soflin.ads,
20375         s-stache.adb, s-stache.ads, s-stalib.adb, s-stalib.ads,
20376         s-stoele.ads, s-stopoo.ads, s-stratt.adb, s-stratt.ads,
20377         s-strops.adb, s-strops.ads, s-taasde.adb, s-taasde.ads,
20378         s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads,
20379         s-taenca.adb, s-taenca.ads, s-taprob.adb, s-taprob.ads,
20380         s-taprop.ads, s-tarest.adb, s-tarest.ads, s-tasdeb.adb,
20381         s-tasdeb.ads, s-tasinf.adb, s-tasinf.ads, s-tasini.adb,
20382         s-tasini.ads, s-taskin.adb, s-taskin.ads, s-tasque.adb,
20383         s-tasque.ads, s-tasren.adb, s-tasren.ads, s-tasres.ads,
20384         s-tassta.adb, s-tassta.ads, s-tasuti.adb, s-tasuti.ads,
20385         s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
20386         s-tpoben.adb, s-tpoben.ads, s-tpobop.adb, s-tpobop.ads,
20387         s-tposen.adb, s-tposen.ads, s-traceb.adb, s-traceb.ads,
20388         stringt.adb, stringt.ads, stringt.h, style.ads,
20389         stylesw.adb, stylesw.ads, s-unstyp.ads, s-vaflop.ads,
20390         s-valrea.adb, s-valuti.adb, s-vercon.adb, s-vmexta.adb,
20391         s-wchcnv.ads, s-wchcon.ads, s-widcha.adb, switch.adb,
20392         switch.ads, switch-b.adb, switch-c.adb, switch-m.adb,
20393         s-wwdcha.adb, s-wwdwch.adb, sysdep.c, system.ads,
20394         table.adb, table.ads, targparm.adb, targparm.ads,
20395         targtyps.c, tbuild.adb, tbuild.ads, tracebak.c,
20396         trans.c, tree_io.adb, treepr.adb, treeprs.adt,
20397         ttypes.ads, types.ads, types.h, uintp.adb,
20398         uintp.ads, uintp.h, uname.adb, urealp.adb,
20399         urealp.ads, urealp.h, usage.adb, utils2.c,
20400         utils.c, validsw.adb, validsw.ads, widechar.adb,
20401         xeinfo.adb, xnmake.adb, xref_lib.adb, xref_lib.ads,
20402         xr_tabls.adb, xr_tabls.ads, xtreeprs.adb, xsnames.adb,
20403         einfo.h, sinfo.h, treeprs.ads, nmake.ads, nmake.adb,
20404         gnatvsn.ads: Merge with ACT tree.
20405
20406         * gnatvsn.adb: Rewritten in a simpler and more efficient way.
20407
20408 2003-10-20  Mark Mitchell  <mark@codesourcery.com>
20409
20410         * Make-lang.in (gnat_ug_unx.info): Add dependency on stmp-docobjdir.
20411         (gnat_ug_vmx.info): Likewise.
20412         (gnat_ug_vxw.info): Likewise.
20413         (gnat_ug_wnt.info): Likewise.
20414         (gnat_rm.info): Likewise.
20415         (gnat-style.info): Likewise.
20416
20417         * Make-lang.in (ada.install-info): Remove target.
20418         (info): New target.
20419         (install-info): Likewise.
20420         (gnat_ug_unx.info): Simplify rule.
20421         (gnat_ug_vmx.info): Likewise.
20422         (gnat_ug_vxw.info): Likewise.
20423         (gnat_ug_wnt.info): Likewise.
20424         (gnat_rm.info): Likewise.
20425         (gnat-style.info): Likewise.
20426
20427 2003-10-14  Nathanael Nerode  <neroden@gcc.gnu.org>
20428
20429         * Make-lang.in: Replace uses of $(target_alias) with
20430         $(target_noncanonical).
20431         * ada/Makefile.in: Remove unused mention of $(target_alias).
20432
20433 2003-10-06  Mark Mitchell  <mark@codesourcery.com>
20434
20435         * Make-lang.in (ada.info): Replace with ...
20436         (info): ... this.
20437         (ada.dvi): Replace with ...
20438         (dvi): ... this.
20439
20440 2003-09-29  Zack Weinberg  <zack@codesourcery.com>
20441
20442         * trans.c (gigi): Use REAL_ARITHMETIC, not REAL_VALUE_ATOF, to
20443         initialize dconstp5 and dconstmp5.
20444
20445 2003-09-28  Richard Henderson  <rth@redhat.com>
20446
20447         * trans.c (tree_transform): Update call to expand_asm_operands.
20448
20449 2003-09-21  Richard Henderson  <rth@redhat.com>
20450
20451         * trans.c, utils.c: Revert.
20452
20453 2003-09-21  Richard Henderson  <rth@redhat.com>
20454
20455         * trans.c, utils.c: Update for DECL_SOURCE_LOCATION rename and
20456         change to const.
20457
20458 2003-09-04  Michael Matz  <matz@suse.de>
20459
20460         * misc.c: Include "target.h".
20461         * Make-lang.in (misc.o): Add dependency on target.h.
20462
20463 2003-09-03  DJ Delorie  <dj@redhat.com>
20464
20465         * misc.c (default_pass_by_ref): Convert to calls.return_in_memory
20466         hook.
20467
20468 2003-08-30  Zack Weinberg  <zack@codesourcery.com>
20469
20470         * Makefile.in: Update substitutions to match changes to
20471         configure.  Use include directives instead of @-insertions
20472         to read in host and target fragments.  Add a rule to
20473         regenerate ada/Makefile.
20474
20475 2003-07-18  Neil Booth  <neil@daikokuya.co.uk>
20476
20477         * lang-options.h: Remove.
20478         * lang.opt: Add help text.
20479
20480 2003-07-07  Nathan Sidwell  <nathan@codesourcery.com>
20481
20482         * trans.c (build_unit_elab, set_lineno): Adjust emit_line_note
20483         calls.
20484
20485 2003-07-06  Neil Booth  <neil@daikokuya.co.uk>
20486
20487         * misc.c (gnat_handle_option): Don't handle filenames.
20488
20489 2003-07-04  H.J. Lu <hongjiu.lu@intel.com>
20490
20491         * Make-lang.in: Replace PWD with PWD_COMMAND.
20492         * Makefile.adalib: Likewise.
20493         * Makefile.in: Likewise.
20494
20495 2003-07-04  Matt Kraai  <kraai@alumni.cmu.edu>
20496
20497         * misc.c (gnat_argv): Revert last change.
20498         (gnat_handle_option, gnat_init_options): Copy arguments.
20499
20500 2003-07-03  Neil Booth  <neil@daikokuya.co.uk>
20501
20502         * misc.c (gnat_argv): Make const.
20503
20504 2003-07-02  Neil Booth  <neil@daikokuya.co.uk>
20505
20506         * misc.c (save_argc, save_argv): Keep non-static!
20507
20508 2003-07-02  Neil Booth  <neil@daikokuya.co.uk>
20509
20510         * misc.c (save_argc, save_argv): Make static.
20511         (gnat_init_options): New prototype.
20512         (gnat_init_options): Update.
20513
20514 2003-07-01  Matt Kraai  <kraai@alumni.cmu.edu>
20515
20516         * gnat_ug.texi: Remove unlikely characters from @vars.
20517         * gnat_ug_vms.texi: Regenerate.
20518
20519 2003-06-27  Nathan Sidwell  <nathan@codesourcery.com>
20520
20521         * misc.c (record_code_position): Adjust emit_note call.
20522
20523 2003-06-26  Neil Booth  <neil@daikokuya.co.uk>
20524
20525         * misc.c (gnat_handle_option): Don't check for missing arguments.
20526
20527 2003-06-20  Nathan Sidwell  <nathan@codesourcery.com>
20528
20529         * utils.c (end_subprog_body): Adjust expand_function_end call.
20530
20531 2003-06-16  Matt Kraai  <kraai@alumni.cmu.edu>
20532
20533         * bindgen.adb (Gen_Main_Ada, Gen_Main_C): Do not test
20534         Bind_Main_Program.
20535
20536 2003-06-15  Neil Booth  <neil@daikokuya.co.uk>
20537
20538         * lang.opt: Declare Ada.
20539         * misc.c (gnat_init_options): Update.
20540
20541 2003-06-14  Nathan Sidwell  <nathan@codesourcery.com>
20542
20543         * utils.c (begin_subprog_body): Adjust init_function_start call.
20544
20545 2003-06-14  Neil Booth  <neil@daikokuya.co.uk>
20546
20547         * Make-lang.in: Update to use options.c and options.h.
20548         * misc.c: Include options.h not aoptions.h.
20549         (gnat_handle_option): Abort on unrecognized switch.
20550         (gnat_init_options): Request Ada switches.
20551
20552 2003-06-14  Neil Booth  <neil@daikokuya.co.uk>
20553
20554         * lang.opt: Add -Wall.
20555         * misc.c (gnat_handle_option): Handle it.
20556
20557 2003-06-12  Neil Booth  <neil@daikokuya.co.uk>
20558
20559         * misc.c (gnat_handle_option): Fix warnings.
20560
20561 2003-06-11  Matt Kraai  <kraai@alumni.cmu.edu>
20562
20563         * Make-lang.in (gnatbind): Remove $(LIBIBERTY).
20564
20565 2003-06-11  Neil Booth  <neil@daikokuya.co.uk>
20566
20567         * Make-lang.in: Update to handle command-line options.
20568         * lang.opt: New file.
20569         * misc.c: Include aoptions.h.
20570         (cl_options_count, cl_options): Remove.
20571         (gnat_handle_option): New.
20572         (gnat_decode_option): Remove.
20573         (LANG_HOOKS_DECODE_OPTION): Remove.
20574         (LANG_HOOKS_HANDLE_OPTION): Override.
20575
20576 2003-06-10  Nathanael Nerode  <neroden@gcc.gnu.org>
20577
20578         * init.c, misc.c, trans.c, utils.c: Remove dead code.
20579
20580 2003-06-09  Nathanael Nerode  <neroden@gcc.gnu.org>
20581
20582         * Makefile.in: Replace "host_canonical" with "host" for autoconf
20583         substitution.
20584
20585 2003-06-08  Neil Booth  <neil@daikokuya.co.uk>
20586
20587         * Make-lang.in: Update.
20588         * misc.c: Include opts.h. Define cl_options_count and cl_options.
20589
20590 2003-06-07  Neil Booth  <neil@daikokuya.co.uk>
20591
20592         * misc.c (gnat_init_options): Update.
20593
20594 2003-06-05  Matt Kraai  <kraai@alumni.cmu.edu>
20595
20596         * Make-lang.in (ada/b_gnatb.o-warn): Remove.
20597         * bindgen.adb (Gen_Main_C): Mark ensure_reference with
20598         __attribute__ ((__unused__)).
20599
20600 2003-06-05  Jan Hubicka  <jh@suse.cz>
20601
20602         * Make-lang.in:  Add support for stageprofile and stagefeedback
20603
20604 2003-06-05  Matt Kraai  <kraai@alumni.cmu.edu>
20605
20606         * bindgen.adb (Gen_Adafinal_C, Gen_Adainit_C, Gen_Elab_Defs_C)
20607         (Gen_Main_C, Gen_Output_File_C): Generate ISO C.
20608
20609 2003-06-04  Matt Kraai  <kraai@alumni.cmu.edu>
20610
20611         * gnat_ug.texi (The GNAT Run-Time Library Builder gnatlbr):
20612         Remove non-VMS directive.
20613         (Switches for gnatlbr, Optimization Levels): Remove non-VMS
20614         alternatives.
20615         (Examples of gnatls Usage): Remove VMS alternative.
20616
20617 2003-06-04  Olivier Hainque  <hainque@act-europe.fr>
20618
20619         PR ada/9953:
20620         * 5hsystem.ads: Remove pragma Linker_Option for pthreads library,
20621         and turn ZCX_By_Default back to False since the underlying support
20622         is not quite there yet.
20623
20624 2003-06-01  Andreas Jaeger  <aj@suse.de>
20625
20626         * utils.c (finish_record_type): Remove usages of ROUND_TYPE_SIZE
20627         and ROUND_TYPE_SIZE_UNIT.
20628
20629 2003-05-22   Geert Bosch <bosch@gnat.com>
20630
20631         * gnat_rm.texi : Remove reference to Ada Core Technologies.
20632
20633 2003-05-03  Nathan Sidwell  <nathan@codesourcery.com>
20634
20635         * trans.c (tree_transform): Use location_t and input_location
20636         directly.
20637         (build_unit_elab): Likewise.
20638         * utils.c (create_label_decl): Likewise.
20639
20640 2003-05-01  Nathan Sidwell  <nathan@codesourcery.com>
20641
20642         * trans.c (tree_transform, build_unit_elab,
20643         set_lineno): Rename lineno to input_line.
20644         * utils.c (pushdecl, create_label_decl, begin_subprog_body,
20645         end_subprog_body): Likewise.
20646         * utils2.c (build_call_raise): Likewise.
20647
20648 2003-05-01  Laurent Guerby <guerby@acm.org>
20649
20650         PR ada/10546
20651         * 5iosinte.ads: Increase pthread_cond_t size to match recent
20652         LinuxThread and NPTL version, merge from ACT.
20653
20654 2003-04-28  Zack Weinberg  <zack@codesourcery.com>
20655
20656         * utils.c (convert): No need to clear TREE_CST_RTL.
20657
20658 2003-04-23   Geert Bosch <bosch@gnat.com>
20659
20660         * 1aexcept.adb, 1aexcept.ads, 1ic.ads, 1ssecsta.adb,
20661         1ssecsta.ads, 31soccon.ads, 31soliop.ads, 3asoccon.ads,
20662         3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3ssoccon.ads,
20663         3ssoliop.ads, 3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads,
20664         3wsoliop.ads, 41intnam.ads, 42intnam.ads, 4aintnam.ads,
20665         4cintnam.ads, 4dintnam.ads, 4gintnam.ads, 4hexcpol.adb,
20666         4hintnam.ads, 4lintnam.ads, 4mintnam.ads, 4nintnam.ads,
20667         4ointnam.ads, 4onumaux.ads, 4pintnam.ads, 4rintnam.ads,
20668         4sintnam.ads, 4uintnam.ads, 4vcaldel.adb, 4vcalend.adb,
20669         4vcalend.ads, 4vintnam.ads, 4wcalend.adb, 4wexcpol.adb,
20670         4wintnam.ads, 4zintnam.ads, 4znumaux.ads, 4zsytaco.adb,
20671         4zsytaco.ads, 51osinte.adb, 51osinte.ads, 52osinte.adb,
20672         52osinte.ads, 52system.ads, 53osinte.ads, 54osinte.ads,
20673         5amastop.adb, 5aosinte.adb, 5aosinte.ads, 5asystem.ads,
20674         5ataprop.adb, 5atasinf.ads, 5ataspri.ads, 5atpopsp.adb,
20675         5avxwork.ads, 5bosinte.adb, 5bosinte.ads, 5bsystem.ads,
20676         5cosinte.ads, 5dosinte.ads, 5esystem.ads, 5etpopse.adb,
20677         5fintman.adb, 5fosinte.ads, 5fsystem.ads, 5ftaprop.adb,
20678         5ftasinf.ads, 5ginterr.adb, 5gintman.adb, 5gmastop.adb,
20679         5gosinte.ads, 5gproinf.adb, 5gproinf.ads, 5gsystem.ads,
20680         5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads, 5gtpgetc.adb,
20681         5hosinte.adb, 5hosinte.ads, 5hparame.ads, 5hsystem.ads,
20682         5htaprop.adb, 5htaspri.ads, 5htraceb.adb, 5iosinte.adb,
20683         5iosinte.ads, 5itaprop.adb, 5itaspri.ads, 5ksystem.ads,
20684         5kvxwork.ads, 5lintman.adb, 5lml-tgt.adb, 5losinte.ads,
20685         5lsystem.ads, 5mosinte.ads, 5mvxwork.ads, 5ninmaop.adb,
20686         5nintman.adb, 5nosinte.ads, 5ntaprop.adb, 5ntaspri.ads,
20687         5ointerr.adb, 5omastop.adb, 5oosinte.adb, 5oosinte.ads,
20688         5oosprim.adb, 5oparame.adb, 5osystem.ads, 5otaprop.adb,
20689         5otaspri.ads, 5posinte.ads, 5posprim.adb, 5pvxwork.ads,
20690         5qosinte.adb, 5qosinte.ads, 5qstache.adb, 5qtaprop.adb,
20691         5qtaspri.ads, 5rosinte.adb, 5rosinte.ads, 5rparame.adb,
20692         5sintman.adb, 5sosinte.adb, 5sosinte.ads, 5sparame.adb,
20693         5ssystem.ads, 5staprop.adb, 5stasinf.adb, 5stasinf.ads,
20694         5staspri.ads, 5stpopse.adb, 5svxwork.ads, 5tosinte.ads,
20695         5uintman.adb, 5uosinte.ads, 5vasthan.adb, 5vinmaop.adb,
20696         5vinterr.adb, 5vintman.adb, 5vintman.ads, 5vmastop.adb,
20697         5vosinte.adb, 5vosinte.ads, 5vosprim.adb, 5vosprim.ads,
20698         5vparame.ads, 5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads,
20699         5vtpopde.adb, 5vtpopde.ads, 5vvaflop.adb, 5wgloloc.adb,
20700         5wintman.adb, 5wmemory.adb, 5wosinte.ads, 5wosprim.adb,
20701         5wsystem.ads, 5wtaprop.adb, 5wtaspri.ads, 5ysystem.ads,
20702         5zinterr.adb, 5zintman.adb, 5zosinte.adb, 5zosinte.ads,
20703         5zosprim.adb, 5zsystem.ads, 5ztaprop.adb, 6vcpp.adb,
20704         6vcstrea.adb, 6vinterf.ads, 7sinmaop.adb, 7sintman.adb,
20705         7sosinte.adb, 7sosprim.adb, 7staprop.adb, 7staspri.ads,
20706         7stpopsp.adb, 7straceb.adb, 86numaux.adb, 86numaux.ads,
20707         9drpc.adb, a-astaco.adb, a-astaco.ads, a-caldel.adb,
20708         a-caldel.ads, a-calend.adb, a-calend.ads, a-chahan.adb,
20709         a-chahan.ads, a-charac.ads, a-chlat1.ads, a-chlat9.ads,
20710         a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
20711         a-comlin.adb, a-comlin.ads, a-cwila1.ads, a-cwila9.ads,
20712         a-decima.adb, a-decima.ads, a-diocst.adb, a-diocst.ads,
20713         a-direio.adb, a-direio.ads, a-dynpri.adb, a-dynpri.ads,
20714         a-einuoc.adb, a-einuoc.ads, a-except.adb, a-except.ads,
20715         a-excpol.adb, a-exctra.adb, a-exctra.ads, a-filico.adb,
20716         a-filico.ads, a-finali.adb, a-finali.ads, a-flteio.ads,
20717         a-fwteio.ads, a-inteio.ads, a-interr.adb, a-interr.ads,
20718         a-intnam.ads, a-intsig.adb, a-intsig.ads, a-ioexce.ads,
20719         a-iwteio.ads, a-lfteio.ads, a-lfwtio.ads, a-liteio.ads,
20720         a-liwtio.ads, a-llftio.ads, a-llfwti.ads, a-llitio.ads,
20721         a-lliwti.ads, a-ncelfu.ads, a-ngcefu.adb, a-ngcefu.ads,
20722         a-ngcoty.adb, a-ngcoty.ads, a-ngelfu.adb, a-ngelfu.ads,
20723         a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads,
20724         a-nllcty.ads, a-nllefu.ads, a-nscefu.ads, a-nscoty.ads,
20725         a-nselfu.ads, a-nucoty.ads, a-nudira.adb, a-nudira.ads,
20726         a-nuelfu.ads, a-nuflra.adb, a-nuflra.ads, a-numaux.ads,
20727         a-numeri.ads, a-reatim.adb, a-reatim.ads, a-retide.adb,
20728         a-retide.ads, a-sequio.adb, a-sequio.ads, a-sfteio.ads,
20729         a-sfwtio.ads, a-siocst.adb, a-siocst.ads, a-siteio.ads,
20730         a-siwtio.ads, a-ssicst.adb, a-ssicst.ads, a-ssitio.ads,
20731         a-ssiwti.ads, a-stmaco.ads, a-storio.adb, a-storio.ads,
20732         a-strbou.adb, a-strbou.ads, a-stream.ads, a-strfix.adb,
20733         a-strfix.ads, a-string.ads, a-strmap.adb, a-strmap.ads,
20734         a-strsea.adb, a-strsea.ads, a-strunb.adb, a-strunb.ads,
20735         a-ststio.adb, a-ststio.ads, a-stunau.adb, a-stunau.ads,
20736         a-stwibo.adb, a-stwibo.ads, a-stwifi.adb, a-stwifi.ads,
20737         a-stwima.adb, a-stwima.ads, a-stwise.adb, a-stwise.ads,
20738         a-stwiun.adb, a-stwiun.ads, a-suteio.adb, a-suteio.ads,
20739         a-swmwco.ads, a-swuwti.adb, a-swuwti.ads, a-sytaco.adb,
20740         a-sytaco.ads, a-tags.adb, a-tags.ads, a-tasatt.adb,
20741         a-tasatt.ads, a-taside.adb, a-taside.ads, a-teioed.adb,
20742         a-teioed.ads, a-textio.adb, a-textio.ads, a-ticoau.adb,
20743         a-ticoau.ads, a-ticoio.adb, a-ticoio.ads, a-tideau.adb,
20744         a-tideau.ads, a-tideio.adb, a-tideio.ads, a-tienau.adb,
20745         a-tienau.ads, a-tienio.adb, a-tienio.ads, a-tifiio.adb,
20746         a-tifiio.ads, a-tiflau.adb, a-tiflau.ads, a-tiflio.adb,
20747         a-tiflio.ads, a-tigeau.adb, a-tigeau.ads, a-tiinau.adb,
20748         a-tiinau.ads, a-tiinio.adb, a-tiinio.ads, a-timoau.adb,
20749         a-timoau.ads, a-timoio.adb, a-timoio.ads, a-tiocst.adb,
20750         a-tiocst.ads, a-titest.adb, a-titest.ads, a-unccon.ads,
20751         a-uncdea.ads, a-witeio.adb, a-witeio.ads, a-wtcoau.adb,
20752         a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads, a-wtcstr.adb,
20753         a-wtcstr.ads, a-wtdeau.adb, a-wtdeau.ads, a-wtdeio.adb,
20754         a-wtdeio.ads, a-wtedit.adb, a-wtedit.ads, a-wtenau.adb,
20755         a-wtenau.ads, a-wtenio.adb, a-wtenio.ads, a-wtfiio.adb,
20756         a-wtfiio.ads, a-wtflau.adb, a-wtflau.ads, a-wtflio.adb,
20757         a-wtflio.ads, a-wtgeau.adb, a-wtgeau.ads, a-wtinau.adb,
20758         a-wtinau.ads, a-wtinio.adb, a-wtinio.ads, a-wtmoau.adb,
20759         a-wtmoau.ads, a-wtmoio.adb, a-wtmoio.ads, a-wttest.adb,
20760         a-wttest.ads, ada-tree.h, ada.ads, ada.h,
20761         adadecode.c, adadecode.h, ali-util.adb, ali-util.ads,
20762         ali.adb, ali.ads, alloc.ads, argv.c,
20763         atree.adb, atree.ads, atree.h, aux-io.c,
20764         back_end.adb, back_end.ads, bcheck.adb, bcheck.ads,
20765         binde.adb, binde.ads, binderr.adb, binderr.ads,
20766         bindgen.adb, bindgen.ads, bindusg.adb, bindusg.ads,
20767         butil.adb, butil.ads, cal.c, calendar.ads,
20768         casing.adb, casing.ads, ceinfo.adb, checks.adb,
20769         checks.ads, cio.c, comperr.adb, comperr.ads,
20770         config-lang.in, csets.adb, csets.ads, csinfo.adb,
20771         cstand.adb, cstand.ads, cuintp.c, debug.adb,
20772         debug.ads, debug_a.adb, debug_a.ads, dec-io.adb,
20773         dec-io.ads, dec.ads, deftarg.c, directio.ads,
20774         einfo.adb, einfo.ads, elists.adb, elists.ads,
20775         elists.h, errno.c, errout.adb, errout.ads,
20776         eval_fat.adb, eval_fat.ads, exit.c, exp_aggr.adb,
20777         exp_aggr.ads, exp_attr.adb, exp_attr.ads, exp_ch10.ads,
20778         exp_ch11.adb, exp_ch11.ads, exp_ch12.adb, exp_ch12.ads,
20779         exp_ch13.adb, exp_ch13.ads, exp_ch2.adb, exp_ch2.ads,
20780         exp_ch3.adb, exp_ch3.ads, exp_ch4.adb, exp_ch4.ads,
20781         exp_ch5.adb, exp_ch5.ads, exp_ch6.adb, exp_ch6.ads,
20782         exp_ch7.adb, exp_ch7.ads, exp_ch8.adb, exp_ch8.ads,
20783         exp_ch9.adb, exp_ch9.ads, exp_code.adb, exp_code.ads,
20784         exp_dbug.adb, exp_dbug.ads, exp_disp.adb, exp_disp.ads,
20785         exp_dist.adb, exp_dist.ads, exp_fixd.adb, exp_fixd.ads,
20786         exp_imgv.adb, exp_imgv.ads, exp_intr.adb, exp_intr.ads,
20787         exp_pakd.adb, exp_pakd.ads, exp_prag.adb, exp_prag.ads,
20788         exp_smem.adb, exp_smem.ads, exp_strm.adb, exp_strm.ads,
20789         exp_tss.adb, exp_tss.ads, exp_util.adb, exp_util.ads,
20790         exp_vfpt.adb, exp_vfpt.ads, expander.adb, expander.ads,
20791         fmap.adb, fmap.ads, fname-sf.adb, fname-sf.ads,
20792         fname-uf.adb, fname-uf.ads, fname.adb, fname.ads,
20793         freeze.adb, freeze.ads, frontend.adb, frontend.ads,
20794         g-awk.adb, g-awk.ads, g-busora.adb, g-busora.ads,
20795         g-busorg.adb, g-busorg.ads, g-calend.adb, g-calend.ads,
20796         g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads,
20797         g-cgi.adb, g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads,
20798         g-cgideb.adb, g-cgideb.ads, g-comlin.adb, g-comlin.ads,
20799         g-crc32.adb, g-crc32.ads, g-curexc.ads, g-debpoo.adb,
20800         g-debpoo.ads, g-debuti.adb, g-debuti.ads, g-diopit.adb,
20801         g-diopit.ads, g-dirope.adb, g-dirope.ads, g-dyntab.adb,
20802         g-dyntab.ads, g-enblsp.adb, g-except.ads, g-exctra.adb,
20803         g-exctra.ads, g-expect.adb, g-expect.ads, g-flocon.ads,
20804         g-hesora.adb, g-hesora.ads, g-hesorg.adb, g-hesorg.ads,
20805         g-htable.adb, g-htable.ads, g-io.adb, g-io.ads,
20806         g-io_aux.adb, g-io_aux.ads, g-locfil.ads, g-md5.adb,
20807         g-md5.ads, g-moreex.adb, g-moreex.ads, g-os_lib.adb,
20808         g-os_lib.ads, g-regexp.adb, g-regexp.ads, g-regist.ads,
20809         g-regpat.adb, g-regpat.ads, g-soccon.ads, g-socket.adb,
20810         g-socket.ads, g-socthi.adb, g-socthi.ads, g-soliop.ads,
20811         g-souinf.ads, g-speche.adb, g-speche.ads, g-spipat.adb,
20812         g-spipat.ads, g-spitbo.adb, g-spitbo.ads, g-sptabo.ads,
20813         g-sptain.ads, g-sptavs.ads, g-table.adb, g-table.ads,
20814         g-tasloc.adb, g-tasloc.ads, g-thread.adb, g-thread.ads,
20815         g-traceb.adb, g-traceb.ads, g-trasym.adb, g-trasym.ads,
20816         get_targ.adb, get_targ.ads, gnat-style.texi, gnat.ads,
20817         gnat1drv.adb, gnat1drv.ads, gnatbind.adb, gnatbind.ads,
20818         gnatbl.c, gnatchop.adb, gnatcmd.adb, gnatcmd.ads,
20819         gnatdll.adb, gnatfind.adb, gnatkr.adb, gnatkr.ads,
20820         gnatlbr.adb, gnatlink.adb, gnatlink.ads, gnatls.adb,
20821         gnatls.ads, gnatmake.adb, gnatmake.ads, gnatmem.adb,
20822         gnatname.adb, gnatname.ads, gnatprep.adb, gnatprep.ads,
20823         gnatpsta.adb, gnatvsn.adb, gnatvsn.ads, gnatxref.adb,
20824         hlo.adb, hlo.ads, hostparm.ads, i-c.adb,
20825         i-c.ads, i-cexten.ads, i-cobol.adb, i-cobol.ads,
20826         i-cpoint.adb, i-cpoint.ads, i-cpp.adb, i-cpp.ads,
20827         i-cstrea.adb, i-cstrea.ads, i-cstrin.adb, i-cstrin.ads,
20828         i-fortra.adb, i-fortra.ads, i-os2err.ads, i-os2lib.adb,
20829         i-os2lib.ads, i-os2syn.ads, i-os2thr.ads, i-pacdec.adb,
20830         i-pacdec.ads, i-vxwork.ads, impunit.adb, impunit.ads,
20831         inline.adb, inline.ads, interfac.ads, ioexcept.ads,
20832         itypes.adb, itypes.ads, krunch.adb, krunch.ads,
20833         layout.adb, layout.ads, lib-list.adb, lib-load.adb,
20834         lib-load.ads, lib-sort.adb, lib-util.adb, lib-util.ads,
20835         lib-writ.adb, lib-writ.ads, lib-xref.adb, lib-xref.ads,
20836         lib.adb, lib.ads, live.adb, live.ads,
20837         machcode.ads, make.adb, make.ads, makeusg.adb,
20838         makeusg.ads, math_lib.adb, mdll-fil.adb, mdll-fil.ads,
20839         mdll-utl.adb, mdll-utl.ads, mdll.adb, mdll.ads,
20840         memroot.adb, memroot.ads, memtrack.adb, mlib-fil.adb,
20841         mlib-fil.ads, mlib-prj.adb, mlib-prj.ads, mlib-tgt.adb,
20842         mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads, mlib.adb,
20843         mlib.ads, namet.adb, namet.ads, nlists.adb,
20844         nlists.ads, opt.adb, opt.ads, osint-b.adb,
20845         osint-b.ads, osint-c.adb, osint-c.ads, osint-l.adb,
20846         osint-l.ads, osint-m.adb, osint-m.ads, osint.adb,
20847         osint.ads, output.adb, output.ads, par-ch10.adb,
20848         par-ch11.adb, par-ch12.adb, par-ch13.adb, par-ch2.adb,
20849         par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb,
20850         par-ch7.adb, par-ch8.adb, par-ch9.adb, par-endh.adb,
20851         par-labl.adb, par-load.adb, par-prag.adb, par-sync.adb,
20852         par-tchk.adb, par-util.adb, par.adb, par.ads,
20853         prj-attr.adb, prj-attr.ads, prj-com.adb, prj-com.ads,
20854         prj-dect.adb, prj-dect.ads, prj-env.adb, prj-env.ads,
20855         prj-ext.adb, prj-ext.ads, prj-makr.adb, prj-makr.ads,
20856         prj-nmsc.adb, prj-nmsc.ads, prj-pars.adb, prj-pars.ads,
20857         prj-part.adb, prj-part.ads, prj-pp.adb, prj-pp.ads,
20858         prj-proc.adb, prj-proc.ads, prj-strt.adb, prj-strt.ads,
20859         prj-tree.adb, prj-tree.ads, prj-util.adb, prj-util.ads,
20860         prj.adb, prj.ads, repinfo.adb, repinfo.ads,
20861         restrict.adb, restrict.ads, rident.ads, rtsfind.adb,
20862         rtsfind.ads, s-addima.adb, s-addima.ads, s-arit64.adb,
20863         s-arit64.ads, s-assert.adb, s-assert.ads, s-asthan.adb,
20864         s-asthan.ads, s-atacco.adb, s-atacco.ads, s-auxdec.adb,
20865         s-auxdec.ads, s-bitops.adb, s-bitops.ads, s-chepoo.ads,
20866         s-crc32.adb, s-crc32.ads, s-direio.adb, s-direio.ads,
20867         s-errrep.adb, s-errrep.ads, s-except.ads, s-exctab.adb,
20868         s-exctab.ads, s-exnflt.ads, s-exngen.adb, s-exngen.ads,
20869         s-exnint.ads, s-exnlfl.ads, s-exnlin.ads, s-exnllf.ads,
20870         s-exnlli.ads, s-exnsfl.ads, s-exnsin.ads, s-exnssi.ads,
20871         s-expflt.ads, s-expgen.adb, s-expgen.ads, s-expint.ads,
20872         s-explfl.ads, s-explin.ads, s-expllf.ads, s-explli.ads,
20873         s-expllu.adb, s-expllu.ads, s-expmod.adb, s-expmod.ads,
20874         s-expsfl.ads, s-expsin.ads, s-expssi.ads, s-expuns.adb,
20875         s-expuns.ads, s-fatflt.ads, s-fatgen.adb, s-fatgen.ads,
20876         s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads, s-ficobl.ads,
20877         s-fileio.adb, s-fileio.ads, s-finimp.adb, s-finimp.ads,
20878         s-finroo.adb, s-finroo.ads, s-fore.adb, s-fore.ads,
20879         s-gloloc.adb, s-gloloc.ads, s-imgbiu.adb, s-imgbiu.ads,
20880         s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads,
20881         s-imgdec.adb, s-imgdec.ads, s-imgenu.adb, s-imgenu.ads,
20882         s-imgint.adb, s-imgint.ads, s-imgllb.adb, s-imgllb.ads,
20883         s-imglld.adb, s-imglld.ads, s-imglli.adb, s-imglli.ads,
20884         s-imgllu.adb, s-imgllu.ads, s-imgllw.adb, s-imgllw.ads,
20885         s-imgrea.adb, s-imgrea.ads, s-imguns.adb, s-imguns.ads,
20886         s-imgwch.adb, s-imgwch.ads, s-imgwiu.adb, s-imgwiu.ads,
20887         s-inmaop.ads, s-interr.adb, s-interr.ads, s-intman.ads,
20888         s-io.adb, s-io.ads, s-maccod.ads, s-mantis.adb,
20889         s-mantis.ads, s-mastop.adb, s-mastop.ads, s-memory.adb,
20890         s-memory.ads, s-osprim.ads, s-pack03.adb, s-pack03.ads,
20891         s-pack05.adb, s-pack05.ads, s-pack06.adb, s-pack06.ads,
20892         s-pack07.adb, s-pack07.ads, s-pack09.adb, s-pack09.ads,
20893         s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads,
20894         s-pack12.adb, s-pack12.ads, s-pack13.adb, s-pack13.ads,
20895         s-pack14.adb, s-pack14.ads, s-pack15.adb, s-pack15.ads,
20896         s-pack17.adb, s-pack17.ads, s-pack18.adb, s-pack18.ads,
20897         s-pack19.adb, s-pack19.ads, s-pack20.adb, s-pack20.ads,
20898         s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads,
20899         s-pack23.adb, s-pack23.ads, s-pack24.adb, s-pack24.ads,
20900         s-pack25.adb, s-pack25.ads, s-pack26.adb, s-pack26.ads,
20901         s-pack27.adb, s-pack27.ads, s-pack28.adb, s-pack28.ads,
20902         s-pack29.adb, s-pack29.ads, s-pack30.adb, s-pack30.ads,
20903         s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads,
20904         s-pack34.adb, s-pack34.ads, s-pack35.adb, s-pack35.ads,
20905         s-pack36.adb, s-pack36.ads, s-pack37.adb, s-pack37.ads,
20906         s-pack38.adb, s-pack38.ads, s-pack39.adb, s-pack39.ads,
20907         s-pack40.adb, s-pack40.ads, s-pack41.adb, s-pack41.ads,
20908         s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads,
20909         s-pack44.adb, s-pack44.ads, s-pack45.adb, s-pack45.ads,
20910         s-pack46.adb, s-pack46.ads, s-pack47.adb, s-pack47.ads,
20911         s-pack48.adb, s-pack48.ads, s-pack49.adb, s-pack49.ads,
20912         s-pack50.adb, s-pack50.ads, s-pack51.adb, s-pack51.ads,
20913         s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads,
20914         s-pack54.adb, s-pack54.ads, s-pack55.adb, s-pack55.ads,
20915         s-pack56.adb, s-pack56.ads, s-pack57.adb, s-pack57.ads,
20916         s-pack58.adb, s-pack58.ads, s-pack59.adb, s-pack59.ads,
20917         s-pack60.adb, s-pack60.ads, s-pack61.adb, s-pack61.ads,
20918         s-pack62.adb, s-pack62.ads, s-pack63.adb, s-pack63.ads,
20919         s-parame.adb, s-parame.ads, s-parint.adb, s-parint.ads,
20920         s-pooglo.adb, s-pooglo.ads, s-pooloc.adb, s-pooloc.ads,
20921         s-poosiz.adb, s-poosiz.ads, s-powtab.ads, s-proinf.adb,
20922         s-proinf.ads, s-rpc.adb, s-rpc.ads, s-scaval.ads,
20923         s-secsta.adb, s-secsta.ads, s-sequio.adb, s-sequio.ads,
20924         s-shasto.adb, s-shasto.ads, s-soflin.adb, s-soflin.ads,
20925         s-sopco3.adb, s-sopco3.ads, s-sopco4.adb, s-sopco4.ads,
20926         s-sopco5.adb, s-sopco5.ads, s-stache.adb, s-stache.ads,
20927         s-stalib.adb, s-stalib.ads, s-stoele.adb, s-stoele.ads,
20928         s-stopoo.ads, s-stratt.adb, s-stratt.ads, s-strops.adb,
20929         s-strops.ads, s-taasde.adb, s-taasde.ads, s-tadeca.adb,
20930         s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-taenca.adb,
20931         s-taenca.ads, s-taprob.adb, s-taprob.ads, s-taprop.ads,
20932         s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads,
20933         s-tasinf.adb, s-tasinf.ads, s-tasini.adb, s-tasini.ads,
20934         s-taskin.adb, s-taskin.ads, s-tasque.adb, s-tasque.ads,
20935         s-tasren.adb, s-tasren.ads, s-tasres.ads, s-tassta.adb,
20936         s-tassta.ads, s-tasuti.adb, s-tasuti.ads, s-tataat.adb,
20937         s-tataat.ads, s-tpinop.adb, s-tpinop.ads, s-tpoben.adb,
20938         s-tpoben.ads, s-tpobop.adb, s-tpobop.ads, s-tposen.adb,
20939         s-tposen.ads, s-traceb.adb, s-traceb.ads, s-traces.adb,
20940         s-traces.ads, s-tratas.adb, s-tratas.ads, s-unstyp.ads,
20941         s-vaflop.adb, s-vaflop.ads, s-valboo.adb, s-valboo.ads,
20942         s-valcha.adb, s-valcha.ads, s-valdec.adb, s-valdec.ads,
20943         s-valenu.adb, s-valenu.ads, s-valint.adb, s-valint.ads,
20944         s-vallld.adb, s-vallld.ads, s-vallli.adb, s-vallli.ads,
20945         s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads,
20946         s-valuns.adb, s-valuns.ads, s-valuti.adb, s-valuti.ads,
20947         s-valwch.adb, s-valwch.ads, s-vercon.adb, s-vercon.ads,
20948         s-vmexta.adb, s-vmexta.ads, s-wchcnv.adb, s-wchcnv.ads,
20949         s-wchcon.ads, s-wchjis.adb, s-wchjis.ads, s-wchstw.adb,
20950         s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, s-widboo.adb,
20951         s-widboo.ads, s-widcha.adb, s-widcha.ads, s-widenu.adb,
20952         s-widenu.ads, s-widlli.adb, s-widlli.ads, s-widllu.adb,
20953         s-widllu.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb,
20954         s-wwdcha.ads, s-wwdenu.adb, s-wwdenu.ads, s-wwdwch.adb,
20955         s-wwdwch.ads, scans.adb, scans.ads, scn-nlit.adb,
20956         scn-slit.adb, scn.adb, scn.ads, sdefault.ads,
20957         sem.adb, sem.ads, sem_aggr.adb, sem_aggr.ads,
20958         sem_attr.adb, sem_attr.ads, sem_case.adb, sem_case.ads,
20959         sem_cat.adb, sem_cat.ads, sem_ch10.adb, sem_ch10.ads,
20960         sem_ch11.adb, sem_ch11.ads, sem_ch12.adb, sem_ch12.ads,
20961         sem_ch13.adb, sem_ch13.ads, sem_ch2.adb, sem_ch2.ads,
20962         sem_ch3.adb, sem_ch3.ads, sem_ch4.adb, sem_ch4.ads,
20963         sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
20964         sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads,
20965         sem_ch9.adb, sem_ch9.ads, sem_disp.adb, sem_disp.ads,
20966         sem_dist.adb, sem_dist.ads, sem_elab.adb, sem_elab.ads,
20967         sem_elim.adb, sem_elim.ads, sem_eval.adb, sem_eval.ads,
20968         sem_intr.adb, sem_intr.ads, sem_maps.adb, sem_maps.ads,
20969         sem_mech.adb, sem_mech.ads, sem_prag.adb, sem_prag.ads,
20970         sem_res.adb, sem_res.ads, sem_smem.adb, sem_smem.ads,
20971         sem_type.adb, sem_type.ads, sem_util.adb, sem_util.ads,
20972         sem_vfpt.adb, sem_vfpt.ads, sem_warn.adb, sem_warn.ads,
20973         sequenio.ads, sfn_scan.adb, sfn_scan.ads, sinfo-cn.adb,
20974         sinfo-cn.ads, sinfo.adb, sinfo.ads, sinput-d.adb,
20975         sinput-d.ads, sinput-l.adb, sinput-l.ads, sinput-p.adb,
20976         sinput-p.ads, sinput.adb, sinput.ads, snames.adb,
20977         snames.ads, sprint.adb, sprint.ads, stand.adb,
20978         stand.ads, stringt.adb, stringt.ads, style.adb,
20979         style.ads, stylesw.adb, stylesw.ads, switch-b.adb,
20980         switch-b.ads, switch-c.adb, switch-c.ads, switch-m.adb,
20981         switch-m.ads, switch.adb, switch.ads, system.ads,
20982         table.adb, table.ads, targparm.adb, targparm.ads,
20983         tbuild.adb, tbuild.ads, text_io.ads, trans.c,
20984         tree_gen.adb, tree_gen.ads, tree_in.adb, tree_in.ads,
20985         tree_io.adb, tree_io.ads, treepr.adb, treepr.ads,
20986         ttypef.ads, ttypes.ads, types.adb, types.ads,
20987         uintp.adb, uintp.ads, uname.adb, uname.ads,
20988         unchconv.ads, unchdeal.ads, urealp.adb, urealp.ads,
20989         usage.adb, usage.ads, validsw.adb, validsw.ads,
20990         widechar.adb, widechar.ads, xeinfo.adb, xnmake.adb,
20991         xr_tabls.adb, xr_tabls.ads, xref_lib.adb, xref_lib.ads,
20992         xsinfo.adb, xsnames.adb, xtreeprs.adb : Merge header,
20993         formatting and other trivial changes from ACT.
20994
20995 2003-04-12  Zack Weinberg  <zack@codesourcery.com>
20996
20997         * gigi.h, utils2.c (build_constructor):
20998         Rename gnat_build_constructor. Use build_constructor.
20999         * decl.c (gnat_to_gnu_entity)
21000         * trans.c (tree_transform, pos_to_constructor, extract_values)
21001         * ada/utils.c (build_template, convert_to_fat_pointer, convert)
21002         (unchecked_convert)
21003         * ada/utils2.c (build_binary_op, build_call_raise, build_allocator)
21004         (fill_vms_descriptor):
21005         Update to match.
21006
21007 2003-04-06  Zack Weinberg  <zack@codesourcery.com>
21008
21009         * ada-tree.def: Make fourth element for GNAT_LOOP_ID zero.
21010         * misc.c (gnat_tree_size): New function.
21011         (LANG_HOOKS_TREE_SIZE): Override.
21012
21013 2003-04-03  Jason Merrill  <jason@redhat.com>
21014
21015         * misc.c (gnat_adjust_rli): #if 0.
21016
21017 2003-03-31   Geert Bosch <bosch@gnat.com>
21018
21019         PR ada/10020
21020         * link.c : Fix misspelled "const" keyword
21021
21022 2003-03-23  Mark Mitchell  <mark@codesourcery.com>
21023
21024         PR c++/7086
21025         * utils2.c: Adjust calls to put_var_into_stack.
21026
21027 2003-03-12  Nathanael Nerode  <neroden@gcc.gnu.org>
21028
21029         * Make-lang.in, Makefile.in, config-lang.in: GCC, not GNU CC.
21030
21031 2003-03-08  Neil Booth  <neil@daikokuya.co.uk>
21032
21033         * misc.c (gnat_init): Update for new prototype.
21034
21035 2003-03-05  Olivier Hainque  <hainque@gnat.com>
21036
21037         ada/9961
21038         * raise.c (__gnat_Unwind_RaiseException): Add prototype to avoid
21039         warning, and fix return type for the IN_RTS && !SJLJ case.
21040
21041 2003-03-04  Tom Tromey  <tromey@redhat.com>
21042
21043         * Make-lang.in (ada.tags): New target.
21044
21045 2003-03-04  Olivier Hainque  <hainque@act-europe.fr>
21046
21047         ada/9911
21048         * a-except.adb (Unwind_RaiseException): Import a GNAT specific
21049         wrapper, which name remains constant whatever underlying GCC
21050         scheme.
21051
21052         * raise.c (__gnat_Unwind_RaiseException): New wrappers, providing
21053         the stable interface needed for a-except.
21054
21055 2003-03-02  Andreas Jaeger  <aj@suse.de>
21056
21057         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
21058         gnat_ug_wnt.texi: Regenerate.
21059
21060 2003-03-02  Laurent Guerby <guerby@acm.org>
21061
21062         * Makefile.in (install-gnatlib): Match previous change there
21063         so it works.
21064
21065 2003-02-28  Andreas Schwab  <schwab@suse.de>
21066
21067         * Make-lang.in (install-gnatlib): Change to ada directory before
21068         running make instead of using ada/Makefile directly.
21069
21070 2003-02-18  Ben Elliston  <bje@redhat.com>
21071
21072         Part of fix for PR ada/9406
21073         * gnat_ug.texi (Binder output file): Grammar fix.
21074
21075 2003-02-18  Ben Elliston  <bje@redhat.com>
21076
21077         PR other/7350
21078         * 5qtaprop.adb (Sleep): Fix typo in comment.
21079
21080 2003-02-04  Joseph S. Myers  <jsm@polyomino.org.uk>
21081
21082         * gnat_rm.texi, gnat_ug.texi: Update to GFDL 1.2.
21083         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
21084         gnat_ug_wnt.texi: Regenerate.
21085
21086 2003-02-03  Christian Cornelssen <ccorn@cs.tu-berlin.de>
21087
21088         * Make-lang.in (ada.install-info): Let $(DESTDIR)$(infodir)
21089         be created if necessary.
21090         (ada.install-common): Let $(DESTDIR)$(bindir) be created
21091         if necessary.  Remove erroneous and redundant gnatchop
21092         installation commands.  Test for gnatdll before attempting
21093         to install it.
21094         (ada.uninstall): Also uninstall gnatfind, gnatxref, gnatlbr,
21095         and gnatdll from all plausible locations.
21096
21097 2003-02-01  Richard Sandiford  <rsandifo@redhat.com>
21098
21099         * utils2.c (build_unary_op): Don't check flag_volatile.
21100         * gnat_ug.texi: Remove -fvolatile from example.
21101         * gnat_ug_vxw.texi: Likewise.
21102
21103 2003-01-29  Laurent Guerby <guerby@acm.org>
21104
21105         PR ada/8344
21106         * final.c: rename to adafinal.c to avoid file name conflicts with gcc file.
21107         * Makefile.in: match previous change.
21108         * Make-lang.in: match previous change.
21109
21110 2003-01-29      Joel Sherrill <joel@OARcorp.com>
21111
21112         * 5rosinte.ads: Add SIGXCPU.
21113         * 5rtpopsp.adb: New file.
21114         * Make-lang.in: Do not build gnatpsta and gnatpsys when cross.
21115         * Makefile.in: Recognize more RTEMS targets and add the RTEMS
21116         specific file 5rtpopsp.adb.
21117         * adaint.h: Add include of <stdio.h> when target is RTEMS.  This
21118         is likely needed for all newlib targets.
21119         * init.c: Add RTEMS specific version of __gnat_initialize().
21120
21121 2003-01-28  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
21122
21123         * adaint.c, adaint.h, gmem.c, init.c: Update copyright year.
21124
21125 2003-01-27  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
21126
21127         * init.c (__gnat_error_handler): Make msg const.
21128
21129         * gmem.c (convert_addresses): Move declaration ...
21130         * adaint.h: ... here.
21131         * adaint.c (convert_addresses): Adapt addrs type to match
21132         prototype.
21133
21134         * adaint.c (__gnat_try_lock): Cast pid_t to long, adapt format.
21135
21136 2003-01-24  Andreas Schwab  <schwab@suse.de>
21137
21138         * ada-tree.h (SET_TYPE_DIGITS_VALUE): Add intermediate cast to
21139         size_t to avoid warning.
21140
21141 2003-01-21  Zack Weinberg  <zack@codesourcery.com>
21142
21143         * Make-lang.in: Disable -Werror for tracebak.c and b_gnatb.c.
21144
21145 2003-01-09  Geoffrey Keating  <geoffk@apple.com>
21146
21147         * gnat_rm.texi: Remove RCS version number.
21148
21149         * ada-tree.h (union lang_tree_node): Add chain_next option.
21150
21151 2003-01-09  Christian Cornelssen  <ccorn@cs.tu-berlin.de>
21152
21153         * Make-lang.in (ada.install-info, ada.install-common,
21154         ada.uninstall): Prepend $(DESTDIR) to the destination
21155         directory in all (un)installation commands.
21156         * Makefile.in (install-gnatlib, install-rts): Ditto.
21157
21158 2002-12-28  Joseph S. Myers  <jsm@polyomino.org.uk>
21159
21160         * gnat_rm.texi, gnat_ug.texi: Use @copying.
21161         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
21162         gnat_ug_wnt.texi: Regenerate.
21163
21164 2002-12-23  Joseph S. Myers  <jsm@polyomino.org.uk>
21165
21166         * gnat_rm.texi: Include gcc-common.texi.  Use GCC version number
21167         only.
21168         * Make-lang.in ($(srcdir)/ada/gnat_ug_unx.info,
21169         $(srcdir)/ada/gnat_ug_vms.info, $(srcdir)/ada/gnat_ug_vxw.info,
21170         $(srcdir)/ada/gnat_ug_wnt.info, $(srcdir)/ada/gnat_rm.info,
21171         ada/gnat_ug_unx.dvi, ada/gnat_ug_vms.dvi, ada/gnat_ug_vxw.dvi,
21172         ada/gnat_ug_wnt.dvi, ada/gnat_rm.dvi): Depend on
21173         $(srcdir)/doc/include/gcc-common.texi.
21174
21175 2002-12-15   Geert Bosch <bosch@gnat.com>
21176
21177         * sem_ch6.adb (Analyze_Subprogram_Body): Fix typo and formatting
21178
21179 2002-12-14   Geert Bosch <bosch@gnat.com>
21180
21181         * sem_ch6.adb (Analyze_Subprogram_Body): Recognize additional
21182         case of a body created for a Renaming_As_Body, on which
21183         conformance checks are not performed. Fixes PR ada/5690.
21184
21185 2002-11-30  Zack Weinberg  <zack@codesourcery.com>
21186
21187         * cuintp.c, decl.c, deftarg.c, misc.c, targtyps.c, trans.c,
21188         utils.c, utils2.c: Include coretypes.h and tm.h, and system.h when
21189         not already included.
21190         * Make-lang.in: Update dependencies.
21191
21192 2002-11-18  Nathanael Nerode  <neroden@gcc.gnu.org>
21193         * adaint.c (__gnat_tmp_name): Better, but good enough for now,
21194         solution to buffer overflow bug on GNU/Linux.
21195
21196 2002-11-14  Nathanael Nerode  <neroden@gcc.gnu.org>
21197         Closes PR ada/5856 and PR ada/6919 !
21198         * bindgen.adb: Remove all references to Public_Version.
21199         * comperr.adb: Remove all references to Public_Version and
21200         GNATPRO_Version; correct bug reporting instructions.
21201         * comperr.ads: Change to match bug box.
21202         * gnatvsn.ads: Remove all references to Public version and
21203         GNATPRO version.
21204
21205 2002-11-13  Nathanael Nerode  <neroden@gcc.gnu.org>
21206         PR ada/6919
21207         * adaint.c (__gnat_tmp_name): Remove buffer overflow bug on
21208         GNU/Linux.
21209
21210         PR ada/6558
21211         * config-lang.in: Remove diff_excludes.
21212
21213 2002-11-05  Graham Stott  <graham.stott@btinternet.com>
21214         PR ada/8358
21215         * trans.c (gnu_pending_elaboration_lists): New GC root.
21216         (build_unit_elab): Use..
21217
21218 2002-10-30   Geert Bosch <bosch@gnat.com>
21219         PR ada/6558
21220         * misc.c : Include optabs.h
21221
21222         * Make-lang.in (misc.o): Add dependency on optabs.h
21223
21224 2002-10-29   Geert Bosch <bosch@gnat.com>
21225         PR ada/6558
21226         * Make-lang.in (gnatbind): Depend on CONFIG_H
21227
21228 2002-10-29  Geert bosch  <bosch@gnat.com>
21229         PR ada/6558
21230         * misc.c: Unrevert misc.c (1.13)
21231
21232 2002-10-28  Nathanael Nerode  <neroden@gcc.gnu.org>
21233
21234         * a-chlat9.ads a-cwila9.ads a-dynpri.adb a-retide.adb: Update
21235         maintainership comments.
21236
21237 2002-09-25  Nathanael Nerode  <neroden@gcc.gnu.org>
21238         PR ada/5904
21239         * 5ataprop.adb 5atpopsp.adb 5bosinte.adb 5ftaprop.adb
21240         5gtaprop.adb 5htaprop.adb 5rosinte.ads 5staprop.adb
21241         5stpopse.adb 5vtaspri.ads 5zintman.adb 5ztaprop.adb
21242         7staprop.adb: Correct statements in comments about
21243         maintainership of GNAT.
21244
21245         PR ada/5904
21246         * 1ssecsta.adb 1ssecsta.ads adadecode.c adadecode.h aux-io.c
21247         gnatname.adb gnatname.ads mkdir.c osint-b.adb osint-b.ads
21248         osint-c.adb osint-c.ads osint-l.adb osint-l.ads osint-m.adb
21249         osint-m.ads prj-makr.adb prj-makr.ads prj-pp.adb prj-pp.ads
21250         s-atacco.ads s-traceb.adb s-traceb.ads s-traces.adb
21251         s-traces.ads s-tratas.adb s-tratas.ads sinput-d.adb
21252         sinput-d.ads switch-b.adb switch-b.ads switch-c.adb
21253         switch-c.ads switch-m.adb switch-m.ads: Correct statements in
21254         comments about maintainership of GNAT.
21255
21256         PR ada/6919 (forward port of patch for PR ada/5904)
21257         * 1aexcept.adb 1aexcept.ads 41intnam.ads 42intnam.ads
21258         4aintnam.ads 4cintnam.ads 4dintnam.ads 4hexcpol.adb
21259         4lintnam.ads 4mintnam.ads 4nintnam.ads 4onumaux.ads
21260         4pintnam.ads 4rintnam.ads 4sintnam.ads 4uintnam.ads
21261         4vcalend.adb 4vintnam.ads 4wcalend.adb 4wexcpol.adb
21262         4wintnam.ads 4zintnam.ads 4znumaux.ads 4zsytaco.adb
21263         4zsytaco.ads 51osinte.adb 51osinte.ads 52osinte.adb
21264         52osinte.ads 52system.ads 53osinte.ads 5aosinte.ads
21265         5asystem.ads 5atasinf.ads 5ataspri.ads 5avxwork.ads
21266         5bosinte.ads 5bsystem.ads 5cosinte.ads 5dosinte.ads
21267         5esystem.ads 5fosinte.ads 5fsystem.ads 5ftasinf.ads
21268         5ginterr.adb 5gmastop.adb 5gosinte.ads 5gproinf.adb
21269         5gproinf.ads 5gsystem.ads 5gtasinf.adb 5gtasinf.ads
21270         5gtpgetc.adb 5hparame.ads 5hsystem.ads 5htaspri.ads
21271         5iosinte.ads 5itaspri.ads 5ksystem.ads 5kvxwork.ads
21272         5losinte.ads 5lsystem.ads 5mosinte.ads 5mvxwork.ads
21273         5ninmaop.adb 5nintman.adb 5nosinte.ads 5ntaspri.ads
21274         5oosprim.adb 5oparame.adb 5osystem.ads 5posinte.ads
21275         5posprim.adb 5pvxwork.ads 5rosinte.ads 5rparame.adb
21276         5sintman.adb 5sosinte.ads 5sparame.adb 5ssystem.ads
21277         5stasinf.adb 5stasinf.ads 5staspri.ads 5svxwork.ads
21278         5tosinte.ads 5uosinte.ads 5vasthan.adb 5vinterr.adb
21279         5vintman.ads 5vosinte.ads 5vosprim.adb 5vosprim.ads
21280         5vparame.ads 5vsystem.ads 5vtaspri.ads 5vtpopde.adb
21281         5vtpopde.ads 5vvaflop.adb 5wintman.adb 5wmemory.adb
21282         5wosinte.ads 5wosprim.adb 5wsystem.ads 5wtaprop.adb
21283         5wtaspri.ads 5ysystem.ads 5zinterr.adb 5zosinte.adb
21284         5zosinte.ads 5zosprim.adb 5zsystem.ads 6vcpp.adb 6vcstrea.adb
21285         7sosprim.adb 86numaux.adb 86numaux.ads 9drpc.adb a-astaco.adb
21286         a-caldel.ads a-calend.adb a-calend.ads a-chahan.adb
21287         a-chahan.ads a-colien.adb a-colien.ads a-colire.adb
21288         a-colire.ads a-comlin.adb a-comlin.ads a-cwila1.ads
21289         a-decima.adb a-decima.ads a-diocst.adb a-diocst.ads
21290         a-direio.adb a-direio.ads a-einuoc.adb a-einuoc.ads
21291         a-except.adb a-except.ads a-excpol.adb a-exctra.adb
21292         a-exctra.ads a-filico.adb a-filico.ads a-finali.adb
21293         a-finali.ads a-interr.ads a-intsig.adb a-intsig.ads
21294         a-ngcefu.adb a-ngcoty.adb a-ngcoty.ads a-ngelfu.adb
21295         a-nudira.adb a-nudira.ads a-nuflra.adb a-nuflra.ads
21296         a-numaux.ads a-reatim.ads a-retide.ads a-sequio.adb
21297         a-sequio.ads a-siocst.adb a-siocst.ads a-ssicst.adb
21298         a-ssicst.ads a-stmaco.ads a-storio.adb a-strbou.adb
21299         a-strbou.ads a-stream.ads a-strfix.adb a-strfix.ads
21300         a-strmap.adb a-strmap.ads a-strsea.adb a-strsea.ads
21301         a-strunb.adb a-strunb.ads a-ststio.adb a-ststio.ads
21302         a-stunau.adb a-stunau.ads a-stwibo.adb a-stwibo.ads
21303         a-stwifi.adb a-stwima.adb a-stwima.ads a-stwise.adb
21304         a-stwise.ads a-stwiun.adb a-stwiun.ads a-suteio.adb
21305         a-suteio.ads a-swmwco.ads a-swuwti.adb a-swuwti.ads
21306         a-sytaco.adb a-sytaco.ads a-tags.adb a-tags.ads a-tasatt.ads
21307         a-taside.adb a-taside.ads a-teioed.adb a-teioed.ads
21308         a-textio.adb a-textio.ads a-ticoau.adb a-ticoau.ads
21309         a-ticoio.adb a-ticoio.ads a-tideau.adb a-tideau.ads
21310         a-tideio.adb a-tideio.ads a-tienau.adb a-tienau.ads
21311         a-tienio.adb a-tienio.ads a-tifiio.adb a-tifiio.ads
21312         a-tiflau.adb a-tiflau.ads a-tiflio.adb a-tiflio.ads
21313         a-tigeau.adb a-tigeau.ads a-tiinau.adb a-tiinau.ads
21314         a-tiinio.adb a-tiinio.ads a-timoau.adb a-timoau.ads
21315         a-timoio.adb a-timoio.ads a-tiocst.adb a-tiocst.ads
21316         a-titest.adb a-witeio.adb a-witeio.ads a-wtcoau.adb
21317         a-wtcoau.ads a-wtcoio.adb a-wtcstr.adb a-wtcstr.ads
21318         a-wtdeau.adb a-wtdeau.ads a-wtdeio.adb a-wtdeio.ads
21319         a-wtedit.adb a-wtedit.ads a-wtenau.adb a-wtenau.ads
21320         a-wtenio.adb a-wtenio.ads a-wtfiio.adb a-wtfiio.ads
21321         a-wtflau.adb a-wtflau.ads a-wtflio.adb a-wtflio.ads
21322         a-wtgeau.adb a-wtgeau.ads a-wtinau.adb a-wtinau.ads
21323         a-wtinio.adb a-wtmoau.adb a-wtmoau.ads a-wtmoio.adb
21324         a-wtmoio.ads a-wttest.adb ada-tree.def ada-tree.h ada.h
21325         adaint.c adaint.h ali-util.adb ali-util.ads ali.adb ali.ads
21326         alloc.ads argv.c atree.adb atree.ads atree.h back_end.adb
21327         back_end.ads bcheck.adb bcheck.ads binde.adb binde.ads
21328         binderr.adb binderr.ads bindgen.adb bindgen.ads bindusg.adb
21329         bindusg.ads butil.adb butil.ads cal.c casing.adb casing.ads
21330         ceinfo.adb checks.adb checks.ads cio.c comperr.adb comperr.ads
21331         csets.adb csets.ads csinfo.adb cstand.adb cstand.ads
21332         cstreams.c cuintp.c debug.adb debug.ads debug_a.adb
21333         debug_a.ads dec-io.adb dec-io.ads dec.ads decl.c deftarg.c
21334         einfo.adb einfo.ads einfo.h elists.adb elists.ads elists.h
21335         errno.c errout.adb errout.ads eval_fat.adb eval_fat.ads exit.c
21336         exp_aggr.adb exp_aggr.ads exp_attr.adb exp_attr.ads
21337         exp_ch10.ads exp_ch11.adb exp_ch11.ads exp_ch12.adb
21338         exp_ch12.ads exp_ch13.adb exp_ch13.ads exp_ch2.adb exp_ch2.ads
21339         exp_ch3.adb exp_ch3.ads exp_ch4.adb exp_ch4.ads exp_ch5.adb
21340         exp_ch5.ads exp_ch6.adb exp_ch6.ads exp_ch7.adb exp_ch7.ads
21341         exp_ch8.adb exp_ch8.ads exp_ch9.adb exp_ch9.ads exp_code.adb
21342         exp_code.ads exp_dbug.adb exp_dbug.ads exp_disp.adb
21343         exp_disp.ads exp_dist.adb exp_dist.ads exp_fixd.adb
21344         exp_fixd.ads exp_imgv.adb exp_imgv.ads exp_intr.adb
21345         exp_intr.ads exp_pakd.adb exp_pakd.ads exp_prag.adb
21346         exp_prag.ads exp_smem.adb exp_smem.ads exp_strm.adb
21347         exp_strm.ads exp_tss.adb exp_tss.ads exp_util.adb exp_util.ads
21348         exp_vfpt.adb exp_vfpt.ads expander.adb expander.ads fe.h
21349         final.c fmap.adb fmap.ads fname-sf.adb fname-sf.ads
21350         fname-uf.adb fname-uf.ads fname.adb fname.ads freeze.adb
21351         freeze.ads frontend.adb frontend.ads g-calend.ads g-comlin.adb
21352         g-debpoo.adb g-debpoo.ads g-locfil.adb g-os_lib.ads
21353         g-regist.adb g-regist.ads get_targ.adb get_targ.ads gigi.h
21354         gmem.c gnat1drv.adb gnat1drv.ads gnat_ug.texi gnatbind.adb
21355         gnatbind.ads gnatbl.c gnatcmd.adb gnatcmd.ads gnatdll.adb
21356         gnatfind.adb gnatkr.adb gnatkr.ads gnatlbr.adb gnatlink.adb
21357         gnatlink.ads gnatls.adb gnatls.ads gnatmake.adb gnatmake.ads
21358         gnatmem.adb gnatprep.adb gnatprep.ads gnatpsta.adb gnatvsn.ads
21359         gnatxref.adb hlo.adb hlo.ads hostparm.ads i-c.adb i-cexten.ads
21360         i-cobol.adb i-cobol.ads i-cpoint.adb i-cpoint.ads i-cpp.adb
21361         i-cpp.ads i-cstrea.adb i-cstrea.ads i-cstrin.adb i-cstrin.ads
21362         i-fortra.adb i-os2err.ads i-os2lib.adb i-os2lib.ads
21363         i-os2syn.ads i-os2thr.ads i-pacdec.adb i-pacdec.ads
21364         impunit.adb impunit.ads init.c inline.adb inline.ads io-aux.c
21365         itypes.adb itypes.ads krunch.adb krunch.ads lang-options.h
21366         lang-specs.h layout.adb layout.ads lib-list.adb lib-load.adb
21367         lib-load.ads lib-sort.adb lib-util.adb lib-util.ads
21368         lib-writ.adb lib-writ.ads lib-xref.adb lib-xref.ads lib.adb
21369         lib.ads link.c live.adb live.ads make.adb make.ads makeusg.adb
21370         makeusg.ads math_lib.adb mdll.adb mdll.ads memtrack.adb misc.c
21371         namet.adb namet.ads namet.h nlists.adb nlists.ads nlists.h
21372         nmake.adb nmake.ads nmake.adt opt.adb opt.ads osint.adb
21373         osint.ads output.adb output.ads par-ch10.adb par-ch11.adb
21374         par-ch12.adb par-ch13.adb par-ch2.adb par-ch3.adb par-ch4.adb
21375         par-ch5.adb par-ch6.adb par-ch7.adb par-ch8.adb par-ch9.adb
21376         par-endh.adb par-labl.adb par-load.adb par-prag.adb
21377         par-sync.adb par-tchk.adb par-util.adb par.adb par.ads
21378         prj-attr.adb prj-attr.ads prj-com.adb prj-com.ads prj-dect.adb
21379         prj-dect.ads prj-env.adb prj-env.ads prj-ext.adb prj-ext.ads
21380         prj-nmsc.adb prj-nmsc.ads prj-pars.adb prj-pars.ads
21381         prj-part.adb prj-part.ads prj-proc.adb prj-proc.ads
21382         prj-strt.adb prj-strt.ads prj-tree.adb prj-tree.ads
21383         prj-util.adb prj-util.ads prj.adb prj.ads raise.c raise.h
21384         repinfo.adb repinfo.ads repinfo.h restrict.adb restrict.ads
21385         rident.ads rtsfind.adb rtsfind.ads s-addima.adb s-addima.ads
21386         s-arit64.adb s-arit64.ads s-assert.adb s-assert.ads
21387         s-asthan.adb s-asthan.ads s-atacco.adb s-auxdec.adb
21388         s-auxdec.ads s-bitops.adb s-bitops.ads s-chepoo.ads
21389         s-direio.adb s-direio.ads s-except.ads s-exctab.adb
21390         s-exctab.ads s-exnflt.ads s-exngen.adb s-exngen.ads
21391         s-exnint.ads s-exnlfl.ads s-exnlin.ads s-exnllf.ads
21392         s-exnlli.ads s-exnsfl.ads s-exnsin.ads s-exnssi.ads
21393         s-expflt.ads s-expgen.adb s-expgen.ads s-expint.ads
21394         s-explfl.ads s-explin.ads s-expllf.ads s-explli.ads
21395         s-expllu.adb s-expllu.ads s-expmod.adb s-expmod.ads
21396         s-expsfl.ads s-expsin.ads s-expssi.ads s-expuns.adb
21397         s-expuns.ads s-fatflt.ads s-fatgen.adb s-fatgen.ads
21398         s-fatlfl.ads s-fatllf.ads s-fatsfl.ads s-ficobl.ads
21399         s-fileio.adb s-fileio.ads s-finimp.adb s-finimp.ads
21400         s-finroo.adb s-finroo.ads s-fore.adb s-fore.ads s-imgbiu.adb
21401         s-imgbiu.ads s-imgboo.adb s-imgboo.ads s-imgcha.adb
21402         s-imgcha.ads s-imgdec.adb s-imgdec.ads s-imgenu.adb
21403         s-imgenu.ads s-imgint.adb s-imgint.ads s-imgllb.adb
21404         s-imgllb.ads s-imglld.adb s-imglld.ads s-imglli.adb
21405         s-imglli.ads s-imgllu.adb s-imgllu.ads s-imgllw.adb
21406         s-imgllw.ads s-imgrea.adb s-imgrea.ads s-imguns.adb
21407         s-imguns.ads s-imgwch.adb s-imgwch.ads s-imgwiu.adb
21408         s-imgwiu.ads s-inmaop.ads s-interr.adb s-interr.ads
21409         s-intman.ads s-io.adb s-io.ads s-maccod.ads s-mantis.adb
21410         s-mantis.ads s-memory.adb s-memory.ads s-osprim.ads
21411         s-pack03.adb s-pack03.ads s-pack05.adb s-pack05.ads
21412         s-pack06.adb s-pack06.ads s-pack07.adb s-pack07.ads
21413         s-pack09.adb s-pack09.ads s-pack10.adb s-pack10.ads
21414         s-pack11.adb s-pack11.ads s-pack12.adb s-pack12.ads
21415         s-pack13.adb s-pack13.ads s-pack14.adb s-pack14.ads
21416         s-pack15.adb s-pack15.ads s-pack17.adb s-pack17.ads
21417         s-pack18.adb s-pack18.ads s-pack19.adb s-pack19.ads
21418         s-pack20.adb s-pack20.ads s-pack21.adb s-pack21.ads
21419         s-pack22.adb s-pack22.ads s-pack23.adb s-pack23.ads
21420         s-pack24.adb s-pack24.ads s-pack25.adb s-pack25.ads
21421         s-pack26.adb s-pack26.ads s-pack27.adb s-pack27.ads
21422         s-pack28.adb s-pack28.ads s-pack29.adb s-pack29.ads
21423         s-pack30.adb s-pack30.ads s-pack31.adb s-pack31.ads
21424         s-pack33.adb s-pack33.ads s-pack34.adb s-pack34.ads
21425         s-pack35.adb s-pack35.ads s-pack36.adb s-pack36.ads
21426         s-pack37.adb s-pack37.ads s-pack38.adb s-pack38.ads
21427         s-pack39.adb s-pack39.ads s-pack40.adb s-pack40.ads
21428         s-pack41.adb s-pack41.ads s-pack42.adb s-pack42.ads
21429         s-pack43.adb s-pack43.ads s-pack44.adb s-pack44.ads
21430         s-pack45.adb s-pack45.ads s-pack46.adb s-pack46.ads
21431         s-pack47.adb s-pack47.ads s-pack48.adb s-pack48.ads
21432         s-pack49.adb s-pack49.ads s-pack50.adb s-pack50.ads
21433         s-pack51.adb s-pack51.ads s-pack52.adb s-pack52.ads
21434         s-pack53.adb s-pack53.ads s-pack54.adb s-pack54.ads
21435         s-pack55.adb s-pack55.ads s-pack56.adb s-pack56.ads
21436         s-pack57.adb s-pack57.ads s-pack58.adb s-pack58.ads
21437         s-pack59.adb s-pack59.ads s-pack60.adb s-pack60.ads
21438         s-pack61.adb s-pack61.ads s-pack62.adb s-pack62.ads
21439         s-pack63.adb s-pack63.ads s-parame.adb s-parame.ads
21440         s-parint.adb s-parint.ads s-pooglo.adb s-pooglo.ads
21441         s-pooloc.adb s-pooloc.ads s-poosiz.adb s-poosiz.ads
21442         s-powtab.ads s-proinf.adb s-proinf.ads s-rpc.adb s-rpc.ads
21443         s-scaval.ads s-secsta.adb s-secsta.ads s-sequio.adb
21444         s-sequio.ads s-shasto.adb s-shasto.ads s-soflin.adb
21445         s-soflin.ads s-sopco3.adb s-sopco3.ads s-sopco4.adb
21446         s-sopco4.ads s-sopco5.adb s-sopco5.ads s-stache.adb
21447         s-stache.ads s-stalib.adb s-stalib.ads s-stoele.adb
21448         s-stopoo.ads s-stratt.adb s-stratt.ads s-strops.adb
21449         s-strops.ads s-taprob.ads s-taprop.ads s-tarest.ads
21450         s-tasdeb.adb s-tasdeb.ads s-tasinf.adb s-tasinf.ads
21451         s-tasini.ads s-taskin.ads s-tasren.ads s-tasres.ads
21452         s-tassta.ads s-tpinop.adb s-tpinop.ads s-tpoben.ads
21453         s-tpobop.ads s-unstyp.ads s-vaflop.adb s-vaflop.ads
21454         s-valboo.adb s-valboo.ads s-valcha.adb s-valcha.ads
21455         s-valdec.adb s-valdec.ads s-valenu.adb s-valenu.ads
21456         s-valint.adb s-valint.ads s-vallld.adb s-vallld.ads
21457         s-vallli.adb s-vallli.ads s-valllu.adb s-valllu.ads
21458         s-valrea.adb s-valrea.ads s-valuns.adb s-valuns.ads
21459         s-valuti.adb s-valuti.ads s-valwch.adb s-valwch.ads
21460         s-vercon.adb s-vercon.ads s-vmexta.adb s-vmexta.ads
21461         s-wchcnv.adb s-wchcnv.ads s-wchcon.ads s-wchjis.adb
21462         s-wchjis.ads s-wchstw.adb s-wchstw.ads s-wchwts.adb
21463         s-wchwts.ads s-widboo.adb s-widboo.ads s-widcha.adb
21464         s-widcha.ads s-widenu.adb s-widenu.ads s-widlli.adb
21465         s-widlli.ads s-widllu.adb s-widllu.ads s-widwch.adb
21466         s-widwch.ads s-wwdcha.adb s-wwdcha.ads s-wwdenu.adb
21467         s-wwdenu.ads s-wwdwch.adb s-wwdwch.ads scans.adb scans.ads
21468         scn-nlit.adb scn-slit.adb scn.adb scn.ads sdefault.ads sem.adb
21469         sem.ads sem_aggr.adb sem_aggr.ads sem_attr.adb sem_attr.ads
21470         sem_case.adb sem_case.ads sem_cat.adb sem_cat.ads sem_ch10.adb
21471         sem_ch10.ads sem_ch11.adb sem_ch11.ads sem_ch12.adb
21472         sem_ch12.ads sem_ch13.adb sem_ch13.ads sem_ch2.adb sem_ch2.ads
21473         sem_ch3.adb sem_ch3.ads sem_ch4.adb sem_ch4.ads sem_ch5.adb
21474         sem_ch5.ads sem_ch6.adb sem_ch6.ads sem_ch7.adb sem_ch7.ads
21475         sem_ch8.adb sem_ch8.ads sem_ch9.adb sem_ch9.ads sem_disp.adb
21476         sem_disp.ads sem_dist.adb sem_dist.ads sem_elab.adb
21477         sem_elab.ads sem_elim.adb sem_elim.ads sem_eval.adb
21478         sem_eval.ads sem_intr.adb sem_intr.ads sem_maps.adb
21479         sem_maps.ads sem_mech.adb sem_mech.ads sem_prag.adb
21480         sem_prag.ads sem_res.adb sem_res.ads sem_smem.adb sem_smem.ads
21481         sem_type.adb sem_type.ads sem_util.adb sem_util.ads
21482         sem_vfpt.adb sem_vfpt.ads sem_warn.adb sem_warn.ads
21483         sfn_scan.adb sfn_scan.ads sinfo-cn.adb sinfo-cn.ads sinfo.adb
21484         sinfo.ads sinfo.h sinput-l.adb sinput-l.ads sinput-p.adb
21485         sinput-p.ads sinput.adb sinput.ads snames.adb snames.ads
21486         snames.h sprint.adb sprint.ads stand.adb stand.ads stringt.adb
21487         stringt.ads stringt.h style.adb style.ads stylesw.adb
21488         stylesw.ads switch.adb switch.ads sysdep.c system.ads
21489         table.adb table.ads targparm.adb targparm.ads targtyps.c
21490         tbuild.adb tbuild.ads trans.c tree_gen.adb tree_gen.ads
21491         tree_in.adb tree_in.ads tree_io.adb tree_io.ads treepr.adb
21492         treepr.ads treeprs.ads treeprs.adt ttypef.ads ttypes.ads
21493         types.adb types.ads types.h uintp.adb uintp.ads uintp.h
21494         uname.adb uname.ads urealp.adb urealp.ads urealp.h usage.adb
21495         usage.ads utils.c utils2.c validsw.adb validsw.ads
21496         widechar.adb widechar.ads xeinfo.adb xnmake.adb xr_tabls.adb
21497         xr_tabls.ads xref_lib.adb xref_lib.ads xsinfo.adb xsnames.adb
21498         xtreeprs.adb: Correct statements in comments about maintainership
21499         of GNAT.
21500
21501 2002-09-23  Zack Weinberg  <zack@codesourcery.com>
21502
21503         * Make-lang.in (EXTRA_GNATBIND_OBJS): Add version.o.
21504         * Makefile.in (TOOLS_LIBS): Add ../../version.o.
21505         * gnatvsn.ads: Gnat_Version_String is now a function.
21506         * gnatvsn.adb: New file.  When asked for Gnat_Version_String,
21507         copy the C version_string into a String and return it.
21508         * gnatcmd.adb, gnatkr.adb, gnatlbr.adb, gnatlink.adb,
21509         gnatls.adb,gnatmake.adb, gnatprep.adb, gnatpsta.adb:
21510         Remove pragma Ident (Gnat_Version_String).  If this was the
21511         sole use of package Gnatvsn, remove the with statement too.
21512         * gnat1drv.adb: Tweak -gnatv output.
21513
21514 2002-09-17  Richard Henderson  <rth@redhat.com>
21515
21516         * trans.c (tree_transform): Use real_ldexp not REAL_VALUE_LDEXP.
21517         * config/dsp16xx/dsp16xx.md (fixuns_trunchfhi2): Use real_2expN.
21518         * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
21519         (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
21520         * config/m68k/m68k.c (floating_exact_log2): Use real_exponent
21521         and real_2expN instead of a loop.
21522         * doc/tm.texi (REAL_VALUE_LDEXP): Remove.
21523         (REAL_VALUE_RNDZINT, REAL_VALUE_UNSIGNED_RNDZINT): Remove.
21524
21525 2002-08-25  Andre Leis <a.leis@gmx.net>
21526             David Billinghurst (David.Billinghurst@riotinto.com>
21527
21528         * sysdep.c (__gnat_ttyname): include <termios.h> on cygwin
21529
21530 2002-08-13  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
21531
21532         * Make-lang.in (gnatbind$(exeext)): Link with $(SYSLIBS).
21533         Remove $(CONFIG_H) dependency.
21534
21535 2002-08-08  Nathan Sidwell  <nathan@codesourcery.com>
21536
21537         * ada/Make-lang.in (ada.mostlyclean): Remove coverage files.
21538
21539 2002-07-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21540
21541         * adadecode.c (ada_demangle): Use xstrdup in lieu of
21542         xmalloc/strcpy.
21543         * misc.c (gnat_decode_option): Likewise.
21544
21545 2002-07-15  Florian Weimer  <fw@deneb.enyo.de>
21546
21547         * make.adb (Add_Switch): Make Generic_Position a procedure.  The
21548         function approach did not work well because of a side effect (the
21549         function call could reallocate the table which was being indexed
21550         using its result). Fixes ada/4851. [RESURRECTED]
21551
21552 2002-07-01  Roger Sayle  <roger@eyesopen.com>
21553
21554         * ada/utils.c (builtin_function): Accept an additional parameter.
21555
21556 2002-06-28  Andreas Jaeger  <aj@suse.de>
21557
21558         PR ada/7144
21559         * Makefile.in: Fix typo in comment, patch by Adrian Knoth
21560         <adi@thur.de>.
21561
21562 2002-06-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21563
21564         * Makefile.in (SHELL): Set to @SHELL@.
21565
21566 2002-06-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21567
21568         * utils.c (init_gigi_decls): Use ARRAY_SIZE in lieu of explicit
21569         array size calculation.
21570
21571 2002-06-04  Andreas Jaeger  <aj@suse.de>
21572
21573         * Make-lang.in (gnatbind): Readd rule that has been lost in last
21574         patch.
21575
21576 2002-06-03  Geoffrey Keating  <geoffk@redhat.com>
21577
21578         Merge from pch-branch:
21579
21580         * config-lang.in (gtfiles): Add ada-tree.h.
21581         * ada-tree.h (SET_TYPE_CI_CO_LIST): New.
21582         (SET_TYPE_MODULUS): New.
21583         (SET_TYPE_INDEX): New.
21584         (SET_TYPE_DIGITS_VALUE): New.
21585         (SET_TYPE_RM_SIZE): New.
21586         (SET_TYPE_UNCONSTRAINED_ARRAY): New.
21587         (SET_TYPE_ADA_SIZE): New.
21588         (SET_TYPE_ACTUAL_BOUNDS): New.
21589         (SET_DECL_CONST_CORRESPONDING_VAR): New.
21590         (SET_DECL_ORIGINAL_FIELD): New.
21591         (TREE_LOOP_ID): Correct typo.
21592         * decl.c: Use new macros.
21593         * utils.c: Include debug.h, use new macros.
21594         * utils2.c: Use new macros.
21595
21596         * ada-tree.h: Update all macros for new tree description.
21597         (struct tree_loop_id): New.
21598         (union lang_tree_node): New.
21599         (struct lang_decl): New.
21600         (struct lang_type): New.
21601         * misc.c (gnat_mark_tree): Delete.
21602         (LANG_HOOKS_MARK_TREE): Delete.
21603         * trans.c (tree_transform): No longer any need to cast
21604         for TREE_LOOP_ID.
21605
21606         * utils.c (struct language_function): New dummy structure.
21607
21608         * Makefile.in (decl.o): gt-ada-<filename.h> is in objdir, not srcdir.
21609         (misc.o): Likewise.
21610         (utils.o): Likewise; also gtype-ada.h.
21611         * Make-lang.in (gnat1): Add dependency on s-gtype.
21612         (gnatbind): Add dependency on $(CONFIG_H).
21613         * utils.c: Correct last #include.
21614         (stuct e_stack): Remove unnecessary 'static'.
21615         (mark_e_stack): Remove unused prototype.
21616
21617         * scn-nlit.adb: Remove whitespace after version number to
21618         keep lines under 80 chars.
21619         * snames.adb: Likewise.
21620         * treepr.ads: Likewise.
21621
21622         * Makefile.in (decl.o): Include gt-ada-<filename>.h.
21623         (misc.o): Likewise.
21624         (utils.o): Include gt-ada-<filename>.h and gtype-ada.h.
21625         * config-lang.in (gtfiles): New.
21626         * decl.c: Use gengtype for roots.
21627         * gigi.h: Use gengtype for roots.
21628         * trans.c: Use gengtype for roots.
21629         * utils.c: Use gengtype for roots, marking.  Include gtype-ada.h.
21630
21631 2002-06-02  Gabriel Dos Reis  <gdr@codesourcery.com>
21632
21633         * misc.c (gnat_init): Adjust setting of internal_error_function.
21634
21635 2002-06-01  Joseph S. Myers  <jsm28@cam.ac.uk>
21636
21637         * gnat_ug.texi: Use @ifnottex instead of @ifinfo.
21638         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
21639         gnat_ug_wnt.texi: Regenerate.
21640
21641 2002-05-31  Florian Weimer  <fw@deneb.enyo.de>
21642
21643         * 5ntaprop.adb (with System.OS_Primitives): Remove.
21644
21645         * cstreams.c (max_path_len): Move from here ...
21646         * adaint.c (__gnat_max_path_len): ... to here.
21647         * adaint.c (__gnat_max_path_len): Declare.
21648         * g-dirope.adb (Max_Path): Adjust.
21649         * g-os_lib.adb (Normalize_Pathname.Max_Path): Adjust.
21650         * i-cstrea.ads (max_path_len): Adjust.
21651         * osint.adb (Get_RTS_Search_Dir.Max_Path): Adjust.
21652         * xr_tabls.adb (Dir_Name.Max_Path: Adjust.
21653
21654         * Makefile.in, Make-lang.in: Documentation is now built in
21655         Make-lang.in.  Store Info and generated Texinfo files in the
21656         source directory.
21657         * gnat_ug.texi: Remove CVS keywords, correct version number.
21658         Set file name correctly.
21659
21660         * gnat_ug_*.texi: Add.
21661         * .cvsignore: Ignore generated Texinfo files.
21662
21663 2002-05-30  Zack Weinberg  <zack@codesourcery.com>
21664
21665         * ada.h: Add MI guard macro.
21666         (SUBTYPE): Define constants with an anonymous enum, not static
21667         const variables.
21668         (IN): Cast constants to appropriate type before use.
21669
21670 2002-05-26  Joseph S. Myers  <jsm28@cam.ac.uk>
21671
21672         * gnatvsn.ads (Gnat_Version_String): Change to "3.2 20020526
21673         (experimental)".
21674
21675 2002-05-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
21676
21677         * Make-lang.in (CP, ECHO): Copy from Makefile.in.
21678         (X_ADA_CFLAGS, T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS): Likewise.
21679         (ALL_ADAFLAGS, FORCE_DEBUG_ADAFLAGS, ADA_CFLAGS): Likewise.
21680         (ALL_ADA_CFLAGS): Likewise.
21681         (ADA_INCLUDES): Likewise.
21682         Adapt for new working dir.
21683         (GNATBIND): Use Makefile.in version.
21684         (.SUFFIXES): Copy from Makefile.in.
21685         (ada-warn): Define.
21686         (.adb.o, .ads.o): Copy from Makefile.in.
21687         Added $(OUTPUT_OPTION).
21688         (GNAT1_C_OBJS): Moved from Makefile.in.
21689         Prefix with ada subdir.
21690         (GNAT_ADA_OBJS, GNAT1_ADA_OBJS, GNAT1_OBJS, GNATBIND_OBJS): Likewise.
21691         (EXTRA_GNAT1_OBJS): Moved from Makefile.in.
21692         Adapt for new working dir.
21693         (EXTRA_GNATBIND_OBJS): Likewise.
21694         (ADA_BACKEND): Moved from Makefile.in.
21695         Renamed to avoid conflict with global BACKEND.
21696         Use that one.
21697         (TARGET_ADA_SRCS): Moved from Makefile.in.
21698         (gnat1$(exeext)): Replaced recursive rule with Makefile.in version.
21699         Use ADA_BACKEND.
21700         (gnatbind$(exeext)): Replaced recursive rule with Makefile.in version.
21701         (ada_extra_files): Moved from Makefile.in.
21702         Prefix with ada subdir.
21703         (ada/b_gnat1.c, ada/b_gnat1.o, ada/b_gnatb.c, ada/b_gnatb.o): Likewise.
21704         (ada/treeprs.ads, ada/einfo.h, ada/sinfo.h, ada/nmake.adb): Likewise.
21705         (ada/nmake.ads): Likewise.
21706         (update-sources): Moved from Makefile.in.
21707         Prefix with ada subdir.
21708         (ada/sdefault.adb, ada/stamp-sdefault, ada/sdefault.o): Likewise.
21709         (ADA_TREE_H): Likewise.
21710         (ada/a-except.o, ada/s-assert.o, ada/s-memory.o): Likewise.
21711         (ada/memtrack.o): Likewise.
21712         (ada/adadecode.o): Likewise.
21713         Update dependencies.
21714         (ada/adaint.o): New.
21715         (ada/argv.o): Moved from Makefile.in.
21716         Prefix with ada subdir.
21717         Update dependencies.
21718         (ada/cstreams.o, ada/exit.o, ada/final.o, ada/link.o): Likewise.
21719         (ada/cio.o, ada/init.o, ada/raise.o, ada/tracebak.o): Likewise.
21720         (ada/cuintp.o, ada/decl.o, ada/misc.o): Moved from Makefile.in.
21721         Prefix with ada subdir.
21722         (ada/targtyps.o, ada/trans.o, ada/utils.o, ada/utils2.o): Likewise.
21723         (GNAT DEPENDENCIES): Regenerate.
21724         * Makefile.in (MACHMODE_H, RTL_H, TREE_H): Removed, provided by
21725         toplevel Makefile.in.
21726         (EXTRA_GNAT1_OBJS, EXTRA_GNATBIND_OBJS): Removed.
21727         (TARGET_ADA_SRCS): Removed.
21728         (GNAT1_C_OBJS, GNAT_ADA_OBJS, GNAT1_ADA_OBJS, GNAT1_OBJS): Likewise.
21729         (GNATBIND_OBJS): Likewise.
21730         (ADA_INCLUDE_DIR, ADA_RTL_OBJ_DIR): Moved here.
21731         (BACKEND): Removed.
21732         (../gnat1$(exeext), ../gnatbind$(exeext)): Likewise.
21733         (TREE_H): Likewise.
21734         (ada_extra_files): Likewise.
21735         (b_gnat1.c, b_gnat1.o, b_gnatb.c, b_gnatb.o): Likewise.
21736         (treeprs.ads, einfo.h, sinfo.h, nmake.adb, nmake.ads): Likewise.
21737         (update-sources): Likewise.
21738         (sdefault.adb, stamp-sdefault, sdefault.o): Likewise
21739         (ADA_TREE_H): Likewise.
21740         (adadecoce.o): Likewise.
21741         (cuintp.o, decl.o, misc.o, trans.o, utils.o, utils2.o): Likewise.
21742         (GNAT DEPENDENCIES): Likewise.
21743
21744 2002-05-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
21745
21746         * Makefile.adalib: Allow for PWDCMD to override hardcoded pwd.
21747         * Makefile.in: Likewise.
21748
21749 2002-05-14  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
21750
21751         * Make-lang.in (gnat1$(exeext), gnatbind$(exeext), gnattools):
21752         Restore $(CONFIG_H) and prefix.o dependencies.
21753         (ada.stage[1-4]): Depend on stage?-start.
21754
21755         * Makefile.in (b_gnatb.c): Depend on interfac.o.
21756
21757 2002-05-02  Jim Wilson  <wilson@redhat.com>
21758
21759         * utils.c (finish_record_type): Change record_size to record_type.
21760
21761 2001-05-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
21762
21763         * ada/Makefile.in (X_ADA_CFLAGS, T_ADA_CFLAGS): New fragment overrides.
21764         (ALL_ADA_CFLAGS): Define.  Replace ADA_CFLAGS with ALL_ADA_CFLAGS in
21765         ALL_ADAFLAGS, MOST_ADAFLAGS, and all compilations using CC.
21766
21767 2002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>
21768
21769         * misc.c (gnat_parse_file): Update.
21770
21771 2002-04-24  Neil Booth  <neil@daikokuya.demon.co.uk>
21772
21773         * misc.c (gnat_init): Don't set lang_attribute_common.
21774
21775 2002-04-21  Joseph S. Myers  <jsm28@cam.ac.uk>
21776
21777         * gnat_rm.texi: Use @ifnottex instead of @ifinfo.
21778
21779 2002-04-21  Florian Weimer  <fw@deneb.enyo.de>
21780
21781         * gnat_ug.texi: New file.
21782
21783         * gnat_rm.texi: Do not include texiplus.texi.  Include fdl.texi
21784         instead of gfdl.texi
21785
21786         * xgnatug.adb, ug_words: New files.
21787
21788         * Makefile.in (doc, dvi): New targets.  Build gnat_ug_*,
21789         gnat_rm and gnat-style manuals.
21790
21791 2002-04-18  Neil Booth  <neil@daikokuya.demon.co.uk>
21792
21793         * gigi.h (incomplete_type_error): Remove.
21794         * utils.c (incomplete_type_error): Remove.
21795
21796 2002-04-16  Mark Mitchell  <mark@codesourcery.com>
21797
21798         * trans.c (tree_transform): Add has_scope argument to
21799         expand_start_stmt_expr.
21800
21801 2002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>
21802
21803         * gigi.h (truthvalue_conversion): Rename.
21804         * misc.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
21805         * trans.c (tree_transform): Update.
21806         * utils2.c (truthvalue_conversion): Rename, update.
21807         (build_binary_op, build_unary_op): Update.
21808
21809 2002-04-04  Laurent Guerby  <guerby@acm.org>
21810
21811         * make.adb: Implement -margs, remove restriction about file name placement.
21812         * makeusg.adb: Documentation update.
21813         * Makefile.in (TOOLS_FLAGS_TO_PASS): Add VPATH=$(fsrcdir).
21814         * Makefile.in (gnattools3): Comment out, gnatmem does not build without libaddr2line.
21815
21816 2002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>
21817
21818         * utils.c (create_subprog_decl): Use SET_DECL_ASSEMBLER_NAME.
21819         (builtin_function): Similarly.
21820
21821 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
21822
21823         * decl.c (gnat_to_gnu_entity): Update.
21824         * gigi.h (mark_addressable): Rename.
21825         * misc.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
21826         * trans.c (tree_transform): Update.
21827         * utils.c (create_var_decl): Update.
21828         * util2.c (build_binary_op, build_unary_op,
21829         fill_vms_descriptor): Update.
21830         (mark_addressable): Rename, update.
21831
21832 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
21833
21834         * gigi.h (unsigned_type, signed_type, signed_or_unsigned_type):
21835         Rename.
21836         * misc.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
21837         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
21838         * trans.c (tree_transform, convert_with_check): Update.
21839         * utils.c (unsigned_type, signed_type, signed_or_unsigned_type):
21840         Rename.
21841
21842 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
21843
21844         * gigi.h (finish_incomplete_decl): Rename.
21845         * misc.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL): Redefine.
21846         * utils.c (gnat_init_decl_processing): Don't set hook.
21847         (finish_incomplete_decl): Rename.
21848
21849 2002-03-29  Andreas Schwab  <schwab@suse.de>
21850
21851         * Makefile.in: Pass VPATH=$(fsrcdir) when calling make in rts
21852         directory.
21853
21854 2001-03-28  Robert Dewar <dewar@gnat.com>
21855
21856         * checks.ads:
21857         (Remove_Checks): New procedure
21858
21859         * checks.adb:
21860         (Remove_Checks): New procedure
21861
21862         * exp_util.adb:
21863         Use new Duplicate_Subexpr functions
21864         (Duplicate_Subexpr_No_Checks): New procedure
21865         (Duplicate_Subexpr_No_Checks_Orig): New procedure
21866         (Duplicate_Subexpr): Restore original form (checks duplicated)
21867         (Duplicate_Subexpr): Call Remove_Checks
21868
21869         * exp_util.ads:
21870         (Duplicate_Subexpr_No_Checks): New procedure
21871         (Duplicate_Subexpr_No_Checks_Orig): New procedure
21872         Add 2002 to copyright notice
21873
21874         * sem_util.adb: Use new Duplicate_Subexpr functions
21875
21876         * sem_eval.adb:
21877         (Eval_Indexed_Component): This is the place to call
21878         Constant_Array_Ref and to replace the value. We simply merge
21879         the code of this function in here, since it is now no longer
21880         used elsewhere. This fixes the problem of the back end not
21881         realizing we were clever enough to see that this was
21882         constant.
21883         (Expr_Val): Remove call to Constant_Array_Ref
21884         (Expr_Rep_Val): Remove call to Constant_Array_Ref
21885         Minor reformatting
21886         (Constant_Array_Ref): Deal with string literals (patch
21887         suggested by Zack Weinberg on the gcc list)
21888
21889 2001-03-28  Ed Schonberg <schonber@gnat.com>
21890
21891         * exp_util.adb: Duplicate_Subexpr_No_Checks_Orig =>
21892         Duplicate_Subexpr_Move_Checks.
21893
21894         * exp_util.ads: Duplicate_Subexpr_No_Checks_Orig =>
21895         Duplicate_Subexpr_Move_Checks.
21896
21897         * sem_eval.adb: (Constant_Array_Ref): Verify that constant
21898         value of array exists before retrieving it (it may a private
21899         protected component in a function).
21900
21901 2002-03-28   Geert Bosch <bosch@gnat.com>
21902
21903         * prj-pp.adb : New file.
21904
21905         * prj-pp.ads : New file.
21906
21907 2002-03-28  Andreas Jaeger  <aj@suse.de>
21908
21909         * Makefile.in (stamp-sdefault): Fix path for Makefile.
21910
21911 2002-03-28  Neil Booth  <neil@daikokuya.demon.co.uk>
21912
21913         * misc.c (gnat_expand_expr): Move prototype.
21914
21915 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
21916
21917         * misc.c (insert_default_attributes): Remove.
21918
21919 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
21920
21921         * misc.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
21922         (gnat_init): Don't set hook.
21923         (gnat_expand_expr): Fix prototype.
21924
21925 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
21926
21927         * misc.c (ggc_p): Remove.
21928
21929 2002-03-27  Geert Bosch  <bosch@gnat.com>
21930
21931         * prj-makr.ads, prj-makr.adb : New files.
21932
21933 2002-03-26  Neil Booth  <neil@daikokuya.demon.co.uk>
21934
21935         * misc.c (LANG_HOOKS_MARK_TREE): Redefine.
21936         (lang_mark_tree): Make static, rename.
21937
21938 2002-03-25  Neil Booth  <neil@daikokuya.demon.co.uk>
21939
21940         * misc.c (maybe_build_cleanup): Remove.
21941
21942 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
21943
21944         * gigi.h (yyparse): Remove.
21945
21946 2002-03-23  Florian Weimer  <fw@deneb.enyo.de>
21947
21948         * gnat_rm.texi: Sync with ACT version.
21949           (From Ben Brosgol <brosgol@gnat.com>)
21950
21951 2002-03-20  Neil Booth  <neil@daikokuya.demon.co.uk>
21952
21953         * misc.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
21954         (gnat_init): Remove old hook.
21955
21956 2002-03-17  Neil Booth  <neil@daikokuya.demon.co.uk>
21957
21958         * misc.c (LANG_HOOKS_PARSE_FILE): Redefine.
21959         (yyparse): Rename gnat_parse_file.
21960
21961 2002-03-14  Geoffrey Keating  <geoffk@redhat.com>
21962
21963         Delete all lines containing "$Revision:".
21964         * xeinfo.adb: Don't look for revision numbers.
21965         * xnmake.adb: Likewise.
21966         * xsinfo.adb: Likewise.
21967         * xsnames.adb: Likewise.
21968         * xtreeprs.adb: Likewise.
21969
21970 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21971
21972         * misc.c (gnat_tree_code_type, gnat_tree_code_length,
21973         gnat_tree_code_name): Delete.
21974         (tree_code_type, tree_code_length, tree_code_name): Define.
21975         (gnat_init): Don't try to copy into the various tree_code
21976         arrays.
21977
21978 2002-03-11  Richard Henderson  <rth@redhat.com>
21979
21980         * Makefile.in (.NOTPARALLEL): Add fake tag.
21981
21982 2002-03-07  Geert Bosch  <bosch@gnat.com>
21983
21984         * adadecode.c, adadecode.h, aux-io.c, s-traces.adb, s-traces.ads,
21985         s-tratas.adb, s-tratas.ads, sinput-d.adb, sinput-d.ads,
21986         switch-b.adb, switch-b.ads, switch-c.adb, switch-c.ads,
21987         switch-m.adb, switch-m.ads : New files.
21988
21989 2002-03-07  Geert Bosch  <bosch@gnat.com>
21990
21991         * 41intnam.ads, 42intnam.ads, 4aintnam.ads, 4cintnam.ads,
21992         4dintnam.ads, 4gintnam.ads, 4hintnam.ads, 4lintnam.ads,
21993         4mintnam.ads, 4pintnam.ads, 4rintnam.ads, 4sintnam.ads,
21994         4uintnam.ads, 4vcalend.adb, 4zintnam.ads, 52system.ads,
21995         5amastop.adb, 5asystem.ads, 5ataprop.adb, 5atpopsp.adb,
21996         5avxwork.ads, 5bosinte.adb, 5bsystem.ads, 5esystem.ads,
21997         5fsystem.ads, 5ftaprop.adb, 5ginterr.adb, 5gmastop.adb,
21998         5gsystem.ads, 5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads,
21999         5hparame.ads, 5hsystem.ads, 5htaprop.adb, 5htraceb.adb,
22000         5itaprop.adb, 5ksystem.ads, 5kvxwork.ads, 5lintman.adb,
22001         5lsystem.ads, 5mvxwork.ads, 5ninmaop.adb, 5nosinte.ads,
22002         5ntaprop.adb, 5ointerr.adb, 5omastop.adb, 5oosinte.adb,
22003         5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5pvxwork.ads,
22004         5qtaprop.adb, 5sintman.adb, 5ssystem.ads, 5staprop.adb,
22005         5stpopse.adb, 5svxwork.ads, 5tosinte.ads, 5uintman.adb,
22006         5vasthan.adb, 5vinmaop.adb, 5vinterr.adb, 5vintman.adb,
22007         5vmastop.adb, 5vparame.ads, 5vsystem.ads, 5vtaprop.adb,
22008         5vtpopde.adb, 5wmemory.adb, 5wsystem.ads, 5wtaprop.adb,
22009         5ysystem.ads, 5zinterr.adb, 5zintman.adb, 5zosinte.adb,
22010         5zosinte.ads, 5zsystem.ads, 5ztaprop.adb, 6vcpp.adb, 6vcstrea.adb,
22011         7sintman.adb, 7staprop.adb, 7stpopsp.adb, 9drpc.adb,
22012         Make-lang.in, Makefile.in, a-caldel.adb, a-comlin.ads,
22013         a-dynpri.adb, a-except.adb, a-except.ads, a-finali.adb,
22014         a-ncelfu.ads, a-reatim.adb, a-retide.adb, a-stream.ads,
22015         a-ststio.adb, a-ststio.ads, a-stwifi.adb, a-tags.adb, a-tasatt.adb,
22016         a-textio.adb, a-tideau.adb, a-tiflau.adb, a-tigeau.adb,
22017         a-tigeau.ads, a-tiinau.adb, a-timoau.adb, a-witeio.adb,
22018         a-wtdeau.adb, a-wtenau.adb, a-wtflau.adb, a-wtgeau.adb,
22019         a-wtgeau.ads, a-wtinau.adb, a-wtmoau.adb, ada-tree.def, ada-tree.h,
22020         adaint.c, adaint.h, ali-util.adb, ali.adb, ali.ads, atree.adb,
22021         atree.ads, atree.h, back_end.adb, bcheck.adb, bindgen.adb,
22022         bindusg.adb, checks.adb, comperr.adb, config-lang.in, csets.adb,
22023         csets.ads, cstand.adb, cstreams.c, debug.adb, debug.ads, decl.c,
22024         einfo.adb, einfo.ads, einfo.h, elists.h, errout.adb, errout.ads,
22025         eval_fat.adb, exp_aggr.adb, exp_attr.adb, exp_ch11.adb,
22026         exp_ch12.adb, exp_ch13.adb, exp_ch2.adb, exp_ch3.adb, exp_ch3.ads,
22027         exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch7.ads,
22028         exp_ch9.adb, exp_ch9.ads, exp_dbug.adb, exp_dbug.ads, exp_disp.ads,
22029         exp_dist.adb, exp_fixd.adb, exp_intr.adb, exp_pakd.adb,
22030         exp_prag.adb, exp_strm.adb, exp_util.adb, exp_util.ads,
22031         expander.adb, expect.c, fe.h, fmap.adb, fmap.ads, fname-uf.adb,
22032         freeze.adb, frontend.adb, g-awk.adb, g-cgideb.adb, g-comlin.adb,
22033         g-comlin.ads, g-debpoo.adb, g-dirope.adb, g-dirope.ads,
22034         g-dyntab.adb, g-expect.adb, g-expect.ads, g-io.ads, g-io_aux.adb,
22035         g-io_aux.ads, g-locfil.adb, g-locfil.ads, g-os_lib.adb,
22036         g-os_lib.ads, g-regexp.adb, g-regpat.adb, g-socket.adb,
22037         g-socket.ads, g-spipat.adb, g-table.adb, g-trasym.adb,
22038         g-trasym.ads, gigi.h, gmem.c, gnat1drv.adb, gnatbind.adb, gnatbl.c,
22039         gnatchop.adb, gnatcmd.adb, gnatdll.adb, gnatfind.adb, gnatlbr.adb,
22040         gnatlink.adb, gnatls.adb, gnatmem.adb, gnatprep.adb, gnatvsn.ads,
22041         gnatxref.adb, hlo.adb, hostparm.ads, i-cobol.adb, i-cpp.adb,
22042         i-cstrea.ads, i-cstrin.adb, i-pacdec.adb, i-vxwork.ads,
22043         impunit.adb, init.c, inline.adb, io-aux.c, layout.adb, lib-load.adb,
22044         lib-util.adb, lib-writ.adb, lib-writ.ads, lib-xref.adb,
22045         lib-xref.ads, lib.adb, lib.ads, make.adb, makeusg.adb, mdll.adb,
22046         memroot.adb, misc.c, mlib-tgt.adb, mlib-utl.adb, mlib-utl.ads,
22047         mlib.adb, namet.adb, namet.ads, namet.h, nlists.h, nmake.adb,
22048         nmake.ads, nmake.adt, opt.adb, opt.ads, osint.adb, osint.ads,
22049         output.adb, output.ads, par-ch2.adb, par-ch3.adb, par-ch5.adb,
22050         par-prag.adb, par-tchk.adb, par-util.adb, par.adb, prj-attr.adb,
22051         prj-dect.adb, prj-env.adb, prj-env.ads, prj-nmsc.adb, prj-part.adb,
22052         prj-proc.adb, prj-strt.adb, prj-tree.adb, prj-tree.ads, prj.adb,
22053         prj.ads, raise.c, raise.h, repinfo.adb, restrict.adb, restrict.ads,
22054         rident.ads, rtsfind.adb, rtsfind.ads, s-arit64.adb, s-asthan.adb,
22055         s-atacco.adb, s-atacco.ads, s-auxdec.adb, s-crc32.adb, s-crc32.ads,
22056         s-direio.adb, s-fatgen.adb, s-fileio.adb, s-finimp.adb,
22057         s-gloloc.adb, s-gloloc.ads, s-interr.adb, s-mastop.adb,
22058         s-mastop.ads, s-memory.adb, s-parame.ads, s-parint.adb,
22059         s-pooglo.adb, s-pooloc.adb, s-rpc.adb, s-secsta.adb, s-sequio.adb,
22060         s-shasto.adb, s-soflin.adb, s-soflin.ads, s-stache.adb,
22061         s-taasde.adb, s-taasde.ads, s-tadeca.adb, s-tadeca.ads,
22062         s-tadert.adb, s-tadert.ads, s-taenca.adb, s-taenca.ads,
22063         s-taprob.adb, s-taprop.ads, s-tarest.adb, s-tasdeb.adb,
22064         s-tasini.adb, s-tasini.ads, s-taskin.adb, s-taskin.ads,
22065         s-tasque.adb, s-tasque.ads, s-tasren.adb, s-tasren.ads,
22066         s-tassta.adb, s-tasuti.adb, s-tasuti.ads, s-tataat.adb,
22067         s-tataat.ads, s-tpoben.adb, s-tpoben.ads, s-tpobop.adb,
22068         s-tposen.adb, s-tposen.ads, s-traceb.adb, s-traceb.ads,
22069         s-unstyp.ads, s-widenu.adb, scn-nlit.adb, scn.adb, sem.adb,
22070         sem_aggr.adb, sem_attr.adb, sem_attr.ads, sem_case.adb,
22071         sem_ch10.adb, sem_ch11.adb, sem_ch11.ads, sem_ch12.adb,
22072         sem_ch13.adb, sem_ch13.ads, sem_ch2.adb, sem_ch3.adb, sem_ch3.ads,
22073         sem_ch4.adb, sem_ch5.adb, sem_ch6.adb, sem_ch6.ads, sem_ch7.adb,
22074         sem_ch8.adb, sem_ch8.ads, sem_ch9.adb, sem_disp.adb, sem_dist.adb,
22075         sem_elab.adb, sem_elim.adb, sem_elim.ads, sem_eval.adb,
22076         sem_intr.adb, sem_mech.adb, sem_prag.adb, sem_res.adb,
22077         sem_type.adb, sem_util.adb, sem_util.ads, sem_vfpt.adb,
22078         sem_warn.adb, sinfo.adb, sinfo.ads, sinfo.h, sinput-l.adb,
22079         sinput-l.ads, sinput.adb, sinput.ads, snames.adb, snames.ads,
22080         snames.h, sprint.adb, sprint.ads, stringt.adb, stringt.ads,
22081         stringt.h, style.adb, switch.adb, switch.ads, sysdep.c, system.ads,
22082         table.adb, targparm.adb, targparm.ads, targtyps.c, tbuild.adb,
22083         tbuild.ads, tracebak.c, trans.c, tree_gen.adb, tree_io.adb,
22084         treepr.adb, treepr.ads, treeprs.ads, treeprs.adt, ttypes.ads,
22085         types.adb, types.ads, types.h, uintp.ads, urealp.ads, usage.adb,
22086         utils.c, utils2.c, validsw.adb, xnmake.adb, xr_tabls.adb,
22087         xr_tabls.ads, xref_lib.adb, xref_lib.ads : Merge in ACT changes.
22088
22089         * 1ssecsta.adb, 1ssecsta.ads, a-chlat9.ads, a-cwila9.ads,
22090         g-enblsp.adb, g-md5.adb, g-md5.ads, gnatname.adb, gnatname.ads,
22091         mkdir.c, osint-b.adb, osint-b.ads, osint-c.adb, osint-c.ads,
22092         osint-l.adb, osint-l.ads, osint-m.adb, osint-m.ads : New files
22093
22094         * 3lsoccon.ads, 5qparame.ads, 5qvxwork.ads, 5smastop.adb,
22095         5zparame.ads, gnatmain.adb, gnatmain.ads, gnatpsys.adb : Removed
22096
22097         * mdllfile.adb, mdllfile.ads, mdlltool.adb, mdlltool.ads : Renamed
22098         to mdll-fil.ad[bs] and mdll-util.ad[bs]
22099
22100         * mdll-fil.adb, mdll-fil.ads, mdll-utl.adb, mdll-utl.ads : Renamed
22101         from mdllfile.ad[bs] and mdlltool.ad[bs]
22102
22103 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
22104
22105         * utils.c (init_gnat_to_gnu, init_gigi_decls): Use ARRAY_SIZE in
22106         lieu of explicit sizeof/sizeof.
22107
22108 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
22109
22110         * misc.c (copy_lang_decl): Remove.
22111
22112 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
22113
22114         * misc.c: Delete traditional-mode-related code copied from the
22115         C front end but not used, or used only to permit the compiler
22116         to link.
22117
22118 2002-02-07  Richard Henderson  <rth@redhat.com>
22119
22120         * adaint.c (__gnat_to_gm_time): First arg is int, not time_t.
22121         * adaint.h (__gnat_to_gm_time): Update prototype.
22122
22123 2002-01-30  Richard Henderson  <rth@redhat.com>
22124
22125         * trans.c (tree_transform) [N_Loop_Statement]: Use
22126         expand_exit_loop_top_cond.
22127
22128 2001-12-23  Richard Henderson  <rth@redhat.com>
22129
22130         * utils.c (end_subprog_body): Push GC context around
22131         rest_of_compilation for nested functions.
22132
22133 2001-12-23  Richard Henderson  <rth@redhat.com>
22134
22135         * 5nosinte.ads: Get definition of "int" from Interfaces.C.
22136
22137 2001-12-23  Florian Weimer  <fw@deneb.enyo.de>
22138
22139         * gnat-style.texi (Declarations and Types): Remove ancient style
22140         rule which was mandated by code generation issues.
22141
22142         * gnat-style.texi (header): Add @dircategory, @direntry.
22143         (title page): Remove date.
22144         (general) Add @./@: where approriate, and two spaces after the
22145         full stop at the end of a sentence.  Use @samp markup when
22146         referring concrete lexical entities (keywords, attribute names
22147         etc.), and @syntax for ARM grammar elements. Use @r for English
22148         text in comments.  Use @emph for emphasis.  Change "if-statements"
22149         etc. to "if statements" (without @samp). Break long lines.  Make
22150         casing of section names consistent.
22151         (Identifiers): Use @samp markup for variable names.
22152         (Comments): Use @samp markup for comment characters. Line-end
22153         comments may follow any Ada code, not just statements.  Fix
22154         misspelling of "Integer" as "integer".
22155         (Loop statements): Do not use variable name "I", use "J".
22156         (Subprogram Declarations): Document alignment.
22157         (Subprogram Bodies, Block statements): Document empty line before
22158         "begin".
22159
22160 2001-12-22  Florian Weimer  <fw@deneb.enyo.de>
22161
22162         * make.adb (Add_Switch): Make Generic_Position a procedure.  The
22163         function approach did not work well because of a side effect (the
22164         function call could reallocate the table which was being indexed
22165         using its result). Fixes ada/4851.
22166
22167 2001-12-19  Robert Dewar <dewar@gnat.com>
22168
22169         * bindgen.adb: Minor reformatting
22170
22171         * cstand.adb: Minor reformatting
22172
22173         * fmap.adb: Minor reformatting
22174         Change name from Add for Add_To_File_Map (Add is much too generic)
22175         Change Path_Name_Of to Mapped_Path_Name
22176         Change File_Name_Of to Mapped_File_Name
22177         Fix copyright dates in header
22178
22179         * fmap.ads:
22180         Change name from Add for Add_To_File_Map (Add is much too generic)
22181         Change Path_Name_Of to Mapped_Path_Name
22182         Change File_Name_Of to Mapped_File_Name
22183         Fix copyright dates in header
22184
22185         * fname-uf.adb: Minor reformatting.  New names of stuff in Fmap.
22186         Add use clause for Fmap.
22187
22188         * make.adb: Minor reformatting
22189
22190         * osint.adb: Minor reformatting.  Change of names in Fmap.
22191         Add use clause for Fmap.
22192
22193         * prj-env.adb: Minor reformatting
22194
22195         * prj-env.ads: Minor reformatting
22196
22197         * switch.adb: Minor reformatting.  Do proper raise of Bad_Switch if
22198         error found (there were odd exceptions to this general rule in
22199         -gnatec/-gnatem processing)
22200
22201 2001-12-19  Olivier Hainque <hainque@gnat.com>
22202
22203         * raise.c (__gnat_eh_personality): Exception handling personality
22204         routine for Ada.  Still in rough state, inspired from the C++ version
22205         and still containing a bunch of debugging artifacts.
22206         (parse_lsda_header, get_ttype_entry): Local (static) helpers, also
22207         inspired from the C++ library.
22208
22209         * raise.c (eh_personality): Add comments. Part of work for the GCC 3
22210         exception handling integration.
22211
22212 2001-12-19  Arnaud Charlet <charlet@gnat.com>
22213
22214         * Makefile.in: Remove use of 5smastop.adb which is obsolete.
22215         (HIE_SOURCES): Add s-secsta.ad{s,b}.
22216         (HIE_OBJS): Add s-fat*.o
22217         (RAVEN_SOURCES): Remove files that are no longer required. Add
22218         interrupt handling files.
22219         (RAVEN_MOD): Removed, no longer needed.
22220
22221 2001-12-19  Robert Dewar <dewar@gnat.com>
22222
22223         * a-ngelfu.adb: Remove ??? comment for inappropriate Inline_Always
22224         Add 2001 to copyright date
22225
22226         * g-regpat.adb: Change pragma Inline_Always to Inline. There is no
22227         need to force universal inlining for these cases.
22228
22229 2001-12-19  Arnaud Charlet <charlet@gnat.com>
22230
22231         * s-taprob.adb: Minor clean ups so that this unit can be used in
22232         Ravenscar HI.
22233
22234         * exp_ch7.adb: Allow use of secondary stack in HI mode.
22235         Disallow it when pragma Restrictions (No_Secondary_Stack) is specified.
22236
22237 2001-12-19  Vincent Celier <celier@gnat.com>
22238
22239         * prj-tree.ads (Project_Node_Record): Add comments for components
22240         Pkg_Id and Case_Insensitive.
22241
22242 2001-12-19  Pascal Obry <obry@gnat.com>
22243
22244         * g-socket.adb: Minor reformatting. Found while reading code.
22245
22246 2001-12-19  Robert Dewar <dewar@gnat.com>
22247
22248         * prj-tree.ads: Minor reformatting
22249
22250 2001-12-20  Joseph S. Myers  <jsm28@cam.ac.uk>
22251
22252         * config-lang.in (diff_excludes): Remove.
22253
22254 2001-12-17  Ed Schonberg <schonber@gnat.com>
22255
22256         * sem_res.adb (Resolve_Selected_Component): do not generate a
22257         discriminant check if the selected component is a component of
22258         the argument of an initialization procedure.
22259
22260         * trans.c (tree_transform, case of arithmetic operators): If result
22261         type is private, the gnu_type is the base type of the full view,
22262         given that the full view itself may be a subtype.
22263
22264 2001-12-17  Robert Dewar <dewar@gnat.com>
22265
22266         * sem_res.adb: Minor reformatting
22267
22268         * trans.c (tree_transform, case N_Real_Literal): Add missing third
22269         parameter in call to Machine (unknown horrible effects from this
22270         omission).
22271
22272         * urealp.h: Add definition of Round_Even for call to Machine
22273         Add third parameter for Machine
22274
22275 2001-12-17  Ed Schonberg <schonber@gnat.com>
22276
22277         * sem_warn.adb (Check_One_Unit): Suppress warnings completely on
22278         predefined units in No_Run_Time mode.
22279
22280 2001-12-17  Richard Kenner <kenner@gnat.com>
22281
22282         * misc.c (insn-codes.h): Now include.
22283
22284 2001-12-17  Olivier Hainque <hainque@gnat.com>
22285
22286         * a-except.adb: Preparation work for future integration of the GCC 3
22287         exception handling mechanism
22288         (Notify_Handled_Exception, Notify_Unhandled_Exception): New routines
22289         to factorize previous code sequences and make them externally callable,
22290         e.g. for the Ada personality routine when the GCC 3 mechanism is used.
22291         (Propagate_Exception, Raise_Current_Excep, Raise_From_Signal_Handler):
22292         Use the new notification routines.
22293
22294 2001-12-17  Emmanuel Briot <briot@gnat.com>
22295
22296         * prj-tree.ads (First_Choice_Of): Document the when others case
22297
22298 2001-12-17  Arnaud Charlet <charlet@gnat.com>
22299
22300         * bindgen.adb (Gen_Ada_Init_*): Set priority of environment task in
22301         HI-E mode, in order to support Ravenscar profile properly.
22302
22303         * cstand.adb (Create_Standard): Duration is a 32 bit type in HI-E
22304         mode on 32 bits targets.
22305
22306 2001-12-17  Vincent Celier <celier@gnat.com>
22307
22308         * fmap.adb: Initial version.
22309
22310         * fmap.ads: Initial version.
22311
22312         * fname-uf.adb (Get_File_Name): Use mapping if unit name mapped.
22313         If search is successfully done, add to mapping.
22314
22315         * frontend.adb: Initialize the mapping if a -gnatem switch was used.
22316
22317         * make.adb:
22318         (Gnatmake): Add new local variable Mapping_File_Name.
22319          Create mapping file when using project file(s).
22320          Delete mapping file before exiting.
22321
22322         * opt.ads (Mapping_File_Name): New variable
22323
22324         * osint.adb (Find_File): Use path name found in mapping, if any.
22325
22326         * prj-env.adb (Create_Mapping_File): New procedure
22327
22328         * prj-env.ads (Create_Mapping_File): New procedure.
22329
22330         * switch.adb (Scan_Front_End_Switches): Add processing for -gnatem
22331         (Mapping_File)
22332
22333         * usage.adb: Add entry for new switch -gnatem.
22334
22335         * Makefile.in: Add dependencies for fmap.o.
22336
22337 2001-12-17  Ed Schonberg <schonber@gnat.com>
22338
22339         * sem_ch10.adb (Analyze_With_Clause): Retrieve proper entity when unit
22340         is a package instantiation rewritten as a package body.
22341         (Install_Withed_Unit): Undo previous change, now redundant.
22342
22343 2001-12-17  Gary Dismukes <dismukes@gnat.com>
22344
22345         * layout.adb:
22346         (Compute_Length): Move conversion to Unsigned to callers.
22347         (Get_Max_Size): Convert Len expression to Unsigned after calls to
22348         Compute_Length and Determine_Range.
22349         (Layout_Array_Type): Convert Len expression to Unsigned after calls to
22350         Compute_Length and Determine_Range.
22351         Above changes fix problem with length computation for supernull arrays
22352         where Max (Len, 0) wasn't getting applied due to the Unsigned
22353         conversion used by Compute_Length.
22354
22355 2001-12-17  Arnaud Charlet <charlet@gnat.com>
22356
22357         * rtsfind.ads:
22358         (OK_To_Use_In_No_Run_Time_Mode): Allow Ada.Exceptions and
22359          System.Secondary_Stack.
22360         (OK_To_Use_In_Ravenscar_Mode): New table needed to implement Ravenscar
22361          in HI-E mode.
22362         Remove unused entity RE_Exception_Data.
22363
22364         * rtsfind.adb (RTE): Allow Ravenscar Profile in HI mode.
22365
22366         * rident.ads (No_Secondary_Stack): New restriction.
22367
22368 2001-12-17  Joel Brobecker <brobecke@gnat.com>
22369
22370         * gnat_rm.texi: Fix minor typos. Found while reading the section
22371         regarding "Bit_Order Clauses" that was sent to a customer.
22372         Very interesting documentation!
22373
22374 2001-12-17  Robert Dewar <dewar@gnat.com>
22375
22376         * sem_case.adb (Choice_Image): Avoid creating improper character
22377         literal names by using the routine Set_Character_Literal_Name. This
22378         fixes bombs in certain error message cases.
22379
22380 2001-12-17  Arnaud Charlet <charlet@gnat.com>
22381
22382         * a-reatim.adb: Minor reformatting.
22383
22384 2001-12-17  Ed Schonberg <schonber@gnat.com>
22385
22386         * sem_ch12.adb (Validate_Derived_Type_Instance): Handle properly the
22387         case where the formal is an extension of another formal in the current
22388         unit or in a parent generic unit.
22389
22390 2001-12-17  Arnaud Charlet <charlet@gnat.com>
22391
22392         * s-tposen.adb: Update comments.  Minor reformatting.
22393         Minor code clean up.
22394
22395         * s-tarest.adb: Update comments.  Minor code reorganization.
22396
22397 2001-12-17  Gary Dismukes <dismukes@gnat.com>
22398
22399         * exp_attr.adb (Attribute_Tag): Suppress expansion of <type_name>'Tag
22400         when Java_VM.
22401
22402 2001-12-17  Robert Dewar <dewar@gnat.com>
22403
22404         * exp_attr.adb: Minor reformatting
22405
22406 2001-12-17  Ed Schonberg <schonber@gnat.com>
22407
22408         * sem_ch3.adb (Build_Derived_Private_Type): Refine check to handle
22409         derivations nested within a child unit: verify that the parent
22410         type is declared in an outer scope.
22411
22412 2001-12-17  Robert Dewar <dewar@gnat.com>
22413
22414         * sem_ch12.adb: Minor reformatting
22415
22416 2001-12-17  Ed Schonberg <schonber@gnat.com>
22417
22418         * sem_warn.adb (Check_One_Unit): In No_Run_Time mode, do not post
22419         warning if current unit is a predefined one, from which bodies may
22420         have been deleted.
22421
22422 2001-12-17  Robert Dewar <dewar@gnat.com>
22423
22424         * eval_fat.ads: Add comment that Round_Even is referenced in Ada code
22425         Fix header format. Add 2001 to copyright date.
22426
22427         * exp_dbug.adb (Get_Encoded_Name): Fix out of bounds reference,
22428         which caused CE during compilation if checks were enabled.
22429
22430 2001-12-17  Vincent Celier <celier@gnat.com>
22431
22432         * make.adb:
22433         (Switches_Of): New function
22434         (Test_If_Relative_Path): New procedure
22435         (Add_Switches): Use new function Switches_Of
22436         (Collect_Arguments_And_Compile): Use new function Switches_Of.
22437         When using a project file, test if there are any relative
22438         search path. Fail if there are any.
22439         (Gnatmake): Only add switches for the primary directory when not using
22440         a project file. When using a project file, change directory to the
22441         object directory of the main project file. When using a project file,
22442         test if there are any relative search path. Fail if there are any.
22443         When using a project file, fail if specified executable is relative
22444         path with directory information, and prepend executable, if not
22445         specified as an absolute path, with the exec directory.  Make sure
22446         that only one -o switch is transmitted to the linker.
22447
22448         * prj-attr.adb (Initialization_Data): Add project attribute Exec_Dir
22449
22450         * prj-nmsc.adb:
22451         (Ada_Check): Get Spec_Suffix_Loc and Impl_Suffix_Loc,
22452         when using a non standard naming scheme.
22453         (Check_Ada_Naming_Scheme): Make sure that error messages
22454         do not raise exceptions.
22455         (Is_Illegal_Append): Return True if there is no dot in the suffix.
22456         (Language_Independent_Check): Check the exec directory.
22457
22458         * prj.adb (Project_Empty): Add new component Exec_Directory
22459
22460         * prj.ads:
22461         (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Add defaults.
22462         (Project_Data): Add component Exec_Directory
22463
22464         * snames.adb: Updated to match snames.ads revision 1.215
22465
22466         * snames.ads: Added Exec_Dir
22467
22468 2001-12-17  Robert Dewar <dewar@gnat.com>
22469
22470         * make.adb: Minor reformatting
22471
22472         * prj-nmsc.adb: Minor reformatting
22473
22474         * snames.adb: Updated to match snames.ads
22475
22476         * snames.ads: Alphebetize entries for project file
22477
22478 2001-12-17  Ed Schonberg <schonber@gnat.com>
22479
22480         * trans.c (process_freeze_entity): Do nothing if the entity is a
22481         subprogram that was already elaborated.
22482
22483 2001-12-17  Richard Kenner <kenner@gnat.com>
22484
22485         * decl.c (gnat_to_gnu_entity, object): Do not back-annotate Alignment
22486         and Esize if object is referenced via pointer.
22487
22488 2001-12-17  Ed Schonberg <schonber@gnat.com>
22489
22490         * sem_ch3.adb (Analyze_Variant_Part): check that type of discriminant
22491         is discrete before analyzing choices.
22492
22493 2001-12-17  Joel Brobecker <brobecke@gnat.com>
22494
22495         * bindgen.adb (Gen_Output_File_Ada): Generate a new C-like string
22496         containing the name of the Ada Main Program. This string is mainly
22497         intended for the debugger.
22498         (Gen_Output_File_C): Do the equivalent change when generating a C file.
22499
22500 2001-12-17  Robert Dewar <dewar@gnat.com>
22501
22502         * ali.adb: Set new Dummy_Entry field in dependency entry
22503
22504         * ali.ads: Add Dummy_Entry field to source dependency table
22505
22506         * bcheck.adb (Check_Consistency): Ignore dummy D lines
22507
22508         * lib-writ.adb (Writ_ALI): Write dummy D lines for missing source files
22509
22510         * lib-writ.ads: Document dummy D lines for missing files.
22511
22512         * types.ads: (Dummy_Time_Stamp): New value for non-existant files
22513
22514 2001-12-17  Robert Dewar <dewar@gnat.com>
22515
22516         * ali.adb: Type reference does not reset current file.
22517
22518         * ali.adb: Recognize and scan renaming reference
22519
22520         * ali.ads: Add spec for storing renaming references.
22521
22522         * lib-xref.ads: Add documentation for handling of renaming references
22523
22524         * lib-xref.adb: Implement output of renaming reference.
22525
22526         * checks.adb:
22527         (Determine_Range): Document local variables
22528         (Determine_Range): Make sure Hbound is initialized. It looks as though
22529          there could be a real problem here with an uninitialized reference
22530          to Hbound, but no actual example of failure has been found.
22531
22532 2001-12-17  Laurent Pautet <pautet@gnat.com>
22533
22534         * g-socket.ads:
22535         Fix comment of Shutdown_Socket and Close_Socket. These functions
22536         should not fail silently because if they are called twice, this
22537         probably means that there is a race condition in the user program.
22538         Anyway, this behaviour is consistent with the rest of this unit.
22539         When an error occurs, an exception is raised with the error message
22540         as exception message.
22541
22542 2001-12-17  Robert Dewar <dewar@gnat.com>
22543
22544         * frontend.adb: Move call to Check_Unused_Withs from Frontend, so
22545         that it happens before modification of Sloc values for -gnatD.
22546
22547         * gnat1drv.adb: Move call to Check_Unused_Withs to Frontend,
22548         so that it happens before modification of Sloc values for -gnatD.
22549
22550         * switch.adb: Minor reformatting
22551
22552 2001-12-15  Richard Henderson  <rth@redhat.com>
22553
22554         * sem_ch7.adb: Wrap comment.
22555
22556 2001-12-16  Joseph S. Myers  <jsm28@cam.ac.uk>
22557
22558         * 5ataprop.adb, 5atpopsp.adb, 5ftaprop.adb, 5gmastop.adb,
22559         5gtaprop.adb, 5htaprop.adb, 5itaprop.adb, 5lintman.adb,
22560         5omastop.adb, 5oosinte.adb, 5otaprop.adb, 5staprop.adb,
22561         5vinterr.adb, 5vtaprop.adb, 5vtpopde.adb, 5wintman.adb,
22562         5wtaprop.adb, 5zinterr.adb, 5ztaprop.adb, 6vcstrea.adb,
22563         7sintman.adb, 7staprop.adb, 9drpc.adb, ChangeLog, Makefile.in,
22564         a-except.adb, a-tags.ads, a-tasatt.adb, a-teioed.adb,
22565         a-textio.ads, a-witeio.ads, a-wtedit.adb, ali.ads, comperr.adb,
22566         cstand.adb, einfo.ads, errout.adb, exp_ch11.adb, exp_ch2.adb,
22567         exp_ch3.adb, exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch9.adb,
22568         exp_util.adb, exp_util.ads, fname-uf.adb, g-cgi.ads, g-exctra.ads,
22569         g-expect.ads, g-regist.adb, g-spipat.adb, gnatchop.adb,
22570         gnatlink.adb, gnatls.adb, gnatmain.adb, gnatmem.adb, init.c,
22571         make.adb, make.ads, mdlltool.adb, nlists.ads, osint.ads,
22572         par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb, par.adb,
22573         repinfo.adb, s-fatflt.ads, s-fatlfl.ads, s-fatllf.ads,
22574         s-fatsfl.ads, s-finimp.adb, s-finimp.ads, s-interr.adb,
22575         s-secsta.ads, s-shasto.ads, s-stalib.adb, s-stalib.ads,
22576         s-tarest.ads, s-tasdeb.adb, s-tassta.adb, s-tassta.ads,
22577         s-vaflop.ads, scans.ads, scn.adb, sem.ads, sem_aggr.adb,
22578         sem_attr.adb, sem_case.ads, sem_ch10.adb, sem_ch12.adb,
22579         sem_ch13.adb, sem_ch3.adb, sem_ch3.ads, sem_ch5.adb, sem_ch7.adb,
22580         sem_ch8.adb, sem_ch8.ads, sem_type.adb, sem_util.ads, sinfo.ads,
22581         sprint.adb, tbuild.ads, types.ads, utils.c, xeinfo.adb: Fix
22582         spelling errors.
22583
22584 2001-12-14  Vincent Celier <celier@gnat.com>
22585
22586         * osint.adb(Create_Debug_File): When an object file is specified,
22587         put the .dg file in the same directory as the object file.
22588
22589 2001-12-14  Robert Dewar <dewar@gnat.com>
22590
22591         * osint.adb: Minor reformatting
22592
22593         * lib-xref.adb (Output_Instantiation): New procedure to generate
22594         instantiation references.
22595
22596         * lib-xref.ads: Add documentation of handling of generic references.
22597
22598         * ali.adb (Read_Instantiation_Ref): New procedure to read
22599         instantiation references
22600
22601         * ali.ads: Add spec for storing instantiation references
22602
22603         * bindusg.adb: Minor reformatting
22604
22605         * switch.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
22606
22607         * usage.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
22608
22609         * gnatcmd.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
22610
22611         * csets.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
22612
22613         * csets.ads:
22614         Fix header format
22615         Add 2001 to copyright date
22616         Add entry for Latin-5 (Cyrillic ISO-8859-5)
22617
22618 2001-12-14  Matt Gingell <gingell@gnat.com>
22619
22620         * adaint.c: mktemp is a macro on Lynx and can not be used as an
22621         expression.
22622
22623 2001-12-14  Richard Kenner <kenner@gnat.com>
22624
22625         * misc.c (gnat_expand_constant): Do not strip UNCHECKED_CONVERT_EXPR
22626         if operand is CONSTRUCTOR.
22627
22628 2001-12-14  Ed Schonberg <schonber@gnat.com>
22629
22630         * trans.c (tree_transform, case N_Assignment_Statement): Set lineno
22631         before emiting check on right-hand side, so that exception information
22632         is correct.
22633
22634 2001-12-14  Richard Kenner <kenner@gnat.com>
22635
22636         * utils.c (create_var_decl): Throw away initializing expression
22637         if just annotating types and non-constant.
22638
22639 2001-12-14  Vincent Celier <celier@gnat.com>
22640
22641         * prj-nmsc.adb: (Ada_Check): Migrate drom Ada_Default_... to
22642         Default_Ada_...
22643
22644         * prj.adb: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
22645         Remove functions.
22646         (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Move to spec.
22647
22648         * prj.ads: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
22649         Remove functions.
22650         (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Move from body.
22651
22652 2001-12-16  Joseph S. Myers  <jsm28@cam.ac.uk>
22653
22654         * ChangeLog: Remove piece of diff output.
22655
22656 2001-12-14  Geert Bosch <bosch@gnat.com>
22657
22658         * config-lang.in: Update copyright notice
22659
22660         * layout.adb: Remove commented out code.
22661
22662         * mdllfile.ads: Update copyright notice. Fix header format.
22663
22664         * sem_case.ads: Likewise.
22665
22666         * sem_ch3.adb: Minor reformatting.
22667
22668 2001-12-12  Geert Bosch <bosch@gnat.com>
22669
22670         * freeze.ads: Update copyright date.
22671
22672         * g-comlin.ads: Minor reformatting.
22673
22674         * gnat-style.texi: Fix typo.
22675
22676 2001-12-12  Geert Bosch <bosch@gnat.com>
22677
22678         *  einfo.h: Regenerate.
22679
22680 2001-12-12  Ed Schonberg <schonber@gnat.com>
22681
22682         * sem_ch12.adb (Save_Entity_Descendant): Use syntactic field names
22683         on known node types, rather than untyped fields. Further cleanups.
22684
22685 2001-12-12  Robert Dewar <dewar@gnat.com>
22686
22687         * sem_ch12.adb:
22688         (Save_Entity_Descendant): Minor comment update.
22689         (Copy_Generic_Node): Deal with incorrect reference to Associated_Node
22690          of an N_Attribute_Reference node. As per note below, this does not
22691         eliminate need for Associated_Node in attribute ref nodes.
22692         (Associated_Node): Documentation explicitly mentions attribute
22693         reference nodes, since this field is used in such nodes.
22694
22695         * sem_ch12.adb (Associated_Node): Minor documentation cleanup.
22696
22697 2001-12-12  Robert Dewar <dewar@gnat.com>
22698
22699         * s-stalib.adb: Add more comments on with statements being needed
22700
22701         * par-ch12.adb: Minor reformatting
22702
22703         * prj-dect.ads: Fix copyright header
22704
22705         * s-arit64.adb (Multiply_With_Ovflo_Check): Fix case where both
22706         inputs fit in 32 bits, but the result still overflows.
22707
22708         * s-fatgen.ads: Minor comment improvement
22709
22710 2001-12-12  Ed Schonberg <schonber@gnat.com>
22711
22712         * sem_ch4.adb (Analyze_Selected_Component): If the prefix is of a
22713         formal derived type, look for an inherited component from the full
22714         view of the parent, if any.
22715
22716 2001-12-12  Robert Dewar <dewar@gnat.com>
22717
22718         * checks.ads (Apply_Alignment_Check): New procedure.
22719
22720         * exp_ch13.adb (Expand_N_Freeze_Entity): Generate dynamic check to
22721         ensure that the alignment of objects with address clauses is
22722         appropriate, and raise PE if not.
22723
22724         * exp_util.ads (Must_Be_Aligned): Removed, replaced by
22725         Exp_Pakd.Known_Aligned_Enough
22726
22727         * mdllfile.ads: Minor reformatting
22728
22729         * mlib-fil.ads: Minor reformatting
22730
22731 2001-12-12  Ed Schonberg <schonber@gnat.com>
22732
22733         * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Extend previous
22734         fix to any component reference if enclosing record has non-standard
22735         representation.
22736
22737 2001-12-12  Vincent Celier <celier@gnat.com>
22738
22739         * g-dirope.ads (Find, Wildcard_Iterator): Moved to child package
22740         Iteration
22741
22742 2001-12-12  Ed Schonberg <schonber@gnat.com>
22743
22744         * freeze.ads: Make Freeze_Fixed_Point_Type visible, for use in
22745         sem_attr.
22746
22747 2001-12-12  Robert Dewar <dewar@gnat.com>
22748
22749         * impunit.adb: Add entry for GNAT.Directory_Operations.Iteration
22750
22751 2001-12-12  Emmanuel Briot <briot@gnat.com>
22752
22753         * g-regexp.adb: Remove all debug code, since it isn't required anymore,
22754         and it adds dependencies to system.io.
22755
22756 2001-12-12  Pascal Obry <obry@gnat.com>
22757
22758         * g-dirope.adb (Expand_Path.Var): Correctly detect end of
22759         variable name.
22760
22761 2001-12-11  Ed Schonberg <schonber@gnat.com>
22762
22763         * sem_ch10.adb (Install_Withed_Unit): If the unit is a generic instance
22764         that is the parent of other generics, the instance body replaces the
22765         instance node.  Retrieve the instance of the spec, which is the one
22766         that is visible in clients and within the body.
22767
22768 2001-12-11  Vincent Celier <celier@gnat.com>
22769
22770         * gnatmain.adb: Initial version.
22771
22772         * gnatmain.ads: Initial version.
22773
22774         * prj-attr.adb (Initialisation_Data): Add package Gnatstub.
22775
22776         * snames.adb: Updated to match snames.ads.
22777
22778         * snames.ads: Added Gnatstub.
22779
22780 2001-12-11  Vincent Celier <celier@gnat.com>
22781
22782         * prj-attr.adb (Initialization_Data): Change name from
22783         Initialisation_Data.
22784
22785 2001-12-11  Emmanuel Briot <briot@gnat.com>
22786
22787         * g-regpat.adb (Parse_Literal): Properly handle simple operators ?,
22788         + and * applied to backslashed expressions like \r.
22789
22790 2001-12-11  Vasiliy Fofanov <fofanov@gnat.com>
22791
22792         * g-os_lib.ads: String_List type added, Argument_List type is now
22793         subtype of String_List.
22794
22795 2001-12-11  Robert Dewar <dewar@gnat.com>
22796
22797         * g-os_lib.ads: Change copyright to FSF
22798         Add comments for String_List type
22799
22800 2001-12-11  Vincent Celier <celier@gnat.com>
22801
22802         * g-dirope.adb (Expand_Path): Fix bug. (wrong length when adding a
22803         string to the buffer).
22804
22805 2001-12-11  Ed Schonberg <schonber@gnat.com>
22806
22807         * freeze.adb: Make Freeze_Fixed_Point_Type visible, for use in
22808         sem_attr.
22809
22810         * sem_attr.adb: Simplify previous fix for Address.
22811         (Set_Bounds): If prefix is a non-frozen fixed-point type, freeze now,
22812         to avoid anomalies where the bound of the type appears to raise
22813         constraint error.
22814
22815 2001-12-11  Robert Dewar <dewar@gnat.com>
22816
22817         * lib-xref.adb (Output_Refs): Make sure pointers are always properly
22818         handled.
22819
22820 2001-12-11  Ed Schonberg <schonber@gnat.com>
22821
22822         * sem_ch12.adb (Analyze_Subprogram_Instantiation): Check for a
22823         renamed unit before checking for recursive instantiations.
22824
22825 2001-12-11  Emmanuel Briot <briot@gnat.com>
22826
22827         * prj.ads: Add comments for some of the fields.
22828
22829 2001-12-11  Robert Dewar <dewar@gnat.com>
22830
22831         * lib-xref.adb (Output_Refs): Don't output type references outside
22832         the main unit if they are not otherwise referenced.
22833
22834 2001-12-11  Ed Schonberg <schonber@gnat.com>
22835
22836         * sem_attr.adb (Analyze_attribute, case Address and Size): Simplify
22837         code and diagnose additional illegal uses
22838
22839         * sem_util.adb (Is_Object_Reference): An indexed component is an
22840         object only if the prefix is.
22841
22842 2001-12-11  Vincent Celier <celier@gnat.com>
22843
22844         * g-diopit.adb: Initial version.
22845
22846         * g-diopit.ads: Initial version.
22847
22848         * g-dirope.adb:
22849         (Expand_Path): Avoid use of Unbounded_String
22850         (Find, Wildcard_Iterator): Moved to child package Iteration
22851
22852         * Makefile.in: Added g-diopit.o to GNATRTL_NONTASKING_OBJS
22853
22854 2001-12-11  Robert Dewar <dewar@gnat.com>
22855
22856         * sem_attr.adb: Minor reformatting
22857
22858 2001-12-11  Ed Schonberg <schonber@gnat.com>
22859
22860         * sem_ch3.adb: Clarify some ???.
22861
22862 2001-12-11  Robert Dewar <dewar@gnat.com>
22863
22864         * exp_util.adb (Must_Be_Aligned): Removed, replaced by
22865         Exp_Pakd.Known_Aligned_Enough
22866
22867         * sem_ch13.adb (Check_Address_Alignment): Removed, extended
22868         version is moved to Exp_Ch13.
22869
22870 2001-12-11  Robert Dewar <dewar@gnat.com>
22871
22872         * einfo.ads: Minor reformatting
22873
22874         * exp_ch5.adb: Add comment for previous.change
22875
22876         * ali.adb: New interface for extended typeref stuff.
22877
22878         * ali.ads: New interface for typeref stuff.
22879
22880         * checks.adb (Apply_Alignment_Check): New procedure.
22881
22882         * debug.adb: Add -gnatdM for modified ALI output
22883
22884         * exp_pakd.adb (Known_Aligned_Enough): Replaces Known_Aligned_Enough.
22885
22886         * lib-xref.adb: Extend generation of <..> notation to cover
22887         subtype/object types. Note that this is a complete rewrite,
22888         getting rid of the very nasty quadratic algorithm previously
22889         used for derived type output.
22890
22891         * lib-xref.ads: Extend description of <..> notation to cover
22892         subtype/object types. Uses {..} for these other cases.
22893         Also use (..) for pointer types.
22894
22895         * sem_util.adb (Check_Potentially_Blocking_Operation): Slight cleanup.
22896
22897         * exp_pakd.adb: Minor reformatting.  Note that prevous RH should say:
22898         (Known_Aligned_Enough): Replaces Must_Be_Aligned.
22899
22900 2001-12-11  Vincent Celier <celier@gnat.com>
22901
22902         * gnatcmd.adb:
22903         Changed /COMPILE_ONLY to /ACTIONS=COMPILE
22904         Changed /BIND_ONLY to /ACTIONS=BIND
22905         Changed /LINK_ONLY to /ACTIONS=LINK
22906
22907 2001-12-11  Ed Schonberg  <schonber@gnat.com>
22908
22909         * sem_ch8.adb (Find_Selected_Component): improved search for a
22910         candidate package in case of error.
22911
22912         * sem_ch12.adb (Inline_Instance_Body): place head of use_clause
22913         chain back on scope stack before reinstalling use clauses.
22914
22915         * exp_ch5.adb (Expand_N_If_Statement): if Constant_Condition_Warnings
22916         is enabled, do not kill the code for the condition, to preserve
22917         warning.
22918
22919 2001-12-11  Robert Dewar <dewar@gnat.com>
22920
22921         * checks.adb (Insert_Valid_Check): Apply validity check to expression
22922         of conversion, not to result of conversion.
22923
22924 2001-12-11  Ed Schonberg <schonber@gnat.com>
22925
22926         * sem_ch3.adb (Build_Derived_Record_Type): set Controlled flag
22927         before freezing parent. If the declarations are mutually recursive,
22928         an access to the current record type may be frozen before the
22929         derivation is complete.
22930
22931 2001-12-05  Vincent Celier <celier@gnat.com>
22932
22933         * gnatcmd.adb: (MAKE): Add new translations: -b /BIND_ONLY,
22934         -c /COMPILE_ONLY, -l /LINK_ONLY
22935
22936         * opt.ads:
22937         (Bind_Only): New Flag
22938         (Link_Only): New flag
22939
22940         * switch.adb (Scan_Make_Switches): Add processing for -b (Bind_Only)
22941         and -l (Link_Only)
22942
22943         * makeusg.adb: Add new switches -b and -l. Update Copyright notice.
22944
22945         * make.adb:
22946         (Do_Compile_Step, Do_Bind_Step, Do_Link_Step): New flags.
22947         (Gnatmake): Set the step flags. Only perform a step if the
22948         corresponding step flag is True.
22949         (Scan_Make_Arg): Reset the bind and link step flags when -u
22950         or -gnatc has been specified.
22951
22952 2001-12-05  Ed Schonberg <schonber@gnat.com>
22953
22954         * sem_eval.adb (Eval_Concatenation): If left operand is a null string,
22955         get bounds from right operand.
22956
22957         * sem_eval.adb: Minor reformatting
22958
22959         * exp_util.adb (Make_Literal_Range): use bound of literal rather
22960         than Index'First, its lower bound may be different from 1.
22961
22962         * exp_util.adb: Undo earlier change, fixes ACVC regressions C48009B
22963         and C48009J
22964
22965 2001-12-05  Vincent Celier <celier@gnat.com>
22966
22967         * prj-nmsc.adb Minor reformatting
22968
22969         * prj-nmsc.adb (Language_Independent_Check): Reset Library flag if
22970         set and libraries are not supported.
22971
22972 2001-12-05  Ed Schonberg <schonber@gnat.com>
22973
22974         * sem_ch3.adb (Build_Derived_Private_Type): set Public status of
22975         private view explicitly, so the back-end can treat as a global
22976         when appropriate.
22977
22978 2001-12-05  Ed Schonberg <schonber@gnat.com>
22979
22980         * sem_ch12.adb (Instantiate_Package_Body): if instance is a compilation
22981          unit, always replace instance node with new body, for ASIS use.
22982
22983 2001-12-05  Vincent Celier <celier@gnat.com>
22984
22985         * prj-nmsc.adb (Language_Independent_Check): Issue a warning if
22986         libraries are not supported and both attributes Library_Name and
22987         Library_Dir are specified.
22988
22989         * prj-proc.adb (Expression): Set location of Result to location of
22990         first term.
22991
22992         * Makefile.in: Add mlib.o, mlib-fil.o, mlib-tgt and mlib-utl to GNATLS.
22993         (prj-nmsc is now importing MLib.Tgt)
22994
22995         * prj-proc.adb: Put the change indicated above that was forgotten.
22996
22997 2001-12-05  Robert Dewar <dewar@gnat.com>
22998
22999         * Makefile.in: Add dependencies for System.IO for GNAT.Regexp
23000
23001 2001-12-05  Ed Schonberg <schonber@gnat.com>
23002
23003         * sem_ch3.adb (Build_Derived_Concurrent_Type): If derivation imposes a
23004         constraint, introduce explicit subtype declaration and derive from it.
23005
23006         * sem_ch3.adb: Minor reformatting
23007
23008 2001-12-05  Robert Dewar <dewar@gnat.com>
23009
23010         * checks.adb (Determine_Range): Increase cache size for checks.
23011         Minor reformatting
23012
23013         * exp_ch6.adb: Minor reformatting
23014         (Expand_N_Subprogram_Body): Reset Is_Pure for any subprogram that has
23015         a parameter whose root type is System.Address, since treating such
23016         subprograms as pure in the code generator is almost surely a mistake
23017         that will lead to unexpected results.
23018
23019         * exp_util.adb (Remove_Side_Effects): Clean up old ??? comment and
23020         change handling of conversions.
23021
23022         * g-regexp.adb: Use System.IO instead of Ada.Text_IO.
23023
23024 2001-12-05  Ed Schonberg <schonber@gnat.com>
23025
23026         * sem_ch3.adb (Analyze_Object_Declaration): If expression is an
23027         aggregate with static wrong size, attach generated Raise node to
23028         declaration.
23029
23030 2001-12-05  Robert Dewar <dewar@gnat.com>
23031
23032         * sem_attr.adb (Analyze_Attribute): Defend against bad Val attribute.
23033         Fixes compilation abandoned bomb in B24009B.
23034
23035 2001-12-05  Ed Schonberg <schonber@gnat.com>
23036
23037         * sem_ch12.adb:
23038         Document use of Associated_Node on Selected_Components.
23039         (Save_Global_Operand_Descendants): Change to Save_Entity_Descendants,
23040         to clarify use of untyped descendant fields.
23041
23042 2001-12-05  Robert Dewar <dewar@gnat.com>
23043
23044         * prj-dect.ads: Add ??? comment
23045         Add 2001 to copyright notice (was not done in after all)
23046
23047         * prj-part.adb: Minor reformatting. Reword one awkward error message.
23048
23049         * prj.ads: Minor reformatting throughout, and add some ??? comments
23050
23051         * snames.ads: Minor reformatting
23052
23053 2001-12-05  Geert Bosch <bosch@gnat.com>
23054
23055         * snames.adb: Autoupdate
23056
23057 2001-12-05  Vincent Celier <celier@gnat.com>
23058
23059         * prj-dect.adb (Parse): Rename parameter Modifying to Extends.
23060
23061         * prj-dect.ads (Parse): Rename parameter Modifying to Extends.
23062
23063         * prj-env.adb: Minor comment changes (modifying -> extends).
23064
23065         * prj-nmsc.adb: Minor comment changes (modifying -> extends).
23066
23067         * prj-part.adb (Parse_Single_Project): Change Tok_Modifying to
23068         Tok_Extends.
23069
23070         * prj.adb (Initialize): Change Modifying to Extends.
23071
23072         * scans.ads (Token_Type): Change Tok_Modifying to Tok_Extends.
23073
23074         * prj.ads: Minor comment change (Modifying -> extending).
23075
23076         * snames.ads: Change modifying to extends.
23077
23078 2001-12-05  Robert Dewar <dewar@gnat.com>
23079
23080         * sem_warn.adb: Remove stuff for conditionals, we are not going to
23081         do this after all.
23082
23083         * sem_warn.ads: Remove stuff for conditionals, we are not going to
23084         do this after all.  Add 2001 to copyright notice
23085
23086 2001-12-04  Geert Bosch <bosch@gnat.com>
23087
23088         *  einfo.h, sinfo.h, treeprs.ads: Regenerate.
23089
23090 2001-12-04  Robert Dewar <dewar@gnat.com>
23091
23092         * errout.adb (Error_Msg): Ignore attempt to put error msg at junk
23093         location if we already have errors. Stops some cases of cascaded
23094         errors.
23095
23096         * errout.adb: Improve comment.
23097
23098 2001-12-04  Robert Dewar <dewar@gnat.com>
23099
23100         * sem_ch12.adb:
23101         (Analyze_Formal_Type_Definition): Defend against Error.
23102         (Analyze_Formal_Subprogram): Defend against Error.
23103
23104         * par-ch12.adb (F_Formal_Type_Declaration): In case of error,
23105         remove following semicolon if present. Removes cascaded error.
23106
23107 2001-12-04  Douglas B. Rupp <rupp@gnat.com>
23108
23109         * bindgen.adb:
23110         (Gen_Exception_Table_Ada): Write "begin" and then return if Num
23111          exceptions equals 0.
23112         (Gen_Exception_Table_C): Return if Num exceptions equals 0.
23113         Fixes PIWG E tests (which have to be run with -gnatL).
23114
23115 2001-12-04  Robert Dewar <dewar@gnat.com>
23116
23117         * einfo.ads: Minor reformatting
23118
23119 2001-12-04  Ed Schonberg <schonber@gnat.com>
23120
23121         * einfo.ads: Block_Node points to the identifier of the block, not to
23122         the block node itself, to preserve the link when the block is
23123         rewritten, e.g. within an if-statement with a static condition.
23124
23125         * inline.adb (Cleanup_Scopes): recover block statement from block
23126         entity using new meaning of Block_Node.
23127
23128         * sem_ch5.adb (Analyze_Block_Statement): set Block_Node to point to
23129         identifier of block node, rather than to node itself.
23130
23131 2001-12-04  Gary Dismukes <dismukes@gnat.com>
23132
23133         * layout.adb:
23134         (Get_Max_Size): Fix "start of processing" comment to say Get_Max_Size.
23135         (Discrimify): Go back to setting the Etypes of the selected component
23136         because the Vname component does not exist at this point and will
23137         fail name resolution. Also set Analyzed.
23138         Remove with and use of Sem_Res.
23139
23140 2001-12-04  Arnaud Charlet <charlet@gnat.com>
23141
23142         * Makefile.in: (HIE_SOURCES): add s-fat*.
23143
23144 2001-12-04  Robert Dewar <dewar@gnat.com>
23145
23146         * sem_attr.adb:
23147         (Compile_Time_Known_Attribute): New procedure.
23148         (Eval_Attribute, case Size): Use Compile_Time_Known_Attribute to ensure
23149          proper range check.
23150
23151 2001-12-04  Ed Schonberg <schonber@gnat.com>
23152
23153         * sem_ch7.adb (New_Private_Type): Set Is_Tagged_Type flag before
23154         processing discriminants to diagnose illegal default values.
23155
23156 2001-12-04  Ed Schonberg <schonber@gnat.com>
23157
23158         * sem_attr.adb (Resolve_Attribute): Handle properly an non-classwide
23159         access discriminant within a type extension that constrains its
23160         parent discriminants.
23161
23162 2001-12-04  Ed Schonberg <schonber@gnat.com>
23163
23164         * sem_ch3.adb (Find_Type_Of_Subtype_Indic): If subtype indication
23165         is malformed, use instance of Any_Id to allow analysis to proceed.
23166
23167         * par-ch12.adb (P_Formal_Type_Declaration): Propagate Error if
23168         type definition is illegal.
23169         (P_Formal_Derived_Type_Definition): Better recovery when TAGGED is
23170         misplaced.
23171
23172 2001-12-04  Ed Schonberg <schonber@gnat.com>
23173
23174         * sem_warn.adb (Output_Unreferenced_Messages): Extend previous fix to
23175         constants.
23176
23177 2001-12-04  Robert Dewar <dewar@gnat.com>
23178
23179         * errout.adb: Minor reformatting
23180
23181 2001-12-04  Robert Dewar <dewar@gnat.com>
23182
23183         * exp_util.adb: Minor reformatting from last change
23184
23185         * errout.adb (Check_For_Warning): For a Raised_Constraint_Error node
23186         which is a rewriting of an expression, traverse the original
23187         expression to remove warnings that may have been posted on it.
23188
23189 2001-12-04  Ed Schonberg <schonber@gnat.com>
23190
23191         * exp_util.adb (Must_Be_Aligned): Return false for a component of a
23192         record that has other packed components.
23193
23194 2001-12-04  Douglass B. Rupp <rupp@gnat.com>
23195
23196         * adaint.c: Minor cleanups.
23197
23198 2001-12-04  Douglass B. Rupp <rupp@gnat.com>
23199
23200         * adaint.c: Do not use utime.h on vxworks.
23201
23202 2001-12-04  Arnaud Charlet <charlet@gnat.com>
23203
23204         * Makefile.adalib: Clarify step 3 (use of gnat.adc) as it causes
23205         more confusion than it solves.
23206
23207 2001-12-04  Geert bosch <bosch@gnat.com>
23208
23209         * einfo.h, nmake.adb, nmake.ads, sinfo.h treeprs.ads: Regenerate.
23210
23211 2001-12-04  Geert Bosch  <bosch@gnat.com>
23212
23213         * Makefile.in (update-sources): New target.
23214         For use by gcc_release script.
23215
23216 2001-12-04  Ed Schonberg <schonber@gnat.com>
23217
23218         * sem_prag.adb (Analyze_Pragma, case Validity_Checks): do not treat as
23219         a configuration pragma, it is now legal wherever a pragma can appear.
23220
23221 2001-12-04  Zack Weinberg  <zack@codesourcery.com>
23222
23223         * Makefile.in: Don't set ALL.  Delete @cross_defines@,
23224         @cross_overrides@, @build_overrides@ stanzas.  INTERNAL_CFLAGS
23225         is now @CROSS@ -DIN_GCC; update comment.
23226
23227 2001-12-04  Robert Dewar <dewar@gnat.com>
23228
23229         * einfo.adb (Has_Pragma_Pure_Function): New flag.
23230         Fix problem that stopped ceinfo from working
23231
23232         * einfo.ads (Has_Pragma_Pure_Function): New flag.
23233
23234         * sem_prag.adb (Pure_Function): Set new flag Has_Pragma_Pure_Function.
23235
23236 2001-12-04  Douglas B. Rupp <rupp@gnat.com>
23237
23238         * gnatchop.adb:
23239         (File_Time_Stamp): New procedure.
23240         (Preserve_Mode): New boolean.
23241         (Write_Unit): Pass time stamp.
23242         Implement -p switch (preserve time stamps).
23243
23244         * gnatcmd.adb (CHOP): Add translation for -p (/PRESERVE).
23245
23246         * gnatchop.adb: Do usage info for -p switch
23247
23248         * adaint.h (__gnat_set_file_time_name): New function
23249
23250         * adaint.c (__gnat_set_file_time_name): Implement
23251
23252         * adaint.h: Fix typo
23253
23254 2001-12-03  Robert Dewar <dewar@gnat.com>
23255
23256         * sinfo.ads: Minor reformatting. N_Freeze_Entity node does not
23257         have Associated_Node.
23258
23259 2001-12-03  Robert Dewar <dewar@gnat.com>
23260
23261         * prj-proc.adb: Minor reformatting
23262
23263         * make.adb: Minor reformatting
23264
23265 2001-12-03  Geert Bosch <bosch@gnat.com>
23266
23267         * make.adb: Minor reformatting.
23268
23269 2001-12-03 Robert Dewar  <dewar@gnat.com>
23270
23271         * sem_ch12.adb: Minor reformatting
23272
23273 2001-12-03  Ed Schonberg <schonber@gnat.com>
23274
23275         * sem_ch12.adb (Inline_Instance_Body): Use Save_Scope_Stack and
23276         push Standard on the stack before analyzing the instance body,
23277         in order to have a clean visibility environment.
23278
23279         * sem_ch12.adb (Inline_Instance_Body): Remove redundant code.
23280
23281 2001-12-03  Ed Schonberg <schonber@gnat.com>
23282
23283         * sem_ch12.adb (Instantiate_Package_Body): Protect against double
23284         instantiation of a body that contains an inlined body.
23285
23286 2001-12-03  Ed Schonberg <schonber@gnat.com>
23287
23288         * sem_ch12.adb:
23289         (Analyze_generic_subprogram_Declaration): Set outer_generic_scope,
23290         to prevent freezing within formal packages.
23291         (Freeze_Subprogram_Body): If body comes from another instance that
23292         appeared before its own body, place freeze node at end of current
23293         declarative part, to prevent a back-end crash.
23294         (Inline_Instance_Body): Handle properly a package instance within
23295         a subprogram instance that is a child unit.
23296
23297 2001-12-01  Graham Stott  <grahams@redhat.com>
23298
23299         * Makefile.in (misc.o): Add missing $(srcdir) prefix
23300         and add optabs.h dependency.
23301
23302         * misc.c: Include optabs.h
23303         (gnat_tree_code_type): Make static and const.
23304         (gnat_tree_code_length): Likewise.
23305         (gnat_tree_code_name): Likewise.
23306         (update_setjmp_buf): Obtain operands mode from insn_data.
23307
23308 2001-11-29  Richard Henderson  <rth@redhat.com>
23309
23310         * init.c: Remove obsolete dwarf2 frame.h section.
23311
23312 2001-11-29  Joseph S. Myers  <jsm28@cam.ac.uk>
23313
23314         * Make-lang.in (ada.generated-manpages): New dummy target.
23315
23316 2001-11-29  Ed Schonberg <schonber@gnat.com>
23317
23318         * g-os_lib.adb (Add_To_Command): use explicit loop to move string
23319         into Command, an array conversion is illegal here. Uncovered by
23320         ACATS B460005.
23321
23322 2001-11-28  Geert Bosch <bosch@gnat.com>
23323
23324         * init.c: Minor whitespace changes.
23325
23326 2001-11-28  Doug Rupp <rupp@gnat.com>
23327
23328         * init.c: (__gnat_install_handler,VMS): Increase size of alternate
23329         signal stack.
23330
23331 2001-11-28  Zack Weinberg  <zack@codesourcery.com>
23332
23333         * misc.c (gnat_expand_constant): Move declaration above
23334         definition of lang_hooks.
23335         (LANG_HOOKS_EXPAND_CONSTANT): Set to gnat_expand_constant.
23336         (gnat_init): lang_expand_constant no longer exists.
23337
23338         (internal_error_function): Remove #ifdef HAVE_VPRINTF.  We
23339         always have vprintf.
23340         (gnat_init): Always call set_internal_error_function.
23341
23342 2001-11-27  Andreas Jaeger  <aj@suse.de>
23343
23344         * Makefile.in (stamp-tool_src_dir): Use symbolic link.
23345
23346 2001-11-27  Laurent Guerby  <guerby@acm.org>
23347
23348         * Makefile.in: Regenerate Ada dependencies.
23349
23350 2001-11-26  Richard Henderson  <rth@redhat.com>
23351
23352         * Make-lang.in (gnatbind, gnatmake, gnatbl, gnatchop, gnatcmd,
23353         gnatlink, gnatkr, gnatls, gnatmem, gnatprep, gnatpsta, gnatpsys,
23354         gnatxref, gnatfind, gnatlbr): Depend on CONFIG_H and prefix.o.
23355
23356 2001-11-25  Laurent Guerby  <guerby@acm.org>
23357
23358         * sysdep.c (rts_get_*): Fix style.
23359
23360 2001-11-19  Laurent Guerby  <guerby@acm.org>
23361
23362         * Makefile.in (INCLUDES_FOR_SUBDIR): Remove redundant system include
23363         since it is of no apparent use and cause warnings.
23364
23365 2001-11-18  Neil Booth  <neil@daikokuya.demon.co.uk>
23366
23367         * misc.c (gnat_decode_option, gnat_init_options): Make definitions
23368         static too.
23369         (gnat_init): Don't return NULL.
23370         (finish_parse): Remove.
23371
23372 2001-11-17  Laurent Guerby  <guerby@acm.org>
23373
23374         * Make-lang.in (GNATLIBFLAGS): Add -W -Wall.
23375         * gigi.h (init_decl_processing): Rename to gnat_init_decl_processing.
23376         * io-aux.c: Provide K&R prototypes to all functions, reformat code.
23377         * lang-spec.h: Add missing struct field to silence warnings.
23378         * sysdep.c (rts_get_*): Provide K&R prototype.
23379         * sysdep.c (Unlock_Task, Lock_Task): Move to K&R prototype.
23380         * traceback.c (Unlock_Task, Lock_Task): Likewise.
23381         * tracebak.c (__gnat_backtrace): Remove unused variable.
23382         * utils.c (end_subprog_body): Move to K&R style.
23383
23384 Thu Nov 15 18:16:17 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
23385
23386         * trans.c, utils2.c: Remove PALIGN parameter to get_inner_reference.
23387
23388 2001-11-15  Neil Booth  <neil@daikokuya.demon.co.uk>
23389
23390         * misc.c (gnat_init): Change prototype.  Include the
23391         functionality of the old init_parse and init_decl_processing.
23392         (gnat_init_decl_processing): New prototype.
23393         (init_parse): Remove.
23394         * utils.c (init_decl_processing): Rename gnat_init_decl_processing.
23395
23396 2001-11-09  Neil Booth  <neil@daikokuya.demon.co.uk>
23397
23398         * misc.c (gnat_print_decl, gnat_print_type): Renamed.
23399         (LANG_HOOKS_PRINT_DECL, LANG_HOOKS_PRINT_TYPE): Override.
23400         (print_lang_statistics, lang_print_xnode, print_lang_identifier,
23401         set_yydebug): Remove.
23402
23403 2001-11-09  Neil Booth  <neil@daikokuya.demon.co.uk>
23404
23405         * misc.c (LANG_HOOKS_NAME, LANG_HOOKS_IDENTIFIER_SIZE): Override.
23406         (struct lang_hooks): Constify.
23407         (language_string, lang_identify): Remove.
23408         * utils.c (init_decl_processing): Update.
23409
23410 2001-11-06  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
23411
23412         * misc.c: Include langhooks-def.h.
23413         * Makefile.in: Update.
23414
23415 2001-10-30  Robert Dewar <dewar@gnat.com>
23416
23417         * style.adb:
23418         (Check_Identifier): Rewrite circuit to be compatible with use of letters
23419         in the upper half of ASCII.
23420         (Check_Identifier): Minor reformatting
23421
23422 2001-10-30  Geert Bosch <bosch@gnat.com>
23423
23424         * (Associated_Node, Set_Associated_Node): Do not check for
23425         Freeze_Entity.
23426
23427 2001-10-30  Robert Dewar <dewar@gnat.com>
23428
23429         * a-reatim.ads: Minor reformatting
23430
23431 2001-10-30  Robert Dewar <dewar@gnat.com>
23432
23433         * gnatdll.adb: Minor reformatting throughout. Many ??? added for
23434         undocumented declarations.
23435
23436 2001-10-30  Pascal Obry <obry@gnat.com>
23437
23438         * gnatdll.adb (Parse_Command_Line): handle -g option to be passed
23439         to the binder and linker.
23440         Minor style fix.
23441
23442         * mdll.ads: Fix layout.  Update copyright notice.
23443
23444         * mdll.adb: Fix layout.  Update copyright notice.
23445
23446 2001-10-30  Robert Dewar <dewar@gnat.com>
23447
23448         * usage.adb: Minor fix to output for -gnaty.
23449
23450 2001-10-30  Ed Schonberg <schonber@gnat.com>
23451
23452         * a-reatim.ads: Makes Seconds_Count into a 64-bit integer,
23453         to accommodate all its possible values.
23454
23455         * a-reatim.adb (Split): Special-case handling of Time_Span_First
23456         and of small absolute values of T.
23457
23458 2001-10-30  Richard Kenner <kenner@gnat.com>
23459
23460         * misc.c (gnat_expand_expr, case NULL_EXPR): Remove call to
23461         set_mem_attributes since not needed and wrong if RESULT if a REG;
23462         fixes ACATS failures.
23463
23464 2001-10-30  Geert Bosch <bosch@gnat.com>
23465
23466         * 86numaux.adb, a-tigeau.ads, a-wtgeau.ads, fname-sf.ads, g-traceb.ads,
23467         s-tasdeb.ads, sem_maps.ads: Add 2001 to copyright notice.
23468
23469 2001-10-30  Robert Dewar <dewar@gnat.com>
23470
23471         * bindusg.adb: Undocument -f switch.
23472
23473         * gnatcmd.adb: Remove /FULL_ELABORATION.
23474
23475         * opt.ads (Force_RM_Elaboration_Order): Document that this is
23476         obsolescent.
23477
23478         * gnatbind.adb: Output new warning for use of obsolescent -f switch.
23479
23480         * gnatbind.adb: Minor update of warning msg.
23481
23482 2001-10-30  Vincent Celier <celier@gnat.com>
23483
23484         * gnatcmd.adb (MAKE, BIND, LINK, LIST, FIND, XREF): Add translations
23485         for project file switches (-P (/PROJECT_FILE=),
23486          -X (/EXTERNAL_REFERENCE=) and -vPx (/PROJECT_FILE_VERBOSITY=DEFAULT
23487         or MEDIUM or HIGH)
23488
23489 2001-10-30  Geert Bosch <bosch@gnat.com>
23490
23491         * decl.c: Minor whitespace fixes.
23492
23493 2001-10-30  Richard Kenner <kenner@gnat.com>
23494
23495         * utils2.c (build_allocator): Test for SIZE overflow in array case too
23496
23497 2001-10-30  Geert Bosch <bosch@gnat.com>
23498
23499         * ali-util.adb (Initialize_Checksum): Use out-mode instead of in out.
23500         Found due to GCC 3.0 warning of using uninitialized value.
23501
23502         * layout.adb:
23503         (Get_Max_Size): Use variant record for tracking value/expression.
23504          Makes logic clearer and prevents warnings for uninitialized variables.
23505         (Layout_Array_Type): Use variant record for tracking value/expression.
23506          Makes logic clearer and prevents warnings for uninitialized variables.
23507
23508 2001-10-30  Robert Dewar <dewar@gnat.com>
23509
23510         * lib.adb: Minor reformatting
23511
23512         * s-taprop.ads: Minor reformatting
23513
23514 2001-10-29  Laurent Guerby  <guerby@acm.org>
23515
23516         * init.c:
23517         (Raise_From_Signal_Handler, Propagate_Signal_Exception): Make arg
23518         const.
23519         (_gnat_error_handler): Make MSG const.
23520
23521 2001-10-29  Richard Kenner <kenner@gnat.com>
23522
23523         * sysdep.c: Fix localtime_r problem on LynxOS.
23524         Also remove #elif to avoid warnings.
23525
23526         * misc.c (yyparse): Don't set up and register jmpbuf; remove decls
23527         used by this.
23528
23529         * decl.c (annotate_value): Make SIZE unsigned to avoid warning.
23530
23531 2001-10-28  Joseph S. Myers  <jsm28@cam.ac.uk>
23532
23533         * 86numaux.adb, a-tigeau.ads, a-wtgeau.ads, decl.c, exp_ch6.adb,
23534         exp_ch9.adb, exp_util.adb, fname-sf.ads, freeze.ads, g-awk.adb,
23535         g-comlin.ads, g-dirope.adb, g-dyntab.ads, g-socket.ads,
23536         g-table.ads, g-traceb.ads, gnat-style.texi, gnatchop.adb, init.c,
23537         layout.adb, layout.ads, mdllfile.ads, mlib-fil.ads, osint.ads,
23538         s-fatgen.adb, s-imgrea.adb, s-taprop.ads, s-tasdeb.ads,
23539         sem_aggr.adb, sem_attr.adb, sem_case.ads, sem_ch13.adb,
23540         sem_ch3.adb, sem_elab.adb, sem_maps.ads, sem_res.adb,
23541         sem_util.ads, sinfo.ads, sinput.ads, table.adb, table.ads,
23542         types.ads, urealp.adb: Fix spelling errors.
23543
23544 2001-10-27  Laurent Guerby <guerby@acm.org>
23545
23546         * trans.c (gigi): Fix non determinism leading to bootstrap
23547         comparison failures for debugging information.
23548
23549 2001-10-26  Florian Weimer  <fw@deneb.enyo.de>
23550
23551         * gnat_rm.texi: Use @./@: where appropriate.
23552
23553 2001-10-26  Robert Dewar <dewar@gnat.com>
23554
23555         * sinfo.adb: Define Associated_Node to overlap Entity field. Cleanup.
23556
23557 2001-10-26  Richard Kenner <kenner@gnat.com>
23558
23559         * gmem.c (__gnat_gmem_read_next): Properly check for EOF
23560
23561 2001-10-26  Richard Kenner <kenner@gnat.com>
23562
23563         * decl.c (validate_size): Modify message for bad size to avoid
23564         implication that compiler is modifying the size.
23565
23566 2001-10-26  Robert Dewar <dewar@gnat.com>
23567
23568         * prj-util.adb: Minor reformatting. Fix bad header format.
23569
23570 2001-10-26  Robert Dewar <dewar@gnat.com>
23571
23572         * sinfo.ads: Define Associated_Node to overlap Entity field. Cleanup.
23573
23574         * sinfo.ads: Clarify use of Associated_Node (documentation only).
23575
23576         * sem_ch12.adb: Change Node4 to Associated_Node. Change
23577         Associated_Node to Get_Associated_Node. Put use of Unchecked_Access
23578         much more narrowly in places where needed. These are cleanups.
23579
23580 2001-10-26  Joel Brobecker <brobecke@gnat.com>
23581
23582         * 5zosinte.ads (null_pthread): new constant.
23583
23584         * 5ztaprop.adb:
23585         (Initialize_TCB): Initialize thread ID to null, to be able to verify
23586          later that this field has been set.
23587         (Finalize_TCB): ditto.
23588         (Suspend_Task): Verify that the thread ID is not null before using it.
23589         (Resume_Task): ditto.
23590
23591         * s-tasdeb.adb:
23592         (Resume_All_Tasks): Lock the tasks list before using it.
23593         (Suspend_All_Tasks): ditto.
23594
23595 2001-10-26  Richard Kenner <kenner@gnat.com>
23596
23597         * decl.c (gnat_to_gnu_entity, case E_General_Access_Type):
23598         Make constant variant of designated type for Is_Access_Constant.
23599         Call update_pointer_to with main variant.
23600
23601         * trans.c (process_freeze_entity, process_type):
23602         Call update_pointer_to on main variant.
23603
23604         * utils.c (update_pointer_to): Make corresponding variant for NEW_TYPE.
23605         If main variant, update all other variants.
23606
23607         * utils2.c (build_unary_op, case INDIRECT_REF): No longer set
23608         TREE_STATIC.
23609
23610 2001-10-26  Robert Dewar <dewar@gnat.com>
23611
23612         * prj-util.adb: Minor reformatting
23613
23614 2001-10-26  Robert Dewar <dewar@gnat.com>
23615
23616         * prj-util.adb: Minor reformatting
23617
23618 2001-10-26  Robert Dewar <dewar@gnat.com>
23619
23620         * prj-attr.adb: Minor reformatting throughout
23621
23622 2001-10-26  Robert Dewar <dewar@gnat.com>
23623
23624         * prj-attr.ads: Minor reformatting
23625         Add ??? comment (this whole spec has almost no comments)
23626
23627 2001-10-26  Vincent Celier <celier@gnat.com>
23628
23629         * g-os_lib.adb (Normalize_Pathname): Preserve the double slash
23630         ("//") that precede the drive letter on Interix.
23631
23632 2001-10-26  Geert Bosch <bosch@gnat.com>
23633
23634         * gnat_rm.texi: Add GNAT Reference Manual.
23635
23636 2001-10-25  Robert Dewar <dewar@gnat.com>
23637
23638         * sem_ch8.adb (Analyze_Package_Renaming): Skip analysis if Name
23639         is Error. Similar change for other renaming cases.
23640
23641 2001-10-25  Robert Dewar <dewar@gnat.com>
23642
23643         * s-atacco.ads: Add pragma Inline_Always for functions.
23644         Fix header format. Add copyright 2001
23645
23646 2001-10-25  Ed Schonberg <schonber@gnat.com>
23647
23648         * par-ch3.adb (P_Subtype_Mark_Resync): for an anonymous array
23649         return Error rather than Empty so that analysis can proceed.
23650
23651 2001-10-25  Ed Schonberg <schonber@gnat.com>
23652
23653         * sem_util.adb (Enter_Name): better handling of cascaded error
23654         messages when a unit appears in its own context.
23655
23656 2001-10-25  Ed Schonberg <schonber@gnat.com>
23657
23658         * sem_util.adb (Defining_Entity): in case of error, attach created
23659         entity to specification, so that semantic analysis can proceed.
23660
23661 2001-10-25  Robert Dewar <dewar@gnat.com>
23662
23663         * sem_util.adb
23664         (Defining_Entity): Deal with Error.
23665         (Process_End_Label): Deal with bad end label for.
23666
23667 2001-10-25  Ed Schonberg <schonber@gnat.com>
23668
23669         * sem_elab.adb (Check_A_Call): refine message when call is in an
23670         instance but callee is not declared in the generic unit.
23671
23672 2001-10-25  Ed Schonberg <schonber@gnat.com>
23673
23674         * sem_elab.adb (Check_A_Call): check for renaming before finding the
23675         enclosing unit, which may already be different from the calling unit.
23676
23677 2001-10-25  Geert Bosch <bosch@gnat.com>
23678
23679         * 4gintnam.ads: fix header format.
23680
23681 2001-10-25  Ed Schonberg <schonber@gnat.com>
23682
23683         * sem_res.adb (Resolve_Call): if the call is actually an indexing
23684         operation on the result of a parameterless call, perform elaboration
23685         check after the node has been properly rewritten.
23686
23687         * sem_ch12.adb (Copy_Generic_Node): after the proper body has been
23688         inlined within the generic tree, the defining identifier is not a
23689         compilation_unit.
23690
23691 2001-10-25  Ed Schonberg <schonber@gnat.com>
23692
23693         * sem_res.adb (Resolve): special-case resolution of Null in an
23694          instance or an inlined body to avoid view conflicts.
23695
23696         * sem_ch12.adb (Copy_Generic_Node): for allocators, check for view
23697          compatibility by retrieving the access type of the generic copy.
23698
23699 2001-10-25  Robert Dewar <dewar@gnat.com>
23700
23701         * sem_ch3.adb:
23702         (Analyze_Number_Declaration): Handle error expression.
23703         (Signed_Integer_Type_Declaration): Handle error bound.
23704         (Analyze_Subtype_Indication): Handle error range.
23705
23706         * sem_util.adb (Get_Index_Bounds): Check for Error.
23707
23708 2001-10-25  Robert Dewar <dewar@gnat.com>
23709
23710         * restrict.adb (Set_No_Run_Time_Mode): Set Discard_Names as default
23711         in no run time mode.
23712
23713 2001-10-25  Pascal Obry <obry@gnat.com>
23714
23715         * gnatmem.adb (Read_Next): fix Curs2 value to properly handle quiet
23716         mode case for ALLOC case.
23717
23718         * gnatmem.adb (Read_Next): correctly fix parsing in Quiet mode on
23719         all platforms. Improvement of last change.
23720
23721 2001-10-25  Robert Dewar <dewar@gnat.com>
23722
23723         * exp_ch4.adb (Expand_N_Allocator): Minor reformatting.
23724
23725 2001-10-25  Geert Bosch  <bosch@gnat.com>
23726
23727         * osint.adb (Is_Relative): Remove duplicate.
23728
23729 2001-10-25  Pascal Obry <obry@gnat.com>
23730
23731         * osint.adb (Read_Default_Search_Dirs): correctly detect relative
23732         pathnames in UNIX and DOS style with drive letter.
23733         (Is_Relative): new routine.
23734
23735         * osint.adb: Minor reformatting
23736
23737         * osint.adb (Is_Relative): implementation using
23738         GNAT.OS_Lib.Is_Absolute_Path. Better fix.
23739
23740 2001-10-25  Pascal Obry <obry@gnat.com>
23741
23742         * g-dirope.adb (Basename): correctly compute offset between the
23743         original Path and the translated one.
23744
23745         * g-dirope.adb: (Base_Name): add some comments.
23746
23747 2001-10-25  Robert Dewar <dewar@gnat.com>
23748
23749         * exp_imgv.adb (Expand_Image_Attribute): Defend against bad use
23750         in HIE mode, avoids compilation abandoned message
23751
23752         * exp_imgv.adb: Correct typo in previous change
23753
23754         * exp_imgv.adb: Correct typo in previous change (not my day!)
23755
23756 2001-10-25  Robert Dewar <dewar@gnat.com>
23757
23758         * s-tpinop.ads: Add 2001 to copyright notice. Fix header format.
23759
23760 2001-10-25  Pascal Obry <obry@gnat.com>
23761
23762         * g-awk.ads: Move all pragma inlines next to the routine
23763          declarations. This is more uniform with other GNAT spec.
23764
23765 2001-10-22  Geert Bosch  <bosch@gnat.com>
23766
23767         * Make-lang.in (gnattools, cross-gnattools): Remove gnatmem.
23768
23769 2001-10-19  Geert Bosch  <bosch@gnat.com>
23770
23771         * Makefile.in (tools, gnattools): Remove gnatmem.
23772
23773 2001-10-17  Richard Henderson  <rth@redhat.com>
23774
23775         * Makefile.in (misc.o): Depend on langhooks.h.
23776         * misc.c: Include it.
23777         (LANG_HOOKS_INIT, LANG_HOOKS_INIT_OPTIONS): New.
23778         (LANG_HOOKS_DECODE_OPTION): New.
23779         (lang_hooks): Use LANG_HOOKS_INITIALIZER.
23780
23781 2001-10-16  Florian Weimer  <fw@deneb.enyo.de>
23782
23783         * trans.c (tree_transform): Adjust to recent change in
23784         expand_asm_operands to implement named asm operands.
23785
23786 2001-10-11  Ed Schonberg  <schonber@gnat.com>
23787
23788         * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Bugfix in
23789         renaming of discriminant for mutable record type.
23790
23791 2001-10-11  Robert Dewar  <dewar@gnat.com>
23792
23793         * validsw.adb: Properly save -gnatVn status.
23794
23795 2001-10-11  Robert Dewar <dewar@gnat.com>
23796
23797         * usage.adb: Add lines for V switch.
23798
23799         * gnatcmd.adb (COMPILE): Revise translations for -gnatV
23800         (/VALIDITY_CHECKING).
23801
23802 2001-10-11  Ed Schonberg <schonber@gnat.com>
23803
23804         * sem_type.adb (Add_One_Interp): an operator for a type declared in
23805         an extension of System is known to be visible.
23806
23807 2001-10-11  Ed Schonberg <schonber@gnat.com>
23808
23809         * sem_eval.adb (Compare_Fixup): get the bounds of a String_Literal
23810         properly. Fixes regression on ACATS C34005G.
23811
23812 2001-10-11  Robert Dewar <dewar@gnat.com>
23813
23814         * sem_ch5.adb (Analyze_Iteration_Scheme): Suppress warning on null
23815         loop in generic instance, since this is likely not very useful.
23816
23817 2001-10-11  Robert Dewar <dewar@gnat.com>
23818
23819         * restrict.adb (Disallow in No_Run_Time_Mode): Properly specialize
23820         the error message for high integrity mode.
23821
23822         * rtsfind.adb (RTE): Give message if we try to find an entity that
23823         is not available in high integrity mode.
23824
23825         * rtsfind.ads:
23826         (OK_To_Use_In_HIE_Mode): New array.
23827         (RTE): May return Empty in high integrity mode.
23828
23829         * rtsfind.ads (OK_To_Use_In_No_Run_Time_Mode): New name for
23830         OK_To_Use_In_HIE_Mode, now includes System_FAT_xxx.
23831
23832         * sem_ch6.adb (Analyze_Subprogram_Body): Kill body in predefined
23833         unit if not inlined always and in no runtime mode. Fixes problem
23834         caused by new Rtsfind changes.
23835
23836         * sem_ch6.adb (Analyze_Subrogram_Body): Do not Check_References if
23837         body is deleted.
23838
23839         * rtsfind.adb (RTE): Make sure we do not try to load unit after
23840         giving message for entity not available in high integrity mode.
23841
23842 2001-10-11  Pascal Obry <obry@gnat.com>
23843
23844         * impunit.adb: Add GNAT.CRC32.
23845
23846 2001-10-11  Ed Schonberg <schonber@gnat.com>
23847
23848         * exp_fixd.adb (Expand_Multiply_Fixed_By_Fixed_Giving_Fixed): handle
23849         properly the case where one universal operand in a non-static
23850         exponentiation of a real literal.
23851
23852 2001-10-11  Ed Schonberg <schonber@gnat.com>
23853
23854         * exp_ch7.adb (Find_Final_List): for a type appearing in a with_type
23855         clause, return the gobal finalization list, for lack of anthing else.
23856
23857 2001-10-11  Ed Schonberg <schonber@gnat.com>
23858
23859         * exp_ch7.adb (Make_Transient_Block): if statement is within
23860         exception handler, always use new transient scope to place Clean
23861         procedure.
23862
23863 2001-10-11  Pascal Obry <obry@gnat.com>
23864
23865         * Makefile.in:
23866         (GNAT_ADA_OBJS): add g-crc32.o, a-tags.o, a-stream.o
23867         (GNATBIND_OBJS): add g-crc32.o, a-tags.o, a-stream.o
23868         (GNATLS_RTL_OBJS): add g-crc32.o
23869         (GNATMAKE_RTL_OBJS): add g-crc32.o
23870
23871         * ali-util.adb:
23872         (CRC_Match): new function.
23873         (Get_File_Checksum): renamed Get_File_CRC. Use the GNAT.CRC32 unit
23874         instead of the previous simple checksum algorithm.
23875         (Time_Stamp_Mismatch): use CRC_Match for comparison.
23876         (Set_Source_Table): idem.
23877
23878         * ali-util.ads:
23879         (Get_File_Checksum): renamed Get_File_CRC as now we compute CRC
23880         instead of simple checksum.
23881         (CRC_Match): new function.
23882         (CRC_Error): new constant.
23883
23884         * ali.adb (Scan_ALI): rename variable Chk to CRC as we are handling
23885         a CRC now and not a simple checksum. A CRC uses lower-case hex
23886         letters, fixes ambiguity in parsing.
23887
23888         * ali.ads (Sdep_Record.Checksum): renamed Sdep_Record.CRC as this
23889         is what this variable will store.
23890
23891         * bcheck.adb: Change reference to chechsum in comments by CRC.
23892         (Check_Consistency): Rename Get_File_Checksum to Get_File_CRC.
23893         rename All_Checksum_Match to All_CRC_Match. Change due to API
23894         renaming since now GNAT does not use a simple checksum but a
23895         CRC using GNAT.CRC32.
23896
23897         * gnatls.adb: Rename Checksum to CRC in many places, we use a CRC
23898         now and not anymore a simple checksum.
23899
23900         * lib-load.adb: Use Source_CRC instead of Source_Checksum in many
23901         places.
23902
23903         * lib-writ.adb (Write_ALI): Use Source_CRC instead of Source_Checksum.
23904
23905         * scans.adb:
23906         (Restore_Scan_State): rename Checksum to CRC.
23907         (Save_Scan_State): idem.
23908
23909         * scans.ads:
23910         With GNAT.CRC32.
23911         (Checksum): rename to CRC.
23912         (Saved_Scan_State): Save_Checksum field renamed to Save_CRC
23913
23914         * scn-nlit.adb: Rename many Accumulate_Checksum to Update (from
23915         GNAT.CRC32).  Update copyright notice.
23916
23917         * scn-slit.adb: Rename many Accumulate_Checksum to Update (from
23918         GNAT.CRC32).  Update copyright notice.
23919
23920         * scn.adb:
23921         (Accumulate_Checksum): removed.
23922         (Update): new procedure. Add a wide-character into the CRC.
23923
23924         * sinput-l.adb:
23925         (Complete_Source_File_Entry): use CRC32 instead of simple checksum.
23926         (Load_File): fix initialization of S (change Source_Checksum to
23927         Source_CRC)
23928
23929         * sinput-p.adb (Load_Project_File): rename Source_Checksum to
23930         Source_CRC in S initialization.
23931
23932         * sinput.adb (Source_Checksum): renamed to Source_CRC.
23933
23934         * sinput.ads (Source_Checksum): renamed to Source_CRC.
23935         Update comments for the CRC.
23936
23937         * types.adb (Hex): Use lowercase for the letter part.
23938
23939         * types.ads (Get_Hex_String): Returns the hexadecimal representation
23940         for a word. This is currently used only for CRC. In previous version,
23941         the checksum was using a representation with all letter being
23942         upper-case. With the new implementation (using CRC) we do not remove
23943         the 32th bit of the CRC, so we can have an upper-case starting letter
23944         in the CRC. This is not possible to parse in Scan_ALI (ali.adb).
23945         It is ambigous since the CRC was optional and could be followed by
23946         options like EB, EE. So now this routines uses lower-case letter for
23947         the hexadecimal representation. Strange enough only lower case letters
23948         where checked in Scan_ALI (even if this was not a possible case).
23949
23950         * gnatvsn.ads (Library_Version): changed to 3.15a.
23951
23952         * s-crc32.ads: Initial version from GNAT.CRC32. This is the version
23953         for the compiler.
23954
23955         * s-crc32.adb: Initial version from GNAT.CRC32. This is the version
23956         for the compiler.
23957
23958         * ali-util.adb: Redo previous change to avoid using word CRC everywhere
23959         Add 2001 to copyright notice
23960         (Accumulate_Checksum): Modify to use System.CRC32.
23961
23962         * ali-util.ads: Redo changes of previous revision to continue to use
23963         the word Checksum. Add 2001 to copyright notice.
23964
23965         * ali.adb: Undo some of previous changes, not needed.
23966         Keep the change for lower case letters in the checksum.
23967
23968         * ali.ads: Undo previous change not needed.
23969
23970         * bcheck.adb: Undo most of previous change, not needed.
23971         But do use Checksums_Match for checksum comparison.
23972
23973         * gnatls.adb: Undo most of previous change, not needed.
23974         But do use Checksums_Match for comparing checksums.
23975
23976         * lib-load.adb: Undo previous change, not needed.
23977
23978         * lib-writ.adb: Undo previous change, not needed.
23979
23980         * lib-writ.ads: Document that checksums use lower case,
23981         not upper case letters.
23982
23983         * scans.adb: Undo previous change, not needed
23984
23985         * scans.ads: Undo previous change, not needed.
23986
23987         * scn-nlit.adb: Undo previous changes, not needed.
23988
23989         * scn-slit.adb: Undo previous change, not needed.  Fix header format.
23990
23991         * scn.adb:
23992         (Accumulate_Checksum): Use System.CRC32.
23993         (Initialize_Checksum): New procedure.
23994         Remove other changes of previous revision.
23995
23996         * sinput-p.adb: Undo previous change, not needed.
23997
23998         * sinput.adb: Undo previous change, not needed.
23999
24000         * sinput-l.adb: Undo previous change, not needed.
24001
24002         * sinput.ads: Undo previous change, not needed.  Keep only comment
24003         on new checksum algorithm
24004
24005         * Makefile.in: Add s-crc32 as needed, remove g-crc32.
24006         Also remove a-tags and a-stream from GNAT sources.
24007
24008         * ali.adb (Scan_ALI): fix typo introduce in latest check-in.
24009
24010         * Makefile.in (GNATRTL_NONTASKING_OBJS): Add g-crc32.o.
24011
24012 2001-10-11  Geert Bosch  <bosch@gnat.com>
24013
24014         * einfo.h: Regenerate.
24015
24016         * nmake.ads: Regenerate.
24017
24018         * nmake.adb: Regenerate.
24019
24020         * sinfo.h: Regenerate.
24021
24022         * treeprs.adb: Regenerate.
24023
24024 2001-10-10  Geert Bosch  <bosch@gnat.com>
24025
24026         * gnat-style.texi: New file describing coding guidelines for Ada.
24027
24028 2001-10-10  Ed Schonberg <schonber@gnat.com>
24029
24030         * einfo.adb (Write_Entity_Flags): Elaboration_Entity_Required
24031         is Flag174.
24032
24033 2001-10-10  Geert Bosch  <bosch@gnat.com>
24034
24035         * snames.ads: Add new names for project facility.
24036
24037         * snames.adb: Update to reflect snames.ads changes.
24038
24039         * snames.h: Update to reflect snames.ads changes.
24040
24041 2001-10-10  Vincent Celier <celier@gnat.com>
24042
24043         * make.adb:
24044         (Add_Switches): reflect the changes for the switches attributes
24045         Default_Switches indexed by the programming language,
24046         Switches indexed by the file name.
24047         (Collect_Arguments_And_Compile): Idem.
24048         Reflect the attribute name changes.
24049
24050         * prj-attr.adb:
24051         (Initialisation_Data): Change the names of some packages and
24052         attributes.
24053         (Initialize): process case insensitive associative arrays.
24054
24055         * prj-attr.ads:
24056         (Attribute_Kind): Remove Both, add Case_Insensitive_Associative_Array.
24057
24058         * prj-dect.adb:
24059         (Parse_Attribute_Declaration): For case insensitive associative
24060          arrays, set the index string to lower case.
24061
24062         * prj-env.adb:
24063         Reflect the changes of the project attributes.
24064
24065         * prj-nmsc.adb:
24066         Replace Check_Naming_Scheme by Ada_Check and
24067         Language_Independent_Check.
24068
24069         * prj-nmsc.ads:
24070         Replaced Check_Naming_Scheme by 2 procedures:
24071         Ada_Check and Language_Independent_Check.
24072
24073         * prj-proc.adb:
24074         (Process_Declarative_Items): For case-insensitive associative
24075         arrays, set the index string to lower case.
24076         (Recursive_Check): Call Prj.Nmsc.Ada_Check, instead of
24077         Prj.Nmsc.Check_Naming_Scheme.
24078
24079         * prj-tree.adb:
24080         (Case_Insensitive): New function
24081         (Set_Case_Insensitive): New procedure
24082
24083         * prj-tree.ads:
24084         (Case_Insensitive): New function
24085         (Set_Case_Insensitive): New procedure
24086         (Project_Node_Record): New flag Case_Insensitive.
24087
24088         * prj-util.adb:
24089         (Value_Of): new function to get the string value of a single
24090         string variable or attribute.
24091
24092         * prj-util.ads:
24093         (Value_Of): new function to get the string value of a single
24094         string variable or attribute.
24095
24096         * prj.adb:
24097         (Ada_Default_Spec_Suffix): New function
24098         (Ada_Default_Impl_Suffix): New function
24099         Change definitions of several constants to reflect
24100         new components of record types.
24101
24102         * prj.ads:
24103         (Naming_Data): Change several components to reflect new
24104         elements of naming schemes.
24105         (Project_Data): New flags Sources_Present and
24106         Language_Independent_Checked.
24107         (Ada_Default_Spec_Suffix): New function.
24108         (Ada_Default_Impl_Suffix): New function.
24109
24110         * snames.ads:
24111         Modification of predefined names for project manager: added
24112         Implementation, Specification_Exceptions, Implementation_Exceptions,
24113         Specification_Suffix, Implementation_Suffix, Separate_Suffix,
24114         Default_Switches, _Languages, Builder, Cross_Reference,
24115         Finder. Removed Body_Part, Specification_Append, Body_Append,
24116         Separate_Append, Gnatmake, Gnatxref, Gnatfind, Gnatbind,
24117         Gnatlink.
24118
24119         * prj.ads: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
24120         Add comments.
24121
24122         * prj-nmsc.adb (Ada_Check): Test that Separate_Suffix is defaulted,
24123         not that it is Nil_Variable_Value.
24124
24125         * prj.ads: Add ??? for uncommented declarations
24126
24127 2001-10-10  Ed Schonberg <schonber@gnat.com>
24128
24129         * sem_prag.adb: (Analyze_Pragma, case External): If entity is a
24130         constant, do not indicate possible modification, so that gigi can
24131         treat it as a bona fide constant.
24132
24133 2001-10-10  Robert Dewar <dewar@gnat.com>
24134
24135         * sem_prag.adb: Add processing for pragma External.
24136
24137         * snames.ads: Add entry for pragma External.
24138
24139         * par-prag.adb: Add pragma External.
24140
24141         * snames.adb: Updated to match snames.ads.
24142
24143 2001-10-10  Ed Schonberg <schonber@gnat.com>
24144
24145         * exp_ch4.adb (Expand_N_Allocator): Generate meaningful names for
24146         a dynamic task if the allocator appears in an indexed assignment
24147         or selected component assignment.
24148
24149         * exp_util.adb (Build_Task_Array_Image, Build_Task_Record_Image):
24150         For a dynamic task in an assignment statement, use target of
24151         assignment to generate meaningful name.
24152
24153 2001-10-10  Ed Schonberg <schonber@gnat.com>
24154
24155         * einfo.adb (Write_Field19_Name): Body_Entity is also defined for
24156         a generic package.
24157
24158         * einfo.ads: Body_Entity is also defined for generic package.
24159         Documentation change only
24160
24161         * exp_aggr.adb (Build_Array_Aggr_Code): When expanding an
24162         others_choice for a discriminated component initialization,
24163         convert discriminant references into the corresponding discriminals.
24164
24165         * exp_ch3.adb (Get_Simple_Init_Val): Add qualification to aggregate
24166         only if original type is private and expression has to be wrapped
24167         in a conversion.
24168
24169         * checks.adb:
24170         (Apply_Constraint_Check): Do not perform length check
24171         if expression is an aggregate with only an others_choice.
24172         (Length_N_Cond): two references to the same in_parameter
24173         (typically the discriminal in an init_proc) denote the same value.
24174         Two useful optimization uncovered by bugfixes above.
24175
24176 2001-10-10  Robert Dewar <dewar@gnat.com>
24177
24178         * xeinfo.adb: Change int to char in translation of enumeration types.
24179         This fixes a problem in the C representation of component alignment.
24180         Add 2001 to copyright notice
24181
24182 2001-10-10  Richard Kenner <kenner@gnat.com>
24183
24184         * decl.c: (validate_size): Do check size of object of integral type
24185         if it is a packed array type.
24186
24187 2001-10-10  Richard Kenner <kenner@gnat.com>
24188
24189         * decl.c: (gnat_to_gnu_entity, case object): Also materialize
24190         VAR_DECL for constant if not Is_Public but -O0.
24191
24192 2001-10-10  Richard Kenner  <kenner@gnat.com>
24193
24194         * misc.c (struct lang_hooks): Add new initializer to match GCC change.
24195
24196 2001-10-10  Geert Bosch  <bosch@gnat.com>
24197
24198         * xnmake.adb (XNmake): Fix handling of -s/-b options.  No longer
24199         use '/' as switch character, allowing for absolute file names.
24200
24201 2001-10-09  Joseph S. Myers  <jsm28@cam.ac.uk>
24202
24203         * 4gintnam.ads, Make-lang.in, Makefile.in, config-lang.in: Update
24204         FSF address.
24205
24206 2001-10-08  Geert Bosch  <bosch@gnat.com>
24207
24208         * Makefile.in (treeprs.ads, einfo.h, sinfo.h, nmake.adb, nmake.ads):
24209         Automatically build utilities when files need to be regenerated.
24210
24211 2001-10-08  Geert Bosch  <bosch@gnat.com>
24212
24213         * xsnames.adb: New utility for updating snames.ads and snames.adb
24214
24215 2001-10-08  Zack Weinberg  <zack@codesourcery.com>
24216
24217         * Make-lang.in (ADAFLAGS): Add -W -Wall.
24218         (ADA_FLAGS_TO_PASS): Set ADA_CFLAGS=$(CFLAGS) also.
24219         (gnat1): Also depend on attribs.o.
24220         (gnatlib, gnatlib-shared): Set CC and ADAC in recursive make.
24221         * Makefile.in (X_ADAFLAGS, T_ADAFLAGS): New.
24222         (ADAC): Set to @ADAC@ in stage1, $(CC) later.
24223         (ADAFLAGS): Add -W -Wall.
24224         (ALL_ADAFLAGS, MOST_ADAFLAGS): Add X_ADAFLAGS and T_ADAFLAGS;
24225         take out CFLAGS.
24226
24227         (.adb.o, .ads.o, a-numaux.o, a-teioed.o, s-interr.o,
24228         s-taskin.o, sdefault.o, s-tasdeb.o, s-vaflop.o, a-except.o,
24229         s-assert.o, s-stalib.o, s-memory.o, memtrack.o, mlib-tgt.o):
24230         Use $(ADAC), not $(CC), as compilation command.
24231
24232         (gnattools): Depend directly on tools to build, don't use
24233         recursive make.
24234         (gnatlib): Set ADA_CFLAGS=$(GNATLIBCFLAGS) in recursive make.
24235
24236         * einfo.h, sinfo.h: New files (autogenerated).
24237
24238 2001-10-08  Richard Henderson  <rth@redhat.com>
24239
24240         * comperr.adb (Abort_In_Progress): New.
24241         (Compiler_Abort): Use it to prevent recursion.
24242
24243 2001-10-08  Robert Dewar <dewar@gnat.com>
24244
24245         * atree.adb: Set Error_Posted in Error node, helps error recovery.
24246
24247         * par-endh.adb (Output_End_Expected): We should also not test
24248         Error_Posted on the Error node, since now it is always set.
24249
24250         * cstand.adb (Create_Standard): Set Etype of Error to Any_Type
24251         to help error recovery. Part of general work on 9407-004.
24252
24253         * par.adb: Add ??? for misuse of error
24254
24255         * sem_res.adb:
24256         (Resolve): Defend against Error, fixes 9407-003.
24257         (Resolve_Discrete_Subtype_Indication): Defend against Error.
24258
24259         * sinfo.ads (N_Error): Now has Etype field (which will be set
24260         to Any_Type to help error recovery).
24261
24262 2001-10-08  Richard Kenner (kenner@gnat.com)
24263
24264         * misc.c (gnat_expand_expr, case UNCHECKED_CONVERT_EXPR):
24265         Consistently set MEM attributes from expression; fixes
24266         bootstrap failure on x86.
24267
24268 2001-10-08  Geert Bosch  (bosch@gnat.com)
24269
24270         * 5oosinte.adb: Add 2001 to copyright notice.
24271
24272 2001-10-08  Geert Bosch  (bosch@gnat.com)
24273
24274         * ceinfo.adb: Add utility for consistency checking of einfo.ad[bs].
24275
24276         * csinfo.adb: Add utility for consistency checking of sinfo.ad[bs].
24277
24278 2001-10-07  Joseph S. Myers  <jsm28@cam.ac.uk>
24279
24280         * 5oosinte.adb: Fix spelling error of "separate" as "seperate".
24281
24282 2001-10-05  Geert Bosch  (bosch@gnat.com)
24283
24284         * adaint.h: Small formatting fix.
24285
24286 2001-10-04  Geert Bosch  <bosch@gnat.com>
24287
24288         * sysdep.c (__gnat_set_binary_mode, __gnat_set_text_mode):
24289         Arg is int, not FILE *, in dummy version of functions.
24290
24291         * adaint.h (__gnat_set_binary_mode, __gnat_set_text_mode):
24292         Arg is int, not FILE *.
24293
24294 2001-10-04  Geert Bosch  <bosch@gnat.com>
24295
24296         * 3lsoccon.ads: Added file, missed with initial check ins.
24297
24298         * 4lintnam.ads: Fix header format.
24299         Change Linux to GNU/Linux.
24300
24301         * 5iosinte.adb: Change Linux to GNU/Linux.
24302
24303         * 5iosinte.ads: Change Linux to GNU/Linux.
24304
24305         * 5itaprop.adb: Change Linux to GNU/Linux.
24306
24307         * 5itaspri.ads: Change Linux to GNU/Linux.
24308         Update copyright notice.
24309
24310         * 5lintman.adb: Change Linux to GNU/Linux.
24311
24312         * 5lml-tgt.adb: Change Linux to GNU/Linux.
24313
24314         * 5losinte.ads: Change Linux to GNU/Linux.
24315
24316         * 5lsystem.ads: Change Linux to GNU/Linux.
24317
24318         * 5qosinte.adb: Change Linux to GNU/Linux.
24319
24320         * 5qosinte.ads: Change Linux to GNU/Linux.
24321
24322         * 5qparame.ads: Change Linux to GNU/Linux.
24323
24324         * 5qtaprop.adb: Change Linux to GNU/Linux.
24325
24326         * 5qtaspri.ads: Change Linux to GNU/Linux.
24327         Add 2001 to copyright notice.
24328
24329         * 5vintman.ads: Change Linux to GNU/Linux.
24330         Fix header format.  Add 2001 to copyright notice.
24331
24332         * g-soccon.ads: Change Linux to GNU/Linux.
24333
24334         * g-trasym.ads: Change Linux to GNU/Linux.
24335         Add 2001 to copyright notice.
24336
24337         * memtrack.adb: Change Linux to GNU/Linux.
24338
24339         * s-intman.ads: Change Linux to GNU/Linux.
24340         Add 2001 to copyright notice.  Fix header format.
24341
24342         * s-stache.adb: Change Linux to GNU/Linux.
24343
24344         * adaint.c: Change Linux to GNU/Linux.
24345
24346         * cio.c: Change Linux to GNU/Linux.
24347
24348         * cstreams.c: Change Linux to GNU/Linux.
24349
24350         * init.c: Change Linux to GNU/Linux.
24351
24352         * gmem.c: Change Linux to GNU/Linux.
24353
24354         * tracebak.c: Change Linux to GNU/Linux.
24355
24356
24357 2001-10-02  Geert Bosch  <bosch@gnat.com>
24358
24359         * misc.c (insert_default_attributes): Add dummy version.