OSDN Git Service

c2e13d4dd0dea0a178dca8929cc3f78c9c947c7e
[pf3gnuchains/gcc-fork.git] / gcc / ada / ChangeLog
1 2006-10-03  Kazu Hirata  <kazu@codesourcery.com>
2
3         * decl.c, utils.c: Fix comment typos.
4
5         * utils.c: Fix a typo.
6
7 2006-09-28  Eric Botcazou  <ebotcazou@adacore.com>
8
9         * decl.c (gnat_to_gnu_entity) <E_Procedure>: Do not set "const" flag
10         on "pure" Ada subprograms if SJLJ exceptions are used.
11         * trans.c (Handled_Sequence_Of_Statements_to_gnu): Set TREE_NO_WARNING
12         on the declaration node of JMPBUF_SAVE.
13         * utils.c (init_gigi_decls): Set DECL_IS_PURE on the declaration nodes
14         of Get_Jmpbuf_Address_Soft and Get_GNAT_Exception.
15         * utils2.c (build_call_0_expr): Do not set TREE_SIDE_EFFECTS.
16
17 2006-08-20  Laurent GUERBY  <laurent@guerby.net>
18
19         PR ada/28716
20         g-socket.adb (Bind_Socket): Call Set_Address.
21
22 2006-09-15  Eric Botcazou  <ebotcazou@adacore.com>
23
24         PR ada/15802
25         * decl.c (same_discriminant_p): New static function.
26         (gnat_to_gnu_entity) <E_Record_Type>: When there is a parent
27         subtype and we have discriminants, fix up the COMPONENT_REFs
28         for the discriminants to make them reference the corresponding
29         fields of the parent subtype after it has been built.
30
31 2006-09-15  Roger Sayle  <roger@eyesopen.com>
32
33         PR ada/18817
34         * utils.c (max_size): Perform constant folding of (A ? B : C) - D
35         into A ? B - D : C - D when calculating the size of a MINUS_EXPR.
36
37 2006-09-13  Olivier Hainque  <hainque@adacore.com>
38
39         PR ada/29025
40         * trans.c (gnat_gimplify_expr) <ADDR_EXPR>: When taking the address
41         of a SAVE_EXPR, just make the operand addressable/not-readonly and
42         let the common gimplifier code make and propagate a temporary copy.
43         (call_to_gnu): Clarify the use of SAVE_EXPR for not addressable
44         out/in-out actuals and defer setting the addressable/readonly bits
45         to the gimplifier.
46
47 2006-09-13  Eric Botcazou  <ebotcazou@adacore.com>
48
49         PR ada/28591
50         * decl.c (components_to_record): Defer emitting debug info for the
51         record type associated with the variant until after we are sure to
52         actually use it.
53
54 2006-09-13  Eric Botcazou  <ebotcazou@adacore.com>
55
56         PR ada/21952
57         * gigi.h (gnat_internal_attribute_table): Declare.
58         * misc.c (LANG_HOOKS_ATTRIBUTE_TABLE): Define to above.
59         * utils.c (gnat_internal_attribute_table): New global variable.
60         (builtin_function): Always call decl_attributes on the builtin.
61         (handle_const_attribute): New static function.
62         (handle_nothrow_attribute): Likewise.
63
64 2006-07-28  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
65
66         * Make-lang.in: Use $(HEADER_H) instead of header.h in dependencies.
67
68 2006-06-23  Olivier Hainque  <hainque@adacore.com>
69
70         * misc.c (gnat_type_max_size): Look at TYPE_ADA_SIZE if we have
71         not been able to get a constant upper bound from TYPE_SIZE_UNIT.
72
73 2006-06-20  James A. Morrison  <phython@gcc.gnu.org>
74             Eric Botcazou  <ebotcazou@adacore.com>
75
76         PR ada/18692
77         * Make-lang.in: Add check-gnat to lang_checks.  Rename existing
78         check-gnat into check-acats.
79
80 2006-06-17  Karl Berry  <karl@gnu.org>
81
82         * gnat-style.texi (@dircategory): Use "Software development"
83         instead of "Programming", following the Free Software Directory.
84
85 2006-06-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
86
87         PR ada/27944
88         * s-taprop-hpux-dce.adb: Delete redundant 'with System.Parameters'.
89
90 2006-06-06  Laurent GUERBY  <laurent@guerby.net>
91
92         PR ada/27769
93         mlib-utl.adb: Use Program_Name.
94         
95 2006-05-28  Kazu Hirata  <kazu@codesourcery.com>
96
97         * decl.c, env.c, gigi.h, init.c, initialize.c, raise-gcc.c,
98         sem_ch13.adb, sysdep.c, targtyps.c, tb-alvxw.c, tracebak.c,
99         trans.c, utils.c: Fix comment typos.  Follow spelling
100         conventions.
101         * gnat_rm.texi, gnat_ugn.texi, : Fix typos.  Follow spelling
102         conventions.
103
104 2006-05-14  H.J. Lu  <hongjiu.lu@intel.com>
105
106         * Make-lang.in (ada/decl.o): Replace target.h with $(TARGET_H).
107         (ada/misc.o): Likewise.
108         (ada/utils.o): Likewise.
109
110 2006-04-08  Aurelien Jarno  <aurel32@debian.org>
111
112         * Makefile.in: Add Ada support for GNU/kFreeBSD.
113         * s-osinte-kfreebsd-gnu.ads: New file.
114
115 2006-03-29  Carlos O'Donell  <carlos@codesourcery.com>
116
117         * Make-lang.in: Rename docdir to gcc_docdir.
118
119 2006-03-04  Eric Botcazou  <ebotcazou@adacore.com>
120
121         * gigi.h (get_ada_base_type): Delete.
122         * utils2.c (get_ada_base_type): Likewise.
123         * trans.c (convert_with_check): Operate in the real base type.
124
125 2006-03-03  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
126
127         * uintp.adb (Num_Bits): Handle Uint_Int_First specially.
128
129 2006-03-02  Richard Sandiford  <richard@codesourcery.com>
130
131         * utils.c (create_var_decl): Use have_global_bss_p when deciding
132         whether to make the decl common.
133
134 2006-02-20 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
135
136         * Make-lang.in (Ada): Remove
137         (.PHONY): Remove Ada
138
139 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
140
141         * sem_ch4.adb (Find_Boolean_Types): If one of the operands is an
142         aggregate, check the interpretations of the other operand to find one
143         that may be a boolean array.
144
145         (Analyze_Selected_Component): Fix flow-of-control typo in case where
146         the prefix is a private extension.
147
148 2006-02-17  Eric Botcazou  <botcazou@adacore.com>
149
150         PR ada/26315
151
152         * utils2.c (find_common_type): If both input types are BLKmode and
153         have the same constant size, keep using the first one.
154
155         * bindgen.adb: (Gen_Versions_Ada): Revert previous workaround.
156
157         * decl.c (gnat_to_gnu_entity): Only check TREE_OVERFLOW for a constant.
158
159         * misc.c (gnat_handle_option): New case for -Woverlength-strings.
160
161 2006-02-17  Jose Ruiz  <ruiz@adacore.com>
162
163         * s-taprop-irix.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb, 
164         s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb, 
165         s-taprop-posix.adb, s-taprop-vxworks.adb, s-taprop-lynxos.adb, 
166         s-taprop-tru64.adb (Set_False, Set_True, Suspend_Until_True): Add
167         Abort_Defer/Undefer pairs to avoid the possibility of a task being
168         aborted while owning a lock.
169
170 2006-02-17  Javier Miranda  <miranda@adacore.com>
171             Robert Dewar  <dewar@adacore.com>
172
173         * exp_ch4.adb (Expand_N_Allocator): If the allocated object is accessed
174         through an access to class-wide interface we force the displacement of
175         the pointer to the allocated object to reference the corresponding
176         secondary dispatch table.
177         (Expand_N_Op_Divide): Allow 64 bit divisions by small power of 2,
178         if Long_Shifts are supported on the target, even if 64 bit divides
179         are not supported (configurable run time mode).
180         (Expand_N_Type_Conversion): Do validity check if validity checks on
181         operands are enabled.
182         (Expand_N_Qualified_Expression): Do validity check if validity checks
183         on operands are enabled.
184
185 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
186
187         * exp_dbug.adb (Debug_Renaming_Declaration): Indicate that the entity
188         must be materialized when the renamed expression is an explicit
189         dereference.
190
191 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
192
193         * freeze.adb (Statically_Discriminated_Components): Return false if
194         the bounds of the type of the discriminant are not static expressions.
195
196         * sem_aggr.adb (Check_Static_Discriminated_Subtype): Return false if
197         the bounds of the discriminant type are not static.
198
199 2006-02-17  Robert Dewar  <dewar@adacore.com>
200
201         * g-os_lib.adb (Copy_File): Make sure that if From has an Invalid_FD,
202         then we close To if it is valid.
203
204 2006-02-17  Vasiliy Fofanov  <fofanov@adacore.com>
205
206         * init.c (facility_resignal_table): new array
207         (__gnat_default_resignal_p): enhance default predicate to resignal if
208         VMS condition has one of the predefined facility codes.
209
210 2006-02-17  Vasiliy Fofanov  <fofanov@adacore.com>
211
212         * Makefile.in: Use VMS64 specialized versions of several units in
213         Interfaces.C hierarchy to be compatible with HP C default size choices.
214         Use the default version of Ada.Synchronous_Task_Control for VxWorks 653.
215
216 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
217
218         * sem_ch10.adb (Analyze_With_Clause): If the unit is a subprogram
219         instantiation, the corresponding entity is the related_instance of the
220         wrapper package created for the instance.
221
222 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
223
224         * sem_ch12.adb (Analyze_Package_Instantiation): Inline_Now is false if
225         the current instance is nested within another instance in a child unit.
226
227 2006-02-17  Javier Miranda  <miranda@adacore.com>
228             Ed Schonberg  <schonberg@adacore.com>
229
230         * sem_ch3.adb (Build_Discriminated_Subtype): In case of concurrent
231         type we cannot inherit the primitive operations; we inherit the
232         Corresponding_Record_Type (which has the list of primitive operations).
233         (Check_Anonymous_Access_Types): When creating anonymous access types for
234         access components, use Rewrite in order to preserve the tree structure,
235         for ASIS use.
236         (Analyze_Object_Declaration): For limited types with access
237         discriminants with defaults initialized by an aggregate, obtain
238         subtype from aggregate as for other mutable types.
239         (Derived_Type_Declaration): If the derived type is a limited interface,
240         set the corresponding flag (Is_Limited_Record is not sufficient).
241
242 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
243
244         * sem_ch6.adb (Build_Body_To_Inline): Enforce the rule that in order
245         to inline a function that returns an unconstrained type, the return
246         expression must be the first variable declared in the body of the
247         function.
248
249 2006-02-17  Javier Miranda  <miranda@adacore.com>
250
251         * sem_res.adb (Resolve_Type_Conversion): In case of conversion to an
252         abstract interface type, the static analysis is not enough to know if
253         the interface is implemented or not by the source tagged type. Hence
254         we must pass the work to the expander to generate the required code to
255         evaluate the conversion at run-time.
256         (Resolve_Equality_Op): Do not apply previous
257         transformation if expansion is disasbled, to prevent anomalies when
258         locating global references in a generic unit.
259
260 2006-02-17  Vincent Celier  <celier@adacore.com>
261
262         * snames.ads, snames.adb: New standard names for new project attributes:
263         archive_builder, archive_indexer, compiler_pic_option,
264         config_body_file_name, config_body_file_name_pattern,
265         config_file_switches, config_file_unique, config_spec_file_name,
266         config_spec_file_name_pattern, default_builder_switches,
267         default_global_compiler_switches, default_language,
268         dependency_file_kind, global_compiler_switches, include_path,
269         include_path_file, language_kind, linker_executable_option,
270         linker_lib_dir_option, linker_lib_name_option, mapping_file_switches,
271         roots, runtime_project.
272
273 2006-02-17  Matthew Heaney  <heaney@adacore.com>
274
275         * a-convec.ads, a-convec.adb: 
276         (operator "&"): handle potential overflow for large index types
277         (Insert): removed Contraint_Error when using large index types
278         (Insert_Space): removed Constraint_Error for large index types
279         (Length): moved constraint check from Length to Insert
280
281         * a-coinve.ads, a-coinve.adb: Stream attribute procedures are declared
282         as not null access.
283         Explicit raise statements now include an exception message.
284         (operator "&"): handle potential overflow for large index types
285         (Insert): removed Contraint_Error when using large index types
286         (Insert_Space): removed Constraint_Error for large index types
287         (Length): moved constraint check from Length to Insert
288
289 2006-02-17  Robert Dewar  <dewar@adacore.com>
290
291         * s-wchcnv.adb: Document handling of [ on output (we do not change
292         this to ["5B"] and the new comments say why not.
293
294         * gnat_ugn.texi: 
295         Add note for -gnatVo that this now includes the cases of type
296         conversions and qualified expressions.
297         Add comments on handling of brackets encoding for Text_IO
298
299 2006-02-17  Ramon Fernandez  <fernandez@adacore.com>
300             Thomas Quinot  <quinot@adacore.com>
301             Robert Dewar  <dewar@adacore.com>
302             Javier Miranda  <miranda@adacore.com>
303
304         * expander.adb: Fix typo in comment
305
306         * exp_pakd.adb: Fix typo
307         Minor comment reformatting.
308
309         * g-dyntab.adb: Minor reformatting
310
311         * exp_ch6.adb (Register_Interface_DT_Entry): Traverse the list of
312         aliased subprograms to look for the abstract interface subprogram.
313
314 2006-02-16  Eric Botcazou  <ebotcazou@adacore.com>
315
316         * env.c (__gnat_setenv): Use size_t.
317         (__gnat_unsetenv): Likewise.
318         (__gnat_clearenv): Likewise.
319
320 2006-02-16  Arnaud Charlet  <charlet@adacore.com>
321
322         * opt.ads (Ada_Version_Default): Set to Ada 2005 by default.
323
324 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
325
326         * a-intnam-os2.ads, a-intnam-unixware.ads, g-soccon-unixware.ads,
327         g-soliop-unixware.ads, i-os2err.ads, i-os2lib.adb, i-os2lib.ads,
328         i-os2syn.ads, i-os2thr.ads, s-intman-irix-athread.adb,
329         s-osinte-aix-fsu.ads, s-osinte-fsu.adb, s-parame-os2.adb,
330         s-osinte-irix-athread.ads, s-osinte-linux-fsu.ads, s-osinte-os2.adb,
331         s-osinte-os2.ads, s-osinte-solaris-fsu.ads, s-osinte-unixware.adb,
332         s-osinte-unixware.ads, s-osprim-os2.adb, s-taprop-irix-athread.adb,
333         s-taprop-os2.adb, s-tasinf-irix-athread.adb, s-tasinf-irix-athread.ads,
334         s-taspri-os2.ads, system-os2.ads, system-unixware.ads: Removed,
335         no longer used.
336
337 2006-02-13  Jose Ruiz  <ruiz@adacore.com>
338
339         * a-taster.adb (Current_Task_Fallback_Handler): Document why explicit
340         protection against race conditions is not needed.
341         (Set_Dependents_Fallback_Handler): Add mutual exclusive access to the
342         fallback handler.
343         (Set_Specific_Handler): Add mutual exclusive access to the specific
344         handler.
345         (Specific_Handler): Add mutual exclusive access for retrieving the
346         specific handler.
347
348         * s-tarest.adb (Task_Wrapper): Add mutual exclusive access to the fall
349         back handler.
350
351         * s-taskin.ads (Common_ATCB): Remove pragma Atomic for
352         Fall_Back_Handler and Specific_Handler.
353
354         * s-tassta.adb (Task_Wrapper): Add mutual exclusive access to the task
355         termination handlers.
356         Set two different owerflow depending on the maximal stack size.
357
358         * s-solita.adb (Task_Termination_Handler_T): Document why explicit
359         protection against race conditions is not needed when executing the
360         task termination handler.
361
362 2006-02-13  Robert Dewar  <dewar@adacore.com>
363
364         * s-gloloc-mingw.adb, a-cgaaso.ads, a-stzmap.adb, a-stzmap.adb,
365         a-stzmap.ads, a-ztcoio.adb, a-ztedit.adb, a-ztedit.ads, a-ztenau.adb,
366         a-ztenau.ads, a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
367         a-comlin.adb, a-decima.adb, a-decima.ads, a-direio.adb, a-direio.adb,
368         a-direio.adb, a-direio.ads, a-ngcoty.adb, a-ngcoty.ads, a-nuflra.adb,
369         a-nuflra.ads, a-sequio.adb, a-sequio.ads, a-sequio.ads, a-storio.ads,
370         a-stream.ads, a-ststio.adb, a-ststio.adb, a-ststio.ads, a-ststio.ads,
371         a-stwima.adb, a-stwima.adb, a-stwima.ads, a-stwise.adb, a-teioed.adb,
372         a-teioed.ads, a-ticoau.adb, a-ticoau.ads, a-ticoio.adb, a-tasatt.ads,
373         a-tideau.adb, a-tideau.ads, a-tideio.adb, a-tideio.ads, a-tienau.adb,
374         a-tienau.ads, a-tienio.adb, a-tienio.ads, a-tifiio.ads, a-tiflau.adb,
375         a-tiflau.ads, a-tiflio.adb, a-tiflio.adb, a-tiflio.ads, a-tigeau.ads,
376         a-tiinau.adb, a-tiinau.ads, a-tiinio.adb, a-tiinio.ads, a-timoio.adb,
377         a-timoio.ads, a-titest.adb, a-titest.ads, a-wtcoio.adb, a-wtdeau.adb,
378         a-wtdeau.ads, a-wtdeio.adb, a-wtdeio.ads, a-wtedit.adb, a-wtedit.adb,
379         a-wtedit.ads, a-wtenau.adb, a-wtenau.ads, a-wtenau.ads, a-wtenio.adb,
380         a-wtenio.ads, a-wtfiio.adb, a-wtfiio.ads, a-wtflau.adb, a-wtflau.ads,
381         a-wtflio.adb, a-wtflio.adb, a-wtflio.ads, a-wtgeau.ads, a-wtinau.adb,
382         a-wtinau.ads, a-wtinio.adb, a-wtinio.ads, a-wtmoau.adb, a-wtmoau.ads,
383         a-wtmoio.adb, a-wtmoio.ads, xref_lib.adb, xref_lib.ads, xr_tabls.adb,
384         g-boubuf.adb, g-boubuf.ads, g-cgideb.adb, g-io.adb, gnatdll.adb,
385         g-pehage.adb, i-c.ads, g-spitbo.adb, g-spitbo.ads, mdll.adb,
386         mlib-fil.adb, mlib-utl.adb, mlib-utl.ads, prj-env.adb, prj-tree.adb,
387         prj-tree.ads, prj-util.adb, s-arit64.adb, s-asthan.ads, s-auxdec.adb,
388         s-auxdec.ads, s-chepoo.ads, s-direio.adb, s-direio.ads, s-errrep.adb,
389         s-errrep.ads, s-fileio.adb, s-fileio.ads, s-finroo.adb, s-finroo.ads,
390         s-gloloc.adb, s-gloloc.ads, s-io.adb, s-io.ads, s-rpc.adb,
391         s-rpc.ads, s-shasto.ads, s-sequio.adb, s-stopoo.ads, s-stratt.adb,
392         s-stratt.ads, s-taasde.adb, s-taasde.ads, s-tadert.adb, s-sequio.ads,
393         s-taskin.adb, s-tasque.adb, s-tasque.ads, s-wchjis.ads, makegpr.adb,
394         a-coinve.adb, a-cidlli.adb, eval_fat.adb, exp_dist.ads, exp_smem.adb,
395         fmap.adb, g-dyntab.ads, g-expect.adb, lib-xref.ads, osint.adb,
396         par-load.adb, restrict.adb, sinput-c.ads, a-cdlili.adb,
397         system-vms.ads, system-vms-zcx.ads, system-vms_64.ads: Minor
398         reformatting.
399
400 2006-02-13  Hristian Kirtchev  <kirtchev@adacore.com>
401
402         * a-tasatt.adb, s-osinte-lynxos-3.adb, s-osinte-lynxos.adb,
403         s-osinte-aix.adb, s-interr-sigaction.adb, s-asthan-vms-alpha.adb,
404         s-interr-vms.adb, s-intman-vms.adb, s-interr-vxworks.adb,
405         s-intman-vxworks.adb, s-asthan-vms-alpha.adb, a-ztexio.adb,
406         a-reatim.adb, a-taside.adb, a-textio.adb, a-witeio.adb, prj-attr.adb,
407         s-intman-irix.adb, s-intman-solaris.adb, s-intman-posix.adb,
408         a-dynpri.adb, a-interr.adb, g-dynhta.adb, s-asthan.adb, s-interr.adb,
409         s-pooglo.adb, s-pooloc.adb, s-poosiz.adb, s-tasren.adb, s-tasuti.adb,
410         s-tataat.adb, s-tpobop.adb: Remove redundant with clauses.
411
412 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
413
414         * s-osinte-darwin.adb, s-osinte-darwin.ads, s-osinte-vxworks.ads, 
415         s-osinte-solaris.ads, s-osinte-linux.ads, s-osinte-freebsd.ads, 
416         s-osinte-solaris-posix.ads, s-osinte-lynxos-3.ads, s-osinte-lynxos.ads, 
417         s-osinte-tru64.ads, s-osinte-aix.ads, s-osinte-irix.ads, 
418         s-osinte-hpux-dce.ads, s-osinte-linux-hppa.ads, 
419         s-osinte-linux-alpha.ads, s-inmaop-posix.adb (sigset_t_ptr): Removed,
420         replaced by anonymous access type.
421         (pthread_sigmask): Now take an access sigset_t
422
423         * s-osinte-hpux.ads:  Ditto.
424         (pthread_mutex_t, pthread_cond_t): Update definitions to support
425         properly 32 and 64 bit ABIs.
426
427 2006-02-13  Pascal Obry  <obry@adacore.com>
428
429         * s-taprop-posix.adb, s-taprop-vxworks.adb, s-taprop-tru64.adb, 
430         s-taprop-lynxos.adb, s-taprop-irix.adb, s-taprop-hpux-dce.adb, 
431         s-taprop-linux.adb, s-taprop-solaris.adb,
432         s-taprop-vms.adb (Create_Task): Remove task adjustment code. This
433         adjustement is already done when calling this routine.
434
435 2006-02-13  Pascal Obry  <obry@adacore.com>
436
437         * system-mingw.ads (Underlying_Priorities): Update the priority mapping
438         table to take advantage of the 16 priority levels available on Windows
439         2000 and XP. On NT4 there are only 7 priority levels, this is properly
440         supported by this new mapping.
441
442 2006-02-13  Nicolas Setton  <setton@adacore.com>
443
444         * adadecode.h, adadecode.c: (__gnat_decode): Improve support of types.
445         (get_encoding): New subprogram. Extracts the encodings from an encoded
446         Ada name.
447
448 2006-02-13  Pascal Obry  <obry@adacore.com>
449             Nicolas Roche  <roche@adacore.com>
450             Arnaud Charlet  <charlet@adacore.com>
451
452         * adaint.h, adaint.c (DIR_SEPARATOR): Use _T() macro for Unicode
453         support.
454         (__gnat_try_lock): Add unicode support by using a specific section on
455         Windows.
456         (__gnat_get_current_dir): Idem.
457         (__gnat_open_read): Idem.
458         (__gnat_open_rw): Idem.
459         (__gnat_open_create): Idem.
460         (__gnat_create_output_file): Idem.
461         (__gnat_open_append): Idem.
462         (__gnat_open_new): Idem.
463         (__gnat_file_time_name): Idem.
464         (__gnat_set_file_time_name): Idem.
465         (__gnat_stat): Idem.
466         (win32_no_block_spawn): Idem.
467         (__gnat_locate_exec_on_path): Idem.
468         (__gnat_opendir): New routine.
469         (__gnat_closedir): Idem.
470         (__gnat_readdir): Add new parameter length (pointer to int). Update
471         implementation to use it and add specific Win32 code for Unicode
472         support.
473         (__gnat_get_env_value_ptr): Remove. Replaced by __gnat_getenv in env.c
474         (__gnat_set_env_value): Remove. Replaced by __gnat_setenv in env.c
475         (convert_addresses): Do not define this dummy routine on VMS.
476
477         * mingw32.h (GNAT_UNICODE_SUPPORT): New definition, if set the GNAT
478         runtime Unicode support will be activated.
479         (S2WS): String to Wide-String conversion. This version just copy a
480         string in non Unicode version.
481         (WS2S): Wide-String to String conversion. This version just copy a
482         string in non Unicode version.
483
484         * g-dirope.adb: (Close): Now import __gnat_closedir from adaint.c.
485         (Open): Now import __gnat_opendir from adaint.c.
486         (Read): Change the implementation to support unicode characters. It is
487         not possible to use strlen() on Windows as this version supports only
488         standard ASCII characters. So the length of the directory entry is now
489         returned from the imported __gnat_readdir routine.
490         Update copyright notice.
491
492         * s-crtl-vms64.ads, s-crtl.ads: (closedir): Moved to adaint.c.
493         (opendir): Moved to adaint.c.
494
495         * g-os_lib.adb (Copy_Time_Stamp): Fix off-by-one range computation.
496         (Get_Directory): Fix wrong indexing.
497         (Getenv): replace __gnat_get_env_value_ptr from adaint.c by
498         __gnat_getenv from env.c
499         (Setenv): replace __gnat_set_env_value from adaint.c by __gnat_setenv
500         from env.c
501
502         * env.h, env.c: New file.
503
504         * s-scaval.adb (Initialize): Replace __gnat_get_env_value_ptr from
505         adaint.c by __gnat_getenv from env.c
506
507         * s-shasto.adb (Initialize): replace __gnat_get_env_value_ptr from
508         adaint.c by __gnat_getenv from env.c
509
510         * Make-lang.in: Add env.o in the list of C object needed by gnat1
511         and gnatbind.
512         Update dependencies.
513
514 2006-02-13  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
515             Olivier Hainque  <hainque@adacore.com>
516             Eric Botcazou  <ebotcazou@adacore.com>
517
518         * ada-tree.h: (TYPE_UNCHECKED_UNION_P): Deleted.
519         
520         * gigi.h (value_factor_p): Add prototype and description, now public.
521
522         * decl.c (gnat_to_gnu_field): Don't attempt BLKmode to integral type
523         promotion for field with rep clause if the associated size was proven
524         to be in error.
525         Expand comments describing attempts to use a packable type.
526         (gnat_to_gnu_entity) <E_Signed_Integer_Subtype,
527         E_Floating_Point_Subtype>: Inherit alias set of what we are making a
528         subtype of to ensure conflicts amongst all subtypes in a hierarchy,
529         necessary since these are not different types and pointers may
530         actually designate any subtype in this hierarchy.
531         (gnat_to_gnu_entity, case E_Record_Type): Always make fields for
532         discriminants but put them into record only if not Unchecked_Union;
533         pass flag to components_to_record showing Unchecked_Union.
534         (make_dummy_type): Use UNION_TYPE only if Unchecked_Union and no
535         components before variants; don't set TYPE_UNCHECKED_UNION_P.
536         (components_to_record): New argument UNCHECKED_UNION.
537         Remove special case code for Unchecked_Union and instead use main code
538         with small changes.
539
540         PR ada/26096
541         (gnat_to_gnu_entity) <E_Variable>: Do not initialize the
542         aligning variable with the expression being built, only its inner
543         field.
544
545         * trans.c (Handled_Sequence_Of_Statements_to_gnu): Remove call to
546         emit_sequence_entry_statements.
547         (emit_sequence_entry_statements, body_with_handlers_p): Delete.
548         (establish_gnat_vms_condition_handler): Move before
549         Subprogram_Body_to_gnu.
550         (Subprogram_Body_to_gnu): On VMS, establish_gnat_vms_condition_handler
551         for a subprogram if it has a foreign convention or is exported.
552         (Identifier_to_gnu): Manually unshare the DECL_INITIAL tree when it is
553         substituted for a CONST_DECL.
554         (tree_transform, case N_Aggregate): Remove code for UNION_TYPE and pass
555         Etype to assoc_to_constructor.
556         (assoc_to_constructor): New argument, GNAT_ENTITY; use it to ignore
557         discriminants of Unchecked_Union.
558         (TARGET_ABI_OPEN_VMS): Define to 0 if not defined, so that later uses
559         don't need cluttering preprocessor directives.
560         (establish_gnat_vms_condition_handler): New function. Establish the GNAT
561         condition handler as current in the compiled function.
562         (body_with_handlers_p): New function. Tell whether a given sequence of
563         statements node is attached to a package or subprogram body and involves
564         exception handlers possibly nested within inner block statements.
565         (emit_sequence_entry_statements): New function, to emit special
566         statements on entry of sequences when necessary. Establish GNAT
567         condition handler in the proper cases for VMS.
568         (Handled_Sequence_Of_Statements_to_gnu): Start block code with
569         emit_sequence_entry_statements.
570
571         * utils2.c (find_common_type): If both input types are BLKmode and
572         have a constant size, use the smaller one.
573         (build_simple_component_ref): Also match if FIELD and NEW_FIELD are
574         the same.
575
576         * utils.c (value_factor_p): Make public, to allow uses from other gigi
577         units.
578         (create_type_decl): Do not set the flag DECL_IGNORED_P for dummy types.
579         (convert, case UNION_TYPE): Remove special treatment for unchecked
580         unions.
581
582         PR ada/18659
583         (update_pointer_to): Update variants of pointer types to
584         unconstrained arrays by attaching the list of fields of the main
585         variant.
586
587 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
588             Robert Dewar  <dewar@adacore.com>
589
590         * a-exexpr.adb, a-exexpr-gcc.adb
591         (Process_Raise_Exception): Removed, merged with Propagate_Exception.
592         (Propagate_Exception): Now take extra From_Signal_Handler parameter.
593         Remove code unused for exception propagation for the compiler itself
594         from a-except.adb and update to still share separate packages.
595
596         * a-except.ads, a-except.adb: Ditto.
597         Add comments that this version is now used only by the compiler and
598         other basic tools. The full version that includes the Ada 2005 stuff
599         is in separate files a-except-2005.ads/adb. The reason is that we do
600         not want to cause bootstrap problems with compilers not recognizing
601         Wide_Wide_String.
602         Add exception reason code PE_Implicit_Return
603         Add new exception reason code (Null Exception_Id)
604
605         * a-except-2005.adb, a-except-2005.ads: New files.
606
607         * s-wchcon.ads: (Get_WC_Encoding_Method): New function.
608
609         * s-wchcon.adb: New file.
610
611         * Makefile.in (LIBGNAT_SRCS): Add tb-gcc.c.
612         (traceback.o deps): Likewise.
613         (SPARC/Solaris): Accept sparc[64|v9]-sun-solaris.
614         Activate build of GMEM instrumentation library on VMS targets.
615         (gnatlib-sjlj, gnatlib-zcx): Pass EH_MECHANISM to make gnatlib.
616         Use a-except-2005.ads/adb for all run-time library builds unless
617         specified otherwise.
618         [VMS] (LIBGNAT_TARGET_PAIRS_AUX1,2): Rename s-parame-vms.ads to
619         s-parame-vms-alpha.ads and add s-parame-vms-ia64.ads.
620         Use s-parame.adb on all native platforms.
621         Use s-parame-vxworks.adb on all vxworks platforms.
622         Add env.c env.h in LIBGNAT_SRCS
623         Add env.o in LIBGNAT_OBJS
624         (GNATMAKE_OBJS): Remove ctrl_c.o object.
625         (LIBGNAT_TARGET_PAIRS for x86-vxworks): Use an specialized version of
626         s-osinte.adb, s-tpopsp.adb, and system.ads for the run time that
627         supports VxWorks 6 RTPs.
628         (EXTRA_GNATRTL_NONTASKING_OBJS for x86-vxworks): Remove the use of
629         i-vxworks and i-vxwoio from the run time that supports VxWorks 6 RTPs.
630
631         * types.h, types.ads (Terminate_Program): New exception
632         Add comment on modifying multiple versions of a-except.adb when the
633         table of exception reasons is modified.
634         Add exception reason code PE_Implicit_Return
635         Add new exception reason code (Null Exception_Id)
636
637         * clean.adb (Initialize): Get the target parameters before checking
638         if target is OpenVMS. Move the OpenVMS specific code here from package
639         body elaboration code.
640
641 2006-02-13  Thomas Quinot  <quinot@adacore.com>
642             Vincent Celier  <celier@adacore.com>
643             Robert Dewar  <dewar@adacore.com>
644
645         * ali-util.adb (Get_File_Checksum): Update to account for change in
646         profile of Initialize_Scanner.
647
648         * gprep.adb (Gnatprep): Update to account for change in profile of
649         Initialize_Scanner.
650         (Process_One_File): Same.
651
652         * lib.adb (Get_Code_Or_Source_Unit): New subprogram factoring the
653         common code between Get_Code_Unit and Get_Source_Unit. Reimplement
654         that behaviour using the new Unit information recorded in the source
655         files table, rather than going through all units every time.
656         (Get_Code_Unit): Reimplement in terms of Get_Code_Or_Source_Unit.
657         (Get_Source_Unit): Same.
658
659         * prepcomp.adb (Parse_Preprocessing_Data_File): Update to account for
660         change in profile of Initialize_Scanner.
661         (Prepare_To_Preprocess): Same.
662
663         * lib.ads: Fix typo in comment (templace -> template).
664
665         * prj-part.adb (Parse_Single_Project): Update to account for change in
666         profile of Initialize_Scanner.
667
668         * scn.adb (Initialize_Scanner): Account for change in profile of
669         Scng.Initialize_Scanner: set Current_Source_Unit in Scn instead of Scng.
670         Also record the association of the given Source_File_Index to the
671         corresponding Unit_Number_Type.
672
673         * scng.ads, scng.adb (Initialize_Scanner.Set_Reserved): Remove
674         procedure.
675         (Initialize_Scanner): Call Scans.Initialize_Ada_Keywords.
676         Remove Unit formal for generic scanner: this formal
677         is only relevant to Scn (the scanner instance used to parse Ada source
678         files), not to other instances. Update comment accordingly.
679         (Scan): Use new function Snames.Is_Keyword_Name.
680
681         * sinfo-cn.adb: Fix typo in comment.
682
683         * sinput.adb (Unit, Set_Unit): Accessors for new source file attribute
684         Unit.
685
686         * sinput.ads (Source_File_Record): New component Unit, used to capture
687         the unit identifier (if any) associated to a source file.
688
689         * sinput-c.adb, sinput-l.adb (Load_File): Initialize new component
690         Unit in Source_File_Record.
691
692         * sinput-p.adb (Source_File_Is_Subunit): Update to account for change
693         in profile of Initialize_Scanner.
694
695         * scans.adb (Initialize_Ada_Keywords): New procedure
696
697         * scans.ads (Initialize_Ada_Keywords): New procedure to initialize the
698         Ada keywords in the Namet table, without the need to call
699         Initialize_Scanner.
700
701         * snames.adb: Add pragma Ada_2005 (synonym for Ada_05)
702         (Is_Keyword_Name): New function
703
704         * snames.ads: Add subtype Configuration_Pragma_Names
705         Add pragma Ada_2005 (synonym for Ada_05)
706         (Is_Keyword_Name): New function
707
708         * snames.h: Add pragma Ada_2005 (synonym for Ada_05)
709
710 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
711
712         * a-stwisu.adb, a-strsup.adb, a-stzsup.adb (Super_Slice): Fix slice
713         index.
714
715         * a-stwima.adb (To_Set): Add extra check when N = 0.
716
717         * g-regpat.adb: (Match_Simple_Operator): Avoid possible overflow.
718
719 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
720
721         * s-parame-mingw.adb, s-parame-linux.adb,
722         s-parame-solaris.adb: Removed, replaced by s-parame.adb
723
724         * s-parame-vxworks.ads: Fix typo.
725
726         * s-parame-vxworks.adb: New file.
727
728         * s-parame.adb: Version now used by all native platforms.
729         (Default_Stack_Size): Use 2 megs for default stack size and use
730         __gl_default_stack_size when available.
731         (Minimum_Stack_Size): Use 12K.
732
733         * s-taprop-mingw.adb: Set default stack size linker switch to 2megs.
734         (Create_Task): Refine implementation taking advantage of the XP stack
735         size support. On XP, we now create the thread using the flag
736         STACK_SIZE_PARAM_IS_A_RESERVATION.
737
738         * s-osinte-mingw.ads (Stack_Size_Param_Is_A_Reservation): New constant.
739
740         * sysdep.c (__gnat_is_windows_xp): New routine, returns 1 on Windows
741         XP and 0 on older Windows versions.
742
743         * interfac-vms.ads: Removed, no longer used.
744
745 2006-02-13  Matthew Heaney  <heaney@adacore.com>
746
747         * a-rbtgso.adb, a-crbtgo.adb, a-crbtgk.adb, a-coorse.adb, 
748         a-cohama.adb, a-ciorse.adb, a-cihama.adb, a-cihase.adb, 
749         a-cohase.adb: All explicit raise statements now include an exception
750         message.
751
752         * a-ciormu.ads, a-ciormu.adb, a-coormu.ads, a-coormu.adb
753         (Update_Element_Preserving_Key): renamed op to just Update_Element.
754         Explicit raise statements now include an exception message
755
756         * a-cihase.ads, a-cohase.ads: Removed comment.
757
758         * a-stboha.ads, a-stboha.adb, a-stfiha.ads, a-envvar.adb,
759         a-envvar.ads, a-swbwha.ads, a-swbwha.adb, a-swfwha.ads, a-szbzha.ads,
760         a-szbzha.adb, a-szfzha.ads: New files.
761
762 2006-02-13  Matthew Heaney  <heaney@adacore.com>
763
764         * a-cgcaso.adb, a-cgaaso.adb: Implemented using heapsort instead of
765         quicksort.
766
767 2006-02-13  Eric Botcazou  <ebotcazou@adacore.com>
768
769         * lang.opt: Wvariadic-macros: New option.
770         Wold-style-definition: Likewise.
771         Wmissing-format-attribute: Likewise.
772
773         * misc.c (gnat_handle_option): New cases for -Wvariadic-macros,
774         -Wold-style-definition and -Wmissing-format-attribute.
775
776 2006-02-13  Robert Dewar  <dewar@adacore.com>
777
778         * a-ticoio.ads, a-ticoio.adb: Add use clause (moved here from spec)
779
780         * a-coteio.ads, a-lcteio.ads, a-llctio.ads, a-scteio.ads: New files.
781
782 2006-02-13  Nicolas Roche  <roche@adacore.com>
783
784         * a-envvar.adb, a-envvar.ads: New files.
785
786 2006-02-13  Douglas Rupp  <rupp@adacore.com>
787
788         * s-parame-vms.ads: Renamed to s-parame-vms-alpha.ads
789
790         * s-parame-vms-alpha.ads, s-parame-vms-ia64.ads: New files.
791
792 2006-02-13  Pat Rogers  <rogers@adacore.com>
793
794         * a-rttiev.adb, a-rttiev.ads: New files.
795
796 2006-02-13  Hristian Kirtchev  <kirtchev@adacore.com>
797
798         * a-tiboio.adb, a-tiboio.ads, a-wwboio.adb,
799         a-wwboio.ads, a-zzboio.adb, a-zzboio.ads:  New files.
800
801         * impunit.adb, Makefile.rtl: Added new Ada 2005 units.
802
803 2006-02-13  Robert Dewar  <dewar@adacore.com>
804
805         * rtsfind.adb, exp_prag.adb, lib-writ.adb, par-labl.adb, 
806         sem_case.adb: Minor code reorganization (not Present should be No)
807
808 2006-02-13  Geert Bosch  <bosch@adacore.com>
809             Gary Dismukes  <dismukes@adacore.com>
810
811         * a-tifiio.adb (Put_Digits): Test Last against To'First - 1 instead of
812         0, since the lower bound of the actual string may be greater than one.
813
814         PR ada/20753
815
816         (Put): Fix condition to raise Layout_Error when invalid
817         layout is requested.
818
819 2006-02-13  Vincent Celier  <celier@adacore.com>
820
821         * back_end.adb (Scan_Compiler_Arguments): Check if
822         Search_Directory_Present is True and, if it is, add the argument in
823         the source search directory path.
824
825         * switch-c.adb (Scan_Front_End_Switches): Accept switch "-I". Set
826         Search_Directory_Present to True.
827
828 2006-02-13  Joel Brobecker  <brobecke@adacore.com>
829
830         * bindgen.adb (Gen_Main_C): declare the ensure_reference variable as
831         volatile, to tell the compiler to preserve this variable at any level
832         of optimization.
833         (Gen_Versions_Ada): Temporarily work around codegen bug.
834
835 2006-02-13  Vincent Celier  <celier@adacore.com>
836
837         * gnatlink.adb (Process_Binder_File): If -shared is specified, invoke
838         gcc to link with option -shared-libgcc.
839         (Gnatlink): Remove duplicate switches -shared-libgcc
840
841 2006-02-13  Robert Dewar  <dewar@adacore.com>
842
843         * gnatvsn.ads (Current_Year): New constant, used to easily update
844         copyright on all GNAT tools.
845
846         * gnatls.adb, gnatname.adb, vms_conv.adb: Add 2006 to displayed
847         copyright notice.
848
849 2006-02-13  Robert Dewar  <dewar@adacore.com>
850
851         * erroutc.ads, erroutc.adb (Set_Message_Blank): Don't insert space
852         after hyphen (small aesthetic change useful for a range of numbers
853         using ^-^.
854         Suppress range checks for a couple of assignments which otherwise
855         cause validity checks with validity checking turned on.
856
857         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Size):
858         Improvement in error message for object.
859         (Rep_Item_Too_Late): Remove '!' in warning message.
860
861 2006-02-13  Robert Dewar  <dewar@adacore.com>
862             Eric Botcazou  <ebotcazou@adacore.com>
863
864         * err_vars.ads: Suppress range checks for a couple of assignments
865         which otherwise cause validity checks with validity checking turned on.
866         Update comments.
867
868         * errout.adb (Error_Msg_Internal): Do not suppress warning messages.
869         Make message unconditional if it is a warning.
870         (Error_Msg_NEL): Always output warning messages.
871         Suppress range checks for a couple of assignments which otherwise
872         cause validity checks with validity checking turned on.
873
874         * errout.ads (Message Insertion Characters): Document that '!' is
875         implied by '?' in error messages.
876
877         * gnat1drv.adb: (Bad_Body): Remove '!' in warning message.
878         (Gnat1drv): Use a goto to end of main subprogram instead of
879         Exit_Program (E_Success) so that finalization can occur normally.
880
881 2006-02-13  Eric Botcazou  <ebotcazou@adacore.com>
882
883         * s-stchop.adb (Stack_Check): Raise Storage_Error if the argument has
884         wrapped around.
885
886 2006-02-13  Vincent Celier  <celier@adacore.com>
887
888         * a-direct.adb (Duration_To_Time, OS_Time_To_Long_Integer): New
889         Unchecked_Conversion functions.
890         (Modification_Time): Use direct conversion of OS_Time to Calendar time
891         when OpenVMS returns False.
892
893         * a-dirval-mingw.adb, a-dirval-vms.adb, a-dirval.ads,
894         a-dirval.adb (OpenVMS): New Boolean function
895
896 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
897             Thomas Quinot  <quinot@adacore.com>
898
899         * checks.adb (Build_Discriminant_Checks): If the expression being
900         checks is an aggregate retrieve the values of its discriminants to
901         generate the check, rather than creating a temporary and a reference
902         to it.
903         (Apply_Access_Check): Rewritten to handle new Is_Known_Null flag
904         (Install_Null_Excluding_Check): Ditto
905         (Selected_Length_Checks): Build actual subtype for the original Ck_Node,
906         not for the renamed object, so that the actual itype is attached in the
907         proper context.
908
909 2006-02-13  Robert Dewar  <dewar@adacore.com>
910             Vincent Celier  <celier@adacore.com>
911
912         * debug.adb: Eliminate numeric switches for binder/gnatmake
913
914         * switch-m.adb (Normalize_Compiler_Switches): Record numeric debug
915         switches for the compiler.
916         (Scan_Make_Switches): Do not allow numeric debug switches for gnatmake
917         (Scan_Make_Switches): When failing with an illegal switch, output an
918         error message with the full switch.
919         Eliminate numeric switches for binder/gnatmake
920
921         * switch.ads, switch.adb (Bad_Switch): New procedure
922
923         * switch-b.adb (Scan_Binder_Switches): Do not accept combined switches.
924         Remove 0-9 as debug flag character possibilities
925         -d is now controlling the primary stack size when its value is a
926         positive. Also add checks against invalid values, and support for kb,
927         mb. Ditto for -D switch.
928
929 2006-02-13  Robert Dewar  <dewar@adacore.com>
930             Serguei Rybin  <rybin@adacore.com>
931
932         * opt.ads opt.adb: Add Ada_Version_Explicit_Config along with
933         save/restore routines.
934         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
935         were not always properly handled previously.
936         Since we are changing the tree format anyway, also get rid of the
937         junk obsolete Immediate_Errors flag.
938         (Tree_Read): Change the way of reading Tree_Version_String - now we
939         read the version string from the tree even if its length is not the
940         same as the length of the version string computed from Gnatvsn.
941         (Search_Directory_Present): New Boolean flag for the compiler.
942         Define Tree_Version_String as a dynamic string.
943         (Default_Stack_Size): new variable, used to handle switch -d.
944
945         * par-prag.adb: 
946         For pragma Ada_2005, remove stuff about setting Ada_Version_Explicit
947         only for main unit.
948         Add pragma Ada_2005 (synonym for Ada_05)
949         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
950         were not always properly handled previously.
951
952         * directio.ads, ioexcept.ads, sequenio.ads, text_io.ads: Change
953         explicit Ada_95 to Ada_2005.
954
955 2006-02-13  Javier Miranda  <miranda@adacore.com>
956             Robert Dewar  <dewar@adacore.com>
957             Ed Schonberg  <schonberg@adacore.com>
958
959         * einfo.ads, einfo.adb (First_Tag_Component): Protect the frontend
960         against errors in the source program: a private types for which the
961         corresponding full type declaration is missing and pragma CPP_Virtual
962         is used.
963         (Is_Unchecked_Union): Check flag on Implementation_Base_Type.
964         (Is_Known_Null): New flag
965         (Has_Pragma_Pure): New flag
966         (No_Return): Present in all entities, set only for procedures
967         (Is_Limited_Type): A type whose ancestor is an interface is limited if
968         explicitly declared limited.
969         (DT_Offset_To_Top_Func): New attribute that is present in E_Component
970         entities. Only used for component marked Is_Tag. If present it stores
971         the Offset_To_Top function used to provide this value in tagged types
972         whose ancestor has discriminants.
973
974         * exp_ch2.adb: Update status of new Is_Known_Null flag
975
976         * sem_ch7.adb: Maintain status of new Is_Known_Null flag
977
978         * sem_cat.adb (Get_Categorization): Don't treat function as Pure in
979         the categorization sense if Is_Pure was set by pragma Pure_Function.
980
981 2006-02-13  Quentin Ochem  <ochem@adacore.com>
982             Olivier Hainque  <hainque@adacore.com>
983
984         * bindusg.adb: Updated documentation for -d and -D switches.
985
986         * raise.h (__gnat_set_globals): added new parameter for
987         Default_Stack_Size.
988
989         * init.c (__gnat_adjust_context_for_raise) <alpha-vms case>: Implement.
990         (__gnat_handle_vms_condition): Adjust context before raise.
991         (__gnat_install_handler): Restore the global vector setup for GCC
992         versions before 3.4, as the frame based circtuitry is not available
993         in this case.
994         (__gnat_set_globals): added a parameter default_stack_size
995         (__gl_default_stack_size): new variable.
996
997 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
998
999         * exp_aggr.adb (Build_Array_Aggr_Code): Rename variable
1000         "Others_Mbox_Present" to "Others_Box_Present" because the mbox concept
1001         does not exist in the Ada RM.
1002         (Compatible_Int_Bounds): Determine whether two integer range bounds
1003         are of equal length and have the same start and end values.
1004         (Is_Int_Range_Bounds): Determine whether a node is an integer range.
1005         (Build_Record_Aggr_Code): Perform proper sliding of a nested array
1006         aggregate when it is part of an object declaration.
1007         (Build_Record_Aggr_Code)  If the aggregate ttype is a derived type that
1008         constrains discriminants of its parent, add explicitly the discriminant
1009         constraints of the ancestor by retrieving them from the
1010         stored_constraint of the parent.
1011
1012 2006-02-13  Robert Dewar  <dewar@adacore.com>
1013
1014         * exp_attr.adb (Expand_N_Attribute_Reference, case Mechanism_Code): If
1015         attribute Mechanism_Code is applied to renamed subprogram, modify
1016         prefix to point to base subprogram.
1017         Max/Min attributes now violate Restriction No_Implicit_Conditionals
1018
1019         * sinfo.ads: Document that Mechanism_Code cannot be applied to
1020         renamed subprograms so that the front-end must replace the prefix
1021         appropriately.
1022
1023 2006-02-13  Javier Miranda  <miranda@adacore.com>
1024             Gary Dismukes  <dismukes@adacore.com>
1025
1026         * exp_ch3.adb (Component_Needs_Simple_Initialization): Add check for
1027         availability of RE_Interface_Tag.
1028         (Build_Initialization_Call): Fix wrong access to the discriminant value.
1029         (Freeze_Record_Type): Do not generate the tables associated with
1030         timed and conditional dispatching calls through synchronized
1031         interfaces if compiling under No_Dispatching_Calls restriction.
1032         When compiling for Ada 2005, for a nonabstract
1033         type with a null extension, call Make_Controlling_Function_Wrappers
1034         and insert the wrapper function declarations and bodies (the latter
1035         being appended as freeze actions).
1036         (Predefined_Primitive_Bodies): Do not generate the bodies of the
1037         predefined primitives associated with timed and conditional
1038         dispatching calls through synchronized interfaces if we are
1039         compiling under No_Dispatching_Calls.
1040         (Build_Init_Procedure):  Use RTE_Available to check if a run-time
1041         service is available before generating a call.
1042         (Make_Controlling_Function_Wrappers): New procedure.
1043         (Expand_N_Full_Type_Declaration): Create a class-wide master for
1044         access-to-limited-interfaces because they can be used to reference
1045         tasks that implement such limited interface.
1046         (Build_Offset_To_Top_Functions): Build the tree corresponding to the
1047         procedure spec and body of the Offset_To_Top function that is generated
1048         when the parent of a type with discriminants has secondary dispatch
1049         tables.
1050         (Init_Secondary_Tags): Handle the case in which the parent of the type
1051         containing secondary dispatch tables has discriminants to generate the
1052         correct arguments to call Set_Offset_To_Top.
1053         (Build_Record_Init_Proc): Add call to Build_Offset_To_Top_Functions.
1054
1055         * a-tags.ads, a-tags.adb: (Check_Index): Removed.
1056         Add Wide_[Wide_]Expanded_Name.
1057         (Get_Predefined_Prim_Op_Address): New subprogram that provides exactly
1058         the same functionality of Get_Prim_Op_Address but applied to predefined
1059         primitive operations because the pointers to the predefined primitives
1060         are now saved in a separate table.
1061         (Parent_Size): Modified to get access to the separate table of primitive
1062         operations or the parent type.
1063         (Set_Predefined_Prim_Op_Address): New subprogram that provides the same
1064         functionality of Set_Prim_Op_Address but applied to predefined primitive
1065         operations.
1066         (Set_Signature): New subprogram used to store the signature of a DT.
1067         (Displace): If the Offset_To_Top value is not static then call the
1068         function generated by the expander to get such value; otherwise use
1069         the value stored in the table of interfaces.
1070         (Offset_To_Top): The type of the actual has been changed to Address to
1071         give the correct support to tagged types with discriminants. In this
1072         case this value is stored just immediately after the tag field.
1073         (Set_Offset_To_Top): Two new formals have been added to indicate if the
1074         offset_to_top value is static and hence pass this value to the run-time
1075         to store it in the table of interfaces, or else if this value is dynamic
1076         and then pass to the run-time the address of a function that is
1077         generated by the expander to provide this value for each object of the
1078         type.
1079
1080         * rtsfind.ads (Default_Prin_Op_Count): Removed.
1081         (Default_Prim_Op_Count): New entity
1082         (Get_Predefined_Prim_Op_Address): New entity
1083         (Set_Predefined_Prim_Op_Address): New entity
1084         (RE_Set_Signature): New entity
1085
1086 2006-02-13  Thomas Quinot  <quinot@adacore.com>
1087             Ed Schonberg  <schonberg@adacore.com>
1088
1089         * exp_ch4.adb (Expand_Allocator_Expression): Pass Allocator => True to
1090         Make_Adjust_Call done for a newly-allocated object.
1091
1092         * exp_ch7.ads, exp_ch7.adb (Expand_Cleanup_Actions): If the statements
1093         in a subprogram are wrapped in a cleanup block, indicate that the
1094         subprogram contains an inner block with an exception handler.
1095         (Make_Adjust_Call): New Boolean formal Allocator indicating whether the
1096         Adjust call is for a newly-allocated object. In that case we must not
1097         assume that the finalization list chain pointers are correct (since they
1098         come from a bit-for-bit copy of the original object's pointers) so if
1099         the attach level would otherwise be zero (no change), we set it to 4
1100         instead to cause the pointers to be reset to null.
1101
1102         * s-finimp.adb (Attach_To_Final_List): New attach level: 4, meaning
1103         reset chain pointers to null.
1104
1105 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
1106
1107         * exp_ch5.adb (Expand_Assign_Array): If the right-hand side is a
1108         string, and the context requires a loop for the assignment (e.g.
1109         because the left-hand side is packed), generate a unique name for the
1110         temporary that holds the string, to prevent spurious name clashes.
1111
1112 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
1113             Javier Miranda  <miranda@adacore.com>
1114             Robert Dewar  <dewar@adacore.com>
1115             Gary Dismukes  <dismukes@adacore.com>
1116
1117         * exp_ch6.adb (Expand_Inlined_Call): Handle calls to functions that
1118         return unconstrained arrays.
1119         Update comments.
1120         (Expand_Call):  An indirect call through an access parameter of a
1121         protected operation is not a protected call.
1122         Add circuit to raise CE in Ada 2005 mode following call
1123         to Raise_Exception.
1124         (Register_DT_Entry): Do nothing if
1125         the run-time does not give support to abstract interfaces.
1126         (Freeze_Subprogram): In case of dispatching operations, do not generate
1127         code to register the operation in the dispatch table if the source
1128         is compiled with No_Dispatching_Calls.
1129         (Register_Predefined_DT_Entry): Generate code that calls the new
1130         run-time subprogram Set_Predefined_Prim_Op_Address instead of
1131         Set_Prim_Op_Address.
1132
1133         * sem_ch5.adb (Analyze_Assignment_Statement): Do not apply length checks
1134         on array assignments if the right-hand side is a function call that has
1135         been inlined. Check is performed on the assignment in the block.
1136         (Process_Bounds): If bounds and range are overloaded, apply preference
1137         rule for root operations to disambiguate, and diagnose true ambiguity.
1138         (Analyze_Assignment): Propagate the tag for a class-wide assignment with
1139         a tag-indeterminate right-hand side even when Expander_Active is True.
1140         Needed to ensure that dispatching calls to T'Input are allowed and
1141         get the tag of the target class-wide object.
1142
1143         * sem_ch6.adb (New_Overloaded_Entity): Handle entities that override
1144         an inherited primitive operation that already overrides several
1145         abstract interface primitives. For transitivity, the new entity must
1146         also override all the abstract interface primitives covered by the
1147         inherited overriden primitive.
1148         Emit warning if new entity differs from homograph in same scope only in
1149         that one has an access parameter and the other one has a parameter of
1150         a general access type with the same designated type, at the same
1151         position in the signature.
1152         (Make_Inequality_Operator): Use source locations of parameters and
1153         subtype marks from corresponding equality operator when creating the
1154         tree structure for the implicit declaration of "/=". This does not
1155         change anything in behaviour except that the decoration of the
1156         components of the subtree created for "/=" allows ASIS to get the
1157         string images of the corresponding identifiers.
1158         (Analyze_Return_Statement): Remove '!' in warning message.
1159         (Check_Statement_Sequence): Likewise.
1160         (Analyze_Subprogram_Body): For an access parameter whose designated type
1161         is an incomplete type imported through a limited_with clause, use the
1162         type of the corresponding formal in the body.
1163         (Check_Returns): Implicit return in No_Return procedure now raises
1164         Program_Error with a compile time warning, instead of beging illegal.
1165         (Has_Single_Return):  Function returning unconstrained type cannot be
1166         inlined if expression in unique return statement is not an identifier.
1167         (Build_Body_To_Inline): It is possible to inline a function call that
1168         returns an unconstrained type if all return statements in the function
1169         return the same local variable. Subsidiary procedure Has_Single_Return
1170         verifies that the body conforms to this restriction.
1171
1172         * sem_res.adb (Resolve_Equality_Op): If the operands do not have the
1173         same type, and  one of them is of an anonymous access type, convert
1174         the other operand to it, so that this is a valid binary operation for
1175         gigi.
1176         (Resolve_Type_Conversion): Handle subtypes of protected types and
1177         task types when accessing to the corresponding record type.
1178         (Resolve_Allocator): Add '\' in 2-line warning message.
1179         Remove '!' in warning message.
1180         (Resolve_Call): Add '\' in 2-line warning message.
1181         (Valid_Conversion): Likewise.
1182         (Resolve_Overloaded_Selected_Component): If disambiguation succeeds, the
1183         resulting type may be an access type with an implicit dereference.
1184         Obtain the proper component from the designated type.
1185         (Make_Call_Into_Operator): Handle properly a call to predefined equality
1186         given by an expanded name with prefix Standard, when the operands are
1187         of an anonymous access type.
1188         (Check_Fully_Declared_Prefix): New procedure, subsidiary of Resolve_
1189         Explicit_Dereference and Resolve_Selected_Component, to verify that the
1190         prefix of the expression is not of an incomplete type. Allows full
1191         diagnoses of all semantic errors.
1192         (Resolve_Actuals): If the actual is an allocator whose directly
1193         designated type is a class-wide interface we build an anonymous
1194         access type to use it as the type of the allocator. Later, when
1195         the subprogram call is expanded, if the interface has a secondary
1196         dispatch table the expander will add a type conversion to force
1197         the displacement of the pointer.
1198         (Resolve_Call): If a function that returns an unconstrained type is
1199         marked Inlined_Always and inlined, the call will be inlined and does
1200         not require the creation of a transient scope.
1201         (Check_Direct_Boolean_Op): Removed
1202         (Resolve_Comparison_Op): Remove call to above
1203         (Resolve_Equality_Op): Remove call to above
1204         (Resolve_Logical_Op): Inline above, since this is only call.
1205         (Valid_Conversion): Handle properly conversions between arrays of
1206         convertible anonymous access types.
1207
1208         PR ada/25885
1209
1210         (Set_Literal_String_Subtype): If the lower bound is not static, wrap
1211         the literal in an unchecked conversion, because GCC 4.x needs a static
1212         value for a string bound.
1213
1214 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
1215             Hristian Kirtchev  <kirtchev@adacore.com>
1216
1217         * exp_ch9.adb (Expand_N_Protected_Type_Declaration): When creating the
1218         components of the corresponding record, take into account component
1219         definitions that are access definitions.
1220         (Expand_N_Asynchronous_Select): A delay unit statement rewritten as a
1221         procedure is not considered a dispatching call and will be expanded
1222         properly.
1223
1224 2006-02-13  Javier Miranda  <miranda@adacore.com>
1225
1226         * exp_disp.ads, exp_disp.adb (Expand_Dispatching_Call): If the
1227         controlling argument of the dispatching call is an abstract interface
1228         class-wide type then we use it directly.
1229         Check No_Dispatching_Calls restriction.
1230         (Default_Prim_Op_Position): Remove the code that looks for the last
1231         entity in the list of aliased subprograms. This code was wrong in
1232         case of renamings.
1233         (Fill_DT_Entry): Add assertion to avoid the use of this subprogram
1234         when the source is compiled with the No_Dispatching_Calls restriction.
1235         (Init_Predefined_Interface_Primitives): No need to inherit primitives
1236         if we are compiling with restriction No_Dispatching_Calls.
1237         (Make_Disp_XXX): Addition of assertion to avoid the use of all these
1238         subprograms if we are compiling under No_Dispatching_Calls restriction.
1239         (Make_DT): Generate a dispatch table with a single dummy entry if
1240         we are compiling with the No_Dispatching_Calls restriction. In
1241         addition, in this case we don't generate code that calls to the
1242         following run-time subprograms: Set_Type_Kind, Inherit_DT.
1243         (Make_Select_Specific_Data_Table): Add assertion to avoid the use
1244         of this subprogram if compiling with the No_Dispatching_Calls
1245         restriction.
1246         (Expand_Type_Conversion): Instead of using the actual parameter,
1247         the argument passed as parameter to the conversion function was
1248         erroneously referenced by the expander.
1249         (Ada_Actions): Addition of Get_Predefined_Prim_Op_Address,
1250         Set_Predefined_Primitive_Op_Address and Set_Signature.
1251         (Expand_Dispatching_Call): Generate call to
1252         Get_Predefined_Prim_Op_Address for predefined primitives.
1253         (Fill_DT_Entry): Generate call to Set_Predefined_Prim_Op_Address for
1254         predefined primitives.
1255         (Make_DT, Make_Secondary_DT): If the tagged type has no user defined
1256         primitives we reserve one dummy entry to ensure that the tag does not
1257         point to some memory that is associated with some other object. In
1258         addition, remove all the old code that generated the assignments
1259         associated with the signature of the dispatch table and replace them
1260         by a call to the new subprogram Set_Signature.
1261         (Set_All_DT_Position): Change the algorithm because now we have a
1262         separate dispatch table associated with predefined primitive operations.
1263         (Expand_Interface_Conversion): In case of non-static offset_to_top
1264         add explicit dereference to get access to the object after the call
1265         to displace the pointer to the object.
1266         (Expand_Interface_Thunk): Modify the generation of the actual used
1267         in the calls to the run-time function Offset_To_Top to fulfil its
1268         new interface.
1269         (Make_DT): Add the new actuals required to call Set_Offset_To_Top.
1270
1271 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
1272
1273         * exp_dist.adb (Copy_Specification): For access parameters, copy
1274         Null_Exclusion flag, which will have been set for stream subprograms
1275         in Ada2005 mode.
1276
1277 2006-02-13  Pascal Obry  <obry@adacore.com>
1278
1279         * expect.c (__gnat_expect_portable_execvp): New implementation. The
1280         previous implementation was using the C runtime spawnve routine but
1281         the corresponding wait was using directly the Win32 API. This was
1282         causing some times a lock when waiting for an event using
1283         WaitForSingleObject in __gnat_waitpid. This new implementation uses
1284         the Win32 CreateProcess routine. Avoiding mixing C runtime and Win32
1285         API fixes this problem.
1286
1287 2006-02-13  Robert Dewar  <dewar@adacore.com>
1288
1289         * exp_intr.adb (Expand_Unc_Deallocation): Correct error of bad analyze
1290         call.
1291
1292 2006-02-13  Thomas Quinot  <quinot@adacore.com>
1293
1294         * exp_pakd.ads: Fix typos in comments.
1295
1296         * exp_pakd.adb (Convert_To_PAT_Type): For the case of a bit packed
1297         array reference that is an explicit dereference, mark the converted
1298         (packed) array reference as analyzed to prevent a forthcoming
1299         reanalysis from resetting its type to the original (non-packed) array
1300         type.
1301
1302 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
1303             Javier Miranda  <miranda@adacore.com>
1304             Eric Botcazou  <ebotcazou@adacore.com>
1305
1306         * exp_util.ads, exp_util.adb (Find_Prim_Op,
1307         Is_Predefined_Primitive_Operation): When
1308         searching for the predefined equality operator, verify that operands
1309         have the same type.
1310         (Is_Predefined_Dispatching_Operation): Remove the code that looks
1311         for the last entity in the list of aliased subprograms. This code
1312         was wrong in case of renamings.
1313         (Set_Renamed_Subprogram): New procedure
1314         (Remove_Side_Effects): Replace calls to Etype (Exp) with use of the
1315         Exp_Type constant computed when entering this subprogram.
1316         (Known_Null): New function
1317         (OK_To_Do_Constant_Replacement): New function
1318         (Known_Non_Null): Check scope before believing Is_Known_Non_Null flag
1319         (Side_Effect_Free): An attribute reference 'Input is not free of
1320         side effect, unlike other attributes that are functions. (from code
1321         reading).
1322         (Remove_Side_Effects): Expressions that involve packed arrays or records
1323         are copied at the point of reference, and therefore must be marked as
1324         renamings of objects.
1325         (Is_Predefined_Dispatching_Operation): Return false if the operation is
1326         not a dispatching operation.
1327
1328         PR ada/18819
1329         (Remove_Side_Effects): Lift enclosing type conversion nodes for
1330         elementary types in all cases.
1331
1332 2006-02-13  Javier Miranda  <miranda@adacore.com>
1333
1334         * freeze.adb (Freeze_Entity): Handle subtypes of protected types and
1335         task types when accessing to the corresponding record type.
1336         Remove '!' in warning message.
1337
1338 2006-02-13  Olivier Hainque  <hainque@adacore.com>
1339
1340         * g-altive.ads (VECTOR_ALIGNMENT): Set to Min (16, Max_Alignment),
1341         to avoid useless and space inefficient overalignments on targets where
1342         Max_Alignment is larger than 16.
1343
1344 2006-02-13  Pascal Obry  <obry@adacore.com>
1345
1346         * g-catiio.adb (Sec_Number): New type used to compute the number of
1347         seconds since 1-1-1970.
1348         (Image) [Natural]: The parameter was an Integer, as we can't deal with
1349         negative numbers (years, months...) it is better to have a Natural here.
1350         Code clean-up.
1351         (Image) [Number]: Change parameter from Long_Integer to Number.
1352         (Image): Use Number type to compute the seconds since 1-1-1970 to fix an
1353         overflow for dates past year 2038.
1354
1355 2006-02-13  Matthew Heaney  <heaney@adacore.com>
1356
1357         *  g-dyntab.adb (Index_Of): conversion from Natural can no longer raise
1358         Constraint_Error.
1359
1360 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
1361
1362         * gnatbind.adb (Scan_Bind_Arg): Replace error by warning on -M and
1363         native platforms.
1364         (Gnatbind): Do not call Exit_Program (E_Success) at the end, so that
1365         finalization can occur normally.
1366
1367 2006-02-13  Vincent Celier  <celier@adacore.com>
1368
1369         * gnatcmd.adb (Rules_Switches): New table
1370         (Add_To_Rules_Switches): New procedure
1371         (GNATCmd): For command CHECK, put all options following "-rules" in the
1372         Rules_Switches table. Append these -rules switches after the -cargs
1373         switches.
1374
1375 2006-02-13  Robert Dewar  <dewar@adacore.com>
1376
1377         * g-spipat.adb (Image, case PC_Assign_Imm and case PC_Assign_OnM):
1378         These two cases were generating incorrect output, and if this unit
1379         was built with checks on, generated a discriminant mismatch constraint
1380         error.
1381
1382 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
1383             Robert Dewar  <dewar@adacore.com>
1384
1385         * lib-xref.adb (Get_Type_Reference): For a private type whose full
1386         view is an array type, indicate the component type as well, for
1387         navigation purposes.
1388         (Generate_Reference): Don't consider array ref on LHS to be a case
1389         of violating pragma Unreferenced.
1390         Do not give Ada 2005 warning except on real reference.
1391
1392 2006-02-13  Vincent Celier  <celier@adacore.com>
1393
1394         * make.adb (Collect_Arguments_And_Compile): For VMS, when compiling the
1395         main source, add switch -mdebug-main=_ada_ so that the executable can
1396         be debugged by the standard VMS debugger.
1397         (Gnatmake): Set No_Main_Subprogram to True when there is no main
1398         subprogram, to avoid issuing -mdebug-main=_ada_ for VMS uselessly.
1399         Exit the Multi_Main_Loop when Unique_Compile is True after compilation
1400         of the last source, as the binding and linking phases are never
1401         performed.
1402         Set all executable obsolete when rebuilding a library.
1403
1404         * makeutl.adb (Linker_Options_Switches): Do not process empty linker
1405         options.
1406
1407 2006-02-13  Javier Miranda  <miranda@adacore.com>
1408
1409         PR ada/23973
1410
1411         * par-ch3.adb (P_Derived_Type_Def_Or_Private_Ext_Decl): Reorganize the
1412         code to improve the error message reported when the program has
1413         declarations of abstract interface types and it is not compiled with
1414         the -gnat05 switch.
1415         (P_Access_Definition): Reorganize the code to improve the error
1416         message reported when the new Ada 2005 syntax for anonymous
1417         access types is used and the program is not compiled with the
1418         -gnat05 switch.
1419
1420 2006-02-13  Robert Dewar  <dewar@adacore.com>
1421
1422         * par-ch6.adb, style.ads, styleg.adb, styleg.ads, stylesw.adb,
1423         stylesw.ads, usage.adb, vms_data.ads: Implement -gnatyI switch
1424         (MODE_IN)
1425
1426 2006-02-13  Javier Miranda  <miranda@adacore.com>
1427
1428         * par-endh.adb (Explicit_Start_Label): Add code to protect the parser
1429         against source containing syntax errors.
1430
1431 2006-02-13  Vincent Celier  <celier@adacore.com>
1432
1433         * prj.adb (Reset): Initialize the first element of table Namings with
1434         the standard naming data.
1435
1436 2006-02-13  Vincent Celier  <celier@adacore.com>
1437
1438         * prj.ads (Error_Warning): New enumeration type
1439
1440         * prj-nmsc.ads, prj-nmsc.adb (Error_Msg): If location parameter is
1441         unknown, use the location of the project to report the error.
1442         (When_No_Sources): New global variable
1443         (Report_No_Ada_Sources): New procedure
1444         (Check): New parameter When_No_Sources. Set value of global variable
1445         When_No_Sources,
1446         (Find_Sources): Call Report_No_Ada_Sources when appropriate
1447         (Get_Sources_From_File): Ditto
1448         (Warn_If_Not_Sources): Better warning messages indicating the unit name
1449         and the file name.
1450
1451         * prj-pars.ads, prj-pars.adb (Parse): New parameter When_No_Sources.
1452         Call Prj.Proc.Process with parameter When_No_Sources.
1453
1454         * prj-proc.ads, prj-proc.adb (Check): New parameter When_No_Sources.
1455         Call Recursive_Check with parameter When_No_Sources.
1456         (Recursive_Check): New parameter When_No_Sources. Call itself and
1457         Prj.Nmsc.Check with parameter When_No_Sources.
1458         (Process): New parameter When_No_Sources. Call Check with parameter
1459         When_No_Sources.
1460         (Copy_Package_Declarations): New procedure to copy renamed parameters
1461         and setting the location of the declared attributes to the location
1462         of the renamed package.
1463         (Process_Declarative_Items): Call Copy_Package_Declarations for renamed
1464         packages.
1465
1466 2006-02-13  Vincent Celier  <celier@adacore.com>
1467
1468         * prj-makr.adb (Make): Preserve the comments from the original project
1469         file.
1470         When removing nodes (attributes Source_Dirs, Source_Files,
1471         Source_List_File and package Naming), save the comments and attach the
1472         saved comments to the newly created nodes.
1473         Do not add a with clause for the naming package if one already exists.
1474
1475 2006-02-13  Javier Miranda  <miranda@adacore.com>
1476             Gary Dismukes  <dismukes@adacore.com>
1477             Robert Dewar  <dewar@adacore.com>
1478
1479         * restrict.ads (No_Dispatching_Calls): New GNAT restriction.
1480
1481         * sem_disp.adb (Override_Dispatching_Operation): Traverse the list of
1482         aliased entities to look for the overriden abstract interface
1483         subprogram.
1484         (Is_Interface_Subprogram): Complete documentation.
1485         (Check_Dispatching_Operation): Do not generate code to register the
1486         operation in the dispatch table if the source is compiled with
1487         restriction No_Dispatching_Calls.
1488         (Override_Dispatching_Operation): Check for illegal attempt to override
1489         No_Return procedure with procedure that is not No_Return
1490         (Check_Dispatching_Call): Suppress the check for an abstract operation
1491         when the original node of an actual is a tag-indeterminate attribute
1492         call, since the attribute, which must be 'Input, can never be abstract.
1493         (Is_Tag_Indeterminate): Handle checking of tag indeterminacy of a
1494         call to the Input attribute (even when rewritten).
1495         (Propagate_Tag): Augment comment to indicate the possibility of a call
1496         to an Input attribute.
1497
1498         * sem_disp.ads (Override_Dispatching_Operation): Moved to spec to allow
1499         calling it from Exp_Ch3.Make_Controlling_Function_Wrappers.
1500
1501         * s-rident.ads: (No_Dispatching_Calls): New GNAT restriction.
1502         No_Wide_Characters is no longer partition-wide
1503         No_Implementation_Attributes/Pragmas are now Ada 2005 (AI-257)
1504         rather than GNAT
1505
1506 2006-02-13  Douglas Rupp  <rupp@adacore.com>
1507
1508         * s-auxdec-vms_64.ads (Short_Address): Wrap it in a type.
1509
1510 2006-02-13  Javier Miranda  <miranda@adacore.com>
1511
1512         * sem_aggr.adb (Resolve_Record_Aggregate): Restructure the code that
1513         handles default-initialized components to keep separate the management
1514         of this feature but also avoid the unrequired resolution and
1515         expansion of components that do not have partially initialized
1516         values.
1517         (Collect_Aggr_Bounds): Add '\' in 2-line warning message.
1518         (Check_Bounds): Likewise.
1519         (Check_Length): Likewise.
1520
1521 2006-02-13  Javier Miranda  <miranda@adacore.com>
1522             Ed Schonberg  <schonberg@adacore.com>
1523
1524         * sem_attr.adb (Analyze_Attribute): In case of 'Class applied to an
1525         abstract interface type call analyze_and_resolve to expand the type
1526         conversion into the corresponding displacement of the
1527         reference to the base of the object.
1528         (Eval_Attribute, case Width): For systems where IEEE extended precision
1529         is supported, the maximum exponent occupies 4 decimal digits.
1530         (Accessibility_Message): Add '\' in 2-line warning message.
1531         (Resolve_Attribute): Likewise.
1532         (case Attribute_Access): Significantly revise checks
1533         for illegal access-to-subprogram Access attributes to properly enforce
1534         the rules of 3.10.2(32/2).
1535         Diagnose use of current instance with an illegal attribute.
1536
1537         * sem_util.ads, sem_util.adb (Enclosing_Generic_Body): Change formal
1538         to a Node_Id.
1539         (Enclosing_Generic_Unit): New function to return a node's innermost
1540         enclosing generic declaration node.
1541         (Compile_Time_Constraint_Error): Remove '!' in warning messages.
1542         (Type_Access_Level): The accessibility level of anonymous acccess types
1543         associated with discriminants is that of the current instance of the
1544         type, and that's deeper than the type itself (AARM 3.10.2 (12.3.21)).
1545         (Compile_Time_Constraint_Error): Handle case of conditional expression.
1546         (Kill_Current_Values_For_Entity): New function
1547         (Enter_Name): Change formal type to Entity_Id
1548
1549 2006-02-13  Hristian Kirtchev  <kirtchev@adacore.com>
1550             Ed Schonberg  <schonberg@adacore.com>
1551             Gary Dismukes  <dismukes@adacore.com>
1552
1553         * sem_ch10.adb (Check_Redundant_Withs): New procedure in
1554         Analyze_Compilation_Unit.
1555         Detect and warn on redundant with clauses detected in a package spec
1556         and/or body when -gnatwr is used.
1557         (Analyze_Context): Analyze config pragmas before other items
1558         (Install_Context_Items): Don't analyze config pragmas here
1559         (Install_Limited_Withed_Unit): Set limited entity of package in
1560         with_clause so that cross-reference information or warning messages on
1561         unused packages can be properly generated
1562         (Is_Visible_Through_Renamings): Return false if the limited_with_clause
1563         has Error_Posted set. Prevent infinite loops in illegal programs.
1564         (Check_Private_Child_Unit): Move test for a nonprivate with clause down
1565         to the point of the error test requiring the current unit to be private.
1566         This ensures that private with clauses are not exempted from the basic
1567         checking for being a descendant of the same library unit parent as a
1568         withed private descendant unit.
1569         (Check_Private_Limited_Withed_Unit): Revise the checking algorithm to
1570         handle private with clauses properly, as well as to account for cases
1571         where the withed unit is a public descendant of a private ancestor
1572         (in which case the current unit must be a descendant of the private
1573         ancestor's parent). The spec comments were updated accordingly. Also,
1574         the old error message in this subprogram was replaced with error
1575         messages that mirror the errors tested and reported by
1576         Check_Private_Child_Unit.
1577         Parameter and variable names improved for readability.
1578         (Install_Limited_Context_Clauses): Remove test for a withed unit being
1579         private as the precondition for calling
1580         Check_Private_Limited_Withed_Unit since that subprogram has been
1581         revised to test public units as well as private units.
1582
1583 2006-02-13  Thomas Quinot  <quinot@adacore.com>
1584             Robert Dewar  <dewar@adacore.com>
1585             Ed Schonberg  <schonberg@adacore.com>
1586             Javier Miranda  <miranda@adacore.com>
1587
1588         * sem_ch12.adb (Inline_Instance_Body): Remove erroneous assumption
1589         that Scope_Stack.First = 1.
1590         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
1591         were not always properly handled previously.
1592         (Formal_Entity): Complete rewrite, to handle properly some complex case
1593         with multiple levels of parametrization by formal packages.
1594         (Analyze_Formal_Derived_Type): Propagate Ada 2005 "limited" indicator
1595         to the corresponding derived type declaration for proper semantics.
1596
1597         * sem_prag.adb (Analyze_Pragma): Remove '!' in warning message.
1598         (Check_Component): Enforce restriction on components of
1599         unchecked_unions: a component in a variant cannot contain tasks or
1600         controlled types.
1601         (Unchecked_Union): Allow nested variants and multiple discriminants, to
1602         conform to AI-216.
1603         Add pragma Ada_2005 (synonym for Ada_05)
1604         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
1605         were not always properly handled previously.
1606         Document that pragma Propagate_Exceptions has no effect
1607         (Analyze_Pragma, case Pure): Set new flag Has_Pragma_Pure
1608         (Set_Convention_From_Pragma): Check that if a convention is
1609         specified for a dispatching operation, then it must be
1610         consistent with the existing convention for the operation.
1611         (CPP_Class): Because of the C++ ABI compatibility, the programmer is no
1612         longer required to specify an vtable-ptr component in the record. For
1613         compatibility reasons we leave the support for the previous definition.
1614         (Analyze_Pragma, case No_Return): Allow multiple arguments
1615
1616         * sem_ch3.ads, sem_ch3.adb (Check_Abstract_Overriding): Flag a
1617         non-overrideen inherited operation with a controlling result as
1618         illegal only its implicit declaration comes from the derived type
1619         declaration of its result's type.
1620         (Check_Possible_Deferred_Completion): Relocate the object definition
1621         node of the subtype indication of a deferred constant completion rather
1622         than directly analyzing it. The analysis of the generated subtype will
1623         correctly decorate the GNAT tree.
1624         (Record_Type_Declaration): Check whether this is a declaration for a
1625         limited derived record before analyzing components.
1626         (Analyze_Component_Declaration): Diagnose record types  not explicitly
1627         declared limited when a component has a limited type.
1628         (Build_Derived_Record_Type): Code reorganization to check if some of
1629         the inherited subprograms of a tagged type cover interface primitives.
1630         This check was missing in case of a full-type associated with a private
1631         type declaration.
1632         (Constant_Redeclaration): Check that the subtypes of the partial and the
1633         full view of a constrained deferred constant statically match.
1634         (Mentions_T): A reference to the current type in an anonymous access
1635         component declaration  must be an entity name.
1636         (Make_Incomplete_Type_Declaration): If type is tagged, set type of
1637         class_wide type to refer to full type, not to the incomplete one.
1638         (Add_Interface_Tag_Components): Do nothing if RE_Interface_Tag is not
1639         available. Required to give support to the certified run-time.
1640         (Analyze_Component_Declaration): In case of anonymous access components
1641         perform missing checks for AARM 3.9.2(9) and 3.10.2 (12.2).
1642         (Process_Discriminants): For an access discriminant, use the
1643         discriminant specification as the associated_node_for_itype, to
1644         simplify accessibility checks.
1645
1646 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
1647             Javier Miranda  <miranda@adacore.com>
1648
1649         * sem_ch4.adb (Remove_Abstract_Interpretations): Even if there are no
1650         abstract interpretations on an operator, remove interpretations that
1651         yield Address or a type derived from it, if one of the operands is an
1652         integer literal.
1653         (Try_Object_Operation.Try_Primitive_Operation,
1654         Try_Object_Operation.Try_Class_Wide_Operation): Set proper source
1655         location when creating the new reference to a primitive or class-wide
1656         operation as a part of rewriting a subprogram call.
1657         (Try_Primitive_Operations): If context requires a function, collect all
1658         interpretations after the first match, because there may be primitive
1659         operations of the same type with the same profile and different return
1660         types. From code reading.
1661         (Try_Primitive_Operation): Use the node kind to choose the proper
1662         operation when a function and a procedure have the same parameter
1663         profile.
1664         (Complete_Object_Operation): If formal is an access parameter and prefix
1665         is an object, rewrite as an Access reference, to match signature of
1666         primitive operation.
1667         (Find_Equality_Type, Find_One_Interp): Handle properly equality given
1668         by an expanded name with prefix Standard, when the operands are of an
1669         anonymous access type.
1670         (Remove_Abstract_Operations): If the operation is abstract because it is
1671         inherited by a user-defined type derived from Address, remove it as
1672         well from the set of candidate interpretations of an overloaded node.
1673         (Analyze_Membership_Op): Membership test not applicable to cpp-class
1674         types.
1675
1676 2006-02-13  Bob Duff  <duff@adacore.com>
1677
1678         * sem_ch8.adb (Note_Redundant_Use): Suppress unhelpful warning about
1679         redundant use clauses.
1680         In particular, if the scope of two use clauses overlaps, but one is not
1681         entirely included in the other, we should not warn.  This can happen
1682         with nested packages.
1683         (Analyze_Subprogram_Renaming): Protect the compiler against previously
1684         reported errors. The bug was reported when the compiler was built
1685         with assertions enabled.
1686         (Find_Type): If the node is a 'Class reference and the prefix is a
1687         synchronized type without a corresponding record, return the type
1688         itself.
1689
1690 2006-02-13  Javier Miranda  <miranda@adacore.com>
1691
1692         * sem_ch9.adb (Analyze_Protected_Type, Analyze_Task_Type): Check that
1693         if this is the full-declaration associated with a private declaration
1694         that implement interfaces, then the private type declaration must be
1695         limited.
1696         (Analyze_Single_Protected, Analyze_Single_Task): Do not mark the object
1697         as aliased. The use of the 'access attribute is not available for such
1698         object (for this purpose the object should be explicitly marked as
1699         aliased, but being an anonymous type this is not possible).
1700
1701 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
1702             Robert Dewar  <dewar@adacore.com>
1703
1704         * sem_elab.adb (Same_Elaboration_Scope): A package that is a
1705         compilation unit is an elaboration scope.
1706         (Add_Task_Proc): Add '\' in 2-line warning message.
1707         (Activate_All_Desirable): Deal with case of unit with'ed by parent
1708
1709 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
1710             Javier Miranda  <miranda@adacore.com>
1711
1712         * sem_type.adb (Write_Overloads): Improve display of candidate
1713         interpretations.
1714         (Add_One_Interp): Do not add to the list of interpretations aliased
1715         entities corresponding with an abstract interface type that is an
1716         immediate ancestor of a tagged type; otherwise we have a dummy
1717         conflict between this entity and the aliased entity.
1718         (Disambiguate): The predefined equality on universal_access is not
1719         usable if there is a user-defined equality with the proper signature,
1720         declared in the same declarative part as the designated type.
1721         (Find_Unique_Type): The universal_access equality operator defined under
1722         AI-230 does not cover pool specific access types.
1723         (Covers): If one of the types is a generic actual subtype, check whether
1724         it matches the partial view of the other type.
1725
1726 2006-02-13  Thomas Quinot  <quinot@adacore.com>
1727
1728         * sinput-d.adb (Write_Line): Update the Source_Index_Table after each
1729         line. This is necessary to allow In_Extended_Main_Unit to provide
1730         correct results for itypes while writing out expanded source.
1731         (Close_File): No need to update the source_index_table here since it's
1732         now done for each line.
1733
1734 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
1735             Robert Dewar  <dewar@adacore.com>
1736
1737         * sprint.adb (Write_Itype): Preserve Sloc of declaration, if any, to
1738         preserve the source unit where the itype is declared, and prevent a
1739         backend abort.
1740         (Note_Implicit_Run_Time_Call): New procedure
1741         (Write_Itype): Handle missing cases (E_Class_Wide_Type and
1742         E_Subprogram_Type)
1743
1744         * sprint.ads: Document use of $ for implicit run time routine call
1745
1746 2006-02-13  Quentin Ochem  <ochem@adacore.com>
1747
1748         * s-stausa.adb (Initialize_Analyzer): fixed error in assignment of
1749         task name.
1750
1751 2006-02-13  Bob Duff  <duff@adacore.com>
1752
1753         * s-valint.adb (Scan_Integer): Call Scan_Raw_Unsigned instead of
1754         Scan_Unsigned, so we do not scan leading blanks and sign twice.
1755         Integer'Value("- 5") and Integer'Value("-+5") now correctly
1756         raise Constraint_Error.
1757
1758         * s-vallli.adb (Scan_Long_Long_Integer): Call
1759         Scan_Raw_Long_Long_Unsigned instead of Scan_Long_Long_Unsigned, so we
1760         do not scan leading blanks and sign twice.
1761         Integer'Value("- 5") and Integer'Value("-+5") now correctly
1762         raise Constraint_Error.
1763
1764         * s-valllu.ads, s-valllu.adb (Scan_Raw_Long_Long_Unsigned,
1765         Scan_Long_Long_Unsigned): Split out most of the processing from
1766         Scan_Long_Long_Unsigned out into
1767         Scan_Raw_Long_Long_Unsigned, so that Val_LLI can call the Raw_ version.
1768         This prevents scanning leading blanks and sign twice.
1769         Also fixed a bug: Modular'Value("-0") should raise Constraint_Error
1770         See RM-3.5(44).
1771
1772         * s-valuns.ads, s-valuns.adb (Scan_Raw_Unsigned, Scan_Unsigned): Split
1773         out most of the processing from Scan_Unsigned out into
1774         Scan_Raw_Unsigned, so that Val_LLI can call the Raw_ version.
1775         This prevents scanning leading blanks and sign twice.
1776
1777         * s-valuti.ads, s-valuti.adb (Scan_Plus_Sign): Add Scan_Plus_Sign, for
1778         use with Modular'Value attribute.
1779         (Scan_Plus_Sign): Add Scan_Plus_Sign, for use with Modular'Value
1780         attribute.
1781
1782 2006-02-13  Robert Dewar  <dewar@adacore.com>
1783
1784         * s-wchjis.adb (JIS_To_EUC): Raise Constraint_Error for invalid value
1785
1786 2006-02-13  Eric Botcazou  <ebotcazou@adacore.com>
1787
1788         * tracebak.c (PPC AIX/Darwin): Define FORCE_CALL to 1.
1789         (PPC VxWorks): Likewise.
1790         (Generic unwinder): Define FORCE_CALL to 0 if not already defined.
1791         (forced_callee): Make non-inlinable and non-pure.
1792         (__gnat_backtrace): Call forced_callee if FORCE_CALL is set to 1.
1793
1794 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
1795             Ben Brosgol  <brosgol@adacore.com>
1796             Robert Dewar  <dewar@adacore.com>
1797
1798         * gnat_rm.texi, gnat_ugn.texi: Remove limitations with sparc m64
1799         support.
1800         Document that gnatbind -M option is for cross environments only.
1801         Added description of using gnatmem to trace gnat rtl allocs and deallocs
1802         Add note on use of $ to label implicit run time calls
1803         Add documentation for -gnatyI (check mode IN)
1804         Updated chapter on compatibility with HP Ada
1805         VMS-oriented edits.
1806         Ran spell and corrected errors
1807         Add documentation for gnatbind -d and rework documentation of -D
1808         at the same time.
1809         Add subprogram/data elimination section.
1810         Minor editing of annex A.
1811         Add section for gnatcheck.
1812         Add documentation for restriction No_Dispatching_Calls
1813         Add documentation for pragma Ada_2005
1814         Remove mention of obsolete pragma Propagate_Exceptions
1815         Document that pragma Unreferenced can appear after DO in ACCEPT
1816         Clarify Pure_Function for library level units
1817         Mention Max/Min in connection with No_Implicit_Conditionals
1818         No_Wide_Characters restriction is no longer partition-wide
1819         Add a nice example for Universal_Literal_String attribute
1820         Document that pragma No_Return can take multiple arguments
1821
1822         * ug_words: Added entry for gnatcheck
1823
1824         * g-ctrl_c.ads (Install_Handler): Enhance comments
1825
1826         * g-os_lib.ads: Add comments to OS_Exit that it is abrupt termination
1827
1828         * g-trasym.ads: Add documentation on how to do off line symbolic
1829         traceback computation.
1830
1831         * s-fatgen.adb: Add comments for Unaligned_Valid
1832
1833         * stand.ads: Fix typo in comment
1834
1835 2006-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1836
1837         * Make-lang.in (check-gnat): Run run_acats with $(SHELL).
1838
1839 2006-02-06  Roger Sayle  <roger@eyesopen.com>
1840
1841         * decl.c (gnat_substitute_in_type): Don't handle CHAR_TYPE.
1842
1843 2006-02-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1844
1845         PR target/25926
1846         * initialize.c (__gnat_initialize): Provide HP-UX 10 host and target
1847         implementation that calls __main.
1848
1849 2006-01-25  Peter O'Gorman  <peter@pogma.com>
1850
1851         PR bootstrap/25859
1852         * Makefile.in (GCC_LINK): Remove quotes.
1853         (tools targets): Link with either $(GNATLINK) --GCC="$(GCC_LINK)"
1854         or $(GCC_LINK).
1855
1856         (powerpc-darwin): Pass -shared-libgcc when building shared library.
1857
1858 2006-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1859
1860         PR ada/24533
1861         * s-osinte-linux-hppa.ads: Reduce alignment of atomic_lock_t to 8.
1862
1863 2005-12-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1864
1865         * s-osinte-linux-hppa.ads: Correct alignment of atomic_lock_t.
1866
1867 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
1868
1869         * Makefile.in: Remove dummy setting of GCC_FOR_TARGET, no longer
1870         needed.
1871
1872 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
1873
1874         * Make-lang.in: Update dependencies
1875
1876 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
1877
1878         * Make-lang.in: Add rule for ada/exp_sel.o
1879
1880 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
1881
1882         * Makefile.in (mingw section): Remove EH_MECHANISM setting.
1883
1884 2005-12-09  Arnaud Charlet  <charlet@adacore.com>
1885
1886         * gnatvsn.ads (Library_Version): Bump to version 4.2
1887         (ASIS_Version_Number): Bumped.
1888
1889 2005-12-09  Doug Rupp  <rupp@adacore.com>
1890
1891         * mlib-tgt-vms-ia64.adb, mlib-tgt-vms-alpha.adb (Is_Interface): Change
1892         Ada bind file prefix on VMS from b$ to b__.
1893         (Build_Dynamic_Library): Change Init file suffix on VMS from $init to
1894         __init.
1895
1896         * prj-nmsc.adb: Change some Hostparm.OpenVMS checks to
1897         Targparm.OpenVMS_On_Target.
1898         (Object_Suffix): Initialize with target object suffix.
1899         (Get_Unit): Change Ada bind file prefix on VMS from b$ to b__.
1900
1901         * butil.adb: Change some Hostparm.OpenVMS checks to
1902         Targparm.OpenVMS_On_Target.
1903
1904         * clean.adb: Change some Hostparm.OpenVMS checks to
1905         Targparm.OpenVMS_On_Target.
1906         (Object_Suffix): Initialize with call to Get_Target_Object_Suffix.
1907         ({declaraction},Delete_Binder_Generated_Files,{initialization}): Change
1908         Ada bind file prefix on VMS from b$ to b__.
1909
1910         * gnatlink.adb (Process_Args): Call Add_Src_Search_Dir for -I in
1911         --GCC so that Get_Target_Parameters can find system.ads.
1912         (Gnatlink): Call Get_Target_Parameters in mainline.
1913         Initialize standard packages for Targparm.
1914         Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target.
1915         (Process_Args): Also Check for object files with target object
1916         extension.
1917         (Make_Binder_File_Names): Create with target object extension.
1918         (Make_Binder_File_Names): Change Ada bind file prefix on VMS from b$
1919         to b__.
1920
1921         * mlib-prj.adb: Change some Hostparm.OpenVMS checks to
1922         Targparm.OpenVMS_On_Target.
1923         ({declaration},Build_Library,Check_Library): Change Ada bind file
1924         prefix on VMS from b$ to b__.
1925
1926         * osint-b.adb: Change some Hostparm.OpenVMS checks to
1927         Targparm.OpenVMS_On_Target.
1928         (Create_Binder_Output): Change Ada bind file prefix on VMS from b$ to
1929         b__.
1930
1931         * targext.c: New file.
1932
1933         * Makefile.in: add support for vxworks653 builds
1934         (../../vxaddr2line): gnatlink with targext.o.
1935         (TOOLS_LIBS): Move targext.o to precede libgnat.
1936         (init.o, initialize.o): Minor clean up in dependencies.
1937         (GNATLINK_OBJS): Add targparm.o, snames.o
1938         Add rules fo building targext.o and linking it explicitly with all
1939         tools.
1940         Also add targext.o to gnatlib.
1941
1942         * Make-lang.in: Add rules for building targext.o and linking it in
1943         with gnat1 and gnatbind.
1944         Add entry for exp_sel.o.
1945
1946         * osint.adb Change some Hostparm.OpenVMS checks to
1947         Targparm.OpenVMS_On_Target.
1948         (Object_File_Name): Use target object suffix.
1949
1950         * osint.ads (Object_Suffix): Remove, no longer used.
1951         (Target_Object_Suffix): Initialize with target object suffix.
1952
1953         * rident.ads: Add special exception to license.
1954
1955         * targparm.adb (Get_Target_Parameters): Set the value of
1956         Multi_Unit_Index_Character after OpenVMS_On_Target gets its definitive
1957         value.
1958         (Get_Target_Parameters): Set OpenVMS_On_Target if openvms.
1959         
1960         * targparm.ads: Add special exception to license.
1961
1962         * g-os_lib.ads, g-os_lib.adb (Get_Target_Debuggable_Suffix): New
1963         function.
1964         (Copy_File): Make sure from file is closed if error on to file
1965         (Get_Target_Executable_Suffix, Get_Target_Object_Suffix): New functions.
1966
1967         * make.adb (Object_Suffix): Intialize with Get_Target_Object_Suffix.
1968         (Executable_Suffix): Intialize with Get_Target_Executable_Suffix.
1969
1970         * osint-c.adb (Set_Output_Object_File_Name): Initialize extension with
1971         target object suffix.
1972
1973 2005-12-09  Jose Ruiz  <ruiz@adacore.com>
1974             Quentin Ochem  <ochem@adacore.com>
1975             Florian Villoing  <villoing@adacore.com>
1976
1977         * a-taster.ads, a-taster.adb: New files.
1978
1979         * a-elchha.adb (Last_Chance_Handler): Change the task termination soft
1980         link to the version that does nothing. This way the task termination
1981         routine is not executed twice for the environment task when finishing
1982         because of an unhandled exception.
1983
1984         * a-exextr.adb (Notify_Unhandled_Exception): Call the task termination
1985         handler because of an unhandled exception.
1986
1987         * a-taside.adb (Abort_Tasks): Call the Abort_Tasks procedure from
1988         System.Tasking.Utilities instead of that in System.Tasking.Stages.
1989
1990         * s-finimp.adb (initialization code): Modify the soft link for the
1991         finalization of the global list instead of Adafinal.
1992
1993         * s-soflin.ads, s-soflin.adb (Task_Termination_NT): Add this
1994         non-tasking version of the soft link for task termination. We do
1995         nothing since if we are using the non-tasking version it
1996         means that the task termination functionality is not used.
1997         (Null_Finalize_Global_List): Add this null version for the procedure
1998         in charge of finalizing the global list for controlled objects.
1999         (Null_Adafinal): Remove this procedure. Adafinal_NT has been created
2000         instead for handling run-time termination in a more flexible way.
2001         (Adafinal_NT): This new procedure will take care of finalizing the
2002         global list for controlled objects if needed, but no tasking
2003         finalization.
2004
2005         * s-tarest.adb (Task_Lock): Do not try to lock again the
2006         Global_Task_Lock if we already own it. Otherwise, we get blocked in
2007         some run-time operations.
2008         (Task_Unlock): Do not try to actually unlock the Global_Task_Lock
2009         until all nested locks have been released.
2010         (Task_Wrapper): Call the fall-back task termination handler. It
2011         applies to all tasks but the environment task.
2012         (Finalize_Global_Tasks): Add the call for the task termination
2013         procedure for the environment task.
2014         (Task_Wrapper): suppress warnings around declaration of
2015         Secondary_Stack_Address.
2016
2017         * s-tasini.adb (Final_Task_Unlock): Global_Task_Lock_Nesting has been
2018         moved to the Common_ATCB record.
2019         (Task_Lock): Global_Task_Lock_Nesting has been moved to the
2020         Common_ATCB record.
2021         (Task_Unlock): Global_Task_Lock_Nesting has been moved to the
2022         Common_ATCB record.
2023
2024         * s-taskin.adb (Initialize_ATCB): Initialize Global_Task_Lock_Nesting,
2025         Fall_Back_Handler, and Specific_Handler.
2026
2027         * s-taskin.ads (Cause_Of_Termination): Redefine this type here, already
2028         defined in Ada.Task_Termination, to avoid circular dependencies.
2029         (Termination_Handler): Redefine this type here, alredy defined in
2030         Ada.Task_Termination, for avoiding circular dependencies.
2031         (Common_ATCB): Add the Fall_Back_Handler and Specific_Handler required
2032         for storing task termination handlers. In addition,
2033         Global_Task_Lock_Nesting has been moved from Ada_Task_Control_Block to
2034         Common_ATCB because it is used by both the regular and the restricted
2035         run times.
2036         (Ada_Task_Control_Block): Move Global_Task_Lock_Nesting from here to
2037         Common_ATCB because it is used by both the regular and the restricted
2038         run times.
2039         (Common_ATCB): Added a dynamic task analyzer field.
2040
2041         * s-tassta.adb (Abort_Tasks): Move the code in charge of checking
2042         potentially blocking operations to System.Tasking.Utilities.Abort_Tasks.
2043         (Task_Wrapper): Call the task termination handler. It applies to all
2044         tasks but the environment task.
2045         (Finalize_Global_Tasks): Call the task termination procedure for the
2046         environment task. The call to Finalize_Global_List is now performed
2047         using the soft links mechanism.
2048         (Task_Wrapper): added dynamic stack analysis.
2049
2050         * s-tasuti.adb (Abort_Tasks): The code in charge of checking
2051         potentially blocking operations has been moved from
2052         System.Tasking.Stages.Abort_Tasks to this procedure. There can be
2053         direct calls to System.Tasking.Utilities.Abort_Tasks that do not pass
2054         through System.Tasking.Stages.Abort_Tasks, and we do not want to miss
2055         this run-time check.
2056
2057         * s-solita.adb (Task_Termination_Handler_T): Add this task-safe version
2058         of task termination procedure.
2059         (Init_Tasking_Soft_Links): Install the task-safe version of the soft
2060         link for the task termination procedure.
2061
2062         * bindusg.adb: (Bindusg): Added documentation for -u option.
2063
2064         * bindgen.adb (Get_Main_Ada) Added handling of dynamic stack analysis.
2065         (Get_Main_C): Add handling of dynamic stack analysis.
2066         (Gen_Output_File_C): Add external functions for dynamic stack analysis.
2067
2068         * Makefile.rtl: Add entry for a-taster (Ada.Task_Termination).
2069         (GNATRTL_NONTASKING_OBJS) Added entries for dynamic stack analysis
2070         (GNATRTL_NONTASKING_OBJS): Add AltiVec files.
2071
2072         * opt.ads: Added flags used by dynamic stack measurement.
2073         (Max_Line_Length): Remove (not used anymore)
2074
2075         * s-io.ads, s-io.adb (Standard_Error): new subprogram
2076         (Standart_Output): new subprogram
2077         (Set_Output): new subprogram
2078         (Put): now uses the value of Current_Out to know if the output has to be
2079         send to stderr or stdout.
2080         
2081         * s-stausa.ads: Complete implementation.
2082
2083         * switch-b.adb: Added handling of -u switch for dynamic stack analysis.
2084         
2085         * impunit.adb (Non_Imp_File_Names_05): Add Ada.Task_Termination to the
2086         list of Ada 05 files.
2087         (GNAT Library Units): Add AltiVec files.
2088
2089         * g-allein.ads, g-alleve.adb, g-alleve.ads, g-altcon.adb,
2090         g-altcon.ads, g-altive.ads, g-alveop.adb, g-alveop.ads
2091         g-alvety.ads, g-alvevi.ads: New files providing altivec API.
2092
2093 2005-12-09  Nicolas Setton  <setton@adacore.com>
2094
2095         * adaint.c (__gnat_locate_regular_file): Return immediately if
2096         file_name is empty.
2097
2098 2005-12-09  Javier Miranda  <miranda@adacore.com>
2099             Hristian Kirtchev  <kirtchev@adacore.com>
2100
2101         * a-tags.ads, a-tags.adb (Offset_To_Top): Moved from the package body
2102         to the specification because the frontend generates code that uses this
2103         subprogram.
2104         (Set_Interface_Table): Add missing assertion.
2105         Update documentation describing the run-time structure.
2106         (Displace): New subprogram that displaces the pointer to the object
2107         to reference one of its secondary dispatch tables.
2108         (IW_Membership): Modified to use the new table of interfaces.
2109         (Inherit_TSD): Modified to use the new table of interfaces.
2110         (Register_Interface_Tag): Use the additional formal to fill the
2111         contents of the new table of interfaces.
2112         (Set_Interface_Table): New subprogram that stores in the TSD the
2113         pointer to the table of interfaces.
2114         (Set_Offset_To_Top): Use the additional formal to save copy of
2115         the offset value in the table of interfaces.
2116         Update structure of GNAT Primary and Secondary dispatch table diagram.
2117         Add comment section on GNAT dispatch table prologue.
2118         (Offset_To_Signature): Update the constant value of the Signature field.
2119         (Dispatch_Table): Update comment on hidden fields in the prologue.
2120         (Get_Entry_Index, Get_Prim_Op_Kind, Get_Offset_Index, OSD,
2121         Set_Entry_Index, Set_Offset_Index, Set_Prim_Op_Kind, SSD, TSD): Change
2122         the type of formal parameter T to Tag, introduce additional assertions.
2123         (Get_Num_Prim_Ops, Set_Num_Prim_Ops): Remove an unnecessary type
2124         conversion.
2125         (Get_Tagged_Kind, Set_Tagged_Kind): New bodies.
2126
2127         * exp_ch6.adb (Register_Interface_DT_Entry): Remove the Thunk_Id actual
2128         in all the calls to Expand_Interface_Thunk. Instead of referencing the
2129         record component containing the tag of the secondary dispatch table we
2130         have to use the Offset_To_Top run-time function to get this information;
2131         otherwise if the pointer to the base of the object has been displace
2132         we get a wrong value if we use the 'position attribute.
2133
2134         * exp_disp.adb (Expand_Interface_Thunk): Remove the Thunk_Id actual in
2135         all the calls to Expand_Interface_Thunk.
2136         (Make_Secondary_DT): Secondary dispatch tables do not have a table of
2137         interfaces; hence the call to Set_Interface_Table was clearly wrong.
2138         (Collect_All_Interfaces): Modify the internal subprogram Collect to
2139         ensure that the interfaces implemented by the ancestors are placed
2140         at the header of the generated list.
2141         (Expand_Interface_Conversion): Handle the case in which the displacement
2142         associated with the interface conversion is not statically known. In
2143         this case we generate a call to the new run-time subprogram Displace.
2144         (Make_DT): Generate and fill the new table of interfaces.
2145         (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Add entries for
2146         Get_Tagged_Kind and Set_Tagged_Kind.
2147         (Tagged_Kind): New function that determines the tagged kind of a type
2148         with respect to limitedness and concurrency and returns a reference to
2149         RE_Tagged_Kind.
2150         (Make_Disp_Asynchronous_Select_Body, Make_Disp_Conditional_Select_Body,
2151         Make_Disp_Timed_Select_Body): Correctly retrieve the pointer to the
2152         primary dispatch table for a type.
2153         (Make_DT, Make_Secondary_DT): Set the tagged kind in the primary and
2154         secondary dispatch table respectively of a tagged type.
2155
2156         * exp_disp.ads (Expand_Interface_Thunk): Remove Thunk_Id formal.
2157         (Expand_Interface_Conversion): New subprogram to indicate if the
2158         displacement of the type conversion is statically known.
2159         (DT_Access_Action): Add values Get_Tagged_Kind and Set_Tagged_Kind.
2160
2161         * rtsfind.ads (RE_Offset_To_Top): New entity
2162         (RTU_Id): Add Ada_Task_Termination to the list so that it is made
2163         accessible to users.
2164         (Re_Displace): New entity
2165         (RE_Interface_Data): New entity
2166         (RE_Set_Interface_Data): New_Entity
2167         (RE_Id, RE_Unit_Table): Add entry for RE_Get_Tagged_Kind,
2168         Set_Tagged_Kind, RE_Tagged_Kind, RE_TK_Abstract_Limited_Tagged,
2169         RE_TK_Abstract_Tagged, RE_TK_Limited_Tagged, RE_TK_Protected,
2170         RE_TK_Tagged, RE_TK_Task.
2171
2172         * exp_ch3.adb (Init_Secondary_Tags): Modify the subprogram
2173         Init_Secondary_Tags_Internal to allow its use with interface types and
2174         also to generate the code for the new additional actual required
2175         by Set_Offset_To_Top.
2176         (Build_Init_Statements): In case of components associated with abstract
2177         interface types there is no need to generate a call to its IP.
2178         (Freeze_Record_Type): Generate Select Specific Data tables only for
2179         concurrent types.
2180         (Make_Predefined_Primitive_Specs, Predefined_Primitive_Bodies): Generate
2181         the bodies and specifications of the predefined primitive operations
2182         dealing with dispatching selects and abort, 'Callable, 'Terminated only
2183         for concurrent types.
2184
2185         * exp_sel.ads, exp_sel.adb: New files.
2186
2187         * exp_ch9.adb (Build_Protected_Entry, Expand_N_Protected_Body,
2188         Expand_N_Protected_Type_Declaration, Make_Initialize_Protection): Handle
2189         properly protected objects and attach handler in the case of the
2190         restricted profile.
2191         Move embeded package Select_Expansion_Utilities into a separate external
2192         package.
2193         (Expand_N_Asynchronous_Select, Expand_N_Conditional_Select,
2194         Expand_N_Timed_Entry_Call): Correct calls external package Exp_Sel.
2195         (Build_K, Build_S_Assignment): New subprograms, part of the select
2196         expansion utilities.
2197         (Expand_N_Asynchronous_Select, Expand_N_Conditional_Entry_Call,
2198         Expand_N_Timed_Entry_Call): Optimize expansion of select statements
2199         where the trigger is a dispatching procedure of a limited tagged type.
2200
2201 2005-12-09  Olivier Hainque  <hainque@adacore.com>
2202
2203         * decl.c (gnat_to_gnu_entity, renaming object case): Don't early expand
2204         pointer initialization values. Make a SAVE_EXPR instead. Add comments
2205         about the use and expansion of SAVE_EXPRs in the various possible
2206         renaming handling cases.
2207         (components_to_record, compare_field_bitpos): Sort by DECL_UID, not by
2208         abusing DECL_FCONTEXT.
2209
2210 2005-12-09  Matthew Heaney  <heaney@adacore.com>
2211
2212         * a-convec.adb (Merge): Added assertions to check whether vector params
2213         are sorted.
2214
2215         * a-coinve.adb (Merge): Added assertions to check whether vector params
2216         are sorted.
2217
2218         * a-cohama.ads (Cursor'Write): raises Program_Error per latest AI-302
2219         draft.
2220         (Cursor'Read): raises PE
2221
2222         * a-cohama.adb (Insert.New_Node): Uses box-style syntax to init elem
2223         to its default value.
2224
2225         * a-cihama.adb: Manually check whether cursor's key and elem are
2226         non-null
2227
2228         * a-cidlli.ads, a-cidlli.adb (Splice): Changed param name and param mode
2229         (Merge): Assert that target and source lists are in order
2230         (Swap): Declare non-const temporaries, to pass to Splice
2231
2232         * a-cdlili.ads: (Splice): Changed param name and param mode
2233
2234         * a-cdlili.adb: (Splice): Changed param name and param mode
2235         (Merge): Assert that target and source lists are in order
2236         (Swap): Declare non-const temporaries, to pass to Splice
2237
2238         * a-ciorma.ads, a-coorma.ads: (Read): declare Stream param as not null
2239         (Write): declare Stream param as not null
2240
2241         * a-ciorma.adb, a-coorma.adb: All explicit raise statements now include
2242         an exception message.
2243
2244 2005-12-09  Thomas Quinot  <quinot@adacore.com>
2245             Robert Dewar  <dewar@adacore.com>
2246
2247         * hostparm.ads (Max_Line_Length): Set to Types.Column_Number'Last - 1,
2248         which is the absolute maximum length we can support.
2249
2250         * frontend.adb: For the processing of configuration pragma files,
2251         remove references to Opt.Max_Line_Length, which is not checked anymore.
2252
2253         * namet.ads (Name_Buffer): Adjust size to reflect increase on max line
2254         length.
2255
2256         * scn.adb, scng.adb: 
2257         Always check line length against the absolute supported maximum,
2258         Hostparm.Max_Line_Length.
2259
2260         * stylesw.adb (Set_Style_Check_Options, case M): The maximum supported
2261         value for the maximum line length is Max_Line_Length (not
2262         Column_Number'Last).
2263         Minor error msg update
2264         (Set_Style_Check_Options): New interface returning error msg
2265         Minor code reorganization (processing for 'M' was out of alpha order)
2266
2267         * switch-c.adb: New interface for Set_Style_Check_Options
2268
2269         * stylesw.ads (Set_Style_Check_Options): New interface returning error
2270         msg.
2271
2272 2005-12-09  Javier Miranda  <miranda@adacore.com>
2273
2274         * exp_aggr.adb (Build_Record_Aggr_Code): Default-initialialized records
2275         with IP subprogram were only supported if there were limited types.
2276
2277         * sem_aggr.adb (Resolve_Record_Aggregate): Default-initialialized
2278         records with IP subprogram were only supported if there were limited
2279         types.
2280
2281 2005-12-09  Olivier Hainque  <hainque@adacore.com>
2282             Eric Botcazou  <ebotcazou@adacore.com>
2283
2284         * trans.c (tree_transform, emit_check): Adjust calls to
2285         build_call_raise, passing the now expected GNAT_NODE argument.
2286
2287         * gigi.h (build_call_raise): Add a GNAT_NODE argument to convey better
2288         source line information than what the current global locus indicates
2289         when appropriate.
2290
2291         * utils2.c (build_simple_component_ref): Return 0 if the offset of the
2292         field has overflowed.
2293         (build_call_raise): Add a GNAT_NODE argument to convey better source
2294         line information than what the current global locus indicates when
2295         appropriate.
2296         (build_component_ref): Adjust call to build_call_raise.
2297
2298 2005-12-09  Pascal Obry  <obry@adacore.com>
2299
2300         * g-diopit.adb (Find): Fix test to exit the iterator and make sure that
2301         the iterator is quitting iteration on parent directory.
2302
2303 2005-12-09  Javier Miranda  <miranda@adacore.com>
2304
2305         * exp_ch5.adb (Expand_N_Assignment_Statement): In case of tagged types
2306         and the assignment to a class-wide object, before the assignment we
2307         generate a run-time check to ensure that the tag of the Target is
2308         covered by the tag of the source.
2309
2310 2005-12-09  Robert Dewar  <dewar@adacore.com>
2311
2312         * exp_imgv.adb (Expand_Image_Attribute): Generate extra boolean
2313         parameter in call to Image_Wide_Character.
2314
2315         * s-imgwch.ads, s-imgwch.adb (Image_Wide_Character): Add boolean
2316         parameter Ada_2005 to deal with annoying FFFE/FFFF inconsistency.
2317         (Image_Wide_Character): Add boolean parameter Ada_2005 to deal with
2318         annoying FFFE/FFFF inconsistency.
2319
2320 2005-12-09  Robert Dewar  <dewar@adacore.com>
2321             Javier Miranda  <miranda@adacore.com>
2322             Ed Schonberg  <schonberg@adacore.com>
2323
2324         * exp_util.ads, exp_util.adb (Is_Ref_To_Bit_Packed_Slice): Handle case
2325         of type conversion.
2326         (Find_Interface): New subprogram that given a tagged type and one of its
2327         component associated with the secondary table of an abstract interface
2328         type, return the entity associated with such abstract interface type.
2329         (Make_Subtype_From_Expr): If type has unknown discriminants, always use
2330         base type to create anonymous subtype, because entity may be a locally
2331         declared subtype or generic actual.
2332         (Find_Interface): New subprogram that given a tagged type and one of its
2333         component associated with the secondary table of an abstract interface
2334         type, return the entity associated with such abstract interface type.
2335
2336         * sem_res.adb (Resolve_Type_Conversion): Handle the case in which the
2337         conversion cannot be handled at compile time. In this case we pass this
2338         information to the expander to generate the appropriate code.
2339
2340 2005-12-09  Robert Dewar  <dewar@adacore.com>
2341             Ed Schonberg  <schonberg@adacore.com>
2342             Gary Dismukes  <dismukes@adacore.com>
2343             Javier Miranda  <miranda@adacore.com>
2344             Hristian Kirtchev  <kirtchev@adacore.com>
2345
2346         * einfo.adb (Itype_Printed): New flag
2347         (Is_Limited_Type): Derived types do not inherit limitedness from
2348         interface progenitors.
2349         (Is_Return_By_Reference_Type): Predicate does not apply to limited
2350         interfaces.
2351
2352         * einfo.ads (Itype_Printed): New flag
2353         Move Is_Wrapper_Package to proper section
2354         Add missing Inline for Is_Volatile
2355
2356         * output.ads, output.adb (Write_Erase_Char): New procedure
2357         (Save/Restore_Output_Buffer): New procedures
2358         (Save/Restore_Output_Buffer): New procedures
2359
2360         * sprint.ads, sprint.adb (Write_Itype): Handle case of record itypes
2361         Add missing support for anonymous access type
2362         (Write_Id): Insert calls to Write_Itype
2363         (Write_Itype): New procedure to output itypes
2364
2365         * par-ch12.adb (P_Formal_Derived_Type_Definition): In Ada 2005, handle
2366         use of "limited" in declaration.
2367
2368         * sinfo.ads, sinfo.adb: 
2369         Formal derived types can carry an explicit "limited" indication.
2370
2371         * sem_ch3.adb: Add with and use of Targparm.
2372         (Create_Component): If Frontend_Layout_On_Target is True and the
2373         copied component does not have a known static Esize, then reset
2374         the size and positional fields of the new component.
2375         (Analyze_Component_Declaration): A limited component is
2376         legal within a protected type that implements an interface.
2377         (Collect_Interfaces): Do not add to the list the interfaces that
2378         are implemented by the ancestors.
2379         (Derived_Type_Declaration): If the parent of the full-view is an
2380         interface perform a transformation of the tree to ensure that it has
2381         the same parent than the partial-view. This simplifies the job of the
2382         expander in order to generate the correct object layout, and it is
2383         needed because the list of interfaces of the full-view can be given in
2384         any order.
2385         (Process_Full_View): The parent of the full-view does not need to be
2386         a descendant of the parent of the partial view if both parents are
2387         interfaces.
2388         (Analyze_Private_Extension_Declaration): If declaration has an explicit
2389         "limited" the parent must be a limited type.
2390         (Build_Derived_Record_Type): A derived type that is explicitly limited
2391         must have limited ancestor and progenitors.
2392         (Build_Derived_Type): Ditto.
2393         (Process_Full_View): Verify that explicit uses of "limited" in partial
2394         and full declarations are consistent.
2395         (Find_Ancestor_Interface): Remove function.
2396         (Collect_Implemented_Interfaces): New procedure used to gather all
2397         implemented interfaces by a type.
2398         (Contain_Interface): New function used to check whether an interface is
2399         present in a list.
2400         (Find_Hidden_Interface): New function used to determine whether two
2401         lists of interfaces constitute a set equality. If not, the first
2402         differing interface is returned.
2403         (Process_Full_View): Improve the check for the "no hidden interface"
2404         rule as defined by AI-396.
2405
2406 2005-12-09  Robert Dewar  <dewar@adacore.com>
2407
2408         * freeze.adb (Freeze_Record_Type): Only test for useless pack on record
2409         types, not on record subtypes.
2410         (Freeze_Entity): Code cleanup. Add barrier to the loop
2411         that generates the references for primitive operations. This allows to
2412         remove an unnecessary exception handler.
2413         Code reformatting and comment clean ups.
2414
2415 2005-12-09  Vincent Celier  <celier@adacore.com>
2416
2417         * gnatcmd.adb (GNATCmd): GNAT CHECK accepts switch -U
2418         If GNAT CHECK is called with a project file, but with no
2419         source on the command line, call gnatcheck with all the compilable
2420         sources of the project.
2421         Take into account the new command Check, for gnatcheck. Treat as for
2422         other ASIS tools: take into account project, specific package Check and
2423         Compiler switches.
2424         For ASIS tools, add the switches in package Compiler for
2425         the invocation of the compiler.
2426
2427         * prj-attr.adb: Add package Check and its attributes
2428
2429         * vms_conv.ads (Command_Type): New command Check, for gnatcheck
2430
2431         * vms_conv.adb (Initialize): Change Params of command Check to
2432         unlimited files.
2433         Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target.
2434         Add data for new command Check
2435
2436         * vms_data.ads: Add project related qualifiers for GNAT CHECK and GNAT
2437         ELIM.
2438         Add qualifiers for Check command options
2439         (Command_Type): New command Check
2440
2441 2005-12-09  Thomas Quinot  <quinot@adacore.com>
2442
2443         * mlib-utl.adb (Ar): Use Output.Buffer_Max to determine whether a
2444         command line switch overruns the output buffer.
2445
2446 2005-12-09  Robert Dewar  <dewar@adacore.com>
2447
2448         * sem_prag.adb: Processing for new pragma Complete_Representation
2449         (Analyze_Pragma, case Debug): Implement two argument form.
2450
2451         * par-prag.adb: Entry for new pragma Complete_Representation
2452         (Prag, case Debug): Recognize two argument form of pragma Debug
2453         New interface for Set_Style_Check_Options.
2454
2455         * sem_ch13.adb: Implement new pragma Complete_Representation.
2456
2457         * snames.adb, snames.ads, snames.h: Entry for new pragma
2458         Complete_Representation.
2459
2460 2005-12-09  Gary Dismukes  <dismukes@adacore.com>
2461
2462         * sem_cat.adb (Validate_RCI_Subprogram_Declaration): Revise test for
2463         available user-specified stream attributes on limited parameters to
2464         also test the type directly rather than only its underlying type (for
2465         Ada 95) and, in the case of Ada 2005, to check that the user-specified
2466         attributes are visible at the point of the subprogram declaration.
2467         For Ada 2005, the error message is modified to indicate that the
2468         type's stream attributes must be visible (again, only for -gnat05).
2469
2470 2005-12-09  Ed Schonberg  <schonberg@adacore.com>
2471
2472         * sem_ch12.adb (Subtypes_Match): Handle properly Ada05 arrays of
2473         anonymous access types.
2474
2475         * sem_eval.adb (Subtypes_Statically_Match): Implement new rules for
2476         matching of anonymous access types and anonymous access to subprogram
2477         types. 'R'M 4.9.1 (2/2).
2478
2479 2005-12-09  Ed Schonberg  <schonberg@adacore.com>
2480
2481         * sem_ch4.adb (Remove_Abstract_Operations): Do not apply preference
2482         rule prematurely when operands are universal, remaining ambiguities
2483         will be removed during resolution.
2484         Code cleanup.
2485
2486         * sem_type.adb (Disambiguate): In Ada95 mode, discard interpretations
2487         that are Ada 2005 functions.
2488         (Has_Abstract_Interpretation): Subsidiary to
2489         Remove_Conversions, to remove ambiguities caused by abstract operations
2490         on numeric types when operands are universal.
2491
2492 2005-12-09  Robert Dewar  <dewar@adacore.com>
2493
2494         * sem_ch6.adb (Analyze_Subprogram_Body): Properly check categorization
2495         for case where spec is categorized.
2496
2497 2005-12-09  Javier Miranda  <miranda@adacore.com>
2498
2499         * sem_ch8.adb (Find_Type): In case of tagged types that are concurrent
2500         types use the corresponding record type. This was not needed before
2501         the implementation of Ada 2005 synchronized types because
2502         concurrent types were never tagged types in Ada 95.
2503
2504 2005-12-09  Ed Schonberg  <schonberg@adacore.com>
2505
2506         * sem_ch9.adb (Analyze_Delay_Alternative, Analyze_Delay_Until): Use the
2507         first subtype of the type of the expression to verify that it is a
2508         legal Time type.
2509
2510 2005-12-09  Robert Dewar  <dewar@adacore.com>
2511
2512         * sem_util.ads, sem_util.adb (Full_Qualified_Name): Now provides
2513         decoded names.
2514
2515 2005-12-09  Quentin Ochem  <ochem@adacore.com>
2516             Robert Dewar  <dewar@adacore.com>
2517             Ed Falis  <falis@adacore.com>
2518             Florian Villoing  <villoing@adacore.com>
2519             Thomas Quinot  <quinot@adacore.com>
2520             Arnaud Charlet  <charlet@adacore.com>
2521
2522         * gnat_ugn.texi: Created section "Stack Related Tools"
2523         Moved "Stack Overflow Checking" subsection from "Switches for gcc" to
2524         "Stack Related Tools"
2525         Added subsection "Static Stack Usage Analysis"
2526         Added subsection "Dynamic Stack Usage Analysis"
2527         Include documentation of itypes in sprint listing (-gnatG)
2528         Documented gnatbind -D switch (default sec stack size for fixed sec
2529         stacks).
2530         Added Interrupt_State and Persistent_BSS to list of configuration
2531         pragmas.
2532         Add missing doc for maximum value of nnn in -gnatyMnnn
2533
2534         * gnat_rm.texi: Document the AltiVec binding.
2535         Add documentation for pragma Complete_Representation
2536         Shortened an overly long line (> 79 chars)
2537         Clarify documentation of unchecked conversion in implementation
2538         defined cases.
2539         Document two argument form of pragma Debug
2540
2541         * types.ads (Column_Number): Update documentation.
2542
2543         * exp_ch7.ads (Make_Adjust_Call): Document the special processing for
2544         library level Finalize_Storage_Only objects (these are not attached to
2545         any finalization list).
2546
2547         * system-mingw.ads: (Underlying_Priorities): Update comment.
2548
2549 2005-12-09  Robert Dewar  <dewar@adacore.com>
2550
2551         * i-c.adb, i-cexten.ads, i-cobol.adb, i-cobol.ads, i-cpoint.ads,
2552         i-cpp.adb, i-cpp.ads, i-cstrea.ads, i-cstrin.adb, i-cstrin.ads,
2553         inline.adb, interfac.ads, i-os2err.ads, i-os2lib.ads, i-os2syn.ads,
2554         i-os2thr.ads, itypes.adb, itypes.adb, itypes.ads, krunch.ads,
2555         krunch.adb, lib.adb, lib.ads, lib-list.adb, lib-load.adb,
2556         lib-load.ads, lib-sort.adb, live.adb, make.ads, i-cstrea-vms.adb,
2557         interfac-vms.ads, makegpr.adb, indepsw-gnu.adb, indepsw.ads,
2558         s-wchcon.ads, sdefault.ads, sem_ch10.adb, sem_eval.ads: Minor
2559         reformatting.
2560
2561 2005-12-09  Robert Dewar  <dewar@adacore.com>
2562
2563         * s-vaflop-vms-alpha.adb: (Ne_F): New function
2564         (Ne_G): New function
2565
2566         * exp_ch4.adb (Expand_Allocator_Expression): Factor duplicated code
2567         for tag assignment.
2568         (Rewrite_Comparison): Handle case where operation is not a comparison
2569         and ignore, and also handle type conversion case.
2570
2571 2005-12-09  Thomas Quinot  <quinot@adacore.com>
2572
2573         * exp_aggr.ads: Fix typo in comment.
2574         ???-mark Convert_Aggr_In_Assignment as needing documentation.
2575
2576 2005-12-09  Gary Dismukes  <dismukes@adacore.com>
2577
2578         * layout.adb: Replace various uses of byte by storage unit throughout.
2579         (Get_Max_SU_Size): Name changed from Get_Max_Size. In the case of a
2580         static size, convert to storage units before returning, to conform to
2581         spec.
2582
2583 2005-12-09  Matthew Gingell  <gingell@adacore.com>
2584
2585         * g-exctra.ads: Fix typo in comment.
2586
2587 2005-12-09  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2588
2589         * utils.c: Minor reformatting.
2590
2591 2005-12-09  Robert Dewar  <dewar@adacore.com>
2592
2593         * g-soccon.ads: 
2594         Further comment fixes to make the status of the default file clear
2595
2596         * s-bitops.adb: Clarify comment for Bits_Array
2597
2598 2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
2599
2600         * Make-lang.in (ada.install-normal): Remove.
2601
2602 2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
2603
2604         * Make-lang.in: Remove all dependencies on s-gtype.
2605
2606 2005-12-05  Richard Guenther  <rguenther@suse.de>
2607
2608         * utils.c (convert): Use fold_convert where appropriate.
2609
2610 2005-12-05  Paolo Bonzini  <bonzini@gnu.org>
2611
2612         * Makefile.in (gnatlib): Fix regex, using \. instead of . when
2613         a period is meant.
2614
2615 2005-12-02  Richard Guenther  <rguenther@suse.de>
2616
2617         * trans.c (gnat_gimplify_expr): Use buildN instead of build.
2618
2619 2005-12-01  Roger Sayle  <roger@eyesopen.com>
2620
2621         * utils.c (max_size): Only test for TREE_OVERFLOW on INTEGER_CST
2622         nodes.
2623
2624 2005-11-23  Laurent GUERBY  <laurent@guerby.net>
2625
2626         * mlib-prj.adb (Build_Library): Initialize Delete.
2627
2628 2005-11-21  Joel Sherrill <joel.sherrill@oarcorp.com>
2629
2630         * socket.c: Add extern int h_errno for rtems since networking header
2631         files are not available at this point in a tool bootstrap. Newlib
2632         only has basic C library header files.
2633
2634 2005-11-19  Richard Guenther  <rguenther@suse.de>
2635         Roger Sayle  <roger@eyesopen.com>
2636
2637         PR ada/23717
2638         * misc.c (internal_error_function): Don't use vsprintf to format
2639         the error message text, instead use pp_format_text and the new
2640         pretty printer APIs.  This allows handling of %qs, %w, etc.
2641
2642 2005-11-18  Laurent GUERBY  <laurent@guerby.net>
2643
2644         PR ada/24857
2645         * Makefile.in: Use s-auxdec-empty for RTEMS.
2646
2647 2005-11-17  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2648
2649         PR ada/22333
2650         * trans.c (gnat_gimplify_expr, case ADDR_EXPR): Always make
2651         a temporary if taking the address of something that is neither
2652         reference, declaration, or constant, since the gimplifier
2653         can't handle that case.
2654
2655 2005-11-17  Laurent GUERBY  <laurent@guerby.net>
2656
2657         PR ada/24857
2658         * s-auxdec-empty.ads, s-auxdec-empty.adb: New files.
2659         
2660 2005-11-16  Richard Guenther  <rguenther@suse.de>
2661
2662         * Makefile.in: Add EH_MECHANISM=-gcc to s390(x) linux.
2663
2664 2005-11-16  Joel Sherrill <joel.sherrill@oarcorp.com>
2665
2666         PR ada/24855
2667         * raise-gcc.c: Add missing stdarg.h include.
2668  
2669 2005-11-16  Richard Guenther  <rguenther@suse.de>
2670
2671         * Make-lang.in (ada/decl.o): Add $(EXPR_H) dependency.
2672         (ada/misc.o): Likewise.
2673
2674 2005-11-14  Thomas Quinot  <quinot@adacore.com>
2675
2676         * g-soccon.ads: Minor reformatting. Update comments.
2677
2678         * gsocket.h: Include <sys/times.h> in the VxWorks case, in order to
2679         gain visibility on the declaration of struct timeval.
2680
2681         * g-soccon-freebsd.ads,
2682         g-soccon-darwin.ads,
2683         g-soccon-tru64.ads,
2684         g-soccon-aix.ads,
2685         g-soccon-irix.ads,
2686         g-soccon-hpux.ads,
2687         g-soccon-solaris.ads,
2688         g-soccon-vms.ads,
2689         g-soccon-mingw.ads,
2690         g-soccon-vxworks.ads (SIZEOF_tv_sec, SIZEOF_tv_usec): New constants.
2691
2692         * g-soccon-hpux-ia64.ads, g-soccon-linux-ppc.ads,
2693         g-soccon-solaris-64.ads, g-soccon-linux-64.ads,
2694         g-soccon-linux-x86.ads: New files.
2695
2696         * g-socthi-mingw.adb: 
2697         (Socket_Error_Message): Remove redundant use of GNAT.Sockets.Constants
2698
2699         * g-socthi-vxworks.ads, g-socthi-vms.ads, g-socthi-mingw.ads
2700         (time_t, suseconds_t): New types constructed to match the tv_sec
2701         and tv_usec fields of C struct timeval.
2702         (Timeval): Construct structure in terms of the new types.
2703         (Host_Errno): New function (imported from socket.c), returns last hosts
2704         database error.
2705
2706         * g-socthi-vxworks.adb:  Add error handling circuitry.
2707
2708         * g-socket.ads, g-socket.adb (To_Timeval): Reflect change of type for
2709         components of struct timeval.
2710         (Get_Host_By_Name, Get_Host_By_Address): Fix error reporting circuitry.
2711         (Check_Selector): In error conditions, clear internal socket sets to
2712         avoid a memory leak.
2713         (Get_Socket_Option, Set_Socket_Option): Support for Multicast_If,
2714         Send_Timeout, Receive_Timeout.
2715
2716         * g-socthi.ads (time_t, suseconds_t): New types constructed to match
2717         the tv_sec and tv_usec fields of C struct timeval.
2718         (Timeval): Construct structure in terms of the new types.
2719         (Host_Errno): New function (imported from socket.c), returns last hosts
2720         database error.
2721
2722         * socket.c (__gnat_get_h_errno): New function to retrieve h_errno, the
2723         hosts database last error code.
2724
2725         * gen-soccon.c: Complete value expansion should not be performed on
2726         TARGET, as it has the form of a math expression, and some components
2727         may be platform-defined macros.
2728         For VxWorks, generate the OK and ERROR values.
2729         New constants giving the sizes of the components of C struct timeval.
2730
2731 2005-11-14  Robert Dewar  <dewar@adacore.com>
2732             Ed Schonberg  <schonberg@adacore.com>
2733
2734         PR ada/18434
2735
2736         * types.ads: Include All_Checks in Suppress_Array
2737
2738         * checks.adb (Check_Needed): Remove kludge for a/=b rewritten as
2739         not(a=b), since we no longer do this rewriting, and hence it is not
2740         needed.
2741         (Elaboration_Checks_Suppressed): Add special casing to
2742         deal with different cases of static and dynamic elaboration checks (all
2743         checks does not count in the first case, but does in the second).
2744         (Expr_Known_Valid): Do not assume that the result of any arbitrary
2745         function call is valid, since this is not the case.
2746         (Ensure_Valid): Do not apply validity check to a real literal
2747         in a universal or fixed context
2748
2749         * exp_ch4.adb (Expand_N_Op_Ne): Don't expand a/=b to not(a=b) for
2750         elementary types using the operator in standard. It is cleaner not to
2751         modify the programmers intent, especially in the case of floating-point.
2752         (Rewrite_Comparison): Fix handling of /= (this was always wrong, but
2753         it did not matter because we always rewrote a/=b to not(a=b).
2754         (Expand_Allocator_Expression): For an allocator expression whose nominal
2755         subtype is an unconstrained packed type, convert the expression to its
2756         actual constrained subtype.
2757         Implement warning for <= or >= where < or > not possible
2758         Fix to Vax_Float tests (too early in many routines, causing premature
2759         Vax_Float expansions.
2760
2761         * sem_prag.adb (Analyze_Pragma, case Obsolescent): Allow this pragma
2762         to be used with packages and generic packages as well as with
2763         subprograms.
2764         (Suppress): Set All_Checks, but not Elaboration_Check, for case
2765         of pragma Suppress (All_Checks)
2766         (Analyze_Pragma, case Warnings): Implement first argument allowed to be
2767         a string literal for precise control over warnings.
2768         Avoid raise of pragma in case of unrecognized pragma and just return
2769         instead.
2770
2771         * sem_prag.ads: Minor reformatting
2772
2773         * switch-c.adb (Scan_Front_End_Switches): Replace "raise Bad_Switch;"
2774         with call to new procedure Bad_Switch. Call Scan_Pos with new parameter
2775         Switch. Do not handle any exception.
2776         Include -gnatwx as part of -gnatg (warn on redundant parens)
2777         Allow optional = after -gnatm
2778         (Scan_Front_End_Switches): The -gnatp switch sets All_Checks, but no
2779         longer sets Elaboration_Checks.
2780         Code to set warning mode moved to Sem_Warn
2781         so that it can be shared by pragma processing.
2782
2783         * s-mastop-tru64.adb (Pop_Frame): Remove redundant parentheses in if
2784         statement.
2785
2786         * s-taprop-solaris.adb: 
2787         Change some <= to =, to avoid new warning
2788
2789         * a-exexda.adb, prj-proc.adb: 
2790         Fix obvious typo (Num_Tracebacks compared <= 0 instead of < 0)
2791         Fix obvious typo (Total_Errors_Detected <= 0 should be = 0)
2792
2793 2005-11-14  Robert Dewar  <dewar@adacore.com>
2794
2795         * exp_vfpt.adb: Handle /= case
2796         (Expand_Vax_Conversion): Properly recognize Conversion_OK flag
2797         so that we do not get duplicate scaling for fixed point conversions.
2798
2799         * s-vaflop.ads, s-vaflop.adb: (Ne_F): New function
2800
2801 2005-11-14  Matthew Gingell  <gingell@adacore.com>
2802
2803         * system-lynxos-ppc.ads, system-lynxos-x86.ads: 
2804         Increase default priority on Lynx from 15 to 17, and meet the Ada
2805         requirement that Default_Priority be ((Priority'First +
2806         Priority'Last) / 2) by increasing the range of Interrupt_Priority.
2807
2808 2005-11-14  Vincent Celier  <celier@adacore.com>
2809
2810         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
2811         mlib-tgt-hpux.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
2812         mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-alpha.adb,
2813         mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb,
2814         mlib-tgt-darwin.adb, mlib-tgt.adb, mlib-tgt.ads,
2815         mlib-tgt-lynxos.adb (DLL_Prefix): New function
2816
2817 2005-11-14  Doug Rupp  <rupp@adacore.com>
2818
2819         * system-vms.ads, system-vms_64.ads: ADA$GNAT: New exported object in
2820         private part.
2821
2822 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
2823
2824         * s-traces-default.adb, s-trafor-default.ads,
2825         s-tratas-default.adb: Fix compilation errors.
2826
2827 2005-11-14  Jose Ruiz  <ruiz@adacore.com>
2828
2829         * s-taprop-posix.adb (Initialize_Lock): Destroy mutex attribute before
2830         raising the exception so the memory used is freed.
2831
2832 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
2833
2834         * adaint.h, adaint.c (__gnat_is_cross_compiler): New constant.
2835         (Gnat_Install_Locks, __gnatlib_install_locks): Removed, no longer used.
2836         (convert_address): Update comments and list of platforms using this.
2837
2838         * s-tasini.adb (Gnat_Install_Locks, __gnatlib_install_locks): Removed,
2839         no longer used.
2840
2841 2005-11-14  Pascal Obry  <obry@adacore.com>
2842             Vincent Celier  <celier@adacore.com>
2843
2844         * gnatdll.adb (Parse_Command_Line): Remove redundant use of
2845         GNAT.Command_Line.
2846
2847         * memroot.adb: Remove redundant with/use clause on
2848         System.Storage_Elements.
2849
2850 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
2851
2852         * a-except.adb (Zero_Cost_Exceptions): Removed, no longer used.
2853         (builtin_longjmp, Process_Raise_Exceeption): Move setjmp/longjmp
2854         related code to a-exexpr.adb
2855         (Save_Occurrence_And_Private): Move GCC EH related code to
2856         a-exexpr-gcc.adb
2857         (Raise_Current_Excep): Add new variable Id with pragma
2858         volatile, to ensure that the variable lives on stack.
2859
2860         * a-exexpr-gcc.adb, raise-gcc.c: New file.
2861
2862         * a-exexpr.adb (builtin_longjmp, Propagate_Exception): Moved here code
2863         from a-except.adb.
2864         Move GCC EH related code to a-exexpr-gcc.adb
2865
2866         * Makefile.in: Add or update g-soccon LIBGNAT pairs for Linux/PPC and
2867         64-bit Solaris
2868         Split the Linux version of g-soccon into separate variants for 32 and 64
2869         bit platforms.
2870         (gnatlib): Use $(AR_FOR_TARGET) and $(RANLIB_FOR_TARGET)
2871         vice $(AR) and $(RANLIB). Remove use of host variable $(RANLIB_FLAGS).
2872         install-gnatlib: Use $(RANLIB_FOR_TARGET) vice $(RANLIB). Remove use
2873         of host variable $(RANLIB_FLAGS).
2874         (alpha64-dec-*vms*): Fix translations for 64 bit compiler.
2875         Code clean up: remove unused/obsolete targets.
2876         (EH_MECHANISM): New variable introduced to differenciate between the
2877         two EH mechanisms statically.
2878         (gnatlib-zcx, gnatlib-sjlj): Force EH_MECHANISM manually.
2879         (LIBGNAT_OBJS): Add raise-gcc.o
2880         (LIBGNAT_TARGET_PAIRS for ppc-vxworks): Use an specialized version of
2881         s-osinte.adb, s-tpopsp.adb, and system.ads for the run time that
2882         supports VxWorks 6 RTPs.
2883         (EXTRA_GNATRTL_NONTASKING_OBJS for ppc-vxworks): Remove the use of
2884         i-vxworks and i-vxwoio from the run time that supports VxWorks 6 RTPs.
2885
2886         * raise.c: Move all GCC EH-related routines to raise-gcc.c
2887
2888 2005-11-14  Jose Ruiz  <ruiz@adacore.com>
2889
2890         * s-tassta.adb (Create_Task): Move the code in charge of resetting the
2891         deferral level, when abort is not allowed, to a later stage (the
2892         Task_Wrapper).
2893         (Task_Wrapper): If Abort is not allowed, reset the deferral level since
2894         it will not get changed by the generated code. It was previously done
2895         in Create_Task.
2896
2897 2005-11-14  Thomas Quinot  <quinot@adacore.com>
2898             Olivier Hainque  <hainque@adacore.com>
2899             Eric Botcazou  <ebotcazou@adacore.com>
2900
2901         * decl.c:
2902         Factor common code to build a storage type for an unconstrained object
2903         from a fat or thin pointer type and a constrained object type.
2904         (annotate_value): Handle BIT_AND_EXPR.
2905         (annotate_rep): Don't restrict the back annotation of inherited
2906         components to the type_annotate_only case.
2907         (gnat_to_gnu_entity) <E_Array_Type>: Do not invoke create_type_decl if
2908         we are not defining the type.
2909         <E_Record_Type>: Likewise.
2910         (gnat_to_gnu_entity) <object, renaming>: Adjust comments and structure
2911         to get advantage of the new maybe_stabilize_reference interface, to
2912         ensure that what we reference is indeed stabilized instead of relying
2913         on assumptions on what the stabilizer does.
2914         (gnat_to_gnu_entity) <E_Incomplete_Type>: If the entity is an incomplete
2915         type imported through a limited_with clause, use its non-limited view.
2916         (Has_Stdcall_Convention): New macro, to centralize the Windows vs others
2917         differentiation.
2918         (gnat_to_gnu_entity): Use Has_Stdcall_Convention instead of a spread mix
2919         of #if sections + explicit comparisons of convention identifiers.
2920         (gnat_to_gnu_entity) <E_Variable>: Decrement force_global if necessary
2921         before early-returning for certain types when code generation is
2922         disabled.
2923         (gnat_to_gnu_entity) <object>: Adjust comment attached to the
2924         nullification of gnu_expr we do for objects with address clause and
2925         that we are not defining.
2926         (elaborate_expression_1): Do not create constants when creating
2927         variables needed by the debug info: the dwarf2 writer considers that
2928         CONST_DECLs is used only to represent enumeration constants, and emits
2929         nothing for them.
2930         (gnat_to_gnu_entity) <object>: When turning a non-definition of an
2931         object with an address clause into an indirect reference, drop the
2932         initializing expression.
2933         Include "expr.h".
2934         (STACK_CHECK_BUILTIN): Delete.
2935         (STACK_CHECK_PROBE_INTERVAL): Likewise.
2936         (STACK_CHECK_MAX_FRAME_SIZE): Likewise.
2937         (STACK_CHECK_MAX_VAR_SIZE): Likewise.
2938         (gnat_to_gnu_entity): If gnat_entity is a renaming, do not mark the tree
2939         corresponding to the renamed object as ignored for debugging purposes.
2940
2941         * trans.c (tree_transform, case N_Attribute_Reference, case Attr_Size &
2942         related): For a prefix that is a dereference of a fat or thin pointer,
2943         if there is an actual subtype provided by the front-end, use that
2944         subtype to build an actual type with bounds template.
2945         (tree_transform, case N_Free_Statement): If an Actual_Designated_Subtype
2946         is provided by the front-end, use that subtype to compute the size of
2947         the deallocated object.
2948         (gnat_to_gnu): When adding a statement into an elaboration procedure,
2949         check for a potential violation of a No_Elaboration_Code restriction.
2950         (maybe_stabilize_reference): New function, like gnat_stabilize_reference
2951         with extra arguments to control whether to recurse through non-values
2952         and to let the caller know if the stabilization has succeeded.
2953         (gnat_stabilize_reference): Now a simple wrapper around
2954         maybe_stabilize, for common uses without restriction on lvalues and
2955         without need to check for the success indication.
2956         (gnat_to_gnu, call_to_gnu): Adjust calls to gnat_stabilize_reference, to
2957         pass false instead of 0 as the FORCE argument which is a bool.
2958         (Identifier_to_gnu): Remove checks ensuring that an renamed object
2959         attached to a renaming pointer has been properly stabilized, as no such
2960         object is attached otherwise.
2961         (call_to_gnu): Invoke create_var_decl to create the temporary when the
2962         function uses the "target pointer" return mechanism.
2963         Reinstate conversion of the actual to the type of the formal
2964         parameter before any other specific treatment based on the passing
2965         mechanism. This turns out to be necessary in order for PLACEHOLDER
2966         substitution to work properly when the latter type is unconstrained.
2967
2968         * gigi.h (build_unc_object_type_from_ptr): New subprogram, factoring a
2969         common pattern.
2970         (maybe_stabilize_reference): New function, like gnat_stabilize_reference
2971         with extra arguments to control whether to recurse through non-values
2972         and to let the caller know if the stabilization has succeeded.
2973
2974         * utils2.c (gnat_build_constructor): Only sort the fields for possible
2975         static output of record constructor if all the components are constant.
2976         (gnat_build_constructor): For a record type, sort the list of field
2977         initializers in increasing bit position order.
2978         Factor common code to build a storage type for an unconstrained object
2979         from a fat or thin pointer type and a constrained object type.
2980         (build_unary_op) <ADDR_EXPR>: Always recurse down conversions between
2981         types variants, and process special cases of VIEW_CONVERT expressions
2982         as their NOP_EXPR counterpart to ensure we get to the
2983         CORRESPONDING_VARs associated with CONST_DECls.
2984         (build_binary_op) <MODIFY_EXPR>: Do not strip VIEW_CONVERT_EXPRs
2985         on the right-hand side.
2986
2987         * utils.c (build_unc_object_type_from_ptr): New subprogram, factoring
2988         a common pattern.
2989         (convert) <VIEW_CONVERT_EXPR>: Return the inner operand directly if we
2990         are converting back to its original type.
2991         (convert) <JM input>: Fallthrough regular conversion code instead of
2992         extracting the object if converting to a type variant.
2993         (create_var_decl): When a variable has an initializer requiring code
2994         generation and we are at the top level, check for a potential violation
2995         of a No_Elaboration_Code restriction.
2996         (create_var_decl): call expand_decl for CONST_DECLs, to set MODE, ALIGN
2997         SIZE and SIZE_UNIT which we need for later back-annotations.
2998         * utils.c: (convert) <STRING_CST>: Remove obsolete code.
2999         <VIEW_CONVERT_EXPR>: Do not lift the conversion if the target type
3000         is an unchecked union.
3001         (pushdecl): Set DECL_NO_STATIC_CHAIN on imported nested functions.
3002         (convert) <VIEW_CONVERT_EXPR>: When the types have the same
3003         main variant, just replace the VIEW_CONVERT_EXPR.
3004         <UNION_TYPE>: Revert 2005-03-02 change.
3005
3006         * repinfo.h, repinfo.ads: Add tcode for BIT_AND_EXPR.
3007
3008         * repinfo.adb (Print_Expr, Rep_Value): Handle Bit_And_Expressions.
3009
3010 2005-11-14  Matthew Heaney  <heaney@adacore.com>
3011
3012         * a-crbtgo.ads, a-crbtgo.adb, a-coorse.ads, a-coorse.adb, a-convec.ads, 
3013         a-convec.adb, a-coinve.ads, a-coinve.adb, a-cohama.ads, a-cohama.adb, 
3014         a-ciorse.ads, a-ciorse.adb, a-cihama.ads, a-cihama.adb, a-cidlli.ads, 
3015         a-cidlli.adb, a-cdlili.ads, a-cdlili.adb, a-coormu.adb, a-ciormu.adb, 
3016         a-cihase.adb, a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads, 
3017         a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-ciorma.adb, a-coorma.adb: 
3018         Compiles against the spec for ordered maps described in sections
3019         A.18.6 of the most recent (August 2005) AI-302 draft.
3020
3021 2005-11-14  Olivier Hainque  <hainque@adacore.com>
3022
3023         * cuintp.c (UI_To_gnu): Use a proper type for intermediate computations
3024         to ensure bias adjustments take place when need be and to prevent
3025         occurrences of intermediate overflows.
3026
3027 2005-11-14  Matthew Gingell  <gingell@adacore.com>
3028             Olivier Hainque  <hainque@adacore.com>
3029
3030         * tb-gcc.c (trace_callback): Work around problem with _Unwind_GetIP on
3031         ia64 HP-UX.
3032
3033         * tracebak.c (ia64 configuration): Enable _Unwind_Backtrace driven
3034         tracebacks on ia64 HP-UX and provide explanatory comment.
3035         Enable backtraces on ia64 GNU/Linux.
3036         (x86 configuration): Bump FRAME_LEVEL to 1 to ensure we retrieve a real
3037         base pointer from builtin_frame_address. Adjust BASE_SKIP accordingly.
3038
3039 2005-11-14  Hristian Kirtchev  <kirtchev@adacore.com>
3040             Javier Miranda  <miranda@adacore.com>
3041
3042         * rtsfind.ads, exp_util.adb, exp_util.ads, exp_disp.adb, exp_disp.ads,
3043         exp_ch7.adb, sem_ch9.adb, snames.adb, snames.ads,
3044         exp_ch9.adb, exp_ch9.ads, exp_ch6.adb, exp_ch3.adb, exp_ch3.ads,
3045         einfo.ads, einfo.adb: Complete support for Ada 2005 interfaces.
3046
3047         * a-tags.ads, a-tags.adb: Major rewrite and additions to implement
3048         properly new Ada 2005 interfaces (AI-345) and add run-time checks (via
3049         assertions).
3050
3051         * exp_dbug.ads, exp_dbug.adb (Get_Secondary_DT_External_Name): New
3052         subprogram that generates the external name associated with a
3053         secondary dispatch table.
3054         (Get_Secondary_DT_External_Name): New subprogram that generates the
3055         external name associated with a secondary dispatch table.
3056
3057 2005-11-14  Emmanuel Briot  <briot@adacore.com>
3058
3059         * xref_lib.adb (Parse_Identifier_Info): It is possible for an entity
3060         line in the ALI file to include both an instantiation reference, and a
3061         returned value.
3062
3063 2005-11-14  Vincent Celier  <celier@adacore.com>
3064
3065         * clean.adb (Check_Project): Look for Ada code in extending project,
3066         even if Ada is not specified as a language.
3067         Use new function DLL_Prefix for DLL_Name
3068         (Clean_Interface_Copy_Directory): New procedure
3069         (Clean_Library_Directory): New procedure
3070         (Clean_Directory): Remove procedure, no longer used
3071         (Clean_Project): Do not delete any file in an externally built project
3072
3073         * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Add the object
3074         directory of an extending project, even when there are no Ada source
3075         present.
3076         (Ada_Objects_Path.Add): Add Library_ALI_Dir, not Library_Dir to the path
3077         (Set_Ada_Paths.Add.Recursive_Add): Ditto
3078
3079         * mlib-prj.adb (Check_Library): For all library projects, get the
3080         library file timestamp.
3081         (Build_Library): Copy ALI files in Library_ALI_Dir, not in Library_Dir
3082         (Build_Library): Use new function DLL_Prefix for the DLL_Name
3083         (Clean): Remove procedure, no longer used
3084         (Ultimate_Extension_Of): New function
3085         (Build_Library): When cleaning the library directory, only remove an
3086         existing library file and any ALI file of a source of the project.
3087         When cleaning the interface copy directory, remove any source that
3088         could be a source of the project.
3089
3090         * prj.ads, prj.adb (Project_Empty): Add values of new components
3091         Library_TS and All_Imported_Projects.
3092         (Project_Empty): Add values for new components of Project_Data:
3093         Library_ALI_Dir and Display_Library_ALI_Dir
3094
3095         * prj-attr.adb: New project level attribute name Library_ALI_Dir
3096
3097         * prj-nmsc.adb (Check_Library_Attributes): Take into account new
3098         attribute Library_ALI_Dir.
3099         (Check_Library_Attributes): The library directory cannot be the same as
3100         any source directory of the project tree.
3101         (Check_Stand_Alone_Library): The interface copy directory cannot be
3102         the same as any source directory of the project tree.
3103
3104         * mlib.adb: Use Prj.Com.Fail, instead of Osint.Fail directly, to delete
3105         all temporary files.
3106
3107 2005-11-14  Robert Dewar  <dewar@adacore.com>
3108             Ed Schonberg  <schonberg@adacore.com>
3109
3110         * sem_elab.adb: Change name Is_Package to Is_Package_Or_Generic_Package
3111         (Check_Elab_Call): A call within a protected body is never an
3112         elaboration call, and does not require checking.
3113         (Same_Elaboration_Scope): Take into account protected types for both
3114         entities.
3115         (Activate_Elaborate_All_Desirable): New procedure
3116
3117         * ali.ads, ali.adb: Implement new AD/ED for Elaborate_All/Elaborate
3118         desirable
3119
3120         * binde.adb: Implement new AD/ED for Elaborate_All/Elaborate desirable
3121         (Elab_Error_Msg): Use -da to include internal unit links, not -de.
3122
3123         * lib-writ.ads, lib-writ.adb: 
3124         Implement new AD/ED for Elaborate_All/Elaborate desirable
3125         Use new Elaborate_All_Desirable flag in N_With_Clause node
3126
3127         * sinfo.ads, sinfo.adb (Actual_Designated_Subtype): New attribute for
3128         N_Free_Statement nodes.
3129         Define new class N_Subprogram_Instantiation
3130         Add Elaborate_Desirable flag to N_With_Clause node
3131         Add N_Delay_Statement (covering two kinds of delay)
3132
3133         * debug.adb: Introduce d.f flag for compiler
3134         Add -da switch for binder
3135
3136 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
3137             Cyrille Comar  <comar@adacore.com>
3138
3139         * exp_aggr.adb (Build_Record_Aggr_Code): Do not create master entity
3140         for task component, in the case of a limited aggregate. The enclosed
3141         object declaration will create it earlier. Otherwise, in the case of a
3142         nested aggregate, the object may appear in the wrong scope.
3143         (Convert_Aggr_In_Object_Decl): Create a transient scope when needed.
3144         (Gen_Assign): If the component being assigned is an array type and the
3145         expression is itself an aggregate, wrap the assignment in a block to
3146         force finalization actions on the temporary created for each row of the
3147         enclosing object.
3148         (Build_Record_Aggr_Code): Significant rewrite insuring that ctrl
3149         structures are initialized after all discriminants are set so that
3150         they can be accessed even when their offset is dynamic.
3151
3152 2005-11-14  Robert Dewar  <dewar@adacore.com>
3153             Hristian Kirtchev  <kirtchev@adacore.com>
3154
3155         * sem_attr.adb: Implement Machine_Rounding attribute
3156         (Analyze_Access_Attribute): The access attribute may appear within an
3157         aggregate that has been expanded into a loop.
3158         (Check_Task_Prefix): Add semantic check for attribute 'Callable and
3159         'Terminated whenever the prefix is of a task interface class-wide type.
3160         (Analyze_Attribute): Add semantic check for attribute 'Identity whenever
3161         the prefix is of a task interface class-wide type.
3162
3163         * s-vaflop-vms-alpha.adb: Valid_D, Valid_F, Valid_G: Make Val constant
3164         to avoid warnings.
3165
3166         * s-fatgen.ads, s-fatgen.adb (Machine_Rounding): New function
3167         Remove pragma Inline for [Unaligned_]Valid.
3168         Add comments that Valid routines do not work for Vax_Float
3169
3170         * exp_attr.adb: Implement Machine_Rounding attribute
3171
3172         * snames.h: Add entry for Machine_Rounding attribute
3173
3174 2005-11-14  Javier Miranda  <miranda@adacore.com>
3175             Robert Dewar  <dewar@adacore.com>
3176             Hristian Kirtchev  <kirtchev@adacore.com>
3177
3178         * exp_attr.adb (Expand_N_Attribute_Reference, cases of Attribute_Size
3179         and related): For a prefix that is an explicit dereference of an
3180         access to unconstrained packed array type, annotate the dereference
3181         with an actual subtype so GIGI can make a correct size computation.
3182         (Expand_N_Attribute_Reference): In case of 'Unchecked_Access and
3183         'Unrestricted_Access, if the designated type is an interface we
3184         add a type conversion to force the displacement of the pointer
3185         to the secondary dispatch table.
3186         Use Universal_Real instead of Long_Long_Float when we need a high
3187         precision float type for the generated code (prevents gratuitous
3188         Vax_Float stuff when pragma Float_Representation (Vax_Float) used)
3189         (Expand_N_Attribute_Reference): Add support for attribute 'Callable and
3190         'Terminated for task interface class-wide objects. Generate a call to
3191         the predefined dispatching routine used to retrieve the _task_id from
3192         a task corresponding record.
3193         (Expand_Fpt_Attribute): Major change to properly handle Vax_Float
3194
3195         * sem_disp.adb: Change name Is_Package to Is_Package_Or_Generic_Package
3196         (Check_Dispatching_Operation): Protect the frontend againts
3197         previously detected errors.
3198
3199         * Makefile.rtl: Add new instantiations of system.fat_gen
3200
3201         * s-fatflt.ads, s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads: 
3202         Change name of instantiated package for better consistency
3203         with newly added system.fat_gen instantiations.
3204
3205         * s-filofl.ads, s-fishfl.ads, s-fvadfl.ads, s-fvaffl.ads,
3206         s-fvagfl.ads: New files.
3207
3208 2005-11-14  Cyrille Comar  <comar@adacore.com>
3209             Thomas Quinot  <quinot@adacore.com>
3210
3211         * exp_ch5.adb (Expand_N_Assignment_Statement, Tagged_Case): For an
3212         assignment of a value of a tagged type that has been rewritten to a
3213         block statement, it is known by construction that no checks are
3214         necessary for the statements within the block: analyze it with checks
3215         suppressed.
3216         (Expand_N_If_Statement): When killing a dead then-branch in an
3217         if-statement that has elsif_parts, recompute the Current_Value node
3218         for any entity whose value is known from the condition of the first
3219         elsif_part.
3220         (Expand_N_Return_Statement): When returning a mutable record, convert
3221         the return value into its actual subtype in order to help the backend
3222         to return the actual size instead of the maximum. This is another
3223         aftermath of not returning mutable records on the sec-stack anymore.
3224
3225         * sem_ch5.ads, sem_ch5.adb (Analyze_Iteration_Scheme): Minor change to
3226         handling of error msg for suspicious reverse range iteration.
3227         (Check_Possible_Current_Value_Condition): Move declaration from body to
3228         spec, to allow this subprogram to be called from exp_ch5.
3229
3230 2005-11-14  Thomas Quinot  <quinot@adacore.com>
3231
3232         * exp_dist.adb (Append_Array_Traversal): Modify constrained case to
3233         generate a set of nested array aggregates instead of a single flat
3234         aggregate for multi-dimensional arrays.
3235
3236 2005-11-14  Pascal Obry  <obry@adacore.com>
3237
3238         * expect.c (__gnat_kill) [Win32]: Fix implementation, the pid returned
3239         by spawnve is a process handle, no need to convert. Add a parameter
3240         close to control wether the process handle must be closed.
3241         (__gnat_waitpid): Fix implementation, the pid returned by spawnve is
3242         a process handle, not need to convert.
3243         (__gnat_kill) [*]: Add dummy parameter close to match the Win32 spec.
3244
3245         * g-expect.adb: (Kill): Document the new close parameter.
3246         (Close): Do not release the process handle in the kill there as
3247         waitpid() is using it.
3248         (Send_Signal): Release the process handle.
3249
3250 2005-11-14  Robert Dewar  <dewar@adacore.com>
3251
3252         * exp_fixd.adb: Use Universal_Real instead of Long_Long_Float when we
3253         need a high precision float type for the generated code (prevents
3254         gratuitous Vax_Float stuff when pragma Float_Representation (Vax_Float)
3255         used).
3256
3257         * exp_imgv.adb: Use Universal_Real instead of Long_Long_Float when we
3258         need a high precision float type for the generated code (prevents
3259         gratuitous Vax_Float stuff when pragma Float_Representation (Vax_Float)
3260         used).
3261         (Expand_Width_Attribute): In configurable run-time, the attribute is not
3262         allowed on non-static enumeration subtypes. Force a load error to emit
3263         the correct diagnostic.
3264
3265 2005-11-14  Thomas Quinot  <quinot@adacore.com>
3266             Robert Dewar  <dewar@adacore.com>
3267             Ed Schonberg  <schonberg@adacore.com>
3268
3269         * exp_intr.adb (Expand_Unc_Deallocation): If GIGI needs an actual
3270         subtype to compute the size of the designated object at run-time,
3271         create such a subtype and store it in the Actual_Designated_Subtype
3272         attribute of the N_Free_Statement.
3273         Generate itype for classwide designated object in both cases of
3274         user-specified storage pool: specific and class-wide, not only in the
3275         specific case.
3276         Raise CE when trying to set a not null access type object to null.
3277         (Expand_Dispatching_Constructor_Call): Retrieve subprogram actual with
3278         an explicit loop, because freeze nodes make its position variable.
3279
3280         * sem_intr.adb (Check_Intrinsic_Call): Given warning for freeing not
3281         null object.
3282
3283 2005-11-14  Javier Miranda  <miranda@adacore.com>
3284
3285         * exp_strm.adb (Build_Stream_Attr_Profile, Build_Stream_Function,
3286         Build_Stream_Procedure): Add the null-excluding attribute to the first
3287         formal.
3288         This has no semantic meaning under Ada95 mode but it is a
3289         requirement under Ada05 mode.
3290
3291         * par-ch3.adb (P_Access_Definition): Addition of warning message if
3292         the null exclusion is used under Ada95 mode
3293         (P_Null_Exclusion): The qualifier has no semantic meaning in Ada 95.
3294         (P_Access_Definition): Remove assertion that forbids the use of
3295         the null-exclusion feature in Ada95.
3296
3297 2005-11-14  Robert Dewar  <dewar@adacore.com>
3298
3299         * impunit.adb: Exclude container helper units not intended for use by
3300         users.
3301
3302 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
3303
3304         * freeze.adb (Freeze_Entity): For an access formal that is an access
3305         to subprogram, freeze the anonymous subprogram type at the same time,
3306         to prevent later freezing in the wrong scope, such as the enclosing
3307         subprogram body.
3308         (Freeze_Entity): Freeze the equivalent_type of an access_to_protected_
3309         subprogram whenever available.
3310
3311 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
3312
3313         PR ada/23732
3314         * gnatvsn.ads (Library_Version): Bump to 4.1
3315
3316 2005-11-14  Robert Dewar  <dewar@adacore.com>
3317
3318         * g-debpoo.adb (Set_Valid): Use Integer_Address instead of
3319         Storage_Offset to avoid wrap around causing invalid results.
3320
3321 2005-11-14  Pascal Obry  <obry@adacore.com>
3322
3323         * gnatbind.adb (Is_Cross_Compiler): New function returning True for
3324         cross-compiler.
3325         (Scan_Bind_Arg): Fail with an error message if -M option is used
3326         on a native compiler.
3327
3328 2005-11-14  Robert Dewar  <dewar@adacore.com>
3329             Vincent Celier  <celier@adacore.com>
3330
3331         * gprep.adb: Implement -C switch to scan comments
3332
3333         * scng.adb: Scan comment symbol separately if Replace_In_Comments set
3334
3335         * scans.ads: Comment updates (including new use of Tok_Comment in
3336         preprocessing)
3337
3338         * opt.ads: Add documentation for flags that are used by gprmake,
3339         currently and in the next version of gprmake.
3340         (Verbosity_Level): New variable
3341         Add Replace_In_Comments switch
3342
3343         * vms_data.ads: Add VMS equivalent for new gnatmake switches -vl, -vm
3344         and -vm.
3345         Add /REPLACE_IN_COMMENTS for gnatprep -C switch
3346
3347 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
3348
3349         * g-regpat.adb (Fail): raise Expression_Error including the diagnostic
3350         message, friendlier.
3351
3352 2005-11-14  Robert Dewar  <dewar@adacore.com>
3353
3354         * g-spitbo.adb: (Hash): Rotate by 3 instead of 1
3355
3356 2005-11-14  Doug Rupp  <rupp@adacore.com>
3357
3358         * init.c [VMS]: Don't install __gnat_error_handler if DBG$TDBG defined.
3359
3360 2005-11-14  Robert Dewar  <dewar@adacore.com>
3361
3362         * interfac.ads: Change declarations of IEEE float types so that we no
3363         longer need a separate version of this package for VMS.
3364
3365 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
3366
3367         * lib-xref.adb (Generate_Definition, Generate_Reference): Treat the
3368         internal entity created for the declaration of a child subprogram body
3369         with no spec as coming from source, to generate proper cross-reference
3370         information.
3371
3372 2005-11-14  Vincent Celier  <celier@adacore.com>
3373
3374         * make.adb (Compile_Sources): Change verbose message to minimum
3375         verbosity level High for "is in an Ada library", "is a read-only
3376         library" and "is an internal library",
3377         (Create_Binder_Mapping_File): Path name of ALI file for library project
3378         must include the library directory, not the object directory.
3379         (Scan_Make_Arg): Make sure that Switch.M.Scan_Make_Switches is called
3380         for new switches -vl, -vm and -vh.
3381         (Verbose_Msg): Add new defaulted parameter Minimum_Verbosity
3382         (Check): Use minimum verbosity Medium for some Verbose_Msg calls
3383         (Compile_Sources): Do not attempt to compile if an ALI file is missing
3384         in a project that is externally built.
3385         (Compute_All_Imported_Projects): New procedure
3386         (Gnatmake): Check if importing libraries should be regenerated because
3387         at least an imported library is more recent.
3388         (Initialize): For each project compute the list of the projects it
3389         imports directly or indirectly.
3390         (Add_Library_Search_Dir): New procedure, used in place of
3391         Add_Lib_Search_Dir in procedure Scan_Make_Arg so that absolute paths are
3392         put in the search paths.
3393         (Add_Source_Search_Dir): New procedure, used in place of
3394         Add_Src_Search_Dir in procedure Scan_Make_Arg so that absolute paths are
3395         put in the search paths.
3396         (Mark_Directory): Resolve the absolute path the directory before marking
3397         it.
3398
3399         * switch-m.adb (Scan_Make_Switches): Replace "raise Bad_Switch;" with
3400         call to new procedure Bad_Switch. Call Scan_Pos with new parameter
3401         Switch. Do not handle any exception.
3402         (Scan_Make_Switches): Increment Ptr for new switches -vl, -vm and -vh
3403         so that the switch is recognized as valid.
3404         (Scan_Make_Switches): Implement new switches -vl, -vm and -vh.
3405
3406 2005-11-14  GNAT Script  <nobody@adacore.com>
3407
3408         * Make-lang.in: Makefile automatically updated
3409
3410 2005-11-14  Pascal Obry  <obry@adacore.com>
3411
3412         * mdll.adb (Build_Reloc_DLL): Fix parameter handling when a map file is
3413         used.
3414         (Ada_Build_Reloc_DLL): Fix parameter handling when a map file is used.
3415         In both cases the last argument was dropped.
3416
3417 2005-11-14  Eric Botcazou  <ebotcazou@adacore.com>
3418
3419         * namet.h: (Column_Numbe): New type.
3420         (Get_Column_Number): Define to sinput__get_column_number.
3421         (Instantiation): Define to sinput__instantiation.
3422         (Get_Column_Number): Declare.
3423         (Instantiation): Likewise.
3424
3425 2005-11-14  Robert Dewar  <dewar@adacore.com>
3426
3427         * par-ch10.adb (P_Compilation_Unit): Add defenses against junk unit
3428         syntax, which could cause compiler hangs.
3429
3430 2005-11-14  Vincent Celier  <celier@adacore.com>
3431
3432         * prj-ext.adb: Take into account new environment variable
3433         GPR_PROJECT_PATH. Warn if both GPR_PROJECT_PATH and ADA_PROJECT_PATH
3434         are defined.
3435         (Prj.Ext elaboration): For each directory in the ADA_PROJECT_PATH,
3436         normalize its path name, making it absolute and resolving symbolic
3437         links, and replace the original if resolved path is different.
3438
3439 2005-11-14  Vincent Celier  <celier@adacore.com>
3440
3441         * prj-part.adb (Create_Virtual_Extending_Project): Put virtual project
3442         into Prj.Tree.Tree_Private_Part.Projects_Htable for GPS.
3443
3444 2005-11-14  Emmanuel Briot  <briot@adacore.com>
3445
3446         * prj-pp.adb (Print): Do not output the with statement if the
3447         associated name is empty, which happens for virtual extending projects.
3448         (Print): Preserve the "extends all" attribute when printing the project.
3449
3450         * prj-tree.ads (String_Value_Of): Add comment about returned value for
3451         a virtual extending project.
3452
3453 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
3454
3455         * sem_aggr.adb (Resolve_Aggregate): An others choice is legal on the
3456         rhs of an assignment even if the type is unconstrained, when the
3457         context is non-expanding.
3458         In an inlined body, if the context type is private,
3459         resolve with its full view, which must be a composite type.
3460
3461 2005-11-14  Robert Dewar  <dewar@adacore.com>
3462             Ed Schonberg  <schonberg@adacore.com>
3463
3464         * sem_ch10.adb: Change name Is_Package to Is_Package_Or_Generic_Package
3465         Do not give obsolescent warning on with of subprogram (since we
3466         diagnose calls)
3467         (Analyze_With_Clause): Add test for obsolescent package
3468         (Install_Context_Clauses): If the unit is the body of a child unit, do
3469         not install twice the private declarations of the parents, to prevent
3470         circular lists of Use_Clauses in a parent.
3471         (Implicit_With_On_Parent): Do add duplicate with_clause on parent when
3472         compiling body of child unit.
3473         Use new class N_Subprogram_Instantiation
3474         (Expand_With_Clause): If this is a private with_clause for a child unit,
3475         appearing in the context of a package declaration, then the implicit
3476         with_clauses generated for parent units are private as well.
3477         (License_Check): Do not generate message if with'ed unit is internal
3478
3479 2005-11-14  Gary Dismukes  <dismukes@adacore.com>
3480             Ed Schonberg  <schonberg@adacore.com>
3481             Thomas Quinot  <quinot@adacore.com>
3482
3483         * sem_ch12.ads, sem_ch12.adb (Map_Entities): Exclude entities whose
3484         names are internal, because they will not have a corresponding partner
3485         in the actual package.
3486         (Analyze_Formal_Package): Move the setting of the formal package spec's
3487         Generic_Parent field so that it occurs prior to analyzing the package,
3488         to allow proper operation of Install_Parent_Private_Declarations.
3489         (Analyze_Package_Instantiation): Set the instantiated package entity's
3490         Package_Instantiation field.
3491         (Get_Package_Instantiation_Node): Move declaration to package spec.
3492         Retrieve the N_Package_Instantiation node when the Package_Instantiation
3493         field is present.
3494         (Check_Generic_Child_Unit): Within an inlined call, the only possible
3495         instantiation is Unchecked_Conversion, for which no parents are needed.
3496         (Inline_Instance_Body): Deinstall and record the use_clauses for all
3497         parent scopes of a scope being removed prior to inlining an instance
3498         body.
3499         (Analyze_Package_Instantiation): Do not perform front-end inlining when
3500         the current context is itself an instance within a non-instance child
3501         unit, to prevent scope stack errors.
3502         (Save_References): If the node is an aggregate that is an actual in a
3503         call, rewrite as a qualified expression to preserve some type
3504         information, to resolve possible ambiguities in the instance.
3505         (Instance_Parent_Unit): New global variable to record the ultimate
3506         parent unit associated with a generic child unit instance (associated
3507         with the existing Parent_Unit_Visible flag).
3508         (type Instance_Env): New component Instance_Parent_Unit for stacking
3509         parents recorded in the global Instance_Parent_Unit.
3510         (Init_Env): Save value of Instance_Parent_Unit in the Instance_Env
3511         stack.
3512         (Install_Spec): Save the parent unit entity in Instance_Parent_Unit when
3513         it's not a top-level unit, and only do this if Instance_Parent_Unit is
3514         not already set. Replace test of Is_Child_Unit with test of parent's
3515         scope against package Standard. Add comments and a ??? comment.
3516         (Remove_Parent): Revise condition for resetting Is_Immediately_Visible
3517         on a child instance parent to test that the parent equals
3518         Instance_Parent rather than simply checking that the unit is not a
3519         child unit.
3520         (Restore_Env): Restore value of Instance_Parent_Unit from Instance_Env.
3521         (Validate_Derived_Interface_Type_Instance): Verify that all ancestors of
3522         a formal interface are ancestors of the corresponding actual.
3523         (Validate_Formal_Interface_Type): Additional legality checks.
3524         (Analyze_Formal_Derived_Interface_Type): New procedure to handle formal
3525         interface types with ancestors.
3526         (Analyze_Formal_Package): If formal is a renaming, use renamed entity
3527         to diagnose attempts to use generic within its own declaration.
3528
3529 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
3530             Javier Miranda  <miranda@adacore.com>
3531
3532         * sem_ch3.ads, sem_ch3.adb (Build_Discriminal): Add link to original
3533         discriminant.
3534         (Build_Private_Derived_Type): The entity of the created full view of the
3535         derived type does not come from source. If after installing the private
3536         declarations of the parent scope the parent is still private, use its
3537         full view to construct the full declaration of the derived type.
3538         (Build_Derived_Record_Type): Relax the condition that controls the
3539         execution of the check that verifies that the partial view and
3540         the full view agree in the set of implemented interfaces. In
3541         addition, this test now only takes into account the progenitors.
3542         (Derive_Interface_Subprograms): No need to derive subprograms
3543         of ancestors that are interfaces.
3544         (Derive_Subprograms): Remove formal No_Predefined_Prims and the
3545         associated code.
3546         Change name Is_Package to Is_Package_Or_Generic_Package
3547         (Complete_Subprograms_Derivation): Handle the case in which the full
3548         view is a transitive derivation of the ancestor of the partial view.
3549         (Process_Full_View): Rename local subprogram Find_Interface_In_
3550         Descendant to Find_Ancestor_Interface to leave the code more clear.
3551         Remove wrong code that avoids the generation of an error message
3552         when the immediate ancestor of the partial view is an interface.
3553         In addition some minor reorganization of the code has been done to
3554         leave it more clear.
3555         (Analyze_Type_Declaration): If type has previous incomplete tagged
3556         partial view, inherit properly its primitive operations.
3557         (Collect_Interfaces): Make public, for analysis of formal
3558         interfaces.
3559         (Analyze_Interface_Declaration): New procedure for use for regular and
3560         formal interface declarations.
3561         (Build_Derived_Record_Type): Add support for private types to the code
3562         that checks if a tagged type implements abstract interfaces.
3563         (Check_Aliased_Component_Type): The test applies in the spec of an
3564         instance as well.
3565         (Access_Type_Declaration): Clean up declaration of malformed type
3566         declared as an access to its own classwide type, to prevent cascaded
3567         crash.
3568         (Collect_Interfaces): For private extensions and for derived task types
3569         and derived protected types, the parent may be an interface that must
3570         be included in the interface list.
3571         (Access_Definition): If the designated type is an interface that may
3572         contain tasks, create Master_Id for it before analyzing the expression
3573         of the declaration, which may be an allocator.
3574         (Record_Type_Declaration): Set properly the interface kind, for use
3575         in allocators, the creation of master id's for task interfaces, etc.
3576
3577 2005-11-14  Javier Miranda  <miranda@adacore.com>
3578             Ed Schonberg  <schonberg@adacore.com>
3579
3580         * sem_ch6.adb (Check_Conformance): The null-exclusion feature can be
3581         omitted in case of stream attribute subprograms.
3582         (Check_Inline_Pragma): Handle Inline and Inline_Always pragmas that
3583         appear immediately after a subprogram body, when there is no previous
3584         subprogram declaration.
3585         Change name Is_Package to Is_Package_Or_Generic_Package
3586         (Process_Formals): A non null qualifier on a non null named access
3587         type is not an error, and is a warning only if Redundant_Constructs
3588         are flagged.
3589
3590 2005-11-14  Gary Dismukes  <dismukes@adacore.com>
3591             Ed Schonberg  <schonberg@adacore.com>
3592
3593         * sem_ch7.adb (Install_Parent_Private_Declarations): New procedure
3594         nested within Analyze_Package_Specification to install the private
3595         declarations and use clauses within each of the parent units of a
3596         package instance of a generic child package.
3597         (Analyze_Package_Specification): When entering a private part of a
3598         package associated with a generic instance or formal package, the
3599         private declarations of the parent must be installed (by calling new
3600         procedure Install_Parent_Private_Declarations).
3601         Change name Is_Package to Is_Package_Or_Generic_Package
3602         (Preserve_Full_Attributes): For a synchronized type, the corresponding
3603         record is absent in a generic context, which does not indicate a
3604         compiler error.
3605
3606 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
3607
3608         * sem_ch8.adb (Analyze_Subprogram_Renaming): In a generic context, do
3609         not try to rewrite a renamed stream attribute, because the operations
3610         on the type may not have been generated.
3611         Handle properly a renaming_as_body generated for a stream operation
3612         whose default is abstract because the object type itself is abstract.
3613         (Find_Type): If the type is incomplete and appears as the prefix of a
3614         'Class reference, it is tagged, and its list of primitive operations
3615         must be initialized properly.
3616         (Chain_Use_Clauses): When chaining the use clauses that appear in the
3617         private declaration of a parent unit, prior to compiling the private
3618         part of a child unit, find on the scope stack the proper parent entity
3619         on which to link the use clause.
3620         (Note_Redundant_Use): Emit a warning when a redundant use clause is
3621         detected.
3622         (Analyze_Object_Renaming): An attribute reference is not a legal object
3623         if it is not a function call.
3624
3625 2005-11-14  Robert Dewar  <dewar@adacore.com>
3626             Ed Schonberg  <schonberg@adacore.com>
3627
3628         * sem_eval.adb: Implement d.f flag
3629         (Subtype_Statically_Match): A generic actual type has unknown
3630         discriminants when the corresponding actual has a similar partial view.
3631         If the routine is called to validate the signature of an inherited
3632         operation in a child instance, the generic actual matches the full view,
3633
3634 2005-11-14  Hristian Kirtchev  <kirtchev@adacore.com>
3635             Ed Schonberg  <schonberg@adacore.com>
3636             Robert Dewar  <dewar@adacore.com>
3637             Thomas Quinot  <quinot@adacore.com>
3638
3639         * sem_res.adb (Resolve_Call): Provide a better error message whenever
3640         a procedure call is used as a select statement trigger and is not an
3641         entry renaming or a primitive of a limited interface.
3642         (Valid_Conversion): If the operand has a single interpretation do not
3643         remove address operations.
3644         (Check_Infinite_Recursion): Skip freeze nodes when looking for a raise
3645         statement to inhibit warning.
3646         (Resolve_Unary_Op): Do not produce a warning when
3647         processing an expression of the form -(A mod B)
3648         Use Universal_Real instead of Long_Long_Float when we need a high
3649         precision float type for the generated code (prevents gratuitous
3650         Vax_Float stuff when pragma Float_Representation (Vax_Float) used)
3651         (Resolve_Concatenation_Arg): Improve error message when argument is an
3652         ambiguous call to a function that returns an array.
3653         (Make_Call_Into_Operator, Operand_Type_In_Scope): Do not check that
3654         there is an implicit operator in the given scope if we are within an
3655         instance: legality check has been performed on the generic.
3656         (Resolve_Unary_Op): Apply warnings checks on argument of Abs operator
3657         after resolving operand, to avoid false warnings on overloaded calls.
3658
3659 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
3660             Javier Miranda  <miranda@adacore.com>
3661
3662         PR ada/15604
3663
3664         * sem_type.adb (Covers): In an inlined body, a composite type matches
3665         a private type whose full view is a composite type.
3666         (Interface_Present_In_Ancestor): Protect the frontend against
3667         previously detected errors to ensure that its compilation
3668         with assertions enabled gives the same output that its
3669         compilation without assertions.
3670         (Interface_Present_In_Ancestor): Add support for private types.
3671         Change name In_Actual to In_Generic_Actual (clean up)
3672         (Disambiguate): New predicate In_Actual, to recognize expressions that
3673         appear in the renaming declaration generated for generic actuals, and
3674         which must be resolved in the outer context.
3675
3676 2005-11-14  Robert Dewar  <dewar@adacore.com>
3677             Thomas Quinot  <quinot@adacore.com>
3678             Hristian Kirtchev  <kirtchev@adacore.com>
3679             Ed Schonberg  <schonberg@adacore.com>
3680
3681         * sem_util.ads, sem_util.adb: Change name Is_Package to
3682         Is_Package_Or_Generic_Package.
3683         (Check_Obsolescent): New procedure.
3684         (Set_Is_Public): Remove obsolete junk test.
3685         (Set_Public_Status): Do not set Is_Public on an object whose declaration
3686         occurs within a handled_sequence_of_statemets.
3687         (Is_Controlling_Limited_Procedure): Factor some of the logic, account
3688         for a parameterless procedure.
3689         (Enter_Name): Recognize renaming declarations created for private
3690         component of a protected type within protected operations, so that
3691         the source name of the component can be used in the debugger.
3692
3693 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
3694             Robert Dewar  <dewar@adacore.com>
3695
3696         * sem_warn.ads, sem_warn.adb (Publicly_Referenceable): Generic formals
3697         of a generic subprogram are not visible outside the body.
3698         (Set_Warning_Switch): New procedure (code to set warning mode moved
3699         here from Switch.C so that it can be shared by pragma processing.
3700         (Check_References): Special case warning for non-modified non-imported
3701         volatile objects.
3702         * par-prag.adb: Modify processing of pragma Warnings to accomodate new
3703         form with a string literal argument
3704
3705 2005-11-14  Javier Miranda  <miranda@adacore.com>
3706
3707         * s-finroo.ads, s-finroo.adb (Read): Addition of "not null" to the
3708         anonymous access.
3709         (Write): Addition of "not null" to the anonymous access.
3710         (Read): Addition of "not null" to the anonymous access.
3711         (Write): Addition of "not null" to the anonymous access.
3712
3713         * s-strxdr.adb, s-stratt.ads, s-stratt.adb (I_AD, I_AS, I_B, I_C, I_F,
3714         I_I, I_LF, I_LI, I_LLF, I_LLI, I_LLU, I_LU, I_SF, I_SI, I_SSI, I_SSU,
3715         I_SU, I_U, I_WC): Addition of "not null" to the anonymous access.
3716         (W_AD, W_AS, W_B, W_C, W_F, W_I, W_LF, W_LI, W_LLF, W_LLI, W_LLU,
3717         W_LU, W_SF, W_SI, W_SSI, W_SSU, W_SU, W_U, W_WC): Addition of
3718         "not null" to the anonymous access.
3719
3720 2005-11-14  Robert Dewar  <dewar@adacore.com>
3721
3722         * s-stoele.adb: Fix code for Address mod Storage_Offset for negative
3723         offset values
3724
3725 2005-11-14  Vincent Celier  <celier@adacore.com>
3726
3727         * switch.adb (Bad_Switch): New procedure
3728         (Scan_Nat, Scan_Pos): Directly call Osint.Fail with the appropriate
3729         message when in error.
3730
3731         * switch.ads (Bad_Switch, Bad_Switch_Value, Missing_Switch_Value,
3732         Too_Many_Output_Files): Remove declarations, no longer used.
3733         (Scan_Nat): New parameter Switch
3734         (Scan_Pos): Ditto
3735         (Bad_Switch): New procedure
3736
3737         * switch-b.adb (Scan_Binder_Switches): Replace "raise Bad_Switch;"
3738         with call to new procedure Bad_Switch. Call Scan_Pos and Scan_Natwith
3739         new parameter Switch. Replace "raise Too_Many_Output_Files;" with call
3740         to Osint.Fail. Do not handle any exception.
3741
3742 2005-11-14  Vincent Celier  <celier@adacore.com>
3743
3744         * tempdir.adb (Tempdir): Do not use environment variable TMPDIR if it
3745         designates a non existent directory.
3746
3747 2005-11-14  Robert Dewar  <dewar@adacore.com>
3748
3749         * xgnatugn.adb: Replace invalid membership test by 'Valid
3750
3751 2005-11-14  Vincent Celier  <celier@adacore.com>
3752
3753         * makegpr.adb (Gprmake): Do not attempt to build the global archive if
3754         there is no object directory.
3755
3756 2005-11-14  Robert Dewar  <dewar@adacore.com>
3757
3758         * usage.adb: Minor adjustment to output format, use nn instead of nnn
3759         (so that -gnateInnn does not run into next column)
3760
3761 2005-11-14  Ed Falis  <falis@adacore.com>
3762
3763         * s-bitops.adb (Bits_Array): corrected comment: "unconstrained" =>
3764         "constrained"
3765
3766 2005-11-14  Cyrille Comar  <comar@adacore.com>
3767
3768         * s-chepoo.ads: Add comments on Dereference.
3769         Remove unnecessary inherited abstract primitives.
3770         Cosmetic cleanup.
3771
3772 2005-11-14  Robert Dewar  <dewar@adacore.com>
3773
3774         * sem_cat.ads (Validate_Access_Type_Declaration): Remove declaration
3775         node parameter, not needed, since it is available as Declaration_Node.
3776
3777 2005-11-14  Geert Bosch  <bosch@adacore.com>
3778
3779         * s-exnllf.adb (Exn_LLF): Fix comment to be more precise and
3780         grammatically correct.
3781
3782 2005-11-14  Vincent Celier  <celier@adacore.com>
3783
3784         * s-fileio.ads: Correct spelling error in comment
3785
3786 2005-11-14  Cyrille Comar  <comar@adacore.com>
3787             Robert Dewar  <dewar@adacore.com>
3788             Vincent Celier  <celier@adacore.com>
3789             Ben Brosgol  <brosgol@adacore.com>
3790             Jose Ruiz  <ruiz@adacore.com>
3791             Pascal Obry  <obry@adacore.com>
3792
3793         * gnat_ugn.texi: 
3794         Document that -fstack-check is needed for strict compliance with the
3795         Ada 95 Reference Manual.
3796         Correct reference to VAX systems to meet HP guidelines
3797         Add documentation for new gnatmake switches -vl, -vm and -vh
3798         Replace DEC Ada by HP Ada
3799         Replace DIGITAL by HP
3800         Remove empty section on tools in compatibility section
3801         Clarify the Windows convention semantics.
3802         Document the Win32 calling convention.
3803         The Stdcall, Win32 and DLL convention are synonyms.
3804         Add a note in -gnatR description about zero size record components
3805         Note on new >= and <= warnings for -gnatwc
3806         Document that equal sign after -gnatm is optional.
3807         Note that strip is working fine on DLL built with a Library
3808         Project. The restriction apply only to DLL built with gnatdll.
3809         Update section about the way to debug a DLL.
3810         Update information about the DLL convention.
3811         Document -C switch for gnatprep
3812         Document new attribute Library_ALI_Dir
3813         Update elaboration doc to include implicit Elaborate pragmas now
3814         generated for subprogram instantiations.
3815         Document limitation on executable names that include spaces for --GCC,
3816         --GNATBIND, and --GNATLINK switches.
3817         Document that -w causes -gnatws to be added at start of gcc switches
3818
3819         * gnat_rm.texi: Document that -mieee is needed for generating infinite
3820         and NaN values in case of overflow on machines that are not fully
3821         compliant with the IEEE floating-point standard.
3822         Create a section describing the set of compiler options needed for
3823         strict compliance with the Ada 95 Reference Manual.
3824         Add documentation for pragma Obsolescent applied to a package
3825         Clarify potential issues of mixed language programs related to the
3826         I/O buffering enabling in the elaboration of the GNAT runtime.
3827         Add extra documentation for pragma Restrictions (No_Elaboration_Code)
3828         This documentation only patch adds extra documentsion for pragma
3829         Restrictions (No_Elaboration_Code), explaining why it is not possible
3830         to document this restriction in terms of allowed source constructs.
3831         Document string literal form of pragma Warnings
3832         Document new attribute Library_ALI_Dir
3833         Add documentation on stable attributes in project files that was missing
3834
3835         * gnat-style.texi: Indicate that paragraphs within a single comment
3836         should be separated by empty comment lines
3837
3838         * ug_words: Added replacements for -gnat95 and -gnat05 (/95 and
3839         /05 respectively)
3840
3841         * bindusg.adb: Minor cleanup, put -m before -M for consistency
3842
3843 2005-11-14  Robert Dewar  <dewar@adacore.com>
3844
3845         * a-secain.adb, a-slcain.adb, a-shcain.adb, a-chtgke.ads, a-chtgke.adb,
3846         a-stwiha.adb, a-strhas.adb, a-chzla1.ads, a-chzla9.ads, a-stzbou.adb,
3847         a-stzbou.ads, a-stzfix.adb, a-stzhas.adb, a-stzmap.adb, a-stzmap.ads,
3848         a-stzsea.adb, a-stzsea.ads, a-stzsup.adb, a-stzsup.ads, a-stzunb.adb,
3849         a-stzunb.ads, a-szuzha.adb, a-szuzha.ads, a-szuzti.adb, a-szuzti.ads,
3850         a-ztcoau.adb, a-ztcoau.ads, a-ztcoio.adb, a-ztcstr.adb, a-ztcstr.ads,
3851         a-ztdeau.adb, a-ztdeau.ads, a-ztdeio.adb, a-ztdeio.ads, a-ztedit.adb,
3852         a-ztedit.ads, a-ztenau.ads, a-ztenio.adb, a-ztenio.ads, a-ztexio.adb,
3853         a-ztexio.ads, a-ztfiio.adb, a-ztfiio.ads, a-ztflau.adb, a-ztflau.ads,
3854         a-ztflio.adb, a-ztflio.ads, a-ztgeau.adb, a-ztgeau.ads, a-ztinau.adb,
3855         a-ztinau.ads, a-ztinio.adb, a-ztmoau.ads, a-ztmoio.adb, a-ztmoio.ads,
3856         a-zttest.adb, g-enblsp-vms-alpha.adb, g-enblsp-vms-alpha.adb,
3857         g-enblsp-vms-ia64.adb, g-enblsp-vms-ia64.adb, system-linux-hppa.ads,
3858         a-chacon.adb, a-chacon.ads, a-wichun.adb, a-wichun.ads, a-zchuni.adb,
3859         a-zchuni.ads, g-trasym-vms-alpha.adb, g-trasym-vms-ia64.adb,
3860         system-hpux-ia64.ads, g-soccon-unixware.ads, g-soliop-unixware.ads,
3861         g-soccon-interix.ads, g-soliop-solaris.ads, g-eacodu-vms.adb,
3862         g-expect-vms.adb, g-socthi-vms.adb, g-soliop-mingw.ads,
3863         a-intnam-unixware.ads, a-intnam-lynxos.ads, a-intnam-tru64.ads,
3864         a-intnam-aix.ads, a-intnam-linux.ads, a-intnam-linux.ads,
3865         a-intnam-dummy.ads, a-numaux-libc-x86.ads, a-intnam-interix.ads,
3866         a-intnam-solaris.ads, a-calend-vms.adb, a-calend-vms.ads,
3867         a-intnam-vms.ads, a-calend-mingw.adb, a-intnam-mingw.ads,
3868         a-intnam-vxworks.ads, a-numaux-vxworks.ads, system-unixware.ads,
3869         system-linux-ia64.ads, a-intnam-freebsd.ads, system-freebsd-x86.ads,
3870         system-lynxos-ppc.ads, system-linux-x86_64.ads, a-stunha.adb,
3871         a-cgaaso.ads, a-cgaaso.adb, a-chtgop.adb, a-cgcaso.adb, a-cgarso.adb,
3872         a-cohata.ads, a-crbtgk.adb, a-crbltr.ads, a-coprnu.adb, a-rbtgso.adb,
3873         a-intnam-darwin.ads, system-darwin-ppc.ads, gprmake.adb, makegpr.ads,
3874         system-tru64.ads, system-aix.ads, system-solaris-x86.ads,
3875         system-irix-o32.ads, s-interr-sigaction.adb, system-irix-n32.ads,
3876         s-parame-mingw.adb, system-hpux.ads, s-traceb-hpux.adb,
3877         system-linux-x86.ads, s-inmaop-dummy.adb, system-os2.ads,
3878         system-interix.ads, system-solaris-sparc.ads,
3879         system-solaris-sparcv9.ads, s-inmaop-vms.adb,
3880         s-mastop-vms.adb, expander.adb, expander.ads, s-gloloc-mingw.adb,
3881         system-mingw.ads, system-vms-zcx.ads, s-osinte-fsu.adb,
3882         s-traceb-mastop.adb, a-exextr.adb, a-exstat.adb, a-filico.ads,
3883         a-finali.ads, a-interr.ads, a-intsig.adb, a-intsig.ads,
3884         a-except.ads, a-numaux-x86.ads, a-astaco.adb, a-calend.adb,
3885         a-calend.ads, a-chahan.adb, a-chahan.ads, a-chlat9.ads,
3886         a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
3887         a-comlin.adb, a-comlin.ads, a-cwila1.ads, a-cwila9.ads,
3888         a-elchha.adb, a-decima.adb, a-decima.ads, a-diocst.ads,
3889         a-direio.adb, a-direio.ads, a-excach.adb, a-excach.adb,
3890         a-exctra.ads, ali-util.adb, a-ngcefu.adb, a-ngcoty.adb,
3891         a-ngcoty.ads, a-nudira.adb, a-nudira.ads, a-nuflra.adb,
3892         a-numaux.ads, a-reatim.ads, a-sequio.adb, a-sequio.ads,
3893         a-siocst.ads, a-ssicst.ads, a-stmaco.ads, a-storio.adb,
3894         a-strbou.adb, a-strbou.ads, a-stream.ads, a-strfix.adb,
3895         a-strmap.adb, a-strmap.ads, a-strsea.adb, a-strsea.ads,
3896         a-strsup.adb, a-strsup.ads, a-strunb.adb, a-strunb.ads,
3897         a-stwibo.adb, a-stwibo.ads, a-stwifi.adb, a-stwima.adb,
3898         a-stwima.ads, a-stwise.adb, a-stwise.ads, a-stwisu.adb,
3899         a-stwisu.ads, a-stwiun.adb, a-stwiun.ads, a-suteio.adb,
3900         a-suteio.ads, a-swmwco.ads, a-swuwti.adb, a-swuwti.ads,
3901         a-sytaco.adb, a-sytaco.ads, a-tasatt.adb, a-taside.adb,
3902         a-taside.ads, a-teioed.adb, a-textio.adb, a-textio.ads,
3903         a-ticoau.adb, a-ticoau.ads, a-ticoio.adb, a-tideau.adb,
3904         a-tideio.adb, a-tienau.adb, a-tienio.adb, a-tifiio.adb,
3905         a-tiflio.adb, a-tigeau.adb, a-tigeau.ads, a-tiinau.adb,
3906         a-tiinio.adb, a-timoau.adb, a-timoio.adb, a-timoio.ads,
3907         a-tiocst.ads, a-titest.adb, atree.adb, a-witeio.adb,
3908         a-witeio.ads, a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb,
3909         a-wtcstr.ads, a-wtdeau.adb, a-wtdeio.adb, a-wtedit.adb,
3910         a-wtedit.ads, a-wtenau.adb, a-wtenio.adb, a-wtfiio.adb,
3911         a-wtflio.adb, a-wtgeau.adb, a-wtinau.adb, a-wtinio.adb,
3912         a-wtmoau.adb, a-wtmoio.adb, a-wttest.adb, back_end.adb,
3913         bindgen.adb, butil.adb, butil.ads, checks.ads, cio.c, comperr.adb,
3914         csets.ads, cstand.adb, debug.ads, elists.ads, errno.c, errout.adb,
3915         errout.ads, erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
3916         errutil.ads, err_vars.ads, eval_fat.adb, exp_ch11.adb, exp_ch11.ads,
3917         exp_ch2.adb, exp_ch7.ads, exp_imgv.ads, exp_pakd.adb, exp_prag.adb,
3918         exp_prag.ads, exp_tss.adb, exp_tss.ads, exp_vfpt.ads, fe.h, fmap.adb,
3919         freeze.ads, frontend.adb, frontend.ads, g-arrspl.adb, g-arrspl.ads,
3920         g-awk.adb, g-awk.ads, g-boumai.ads, g-calend.adb, g-calend.ads,
3921         g-catiio.adb, g-comlin.adb, g-comlin.ads, g-comlin.ads, g-comlin.ads,
3922         g-comver.adb, g-crc32.adb, g-crc32.ads, g-ctrl_c.ads, g-curexc.ads,
3923         g-debpoo.ads, g-debuti.adb, g-diopit.adb, g-diopit.ads, g-dirope.adb,
3924         g-dirope.ads, g-dyntab.adb, g-dyntab.ads, g-excact.adb, g-excact.ads,
3925         g-except.ads, g-exctra.adb, g-exctra.ads, g-expect.ads, g-flocon.ads,
3926         g-hesorg.ads, g-io.adb, g-locfil.ads, g-md5.adb, g-md5.ads, g-md5.ads,
3927         g-moreex.adb, g-signal.ads, g-signal.adb, gnatbind.ads, gnatchop.adb,
3928         gnatcmd.adb, gnatfind.adb, gnatlbr.adb, gnatmake.ads, gnatmem.adb,
3929         gnatprep.adb, gnatprep.ads, gnatsym.adb, gnatxref.adb, g-os_lib.adb,
3930         g-os_lib.ads, g-pehage.adb, g-pehage.ads, gprep.ads, g-regexp.adb,
3931         g-regexp.ads, g-regist.adb, g-regist.ads, g-regpat.ads, g-semaph.adb,
3932         g-socthi.adb, g-soliop.ads, g-spipat.adb, g-spipat.ads, g-sptabo.ads,
3933         g-sptain.ads, g-sptavs.ads, g-string.ads, g-tasloc.adb, g-tasloc.ads,
3934         g-trasym.adb, g-trasym.ads, i-fortra.adb, i-fortra.ads, inline.adb,
3935         layout.adb, live.adb, make.ads, makeutl.ads, makeutl.adb, mdll-fil.adb,
3936         mdll-fil.ads, mdll-utl.ads, memroot.ads, memtrack.adb, mlib.ads,
3937         mlib-fil.adb, mlib-fil.ads, mlib-prj.ads, mlib-utl.adb, mlib-utl.ads,
3938         nlists.adb, nlists.ads, osint.adb, osint.ads, osint-c.adb, osint-l.adb,
3939         osint-l.ads, osint-m.ads, output.adb, par.adb, par.adb, par.ads,
3940         par-ch11.adb, par-ch12.adb, par-ch2.adb, par-ch4.adb, par-ch5.adb,
3941         par-ch6.adb, par-ch9.adb, par-endh.adb, par-labl.adb, par-load.adb,
3942         par-tchk.adb, prep.adb, prepcomp.adb, prepcomp.ads, prj-attr.ads,
3943         prj-com.ads, prj-dect.adb, prj-dect.ads, prj-env.ads, prj-err.ads,
3944         prj-ext.ads, prj-makr.adb, prj-makr.ads, prj-nmsc.ads, prj-pars.adb,
3945         prj-pars.ads, prj-part.ads, prj-pp.ads, prj-proc.ads, prj-strt.adb,
3946         prj-strt.ads, prj-tree.adb, prj-util.adb, prj-util.ads, rtsfind.adb,
3947         sem.adb, sem.ads, sem_case.adb, sem_case.ads, sem_ch11.adb,
3948         sem_ch4.adb, sem_ch6.ads, sem_ch7.ads, sem_dist.ads, sem_elab.ads,
3949         sem_elim.ads, sem_eval.ads, sem_intr.ads, sem_maps.adb, sem_maps.ads,
3950         sem_maps.ads, sem_res.ads, sem_type.ads, sfn_scan.adb, sfn_scan.ads,
3951         s-imgwch.ads, s-imgwiu.adb, s-imgwiu.ads, s-inmaop.ads, sinput.adb,
3952         sinput.ads, s-pack03.adb, s-pack03.ads, s-pack05.adb, s-pack05.ads,
3953         s-pack06.adb, s-pack06.ads, s-pack07.adb, s-pack07.ads, s-pack09.adb,
3954         s-pack09.ads, s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads,
3955         s-pack12.adb, s-pack12.ads, s-pack13.adb, s-pack13.ads, s-pack14.adb,
3956         s-pack14.ads, s-pack15.adb, s-pack15.ads, s-pack17.adb, s-pack17.ads,
3957         s-pack18.adb, s-pack18.ads, s-pack19.adb, s-pack19.ads, s-pack20.adb,
3958         s-pack20.ads, s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads,
3959         s-pack23.adb, s-pack23.ads, s-pack24.adb, s-pack24.ads, s-pack25.adb,
3960         s-pack25.ads, s-pack26.adb, s-pack26.ads, s-pack27.adb, s-pack27.ads,
3961         s-pack28.adb, s-pack28.ads, s-pack29.adb, s-pack29.ads, s-pack30.adb,
3962         s-pack30.ads, s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads,
3963         s-pack34.adb, s-pack34.ads, s-pack35.adb, s-pack35.ads, s-pack36.adb,
3964         s-pack36.ads, s-pack37.adb, s-pack37.ads, s-pack38.adb, s-pack38.ads,
3965         s-pack39.adb, s-pack39.ads, s-pack40.adb, s-pack40.ads, s-pack41.adb,
3966         s-pack41.ads, s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads,
3967         s-pack44.adb, s-pack44.ads, s-pack45.adb, s-pack45.ads, s-pack46.adb,
3968         s-pack46.ads, s-pack47.adb, s-pack47.ads, s-pack48.adb, s-pack48.ads,
3969         s-pack49.adb, s-pack49.ads, s-pack50.adb, s-pack50.ads, s-pack51.adb,
3970         s-pack51.ads, s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads,
3971         s-pack54.adb, s-pack54.ads, s-pack55.adb, s-pack55.ads, s-pack56.adb,
3972         s-pack56.ads, s-pack57.adb, s-pack57.ads, s-pack58.adb, s-pack58.ads,
3973         s-pack59.adb, s-pack59.ads, s-pack60.adb, s-pack60.adb, s-pack60.ads,
3974         s-pack61.adb, s-pack61.ads, s-pack62.adb, s-pack62.ads, s-pack63.adb,
3975         s-pack63.ads, s-parint.adb, s-parint.adb, s-parint.ads, sprint.ads,
3976         s-purexc.ads, s-restri.ads, s-restri.adb, s-scaval.adb, s-scaval.ads,
3977         s-secsta.adb, s-secsta.ads, s-sequio.adb, s-sequio.ads, stand.ads,
3978         s-tasuti.adb, s-traceb.adb, s-traceb.ads, stringt.adb, stringt.ads,
3979         styleg.ads, s-valboo.adb, s-valboo.ads, s-valcha.adb, s-valcha.ads,
3980         s-valdec.adb, s-valdec.ads, s-valint.adb, s-valint.ads, s-valint.ads,
3981         s-vallld.adb, s-vallld.ads, s-vallli.adb, s-vallli.ads, s-valllu.adb,
3982         s-valllu.ads, s-valrea.adb, s-valrea.ads, s-valuns.adb, s-valuns.ads,
3983         s-valuti.adb, s-valuti.ads, s-valwch.ads, s-veboop.adb, s-veboop.ads,
3984         s-vercon.adb, s-vercon.ads, s-wchcnv.adb, s-wchcnv.ads, s-wchcon.ads,
3985         s-wchjis.adb, s-wchjis.ads, s-wchstw.adb, s-wchstw.adb, s-wchstw.ads,
3986         s-wchwts.adb, s-wchwts.ads, s-widboo.adb, s-widboo.ads, s-widcha.adb,
3987         s-widcha.ads, s-widenu.adb, s-widenu.ads, s-widlli.adb, s-widlli.ads,
3988         s-widllu.adb, s-widllu.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb,
3989         s-wwdcha.ads, s-wwdenu.adb, s-wwdenu.ads, symbols.adb, symbols.ads,
3990         table.ads, targparm.adb, targparm.ads, tb-alvms.c, tb-alvxw.c,
3991         tbuild.adb, tree_io.ads, treepr.adb, treeprs.adt, ttypef.ads,
3992         ttypes.ads, types.adb, uintp.adb, uintp.ads, uname.ads, urealp.ads,
3993         usage.ads, validsw.ads, vxaddr2line.adb, widechar.adb, widechar.ads,
3994         xeinfo.adb, xnmake.adb, xref_lib.ads, xr_tabls.adb, xr_tabls.ads,
3995         xsinfo.adb, xtreeprs.adb, xsnames.adb, vms_conv.ads, vms_conv.adb,
3996         a-dirval.ads, a-dirval.adb, a-dirval-mingw.adb, a-direct.ads,
3997         a-direct.adb, indepsw.ads, prj-attr-pm.ads, system-linux-ppc.ads,
3998         a-numaux-darwin.ads, a-numaux-darwin.adb,
3999         a-swuwha.ads, a-stunha.ads: Minor reformatting
4000
4001 2005-11-14  Robert Dewar  <dewar@adacore.com>
4002
4003         PR ada/18434
4004         * osint-m.adb: Add pragma Elaborate_All for Osint
4005
4006 2005-11-10  Eric Botcazou  <ebotcazou@adacore.com>
4007
4008         PR ada/23995
4009         * trans.c (call_to_gnu): Restore statement lost in translation.
4010
4011 2005-11-08  Eric Botcazou  <ebotcazou@adacore.com>
4012
4013         * init.c: Use the Linux-specific section for the IA-64/Linux target.
4014         (__gnat_adjust_context_for_raise): Add conditional code so that the
4015         IA-64 is also supported.
4016
4017 2005-11-03  James E Wilson  <wilson@specifix.com>
4018
4019         PR ada/23427
4020         * trans.c (gnat_to_gnu): Use TYPE_SIZE_UNIT not TYPE_SIZE in
4021         TREE_OVERFLOW check.
4022
4023 2005-09-21  Olivier Hainque  <hainque@adacore.com>
4024
4025         PR ada/22418
4026         * decl.c (maybe_pad_type): Use proper bitsizetype for XVZ objects,
4027         as we create them to store a size in bits.
4028
4029 2005-10-21  Eric Botcazou  <ebotcazou@adacore.com>
4030
4031         PR ada/21937
4032         PR ada/22328
4033         PR ada/22381
4034         PR ada/22383
4035         PR ada/22419
4036         PR ada/22420
4037         * utils2.c (build_return_expr): New helper function.
4038         * gigi.h (build_return_expr): Declare it.
4039         * trans.c (Subprogram_Body_to_gnu): Use build_return_expr instead
4040         of manually building the RETURN_EXPR tree.
4041         (call_to_gnu): Pass MODIFY_EXPR through build_binary_op.
4042         (gnat_to_gnu) <N_Return_Statement>: Pass MODIFY_EXPR through
4043         build_binary_op for the "target pointer" case.  Use build_return_expr
4044         instead of manually building the RETURN_EXPR tree.
4045
4046 2005-09-16  Laurent GUERBY  <laurent@guerby.net>
4047
4048         PR ada/23788
4049         * s-tpinop.ads: Make this unit Preelaborate.
4050
4051 2005-09-16  Andreas Jaeger  <aj@suse.de>
4052
4053         * socket.c: Add string.h for memcpy.
4054
4055 2005-09-05  Arnaud Charlet  <charlet@adacore.com>
4056
4057         * dec-io.ads, dec-io.adb: Removed, no longer used.
4058
4059 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
4060
4061         * a-calend-mingw.adb: Add call to OS_Primitives.Initialize;
4062
4063         * s-taprop-mingw.adb, s-taprop-vms.adb, s-taprop-solaris.adb,
4064         s-taprop-os2.adb, s-taprop-irix-athread.adb, s-taprop-linux.adb,
4065         s-taprop-hpux-dce.adb, s-taprop-irix.adb, s-taprop-tru64.adb,
4066         s-taprop-lynxos.adb: Move with clauses outside Warnings Off now that
4067         dependent units are Preelaborate.
4068         (Initialize): Call Interrupt_Managemeent.Initialize and
4069         OS_Primitives.Initialize to ensure proper initialization of this unit.
4070         Remove use of System.Soft_Links
4071         Make this unit Preelaborate.
4072
4073         * s-stache.ads, s-taspri-vxworks.ads, s-taspri-mingw.ads,
4074         s-taspri-vms.ads, s-tasinf-solaris.ads, s-taspri-os2.ads,
4075         s-taspri-lynxos.ads, s-taspri-hpux-dce.ads, s-taspri-tru64.ads,
4076         s-tasinf-tru64.ads, s-tasinf-irix.ads, s-tasinf-irix-athread.ads,
4077         s-proinf-irix-athread.adb, s-proinf-irix-athread.ads,
4078         s-tratas.ads, s-tasinf.ads: Minor reformatting.
4079         Add pragma Preelaborate, since these packages are suitable for this
4080         categorization.
4081         Update comments.
4082
4083         * s-traent-vms.ads, s-intman-dummy.adb,
4084         s-taprop-dummy.adb: Make this unit Preelaborate.
4085
4086         * s-osprim-vxworks.adb, s-osprim-vms.adb, s-osprim-vms.ads,
4087         s-osprim-mingw.adb, s-intman-vxworks.ads, s-intman-vxworks.adb,
4088         s-intman-vms.adb, s-intman-mingw.adb, s-intman-vms.ads,
4089         s-osprim-unix.adb, s-osprim-os2.adb, s-osprim-solaris.adb,
4090         s-intman-solaris.adb, s-intman-irix-athread.adb,
4091         s-intman-irix.adb: Mark this unit Preelaborate.
4092         (Initialize): New procedure.
4093         Update comments.
4094
4095         * s-taspri-linux.ads: Removed.
4096
4097         * s-tpopsp-solaris.adb (Initialize): Create the key in this procedure,
4098         as done by other implementations (e.g. posix).
4099
4100         * s-taprop.ads (Timed_Delay): Update spec since the caller now is
4101         responsible for deferring abort.
4102         Mark this unit Preelaborate.
4103
4104         * s-taprob.adb, s-tarest.adb: Call System.Tasking.Initialize to ensure
4105         proper initialization of the tasking run-time.
4106
4107         * s-tasdeb.ads: Mark this unit Preelaborate.
4108         (Known_Tasks): Add explicit default value to avoid elaboration code.
4109
4110         * s-inmaop-vms.adb (Elaboration code): Add call to
4111         Interrupt_Management.Initialize since the elaboration code depends on
4112         proper initialization of this package.
4113
4114         * s-intman.ads, s-inmaop-posix.adb, s-intman-posix.adb,
4115         s-osprim.ads, s-taprop-posix.adb, s-taspri-posix.ads,
4116         s-osprim-posix.adb: Make this unit Preelaborate.
4117
4118         * a-calend.adb: Add call to OS_Primitives.Initialize
4119
4120         * a-elchha.adb: Update use of Except.Id.Full_Name.
4121         Minor reformatting.
4122         Remove use of Ada.Exceptions.Traceback when possible, cleaner.
4123
4124         * a-dynpri.adb, a-sytaco.adb, a-sytaco.ads:
4125         Move with clauses outside Warnings Off now that dependent units are
4126         Preelaborate.
4127         Use raise xxx with "..."; Ada 2005 form.
4128
4129         * a-taside.ads, a-taside.adb:
4130         Remove some dependencies, to make it easier to make this unit truly
4131         Preelaborate.
4132         Rewrite some code to be conformant with Preelaborate rules.
4133
4134         * g-os_lib.adb: Remove non-preelaborate code so that this unit can be
4135         marked Preelaborate in the future.
4136
4137         * s-proinf.ads, g-string.ads, s-auxdec.ads, s-auxdec-vms_64.ads: Make
4138         these units Preelaborate.
4139
4140         * s-exctab.adb: Update use of Except.Id.Full_Name.
4141
4142         * s-soflin.ads, s-soflin.adb: Mark this unit Preelaborate_05.
4143         (Set_Exc_Stack_Addr_Soft, Get_Exc_Stack_Addr_NT, Set_Exc_Stack_Addr_NT,
4144         Set_Exc_Stack_Addr): Removed, no longer used.
4145         Remove reference to *Machine_State_Addr*, no longer needed.
4146
4147         * s-stalib.ads: Mark this unit as Preelaborate[_05].
4148         (Exception_Data): Full_Name is now a System.Address so that this unit
4149         can be made Preelaborate.
4150         Clean up/simplify code thanks to Full_Name being a System.Address.
4151         Remove obsolete pragma Suppress (All_Checks), no longer needed.
4152
4153         * s-taskin.ads, s-taskin.adb:
4154         Move with clauses outside Warnings Off now that dependent units are
4155         Preelaborate.
4156         Make this unit Preelaborate.
4157         (Initialize): New proceduure, replace elaboration code and makes the
4158         set up of the tasking run-time cleaner.
4159         (Detect_Blocking): Now a function instead of a deferred boolean, to
4160         obey Preelaborate rules.
4161
4162         * s-tassta.adb (Finalize_Global_Tasks): Remove Get/Set_Exc_Stack_Addr
4163         soft links, no longer used.
4164
4165         * s-traces.ads, s-traent.ads: Add pragma Preelaborate, since these
4166         packages are suitable for this categorization.
4167
4168         * s-solita.adb: Replace use of Ada.Exception by raise xxx with "..."
4169         since we compile run-time sources in Ada 2005 mode.
4170         (Timed_Delay_T): Call Abort_Defer/Undefer around Timed_Delay, to
4171         avoid having s-taprop*.adb depend on s-soflin and to avoid code
4172         duplication.
4173         Remove reference to *Machine_State_Addr*, no longer needed.
4174
4175 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
4176
4177         * s-mastop-tru64.adb, s-mastop-irix.adb, s-mastop-vms.adb
4178         (Enter_Handler, Set_Signal_Machine_State): Removed, no longer used.
4179         Remove reference to System.Exceptions.
4180
4181         * s-mastop-x86.adb: Removed, no longer used.
4182
4183         * s-traceb-mastop.adb: Adjust calls to Pop_Frame.
4184
4185         * a-excach.adb: Minor reformatting.
4186
4187         * a-except.ads, a-except.adb: Remove global Warnings (Off) pragma, and
4188         instead fix new warnings that were hidden by this change.
4189         (AAA, ZZZ): Removed, replaced by...
4190         (Code_Address_For_AAA, Code_Address_For_ZZZ): ... these functions, who
4191         are used instead of constants, to help make Ada.Exception truly
4192         preelaborate.
4193         (Rcheck_*, Raise_Constraint_Error, Raise_Program_Error,
4194         Raise_Storage_Error): File is now a System.Address, to simplify code.
4195         (Elab code): Removed, no longer used.
4196         (Null_Occurrence): Remove Warnings Off and make this construct
4197         preelaborate.
4198         Remove code related to front-end zero cost exception handling, since
4199         it is no longer used.
4200         Remove -gnatL/-gnatZ switches.
4201
4202         * a-exexda.adb (Append_Info_Exception_Name, Set_Exception_C_Msg):
4203         Update use of Except.Msg.
4204
4205         * gnat1drv.adb, inline.adb, bindgen.adb, debug.adb, exp_ch11.ads,
4206         freeze.adb, frontend.adb, lib.adb, exp_ch11.adb: Remove code related
4207         to front-end zero cost exception handling, since it is no longer used.
4208         Remove -gnatL/-gnatZ switches.
4209
4210         * lib-writ.ads: Minor reformatting
4211         Remove doc of UX
4212
4213         * Makefile.rtl: Remove references to s-except*, s-mastop-x86*
4214
4215         * Make-lang.in: Remove references to s-except.ads
4216
4217         * s-except.ads: Removed, no longer used.
4218
4219         * s-mastop.ads, s-mastop.adb:
4220         (Enter_Handler, Set_Signal_Machine_State): Removed, no longer used.
4221         Remove reference to System.Exceptions.
4222
4223         * raise.h, usage.adb, targparm.adb, targparm.ads, switch-m.adb,
4224         switch-b.adb: Remove code related to front-end zero cost exception
4225         handling, since it is no longer used.
4226         Remove -gnatL/-gnatZ switches.
4227
4228 2005-09-01  Robert Dewar  <dewar@adacore.com>
4229             Gary Dismukes  <dismukes@adacore.com>
4230             Javier Miranda  <miranda@adacore.com>
4231
4232         * exp_ch4.adb (Expand_N_In): Replace test of expression in its own
4233         type by valid test and generate warning.
4234         (Tagged_Membership): Generate call to the run-time
4235         subprogram IW_Membership in case of "Iface_CW_Typ in Typ'Class"
4236         Change formal name Subtype_Mark to Result_Definition in several calls to
4237         Make_Function_Specification.
4238         (Expand_Allocator_Expression): Add tests for suppression of the AI-344
4239         check for proper accessibility of the operand of a class-wide allocator.
4240         The check can be left out if checks are suppressed or if the expression
4241         has a specific tagged type whose level is known to be safe.
4242
4243         * exp_ch5.adb (Expand_N_Assignment_Statement): Simplify the code that
4244         generates the run-time check associated with null-excluding entities.
4245         (Expand_N_Return_Statement): Add tests to determine if the accessibility
4246         check on the level of the return expression of a class-wide function
4247         can be elided. The check usually isn't needed if the expression has a
4248         specific type (unless it's a conversion or a formal parameter). Also
4249         add a test for whether accessibility checks are suppressed. Augment
4250         the comments to describe the conditions for performing the check.
4251
4252 2005-09-01  Hristian Kirtchev  <kirtchev@adacore.com>
4253             Javier Miranda  <miranda@adacore.com>
4254             Gary Dismukes  <dismukes@adacore.com>
4255             Ed Schonberg  <schonberg@adacore.com>
4256
4257         * a-tags.adb (IW_Membership): Give support to
4258         "Iface_CW_Typ in T'Class". For this purpose the functionality of this
4259         subprogram has been extended to look for the tag in the ancestors tag
4260         table.
4261         Update the structure of the GNAT Dispatch Table to reflect the
4262         additional two tables used in dispatching selects.
4263         Introduce appropriate array types and record components in
4264         Type_Specific_Data to reflect the two tables.
4265         (Get_Entry_Index, Set_Entry_Index): Retrieve and set the entry index in
4266         the TSD of a tag, indexed by position.
4267         (Get_Prim_Op_Kind, Set_Prim_Op_Kind): Retrieve and set the primitive
4268         operation kind in the TSD of a tag, indexed by position.
4269
4270         * a-tags.ads: Introduce an enumeration type to capture different
4271         primitive operation kinds. Define a constant reflecting the number of
4272         predefined primitive operations.
4273         (Get_Entry_Index, Set_Entry_Index): Set and retrieve the entry index
4274         of an entry wrapper.
4275         (Get_Prim_Op_Kind, Set_Prim_Op_Kind): Set and retrieve the kind of
4276         callable entity of a primitive operation.
4277
4278         * exp_ch3.adb (Freeze_Record_Type): Generate the declarations of the
4279         primitive operations used in dispatching selects for limited
4280         interfaces, limited tagged, task and protected types what implement a
4281         limited interface.
4282         (Freeze_Type): Generate the bodies of the primitive operations used in
4283         dispatching selects for limited tagged, task and protected types that
4284         implement a limited interface. Generate statements to populate the two
4285         auxiliary tables used for dispatching in select statements.
4286         (Freeze_Record_Type): Add call to initialize the dispatch table entries
4287         associated with predefined interface primitive operations.
4288         (Build_Dcheck_Function): Change Set_Subtype_Mark to
4289         Set_Result_Definition.
4290         (Build_Variant_Record_Equality): Change Subtype_Mark to
4291         Result_Definition.
4292         (Freeze_Enumeration_Type): Change Subtype_Mark to Result_Definition.
4293         (Predef_Spec_Or_Body): Change Subtype_Mark to Result_Definition.
4294         (Build_Assignment): Simplify the code that adds the run-time-check.
4295         (Expand_N_Object_Declaration): Code cleanup.
4296
4297         * exp_ch7.adb (Make_Clean): Select the appropriate type for locking
4298         entries when there is a protected type that implements a limited
4299         interface.
4300
4301         * exp_ch9.adb: Add package Select_Expansion_Utilities that contains
4302         common routines used in expansion of dispatching selects.
4303         (Add_Private_Declarations): Select the appropriate protection type when
4304         there is a protected type that implements a limited interface.
4305         (Build_Parameter_Block): Generate a wrapped parameter block.
4306         (Build_Protected_Subprogram_Body): Select the appropriate type for
4307         locking entries when there is a protected type that implements a
4308         limited interface.
4309         (Build_Wrapper_Spec): Set the flag and wrapped entity for procedures
4310         classified as entry wrappers.
4311         (Expand_N_Asynchronous_Select): Add support for expansion of dispatching
4312         asynchronous selects.
4313         (Expand_N_Conditional_Entry_Call): Add support for expansion of
4314         dispatching conditional selects.
4315         (Expand_N_Protected_Type_Declaration): Select the appropriate type for
4316         protection when there is a protected type that implements limited
4317         interfaces.
4318         (Expand_N_Timed_Entry_Call): Add support for expansion of dispatching
4319         timed selects.
4320         (Extract_Dispatching_Call): Extract the entity of the name of a
4321         dispatching call, the object parameter, actual parameters and
4322         corresponding formals.
4323         (Make_Initialize_Protection): Correct logic of protection initialization
4324         when there is a protected type that implements a limited interface.
4325         (Parameter_Block_Pack): Populate a wrapped parameter block with the
4326         values of actual parameters.
4327         (Parameter_Block_Unpack): Retrieve the values from a wrapped parameter
4328         block and assign them to the original actual parameters.
4329
4330         * exp_ch9.ads (Subprogram_Protection_Mode): New type.
4331         (Build_Protected_Sub_Specification): Change the type and name of the
4332         last formal to account for the increased variety of protection modes.
4333
4334         * einfo.ads, einfo.adb (Was_Hidden): New attribute. Present in all
4335         entities. Used to save the value of the Is_Hidden attribute when the
4336         limited-view is installed.
4337         (Is_Primitive_Wrapper, Set_Is_Primitive_Wrapper): Retrieve and change
4338         the attribute of procedures classified as entry wrappers.
4339         (Wrapped_Entity, Set_Wrapped_Entity): Retrieve and change the wrapped
4340         entity of a primitive wrapper.
4341         (Write_Entity_Flags): Output the name and value of the
4342         Is_Primitive_Wrapper attribute.
4343         (Write_Field27_Name): Output the name and entity of the field Wrapped_
4344         Entity.
4345         (Underlying_Type): If we have an incomplete entity that comes from
4346         the limited view then we return the Underlying_Type of its non-limited
4347         view if it is already available.
4348         (Abstract_Interface_Alias): Flag applies to all subrogram kinds,
4349         including operators.
4350         (Write_Field26_Name): Add entry for Overridden_Operation
4351         (Overridden_Operation): New attribute of functions and procedures.
4352
4353         * exp_disp.ads, exp_disp.adb (Default_Prim_Op_Position): Return a
4354         predefined position in the dispatch table for the primitive operations
4355         used in dispatching selects.
4356         (Init_Predefined_Interface_Primitives): Remove the hardcoded number of
4357         predefined primitive operations and replace it with
4358         Default_Prim_Op_Count.
4359         (Make_Disp_Asynchronous_Select_Spec, Make_Disp_Conditional_Select_Spec,
4360         Make_Disp_Get_Prim_Op_Kind_Spec, Make_Disp_Timed_Select_Spec): Update
4361         the names of the generated primitive operations used in dispatching
4362         selects.
4363         (Init_Predefined_Interface_Primitives): No need to inherit primitives in
4364         case of abstract interface types. They will be inherit by the objects
4365         implementing the interface.
4366         (Make_DT): There is no need to inherit the dispatch table of the
4367         ancestor interface for the elaboration of abstract interface types.
4368         The dispatch table will be inherited by the object implementing the
4369         interface.
4370         (Copy_Secondary_DTs): Add documentation.
4371         (Validate_Position): Improve this static check in case of
4372         aliased subprograms because aliased subprograms must have
4373         the same position.
4374         (Init_Predefined_Interface_Primitives): New subprogram that initializes
4375         the entries associated with predefined primitives of all the secondary
4376         dispatch tables.
4377         (Build_Anonymous_Access_Type): Removed.
4378         (Expand_Interface_Actuals): With the previous cleanup there is no need
4379         to build an anonymous access type. This allows further cleanup in the
4380         code generated by the expander.
4381         (Expand_Interface_Conversion): If the actual is an access type then
4382         build an internal function to handle the displacement. If the actual
4383         is null this function returns null because no displacement is
4384         required; otherwise performs a type conversion that will be
4385         expanded in the code that returns the value of the displaced actual.
4386         (Expand_Interface_Actuals): Avoid the generation of unnecessary type
4387         conversions that have no effect in the generated code because no
4388         displacement is required. Code cleanup; use local variables to
4389         avoid repeated calls to the subprogram directly_designated_type().
4390
4391         * exp_util.ads, exp_util.adb (Is_Predefined_Dispatching_Operation):
4392         Classify the primitive operations used in dispatching selects as
4393         predefined.
4394         (Implements_Limited_Interface): Determine whether some type either
4395         directly implements a limited interface or extends a type that
4396         implements a limited interface.
4397         (Build_Task_Image_Function): Change Subtype_Mark to Result_Definition.
4398         (Expand_Subtype_From_Expr): Do not build actual subtype if the
4399         expression is limited.
4400         (Find_Interface_Tag): Add code to handle class-wide types and
4401         entities from the limited-view.
4402
4403         * rtsfind.ads: Add entries in RE_Id and RE_Unit_Table for
4404         Get_Entry_Index, Get_Prim_Op_Kind, POK_Function, POK_Procedure,
4405         POK_Protected_Entry, POK_Protected_Function, POK_Protected_Procedure,
4406         POK_Task_Entry, POK_Task_Procedure, Prim_Op_Kind, Set_Entry_Index,
4407         Set_Prim_Op_Kind.
4408
4409         * sem_ch9.adb (Analyze_Triggering_Alternative): Check for legal type
4410         of procedure name or prefix that appears as a trigger in a triggering
4411         alternative.
4412
4413         * uintp.ads: Introduce constants Uint_11 and Uint_13.
4414
4415 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
4416
4417         * s-tataat.adb, a-tasatt.adb:
4418         Replace calls to Defer/Undefer_Abortion by Defer/Undefer_Abort.
4419
4420         * s-tasini.ads, s-tasini.adb (Defer_Abortion, Undefer_Abortion): Moved
4421         these procedures to body, and renamed Abort_Defer, Abort_Undefer.
4422         (Get_Exc_Stack_Addr, Set_Exc_Stack_Addr): Removed, no
4423         longer used.
4424
4425 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
4426             Jose Ruiz  <ruiz@adacore.com>
4427
4428         * s-taprop-vxworks.adb:
4429         Move with clauses outside Warnings Off now that dependent units are
4430         Preelaborate.
4431         (Initialize): Call Interrupt_Managemeent.Initialize to ensure proper
4432         initialization of this unit.
4433         (Specific): Add new procedures Initialize and Delete so that this
4434         package can be used for VxWorks 5.x and 6.x
4435         (ATCB_Key, ATCB_Key_Address): Moved to Specific package body to hide
4436         differences between VxWorks 5.x and 6.x
4437         Minor reformatting.
4438         (Timed_Delay): Remove calls to Defer/Undefer_Abort, now performed by
4439         caller.
4440         Use only Preelaborate-compatible constructs.
4441
4442         * s-tpopsp-vxworks.adb (ATBC_Key, ATCB_Key_Addr): Moved from
4443         Primitives.Operations.
4444         (Delete, Initialize): New procedures.
4445
4446         * s-osinte-vxworks.adb: Body used to handle differences between
4447         VxWorks 5.x and 6.x
4448         (kill, Set_Time_Slice, VX_FP_TASK): New functions.
4449
4450         * s-osinte-vxworks.ads: Minor reformatting.
4451         Add VxWworks 6.x specific functions (only called from VxWorks 6 files).
4452         (VX_FP_TASK): Now a function, to handle differences between VxWorks 5
4453         and 6.
4454         (Set_Time_Slice): New function, replacing kerneltimeSlice to share code
4455         between Vxworks 5 and 6.
4456         (taskLock, taskUnlock): Removeed, no longer used.
4457
4458         * adaint.c: The wait.h header is not located in the sys directory on
4459         VxWorks when using RTPs.
4460         (__gnat_set_env_value): Use setenv instead of putenv on VxWorks when
4461         using RTPs.
4462         (__gnat_dup): dup is available on Vxworks when using RTPs.
4463         (__gnat_dup2): dup2 is available on Vxworks when using RTPs.
4464
4465         * cal.c: Use the header time.h for Vxworks 6.0 when using RTPs.
4466
4467         * expect.c: The wait.h header is not located in the sys directory on
4468         VxWorks when using RTPs.
4469
4470 2005-09-01  Thomas Quinot  <quinot@adacore.com>
4471
4472         * g-soccon-vms.adb: Renamed to g-soccon-vms.ads
4473
4474         * g-soccon-vms.ads: Renamed from g-soccon-vms.adb
4475
4476         * g-soccon.ads, g-soccon-tru64.ads, g-soccon-aix.ads,
4477         g-soccon-darwin.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
4478         g-soccon-solaris.ads, g-soccon-mingw.ads, g-soccon-vxworks.ads,
4479         g-soccon-freebsd.ads: Add new constants:
4480          IP_MULTICAST_IF
4481          SO_RCVTIMEO/SO_SNDTIMEO
4482          IOV_MAX
4483
4484         * gen-soccon.c:
4485         Move all target-specific file inclusions and macro definitions to
4486         gsocket.h, in order to ensure that any C code in socket.c will see a
4487         set of constants that is consistent with the contents of g-soccon.ads.
4488
4489         * gsocket.h: Code imported from gen-soccon.c:
4490         Move all target-specific file inclusions and macro definitions to
4491         gsocket.h, in order to ensure that any C code in socket.c will see a set
4492         of constants that is consistent with the contents of g-soccon.ads.
4493         This change also makes gen-soccon self-contained (removing dependencies
4494         upon GCC internal headers).
4495
4496         * g-socket.adb (Send_Vector): Make calls to Writev at most IOV_MAX
4497         iovecs at a time.
4498         (To_Inet_Addr): Now a procedure instead of a function, more efficient.
4499
4500         * socket.c: Minor reformatting.
4501
4502 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
4503             Thomas Quinot  <quinot@adacore.com>
4504
4505         * fname-sf.adb, mlib-tgt.ads,
4506         back_end.adb, casing.adb, g-debpoo.adb, g-excact.adb, g-spipat.adb,
4507         g-spipat.ads, g-thread.adb, lib-list.adb, makeutl.adb, mlib.adb,
4508         osint.adb, par-ch10.adb, par-load.adb, prep.adb, prj.adb, prj-attr.ads,
4509         prj-env.ads, prj-err.adb, prj-err.ads, prj-ext.adb, prj-ext.ads,
4510         prj-makr.adb, prj-makr.ads, prj-pars.ads, prj-part.adb, prj-strt.adb,
4511         prj-tree.ads, prj-util.ads, sem_dist.adb, sinput-c.ads, sinput-l.ads,
4512         sinput-p.ads, styleg-c.ads, xr_tabls.adb, prj-attr-pm.ads,
4513         makegpr.adb: Remove redundant use_clauses.
4514
4515 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
4516
4517         * s-stoele.ads, s-stopoo.ads, s-stratt.ads, s-strops.ads, s-unstyp.ads,
4518         s-valboo.ads, s-valcha.ads, s-valdec.ads, s-valenu.ads, s-valint.ads,
4519         s-vallld.ads, s-vallli.ads, s-valllu.ads, s-valrea.ads, s-valuns.ads,
4520         s-valuti.ads, s-valwch.ads, s-veboop.ads, s-vector.ads, s-vercon.ads,
4521         s-wchcnv.ads, s-wchcon.ads, s-wchjis.ads, s-wchstw.ads, s-wchwts.ads,
4522         s-widboo.ads, s-widcha.ads, s-widenu.ads, s-widlli.ads, s-widllu.ads,
4523         s-widwch.ads, s-wwdcha.ads, s-wwdenu.ads, s-wwdwch.ads, system.ads,
4524         table.ads, types.ads, system-vms_64.ads, s-crtl-vms64.ads,
4525         s-addope.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
4526         s-vxwork-x86.ads, system-linux-ppc.ads, i-vxwork-x86.ads,
4527         a-numaux-darwin.ads, a-crbtgo.ads, a-crbtgk.ads, a-crbltr.ads,
4528         a-coprnu.ads, a-convec.ads, a-contai.ads, a-coinve.ads, a-cohata.ads,
4529         a-cohama.ads, a-cihama.ads, a-cidlli.ads, a-cdlili.ads,
4530         a-numaux-libc-x86.ads, a-numaux-vxworks.ads, system-linux-ia64.ads,
4531         system-freebsd-x86.ads, system-unixware.ads, system-lynxos-ppc.ads,
4532         system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
4533         s-vxwork-alpha.ads, system-aix.ads, system-vxworks-sparcv9.ads,
4534         system-solaris-x86.ads, system-irix-o32.ads, system-irix-n32.ads,
4535         s-parame-hpux.ads, system-hpux.ads, system-vxworks-m68k.ads,
4536         s-vxwork-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads,
4537         s-vxwork-mips.ads, system-os2.ads, system-interix.ads,
4538         s-vxwork-ppc.ads, system-solaris-sparc.ads, s-vxwork-sparcv9.ads,
4539         system-solaris-sparcv9.ads, s-parame-vms.ads, system-vms.ads,
4540         s-osinte-mingw.ads, system-mingw.ads, s-parame-vms-restrict.ads,
4541         system-vms-zcx.ads, s-parame-ae653.ads, system-vxworks-ppc.ads,
4542         s-parame-vxworks.ads, system-vxworks-alpha.ads, interfac-vms.ads,
4543         a-numaux-x86.ads, a-astaco.ads, a-chahan.ads, a-charac.ads,
4544         a-chlat1.ads, a-chlat9.ads, a-colire.adb, a-colire.ads, a-comlin.ads,
4545         a-cwila1.ads, a-cwila9.ads, ada.ads, a-decima.ads, a-exextr.adb,
4546         a-filico.ads, a-finali.ads, a-interr.ads, a-ioexce.ads, a-dynpri.ads,
4547         a-ngcefu.ads, a-ngcefu.adb, a-ngcoty.adb, a-ngcoty.ads, a-ngelfu.ads,
4548         a-nudira.adb, a-nudira.ads, a-nuflra.adb, a-numaux.ads, a-numeri.ads,
4549         a-reatim.adb, a-stmaco.ads, a-storio.ads, a-strbou.ads, a-stream.ads,
4550         a-strfix.ads, a-string.ads, a-strmap.ads, a-strsea.ads, a-strsup.ads,
4551         a-strunb.ads, a-stunau.ads, a-stwibo.ads, a-stwifi.ads, a-stwima.ads,
4552         a-stwise.ads, a-stwisu.ads, a-stwiun.ads, a-swmwco.ads, a-textio.ads,
4553         csets.ads, debug.ads, dec.ads, g-curexc.ads, get_targ.ads,
4554         g-except.ads, system-linux-hppa.ads, a-chacon.ads, a-widcha.ads,
4555         a-zchara.ads, system-hpux-ia64.ads, a-ciorma.ads, a-coorma.ads,
4556         a-ciormu.ads, a-coormu.ads, a-rbtgso.ads, a-chzla1.ads, a-chzla9.ads,
4557         a-stzbou.ads, a-stzfix.ads, a-stzmap.ads, a-stzsea.ads, a-stzsup.ads,
4558         a-stzunb.ads, a-swunau.ads, a-szunau.ads, gnat.ads, g-regpat.ads,
4559         g-speche.ads, g-spitbo.ads, g-table.ads, g-tasloc.ads, g-trasym.ads,
4560         i-c.ads, i-cpoint.ads, i-cpp.ads, i-cstrin.ads, i-fortra.ads,
4561         interfac.ads, i-os2err.ads, i-os2lib.ads, i-os2syn.ads, i-os2thr.ads,
4562         i-vxwork.ads, output.ads, s-arit64.ads, s-atacco.ads, s-boarop.ads,
4563         s-casuti.ads, s-crtl.ads, s-exctab.ads, s-exnint.ads, s-exnllf.ads,
4564         s-exnlli.ads, s-expint.ads, s-explli.ads, s-expllu.ads, s-expmod.ads,
4565         s-expuns.ads, s-fatflt.ads, s-fatgen.ads, s-fatlfl.ads, s-fatllf.ads,
4566         s-fatsfl.ads, s-finimp.ads, s-finroo.ads, s-fore.ads, s-geveop.ads,
4567         s-htable.ads, s-imgbiu.ads, s-imgboo.ads, s-imgcha.ads, s-imgdec.ads,
4568         s-imgenu.ads, s-imgint.ads, s-imgllb.ads, s-imglld.ads, s-imglli.ads,
4569         s-imgllu.ads, s-imgllw.ads, s-imgrea.ads, s-imguns.ads, s-imgwch.ads,
4570         s-imgwiu.ads, s-io.ads, s-maccod.ads, s-mantis.ads, s-memcop.ads,
4571         s-pack03.ads, s-pack05.ads, s-pack06.ads, s-pack07.ads, s-pack09.ads,
4572         s-pack10.ads, s-pack11.ads, s-pack12.ads, s-pack13.ads, s-pack14.ads,
4573         s-pack15.ads, s-pack17.ads, s-pack18.ads, s-pack19.ads, s-pack20.ads,
4574         s-pack21.ads, s-pack22.ads, s-pack23.ads, s-pack24.ads, s-pack25.ads,
4575         s-pack26.ads, s-pack27.ads, s-pack28.ads, s-pack29.ads, s-pack30.ads,
4576         s-pack31.ads, s-pack33.ads, s-pack34.ads, s-pack35.ads, s-pack36.ads,
4577         s-pack37.ads, s-pack38.ads, s-pack39.ads, s-pack40.ads, s-pack41.ads,
4578         s-pack42.ads, s-pack43.ads, s-pack44.ads, s-pack45.ads, s-pack46.ads,
4579         s-pack47.ads, s-pack48.ads, s-pack49.ads, s-pack50.ads, s-pack51.ads,
4580         s-pack52.ads, s-pack53.ads, s-pack54.ads, s-pack55.ads, s-pack56.ads,
4581         s-pack57.ads, s-pack58.ads, s-pack59.ads, s-pack60.ads, s-pack61.ads,
4582         s-pack62.ads, s-pack63.ads, s-parame.ads, s-pooglo.ads, s-pooloc.ads,
4583         s-poosiz.ads, s-powtab.ads, s-purexc.ads, s-sopco3.ads, s-sopco4.ads,
4584         s-sopco5.ads: Minor reformatting: reindent pragma Pure/Preelaborate
4585         and always use the no parameter form for consistency.
4586
4587         * gnat-style.texi: Document rules about Preelaborate/Pure pragmas.
4588
4589 2005-09-01  Robert Dewar  <dewar@adacore.com>
4590
4591         * binde.adb: Minor reformatting
4592         (Find_Elab_Order): Output warning if -p used with static elab order
4593
4594 2005-09-01  Robert Dewar  <dewar@adacore.com>
4595
4596         * checks.adb (Check_Needed): New procedure, deals with removing checks
4597         based on analysis of short-circuited forms. Also generates warnings for
4598         improper use of non-short-circuited forms.
4599         Code clean ups.
4600
4601 2005-09-01  Robert Dewar  <dewar@adacore.com>
4602
4603         * a-ztexio.adb, a-textio.adb, a-witeio.adb: Replace bad range checks
4604         with 'Valid tests.
4605
4606 2005-09-01  Robert Dewar  <dewar@adacore.com>
4607
4608         * errout.ads, errout.adb (Fix Error_Msg_F): Fix implementation to meet
4609         spec.
4610         Implement new insertion char < (conditional warning)
4611         * errutil.adb, erroutc.adb: Implement new insertion char <
4612         (conditional warning).
4613         * sem_elab.adb, prj-dect.adb, erroutc.ads, err_vars.ads
4614         (Error_Msg_Warn): New variable for < insertion char.
4615         * prj-nmsc.adb: Implement new errout insertion char < (conditional
4616         warning).
4617         (Check_For_Source): Change value of Source_Id only after the current
4618         source has been dealt with.
4619
4620 2005-09-01  Robert Dewar  <dewar@adacore.com>
4621             Doug Rupp  <rupp@adacore.com>
4622
4623         * exp_attr.adb: Handle vax fpt for 'Valid attribute
4624         * exp_vfpt.ads, exp_vfpt.adb: (Expand_Vax_Valid): New procedure
4625         * s-vaflop-vms-alpha.adb, s-vaflop.ads, s-vaflop.adb
4626         (Valid_D, Valid_F, Valid_G): New functions
4627
4628 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
4629             Hristian Kirtchev  <kirtchev@adacore.com>
4630             Javier Miranda  <miranda@adacore.com>
4631
4632         * exp_ch6.adb (Expand_Call): If an actual is a function call rewritten
4633         from object notation, the original node is unanalyzed and carries no
4634         semantic information, so that accessiblity checks must be performed on
4635         the type of the actual itself.
4636         (Expand_N_Subprogram_Declaration): Change last actual parameter for
4637         compatibility with Build_Protected_Sub_Specification.
4638         (Check_Overriding_Inherited_Interfaces): Add suport to handle
4639         overloaded primitives.
4640         (Register_Interface_DT_Entry): Use the new name of the formal
4641         the the calls to Expand_Interface_Thunk
4642
4643         * exp_dbug.ads: Augment comments on encoding of protected types to
4644         include the generation of dispatching subprograms when the type
4645         implements at least one interface.
4646
4647         * lib.ads: Extend information in Load_Stack to include whether a given
4648         load comes from a Limited_With_Clause.
4649
4650         * lib-load.adb (From_Limited_With_Chain): New predicate to determine
4651         whether a potential circularity is harmless, because it includes units
4652         loaded through a limited_with clause. Extends previous treatment which
4653         did not handle properly arbitrary combinations of limited and
4654         non-limited clauses.
4655
4656 2005-09-01  Nicolas Setton  <setton@adacore.com>
4657
4658         * exp_dbug.adb (Get_Encoded_Name): Fixed bug that caused biaised types
4659         to be encoded as typ___XBLU_lowerbound__upperbound instead of
4660         typ___XB_lowerbound__upperbound.
4661
4662 2005-09-01  Thomas Quinot  <quinot@adacore.com>
4663
4664         * exp_dist.adb (Add_RACW_TypeCode, Add_RAS_TypeCode): Do not generate
4665         dummy access formal for RACW/RAS TypeCode TSS.
4666         (Build_TypeCode_Call): Do not generate dummy null access actual for
4667         calls to the TypeCode TSS.
4668
4669 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
4670
4671         * exp_intr.adb (Expand_Source_Name): For Enclosing_Entity, generate
4672         fully qualified name, to distinguish instances with the same local name.
4673
4674         * g-souinf.ads (Enclosing_Entity): Document that entity name is now
4675         fully qualified.
4676
4677 2005-09-01  Robert Dewar  <dewar@adacore.com>
4678
4679         * exp_pakd.adb (Create_Packed_Array_Type): Properly handle very large
4680         packed arrays.
4681
4682 2005-09-01  Jerome Lambourg  <lambourg@adacore.com>
4683
4684         * g-expect.adb (Non_Blocking_Spawn): Initialize the filters field to
4685         (Free): New deallocation procedure for filter elements
4686         (Close): Deallocate any existing filter for the concerned connection
4687
4688 2005-09-01  Laurent Pautet  <pautet@adacore.com>
4689
4690         * g-pehage.ads, g-pehage.adb (Select_Char_Position): When no character
4691         position set is provided, we compute one in order to reduce the maximum
4692         length of the keys.  This computation first selects a character
4693         position between 1 and the minimum length of the keys in order to
4694         avoid reducing one of the keys to an empty string.
4695         (Initialize, Compute): When the ratio V to K is too low, the algorithm
4696         does not converge. The initialization procedure now comes with a
4697         maximum number of iterations such that when exceeded, an exception is
4698         raised in Compute. The user can initialize this ratio to another value
4699         and try again
4700         Reformating and updated headers.
4701
4702 2005-09-01  Javier Miranda  <miranda@adacore.com>
4703
4704         * itypes.ads, itypes.adb (Create_Null_Excluding_Itype): New subprogram
4705         that given an entity T creates and returns an Itype that duplicates the
4706         contents of T. The returned Itype has the null-exclusion
4707         attribute set to True, and its Etype attribute references T
4708         to keep the association between the two entities.
4709         Update copyright notice
4710
4711         * sem_aggr.adb (Check_Can_Never_Be_Null,
4712         Aggregate_Constraint_Checks, Resolve_Aggregate,
4713         Resolve_Array_Aggregate, Resolve_Record_Aggregate): Code cleanup.
4714
4715         * sem_ch5.adb (Analyze_Assignment): Code cleanup.
4716
4717 2005-09-01  Gary Dismukes  <dismukes@adacore.com>
4718             Robert Dewar  <dewar@adacore.com>
4719             Hristian Kirtchev  <kirtchev@adacore.com>
4720
4721         * layout.adb (SO_Ref_From_Expr): Change Subtype_Mark to
4722         Result_Definition.
4723
4724         * par-ch6.adb (P_Subprogram): Handle parsing of Access_Definitions in
4725         function specs.
4726         Call Set_Result_Definition instead of Set_Subtype_Mark.
4727         (P_Subprogram_Specification): Add parsing of anonymous access result
4728         plus null exclusions. Call Set_Result_Definition instead of
4729         Set_Subtype_Mark.
4730
4731         * par-ch3.adb: Add support for LIMITED NEW for Ada 2005 AI-419
4732         (P_Access_Type_Definition): Add parsing for an anonymous access result
4733         subtype, plus parsing for null exclusions. Call Set_Result_Definition
4734         instead of Set_Subtype_Mark.
4735
4736         * sinfo.adb: Add support for LIMITED NEW for Ada 2005 AI-419
4737         (Null_Exclusion_Present): Allow this flag for N_Function_Specification.
4738         (Result_Definition): New function for N_Function_Specifications.
4739         (Subtype_Mark): No longer allowed for N_Access_Function_Definition and
4740         N_Function_Specification.
4741         (Set_Null_Exclusion_Present): Allow this flag for
4742         N_Function_Specification.
4743         (Set_Result_Definition): New procedure for N_Function_Specifications.
4744         (Set_Subtype_Mark): No longer allowed for N_Access_Function_Definition
4745         and N_Function_Specification.
4746
4747         * sinfo.ads: Update grammar rules for 9.7.2: Entry_Call_Alternative,
4748         Procedure_Or_Entry_Call; 9.7.4: Triggering_Statement.
4749         Add support for LIMITED NEW for Ada 2005 AI-419
4750         Update the syntax of PARAMETER_AND_RESULT_PROFILE to reflect the new
4751         syntax for anonymous access results.
4752         Replace Subtype_Mark field by Result_Definition in
4753         N_Function_Specification and N_Access_Definition specs.
4754         Add Null_Exclusion_Present to spec of N_Function_Specification.
4755         (Result_Definition): New function for N_Function_Specification and
4756         N_Access_Function_Definition.
4757         (Set_Result_Definition): New procedure for N_Function_Specification and
4758         N_Access_Function_Definition.
4759
4760         * sprint.adb (S_Print_Node_Actual): Change Subtype_Mark calls to
4761         Result_Definition for cases of N_Access_Function_Definition and
4762         N_Function_Specification.
4763         Print "not null" if Null_Exclusion_Present on N_Function_Specification.
4764
4765 2005-09-01  Vincent Celier  <celier@adacore.com>
4766
4767         * lib-writ.adb: Update Copyright notice
4768         (Write_With_Lines): On platforms where file names are case-insensitive,
4769         record the file names in lower case.
4770         (Write_ALI): For D lines, on platforms where file names are
4771         case-insensitive, record the file names in lower case.
4772
4773 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
4774             Emmanuel Briot  <briot@adacore.com>
4775
4776         * lib-xref.adb (Output_Overridden_Op): Display information on
4777         overridden operation.
4778
4779         * lib-xref.ads: Add documentation on overridden operations.
4780
4781         * ali.ads (Xref_Entity_Record): Add support for storing the overriding
4782         information.
4783
4784         * ali.adb (Get_Typeref): New subprogram. Adds support for parsing the
4785         overriding entity information.
4786
4787 2005-09-01  Vincent Celier  <celier@adacore.com>
4788
4789         * mlib-prj.adb (Copy_Interface_Sources): Copy all interface sources,
4790         including those that are inherited.
4791
4792 2005-09-01  Robert Dewar  <dewar@adacore.com>
4793
4794         * opt.ads, opt.adb: Add new switches Debug_Pragmas_Enabled[_Config]
4795
4796         * par-prag.adb: Implement new pragma Debug_Policy
4797
4798         * sem_prag.adb Implement new pragma Debug_Policy
4799         (Analyze_Pragma, case Pack): do not let pragma Pack override an explicit
4800         Component_Size attribute specification. Give warning for ignored pragma
4801         Pack.
4802
4803         * snames.h, snames.ads, snames.adb: Introduce entries in
4804         Preset_Names for Name_Disp_Asynchronous_Select,
4805         Name_Disp_Conditional_Select, Name_Disp_Get_Prim_Op_Kind,
4806         Name_Disp_Timed_Select.
4807         New pragma Debug_Policy
4808
4809         * switch-c.adb (Scan_Front_End_Switches): Set Ada 2005 mode
4810         explicitly.
4811         Switch -gnata also sets Debug_Pragmas_Enabled
4812
4813         * sem.adb, par.adb (Set_Opt_Config_Switch): Add parameter Main_Unit to
4814         handle an explicit -gnata when compiling predefined files.
4815
4816 2005-09-01  Vincent Celier  <celier@adacore.com>
4817
4818         * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Do not add the object
4819         directories of projects that have no Ada sources.
4820
4821 2005-09-01  Robert Dewar  <dewar@adacore.com>
4822
4823         * scng.adb (Check_End_Of_Line): Count characters, rather than bytes
4824         (makes a difference for wide characters)
4825
4826         * widechar.adb, widechar.ads:
4827         Add Wide_Char_Byte_Count feature to count chars vs bytes
4828
4829 2005-09-01  Thomas Quinot  <quinot@adacore.com>
4830             Ed Schonberg  <schonberg@adacore.com>
4831             Robert Dewar  <dewar@adacore.com>
4832
4833         * sem_attr.adb (Resolve_Attribute, case 'Address): For an illegal
4834         'Address attribute reference with an overloaded prefix, use the
4835         location of the prefix (not the location of the attribute reference) as
4836         the error location.
4837         (Analyze_Attribute, case 'Size): The name of an enumeration literal, or
4838         a function renaming thereof, is a valid prefix for 'Size (where it is
4839         intepreted as a function call).
4840         (Statically_Denotes_Entity): New predicate to determine whether the
4841         prefix of an array attribute can be considered static.
4842
4843         PR ada/9087
4844         (Eval_Attr): Fix failure to evaluate Component_Size for
4845         unconstrained arrays (resulted in wrong value in packed case, since
4846         back end cannot handle this case)
4847
4848 2005-09-01  Robert Dewar  <dewar@adacore.com>
4849
4850         * sem_cat.adb (Check_Categorization_Dependencies): Add more detail to
4851         error msgs for most common cases.
4852         Use new errout insertion char < (conditional warning)
4853
4854 2005-09-01  Javier Miranda  <miranda@adacore.com>
4855             Ed Schonberg  <schonberg@adacore.com>
4856
4857         * sem_ch10.adb (In_Chain): Moved from the scope of a subprogram to
4858         become local to the whole package.
4859         (Install_Limited_Withed_Unit): Instead of unchaining real entities if
4860         the package was already analyzed the new algorithm "replaces" the
4861         real entities by the shadow ones. This is required to ensure that
4862         the order of these entities in the homonym chains does not change;
4863         otherwise we can have undefined references at linking time because
4864         in case of conflicts the external name of the entities will have
4865         a suffix that depends on the order of the entities in the chain.
4866         (Remove_Limited_With_Clause): Complementary code that completes the
4867         new algorithm and replaces the shadow entities by the real ones.
4868         (Install_Limited_Withed_Unit): When unchaining entities before the
4869         installation of the shadow entities, only regular entities of the
4870         public part must be taken into account. This is required to
4871         keep this routine in synch with the work done by Remove_Limited_
4872         With_Clause
4873         (Install_Limited_With_Clause): Introduce implicit limited_with_clause
4874         even if unit is analyzed, because the analysis of the unit is
4875         idempotent in any case, and the limited view of the unit may have to
4876         be installed for proper visibility.
4877         (Expand_Limited_With_Clause): Even if the unit in the implicit
4878         with_clause has been analyzed already, a limited view of the package
4879         must be built for the current context, if it does not exist yet.
4880
4881 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
4882             Javier Miranda  <miranda@adacore.com>
4883             Gary Dismukes  <dismukes@adacore.com>
4884
4885         * sem_ch12.adb (Instantiate_Subprogram_Body): When creating the
4886         defining entity for the instance body, make a new defining identifier
4887         rather than copying the entity of the spec, to prevent accidental
4888         sharing of the entity list.
4889         (Check_Private_View): When exchanging views of private types, build the
4890         list of exchanged views as a stack, to ensure that on exit the exchanges
4891         are undone in the proper order.
4892         (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation):
4893         Restore the compilation environment in case of instantiation_error.
4894         (Analyze_Generic_Subprogram_Declaration): Handle creation of type entity
4895         for an anonymous access result.
4896         (Instantiate_Generic_Subprogram): Subtype_Mark => Result_Definition
4897         (Formal_Entity): Handle properly the case of a formal package that
4898         denotes a generic package renaming.
4899
4900 2005-09-01  Thomas Quinot  <quinot@adacore.com>
4901
4902         * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Reject the
4903         clause if the array aggregate is surrounded by parentheses.
4904
4905 2005-09-01  Cyrille Comar  <comar@adacore.com>
4906             Gary Dismukes  <dismukes@adacore.com>
4907             Ed Schonberg  <schonberg@adacore.com>
4908             Javier Miranda  <miranda@adacore.com>
4909
4910         * sem_ch3.ads, sem_ch3.adb (Analyze_Object_Declaration): Go to the
4911         underlying type
4912         to check if a type is Constrained in cases related to code generation
4913         (rather than semantic checking) since otherwise we do not generate
4914         similar code for mutable private types depending if their
4915         discriminants are visible or not.
4916         (Check_Abstract_Overriding): Do not complain about failure to override
4917         the primitive operations used in dispatching selects since they will
4918         always be overriden at the freeze point of the type.
4919         (Access_Definition): Separate out handling for resetting the scope
4920         of an anonymous access function result type. Retrieve the scope
4921         of the associated function rather than using Current_Scope, which
4922         does not have a consistent value (depends on whether we're in the
4923         middle of analyzing formal parameters). Add ??? comment about
4924         finding a cleaner way to handle the special cases of scope setting.
4925         (Process_Incomplete_Dependents): A protected operation is never a
4926         dispatching operation (only its wrapper may be).
4927         (Build_Derived_Record_Type): In case of tagged private types that
4928         implement interfaces add derivation of predefined primitive
4929         operations.
4930         (Derive_Subprograms): Replace the Is_Interface_Derivation parameter
4931         by two parameters that are used in case of derivation from abstract
4932         interface types: No_Predefined_Prims is used to avoid the derivation
4933         of predefined primitives from the interface, and Predefined
4934         Prims_Only is used to complete the derivation predefined primitives
4935         in case of private tagged types implementing interfaces.
4936         Fix typo in comments
4937         (Find_Interface_In_Descendant): Protect the frontend against
4938         wrong code with large circularity chains.
4939         (Is_Private_Overriding): Add support for entities overriding interface
4940         subprograms. The test failed because Entities associated with overriden
4941         interface subprograms are always marked as hidden (and used to build
4942         the secondary dispatch table); in this case the overriden entity is
4943         available through the field abstract_interface_alias (cf. override_
4944         dispatching_operation)
4945         (Access_Definition): Set the scope of the type to Current_Scope for the
4946         case of a function with an anonymous access result type.
4947         (Access_Subprogram_Declaration): Handle creation of the type entity for
4948         an access-to-function type with an anonymous access result.
4949         (Check_Anonymous_Access_Types): Change Subtype_Mark to Result_Definition
4950         in handling for N_Access_Function_Definition.
4951         (Analyze_Subtype_Declaration): Modify the text of error message.
4952         (Derived_Type_Declaration): Modify the text of error message.
4953         (Process_Subtype): Modify the text of error message plus cleanup
4954         of one redundant error message.
4955         (Analyze_Component_Declaration): Code cleanup.
4956         (Analyze_Object_Declaration): Code cleanup.
4957         (Analyze_Subtype_Declaration): Propagate the null-exclusion
4958         attribute in case of access types. Code cleanup.
4959         (Array_Type_Declaration): Code cleanup.
4960         (Process_Discriminants): Create the new null-excluding itype
4961         if required. Code cleanup.
4962         (Process_Subtype): Create the new null-excluding itype if
4963         required. Code cleanup.
4964         (Build_Derived_Record_Type): Code cleanup to avoid calling
4965         twice the subprogram derive_subprograms in case of private
4966         types that implement interfaces. In this particular case the
4967         subprogram Complete_Subprograms_Derivation already does the
4968         job associated with the second call.
4969
4970         * exp_strm.adb (Build_Elementary_Input_Call): Add an explicit
4971         conversion to the full view when generating an operation for a
4972         discriminant whose type may currently be private.
4973
4974 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
4975             Javier Miranda  <miranda@adacore.com>
4976
4977         * sem_ch4.adb (Transform_Object_Operation): In a context off the form
4978         V (Obj.F), the rewriting does not involve the indexed component, but
4979         only the selected component itself.
4980         Do not apply the transformation if the analyzed node is an actual of a
4981         call to another subprogram.
4982         (Complete_Object_Operation): Retain the entity of the
4983         dispatching operation in the selector of the rewritten node. The
4984         entity will be used in the expansion of dispatching selects.
4985         (Analyze_One_Call): Improve location of the error message associated
4986         with interface.
4987         (Analyze_Selected_Component): No need to resolve prefix when it is a
4988         function call, resolution is done when parent node is resolved, as
4989         usual.
4990         (Analyze_One_Call): Add a flag to suppress analysis of the first actual,
4991         when attempting to resolve a call transformed from its object notation.
4992         (Try_Object_Operation, Transform_Object_Operastion): Avoid makind copies
4993         of the argument list for each interpretation of the operation.
4994         (Try_Object_Operation): The designated type of an access parameter may
4995         be an incomplete type obtained through a limited_with clause, in which
4996         case the primitive operations of the type are retrieved from its full
4997         view.
4998         (Analyze_Call): If this is an indirect call, and the return type of the
4999         access_to_subprogram is incomplete, use its full view if available.
5000
5001 2005-09-01  Javier Miranda  <miranda@adacore.com>
5002             Gary Dismukes  <dismukes@adacore.com>
5003
5004         * sem_ch6.ads, sem_ch6.adb (Check_Conformance): In case of anonymous
5005         access types the null-exclusion and access-to-constant attributes must
5006         also match.
5007         (Analyze_Return_Statement): When the result type is an anonymous access
5008         type, apply a conversion of the return expression to the access type
5009         to ensure that appropriate accessibility checks are performed.
5010         (Analyze_Return_Type): For the case of an anonymous access result type,
5011         generate the Itype and set Is_Local_Anonymous_Access on the type.
5012         Add ??? placeholder for check to disallow returning a limited object
5013         in Ada 2005 unless it's an aggregate or a result of a function call.
5014         Change calls from Subtype_Mark to Result_Definition.
5015         (Analyze_Subprogram_Body): Change formal Subtype_Mark to
5016         Result_Definition in call to Make_Function_Specification.
5017         (Build_Body_To_Inline): Change Set_Subtype_Mark to
5018         Set_Result_Definition.
5019         (Make_Inequality_Operator): Change formal Subtype_Mark to
5020         Result_Definition in call to Make_Function_Specification.
5021         (Process_Formals): Create the new null-excluding itype if required.
5022         (New_Overloaded_Entity): For an entity overriding an interface primitive
5023         check if the entity also covers other abstract subprograms in the same
5024         scope. This is required to handle the general case, that is, overriding
5025         other interface primitives and overriding abstract subprograms inherited
5026         from some abstract ancestor type.
5027         (New_Overloaded_Entity): For an overriding entity that comes from
5028         source, note the operation that it overrides.
5029         (Check_Conformance, Type_Conformant): Addition of one new formal
5030         to skip controlling formals in the analysis. This is used to
5031         handle overloading of abstract interfaces.
5032         (Base_Types_Match): Add missing case for types imported from
5033         limited-with clauses
5034         (New_Overloaded_Entity): Add barrier to protect the use of
5035         the "alias" attribute.
5036
5037 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
5038
5039         * sem_ch8.adb (Analyze_Renamed_Entry): For a renaming_as_declaration,
5040         verify that the procedure and the entry are mode conformant.
5041         (Analyze_Subprogram_Renaming): Emit a warning if an operator is renamed
5042         as a different operator, which is often a cut-and-paste error.
5043
5044 2005-09-01  Javier Miranda  <miranda@adacore.com>
5045             Ed Schonberg  <schonberg@adacore.com>
5046
5047         * sem_disp.adb (Check_Controlling_Formals): Anonymous access types
5048         used in controlling parameters exclude null because it is necessary to
5049         read the tag to dispatch, and null has no tag.
5050         (Override_Dispatching_Operation): If the previous operation is inherited
5051         from an interface, it becomes hidden  and does not participate in later
5052         name resolution.
5053
5054 2005-09-01  Javier Miranda  <miranda@adacore.com>
5055             Ed Schonberg  <schonberg@adacore.com>
5056             Gary Dismukes  <dismukes@adacore.com>
5057
5058         * sem_res.adb (Resolve_Membership_Op): In case of the membership test
5059         "Iface_CW_Typ in T'Class" we have nothing else to do in the frontend;
5060         the expander will generate the corresponding run-time check to evaluate
5061         the expression.
5062         (Resolve_Call): Check for legal type of procedure name or prefix that
5063         appears as a trigger in a triggering alternative.
5064         (Valid_Conversion): If expression is ambiguous and the context involves
5065         an extension of System, remove System.Address interpretations.
5066         (Resolve_Qualified_Expression): Reject the case of a specific-type
5067         qualification applied to a class-wide argument. Enhance comment
5068         to explain checking of Original_Node.
5069         (Resolve_Type_Conversion): The location of the error message was not
5070         general enough to handle the general case and hence it has been removed.
5071         In addition, this patch improves the text of the message.
5072         (Resolve_Type_Conversion): Add missing support for access to interface
5073         types.
5074         (Resolve_Type_Conversion): If the target is a class-wide interface type,
5075         do not expand if the expression is the actual in a call, because proper
5076         expansion will take place when the call itself is expanded.
5077         (Resolve_Allocator): If the context is an unchecked conversion, the
5078         allocator inherits its storage pool, if any, from the target type of
5079         the conversion.
5080
5081 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
5082             Javier Miranda  <miranda@adacore.com>
5083
5084         * sem_type.adb (Add_One_Interp): If a candidate operation is an
5085         inherited interface operation that has an implementation, use the
5086         implementation to avoid spurious ambiguities.
5087         (Interface_Present_In_Ancestor): In case of concurrent types we can't
5088         use the Corresponding_Record_Typ attribute to look for the interface
5089         because it is set by the expander (and hence it is not always
5090         available). For this reason we traverse the list of interfaces
5091         (available in the parent of the concurrent type).
5092         (Interface_Present_In_Ancestor): Handle entities from the limited view
5093
5094 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
5095
5096         * sem_util.ads, sem_util.adb (Gather_Components): Omit interface tags
5097         from the list of required components.
5098         (Is_Controlling_Limited_Procedure): Determine whether an entity is a
5099         primitive procedure of a limited interface with a controlling first
5100         parameter.
5101         (Is_Renamed_Entry): Determine whether an entry is a procedure renaming
5102         of an entry.
5103         (Safe_To_Capture_Value): A value (such as non_null) is not safe to
5104         capture if it is generated in the second operand of a short-circuit
5105         operation.
5106         Do not capture values for variables with address clauses.
5107         (Is_Object_Reference): Treat a function call as an object reference only
5108         if its type is not Standard_Void_Type.
5109
5110 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
5111
5112         * sem_warn.adb (Warn_On_Known_Condition): Refine warning when applied
5113         to a variable that is statically known to be constant.
5114
5115 2005-09-01  Geert Bosch  <bosch@adacore.com>
5116             Robert Dewar  <dewar@adacore.com>
5117
5118         * ttypef.ads (VAXDF_Safe_First): Use correct value for constant.
5119         (VAXGF_Safe_First): Idem.
5120
5121 2005-09-01  Robert Dewar  <dewar@adacore.com>
5122             Arnaud Charlet  <charlet@adacore.com>
5123
5124         * g-dirope.ads: Minor reformatting
5125         Document that bounds of result of Base_Name match the input index
5126         positions.
5127         Add documentation on environment variable syntax for Expand_Path
5128
5129         * gnat_ugn.texi: Update documentation to include mention of -m switches
5130         Document new treatment of wide characters in max line length
5131         style check.
5132         Remove -gnatL/-gnatZ switches, no longer used.
5133         Add note on pragmas Assertion_Policy and Debug_Policy in discussion
5134         of -gnata switch.
5135
5136         * gnat_rm.texi: Add doc for two argument form of pragma
5137         Float_Representation.
5138         Add documentation for pragma No_Strict_Aliasing
5139         Add note that explicit component clause overrides pragma Pack.
5140         Add documentation of pragma Debug_Policy
5141
5142 2005-09-01  Matthew Heaney  <heaney@adacore.com>
5143
5144         * a-cihase.adb, a-coorse.ads, a-coorse.adb, a-cohama.adb,
5145         a-ciorse.ads, a-ciorse.adb, a-cihama.adb, a-cdlili.adb,
5146         a-cidlli.adb, a-chtgop.adb, a-cihase.adb, a-cihase.ads,
5147         a-cohase.adb, a-cohase.adb, a-cohase.ads: Synchronized with latest
5148         draft (Draft 13, August 2005) of Ada Amendment 1.
5149
5150 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
5151
5152         * Makefile.in: Adjust the libgnat target pairs for Xscale to ARM.
5153         Note that the platform-specific version of g-soccon.ads for VMS is now
5154         named g-soccon-vms.ads (it was previously g-soccon-vms.adb, although it
5155         really is a package spec).
5156         Replace s-taspri-linux.ads by s-taspri-posix.ads
5157         Remove references to s-mastop-x86.adb
5158
5159         * system-vxworks-xscale.ads: Removed, no longer used.
5160         * s-vxwork-xscale.ads: Removed, no longer used.
5161
5162 2005-09-01  Robert Dewar  <dewar@adacore.com>
5163
5164         * a-dirval-mingw.adb, a-direct.adb, a-coinve.adb,
5165         g-dynhta.adb, g-dynhta.ads, cstand.adb, exp_smem.adb, g-debuti.ads,
5166         g-dirope.adb, g-table.adb, lib-sort.adb, sem_maps.adb,
5167         exp_fixd.adb, exp_aggr.adb, a-intnam-mingw.ads, a-intnam-vxworks.ads,
5168         g-arrspl.adb, g-arrspl.ads, g-awk.adb, g-awk.ads, g-boubuf.ads,
5169         g-boubuf.ads, g-boubuf.ads, g-bubsor.ads, g-bubsor.adb, g-busora.adb,
5170         g-busora.ads, g-busorg.adb, g-busorg.ads, g-calend.adb, g-calend.ads,
5171         g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads, g-cgi.adb,
5172         g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads, g-cgideb.adb, g-cgideb.ads,
5173         g-comlin.adb, g-comver.ads, g-semaph.ads, g-socthi.ads,
5174         sem_ch7.adb, a-direio.adb, a-caldel.ads, i-cstrea-vms.adb,
5175         a-ztedit.adb, a-ztenau.adb, g-socthi-vms.adb, g-socthi-vms.ads,
5176         g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vxworks.ads,
5177         a-intnam-irix.ads, a-intnam-irix.ads, a-intnam-hpux.ads,
5178         a-intnam-os2.ads, a-intnam-os2.ads, a-caldel-vms.adb, a-calend-vms.adb,
5179         a-calend-vms.ads, g-heasor.adb, g-heasor.ads, g-hesora.adb,
5180         g-hesora.ads, g-hesorg.adb, g-hesorg.ads, g-htable.adb, g-htable.ads,
5181         g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads, g-locfil.ads,
5182         g-memdum.adb, g-memdum.ads, g-traceb.adb, g-traceb.ads, i-cobol.adb,
5183         i-cobol.ads, i-cstrea.ads, i-cstrin.adb, a-wtedit.adb, a-tifiio.adb,
5184         a-wtenau.adb, a-wtenau.adb, a-teioed.adb: Minor reformatting
5185
5186 2005-08-29  Arnaud Charlet  <charlet@adacore.com>
5187
5188         PR ada/23187
5189         * adaint.c
5190         (GNAT_MAXPATH_LEN): Use default value if MAXPATHLEN is undefined.
5191
5192 2005-08-29  Arnaud Charlet  <charlet@adacore.com>
5193             Doug Rupp  <rupp@adacore.com>
5194
5195         * s-stalib.adb: Add missing pragma Warnings (On) to reenable Warnings
5196         when needed.
5197         (Inside_Elab_Final_Code): Moved to init.c to avoid having to keep
5198         this code in the GNAT run-time.
5199
5200         * decl.c, fe.h: Replace GCC_ZCX by Back_End_Exceptions.
5201
5202         PR ada/21053
5203         * init.c (__gnat_error_handler [many]): Mark "msg" as const
5204         (__gnat_error_handler [HPUX]): Mark siginfo parameter as unused
5205
5206         (__gnat_inside_elab_final_code): Moved here from
5207         Standard_Library and only defined for the compiler.
5208         __gnat_error_handler [VMS]: Adjust sigargs to account for PC & PSL.
5209         (__gnat_inum_to_ivec): Do not define this function on VxWorks when
5210         using RTPs because directly vectored Interrupt routines are not
5211         supported on this configuration.
5212         (getpid): Do not redefine this function on VxWorks when using RTPs
5213         because this primitive is well supported by the RTP libraries.
5214         (copy_msg): Correct the code that checks for buffer overflow.
5215         Discovered during code reading.
5216
5217 2005-08-29  Olivier Hainque  <hainque@adacore.com>
5218
5219         * decl.c (gnat_to_gnu_entity) <E_Variable>: When allocating storage for
5220         a library level mutable variable with an initializer, tell
5221         build_allocator to ignore the initializer's size. It may not be large
5222         enough for all the values that might be assigned to the variable later
5223         on.
5224
5225 2005-08-29  Arnaud Charlet  <charlet@adacore.com>
5226             Eric Botcazou  <ebotcazou@adacore.com>
5227
5228         * trans.c: Protect < in error msg with quote
5229         Replace GCC_ZCX by Back_End_Exceptions.
5230         (addressable_p) <COMPONENT_REF>: Also return 1 if the field
5231         has been sufficiently aligned in the record.
5232
5233 2005-08-15  James E. Wilson  <wilson@specifix.com>
5234
5235         * system-linux-alpha.ads: Change ia64 to alpha.
5236
5237 2005-08-01  Kazu Hirata  <kazu@codesourcery.com>
5238
5239         * decl.c, utils.c: Fix comment typos.
5240
5241 2005-07-29  Kazu Hirata  <kazu@codesourcery.com>
5242
5243         * decl.c, init.c, initialize.c: Fix comment typos.
5244
5245 2005-07-20  Giovanni Bajo  <giovannibajo@libero.it>
5246
5247         Make CONSTRUCTOR use VEC to store initializers.
5248         * decl.c (gnat_to_gnu_entity): Update to cope with VEC in
5249         CONSTRUCTOR_ELTS.
5250         * trans.c (extract_values): Likewise.
5251         * utils.c (convert, remove_conversions): Likewise.
5252         * utils2.c (contains_save_expr_p, build_binary_op, build_unary_op,
5253         gnat_build_constructor): Likewise.
5254
5255 2005-07-09  Andrew Pinski  <pinskia@physics.uc.edu>
5256
5257         * decl.c (components_to_record): Use DECL_FCONTEXT instead of
5258         DECL_SECTION_NAME.
5259         (compare_field_bitpos): Likewise.
5260
5261 2005-07-09  Andrew Pinski  <pinskia@physics.uc.edu>
5262
5263         * utils.c (create_var_decl): Only set DECL_COMMON on
5264         VAR_DECLs. Only set SET_DECL_ASSEMBLER_NAME on
5265         VAR_OR_FUNCTION_DECL_P.
5266
5267 2005-07-08  Daniel Berlin  <dberlin@dberlin.org>
5268
5269         * utils.c (create_param_decl): DECL_ARG_TYPE_AS_WRITTEN is
5270         removed.
5271
5272 2005-07-07  Pascal Obry  <obry@adacore.com>
5273
5274         * g-socthi-mingw.adb (C_Inet_Addr): New body used to convert the
5275         returned type on Windows.
5276
5277         * g-socthi-mingw.ads (C_Inet_Addr): Remove pragma Import for this
5278         routine.
5279
5280         * g-socket.adb (Inet_Addr): Check for empty Image and raises an
5281         exception in this case.
5282         Simplify the code as "Image (Image'Range)" = "Image".
5283
5284 2005-07-07  Vincent Celier  <celier@adacore.com>
5285
5286         * bindgen.adb (Gen_Output_File_C): When switch -a was specified, put
5287         the destructor/constructor attributes for <lib>final/<lib>init.
5288
5289         * gnatbind.adb (Gnatbind): Allow -a to be used in conjunction with -C
5290
5291 2005-07-07  Eric Botcazou  <ebotcazou@adacore.com>
5292
5293         * decl.c (gnat_to_gnu_entity) <E_Procedure>: Do not strip the padding
5294         type if the parameter is not passed by copy but reference by default.
5295
5296 2005-07-07  Javier Miranda  <miranda@adacore.com>
5297
5298         * exp_ch3.adb (Build_Record_Init_Proc/Freeze_Record_Type):
5299         Reimplementation of the support for abstract interface types in order
5300         to leave the code more clear and easy to maintain.
5301
5302         * exp_ch6.adb (Freeze_Subprogram): Reimplementation of the support for
5303         abstract interface types in order to leave the code clearer and easier
5304         to maintain.
5305
5306         * exp_disp.ads, exp_disp.adb (Fill_DT_Entry): Part of its functionality
5307         is now implemented by the new subprogram Fill_Secondary_DT_Entry.
5308         (Fill_Secondary_DT_Entry): Generate the code necessary to fill the
5309         appropriate entry of the secondary dispatch table.
5310         (Make_DT): Add code to inherit the secondary dispatch tables of
5311         the ancestors.
5312
5313         * exp_util.adb (Find_Interface_Tag/Find_Interface_ADT): Instead of
5314         implementing both functionalities by means of a common routine, each
5315         routine has its own code.
5316
5317 2005-07-07  Javier Miranda  <miranda@adacore.com>
5318
5319         * freeze.adb (Freeze_Entity): Check wrong uses of tag incomplete types.
5320
5321         * par-ch3.adb (P_Type_Declaration): Give support to tagged incomplete
5322         types:
5323         --
5324           type DEFINING_IDENTIFIER [DISCRIMINANT_PART] [IS TAGGED];
5325         --
5326
5327         * sem_attr.adb (Check_Not_Incomplete_Type): Additional checks for wrong
5328         use of tag incomplete types.
5329
5330         * sem_ch3.adb (Analyze_Incomplete_Type): Add mininum decoration to
5331         give support to tagged incomplete types.
5332
5333         * sem_ch5.adb (Analyze_Case_Statement): In generated code, if the
5334         expression is a discriminant reference and its type is private, as can
5335         happen within a stream operation for a mutable record, use the full
5336         view of the type to resolve the case alternatives.
5337         (Analyze_Assignment): Check wrong dereference of incomplete types.
5338
5339         * sem_ch6.adb (Process_Formals): Allow the use of tagged incomplete
5340         types.
5341
5342         * sem_res.adb (Resolve_Explicit_Dereference): Allow the use of tagged
5343         incomplete types.
5344
5345         * sinfo.adb (Taggged_Present/Set_Taggged_Present): Applicable to
5346         N_Incomplete_Type_Declaration nodes.
5347
5348         * sinfo.ads (N_Incomplete_Type_Declaration): Addition of attribute
5349         Tag_Present to give support to tagged incomplete types:
5350         --
5351           type DEFINING_IDENTIFIER [DISCRIMINANT_PART] [IS TAGGED];
5352         --
5353
5354 2005-07-07  Olivier Hainque  <hainque@adacore.com>
5355
5356         PR ada/22301
5357
5358         * raise.c: Only include unwind.h if IN_RTS, and provide dummy type
5359         definitions for the Unwind wrappers in the compiler case.
5360
5361 2005-07-07  Ed Schonberg  <schonberg@adacore.com>
5362             Javier Miranda  <miranda@adacore.com>
5363
5364         * par-load.adb (Load): If a child unit is loaded through a limited_with
5365         clause, each parent must be loaded as a limited unit as well.
5366
5367         * sem_ch10.adb (Previous_Withed_Unit): Better name for
5368         Check_Withed_Unit. Return true if there is a previous with_clause for
5369         this unit, whether limited or not.
5370         (Expand_Limited_With_Clause): Do not generate a limited_with_clause on
5371         the current unit.
5372         (Is_Visible_Through_Renamings): New local subprogram of install_limited
5373         _withed_unit that checks if some package installed through normal with
5374         clauses has a renaming declaration of package whose limited-view is
5375         ready to be installed. This enforces the check of the rule 10.1.2 (21/2)
5376         of the current Draft document for Ada 2005.
5377         (Analyze_Context): Complete the list of compilation units that
5378         are allowed to contain limited-with clauses. It also contains
5379         checks that were previously done by Install_Limited_Context_Clauses.
5380         This makes the code more clear and easy to maintain.
5381         (Expand_Limited_With_Clause) It is now a local subprogram of
5382         Install_Limited_Context_Clauses, and contains the code that adds
5383         the implicit limited-with clauses for parents of child units.
5384         This functionality was prevously done by Analyze_Context.
5385
5386         * sem_ch4.adb (Analyze_Selected_Component): Check wrong use of
5387         incomplete type.
5388
5389         * sem_ch7.adb (Analyze_Package_Declaration): Check if the package has
5390         been erroneously named in a limited-with clause of its own context.
5391         In this case the error has been previously notified by Analyze_Context.
5392
5393 2005-07-07  Ed Schonberg  <schonberg@adacore.com>
5394
5395         * sem_ch8.adb (Find_Direct_Name): Handle properly the case of a
5396         generic package that contains local declarations with the same name.
5397         (Analyze_Object_Renaming): Check wrong renaming of incomplete type.
5398
5399 2005-07-07  Bernard Banner  <banner@adacore.com>
5400
5401         * tracebak.c: Refine tracebacks to use Unwind_Backtrace scheme on
5402         ia64 platform only on platforms that you the GCC unwind library
5403         rather than the system unwind library.
5404
5405 2005-07-07  Thomas Quinot  <quinot@adacore.com>
5406
5407         * expect.c: Minor reformatting
5408
5409 2005-07-07  Sergey Rybin  <rybin@adacore.com>
5410
5411         * vms_data.ads: Add VMS qualifiers for new gnatpp switch
5412         --no-separate-is
5413
5414         * gnat_ugn.texi: Add description for new gnatpp option
5415         (--no-separate-is)
5416
5417 2005-07-04  Thomas Quinot  <quinot@adacore.com>
5418
5419         * g-expect-vms.adb, g-expect.ads, g-expect.adb
5420         (Get_Command_Output): New subprogram to launch a process and get its
5421         standard output as a string.
5422
5423 2005-07-04  Eric Botcazou  <ebotcazou@adacore.com>
5424             Olivier Hainque  <hainque@adacore.com>
5425
5426         * s-mastop-tru64.adb (Pop_Frame): Use exc_lookup_function_entry to
5427         fetch a code-range descriptor associated with the machine state. On
5428         failure set the machine state's PC to 0; on success, pass the
5429         descriptor to exc_virtual_unwind.
5430
5431         * init.c (Tru64 section): New function __gnat_set_code_loc.
5432
5433 2005-07-04  Vincent Celier  <celier@adacore.com>
5434
5435         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
5436         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
5437         mlib-tgt-mingw.adb, mlib-tgt-darwin.adb (Build_Dynamic_Library):
5438         Remove all auto-initialization code, as this is now done through the
5439         constructor mechanism.
5440
5441         * adaint.h, adaint.c (__gnat_binder_supports_auto_init,
5442         __gnat_sals_init_using_constructors): New functions.
5443
5444         * bindgen.adb (Gen_Output_File_Ada): Generate pragmas
5445         Linker_Constructor and Linker_Destructor when switch -a is used.
5446
5447         * bindusg.adb: Add line for new switch -a
5448
5449         * gnatbind.adb (Gnatbind_Supports_Auto_Init): New Boolean function
5450         (Gnatbind): When switch -a is used, check if it is allowed
5451
5452         * switch-b.adb (Scan_Binder_Switches): Process new switch -a
5453
5454 2005-07-04  Joel Brobecker  <brobecker@adacore.com>
5455
5456         * a-tags.adb (Type_Specific_Data): Define Tags_Table as a small array.
5457         This prevents us from hitting a limitation during the debug info
5458         generation when using stabs.
5459         (Prims_Ptr): Likewise.
5460
5461 2005-07-04  Gary Dismukes  <dismukes@adacore.com>
5462             Ed Schonberg  <schonberg@adacore.com>
5463             Javier Miranda  <miranda@adacore.com>
5464
5465         * checks.adb (Null_Exclusion_Static_Checks): In the case of
5466         N_Object_Declaration, only perform the checks if the Object_Definition
5467         is not an Access_Definition.
5468
5469         * sem_ch3.adb (Access_Subprogram_Declaration): Add test for the case
5470         where the parent of an the access definition is an N_Object_Declaration
5471         when determining the Associated_Node_For_Itype and scope of an
5472         anonymous access-to-subprogram type.
5473
5474         * exp_ch6.adb (Expand_N_Subprogram_Declaration): Set the
5475         Corresponding_Spec on the body created for a null procedure. Add ???
5476         comment. Remove New_Copy_Tree call on body argument to
5477         Set_Body_To_Inline.
5478
5479         * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): For an out parameter with
5480         discriminants, use the type of the actual as well, because the
5481         discriminants may be read by the called subprogram.
5482
5483         * sem_ch3.adb (Access_Type_Declaration): If the designated type is an
5484         access type we do not need to handle non-limited views.
5485         (Build_Derived_Record_Type): Additional check to check that in case of
5486         private types, interfaces are only allowed in private extensions.
5487
5488 2005-07-04  Eric Botcazou  <ebotcazou@adacore.com>
5489
5490         * decl.c (prepend_attributes) <Pragma_Linker_Constructor>: New case.
5491         <Pragma_Linker_Destructor>: Likewise.
5492
5493         * einfo.ads (Has_Gigi_Rep_Item): Document Pragma_Linker_Constructor and
5494         Pragma_Linker_Destructor.
5495
5496         * gigi.h (attr_type): Add ATTR_LINK_CONSTRUCTOR and
5497         ATTR_LINK_DESTRUCTOR.
5498         (static_ctors, static_dtors): New variables.
5499
5500         * misc.c (gnat_expand_body): Output current function as constructor
5501         and destructor if requested.
5502
5503         * par-prag.adb: Add processing for pragma Linker_Constructor and
5504         Linker_Destructor.
5505
5506         * sem_prag.adb (Find_Unique_Parameterless_Procedure): New function
5507         extracted from Check_Interrupt_Or_Attach_Handler.
5508         (Check_Interrupt_Or_Attach_Handler): Invoke it.
5509         Implement pragma Linker_Constructor and Linker_Destructor with the
5510         help of Find_Unique_Parameterless_Procedure.
5511         Replace Name_Alias with Name_Target for pragma Linker_Alias.
5512
5513         * snames.h, snames.ads, snames.adb:
5514         Add Name_Linker_Constructor and Name_Linker_Destructor.
5515         Add Pragma_Linker_Constructor and Pragma_Linker_Destructor.
5516         * snames.adb: Remove Name_Alias.
5517
5518         * trans.c: Include cgraph.h.
5519         (build_global_cdtor): New function.
5520         (Compilation_Unit_to_gnu): Build global constructor and destructor if
5521         needed.
5522         (tree_transform) <N_Identifier>: Substitute renaming of view-conversions
5523         of objects too.
5524         (addressable_p) <COMPONENT_REF>: Unconditionally test
5525         DECL_NONADDRESSABLE_P on STRICT_ALIGNMENT platforms.
5526
5527         * utils.c (process_attributes) <ATTR_LINK_ALIAS>: Do not assemble the
5528         variable if it is external.
5529
5530         (static_ctors, static_dtors): New global variables.
5531         (process_attributes) <ATTR_LINK_CONSTRUCTOR>: New case.
5532         <ATTR_LINK_DESTRUCTOR>: Likewise.
5533         (end_subprog_body): Chain function as constructor and destructor
5534         if requested.
5535
5536         * exp_util.adb (Force_Evaluation): Unconditionally invoke
5537         Remove_Side_Effects with Variable_Ref set to true.
5538         (Remove_Side_Effects): Handle scalar types first. Use a renaming
5539         for non-scalar types even if Variable_Ref is true and for class-wide
5540         expressions.
5541
5542 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
5543
5544         * exp_attr.adb (Mod): Evaluate condition expression with checks off,
5545         to prevent spurious warnings.
5546
5547 2005-07-04  Thomas Quinot  <quinot@adacore.com>
5548
5549         * exp_dist.adb (Build_TypeCode_Call): Remove incorrect processing for
5550         Itypes. Itypes are really unexpected there.
5551         (Build_TypeCode_Function): Generalise special processing for Itypes to
5552         handle the case of numeric implicit base types as well as enumerated
5553         ones.
5554
5555 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
5556
5557         * exp_intr.adb (Expand_Unc_Deallocation): If the designated type is
5558         controlled, indicate the expected type of the dereference that is
5559         created for the call to Deep_Finalize, to prevent spurious errors when
5560         the designated type is private and completed with a derivation from
5561         another private type.
5562
5563 2005-07-04  Vincent Celier  <celier@adacore.com>
5564
5565         * make.adb (Change_To_Object_Directory): When unable to change the
5566         current dir to the object directory, output the full path of the
5567         directory.
5568
5569 2005-07-04  Matthew Gingell  <gingell@adacore.com>
5570
5571         * Makefile.in: Replace indepsw-linux.adb by indepsw-gnu.adb
5572
5573         * indepsw-linux.adb: Replace by...
5574
5575         * indepsw-gnu.adb: ...this new file
5576
5577 2005-07-04  Vincent Celier  <celier@adacore.com>
5578
5579         * mlib-prj.adb (Auto_Initialize): New constant String
5580         (SALs_Use_Constructors): New Boolean function
5581         (Build_Library): Call gnatbind with Auto_Initialize switch when
5582         SALs_Use_Constructors returns True.
5583
5584         * mlib-tgt.ads: Minor reformatting
5585
5586         * mlib-utl.ads: Minor reformatting
5587
5588         * opt.ads: (Use_Pragma_Linker_Constructor): New Boolean flag
5589
5590 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
5591
5592         * par-ch9.adb (P_Task, P_Protected): Indicate that single task and
5593         single protected declarations can have an interface list.
5594         (P_Entry_Declaration): Add handler for Error_Resync, which can be raised
5595         with seriously malformed entry declarations, and lead to compilation
5596         abandoned messages.
5597
5598 2005-07-04  Javier Miranda  <miranda@adacore.com>
5599
5600         * par-load.adb: Load the context items in two rounds.
5601
5602 2005-07-04  Robert Dewar  <dewar@adacore.com>
5603
5604         * scng.adb: Do not consider Mod used as an attribute to be a keyword
5605
5606 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
5607             Javier Miranda  <miranda@adacore.com>
5608
5609         * sem_ch10.adb (Build_Limited_Views): A type declared with a private
5610         type extension needs a limited view.
5611         Remove previous restriction on private types available through the
5612         limited-view (only tagged private types were previously allowed).
5613         (Install_Withed_Unit): In the code that implements the
5614         legality rule given in AI-377, exclude a child unit with the name
5615         Standard, because it is a homonym of the Standard environment package.
5616
5617 2005-07-04  Thomas Quinot  <quinot@adacore.com>
5618
5619         * sem_ch4.adb (Transform_Object_Operation): For an actual that is an
5620         overloaded function call, carry interpretations from the original tree
5621         to the copy.
5622
5623 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
5624
5625         * sem_ch6.adb (Conforming_Types): If the types are anonymous access
5626         types check whether some designated type is a limited view, and use
5627         the non-limited view if available.
5628
5629 2005-07-04  Gary Dismukes  <dismukes@adacore.com>
5630
5631         * sem_eval.adb (Subtypes_Statically_Match): Use the discriminant
5632         constraint of full view of a private view T1 if present, when T2 is a
5633         discriminated full view.
5634
5635 2005-07-04  Thomas Quinot  <quinot@adacore.com>
5636
5637         * sem_res.adb (Resolve_Actuals): Do not resolve the expression of an
5638         actual that is a view conversion of a bit packed array reference.
5639
5640 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
5641
5642         * sem_type.adb (Covers): Verify that Corresponding_Record_Type is
5643         present before checking whether an interface type covers a synchronized
5644         type.
5645
5646 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
5647
5648         * sem_util.adb (Is_Object_Reference): An indexed or selected component
5649         whose prefix is an implicit dereference is an object reference. Removes
5650         spurious errors when compiling with -gnatc.
5651
5652 2005-07-04  Robert Dewar  <dewar@adacore.com>
5653
5654         PR ada/22039
5655
5656         * s-sopco3.ads, s-sopco4.ads, s-sopco5.ads: Minor documentation fix
5657
5658 2005-07-04  Matthew Gingell  <gingell@adacore.com>
5659
5660         * tracebak.c: Enable tracebacks on ia64 platforms
5661
5662 2005-07-04  Vincent Celier  <celier@adacore.com>
5663
5664         * vms_conv.adb (Initialize): Allow multiple ALI files to be given to
5665         the GNAT BIND command, as gnatbind accepts multiples ALI files with
5666         the -L or -n switches.
5667
5668 2005-07-04  Vincent Celier  <celier@adacore.com>
5669
5670         * makegpr.adb (Build_Global_Archive): Make sure the list of sources is
5671         correctly computed and the main project data is not modified while
5672         doing so.
5673         (Add_C_Plus_Plus_Link_For_Gnatmake): Always link with the C++ compiler
5674         (Choose_C_Plus_Plus_Link_Process): Do not generate shell script
5675         c++linker as this does not work on some platforms.
5676
5677 2005-07-04  Matthew Heaney  <heaney@adacore.com>
5678
5679         * a-convec.ads, a-coinve.ads: Declaration of subtype Extended_Index
5680         was changed.
5681         * a-coinve.adb: Perform constraint checks explicitly.
5682
5683 2005-07-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5684             Thomas Quinot  <quinot@adacore.com>
5685
5686         * Make-lang.in: (ada/targtyps.o): Add missing TREE_H dependency.
5687         new target gen-soccon.
5688
5689 2005-07-04  Robert Dewar  <dewar@adacore.com>
5690
5691         * s-mastop-irix.adb, s-mastop-vms.adb: Minor reformatting
5692
5693 2005-07-04  Thomas Quinot  <quinot@adacore.com>
5694
5695         * g-socket.ads (Check_Selector): Minor rewording of comment.
5696
5697 2005-07-04  Vincent Celier  <celier@adacore.com>
5698
5699         * vms_data.ads: Add VMS qualifiers for new gnatpp switch --eol=
5700
5701 2005-07-04  Thomas Quinot  <quinot@adacore.com>
5702
5703         * gen-soccon.c: Add constants SO_SNDTIMEO and SO_RCVTIMEO.
5704
5705 2005-07-04  Sergey Rybin  <rybin@adacore.com>
5706
5707         * gnat_ugn.texi: Add description of --eol gnatpp option
5708
5709 2005-07-04  Eric Botcazou  <ebotcazou@adacore.com>
5710             Thomas Quinot  <quinot@adacore.com>
5711
5712         * gnat_rm.texi: Add a note that pragma Unreferenced is not appropriate
5713         if the user wants all calls of a subprogram to be flagged,
5714         independently of whether they are made from within the same unit or
5715         another unit.
5716         Mention restriction for pragma Linker_Alias on some platforms.
5717         Document pragma Linker_Constructor and Linker_Destructor.
5718         Rewrite documentation of Weak_External, Linker_Section and
5719         Linker_Alias pragmas.
5720
5721 2005-07-04  Arnaud Charlet  <charlet@adacore.com>
5722
5723         * s-stausa.ads, s-stausa.adb: New files.
5724
5725 2005-06-30  Kelley Cook
5726
5727         * all files:  Update FSF address in copyright headers.
5728         * gen-soccon.co (main): Output new FSF address in generated files.
5729
5730 2005-06-28  Paul Brook  <paul@codesourcery.com>
5731
5732         * misc.c (gnat_init_gcc_eh): Call default_init_unwind_resume_libfunc.
5733
5734 2005-06-14  Olivier Hainque  <hainque@adacore.com>
5735             Eric Botcazou  <ebotcazou@adacore.com>
5736
5737         * s-mastop-irix.adb (Pop_Frame): Revert shorcuts avoiding calls to
5738         exc_unwind, now that we are generating proper .debug_frame output for
5739         that target.
5740
5741         * tracebak.c: Remove the mips-irix section, as we are now using the
5742         s-mastop based unwinder again.
5743         Under SPARC/Solaris, take into account the stack bias to compute the
5744         frame offset.  The stack bias is 0 for the V8 ABI and 2047 for the V9
5745         ABI.
5746
5747 2005-06-14  Doug Rupp  <rupp@adacore.com>
5748
5749         * g-trasym-vms.adb: renamed g-trasym-vms-alpha.adb
5750
5751         * g-trasym-vms-alpha.adb, g-trasym-vms-ia64.adb: New files
5752
5753 2005-06-14  Pascal Obry  <obry@adacore.com>
5754
5755         * a-strhas.ads, a-secain.adb, a-secain.ads, a-rbtgso.ads, a-cgaaso.adb,
5756         a-cgaaso.ads, a-cgarso.adb, a-cgcaso.adb, a-cgarso.ads, a-cgcaso.ads,
5757         a-contai.ads, a-coprnu.ads, a-coprnu.adb: Fix header style (spaces in
5758         package name).
5759
5760         * a-intnam-lynxos.ads, a-intnam-unixware.ads, a-intnam-tru64.ads,
5761         a-intnam-aix.ads, a-intnam-irix.ads, a-excpol-interix.adb,
5762         a-intnam-hpux.ads, a-intnam-linux.ads, a-intnam-dummy.ads,
5763         a-intnam-os2.ads, a-numaux-libc-x86.ads, a-intnam-interix.ads,
5764         a-intnam-solaris.ads, a-caldel-vms.adb, a-calend-vms.ads,
5765         a-intnam-vms.ads, a-excpol-abort.adb, a-intnam-mingw.ads,
5766         a-intnam-vxworks.ads, a-numaux-vxworks.ads, s-osinte-unixware.adb,
5767         s-osinte-unixware.ads, s-osinte-lynxos-3.adb, s-osinte-lynxos-3.ads,
5768         s-osinte-hpux.ads, s-osinte-solaris-posix.ads, a-intnam-freebsd.ads,
5769         s-osinte-freebsd.adb, s-osinte-freebsd.ads, s-osinte-lynxos.adb,
5770         s-osinte-lynxos.ads, s-tpopsp-lynxos.adb, s-osinte-tru64.adb,
5771         s-osinte-tru64.ads, s-tpopsp-posix-foreign.adb, s-vxwork-alpha.ads,
5772         s-osinte-aix.adb, s-osinte-aix.ads, s-osinte-aix-fsu.ads,
5773         s-osinte-irix.adb, s-osinte-irix.ads, s-interr-sigaction.adb,
5774         s-osinte-irix-athread.ads, s-osinte-hpux-dce.adb,
5775         s-osinte-hpux-dce.ads, s-osinte-posix.adb, s-osinte-linux.ads,
5776         s-vxwork-m68k.ads, s-osinte-linux-fsu.ads, s-vxwork-mips.ads,
5777         s-osinte-dummy.ads, s-interr-dummy.adb, s-osinte-os2.adb,
5778         s-osinte-os2.ads, s-osprim-os2.adb, s-osinte-interix.ads,
5779         s-osprim-unix.adb, s-vxwork-ppc.ads, s-osinte-solaris.adb,
5780         s-osinte-solaris.ads, s-osprim-solaris.adb, s-tpopsp-solaris.adb,
5781         s-vxwork-sparcv9.ads, s-osinte-solaris-fsu.ads, s-interr-vms.adb,
5782         s-osinte-vms.adb, s-osinte-vms.ads, s-osprim-vms.adb,
5783         s-osprim-vms.ads, s-tpopde-vms.adb, s-tpopde-vms.ads,
5784         s-osprim-mingw.adb, s-vxwork-xscale.ads, s-interr-vxworks.adb,
5785         s-osinte-vxworks.adb, s-osinte-vxworks.ads, s-osprim-vxworks.adb,
5786         s-tfsetr-vxworks.adb, s-tpopsp-vxworks.adb, s-intman-posix.adb,
5787         s-osinte-fsu.adb, s-osprim-posix.adb, s-tfsetr-default.adb,
5788         s-tpopsp-posix.adb, s-traces-default.adb, s-trafor-default.adb,
5789         s-trafor-default.ads, s-tratas-default.adb, a-numaux-x86.adb,
5790         a-numaux-x86.ads, a-astaco.adb, a-astaco.ads, a-caldel.adb,
5791         a-caldel.ads, a-charac.ads, a-chlat1.ads, a-chlat9.ads, a-colien.adb,
5792         a-colien.ads, a-colire.adb, a-colire.ads, a-comlin.adb, a-cwila1.ads,
5793         a-cwila9.ads, ada.ads, a-decima.adb, a-diocst.ads, a-direio.adb,
5794         a-dynpri.adb, a-dynpri.ads, a-excpol.adb, a-flteio.ads, a-fwteio.ads,
5795         a-inteio.ads, a-interr.adb, a-intnam.ads, a-intsig.adb, a-intsig.ads,
5796         a-ioexce.ads, a-iwteio.ads, a-lfteio.ads, a-lfwtio.ads, a-liteio.ads,
5797         a-liwtio.ads, a-llftio.ads, a-llfwti.ads, a-llitio.ads, a-lliwti.ads,
5798         a-ncelfu.ads, a-ngcefu.adb, a-ngcefu.ads, a-ngcoty.adb, a-ngelfu.adb,
5799         a-ngelfu.ads, a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads,
5800         a-nllcty.ads, a-nllefu.ads, a-nscefu.ads, a-nscoty.ads, a-nselfu.ads,
5801         a-nucoty.ads, a-nudira.adb, a-nuelfu.ads, a-nuflra.adb, a-numaux.ads,
5802         a-numeri.ads, a-reatim.adb, a-retide.adb, a-retide.ads, a-sequio.adb,
5803         a-sequio.ads, a-sfteio.ads, a-sfwtio.ads, a-siocst.ads, a-siteio.ads,
5804         a-siwtio.ads, a-ssicst.ads, a-ssitio.ads, a-ssiwti.ads, a-stmaco.ads,
5805         a-storio.adb, a-strbou.adb, a-strfix.adb, a-string.ads, a-strmap.adb,
5806         a-strsea.adb, a-strsup.adb, a-strunb.ads, a-ststio.adb, a-stunau.adb,
5807         a-stunau.ads, a-stwibo.adb, a-stwifi.adb, a-stwifi.ads, a-stwima.adb,
5808         a-stwise.adb, a-stwisu.adb, a-suteio.adb, a-suteio.ads, a-swuwti.adb,
5809         a-swuwti.ads, a-teioed.adb, a-ticoau.adb, a-ticoau.ads, a-ticoio.adb,
5810         a-tideau.adb, a-tideio.adb, a-tienau.adb, a-tienio.adb, a-tifiio.adb,
5811         a-tiflio.adb, a-tigeau.adb, a-tigeau.ads, a-tiinio.adb, a-timoau.adb,
5812         a-timoio.adb, a-timoio.ads, a-tiocst.ads, a-titest.adb, a-titest.ads,
5813         a-witeio.adb, a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads,
5814         a-wtcstr.ads, a-wtdeau.adb, a-wtdeio.adb, a-wtenau.adb, a-wtenio.adb,
5815         a-wtfiio.adb, a-wtflio.adb, a-wtgeau.adb, a-wtinau.adb, a-wtinio.adb,
5816         a-wtinio.ads, a-wtmoau.adb, a-wtmoio.adb, a-wttest.adb, calendar.ads,
5817         dec.ads, dec-io.adb, dec-io.ads, directio.ads, errno.c, g-bubsor.adb,
5818         g-bubsor.ads, g-busora.adb, g-busora.ads, g-busorg.adb, g-busorg.ads,
5819         g-casuti.adb, g-casuti.ads, g-debuti.ads, g-heasor.adb, g-heasor.ads,
5820         g-hesora.adb, g-hesora.ads, g-hesorg.adb, g-hesorg.ads, g-htable.adb,
5821         g-htable.ads, g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads,
5822         g-memdum.adb, g-memdum.ads, g-sestin.ads, g-signal.ads, g-signal.adb,
5823         gnat.ads, g-souinf.ads, g-speche.adb, g-speche.ads, g-table.adb,
5824         g-table.ads, g-thread.adb, g-thread.ads, ioexcept.ads, i-vxwoio.adb,
5825         i-vxwoio.ads, math_lib.adb, s-assert.adb, s-assert.ads, s-asthan.ads,
5826         s-bitops.adb, s-bitops.ads, s-boarop.ads, s-carsi8.adb, s-carsi8.ads,
5827         s-carun8.adb, s-carun8.ads, s-casi16.adb, s-casi16.ads, s-casi32.adb,
5828         s-casi32.ads, s-casi64.adb, s-casi64.ads, s-casuti.adb, s-casuti.ads,
5829         s-caun16.adb, s-caun16.ads, s-caun32.adb, s-caun32.ads, s-caun64.adb,
5830         s-caun64.ads, s-direio.adb, s-direio.ads, sequenio.ads, s-errrep.adb,
5831         s-errrep.ads, s-exnint.adb, s-exnint.ads, s-exnllf.adb, s-exnllf.ads,
5832         s-exnlli.adb, s-exnlli.ads, s-expint.adb, s-expint.ads, s-explli.adb,
5833         s-explli.ads, s-expllu.adb, s-expllu.ads, s-expmod.adb, s-expmod.ads,
5834         s-expuns.adb, s-expuns.ads, s-fore.adb, s-fore.ads, s-geveop.adb,
5835         s-geveop.ads, s-htable.adb, s-htable.ads, s-imgbiu.adb, s-imgbiu.ads,
5836         s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads, s-imgdec.adb,
5837         s-imgdec.ads, s-imgenu.adb, s-imgenu.ads, s-imgint.adb, s-imgint.ads,
5838         s-imgllb.adb, s-imgllb.ads, s-imglld.adb, s-imglld.ads, s-imglli.adb,
5839         s-imglli.ads, s-imgllu.adb, s-imgllu.ads, s-imgllw.adb, s-imgllw.ads,
5840         s-imgrea.ads, s-imguns.adb, s-imguns.ads, s-imgwiu.adb, s-imgwiu.ads
5841         s-interr.ads, s-io.adb, s-mantis.adb, s-mantis.ads, s-osprim.ads,
5842         s-pack03.adb, s-pack03.ads, s-pack05.adb, s-pack05.ads, s-pack06.adb,
5843         s-pack06.ads, s-pack07.adb, s-pack07.ads, s-pack09.adb, s-pack09.ads,
5844         s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads, s-pack12.adb,
5845         s-pack12.ads, s-pack13.adb, s-pack13.ads, s-pack14.adb, s-pack14.ads,
5846         s-pack15.adb, s-pack15.ads, s-pack17.adb, s-pack17.ads, s-pack18.adb,
5847         s-pack18.ads, s-pack19.adb, s-pack19.ads, s-pack20.adb, s-pack20.ads,
5848         s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads, s-pack23.adb,
5849         s-pack23.ads, s-pack24.adb, s-pack24.ads, s-pack25.adb, s-pack25.ads,
5850         s-pack26.adb, s-pack26.ads, s-pack27.adb, s-pack27.ads, s-pack28.adb,
5851         s-pack28.ads, s-pack29.adb, s-pack29.ads, s-pack30.adb, s-pack30.ads,
5852         s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads, s-pack34.adb,
5853         s-pack34.ads, s-pack35.adb, s-pack35.ads, s-pack36.adb, s-pack36.ads,
5854         s-pack37.adb, s-pack37.ads, s-pack38.adb, s-pack38.ads, s-pack39.adb,
5855         s-pack39.ads, s-pack40.adb, s-pack40.ads, s-pack41.adb, s-pack41.ads,
5856         s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads, s-pack44.adb,
5857         s-pack44.ads, s-pack45.adb, s-pack45.ads, s-pack46.adb, s-pack46.ads,
5858         s-pack47.adb, s-pack47.ads, s-pack48.adb, s-pack48.ads, s-pack49.adb,
5859         s-pack49.ads, s-pack50.adb, s-pack50.ads, s-pack51.adb, s-pack51.ads,
5860         s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads, s-pack54.adb,
5861         s-pack54.ads, s-pack55.adb, s-pack55.ads, s-pack56.adb, s-pack56.ads,
5862         s-pack57.adb, s-pack57.ads, s-pack58.adb, s-pack58.ads, s-pack59.adb,
5863         s-pack59.ads, s-pack60.adb, s-pack60.ads, s-pack61.adb, s-pack61.ads,
5864         s-pack62.adb, s-pack62.ads, s-pack63.adb, s-pack63.ads, s-scaval.adb,
5865         s-scaval.ads, s-sequio.adb, s-sequio.ads, s-stache.adb, s-stache.ads,
5866         s-stratt.adb, s-stratt.ads, s-strcom.adb, s-strcom.ads, s-strops.adb,
5867         s-strops.ads, s-taasde.ads, s-tadeca.adb, s-tadeca.ads, s-tadert.adb,
5868         s-tadert.ads, s-taenca.adb, s-taenca.ads, s-taprob.adb, s-taprob.ads,
5869         s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads, s-tasini.adb,
5870         s-tasini.ads, s-taskin.adb, s-taskin.ads, s-tasque.adb, s-tasque.ads,
5871         s-tasren.ads, s-tasres.ads, s-tassta.adb, s-tassta.ads, s-tasuti.adb,
5872         s-tasuti.ads, s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
5873         s-tpoben.adb, s-tpoben.ads, s-tpobop.ads, s-tporft.adb, s-tposen.ads,
5874         s-traces.adb, s-traces.ads, s-tratas.adb, s-tratas.ads, s-valint.ads,
5875         s-unstyp.ads, s-veboop.adb, s-veboop.ads, s-vector.ads, s-vercon.adb,
5876         s-vercon.ads, s-wchcnv.adb, s-wchcnv.ads, s-wchjis.adb, s-wchjis.ads,
5877         s-wchstw.adb, s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, s-widboo.adb,
5878         s-widboo.ads, s-widcha.adb, s-widcha.ads, s-widenu.adb, s-widenu.ads,
5879         s-widlli.adb, s-widlli.ads, s-widllu.adb, s-widllu.ads, s-wwdcha.ads,
5880         s-wwdenu.adb, s-wwdwch.ads, text_io.ads, s-stchop.ads, s-stchop.adb,
5881         s-stchop-vxworks.adb, a-intnam-darwin.ads, s-osinte-darwin.adb,
5882         s-osinte-darwin.ads, s-vxwork-x86.ads, a-numaux-darwin.ads,
5883         a-numaux-darwin.adb, a-chzla1.ads, a-chzla9.ads, a-lfztio.ads,
5884         a-liztio.ads, a-llfzti.ads, a-llizti.ads, a-sfztio.ads, a-siztio.ads,
5885         a-ssizti.ads, a-stzbou.adb, a-stzfix.adb, a-stzfix.ads, a-stzmap.adb,
5886         a-stzsea.adb, a-stzsup.adb, a-swunau.adb, a-swunau.ads, a-szuzti.adb,
5887         a-szuzti.ads, a-tiunio.ads, a-wwunio.ads, a-ztcoau.adb, a-ztcoau.ads,
5888         a-ztcoio.adb, a-ztcoio.ads, a-ztcstr.ads, a-ztdeau.adb, a-ztdeio.adb,
5889         a-ztenio.adb, a-ztexio.adb, a-ztfiio.adb, a-ztflio.adb, a-ztgeau.adb,
5890         a-ztinau.adb, a-ztinio.adb, a-ztinio.ads, a-ztmoau.adb, a-ztmoio.adb,
5891         a-zttest.adb, a-zzunio.ads, g-utf_32.adb: Fix header style.
5892         "GNU Ada" to GNAT, use proper casing for RUN-TIME.
5893
5894 2005-06-14  Jose Ruiz  <ruiz@adacore.com>
5895             Arnaud Charlet  <charlet@adacore.com>
5896
5897         * a-sytaco.ads, a-sytaco.adb (Suspension_Object): These objects are no
5898         longer protected objects. They have been replaced by lower-level
5899         suspension objects made up by a mutex and a condition variable (or
5900         their equivalent given a particular OS) plus some internal data to
5901         reflect the state of the suspension object.
5902         (Initialize, Finalize): Add this initialization procedure for
5903         Suspension_Object, which is a controlled type.
5904         (Finalize): Add the finalization procedure for Suspension_Object,
5905         which is a controlled type.
5906
5907         * a-sytaco-vxworks.ads, a-sytaco-vxworks.adb: Remove this version of
5908         Ada.Synchronous_Task_Control because there is no longer a need for a
5909         VxWorks specific version of this package. Target dependencies
5910         has been moved to System.Task_Primitives.Operations.
5911
5912         * s-osinte-mingw.ads (pCRITICAL_SECTION): Remove this type which is no
5913         longer needed.
5914         (InitializeCriticalSection, EnterCriticalSection,
5915         LeaveCriticalSection, DeleteCriticalSection): Replace the type
5916         pCriticalSection by an anonymous access type so that we avoid problems
5917         of accessibility to local objects.
5918
5919         * s-taprop.ads, s-taprop-posix.adb, s-taprop-vxworks.adb,
5920         s-taprop-mingw.adb, s-taprop-vms.adb, s-taprop-solaris.adb,
5921         s-taprop-os2.adb, s-taprop-dummy.adb, s-taprop-hpux-dce.adb,
5922         s-taprop-linux.adb, s-taprop-irix.adb, s-taprop-irix-athread.adb,
5923         s-taprop-tru64.adb, s-taprop-lynxos.adb (Elaboration Code): No longer
5924         set the environment task mask here.
5925         (Current_State): Add this function that returns the state of the
5926         suspension object.
5927         (Set_False): Add this procedure that sets the state of the suspension
5928         object to False.
5929         (Set_True): Add this procedure that sets the state of the suspension
5930         object to True, releasing the task that was suspended, if any.
5931         (Suspend_Until_True): Add this procedure that blocks the calling task
5932         until the state of the object is True. Program_Error is raised if
5933         another task is already waiting on that suspension object.
5934         (Initialize): Add this procedure for initializing the suspension
5935         object. It initializes the mutex and the condition variable which are
5936         used for synchronization and queuing, and it sets the internal state
5937         to False.
5938         (Finalize): Add this procedure for finalizing the suspension object,
5939         destroying the mutex and the condition variable.
5940
5941         * s-taspri-posix.ads, s-taspri-vxworks.ads, s-taspri-mingw.ads,
5942         s-taspri-vms.ads, s-taspri-solaris.ads, s-taspri-os2.ads,
5943         s-taspri-dummy.ads, s-taspri-hpux-dce.ads, s-taspri-linux.ads,
5944         s-taspri-tru64.ads, s-taspri-lynxos.ads (Suspension_Object): New object
5945         which provides a low-level abstraction (using operating system
5946         primitives) for Ada.Synchronous_Task_Control.
5947         This object is made up by a mutex (for ensuring mutual exclusion), a
5948         condition variable (for queuing threads until the condition is
5949         signaled), a Boolean (State) indicating whether the object is open,
5950         and a Boolean (Waiting) reflecting whether there is a task already
5951         suspended on this object.
5952
5953         * s-intman.ads, s-intman-irix.adb, s-intman-irix-athread.adb,
5954         s-intman-dummy.adb, s-intman-solaris.adb, s-intman-vms.adb,
5955         s-intman-vms.ads, s-intman-mingw.adb,
5956         (Initialize_Interrupts): Removed, no longer used.
5957
5958         * s-inmaop-posix.adb, s-inmaop-vms.adb, s-inmaop-dummy.adb,
5959         (Setup_Interrupt_Mask): New procedure.
5960
5961         * s-intman-vxworks.ads, s-intman-vxworks.adb:  Update comments.
5962
5963         * s-inmaop.ads (Setup_Interrupt_Mask): New procedure
5964
5965         * s-interr.adb: Add explicit call to Setup_Interrupt_Mask now that
5966         this is no longer done in the body of s-taprop
5967         (Server_Task): Explicitely test for Pending_Action in case
5968         System.Parameters.No_Abort is True.
5969
5970         * s-taasde.adb: Add explicit call to Setup_Interrupt_Mask now that this
5971         is no longer done in the body of s-taprop
5972
5973 2005-06-14  Robert Dewar  <dewar@adacore.com>
5974
5975         * system-unixware.ads, system-linux-ia64.ads, system-freebsd-x86.ads,
5976         system-lynxos-ppc.ads, system-lynxos-x86.ads, system-linux-x86_64.ads,
5977         system-tru64.ads, system-aix.ads, system-vxworks-sparcv9.ads,
5978         system-vxworks-xscale.ads, system-solaris-x86.ads, system-irix-o32.ads,
5979         system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
5980         system-linux-x86.ads, system-vxworks-mips.ads, system-vxworks-mips.ads,
5981         system-os2.ads, system-interix.ads, system-solaris-sparc.ads,
5982         system-solaris-sparcv9.ads, system-vms.ads, system-mingw.ads,
5983         system-vms-zcx.ads, system-vxworks-ppc.ads, system.ads,
5984         system-darwin-ppc.ads, system-vxworks-x86.ads, system-linux-ppc.ads,
5985         system-linux-hppa.ads, system-vms_64.ads,
5986         system-vxworks-alpha.ads: Minor comment update for
5987         AI-362 (unit is Pure).
5988
5989         * a-chahan.ads, a-chahan.adb: Move Wide_Wide functions to Conversions
5990         Add pragma Pure_05 for AI-362
5991         Make remaining conversion functions obsolescent in Ada 95
5992
5993         * impunit.adb: Change a-swunha to a-swuwha and a-szunha to a-szuzha
5994         Make Ada.Wide_Characters[.Unicode] available in Ada 95 mode
5995         Add entries for a-wichun and a-zchuni
5996         Add a-widcha a-zchara for AI-395
5997         Add a-chacon (Ada.Characters.Conversions) to list of Ada 2005 routines
5998
5999         * Makefile.rtl: Change a-swunha to a-swuwha and a-szunha to a-szuzha
6000         Add entries for a-wichun.o and a-zchuni.o
6001         Entries for a-widcha.o and a-zchara.o
6002         Add entry for a-chacon.o
6003
6004         * a-ztenau.adb: Add with of Ada.Characters.Conversions
6005
6006         * a-chacon.ads, a-chacon.adb: New files.
6007
6008         * a-taside.adb, a-exstat.adb, a-excach.adb: Add warnings off to allow
6009         categorization violations.
6010
6011         * a-strmap.ads: Add pragma Pure_05 for AI-362
6012         * a-strmap.ads: Add note on implicit categorization for AI-362
6013
6014         * a-tgdico.ads, a-taside.ads: Add pragma Preelaborate_05 for AI-362
6015
6016         * par-prag.adb: Dummy entry for pragma Persistent_BSS
6017         Set Ada_Version_Explicit, for implementation of AI-362
6018         Add processing for pragma Pure_05 and Preelaborate_05
6019         Add entry for Assertion_Policy pragma
6020
6021         * sem.adb: Make sure predefined units are compiled with GNAT_Mode true
6022         when needed for proper processing of categorization stuff
6023
6024         * sem_cat.adb:
6025         For several cases, make errors in preealborate units warnings,
6026         instead of errors, if GNAT_Mode is set. For AI-362.
6027
6028         * sem_elab.adb (Check_Elab_Call): Call to non-static subprogram in
6029         preelaborate unit is now warning if in GNAT mode
6030
6031         * s-stoele.ads: Document AI-362 for pragma preelaborate
6032
6033 2005-06-14  Doug Rupp  <rupp@adacore.com>
6034
6035         * s-parame-vms.ads, s-parame-hpux.ads, s-parame-vms-restrict.ads,
6036         s-parame-ae653.ads, s-parame.ads, s-parame-vxworks.ads:
6037         Default_Exception_Msg_Max_Length: new parameter.
6038
6039         * a-except.ads: (Exception_Msg_Max_Length): Set to
6040         System.Parameters.Default_Exception_Msg_Max_Length
6041         Add pragma Preelaborate_05 for AI-362
6042         Add warnings off to allow categorization violations for AI-362
6043
6044 2005-06-14  Vincent Celier  <celier@adacore.com>
6045
6046         * gnatsym.adb: Adapt to modification of package Symbols: procedure
6047         Process is now in package Processing.
6048
6049         * symbols.ads, symbols.adb:
6050         (Processing): New package, containing procedure Process
6051
6052         * symbols-vms-alpha.adb:
6053         Replaced by symbols-vms.adb and symbols-processing-vms-alpha.adb
6054
6055         * symbols-vms.adb, symbols-processing-vms-alpha.adb,
6056         symbols-processing-vms-ia64.adb: New files.
6057
6058 2005-06-14  Pascal Obry  <obry@adacore.com>
6059
6060         * mlib-tgt-mingw.adb (Build_Dynamic_Library): Replace the previous
6061         implementation. This new version generates the proper DllMain routine
6062         to initialize the SAL. The DllMain is generated in Ada and compiled
6063         before being added as option to the library build command.
6064
6065 2005-06-14  Doug Rupp  <rupp@adacore.com>
6066             Pascal Obry  <obry@adacore.com>
6067
6068         * adaint.c (__gnat_to_canonical_file_spec): Check for error returns in
6069         call to decc$translate_vms.
6070         (__gnat_locate_regular_file): Check if the path_val contains quotes. We
6071         need to remove those quotes before catenating the filename.
6072         (__gnat_locate_exec_on_path): improvements to the Win32 section:
6073         * avoid allocating the memory twice for better efficiency;
6074         * allocate 32K buffer for environment expansion as suggested by MSDN;
6075         * prepend ".;" to the path so that current directory is searched too.
6076
6077 2005-06-14  Robert Dewar  <dewar@adacore.com>
6078
6079         * a-except.adb (Exception_Identity): return Null_Id for null occurrence
6080         instead of raising CE (AI-241)
6081         Add warnings off to allow categorization violations for AI-362
6082
6083 2005-06-14  Robert Dewar  <dewar@adacore.com>
6084
6085         * ali-util.adb, gnatbind.adb: Remove references to
6086         Force_RM_Elaboration_Order.
6087
6088         * switch-b.adb: Remove recognition of -f switch
6089
6090 2005-06-14  Pascal Obry  <obry@adacore.com>
6091
6092         * a-stzunb.adb, a-stwiun.adb, a-strunb.adb (Realloc_For_Chunk): New
6093         implementation which is slightly more efficient.
6094
6095 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
6096             Javier Miranda  <miranda@adacore.com>
6097             Ed Schonberg  <schonberg@adacore.com>
6098             Hristian Kirtchev  <kirtchev@adacore.com>
6099
6100         * exp_ch4.adb (Expand_Allocator_Expression): When an initialized
6101         allocator's designated type is a class-wide type, and compiling for
6102         Ada 2005, emit a run-time check that the accessibility level of the
6103         type given in the allocator's expression is not deeper than the level
6104         of the allocator's access type.
6105
6106         (Tagged_Membership): Modified to gives support to abstract interface
6107         types.
6108
6109         * a-tags.ads, a-tags.adb (type Type_Specific_Data): Add component
6110         Access_Level.
6111         (Descendant_Tag): New predefined function
6112         (Is_Descendant_At_Same_Level): New predefined function
6113         (Get_Access_Level): New private function
6114         (Set_Access_Level): New private procedure
6115         (IW_Membership): New function. Given the tag of an object and the tag
6116         associated with an interface, evaluate if the object implements the
6117         interface.
6118         (Register_Interface_Tag): New procedure used to initialize the table of
6119         interfaces used by the IW_Membership function.
6120         (Set_Offset_To_Top): Initialize the Offset_To_Top field in the prologue
6121         of the dispatch table.
6122         (Inherit_TSD): Modified to copy the table of ancestor tags plus the
6123         table of interfaces of the parent.
6124         (Expanded_Name): Raise Tag_Error if the passed tag equals No_Tag.
6125         (External_Tag): Raise Tag_Error if the passed tag equals No_Tag.
6126         (Parent_Tag): Return No_Tag in the case of a root-level tagged type,
6127         and raise Tag_Error if the passed tag equalis No_Tag, to conform with
6128         Ada 2005 semantics for the new predefined function.
6129
6130         * exp_attr.adb (Expand_N_Attribute, case Attribute_Input): Generate
6131         call to Descendant_Tag rather than Internal_Tag.
6132         (Expand_N_Attribute, case Attribute_Output): Emit a check to ensure that
6133         the accessibility level of the attribute's Item parameter is not deeper
6134         than the level of the attribute's prefix type. Tag_Error is raised if
6135         the check fails. The check is only emitted for Ada_05.
6136         (Find_Stream_Subprogram): If a TSS exists on the type itself for the
6137         requested stream attribute, use it.
6138         (Expand_N_Attribute_Reference): If the designated type is an interface
6139         then rewrite the referenced object as a conversion to force the
6140         displacement of the pointer to the secondary dispatch table.
6141         (Expand_N_Attribute_Reference, case 'Constrained): Return false if this
6142         is a dereference of an object with a constrained partial view.
6143
6144         * exp_ch5.adb (Expand_N_Return_Statement): When a function's result
6145         type is a class-wide type, emit a run-time check that the accessibility
6146         level of the returned object is not deeper than the level of the
6147         function's master (only when compiling for Ada 2005).
6148
6149         * exp_disp.ads, exp_disp.adb (Ada_Actions, Action_Is_Proc,
6150         Action_Nb_Arg): Add entries for new Get_Access_Level and
6151         Set_Access_Level routines in these tables.
6152         (Make_DT): Generate a call to set the accessibility level of the
6153         tagged type in its TSD.
6154         (Make_DT): Code cleanup. The functionality of generating all the
6155         secondary dispatch tables has been moved to freeze_record_type.
6156         (Make_Abstract_Interface_DT): Minor code cleanup.
6157         (Set_All_DT_Position): Code cleanup. As part of the code cleanup
6158         this subprogram implements a new algorithm that provides the
6159         same functionality and it is more clear in case of primitives
6160         associated with abstract interfaces.
6161         (Set_All_Interfaces_DTC_Entity): Removed. As part of the code
6162         clean up, the functionality of this subprogram is now provided
6163         by Set_All_DT_Position.
6164         (Write_DT): New subprogram: a debugging procedure designed to be called
6165         within gdb to display the dispatch tables associated with a tagged
6166         type.
6167         (Collect_All_Interfaces): New subprogram that collects the whole list
6168         of interfaces that are directly or indirectly implemented by a tagged
6169         type.
6170         (Default_Prim_Op_Position): New subprogram that returns the fixed
6171         position in the dispatch table of the default primitive operations.
6172         (Expand_Interface_Actuals): New subprogram to generate code that
6173         displaces all the actuals corresponding to class-wide interfaces to
6174         reference the interface tag of the actual object.
6175         (Expand_Interface_Conversion): New subprogram. Reference the base of
6176         the object to give access to the interface tag associated with the
6177         secondary dispatch table.
6178         (Expand_Interface_Thunk): New subprogram that generates the code of the
6179         thunk. This is required for compatibility with the C+ ABI.
6180         (Make_Abstract_Interface_DT): New subprogram that generate the
6181         declarations for the secondary dispatch tables associated with an
6182         abstract interface.
6183         (Set_All_Interfaces_DTC_Entity): New subprogram that sets the DTC_Entity
6184         attribute for each primitive operation covering interface subprograms
6185         (Expand_Dispatching_Call, Fill_DT_Entry, Make_DT, Set_All_DT_Position):
6186         These subprograms were upgraded to give support to abstract interfaces
6187
6188         * rtsfind.ads (type RE_Id): Add RE_Descendant_Tag,
6189         RE_Is_Descendant_At_Same_Level, RE_Get_Access_Level, and
6190         RE_Set_Access_Level.
6191         (RE_Unit_Table): Add entries for new Ada.Tags operations.
6192         Add support to call the followig new run-time subprograms:
6193         IW_Membership, Register_Interface_Tag, and Set_Offset_To_Top
6194
6195         * sem_ch3.adb (Constant_Redeclaration): Allow a deferred constant to
6196         match its full declaration when both have an access definition with
6197         statically matching designated subtypes.
6198         (Analyze_Component_Declaration): Delete commented out code that was
6199         incorrectly setting the scope of an anonymous access component's type.
6200         (Process_Discriminants): Set Is_Local_Anonymous_Access for the type of
6201         an access discriminant when the containing type is nonlimited.
6202         (Make_Incomplete_Type_Declaration): Create an incomplete type
6203         declaration for a record type that includes self-referential access
6204         components.
6205         (Check_Anonymous_Access_Types): Before full analysis of a record type
6206         declaration, create anonymous access types for each self-referential
6207         access component.
6208         (Analyze_Component_Declaration, Array_Type_Declaration): Indicate that
6209         an access component in this context is a Local_Anonymous_Access, for
6210         proper accessibility checks.
6211         (Access_Definition): Set properly the scope of the anonymous access type
6212         created for a stand-alone access object.
6213         (Find_Type_Of_Object): An object declaration may be given with an access
6214         definition.
6215         (Complete_Subprograms_Derivation): New subprogram used to complete
6216         type derivation of private tagged types implementing interfaces.
6217         In this case some interface primitives may have been overriden
6218         with the partial-view and, instead of re-calculating them, they
6219         are included in the list of primitive operations of the full-view.
6220         (Build_Derived_Record_Type): Modified to give support to private
6221         types implemening interfaces.
6222         (Access_Definition): Reject ALL on anonymous access types.
6223         (Build_Derived_Record_Type): In the case of Ada 2005, allow a tagged
6224         type derivation to occur at a deeper accessibility level than the
6225         parent type.
6226         For the case of derivation within a generic body however, disallow the
6227         derivation if the derived type has an ancestor that is a formal type
6228         declared in the formal part of an enclosing generic.
6229         (Analyze_Object_Declaration): For protected objects, remove the check
6230         that they cannot contain interrupt handlers if not declared at library
6231         level.
6232         (Add_Interface_Tag_Components): New subprogram to add the tag components
6233         corresponding to all the abstract interface types implemented by a
6234         record type or a derived record type.
6235         (Analyze_Private_Extension_Declaration, Build_Derived_Record_Type,
6236         Derived_Type_Declaration, Find_Type_Name, Inherit_Components,
6237         Process_Full_View, Record_Type_Declaration): Modified to give
6238         support to abstract interface types
6239         (Collect_Interfaces): New subprogram that collects the list of
6240         interfaces that are not already implemented by the ancestors
6241         (Process_Full_View): Set flag Has_Partial_Constrained_View appropriately
6242         when partial view has no discriminants and full view has defaults.
6243         (Constrain_Access): Reject a constraint on a general access type
6244         if the discriminants of the designated type have defaults.
6245         (Access_Subprogram_Declaration): Associate the Itype node with the inner
6246         full-type declaration or subprogram spec. This is required to handle
6247         nested anonymous declarations.
6248         (Analyze_Private_Extension_Declaration, Build_Derived_Record_Type,
6249         Derived_Type_Declaration, Find_Type_Name, Inherit_Components,
6250         Process_Full_View, Record_Type_Declaration): Modified to give
6251         support to abstract interface types
6252         (Derive_Subprograms): Addition of a new formal to indicate if
6253         we are in the case of an abstact-interface derivation
6254         (Find_Type_Of_Subtype_Indic): Moved from the body of the package
6255         to the specification because it is requied to analyze all the
6256         identifiers found in a list of interfaces
6257
6258         * debug.adb: Complete documentation of flag "-gnatdZ"
6259
6260         * exp_ch3.adb: Implement config version of persistent_bss pragma
6261         (Check_Stream_Attributes): Use Stream_Attribute_Available instead of
6262         testing for TSS presence to properly enforce visibility rules.
6263         (Freeze_Record_Type): Code cleanup. Modified to call the subprogram
6264         Make_Abstract_Interfaces_DT to generate the secondary tables
6265         associated with abstract interfaces.
6266         (Build_Init_Procedure): Modified to initialize all the tags
6267         corresponding.
6268         (Component_Needs_Simple_Initialization): Similar to other tags,
6269         interface tags do not need initialization.
6270         (Freeze_Record_Type): Modified to give support to abstract interface
6271         types.
6272         (Expand_N_Object_Declaration): Do not generate an initialization for
6273         a scalar temporary marked as internal.
6274
6275         * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): Handle properly an
6276         in-out parameter that is a component in an initialization procedure,
6277         whose constraint might depend on discriminants, and that may be
6278         misaligned because of packing or representation clauses.
6279         (Is_Legal_Copy): New predicate to determine whether a possibly
6280         misaligned in-out actual can actually be passed by copy/return. This
6281         is an error in case the type is by_reference, and a warning if this is
6282         the consequence of a DEC import pragma on the subprogram.
6283         (Expand_Call, Freeze_Subprogram): Modified to give support to abstract
6284         interface types
6285         (Expand_Inlined_Call): Mark temporary generated for the return value as
6286         internal, so that no useless scalar normalization is generated for it.
6287         (Expand_N_Subprogram_Declaration): Save unanalyzed body so calls to
6288         null procedure can always be inlined.
6289         (Expand_N_Subprogram_Declaration): If this is the declaration of a null
6290         procedure, generate an explicit empty body for it.
6291
6292         * exp_util.ads, exp_util.adb (Find_Interface_ADT): New subprogram.
6293         Given a type implementing an interface, returns the corresponding
6294         access_disp_table value.
6295         (Find_Interface_Tag): New subprogram. Given a type implementing an
6296         interface, returns the record component containing the tag of the
6297         interface.
6298         (Find_Interface_Tag): New overloaded subprogram. Subsidiary to the
6299         previous ones that return the corresponding tag and access_disp_table
6300         entities.
6301         (Is_Predefined_Dispatching_Operation): Determines if a subprogram
6302         is a predefined primitive operation.
6303         (Expand_Subtype_From_Expr): If the expression is a selected component
6304         within an initialization procedure, compute its actual subtype, because
6305         the component may depend on the discriminants of the enclosing record.
6306
6307         * i-cpp.ads, i-cpp.adb:
6308         This package has been left available for compatibility with previous
6309         versions of the frontend. As part of the new layout this is now a
6310         dummy package that uses declarations available at a-tags.ads
6311
6312         * par-ch3.adb (P_Identifier_Declarations): Give an error for use of
6313         "constant access" and "aliased [constant] access" when not compiling
6314         with -gnat05.
6315         Suppress Ada 2005 keyword warning if -gnatwY used
6316         (P_Identifier_Declarations): Add support for object declarations with
6317         access definitions.
6318         (Private_Extension_Declaration): Complete the documentation
6319         (P_Derived_Type_Def_Or_Private_Ext_Decl): Fill the inteface_list
6320         attribute in case of private extension declaration
6321         (P_Type_Declaration): Mark as "abstract" the type declarations
6322         corresponding with protected, synchronized and task interfaces
6323         (P_Declarative_Items): "not" and "overriding" are overriding indicators
6324         for a subprogram or instance declaration.
6325
6326         * sem_ch12.adb (Analyze_Subprogram_Instantiation): Verify that an
6327         instantiation that is a dispatching operation has controlling access
6328         parameters that are null excluding.
6329         Save and restore Ada_Version_Explicit, for implementation of AI-362
6330         (Validate_Derived_Type_Instance): Add check for abstract interface
6331         types.
6332         (Analyze_Formal_Package): Establish Instantiation source for the copy of
6333         the generic that is created to represent the formal package.
6334         (Analyze_Package_Instantiation): Instantiate body immediately if the
6335         package is a predefined unit that contains inlined subprograms, and
6336         we are compiling for a Configurable_Run_Time.
6337         (Instantiate_Formal_Subprogram): Indicate that null default subprogram
6338         If the program has a null default, generate an empty body for it.
6339
6340         * sem_ch6.adb, sem_ch9.adb (Analyze_Subprograms_Declaration): Update
6341         error message condition, null procedures are correctly detected now.
6342         (New_Overloaded_Entity): Bypass trivial overriding indicator check
6343         for subprograms in the context of protected types. Instead, the
6344         indicator is examined in Sem_Ch9 while analysing the subprogram
6345         declaration.
6346         (Check_Overriding_Indicator): Check consistency of overriding indicator
6347         on subprogram stubs as well.
6348         (Analyze_Subprogram_Declaration): Diagnose null procedures declared at
6349         the library level.
6350         (Analize_Subprogram_Specification): When analyzing a subprogram in which
6351         the type of the first formal is a concurrent type, replace this type
6352         by the corresponding record type.
6353         (Analyze_Subprogram_Body): Undo the previous work.
6354         (Analyze_Procedure_Call): If the call has the form Object.Op, the
6355         analysis of the prefix ends up analyzing the call itself, after which
6356         we are done.
6357         (Has_Interface_Formals): New subprogram subsidiary to analyze
6358         subprogram_specification that returns true if some non
6359         class-wide interface subprogram is found
6360         (New_Overloaded_Entity): Modified to give support to abstract
6361         interface types
6362         (Conforming_Types): In Ada 2005 mode, conformance checking of anonymous
6363         access to subprograms must be recursive.
6364         (Is_Unchecked_Conversion): Improve the test that recognizes
6365         instantiations of Unchecked_Conversion, and allows them in bodies that
6366         are to be inlined by the front-end. When the body comes from an
6367         instantiation, a reference to Unchecked_Conversion will be an
6368         Expanded_Name, even though the body has not been analyzed yet.
6369         Replace Is_Overriding and Not_Overriding in subprogram_indication with
6370         Must_Override and Must_Not_Override, to better express intent of AI.
6371         (Analyze_Subprogram_Body): If an overriding indicator is given, check
6372         that it is consistent with the overrinding status of the subprogram
6373         at this point.
6374         (Analyze_Subprogram_Declaration): Indicate that a null procedure is
6375         always inlined.
6376         If the subprogram is a null procedure, indicate that it does not need
6377         a completion.
6378
6379         * sem_disp.adb (Check_Controlling_Type): Give support to entities
6380         available through limited-with clauses.
6381         (Check_Dispatching_Operation): A stub acts like a body, and therefore is
6382         allowed as the last primitive of a tagged type if it has no previous
6383         spec.
6384         (Override_Dispatching_Operation, Check_Dispatching_Operation): Modified
6385         to give support to abstract interface types
6386
6387         * sem_res.adb (Valid_Conversion): Perform an accessibility level check
6388         in the case where the target type is an anonymous access type of an
6389         object or component (that is, when Is_Local_Anonymous_Access is true).
6390         Prevent the special checks for conversions of access discriminants in
6391         the case where the discriminant belongs to a nonlimited type, since
6392         such discriminants have their accessibility level defined in the same
6393         way as a normal component of an anonymous access type.
6394         (Resolve_Allocator): When an allocator's designated type is a class-wide
6395         type, check that the accessibility level of type given in the
6396         allocator's expression or subtype indication is not statically deeper
6397         than the level of the allocator's access type.
6398         (Check_Discriminant_Use): Diagnose discriminant given by an expanded
6399         name in a discriminant constraint of a record component.
6400         (Resolve_Explicit_Dereference): Do not check whether the type is
6401         incomplete when the dereference is a use of an access discriminant in
6402         an initialization procedure.
6403         (Resolve_Type_Conversion): Handle conversions to abstract interface
6404         types.
6405         (Valid_Tagged_Conversion): The conversion of a tagged type to an
6406         abstract interface type is always valid.
6407         (Valid_Conversion): Modified to give support to abstract interface types
6408         (Resolve_Actuals): Enable full error reporting on view conversions
6409         between unrelated by_reference array types.
6410         The rule for view conversions of arrays with aliased components is
6411         weakened in Ada 2005.
6412         Call to obsolescent subprogram is now considered to be a violation of
6413         pragma Restrictions (No_Obsolescent_Features).
6414         (Check_Direct_Boolean_Operator): If the boolean operation has been
6415         constant-folded, there is nothing to check.
6416         (Resolve_Comparison_Op, Resolve_Equality_Op, Resolve_Boolean_Op): Defer
6417         check on possible violation of restriction No_Direct_Boolean_Operators
6418         until after expansion of operands, to prevent spurious errors when
6419         operation is constant-folded.
6420
6421         * sem_type.ads, sem_type.adb (Covers, Intersect_Types, Specific_Type,
6422         Has_Compatible_Type): Modified to give support to abstract interface
6423         types.
6424         (Interface_Present_In_Ancestor): New function to theck if some ancestor
6425         of a given type implements a given interface
6426
6427         * sem_ch4.adb (Analyze_Call): Handle properly an indirect call whose
6428         prefix is a parameterless function that returns an access_to_procedure.
6429         (Transform_Object_Operation): Handle properly function calls of the
6430         form Obj.Op (X), which prior to analysis appear as indexed components.
6431         (Analyze_One_Call): Complete the error notification to help new Ada
6432         2005 users.
6433         (Analyze_Allocator): For an allocator without an initial value, where
6434         the designated type has a constrained partial view, a discriminant
6435         constraint is illegal.
6436
6437 2005-06-14  Robert Dewar  <dewar@adacore.com>
6438
6439         * a-textio.adb (Set_Col): Fix two errors noticed recently, having to
6440         do with treatment of Set_Col when positioned at end of line character.
6441
6442 2005-06-14  Robert Dewar  <dewar@adacore.com>
6443
6444         * atree.adb: (Elist*): Protect against uninitialized field
6445
6446 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
6447
6448         * checks.adb (Install_Null_Excluding_Check): Do not generate checks
6449         for an attribute reference that returns an access type.
6450         (Apply_Discriminant_Check): No need for check if (designated) type has
6451         constrained partial view.
6452
6453         (Apply_Float_Conversion_Check): Generate a short-circuit expression for
6454         both bound checks, rather than a conjunction.
6455         (Insert_Valid_Check): If the expression is an actual that is an indexed
6456         component of a bit-packed array, force expansion of the packed element
6457         reference, because it is specifically inhibited elsewhere.
6458
6459 2005-06-14  Vincent Celier  <celier@adacore.com>
6460
6461         * clean.adb (Clean_Project): Correctly delete executable specified as
6462         absolute path names.
6463
6464         * make.adb (Gnatmake): Allow relative executable path names with
6465         directory information even when project files are used.
6466         (Change_To_Object_Directory): Fail gracefully when unable to change
6467         current working directory to object directory of a project.
6468         (Gnatmake): Remove exception handler that could no longer be exercized
6469         (Compile_Sources.Compile): Use deep copies of arguments, as some of them
6470         may be deallocated by Normalize_Arguments.
6471         (Collect_Arguments): Eliminate empty arguments
6472
6473         * gnatcmd.adb (All_Projects): New Boolean flag, initialized to False,
6474         and set to True when -U is used for GNAT PRETTY or GNAT METRIC.
6475         (Check_Project): Return False when Project is No_Project. Return True
6476         when All_Projects is True.
6477         (GNATCmd): Recognize switch -U for GNAT PRETTY and GNAT METRIC and set
6478         All_Projects to True.
6479         Minor reformatting
6480
6481 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
6482             Javier Miranda  <miranda@adacore.com>
6483             Thomas Quinot  <quinot@adacore.com>
6484             Robert Dewar  <dewar@adacore.com>
6485             Hristian Kirtchev  <kirtchev@adacore.com>
6486             Gary Dismukes  <dismukes@adacore.com>
6487
6488         * einfo.ads, einfo.adb (Is_Local_Anonymous_Access): New flag on
6489         anonymous access types, to indicate that the accessibility level of
6490         the type is determined by that of the enclosing declaration.
6491         (Has_Persistent_BSS): New flag
6492         (Set_Is_Primitive_Wrapper): Upgrade the barrier to allow the usage
6493         of this attribute with functions.
6494         (Is_Primitive_Wrapper): Remove the barrier.
6495         (Has_Specified_Stream_Input, Has_Specified_Stream_Output,
6496         Has_Specified_Stream_Read, Has_Specified_Stream_Write):
6497         New subprograms.
6498         (Set_Has_Specified_Stream_Input, Set_Has_Specified_Stream_Output,
6499         Set_Has_Specified_Stream_Read, Set_Has_Specified_Stream_Write):
6500         New subprograms.
6501         (Is_Pure_Unit_Access_Type): New flag
6502         (Abstract_Interfaces): Complete the assertion to cover all usages.
6503         (Set_Is_Interface): Complete the assertion to cover all usages.
6504         (Is_Primitive_Wrapper): New attribute.
6505         (Is_Obsolescent): Now applies to all entities (though it is only set
6506         for subprograms currently)
6507         New flag:  Has_Constrained_Partial_View, to implemente Ada 2005 AI-363,
6508         which solves various problems concerning access subtypes.
6509         (Has_Persistent_BSS): New flag
6510         (Is_Primitive_Wrapper, Set_Primitive_Wrapper): Code cleanup.
6511         Remove these subprograms because this attribute is currently
6512         not used.
6513         New entity flags:
6514         Has_Specified_Stream_Input (Flag190)
6515         Has_Specified_Stream_Output (Flag191)
6516         Has_Specified_Stream_Read (Flag192)
6517         Has_Specified_Stream_Write (Flag193)
6518         Present in all type and subtype entities. Set for a given view if the
6519         corresponding stream-oriented attribute has been defined by an
6520         attribute definition clause. When such a clause occurs, a TSS is set
6521         on the underlying full view; the flags are used to track visibility of
6522         the attribute definition clause for partial or incomplete views.
6523         (Is_Pure_Unit_Access_Type): New flag
6524         Clarify use of Is_Internal.
6525         (Is_Primitive_Wrapper): New attribute present in primitive subprograms
6526         internally generated to wrap the invocation of tasks and protected
6527         types that implement interfaces.
6528         (Implementation_Base_Type): Documentation correction
6529         (Is_Obsolescent): Now applies to all entities (though it is only set
6530         for subprograms currently)
6531         New flag:  Has_Constrained_Partial_View, to implement Ada 2005 AI-363,
6532         which solves various problems concerning access subtypes.
6533
6534         * exp_ch9.adb (Type_Conformant_Parameters): Introduce mode conformance
6535         for examined parameters. Identify unequal parameter list lengths as
6536         non-conformant parameters.
6537         (Overriding_Possible): Do not check for "All" qualifier in declaration
6538         of controlling access parameter, following prescription of AI-404.
6539         (Build_Entry_Wrapper_Spec, Build_Entry_Wrapper_Body): New subprograms
6540         that build the procedure body that wraps an entry invocation
6541         (Build_Corresponding_Record, Build_Protected_Sub_Specification,
6542         Expand_N_Protected_Body, Expand_N_Protected_Type_Declaration,
6543         Expand_N_Task_Body, Expand_N_Task_Type_Declaration): Modified to
6544         give support to abstract interface types
6545
6546         * freeze.adb (Freeze_Entity): Issue error message if
6547         Is_Pure_Unit_Access_Type set, unless we are in Ada 2005 mode and the
6548         type has no storage pool (Ada 2005) AI-366.
6549         Also modified to give support to abstract interface types
6550         (Freeze_Subprogram): Issue an error for a dispatching subprogram with an
6551         Inline_Always pragma.
6552
6553         * par-ch9.adb (P_Task_Items): Reserved words "not" or "overriding" may
6554         now begin an entry declaration.
6555         (P_Entry_Or_Subprogram_With_Indicator): New procedure in
6556         P_Protected_Operation_Declaration_Opt. Parse an entry declaration or
6557         a subprogram declaration preceded by an overriding indicator.
6558         (P_Protected_Operation_Declaration_Opt): Add case for parsing entry
6559         declarations or subprogram declarations preceded by reserved words
6560         "not" or "overriding".
6561         (P_Entry_Declaration): Update comment. Parse and check overriding
6562         indicator, set semantic flags of entry declarations.
6563         (P_Task): New error message in case of private applied
6564         to a task type declaration.
6565         (P_Protected): New error message in case of private applied
6566         to a task type declaration.
6567
6568         * sem_ch7.adb (Preserve_Full_Attributes): Modified to handle the case
6569         in which the full view of a type implementing an interface is a
6570         concurrent type.
6571         (Has_Overriding_Pragma): Remove obsolete implementation of AI-218.
6572         Declare_Inherited_Private_Subprograms): If an explicit operation
6573         overrides an operation that is inherited in the private part, mark the
6574         explicit one as overriding, to enable overriding indicator checks.
6575         (Preserve_Full_Attributes): Propagate Is_Unchecked_Union attribute from
6576         full view to partial view, to simplify handling in back-end.
6577
6578         * sprint.adb: Print interface lists where needed: derived types,
6579         protected types, task types.
6580         output "is null" for null procedures. Part of implementation of
6581
6582         * sem_cat.adb (Validate_Access_Type_Declaration): Implement AI-366
6583         relaxation of rules for access types in pure, shared passive partitions.
6584
6585         * exp_strm.adb (Build_Mutable_Record_Read_Procedure): Reorganize to
6586         first read discriminants into temporary objects, performing checks on
6587         the read values, then possibly performing discriminant checks on the
6588         actual (if it is constrained), and only finally reading the components
6589         into a constrained temporary object.
6590         (Build_Elementary_Input_Call): Adjust the specific circuitry for the
6591         case of reading discriminants of a mutable record type to recognize
6592         the new form of the code generated by
6593         Build_Mutable_Record_Read_Procedure.
6594
6595         * exp_tss.ads, exp_tss.adb (Make_Init_Proc_Name): Reimplement in terms
6596         of a simple call to Make_TSS_Name.
6597         (Make_TSS_Name_Local): Add the TSS name as the last thing in the name
6598         buffer, in order for Is_TSS to work correctly on local TSS names.
6599
6600         * sem_attr.ads, sem_attr.adb (Resolve_Attribute, case 'Access): Use flag
6601         Is_Local_Anonymous_Access to check legaliy of attributes in the
6602         context of  access components and stand-alone access objects.
6603         (Stream_Attribute_Available): In Ada 95 mode, a stream attribute is
6604         treated as available for a limited private type if there is an
6605         attribute_definition_clause that applies to its full view, but not in
6606         other cases where the attribute is available for the full view
6607         (specifically, the sole fact that the full view is non-limited does not
6608         make the attribute available for the partial view).
6609         (Build_Access_Subprogram_Type): Diagnose attempt to apply 'access to a
6610         non-overloaded intrinsic subprogram.
6611         (Check_Stream_Attribute): Reject an attribute reference for an
6612         unavailable stream attribute even if the prefix is not a limited type
6613         (case of a 'Input attribute reference for an abstract, non-classwide
6614         type)
6615         (Stream_Attribute_Available): New function to determine whether a stream
6616         attribute is available at a place.
6617         (Check_Attribute): Use Stream_Attribute_Available instead of just
6618         testing for TSS presence on the implementation base type.
6619         (Analyze_Attribute): Modified to give support to task interfaces.
6620         (Analyze_Access_Attribute): Add error check for use of an Access (or
6621         Unrestricted_Access) attribute with a subprogram marked as
6622         Inline_Always.
6623         (Analyze_Attribute, case Attribute_Address): Add error check for use of
6624         an Address attribute with a subprogram marked as Inline_Always.
6625         Update Eval_Attribute to handle new value of Width from AI-395
6626
6627         * sem_ch13.adb (Analyze_Stream_TSS_Definition): New subprogram.
6628         (Analyze_Attribute_Definition_Clause, cases Input, Output, Read, Write):
6629         Factor common code across the stream-oriented attribute circcuits into
6630         a new subprogram, Analyze_Stream_TSS_Definition. The new uniform
6631         processing is functionally identical to the previous duplicated one,
6632         except that an expression that denotes an abstract subprogram will now
6633         be rejected, as mandated by AI-195 item 5.
6634
6635         * sem_util.ads, sem_util.adb (Type_Access_Level): Use flag
6636         Is_Local_Anonymous_Access to apply accessibility checks to access
6637         components and stand-alone access objects.
6638         (Has_Discriminant_Dependent_Constraint): Moved to spec for use
6639         elsewhere.
6640         (Is_Potentially_Persistent_Type): New function
6641         (Is_Dependent_Component_Of_Mutable_Object): If the enclosing object is
6642         a heap-object whose type has a constrained partial view, the object is
6643         unconstrained and the component may depend on a discriminant, making its
6644         renaming illegal.
6645
6646         * sinfo.ads, sinfo.adb
6647         (Must_Not_Override): Flag applicable to N_Entry_Declaration.
6648         (Must_Override): Flag applicable to N_Entry_Declaration.
6649         Indicate that interface_list can appear in single task and single
6650         protected declarations.
6651         Replace Is_Overriding and Not_Overriding with Must_Override and
6652         Must_Not_Override, to better express intent of AI.
6653         Is_Overriding, Not_Overriding: Ada2005 flags that indicate the presence
6654         of an overriding indicator in a subprogram or instance.
6655         Ada 2005 (AI-248) Null_Present can appear in a procedure specification.
6656         Add the overriding indicator [[not] overriding] construct to the
6657         following grammar productions:
6658          ENTRY_DECLARATION
6659          GENERIC_INSTANTIATION
6660          SUBPROGRAM_SPECIFICATION
6661
6662         * par-ch10.adb (P_Compilation_Unit): Subprogram declaration or body
6663         can start with an overriding indicator.
6664
6665         * par-ch6.adb (P_Subprogram): Recognize overriding indicator, and set
6666         flags accordingly on subrogram specifications or instances.
6667
6668         * sem_ch8.adb:
6669         (Analyze_Subprogram_Renaming): For a renaming_as_body, verify that the
6670         overriding_indicator, if present, is consistent with status of spec.
6671         Improve error message for null-excluding checks on controlling access
6672         parameters.
6673         (Check_In_Previous_With_Clause): Protect the frontend against
6674         previously reported critical errors in the context clauses.
6675         Save and restore Ada_Version_Explicit, for implementation of AI-362
6676         (Analyze_Subprogram_Renaming): If the new entity is a dispatching
6677         operation verify that controlling formals of the renamed entity that
6678         are access parameters are explicitly non-null.
6679         (Find_Expanded_Name): Improve error message when prefix is an illegal
6680         reference to a private child unit.
6681
6682         * exp_imgv.adb, s-imgwch.ads, s-imgwch.adb, s-valwch.adb,
6683         s-valwch.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb, s-wwdwch.adb:
6684         Rewrite to correspond to new wide character names in AI-395
6685
6686         * par-ch12.adb (P_Formal_Subprogram_Declaration): Recognize null
6687         default procedures.
6688
6689 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
6690             Robert Dewar  <dewar@adacore.com>
6691
6692         * errout.ads, errout.adb (Error_Msg_NW): Only emit warning on user
6693         code, not on the bodies of predefined operations, to cut down on
6694         spurious noise.
6695
6696 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
6697
6698         * exp_aggr.adb (Aggr_Size_OK): An array with no components can always
6699         be expanded in place. The size computation does not require a
6700         subtraction, which would raise an exception on a compiler built with
6701         assertions when the upper bound is Integer'first.
6702         (Flatten): For an array of composite components, take into account the
6703         size of the components to determine whether it is safe to expand the
6704         array into a purely positional representation.
6705
6706 2005-06-14  Thomas Quinot  <quinot@adacore.com>
6707
6708         * exp_ch2.adb (Param_Entity): Take the case of an expanded_name
6709         denoting a formal parameter into account.
6710
6711 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
6712
6713         * exp_ch7.adb (Find_Node_To_Be_Wrapped): If the node appears within
6714         the entry_call alternative of a conditional entry call, wrap the
6715         conditional entry call itself.
6716
6717 2005-06-14  Nicolas Setton  <setton@adacore.com>
6718             Ed Schonberg  <schonberg@adacore.com>
6719
6720         * exp_dbug.ads, exp_dbug.adb (Get_Variant_Part): Fix the encoding of
6721         the "simple_choice" member in a variant record, in accordance with the
6722         description in the package spec: the information output for a constant
6723         should be "S number", not "SS number".
6724         (Get_Encoded_Name): Return at once if not generating code. Avoids name
6725         overflow problem when compiling with -gnatct, for ASIS/gnatmetrics.
6726
6727 2005-06-14  Thomas Quinot  <quinot@adacore.com>
6728
6729         * exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): For an
6730         RACW without any primitives, do not generate the if statement for
6731         dispatching by name in the PolyORB/DSA case, as it would be malformed
6732         (it would have an Elsif_Parts list that is not No_List, but with a
6733         length of 0).
6734
6735 2005-06-14  Robert Dewar  <dewar@adacore.com>
6736
6737         * exp_intr.adb, par-ch5.adb: Minor fix to error message text
6738
6739 2005-06-14  Jose Ruiz  <ruiz@adacore.com>
6740
6741         * fe.h: Add entry for Opt.Exception_Locations_Suppressed so that gigi
6742         can determine whether pragma Suppress_Exception_Locations is in effect.
6743
6744         * utils2.c (build_call_raise): Do not pass the file name to the
6745         exception handler if pragma Suppress_Exception_Locations is in effect.
6746         (build_allocator): Add and process arg IGNORE_INIT_TYPE.
6747
6748 2005-06-14  Emmanuel Briot  <briot@adacore.com>
6749
6750         * g-debpoo.adb (Deallocate, Dereference): Improve output.
6751
6752 2005-06-14  Nicolas Roche  <roche@adacore.com>
6753
6754         * g-diopit.adb (Wildcard_Iterator): Return directly if Path is equal
6755         to ""
6756         (Next_Level): Fix minor bug in handling of ../dir case
6757         (Read): Add dir separator to Directory name so that "" is understood as
6758          "/"
6759
6760 2005-06-14  Pascal Obry  <obry@adacore.com>
6761
6762         * g-dynhta.ads, g-dynhta.adb (Reset): Free the table itself after
6763         releasing the items.
6764
6765 2005-06-14  Vincent Celier  <celier@adacore.com>
6766             Cyrille Comar  <comar@adacore.com>
6767
6768         * g-os_lib.ads, g-os_lib.adb (Non_Blocking_Spawn): Two new versions
6769         with output file descriptor and with output file name.
6770         (Dup, Dup2): Now global procedures as they are used by two subprograms
6771         (Copy): Allocate the 200K buffer on the heap rather than on the stack.
6772
6773 2005-06-14  Thomas Quinot  <quinot@adacore.com>
6774
6775         PR ada/6717
6776
6777         * g-socket.ads, g-socket.adb (Inet_Addr): Special case the all-ones
6778         broadcast address.
6779         (Create_Selector): Bind listening socket used to create the signalling
6780         socket pair to 127.0.0.1 to limit the scope for 'theft' of connection.
6781         Set listen backlog to 1 to ensure that we detect socket theft by a
6782         failure of our own connect(2) call.
6783         (Check_Selector): Improve documentation of the selector mechanism.
6784         (Broadcast_Inet_Addr): New constant.
6785
6786 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
6787
6788         * layout.adb (Discrimify): Remove resetting of Vtype to the underlying
6789         type which turns out to be an incomplete and incorrect fix.
6790         (Layout_Array_Type): Use Underlying_Type when checking whether the scope
6791         of the type is declared in a record (for determination of insertion
6792         type).
6793         (SO_Ref_From_Expr): Test whether Vtype denotes a partial or full view of
6794         a private type and ensure that the primary entity is used for the type
6795         of the newly created function's V formal by taking the Etype of the
6796         view.
6797
6798 2005-06-14  Javier Miranda  <miranda@adacore.com>
6799             Jose Ruiz  <ruiz@adacore.com>
6800             Robert Dewar  <dewar@adacore.com>
6801             Ed Schonberg  <schonberg@adacore.com>
6802
6803         * lib-load.ads, lib-load.adb (Load_Unit): Addition of a new parameter
6804         that indicates if we are parsing a compilation unit found in a
6805         limited-with clause.
6806         It is use to avoid the circularity check.
6807
6808         * par.ads, par.adb (Par): Addition of a new parameter to indicate if
6809         we are parsing a compilation unit found in a limited-with clause. This
6810         is use to avoid the circularity check.
6811
6812         * par-load.adb (Load): Indicate Lib.Load_Unit if we are loading the
6813         unit as a consequence of parsing a limited-with clause. This is used
6814         to avoid the circularity check.
6815
6816         * sem_ch10.adb: Suppress Ada 2005 unit warning if -gnatwY used
6817         (Analyze_Context): Limited-with clauses are now allowed
6818         in more compilation units.
6819         (Analyze_Subunit_Context, Check_Parent): Protect the frontend
6820         againts previously reported critical errors in context clauses
6821         (Install_Limited_Withed_Unit): Code cleanup plus static detection
6822         of two further errors: renamed subprograms and renamed packages
6823         are not allowed in limited with clauses.
6824         (Install_Siblings): Do not install private_with_clauses on the package
6825         declaration for a non-private child unit.
6826         (Re_Install_Parents): When a parent of the subunit is reinstalled,
6827         reset visibility of child units properly.
6828         (Install_Withed_Unit): When a child unit appears in a with_clause of its
6829         parent, it is immediately visible.
6830
6831 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
6832             Emmanuel Briot  <briot@adacore.com>
6833
6834         * lib-xref.ads, lib-xref.adb (Generate_Definition): Treat any entity
6835         declared within an inlined body as referenced, to prevent spurious
6836         warnings.
6837         (Output_One_Ref): If an entity renames an array component, indicate in
6838         the ALI file that this aliases (renames) the array. Capture as well
6839         function renamings that rename predefined operations.
6840         Add information about generic parent for package and subprogram
6841         instances.
6842         (Get_Type_Reference): For a subtype that is the renaming of an actual in
6843         an instantiation, use the first_subtype to ensure that we don't generate
6844         cross-reference information for internal types.
6845         For objects and parameters of a generic private type, retain the '*'
6846         indicator to distinguish such an entity from its type.
6847
6848         * ali.ads (Xref_Entity_Record): New fields Iref_File_Num and Iref_Line,
6849         to store information about instantiated entities.
6850
6851         * ali.adb (Scan_ALI): Add support for parsing the reference to the
6852         generic parent
6853
6854         * xref_lib.adb (Skip_To_Matching_Closing_Bracket): New subprogram
6855         (Parse_Identifier_Info, Parse_Token): Add support for the generic parent
6856         information.
6857
6858 2005-06-10  Doug Rupp  <rupp@adacore.com>
6859             Arnaud Charlet  <charlet@adacore.com>
6860             Olivier Hainque  <hainque@adacore.com>
6861             Jose Ruiz  <ruiz@adacore.com>
6862
6863         * Make-lang.in: Add initialize.o when needed.
6864         Remove obsolete references to RT_FLAGS.
6865         Add missing dependencies for sdefault.o
6866
6867         * initialize.c: New file.
6868
6869         * init.c [VMS] Declare ADA$ externs weak to fix build problem in IVMS.
6870         [VMS] cond_signal_table: Fix problem in declaration.
6871         [VMS] __gnat_error_handler: rewrite.
6872         Move all __gnat_initialize() routines to initialize.c
6873         Specialize the former "hpux" section to "hppa hpux", as this is what the
6874         section really is here for and we now have other hpux ports that need
6875         different contents.
6876         (__gnat_adjust_context_for_raise) i386-linux: First version of this
6877         function for this target. Adjust PC by one in the machine context. This
6878         adjustment was previously done in the MD_FALLBACK_FRAME_STATE_FOR, but
6879         it is more reliable to do that in the signal handler itself.
6880         (__gnat_install_handler) i386-linux: Set SA_SIGINFO in the sigaction
6881         flags, so that the handler is passed the context structure to adjust
6882         prior to the raise.
6883         (__gnat_error_handler) i386-linux: Adjust the signature to match what a
6884         SA_SIGINFO sigaction should look like. Call
6885         __gnat_adjust_context_for_raise before actually raising. Cleanup unused
6886         Machine_State_Operations stuff.
6887         Add conditional code so that the x86_64 is also supported.
6888
6889 2005-06-14  Pascal Obry  <obry@adacore.com>
6890
6891         * mdll.adb (Get_Dll_Name): New routine that returns the DLL name given
6892         the library name.
6893
6894 2005-06-14  Robert Dewar  <dewar@adacore.com>
6895
6896         * opt.ads, opt.adb: New flags for persistent_bss mode
6897         Add Ada_Version_Explicit, for implementation of AI-362
6898         Add Assertions_Enabled_Config and associated handling
6899         Needed since setting can be changed with Assertion_Policy pragma
6900         Add new flag Warn_On_Ada_2005_Compatibility
6901
6902         * switch-c.adb: Recognize -gnatwy/Y
6903         Set Ada_Version_Explicit, for implementation of AI-362
6904         The -gnatg switch now includes -gnatyu
6905
6906         * usage.adb: Add -gnatwy/Y
6907         Remove wrong asterisk on -gnatwX line
6908         Add line for -gnatyu switch
6909
6910 2005-06-14  Vincent Celier  <celier@adacore.com>
6911
6912         * osint.adb (Add_Default_Search_Dirs): Put source and object
6913         directories of project files before directories coming from
6914         ADA_INCLUDE_PATH and ADA_OBJECTS_PATH.
6915
6916 2005-06-14  Robert Dewar  <dewar@adacore.com>
6917
6918         PR ada/15613
6919
6920         * par-ch2.adb (Scan_Pragma_Argument): New procedure
6921         (P_Pragma): Implement RM 2.8(4) check for no pos args after named args
6922
6923 2005-06-14  Vincent Celier  <celier@adacore.com>
6924
6925         * prep.adb (Preprocess): Ignore error when scanning the first token of
6926         a line.
6927
6928 2005-06-14  Vincent Celier  <celier@adacore.com>
6929
6930         * prj-nmsc.adb (Suffix_For): Change default suffix for C++ to ".cpp"
6931         (Check_Stand_Alone_Library): If the specified reference symbol file does
6932         not exist, only issue a warning when the symbol policy is not
6933         Controlled. And, when symbol policy is Compliant, set the symbol
6934         policy to Autonomous.
6935
6936 2005-06-14  Vincent Celier  <celier@adacore.com>
6937
6938         * prj-part.adb (Pre_Parse_Context_Clause): Call Set_Is_Not_Last_In_List
6939         when the project file in a with clause is not the last one, that is the
6940         project file name is followed by a comma.
6941         * prj-pp.adb: (First_With_In_List): New Boolean global variable
6942         (Print): Issue list of project files separated by commas in with clauses
6943         according to the values returned by Is_Not_Last_In_List.
6944         * prj-tree.ads, prj-tree.adb: (Is_Not_Last_In_List): New function
6945         (Set_Is_Not_Last_In_List): New procedure
6946
6947 2005-06-14  Eric Botcazou  <ebotcazou@adacore.com>
6948
6949         * s-atacco.ads: Put a pragma No_Strict_Aliasing on Object_Pointer.
6950
6951 2005-06-14  Robert Dewar  <dewar@adacore.com>
6952
6953         * scng.adb: Add call to new Check_EOF routine
6954         (Accumulate_Checksum): Properly handle wide wide char >= 2 ** 24
6955         Add some comments regarding wide character handling
6956
6957         * style.ads, styleg.ads, styleg.adb: Implement new style switch -gnatyu
6958
6959         * stylesw.ads, stylesw.adb: Implement new style switch -gnatyu
6960
6961         * g-utf_32.ads, g-utf_32.adb (Is_UTF_32_Non_Graphic): Other_Format
6962         characters are now considered graphic characters and hence yield false
6963         in this call.
6964
6965         * nmake.adt: Modify header so that xnmake does not generate output
6966         files with multiple blank lines.
6967
6968         * treeprs.adt: Remove a blank line so that output from xtreeprs does
6969         not have an extra blank line
6970
6971 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
6972
6973         * sem_aggr.adb (Aggregate_Constraint_Checks): Apply a conversion to the
6974         expression when the component type is an anonymous access type to
6975         ensure that appropriate accessibility checks are done.
6976
6977         * sem_ch5.adb (Analyze_Assignment): Apply a implicit conversion to the
6978         expression of an assignment when the target object is of an anonymous
6979         access type. This ensures that required accessibility checks are done.
6980         (One_Bound): Move the check for type Universal_Integer to
6981         Process_Bounds.
6982         (Process_Bounds): Check whether the type of the preanalyzed range is
6983         Universal_Integer, and in that case set Typ to Integer_Type prior
6984         to setting the type of the original range and the calls to One_Bound.
6985
6986 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
6987
6988         * sem_case.adb (Expand_Others_Choice): Improve warning.
6989
6990 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
6991
6992         * sem_eval.adb (Subtypes_Statically_Match): Use discriminant
6993         constraint of full view if present, when other type is discriminated.
6994         (Eval_Relational_Op): Recognize tests of pointer values against Null,
6995         when the pointer is known to be non-null, and emit appropriate warning.
6996
6997 2005-06-14  Robert Dewar  <dewar@adacore.com>
6998             Ed Schonberg  <schonberg@adacore.com>
6999
7000         PR ada/10671
7001
7002         * sem_prag.adb: Implement pragma Persistent_BSS
7003         Remove obsolete pragma Persistent_Data, Persistent_Object
7004         Set Ada_Version_Explicit, for implementation of AI-362
7005         Test Ada_Version_Explicit for Preelaborate_05 and Pure_05
7006         Add processing for pragma Pure_05 and Preelaborate_05
7007         Add processing for Assertion_Policy pragma
7008         Add pragma identifiers for Assert
7009         (Analyze_Pragma, case Assert): Check number of arguments
7010         (Process_Inline): Additional guard against an illegal program, where the
7011         argument of the pragma is undefined, and warnings on redundant
7012         constructs are enabled.
7013         (Analyze_Pragma, case Obsolescent): Allow an optional second argument
7014         Ada_05 to this pragma, specifying that the pragma is only active in
7015         Ada_05 mode.
7016         (Check_Arg_Order): New procedure
7017         Add appropriate calls to this procedure throughout
7018         Also throughout, check entity name before doing any other checks
7019
7020         * snames.h snames.ads, snames.adb: Add pragma Persistent_BSS
7021         Remove obsolete pragma Persistent_Data, Persistent_Object
7022         Add entries for pragma Pure_05 and Preelaborate_05
7023         Add entries for Assertion_Policy pragma and associated names
7024         Add some names for pragma argument processing
7025
7026         * tbuild.ads, tbuild.adb: (Make_Linker_Section_Pragma): New function
7027
7028 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
7029
7030         * sem_warn.adb (Warn_On_Known_Condition): If the constant expression
7031         appears within a negation (either from source or as a rewriting of
7032         inequality) adjust text of warning accordingly.
7033
7034 2005-06-14  Thomas Quinot  <quinot@adacore.com>
7035
7036         * s-strxdr.adb: Follow AI95-00132
7037
7038 2005-06-14  Arnaud Charlet  <charlet@adacore.com>
7039
7040         * s-tasren.adb (Exceptional_Complete_Rendezvous): Fix race condition.
7041
7042 2005-06-14  Arnaud Charlet  <charlet@adacore.com>
7043             Jose Ruiz  <ruiz@adacore.com>
7044
7045         * s-tposen.adb, s-tpobop.adb
7046         (Exceptional_Complete_Rendezvous): Save the occurrence and not only
7047         the exception id.
7048         (PO_Do_Or_Queue): Before queuing a task on an entry queue we check that
7049         there is no violation of the Max_Entry_Queue_Length restriction (if it
7050         has been set); Program_Error is raised otherwise.
7051         (Requeue_Call): Before requeuing the task on the target entry queue we
7052         check that there is no violation of the Max_Entry_Queue_Length
7053         restriction (if it has been set); Program_Error is raised otherwise.
7054
7055 2005-06-14  Robert Dewar  <dewar@adacore.com>
7056
7057         * styleg.adb: Fix several remaining problems in -gnatyu switch
7058         Blank line count not reset at start
7059         Scanning outside source buffer in some cases
7060         Confusing message for blanks at end of file
7061         Non-empty blank lines not recognized
7062
7063         * nmake.adt: Modify header so that xnmake does not generate output
7064         files with multiple blank lines.
7065
7066         * treeprs.adt: Remove a blank line so that output from xtreeprs does
7067         not have an extra blank line
7068
7069 2005-06-14  Sergey Rybin  <rybin@adacore.com>
7070
7071         * styleg-c.adb (Body_With_No_Spec): Remove ':' from warning message.
7072
7073 2005-06-14  Doug Rupp  <rupp@adacore.com>
7074             Vincent Celier  <celier@adacore.com>
7075
7076         * vms_conv.ads, vms_conv.adb: Remove "Library" command.
7077         Update copyright.
7078
7079         * vms_data.ads: Add entry for -gnaty/Y [NO]ADA_2005_COMPATIBILITY
7080         Remove "Library" command.
7081         Change keyword for style check -gnatyd from NOCRLF to
7082         DOS_LINE_ENDINGS.
7083         Remove useless second style check keyword NONE
7084         Remove help documentation for inexistent style check keyword
7085         RM_COLUMN_LAYOUT.
7086         Add help documentation for style check keywords DOS_LINE_ENDINGS,
7087         UNNECESSARY_BLANK_LINES and XTRA_PARENS
7088         Add UNNECESSARY_BLANK_LINES for -gnatyu
7089         Add qualifiers /ALL_PROJECTS (-U) for GNAT PRETTY and GNAT METRIC
7090
7091         * ug_words: Add entry for -gnaty/Y [NO]ADA_2005_COMPATIBILITY
7092
7093 2005-06-14  Vincent Celier  <celier@adacore.com>
7094
7095         * makegpr.adb (Compile_Link_With_Gnatmake): Invoke gnatmake with -d if
7096         gprmake was invoked with -d.
7097         (Compile_Sources): If -d was used, output the "completed ..." message
7098         for each compilation.
7099         (Scan_Arg): Recognize new switch -d
7100         When -c and at least one main is specified, set
7101         Unique_Compile to True to guarantee that no other sources will be
7102         compiled.
7103
7104 2005-06-14  Matthew Heaney  <heaney@adacore.com>
7105
7106         * a-swunha.ads, a-swunha.adb: Removed. Replaced by a-swuwha.ad[sb]
7107         * a-swuwha.ads, a-swuwha.adb: New files
7108
7109         * a-szunha.ads, a-szunha.adb: Removed, replaced by a-szuzha.ad[sb]
7110         * a-szuzha.ads, a-szuzha.adb: New files.
7111
7112         * a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb, a-crbtgk.ads,
7113         a-crbtgk.adb, a-crbltr.ads, a-coorse.ads, a-coorse.adb, a-convec.ads,
7114         a-convec.adb, a-coinve.ads, a-coinve.adb, a-cohata.ads, a-cohama.ads,
7115         a-cohama.adb, a-ciorse.ads, a-ciorse.adb, a-cihama.ads, a-cihama.adb,
7116         a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cdlili.ads,
7117         a-cdlili.adb, a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cohase.adb,
7118         a-cohase.ads, a-ciorma.ads, a-coorma.ads, a-ciormu.ads, a-coormu.ads,
7119         a-swunha.adb, a-stunha.adb, a-ciorma.adb, a-coorma.adb, a-shcain.ads,
7120         a-shcain.adb, a-chtgke.ads, a-chtgke.adb, a-stwiha.ads, a-stwiha.adb,
7121         a-strhas.adb, a-stzhas.adb: synchronized to the latest version of the
7122         Ada 2005 RM.
7123
7124 2005-06-10  Eric Botcazou  <ebotcazou@adacore.com>
7125             Olivier Hainque  <hainque@adacore.com>
7126             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7127             Pascal Obry  <obry@adacore.com>
7128
7129         * gigi.h: (build_allocator): Add arg IGNORE_INIT_TYPE.
7130
7131         * trans.c (call_to_gnu): Issue a warning for users of Starlet when
7132         making a temporary around a procedure call because of non-addressable
7133         actual parameter.
7134         (process_freeze_entity): If entity is a private type, capture size
7135         information that may have been computed for the full view.
7136         (tree_transform, case N_Allocator): If have initializing expression,
7137         check type for Has_Constrained_Partial_View and pass that to
7138         build_allocator.
7139         (tree_transform, case N_Return_Statement): Pass extra arg to
7140         build_allocator.
7141
7142         * decl.c (annotate_value): Remove early return if -gnatR is not
7143         specified.
7144         (gnat_to_gnu_field): Don't make a packable type for a component clause
7145         if the position is byte aligned, the field is aliased, and the clause
7146         size isn't a multiple of the packable alignment. It serves no useful
7147         purpose packing-wise and would be rejected later on.
7148         (gnat_to_gnu_entity, case object): Pass extra arg to build_allocator.
7149
7150         PR ada/20515
7151         (gnat_to_gnu_entity): Remove use of macro _WIN32 which is wrong in the
7152         context of cross compilers. We use TARGET_DLLIMPORT_DECL_ATTRIBUTES
7153         instead.
7154         (create_concat_name): Idem.
7155
7156 2005-06-10  Robert Dewar  <dewar@adacore.com>
7157             Eric Botcazou  <ebotcazou@adacore.com>
7158             Ben Brosgol  <brosgol@adacore.com>
7159             Cyrille Comar  <comar@adacore.com>
7160             Sergey Rybin  <rybin@adacore.com>
7161             Pascal Obry  <obry@adacore.com>
7162
7163         * gnat_rm.texi: Add documentation for pragma Persistent_BSS
7164         Document second argument (Ada_05) of pragma Obsolescent
7165         Add note that call to subprogram marked with pragma Obsolescent
7166         is now considered to be a violation of program Restrictions
7167         (No_Obsolescent_Features).
7168         (Implementation Defined Pragmas) <Machine_Attribute>: Make it clear
7169         that only machine-dependent attributes are supported.
7170
7171         * gnat_ugn.texi:
7172         Commented out menu lines and empty section for gnatclean examples
7173         Document -gnatwy/Y
7174         Fix some over long lines
7175         Clarify and enhance documentation of ADA_PROJECT_PATH.
7176         Rework section 2.11.2(3) about linking with a non-GNU compiler.
7177         Mention new switch -fcallgraph-info.
7178         Mention new switch -fstack-usage.
7179         For gnatpp, replace '-notab' with '-N' and add this option to Index
7180         Corrected VMS example.
7181         VMS keyword for style check -gnatyd is DOS_LINE_ENDINGS, no NOCRLF
7182         Minor reformatting
7183         Add documentation for -gnatyu switch (unnecessary blank lines)
7184         Document new switch -U for GNAT PRETTY and GNAT METRIC
7185         Add note about Stdcall being handled as C convention on non Windows OS.
7186         Remove some junk typo in description of gnatbind -S switch
7187         Remove reference to Extensions_Allowed pragma
7188         Document the new order of the directories to be searched (source and
7189         object directories of project files before directories in ADA_*_PATH
7190         environment variables.
7191
7192         * g-trasym.ads: Document that IRIX is supported
7193
7194 2005-06-10  Arnaud Charlet  <charlet@adacore.com>
7195
7196         * Makefile.in: Add initialize.o when needed.
7197         Adapt to new VMS package body Symbols and subunits
7198         No specialized version of a-sytaco is needed for VxWorks.
7199
7200         * a-wichun.ads, a-wichun.adb, a-zchuni.ads, a-zchuni.adb: New files.
7201         * a-zchara.ads, a-widcha.ads: New files.
7202
7203         * system-hpux-ia64.ads: New file.
7204
7205         * i-vxwork-x86.ads, i-vxwork.ads (intContext): Add this function which
7206         is imported from the VxWorks kernel.
7207
7208 2005-06-14  Robert Dewar  <dewar@adacore.com>
7209
7210         * g-soliop-mingw.ads, g-soccon-vms.adb, a-swmwco.ads, exp_smem.adb,
7211         fmap.adb, a-szmzco.ads, s-traent-vms.adb, s-traent-vms.ads,
7212         a-direio.ads, a-exctra.ads, a-exexda.adb, a-exextr.adb, a-stream.ads,
7213         s-restri.ads, s-restri.adb, s-traent.adb, s-traent.ads, a-slcain.adb,
7214         a-stzhas.ads, a-tiinau.adb, comperr.adb, exp_ch11.adb, g-boubuf.adb,
7215         g-calend.adb, g-debpoo.ads, g-moreex.ads, gprep.adb, g-regpat.ads,
7216         i-cexten.ads, i-os2thr.ads, makeutl.ads, memroot.adb, mlib-prj.adb,
7217         namet.adb, namet.ads, prj-makr.adb, prj-proc.adb, sem_dist.adb,
7218         sem_elim.ads, s-valint.adb, s-vallli.adb, s-vallli.adb, s-vallli.ads,
7219         s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads, scn.adb,
7220         s-tasinf.adb, targparm.adb, uname.adb, uname.ads, xnmake.adb,
7221         xsinfo.adb, a-direct.ads: Remove extra blank lines. Minor reformatting.
7222
7223 2005-06-14  Thomas Quinot  <quinot@adacore.com>
7224
7225         * xeinfo.adb: Fix typo in comment
7226
7227 2005-06-14  Javier Miranda  <miranda@adacore.com>
7228
7229         * repinfo.ads: Fix typo in comment
7230
7231 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
7232
7233         * s-finimp.adb (Parent_Tag): Delete this imported function (function
7234         Parent_Tag is now in the visible part of Ada.Tags).
7235         (Get_Deep_Controller): Call Ada.Tags.Parent_Tag directly instead of
7236         using imported function.
7237
7238 2005-06-14  Bernard Banner  <banner@adacore.com>
7239
7240         * vxaddr2line.adb: Add support for Windows hosted x86 vxworks. Should
7241         also apply for handling support for VxSim 653.
7242
7243 2005-06-14  Eric Botcazou  <ebotcazou@adacore.com>
7244
7245         * xsnames.adb: Add automatic generation of snames.h.
7246
7247 2005-06-14  Thomas Quinot  <quinot@adacore.com>
7248
7249         * gen-soccon.c: Add IP_MULTICAST_IF constant
7250         Minor reformatting and adjustments to prevent warnings.
7251
7252 2005-06-14  Pascal Obry  <obry@adacore.com>
7253
7254         * seh_init.c: Do not include <sys/stat.h>. This is not needed.
7255
7256 2005-06-03  Andrew Pinski  <pinskia@physics.uc.edu>
7257
7258         * trans.c (gnat_gimplify_expr): Call
7259         recompute_tree_invarant_for_addr_expr when we change
7260         the operand of the ADDR_EXPR.
7261
7262 2005-05-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7263
7264         * misc.c: Don't include errors.h.
7265
7266 2005-05-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7267
7268         * raise.c (db): Add ATTRIBUTE_PRINTF_2.
7269
7270 2005-05-29  Kazu Hirata  <kazu@cs.umass.edu>
7271
7272         * cal.c, decl.c, init.c, raise.c, trans.c, utils2.c: Fix
7273         comment typos.
7274         * gnat_rm.texi, gnat_ugn.texi: Fix typos.
7275
7276 2005-05-16  Nathanael Nerode <neroden@gcc.gnu.org>
7277
7278         PR ada/20270
7279         * Makefile.in: Make TGT_LIB behave correctly.
7280
7281 2005-04-23  DJ Delorie  <dj@redhat.com>
7282
7283         * misc.c: Adjust warning() callers.
7284
7285 2005-04-16  Laurent GUERBY  <laurent@guerby.net>
7286
7287         PR ada/18847
7288         * a-nudira.adb (Value): Check for valid string.
7289         * a-nuflra.adb (Value): Likewise.
7290
7291 2005-04-11  Richard Sandiford  <rsandifo@redhat.com>
7292
7293         * lang.opt: Refer to the GCC internals documentation instead of c.opt.
7294
7295 2005-04-10  Kazu Hirata  <kazu@cs.umass.edu>
7296
7297         * adaint.c, init.c, tracebak.c: Fix comment typos.
7298         * gnat-style.texi, gnat_rm.texi, gnat_ugn.texi: Fix typos.
7299
7300 2005-04-07  Laurent GUERBY  <laurent@guerby.net>
7301             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7302
7303         * Makefile.in: Add make ifeq define for hppa linux tasking support.
7304         * system-hpux.ads: Define Signed_Zeros to be True.
7305         * system-linux-hppa.ads, s-osinte-linux-hppa.ads: New files.
7306
7307 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
7308
7309         * adaint.c, cal.c, decl.c, gigi.h, gmem.c, init.c, link.c,
7310         raise.c, tracebak.c, trans.c, utils2.c, utils.c: Fix comment
7311         typos.
7312
7313 2005-03-30  Tom Tromey  <tromey@redhat.com>
7314
7315         * decl.c (gnat_substitute_in_type): Don't handle FILE_TYPE.
7316
7317 2005-03-30  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
7318
7319         * adaint.c (_gnat_set_close_on_exec): Mark parameters unused.
7320
7321 2005-03-29  Robert Dewar  <dewar@adacore.com>
7322
7323         * sem_res.adb (Resolve_Real_Literal): Generate warning if static
7324         fixed-point expression has value that is not a multiple of the Small
7325         value.
7326
7327         * opt.ads (Warn_On_Bad_Fixed_Value): New flag
7328
7329         * s-taprop-tru64.adb (RT_Resolution): Return an integer number of
7330         nanoseconds.
7331
7332         * ug_words: Add entry for [NO_]BAD_FIXED_VALUES for -gnatwb/-gnatwB
7333
7334 2005-03-29  Vincent Celier  <celier@adacore.com>
7335
7336         * mlib-tgt-vms-ia64.adb, mlib-tgt-vms-alpha.adb
7337         (Build_Dynamic_Library.Version_String): Return the empty string when
7338         Lib_Version is empty or when the symbol policy is not Autonomous.
7339
7340         * symbols-vms-alpha.adb (Finalize): For symbol policy Compliant, when
7341         a symbol is not in the reference symbol file, increase the Major ID
7342         and set the Minor ID to 0.
7343         Use gsmatch=lequal instead of gsmatch=equal
7344
7345 2005-03-29  Doug Rupp  <rupp@adacore.com>
7346
7347         * adaint.c (__gnat_to_canonical_file_spec [VMS]): Check for logical
7348         name and translate.
7349
7350 2005-03-29  Javier Miranda  <miranda@adacore.com>
7351
7352         * a-tags.ads, a-tags.adb (Get_TSD): Subprogram removed.
7353         (Inherit_DT): The first formal has been redefined as a Tag.
7354         This allows us the removal of the subprogram Get_TSD.
7355         (TSD): Replace the call to Get_TSD by the actual code.
7356
7357         * exp_disp.ads, exp_disp.adb: Remove support to call Get_TSD.
7358         (Make_DT): Upgrade the call to Inherit_TSD according to the
7359         new interface: the first formal is now a Tag.
7360
7361         * i-cpp.ads, i-cpp.adb (CPP_Inherit_DT): The first formal has been
7362         redefined as a Tag.
7363         This change allows us to remove the subprogram Get_TSD.
7364         (CPP_Get_TSD): Subprogram removed.
7365         (TSD): Replace the call to CPP_Get_TSD by the actual code.
7366
7367         * rtsfind.ads: Remove support to call the run-time
7368         subprogram Get_TSD
7369
7370 2005-03-29  Robert Dewar  <dewar@adacore.com>
7371
7372         * errutil.adb, errout.adb:
7373         Minor comment updates on Line_Terminator references
7374
7375         * par-ch10.adb: Add ??? comment about line terminator
7376
7377         * styleg.adb (Check_Line_Terminator): Add check for new switch -gnatyd
7378         (check dos line terminator).
7379         (Check_Line_Max_Length): New procedure, split off from the existing
7380         Check_Line_Terminator routine. Separating this out allows -gnatyf to
7381         be properly recognized.
7382
7383         * styleg.adb: Add ??? comment for line terminator reference
7384
7385         * scng.adb (Check_End_Of_Line): Fix bug of -gnatyf being ignored
7386         (Check_End_Of_Line): Add -gnatyd handling (check dos line terminators)
7387
7388         * styleg.ads (Check_Line_Terminator): Add check for new switch -gnatyd
7389         (check dos line terminator).
7390         (Check_Line_Max_Length): New procedure, split off from the existing
7391         Check_Line_Terminator routine. Separating this out allows -gnatyf to
7392         be properly recognized.
7393
7394         * stylesw.ads, stylesw.adb:
7395         Add handling for new -gnatyd switch (check dos line terminator)
7396
7397         * switch-c.adb: Recognize new -gnatyd switch (check dos line terminator)
7398         Recognize -gnatwb/-gnatwB switches
7399         Include Warn_On_Bad_Fixed_Value for -gnatg
7400
7401         * usage.adb:
7402         Add line for new -gnatyd switch (check dos line terminator)
7403
7404         * usage.adb: Add lines for -gnatwb/-gnatwB
7405
7406         * vms_data.ads: Add entry for NOCRLF (-gnatyd)
7407
7408         * vms_data.ads: [NO_]BAD_FIXED_VALUES synonym for -gnatwb/-gnatwB
7409
7410         * gnat_ugn.texi: Fix overlong lines
7411         Document new -gnatyd switch
7412         Document new -gnatwb/-gnatwB switches
7413
7414 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
7415
7416         * exp_ch4.adb (Has_Unconstrained_UU_Component): Use the base type in
7417         order to retrieve the component list of the type, before examining
7418         individual components.
7419
7420         * sem_type.adb (Covers): Types are compatible if one is the base type
7421         of the other, even though their base types might differ when private
7422         views are involved.
7423
7424 2005-03-29  Thomas Quinot  <quinot@adacore.com>
7425
7426         * exp_dist.adb (Add_RAST_Features, PolyORB version): Set the From_Any,
7427         To_Any and TypeCode TSSs on RAS types directly using Set_TSS, instead
7428         of using Set_Renaming_TSS. This ensures that the TSS bodies are not
7429         analyzed if expansion is disabled (which could otherwise cause spurious
7430         error messages if expansion has been disabled due to previous
7431         (unrelated) errors).
7432
7433         * sem_prag.adb (Analyze_Pragma, case Asynchronous): If RAS expansion
7434         is disabled, the entity denoted by the argument is the access type
7435         itself, not an underlying record type, so there is no need to go back
7436         to the Corresponding_Remote_Type.
7437
7438 2005-03-29  Gary Dismukes  <dismukes@adacore.com>
7439             Robert Dewar  <dewar@adacore.com>
7440
7441         * exp_intr.adb (Expand_Dispatching_Constructor_Call): New procedure to
7442         expand a call to an instance of
7443         Ada.Tags.Generic_Dispatching_Constructor into a dispatching call to the
7444         Constructor actual of the instance. A class-wide membership
7445         check is also generated, to ensure that the tag passed to the instance
7446         denotes a type in the class.
7447         (Expand_Intrinsic_Call): Call Expand_Dispatching_Constructor in the case
7448         of Name_Generic_Dispatching_Constructor.
7449
7450         * Makefile.rtl: Add a-tgdico.ads to the list of library units (new Ada
7451         05 unit for AI-260-02).
7452
7453         * a-tgdico.ads: New file.
7454
7455         * impunit.adb (Non_Imp_File_Names_05): Add entry "a-tgdico" for new
7456         predefined Ada 05 generic unit Ada.Tags.Generic_Dispatching_Constructor.
7457
7458         * snames.ads, snames.adb (Preset_Names): Add entry for
7459         Generic_Dispatching_Constructor.
7460
7461         PR ada/20300
7462
7463         * sem_ch8.adb (Find_Direct_Name): Go to root type for check of
7464         character type cases.
7465         (Analyze_Subprogram_Renaming): Add special handling for
7466         the case of renaming of stream attributes when the renaming denotes a
7467         generic formal subprogram association for an abstract formal subprogram.
7468         Check that the attribute is a primitive stream attribute (and not
7469         a class-wide stream attribute) and then rewrite the attribute name
7470         as the name of the appropriate compiler-generated stream primitive.
7471
7472 2005-03-29  Robert Dewar  <dewar@adacore.com>
7473
7474         * exp_util.adb (Remove_Side_Effects): Properly propagate arguments to
7475         recursive calls.
7476         (Is_Possibly_Unaligned_Object): Correct typo that
7477         resulted in inaccurate result for unaligned scalars within records.
7478
7479 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
7480
7481         * freeze.adb (Freeze_Record_Type): If the type of the component is an
7482         itype whose parent is controlled and not yet frozen, do not create a
7483         freeze node for the itype if expansion is disabled.
7484
7485 2005-03-29  Vincent Celier  <celier@adacore.com>
7486
7487         * make.adb (Gnatmake): Don't fail if the main project file is declared
7488         as having no Ada sources. Do not display message "no sources to
7489         compile" in quiet output.
7490
7491 2005-03-29  Doug Rupp  <rupp@adacore.com>
7492
7493         * Makefile.in [VMS] (EXTRA_GNATTOOLS): Add vms_help and gnat.hlp as
7494         extra tools.
7495
7496 2005-03-29  Robert Dewar  <dewar@adacore.com>
7497
7498         * par-ch12.adb (P_Generic): Give better msg for illegal private generic
7499         child.
7500
7501 2005-03-29  Robert Dewar  <dewar@adacore.com>
7502
7503         * par-ch3.adb (P_Type_Declaration): Fix bad error recovery after
7504         missing TYPE Improve the error message generated when compiling a
7505         limited interface in Ada83 or Ada95 mode.
7506
7507 2005-03-29  Robert Dewar  <dewar@adacore.com>
7508
7509         * par-ch4.adb (P_Name): When a bad attribute is returned, return error,
7510         rather than proceed ahead using a junk attribute name.
7511
7512 2005-03-29  Vincent Celier  <celier@adacore.com>
7513
7514         * prj.ads, prj.adb: (Project_Data): Add new component Display_Name
7515
7516         * prj-part.adb (Parse_Single_Project): Set the location of a project
7517         on its defining identifier, rather than on the reserved word "project".
7518
7519         * prj-proc.adb (Expression): Adapt to the fact that default of external
7520         references may be string expressions, not always literal strings.
7521         (Recursive_Process): Set Display_Name equal to Name
7522         when Location is No_Location, that is when there is no actual file.
7523         Get the Display_Name of the project from the source, when it is not a
7524         virtual project.
7525         (Process): Use the Display_Name in error messages
7526
7527         * prj-strt.adb (External_Reference): Allow default to be string
7528         expressions, not only literal strings.
7529
7530 2005-03-29  Vincent Celier  <celier@adacore.com>
7531
7532         * prj-nmsc.adb (Check_Stand_Alone_Library): Do not forbid the symbol
7533         file and the reference symbol file to be the same file.
7534
7535 2005-03-29  Thomas Quinot  <quinot@adacore.com>
7536
7537         * sem_cat.adb (Validate_Remote_Types_Type_Conversion): Perform check to
7538         forbid conversion of a local access-to-subprogram type to a remote one.
7539
7540         * sem_util.adb (Wrong_Type): For a record type that is the expanded
7541         equivalent type for a remote access-to-subprogram type, go back to the
7542         original RAS entity when displaying an error message, so the casing is
7543         the original source casing.
7544
7545 2005-03-29  Robert Dewar  <dewar@adacore.com>
7546
7547         * sem_ch11.adb (Analyze_Raise_Statement): Change message for warning
7548         on param update.
7549
7550 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
7551
7552         * sem_ch4.adb (Analyze_Selected_Component): Do not generate an actual
7553         subtype if code is being pre-analyzed, to prevent un-expanded
7554         references to protected formals, among others.
7555         (Analyze_Explicit_Dereference): If the overloaded prefix includes some
7556         interpretation that can be a call, include the result of the call as a
7557         possible interpretation of the dereference.
7558
7559         * sem_ch5.adb (Process_Bounds): Determine type of range by
7560         pre-analyzing a copy of the original range, and then analyze the range
7561         with the expected type.
7562
7563         * sem_res.adb (Check_Parameterless_Call): For an explicit dereference
7564         with an overloaded prefix where not all interpretations yield an
7565         access to subprogram, do not rewrite node as a call.
7566         (Resolve_Explicit_Dereference): Recognize the previous case and rewrite
7567         the node as a call once the context identifies the interpretation of
7568         the prefix whose call yields the context type.
7569         (Valid_Conversion): For the case of a conversion between
7570         local access-to-subprogram types, check subtype conformance using
7571         Check_Subtype_Conformant instead of Subtype_Conformant, to have a more
7572         detailed error message.
7573
7574 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
7575
7576         * sem_ch6.adb (Set_Formal_Mode): If the subtype has a non_null
7577         indicator, indicate that the formal can never be null.
7578         (Process_Formals): If a formal has a non_null indicator, insert the
7579         resulting subtype immediately before the enclosing subprogram decl,
7580         and not at the beginning of the corresponding declarative part, to
7581         prevent access before elaboration (Ada2005).
7582
7583 2005-03-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7584
7585         PR ada/19956
7586         * utils.c (finish_record_type): Use variable_size when setting sizes.
7587
7588 2005-03-29  Robert Dewar  <dewar@adacore.com>
7589
7590         * xtreeprs.adb, xnmake.adb: Use Stream_IO instead of Text_IO to
7591         guarantee Unix style line terminators for the output files, even when
7592         running on windows.
7593
7594 2005-03-29  Robert Dewar  <dewar@adacore.com>
7595
7596         * a-direct.ads, a-direct.adb (Start_Search): Free allocated search
7597         buffer if an exception is raised.
7598
7599 2005-03-29  Ed Falis  <falis@adacore.com>
7600
7601         * cio.c: Undefine putchar and getchar for VTHREADS: incompatible with
7602         VxWorks 653 1.4
7603
7604 2005-03-29  Robert Dewar  <dewar@adacore.com>
7605
7606         * sem_util.ads: Minor reformatting
7607         * gnat_rm.texi: Minor editing.
7608
7609 2005-03-29  Eric Botcazou  <ebotcazou@adacore.com>
7610
7611         * decl.c (gnat_to_gnu_entity) <E_Variable>: Rework comment.
7612         * trans.c (tree_transform) <N_Identifier>: Use correct predicates.
7613
7614 2005-03-24  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
7615
7616         * adaint.c (__gnat_portable_spawn): Adjust cast.
7617
7618 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
7619
7620         * misc.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
7621
7622 2005-03-17  Pascal Obry  <obry@adacore.com>
7623
7624         * adaint.h, adaint.c (__gnat_waitpid): Moved to expect.c where it is
7625         used.
7626
7627         * expect.c (__gnat_waitpid): Moved here from adaint.c.
7628         Reimplement under Win32 using Win32 API.
7629
7630         (__gnat_kill) [Win32]: Properly close the process handle before leaving
7631         this routine.
7632
7633 2005-03-17  Eric Botcazou  <ebotcazou@adacore.com>
7634
7635         * ada-tree.h: (DECL_RENAMING_GLOBAL_P): New predicate.
7636         (DECL_RENAMED_OBJECT): New accessor macro.
7637         (SET_DECL_RENAMED_OBJECT): New setter macro.
7638
7639         * decl.c (gnat_to_gnu_entity) <E_Variable>: Stabilize the renamed
7640         object in all cases.  Attach the renamed object to the VAR_DECL.
7641         (gnat_to_gnu_field): Do not lift the record wrapper if the size of the
7642         field is not prescribed.
7643
7644         * misc.c (gnat_handle_option): Handle -gnatO separately.
7645         (gnat_print_decl) <VAR_DECL>: New case.
7646         Print the DECL_RENAMED_OBJECT node.
7647
7648         * lang.opt:  Declare separate -gnatO option.
7649
7650         * trans.c (tree_transform) <N_Identifier>: If the object is a renaming
7651         pointer, replace it with the renamed object.
7652         <N_Validate_Unchecked_Conversion>: Warn for a conversion to a fat
7653         pointer type if the source is not a fat pointer type whose underlying
7654         array has the same non-zero alias set as that of the destination array.
7655
7656 2005-03-17  Javier Miranda  <miranda@adacore.com>
7657
7658         * a-tags.ads, a-tags.adb (Get_Expanded_Name): Removed.
7659         (Get_Inheritance_Depth): Removed.
7660         (Set_Inheritance_Depth): Removed.
7661
7662         * rtsfind.ads, exp_disp.ads, exp_disp.adb: Remove support to call the
7663         subprogram Get_Expanded_Name because it is not referenced by the
7664         frontend.
7665
7666         * i-cpp.ads, i-cpp.adb (CPP_Get_Expanded_Name): Removed.
7667         (CPP_Get_Inheritance_Depth): Removed.
7668         (CPP_Set_Inheritance_Depth): Removed.
7669
7670         * tbuild.ads, tbuild.adb (Make_DT_Component): Removed.
7671
7672 2005-03-17  Robert Dewar  <dewar@adacore.com>
7673
7674         * checks.adb (Apply_Array_Size_Check): Completely remove this for GCC
7675         3, since we now expect GCC 3 to do all the work.
7676
7677 2005-03-17  Javier Miranda  <miranda@adacore.com>
7678
7679         * einfo.adb (First_Private_Entity, Set_First_Private_Entity): Addition
7680         of one barrier to avoid wrong usage of this attribute.
7681
7682         * sem_ch12.adb (Formal_Entity): Fix erroneous usage of the attribute
7683         First_Private_Entity.
7684
7685         * sem_ch7.adb (Install_Visible_Declarations): Add a barrier to protect
7686         the subprogram against wrong usage.
7687         Adapt the code to traverse the entities in the
7688         scope of a record_type because in addition to its usage regarding
7689         packages, this subprogram is also called by Expand_N_Freeze_Entity
7690         to install the visible declarations of the enclosing scope of a
7691         record_type_with_private to establish the proper visibility before
7692         freezing the entity and related subprograms.
7693
7694 2005-03-17  Ed Schonberg  <schonberg@adacore.com>
7695
7696         * exp_ch2.adb (In_Assignment_Context): Recognize slice assignments to
7697         entry formals.
7698
7699 2005-03-17  Thomas Quinot  <quinot@adacore.com>
7700
7701         * exp_ch3.adb (Check_Attr): New subprogram.
7702         (Check_Stream_Attribute): Move the code for 13.13.2(9/1) enforcement
7703         into a new Check_Attr subprogram, in order to provide a more
7704         explanatory error message (including the name of the missing attribute).
7705         (Stream_Operation_OK): Renamed from Stream_Operations_OK. This
7706         subprogram determines whether a default implementation exists for a
7707         given stream attribute.
7708         (Make_Predefined_Primitive_Specs, Predefined_Primitive_Bodies):
7709         Determine whether to generate a default implementation for each stream
7710         attribute separately, as this depends on the specific attribute.
7711
7712         * exp_strm.adb (Make_Field_Attribute): For the case of an illegal
7713         limited extension where a stream attribute is missing for a limited
7714         component (which will have been flagged in Exp_Ch3.Sem_Attr), do not
7715         generate a bogus reference to the missing attribute to prevent
7716         cascaded errors. Instead, generate a null statement.
7717
7718         * sem_attr.adb (Check_Stream_Attribute): A stream attribute is
7719         available for a limited type if it has been specified for an ancestor
7720         of the type.
7721
7722 2005-03-17  Ed Schonberg  <schonberg@adacore.com>
7723
7724         * exp_ch6.adb (Expand_Inlined_Call): handle the case when the renamed
7725         entity is an operator.
7726
7727 2005-03-17  Thomas Quinot  <quinot@adacore.com>
7728
7729         * exp_dist.adb (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist
7730         spec, to make this predicate available to other units.
7731
7732         * rtsfind.adb (Check_RPC): Use Sem_Dist.Get_PCS_Name instead of
7733         reimplementing it.
7734
7735         * sem_ch8.adb: Disable expansion of remote access-to-subprogram types
7736         when no distribution runtime library is available.
7737
7738         * sem_res.adb, sem_dist.adb: Disable expansion of remote
7739         access-to-subprogram types when no distribution runtime library is
7740         available.
7741         (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist spec, to make this
7742         predicate available to other units.
7743
7744         * sem_dist.ads (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist
7745         spec, to make this predicate available to other units.
7746
7747 2005-03-17  Vincent Celier  <celier@adacore.com>
7748
7749         * make.adb (Insert_Project_Sources): Make sure the Q is always
7750         initialized.
7751
7752         * prj-nmsc.adb (Check_Ada_Naming_Scheme_Validity): Check Naming against
7753         the default for the tree, not the global default naming.
7754
7755         * prj-proc.adb (Recursive_Process): No need to put the default naming
7756         in the project data, it's already there.
7757
7758 2005-03-17  Doug Rupp  <rupp@adacore.com>
7759
7760         * Makefile.in: (ia64-hp-*vms*): Use s-crtl-vms64.ads.
7761
7762         * 5xcrtl.ads: Renamed to...
7763         * s-crtl-vms64.ads: ...this new file
7764
7765 2005-03-17  Robert Dewar  <dewar@adacore.com>
7766
7767         PR ada/19519
7768
7769         * namet.adb (Copy_One_Character): Set proper wide character encoding
7770         for upper half character if we have upper half encoding.
7771
7772 2005-03-17  Robert Dewar  <dewar@adacore.com>
7773
7774         * par.adb (Par): Improved msg for attempt to recompile predefined unit
7775
7776 2005-03-17  Thomas Quinot  <quinot@adacore.com>
7777
7778         * sem_ch13.adb (New_Stream_Function, New_Stream_Procedure): For a
7779         tagged limited type, the TSS is a newly built renaming declaration:
7780         insert it using Set_TSS, not Copy_TSS.
7781
7782 2005-03-17  Javier Miranda  <miranda@adacore.com>
7783
7784         * sem_ch4.adb (Try_Primitive_Operation, Class_Wide_Operation and
7785         Try_Object_Operation): Analyze the object that is accessible
7786         through the prefix of the subprogram call before we apply
7787         the transformation of the object-operation notation.
7788
7789 2005-03-17  Jose Ruiz  <ruiz@adacore.com>
7790
7791         * s-taprob.adb (Initialize_Protection): Initialize the protected
7792         object's owner to Null_Task.
7793         (Lock): If pragma Detect_Blocking is in effect and the caller of this
7794         procedure is already the protected object's owner then Program_Error
7795         is raised. In addition the protected object's owner is updated.
7796         (Lock_Read_Only): If pragma Detect_Blocking is in effect and the caller
7797         of this procedure is already the protected object's owner then
7798         Program_Error is raised.
7799         In addition the protected object's owner is updated.
7800         (Unlock): Remove the ownership of the protected object.
7801
7802         * s-taprob.ads (Protection): Add the field Owner, used to store the
7803         protected object's owner.
7804         This component is needed for detecting one type of potentially blocking
7805         operations (external calls on a protected subprogram with the same
7806         target object as that of the protected action). Document the rest of
7807         the components.
7808
7809         * s-tposen.adb, s-tpoben.adb (Initialize_Protection_Entries):
7810         Initialize the protected object's owner to Null_Task.
7811         (Lock_Read_Only_Entries): If pragma Detect_Blocking is in effect and the
7812         caller of this procedure is already the protected object's owner then
7813         Program_Error is raised.
7814         Do not raise Program_Error when this procedure is called from a
7815         protected action.
7816         (Unlock_Entries): Remove the ownership of the protected object.
7817         (Lock_Entries): If pragma Detect_Blocking is in effect and the caller
7818         of this procedure is already the protected object's owner then
7819         Program_Error is raised.
7820         Do not raise Program_Error when this procedure is called from
7821         a protected action.
7822
7823         * s-tposen.ads, s-tpoben.ads (Protection_Entries): Add the field Owner,
7824         used to store the protected object's owner.
7825
7826         * s-tpobop.adb (Protected_Entry_Call): If pragma Detect_Blocking is in
7827         effect and this procedure (a potentially blocking operation) is called
7828         from whithin a protected action, Program_Error is raised.
7829         (Timed_Protected_Entry_Call): If pragma Detect_Blocking is in effect
7830         and this procedure (a potentially blocking operation) is called from
7831         whithin a protected action, Program_Error is raised.
7832
7833 2005-03-17  Vincent Celier  <celier@adacore.com>
7834             Nicolas Setton  <setton@adacore.com>
7835
7836         * mlib-tgt-darwin.adb (Build_Dynamic_Library): Remove the "-fini"
7837         switch, not supported by the linker on Darwin. Add '_' before
7838         <library>init, as this character is added unconditionally by the
7839         compiler.
7840         (Is_Archive_Ext): Replace the wrong library extension ".dyld" by the
7841         correct one ".dylib". This fixes detection of the archive files when
7842         building library projects.
7843
7844 2005-03-17  Vincent Celier  <celier@adacore.com>
7845
7846         * switch-m.adb (Normalize_Compiler_Switches): Recognize switches
7847         -gnat83, -gnat95 and -gnat05.
7848
7849 2005-03-17  Vasiliy Fofanov  <fofanov@adacore.com>
7850
7851         * gnat_ugn.texi: Document gnatmem restriction
7852
7853 2005-03-17  Thomas Quinot  <quinot@adacore.com>
7854
7855         * snames.adb: Document new TSS names introduced by exp_dist/exp_tss
7856         cleanup
7857
7858 2005-03-17  Robert Dewar  <dewar@adacore.com>
7859
7860         * s-interr.ads, s-interr.adb, sem_ch3.adb, prj.ads, prj.adb,
7861         a-interr.adb, a-interr.ads, s-interr-sigaction.adb, s-interr-dummy.adb,
7862         s-interr-vms.adb, s-interr-vxworks.adb: Minor reformatting
7863
7864         * casing.adb: Comment improvements
7865
7866 2005-03-17  Pascal Obry  <obry@adacore.com>
7867
7868         * g-expect.adb: Minor reformatting.
7869
7870 2005-03-15  Zack Weinberg  <zack@codesourcery.com>
7871
7872         * Make-lang.in (doc/gnat_ugn_unw.info, doc/gnat_rm.info)
7873         (doc/gnat_ugn_unw.dvi, doc/gnat_rm.dvi): Add gcc-vers.texi
7874         to dependencies.
7875
7876 2005-03-15  Vincent Celier  <celier@adacore.com>
7877
7878         * mlib-tgt-darwin.adb (Library_Exist_For, Library_File_Name_For):
7879         Add new parameter In_Tree to specify the project tree: needed
7880         by the project manager. Adapt to changes in project manager
7881         using new parameter In_Tree.
7882
7883 2005-03-15  Jakub Jelinek  <jakub@redhat.com>
7884
7885         * Make-lang.in (ada/treeprs.ads, ada/einfo.h, ada/sinfo.h,
7886         ada/nmake.adb, ada/nmake.ads): Use unique subdirectories of
7887         ada/bldtools to avoid make -jN failures.
7888
7889 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
7890
7891         * trans.c (gnat_to_gnu) <N_Return_Statement>: Set gnu_result
7892         to NULL_TREE on entry.
7893
7894 2005-03-15  Robert Dewar  <dewar@adacore.com>
7895
7896         * system-unixware.ads, system-linux-ia64.ads, system-freebsd-x86.ads,
7897         system-lynxos-ppc.ads, system-lynxos-x86.ads, system-linux-x86_64.ads,
7898         system-tru64.ads, system-aix.ads, system-vxworks-sparcv9.ads,
7899         system-vxworks-xscale.ads, system-solaris-x86.ads, system-irix-o32.ads,
7900         system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
7901         system-linux-x86.ads, system-vxworks-mips.ads, system-os2.ads,
7902         system-interix.ads, system-solaris-sparc.ads,
7903         system-solaris-sparcv9.ads, system-vms.ads, system-mingw.ads,
7904         system-vms-zcx.ads, system-vxworks-ppc.ads, system-vxworks-alpha.ads,
7905         system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
7906         system-linux-ppc.ads, system-linux-alpha.ads, system-linux-sparc.ads,
7907         system-linux-s390.ads, system-linux-s390x.ads: Add line defining
7908         Compiler_System_Version to be False.
7909
7910         * opt.ads: Add new flag Opt.Address_Is_Private
7911
7912         * targparm.ads, targparm.adb: Set new flag Opt.Address_Is_Private
7913         Add new parameter Compiler_System_Version to avoid checking for
7914         completeness of parameters when compiler is compiling itself.
7915         Allows old versions of GNAT to be compiled with new compiler.
7916
7917 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
7918
7919         * s-osinte-tru64.ads, s-osinte-tru64.adb (Get_Stack_Base): New function
7920         (Hide_Yellow_Zone): New procedure to hide the Yellow Zone of the
7921         calling thread.
7922         (Stack_Base_Available): New flag.
7923         (Get_Page_Size): New overloaded functions imported from C.
7924         (PROT_NONE, PROT_READ, PROT_WRITE, PROT_EXEC, PROT_ALL,
7925         PROT_ON, PROT_OFF): New constants.
7926         (mprotect): New function imported from C.
7927         (pthread_teb_t): New record type.
7928
7929         * s-taprop-tru64.adb: (Enter_Task): Invoke Hide_Yellow_Zone.
7930         (Create_Task): Account for the Yellow Zone and the guard page.
7931
7932 2005-03-15  Vincent Celier  <celier@adacore.com>
7933
7934         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
7935         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
7936         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb,
7937         mlib-tgt-vxworks.adb, mlib-tgt-lynxos.adb (Library_Exist_For,
7938         Library_File_Name_For): Add new parameter In_Tree
7939         to specify the project tree: needed by the project manager.
7940         Adapt to changes in project manager using new parameter In_Tree.
7941         Remove local imports, use functions in System.CRTL.
7942
7943         * make.adb, clean.adb, gnatcmd.adb (Project_Tree): New constant needed
7944         to use the project manager.
7945
7946         * makeutl.ads, makeutl.adb (Linker_Options_Switches): New parameter
7947         In_Tree to designate the project tree. Adapt to changes in the project
7948         manager, using In_Tree.
7949
7950         * mlib-prj.ads, mlib-prj.adb (Build_Library, Check_Library,
7951         Copy_Interface_Sources): Add new parameter In_Tree to specify the
7952         project tree: needed by the project manager.
7953         (Build_Library): Check that Arg'Length >= 6 before checking if it
7954         contains "--RTS=...".
7955
7956         * mlib-tgt.ads, mlib-tgt.adb (Library_Exist_For,
7957         Library_File_Name_For): Add new parameter In_Tree to specify the
7958         project tree: needed by the project manager.
7959
7960         * prj.ads, prj.adb: Major modifications to allow several project trees
7961         in memory at the same time.
7962         Change tables to dynamic tables and hash tables to dynamic hash
7963         tables. Move tables and hash tables from Prj.Com (in the visible part)
7964         and Prj.Env (in the private part). Move some constants from the visible
7965         part to the private part. Make other constants deferred.
7966         (Project_Empty): Make it a variable, not a function
7967         (Empty_Project): Add parameter Tree. Returns the data with the default
7968         naming data of the project tree Tree.
7969         (Initialize): After updating Std_Naming_Data, copy its value to the
7970         component Naming of Project Empty.
7971         (Register_Default_Naming_Scheme): Use and update the default naming
7972         component of the project tree, instead of the global variable
7973         Std_Naming_Data.
7974         (Standard_Naming_Data): Add defaulted parameter Tree. If project tree
7975         Tree is not defaulted, return the default naming data of the Tree.
7976         (Initial_Buffer_Size): Constant moved from private part
7977         (Default_Ada_Spec_Suffix_Id, Default_Ada_Body_Suffix_Id, Slash_Id); new
7978         variables initialized in procedure Initialize.
7979         (Add_To_Buffer): Add two in out parameters to replace global variables
7980         Buffer and Buffer_Last.
7981         (Default_Ada_Spec_Suffix, Default_Body_Spec_Suffix, Slash): New
7982         functions.
7983         Adapt to changes to use new type Project_Tree_Ref and dynamic tables and
7984         hash tables.
7985         (Initialize, Reset, register-Default_Namng-Scheme): Add a new parameter
7986         for the project tree.
7987         (Project_Tree_Data, Project_Tree_Ref, No_Project): Declare types and
7988         constant at the beginning of the package spec, so that they cane be used
7989         in subprograms before their full declarations.
7990         (Standard_Naming_Data): Add defaulted parameter of type Project_Node_Ref
7991         (Empty_Project): Add parameter of type Project_Node_Ref
7992         (Private_Project_Tree_Data): Add component Default_Naming of type
7993         Naming_Data.
7994         (Buffer, Buffer_Last): remove global variables
7995         (Add_To_Buffer): Add two in out parameters to replace global variables
7996         Buffer and Buffer_Last.
7997         (Current_Packages_To_Check): Remove global variable
7998         (Empty_Name): Move to private part
7999         (No-Symbols): Make it a constant
8000         (Private_Project_Tree_Data): New type for the private part of the
8001         project tree data.
8002         (Project_Tree_Data): New type for the data of a project tree
8003         (Project_Tree_Ref): New type to designate a project tree
8004         (Initialize, Reset, register-Default_Namng-Scheme): Add a new parameter
8005         for the project tree.
8006
8007         * prj-attr.ads: Add with Table; needed, as package Prj no longer
8008         imports package Table.
8009
8010         * prj-com.adb: Remove empty, no longer needed body
8011
8012         * prj-com.ads: Move most of the content of this package to package Prj.
8013
8014         * prj-dect.ads, prj-dect.adb (Parse): New parameters In_Tree to
8015         designate the project node tree and Packages_To_Check to replace
8016         global variable Current_Packages_To_Check.
8017         Add new parameters In_Tree and Packages_To_Check to local subprograms,
8018         when needed. Adapt to changes in project manager with project node tree
8019         In_Tree.
8020
8021         * prj-env.ads, prj-env.adb: Add new parameter In_Tree to designate the
8022         project tree to most subprograms. Move tables and hash tables to
8023         private part of package Prj.
8024         Adapt to changes in project manager using project tree In_Tree.
8025
8026         * prj-makr.adb (Tree): New constant to designate the project node tree
8027         Adapt to change in project manager using project node tree Tree
8028
8029         * prj-nmsc.ads, prj-nmsc.adb (Check_Stand_Alone_Library): Correctly
8030         display the Library_Src_Dir and the Library_Dir.
8031         Add new parameter In_Tree to designate the project node tree to most
8032         subprograms. Adapt to changes in the project manager, using project tree
8033         In_Tree.
8034         (Check_Naming_Scheme): Do not alter the casing on platforms where
8035         the casing of file names is not significant.
8036         (Check): Add new parameter In_Tree to designate the
8037
8038         * prj-pars.ads, prj-pars.adb (Parse): Add new parameter In_Tree to
8039         designate the project tree.
8040         Declare a project node tree to call Prj.Part.Parse and Prj.Proc.Process
8041
8042         * prj-part.ads, prj-part.adb (Buffer, Buffer_Last): Global variables,
8043         to replace those that were in the private part of package Prj.
8044         Add new parameter In__Tree to designate the project node tree to most
8045         subprograms. Adapt to change in Prj.Tree with project node tree In_Tree.
8046         (Post_Parse_Context_Clause): When specifying the project node of a with
8047         clause, indicate that it is a limited with only if there is "limited"
8048         in the with clause, not necessarily when In_Limited is True.
8049         (Parse): Add new parameter In_Tree to designate the project node tree
8050
8051         * prj-pp.ads, prj-pp.adb (Pretty_Print): Add new parameter In_Tree to
8052         designate the project node tree. Adapt to change in Prj.Tree with
8053         project node tree In_Tree.
8054
8055         * prj-proc.ads, prj-proc.adb (Recursive_Process): Specify the project
8056         tree In_Tree in the call to function Empty_Process to give its initial
8057         value to the project data Processed_Data.
8058         Add new parameters In_Tree to designate the project tree and
8059         From_Project_Node_Tree to designate the project node tree to several
8060         subprograms. Adapt to change in project manager with project tree
8061         In_Tree and project node tree From_Project_Node_Tree.
8062
8063         * prj-strt.ads, prj-strt.adb (Buffer, Buffer_Last): Global variables,
8064         to replace those that were in the private part of package Prj.
8065         Add new parameter In_Tree to designate the project node tree to most
8066         subprograms. Adapt to change in Prj.Tree with project node tree In_Tree.
8067
8068         * prj-tree.ads, prj-tree.adb: Add new parameter of type
8069         Project_Node_Tree_Ref to most subprograms.
8070         Use this new parameter to store project nodes in the designated project
8071         node tree.
8072         (Project_Node_Tree_Ref): New type to designate a project node tree
8073         (Tree_Private_Part): Change table to dynamic table and hash tables to
8074         dynamic hash tables.
8075
8076         * prj-util.ads, prj-util.adb: Add new parameter In_Tree to designate
8077         the project tree to most subprograms. Adapt to changes in project
8078         manager using project tree In_Tree.
8079
8080         * makegpr.adb (Project_Tree): New constant needed to use project
8081         manager.
8082
8083 2005-03-15  Olivier Hainque  <hainque@adacore.com>
8084
8085         * s-intman-posix.adb (Notify_Exception): Adjust signature, as handler
8086         for sigactions with SA_SIGINFO set. Call
8087         __gnat_adjust_context_for_raise before raising, to perform the
8088         potentially required adjustments to the machine context for the GCC
8089         unwinder.
8090
8091         * raise.h (__gnat_adjust_context_for_raise): New prototype.
8092
8093         * init.c (__gnat_adjust_context_for_raise) HPUX: Initial revision.
8094         Adjust PC by one in the provided machine context.
8095         (__gnat_install_handler) HPUX: Set SA_SIGINFO in the sigaction flags,
8096         so that the handler is passed the context structure to adjust prior to
8097         the raise.
8098         (__gnat_error_handler) HPUX: Adjust the signature to match what an
8099         SA_SIGINFO sigaction should look like. Call
8100         __gnat_adjust_context_for_raise before actually raising.
8101         (__gnat_adjust_context_for_raise): Default noop to help PC
8102         adjustments before raise from signal handlers.
8103         (__gnat_error_handler): Indirectly call a predicate function to
8104         determine if a condition should be resignaled or not.
8105         (__gnat_set_resignal_predicate): User interface to modify the predicate.
8106         (__gnat_default_resignal_p): Default GNAT predicate.
8107
8108 2005-03-15  Doug Rupp  <rupp@adacore.com>
8109
8110         * adaint.c: Prefix #include of VMS system header files with vms/
8111         [VMS] (HOST_EXECUTABLE_SUFFIX, HOST_OBJECT_SUFFIX): Define for VMS.
8112         Do not define a dummy function "convert_addresses" under Darwin,
8113         not needed.
8114
8115         * tb-alvms.c, expect.c: Prefix #include of VMS system header files
8116         with vms/
8117
8118 2005-03-15  Nicolas Setton  <setton@adacore.com>
8119
8120         * tracebak.c: Under Darwin, use the same unwinding mechanisms as under
8121         PPC/AIX.
8122
8123 2005-03-15  Robert Dewar  <dewar@adacore.com>
8124
8125         * a-reatim.ads, a-reatim.adb: Add functions Minutes and Seconds for
8126         AI-386.
8127
8128         * a-retide.ads: Minor comment changes
8129
8130 2005-03-15  Robert Dewar  <dewar@adacore.com>
8131
8132         * a-stzunb.adb, a-stzunb.adb a-stzunb.ads, a-stzunb.ads,
8133         a-stwiun.ads, a-stwiun.adb, a-strunb.ads, a-strunb.adb: Move
8134         Realloc_For_Chunk to private part of package.
8135         New subprograms for AI-301
8136
8137         * a-szuzti.adb, a-suteio.adb, a-swuwti.adb: Improve efficiency of
8138         Get_Line procedure.
8139         Avoid unnecessary use of Get/Set_Wide_String
8140
8141 2005-03-15  Robert Dewar  <dewar@adacore.com>
8142
8143         PR ada/13470
8144
8145         * a-stunau.ads, a-stunau.adb:
8146         Change interface to allow efficient (and correct) implementation
8147         The previous changes to allow extra space in unbounded strings had
8148         left this interface a bit broken.
8149
8150         * a-suteio.adb: Avoid unnecessary use of Get/Set_String
8151
8152         * g-spipat.ads, g-spipat.adb: New interface for Get_String
8153         Minor reformatting (function specs)
8154
8155         * g-spitbo.adb: New interface for Get_String
8156
8157         * g-spitbo.ads: Minor reformatting
8158
8159         * a-swunau.ads, a-swunau.adb: New interface for Get_Wide_String
8160
8161         * a-szunau.ads, a-szunau.adb: New interface for Get_Wide_Wide_String
8162
8163 2005-03-15  Javier Miranda  <miranda@adacore.com>
8164             Robert Dewar  <dewar@adacore.com>
8165             Thomas Quinot  <quinot@adacore.com>
8166             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8167
8168         * atree.ads, atree.adb: Add support for Elist24 field
8169
8170         * atree.h: Fix wrong definition of Field27
8171         Add support for Elist16 field
8172         Add support for Elist24 field
8173
8174         * einfo.ads, einfo.adb (Abstract_Interfaces,
8175         Set_Abstract_Interfaces): New subprograms.
8176         (Abstract_Interface_Alias, Set_Abstract_Interface_Alias): New
8177         subprograms.
8178         (Access_Disp_Table, Set_Access_Disp_Table): Modified to handle a list of
8179         entities rather than a single node.
8180         (Is_Interface, Set_Is_Interface): New subprogram
8181         (First_Tag_Component): New syntesized attribute
8182         (Next_Tag_Component): New synthesized attribute
8183         (Write_Entity_Flags): Upgraded to write Is_Interface
8184         (Write_Field24_Name): Upgraded to write Abstract_Interfaces
8185         (Write_Field25_Name): Upgraded to write Abstract_Interface_Alias
8186         (Task_Body_Procedure): New subprogram to read this attribute.
8187         (Set_Task_Body_Procedure): New subprogram to set this attribute.
8188         (Has_Controlled_Component): Now applies to all entities.
8189         This is only a documentation change, since it always worked to apply
8190         this to other than composite types (yielding false), but now this is
8191         official.
8192         Update documentation on Must_Be_Byte_Aligned for new spec
8193
8194         * tbuild.adb, exp_dist.adb, exp_disp.adb, exp_ch3.ads, exp_ch3.adb,
8195         exp_attr.adb, exp_aggr.adb, exp_ch4.adb, exp_ch5.adb: Upgrade all the
8196         uses of the Access_Disp_Table attribute to reference the first dispatch
8197         table associated with a tagged type. As
8198         part of the implementation of abstract interface types,
8199         Access_Disp_Table has been redefined to contain a list of dispatch
8200         tables (rather than a single dispatch table).
8201         Similarly, upgrade all the references to Tag_Component by the
8202         new attribute First_Tag_Component.
8203         (Find_Inherited_TSS): Moved to exp_tss.
8204         Clean up test in Expand_N_Object_Declaration for cases
8205         where we need to do a separate assignment of the initial value.
8206         (Expand_N_Object_Declaration): If the expression in the
8207         declaration of a tagged type is an aggregate, no need to generate an
8208         additional tag assignment.
8209         (Freeze_Type): Now a function that returns True if the N_Freeze_Entity
8210         is to be deleted.
8211         Bit packed array ops are only called if operands are known to be
8212         aligned.
8213         (Component_Equality): When returning an N_Raise_Program_Error statement,
8214         ensure that its Etype is set to Empty to avoid confusing GIGI (which
8215         expects that only expressions have a bona fide type).
8216         (Make_Tag_Ctrl_Assignment): Use Build_Actual_Subtype to correctly
8217         determine the amount of data to be copied.
8218
8219         * par.adb (P_Interface_Type_Definition): New subprogram that parses the
8220         new syntax rule of Ada 2005 interfaces (for AI-251 and AI-345):
8221             INTERFACE_TYPE_DEFINITION ::=
8222               [limited | task | protected | synchronized] interface
8223                 [AND interface_list]
8224
8225         * par-ch3.adb (P_Type_Declaration): Modified to give support to
8226         interfaces.
8227         (P_Derived_Type_Def_Or_Private_Ext_Decl): Modified to give support to
8228         interfaces.
8229         (P_Interface_Type_Definition): New subprogram that parses the new
8230         syntax rule of Ada 2005 interfaces
8231         (P_Identifier_Declarations): fix two occurrences of 'RENAMES' in error
8232         messages by the correct RENAMES (quotes removed).
8233
8234         * sem_prag.adb: Upgrade all the references to Tag_Component by the new
8235         attribute First_Tag_Component.
8236
8237         * sinfo.ads, sinfo.adb: Remove OK_For_Stream flag, not used, not needed
8238         (Interface_List, Set_Interface_List): New subprograms.
8239         (Interface_Present, Set_Interface_Present): New subprograms.
8240         (Limited_Present, Set_Limited_Present): Available also in derived
8241         type definition nodes.
8242         (Protected_Present, Set_Protected_Present): Available also in
8243         record type definition and
8244         derived type definition nodes.
8245         (Synchronized_Present, Set_Synchronized_Present): New subprograms.
8246         (Task_Present, Set_Task_Present): New subprogram.
8247         (Task_Body_Procedure): Removed.
8248         (Set_Task_Body_Procedure): Removed.
8249         These subprogram have been removed because the attribute
8250         Task_Body_Procedure has been moved to the corresponding task type
8251         or task subtype entity to leave a field free to store the list
8252         of interfaces implemented by a task (for AI-345)
8253         Add Expression field to N_Raise_Statement node for Ada 2005 AI-361
8254         (Null_Exclusion_Present): Change to Flag11, to avoid conflict with
8255         expression flag Do_Range_Check
8256         (Exception_Junk): Change to Flag7 to accomodate above change
8257         (Box_Present, Default_Name, Specification, Set_Box_Present,
8258         Set_Default_Name, Set_Specification): Expand the expression
8259         "X in N_Formal_Subprogram_Declaration" into the corresponding
8260         two comparisons. Required to use the csinfo tool.
8261
8262         * exp_ch11.adb (Expand_N_Raise_Statement): Deal with case where
8263         "with string" given.
8264
8265         * sem_ch11.adb (Analyze_Raise_Statement): Handle case where string
8266         expression given.
8267
8268         * par-ch11.adb (P_Raise_Statement): Recognize with string expression
8269         in 2005 mode
8270
8271         * exp_ch9.adb (Build_Task_Proc_Specification): Modified to use entity
8272         attribute Task_Body_Procedure rather than the old semantic field that
8273         was available in the task_type_declaration node.
8274
8275         * par-ch12.adb (P_Formal_Type_Definition): Modified to handle formal
8276         interface type definitions.
8277         (P_Formal_Derived_Type_Definition): Modified to handle the list of
8278         interfaces.
8279
8280         * par-ch9.adb (P_Task): Modified to handle the list of interfaces in a
8281         task type declaration.
8282         (P_Protected): Modified to handle the list of interfaces in a
8283         protected type declaration.
8284
8285 2005-03-15  Doug Rupp  <rupp@adacore.com>
8286             Vincent Celier  <celier@adacore.com>
8287
8288         * bindgen.adb (Gen_Main_C): Change WBI __posix_exit to decc$posix_exit
8289         (Gen_Output_File_C): Likewise.
8290         (Gen_Main_C): Issue #include <stdlib.h> to avoid warning
8291
8292 2005-03-15  Thomas Quinot  <quinot@adacore.com>
8293
8294         * checks.adb (Get_E_First_Or_Last): When the expression being retrieved
8295         is an N_Raise_Constraint_Error node, create a new copy of it without
8296         going through a call to Duplicate_Subexpr.
8297
8298 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
8299             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8300             Nicolas Setton  <setton@adacore.com>
8301             Ed Schonberg  <schonberg@adacore.com>
8302
8303         PR ada/19900
8304         PR ada/19408
8305         PR ada/19140
8306         PR ada/20255
8307
8308         * decl.c (gnat_to_gnu_field): Reject aliased components with a
8309         representation clause that prescribes a size not equal to the rounded
8310         size of their types.
8311         (gnat_to_gnu_entity, case E_Component): Always look at
8312         Original_Record_Component if Present and not the entity.
8313         (gnat_to_gnu_entity, case E_Record_Subtype): Rework handling of subtypes
8314         of tagged extension types by not making field for components that are
8315         inside the parent.
8316         (gnat_to_gnu_entity) <E_Record_Type>: Fix typo in the alignment formula
8317         (gnat_to_gnu_entity) <E_Variable>: Do not convert again the
8318         expression to the type of the object when the object is constant.
8319         Reverse defer_debug_incomplete_list before traversing it, so that trees
8320         are processed in the order at which they were added to the list. This
8321         order is important when using the stabs debug format.
8322         If we are deferring the output of debug information, also defer this
8323         output for a function return type.
8324         When adding fields to a record, prevent emitting debug information
8325         for incomplete records, emit the information only when the record is
8326         complete.
8327         (components_to_record): New parameter defer_debug.
8328         (gnat_to_gnu_entity, case E_Array_Subtype): Call copy_alias_set.
8329         (gnat_to_gnu_field_decl): New function.
8330         (substitution_list, annotate_rep): Call it.
8331         (gnat_to_gnu_entity, case E_Record_Subtype): Likewise.
8332         (gnat_to_gnu_entity, case E_Record_Type): Likewise.
8333         No longer update discriminants to not be a COMPONENT_REF.
8334         (copy_alias_set): Strip padding from input type; also handle
8335         unconstrained arrays properly.
8336
8337         * gigi.h (write_record_type_debug_info): New function.
8338         Convert to use ANSI-style prototypes. Remove unused
8339         declarations for emit_stack_check, elab_all_gnat and
8340         set_second_error_entity.
8341         (gnat_to_gnu_field_decl): New decl.
8342
8343         * utils.c (write_record_type_debug_info): New function.
8344         (finish_record_type): Delegate generation of debug information to
8345         write_record_type_debug_info.
8346         (update_pointer_to): Remove unneeded calls to rest_of_decl_compilation.
8347         (update_pointer_to): Fix pasto.
8348         (convert) <UNION_TYPE>: Accept slight type variations when
8349         converting to an unchecked union type.
8350
8351         * exp_ch13.adb (Expand_N_Freeze_Entity): If Freeze_Type returns True,
8352         replace the N_Freeze_Entity with a null statement.
8353
8354         * freeze.adb (Freeze_Expression): If the freeze nodes are generated
8355         within a constrained subcomponent of an enclosing record, place the
8356         freeze nodes in the scope stack entry for the enclosing record.
8357         (Undelay_Type): New Subprogram.
8358         (Set_Small_Size): Pass T, the type to modify; all callers changed.
8359         (Freeze_Entity, Freeze_Record_Type): Change the way we handle types
8360         within records; allow them to have freeze nodes if their base types
8361         aren't frozen yet.
8362
8363         * exp_util.adb (Remove_Side_Effects): Properly test for
8364         Expansion_Delayed and handle case when it's inside an
8365         N_Qualified_Expression.
8366
8367         * sem_ch3.adb (Derived_Type_Declaration): New predicate
8368         Comes_From_Generic, to recognize accurately that the parent type in a
8369         derived type declaration can be traced back to a formal type, because
8370         it is one or is derived from one, or because its completion is derived
8371         from one.
8372         (Constrain_Component_Type): If component comes from source and has no
8373         explicit constraint, no need to constrain in in a subtype of the
8374         enclosing record.
8375         (Constrain_Access, Constrain_Array): Allow itypes to be delayed.
8376         Minor change to propagate Is_Ada_2005 flag
8377
8378         * trans.c (gnat_to_gnu, case N_Aggregate): Verify that
8379         Expansion_Delayed is False.
8380         (assoc_to_constructor): Ignore fields that have a
8381         Corresponding_Discriminant.
8382         (gnat_to_gnu) <N_Return_Statement>: Restructure. If the
8383         function returns "by target", dereference the target pointer using the
8384         type of the actual return value.
8385         <all>: Be prepared for a null gnu_result.
8386         (processed_inline_subprograms): Check flag_really_no_inline
8387         instead of flag_no_inline.
8388         (set_second_error_entity): Remove unused function.
8389         (gnat_to_gnu, case N_Selected_Component): Call
8390         gnat_to_gnu_field_decl.
8391         (assoc_to_constructor): Likewise.
8392
8393 2005-03-15  Robert Dewar  <dewar@adacore.com>
8394             Ed Schonberg  <schonberg@adacore.com>
8395             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8396
8397         * exp_pakd.adb (Create_Packed_Array_Type): Do not set
8398         Must_Be_Byte_Aligned for cases where we do not need to use a
8399         System.Pack_nn unit.
8400
8401         * exp_ch6.adb (Expand_Call): Call Expand_Actuals for functions as well
8402         as procedures.
8403         Needed now that we do some processing for IN parameters as well. This
8404         may well fix some unrelated errors.
8405         (Expand_Call): Handle case of unaligned objects (in particular those
8406         that come from packed arrays).
8407         (Expand_Inlined_Call): If the subprogram is a renaming as body, and the
8408         renamed entity is an inherited operation, re-expand the call using the
8409         original operation, which is the one to call.
8410         Detect attempt to inline parameterless recursive subprogram.
8411         (Represented_As_Scalar): Fix to work properly with private types
8412         (Is_Possibly_Unaligned_Object): Major rewrite to get a much more
8413         accurate estimate. Yields True in far fewer cases than before,
8414         improving the quality of code that depends on this test.
8415
8416         * exp_util.adb (Kill_Dead_Code): For a package declaration, iterate
8417         over both visible and private declarations to remove them from tree,
8418         and mark subprograms declared in package as eliminated, to prevent
8419         spurious use in subsequent compilation of generic units in the context.
8420
8421         * exp_util.ads: Minor cleanup in variable names
8422
8423         * sem_eval.ads, sem_eval.adb: Minor reformatting
8424         (Compile_Time_Known_Bounds): New function
8425
8426 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
8427
8428         * exp_ch7.adb (Convert_View): Use base types of underlying types when
8429         determining whether an unchecked conversion is needed for the argument
8430         of an initialization call.
8431
8432 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
8433
8434         * exp_intr.adb (Expand_Unc_Conversion): As a target type, use the type
8435         that appears in the instantiation rather than the internal subtype
8436         generated in the wrapper package, to avoid anomalies in gigi when the
8437         target is derived from a private type whose full view is an access type.
8438
8439 2005-03-15  Robert Dewar  <dewar@adacore.com>
8440
8441         * exp_smem.adb, sem_attr.adb: Remove OK_For_Stream flag, not used,
8442         not needed.
8443         Add documentation to replace the use of this flag
8444         Fix kludge for Maximum_Alignment on x86 so that it does not apply to
8445         the x86_64.
8446
8447 2005-03-15  Thomas Quinot  <quinot@adacore.com>
8448
8449         * exp_tss.ads, exp_tss.adb (Find_Inherited_TSS): New subprogram, moved
8450         here from exp_attr so it can be shared between exp_attr and exp_dist.
8451         (TSS_Names): Renamed from OK_TSS_Names. This array contains the list of
8452         all TSS names, not a subset thereof, and the previous name introduced
8453         an unnecessarily confusion that a distinction might exist between
8454         "OK" TSS names and some "not OK" TSS names.
8455
8456 2005-03-15  Doug Rupp  <rupp@adacore.com>
8457
8458         * gnatchop.adb (Locate_Executable): Normalize the possibly VMS style
8459         Command_Name.
8460
8461 2005-03-15  Pascal Obry  <obry@adacore.com>
8462             Eric Botcazou  <ebotcazou@adacore.com>
8463
8464         PR ada/20226
8465         PR ada/20344
8466
8467         * init.c (__gnat_initialize): Do not call __gnat_install_SEH_handler()
8468         when IN_RTS. This is to work around a bootstrap path problem.
8469
8470         * misc.c (gnat_parse_file): Create a SEH (Structured Exception Handler)
8471         table and pass it to __gnat_install_SEH_handler().
8472         (gnat_handle_option): Accept OPT_fRTS_, not OPT_fRTS.
8473
8474         * lang.opt: Fix specification of -fRTS=.
8475
8476 2005-03-15  Doug Rupp  <rupp@adacore.com>
8477             Bernard Banner  <banner@adacore.com>
8478             Vincent Celier  <celier@adacore.com>
8479             Arnaud Charlet  <charlet@adacore.com>
8480
8481         PR ada/6852
8482         This change works fine when gnatlib is built from the gcc directory,
8483         but does not work when using the libada Makefile, since GCC_FOR_TARGET
8484         is not passed to ada/Makefile.in, so more work is needed by a
8485         Makefile/configure expert.
8486
8487         * Makefile.in(gnatlib): Use $(GCC_FOR_TARGET) for compiling library.
8488         set GMEM_LIB on ia64 linux to add optional support for gnatmem.
8489         Setup gnatlink switch -M for x86_64 linux, as it is already setup
8490         for Linux x86.
8491         (gnatlib-shared-default): Use GNATLIBCFLAGS as well.
8492         Run ranlib on libgccprefix.a
8493         Define PREFIX_OBJS for Darwin, to build libgccprefix.
8494         (ADA_INCLUDE_SRCS): Split Ada packages.
8495
8496 2005-03-15  Robert Dewar  <dewar@adacore.com>
8497
8498         * Make-lang.in: Add g-utf_32 unit for gnat and gnatbind
8499
8500         * impunit.adb: Add GNAT.UTF_32
8501
8502         * scng.adb: Use gnat.utf_32 instead of widechar for utf_32 stuff
8503
8504         * widechar.ads, widechar.adb: Remove redundant UTF-32 tables (scng
8505         now uses GNAT.UTF_32).
8506
8507         * g-utf_32.ads, g-utf_32.adb: This is a new unit with full
8508         capabilities for categorizing characters using Unicode categories
8509
8510 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
8511
8512         * sem_ch10.adb (Build_Ancestor_Name): If the ancestor is an
8513         instantiation that has been rewritten as a package body, retrieve spec
8514         to generate proper name for implicit_with_clause.
8515         (Install_Parents): Recognize a parent that is an instantiation but has
8516         been rewritten as a package declaration during analysis.
8517
8518 2005-03-15  Javier Miranda  <miranda@adacore.com>
8519             Ed Schonberg  <schonberg@adacore.com>
8520
8521         * sem_ch12.adb (Instantiate_Object): If the analysis of the actual
8522         parameter reported some error we immediately return. This improves the
8523         behaviour of the frontend in case of errors.
8524         (Install_Parent, Remove_Parent): Introduce new flag
8525         Parent_Unit_Visible, to preserve the proper visibility of the ultimate
8526         ancestor of a generic child unit, when the child is being instantiated.
8527         (Inline_Instance_Body): If we are compiling the private
8528         part or the body of a child unit, restore the proper visibility of the
8529         parents after compiling the instance body.
8530
8531 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
8532             Javier Miranda  <miranda@adacore.com>
8533
8534         PR ada/15608
8535         * sem_util.adb (Get_Task_Body_Procedure): Type may be the completion
8536         of a private type, in which case it is underlying_type that denotes
8537         the proper task. Also modified to use the new entity attribute
8538         that is directly available in the task type and task subtype entities
8539         (Build_Actual_Subtype_Of_Component): Handle properly multidimensional
8540         arrays when other dimensions than the first are constrained by
8541         discriminants of an enclosing record.
8542         (Insert_Explicit_Dereference): If the prefix is an indexed component or
8543         a combination of indexed and selected components, find ultimate entity
8544         and generate the appropriate reference for it, to suppress spurious
8545         warnings.
8546         (Note_Possible_Modification): If an entity name has no entity, return.
8547         (Is_Variable): A function call never denotes a variable.
8548         (Requires_Transient_Scope): For record types, recurse only on
8549         components, not on internal subtypes that may have been generated for
8550         constrained components.
8551
8552 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
8553
8554         * sem_ch4.adb (Analyze_Concatenation): Do not consider operators marked
8555         Eliminated as candidates for resolution. Both efficient, and avoids
8556         anomalies with operators declared in deleted code.
8557         (Process_Implicit_Dereference_Prefix): Use this procedure whenever
8558         expansion is disabled (as when compiling a generic) to prevent spurious
8559         warnings on prefixes of selected components.
8560
8561 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
8562
8563         * sem_ch6.adb (Is_Private_Declaration): Verify that the declaration is
8564         attached to a list before checking whether it appears in the private
8565         declarations of the current package.
8566         (Make_Inequality_Operator): Insert declaration in proper declarative
8567         list rather than just setting the Parent field, so that
8568         Is_Private_Declaration can handle it properly.
8569
8570 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
8571
8572         * sem_ch8.adb (Analyze_Subprogram_Renaming): In a generic, if this is
8573         a renaming a body, check that the renamed subprogram in not intrinsic.
8574         (Find_Direct_Name): If several use_visible entities hide
8575         each other, and the context is a predefined file compiled through
8576         rtsfind, keep only the entity that comes from a predefined file.
8577
8578 2005-03-15  Geert Bosch  <bosch@adacore.com>
8579
8580         * s-fatgen.adb (Valid): Extend special exceptions to account for long
8581         long float padding to also cover AMD64 and IA64.
8582
8583 2005-03-15  Gary Dismukes  <dismukes@adacore.com>
8584
8585         * s-imgwch.adb: Add with and use of Interfaces.
8586         (Img_Wide_Character): Change type of Val to Unsigned_16.
8587         (Img_Wide_Wide_Character): Change type of Val to Unsigned_32.
8588
8589 2005-03-15  Matthew Gingell  <gingell@adacore.com>
8590
8591         * sysdep.c: Implement __gnat_localtime_r as call to localtime_r on AIX.
8592
8593 2005-03-15  Robert Dewar  <dewar@adacore.com>
8594
8595         * usage.adb: Add missing lines for -gnat95 and -gnat05 switches
8596
8597         * sem_ch7.adb: Minor change to propagate Is_Ada_2005 flag
8598
8599         * i-c.adb: Clarify that AI-258 behavior is also intended in Ada 95
8600
8601 2005-03-15  Robert Dewar  <dewar@adacore.com>
8602
8603         * s-bitops.adb, s-bitops.ads,
8604         s-taprop-os2.adb, s-intman-vms.ads, s-intman-vxworks.ads,
8605         s-taprop-vxworks.adb, a-caldel.ads, a-calend.adb, a-tasatt.adb,
8606         tbuild.ads, s-finimp.adb, s-imgwch.adb, s-intman.ads, s-intman.ads,
8607         s-memory.adb, s-soflin.ads, s-taasde.ads, s-taprob.adb, s-taprop.ads,
8608         s-taprop.ads, s-tasini.adb, s-tasini.ads, s-tasini.ads, s-tasini.ads,
8609         s-taskin.ads, s-tasren.adb, s-tassta.adb, s-tassta.ads, s-tassta.ads,
8610         s-tasuti.ads, s-tataat.ads, s-tataat.ads, s-tataat.ads, s-tataat.ads,
8611         s-tpoben.adb, s-tpoben.adb, s-tpobop.ads: Update comments. Minor
8612         reformatting.
8613
8614 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
8615
8616         * utils2.c (build_binary_op): Fix typo.
8617
8618 2005-03-15  Doug Rupp  <rupp@adacore.com>
8619
8620         * s-crtl.ads (popen,pclose): New imports.
8621
8622 2005-03-15  Cyrille Comar  <comar@adacore.com>
8623
8624         * comperr.adb (Compiler_Abort): remove references to obsolete
8625         procedures in the bug boxes for various GNAT builds.
8626
8627 2005-03-15  Vincent Celier  <celier@adacore.com>
8628
8629         * snames.ads, snames.adb: Save as Unix text file, not as DOS text file
8630
8631 2005-03-15  Geert Bosch  <bosch@adacore.com>
8632             Arnaud Charlet  <charlet@adacore.com>
8633             Robert Dewar  <dewar@adacore.com>
8634             Cyrille Comar  <comar@adacore.com>
8635             Sergey Rybin  <rybin@adacore.com>
8636
8637         * gnat_ugn.texi: Remove extended inline assembly example, as it was far
8638         too specific and long-winded to be appropriate for the GNAT User's
8639         Guide.
8640         Warn about use of GCC switches not documented in the GNAT User's Guide,
8641         as these may cause generated code to not conform to Ada semantics.
8642         Remove mention of -gdwarf-2 for sparc64, since this is now the default.
8643         Add documentation for -gnat95 and -gnat05 switches
8644         Remove paragraph documenting obsolete way to refer to third party
8645         libraries.
8646         Add a few references to Ada_05 that were missing.
8647         Update documentation on -gnatZ/-gnatL.
8648         Document limitation when using -m64 under Solaris.
8649         Change the "Name Casing" subsection of the pretty-printer section
8650         according to the changes in the dictionary processing.
8651
8652         * gnat_rm.texi: Document the Ada_05 pragma.
8653         Section on record representation clauses describes the new more
8654         relaxed rules about placement of large packed bit array components.
8655         Add documentation of GNAT.UTF_32
8656
8657 2005-03-12  Daniel Berlin <dberlin@dberlin.org>
8658
8659         * misc.c (gnat_post_options): Turn off structural
8660         aliasing for now.
8661
8662 2005-03-08  Laurent Guerby <laurent@guerby.net>
8663
8664         * system-linux-sparc.ads: Fix typo in previous commit.
8665
8666 2005-03-07  James A. Morrison <phython@gcc.gnu.org>
8667             Laurent Guerby <laurent@guerby.net>
8668
8669         PR ada/20035
8670         * system-linux-sparc.ads: New.
8671         * Makefile.in: Add sparc linux entry.
8672
8673 2005-02-27  Danny Smith  <dannysmith@users.sourceforge.net>
8674
8675         * seh_init.c (__gnat_SEH_error_handler): Mark third and fourth
8676         parameters as unused.
8677
8678 2005-02-26  Nathanael Nerode  <neroden@gcc.gnu.org>
8679         Partial merge from libada-gnattools-branch:
8680
8681         2004-12-02  Nathanael Nerode  <neroden@gcc.gnu.org>
8682         * Makefile.in: Move gnattools{1,1re,2,3,4} and corresponding flags
8683         into code in gnattools/Makefile.in.  Remove direct dependencies on
8684         stamp-tools by tools clauses.
8685         2004-12-02  Nathanael Nerode  <neroden@gcc.gnu.org>
8686         * config-lang.in: Add gnattools to $lang_dirs.
8687
8688 2005-02-13  Andrew Pinski  <pinskia@physics.uc.edu>
8689
8690         PR ada/19942
8691         * utils.c (gnat_type_for_mode): Return null instead of ICE because
8692         we asked for an unknown mode.
8693
8694 2005-02-12  Richard Henderson  <rth@redhat.com>
8695
8696         * utils.c (gnat_type_for_mode): Return NULL for COMPLEX modes;
8697         validate SCALAR_INT_MODE_P before calling gnat_type_for_size.
8698
8699 2005-02-10  Andreas Jaeger  <aj@suse.de>
8700
8701         * init.c (__gnat_initialize): Mark parameter as unused.
8702
8703 2005-02-09  Doug Rupp  <rupp@adacore.com>
8704
8705         * g-expect-vms.adb (Non_Blocking_Spawn): Separate out.
8706         * g-enblsp-vms-alpha.adb g-enblsp-vms-ia64.adb: New subunits.
8707
8708 2005-02-09  Doug Rupp  <rupp@adacore.com>
8709
8710         * gnatchop.adb (dup, dup2),
8711         g-dirope.adb (closedir, opendir, rmdir): Reference via System.CRTL.
8712
8713         * gnatlbr.adb (mkdir),
8714         mlib-tgt-vms-ia64.adb (popen, plose):  Import with decc$ prefix.
8715
8716         * s-crtl.ads (closdir, dup, dup2, opendir, rmdir): Import.
8717
8718 2005-02-09  Doug Rupp  <rupp@adacore.com>
8719
8720         * s-tpopde-vms.adb: Add pragma Warnings (Off) for Task_Id conversions.
8721
8722 2005-02-09  Robert Dewar  <dewar@adacore.com>
8723             Thomas Quinot  <quinot@adacore.com>
8724             Javier Miranda  <miranda@adacore.com>
8725             Pascal Obry  <obry@adacore.com>
8726             Ed Schonberg  <schonberg@adacore.com>
8727             Doug Rupp  <rupp@adacore.com>
8728             Gary Dismukes  <dismukes@adacore.com>
8729             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8730
8731         * g-zstspl.ads: New file.
8732
8733         * a-chahan.ads, a-chahan.adb: Add declarations from AI-285
8734
8735         * a-string.ads: Add pragma Ada_05 for wide_wide_space to get warning in
8736         Ada 95 mode
8737         Add definition of Wide_Wide_Space for AI-285
8738
8739         * impunit.ads, impunit.adb, sem_ch10.adb: Complete rewrite and new
8740         interface (to support Ada 95 and Ada 2005 units).
8741         Add Unbounded_IO files
8742         Add entries for Wide_Wide packages for AI-285
8743         Add list of containers packages to Ada 2005 unit list
8744
8745         * a-swuwti.ads, a-swuwti.adb, a-suteio.ads, a-suteio.adb: Updates to
8746         support new Unbounded_IO package cleanly.
8747
8748         * g-utf_32.ads, g-utf_32.adb: New files.
8749
8750         * Makefile.rtl: Add entry for g-utf_32
8751         Add new files for Unbounded_IO
8752         Adjust make file for new AI-285 wide wide packages
8753         Add AI-302 containers to the run time.
8754
8755         * a-stwibo.adb, a-stwibo.ads, a-stwisu.adb, a-stwisu.ads,
8756         a-strbou.ads, a-strbou.adb, a-strsup.ads, a-strsup.adb: New
8757         subprograms for AI-301.
8758
8759         * a-stwiun.adb, a-stwiun.ads: Minor reformatting.
8760
8761         * a-stunau.ads: Minor comment correction
8762
8763         * rtsfind.ads, rtsfind.adb: Add definitions for Wide_Wide attributes
8764         etc.
8765         Also extend Text_IO_Kludge to support Wide_Wide_Text_IO
8766         (Check_RPC): Update to match changes in expanded code.
8767         Clean up unused entity.
8768
8769         * exp_ch3.ads, exp_ch3.adb: Fix various places where Wide_Wide_String
8770         was not taken into account.
8771         This includes proper initialization with Normalize_Scalars.
8772         (Get_Simple_Init_Val): Major rewrite for initialize scalars and
8773         normalize scalars cases (particularly the latter) to do a better job
8774         of finding invalid representations.
8775
8776         * s-scaval.ads, s-scaval.adb: Add values for zero invalid values
8777
8778         * s-strops.ads, s-strops.adb: Remove string normalize routines, never
8779         used
8780
8781         * exp_dist.adb: Add support for wide wide character type
8782         (Expand_Receiving_Stubs_Bodies): For a package declaration that has a
8783         private part, generate stub bodies at the end of the private part,
8784         not the visible part.
8785         (Add_RACW_Primitive_Operations_And_Bodies): Add last missing code for
8786         PolyORB support.
8787         (Add_Obj_RPC_Receiver_Completion): Add PCS-specific subprograms and
8788         generic wrapper to execute final processing after completing the
8789         expansion of the RPC receiver for an RACW.
8790
8791         * snames.h, snames.ads, snames.adb: Add definitions for wide_wide
8792         packages and attributes.
8793         (Preset_Names): Addition of the new reserved words of Ada 2005,
8794         that is interface, overriding and synchronized.
8795         (Get_Pragma_Id): Give support to the use of the new reserved word
8796         "interface" as a pragma name.
8797         (Is_Pragma_Name): Give support to the use of the new reserved word
8798         "interface" as a pragma name.
8799         (Preset_Names): Add stream_size string for the Stream_Size Ada2005
8800         attribute implementation.
8801
8802         * exp_attr.adb (Expand_Attribute_Reference): Do not apply validity
8803         checks to entities that are output parameters of Asm operations.
8804         Handle the Stream_Size attribute.
8805         Add implementation of Wide_Wide_Value, Wide_Wide_Image, Wide_Wide_Width
8806
8807         * exp_imgv.ads, exp_imgv.adb: Add support for wide wide character type
8808
8809         * sem_attr.adb (Eval_Attribute): Raise compile-time constraint error
8810         for second parameter being 0.0.
8811         Add support for wide wide character type.
8812         (Analyze_Attribute, Eval_Attribute): Handle the Stream_Size attribute.
8813
8814         * s-valwch.adb, s-valwch.ads, s-imgwch.ads, s-imgwch.adb,
8815         s-wchstw.ads, s-wchstw.adb, s-wchwts.adb, s-wchwts.ads,
8816         s-widwch.adb, s-widwch.ads, s-wwdcha.adb, s-wwdcha.ads,
8817         s-wwdenu.adb, s-wwdenu.ads, s-wwdwch.adb, s-wwdwch.ads: Add support
8818         for wide wide character cases.
8819
8820         * cstand.adb: Create entities for Wide_Wide_Character and
8821         Wide_Wide_String.
8822
8823         * i-c.ads, i-c.adb: Fix not raising CE for null wide strings in
8824         accordance with AI-258.
8825         Add new declarations for 16/32 bit C character types (Part of AI285)
8826
8827         * einfo.ads, einfo.adb (Is_Obsolescent, Is_Ada_2005): New flag
8828         (Obsolescent_Warning): New field
8829         (Rep_Clause): New local subprogram used to share code. Returns the rep
8830         clause for which the name is given in parameter.
8831         (Has_Stream_Size_Clause): New routine.
8832         (Stream_Size_Clause): Idem. Implementation is based on Rep_Clause.
8833         (Address_Clause): Implementation is now using Rep_Clause.
8834         (Alignment_Clause): Idem.
8835         (Size_Clause): Idem.
8836
8837         * lib-xref.adb (Generate_Reference): Test for reference to Ada 2005
8838         entity in non-Ada 2005 mode and generate warning.
8839
8840         * par-prag.adb: Add handling of one argument form for pragma Ada_05.
8841         (Prag): Code cleanup. Remove old gnat pragma "overriding"
8842
8843         * sem_prag.adb: Add handling of one argument form for pragma Ada_05
8844         (Analyze_Pragma, case Elaborate, Elaborate_All): Do not disable warnings
8845         on the named unit if the pragma is not in the current compilation unit,
8846         so that elaboration calls in the current unit can set up an elaboration
8847         dependency on the named unit, as needed.
8848         (Analyze_Pragma, case Obsolescent): Allow pragma to be used for library
8849         subprogram as well as for subprograms declared within a package.
8850         (Analyze_Pragma, Sig_Flags): Code cleanup. Remove support for the GNAT
8851         pragma overriding.
8852
8853         * krunch.ads, krunch.adb: Add special handling of Wide_Wide (krunched
8854         to z) to avoid some instances of duplication for Wide_Wide packages.
8855
8856         * namet.ads, namet.adb: Implement encoding (WWhhhhhhhh) for wide wide
8857         characters.
8858
8859         * scn.adb: Char_Literal_Value field is now a Uint
8860
8861         * scng.adb: Significant rewrite to handle new Ada 2005 features
8862         allowing wide and wide wide characters in program text, e.g. for
8863         identifiers, as described in AI-285.
8864         (Set_Reserved): New procedure, makes setting up keywords cleaner.
8865         (Initialize_Scanner): Register the new reserved words of Ada 2005.
8866         (Scan): Give support to the new reserved words.
8867
8868         * par-ch2.adb (P_Identifier): Compiling in Ada95 mode, generate a
8869         warning notifying that interface, overriding, and synchronized are
8870         new reserved words.
8871         (P_Pragma): Allow the use of the new reserved word "interface" as
8872         a pragma name.
8873
8874         * gnatls.adb, gnatbind.adb,
8875         ali-util.adb, binde.adb, ali.ads, ali.adb: Code cleanup. Rename
8876         identifiers named "interface" to "SAL_Interface".
8877
8878         * bindgen.adb (Gen_Main_Ada): Add support for the new SEH
8879         (Structured Exception handling).
8880         (Gen_Main_C): Idem.
8881
8882         * bindgen.adb:
8883         (Gen_Main_Ada): Set the default exit code if specified.
8884         (Gen_Main_C): Likewise.
8885         Part of *DC20-006.
8886         (Gen_Output_File_C): Remove redundant output of gnat_exit_status.
8887         Code cleanup. Rename identifiers named "interface" to "SAL_Interface"
8888
8889         * switch-b.adb, bindusg.adb, opt.ads, vms_data.ads: Add handling of
8890         new -Xnnn switch.
8891
8892         * mlib-prj.adb, mlib.adb: Code cleanup. Rename one identifier that
8893         has a collision with the new Ada 2005 "interface" reserved word.
8894
8895         * par-ch3.adb (P_Defining_Identifier): Compiling in Ada95 mode,
8896         generate a warning notifying that interface, overriding, and
8897         synchronized are new reserved words.
8898
8899         * scans.ads (Token_Type): Addition of the tokens corresponding to the
8900         new reserved words of Ada 2005: Tok_Interface, Tok_Overriding
8901         and Tok_Synchronized.
8902
8903         * sem_res.adb (Resolve_Actuals): Change error messages to refer to
8904         "dispatching" rather than "primitive" operations, since dispatching
8905         calls are now allowed to abstract formal subprograms (which are not
8906         primitive).
8907         Char_Literal_Value field is now a Uint
8908         (Resolve_Slice): If the prefix is an access to an unconstrained array,
8909         compute the actual subtype of the designated object to impose the proper
8910         index constraints.
8911         (Resolve_Selected_Component): Do not insert an access check if the
8912         prefix is an access type: such a node is expanded into an explicit
8913         dereference, on which the access check is performed anyway. Removes
8914         expensive duplicate checks.
8915         (Resolve_Call): Use new flag Is_Obsolescent and field
8916         Obsolescent_Warning so that pragma Obsolescent works on library
8917         subprograms.
8918         Add support for wide wide character type
8919         (Resolve_Allocator): Replace the error message on wrong null-exclusion
8920         value by a warning message.
8921         (Resolve_Type_Conversion): If the mixed-mode expression is interpreted
8922         as fixed-point, and one of the operands is non-static and universal, it
8923         can only be an illegal exponentiation operation, in which case there is
8924         no real value to retrieve.
8925
8926         * exp_strm.adb: Add support for wide wide character type
8927         (Build_Elementary_Input_Call): Compute the size of the stream element by
8928         querying the rep chain to find the Stream_Attribute attribute value.
8929         (Build_Elementary_Write_Call): Ditto.
8930
8931         * sem_aggr.adb: Char_Literal_Value field is now a Uint
8932         Add support for wide wide character type
8933         Replace the error messages on wrong null-exclusion value by warnings
8934         as described in Ada 2005.
8935         (Resolve_Extension_Aggregate): Document the fact that the error
8936         message on class-wide expressions in extensions aggregates.
8937
8938         * sem_case.adb: Add support for wide wide character type
8939
8940         * sem_ch13.adb: Add support for wide wide character type
8941         (Analyze_Attribute_Definition_Clause): Handle the Stream_Size attribute.
8942
8943         * sem_ch3.adb: Add support for wide wide character type
8944         (Process_Subtype): If constraint is illegal for the type, set Ekind of
8945         now-useless Itype, to prevent cascaded errors on a compiler built
8946         without -gnatp.
8947
8948         * sem_ch8.adb: Add with and use of Sem_Disp.
8949         (Analyze_Subprogram_Renaming): Replace unclean uses of
8950         Corresponding_Spec with Corresponding_Formal_Spec (and delete setting
8951         of Corresponding_Spec to Empty).
8952         (Attribute_Renaming): Replace use of Corresponding_Spec with
8953         Corresponding_ Formal_Spec and simplify condition.
8954         (Use_One_Package): Check that scope of homonym of identifier is defined,
8955         before checking whether it is a wrapper package.
8956         Add support for wide wide character type
8957
8958         * sem_eval.adb: Add support for wide wide character type.
8959         (Eval_Arithmetic_Op): Check for compile time known signed integer
8960         overflow in the non-static case.
8961         (Subtypes_Statically_Match): A formal scalar type and its base type do
8962         not statically match.
8963
8964         * sem_util.adb (Collect_Primitive_Operations): Minor change of "/=" to
8965         "not in" for test of N_Formal_Subprogram_Declaration (which is now a
8966         subtype).
8967         (Unit_Declaration_Node): Ditto.
8968         (Is_Variable_Prefix):  For the case of an indexed component whose prefix
8969         has a packed array type, the prefix has been rewritten into a type
8970         conversion. Determine variable-ness from the converted expression.
8971         Handle wide wide character cases.
8972
8973         * stand.ads: Add types Wide_Wide_Character and Wide_Wide_String
8974
8975         * stringt.ads, stringt.adb: Handle full UTF-32 range.
8976         Remove ["0A"] from comment, since it can look like a line terminator.
8977         Currently we don't permit this, but this is under discussion by the
8978         ARG, and it is easy enough to use a different example.
8979
8980         * s-wchcon.ads, s-wchcnv.ads, s-wchcnv.adb: Add new subprograms for
8981         handling UTF-32 encoding for wide wide character.
8982         Implement new brackets coding ["hhhhhhhh"]
8983         Add UTF-8 encodings for full UTF-32 range
8984
8985         * ttypes.ads: Add definition of Standard_Wide_Wide_Character_Size
8986
8987         * types.h, types.ads, types.adb: Wide_Wide_Character now has full 31
8988         bit range Add full UTF-32 support.
8989         (RT_Exception_Code): Addition of CE_Null_Not_Allowed; used to
8990         notify that constraint error will be raised at run-time
8991         because a null value is assigned to a null-excluding object.
8992         Remove some obsolete declarations and make Char_Code
8993         unsigned.
8994
8995         * a-except.adb (Rcheck_30): New subprogram. Addition of the message
8996         corresponding to CE_Null_Not_Allowed, and adjust the output of all the
8997         Rcheck subprograms.
8998
8999         * checks.adb (Check_Null_Not_Allowed): Replace the error message on
9000         wrong null-exclusion value by a warning message.
9001         (Enable_Range_Check): Do range check if the prefix is an
9002         explicit dereference whose designated object is an unconstrained array.
9003         Current algorithm for removing duplicate checks is over-eager in this
9004         case.
9005
9006         * sem_ch5.adb (Analyze_Assignment): Replace the error messages on wrong
9007         null-exclusion value by a warning message
9008
9009         * atree.h, atree.ads, atree.adb: Remove Char_Code field support
9010         completely. Add support for Uint2 field
9011
9012         sem_ch2.adb, exp_ch11.adb, exp_dbug.adb,
9013         exp_prag.adb: Char_Literal_Value field is now a Uint.
9014
9015         * exp_util.adb (Insert_Actions): Replace
9016         N_Formal_Subprogram_Declaration by
9017         N_Formal_{Abstract|Concrete}_Subprogram_Declaration.
9018         Char_Literal_Value field is now a Uint.
9019
9020         * sinfo.ads, sinfo.adb (Corresponding_Formal_Spec): New function
9021         defined for subprogram renaming declarations. When set, the field
9022         indicates the defining entity of a corresponding formal subprogram
9023         when the renaming corresponds to a formal subprogram association in an
9024         instantiation.
9025         (Set_Corresponding_Formal_Spec): New procedure to return
9026         Corresponding_Formal_Spec field.
9027         Minor changes of "=" to "in" in tests of N_Formal_Subprogram_Declaration
9028         (which is now a subtype).
9029         Char_Literal_Value field is now a Uint
9030
9031         * exp_disp.ads, exp_disp.adb (Make_DT): Generate code that moves the
9032         pointer to the base of the dispatch table.
9033         Minor changes to comments.
9034         (Controlling_Type): New function for determining the tagged type
9035         associated with a tagged primitive subprogram.
9036         (Expand_Dispatching_Call): Add support for a controlling actual that is
9037         directly a value of type Ada.Tag rather than a tagged object.
9038
9039         * i-cpp.ads, i-cpp.adb, a-tags.ads, a-tags.adb: Update documentation
9040         describing the new layout.
9041         (Dispatch_Table): The expander computes the actual array size, allocates
9042         the Dispatch_Table record accordingly, and generates code that displaces
9043         the base of the record after the Typeinfo_Ptr component. The access to
9044         these components is done by means of local functions.
9045         (Offset_To_Top): New function.
9046         (Typeinfo_Ptr): New function.
9047         (Get_TSD): Modified to access the new position of the TSD.
9048         (Set_TSD): Modified to save the TSD in its new position.
9049
9050         * par-ch12.adb (P_Formal_Subprogram_Declaration): Add parsing for the
9051         case of formal abstract subprograms. Add check and message for -gnat05.
9052         Update comments.
9053
9054         * sem_ch12.adb: Add with and use for Sem_Disp.
9055         (Analyze_Associations): Minor change from "=" to "in" for use of
9056         N_Formal_Subtype_Declaration (which is now a subtype).
9057         (Set_Analyzed_Formal): Minor changes from "=" to "in" for uses of
9058         N_Formal_Subtype_Declaration (which is now a subtype).
9059         (Analyze_Formal_Subprogram): Add handling for
9060         N_Formal_Abstract_Subprogram, marking the formal as abstract and
9061         dispatching, setting the controlling status of the formal parameters
9062         and result, and issuing an error if there is no controlling type for
9063         the formal subprogram.
9064         (Instantiate_Formal_Subprogram): Rather than setting Corresponding_Spec,
9065         which is an unclean use of that field, we set the new field
9066         Corresponding_Formal_Spec to make the formal subprogram available to
9067         processing in Analyze_Subprogram_Declaration.
9068         (Analyze_Formal_{Discrete, Decimal_Fixed_Point, Fixed_Point,
9069         Floating_Point, Modular_Integer, Signed_Integer}_Type: Make formal type
9070         Constrained, so that it is is does not statically match its anonymous
9071         base type.
9072
9073         * sem_ch6.adb (Analyze_Subprogram_Specification): Include test for
9074         abstract formal subprograms in error check for functions returning
9075         abstract types. Set scope of new designator for
9076         a parameterless subprogram, so that it is available when checking the
9077         body for nested subprograms, before full analysis of said body.
9078         (Analyze_Subprogram_Body): Warn on inlining bodies with nested
9079         subprogram only if inner one comes from source.
9080         (Analyze_Function_Call): If the call is given in object notation, the
9081         analysis of the name rewrites the node and analyzes it with the proper
9082         argument list. After analyzing the name, if the call has been rewritten
9083         and the result type is set, no further analysis is needed.
9084         (Analyze_Return_Type): Subsidiary to Process_Formals: analyze subtype
9085         mark in function specification, in a context where the formals are
9086         visible and hide outer homographs.
9087
9088         * sem_disp.adb (Check_Controlling_Type): Relax the check for same scope
9089         as the tagged type for the cases of abstract formal subprograms and
9090         renamings of those.  Clean up spec comments.
9091         (Check_Dispatching_Context): Add error message to indicate "abstract
9092         procedure", covering the case of a call to a formal abstract procedure
9093         that has statically tagged operands.
9094         (Check_Dispatching_Call): Check for the case of an actual given by
9095         a tag-indeterminate function call whose type is an ancestor of the
9096         containing call's associated tagged type. This situation can occur
9097         for inherited primitives with function defaults. In this case we
9098         use the tagged type's tag directly as the controlling argument for
9099         the calls.
9100         (Expand_Call): Name change on call to Expand_Dispatch_Call.
9101
9102         * sprint.adb (Sprint_Node_Actual): Split
9103         N_Formal_Subprogram_Declaration into two alternatives for the new
9104         cases N_Formal_Abstract_Subprogram_Declaration and
9105         N_Formal_Concrete_Subprogram_Declaration.
9106         Char_Literal_Value field is now a Uint.
9107
9108         * trans.c: Get rid of junk Uint2 reference.
9109         Char_Literal_Value field is now a Uint.
9110         (gnat_to_gnu, case N_Aggregate): Check TYPE_UNCHECKED_UNION_P.
9111         (gigi): Correct third arg to gimplify_body.
9112
9113         * ada-tree.h: (TYPE_UNCHECKED_UNION_P): New flag.
9114         (TYPE_LANG_FLAG_0): Check for record or union.
9115
9116         * treepr.adb: Char_Literal_Value field is now a Uint
9117
9118         * uintp.h, uintp.ads, uintp.adb: Add new routines UI_To_CC and
9119         UI_From_CC.
9120
9121         * widechar.ads, widechar.adb (Is_UTF_32_Non_Graphic): New function
9122         Add full UTF-32 support
9123         Char_Code is now 32 bits
9124
9125         * sinput.ads, sinput.adb (Skip_Line_Terminators): Extend to deal with
9126         wide character UTF_32 line terminators.
9127         Initialize Main_Source_File to avoid error when no main
9128         source is loaded.
9129
9130         * errout.adb (Finalize): Do not check Num_SRef_Pragmas
9131         (Main_Source_File) when no main source has been loaded, to avoid
9132         potential crash.
9133
9134 2005-02-09  Robert Dewar  <dewar@adacore.com>
9135
9136         * a-strunb.ads, a-strunb.adb: Add missing pragma Ada_05 statements
9137         Fix name of Set routine
9138
9139         * a-strfix.ads, a-strfix.adb: Add new index functions from AI-301 to
9140         fixed packages.
9141
9142         * a-stwise.ads, a-stwise.adb, a-stwifi.ads, a-stwifi.adb,
9143         a-strsea.ads, a-strsea.adb: Add new index functions from AI-301 to
9144         fixed packages
9145
9146         * a-witeio.ads, a-witeio.adb, a-textio.ads, a-textio.adb: New function
9147         forms of Get_Line subprograms for AI-301.
9148
9149         * a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads,
9150         a-wtedit.adb, a-wtedit.adb, a-wtedit.ads, a-wttest.adb,
9151         a-wttest.ads, a-strmap.ads, a-strmap.adb, a-stwima.adb,
9152         a-stwima.ads: Minor reformatting.
9153
9154 2005-02-09  Doug Rupp  <rupp@adacore.com>
9155             Thomas Quinot  <quinot@adacore.com>
9156
9157         * adaint.c, adaint.h
9158         [VMS] (to_ptr32): New function.
9159         (MAYBE_TO_PTR32): New macro.
9160         (__gnat_portable_spawn,__gnat_portable_no_block_spawn): Adjust argv
9161         for pointer size.
9162         [VMS] (descriptor_s, ile_s): Use __char_ptr32 for adr field.
9163         [VMS] (#define fork()): Remove since unneccessary.
9164         (__gnat_set_close_on_exec): New routine to support
9165         GNAT.OS_Lib.Set_Close_On_Exec.
9166
9167         * g-expect.adb (Set_Up_Communications): Mark the pipe descriptors for
9168         the parent side as close-on-exec so that they are not inherited by the
9169         child.
9170
9171         * g-os_lib.ads, g-os_lib.adb (Set_Close_On_Exec): New subprogram to
9172         set or clear the FD_CLOEXEC flag on a file descriptor.
9173
9174 2005-02-09  Eric Botcazou  <ebotcazou@adacore.com>
9175             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9176
9177         Fix for c330001 - PR ada/19386
9178
9179         * decl.c:
9180         (gnat_to_gnu_field): Do not necessarily invoke make_packable_type
9181         on the field if Pragma Component_Alignment (Storage_Unit).
9182         (gnat_to_gnu_entity, case object): Do not treat a renaming that has
9183         side-effects as if it were a constant; also make SAVE_EXPR to protect
9184         side-effects.
9185         (gnat_to_gnu_entity, case E_Record_Subtype): If have _Parent, make a
9186         UNION_TYPE.
9187         (make_dummy_type): Set TYPE_UNCHECKED_UNION_P.
9188         (components_to_record): Test it.
9189         Fix improper usage of REFERENCE_CLASS_P.
9190
9191         * utils2.c (build_binary_op, case MODIFY_EXPRP): Treat UNION_TYPE as
9192         RECORD_TYPE.
9193
9194         * utils2.c: Minor reformatting.
9195
9196         * utils.c (convert, case UNION_TYPE): Check TYPE_UNCHECKED_UNION;
9197         handle other cases like RECORD_TYPE.
9198
9199         * utils.c (gnat_pushdecl): Set TREE_NO_WARNING.
9200
9201 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
9202
9203         * exp_aggr.adb (Gen_Assign): If the expression is an aggregate for a
9204         component of an array of arrays in an assignment context, and the
9205         aggregate has component associations that require sliding on
9206         assignment, force reanalysis of the aggregate to generate a temporary
9207         before the assignment.
9208         (Must_Slide): Make global to the package, for use in Gen_Assign.
9209
9210 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
9211
9212         * exp_ch4.adb (Expand_Composite_Equality): If a component is an
9213         unchecked union with no inferable discriminants, return a
9214         Raise_Program_Error node, rather than inserting it at the point the
9215         type is frozen.
9216         (Expand_Record_Equality, Component_Equality): Handle properly the case
9217         where some subcomponent is an unchecked union whose generated equality
9218         code raises program error.
9219
9220 2005-02-09  Doug Rupp  <rupp@adacore.com>
9221
9222         * gnatbl.c: [VMS] (_POSIX_EXIT): Define.
9223         [VMS] (#define exit hack): Remove.
9224
9225 2005-02-09  Pascal Obry  <obry@adacore.com>
9226             Arnaud Charlet <charlet@adacore.com>
9227
9228         * init.c (__gnat_initialize): Add a new parameter eh which contains the
9229         address of the exception registration. The Win32 version of this
9230         routine calls __gnat_install_SEH_handler() to initialize the SEH
9231         (Structured Exception Handling) handler.
9232         (__gnat_error_handler) [Win32]: Removed. Not needed as we use
9233         SEH (Structured Exception Handling) now.
9234         (__gnat_install_handler) [Win32]: Nothing to do now as we use SEH.
9235         (__gnat_initialize for ppc-vxworks): Adjust comments and the
9236         preprocessor condition protecting the call to the extra eh setup
9237         subprogram, which is only available for the ppc target.
9238         (__gnat_clear_exception_count): replaced reference to
9239         variable taskIdCurrent by call to taskIdSelf(), cleaner.
9240
9241         * seh_init.c: New file.
9242
9243         * Make-lang.in: (GNAT_ADA_OBJS): Add seh_init.o.
9244         (GNATBIND_OBJS): Idem.
9245
9246         * misc.c (gnat_parse_file): Update call to __gnat_initialize. This
9247         routine takes a new parameter (a pointer to the exception registration
9248         for the SEH (Structured Exception Handling) support.
9249
9250         * raise.h: (__gnat_install_SEH_handler): New prototype.
9251         Update copyright notice.
9252
9253         * s-tassta.adb (Task_Wrapper): Declare the exception registration
9254         record and initialize it by calling __gnat_install_SEH_handler.
9255
9256 2005-02-09  Vincent Celier  <celier@adacore.com>
9257
9258         * make.adb (Gnatmake): Do not fail when the main project has no object
9259         directory.
9260
9261 2005-02-09  Doug Rupp  <rupp@adacore.com>
9262
9263         * Makefile.in [VMS] (LN,LN_S): Define as cp -p
9264         Rename s-asthan-vms.adb to s-asthan-vms-alpha.adb.
9265         [VMS]: Add translations for g-enblsp.adb.
9266
9267         * s-asthan-vms.adb: Removed.
9268         * s-asthan-vms-alpha.adb: Added.
9269
9270 2005-02-09  Pascal Obry  <obry@adacore.com>
9271
9272         * Makefile.in (LIBGNAT_SRCS): Add seh_init.c.
9273         (LIBGNAT_OBJS): Add seh_init.o.
9274
9275 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
9276
9277         PR ada/16592
9278
9279         * Makefile.in: Link all gnat tools with -static-libgcc, since
9280         -shared-libgcc is now used by default on some systems (e.g. linux with
9281         recent binutils).
9282         Remove references to Makefile.prolog/generic, no longer used.
9283
9284 2005-02-09  Vincent Celier  <celier@adacore.com>
9285
9286         * prj-makr.adb (Process_Directory): Put file name in canonical case
9287         before matching against the patterns.
9288         If gnatname has been invoked as <prefix>-gnatname
9289         then invoke the compiler as <prefix>-gcc, not just "gcc".
9290
9291 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
9292
9293         * sem_ch4.adb (Analyze_Selected_Component): Create Actual_Subtype even
9294         with expansion disabled. The actual subtype is needed among other
9295         places when the selected component appears in the context of a loop
9296         bound, and denotes a packed array.
9297         (Operator_Check): Always use the first subtype in the
9298         error message, to avoid the appearance of internal base types.
9299         (Transform_Object_Operation): Copy each actual in full
9300         to the parameter associations of the constructed call, rather than
9301         using the shallow copy mechanism of New_Copy_List. This ensures that
9302         the chaining of named associations is done properly.
9303         (Complete_Object_Operation): Rewrite node, rather than
9304         replacing it, so that we can trace back to the original selected
9305         component.
9306
9307         * sem_elab.adb (Set_Elaboration_Constraint): For initialization calls,
9308         and calls that use object notation, if the called function is not
9309         declared  in a withed unit, place the elaboration constraint on the
9310         unit in the context that makes the function accessible.
9311         (Check_Elab_Subtype_Declaration): Check whether a subtype declaration
9312         imposes an elaboration constraint between two packages.
9313
9314 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
9315
9316         * sem_ch7.adb (Uninstall_Declarations): Exchange full and private
9317         views of a private type after handling its private dependents, to
9318         maintain proper stack discipline between entry and exit from the
9319         package.
9320
9321 2005-02-09  Cyrille Comar  <comar@adacore.com>
9322
9323         * s-finimp.adb: (Finalize_List): Optimize in the no-abort case.
9324         Minor reformatting.
9325
9326 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
9327
9328         * s-tporft.adb (Register_Foreign_Thread): Initialize Task_Image[_Len]
9329         fields for foreign threads.
9330
9331 2005-02-09  Doug Rupp  <rupp@adacore.com>
9332
9333         * s-vaflop.adb: Add pragma Warnings (Off) to eliminate infinite
9334         recursion warnings when compiled with -gnatdm.
9335
9336 2005-02-09  Robert Dewar  <dewar@adacore.com>
9337
9338         * usage.adb: Add line for switch -gnat05 (allow Ada 2005 extensions)
9339         Slight fix to documentation of -gnaty with no parameters
9340
9341         * xr_tabls.ads: Add ??? comment for missing overall comment
9342
9343         * xsinfo.adb: Make default file name be sinfo.h, since this is what
9344         we now use by default.
9345
9346         * xsnames.adb: Adjust end of file test to look for five space followed
9347         by '#' instead of six spaces. The format of xsnames.adb was modified
9348         in the last update.
9349
9350         * a-numeri.ads: Add reference to AI-388 for greek letter pi
9351         identifier.
9352
9353         * clean.adb: Minor reformatting.
9354
9355         * gnat1drv.adb, gnatfind.adb, gnatlink.adb, gnatmem.adb,
9356         gnatname.adb: Minor reformatting
9357         Add 2005 to copyright output when utility is run
9358
9359         * csets.adb: Eliminate obsolete comment
9360
9361         * debug.adb, g-socket.ads, i-cobol.adb: Minor reformatting throughout
9362         Update comments.
9363
9364         * sem_eval.ads (Eval_Integer_Literal): Do not inline this, not useful.
9365
9366 2005-02-09  Sergey Rybin  <rybin@adacore.com>
9367
9368         * gnat_ugn.texi: Add to the gnatpp section the paragraph describing
9369         the difference between compact and incompact layout and add the record
9370         representation clause to the example illustrating different layouts.
9371         Add the description of '-A5' gnatpp option ("align 'AT' keywords in
9372         component clauses").
9373
9374 2005-02-09  Florian Villoing  <villoing@adacore.com>
9375
9376         * gnat_ugn.texi: Fix typos.
9377         Use @command to display 'gcc', 'gnatbind', etc. insted of @code or
9378         @file.
9379         Make proper use of @ref, @xref and @pxref to avoid duplication of "see"
9380         in the generated documentation.
9381
9382 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
9383
9384         * gnat_ugn.texi: Remove all mentions of FSU threads, which are no
9385         longer supported.
9386         Update linker wrapper when linking with non GNU C++.
9387
9388 2005-02-09  Pascal Obry  <obry@adacore.com>
9389
9390         * gnat_ugn.texi:
9391         Document the procedure to debug the DllMain routine on Windows.
9392         Add note about -funwind-tables and mixed Ada and C/C++ programming in
9393         ZCX mode.
9394         Document new BIND qualifer /RETURN_CODES=VMS.
9395
9396 2005-02-09  Ben Brosgol  <brosgol@adacore.com>
9397
9398         * gnat_ugn.texi: Wordsmithing of "GNAT and Libraries" chapter
9399         Edited gnatmetric chapter
9400
9401 2005-02-09  Robert Dewar  <dewar@adacore.com>
9402
9403         * gnat_rm.texi:
9404         Changes to document new wide wide character support
9405         For AI-285
9406         Update documentation on Normalize_Scalars and Initialize_Scalars
9407
9408 2005-02-09  Pascal Obry  <obry@adacore.com>
9409
9410         * s-taprop-mingw.adb, s-soflin.ads: Minor reformatting.
9411
9412 2005-02-09  Jose Ruiz  <ruiz@adacore.com>
9413
9414         * s-osinte-vxworks.ads (taskPriorityGet): Add this function (imported
9415         from the VxWorks kernel) that is needed for getting the active
9416         priority of the different tasks.
9417
9418         * s-atacco.ads, s-atacco.adb (Nothing): Remove this dummy procedure.
9419         Use a pragma Elaborate_Body in the spec file instead.
9420         Noticed by code reading.
9421
9422 2005-02-09  Thomas Quinot  <quinot@adacore.com>
9423
9424         * exp_util.ads: Minor correction in comment.
9425
9426 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
9427
9428         * s-taprop.ads (Initialize): Update comments. Remove pragma Inline,
9429         since this procedure is now too complex to be worth inlining.
9430
9431 2005-02-09  Richard Henderson  <rth@redhat.com>
9432
9433         * utils.c (gnat_define_builtin): Remove.
9434         (gnat_install_builtins): Use build_common_builtin_nodes.
9435
9436 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
9437
9438         * a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb, a-crbtgk.ads,
9439         a-crbtgk.adb, a-crbltr.ads, a-coprnu.ads, a-coprnu.adb,
9440         a-coorse.ads, a-coorse.adb, a-convec.ads, a-convec.adb,
9441         a-contai.ads, a-coinve.ads, a-coinve.adb, a-cohata.ads,
9442         a-cohama.ads, a-cohama.adb, a-ciorse.ads, a-ciorse.adb,
9443         a-cihama.ads, a-cihama.adb, a-cidlli.ads, a-cidlli.adb,
9444         a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads, a-cgcaso.adb,
9445         a-cgarso.ads, a-cgarso.adb, a-cdlili.ads, a-cdlili.adb,
9446         a-cgaaso.adb, a-coormu.adb, a-ciormu.adb, a-cihase.adb,
9447         a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads,
9448         a-coorma.ads, a-swunha.ads, a-stunha.ads, a-ciormu.ads,
9449         a-coormu.ads, a-rbtgso.ads, a-swunha.adb, a-stunha.adb,
9450         a-cgaaso.ads, a-ciorma.adb, a-coorma.adb, a-secain.adb,
9451         a-secain.ads, a-slcain.ads, a-slcain.adb, a-shcain.ads,
9452         a-shcain.adb, a-chtgke.ads, a-chtgke.adb, a-stwiha.ads,
9453         a-stwiha.adb, a-strhas.ads, a-strhas.adb, a-chzla1.ads,
9454         a-chzla9.ads, a-lfztio.ads, a-liztio.ads, a-llfzti.ads,
9455         a-llizti.ads, a-sfztio.ads, a-siztio.ads, a-ssizti.ads,
9456         a-stzbou.adb, a-stzbou.ads, a-stzfix.adb, a-stzfix.ads,
9457         a-stzhas.adb, a-stzhas.ads, a-stzmap.adb, a-stzmap.ads,
9458         a-stzsea.adb, a-stzsea.ads, a-stzsup.adb, a-stzsup.ads,
9459         a-stzunb.adb, a-stzunb.ads, a-swunau.adb, a-swunau.ads,
9460         a-szmzco.ads, a-szunau.adb, a-szunau.ads, a-szunha.adb,
9461         a-szunha.ads, a-szuzti.adb, a-szuzti.ads, a-tiunio.ads,
9462         a-wwunio.ads, a-ztcoau.adb, a-ztcoau.ads, a-ztcoio.adb,
9463         a-ztcoio.ads, a-ztcstr.adb, a-ztcstr.ads, a-ztdeau.adb,
9464         a-ztdeau.ads, a-ztdeio.adb, a-ztdeio.ads, a-ztedit.adb,
9465         a-ztedit.ads, a-ztenau.adb, a-ztenau.ads, a-ztenio.adb,
9466         a-ztenio.ads, a-ztexio.adb, a-ztexio.ads, a-ztfiio.adb,
9467         a-ztfiio.ads, a-ztflau.adb, a-ztflau.ads, a-ztflio.adb,
9468         a-ztflio.ads, a-ztgeau.adb, a-ztgeau.ads, a-ztinau.adb,
9469         a-ztinau.ads, a-ztinio.adb, a-ztinio.ads, a-ztmoau.adb,
9470         a-ztmoau.ads, a-ztmoio.adb, a-ztmoio.ads, a-zttest.adb,
9471         a-zttest.ads, a-zzunio.ads: New files. Part of new Ada 2005
9472         library.
9473
9474 2005-01-27  Laurent GUERBY <laurent@guerby.net>
9475
9476         * Makefile.in: Fix a-intnam.ads from previous commit,
9477         add 2005 to copyright.
9478         * a-intman-rtems.ads: Renamed to...
9479         * a-intnam-rtems.ads:
9480
9481 2005-01-27  Laurent GUERBY <laurent@guerby.net>
9482
9483         * Makefile.in: Rename GNAT RTEMS specific files.
9484         * 5rtpopsp.adb, 4rintnam.ads, 5rosinte.adb,
9485         5rosinte.ads, 5rparame.adb: Replaced by files below.
9486         * s-tpopsp-rtems.adb, a-intman-rtems.ads, s-osinte-rtems.adb,
9487         s-osinte-rtems.ads, s-parame-rtems.adb: Replace files above.
9488
9489 2005-01-27  Joel Sherrill <joel.sherrill@oarcorp.com>
9490             Laurent GUERBY <laurent@guerby.net>
9491
9492         PR ada/19488
9493         * 5rosinte.ads: Add No_Key constant.
9494         * 5rtpopsp.adb: Initialize ATCB_Key with No_Key and fix style.
9495         * gsocket.h: Do not include <sys/socket.h> with RTEMS either.
9496
9497 2005-01-26  Laurent GUERBY <laurent@guerby.net>
9498
9499         PR ada/19414
9500         * i-cobol.adb (Valid_Numeric): Handle zero length case.
9501
9502 2005-01-20  Richard Henderson  <rth@redhat.com>
9503
9504         * Makefile.in (alpha-linux, LIBGNAT_TARGET_PAIRS): Use
9505         a-intnam-linux.ads and system-linux-alpha.ads.
9506         * a-intnam-linux-alpha.ads: Remove file.
9507         * s-osinte-linux-alpha.ads (SIGUNUSED, SIGSTKFLT, SIGLOST): New.
9508         * system-linux-alpha.ads: New file.
9509
9510 2005-01-18  Jakub Jelinek  <jakub@redhat.com>
9511
9512         PR ada/13470
9513         * a-stunau.adb (Get_String): Don't return U.Reference, but Ret that is
9514         set to the new string.
9515
9516 2005-01-18  Toon Moene  <toon@moene.indiv.nluug.nl>
9517
9518         * system-linux-ppc.ads: Set ZCX_By_Default and GCC_ZCX_Support
9519         to True.
9520
9521 2005-01-18  Richard Henderson  <rth@redhat.com>
9522
9523         * Makefile.in (LIBGNAT_TARGET_PAIRS, TOOLS_TARGET_PAIRS, MISCLIB,
9524         THREADSLIB, GNATLIB_SHARED, PREFIX_OBJS, LIBRARY_VERSION): Specialize
9525         for alpha-linux.
9526         * s-osinte-linux-alpha.ads, a-intnam-linux-alpha.ads: New files.
9527
9528 2005-01-14  Andrew Pinski  <pinskia@physics.uc.edu>
9529
9530         * system-darwin-ppc.ads (ZCX_By_Default): Change to True.
9531         (GCC_ZCX_Support): Likewise.
9532
9533 2005-01-11  Bastian Blank  <waldi@debian.org>
9534
9535         * system-linux-s390.ads: Define Preallocated_Stacks.
9536         * system-linux-s390x.ads: Likewise.
9537
9538 2005-01-04  Arnaud Charlet  <charlet@adacore.com>
9539
9540         * gnat_ugn.texi: Fix texi errors with null variables.
9541
9542 2005-01-03  Thomas Quinot  <quinot@adacore.com>
9543
9544         * gen-soccon.c: New utility program to generate g-soccon.ads
9545         automatically.
9546
9547         * socket.c, gsocket.h: Split inclusion of system header files into a
9548         gsocket.h file separated from socket.c, to allow reuse in gen-soccon.c.
9549
9550         * g-soccon.ads, g-soccon-unixware.ads, g-soccon-tru64.ads,
9551         g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
9552         g-soccon-interix.ads, g-soccon-solaris.ads, g-soccon-mingw.ads,
9553         g-soccon-vxworks.ads, g-soccon-freebsd.ads: Note that these files
9554         should not be edited by hand anymore, but should be regenerated using
9555         gen-soccon.
9556
9557 2005-01-03  Robert Dewar  <dewar@adacore.com>
9558             Ed Schonberg  <schonberg@adacore.com>
9559             Vincent Celier  <celier@adacore.com>
9560
9561         * s-atacco.ads, a-direio.adb: Protect use of 'Constrained by warnings
9562         on/off, since this is an obsolescent feature, for which we now generate
9563         a warning.
9564
9565         * sem_attr.adb (Analyze_Attribute, case Constrained): Issue warning if
9566         warning mode is set and obsolescent usage of this attribute occurs.
9567         (Resolve_Access, case 'Access): Note that GNAT uses the context type to
9568         disambiguate overloaded prefixes, in accordance with AI-235. GNAT code
9569         predates, and partly motivates, the adoption of the AI.
9570         Implement new Ada 2005 attribute Mod
9571
9572         * exp_attr.adb (Expand_N_Attribute_Reference): Implement Ada 2005
9573         attribute Mod.
9574
9575         * par-ch4.adb (P_Name): In Ada 2005 mode, recognize new attribute Mod
9576
9577         * snames.h, snames.ads, snames.adb: Add entry for No_Dependence for
9578         pragma restrictions.
9579         New entry for Ada 2005 attribute Mod.
9580
9581         * par-prag.adb:
9582         Add recognition of new pragma Restrictions No_Dependence
9583         Recognize restriction No_Obsolescent_Features at parse time
9584
9585         * bcheck.adb: Add circuitry for checking for consistency of
9586         No_Dependence restrictions.
9587
9588         * lib-writ.ads, lib-writ.adb: Output new R lines for No_Dependence
9589         restrictions.
9590
9591         * restrict.ads, restrict.adb: Add subprograms to deal with
9592         No_Dependence restrictions.
9593
9594         * rtsfind.adb: Check that implicit with's do not violate No_Dependence
9595         restrictions.
9596
9597         * sem_ch3.adb, sem_ch11.adb, sem_ch13.adb, lib-xref.adb,
9598         sem_attr.adb: Add check for new restriction No_Obsolescent_Features
9599
9600         * scn.ads, prj-err.ads, prj-err.adb, ali-util.adb, gprep.adb: Add new
9601         dummy parameter to scng instantiation.
9602         Needed for new restriction No_Obsolescent_Features
9603
9604         * scn.adb: (Obsolescent_Check): New procedure
9605         Needed for new restriction No_Obsolescent_Features
9606
9607         * scng.ads, scng.adb: Always allow wide characters in Ada 2005 mode, as
9608         specified by AI-285, needed for implementation of AI-388 (adding greek
9609         pi to Ada.Numerics).
9610         Add new generic formal to scng, needed for new restriction
9611         No_Obsolescent_Features.
9612
9613         * s-rident.ads: Add new restriction No_Obsolescent_Features.
9614
9615         * ali.ads, ali.adb: Adjustments for reading new No_Dependence
9616         restrictions lines.
9617         (Scan_ALI): When finding an unexpected character on an R line, raise
9618         exception Bad_R_Line, instead of calling Fatal_Error, so that, when
9619         Ignore_Errors is True, default restrictions are set and scanning of the
9620         ALI file continues with the next line. Also, when Bad_R_Line is raised
9621         and Ignore_Errors is True, skip to the end of le line.
9622
9623         * sem_ch10.adb: Check that explicit with's do not violate
9624         No_Dependence restrictions.
9625         (Install_Withed_Unit): Add code to implement AI-377 and diagnose
9626         illegal context clauses containing child units of instance.
9627
9628         * sem_prag.adb: Processing and checking for new No_Dependence
9629         restrictions.
9630         (Analyze_Pragma, case Psect_Object): Call Check_Arg_Is_External_Name to
9631         analyze and check the External argument.
9632
9633         * a-numeri.ads: Add greek letter pi as alternative spelling of Pi
9634
9635 2005-01-03  Robert Dewar  <dewar@adacore.com>
9636
9637         * atree.adb: Add a fifth component to entities
9638         This allows us to add 32 flags and four new fields
9639
9640         * atree.ads: Add a fifth component to entities
9641         This allows us to add 32 flags and four new fields
9642
9643         * einfo.ads, einfo.adb: Document new fields and new flags now available
9644         Add routines for printing new fields
9645
9646         * treepr.adb: Call routines to print out additional fields if present
9647
9648 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
9649
9650         * bld.ads, bld.adb, bld-io.ads, bld-io.adb, gprcmd.adb,
9651         gpr2make.ads, gpr2make.adb: Remove gpr2make, replaced by gprmake.
9652
9653         * Makefile.in: Add support to build shared Ada libraries on solaris x86
9654         Remove gpr2make, replaced by gprmake.
9655         Remove references to gnatmem and libaddr2line.
9656         Add indepsw.adb<indepsw-linux.adb to TOOLS_TARGET_PAIRS for IA64 linux.
9657         (gnatlib-shared-darwin): Add "-fno-common" to GNATLIBCFLAGS.
9658         Add support for specialized version of Ada.Numerics.Aux for Darwin: use
9659         a-numaux-darwin.ads and a-numaux-darwin.adb
9660         Enable mlib-tgt-lynxos.adb on lynxos.
9661
9662         * Make-lang.in: Remove rules for gpr2make.
9663         When generating sdefault.adb, do not call Relocate_Path
9664         on S3 for function Target_Name, as it is not a path.
9665         Remove references to gnatmem and libaddr2line.
9666
9667         * a-numaux-darwin.ads, a-numaux-darwin.adb, g-soccon-darwin.ads: New
9668         files.
9669
9670 2005-01-03  Samuel Tardieu  <tardieu@adacore.com>
9671
9672         * checks.adb (Apply_Alignment_Check): Generate a warning if an object
9673         address is incompatible with its base type alignment constraints when
9674         this can be decided statically.
9675
9676 2005-01-03  Olivier Hainque  <hainque@adacore.com>
9677
9678         * decl.c (compatible_signatures_p): New function. The intended purpose
9679         is to check if two function signatures for a call-site and a callee are
9680         compatible enough for the call to be valid. The underlying purpose is
9681         to check if a call to a mapped builtin is using the right interface.
9682         The current code actually does not check antyhing - this a placeholder
9683         for future refinements.
9684         (gnat_to_gnu_entity) <E_Subprogram_Call>: Add preliminary bits to handle
9685         builtin calls for convention Intrinsic.
9686
9687         * gigi.h (builtin_decl_for): Declare (new function).
9688
9689         * utils.c (gnat_install_builtins): Install the target specific builtins.
9690         (builtin_decl_for): New function, provide a dummy body for now.
9691
9692 2005-01-03  Geert Bosch  <bosch@adacore.com>
9693
9694         * eval_fat.adb: (Eps_Model,Eps_Denorm): Remove, no longer used.
9695         (Succ): Re-implement using Scaling, Exponent and Ceiling attributes.
9696         (Pred): Implement in terms of Succ.
9697
9698         * trans.c (convert_with_check): Reimplement conversion of float to
9699         integer.
9700
9701 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
9702             Vincent Celier  <celier@adacore.com>
9703
9704         * exp_aggr.adb (Packed_Array_Aggregate_Handled): The values of the
9705         bounds can be negative, and must be declared Int, not Nat.
9706
9707         * sem_elim.adb (Line_Num_Match): Correct wrong code when index in an
9708         array is checked after using the index in the array.
9709
9710         * makegpr.adb (Add_Switches): Check if there is a package for the
9711         processor. If there is no package, do not look for switches.
9712
9713 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
9714
9715         * exp_ch3.adb (Stream_Operations_OK): Predicate to determine when the
9716         generation of predefined stream operations (specs and bodies) should
9717         proceed. Under various restrictions these subprograms must not be
9718         generated.
9719
9720 2005-01-03  Thomas Quinot  <quinot@adacore.com>
9721
9722         * exp_dist.adb:
9723         Declare subprogram index in Build_RPC_Receiver_Body, to reduce the
9724         amount of PCS-specific code in RACW stubs generation.
9725         (Copy_Specification): Set Etype on copied formal parameter entities, as
9726         this information is needed for PolyORB stubs generation.
9727         (PolyORB_Support.Build_Subprogram_Receiving_Stubs): Remove unused
9728         variable Dynamic_Async.
9729         (Build_Subprogram_Receiving_Stubs): Make PCS-specific
9730         (Build_RPC_Receiver_Specification): Make generic again, as recent
9731         changes have allowed RPC receivers to have the same profile for both
9732         variants of the PCS.
9733         Reorganise RPC receiver generation to reduce differences between the
9734         structure of GARLIC and PolyORB RPC receivers.
9735         (Add_Receiving_Stubs_To_Declarations): Make this subprogram
9736         PCS-specific.
9737         Simplify elaboration code for RCI packages.
9738
9739         * s-parint.ads, s-parint.adb, rtsfind.ads: Reorganise RPC receiver
9740         generation to reduce differences between the structure of GARLIC and
9741         PolyORB RPC receivers.
9742
9743         * s-stratt.adb: Fix typo in comment.
9744
9745 2005-01-03  Thomas Quinot  <quinot@adacore.com>
9746
9747         * exp_ch7.ads (Make_Final_Call): Rewrite comment (was incorrectly
9748         copied from Make_Init_Call).
9749
9750         * exp_strm.adb (Build_Mutable_Record_Read_Procedure): Do component
9751         reads and assignments on a temporary variable declared with appropriate
9752         discriminants.
9753
9754 2005-01-03  Robert Dewar  <dewar@adacore.com>
9755
9756         * i-c.adb (To_C): Raise CE if string is null and Append_Null
9757
9758 2005-01-03  Robert Dewar  <dewar@adacore.com>
9759
9760         * i-cstrin.adb (Update): Do not append a null in form called with a
9761         String. This avoids unintended behavior.
9762
9763 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
9764
9765         PR ada/17527
9766         * init.c: Fix warnings on Free BSD section.
9767
9768 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
9769
9770         PR ada/16949
9771         * sinfo.ads: Fix obsolete reference to xsinfo.spt (replaced by
9772         xsinfo.adb).
9773
9774 2005-01-03  Vincent Celier  <celier@adacore.com>
9775
9776         * make.adb (Collect_Arguments_And_Compile): Do not attempt to build
9777         libraries when Unique_Compile is True (-u switch).
9778         (Gnatmake): ditto.
9779
9780 2005-01-03  Robert Dewar  <dewar@adacore.com>
9781
9782         * namet.adb (Get_Decoded_Name_With_Brackets): Fix case of not allowing
9783         upper case letter or underscore after W, as allowed by spec.
9784
9785 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
9786
9787         * s-osinte-darwin.ads, s-osinte-darwin.adb: Clean up
9788         darwin port by using proper type definitions from header files.
9789         Use SIGTERM instead of SIGABRT for SIGADAABORT.
9790
9791 2005-01-03  Robert Dewar  <dewar@adacore.com>
9792
9793         * par.adb: Enhance error message handling for configuration file
9794         pragmas.
9795
9796 2005-01-03  Robert Dewar  <dewar@adacore.com>
9797
9798         * s-arit64.adb (Double_Divide): Put back changes that got accidentally
9799         removed during the previous update (test properly for case of dividing
9800         largest negative number by -1, which generates overflow).
9801
9802 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
9803             Sergey Rybin  <rybin@adacore.com>
9804
9805         * sem_ch12.adb (Analyze_Package_Instantiation): Create a separate node
9806         to use as the defining identifier for a formal package.
9807         (Remove_Parent): If the instance takes place within (an instance of)
9808         a sibling, preserve private declarations of common parent.
9809
9810 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
9811
9812         * sem_ch4.adb (Has_Fixed_Op): New predicate in Check_Arithmetic_Pair,
9813         to determine whether one of the operands is a fixed-point type for
9814         which a user-defined multiplication or division operation might be
9815         defined.
9816
9817         * sem_res.adb (Valid_Conversion): The legality rules for conversions
9818         of access types are symmetric in Ada 2005: either designated type can
9819         be unconstrained.
9820
9821 2005-01-03  Vincent Celier  <celier@adacore.com>
9822
9823         * s-fileio.adb (Temp_File_Record): Change length of string component
9824         Name from L_tmpnam + 1 to max_path_len + 1.
9825
9826 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
9827
9828         * s-tasini.ads, s-tasini.adb (Undefer_Abortion): Handle case of
9829         Self_Id.Deferral_Level = 0.
9830         (Do_Pending_Action): Move this function to the spec.
9831
9832         * s-tasren.adb (Selective_Wait [Terminate_Selected]): Call
9833         Do_Pending_Action explicitely when needed, in case we're using
9834         No_Abort restrictions.
9835
9836         * s-tassta.adb (Create_Task): If Abort is not allowed, reset the
9837         deferral level since it will not get changed by the generated code.
9838         Keeping a default value of 1 would prevent some operations (e.g.
9839         select or delay) to proceed successfully.
9840
9841 2005-01-03  Ben Brosgol  <brosgol@adacore.com>
9842             Robert Dewar  <dewar@adacore.com>
9843             Cyrille Comar  <comar@adacore.com>
9844
9845         * ug_words, gnat_ugn.texi: Added alpha-ivms transitioning section to
9846         porting guide chapter (vms version).
9847         Revised doc title (removed "for native platforms") and subtitle.
9848         Add discussion on warning flag for obsolescent features. First we
9849         note that it applies to obsolete GNAT features, which was previously
9850         omitted. Second we contrast the behavior with that of the new
9851         Ada 2005 AI-368 restriction No_Obsolescent_Features.
9852         Preliminary rewriting of GNAT & libraries chapter in order to take
9853         into account default project locations & new project manager
9854         capabilities.
9855
9856 2005-01-03  Robert Dewar  <dewar@adacore.com>
9857
9858         * cstand.adb (Create_Operators): Clean up format and documentation of
9859         unary and binary operator result tables. No change in code, just
9860         reformatting and addition of comments.
9861
9862         * errout.ads, gnatfind.adb, s-maccod.ads, sem.adb,
9863         sem_ch2.adb: Minor reformatting
9864
9865         * atree.ads, elists.ads, lib.ads, namet.ads, nlists.ads, repinfo.ads,
9866         sinput.ads, stringt.ads, uintp.ads, urealp.ads: Minor clarification to
9867         comments for Tree_Read and Tree_Write.
9868
9869 2005-01-03  Pascal Obry  <obry@adacore.com>
9870
9871         * exp_attr.ads: Minor reformatting.
9872
9873 2005-01-03  Romain Berrendonner  <berrendo@adacore.com>
9874
9875         * comperr.adb (Compiler_Abort): Add specialized message for GAP
9876         versions.
9877
9878 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
9879
9880         * exp_pakd.adb (Create_Packed_Array_Type): Add a guard to check
9881         whether the ancestor type is private, as may be the case with nested
9882         instantiations.
9883
9884 2004-12-30  Sohail Somani <sohail@sohailsomani.com>
9885
9886         PR ada/19128
9887         * trans.c (gnat_to_gnu): Fix typo: Use correct return variable.
9888
9889 2004-12-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
9890
9891         * trans.c (Attribute_to_gnu): Adjust call to get_inner_reference.
9892         * utils2.c (build_unary_op): Likewise.
9893
9894 2004-12-22  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9895
9896         * trans.c (mark_visited): Set TYPE_SIZES_GIMPLIFIED.
9897
9898 2004-12-19  Richard Henderson  <rth@redhat.com>
9899
9900         * trans.c (gigi): Update gimplify_body call.
9901
9902 2004-12-09  Nathan Sidwell  <nathan@codesourcery.com>
9903
9904         * decl.c (gnat_substitute_in_type): Remove SET_TYPE case.
9905
9906 2004-12-07  Ed Falis  <falis@adacore.com>
9907
9908         * s-intman-vxworks.adb (Notify_Exception): removed useless check for
9909         current task being suspended.
9910
9911         * init.c (__gnat_clear_exception): added to reset VxWorks exception
9912         count.
9913         (__gnat_map_signal): removed test for current task being suspended.
9914
9915 2004-12-07  Gary Dismukes  <dismukes@adacore.com>
9916
9917         * a-exexpr.adb (Others_Value, All_Others_Value): Change initial values
9918         from 16#BEEF# to 16#7FFF# to avoid exceeding Integer'Last on 16-bit
9919         targets (such as AAMP).
9920
9921 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
9922
9923         * atree.adb (Visit_Itype): Create a new name for the generated itype,
9924         because the back-end may otherwise treat it as a redefinition of the
9925         old symbol.
9926
9927 2004-12-07  Eric Botcazou  <ebotcazou@adacore.com>
9928
9929         * back_end.adb (Scan_Back_End_Switches): Accept --param.
9930
9931         * lang-specs.h: Accept --param.
9932
9933 2004-12-07  Vincent Celier  <celier@adacore.com>
9934
9935         * make.adb (Check_Mains, Switches_Of): Adapt to name changes in
9936         package Prj (Current_Spec_Suffix => Ada_Spec_Suffix,
9937         Current_Body_Suffix => Ada_Body_Suffix).
9938         Take into account Externally_Built attribute.
9939
9940         * clean.adb (In_Extension_Chain): Always return False when one of the
9941         parameter is No_Project.
9942         (Clean_Project): Adapt to changes in package Prj (Lang_Ada =>
9943         Ada_Language_Index).
9944         (Gnatclean): Adapt to change in package Prj.Pars (no parameter
9945         Process_Languages for procedure Parse).
9946
9947         * gnatcmd.adb (Carg_Switches): New table.
9948         (GNATCmd): Put all switches following -cargs in the Carg_Switches table.
9949         Adapt to name changes in package Prj (Current_Spec_Suffix =>
9950         Ada_Spec_Suffix, Current_Body_Suffix => Ada_Body_Suffix).
9951
9952         * mlib-prj.adb: Adapt to changes in packages Prj and Prj.Com: type
9953         Header_Num and function Hash are now declared in package Prj,
9954         not Prj.Com.
9955
9956         * prj.adb (Suffix_Of): New function.
9957         (Set (Suffix)): New procedure.
9958         (Hash): One function moved from Prj.Com
9959         (Is_Present, Language_Processing_Data_Of): New functions
9960         (Set): Two new procedures
9961         (Add_Language_Name, Display_Language_Name): New procedures
9962
9963         * prj.ads: (Suffix_Of): New function
9964         (Set (Suffix)): New procedure
9965         Add several types and tables for multi-language support.
9966         (Header_Num): Type moved from Prj.Com
9967         (Hash): Two functions moved from Prj.Com
9968         (Is_Present, Language_Processing_Data_Of): New functions
9969         (Set): Two new procedures
9970         (Add_Language_Name, Display_Language_Name): New procedures
9971         (Naming): Component name changes:
9972         Current_Spec_Suffix => Ada_Spec_Suffix,
9973         Current_Body_Suffix => Ada_Body_Suffix. Add new components:
9974         Impl_Suffixes, Supp_Suffixes.
9975         (Project_Data): New components: Externally_Built, Supp_Languages,
9976         First_Language_Processing, Supp_Language_Processing, Default_Linker,
9977         Default_Linker_Path.
9978
9979         * prj-attr.adb: Add new attributes Ada_Roots and Externally_Built and
9980         new package Language_Processing with its attributes (Compiler_Driver,
9981         Compiler_Kind, Dependency_Option, Compute_Dependency, Include_Option,
9982         Binder_Driver, Default_Linker).
9983
9984         * prj-com.ads, prj-com.adb (Hash): Function moved to package Prj.
9985         (Header_Num): Type moved to package Prj
9986
9987         * prj-env.adb: Adapt to name changes in package Prj
9988         (Current_Spec_Suffix => Ada_Spec_Suffix,
9989         Current_Body_Suffix => Ada_Body_Suffix).
9990
9991         * prj-ext.adb: Add the default project dir (<prefix>/log/gnat) by
9992         default to the project path, except the "-" is one of the directories
9993         in env var ADA_PROJECT_PATH.
9994         (Current_Project_Path): Global variable, replacing Project_Path
9995         that was in the body of Prj.Part.
9996         (Project_Path): New function
9997         (Set_Project_Path): New procedure
9998         Initialize Current_Project_Path during elaboration of the package
9999         Remove dependency on Prj.Com, no longer needed
10000
10001         * prj-ext.ads (Project_Path): New function
10002         (Set_Project_Path): New procedure
10003
10004         * prj-nmsc.adb (Body_Suffix_Of): New function. Returns .<lang> when no
10005         suffix is defined for language <lang>.
10006         (Find_Sources, Record_Other_Sources): Use Body_Suffix_Of, instead of
10007         accessing directly the components of Naming.
10008         (Look_For_Sources): Use Set (Suffix) to set the suffix of a language.
10009         Reorganise of this package.
10010         Break procedure Check in several procedures.
10011
10012         * prj-nmsc.ads: Replace all procedures (Ada_Check,
10013         Other_Languages_Check and Language_Independent_Check) with a single
10014         procedure Check.
10015
10016         * prj-pars.ads, prj-pars.adb (Parse): Remove parameter
10017         Process_Languages, no longer needed.
10018
10019         * prj-part.adb (Project_Path): Move to the body of Prj.Ext as
10020         Current_Project_Path.
10021         Remove elaboration code, moved to the body of Prj.Ext
10022         Use new function Prj.Ext.Project_Path instead of old variable
10023         Project_Path.
10024         (Post_Parse_Context_Clause): Get Resolved_Path as a case-sensitive path.
10025         When comparing with project paths on the stack, first put the resolved
10026         path in canonical case.
10027         (Parse_Single_Project): Set the path name of the project file in the
10028         tree to the normalized path.
10029
10030         * prj-proc.ads, prj-proc.adb (Check, Recursive_Check, Process): Remove
10031         parameter Process_Languages, no longer needed.
10032         (Recursive_Check): Call Prj.Nmsc.Check, instead of Ada_Check and
10033         Other_Languages_Check.
10034
10035         * prj-tree.ads (Project_Name_And_Node): New component Canonical_Path
10036         to store the resolved canonical path of the project file.
10037         Remove dependency to Prj.Com, no longer needed
10038
10039         * prj-util.adb: Adapt to name changes in package Prj
10040         (Current_Spec_Suffix => Ada_Spec_Suffix, Current_Body_Suffix =>
10041         Ada_Body_Suffix).
10042
10043         * snames.ads, snames.adb: New standard names: Ada_Roots, Binder_Driver,
10044         Compiler_Driver, Compiler_Kind, Compute_Dependency, Default_Linker,
10045         Externally_Built, Include_Option, Language_Processing.
10046
10047         * makegpr.adb: Numerous changes due to changes in packages
10048         Prj and Prj.Nmsc.
10049
10050         * gnatls.adb: Add the default project dir (<prefix>/log/gnat) by
10051         default to the project path, except whe "-" is one of the directories
10052         in env var ADA_PROJECT_PATH.
10053         (Gnatls): In verbose mode, add the new section "Project Search Path:"
10054
10055 2004-12-07  Robert Dewar  <dewar@adacore.com>
10056
10057         * debug.adb: Document that -gnatdA automatically sets -gnatR3m
10058
10059         * gnat1drv.adb (Gnat1drv): If debug flag A set, then automatically
10060         set -gnatR3m mode.
10061
10062         * repinfo.adb (List_Rep_Info): Remove special handling of -gnatdA
10063         flag. No longer needed now that we handle this in gnat1drv.adb.
10064
10065         * repinfo.ads: Minor reformatting
10066
10067 2004-12-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10068             Olivier Hainque  <hainque@adacore.com>
10069             Eric Botcazou  <ebotcazou@adacore.com>
10070
10071         * decl.c (maybe_pad_type): Use TYPE_SIZE_UNIT of the input type for
10072         TYPE_SIZE_UNIT of result type if SIZE is not specified.
10073         (make_aligning_type): Pass -1 as ADDRESSABLE to prevent the creation
10074         of a bitfield, which we know is useless and causes trouble because of
10075         alignment implications.
10076
10077         * utils.c (create_var_decl): Set DECL_COMMON again on targets without
10078         BSS sections.
10079         (process_attributes): Clear DECL_COMMON again when a section attribute
10080         is present.
10081         (finish_record_type): Independently track if RECORD_TYPE has SIZE and/or
10082         SIZE_UNIT already set and use to compute final SIZE and SIZE_UNIT.
10083         (create_field_decl): Special case ADDRESSABLE negative to mean
10084         "no bitfield creation", to be used by make_aligning_type. Don't
10085         restrict bitfield creation to !ADDRESSABLE any more, as some BLKmode
10086         fields claimed addressable still have to be bitfields. Use
10087         value_factor_p instead of a raw binop construction to check for the
10088         position's alignment.
10089
10090 2004-12-07  Geert Bosch  <bosch@adacore.com>
10091
10092         * eval_fat.adb: Revert previous change.
10093
10094 2004-12-07  Thomas Quinot  <quinot@adacore.com>
10095             Ed Schonberg  <schonberg@adacore.com>
10096
10097         * exp_ch4.adb (Expand_N_Indexed_Component): For an indexed component
10098         with an implicit dereference as its prefix, use
10099         Insert_Explicit_Dereference instead of merely rewriting the prefix into
10100         an explicit dereference. This ensures that a reference to the original
10101         prefix is generated, if appropriate.
10102
10103         * sem_util.adb (Insert_Explicit_Dereference): When an implicit
10104         dereference is rewritten to an explicit one, generate a reference to
10105         the entity denoted by its prefix using the original prefix node, so
10106         the dereference can be properly recorded as a read of the denoted
10107         access value, if appropriate.
10108
10109         * sem_warn.adb (Output_Unreferenced_Messages): Do not abstain from
10110         emitting 'assigned but never read' warning on a variable on the basis
10111         that it has an access type.
10112         (Check_References): Emit unreferenced warning when the scope is a
10113         subprogram body.
10114
10115 2004-12-07  Robert Dewar  <dewar@adacore.com>
10116             Ed Schonberg  <schonberg@adacore.com>
10117
10118         * exp_ch6.adb (Expand_Call): Add comment on handling of back end
10119         intrinsic
10120
10121         * exp_intr.adb (Expand_Intrinsic_Call): Ignore unrecognized intrinsic,
10122         leaving call unchanged.
10123         This deals with the case where the pragma Import specified
10124         an external name, to be handled by the back end.
10125
10126         * sem_prag.adb (Process_Import_Or_Interface): Do not check validity of
10127         subprogram which is Imported with convention Intrinsic if an
10128         External_Name argument is specified.
10129         (Process_Import_Or_Interface): Properly diagnose link name argument.
10130         (Inlining_Not_Possible): New name for Cannot_Inline, to avoid confusion
10131         with Sem_Ch6.Cannot_Inline.
10132         (Process_Inline): Provide separate warning for inapplicable inline
10133         pragma.
10134         (Cannot_Inline): Reject subprograms that have an at_end handler, so that
10135         treatment is uniform on different targets.
10136
10137 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
10138
10139         * exp_ch7.adb (Expand_Cleanup_Actions): If statement sequence of
10140         construct is rewritten, preserve end label to permit source navigation.
10141
10142 2004-12-07  Thomas Quinot  <quinot@adacore.com>
10143
10144         * exp_dist.adb (Specific_Build_General_Calling_Stubs,
10145         Specific_Build_Stub_Target): New subprograms.
10146         (Build_Subprogram_Calling_Stubs): Make this procedure independent from
10147         the PCS implementation used, using the above PCS-customized subprograms.
10148         Minor reformatting.
10149         (PolyORB_Support.Helpers): New subunit containing supporting subprograms
10150         for generation of DSA code targeted to the PolyORB PCS.
10151         (Add_Stub_Type): Rewrite to isolate the parts that are specific to one
10152         implementation of the partition communication subsystem in ancillary
10153         subprograms.
10154         (Specific_Build_Stub_Type, GARLIC_Support.Build_Stub_Type,
10155         PolyORB_Support.Build_Stub_Type): New subrograms containing the
10156         PCS-specific part of Add_Stub_Type.
10157         (Insert_Partition_Check): Use runtime library function to perform
10158         E.4(19) check.
10159
10160         * rtsfind.ads: New entity System.PolyORB_Interface.Make_Ref
10161         (RE_Same_Partition): New entity, from s-parint.
10162
10163         * s-parint.ads, s-parint.adb (Same_Partition): New subprogram.
10164
10165 2004-12-07  Gary Dismukes  <dismukes@adacore.com>
10166
10167         * gnatmem.adb, gnatname.adb, gnatsym.adb, gprcmd.adb, vms_conv.adb:
10168         Output the copyright message on a separate line from the version
10169         message.
10170
10171 2004-12-07  Joel Brobecker  <brobecker@adacore.com>
10172
10173         * g-os_lib.adb (Spawn): Explicitly initialize Saved_Error to avoid a
10174         compile-time warning.
10175
10176 2004-12-07  Robert Dewar  <dewar@adacore.com>
10177
10178         * g-regpat.adb: (Match): Change a misuse of or to or else
10179
10180 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
10181
10182         * lib-xref.adb:
10183         (Generate_Reference): Handle properly a reference to an entry formal,
10184          when an accept statement has a pragma Unreferenced for it.
10185
10186         * sem_ch9.adb (Analyze_Accept_Statement): Reset the Is_Referenced flag
10187         and the Has_Pragma_Unreferenced flag for each formal before analyzing
10188         the body, to ensure that warnings are properly emitted for each accept
10189         statement of a given task entry.
10190
10191 2004-12-07  Vasiliy Fofanov  <fofanov@adacore.com>
10192
10193         * Makefile.in: Add support for foreign threads on VMS.
10194
10195 2004-12-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10196
10197         * misc.c (gnat_types_compatible_p, LANG_HOOKS_TYPES_COMPATIBLE_P):
10198         Remove.
10199         (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): New.
10200
10201         * adaint.h: (__gnat_dup, __gnat_dup2): Add missing decls.
10202
10203         * trans.c (Exception_Handler_to_gnu_sjlj): Also handle renamed
10204         exception.
10205         (call_to_gnu): Convert to actual DECL_ARG_TYPE, not variant of it.
10206
10207 2004-12-07  Robert Dewar  <dewar@adacore.com>
10208
10209         * nlists.adb (Prepend_Debug): Remove parameters and nest within
10210         Prepend.
10211         (Remove_Next_Debug): Same fix
10212
10213         * nlists.ads: Correct bad comments for Prev and Prev_Non_Pragma (we do
10214         maintain back pointers now, though we did not used to, and comments
10215         were out of date).
10216         (Prepend): Remove pragma Inline.
10217         (Remove_Next): Same cleanup
10218
10219 2004-12-07  Thomas Quinot  <quinot@adacore.com>
10220
10221         * sem_ch4.adb (Process_Implicit_Dereference_Prefix): New subprogram
10222         used to record an implicit dereference as a read operation on its
10223         prefix when operating under -gnatc. Necessary to avoid spurious
10224         'variable assigned but never read' warnings in that mode.
10225         (Process_Indexed_Component, Analyze_Selected_Component): When the prefix
10226         is a non-overloaded implicit dereference, call the above subprogram to
10227         ensure proper recording of references.
10228
10229 2004-12-07  Gary Dismukes  <dismukes@adacore.com>
10230
10231         * sem_ch5.adb (One_Bound): Remove call to Resolve, as the bound needs
10232         to be resolved later as part of Analyze_Iteration_Scheme's call to
10233         Make_Index.
10234
10235 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
10236
10237         * sem_ch8.adb (Find_Type): If node is a reference to 'Base and the
10238         prefix is not a scalar type, place error message on prefix, not on
10239         type entity.
10240
10241 2004-12-07  Bernard Banner  <banner@adacore.com>
10242
10243         * vxaddr2line.adb: Add support for x86 vxworks
10244
10245 2004-12-07  Thomas Quinot  <quinot@adacore.com>
10246
10247         * g-socket.ads (Get_Host_By_Address, Get_Host_By_Name): Clarify
10248         documentation of the behaviour of these functions when passed an IP
10249         address that has no record in the system hosts database and no reverse
10250         record in the DNS.
10251
10252         * cstand.adb, a-tags.ads: Fix typos in comment.
10253
10254 2004-12-07  Robert Dewar  <dewar@adacore.com>
10255
10256         * exp_ch2.adb, exp_ch3.adb, exp_ch5.adb, exp_ch8.adb,
10257         exp_ch9.adb, exp_pakd.adb, interfac.ads, sem_ch6.adb,
10258         sem_ch7.adb, sem_ch10.adb, sem_ch13.adb, sem_ch3.adb,
10259         s-poosiz.ads: Minor reformatting
10260
10261         * make.adb: Minor reformatting
10262         Add some ??? comments asking for more comments
10263
10264         * s-poosiz.adb: Minor reformatting
10265         Add comments on alignment requirement
10266
10267         * sinfo.ads: Remove obsolete comment and fix typo.
10268
10269 2004-12-07  Vincent Celier  <celier@adacore.com>
10270             Sergey Rybin  <rybin@adacore.com>
10271
10272         * gnat_ugn.texi: Update the section "The GNAT Driver and Project
10273         Files" with the new tool and package names.
10274         Reformatting to suppress most of the warnings for line too long
10275         Document the new section "Project Search Path:" in the output of
10276         gnatls -v.
10277         Add gnatmetric section
10278
10279 2004-12-07  Vincent Celier  <celier@adacore.com>
10280
10281         * vms_data.ads: Correct GNAT METRIC qualifiers: -I-, -Idir and
10282         -gnatec= are not direct switches of gnatmetric. Changed -eis to -eps
10283         and -eit to -ept. Added qualifier
10284         /ELEMENT_METRICS=CONSTRUCT_NESTING_MAX for new switch -ec.
10285
10286 2004-11-27  Andreas Schwab  <schwab@suse.de>
10287
10288         * Make-lang.in (ada/trans.o): Depend on $(EXPR_H).
10289
10290 2004-11-25  Arnaud Charlet  <charlet@adacore.com>
10291
10292         * g-socthi-mingw.ads, g-socthi-vms.ads: Remove C_Read and C_Write from
10293         internal implementation unit GNAT.Sockets.Thin,
10294         as their usage for sockets is non-portable (using the read and write
10295         functions from the system runtime library is fine on UNIX but won't
10296         work under Windows).
10297
10298         * mingw32.h: Update copyright notice.
10299
10300 2004-11-25  Arnaud Charlet  <charlet@adacore.com>
10301
10302         * ada-tree.h: Minor reformatting of previous change to avoid lines
10303         longer than 79 characters.
10304
10305 2004-11-25  Olivier Hainque  <hainque@adacore.com>
10306
10307         * tb-gcc.c: GCC infrastructure based implementation of
10308         __gnat_backtrace.
10309
10310 2004-11-24  Steven Bosscher  <stevenb@suse.de>
10311
10312         * misc.c (gnat_post_options): Don't clear
10313         flag_inline_functions.
10314
10315 2004-11-22  Andrew Pinski  <pinskia@physics.uc.edu>
10316
10317         PR ada/17986
10318         * ada-tree.h (lang_tree_node): Set chain_next to be the chain of the
10319         tree.
10320
10321 2004-11-21  Andreas Jaeger  <aj@suse.de>
10322
10323         * stylesw.adb: Change Style_Check_Subprogram_Order to
10324         Style_Check_Order_Subprograms.
10325
10326 2004-11-18  Arnaud Charlet  <charlet@adacore.com>
10327
10328         * adaint.h, adaint.c
10329         (__gnat_portable_spawn): Fix cast of spawnvp third parameter
10330         to avoid warnings.
10331         Add also a cast to kill another warning.
10332         (win32_no_block_spawn): Initialize CreateProcess's dwCreationFlags
10333         parameter with the priority class of the parent process instead of
10334         always using the NORMAL_PRIORITY_CLASS.
10335         (__gnat_dup): New function.
10336         (__gnat_dup2): New function.
10337         (__gnat_is_symbolic_link): Enable the effective body of this
10338         function when __APPLE__ is defined.
10339
10340         * g-os_lib.ads, g-os_lib.adb (Spawn): Two new procedures.
10341         Update comments.
10342
10343 2004-11-18  Olivier Hainque  <hainque@adacore.com>
10344
10345         * a-exexpr.adb (Others_Value, All_Others_Value): New variables, the
10346         address of which may be used to represent "others" and "all others"
10347         choices in exception tables, instead of the current harcoded
10348         (void *)0 and (void *)1.
10349         (Setup_Exception): Do nothing in the GNAT SJLJ case.
10350
10351         * gigi.h (others_decl, all_others_decl): New decls representing the
10352         new Others_Value and All_Others_Value objects.
10353         (struct attrib): Rename "arg" component as "args", since GCC expects a
10354         list of arguments in there.
10355
10356         * raise.c (GNAT_OTHERS, GNAT_ALL_OTHERS): Are now the address of the
10357         corresponding objects exported by a-exexpr, instead of hardcoded dummy
10358         addresses.
10359
10360         * trans.c (Exception_Handler_to_gnu_zcx): Use the address of
10361         others_decl and all_others_decl instead of hardcoded dummy addresses
10362         to represent "others" and "all others" choices, which is cleaner and
10363         more flexible with respect to the possible eh pointer encoding policies.
10364
10365         * utils.c (init_gigi_decls): Initialize others_decl and all_others_decl.
10366         (process_attributes): Account for the naming change of the "args"
10367         attribute list entry component.
10368
10369         * decl.c (build_attr_list): Rename into prepend_attributes to allow
10370         cumulating attributes for different entities into a single list.
10371         (gnat_to_gnu_entity): Use prepend_attributes to build the list of
10372         attributes for the current entity and propagate first subtype
10373         attributes to other subtypes.
10374         <E_Procedure>: Attribute arguments are attr->args and not
10375         attr->arg any more.
10376         (build_attr_list): Ditto. Make attr->args a TREE_LIST when there is an
10377         argument provided, as this is what GCC expects. Use NULL_TREE instead
10378         of 0 for trees.
10379
10380 2004-11-18  Robert Dewar  <dewar@adacore.com>
10381
10382         * a-stmaco.ads, exp_util.ads, exp_util.adb, i-cpp.ads, i-cpp.adb:
10383         Minor reformatting througout (including new function specs)
10384         Add ??? comments asking for clarification.
10385
10386 2004-11-18  Thomas Quinot  <quinot@adacore.com>
10387
10388         * butil.ads, butil.adb, bindgen.adb (Get_Unit_Name_String): Remove
10389         incomplete duplicate implementation of this subprogram from butil.
10390
10391 2004-11-18  Thomas Quinot  <quinot@adacore.com>
10392
10393         * exp_dist.adb (Build_RPC_Receiver_Body): New subprogram. This
10394         procedures factors the common processing for building an RPC receiver
10395         for an RCI package or an RACW type.
10396         Stylistic cleanup: change '/= Empty' to 'Present ()'; move body of
10397         Build_Remote_Subprogram_Proxy_Type into proper alphabetical order.
10398         (Get_PCS_Name): New subprogram. Returns the name of the PCS currently
10399         in use.
10400         (Specific_Add_RACW_Features): New subprogram. PCS-specific part of
10401         Add_RACW_Features.
10402         (Specific_Add_RAST_Features): New subprogram. PCS-specific part of
10403         Add_RAST_Features.
10404         (Assign_Subprogram_Identifier): New subprogram. Provision for assigning
10405         distribution subprogram identifiers that are either subprogram numbers
10406         or strings.
10407         (Get_Subprogram_Ids): New subprogram. Retrieve both the numeric and
10408         string distribution identifiers assigned to a given subprogram.
10409         (Get_Subprogram_Id): Reimplement in terms of Get_Subprogram_Ids.
10410         (Add_RAS_Dereference_TSS): Add comments.
10411         (Build_General_Calling_Stubs): Note that the RACW_Type formal parameter
10412         is not referenced yet because it will be used by the PolyORB DSA
10413         implementation.
10414         (Insert_Partition_Check): Remove fossile code.
10415         (First_RCI_Subprogram_Id): Document this constant.
10416         (Add_RAS_Access_TSS): Correct the setting of the Etype of the
10417         RAS_Access TSS.
10418         (Get_Pkg_Name_String): Remove subprogram. Usage occurrences are
10419         replaced with calls to Get_Library_Unit_Name_String. Previously there
10420         were several instances of the same code in different locations in the
10421         compiler; this checkin completes the replacement of all of these
10422         instances with calls to a common subprogram.
10423         Minor reformatting.
10424
10425         * sem_dist.adb: Remove comment noting that RPC receiver generation
10426         should be disabled for RACWs that implement RASs.
10427         (Process_Partition_Id): Use new subprogram Get_Library_Unit_Name_String.
10428
10429         * sem_util.ads, sem_util.adb (Has_Stream): New function
10430         (Get_Library_Unit_Name_String): New subprogram to retrieve the fully
10431         qualified name of a library unit into the name buffer.
10432         (Note_Possible_Modification): Generate a reference only
10433         if the context comes from source.
10434
10435         * snames.ads (PCS_Names): New subtype corresponding to names of
10436         supported implementations of the Partition Communication Subsystem
10437         (PCS) (i.e. the runtime library support modules for the distributed
10438         systems annex).
10439
10440 2004-11-18  Robert Dewar  <dewar@adacore.com>
10441             Ed Schonberg  <schonberg@adacore.com>
10442
10443         * einfo.ads, einfo.adb: Remove Is_Psected flag, no longer used
10444         (Has_Rep_Pragma): New function
10445         (Has_Attribute_Definition_Clause): New function
10446         (Record_Rep_Pragma): Moved here from sem_ch13.adb
10447         (Get_Rep_Pragma): Remove junk kludge for Stream_Convert pragma
10448
10449         * sem_ch13.ads, sem_ch13.adb (Record_Rep_Pragma): Moved to einfo.adb
10450
10451         * exp_prag.adb: (Expand_Pragma_Common_Object): New procedure
10452         (Expand_Pragma_Psect_Object): New procedure
10453         These procedures contain the revised and cleaned up processing for
10454         these two pragmas. This processing was formerly in Sem_Prag, but
10455         is more appropriately moved here. The cleanup involves making sure
10456         that the pragmas are properly attached to the tree, and that no
10457         nodes are improperly shared.
10458
10459         * sem_prag.adb: Move expansion of Common_Object and Psect_Object
10460         pragmas to Exp_Prag, which is more appropriate.
10461         Attach these two pragmas to the Rep_Item chain Use Rep_Item chain to
10462         check for duplicates Remove use of Is_Psected flag, no longer needed.
10463         Use new Make_String_Literal function with string.
10464
10465         * exp_attr.adb (Expand_Fpt_Attribute): The floating-point attributes
10466         that are functions return universal values, that have to be converted
10467         to the context type.
10468         Use new Make_String_Literal function with string.
10469         (Get_Stream_Convert_Pragma): New function, replaces the use of
10470         Get_Rep_Pragma, which had to be kludged to work in this case.
10471
10472         * freeze.adb: Use new Has_Rep_Pragma function
10473
10474         * exp_intr.adb, exp_ch3.adb, sem_attr.adb: Use new Make_String_Literal
10475         function with string.
10476         Use new Has_Rep_Pragma function.
10477
10478         * tbuild.ads, tbuild.adb (Make_String_Literal): New function, takes
10479         string argument.
10480
10481 2004-11-18  Robert Dewar  <dewar@adacore.com>
10482
10483         * errout.ads, errout.adb: (First_Sloc): New function
10484
10485         * par-ch5.adb (P_Condition): Check for redundant parens is now a style
10486         check (-gnatyx) instead of being included as a redundant construct
10487         warning.
10488
10489         * sem_ch6.adb: Change name Style_Check_Subprogram_Order to
10490         Style_Check_Order_Subprograms.
10491
10492         * style.ads, styleg.ads, styleg.adb, styleg-c.adb, stylesw.ads,
10493         stylesw.adb: Add Style_Check_Xtra_Parens
10494
10495         * usage.adb: Add line for -gnatyx (check extra parens)
10496
10497         * vms_data.ads: Add entry for STYLE_CHECKS=XTRA_PARENS => -gnatyx
10498
10499 2004-11-18  Ed Schonberg  <schonberg@adacore.com>
10500             Robert Dewar  <dewar@adacore.com>
10501
10502         * exp_ch4.adb (Expand_N_Selected_Component): If the component is the
10503         discriminant of a constrained subtype, analyze the copy of the
10504         corresponding constraint, because in some cases it may be only
10505         partially analyzed.
10506         Removes long-lived ??? comments.
10507
10508         * exp_ch7.adb (Establish_Transient_Scope): Remove complex code that
10509         handled controlled or secondary-stack expressions within the
10510         iteration_scheme of a loop.
10511
10512         * sem_ch5.adb (Analyze_Iteration_Scheme): Build a block to evaluate
10513         bounds that may contain functions calls, to prevent memory leaks when
10514         the bound contains a call to a function that uses the secondary stack.
10515         (Check_Complex_Bounds): Subsidiary of Analyze_Iteration_Scheme, to
10516         generate temporaries for loop bounds that might contain function calls
10517         that require secondary stack and/or finalization actions.
10518
10519         * sem_ch4.adb (Analyze_Indexed_Component_Form): If the prefix is a
10520         selected component and the selector is overloadable (not just a
10521         function) treat as function call, Analyze_Call will disambiguate if
10522         necessary.
10523         (Analyze_Selected_Component): Do not generate an actual subtype for the
10524         selected component if expansion is disabled. The actual subtype is only
10525         needed for constraint checks.
10526         (Analyze_Allocator): If restriction No_Streams is set, then do
10527         not permit objects to be declared of a stream type, or of a
10528         composite type containing a stream.
10529
10530         * restrict.ads: Remove the a-stream entry from Unit_Array, since
10531         No_Streams no longer prohibits with'ing this package.
10532
10533         * sem_ch3.adb (Build_Derived_Record_Type): If the parent type has
10534         discriminants, but the parent base has unknown discriminants, there is
10535         no discriminant constraint to inherit. Such a discrepancy can arise
10536         when the actual for a formal type with unknown discriminants is a
10537         similar private type whose full view has discriminants.
10538         (Analyze_Object_Declaration): If restriction No_Streams is set, then
10539         do not permit objects to be declared of a stream type, or of a
10540         composite type containing a stream.
10541
10542 2004-11-18  Ed Schonberg  <schonberg@adacore.com>
10543
10544         * exp_dbug.ads: Update documentation to reflect simpler encoding for
10545         protected operations.
10546
10547         * exp_ch9.adb (Build_Selected_Name): Do not include "PT" suffix in
10548         generated name, it complicates decoding in gdb and hinders debugging
10549         of protected operations.
10550         (Build_Barrier_Function_Specification): Set the Needs_Debug_Info
10551         flag for the protected entry barrier function.
10552         (Build_Protected_Entry_Specification): Set the Needs_Debug_Info
10553         flag for the protected entry function.
10554
10555 2004-11-18  Nicolas Setton  <setton@adacore.com>
10556
10557         * expect.c: Define __unix__ when __APPLE__ is defined.
10558
10559         * Makefile.in: Inform the value of the variable GMEM_LIB in the
10560         Darwin-specific section.
10561
10562         * lang-specs.h: Change the placement of the %1 marker.
10563         Works around the fact that gcc adds -fPIC by default under Darwin.
10564
10565 2004-11-18  Ed Schonberg  <schonberg@adacore.com>
10566
10567         * exp_pakd.adb (Convert_To_PAT_Type): After replacing the original
10568         type of the object with the packed array type, set the Analyzed flag
10569         on the object if it is an entity or simple indexed component, to avoid
10570         spurious type errors.
10571
10572 2004-11-18  Gary Dismukes  <dismukes@adacore.com>
10573
10574         * gnat1drv.adb, gnatbind.adb, gnatchop.adb, gnatfind.adb, gnatlink.adb,
10575         gnatls.adb, gnatxref.adb, gprep.adb: Output the copyright message on a
10576         separate line from the version message.
10577
10578 2004-11-18  Ed Falis  <falis@adacore.com>
10579
10580         * init.c (__gnat_map_signal): map SIGSEGV to Storage_Error for AE653
10581         vthreads.
10582         (init_float): Eliminate initialization of floating point status for
10583         AE653. The instructions have no effect for vThreads.
10584
10585 2004-11-18  Vincent Celier  <celier@adacore.com>
10586
10587         * make.adb (Gnatmake): Invoke gnatlink with -shared-libgcc when
10588         gnatbind is invoked with -shared.
10589
10590 2004-11-18  Jose Ruiz  <ruiz@adacore.com>
10591
10592         * s-tposen.adb (Lock_Entry): Remove the code for raising Program_Error
10593         for Detect_Blocking which is redundant with the check done within the
10594         procedure Protected_Single_Entry_Call.
10595         (Lock_Read_Only_Entry): Remove the code for raising Program_Error for
10596         Detect_Blocking which is redundant with the check done within the
10597         procedure Protected_Single_Entry_Call.
10598
10599 2004-11-18  Vincent Celier  <celier@adacore.com>
10600
10601         * makegpr.adb (Compile): Put the compiling switches (in package
10602         Compiler and on the command line) immediately after "-c", instead of
10603         at the end of the command line invocation of the compiler, when
10604         compiling a non-Ada file.
10605         (Build_Global_Archive): When there is no need to rebuild the archive,
10606         set Global_Archive_Exists, so that the archive is passed to the linker
10607         if one is needed.
10608
10609 2004-11-18  Robert Dewar  <dewar@adacore.com>
10610             Sergey Rybin  <rybin@adacore.com>
10611
10612         * gnat_ugn.texi:
10613         Remove extra paren check from list of checks for redundant constructs
10614         Add documentation of new -gnatyx style check (check extra parens)
10615         Remove paragraph about gnatelim debug options.
10616
10617         * gnat_rm.texi: Document that Ada.Streams now forbids creating stream
10618         objects rather than forbidding dependencies on the package Ada.Streams.
10619
10620         * sinfo.ads: Add ??? note that we should document pragmas passed to
10621         back end.
10622
10623         * g-expect.ads: Fix a few typos in the comments.
10624
10625 2004-11-09  Joseph S. Myers  <joseph@codesourcery.com>
10626
10627         * misc.c (gnat_handle_option): Use %< and %> for quoting in
10628         warning message.
10629
10630 2004-11-08  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10631
10632         * a-numaux-x86.adb (Tan): Fix fdivp syntax.
10633
10634 2004-11-07  Andreas Schwab  <schwab@suse.de>
10635
10636         * Makefile.in (install-gnatlib): Remove spurious hyphen.
10637
10638 2004-11-02  Andrew Pinski  <pinskia@physics.uc.edu>
10639
10640         PR ada/18228
10641         * Makefile.in (darwin): Set soext to .dylib.
10642
10643 2004-10-26  Vincent Celier  <celier@gnat.com>
10644             Thomas Quinot   <quinot@act-europe.fr>
10645
10646         * g-socthi-vms.adb, g-socthi-mingw.adb, g-socthi-vxworks.ads:
10647         (C_Writev): Change MSG_Forced_Flags to Constants.MSG_Forced_Flags as
10648         there is no use of GNAT.Sockets.Constants.
10649         Remove remaining pragma Import for C_Write
10650         Remove C_Read and C_Write from internal implementation unit
10651         GNAT.Sockets.Thin, as their usage for sockets is non-portable (using
10652         the read and write functions from the system runtime library is fine
10653         on UNIX but won't work under Windows).
10654
10655         * g-socket.adb: (Abort_Selector): Use C_Send instead of C_Write.
10656         (Check_Selector): Use C_Recv instead of C_Read.
10657         Selectors are the GNAT.Sockets abstraction to perform a select()
10658         call on a set of descriptors. To allow abortion of an ongoing
10659         select operation, some data is written to a dedicated socket that
10660         is always monitored.
10661         Under Windows, the write and read library functions cannot operate
10662         on sockets, so we need to use send and recv instead, which is portable
10663         across all supported platforms.
10664
10665         * g-socthi.ads: Remove C_Read and C_Write from internal implementation
10666         unit GNAT.Sockets.Thin, as their usage for sockets is non-portable
10667         (using the read and write functions from the system runtime library is
10668         fine on UNIX but won't work under Windows).
10669
10670 2004-10-26  Nicolas Setton  <setton@act-europe.fr>
10671
10672         * mlib-tgt-darwin.adb: New file.
10673
10674         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
10675         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
10676         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
10677         mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb (Archive_Indexer_Options): New
10678         subprogram body.
10679
10680         * Makefile.in: Add support for building shared libraries under Darwin.
10681         (EXTRA_GNATRTL_NONTASKING_OBJS, ppc-vxworks): Add s-vxwexc.o, containing
10682         the low level EH init subprogram to be called from __gnat_initialize.
10683
10684         * mlib-tgt.ads, mlib-tgt.adb (Archive_Indexer_Options): New subprogram,
10685         indicates which options to pass to the archive indexer.
10686
10687         * mlib-utl.adb: Add support for calling ranlib with additional
10688         options. This is needed for instance under Mac OS X.
10689         (Ranlib_Options): New global variable, used to store the potential
10690         options to pass to ranlib.
10691         (Ar): Use Ranlib_Options when spawning ranlib.
10692         (Initialize): Set the value of ranlib option.
10693
10694 2004-10-26  Olivier Hainque  <hainque@act-europe.fr>
10695
10696         * s-parame-linux.adb (Minimum_Stack_Size): Adjust to return 12K
10697         instead of 8K, to reflect the real potential needs for stack-checking
10698         in the ZCX case.
10699
10700 2004-10-26  Pascal Obry  <obry@gnat.com>
10701
10702         * s-parame-mingw.adb (Default_Stack_Size): Add some comments.
10703
10704         * s-taprop-mingw.adb (Create_Task): Set initial stack size to 1024. On
10705         Windows only the initial thread stack size can be set so it is good to
10706         start we a low stack size.
10707         The OS will adjust the size as needed.
10708
10709 2004-10-26  Olivier Hainque  <hainque@act-europe.fr>
10710             Nicolas Setton  <setton@act-europe.fr>
10711
10712         * expect.c, adaint.c, link.c, sysdep.c (unix sections): Guard with
10713         "__unix__" instead of "unix".
10714         The latter is implicitly defined by gcc3.2 but not by gcc >= 3.4, so the
10715         sections were just mistakenly ignored. The former is
10716         implicitely defined by gcc2.8, gcc3.2 and gcc3.4.
10717         Update #ifdef preprocessor macro to detect the symbol __hpux__ instead
10718         of hpux. This prevents an unwanted definition of the symbol
10719         convert_addresses in adaint.o.
10720
10721 2004-10-26  Gary Dismukes  <dismukes@gnat.com>
10722
10723         * a-exexpr.adb (Setup_Key): Change initial value to 16#DEAD#, for
10724         compatibility with type Unwind_Word on 16-bit targets such as AAMP.
10725
10726 2004-10-26  Cyrille Comar  <comar@act-europe.fr>
10727
10728         * a-filico.ads, a-filico.adb: fix incorrect header.
10729
10730 2004-10-26  Javier Miranda  <miranda@gnat.com>
10731
10732         * a-ststio.ads: Fix typo in identifier
10733
10734 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
10735
10736         * sem_ch4.adb: Minor reformatting.
10737
10738 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
10739
10740         * checks.adb (Expr_Known_Valid): If floating-point validity checks are
10741         enabled, check the result of unary and binary operations when the
10742         expression is the right-hand side of an assignment.
10743
10744 2004-10-26  Vincent Celier  <celier@gnat.com>
10745
10746         * clean.adb (Delete): Do not output warnings when in quiet output and
10747         not in verbose mode.
10748         (Force_Deletions): New Boolean flag, defaulted to False
10749         (Delete): Only delete a file if it is writable, and when
10750         Force_Deletions is True.
10751         (Parse_Cmd_Line): New switch -f: set Force_Deletions to True
10752         (Usage): Line for new switch -f
10753         (Clean_Directory): Use GNAT.OS_Lib.Set_Writable instead of rolling our
10754         own.
10755
10756 2004-10-26  Eric Botcazou  <ebotcazou@act-europe.fr>
10757
10758         * decl.c (gnat_to_gnu_field): Use the type of the inner object for a
10759         JM type only if its size matches that of the wrapper.  When a size is
10760         prescribed and the field is not aliased, remove the wrapper of a JM
10761         type only if the size is not greater than that of the packed array.
10762         (gnat_to_gnu_entity): Change the extension of packed array wrappers
10763         from LJM to JM.
10764
10765 2004-10-26  Geert Bosch  <bosch@gnat.com>
10766
10767         * eval_fat.adb (Eps_Model,Eps_Denorm): Remove, no longer used.
10768         (Succ): Re-implement using Scaling, Exponent and Ceiling attributes.
10769         (Pred): Implement in terms of Succ.
10770
10771 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
10772
10773         * exp_aggr.adb (Safe_Component): An aggregate component that is an
10774         unchecked conversion is safe for in-place use if the expression of the
10775         conversion is safe.
10776         (Expand_Array_Aggregate): An aggregate that initializes an allocator may
10777         be expandable in place even if the aggregate does not come from source.
10778         (Convert_Array_Aggr_In_Allocator): New procedure to initialize the
10779         designated object of an allocator in place, rather than building it
10780         first on the stack. The previous scheme forces a full copy of the array,
10781         and may be altogether unsusable if the size of the array is too large
10782         for stack allocation.
10783
10784 2004-10-26  Robert Dewar  <dewar@gnat.com>
10785
10786         * exp_ch4.adb (Expand_N_Op_Eq): Make sure we expand a loop for array
10787         compares if the component is atomic.
10788
10789         * exp_ch5.adb (Expand_Assign_Array): Make sure we expand a loop for
10790         array assignment if the component type is atomic.
10791
10792 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
10793             Eric Botcazou  <ebotcazou@act-europe.fr>
10794
10795         * exp_ch6.adb (Expand_Actuals): If the actual for an in-out parameter
10796         is aliased and is a by_reference type, do not pass by copy.
10797         (Expand_N_Function_Call) <Rhs_Of_Assign_Or_Decl>: New function to
10798         detect whether the call is in the right side of an assignment or
10799         the expression of an object declaration.  Recurse on component
10800         association within aggregates.
10801         Call it in the condition that determines whether the temporary is
10802         necessary for correct stack-checking.
10803
10804 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
10805
10806         * exp_dist.adb (Build_General_Calling_Stubs): New formal parameter
10807         RACW_Type, used in the PolyORB version.
10808         Rename RCI_Info to RCI_Locator, for consistency between the PolyORB
10809         version and the GARLIC version.
10810
10811         * snames.ads, snames.adb, s-parint.ads, s-parint.adb:
10812         Rename RCI_Info to RCI_Locator for better consistency between the
10813         GARLIC and PolyORB versions of the distributed systems annex.
10814         (DSA_Implementation_Name): This enumeration lists the possible
10815         implementations of the Partition Communication Subsystem for the
10816         Distributed Systems Annex (DSA). The three available implementations
10817         are the dummy stub implementation (No_DSA), and two versions based on
10818         two different distribution runtime libraries: GARLIC and PolyORB. Both
10819         the GARLIC PCS and the PolyORB PCS are part of the GLADE distribution
10820         technology.
10821         Change the literal GLADE_DSA to GARLIC_DSA to accurately describe
10822         that organization.
10823
10824         * rtsfind.ads: Rename RCI_Info to RCI_Locator for better consistency
10825         between the GARLIC and PolyORB versions of the distributed systems
10826         annex.
10827         Remove RE_Unbounded_Reclaim_Pool since it is unused.
10828
10829 2004-10-26  Gary Dismukes  <dismukes@gnat.com>
10830
10831         * gnat1drv.adb: Suppress calling the back end when
10832         Frontend_Layout_On_Target is true.
10833
10834 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
10835
10836         * g-os_lib.ads, g-os_lib.adb (Set_Executable, Set_Writable,
10837         Set_Read_Only): New subprograms.
10838         These new routines allow the user to set or unset the Owner execute
10839         and Owner write permission flags on a file.
10840
10841         * makegpr.adb, mlib.adb, mlib-prj.adb: Use
10842         GNAT.OS_Lib.Set_Executable instead of rolling our own.
10843
10844 2004-10-26  Matthew Gingell  <gingell@gnat.com>
10845
10846         * i-cpp.ads, i-cpp.adb: Change layout of VTable for new C++ ABI.
10847
10848 2004-10-26  Pascal Obry  <obry@gnat.com>
10849
10850         * init.c (__gnat_error_handler) [Win32]: Instead of trying to read the
10851         memory before the faulting page we properly test the process read
10852         access for this address using appropriate Win32 routine.
10853         (HPUX sections): guard with "__hpux__" instead of "hpux".
10854
10855 2004-10-26  Robert Dewar  <dewar@gnat.com>
10856
10857         * lib-xref.adb (Generate_Reference): Don't complain about reference to
10858         entry parameter if pragma Unreferenced set, since we do not properly
10859         handle the case of multiple parameters.
10860
10861 2004-10-26  Vincent Celier  <celier@gnat.com>
10862
10863         * prj-env.adb: (Contains_ALI_Files): New Boolean function
10864         (Ada_Objects_Path.Add): For a library project, add to the object path
10865         the library directory only if there is no object directory or if the
10866         library directory contains ALI files.
10867         (Set_Ada_Paths.Add.Recursive_Add): Ditto
10868
10869 2004-10-26  Vincent Celier  <celier@gnat.com>
10870
10871         * prj-nmsc.adb (Language_Independent_Check): Do not forbid virtual
10872         extension of library projects.
10873
10874         * prj-part.adb: If env var ADA_PROJECT_PATH is not defined, project
10875         path defaults to ".:<prefix>/lib/gnat".
10876         (Parse): For an extending all project, allow direct import of a project
10877         that is virtually extended.
10878
10879         * prj-proc.adb (Imported_Or_Extended_Project_From): If a project with
10880         the specified name is directly imported, return its ID. Otherwise, if
10881         an extension of this project is imported, return the ID of the
10882         extension.
10883
10884 2004-10-26  Robert Dewar  <dewar@gnat.com>
10885
10886         * s-arit64.adb: (Le3): New function, used by Scaled_Divide
10887         (Sub3): New procedure, used by Scaled_Divide
10888         (Scaled_Divide): Substantial rewrite, avoid duplicated code, and also
10889         correct more than one instance of failure to propagate carries
10890         correctly.
10891         (Double_Divide): Handle overflow case of largest negative number
10892         divided by minus one.
10893
10894         * s-arit64.ads (Double_Divide): Document that overflow can occur in
10895         the case of a quotient value out of range.
10896         Fix comments.
10897
10898 2004-10-26  Robert Dewar  <dewar@gnat.com>
10899
10900         * s-bitops.adb (Bit_Eq): Remove redundant check.
10901
10902         * s-bitops.ads: Minor comment updates
10903         Change some occurrences of Address to System.Address
10904
10905         * s-carsi8.ads: Fix minor cut-and-paste error in comments
10906
10907 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
10908
10909         * sem_attr.adb (Resolve_Attribute, case 'Access): Apply proper
10910         accessibility check to prefix that is a protected operation.
10911
10912 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
10913
10914         * sem_ch10.adb (Optional_Subunit): If file of expected subunit is
10915         empty, post message on stub.
10916
10917 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
10918             Javier Miranda  <miranda@gnat.com>
10919
10920         * sem_ch12.adb (In_Main_Context): Predicate to determine whether the
10921         current instance appears within a unit that is directly in the context
10922         of the main unit.
10923         Used to determine whether the body of the instance should be analyzed
10924         immediately after its spec, to make its subprogram bodies available
10925         for front-end inlining.
10926         (Analyze_Formal_Array_Type): Cleanup condition that checks that range
10927         constraint is not allowed on the component type (AARM 12.5.3(3))
10928
10929 2004-10-26  Cyrille Comar  <comar@act-europe.fr>
10930
10931         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case
10932         'Storage_Pool): enhance, document & limit detection of non-sharable
10933         internal pools.
10934
10935         * impunit.adb: Make System.Pool_Global and System.Pool_Local visible.
10936
10937         * s-pooglo.ads: Add more documentation now that this pool is properly
10938         documented.
10939
10940 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
10941
10942         * sem_ch3.adb (Complete_Private_Subtype): If the full view is a task
10943         or protected type with discriminants, do not constrain the
10944         corresponding record type if the subtype declaration has no
10945         discriminant constraints. This can be the case in source code, or in
10946         the subtype declaration created to rename an actual type within an
10947         instantiation.
10948
10949 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
10950
10951         * sem_ch6.adb (Analyze_Subprogram_Body): If body is a subunit for a
10952         different kind of stub (possibly wrong name for file), do not check
10953         for conformance.
10954         (Uses_Secondary_Stack): New subsidiary to Build_Body_To_Inline. If body
10955         includes call to some function that returns an unconstrained type, do
10956         not inline.
10957
10958 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
10959
10960         * sem_elab.adb (Check_Elab_Call): Do not check a call that does not
10961         appear in the code for the main unit. Dependencies among units in the
10962         context of the main unit are established when those other units are
10963         compiled. Otherwise spurious elaboration constraints can generate
10964         incorrect elaboration circularities.
10965
10966 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
10967             Ed Schonberg   <schonberg@gnat.com>
10968
10969         * sem_util.adb (Is_Aliased_View): Defend against the case where this
10970         subprogram is called with a parameter that is not an object name. This
10971         situation arises for some cases of illegal code, which is diagnosed
10972         later, and in this case it is wrong to call Is_Aliased, as that might
10973         cause a compiler crash.
10974         (Explain_Limited_Type): Refine previous fix to include
10975         inherited components of derived types, to provide complete information.
10976
10977         * exp_ch9.adb (Set_Privals): Set the Ekind of the actual object that
10978         is the prival for a protected object.
10979         It is necessary to mark this entity as a variable, in addition to
10980         flagging it as Aliased, because Sem_Util.Is_Aliased_View has been
10981         modified to avoid checking the Aliased flag on entities that are not
10982         objects. (Checking that flag for non-objects is erroneous and could
10983         lead to a compiler crash).
10984
10985 2004-10-26  Robert Dewar  <dewar@gnat.com>
10986
10987         * s-fatgen.adb (Pred): Fix redundant test for X > 0.0, since if
10988         X_Frac = 0.5, then we know that the number X must be positive.
10989         (Succ): Remove the same redundant test, and also fix the primary test
10990         to test for X_Frac = -0.5 (used to be 0.5) which is clearly wrong.
10991         Minor reformatting
10992         (Decompose): Add fuller comments to spec
10993
10994 2004-10-26  Pascal Obry  <obry@gnat.com>
10995
10996         * tracebak.c (IS_BAD_PTR): Use IsBadCodePtr on Win32 to check for ptr
10997         validity (process must have read access). Set to 0 in all other cases.
10998         (STOP_FRAME): Now check for ptr validity to avoid a segmentation
10999         violation on Win32.
11000         (VALID_STACK_FRAME): Check for ptr validity on Win32 to avoid a
11001         segmentation violation.
11002
11003 2004-10-26  Eric Botcazou  <ebotcazou@act-europe.fr>
11004
11005         * trans.c (call_to_gnu): For an (in-)out parameter passed by reference
11006         whose type is a constructed subtype of an aliased object with an
11007         unconstrained nominal subtype, convert the actual to the constructed
11008         subtype before taking its address.
11009
11010 2004-10-26  Vincent Celier  <celier@gnat.com>
11011
11012         * a-dirval.ads, a-dirval.adb, a-dirval-vms.adb, a-dirval-mingw.adb
11013         (Is_Path_Name_Case_Sensitive): New function
11014
11015         * a-direct.adb (To_Lower_If_Case_Insensitive): New procedure
11016         (Base_Name, Simple_Name, Current_Directory, Compose,
11017         Containing_Directory, Full_Name): Call To_Lower_If_Case_Insensitive on
11018         the result.
11019
11020 2004-10-26  Cyrille Comar    <comar@act-europe.fr>
11021             Vasiliy Fofanov  <fofanov@act-europe.fr>
11022             Vincent Celier   <celier@gnat.com>
11023
11024         * gnat_ugn.texi: Generalize "finding memory problems" section into a
11025         "memory management issues" section and document some of the useful
11026         memory pools provided as part of the GNAT library.
11027         Remove "virtual" from declaration of A::method2 in
11028         the simple example of Ada/C++ mixed system.
11029         Library Projects may be virtually extended: their virtual extensions
11030         are not Library Projects.
11031         Added section on extending project hierarchies.
11032
11033 2004-10-19  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
11034
11035         * adaint.c (__gnat_get_libraries_from_registry): Cast value
11036         to LPBYTE.
11037         (__gnat_portable_spawn): Remove const.
11038
11039         * mingw32.h (MAXPATHLEN): Check for previous definition.
11040
11041 2004-10-17  Matthias Klose  <doko@debian.org>
11042
11043         * gnatvsn.ads: Set gnat library version to 4.0.
11044
11045 2004-10-05  Vincent Celier  <celier@gnat.com>
11046
11047         * mlib-tgt.ads: (Build_Dynamic_Library): New parameter Options_2
11048
11049 2004-10-04  Laurent GUERBY <laurent@guerby.net>
11050
11051         PR ada/15156
11052         * Makefile.in: Define and use RANLIB_FLAGS.
11053
11054 2004-10-04  Pascal Obry  <obry@gnat.com>
11055
11056         * tracebak.c: Always set LOWEST_ADDR to 0 on Win32 (as done on all
11057         other x86 platforms).
11058
11059 2004-10-04  Olivier Hainque  <hainque@act-europe.fr>
11060
11061         * s-tassta.adb (Task_Wrapper): Make it Convention C, which makes sense
11062         in general and triggers stack alignment adjustment for thread entry
11063         points on targets where this is necessary.
11064
11065 2004-10-04  Bernard Banner  <banner@gnat.com>
11066
11067         PR ada/13897
11068
11069         * Makefile.in: Add section for powerpc linux
11070         Add variant i-vxwork-x86.ads
11071
11072         * i-vxwork-x86.ads, system-linux-ppc.ads: New files.
11073
11074 2004-10-04  Olivier Hainque  <hainque@act-europe.fr>
11075
11076         * init.c (__gnat_initialize): Call an Ada subprogram to perform the
11077         table registration calls when need be. Ensures no reference to the crt
11078         ctors symbol are issued in the SJLJ case, which avoids possible
11079         undefined symbol errors in the case of modules to be statically linked
11080         with the kernel.
11081
11082 2004-10-04  Javier Miranda  <miranda@gnat.com>
11083
11084         * sem_ch4.adb (Try_Object_Operation): Reformat the code to expand
11085         in-line the code corresponding to subprogram Analyze_Actuals. In
11086         addition, analyze the actuals only in case of subprogram call.
11087
11088 2004-10-04  Ed Falis  <falis@gnat.com>
11089
11090         * s-vxwork-x86.ads: (FP_CONTEXT): Defined to be correct size
11091
11092 2004-10-04  Sergey Rybin  <rybin@act-europe.fr>
11093
11094         * g-dirope.ads (Base_Name): Clarify the meaning of the Suffix parameter
11095         in the documentation.
11096
11097 2004-10-04  Robert Dewar  <dewar@gnat.com>
11098
11099         * sem_ch5.adb (Unblocked_Exit_Count): Now used for blocks as well as
11100         IF and CASE.
11101         (Analyze_Block_Statement): Add circuitry to detect following dead code
11102         (Check_Unreachable_Code): Handle case of block exit
11103
11104 2004-10-04  Robert Dewar  <dewar@gnat.com>
11105
11106         * g-spipat.adb: (XMatch): Avoid warning for Logic_Error call
11107         (XMatchD): Avoid warning for Logic_Error call
11108
11109 2004-10-04  Robert Dewar  <dewar@gnat.com>
11110
11111         * exp_ch4.adb (Is_Procedure_Actual): Correct so that this does not
11112         consider expressions buried within a procedure actual to be an actual.
11113         This caused some blowups with uses of packed slices within a procedure
11114         actual.
11115
11116 2004-10-04  Robert Dewar  <dewar@gnat.com>
11117
11118         * exp_ch3.adb (Needs_Simple_Initialization): Modular packed arrays no
11119         longer need to be initialized to zero.
11120         (Get_Simple_Init_Val): Modular packed arrays no longer need to be
11121         initialized to zero.
11122
11123         * checks.adb (Expr_Known_Valid): Packed arrays are now always
11124         considered valid, even if the representation is modular. That's correct
11125         now that we no longer initialize packed modular arrays to zero.
11126
11127         * exp_dbug.ads: Clarify documentation on handling of PAD and JM
11128         suffixes. These are now documented as the only cases in which the
11129         debugger ignores outer records.
11130         Previously, the spec allowed arbitrary suffixes for this purpose.
11131         Change name of LJM to JM for packed array pad records
11132         Create separate section on packed array handling, and add a whole new
11133         set of comments to this section describing the situation with packed
11134         modular types and justification requirements depending on endianness.
11135
11136 2004-10-04  Robert Dewar  <dewar@gnat.com>
11137
11138         * a-except.adb: Add a comment for last change
11139
11140         * einfo.ads: Minor spelling correction in comment
11141
11142         * exp_pakd.adb, gnatdll.adb, prj-attr.ads: Minor reformatting
11143
11144         * sem_ch11.adb: Fix a case of using | instead of \ for continuation
11145         messages.
11146
11147         * sem_util.ads: Minor comment update
11148
11149 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
11150
11151         * sem_ch6.adb (Analyze_Subprogram_Body): Do not treat Inline as
11152         Inline_Always when in Configurable_Run_Time mode.
11153
11154         * sem_prag.adb (Process_Convention): If entity is an inherited
11155         subprogram, apply convention to parent subprogram if in same scope.
11156         (Analyze_Pragma, case Inline): Do not treat Inline as Inline_Always
11157         when in Configurable_Run_Time mode.
11158
11159 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
11160
11161         * sem_ch3.adb (Build_Derived_Record_Type): Set First/Last entity of
11162         class_wide type after component list has been inherited.
11163
11164 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
11165
11166         * sem_ch12.adb (Check_Generic_Actuals): New predicate
11167         Denotes_Previous_Actual, to handle properly the case of a private
11168         actual that is also the component type of a subsequent array actual.
11169         The visibility status of the first actual is not affected when the
11170         second is installed.
11171         (Process_Nested_Formal): Subsidiary of Instantiate_Formal_Package, to
11172         make fully recursive the treatment of formals of packages declared
11173         with a box.
11174         (Restore_Nested_Formal): Subsidiary of Restore_Private_Views, to undo
11175         the above on exit from an instantiation.
11176         (Denotes_Formal_Package): When called from Restore_Private_Views, ignore
11177         current instantiation which is now complete.
11178         (Analyze_Package_Instantiation): No instantiated body is needed if the
11179         main unit is generic. Efficient, and avoid anomalies when a instance
11180         appears in a package accessed through rtsfind.
11181
11182 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
11183
11184         * exp_ch6.adb (Expand_N_Function_Call): If stack checking is enabled,
11185         do not generate a declaration for a temporary if the call is part of a
11186         library-level instantiation.
11187
11188 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
11189
11190         * sem_util.adb (Explain_Limited_Type): Ignore internal components when
11191         searching for a limited component to flag.
11192
11193         * exp_attr.adb (Freeze_Stream_Subprogram): Subsidiary procedure to
11194         expansion of Input, to account for the fact that the implicit call
11195         generated by the attribute reference must freeze the user-defined
11196         stream subprogram. This is only relevant to 'Input, because it can
11197         appear in an object declaration, prior to the body of the subprogram.
11198
11199         * sem_ch13.adb (Rep_Item_Too_Late): Make the error non-serious, so that
11200         expansion can proceed and further errors uncovered.
11201         (Minor clean up): Fix cases of using | instead of \ for continuation
11202         messages.
11203
11204 2004-10-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11205
11206         * cuintp.c, decl.c, utils2.c: Use gcc_assert and gcc_unreachable.
11207
11208         * trans.c (assoc_to_constructor): Fix unused var warning if no checking.
11209         (gnat_gimplify_expr, case ADDR_EXPR): Fix error in last change.
11210         Use gcc_assert and gcc_unreachable.
11211
11212         * decl.c (gnat_to_gnu_entity, case object): Check and process a
11213         specified alignment before validating size.
11214         (gnat_to_gnu_entity) <E_Modular_Integer_Subtype>: Create a
11215         stripped-down declaration for the type of the inner field when making
11216         a JM type.
11217
11218         * utils.c (finish_record_type): Do not compute the size in units
11219         incrementally. Instead compute it once for the rep clause case.
11220         Use gcc_assert and gcc_unreachable.
11221
11222 2004-10-04  Vincent Celier  <celier@gnat.com>
11223
11224         * a-dirval-mingw.adb (Invalid_Character): Add '\' as invalid character
11225         in file name.
11226         (Is_Valid_Path_Name): Take '/' as a directory separator.
11227
11228 2004-10-04  Vincent Celier  <celier@gnat.com>
11229
11230         * prj-part.adb (Parse_Single_Project): Call Is_Extending_All
11231         (Extended_Project) only if Extended_Project is defined, to avoid
11232         assertion error.
11233         (Post_Parse_Context_Clause): Always call Set_Path_Name_Of with a
11234         resolved path.
11235         (Parse_Single_Project): Ditto.
11236
11237         * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Do not call
11238         Add_To_Project_Path for virtual projects.
11239
11240 2004-10-04  Vincent Celier  <celier@gnat.com>
11241
11242         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
11243         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
11244         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb,
11245         mlib-tgt-vxworks.adb, mlib-tgt.adb (Build_Dynamic_Library): New
11246         parameter Options_2.
11247
11248         * mlib-prj.ads, mlib-prj.adb (Build_Library): Call
11249         Build_Dynamic_Library with an empty Options_2.
11250
11251         * mlib-utl.ads, mlib-utl.adb (Gcc): Parameter Options_2 has no
11252         default anymore.
11253
11254         * makegpr.adb (Get_Imported_Directories.add): Remove trailing
11255         directory separator, if any.
11256         (Gprmake): Do not allow mains on the command line for library projects.
11257         Do not attempt to link when the project is a library project.
11258         (Library_Opts): New table to store Library_Options.
11259         (Build_Library): If Library_Options is specified, pass these options
11260         when building a shared library.
11261
11262 2004-10-04  Jose Ruiz  <ruiz@act-europe.fr>
11263
11264         * s-tposen.adb (Service_Entry): The object must be always unlocked at
11265         the end of this procedure now that the unlock operation was inserted
11266         by the expander.
11267
11268 2004-10-04  Jose Ruiz  <ruiz@act-europe.fr>
11269
11270         * targparm.ads, targparm.adb (Targparm_Tags): Add PAS value
11271         corresponding to the Preallocated_Stacks flags in System.
11272         (Get_Target_Parameters): Including the processing for
11273         Preallocated_Stacks.
11274
11275         * system.ads, system-vxworks-x86.ads, system-darwin-ppc.ads,
11276         system-vms_64.ads, system-unixware.ads, system-linux-ia64.ads,
11277         system-freebsd-x86.ads, system-lynxos-ppc.ads, system-lynxos-x86.ads,
11278         system-linux-x86_64.ads, system-tru64.ads, system-aix.ads,
11279         system-vxworks-sparcv9.ads, system-vxworks-xscale.ads,
11280         system-solaris-x86.ads, system-irix-o32.ads, system-irix-n32.ads,
11281         system-hpux.ads, system-vxworks-m68k.ads, system-linux-x86.ads,
11282         system-vxworks-mips.ads, system-os2.ads, system-interix.ads,
11283         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
11284         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
11285         system-vxworks-alpha.ads: Add the flag Preallocated_Stacks, that is
11286         used to signal whether the compiler creates the required stacks and
11287         descriptors for the different tasks (when True) or it is done by the
11288         underlying operating system at run time (when False).
11289         It is initially set to False in all targets.
11290
11291         * exp_ch9.adb (Expand_N_Task_Type_Declaration): Create the task stack
11292         if it is supported by the target.
11293         (Make_Task_Create_Call): Pass the stack address if it has been
11294         previously created. Otherwise pass a Null_Address.
11295
11296         * snames.adb: Add _stack.
11297
11298         * snames.ads: Add Name_uStack. Required to allow the expander to
11299         statically allocated task stacks.
11300
11301         * s-tarest.ads, s-tarest.adb (Create_Restricted_Task): Add
11302         Stack_Address argument.
11303         Check that its value is equal to Null_Address because this target does
11304         not support the static stack allocation.
11305
11306 2004-10-04  Thomas Quinot  <quinot@act-europe.fr>
11307
11308         * usage.adb: Change "pragma inline" to "pragma Inline" in information
11309         and error messages
11310
11311 2004-10-04  Thomas Quinot  <quinot@act-europe.fr>
11312
11313         * exp_dist.adb: Split declaration of asynchronous flag out of
11314         Add_RACW_Read_Attribute.
11315         Minor reformatting for better alignment with PolyORB version.
11316         Store the entity for the asynchronous flag of an RACW, rather than the
11317         expression, in the asynchronous flags table. This will allow this flag
11318         to be used in other subprograms beside Add_RACW_Read_Attribute.
11319
11320 2004-10-04  Thomas Quinot  <quinot@act-europe.fr>
11321
11322         * g-socket.ads, g-socket.adb, g-socthi.adb, socket.c,
11323         g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
11324         g-soccon-interix.ads, g-soccon-solaris.ads, g-soccon-vms.adb,
11325         g-soccon-mingw.ads, g-soccon-vxworks.ads, g-soccon-freebsd.ads,
11326         g-soccon.ads, g-soccon-unixware.ads, g-soccon-tru64.ads:  Add new
11327         sockets constant MSG_NOSIGNAL (Linux-specific).
11328         Add new sockets constant MSG_Forced_Flags, list of flags to be set on
11329         all Send operations.
11330         For Linux, set MSG_NOSIGNAL on all send operations to prevent them
11331         from trigerring SIGPIPE.
11332         Rename components to avoid clash with Ada 2005 possible reserved
11333         word 'interface'.
11334         (Check_Selector): When the select system call returns with an error
11335         condition, propagate Socket_Error to the caller.
11336
11337 2004-10-01  Jan Hubicka  <jh@suse.cz>
11338
11339         * misc.c (gnat_expand_body): Update call of tree_rest_of_compilation.
11340
11341 2004-09-23  Robert Dewar  <dewar@gnat.com>
11342
11343         PR ada/17540
11344
11345         * sem_prag.adb (Process_Import_Or_Interface): Don't set Is_Public here,
11346         instead do this at freeze time (we won't do it if there is an address
11347         clause).
11348         Change "pragma inline" to "pragma Inline" in information and error
11349         messages.
11350         Minor reformatting.
11351
11352         * freeze.adb (Check_Address_Clause): Remove previous change, not the
11353         right way of doing things after all.
11354         (Freeze_Entity): For object, set Is_Public for imported entities
11355         unless there is an address clause present.
11356
11357 2004-09-21  Olivier Hainque  <hainque@act-europe.fr>
11358
11359         * decl.c (gnat_to_gnu_entity) <E_General_Access_Type>: Check for a
11360         dummy designated type via TYPE_MODE instead of COMPLETE_TYPE_P. This
11361         ensures proper handling of types with rep clauses, which might have
11362         their TYPE_SIZE set already.
11363
11364 2004-09-21  Robert Dewar  <dewar@gnat.com>
11365
11366         * decl.c (gnat_to_gnu_type, case E_Modular_Integer_Type): Wrap modular
11367         packed array types in both little- and big-endian cases. This change
11368         ensures that we no longer count on the unused bits being initialized
11369         for such types (and in particular ensures that equality testing will
11370         only read the relevant bits).
11371         Change name TYPE_LEFT_JUSTIFIED_MODULAR_P to TYPE_JUSTIFIED_MODULAR_P
11372         These changes mean that we no longer need to initialize small packed
11373         arrays.
11374         (gnat_to_gnu_entity) <E_Record_Subtype>: Apply the same
11375         optimization to an LJM field as to its parent field.
11376
11377         * ada-tree.h, trans.c, utils.c, utils2.c:
11378         Change name TYPE_LEFT_JUSTIFIED_MODULAR_P to TYPE_JUSTIFIED_MODULAR_P
11379
11380 2004-09-20  Jan Hubicka  <jh@suse.cz>
11381
11382         * utils.c (gnat_finalize): Remove.
11383         (end_subprog_body): Directly call cgraph_finalize_function;
11384         do not lower the nested functions.
11385
11386 2004-09-20  Robert Dewar  <dewar@gnat.com>
11387
11388         PR ada/17540
11389
11390         * freeze.adb (Check_Address_Clause): Reset Is_Imported and Is_Public
11391         if an address clause is present, since that means that the Import
11392         should be ignored.
11393
11394 2004-09-20  Arnaud Charlet  <charlet@act-europe.fr>
11395
11396         * 5tsystem.ads: Removed, no longer used.
11397
11398 2004-09-17  Jeffrey D. Oldham  <oldham@codesourcery.com>
11399             Zack Weinberg  <zack@codesourcery.com>
11400
11401         * ada-tree.def: Use tree_code_class enumeration constants
11402         instead of code letters.
11403         * ada-tree.h, decl.c, misc.c, trans.c, utils.c, utils2.c:
11404         Update for new tree-class enumeration constants.
11405
11406 2004-09-17  Vincent Celier  <celier@gnat.com>
11407
11408         * prj-attr-pm.ads, prj-attr-pm.adb: New files, to split some private
11409         capabilities of the general project manager.
11410
11411 2004-09-09  Vincent Celier  <celier@gnat.com>
11412
11413         * a-direct.ads: Add pragma Ada_05
11414         (Directory_Entry_Type): Give default value to component Kind to avoid
11415         not initialized warnings.
11416
11417         * a-direct.adb (Current_Directory): Remove directory separator at the
11418         end.
11419         (Delete_Directory, Delete_Tree): Raise Name_Error if Directory is not
11420         an existing directory.
11421         (Fetch_Next_Entry): Give default value to variable Kind to avoid warning
11422         (Size (String)): Function C_Size returns Long_Integer, not File_Size.
11423         Convert the result to File_Size.
11424
11425         * prj.ads: (Project_Error): New exception
11426
11427         * prj-attr.adb: Except in procedure Initialize, Fail comes from
11428         Prj.Com, not from Osint.
11429         (Attrs, Package_Attributes): Tables moved to private part of spec
11430         (Add_Attribute, Add_Unknown_Package): Moved to new child package
11431         Prj.Attr.PM.
11432         (Register_New_Package (Name, Attributes), Register_New_Attribute): Raise
11433         Prj.Project_Error after call to Fail.
11434         (Register_New_Package (Name, Id)): Set Id to Empty_Package after calling
11435         Fail. Check that package name is not already in use.
11436
11437         * prj-attr.ads: Comment updates to indicate that all subprograms may be
11438         used by tools, not only by the project manager, and to indicate that
11439         exception Prj.Prj_Error may be raised in case of problem.
11440         (Add_Unknown_Package, Add_Attribute): Moved to new child package
11441         Prj.Attr.PM.
11442         (Attrs, Package_Attributes): Table instantiations moved from the body to
11443         the private part to be accessible from Prj.Attr.PM body.
11444
11445         * prj-dect.adb (Parse_Package_Declaration): Call Add_Unknown_Package
11446         from new package Prj.Attr.PM.
11447         (Parse_Attribute_Declaration): Call Add_Attribute from new package
11448         Prj.Attr.PM.
11449
11450         * Makefile.in: Add prj-attr-pm.o to gnatmake object list
11451
11452         * gnatbind.adb (Gnatbind): Correct warning message (Elaboration_Check
11453         instead of Elaboration_Checks).
11454
11455         * a-calend.adb: Minor reformatting
11456
11457 2004-09-09  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11458
11459         * gigi.h (maybe_pad_type): New declaration.
11460         (create_subprog_type): New arg RETURNS_BY_TARGET_PTR.
11461
11462         * ada-tree.h: (TYPE_RETURNS_BY_TARGET_PTR_P): New macro.
11463
11464         * cuintp.c: Convert to use buildN.
11465
11466         * decl.c (maybe_pad_type): No longer static.
11467         (gnat_to_gnu_entity, case E_Function): Handle case of returning by
11468         target pointer.
11469         Convert to use buildN.
11470
11471         * trans.c (call_to_gnu): Add arg GNU_TARGET; support
11472         TYPE_RETURNS_BY_TARGET_PTR_P.  All callers changed.
11473         (gnat_to_gnu, case N_Assignment_Statement): Call call_to_gnu if call on
11474         RHS.
11475         (gnat_to_gnu, case N_Return): Handle TYPE_RETURN_BY_TARGET_PTR_P.
11476         (gnat_gimplify_expr, case ADDR_EXPR): New case.
11477         Convert to use buildN.
11478
11479         * utils2.c (gnat_build_constructor): Also set TREE_INVARIANT and
11480         TREE_READONLY for const.
11481         Convert to use buildN.
11482
11483         * utils.c (create_subprog_type): New operand RETURNS_BY_TARGET_PTR.
11484         (create_var_decl): Refine when TREE_STATIC is set.
11485         Convert to use buildN.
11486
11487 2004-09-09  Gary Dismukes  <dismukes@gnat.com>
11488
11489         * gnat_ugn.texi: Delete text relating to checking of ali and object
11490         consistency.
11491
11492         * a-except.adb (Rcheck_*): Add pragmas No_Return for each of these
11493         routines.
11494
11495 2004-09-09  Jose Ruiz  <ruiz@act-europe.fr>
11496
11497         * gnat_ugn.texi: Add Detect_Blocking to the list of configuration
11498         pragmas recognized by GNAT.
11499
11500         * gnat_rm.texi: Document pragma Detect_Blocking.
11501
11502         * s-solita.adb (Timed_Delay_T): When pragma Detect_Blocking is active,
11503         raise Program_Error if called from a protected operation.
11504
11505         * s-taprob.adb (Lock): When pragma Detect_Blocking is active increase
11506         the protected action nesting level.
11507         (Lock_Read_Only): When pragma Detect_Blocking is active increase the
11508         protected action nesting level.
11509         (Unlock): When pragma Detect_Blocking is active decrease the protected
11510         action nesting level.
11511
11512         * s-taskin.adb (Initialize_ATCB): Initialize to 0 the
11513         Protected_Action_Nesting.
11514
11515         * s-taskin.ads: Adding the field Protected_Action_Nesting to the
11516         Common_ATCB record. It contains the dynamic level of protected action
11517         nesting for each task. It is needed for checking whether potentially
11518         blocking operations are called from protected operations.
11519         (Detect_Blocking): Adding a Boolean constant reflecting whether pragma
11520         Detect_Blocking is active or not in the partition.
11521
11522         * s-tasren.adb (Call_Simple): When pragma Detect_Blocking is active,
11523         raise Program_Error if called from a protected operation.
11524         (Task_Entry_Call): When pragma Detect_Blocking is active, raise
11525         Program_Error if called from a protected operation.
11526         (Timed_Task_Entry_Call): When pragma Detect_Blocking is active, raise
11527         Program_Error if called from a protected operation.
11528
11529         * s-tassta.adb (Abort_Tasks): When pragma Detect_Blocking is active,
11530         raise Program_Error if called from a protected operation.
11531
11532         * s-tpoben.adb (Lock_Entries): When pragma Detect_Blocking is active,
11533         raise Program_Error if called from a protected operation, and increase
11534         the protected action nesting level.
11535         (Lock_Read_Only_Entries): When pragma Detect_Blocking is active, raise
11536         Program_Error if called from a protected operation, and increase the
11537         protected action nesting level.
11538         (Unlock_Entries): When pragma Detect_Blocking is active decrease the
11539         protected action nesting level.
11540
11541         * s-tposen.adb (Lock_Entry): When pragma Detect_Blocking is active,
11542         raise Program_Error if called from a protected operation, and increase
11543         the protected action nesting level.
11544         (Lock_Read_Only_Entry): When pragma Detect_Blocking is active, raise
11545         Program_Error if called from a protected operation, and increase the
11546         protected action nesting level.
11547         (Protected_Single_Entry_Call): When pragma Detect_Blocking is active,
11548         raise Program_Error if called from a protected operation.
11549         (Timed_Protected_Single_Entry_Call): When pragma Detect_Blocking is
11550         active, raise Program_Error if called from a protected operation.
11551         (Unlock_Entry): When pragma Detect_Blocking is active decrease the
11552         protected action nesting level.
11553
11554         * sem_util.adb (Check_Potentially_Blocking_Operation): Remove the
11555         insertion of the statement raising Program_Error. The run time
11556         contains the required machinery for handling that.
11557
11558         * sem_util.ads: Change comment associated to procedure
11559         Check_Potentially_Blocking_Operation.
11560         This procedure does not insert a call for raising the exception because
11561         that is currently done by the run time.
11562
11563         * raise.h (__gnat_set_globals): Pass the detect_blocking parameter.
11564
11565         * init.c: Add the global variable __gl_detect_blocking that indicates
11566         whether pragma Detect_Blocking is active (1) or not (0). Needed for
11567         making the pragma available at run time.
11568         (__gnat_set_globals): Pass and update the detect_blocking parameter.
11569
11570         * lib-writ.adb (Write_ALI): Set the DB flag in the ali file if
11571         pragma Detect_Blocking is active.
11572
11573         * lib-writ.ads: Document the Detect_Blocking flag (DB) in ali files.
11574
11575         * ali.adb (Scan_ALI): Set the Detect_Blocking value to true if the flag
11576         DB is found in the ali file. Any unit compiled with pragma
11577         Detect_Blocking active forces its effect in the whole partition.
11578
11579         * a-retide.adb (Delay_Until): Raise Program_Error if pragma
11580         Detect_Blocking is active and delay is called from a protected
11581         operation.
11582
11583         * bindgen.adb (Gen_Adainit_Ada): When generating the call to
11584         __gnat_set_globals, pass 1 as Detect_Blocking parameter if pragma
11585         Detect_Blocking is active (0 otherwise).
11586         (Gen_Adainit_C): When generating the call to __gnat_set_globals, pass 1
11587         as Detect_Blocking parameter if pragma Detect_Blocking is active (0
11588         otherwise).
11589
11590 2004-09-09  Thomas Quinot  <quinot@act-europe.fr>
11591
11592         * gnat_rm.texi: Rename GNAT.Perfect_Hash.Generators to
11593         GNAT.Perfect_Hash_Generators, and remove the empty GNAT.Perfect_Hash
11594         package.
11595
11596         * s-parint.ads, s-parint.adb (Get_RAS_Info): New subprogram.
11597         (Register_Receiving_Stub): Add Subp_Info formal parameter.
11598         Update API in placeholder implemetation of s-parint to reflect changes
11599         in distribution runtime library.
11600
11601         * sem_ch3.adb (Expand_Derived_Record): Rename to
11602         Expand_Record_Extension.
11603
11604         * sem_disp.adb (Check_Controlling_Formals): Improve error message for
11605         primitive operations of potentially distributed object types that have
11606         non-controlling anonymous access formals.
11607
11608         * sem_dist.ads, sem_dist.adb (Build_RAS_Primitive_Specification): New
11609         subprogram.
11610         New implementation of expansion for remote access-to-subprogram types,
11611         based on the RACW infrastructure.
11612         This version of sem_dist is compatible with PolyORB/DSA as well as
11613         GLADE.
11614
11615         * sem_prag.adb (Analyze_Pragma, case Pragma_Asynchronous): For a pragma
11616         Asynchrronous that applies to a remote access-to-subprogram type, mark
11617         the underlying RACW type as asynchronous.
11618
11619         * link.c: FreeBSD uses GNU ld: set __gnat_objlist_file_supported and
11620          __gnat_using_gnu_linker to 1.
11621
11622         * Makefile.rtl, impunit.adb, g-perhas.ads, g-pehage.ads,
11623         g-pehage.adb: Rename GNAT.Perfect_Hash.Generators to
11624         GNAT.Perfect_Hash_Generators, and remove the empty
11625         GNAT.Perfect_Hash package.
11626
11627         * atree.adb: Minor reformatting
11628
11629         * exp_ch3.adb (Expand_Derived_Record): Rename to
11630         Expand_Record_Extension.
11631         (Build_Record_Init_Proc.Build_Assignment): The default expression in
11632         a component declaration must remain attached at that point in the
11633         tree so New_Copy_Tree copies it if the enclosing record type is derived.
11634         It is therefore necessary to take a copy of the expression when building
11635         the corresponding assignment statement in the init proc.
11636         As a side effect, in the case of a derived record type, we now see the
11637         original expression, without any rewriting that could have occurred
11638         during expansion of the ancestor type's init proc, and we do not need
11639         to go back to Original_Node.
11640
11641         * exp_ch3.ads (Expand_Derived_Record): Rename to
11642         Expand_Record_Extension.
11643
11644         * exp_dist.ads, exp_dist.adb (Underlying_RACW_Type): New subprogram.
11645         Returns the RACW type used to implement a remote access-to-subprogram
11646         type.
11647         (Add_RAS_Proxy_And_Analyze, Build_Remote_Subprogram_Proxy_Type):
11648         New subprograms. Used to create a proxy tagged object for a remote
11649         subprogram. The proxy object is used as the designated object
11650         for RAS values on the same partition (unless All_Calls_Remote applies).
11651         (Build_Get_Unique_RP_Call): New subprogram. Build a call to
11652         System.Partition_Interface.Get_Unique_Remote_Pointer.
11653         (Add_RAS_Access_TSS, Add_RAS_Dereference_TSS):
11654         Renamed from Add_RAS_*_Attribute.
11655         (Add_Receiving_Stubs_To_Declarations): Generate a table of local
11656         subprograms.
11657         New implementation of expansion for remote access-to-subprogram types,
11658         based on the RACW infrastructure.
11659
11660         * exp_dist.ads (Copy_Specification): Update comment to note that this
11661         function can copy the specification from either a subprogram
11662         specification or an access-to-subprogram type definition.
11663
11664 2004-09-09  Ed Schonberg  <schonberg@gnat.com>
11665
11666         * sem_type.adb (Disambiguate): Handle properly an accidental ambiguity
11667         in an instance, between an explicit subprogram an one inherited from a
11668         type derived from an actual.
11669
11670         * exp_ch6.adb (Expand_N_Subprogram_Body): If polling is enabled, do not
11671         add a polling call if the subprogram is to be inlined by the back-end,
11672         to avoid repeated calls with multiple inlinings.
11673
11674         * checks.adb (Apply_Alignment_Check): If the expression in the address
11675         clause is a call whose name is not a static entity (e.g. a dispatching
11676         call), treat as dynamic.
11677
11678 2004-09-09  Robert Dewar  <dewar@gnat.com>
11679
11680         * g-trasym.ads: Minor reformatting
11681
11682         * exp_ch3.adb (Component_Needs_Simple_Initialization): Don't except
11683         packed arrays, since unused bits are expected to be zero for a
11684         comparison.
11685
11686 2004-09-09  Eric Botcazou  <ebotcazou@act-europe.fr>
11687
11688         * exp_pakd.ads: Fix an inacurracy and a couple of typos in the head
11689         comment.
11690
11691 2004-09-09  Pascal Obry  <obry@gnat.com>
11692
11693         * mdll.ads, mdll.adb (Build_Dynamic_Library): New parameter Map_File to
11694         enable map file generation. Add the right option to generate the map
11695         file if Map_File is set to True.
11696
11697         * gnatdll.adb (Gen_Map_File): New variable.
11698         (Syntax): Add info about new -m (Map_File) option.
11699         (Parse_Command_Line): Add support for -m option.
11700         (gnatdll): Pass Gen_Map_File to Build_Dynamic_Library calls.
11701         Minor reformatting.
11702
11703 2004-09-09  Laurent Pautet  <pautet@act-europe.fr>
11704
11705         * gnatls.adb: Add a very verbose mode -V. Such mode is required by the
11706         new gnatdist implementation.
11707         Define a subpackage isolating the output routines specific to this
11708         verbose mode.
11709
11710 2004-09-09  Joel Brobecker  <brobecker@gnat.com>
11711
11712         * Makefile.rtl: (GNATRTL_NONTASKING_OBJS): Add g-dynhta.
11713
11714         * gnat_ugn.texi (Main Subprograms): Fix typo. Deduced, not deducted.
11715
11716 2004-09-09  Cyrille Comar  <comar@act-europe.fr>
11717
11718         * opt.adb (Set_Opt_Config_Switches): Use Ada_Version_Runtime to compile
11719         internal unit.
11720
11721         * opt.ads: Add Ada_Version_Runtime constant used to decide which
11722         version of the language is used to compile the run time.
11723
11724 2004-09-09  Arnaud Charlet  <charlet@act-europe.fr>
11725
11726         * sem_util.adb (Requires_Transient_Scope): Re-enable handling
11727         of variable length temporaries for function return now that the
11728         back-end and gigi support it.
11729
11730 2004-09-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11731
11732         * misc.c (gnat_print_type): Use TYPE_RM_SIZE_NUM.
11733
11734         * trans.c (struct stmt_group): Delete field GLOBAL.
11735         (gnat_init_stmt_group): Do not initialize it.
11736         (call_to_gnu): Use save_expr, not protect_multiple_eval.
11737         (Exception_Handler_to_gnu_sjlj): Call build_int_cst, not build_int_2
11738         (gnat_to_gnu, case N_Character_Literal, N_String_Literal): Likewise.
11739         (gnat_to_gnu, case N_Compilation_Unit): Do not set GLOBAL in stmt group.
11740         (start_stmt_group): Likewise.
11741         (add_stmt, add_decl_expr): Rework handling of global DECL_EXPRs.
11742
11743         * utils2.c (ggc.h): Include.
11744         (build_call_raise): Call build_int_cst, not build_int_2.
11745
11746         * utils.c (gnat_init_decl_processing): Fix arg to
11747         build_common_tree_nodes.
11748         (create_subprog_type): Do not use SET_TYPE_CI_CO_LIST.
11749         (gnat_define_builtin): Set built_in_decls.
11750         (init_gigi_decls): Call build_int_cst, not build_int_2.
11751
11752         * ada-tree.h (struct lang_decl, struct lang_type): Field is type tree.
11753         (GET_TYPE_LANG_SPECIFIC, SET_TYPE_LANG_SPECIFIC): New macros.
11754         (GET_DECL_LANG_SPECIFIC, SET_DECL_LANG_SPECIFIC): Likewise.
11755         (TYPE_CI_CO_LIST, SET_TYPE_CI_CO_LIST, TYPE_MODULE,
11756         SET_TYPE_MODULE): Use them.
11757         (TYPE_INDEX_TYPE, SET_TYPE_INDEX_TYPE, TYPE_DIGITS_VALUE): Likewise.
11758         (SET_TYPE_DIGITS_VALUE, TYPE_UNCONSTRAINED_ARRAY): Likewise.
11759         (SET_TYPE_UNCONSTRAINED_ARRAY, TYPE_ADA_SIZE,
11760         SET_TYPE_ADA_SIZE): Likewise.
11761         (TYPE_ACTUAL_BOUNDS, SET_TYPE_ACTUAL_BOUNDS): Likewise.
11762         (DECL_CONST_CORRESPONDING_VAR,
11763         SET_DECL_CONST_CORRESPONDING_VAR): Likewise.
11764         (DECL_ORIGINAL_FIELD, SET_DECL_ORIGINAL_FIELD): Likewise.
11765         (TYPE_RM_SIZE_INT, TYPE_RM_SIZE_ENUM, SET_TYPE_RM_SIZE_ENUM): Deleted.
11766         (TYPE_RM_SIZE_NUM): New macro.
11767         (TYPE_RM_SIZE): Modified to use above.
11768
11769         * cuintp.c: (build_cst_from_int): New function.
11770         (UI_To_gnu): Use it.
11771
11772         * decl.c (gnat_to_gnu_entity): Use TYPE_RM_SIZE_NUM.
11773         (make_type_from_size): Avoid changing TYPE_UNSIGNED of a type.
11774         (gnat_substitute_in_type, case ARRAY_TYPE): If old had a
11775         MIN_EXPR for the size, copy it into new.
11776
11777 2004-09-01  Robert Dewar  <dewar@gnat.com>
11778
11779         * exp_ch6.adb (Expand_Call): Properly handle validity checks for
11780         packed indexed component where array is an IN OUT formal. This
11781         generated garbage code previously.
11782
11783         * gnat_ugn.texi: Document -fverbose-asm
11784
11785         * gnat-style.texi: Minor updates (note that boolean constants and
11786         variables are joined with AND/OR rather than short circuit forms).
11787
11788 2004-09-01  Ed Schonberg  <schonberg@gnat.com>
11789
11790         * exp_util.adb (Safe_Unchecked_Type_Conversion): Conversion is safe if
11791         it is an upward conversion of an untagged type with no representation
11792         change.
11793
11794 2004-09-01  Thomas Quinot  <quinot@act-europe.fr>
11795
11796         * rtsfind.ads: Move RCI_Subp_Info and RCI_Subp_Info_Array to
11797         System.Partition_Interface.
11798
11799         * checks.adb (Apply_Access_Checks): Do not generate checks when
11800         expander is not active (but check for unset reference to prefix of
11801         dereference).
11802
11803         * sem_prag.adb (Analyze_Pragma, case Pragma_Debug): Uniformly rewrite
11804         pragma Debug as an if statement with a constant condition, for
11805         consistent treatment of entity references contained within the
11806         enclosed procedure call.
11807
11808 2004-09-01  Vincent Celier  <celier@gnat.com>
11809
11810         * bindgen.adb: (Set_EA_Last): New procedure
11811         (Gen_Exception_Table_Ada, Gen_Exception_Table_C): Use new procedure
11812         Set_EA_Last.
11813         (Gen_Adafinal_Ada): If no finalization, adafinal does nothing
11814         (Gen_Output_File_Ada): Always call Gen_Adafinal_Ada, so that SAL can be
11815         linked without errors.
11816         (Gen_Exception_Table_Ada): Correct bugs when generating code for arrays
11817         ST and EA.
11818         (Gen_Exception_Table_C): Correct same bugs
11819
11820         * vms_data.ads: Add new qualifier /VERBOSE_ASM to GCC_Switches
11821
11822         * g-os_lib.adb (Normalize_Pathname.Get_Directory): When Dir is empty,
11823         on Windows, make sure that the drive letter is in upper case.
11824
11825         * g-os_lib.ads (Normalize_Pathname): Add a comment to indicate that on
11826         Windows, when the drive letter is added and Case_Sensitive is True, the
11827         drive letter is forced to upper case.
11828
11829         * mlib-tgt-irix.adb (Build_Dynamic_Library): Transfer all -lxxx options
11830         to Options_2 for the call to MLib.Utl.Gcc.
11831
11832         * bld.adb (Put_Include_Project): Use '/', not '\' on Windows as
11833         directory separator when defining BASE_DIR.
11834
11835 2004-09-01  Pascal Obry  <obry@gnat.com>
11836
11837         * gprcmd.adb (Extend): Do not output trailing directory separator. This
11838         is not needed and it confuses Windows GNU/make which does not report
11839         directory terminated by a slash as a directory.
11840         (gprcmd): Idem for "pwd" internal command.
11841
11842         * Makefile.generic: Use __GPRCOLON__ instead of pipe character in
11843         target names rewrite to fix regressions with recent version of
11844         GNU/make. Starting with GNU/make 3.80 the pipe character was not
11845         handled properly anymore.
11846
11847 2004-09-01  Andreas Schwab  <schwab@suse.de>
11848
11849         * Make-lang.in (EXTRA_GNATBIND_OBJS): Revert last change.
11850         * raise.c [!IN_RTS]: Undef abort.
11851
11852 2004-08-27  Nathan Sidwell  <nathan@codesourcery.com>
11853
11854         * utils2.c (build_allocator): Use ssize_int.
11855
11856         * utils.c (gnat_init_decl_processing): Ada has a signed sizetype.
11857
11858 2004-08-27  Andreas Schwab  <schwab@suse.de>
11859
11860         * Make-lang.in (EXTRA_GNATBIND_OBJS): Add errors.o.
11861
11862 2004-08-25  Nathan Sidwell  <nathan@codesourcery.com>
11863             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11864
11865         * ada-tree.h (TYPE_RM_SIZE_INT): Use TYPE_LANG_SLOT_1.
11866
11867 2004-08-25  Nathan Sidwell  <nathan@codesourcery.com>
11868
11869         * cuintp.c (UI_To_gnu): Adjust build_int_cst calls.
11870         * trans.c (Exception_Handler_to_gnu_sjlj, gnat_to_gnu): Likewise.
11871         * utils.c (init_gigi_decls): Likewise.
11872         * utils2.c (build_call_raise, build_allocator): Likewise.
11873
11874 2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
11875
11876         * utils.c (gnat_init_decl_processing): Adjust
11877         build_common_tree_nodes call.
11878
11879 2004-08-20  Nathan Sidwell  <nathan@codesourcery.com>
11880
11881         * utils2.c (build_allocator): Use build_int_cst for negative
11882         size types.
11883
11884 2004-08-18  Richard Henderson  <rth@redhat.com>
11885
11886         * misc.c (LANG_HOOKS_HONOR_READONLY): Remove.
11887
11888 2004-08-16  Nathan Sidwell  <nathan@codesourcery.com>
11889
11890         * cuintp.c (UI_To_gnu): Be more conservative with build_int_cst
11891         call.s
11892         * trans.c (Exception_Handler_to_gnu_sjlj): Likewise.
11893         (gnat_to_gnu): Likewise.
11894
11895 2004-08-16  Pascal Obry  <obry@gnat.com>
11896
11897         * adaint.c (__gnat_prj_add_obj_files): Set to 0 only on Win32 for GCC
11898         backend prior to GCC 3.4. With GCC 3.4 we are using the GCC's shared
11899         option and not mdll anymore. Update comment.
11900
11901 2004-08-16  Pascal Obry  <obry@gnat.com>
11902
11903         * bld.adb (Put_Include_Project): Properly handle directory separators
11904         on Windows.
11905
11906 2004-08-16  Ed Schonberg  <schonberg@gnat.com>
11907
11908         * sem_ch4.adb (Try_Object_Operation): Restructure code. Optimize by
11909         decreasing the number of allocated junk nodes while searching for the
11910         appropriate subprogram.
11911
11912 2004-08-15  Nathan Sidwell  <nathan@codesourcery.com>
11913
11914         * cuintp.c (UI_To_gnu): Use build_int_cst..
11915         * trans.c (Exception_Handler_to_gnu_sjlj, gnat_to_gnu): Likewise.
11916         * utils.c (init_gigi_decls): Likewise.
11917         * utils2.c (build_call_raise): Likewise.
11918
11919 2004-08-13  Olivier Hainque  <hainque@act-europe.fr>
11920
11921         * decl.c (gnat_to_gnu_entity) <E_Variable>: When building an allocator
11922         for a global aliased object with a variable size and an unconstrained
11923         nominal subtype, pretend there is no initializer if the one we have is
11924         incomplete, and avoid referencing an inexistant component in there. The
11925         part we have will be rebuilt anyway and the reference may confuse
11926         further operations.
11927
11928 2004-08-13  Thomas Quinot  <quinot@act-europe.fr>
11929
11930         * einfo.ads: Minor reformatting
11931
11932         * lib-writ.adb (Output_Main_Program_Line): Do not set parameter
11933         restrictions in the ALI if we only want to warn about violations.
11934
11935 2004-08-13  Vincent Celier  <celier@gnat.com>
11936
11937         * ali.adb (Scan_ALI): Initialize component Body_Needed_For_SAL to False
11938         when creating a new Unit_Record in table Units.
11939
11940         * gnatls.adb (Output_Unit): In verbose mode, output the restrictions
11941         that are violated, if any.
11942
11943         * prj-nmsc.adb (Ada_Check.Get_Path_Names_And_Record_Sources): Do not
11944         add directory separator if path already ends with a directory separator.
11945
11946 2004-08-13  Ed Schonberg  <schonberg@gnat.com>
11947
11948         * rtsfind.adb (Entity_Not_Defined): If the error ocurrs in a predefined
11949         unit, this is an attempt to inline a construct that is not available in
11950         the current restricted mode, so abort rather than trying to continue.
11951
11952         * sem_ch3.adb (Build_Underlying_Full_View): If the new type has
11953         discriminants that rename those of the parent, recover names of
11954         original discriminants for the constraint on the full view of the
11955         parent.
11956         (Complete_Private_Subtype): Do not create a subtype declaration if the
11957         subtype is an itype.
11958
11959         * gnat_rm.texi: Added section on implementation of discriminated
11960         records with default values for discriminants.
11961
11962 2004-08-13  Ed Schonberg  <schonberg@gnat.com>
11963
11964         PR ada/15601
11965         * sem_res.adb (Make_Call_Into_Operator): Handle properly the case where
11966         the second operand is overloaded.
11967
11968 2004-08-10  Richard Henderson  <rth@redhat.com>
11969
11970         * utils.c (gnat_install_builtins): Remove __builtin_stack_alloc,
11971         add __builtin_alloca.
11972
11973 2004-08-10  Richard Henderson  <rth@redhat.com>
11974
11975         * config-lang.in (boot_language): Yes.
11976
11977 2004-08-09  Thomas Quinot  <quinot@act-europe.fr>
11978
11979         * g-socket.adb (Abort_Selector): Initialize Buf to prevent valgrind
11980         from complaining on potential uninitialized reference.
11981         Change calls to GNAT.Sockets.Thin.Is_Socket_In_Set to account for
11982         new specification and test explicitly for non-zero return value.
11983
11984         * g-socthi.ads (Is_Socket_In_Set): Declare imported function as
11985         returning C.int, to avoid using a derived boolean type.
11986
11987         * exp_ch5.adb (Make_Tag_Ctrl_Assignments): Use
11988         Duplicate_Subexpr_No_Checks in preference to direct use of
11989         Remove_Side_Effects and New_Copy_Tree.
11990         Clear Comes_From_Source on prefix of 'Size attribute reference.
11991
11992         * g-socthi.adb, g-socthi-vms.adb, g-socthi-mingw.adb,
11993         g-socthi-vxworks.adb: Change calls to
11994         GNAT.Sockets.Thin.Is_Socket_In_Set to account for new specification
11995         and test explicitly for non-zero return value.
11996
11997         * g-socthi-vms.ads, g-socthi-mingw.ads, g-socthi-vxworks.ads:
11998         (Is_Socket_In_Set): Declare imported function as returning C.int, to
11999         avoid using a derived boolean type.
12000
12001 2004-08-09  Albert Lee  <lee@gnat.com>
12002
12003         * system-irix-n32.ads: Refine tasking priority constants for IRIX.
12004
12005 2004-08-09  Pascal Obry  <obry@gnat.com>
12006
12007         * gnat_ugn.texi: Document new way to build DLLs on Windows using
12008         GCC's -shared option.
12009
12010         * mlib-tgt-mingw.adb (Build_Dynamic_Library): Pass GCC's options into
12011         Options_2 parameter (options put after object files).
12012
12013 2004-08-09  Olivier Hainque  <hainque@act-europe.fr>
12014
12015         * decl.c (gnat_to_gnu_entity) <E_Array_Subtype>: Adjust condition to
12016         ignore overflows on low and high bounds of an index to also account for
12017         differences in signedness between sizetype and gnu_index_subtype.
12018         These are as legitimate as the ones caused by a lower TYPE_PRECISION
12019         on sizetype.
12020
12021 2004-08-09  Robert Dewar  <dewar@gnat.com>
12022
12023         * s-solita.ads, s-solita.adb: Minor reformatting
12024
12025         * gnat_rm.texi: Add documentation for pragma Profile (Restricted)
12026         Move pragma Restricted_Run_Time, No_Run_Time, Ravenscar to new
12027         obsolescent section
12028         Add note that No_Implicit_Conditionals does not suppress
12029         run time constraint checks.
12030
12031         * vms_conv.ads: Minor reformatting
12032
12033         * s-secsta.adb: Use SS_Ptr instead of Mark_Id as stack pointer (cleanup
12034         and necessary for following change).
12035         (Mark): Return new format Mark_Id containing sec stack address
12036         (Release): Use sec stack address from Mark_Id avoiding Self call
12037
12038         * s-secsta.ads: Define SS_Ptr to be used instead of Mark_Id as stack
12039         pointer (cleanup and necessary for following change).
12040         Define Mark_Id as record containing address of secondary stack, that way
12041         Release does not need to find the stack again, decreasing the number of
12042         calls to Self and improving efficiency.
12043
12044         * sem_util.ads: Add a ??? comment for Is_Local_Variable_Reference
12045
12046         * sem_ch5.adb (Analyze_Case_Statement): Add circuitry to track value of
12047         case variable into the individual case branches when possible.
12048
12049         * sem_ch11.adb: Minor reformatting
12050
12051         * prj.ads: Correct spelling of suffixs
12052
12053         * prj-nmsc.adb: Minor reformatting
12054         Correct spelling suffixs throughout (also in identifiers)
12055
12056         * freeze.adb: Minor spelling correction
12057
12058         * exp_ch2.adb: Cleanups to handling of Current_Value
12059         (no functional effect).
12060
12061         * bld.adb: Correct spelling of suffixs
12062
12063         * einfo.adb (Enclosing_Dynamic_Scope): Defend against junk argument
12064
12065 2004-08-09  Ed Schonberg  <schonberg@gnat.com>
12066
12067         PR ada/15408
12068
12069         * sem_ch7.adb (Install_Private_Declarations): In the body of the
12070         package or of a child, private entities are both immediately_visible
12071         and not hidden.
12072
12073 2004-08-09  Ed Schonberg  <schonberg@gnat.com>
12074
12075         * sem_eval.adb (Eval_Integer_Literal): If the context is Any_Integer,
12076         there are no range checks on the value of the literal.
12077
12078         * exp_ch7.adb (Insert_Actions_In_Scope_Around): If the node being
12079         wrapped is the triggering alternative of an asynchronous select, action
12080         statements mustbe inserted before the select itself.
12081
12082         * sem_attr.adb (Analyze_Attribute, case 'Size): Handle properly the
12083         case where the prefix is a protected function call.
12084         (Resolve_Attribute, case 'Access): The attribute reference on a
12085         subprogram is legal in a generic body if the subprogram is declared
12086         elsewhere.
12087
12088 2004-08-09  Vincent Celier  <celier@gnat.com>
12089
12090         * makegpr.adb (Build_Library): Link with g++ if C++ is one of the
12091         languages, otherwise building the library may fail with unresolved
12092         symbols.
12093         (Compile_Sources): Do not build libraries if -c switch is used
12094
12095         * gnatlink.adb (Process_Args): New switches -M and -Mmap
12096         (Write_Usage): If map file creation is supported, output new switches
12097         -M and -Mmap.
12098         (Gnatlink): When -M is specified, add the necessary switch(es) to the
12099         gcc call, when supported.
12100
12101         * Makefile.in: Added indepsw.o to the object list for gnatlink
12102         Specified the AIX, GNU/Linux and Windows versions of indepsw.adb
12103
12104         * indepsw-aix.adb, indepsw-linux.adb, indepsw-mingw.adb,
12105         indepsw.adb, indepsw.ads: New files.
12106
12107 2004-08-09  Bernard Banner  <banner@gnat.com>
12108
12109         * system-vxworks-x86.ads, s-vxwork-x86.ads: New files.
12110
12111         * Makefile.in: add section for vxworks x86
12112
12113 2004-08-09  Hristian Kirtchev  <kirtchev@gnat.com>
12114
12115         * exp_ch3.adb (Build_Init_Statements): Add extra condition to deal with
12116         per-object constrained components where the discriminant is of an
12117         Access type.
12118         (Build_Record_Init_Proc): Add condition to prevent the inheritance of
12119         the parent initialization procedure for derived Unchecked_Unions.
12120         Instead, derived Unchecked_Unions build their own initialization
12121         procedure.
12122         (Build_Variant_Record_Equality): Implement Unchecked_Union equality.
12123         Check the body of the subprogram for details.
12124         (Freeze_Record_Type): Prevent the inheritance of discriminant checking
12125         functions for derived Unchecked_Union types by introducing a condition.
12126         Allow the creation of TSS equality functions for Unchecked_Unions.
12127         (Make_Eq_Case): Rename formal parameter Node to E in function signature.
12128         Add formal parameter Discr to function signature. Discr is used to
12129         control the generated case statement for Unchecked_Union types.
12130         (Make_Eq_If): Rename formal parameter Node to E in function signature.
12131
12132         * exp_ch4.adb (Build_Equality_Call): Implement equality calls for
12133         Unchecked_Unions.
12134         Check the body of the subprogram for details.
12135         (Expand_Composite_Equality): Augment composite type equality to include
12136         correct handling of Unchecked_Union components.
12137         (Expand_N_In): Add condition to detect illegal membership tests when the
12138         subtype mark is a constrained Unchecked_Union and the expression lacks
12139         inferable discriminants, and build a Raise_Program_Error node.
12140         (Expand_N_Op_Eq): Add function Has_Unconstrained_UU_Component. Used
12141         to detect types that contain components of unconstrained Unchecked_Union
12142         subtype. Add condition to detect equality between types that have an
12143         unconstrained Unchecked_Union component, and build a Raise_Program_Error
12144         node. Add condition to detect equality between Unchecked_Union types
12145         that lack inferable discriminants, and build a Raise_Program_Error node.
12146         Otherwise build a TSS equality function call.
12147         (Expand_N_Type_Conversion): Add condition to detect illegal conversions
12148         from a derived Unchecked_Union to an unconstrained non-Unchecked_Union
12149         with the operand lacking inferable discriminants, and build a Raise_
12150         Program_Error node.
12151         (Expand_Record_Equality): Remove guard that prevents Unchecked_Union
12152         composite equality.
12153         (Has_Inferable_Discriminants): Implement new predicate for objects and
12154         expressions of Unchecked_Union type. Check the body of subprogram for
12155         details.
12156         (Has_Unconstrained_UU_Components): Add function
12157         Component_Is_Unconstrained_UU. It is used to detect whether a single
12158         component is of an unconstrained Unchecked_Union subtype. Add function
12159         Variant_Is_Unconstrained_UU. It is used to detect whether a single
12160         component inside a variant is of an unconstrained Unchecked_Union type.
12161
12162         * exp_ch5.adb (Expand_Assign_Record): Add condition to copy the
12163         inferred discriminant values. Add condition to generate a case
12164         statement with an inferred discriminant as the switch.
12165         (Make_Component_List_Assign): Introduce a Boolean flag that determines
12166         the behaviour of the subprogram in the presence of an Unchecked_Union.
12167         Add condition to trigger the usage of the inferred discriminant value
12168         as the generated case statement switch.
12169         (Make_Field_Assign): Introduce a Boolean flag that determines the
12170         behaviour of the subprogram in the presence of an Unchecked_Union. Add
12171         condition to trigger the usage of the inferred discriminant value as
12172         the right-hand side of the generated assignment.
12173
12174         * exp_ch6.adb (Expand_Call): Add condition to skip extra actual
12175         parameter generation when dealing with Unchecked_Unions.
12176
12177         * checks.adb (Apply_Discriminant_Check): Do not apply discriminant
12178         checks for Unchecked_Unions.
12179
12180         * einfo.ads: Update comment on usage of flag Has_Per_Object_Constraint
12181
12182         * exp_attr.adb (Expand_N_Attribute_Reference): Produce
12183         Raise_Program_Error nodes for the execution of Read and Write
12184         attributes of Unchecked_Union types and the execution of Input and
12185         Output attributes of Unchecked_Union types that lack default
12186         discriminant values.
12187
12188         * sem_prag.adb (Analyze_Pragma): Remodel the analysis of pragma
12189         Unchecked_Union. Add procedure Check_Component. It is used to inspect
12190         per-object constrained components of Unchecked_Unions for being
12191         Unchecked_Unions themselves. Add procedure Check_Variant. It is used to
12192         check individual components withing a variant.
12193
12194         * sem_res.adb (Resolve_Comparison_Op): Remove guard that prevents
12195         comparison of Unchecked_Unions.
12196         (Resolve_Equality_OP): Remove guard that prevents equality between
12197         Unchecked_Unions.
12198
12199         * sem_util.adb (Build_Component_Subtype): Add guard to prevent creation
12200         of component subtypes for Unchecked_Union components.
12201         (Get_Actual_Subtype): Add condition that returs the Unchecked_Union type
12202         since it is the actual subtype.
12203
12204         * sem_ch12.adb (Instantiate_Type): Add condition to detect the correct
12205         pass of Unchecked_Union subtypes as generic actuals to formal types
12206         that lack known_discriminant_parts or that are derived Unchecked_Union
12207         types, and do nothing. In any other case, produce an error message.
12208
12209         * sem_ch3.adb (Analyze_Component_Declaration): Add function
12210         Contains_POC. It determines whether a constraint uses the discriminant
12211         of an enclosing record type.
12212         Add condition to detect per-object constrained component and set the
12213         appropriate flag.
12214         (Derived_Type_Declaration): Remove guard that prevents derivation from
12215         Unchecked_Union types.
12216         (Process_Subtype): Remove quard that prevents the creation of Unchecked_
12217         Union subtypes.
12218
12219         * sem_ch4.adb (Analyze_Selected_Component): Correct the detection of
12220         references to Unchecked_Union discriminants.
12221
12222         * sem_ch6.adb (Create_Extra_Formals): Add condition to skip extra
12223         formal generation when dealing with Unchecked_Unions.
12224         (Set_Actual_Subtypes): Add condition to prevent generation of actual
12225         subtypes for Unchecked_Unions.
12226
12227         * sem_ch7.adb (Analyze_Package_Specification): Add procedure
12228         Inspect_Unchecked_Union_Completion. It is used to detect incorrect
12229         completions of discriminated partial views by Unchecked_Unions and
12230         produce an error message.
12231
12232 2004-08-09  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12233
12234         * trans.c (struct stmt_group): New field, GLOBAL.
12235         (global_stmt_group, gnu_elab_proc_decl, build_unit_elab): Deleted.
12236         (struct elab_info): New struct.
12237         (elab_info_list, gnu_elab_proc_stack): New variables.
12238         (Compilation_Unit_to_gnu): New procedure.
12239         (gigi): Call it and also handle elaboration procs we've saved.
12240         (gnat_init_stmt_group): Don't set global_stmt_group; instead initialize
12241         global field from parent.
12242         (gnat_to_gnu): Get decl from gnu_elab_proc_stack.
12243         (gnat_to_gnu, case N_Compilation_Unit): Call Compilation_Unit_to_gnu.
12244         (start_stmt_group): Initialize global field from parent.
12245         (add_decl_expr): Set to global for current statement group.
12246         (gnat_gimplify_expr, case NULL_EXPR): Add operand 0 to pre list, not
12247         post.
12248
12249         * utils.c (global_bindings_p): True when no current_function_decl; no
12250         longer check current_binding_level.
12251
12252 2004-08-09  Ben Brosgol  <brosgol@gnat.com>
12253
12254         * xgnatugn.adb: Added logic to deal with @ifset/@ifclear for edition
12255         choice.
12256
12257         * gnat_rm.texi, gnat_ugn.texi: Added edition conditionalization logic.
12258
12259 2004-08-06  Andreas Schwab  <schwab@suse.de>
12260
12261         * utils.c (gnat_define_builtin): Remove second parameter of
12262         make_decl_rtl.
12263         (begin_subprog_body): Likewise.
12264
12265 2004-07-26  Arnaud Charlet  <charlet@act-europe.fr>
12266
12267         * sem_util.adb (Requires_Transient_Scope): Temporarily disable
12268         optimization, not supported by the tree-ssa back-end.
12269
12270 2004-07-26  Olivier Hainque  <hainque@act-europe.fr>
12271
12272         * s-mastop-irix.adb: Update comments.
12273
12274         * a-except.adb (Exception_Information): Raise Constraint_Error if
12275         exception Id is Null_Id.
12276         This is required behavior, which is more reliably and clearly checked
12277         at the top level interface level.
12278
12279 2004-07-26  Javier Miranda  <miranda@gnat.com>
12280
12281         * exp_aggr.adb (Build_Array_Aggr_Code): Do not build the initialization
12282         call if a component has no default_expression and the box is used.
12283
12284         * sem_aggr.adb (Resolve_Array_Aggregate): If a component has no
12285         default_expression and you use box, it behaves as if you had declared a
12286         stand-alone object.
12287         (Resolve_Record_Aggregate): If a component has no default_expression and
12288         you use box, it behaves as if you had declared a stand-alone object.
12289
12290         * sem_ch10.adb (Install_Siblings): Do not make visible the private
12291         entities of private-with siblings.
12292
12293 2004-07-26  Ed Schonberg  <schonberg@gnat.com>
12294
12295         * sem_ch3.adb (Build_Underlying_Full_View): If this is the full view
12296         for a component of an itype, set the parent pointer for analysis,
12297         there is no list in which to insert it.
12298
12299         * sem_res.adb (Resolve): Call Rewrite_Renamed_Operator only for
12300         bona-fide renamings, not for inherited operations.
12301
12302         * exp_ch4.adb (Expand_Allocator_Expression): If the allocator is an
12303         actual for a formal that is an access parameter, create local
12304         finalization list even if the expression is not an aggregate.
12305
12306 2004-07-26  Ed Schonberg  <schonberg@gnat.com>
12307
12308         PR ada/16213
12309         * sem_ch8.adb (Attribute_Renaming, Check_Library_Level_Renaming):
12310         Diagnose properly illegal subprogram renamings that are library units.
12311
12312 2004-07-26  Ed Schonberg  <schonberg@gnat.com>
12313
12314         PR ada/15588
12315         * sem_util.adb (Is_OK_Variable_For_Out_Formal): If actual is a type
12316         conversion rewritten as an unchecked conversion, check that original
12317         expression is a variable.
12318
12319         * exp_ch4.adb (Expand_N_Type_Conversion): If rewriting as an
12320         unchecked_conversion, create new node rather than rewriting in place,
12321         to preserve original construct.
12322
12323 2004-07-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12324
12325         * gigi.h (gnat_expand_body): Deleted.
12326
12327         * Make-lang.in: (trans.o): Depends on function.h.
12328
12329         * misc.c: (gnat_expand_body): Moved to here.
12330
12331         * trans.c (gnat_expand_body_1): Deleted.
12332         (gnat_expand_body): Moved from here.
12333         (gnat_to_gnu): N_Implicit_Label_Declaration forces being in elab proc.
12334         (add_stmt): Check for marked visited with global_bindings_p.
12335         (gnat_gimplify_expr, case COMPONENT_REF): New case.
12336         (gnat_gimplify_expr, case NULL_EXPR): Set TREE_NO_WARNING for temp.
12337
12338         * utils2.c (build_binary_op, case MODIFY_EXPR): Put LHS in a
12339         VIEW_CONVERT_EXPR if not operation type.
12340
12341         * utils.c (update_pointer_to): Set DECL_ORIGINAL_FIELD for
12342         fat pointer.
12343
12344         * decl.c, cuintp.c, gigi.h, misc.c, trans.c, utils.c, utils2.c: Minor
12345         changes: reformatting of negation operators, removing unneeded
12346         inequality comparison with zero, converting equality comparisons with
12347         zero to negations, changing int/0/1 to bool/false/true, replace calls
12348         to gigi_abort with abort, and various other similar changes.
12349
12350 2004-07-26  Vincent Celier  <celier@gnat.com>
12351
12352         * gnatcmd.adb (GNATCmd): Add processing for new built-in command
12353         "setup".
12354
12355         * make.adb (Gnatmake): Fail when a library is not present and there is
12356         no object directory.
12357
12358         * mlib-prj.adb (Check_Library): No need to check if the library needs
12359         to be rebuilt if there is no object directory, hence no object files
12360         to build the library.
12361
12362         * opt.ads (Setup_Projects): New Boolean flag.
12363
12364         * prj-nmsc.adb (Locate_Directory): New parameter Project, Kind and
12365         Location.
12366         Create directory when Kind /= "" and in "gnat setup". Report error if
12367         directory cannot be created.
12368         (Ada_Check): Create library interface copy dir if it does not exist
12369         and we are in "gnat setup".
12370         (Find_Sources): No error if in "gnat setup" and no Ada sources were
12371         found.
12372         (Language_Independent_Check): Create object directory, exec directory
12373         and/or library directory if they do not exist and we are in
12374         "gnat setup".
12375
12376         * vms_conv.ads: (Command_Type): New command Setup.
12377
12378         * vms_conv.adb (Initialize): Add Setup component of Cammand_List.
12379
12380         * vms_data.ads: Add qualifiers/switches for new built-in command
12381         "setup".
12382
12383 2004-07-25  Richard Henderson  <rth@redhat.com>
12384
12385         * utils.c (create_subprog_decl): Set DECL_ARTIFICIAL and
12386         DECL_IGNORED_P on RESULT_DECL.
12387
12388 2004-07-20  Olivier Hainque  <hainque@act-europe.fr>
12389
12390         * a-elchha.adb (Last_Chance_Handler): Remove the bogus buffer dynamic
12391         allocation and potentially overflowing update with
12392         Tailored_Exception_Information. Use the sec-stack free procedural
12393         interface to output Exception_Information instead.
12394
12395         * a-except.adb (To_Stderr): New subprogram for character, and string
12396         version moved from a-exextr to be visible from other separate units.
12397         (Tailored_Exception_Information): Remove the procedural version,
12398         previously used by the default Last_Chance_Handler and not any more.
12399         Adjust various comments.
12400
12401         * a-exexda.adb: Generalize the exception information procedural
12402         interface, to minimize the use of secondary stack and the need for
12403         local buffers when the info is to be output to stderr:
12404         (Address_Image): Removed.
12405         (Append_Info_Character): New subprogram, checking for overflows and
12406         outputing to stderr if buffer to fill is of length 0.
12407         (Append_Info_String): Output to stderr if buffer to fill is of length 0.
12408         (Append_Info_Address, Append_Info_Exception_Name,
12409         Append_Info_Exception_Message, Append_Info_Basic_Exception_Information,
12410         Append_Info_Basic_Exception_Traceback,
12411         Append_Info_Exception_Information): New subprograms.
12412         (Append_Info_Nat, Append_Info_NL): Use Append_Info_Character.
12413         (Basic_Exception_Info_Maxlength, Basic_Exception_Tback_Maxlength,
12414         Exception_Info_Maxlength, Exception_Name_Length,
12415         Exception_Message_Length): New subprograms.
12416         (Exception_Information): Use Append_Info_Exception_Information.
12417         (Tailored_Exception_Information): Use
12418         Append_Info_Basic_Exception_Information.
12419         Export services for the default Last_Chance_Handler.
12420
12421         * a-exextr.adb (To_Stderr): Remove. Now in a-except to be usable by
12422         other separate units.
12423
12424 2004-07-20  Vincent Celier  <celier@gnat.com>
12425
12426         * clean.adb, mlib-utl.adb, osint.adb, makegpr.adb: Minor reformatting.
12427
12428 2004-07-20  Ed Schonberg  <schonberg@gnat.com>
12429
12430         * freeze.adb (Freeze_Entity): If entity is a discriminated record type,
12431         emit itype references for the designated types of component types that
12432         are declared outside of the full record declaration, and that may
12433         denote a partial view of that record type.
12434
12435 2004-07-20  Ed Schonberg  <schonberg@gnat.com>
12436
12437         PR ada/15607
12438         * sem_ch3.adb (Build_Discriminated_Subtype): Do not attach a subtype
12439         which is the designated type in an access component declaration, to the
12440         list of incomplete dependents of the parent type, to avoid elaboration
12441         issues with out-of-scope subtypes.
12442         (Complete_Private_Subtype): Recompute Has_Unknown_Discriminants from the
12443         full view of the parent.
12444
12445 2004-07-20  Ed Schonberg  <schonberg@gnat.com>
12446
12447         PR ada/15610
12448         * sem_ch8.adb (Find_Expanded_Name): If name is overloaded, reject
12449         entities that are hidden, such as references to generic actuals
12450         outside an instance.
12451
12452 2004-07-20  Javier Miranda  <miranda@gnat.com>
12453
12454         * sem_ch4.adb (Try_Object_Operation): New subprogram that gives
12455         support to the new notation.
12456         (Analyze_Selected_Component): Add call to Try_Object_Operation.
12457
12458 2004-07-20  Jose Ruiz  <ruiz@act-europe.fr>
12459
12460         * s-taprob.adb: Adding the elaboration code required for initializing
12461         the tasking soft links that are common to the full and the restricted
12462         run times.
12463
12464         * s-tarest.adb (Init_RTS): Tasking soft links that are shared with the
12465         restricted run time has been moved to the package
12466         System.Soft_Links.Tasking.
12467
12468         * s-tasini.adb (Init_RTS): Tasking soft links that are shared with the
12469         restricted run time has been moved to the package
12470         System.Soft_Links.Tasking.
12471
12472         * Makefile.rtl: Add entry for s-solita.o in run-time library list.
12473
12474         * s-solita.ads, s-solita.adb: New files.
12475
12476 2004-07-20  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12477
12478         * trans.c (Identifier_to_gnu, Pragma_to_gnu, Attribute_to_gnu,
12479         Case_Statement_to_gnu): Split off from gnat_to_gnu.
12480         (Loop_Statement_to_gnu, Subprogram_Body_to_gnu, call_to_gnu,
12481         Handled_Sequence_Of_Statements_to_gnu, Exception_Handler_to_gnu_sjlj,
12482         Exception_Handler_to_gnu_zcx): Likewise.
12483
12484 2004-07-17  Joseph S. Myers  <jsm@polyomino.org.uk>
12485
12486         * gigi.h (builtin_function): Declare.
12487
12488 2004-07-15  Robert Dewar  <dewar@gnat.com>
12489
12490         * makegpr.adb, s-secsta.ads, sem_ch3.adb, sem_case.adb: Minor
12491         reformatting
12492
12493         * gnat_ugn.texi: Add instantiation of direct_io or sequential_io with
12494         access values as an example of a warning.
12495
12496         * gnat_rm.texi: Document new attribute Has_Access_Values
12497
12498         * gnat-style.texi: Document that box comments belong on nested
12499         subprograms
12500
12501         * sem_util.ads (Has_Access_Values): Improved documentation
12502
12503         * s-finimp.ads, s-finimp.adb: Fix spelling error in comment
12504
12505         * sem_prag.adb (Check_Duplicated_Export_Name): New procedure
12506         (Process_Interface_Name): Call to this new procedure
12507         (Set_Extended_Import_Export_External_Name): Call to this new procedure
12508
12509         * s-mastop-x86.adb, 9drpc.adb: Fix spelling error in comment
12510
12511         * a-direio.ads, a-sequio.ads: Warn if Element_Type has access values
12512
12513         * einfo.ads: Minor comment typo fixed
12514
12515 2004-07-15  Jose Ruiz  <ruiz@act-europe.fr>
12516
12517         * snames.adb: Add _atcb.
12518
12519         * snames.ads: Add Name_uATCB.
12520
12521         * s-tarest.adb (Create_Restricted_Task): ATCBs are always preallocated
12522         (in the expanded code) when using the restricted run time.
12523
12524         * s-tarest.ads (Create_Restricted_Task): Created_Task transformed into
12525         a in parameter in order to allow ATCBs to be preallocated (in the
12526         expanded code).
12527
12528         * s-taskin.adb (Initialize_ATCB): T converted into a in parameter in
12529         order to allow ATCBs to be preallocated. In case of error, the ATCB is
12530         deallocated in System.Tasking.Stages.
12531
12532         * s-taskin.ads (Initialize_ATCB): T converted into a in parameter in
12533         order to allow ATCBs to be preallocated.
12534
12535         * s-tassta.adb (Create_Task): In case of error the ATCB is deallocated
12536         here. It was previously done in Initialize_ATCB.
12537
12538         * rtsfind.ads: Make the Ada_Task_Control_Block visible.
12539
12540         * exp_ch9.adb: Preallocate the Ada_Task_Control_Block when using the
12541         Restricted run time.
12542
12543         * exp_ch3.adb: When using the Restricted run time, pass the
12544         preallocated Ada_Task_Control_Block when creating a task.
12545
12546 2004-07-15  Ed Schonberg  <schonberg@gnat.com>
12547
12548         * sem_util.adb (Normalize_Actuals): If there are no actuals on a
12549         function call that is itself an actual in an enclosing call, diagnose
12550         problem here rather than assuming that resolution will catch it.
12551
12552         * sem_ch7.adb (Analyze_Package_Specification): If the specification is
12553         the local copy of a generic unit for a formal package, and the generic
12554         is a child unit, install private part of ancestors before compiling
12555         private part of spec.
12556
12557         * sem_cat.adb (Validate_Categorization_Dependency): Simplify code to
12558         use scope entities rather than tree structures, to handle properly
12559         parent units that are instances rewritten as bodies for inlining
12560         purposes.
12561
12562         * sem_ch10.adb (Get_Parent_Entity, Implicit_With_On_Parent,
12563         Remove_Parents): Handle properly a parent unit that is an
12564         instantiation, when the unit has been rewritten as a body for inlining
12565         purposes.
12566
12567         * par.adb (Goto_List): Global variable to collect goto statements in a
12568         given unit, for use in detecting natural loops.
12569
12570         * par-ch5.adb (P_Goto_Statement): Add goto to global Goto_List, for
12571         use in detecting natural loops.
12572
12573         * par-labl.adb (Find_Natural_Loops): Recognize loops create by
12574         backwards goto's, and rewrite as a infinite loop, to improve locality
12575         of temporaries.
12576
12577         * exp_util.adb (Force_Evaluation): Recognize a left-hand side
12578         subcomponent that includes an indexed reference, to prevent the
12579         generation of copies that would miscompile the desired assignment
12580         statement.
12581         (Build_Task_Image_Decls): Add a numeric suffix to
12582         generated name for string variable, to avoid spurious conflicts with
12583         the name of the type of a single protected object.
12584
12585         * exp_ch4.adb (Expand_Array_Equality): If indices are distinct, use a
12586         loop with an explicit exit statement, to avoid generating an
12587         out-of-range value with 'Succ leading to spurious constraint_errors
12588         when compiling with -gnatVo.
12589
12590 2004-07-15  Thomas Quinot  <quinot@act-europe.fr>
12591
12592         * sem_ch4.adb (Analyze_Slice): Always call Analyze on the prefix: it
12593         might not be analyzed yet, even if its Etype is already set (case of an
12594         unchecked conversion built using Unchecked_Convert_To, for example).
12595         If the prefix has already been analyzed, this will be a nop anyway.
12596
12597         * exp_ch5.adb (Make_Tag_Ctrl_Assignment): For an assignment of a
12598         controller type, or an assignment of a record type with controlled
12599         components, copy only user data, and leave the finalization chain
12600         pointers untouched.
12601
12602 2004-07-15  Vincent Celier  <celier@gnat.com>
12603
12604         * make.adb (Collect_Arguments): Improve error message when attempting
12605         to compile a source not part of any project, when -x is not used.
12606
12607         * prj.ads: (Defined_Variable_Kind): New subtype
12608
12609         * prj-attr.adb (Register_New_Package): Two new procedures to register
12610         a package with or without its attributes.
12611         (Register_New_Attribute): Mew procedure to register a new attribute in a
12612         package.
12613         New attribute oriented subprograms: Attribute_Node_Id_Of,
12614         Attribute_Kind_Of, Set_Attribute_Kind_Of, Attribute_Name_Of,
12615         Variable_Kind_Of, Set_Variable_Kind_Of, Optional_Index_Of,
12616         Next_Attribute.
12617         New package oriented subprograms: Package_Node_Id_Of,
12618         Add_Unknown_Package, First_Attribute_Of, Add_Attribute.
12619
12620         * prj-attr.ads (Attribute_Node_Id): Now a private, self initialized
12621         type.
12622         (Package_Node_Id): Now a private, self initialized type
12623         (Register_New_Package): New procedure to register a package with its
12624         attributes.
12625         New attribute oriented subprograms: Attribute_Node_Id_Of,
12626         Attribute_Kind_Of, Set_Attribute_Kind_Of, Attribute_Name_Of,
12627         Variable_Kind_Of, Set_Variable_Kind_Of, Optional_Index_Of,
12628         Next_Attribute.
12629         New package oriented subprograms: Package_Node_Id_Of,
12630         Add_Unknown_Package, First_Attribute_Of, Add_Attribute.
12631
12632         * prj-dect.adb (Parse_Attribute_Declaration,
12633         Parse_Package_Declaration): Adapt to new spec of Prj.Attr.
12634
12635         * prj-makr.adb (Make): Parse existing project file before creating
12636         other files. Fail if there was an error during parsing.
12637
12638         * prj-proc.adb (Add_Attributes, Process_Declarative_Items): Adapt to
12639         new spec of Prj.Attr.
12640
12641         * prj-strt.adb (Attribute_Reference, Parse_Variable_Reference): Adapt
12642         to new spec of Prj.Attr.
12643
12644 2004-07-15  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12645
12646         * utils2.c: Fix typo in comment.
12647
12648 2004-07-14  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12649
12650         * trans.c (add_decl_expr): Clear TREE_READONLY if clear DECL_INITIAL.
12651         * utils.c (unchecked_convert): Don't do two VIEW_CONVERT_EXPRs.
12652
12653 2004-07-14  Andreas Schwab  <schwab@suse.de>
12654
12655         * trans.c (gnat_init_stmt_group): Remove duplicate definition.
12656
12657 2004-07-13  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12658
12659         * decl.c: (gnat_to_gnu_entity, object case): Convert initializer to
12660         object type.
12661         (gnat_to_gnu_entity, case E_Record_Subtype): Properly set
12662         TYPE_STUB_DECL.
12663
12664         * misc.c (gnat_types_compatible_p): New function.
12665         (LANG_HOOKS_TYPES_COMPATIBLE_P): New hook, to use it.
12666         (LANG_HOOKS_TYPE_MAX_SIZE, gnat_type_max_size): New.
12667
12668         * trans.c (gigi): Move processing of main N_Compilation_Unit here.
12669         (gnat_to_gnu, case N_Compilation_Unit): Just handle nested case here.
12670         (add_stmt): Force walking of sizes and DECL_INITIAL for DECL_EXPR.
12671         (mark_visited): Don't mark dummy type.
12672         (tree_transform <N_Procedure_Call_Statement>): Unless this is an In
12673         parameter, we must remove any LJM building from GNU_NAME.
12674         (gnat_to_gnu, case N_String_Literal): Fill in indices in CONSTRUCTOR.
12675         (pos_to_constructor): Use int_const_binop.
12676         (gnat_to_gnu, case N_Identifier): Don't reference DECL_INITIAL of
12677         PARM_DECL.
12678
12679         * utils.c (gnat_init_decl_processing): Don't make two "void" decls.
12680         (gnat_pushlevel): Set TREE_USE on BLOCK node.
12681         (gnat_install_builtins): Add __builtin_memset.
12682
12683 2004-07-13  Olivier Hainque  <hainque@act-europe.fr>
12684
12685         * decl.c (gnat_to_gnu_entity <E_Variable>): If we are making a pointer
12686         for a renaming, stabilize the initialization expression if we are at a
12687         local level.  At the local level, uses of the renaming may be performed
12688         by a direct dereference of the initializing expression, and we don't
12689         want possible variables there to be evaluated for every use.
12690
12691         * trans.c (gnat_stabilize_reference, gnat_stabilize_reference_1):
12692         Propagate TREE_SIDE_EFFECTS and TREE_THIS_VOLATILE to avoid loosing
12693         them on the way.  Account for the fact that we may introduce side
12694         effects in the process.
12695
12696 2004-07-13  Richard Henderson  <rth@redhat.com>
12697
12698         * misc.c (default_pass_by_ref): Use pass_by_reference.
12699
12700 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
12701
12702         * misc.c (LANG_HOOKS_CLEAR_BINDING_STACK, LANG_HOOKS_PUSHLEVEL,
12703         LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
12704
12705 2004-07-08  Richard Henderson  <rth@redhat.com>
12706
12707         * trans.c (gnat_to_gnu <N_Handled_Sequence_Of_Statements>): Update
12708         commentary.
12709
12710 2004-07-06  Vincent Celier  <celier@gnat.com>
12711
12712         * vms_conv.ads: Minor reformatting.
12713         Alphabetical order for enumerated values of type Command_Type, to have
12714         the command in alphabetical order for the usage.
12715
12716         * vms_conv.adb (Process_Argument): Set Keep_Temporary_Files to True for
12717         the special qualifier /KEEP_TEMPORARY_FILES (minimum 6 characters).
12718
12719         * gnat_ugn.texi: Document new switch -dn for the GNAT driver.
12720
12721         * makegpr.adb (Global_Archive_Exists): New global Boolean variable
12722         (Add_Archive_Path): Only add the global archive if there is one.
12723         (Build_Global_Archive): Set Global_Archive_Exists depending if there is
12724         or not any object file to put in the global archive, and don't build
12725         a global archive if there is none.
12726         (X_Switches): New table
12727         (Compile_Link_With_Gnatmake): Pass to gnatmake the -X switches stored
12728         in the X_Switches table, if any.
12729         (Initialize): Make sure the X_Switches table is empty
12730         (Scan_Arg): Record -X switches in table X_Switches
12731
12732         * opt.ads (Keep_Temporary_Files): New Boolean flag, defaulted to False.
12733
12734         * make.adb: Minor comment fix
12735
12736         * gnatname.adb (Gnatname): When not on VMS, and gnatname has been
12737         invoked with directory information, add the directory in front of the
12738         path.
12739
12740         * gnatchop.adb (Gnatchop): When not on VMS, and gnatchop has been
12741         invoked with directory information, add the directory in front of the
12742         path.
12743
12744         * gnatcmd.adb (Delete_Temp_Config_Files): Only delete temporary files
12745         when Keep_Temporary_Files is False.
12746         (GNATCmd): When not on VMS, and the GNAT driver has been invoked with
12747         directory information, add the directory in front of the path.
12748         When not on VMS, handle new switch -dn before the command to set
12749         Keep_Temporary_Files to True.
12750         (Non_VMS_Usage): Use lower case for the non VMS usage: this is valid
12751         everywhere.
12752
12753         * gnatlink.adb (Gnatlink): When not on VMS, and gnatlink has been
12754         invoked with directory information, add the directory in front of the
12755         path.
12756
12757 2004-07-06  Thomas Quinot  <quinot@act-europe.fr>
12758
12759         * snames.ads, snames.adb (Name_Stub): New name for the distributed
12760         systems annex.
12761
12762         * rtsfind.ads: New RTE TC_Object, for DSA/PolyORB.
12763         New RTEs RAS_Proxy_Type and RAS_Proxy_Type_Access, for DSA.
12764
12765         * g-socket.adb (To_Timeval): Fix incorrect conversion of
12766         Selector_Duration to Timeval for the case of 0.0.
12767
12768         * exp_util.ads (Evolve_Or_Else): Fix overenthusiastic copy/paste of
12769         documentation from Evolve_And_Then.
12770
12771 2004-07-06  Jose Ruiz  <ruiz@act-europe.fr>
12772
12773         * s-taprop-tru64.adb, s-taprop-os2.adb,
12774         s-taprop-mingw.adb, s-taprop-posix.adb: Update comment.
12775
12776 2004-07-06  Robert Dewar  <dewar@gnat.com>
12777
12778         * s-osinte-hpux.ads, s-osinte-freebsd.ads,
12779         s-osinte-lynxos.ads, s-taprop-lynxos.adb, s-osinte-tru64.ads,
12780         s-osinte-aix.ads, s-osinte-irix.ads, s-taprop-irix.adb,
12781         s-interr-sigaction.adb, s-taprop-irix-athread.adb,
12782         s-osinte-hpux-dce.adb, s-taprop-hpux-dce.adb,
12783         s-taprop-linux.adb, s-taprop-dummy.adb, s-taprop-solaris.adb,
12784         s-interr-vms.adb, s-osinte-vms.ads, s-taprop-vms.adb,
12785         s-osinte-vxworks.ads, s-osprim-vxworks.adb, a-numaux-x86.adb,
12786         a-except.adb, a-exexpr.adb, a-intsig.adb, a-tags.adb,
12787         a-tags.ads, bindgen.ads, checks.adb, checks.adb,
12788         csets.ads, einfo.ads, einfo.ads, elists.adb, exp_ch4.adb,
12789         exp_ch7.adb, exp_dist.adb, exp_util.adb, freeze.adb,
12790         g-dynhta.adb, gnatmem.adb, g-regexp.adb, inline.adb,
12791         i-os2thr.ads, osint.adb, prj.adb, scng.adb, sem_cat.adb,
12792         sem_ch10.adb, sem_ch12.adb, sem_ch4.adb, sem_ch7.adb,
12793         sem_ch8.adb, sem_disp.adb, sem_prag.adb, sem_res.adb,
12794         sem_type.adb, sem_type.ads, sem_warn.adb, s-ficobl.ads,
12795         s-finimp.adb, s-htable.adb, sinfo.ads, sinput-l.ads,
12796         s-interr.adb, s-interr.ads, sprint.adb, s-tarest.adb,
12797         s-tasini.ads, s-taskin.ads, s-taskin.ads, uname.adb,
12798         vms_data.ads: Minor reformatting,
12799         Fix bad box comment format.
12800
12801         * gnat_rm.texi: Fix minor grammatical error
12802
12803         * sem_attr.adb, exp_attr.adb: New attribute Has_Access_Values
12804
12805         * sem_util.ads, sem_util.adb (Requires_Transient_Scope): Allow many
12806         more cases of discriminated records to be recognized as not needing a
12807         secondary stack.
12808         (Has_Access_Values): New function.
12809
12810         * snames.h, snames.adb, snames.ads: New attribute Has_Access_Values
12811
12812         * cstand.adb, layout.ads, layout.adb, sem_ch13.ads: Change name
12813         Set_Prim_Alignment to Set_Elem_Alignment (more accurate correspondence
12814         with LRM terminology).
12815         Change terminology in comments primitive type => elementary type.
12816
12817 2004-07-06  Ed Schonberg  <schonberg@gnat.com>
12818
12819         PR ada/15602
12820         * sem_ch7.adb (Unit_Requires_Body): For a generic package, the formal
12821         parameters do not impose any requirements on the presence of a body.
12822
12823 2004-07-06  Ed Schonberg  <schonberg@gnat.com>
12824
12825         PR ada/15593
12826         * sem_ch12.adb (Analyze_Package_Instantiation): If the generic is not a
12827         compilation unit and is in an open scope at the point of instantiation,
12828         assume that a body may be present later.
12829
12830 2004-07-06  Ed Schonberg  <schonberg@gnat.com>
12831
12832         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case 'Size):
12833         Improve error message when specified size is not supported.
12834
12835         * sem_ch6.adb (Maybe_Primitive_Operation): A library-level subprogram
12836         is never a primitive operation.
12837
12838 2004-07-05  Andreas Schwab  <schwab@suse.de>
12839
12840         * ada-tree.h (TYPE_LEFT_JUSTIFIED_MODULAR_P): Use
12841         RECORD_OR_UNION_CHECK.
12842         (TYPE_CONTAINS_TEMPLATE_P): Likewise.
12843
12844 2004-07-04  Kelley Cook  <kcook@gcc.gnu.org>
12845
12846         * Make-lang.in (doc/gnat_ugn_unw.texi): Eliminate explicit
12847         dependency on xgnatugn, instead build it via a submake.
12848         (ADA_INFOFILES): Add doc/gnat_ugn_unw.texi.
12849
12850 2004-07-04  Richard Henderson  <rth@redhat.com>
12851
12852         * utils2.c (gnat_mark_addressable): Don't put_var_into_stack.
12853
12854 2004-07-01  Richard Henderson  <rth@redhat.com>
12855
12856         * trans.c (gnat_stabilize_reference): Don't handle RTL_EXPR.
12857         * utils.c (max_size): Likewise.
12858
12859 2004-06-28  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12860
12861         * decl.c: Remove calls to add_decl_expr, pushdecl, rest_of_compilation,
12862         and rest_of_type_compilation; add arg to create_*_decl.
12863         (annotate_decl_with_node): Deleted.
12864         (gnat_to_gnu_entity, case E_Array_Type): Set location of fields.
12865         * gigi.h (get_decls, block_has_vars, pushdecl): Deleted.
12866         (get_current_block_context, gnat_pushdecl): New declarations.
12867         (gnat_init_stmt_group): Likewise.
12868         (create_var_decl, create_type_decl, create_subprog_decl): Add new arg.
12869         * misc.c (LANG_HOOKS_CLEAR_BINDING_STACK): Deleted.
12870         (LANG_HOOKS_GETDECLS, LANG_HOOKS_PUSHDECL): Deleted.
12871         (gnat_init): Call gnat_init_stmt_group.
12872         * trans.c (global_stmt_group, gnu_elab_proc_decl): New variables.
12873         (gnu_pending_elaboration_list): Deleted.
12874         (mark_visited, mark_unvisited, gnat_init_stmt_group): New functions.
12875         (gigi): Rearrange initialization calls and move some to last above.
12876         (gnat_to_gnu): If statement and not in procedure, go into elab proc.
12877         Delete calls to add_decl_expr; add arg to create_*_decl.
12878         (gnat_to_gnu, case N_Loop): Recalculate side effects on COND_EXPR.
12879         (gnat_to_gnu, case N_Subprogram_Body): Move some code to
12880         begin_subprog_body and call it.
12881         Don't push and pop ggc context.
12882         (gnat_to_gnu, case N_Compilation_Unit): Rework to support elab proc.
12883         (add_stmt): Remove handling of DECL_EXPR from here.
12884         If not in function, mark visited.
12885         (add_decl_expr): Put global at top level.
12886         Check for cases of DECL_INITIAL we have to handle here.
12887         (process_type): Add extra arg to create_type_decl.
12888         (build_unit_elab): Rework to just gimplify.
12889         * utils.c (pending_elaborations, elist_stack, getdecls): Deleted.
12890         (block_has_vars, mark_visited, add_pending_elaborations): Likewise.
12891         (get_pending_elaborations, pending_elaborations_p): Likewise.
12892         (push_pending_elaborations, pop_pending_elaborations): Likewise.
12893         (get_elaboration_location, insert_elaboration_list): Likewise.
12894         (gnat_binding_level): Renamed from ada_binding_level.
12895         (init_gnat_to_gnu): Don't clear pending_elaborations.
12896         (global_bindings_p): Treat as global if no current_binding_level.
12897         (set_current_block_context): New function.
12898         (gnat_pushdecl): Renamed from pushdecl; major rework.
12899         All callers changed.
12900         (create_type_decl, create_var_decl, create_subprog_decl): Add new arg.
12901         (finish_record_type): Call call pushdecl for stub decl.
12902         (function_nesting_depth): Deleted.
12903         (begin_subprog_body): Delete obsolete code.
12904         * utils2.c (build_call_alloc_dealloc): Add new arg to create_var_decl.
12905
12906 2004-06-28  Robert Dewar  <dewar@gnat.com>
12907
12908         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
12909         mlib-tgt-irix.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
12910         mlib-tgt-linux.adb, mlib-tgt-solaris.adb, mlib-tgt-solaris.adb,
12911         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
12912         a-strmap.adb, a-strmap.ads, clean.adb: Minor reformatting
12913
12914         * exp_util.adb (Is_Possibly_Unaligned_Slice): Completely rewritten, to
12915         deal with problem of inefficient slices on machines with strict
12916         alignment, when the slice is a component of a composite.
12917
12918         * checks.adb (Apply_Array_Size_Check): Do not special case 64-bit
12919         machines, we need the check there as well.
12920
12921 2004-06-28  Ed Schonberg  <schonberg@gnat.com>
12922
12923         * exp_ch5.adb (Expand_Assign_Array): Use correct condition to
12924         determine safe copying direction for overlapping slice assignments
12925         when component is controlled.
12926
12927         * sem_ch12.adb (Instantiate_Formal_Package): Implicit operations of a
12928         formal derived type in the actual for a formal package are visible in
12929         the enclosing instance.
12930
12931 2004-06-28  Ed Schonberg  <schonberg@gnat.com>
12932
12933         PR ada/15600
12934         * sem_util.adb (Trace_Components): Diagnose properly an illegal
12935         circularity involving a private type whose completion includes a
12936         self-referential component.
12937         (Enter_Name): Use Is_Inherited_Operation to distinguish a source
12938         renaming or an instantiation from an implicit derived operation.
12939
12940 2004-06-28  Pascal Obry  <obry@gnat.com>
12941
12942         * mlib-tgt-mingw.adb: (Library_Exists_For): Remove "lib" prefix from
12943         DLL.
12944         (Library_File_Name_For): Idem.
12945
12946 2004-06-28  Matthew Gingell  <gingell@gnat.com>
12947
12948         * g-traceb.ads: Add explanatory note on the format of addresses
12949         expected by addr2line.
12950
12951 2004-06-28  Jerome Guitton  <guitton@act-europe.fr>
12952
12953         * Makefile.in: Force debugging information on s-tasdeb.adb,
12954         a-except.adb and s-assert.adb needed by the debugger.
12955
12956 2004-06-28  Vincent Celier  <celier@gnat.com>
12957
12958         * make.adb (Collect_Arguments_And_Compile): Change Flag1 to
12959         Need_To_Build_Lib.
12960         (Gnatmake): Ditto.
12961
12962         * mlib-prj.adb (Check_Library): Replace Flag1 with Need_To_Build_Lib
12963
12964         * prj.adb: Minor reformatting
12965         (Project_Empty): Change Flag1 to Need_To_Build_Lib. Remove Flag2.
12966
12967         * prj.ads: Comment updates
12968         Minor reformatting
12969         (Project_Data): Change Flag1 to Need_To_Build_Lib.
12970         Remove Flag2: not used.
12971
12972         * prj-dect.adb (Parse_Declarative_Items): Accept "null" as a
12973         declaration.
12974
12975         * gnat_ugn.texi: Put a "null;" declaration in one project file example
12976
12977         * gnat_rm.texi: Document Empty declarations "null;".
12978
12979         * makegpr.adb (Compile_Link_With_Gnatmake): Put the global archives in
12980         front of the linker options.
12981         (Link_Foreign): Put the global archives and the libraries in front of
12982         the linker options.
12983
12984 2004-06-28  Javier Miranda  <miranda@gnat.com>
12985
12986         * rtsfind.adb: (Get_Unit_Name): Fix typo in comment
12987         (RTU_Loaded): Code cleanup
12988         (Set_RTU_Loaded): New procedure to register as *loaded* explicitly
12989         withed predefined units.
12990
12991         * rtsfind.ads (Set_RTU_Loaded): New procedure to register as *loaded*
12992         explicitly withed predefined units.
12993         Fix typo in comment
12994
12995         * sem_ch10.adb (Analyze_Compilation_Unit): Register as *loaded*
12996         explicitly withed predefined units.
12997
12998 2004-06-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12999
13000         * ada-tree.def (DECL_STMT): Deleted.
13001         * ada-tree.h (IS_ADA_STMT): Now test against STMT_STMT.
13002         (DECL_STMT_VAR): Deleted.
13003         * decl.c: add_decl_stmt now add_decl_expr.
13004         * gigi.h: Likewise.
13005         * trans.c: Likewise.
13006         (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Deleted.
13007         (gnat_to_gnu, case N_Subprogram_Body): Set cfun->function_end_locus.
13008         (add_stmt): Only handle padded type here.
13009         (add_stmt_with_node): Allow gnat_node to not be present.
13010         (gnat_gimplify_stmt, case USE_STMT): Set *STMT_P to null.
13011         (gnat_gimplify_stmt, case DECL_STMT): Deleted.
13012         (gnat_stabilize_reference_1): If COMPONENT_REF of fat pointer,
13013         make a SAVE_EXPR for the entire fat pointer.
13014         * utils.c (pushdecl): Walk a DECL_EXPR in global case.
13015         (create_index_type): Make a DECL_EXPR.
13016         (end_subprog_body): Don't call allocate_struct_function here but
13017         do clear cfun.
13018
13019 2004-06-25  Pascal Obry  <obry@gnat.com>
13020
13021         * makegpr.adb (Build_Library): Remove parameter Lib_Address and
13022         Relocatable from Build_Dynamic_Library call.
13023
13024         * gnat_ugn.texi: Change documentation about Library_Kind. Dynamic and
13025         Relocatable are now synonym.
13026
13027         * Makefile.in: Use s-parame-mingw.adb on MingW platform.
13028
13029         * mlib-prj.adb (Build_Library): Remove DLL_Address constant definition.
13030         Remove parameter Lib_Address and Relocatable from Build_Dynamic_Library
13031         call.
13032
13033         * mlib-tgt.ads, mlib-tgt.adb (Build_Dynamic_Library): Remove parameter
13034         Lib_Address and Relocatable.
13035         (Default_DLL_Address): Removed.
13036
13037         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
13038         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
13039         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-vxworks.adb:
13040         (Build_Dynamic_Library): Remove parameter Lib_Address and Relocatable.
13041         (Default_DLL_Address): Removed.
13042
13043         * mlib-tgt-mingw.adb: Ditto.
13044         (Build_Dynamic_Library): Do not add "lib" prefix to the DLL name.
13045
13046         * s-taprop-mingw.adb (Create_Task): Use Adjust_Storage_Size to compute
13047         the initial thread stack size.
13048
13049         * a-strmap.ads: Move package L to private part as it is not used in
13050         the spec. Found while reading code.
13051
13052 2004-06-25  Olivier Hainque  <hainque@act-europe.fr>
13053
13054         * tracebak.c: Introduce support for a GCC infrastructure based
13055         implementation of __gnat_backtrace.
13056
13057         * raise.c: Don't rely on a C mapping of the GNAT_GCC_Exception record
13058         any more. Use accessors instead. This eases maintenance and relaxes
13059         some alignment constraints.
13060         (_GNAT_Exception structure): Remove the Ada specific fields
13061         (EID_For, Adjust_N_Cleanups_For): New accessors, exported by
13062         a-exexpr.adb.
13063         (is_handled_by, __gnat_eh_personality): Replace component references to
13064         exception structure by use of the new accessors.
13065
13066         * init.c (__gnat_initialize): Adjust comments to match the just
13067         reverted meaning of the -static link-time option.
13068
13069         * adaint.c (convert_addresses): Arrange not to define a stub for
13070         mips-irix any more, as we now want to rely on a real version from a
13071         recent libaddr2line.
13072
13073         * a-exexpr.adb: Provide new accessors to a GNAT_GCC occurrence, so that
13074         the personality routine can use them and not have to rely on a C
13075         counterpart of the record anymore. This simplifies maintenance and
13076         relaxes the constraint of having Standard'Maximum_Alignment match
13077         BIGGEST_ALIGNMENT.
13078         Update comments, and add a section on the common header alignment issue.
13079
13080 2004-06-25  Geert Bosch  <bosch@gnat.com>
13081
13082         * a-ngelfu.adb (Tanh): Use full 20 digit precision for constants in
13083         polynomial approximation. Fixes inconsistency with Cody/Waite algorithm.
13084
13085 2004-06-25  Robert Dewar  <dewar@gnat.com>
13086
13087         * gnat_rm.texi: Fix section on component clauses to indicate that the
13088         restriction on byte boundary placement still applies for bit packed
13089         arrays.
13090         Add comment on stack usage from Initialize_Scalars
13091
13092         * gnat_ugn.texi: Add documentation for -gnatyLnnn
13093
13094         * stylesw.ads, stylesw.adb: Implement new -gnatyLnnn option for
13095         limiting nesting level.
13096
13097         * usage.adb: Add line for -gnatyLnnn switch
13098
13099         * g-debpoo.ads, xtreeprs.adb, sinput.ads, sem_ch13.ads,
13100         sem_ch13.adb, exp_aggr.adb: Minor reformatting
13101
13102         * sem_prag.adb (Process_Atomic_Shared_Volatile): Set Is_Atomic on base
13103         type as well as on the subtype. This corrects a problem in freeze in
13104         setting alignments of atomic types.
13105
13106         * sem_eval.ads: Minor comment typo fixed
13107
13108         * par-util.adb (Push_Scope_Stack): Check for violation of max nesting
13109         level.  Minor reformatting.
13110
13111         * fname.adb (Is_Predefined_File_Name): Require a letter after the
13112         minus sign. This means that file names like a--b.adb will not be
13113         considered predefined.
13114
13115         * freeze.adb: Propagate new flag Must_Be_On_Byte_Boundary to containing
13116         record Test new flag and give diagnostic for bad component clause.
13117         (Freeze_Entity): Set alignment of array from component alignment in
13118         cases where this is safe to do.
13119
13120         * exp_pakd.adb: Set new flag Must_Be_On_Byte_Boundary for large packed
13121         arrays.
13122
13123         * cstand.adb: (Create_Standard): Set alignment of String to 1
13124
13125         * einfo.ads, einfo.adb: Introduce new flag Must_Be_On_Byte_Boundary
13126
13127         * exp_ch4.adb (Expand_Array_Equality): Improve efficiency of generated
13128         code in the common constrained array cases.
13129
13130         * a-storio.adb: Change implementation to avoid possible alignment
13131         problems on machines requiring strict alignment (data should be moved
13132         as type Buffer, not type Elmt).
13133
13134         * checks.adb (Apply_Array_Size_Check): Improve these checks by
13135         killing the overflow checks which we really do not need (64-bits is
13136         enough).
13137
13138 2004-06-25  Vincent Celier  <celier@gnat.com>
13139
13140         * makegpr.adb (Is_Included_In_Global_Archive): New Boolean function
13141         (Add_Archives.Recursive_Add_Archives): Call Add_Archive_Path
13142         inconditionally for the main project.
13143         (Recursive_Add_Archives.Add_Archive_Path): New procedure
13144         (Link_Executables.Check_Time_Stamps): New procedure
13145         (Link_Executables.Link_Foreign): New procedure
13146         Changes made to reduce nesting level of this package
13147         (Check): New procedure
13148         (Add_Switches): When not in quiet output, check that a switch is not
13149         the concatenation of several valid switches. If it is, issue a warning.
13150         (Build_Global_Archive): If the global archive is rebuilt, linking need
13151         to be done.
13152         (Compile_Sources): Rebuilding a library archive does not imply
13153         rebuilding the global archive.
13154         (Build_Global_Archive): New procedure
13155         (Build_Library): New name for Build_Archive, now only for library
13156         project
13157         (Check_Archive_Builder): New procedure
13158         (Create_Global_Archive_Dependency_File): New procedure
13159         (Gprmake): Call Build_Global_Archive before linking
13160         * makegpr.adb: Use Other_Sources_Present instead of Sources_Present
13161         throughout.
13162         (Scan_Arg): Display the Copyright notice when -v is used
13163
13164         * gnat_ugn.texi: Document new switch -files= (VMS qualifier /FILES=)
13165         for gnatls.
13166
13167         * vms_data.ads: Add qualifier /MAX_NESTING=nnn (-gnatyLnnn) for GNAT
13168         COMPILE.
13169         Add new GNAT LIST qualifier /FILES=
13170         Added qualifier /DIRECTORY= to GNAT METRIC
13171         Added qualifier /FILES= to GNAT METRIC
13172         Added qualifier /FILES to GNAT PRETTY
13173
13174         * switch.adb (Is_Front_End_Switch): Refine the test for --RTS or -fRTS,
13175         to take into account both versions of the switch.
13176
13177         * switch-c.adb (Scan_Front_End_Switches): New switch -gnatez. Should
13178         always be the last switch to the gcc driver. Disable switch storing so
13179         that switches automatically added by the gcc driver are not put in the
13180         ALI file.
13181
13182         * prj.adb (Project_Empty): Take into account changes in components of
13183         Project_Data.
13184
13185         * prj.ads (Languages_Processed): New enumaration value All_Languages.
13186
13187         * prj.ads (Project_Data): Remove component Lib_Elaboration: never
13188         used. Split Boolean component Ada_Sources_Present in two Boolean
13189         components Ada_Sources_Present and Other_Sources_Present.
13190         Minor reformatting
13191
13192         * prj-env.adb (For_All_Source_Dirs.Add): Use Ada_Sources_Present
13193         instead of Sources_Present.
13194         (Set_Ada_Paths.Add.Recursive_Add): Ditto
13195
13196         * prj-nmsc.adb: Minor reformatting
13197         (Check_Ada_Naming_Scheme): New name of procedure Check_Naming_Scheme
13198         (Check_Ada_Naming_Scheme_Validity): New name of previous procedure
13199         Check_Ada_Naming_Scheme.
13200         Change Sources_Present to Ada_Sources_Present or Other_Sources_Present
13201         throughout.
13202
13203         * prj-part.adb (Post_Parse_Context_Clause): New Boolean parameter
13204         In_Limited.
13205         Make sure that all cycles where there is at least one "limited with"
13206         are detected.
13207         (Parse_Single_Project): New Boolean parameter In_Limited
13208
13209         * prj-proc.adb (Recursive_Check): When Process_Languages is
13210         All_Languages, call first Prj.Nmsc.Ada_Check, then
13211         Prj.Nmsc.Other_Languages_Check.
13212
13213         * prj-proc.adb (Process): Use Ada_Sources_Present or
13214         Other_Sources_Present (instead of Sources_Present) depending on
13215         Process_Languages.
13216
13217         * lang-specs.h: Keep -g and -m switches in the same order, and as the
13218         last switches.
13219
13220         * lib.adb (Switch_Storing_Enabled): New global Boolean flag
13221         (Disable_Switch_Storing): New procedure. Set Switch_Storing_Enabled to
13222         False.
13223         (Store_Compilation_Switch): Do nothing if Switch_Storing_Enabled is
13224         False.
13225
13226         * lib.ads (Disable_Switch_Storing): New procedure.
13227
13228         * make.adb: Modifications to reduce nesting level of this package.
13229         (Check_Standard_Library): New procedure
13230         (Gnatmake.Check_Mains): New procedure
13231         (Gnatmake.Create_Binder_Mapping_File): New procedure
13232         (Compile_Sources.Compile): Add switch -gnatez as the last option
13233         (Display): Never display -gnatez
13234
13235         * Makefile.generic:
13236         When using $(MAIN_OBJECT), always use $(OBJ_DIR)/$(MAIN_OBJECT)
13237
13238         * gnatcmd.adb (Check_Project): New function
13239         (Process_Link): New procedure to reduce nesting depth
13240         (Check_Files): New procedure to reduce the nesting depth.
13241         For GNAT METRIC, include the inherited sources in extending projects.
13242         (GNATCmd): When GNAT LS is invoked with a project file and no files,
13243         add the list of files from the sources of the project file. If this list
13244         is too long, put it in a temp text files and use switch -files=
13245         (Delete_Temp_Config_Files): Delete the temp text file that contains
13246         a list of source for gnatpp or gnatmetric, if one has been created.
13247         (GNATCmd): For GNAT METRIC and GNAT PRETTY, if the number of sources
13248         in the project file is too large, create a temporary text file that
13249         list them and pass it to the tool with "-files=<temp text file>".
13250         (GNATCmd): For GNAT METRIC add "-d=<abject dir>" as the first switch
13251
13252         * gnatlink.adb (Gnatlink): Do not compile with --RTS= when the
13253         generated file is in not in Ada.
13254
13255         * gnatls.adb: Remove all parameters And_Save that are no longer used.
13256         (Scan_Ls_Arg): Add processing for -files=
13257         (Usage): Add line for -files=
13258
13259         * g-os_lib.adb (On_Windows): New global constant Boolean flag
13260         (Normalize_Pathname): When on Windows and the path starts with a
13261         directory separator, make sure that the resulting path will start with
13262         a drive letter.
13263
13264         * clean.adb (Clean_Archive): New procedure
13265         (Clean_Project): When there is non-Ada code, delete the global archive,
13266         the archive dependency files, the object files and their dependency
13267         files, if they exist.
13268         (Gnatclean): Call Prj.Pars.Parse for All_Languages, not for Ada only.
13269
13270 2004-06-25  Thomas Quinot  <quinot@act-europe.fr>
13271
13272         * sinfo.ads: Fix typo in comment.
13273
13274         * sem_dist.adb (Process_Remote_AST_Attribute): Simplify code that uses
13275         the TSS for remote access-to-subprogram types, since these TSS are
13276         always present once the type has been analyzed.
13277         (RAS_E_Dereference): Same.
13278
13279         * sem_attr.adb (Analyze_Attribute): When analysis of an attribute
13280         reference raises Bad_Attribute, mark the reference as analyzed so the
13281         node (and any children resulting from rewrites that could have occurred
13282         during the analysis that ultimately failed) is not analyzed again.
13283
13284         * exp_ch7.ads (Find_Final_List): Fix misaligned comment.
13285
13286         * exp_dist.adb: Minor comment fix.
13287
13288         * exp_ch4.adb (Expand_N_Allocator): For an allocator whose expected
13289         type is an anonymous access type, no unchecked deallocation of the
13290         allocated object can occur. If the object is controlled, attach it with
13291         a count of 1. This allows attachment to the Global_Final_List, if
13292         no other relevant list is available.
13293         (Get_Allocator_Final_List): For an anonymous access type that is
13294         the type of a discriminant or record component, the corresponding
13295         finalisation list is the one of the scope of the type.
13296
13297 2004-06-25  Ed Schonberg  <schonberg@gnat.com>
13298
13299         * sem_ch3.adb (Replace_Type): When computing the signature of an
13300         inherited subprogram, use the first subtype if the derived type
13301         declaration has no constraint.
13302
13303         * exp_ch6.adb (Add_Call_By_Copy_Code): Check that formal is an array
13304         before applying previous optimization. Minor code cleanup.
13305
13306         * exp_util.adb (Is_Possibly_Unaligned_Slice): If the component is
13307         placed at the beginning of an unpacked record without explicit
13308         alignment, a slice of it will be aligned and does not need a copy when
13309         used as an actual.
13310
13311 2004-06-25  Ed Schonberg  <schonberg@gnat.com>
13312
13313         PR ada/15591
13314         PR ada/15592
13315         * sem_ch8.adb (Attribute_Renaming): Reject renaming if the attribute
13316         reference is written with expressions mimicking parameters.
13317
13318 2004-06-25  Hristian Kirtchev  <kirtchev@gnat.com>
13319
13320         PR ada/15589
13321         * sem_ch3.adb (Build_Derived_Record_Type): Add additional check to
13322         STEP 2a. The constraints of a full type declaration of a derived record
13323         type are checked for conformance with those declared in the
13324         corresponding private extension declaration. The message
13325         "not conformant with previous declaration" is emitted if an error is
13326         detected.
13327
13328 2004-06-25  Vasiliy Fofanov  <fofanov@act-europe.fr>
13329
13330         * g-traceb.ads: Document the need for -E binder switch in the spec.
13331
13332         * g-trasym.ads: Document the need for -E binder switch in the spec.
13333
13334 2004-06-25  Jose Ruiz  <ruiz@act-europe.fr>
13335
13336         * sem_prag.adb: Add handling of pragma Detect_Blocking.
13337
13338         * snames.h, snames.ads, snames.adb: Add entry for pragma
13339         Detect_Blocking.
13340
13341         * s-rident.ads: Change reference to pragma Detect_Blocking.
13342
13343         * targparm.ads, targparm.adb: Allow pragma Detect_Blocking in
13344         system.ads.
13345
13346         * opt.ads (Detect_Blocking): New Boolean variable (defaulted to False)
13347         to indicate whether pragma Detect_Blocking is active.
13348
13349         * par-prag.adb: Add entry for pragma Detect_Blocking.
13350
13351         * rtsfind.adb (RTU_Loaded): Fix the temporary kludge to get past bug
13352         of not handling WITH.
13353         Note that this replaces the previous update which was incorrect.
13354
13355 2004-06-25  Javier Miranda  <miranda@gnat.com>
13356
13357         * sem_ch10.adb (Re_Install_Use_Clauses): Force the installation of the
13358         use-clauses to have a clean environment.
13359
13360         * sem_ch8.adb (Install_Use_Clauses): Addition of a new formal to force
13361         the installation of the use-clauses to stablish a clean environment in
13362         case of compilation of a separate unit; otherwise the call to
13363         use_one_package is protected by the barrier Applicable_Use.
13364
13365         * sem_ch8.ads (Install_Use_Clauses): Addition of a new formal to force
13366         the installation of the use-clauses to stablish a clean environment in
13367         case of compilation of a separate unit.
13368         (End_Use_Clauses): Minor comment cleanup.
13369
13370 2004-06-25  Sergey Rybin  <rybin@act-europe.fr>
13371
13372         * gnat_ugn.texi: Add description of the gnatpp 'files' switch
13373
13374 2004-06-23  Richard Henderson  <rth@redhat.com>
13375
13376         * trans.c (gnat_gimplify_stmt): Update gimplify_type_sizes call.
13377
13378 2004-06-20  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13379
13380         * decl.c (elaborate_expression, elaborate_expression_1): Arguments
13381         now bool instead of int.
13382         (gnat_to_gnu_entity, elaborate_expression_1): New arg to COMPONENT_REF.
13383         * trans.c (gnu_switch_label_stack): New function.
13384         (gnat_to_gnu, N_Object_Renaming_Declaration): Result is what the
13385         elaboration of renamed entity returns.
13386         (gnat_to_gnu, case N_Case_Statement): Add branches to end label.
13387         (add_decl_stmt): Don't add TYPE_DECL for UNCONSTRAINED_ARRAY_TYPE.
13388         (gnat_gimplify_stmt): Use alloc_stmt_list, not build_empty_stmt.
13389         (gnat_gimplify_stmt, case DECL_STMT): gimplify DECL_SIZE and
13390         DECL_SIZE_UNIT and simplify variable-sized case.
13391         (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Deleted.
13392         Callers changes to call gimplify_type_sizes and gimplify_one_sizepos.
13393         (gnat_stabilize_reference): Add arg to COMPONENT_REF.
13394         (build_unit_elab): Disable for now.
13395         * utils.c (mark_visited): New function.
13396         (pushdecl): Walk tree to call it for global decl.
13397         (update_pointer_to): Update all variants of pointer and ref types.
13398         Add arg to COMPONENT_REF.
13399         (convert): Likewise.
13400         Move check for converting between variants lower down.
13401         * utils2.c (build_simple_component_ref): Add arg to COMPONENT_REF.
13402         (build_allocator): Don't force type of MODIFY_EXPR.
13403         (gnat_mark_addressable, case VAR_DECL): Unconditionally call
13404         put_var_into_stack.
13405
13406 2004-06-14  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13407
13408         * ada-tree.def (LOOP_STMT, EXIT_STMT): Update documentation.
13409         * ada-tree.h (EXIT_STMT_LABEL): Renamed from EXIT_STMT_LOOP.
13410         * decl.c (gnat_to_gnu_entity): Also set force_global for imported
13411         subprograms.
13412         * trans.c (gnu_loop_label_stack): Renamed from gnu_loop_stmt_stack;
13413         all callers changed.
13414         (gnat_to_gnu, case N_Loop_Statement, case N_Exit_Statement): Change
13415         the way that EXIT_STMT finds the loop label.
13416         (gnat_gimplify_stmt, case LOOP_STMT, EXIT_STMT): Likewise.
13417         (gnat_gimplify_stmt, case DECL_STMT): Handle variable-sized decls here.
13418         (add_stmt): Use annotate_with_locus insted of setting directly.
13419         (pos_to_construct): Set TREE_PURPOSE of each entry to index.
13420         (gnat_stabilize_reference, case ARRAY_RANGE_REF): Merge with ARRAY_REF.
13421         * utils.c (gnat_install_builtins): Install __builtin_memcmp.
13422         (build_vms_descriptor): Add extra args to ARRAY_REF.
13423         (convert): Use VIEW_CONVERT_EXPR between aggregate types.
13424         * utils2.c (gnat_truthvalue_conversion, case INTEGER_CST, REAL_CST):
13425         New cases.
13426         (build_binary_op): Don't make explicit CONVERT_EXPR.
13427         Add extra rgs to ARRAY_REF.
13428
13429 2004-06-14  Pascal Obry  <obry@gnat.com>
13430
13431         * gnat_ugn.texi: Document relocatable vs. dynamic Library_Kind on
13432         Windows.  Fix minor typo.
13433
13434         * mlib-tgt-mingw.adb: New implementation using the GCC -shared option
13435         which is now supported on Windows. With this implementation using the
13436         Library Project feature is no different on Windows than on UNIX.
13437
13438 2004-06-14  Vincent Celier  <celier@gnat.com>
13439
13440         * makegpr.adb (Compile_Sources): Nothing to do when there are no
13441         non-Ada sources.
13442
13443         * mlib-tgt-vxworks.adb (Library_Exists_For): Remove incorrect comment
13444
13445         * prj-part.adb (Parse_Single_Project): When a duplicate project name is
13446         found, show the project name and the path of the previously parsed
13447         project file.
13448
13449 2004-06-14  Ed Schonberg  <schonberg@gnat.com>
13450
13451         * exp_ch6.adb (Add_Call_By_Copy_Code): For an out-parameter that is an
13452         array, avoid copying the actual before the call.
13453
13454 2004-06-14  Thomas Quinot  <quinot@act-europe.fr>
13455
13456         * g-debpoo.adb: Remove alignment assumptions from GNAT.Debug_Pools.
13457         Instead, allocate memory on worst-case alignment assumptions, and then
13458         return an aligned address within the allocated zone.
13459
13460 2004-06-14  Robert Dewar  <dewar@gnat.com>
13461
13462         * bindgen.adb (Gen_Adainit_Ada): Do not generate external references to
13463         elab entities in predefined units in No_Run_Time_Mode.
13464         (Gen_Adainit_C): Same fix
13465         (Gen_Elab_Calls_Ada): Do not generate calls to elaborate predefined
13466         units in No_Run_Time_Mode
13467         (Gen_Elab_Calls_C): Same fix
13468
13469         * symbols-vms-alpha.adb: Minor reformatting
13470
13471         * g-debpoo.ads: Minor reformatting
13472
13473         * lib.adb (In_Same_Extended_Unit): Version working on node id's
13474
13475         * lib.ads (In_Same_Extended_Unit): Version working on node id's
13476
13477         * lib-xref.adb: Minor cleanup, use new version of In_Same_Extended_Unit
13478         working on nodes.
13479
13480         * make.adb: Minor reformatting
13481
13482         * par-ch12.adb: Minor reformatting
13483
13484         * par-prag.adb: Add dummy entry for pragma Profile_Warnings
13485
13486         * prj-strt.adb: Minor reformatting
13487
13488         * restrict.ads, restrict.adb: Redo handling of profile restrictions to
13489         be more general.
13490
13491         * sem_attr.adb: Minor reformatting
13492
13493         * sem_ch7.adb: Minor reformatting
13494
13495         * sem_elab.adb (Check_A_Call): Deal with problem of calling init proc
13496         for type in the same unit as the object declaration.
13497
13498         * sem_prag.adb (Check_Arg_Is_External_Name): New procedure, allows
13499         static string expressions and not just string literals.
13500         Minor reformatting
13501         (Set_Warning): Reset restriction warning flag for restriction pragma
13502         Implement pragma Profile_Warnings
13503         Implement pragma Profile (Restricted)
13504         Give obolescent messages for old restrictions and pragmas
13505
13506         * snames.h, snames.ads, snames.adb: Add new entry for pragma
13507         Profile_Warnings.
13508
13509         * s-rident.ads: Add declarations for restrictions required by profile
13510         Restricted and profile Ravenscar.
13511
13512         * targparm.ads, targparm.adb: Allow pragma Profile in system.ads
13513
13514         * gnat_ugn.texi: Correct some missing entries in the list of GNAT
13515         configuration pragmas.
13516
13517 2004-06-11  Vincent Celier  <celier@gnat.com>
13518
13519         * mlib-tgt-vms-alpha.adb (Build_Dynamic_Library): Issue switch -R to
13520         gnatsym, when symbol policy is Restricted.
13521
13522         * mlib-tgt-vms-ia64.adb (Build_Dynamic_Library): Issue switch -R to
13523         gnatsym, when symbol policy is Restricted.
13524
13525         * symbols-vms-alpha.adb (Initialize): When symbol policy is Restricted,
13526         read the symbol file.
13527         (Finalize): Fail in symbol policy Restricted if a symbol in the original
13528         symbol file is not in the object files. Do not create a new symbol file
13529         when symbol policy is Restricted.
13530
13531         * gnatbind.adb (Gnatbind): Initialize Snames, because Snames is used
13532         in Scng.
13533
13534         * gnatsym.adb (Parse_Vmd_Line): Process new switch -R for symbol policy
13535         Restricted.
13536         (Usage): Line for new switch -R
13537
13538         * make.adb (Initialize): When the platform is not VMS, add the
13539         directory where gnatmake is invoked in the front of the path, if
13540         gnatmake is invoked with directory information.  Change the Scan_Args
13541         while loop to a for loop.
13542         (Recursive_Compute_Depth): Remove parameter Visited. Improve efficiency:
13543         if Depth is equal or greater than the proposed depth, there is nothing
13544         to do.
13545         (Initialize): Call Recursive_Compute_Depth with initial Depth equal to 1
13546         instead of 0.
13547
13548         * prj.ads: Add new symbol policy Restricted.
13549
13550         * prj-dect.adb (Parse_Case_Construction): Call End_Case_Construction
13551         with the new parameters Check_All_Labels and Case_Location.
13552
13553         * prj-nmsc.adb (Ada_Check): Process new symbol policy Restricted
13554         (Library_Symbol_File needs to be defined).
13555
13556         * prj-strt.adb (End_Case_Construction): New parameters Check_All_Labels
13557         and Case_Location If Check_All_Labels is True, check that all values of
13558         the string type are used, and output warning(s) if they are not.
13559
13560         * prj-strt.ads (End_Case_Construction): New parameters Check_All_Labels
13561         and Case_Location.
13562
13563         * gnat_ugn.texi: Reorder subclauses in menus "Switches for gcc"
13564
13565         * gnat_ugn.texi: Update documentation about the library directory in
13566         Library Projects.
13567
13568         * makegpr.adb (Display_Command): In verbose mode, also display the
13569         value of the CPATH env var, when the compiler is gcc.
13570         (Initialize): Change the Scan_Args while loop to a for loop
13571         (Compile_Individual_Sources): Change directory to object directory
13572         before compilations.
13573
13574         * symbols.ads: New symbol policy Restricted.
13575
13576 2004-06-11  Olivier Hainque  <hainque@act-europe.fr>
13577
13578         * a-except.adb (Raise_After_Setup family): Remove. The responsibility
13579         is now taken care of internally in the Exception_Propagation package
13580         and does not require clients assistance any more.
13581
13582         * a-exexpr.adb (Is_Setup_And_Not_Propagated,
13583         Set_Setup_And_Not_Propagated, and Clear_Setup_And_Not_Propagated): New
13584         functions. Helpers to maintain a predicate required in the handling of
13585         occurrence transfer between tasks.
13586         This is now handled internally and does not require clients assistance
13587         for the setup/propagate separation anymore.
13588         (Setup_Exception, Propagate_Exception): Simplify the Private_Data
13589         allocation strategy, handle the Setup_And_Not_Propagated predicate and
13590         document.
13591
13592         * s-taenca.adb (Check_Exception): Use raise_with_msg instead of
13593         raise_after_setup, now that everything is handled internally within the
13594         setup/propagation engine.
13595
13596 2004-06-11  Hristian Kirtchev  <kirtchev@gnat.com>
13597
13598         * exp_ch6.adb (Expand_Inlined_Call): Add function Formal_Is_Used_Once.
13599         Add additional conditions for the case of an actual being a simple
13600         name or literal. Improve inlining by preventing the generation
13601         of temporaries with a short lifetime (one use).
13602
13603 2004-06-11  Hristian Kirtchev  <kirtchev@gnat.com>
13604
13605         PR ada/15587
13606
13607         * einfo.ads: Minor comment updates for Has_Completion and
13608         E_Constant list of flags.
13609
13610         * sem_ch3.adb (Analyze_Object_Declaration): Full constant declarations
13611         and constant redeclarations now set the Has_Completion flag of their
13612         defining identifiers.
13613
13614         * sem_ch7.adb (Analyze_Package_Spec): Add procedure
13615         Inspect_Deferred_Constant_Completion.
13616         Used to detect private deferred constants that have not been completed
13617         either by a constant redeclaration or pragma Import. Emits error message
13618         "constant declaration requires initialization expression".
13619
13620         * sem_prag.adb (Process_Import_Or_Interface): An Import pragma now
13621         completes a deferred constant.
13622
13623 2004-06-11  Geert Bosch  <bosch@gnat.com>
13624
13625         * eval_fat.adb (Decompose_Int): Fix rounding of negative numbers.
13626
13627         * s-fatgen.adb (Gradual_Scaling): Correct off-by-one error in
13628         calculating exponent for scaling denormal numbers.
13629         (Leading_Part): Properly raise Constraint_Error for zero or negative
13630         Adjustment.
13631         (Remainder): Properly raise Constraint_Error for zero divisor.
13632
13633 2004-06-11  Thomas Quinot  <quinot@act-europe.fr>
13634
13635         * sem_util.adb: Minor reformatting.
13636
13637         * exp_ch2.adb (Expand_Entry_Parameter): Generate an explicit
13638         dereference when accessing the entry parameter record.
13639         (Check_Array_Type): Always check for possible implicit dereference.
13640         (maybe_implicit_dereference): Rename to check_no_implicit_derefence.
13641         Abort if a pointer is still present (denoting that an implicit
13642         dereference was left in the tree by the front-end).
13643
13644         * sem_attr.adb (Expand_Entry_Parameter): Generate an explicit
13645         dereference when accessing the entry parameter record.
13646         (Check_Array_Type): Always check for possible implicit dereference.
13647         (maybe_implicit_dereference): Rename to check_no_implicit_derefence.
13648         Abort if a pointer is still present (denoting that an implicit
13649         dereference was left in the tree by the front-end).
13650
13651 2004-06-11  Emmanuel Briot  <briot@act-europe.fr>
13652
13653         * g-debpoo.adb (Deallocate, Dereference): Add prefix "error:" to error
13654         message, like the compiler itself does. Easier to parse the output.
13655
13656         * g-debpoo.ads: (Allocate, Deallocate, Dereference): Add comments.
13657
13658         * gnat_ugn.texi (gnatxref, gnatfind): Clarify that source names should
13659         be base names, and not includes directories.
13660
13661 2004-06-11  Arnaud Charlet  <charlet@act-europe.fr>
13662
13663         * Makefile.generic ($(EXEC)): Depend on $(OBJECTS), not $(OBJ_FILES),
13664         so that dependencies are properly taken into account by make.
13665
13666 2004-06-11  Arnaud Charlet  <charlet@act-europe.fr>
13667
13668         PR ada/15622
13669         * s-unstyp.ads, s-maccod.ads, sem_ch8.adb, s-auxdec.ads,
13670         exp_intr.adb, s-auxdec-vms_64.ads: Fix typo: instrinsic -> intrinsic
13671
13672 2004-06-11  Jerome Guitton  <guitton@act-europe.fr>
13673
13674         * Makefile.in (install-gnatlib): install target-specific run-time files.
13675
13676         * Make-lang.in: Remove obsolete targets.
13677
13678 2004-06-11  Ed Schonberg  <schonberg@gnat.com>
13679
13680         * par-ch12.adb (P_Generic): Add scope before analyzing subprogram
13681         specification, to catch misuses of program unit names.
13682
13683         * sem_res.adb (Resolve_Type_Conversion): Do not emit warnings on
13684         superfluous conversions in an instance.
13685
13686 2004-06-11  Ed Schonberg  <schonberg@gnat.com>
13687
13688         PR ada/15403
13689
13690         * sem_ch12.adb (Save_References): If operator node has been folded to
13691         enumeration literal, associated_node must be discarded.
13692
13693 2004-06-11  Jose Ruiz  <ruiz@act-europe.fr>
13694
13695         * s-stchop-vxworks.adb: Add required pragma Convention to
13696         Task_Descriptor because it is updated by a C function.
13697
13698 2004-06-08  Arnaud Charlet  <charlet@act-europe.fr>
13699
13700         PR ada/15568
13701
13702         * Makefile.in: Remove target specific SO_OPT on IRIX
13703
13704 2004-06-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13705
13706         * ada-tree.def (TRANSFORM_EXPR, ALLOCATE_EXPR, USE_EXPR): Deleted.
13707         (GNAT_NOP_EXPR, GNAT_LOOP_ID, EXPR_STMT, NULL_STMT): Likewise.
13708         (BLOCK_STMT, IF_STMT, GOTO_STMT, LABEL_STMT, RETURN_STMT): Likewise.
13709         (ASM_STMT, BREAK_STMT, REGION_STMT,HANDLER_STMT): Likewise.
13710         (STMT_STMT, USE_STMT): New statement codes.
13711         (LOOP_STMT, EXIT_STMT): Make slight semantic changes.
13712         * ada-tree.h: Reflect above changes.
13713         (struct tree_loop_id): Deleted.
13714         (union lang_tree_node, struct lang_decl, struct lang_type):
13715         Now just contains a tree node; update macros using TYPE_LANG_SPECIFIC
13716         and DECL_LANGUAGE_SPECIFIC to reflect these changes.
13717         (DECL_INIT_BY_ASSIGN_P, TRE_LOOP_NODE_ID, TREE_SLOC): Deleted.
13718         (IS_ADA_STMT): New macro.
13719         * decl.c (annotate_decl_with_node): New function.
13720         (gnat_to_gnu_entity): Use it and Sloc_to_locus instead of set_lineno.
13721         (gnat_to_gnu_entity, case object): Remove call to expand CONVERT_EXPR.
13722         Call add_stmt_with_node to do needed assignments.
13723         Add call to update setjmp buffer directly, not via EXPR_STMT.
13724         (maybe_variable): Argment GNAT_NODE deleted.
13725         * gigi.h (maybe_variable): Likewise.
13726         (make_transform, add_stmt_with_node, set_block_for_group): New.
13727         (gnat_gimplify_expr, gnat_expand_body, Sloc_to_locus): Likewise.
13728         (set_block_jmpbuf_decl, get_block_jmpbuf_decl): Likewise.
13729         (discard_file_names, gnu_block_stack, gnat_to_code): Deleted.
13730         (set_lineno, set_lineno_from_sloc): Likewise.
13731         (record_code_position, insert_code_for): Likewise.
13732         (gnat_poplevel): Now returns void.
13733         (end_subprog_body): Now takes argument.
13734         * misc.c (cgraph.h, tree-inline.h): New includes.
13735         (gnat_tree_size, LANG_HOOKS_TREE_SIZE): Deleted.
13736         (gnat_post_options, LANG_HOOKS_POST_OPTIONS): New.
13737         (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Likewise.
13738         (LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_GIMPLIFY_EXPR): Likewise.
13739         (gnat_parse_file): Don't set immediate_size_expand.
13740         Call cgraph functions.
13741         (gnat_expand_expr): Remove most cases.
13742         (record_code_position, insert_code_for): Remove from here.
13743         * trans.c (toplev.h, tree-gimple.h): Now included.
13744         (discard_file_names): Deleted.
13745         (gnu_block_stack, gnu_block_stmt_node, gnu_block_stmt_free_list): Del.
13746         (first_nondeleted_insn, make_expr_stmt_from_rtl): Likewise.
13747         (struct stmt_group, current_stmt_group, stmt_group_free_list): New.
13748         (gnu_stack_free_list, record_cost_position, insert_code_for): Likewise.
13749         (add_cleanup, push_stack, gnat_gimplify_stmt, add_cleanup): Likewise.
13750         (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Likewise.
13751         (gnat_expand_body_1, gnat_gimplify_expr, annotate_with_node): Likewise.
13752         (set_block_for_group, add_stmt_list): Likewise.
13753         (start_stmt_group): Renamed from start_block_stmt.
13754         (end_stmt_group): Likewise, from end_block_stmt.
13755         (build_stmt_group): Likewise, from build_block_stmt, also add arg.
13756         (gigi): Don't set discard_file_names or call set_lineno.
13757         Disallow front end ZCX; call gnat_to_gnu, not gnat_to_code.
13758         (tree_transform): Deleted, now renamed to be gnat_to_gnu.
13759         Numerous changes throughout to reflect new names and complete
13760         function-at-a-time implementation.
13761         (gnat_expand_stmt): Delete or comment out all cases.
13762         (process_inlined_subprograms): Use add_stmt.
13763         (process_decls): Use gnat_to_gnu, not gnat_to_code, and don't
13764         call set_lineno; also remove unneeded block handling.
13765         (process_type): Remove unneeded block handling.
13766         (build_unit_elab): Remove calls to deleted functions.
13767         * utils.c (cgraph.h, tree-inline.h, tree-gimple.h): Now include.
13768         (tree-dump.h): Likewise.
13769         (struct ada_binding_level): Add field jmpbuf_decl.
13770         (gnat_define_builtin, gnat_install_builtins): New.
13771         (gnat_gimplify_function, gnat_finalize): Likewise.
13772         (gnat_poplevel): No longer return BLOCK, set it instead.
13773         Remove code dealing with nested functions.
13774         (gnat_init_decl_processing): Also set size_type_node.
13775         Call gnat_install_builtins.
13776         (create_var_decl): Don't set DECL_INIT_BY_ASSIGN.
13777         (create_subprog_decl): Change handling of inline_flag; set TREE_STATIC.
13778         Remove special-case for "main".
13779         (end_subprog_body): Add arg and rework for tree-ssa.
13780         (convert): Don't use GNAT_NOP_EXPR or look for TRANSFORM_EXPR.
13781         Add case for BOOLEAN_TYPE.
13782         * utils2.c (rtl.h): Now include.
13783         (build_call_raise): Test Debug_Flag_NN directly.
13784         (build_call_alloc_dealloc): Don't use local stack allocation for now.
13785         (gnat_mark_addressable, case GNAT_NOP_EXPR): Deleted.
13786         (gnat_mark_addressable, case VAR_DECL): Handle both early & late cases.
13787
13788 2004-06-07  Robert Dewar  <dewar@gnat.com>
13789
13790         * a-direct.ads, einfo.ads: Minor comment updates
13791
13792         * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
13793         s-taprop-irix-athread.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
13794         s-taprop-dummy.adb, s-taprop-os2.adb, s-taprop-solaris.adb,
13795         s-taprop-vms.adb, s-taprop-mingw.adb, s-taprop-vxworks.adb,
13796         s-taprop-posix.adb, s-taprop.ads, exp_dbug.adb: Minor reformatting.
13797
13798         * s-interr-sigaction.adb: Remove unreferenced variable
13799         (Attached_Interrupts).  Minor reformatting.
13800         Avoid use of variable I (replace by J).
13801
13802         * par-ch10.adb: Fix text of one error message
13803
13804         * checks.adb, checks.ads, cstand.adb, vms_data.ads, errout.ads,
13805         exp_aggr.adb, exp_ch3.adb, exp_ch3.ads, exp_ch5.adb, exp_ch6.adb,
13806         exp_ch9.adb, exp_code.adb, gnat1drv.adb, lib-load.adb, lib-writ.adb,
13807         opt.adb, par.adb, opt.ads, par-ch11.adb, par-ch3.adb, par-ch4.adb,
13808         par-ch5.adb, par-ch6.adb, par-ch8.adb, par-ch9.adb, par-prag.adb,
13809         par-util.adb, scng.adb, sem_aggr.adb, sem_attr.adb, sem_cat.adb,
13810         sem_ch10.adb, sem_ch10.adb, sem_ch11.adb, sem_ch12.adb, sem_ch2.adb,
13811         sem_ch3.adb, sem_ch3.ads, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb,
13812         sem_ch7.adb, sem_ch8.adb, sem_ch9.adb, sem_eval.adb, sem_prag.adb,
13813         sem_res.adb, sem_type.adb, sem_util.adb, sinfo.ads, snames.adb,
13814         snames.ads, snames.h, sprint.adb, switch-c.adb: Modifications for Ada
13815         2005 support.
13816
13817 2004-06-07  Doug Rupp  <rupp@gnat.com>
13818
13819         * mlib-tgt-vms.adb: Rename mlib-tgt-vms.adb mlib-tgt-vms-alpha.adb
13820
13821         * s-vaflop-vms.adb: Rename s-vaflop-vms.adb to s-vaflop-vms-alpha.adb
13822
13823         * mlib-tgt-vms-ia64.adb: New file.
13824
13825         * Makefile.in: Rename mlib-tgt-vms.adb to mlib-tgt-vms-alpha.adb
13826         Add mlib-tgt-vms-ia64.adb
13827         Rename s-vaflop-vms.adb to s-vaflop-vms-alpha.adb.
13828         Move to alpha specific ifeq section.
13829         Add VMS specific versions of symbols.adb
13830         Renaming of 5q vms files.
13831
13832         * 5qsystem.ads renamed to system-vms_64.ads.
13833
13834 2004-06-07  Vincent Celier  <celier@gnat.com>
13835
13836         * a-calend.ads: Add a GNAT Note comment after function Time_Of to
13837         explain that when a time of day corresponding to the non existing hour
13838         on the day switching to DST is specified, Split may return a different
13839         value for Seconds.
13840
13841         * gnatcmd.adb: Add processing of GNAT METRIC (for gnatmetric), similar
13842         to GNAT PRETTY.
13843
13844         * g-os_lib.adb (OpenVMS): New Boolean value imported from System.
13845         (Normalize_Pathname): Only resolve VMS logical names when on VMS.
13846
13847         * mlib-prj.adb (Build_Library): New flag Gtrasymobj_Needed, initialize
13848         to False.
13849         If Gtrasymobj_Needed is True, add the full path of g-trasym.obj to
13850         the linking options.
13851         (Build_Library.Check_Libs): On VMS, if there is a dependency on
13852         g-trasym.ads, set Gtrasymobj_Needed to True.
13853
13854         * prj-attr.adb: Add new package Metrics for gnatmetric
13855
13856         * prj-nmsc.adb (Record_Other_Sources): Put source file names in
13857         canonical case to take into account files with upper case characters on
13858         Windows.
13859         (Ada_Check): Load the reference symbol file name in the name buffer to
13860         check it, not the symbol file name.
13861
13862         * snames.ads, snames.adb: Add standard name Metrics (name of project
13863         file package for gnatmetric).
13864
13865         * vms_conv.ads: Add Metric to Comment_Type
13866
13867         * vms_conv.adb (Initialize): Add component dor Metric in Command_List
13868
13869         * vms_data.ads: Add qualifiers for GNAT METRIC
13870
13871         * makegpr.adb (Link_Executables): Take into account the switches
13872         specified in package Linker of the main project.
13873
13874 2004-06-07  Thomas Quinot  <quinot@act-europe.fr>
13875
13876         * bindgen.adb (Set_Unit_Number): Units is an instance of Table, and so
13877         the index of the last element is Units.Last, not Units.Table'Last
13878         (which is usually not a valid index within the actually allocated
13879         storage for the table).
13880
13881         * exp_ch4.adb (Insert_Dereference_Action): Change predicate that
13882         determines whether to generate a call to a checked storage pool
13883         Dereference action.
13884         Generate such a call only for a dereference that either comes from
13885         source, or is the result of rewriting a dereference that comes from
13886         source.
13887
13888 2004-06-07  Romain Berrendonner  <berrendo@act-europe.fr>
13889
13890         * bindgen.adb (Gen_Output_File): Add support for GAP builds.
13891
13892 2004-06-07  Eric Botcazou  <ebotcazou@act-europe.fr>
13893
13894         (gnat_to_gnu_entity) <E_Array_Subtype>: For multi-dimensional arrays at
13895         file level, elaborate the stride for inner dimensions in alignment
13896         units, not bytes.
13897
13898         * exp_ch5.adb: Correct wrong reference to Component_May_Be_Bit_Aligned
13899         in a comment.
13900
13901 2004-06-07  Javier Miranda  <miranda@gnat.com>
13902
13903         * exp_ch6.adb: Correct wrong modification in previous patch
13904
13905 2004-06-07  Vasiliy Fofanov  <fofanov@act-europe.fr>
13906
13907         * g-trasym.ads: Corrected comment to properly reflect level of support
13908         on VMS.
13909
13910 2004-06-07  Hristian Kirtchev  <kirtchev@gnat.com>
13911
13912         * lib-xref.adb (Generate_Reference): Add nested function Is_On_LHS. It
13913         includes case of a variable referenced on the left hand side of an
13914         assignment, therefore remove redundant code. Variables and prefixes of
13915         indexed or selected components are now marked as referenced on left
13916         hand side. Warnings are now properly emitted when variables or prefixes
13917         are assigned but not read.
13918
13919         * sem_warn.adb (Output_Unreferenced_Messages): Add additional checks to
13920         left hand side referenced variables. Private access types do not
13921         produce the warning "variable ... is assigned but never read".
13922         Add also additional checks to left hand side referenced variables.
13923         Aliased, renamed objects and access types do not produce the warning
13924         "variable ... is assigned but never read" since other entities may read
13925         the memory location.
13926
13927 2004-06-07  Jerome Guitton  <guitton@act-europe.fr>
13928
13929         * Makefile.in: In the powerpc/vxworks-specific section, restore
13930         EXTRA_GNATRTL_NONTASKING_OBJS and EXTRA_GNATRTL_TASKING_OBJS (removed
13931         by mistake).
13932
13933 2004-06-07  Ed Schonberg  <schonberg@gnat.com>
13934
13935         * sem_ch4.adb (Remove_Abstract_Operations): Refine the removal of
13936         predefined operators.
13937         Removes spurious type errors from g-trasym-vms.adb.
13938
13939         * sem_res.adb (Rewrite_Renamed_Operator): If intrinsic operator is
13940         distinct from the operator appearing in the source, call appropriate
13941         routine to insert conversions when needed, and complete resolution of
13942         node.
13943         (Resolve_Intrinsic_Operator): Fix cut-and-paste bug on transfer of
13944         interpretations for rewritten right operand.
13945         (Set_Mixed_Mode_Operand): Handle properly a universal real operand when
13946         the other operand is overloaded and the context is a type conversion.
13947
13948 2004-06-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13949
13950         * ada-tree.def (BLOCK_STMT): Now has two operands.
13951         (BREAK_STMT): New.
13952
13953         * ada-tree.h: (BLOCK_STMT_BLOCK): New macro.
13954
13955         * gigi.h: (gnat_poplevel): Now returns a tree.
13956
13957         * trans.c (end_block_stmt): Add arg; all callers changed.
13958         (tree_transform, case N_Case_Statement): Make a BLOCK_STMT for a WHEN.
13959         (start_block_stmt): Clear BLOCK_STMT_BLOCK.
13960         (add_stmt): Set TREE_TYPE.
13961         (gnat_expand_stmt, case BLOCK_STMT): Handle BLOCK_STMT_BLOCK.
13962         (gnat_expand_stmt, case BREAK_STMT): New case.
13963
13964         * utils.c (gnat_poplevel): Return a BLOCK, if we made one.
13965
13966 2004-06-07  Jose Ruiz  <ruiz@act-europe.fr>
13967
13968         * s-stchop.adsm s-stchop.adb, s-stchop-vxworks.adb: Remove the
13969         procedure Set_Stack_Size that is not needed.
13970
13971 2004-06-07  Sergey Rybin  <rybin@act-europe.fr>
13972
13973         * gnat_ugn.texi: Clarify the case when non-standard naming scheme is
13974         used for gnatpp input file and for the files upon which it depends
13975
13976 2004-06-07  Ben Brosgol  <brosgol@gnat.com>
13977
13978         * gnat_ugn.texi: Wordsmithing of "GNAT and Libraries" chapter
13979
13980 2004-06-07  Arnaud Charlet  <charlet@act-europe.fr>
13981
13982         * gnatvsn.ads: Bump version numbers appropriately.
13983         Add new build type.
13984
13985 2004-06-07  Pascal Obry  <obry@gnat.com>
13986
13987         * gnat_ugn.texi: Improve comments about imported names and link names
13988         on Windows. Add a note about the requirement to use -k gnatdll's option
13989         when working with a DLL which has stripped stdcall symbols (no @nn
13990         suffix).
13991
13992 2004-05-27  Vincent Celier  <celier@gnat.com>
13993
13994         * vms_data.ads: Add new GNAT PRETTY qualifiers /NO_BACKUP and
13995         COMMENTS_LAYOUT=UNTOUCHED
13996
13997         * symbols-vms.adb, symbols-vms-alpha.adb: Renamed symbols-vms.adb to
13998         symbols-vms-alpha.adb
13999
14000 2004-05-27  Thomas Quinot  <quinot@act-europe.fr>
14001
14002         * sem.ads: Clarify documentation on checks suppression.
14003
14004         * einfo.ads (Is_Known_Non_Null): Minor comment typo fix and rephrasing.
14005
14006 2004-05-27  Ed Schonberg  <schonberg@gnat.com>
14007
14008         * sem_util.adb (Is_Descendent_Of): Examine properly all ancestors in
14009         the case of multiple derivations.
14010         (Is_Object_Reference): For a selected component, verify that the prefix
14011         is itself an object and not a value.
14012
14013         * sem_ch12.adb (Same_Instantiated_Constant): New name for
14014         Same_Instantiated_Entity.
14015         (Same_Instantiated_Variable): Subsidiary to
14016         Check_Formal_Package_Instance, to recognize actuals for in-out generic
14017         formals that are obtained from a previous formal package.
14018         (Instantiate_Subprogram_Body): Emit proper error when
14019         generating code and the proper body of a stub is missing.
14020
14021         * sem_ch4.adb (Remove_Address_Interpretations): If the operation still
14022         has a universal interpretation, do the disambiguation here.
14023
14024         * exp_ch4.adb (Expand_N_Type_Conversion,
14025         Expand_N_Unchecked_Type_Conversion): Special handling when target type
14026         is Address, to avoid typing anomalies when Address is a visible integer
14027         type.
14028
14029         * exp_ch6.adb (Expand_N_Subprogram_Body): Use Is_Descendent_Of_Address
14030         to determine whether a subprogram should not be marked Pure, even when
14031         declared in a pure package.
14032
14033 2004-05-27  Jose Ruiz  <ruiz@act-europe.fr>
14034
14035         * gnat_ugn.texi: Replace pragma Ravenscar by pragma Profile.
14036
14037         * gnat_rm.texi: Replace Max_Entry_Queue_Depth by Max_Entry_Queue_Length
14038         Document No_Dynamic_Attachment, that supersedes No_Dynamic_Interrupts.
14039         Update the documentation about the Ravenscar profile, following the
14040         definition found in AI-249.
14041
14042         * sem_prag.adb: Use FIFO_Within_Priorities and Ceiling_Locking when
14043         setting the Profile (Ravenscar). This must be done in addition to
14044         setting the required restrictions.
14045
14046         * rtsfind.ads: Add the set of operations defined in package
14047         Ada.Interrupts.
14048
14049         * exp_ch6.adb: Check whether we are violating the No_Dynamic_Attachment
14050         restriction.
14051
14052 2004-05-27  Eric Botcazou  <ebotcazou@act-europe.fr>
14053
14054         lang-specs.h: Always require -c or -S and always redirect to /dev/null
14055         if -gnatc or -gnats is passed.
14056
14057 2004-05-27  Hristian Kirtchev  <kirtchev@gnat.com>
14058
14059         * sem_prag.adb (Sig_Flags): A Pragma_Unchecked_Union does not count as
14060         a significant reference. Warnings are now properly emitted when a
14061         discriminated type is not referenced.
14062
14063         * lib-xref.adb (Generate_Reference): A deferred constant completion,
14064         record representation clause or record type discriminant does not
14065         produce a reference to its corresponding entity. Warnings are now
14066         properly emitted when deferred constants and record types are not
14067         referenced.
14068
14069 2004-05-27  Geert Bosch  <bosch@gnat.com>
14070
14071         * Makefile.in: Use long version of libm routines on ia64 gnu/linux.
14072         Fixes ACATS Annex G tests.
14073
14074 2004-05-27  Robert Dewar  <dewar@gnat.com>
14075
14076         * rtsfind.adb (RTU_Loaded): Temporary kludge to get past bug of not
14077         handling WITH
14078
14079 2004-05-27  Arnaud Charlet  <charlet@act-europe.fr>
14080
14081         * s-interr.adb (Server_Task): Take into account case of early return
14082         from sigwait under e.g. linux.
14083
14084 2004-05-27  Sergey Rybin  <rybin@act-europe.fr>
14085
14086         * gnat_ugn.texi: Add description for the new gnatpp options:
14087          -rnb - replace the original source without creating its backup copy
14088          -c0 - do not format comments
14089
14090 2004-05-24  Geert Bosch  <bosch@gnat.com>
14091
14092         * a-numaux-x86.adb (Reduce): Reimplement using an approximation of Pi
14093         with 192 bits of precision, sufficient to reduce a double-extended
14094         arguments X with a maximum relative error of T'Machine_Epsilon, for X
14095         in -2.0**32 .. 2.0**32.
14096         (Cos, Sin):  Always reduce arguments of 1/4 Pi or larger, to prevent
14097         reduction by the processor, which only uses a 68-bit approximation of
14098         Pi.
14099         (Tan): Always reduce arguments and compute function either using
14100         the processor's fptan instruction, or by dividing sin and cos as needed.
14101
14102 2004-05-24  Doug Rupp  <rupp@gnat.com>
14103
14104         * adaint.c (__gnat_readdir): Cast CRTL function retun value to avoid
14105         gcc error on 32/64 bit VMS.
14106
14107 2004-05-24  Olivier Hainque  <hainque@act-europe.fr>
14108
14109         * init.c (__gnat_error_handler): Handle EEXIST as EACCES for SIGSEGVs,
14110         since this is what we get for stack overflows although not documented
14111         as such.
14112         Document the issues which may require adjustments to our signal
14113         handlers.
14114
14115 2004-05-24  Ed Schonberg  <schonberg@gnat.com>
14116
14117         * inline.adb (Add_Scope_To_Clean): Do not add cleanup actions to the
14118         enclosing dynamic scope if the instantiation is within a generic unit.
14119
14120 2004-05-24  Arnaud Charlet  <charlet@act-europe.fr>
14121
14122         * exp_dbug.ads: Fix typo.
14123
14124         * Makefile.in: s-osinte-linux-ia64.ads was misnamed.
14125         Rename it to its proper name: system-linux-ia64.ads
14126         (stamp-gnatlib1): Remove extra target specific run time files when
14127         setting up the rts directory.
14128
14129 2004-05-24  Javier Miranda  <miranda@gnat.com>
14130
14131         * einfo.ads, einfo.adb (Limited_Views): Removed.
14132         (Limited_View): New attribute that replaces the previous one. It is
14133         now a bona fide package with the limited-view list through the
14134         first_entity and first_private attributes.
14135
14136         * sem_ch10.adb (Install_Private_With_Clauses): Give support to
14137         limited-private-with clause.
14138         (Install_Limited_Withed_Unit): Install the private declarations of a
14139         limited-private-withed package. Update the installation of the shadow
14140         entities according to the new structure (see Build_Limited_Views)
14141         (Build_Limited_Views): Replace the previous implementation of the
14142         limited view by a package entity that references the first shadow
14143         entity plus the first shadow private entity (required for limited-
14144         private-with clause)
14145         (New_Internal_Shadow_Entity): Code cleanup.
14146         (Remove_Limited_With_Clause): Update the implementation to undo the
14147         new work carried out by Build_Limited_Views.
14148         (Build_Chain): Complete documentation.
14149         Replace Ada0Y by Ada 0Y in comments
14150         Minor reformating
14151
14152         * sem_ch3.adb (Array_Type_Declaration): In case of anonymous access
14153         types the level of accessibility depends on the enclosing type
14154         declaration.
14155
14156         * sem_ch8.adb (Find_Expanded_Name): Fix condition to detect shadow
14157         entities. Complete documentation of previous change.
14158
14159 2004-05-24  Robert Dewar  <dewar@gnat.com>
14160
14161         * namet.adb: Minor reformatting
14162         Avoid use of name I (replace by J)
14163         Minor code restructuring
14164
14165         * sem_ch6.adb: Minor reformatting
14166
14167         * lib-writ.adb: Do not set restriction as active if this is a
14168         Restriction_Warning case.
14169
14170         * sem_prag.adb: Reset restriction warning flag if real pragma
14171         restriction encountered.
14172
14173         * s-htable.adb: Minor reformatting
14174         Change rotate count to 3 in Hash (improves hash for small strings)
14175
14176         * 5qsystem.ads: Add comments for type Address (no literals allowed).
14177
14178         * gnat_ugn.texi: Add new section of documentation "Code Generation
14179         Control", which describes the use of -m switches.
14180
14181 2004-05-24  Eric Botcazou  <ebotcazou@act-europe.fr>
14182
14183         trans.c (tree_transform) <N_Identifier>: Do the dereference directly
14184         through the DECL_INITIAL for renamed variables.
14185
14186 2004-05-24  Arnaud Charlet  <charlet@act-europe.fr>
14187
14188         * s-osinte-linux-ia64.ads: Renamed system-linux-ia64.ads
14189
14190 2004-05-19  Joel Brobecker  <brobecker@gnat.com>
14191
14192         * exp_dbug.ads: Correct comments concerning handling of overloading,
14193         since we no longer use $ anymore.
14194
14195 2004-05-19  Sergey Rybin  <rybin@act-europe.fr>
14196
14197         * sem_ch10.adb (Optional_Subunit): When loading a subunit, do not
14198         ignore errors if ASIS_Mode is set. This prevents creating ASIS trees
14199         with illegal subunits.
14200
14201 2004-05-19  Ed Schonberg  <schonberg@gnat.com>
14202
14203         * sem_ch6.adb (Check_Following_Pragma): When compiling a subprogram
14204         body with front-end inlining enabled, check whether an inline pragma
14205         appears immediately after the body and applies to it.
14206
14207         * sem_prag.adb (Cannot_Inline): Emit warning if front-end inlining is
14208         enabled and the pragma appears after the body of the subprogram.
14209
14210 2004-05-17  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14211
14212         Part of function-at-a-time conversion
14213
14214         * misc.c (adjust_decl_rtl): Deleted.
14215         (LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK):
14216         Define.
14217
14218         * gigi.h: (adjust_decl_rtl, kept_level_p, set_block): Deleted.
14219         (add_decl_stmt, add_stmt, block_has_vars): New functions.
14220         (gnat_pushlevel, gnat_poplevel): Renamed from pushlevel and poplevel.
14221
14222         * decl.c (elaborate_expression, maybe_pad_type): Call add_decl_stmt
14223         when making a decl.
14224         (gnat_to_gnu_entity): Likewise.
14225         Use add_stmt to update setjmp buffer.
14226         Set TREE_ADDRESSABLE instead of calling put_var_into_stack and
14227         flush_addressof.
14228         No longer call adjust_decl_rtl.
14229         (DECL_INIT_BY_ASSIGN_P): New macro.
14230         (DECL_STMT_VAR): Likewise.
14231
14232         * trans.c (gigi): Call start_block_stmt to make the outermost
14233         BLOCK_STMT.
14234         (gnat_to_code, gnu_to_gnu, tree_transform, process_decls, process_type):
14235         Call start_block_stmt and end_block_stmt temporarily.
14236         Use gnat_expand_stmt instead of expand_expr_stmt.
14237         (add_decl_stmt): New function.
14238         (tree_transform): Call it.
14239         (add_stmt): Also emit initializing assignment for DECL_STMT if needed.
14240         (end_block_stmt): Set type and NULL_STMT.
14241         (gnat_expand_stmt): Make recursize call instead of calling
14242         expand_expr_stmt.
14243         (gnat_expand_stmt, case DECL_STMT): New case.
14244         (set_lineno_from_sloc): Do nothing if global.
14245         (gnu_block_stmt_node, gnu_block_stmt_free_list): New variables.
14246         (start_block_stmt, add_stmt, end_block_stmt): New functions.
14247         (build_block_stmt): Call them.
14248         (gnat_to_code): Don't expand NULL_STMT.
14249         (build_unit_elab): Rename pushlevel and poplevel to gnat_* and change
14250         args.
14251         (tree_transform): Likewise.
14252         (tree_transform, case N_Null_Statement): Return NULL_STMT.
14253         (gnat_expand_stmt, case NULL_STMT): New case.
14254         (gnat_expand_stmt, case IF_STMT): Allow nested IF_STMT to have no
14255         IF_STMT_TRUE.
14256
14257         * utils2.c (gnat_mark_addressable, case VAR_DECL): Do not set
14258         TREE_ADDRESSABLE.
14259
14260         * utils.c (create_var_decl): Do not call expand_decl or
14261         expand_decl_init.
14262         Set TREE_ADDRESSABLE instead of calling gnat_mark_addressable.
14263         Set DECL_INIT_BY_ASSIGN_P when needed and do not generate MODIFY_EXPR
14264         here.
14265         (struct e_stack): Add chain_next to GTY.
14266         (struct binding_level): Deleted.
14267         (struct ada_binding_level): New struct.
14268         (free_block_chain): New.
14269         (global_binding_level, clear_binding_level): Deleted.
14270         (global_bindings_p): Rework to see if no chain.
14271         (kept_level_p, set_block): Deleted.
14272         (gnat_pushlevel): Renamed from pushlevel and extensive reworked to use
14273         new data structure and work directly on BLOCK node.
14274         (gnat_poplevel): Similarly.
14275         (get_decls): Look at BLOCK_VARS.
14276         (insert_block): Work directly on BLOCK node.
14277         (block_has_var): New function.
14278         (pushdecl): Rework for new binding structures.
14279         (gnat_init_decl_processing): Rename and rework calls to pushlevel and
14280         poplevel.
14281         (build_subprog_body): Likewise.
14282         (end_subprog_body): Likewise; also set up BLOCK in DECL_INITIAL.
14283
14284         * ada-tree.def (DECL_STMT, NULL_STMT): New codes.
14285
14286         * ada-tree.h: (DECL_INIT_BY_ASSIGN_P): New macro.
14287         (DECL_STMT_VAR): Likewise.
14288
14289 2004-05-17  Robert Dewar  <dewar@gnat.com>
14290
14291         * restrict.ads, restrict.adb (Process_Restriction_Synonym): New
14292         procedure
14293
14294         * sem_prag.adb (Analyze_Pragma, case Restrictions): Cleanup handling
14295         of restriction synonyums by using
14296         Restrict.Process_Restriction_Synonyms.
14297
14298         * snames.ads, snames.adb: Add entries for Process_Restriction_Synonym
14299
14300         * s-restri.ads (Tasking_Allowed): Correct missing comment
14301
14302         * s-rident.ads: Add entries for restriction synonyms
14303
14304         * ali.adb: Fix some problems with badly formatted ALI files that can
14305         result in infinite loops.
14306
14307         * s-taprop-lynxos.adb, s-tpopsp-lynxos.adb, s-taprop-tru64.adb,
14308         s-tpopsp-posix-foreign.adb, s-taprop-irix.adb, s-interr-sigaction.adb,
14309         s-taprop-irix-athread.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
14310         s-taprop-dummy.adb, s-interr-dummy.adb, s-taprop-os2.adb,
14311         s-taprop-solaris.adb, s-tpopsp-solaris.adb, s-asthan-vms.adb,
14312         s-inmaop-vms.adb, s-interr-vms.adb, s-taprop-vms.adb,
14313         s-tpopde-vms.adb, s-taprop-mingw.adb, s-interr-vxworks.adb,
14314         s-taprop-vxworks.adb, s-tpopsp-vxworks.adb, s-taprop-posix.adb,
14315         s-tpopsp-posix.adb, s-tratas-default.adb, a-dynpri.adb,
14316         a-tasatt.adb, a-taside.adb, a-taside.ads, exp_attr.adb,
14317         exp_ch9.adb, g-thread.adb, rtsfind.ads, sem_attr.adb,
14318         s-interr.adb, s-interr.ads, s-soflin.ads, s-taasde.adb,
14319         s-taasde.ads, s-taenca.adb, s-taenca.ads, s-taprop.ads,
14320         s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads,
14321         s-tasini.adb, s-tasini.ads, s-taskin.adb, s-taskin.ads,
14322         s-tasque.adb, s-tasque.ads, s-tasren.adb, s-tasren.ads,
14323         s-tassta.adb, s-tassta.ads, s-tasuti.adb, s-tasuti.ads,
14324         s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
14325         s-tpoben.adb, s-tpobop.adb, s-tpobop.ads, s-tporft.adb,
14326         s-tposen.adb, s-tposen.ads, s-tratas.adb, s-tratas.ads: Change Task_ID
14327         to Task_Id (minor cleanup).
14328
14329 2004-05-17  Vincent Celier  <celier@gnat.com>
14330
14331         * g-os_lib.adb (Normalize_Pathname.Final_Value): Remove trailing
14332         directory separator.
14333
14334         * prj-proc.adb (Recursive_Process): Inherit attribute Languages from
14335         project being extended, if Languages is not declared in extending
14336         project.
14337
14338 2004-05-17  Javier Miranda  <miranda@gnat.com>
14339
14340         * sem_ch10.adb (Install_Limited_Withed_Unit): Do not install the
14341         limited view of a visible sibling.
14342
14343 2004-05-14  Robert Dewar  <dewar@gnat.com>
14344
14345         * gnat_ugn.texi: Minor change to -gnatS documentation
14346
14347         * sprint.adb: Remove some instances of Assert (False) and for this
14348         purpose replace them by output of a ??? string.
14349
14350         * checks.adb, exp_aggr.adb, sem_elim.adb: Remove useless pragma
14351         Assert (False).
14352
14353         * lib-writ.adb, lib-load.adb, lib.ads, lib.adb: Remove Dependent_Unit
14354         flag processing. This was suppressing required dependencies in
14355         No_Run_Time mode and is not needed since the binder does not generate
14356         references for things in libgnat anyway.
14357
14358         * sem_ch3.adb (Access_Type_Declaration): Reorganize code to avoid GCC
14359         warning.
14360
14361 2004-05-14  Thomas Quinot  <quinot@act-europe.fr>
14362
14363         * gnat_ugn.texi: Document AIX-specific issue with initialization of
14364         resolver library.
14365
14366         * exp_ch4.adb (Insert_Dereference_Action): Do not generate dereference
14367         action for the case of an actual parameter in an init proc call.
14368
14369 2004-05-14  Ed Schonberg  <schonberg@gnat.com>
14370
14371         * sem_ch4.adb (Analyze_Selected_Component): If prefix is a protected
14372         subtype, check visible entities in base type.
14373
14374         * exp_ch7.adb (Clean_Simple_Protected_Objects): Do not generate cleanup
14375         actions if the object is a renaming.
14376
14377         * sem_ch12.adb (Same_Instantiated_Entity): Predicate for
14378         Check_Formal_Package_Instance, to determine more precisely when the
14379         formal and the actual denote the same entity.
14380
14381 2004-05-14  Javier Miranda  <miranda@gnat.com>
14382
14383         * par-ch10.adb (P_Context_Clause): Complete documentation on AI-262
14384
14385         * sem_ch10.adb (Analyze_With_Clause): After analyzed, the entity
14386         corresponding to a private_with must be removed from visibility; it
14387         will be made visible later, just before we analyze the private part of
14388         the package.
14389         (Check_Private_Child_Unit): Allow private_with clauses in public
14390         siblings.
14391         (Install_Siblings): Make visible the private entities of private-withed
14392         siblings.
14393         (Install_Withed_Unit): Do not install the private withed unit if we
14394         are compiling a package declaration and the Private_With_OK flag was
14395         not set by the caller. These declarations will be installed later,
14396         just before we analyze the private part of the package.
14397
14398         * sem_ch3.adb (Analyze_Object_Declaration): In case of errors detected
14399         during the evaluation of the expression that initializes the object,
14400         decorate it with the expected type to avoid cascade errors.
14401         Code cleanup.
14402
14403         * sem_ch6.adb (Analyze_Subprogram_Body): If we are compiling a library
14404         subprogram we have to install the private_with clauses after its
14405         specification has been analyzed (as documented in AI-262.TXT).
14406
14407         * sem_ch8.adb (Has_Private_With): New function. Determines if the
14408         current compilation unit has a private with on a given entity.
14409         (Find_Direct_Name): Detect the Beaujolais problem described in
14410         AI-262.TXT
14411
14412         * sem_utils.ads, sem_util.adb (Is_Ancestor_Package): New function. It
14413         provides the functionality of the function Is_Ancestor that was
14414         previously available in sem_ch10. It has been renamed to avoid
14415         overloading.
14416
14417         * sprint.adb (Sprint_Node_Actual): Print limited_with clauses
14418
14419 2004-05-14  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14420
14421         * utils.c (build_vms_descriptor): Use SImode pointers.
14422
14423 2004-05-14  Vasiliy Fofanov  <fofanov@act-europe.fr>
14424
14425         * gnat_ugn.texi: Revised chapter "GNAT and Libraries".
14426
14427 2004-05-14  GNAT Script  <nobody@gnat.com>
14428
14429         * Make-lang.in: Makefile automatically updated
14430
14431 2004-05-14  Arnaud Charlet  <charlet@act-europe.fr>
14432
14433         Renaming of target specific files for clarity
14434
14435         * Makefile.in: Rename GNAT target specific files.
14436
14437         * 31soccon.ads, 31soliop.ads 35soccon.ads, 3asoccon.ads,
14438         3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3psoccon.ads,
14439         3ssoccon.ads, 3ssoliop.ads, 3veacodu.adb, 3vexpect.adb,
14440         3vsoccon.ads, 3vsocthi.adb, 3vsocthi.ads, 3vtrasym.adb,
14441         3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads, 3wsoliop.ads,
14442         3zsoccon.ads, 3zsocthi.adb, 3zsocthi.ads, 41intnam.ads,
14443         42intnam.ads, 45intnam.ads, 4aintnam.ads, 4cintnam.ads,
14444         4gintnam.ads, 4hexcpol.adb, 4hintnam.ads, 4lintnam.ads,
14445         4nintnam.ads, 4ointnam.ads, 4onumaux.ads, 4pintnam.ads,
14446         4sintnam.ads, 4vcaldel.adb, 4vcalend.adb, 4vcalend.ads,
14447         4vintnam.ads, 4wcalend.adb, 4wexcpol.adb, 4wintnam.ads,
14448         4zintnam.ads, 4znumaux.ads, 4zsytaco.adb, 4zsytaco.ads,
14449         51osinte.adb, 51osinte.ads, 51system.ads,
14450         52osinte.adb, 52osinte.ads, 53osinte.ads, 54osinte.ads,
14451         55osinte.adb, 55osinte.ads, 55system.ads, 56osinte.adb,
14452         56osinte.ads, 56system.ads, 56taprop.adb, 56taspri.ads,
14453         56tpopsp.adb, 57system.ads, 58system.ads,
14454         5amastop.adb, 5aml-tgt.adb, 5aosinte.adb, 5aosinte.ads,
14455         5asystem.ads, 5ataprop.adb, 5atasinf.ads, 5ataspri.ads,
14456         5atpopsp.adb, 5avxwork.ads, 5bml-tgt.adb, 5bosinte.adb,
14457         5bosinte.ads, 5bsystem.ads, 5cosinte.ads, 5csystem.ads,
14458         5dsystem.ads, 5esystem.ads, 5fintman.adb, 5fosinte.adb,
14459         5fosinte.ads, 5fsystem.ads, 5ftaprop.adb, 5ftasinf.ads,
14460         5ginterr.adb, 5gintman.adb, 5gmastop.adb, 5gml-tgt.adb,
14461         5gosinte.ads, 5gproinf.adb, 5gproinf.ads, 5gsystem.ads,
14462         5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads, 5gtpgetc.adb,
14463         5hml-tgt.adb, 5hosinte.adb, 5hosinte.ads, 5hparame.ads,
14464         5hsystem.ads, 5htaprop.adb, 5htaspri.ads, 5htraceb.adb,
14465         5iosinte.adb, 5iosinte.ads, 5itaprop.adb, 5itaspri.ads,
14466         5ksystem.ads, 5kvxwork.ads, 5lml-tgt.adb, 5losinte.ads,
14467         5lparame.adb, 5lsystem.ads, 5msystem.ads, 5mvxwork.ads,
14468         5ninmaop.adb, 5nintman.adb, 5nosinte.ads, 5nsystem.ads,
14469         5ntaprop.adb, 5ntaspri.ads, 5ointerr.adb, 5omastop.adb,
14470         5oosinte.adb, 5oosinte.ads, 5oosprim.adb, 5oparame.adb,
14471         5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5posinte.ads,
14472         5posprim.adb, 5psystem.ads, 5pvxwork.ads, 5sintman.adb,
14473         5sml-tgt.adb, 5sosinte.adb, 5sosinte.ads, 5sosprim.adb,
14474         5sparame.adb, 5ssystem.ads, 5staprop.adb, 5stasinf.adb,
14475         5stasinf.ads, 5staspri.ads, 5stpopsp.adb, 5svxwork.ads,
14476         5tosinte.ads, 5usystem.ads, 5vasthan.adb, 5vdirval.adb,
14477         5vinmaop.adb, 5vinterr.adb, 5vintman.adb, 5vintman.ads,
14478         5vmastop.adb, 5vml-tgt.adb, 5vosinte.adb, 5vosinte.ads,
14479         5vosprim.adb, 5vosprim.ads, 5vparame.ads, 5vsymbol.adb,
14480         5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads, 5vtpopde.adb,
14481         5vtpopde.ads, 5vtraent.adb, 5vtraent.ads, 5vvaflop.adb,
14482         5wdirval.adb, 5wgloloc.adb, 5wintman.adb, 5wmemory.adb,
14483         5wml-tgt.adb, 5wosinte.ads, 5wosprim.adb, 5wsystem.ads,
14484         5wtaprop.adb, 5wtaspri.ads, 5xparame.ads, 5xsystem.ads,
14485         5xvxwork.ads, 5yparame.ads, 5ysystem.ads, 5zinterr.adb,
14486         5zintman.adb, 5zintman.ads, 5zml-tgt.adb, 5zosinte.adb,
14487         5zosinte.ads, 5zosprim.adb, 5zparame.ads, 5zstchop.adb,
14488         5zsystem.ads, 5ztaprop.adb, 5ztaspri.ads, 5ztfsetr.adb,
14489         5ztpopsp.adb, 6vcpp.adb, 6vcstrea.adb, 6vinterf.ads,
14490         7sinmaop.adb, 7sintman.adb, 7sosinte.adb, 7sosprim.adb,
14491         7staprop.adb, 7staspri.ads, 7stfsetr.adb, 7stpopsp.adb,
14492         7straceb.adb, 7straces.adb, 7strafor.adb, 7strafor.ads,
14493         7stratas.adb, 86numaux.adb, 86numaux.ads: Replaced by files below.
14494
14495         * a-caldel-vms.adb, a-calend-mingw.adb, a-calend-vms.adb,
14496         a-calend-vms.ads, a-dirval-mingw.adb, a-dirval-vms.adb,
14497         a-excpol-abort.adb, a-excpol-interix.adb, a-intnam-aix.ads,
14498         a-intnam-dummy.ads, a-intnam-freebsd.ads, a-intnam-hpux.ads,
14499         a-intnam-interix.ads, a-intnam-irix.ads, a-intnam-linux.ads,
14500         a-intnam-lynxos.ads, a-intnam-mingw.ads, a-intnam-os2.ads,
14501         a-intnam-solaris.ads, a-intnam-tru64.ads, a-intnam-unixware.ads,
14502         a-intnam-vms.ads, a-intnam-vxworks.ads, a-numaux-libc-x86.ads,
14503         a-numaux-vxworks.ads, a-numaux-x86.adb, a-numaux-x86.ads,
14504         a-sytaco-vxworks.adb, a-sytaco-vxworks.ads, g-eacodu-vms.adb,
14505         g-expect-vms.adb, g-soccon-aix.ads, g-soccon-freebsd.ads,
14506         g-soccon-hpux.ads, g-soccon-interix.ads, g-soccon-irix.ads,
14507         g-soccon-mingw.ads, g-soccon-solaris.ads, g-soccon-tru64.ads,
14508         g-soccon-unixware.ads, g-soccon-vms.adb, g-soccon-vxworks.ads,
14509         g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vms.adb,
14510         g-socthi-vms.ads, g-socthi-vxworks.adb, g-socthi-vxworks.ads,
14511         g-soliop-mingw.ads, g-soliop-solaris.ads, g-soliop-unixware.ads,
14512         g-trasym-vms.adb, i-cpp-vms.adb, i-cstrea-vms.adb,
14513         interfac-vms.ads, mlib-tgt-aix.adb, mlib-tgt-hpux.adb,
14514         mlib-tgt-irix.adb, mlib-tgt-linux.adb, mlib-tgt-mingw.adb,
14515         mlib-tgt-solaris.adb, mlib-tgt-tru64.adb, mlib-tgt-vms.adb,
14516         mlib-tgt-vxworks.adb, s-asthan-vms.adb, s-gloloc-mingw.adb,
14517         s-inmaop-dummy.adb, s-inmaop-posix.adb, s-inmaop-vms.adb,
14518         s-interr-dummy.adb, s-interr-sigaction.adb, s-interr-vms.adb,
14519         s-interr-vxworks.adb, s-intman-dummy.adb, s-intman-irix.adb,
14520         s-intman-irix-athread.adb, s-intman-mingw.adb, s-intman-posix.adb,
14521         s-intman-solaris.adb, s-intman-vms.adb, s-intman-vms.ads,
14522         s-intman-vxworks.adb, s-intman-vxworks.ads, s-mastop-irix.adb,
14523         s-mastop-tru64.adb, s-mastop-vms.adb, s-mastop-x86.adb,
14524         s-memory-mingw.adb, s-osinte-aix.adb, s-osinte-aix.ads,
14525         s-osinte-aix-fsu.ads, s-osinte-dummy.ads, s-osinte-freebsd.adb,
14526         s-osinte-freebsd.ads, s-osinte-fsu.adb, s-osinte-hpux.ads,
14527         s-osinte-hpux-dce.adb, s-osinte-hpux-dce.ads, s-osinte-interix.ads,
14528         s-osinte-irix.adb, s-osinte-irix.ads, s-osinte-irix-athread.ads,
14529         s-osinte-linux.ads, s-osinte-linux-fsu.ads, s-osinte-linux-ia64.ads,
14530         s-osinte-lynxos-3.adb, s-osinte-lynxos-3.ads, s-osinte-lynxos.adb,
14531         s-osinte-lynxos.ads, s-osinte-mingw.ads, s-osinte-os2.adb,
14532         s-osinte-os2.ads, s-osinte-posix.adb, s-osinte-solaris.adb,
14533         s-osinte-solaris.ads, s-osinte-solaris-fsu.ads,
14534         s-osinte-solaris-posix.ads, s-osinte-tru64.adb, s-osinte-tru64.ads,
14535         s-osinte-unixware.adb, s-osinte-unixware.ads, s-osinte-vms.adb,
14536         s-osinte-vms.ads, s-osinte-vxworks.adb,
14537         s-osinte-vxworks.ads, s-osprim-mingw.adb,
14538         s-osprim-os2.adb, s-osprim-posix.adb, s-osprim-solaris.adb,
14539         s-osprim-unix.adb, s-osprim-vms.adb, s-osprim-vms.ads,
14540         s-osprim-vxworks.adb, s-parame-ae653.ads, s-parame-hpux.ads,
14541         s-parame-linux.adb, s-parame-os2.adb, s-parame-solaris.adb,
14542         s-parame-vms.ads, s-parame-vms-restrict.ads, s-parame-vxworks.ads,
14543         s-proinf-irix-athread.adb, s-proinf-irix-athread.ads,
14544         s-stchop-vxworks.adb, s-taprop-dummy.adb,
14545         s-taprop-hpux-dce.adb, s-taprop-irix.adb,
14546         s-taprop-irix-athread.adb, s-taprop-linux.adb, s-taprop-lynxos.adb,
14547         s-taprop-mingw.adb, s-taprop-os2.adb, s-taprop-posix.adb,
14548         s-taprop-solaris.adb, s-taprop-tru64.adb, s-taprop-vms.adb,
14549         s-taprop-vxworks.adb, s-tasinf-irix.ads, s-tasinf-irix-athread.adb,
14550         s-tasinf-irix-athread.ads, s-tasinf-solaris.adb, s-tasinf-solaris.ads,
14551         s-tasinf-tru64.ads, s-taspri-dummy.ads, s-taspri-hpux-dce.ads,
14552         s-taspri-linux.ads, s-taspri-lynxos.ads, s-taspri-mingw.ads,
14553         s-taspri-os2.ads, s-taspri-posix.ads, s-taspri-solaris.ads,
14554         s-taspri-tru64.ads, s-taspri-vms.ads, s-taspri-vxworks.ads,
14555         s-tfsetr-default.adb, s-tfsetr-vxworks.adb, s-tpopde-vms.adb,
14556         s-tpopde-vms.ads, s-tpopsp-lynxos.adb, s-tpopsp-posix.adb,
14557         s-tpopsp-posix-foreign.adb, s-tpopsp-solaris.adb, s-tpopsp-vxworks.adb,
14558         s-traceb-hpux.adb, s-traceb-mastop.adb, s-traces-default.adb,
14559         s-traent-vms.adb, s-traent-vms.ads, s-trafor-default.adb,
14560         s-trafor-default.ads, s-tratas-default.adb, s-vaflop-vms.adb,
14561         s-vxwork-alpha.ads, s-vxwork-m68k.ads, s-vxwork-mips.ads,
14562         s-vxwork-ppc.ads, s-vxwork-sparcv9.ads, s-vxwork-xscale.ads,
14563         symbols-vms.adb, system-aix.ads, system-freebsd-x86.ads,
14564         system-hpux.ads, system-interix.ads, system-irix-n32.ads,
14565         system-irix-o32.ads, system-linux-x86_64.ads,
14566         system-linux-x86.ads, system-lynxos-ppc.ads, system-lynxos-x86.ads,
14567         system-mingw.ads, system-os2.ads, system-solaris-sparc.ads,
14568         system-solaris-sparcv9.ads, system-solaris-x86.ads, system-tru64.ads,
14569         system-unixware.ads, system-vms.ads, system-vms-zcx.ads,
14570         system-vxworks-alpha.ads, system-vxworks-m68k.ads,
14571         system-vxworks-mips.ads, system-vxworks-ppc.ads,
14572         system-vxworks-sparcv9.ads, system-vxworks-xscale.ads: Replace files
14573         above.
14574
14575 2004-05-13  Zack Weinberg  <zack@codesourcery.com>
14576
14577         * trans.c (gnat_stabilize_reference_1): Remove case 'b'.
14578
14579 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
14580
14581         Merge from tree-ssa-20020619-branch.
14582
14583         * config-lang.in (boot_language, build_by_default): Set
14584         to no.
14585         * utils.c (unchecked_convert): Use OEP_ONLY_CONST.
14586         (max_size): Add static chain op for call_expr.
14587
14588 2004-05-12  Richard Sandiford  <rsandifo@redhat.com>
14589
14590         PR target/15331
14591         * 5gmastop.adb (Roff): Choose between '4' and '0', not '4' and ' '.
14592
14593 2004-05-11  Roger Sayle  <roger@eyesopen.com>
14594
14595         * utils.c (max_size): Use MIN_EXPR to find the minimum value of a
14596         COND_EXPR.
14597
14598 2004-05-10  Doug Rupp  <rupp@gnat.com>
14599
14600         * 5qsystem.ads: Remove Short_Address subtype declaration. Moved to
14601         system.aux_dec.
14602
14603         * s-auxdec.ads: Add Short_Address subtype (moved here from System).
14604
14605         * Makefile.in: [VMS]: Add translation for 5qauxdec.ads.
14606
14607         * init.c: [VMS] Macroize LIB$ calls for IA64 and Alpha.
14608         Fixes undefined symbols in IA64 gnatlib.
14609
14610         * 5vinmaop.adb: Reference s-auxdec for Short_Address.
14611
14612         * 5xsystem.ads, 5vsystem.ads: Back out last change (addition of subtype
14613         Short_Address). This will be moved to system.auxdec.
14614
14615 2004-05-10  Thomas Quinot  <quinot@act-europe.fr>
14616
14617         * sem_util.adb: Replace test for presence of a node that is always
14618         present with a call to Discard_Node.
14619
14620         * sem_ch10.adb (Analyze_Compilation_Unit): Remove superfluous call to
14621         Analyze on the library unit node after generation of distribution stub
14622         constructs.  The call was a no-op because Unit_Node has already been
14623         Analyzed, and the tree fragments for the distribution stubs are
14624         analyzed as they are inserted in Exp_Dist.
14625         Update comment regarding to distribution stubs to reflect that we
14626         do not generate stub in separate files anymore.
14627
14628         * einfo.ads: Clarify the fact that a tagged private type has the
14629         E_Record_Type_With_Private Ekind.
14630
14631         * erroutc.adb: Minor reformatting
14632
14633         * erroutc.ads (Max_Msg_Length): Increase to cover possible larger
14634         values if line length is increased using -gnatyM (noticed during code
14635         reading).
14636
14637         * eval_fat.adb: Minor reformatting
14638         Put spaces around exponentiation operator
14639
14640 2004-05-10  Ed Schonberg  <schonberg@gnat.com>
14641
14642         PR ada/15005
14643         * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): If prefix
14644         has been rewritten as an explicit dereference, retrieve type of
14645         original node to check for possibly unconstrained record type.
14646
14647 2004-05-10  Ed Schonberg  <schonberg@gnat.com>
14648
14649         * exp_ch7.adb (Check_Visibly_Controlled): If given operation is not
14650         overriding, use the operation of the parent unconditionally.
14651
14652         * sem_ch4.adb (Remove_Address_Interpretations): Remove address
14653         operation when either operand is a literal, to avoid further
14654         ambiguities.
14655
14656         * sem_ch6.adb (New_Overloaded_Entity): If new entity is inherited and
14657         overridden by a previous explicit declaration, mark the previous entity
14658         as overriding.
14659
14660         * sem_disp.adb (Check_Dispatching_Operation): New predicate
14661         Is_Visibly_Controlled, to determine whether a declaration of a
14662         primitive control operation for a derived type overrides an inherited
14663         one. Add warning if the explicit declaration does not override.
14664
14665 2004-05-10  Vincent Celier  <celier@gnat.com>
14666
14667         * gnatls.adb (Gnatls): Initialize Snames, to avoid assertion error in
14668         some cases when the sources are no longer present.
14669
14670         * make.adb (Collect_Arguments): Fail if an external source, not part
14671         of any project need to be compiled, when switch -x has not been
14672         specified.
14673
14674         * makeusg.adb: Document new switch -x
14675
14676         * opt.ads (External_Unit_Compilation_Allowed): New Boolean flag,
14677         defaulted to False.
14678
14679         * switch-m.adb (Scan_Make_Switches): New switch -x
14680
14681         * vms_data.ads: Add VMS qualifier /NON_PROJECT_UNIT_COMPILATION for
14682         gnatmake switch -x.
14683
14684         * gnat_ugn.texi: Document new gnatmake switch -x
14685
14686 2004-05-10  Eric Botcazou  <ebotcazou@act-europe.fr>
14687
14688         * misc.c (gnat_init_options): Set flag_zero_initialized_in_bss to 0.
14689
14690         * utils.c (create_var_decl): Do not modify the DECL_COMMON flag.
14691         (process_attributes): Likewise.
14692
14693 2004-05-10  Joel Brobecker  <brobecker@gnat.com>
14694
14695         * s-inmaop.ads: Fix spelling mistake in one of the comments.
14696
14697 2004-05-10  Robert Dewar  <dewar@gnat.com>
14698
14699         * gnat_ugn.texi: Document that for config pragma files, the maximum
14700         line length is always 32767.
14701
14702         * gnat_rm.texi: For pragma Eliminate, note that concatenation of string
14703         literals is now allowed.
14704
14705         * gnat-style.texi: Remove statement about splitting long lines before
14706         an operator rather than after, since we do not follow this rule at all.
14707         Clarify rule (really lack of rule) for spaces around exponentiation
14708
14709         * sem_elim.adb: Allow concatenation of string literals as well as a
14710         single string literal for pragma arguments.
14711
14712         * sem_prag.ads, sem_prag.adb: (Is_Config_Static_String): New function
14713
14714         * a-textio.adb (Terminate_Line): Do not add line feed if nothing
14715         written for append case.
14716
14717         * frontend.adb: Changes to avoid checking max line length in config
14718         pragma files.
14719
14720         * g-os_lib.ads: Minor reformatting
14721
14722         * mlib-utl.adb: Do not define Max_Line_Length locally (definition was
14723         wrong in any case. Instead use standard value. Noticed during code
14724         reading.
14725
14726         * opt.ads (Max_Line_Length): New field, used to implement removal of
14727         limitation on length of lines when scanning config pragma files.
14728
14729         * osint.ads, prj-dect.adb, prj-strt.adb, prj-tree.adb,
14730         makeutl.ads, makeutl.adb: Minor reformatting
14731
14732         * scn.adb: Do not check line length while scanning config pragma files
14733         Do not check line length while scanning out license information
14734
14735         * scng.adb: Changes to avoid line length checks while parsing config
14736         pragma files.
14737
14738 2004-05-10  GNAT Script  <nobody@gnat.com>
14739
14740         * Make-lang.in: Makefile automatically updated
14741
14742 2004-05-05  Arnaud Charlet  <charlet@act-europe.fr>
14743
14744         * osint.adb (Find_Program_Name): Fix handling of VMS version
14745         number.
14746
14747 2004-05-05  Emmanuel Briot  <briot@act-europe.fr>
14748
14749         * g-os_lib.ads (Invalid_Time): New constant
14750
14751         * adaint.h, adaint.c (__gnat_file_time_name, __gnat_file_time_fd): Now
14752         return OS_Time instead of time_t to match what is imported by Ada.
14753         Now return -1 if the file doesn't exist, instead of a random value
14754
14755 2004-05-05  Robert Dewar  <dewar@gnat.com>
14756
14757         * usage.adb: Add line for -gnatR?s switch
14758
14759         * sem_ch13.adb, exp_ch2.adb: Minor reformatting
14760
14761         * g-regpat.ads, g-regpat.adb: Add documentation on handling of Size
14762         and for Match (Data_First, Data_last)
14763
14764         * lib-writ.adb (Write_With_Lines): Ensure that correct index number is
14765         written when we are dealing with multi-unit files.
14766
14767 2004-05-05  Jerome Guitton  <guitton@act-europe.fr>
14768
14769         * Makefile.in: Remove unused targets and variables.
14770
14771 2004-05-05  Vincent Celier  <celier@gnat.com>
14772
14773         * switch-m.adb: New gnatmake switch -eI
14774
14775         * vms_data.ads: Add VMS equivalents of new gnatclean swith -innn and
14776         of new gnatmake switch -eInnn.
14777
14778         * makegpr.adb: Take into account new parameters Index and Src_Index in
14779         Prj.Util.
14780
14781         * clean.adb: Implement support for multi-unit sources, including new
14782         switch -i.
14783
14784         * gnatcmd.adb (GNATCmd): Call Prj.Util.Value_Of with new parameter
14785         Src_Index.
14786
14787         * make.ads, make.adb (Insert_Q): New parameter Index, defaulted to 0
14788         (Extract_From_Q): New out parameter Index
14789         (Mark, Is_Marked): Subprograms moved to Makeutl
14790         (Switches_Of): New parameter Source_Index
14791         (Add_Switch): New parameter Index
14792         (Check): New parameter Source_Index
14793         (Collect_Arguments): New parameter Source_Index
14794         (Collect_Arguments_And_Compile): New parameter Source_Index
14795         (Compile): New parameter Source_Index
14796         Put subprograms in alphabetical order
14797         Add support for multi-source sources, including in project files.
14798
14799         * makeutl.ads, makeutl.adb (Unit_Index_Of): New function
14800         (Mark, Is_Marked, Delete_All_Marks): New subprograms, moved from
14801         Make.
14802
14803         * makeusg.adb: New gnatmake switch -eInnn
14804
14805         * mlib-prj.adb (Build_Library): Add new parameter Src_Index to call to
14806         Prj.Util.Value_Of.
14807
14808         * opt.ads (Main_Index): New variable, defaulted to 0.
14809
14810         * osint.ads, osinte.adb (Add_File): New parameter Index
14811         (Current_Source_Index): New function
14812
14813         * prj.adb: Take into account new components Index and Src_Index
14814
14815         * prj.ads (String_Element): New component Index
14816         (Variable_Value): New component Index
14817         (Array_Element): New component Src_Index
14818
14819         * prj-attr.adb: Indicate that optional index may be specified for
14820         attributes Main, Executable, Spec, Body and some of Switches.
14821
14822         * prj-attr.ads (Attribute_Kind): New values for optional indexes
14823         (Attribute_Record): New component Optional_Index
14824
14825         * prj-com.ads (File_Name_Data): New component Index
14826
14827         * prj-dect.adb (Parse_Attribute_Declaration): Process optional index
14828
14829         * prj-env.adb (Put): Output optional index
14830
14831         * prj-makr.adb: Put indexes for multi-unit sources in SFN pragmas and
14832         attributes Spec and Body.
14833
14834         * prj-nmsc.adb: Process optional indexes
14835
14836         * prj-pp.adb: Ouput "at" for optional indexes
14837
14838         * prj-proc.adb: Take into account optional indexes
14839
14840         * prj-strt.ads, prj-strt.adb (Terms): New Boolean parameter
14841         Optional_Index. For string literal,
14842         process optional index when Optional_Index is True.
14843         (Parse_Expresion): New Boolean parameter Optional_Index
14844
14845         * prj-tree.ads, prj-tree.adb (Source_Index_Of): New function
14846         (Set_Source_Index_Of): New procedure
14847
14848         * prj-util.adb (Executable_Of, Value_Of): Take into account optional
14849         index.
14850
14851         * prj-util.ads (Executable_Of): New parameter Index
14852         (Value_Of (Name_Id, Array_Element_Id) returning Variable_Value):
14853         New parameter Src_Index, defaulted to 0.
14854
14855 2004-05-05  Ed Schonberg  <schonberg@gnat.com>
14856
14857         PR ada/15257
14858         * sem_ch3.adb (Access_Definition): If this is an access parameter
14859         whose designated type is imported through a limited_with clause, do
14860         not add the enclosing subprogram to the list of private dependents of
14861         the type.
14862
14863 2004-05-05  Ed Schonberg  <schonberg@gnat.com>
14864
14865         PR ada/15258
14866         * sem_ch6.adb (Base_Types_Match): True if one type is imported through
14867         a limited_with clause, and the other is its non-limited view.
14868
14869 2004-05-05  Thomas Quinot  <quinot@act-europe.fr>
14870
14871         * cstand.adb (Create_Standard): Initialize Stand.Boolean_Literals.
14872
14873         * exp_attr.adb, exp_ch5.adb, exp_ch9.adb, exp_disp.adb,
14874         exp_fixd.adb, sem_attr.adb, sem_dist.adb, sem_util.adb: Use
14875         Stand.Boolean_Literals to produce references to entities
14876         Standard_False and Standard_True from compile-time computed boolean
14877         values.
14878
14879         * stand.ads (Boolean_Literals): New variable, provides the entity
14880         values for False and True, for use by the expander.
14881
14882 2004-05-05  Doug Rupp  <rupp@gnat.com>
14883
14884         * 5vinmaop.adb, 5[vx]system.ads: Add Short_Address subtype
14885         5vinmaop.adb: Unchecked convert Short_Address vice Address
14886
14887         * adaint.c, raise.c: Caste CRTL function return value
14888         to avoid gcc error on 32/64 bit IVMS.
14889
14890         * Makefile.in [VMS]: Use iar archiver if host = Alpha/VMS and
14891         target = IA64/VMS.
14892
14893         * init.c[VMS]: Only call Alpha specific __gnat_error_prehandler IN_RTS.
14894
14895         * 5qsystem.ads (Address): Declare as Long_Integer
14896         (Short_Address): Declare as 32 bit subtype of Address
14897         Declare  abstract address operations to avoid gratuitous ambiguities.
14898
14899 2004-05-05  Jose Ruiz  <ruiz@act-europe.fr>
14900
14901         * gnat_rm.texi: Use the new restriction Simple_Barriers (AI-249)
14902         instead of the old Boolean_Entry_Barriers.
14903         Ditto for No_Task_Attributes_Package instead of No_Task_Attributes.
14904
14905 2004-05-05  GNAT Script  <nobody@gnat.com>
14906
14907         * Make-lang.in: Makefile automatically updated
14908
14909 2004-05-03  Arnaud Charlet  <charlet@act-europe.fr>
14910
14911         * 50system.ads, 59system.ads, s-thread.ads: Removed, no longer used.
14912
14913 2004-05-03  Olivier Hainque  <hainque@act-europe.fr>
14914
14915         PR ada/15152
14916
14917         * exp_ch2.adb (Expand_Current_Value): Leave Machine_Code Asm arguments
14918         alone. Replacing object references by literals is inappropriate in a
14919         so low level context.
14920
14921 2004-05-03  Arnaud Charlet  <charlet@act-europe.fr>
14922
14923         * a-exexpr.adb: Add comments
14924
14925 2004-05-03  Joel Brobecker  <brobecker@gnat.com>
14926
14927         * a-tags.adb (Tag_Table): Add Index_Check pragma Suppress. Allows us to
14928         declare the Ancestor_Tags array in Type_Specific_Data with a small size
14929         without risking a bounds check error when accessing one of its
14930         components.
14931         (Type_Specific_Data): Define Ancestor_Tags as a small array.
14932         This prevents us from hitting a limitation during the debug info
14933         generation when using stabs.
14934
14935         * a-tags.adb (Dispatch_Table): Define the Prims_Ptr component as a
14936         small array.
14937         This prevents us from hitting a limitation during the debug info
14938         generation when using stabs.
14939
14940 2004-05-03  Eric Botcazou  <ebotcazou@act-europe.fr>
14941
14942         lang-specs.h: Remove -gnatz* from specs.
14943
14944 2004-05-03  Vincent Celier  <celier@gnat.com>
14945
14946         * gprmake.adb, makegpr.ads, makegpr.adb: New files.
14947
14948         * Make-lang.in, Makefile.in: Add gprmake
14949
14950 2004-05-03  Thomas Quinot  <quinot@act-europe.fr>
14951
14952         * sem_aggr.adb: Fix typo in comment.
14953
14954 2004-05-03  Robert Dewar  <dewar@gnat.com>
14955
14956         * make.adb: Minor reformatting
14957
14958         * rtsfind.ads, rtsfind.adb: (RTU_Loaded): New function
14959
14960         * sem_attr.adb (Eval_Attribute, case Type_Class): Fix check for address
14961         so that it works when address is not a private type.
14962
14963         * sem_ch13.adb (Check_Expr_Constants, case N_Integer_Literal): Deal
14964         properly with rewritten unchecked conversions. This prevents
14965         order-of-elaboration issues that can otherwise arise.
14966         (Minimum_Size): Don't check size of access types under VMS
14967
14968         * sem_ch4.adb (Remove_Address_Interpretation): New circuit to remove
14969         interpretations of integer literals as type System.Address.
14970
14971         * sem_util.ads, sem_util.adb (Is_Descendent_Of_Address): New function
14972         (Is_Descendent_Of): New function
14973
14974 2004-05-03  Jose Ruiz  <ruiz@act-europe.fr>
14975
14976         * sem_prag.adb: Boolean_Entry_Barriers is a synonym of Simple_Barriers.
14977         Max_Entry_Queue_Depth is a synonym of Max_Entry_Queue_Length.
14978         No_Dynamic_Interrupts is a synonym of No_Dynamic_Attachment.
14979
14980         * sem_res.adb: Use the new restriction Max_Entry_Queue_Length instead
14981         of the old Max_Entry_Queue_Depth.
14982
14983         * snames.adb: Boolean_Entry_Barriers is a synonym of Simple_Barriers.
14984         Max_Entry_Queue_Depth is a synonym of Max_Entry_Queue_Length
14985         No_Dynamic_Interrupts is a synonym of No_Dynamic_Attachment
14986
14987         * snames.ads: New entry for proper handling of Boolean_Entry_Barriers.
14988         New entry for proper handling of Max_Entry_Queue_Depth.
14989         New entry for proper handling of No_Dynamic_Interrupts.
14990
14991         * s-rident.ads: Adding restriction Simple_Barriers (AI-00249) that
14992         supersedes the GNAT specific restriction Boolean_Entry_Barriers.
14993         Adding restriction Max_Entry_Queue_Length (AI-00249) that supersedes
14994         the GNAT specific restriction Max_Entry_Queue_Depth.
14995         Adding restriction No_Dynamic_Attachment (AI-00249) that supersedes
14996         the GNAT specific restriction No_Dynamic_Interrupts.
14997
14998         * restrict.ads, restrict.adb: Use the new restriction Simple_Barriers
14999         instead of the old Boolean_Entry_Barriers.
15000         Use the new restriction No_Dynamic_Attachment instead of the old
15001         No_Dynamic_Interrupts.
15002
15003         * exp_ch9.adb: Check restriction Simple_Barriers (AI-00249) that
15004         supersedes the GNAT specific restriction Boolean_Entry_Barriers.
15005
15006         * gnatbind.adb: Use the new restriction Max_Entry_Queue_Length instead
15007         of the old Max_Entry_Queue_Depth.
15008
15009 2004-05-03  GNAT Script  <nobody@gnat.com>
15010
15011         * Make-lang.in: Makefile automatically updated
15012
15013 2004-04-29  Ed Schonberg  <schonberg@gnat.com>
15014
15015         * checks.adb (Enable_Range_Check): If the prefix of an index component
15016         is an access to an unconstrained array, perform check unconditionally.
15017
15018 2004-04-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15019
15020         * decl.c (gnat_to_gnu_field): Also call make_packable_type if
15021         Component_Clause.
15022
15023 2004-04-29  Olivier Hainque  <hainque@act-europe.fr>
15024
15025         * init.c (__gnat_install_handler, __gnat_error_handler): Remove
15026         alternate stack setting. There was no support for the tasking cases
15027         and the changes eventually caused a number of side-effect failures in
15028         the non-tasking case too.
15029
15030 2004-04-29  Eric Botcazou  <ebotcazou@act-europe.fr>
15031
15032         lang-specs.h: Redirect output to /dev/null if -gnatc or -gnatz or
15033         -gnats is passed.
15034
15035 2004-04-29  Vincent Celier  <celier@gnat.com>
15036
15037         * make.adb (Gnatmake): Increase max size of argument array for
15038         gnatbind for the potential addition of -F.
15039         If there are Stand-Alone Library projects, invoke gnatbind with -F to
15040         be sure that elaboration flags will be checked.
15041
15042         * switch-c.adb: Correct call to Scan_Pos for -gnateI
15043
15044 2004-04-29  Thomas Quinot  <quinot@act-europe.fr>
15045
15046         * sem_warn.adb (Check_References): Move '<access-variable> may be
15047         null' warning out of under Warn_On_No_Value_Assigned.
15048
15049 2004-04-29  Ed Falis  <falis@gnat.com>
15050
15051         * gnat_ugn.texi: Fixed texi error
15052
15053 2004-04-29  Robert Dewar  <dewar@gnat.com>
15054
15055         * sem_ch4.adb (Remove_Abstract_Operations): Unconditionally remove
15056         abstract operations if they come from predefined files.
15057
15058         * gnat_rm.texi: Fix bad doc for pragma Elaboration_Checks (should be
15059         Dynamic, not RM).
15060
15061         * s-addope.adb: Correct obvious error in mod function
15062
15063 2004-04-28  Andrew W. Reynolds  <awreynolds@mac.com>
15064
15065         * Makefile.in: Add target pairs for powerpc darwin*
15066         tasking support.
15067
15068         * a-intnam-darwin.ads, s-osinte-darwin.adb,
15069         s-osinte-darwin.ads, system-darwin-ppc.ads: New files.
15070
15071 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
15072
15073         * Makefile.in: Add target macro definitions for s390*-linux*.
15074         * system-linux-s390.ads: New file.
15075         * system-linux-s390x.ads: New file.
15076
15077 2004-04-28  Joseph S. Myers  <jsm@polyomino.org.uk>
15078
15079         * gnat_ugn.texi: Correct argument to @setfilename.
15080
15081 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
15082
15083         * a-exexpr.adb (Unwind_Word): New data type.
15084         (Unwind_Exception): Use it as type of Private1 and Private2.
15085
15086         * raise.c (db_action_for): Fix debug printf.
15087
15088 2004-04-27  Ed Schonberg  <schonberg@gnat.com>
15089
15090         * a-wtmoio.ads: Formal type must be a modular type, not a signed
15091         integer type.
15092
15093 2004-04-27  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15094
15095         * decl.c (gnat_to_gnu_entity, case object): Call
15096         __builtin_update_setjmp_buf.
15097
15098         * gigi.h (update_setjmp_buf): Deleted.
15099         (ADT_update_setjmp_buf_decl, update_setjmp_buf_decl): New.
15100
15101         * misc.c: (update_setjmp_buf): Deleted.
15102
15103         * trans.c (gnat_to_gnu): Call do_pending_stack_adjust and emit_queue
15104         around block of RTL.
15105
15106         * utils.c (init_gigi_decls): Initialize update_setjmp_buf.
15107
15108 2004-04-26  Thomas Quinot  <quinot@act-europe.fr>
15109
15110         * sem_dist.adb, exp_dist.adb: When constructing a RAS value for a local
15111         subprogram for which no pragma All_Calls_Remote applies, store the
15112         address of the real subprogram in the underlying record type, so local
15113         dereferences do not go through the PCS.
15114
15115 2004-04-26  Robert Dewar  <dewar@gnat.com>
15116
15117         * i-c.ads: Add some type qualifications to avoid ambiguities when
15118         compiling with s-auxdec.ads and a non-private address type.
15119
15120 2004-04-26  Arnaud Charlet  <charlet@act-europe.fr>
15121
15122         * Makefile.rtl: Fix error in previous check-in:
15123         Add s-addope.o to non tasking object list (rather than tasking object
15124         list).
15125
15126 2004-04-26  Javier Miranda  <miranda@gnat.com>
15127
15128         * sem_aggr.adb: Fix typo in comments
15129         (Resolve_Aggr_Expr): Propagate the type to the nested aggregate.
15130         Required to check the null-exclusion attribute.
15131
15132         * sem_attr.adb (Resolve_Attribute): Check the accessibility level in
15133         case of anonymous access types in record and array components. For a
15134         component definition the level is the same of the enclosing composite
15135         type.
15136
15137         * sem_ch3.adb (Analyze_Component_Declaration): In case of components
15138         that are anonymous access types the level of accessibility depends on
15139         the enclosing type declaration. In order to have this information, set
15140         the scope of the anonymous access type to the enclosing record type
15141         declaration.
15142         (Array_Type_Declaration): In case of components that are anonymous
15143         access types the level of accessibility depends on the enclosing type
15144         declaration. In order to have this information, set the scope of the
15145         anonymous access type to the enclosing array type declaration.
15146
15147         * sem_ch3.adb (Array_Type_Declaration): Set the scope of the anonymous
15148         access type.
15149
15150         * sem_ch8.adb (Analyze_Object_Renaming): Add check to verify that
15151         renaming of anonymous access-to-constant types allowed if and only if
15152         the renamed object is access-to-constant.
15153
15154         * sem_util.adb (Type_Access_Level): In case of anonymous access types
15155         that are component_definition or discriminants of a nonlimited type,
15156         the level is the same as that of the enclosing component type.
15157
15158 2004-04-26  Sergey Rybin  <rybin@act-europe.fr>
15159
15160         * sem_elim.adb: Some minor code reorganization from code reading. Fix
15161         misprint in the function name (File_Name_Match).
15162
15163 2004-04-23  Laurent GUERBY <laurent@guerby.net>
15164
15165         * Makefile.in: Remove RANLIB_TEST, use -$(RANLIB) including after
15166         install.
15167
15168 2004-04-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
15169
15170         * Make-lang.in (GNATBIND_OBJS): Add s-addope.o.
15171
15172 2004-04-23  Emmanuel Briot  <briot@act-europe.fr>
15173
15174         * adaint.c (__gnat_try_lock): No longer requires that the parent
15175         directory be writable, the directory itself is enough.
15176         (gnat_is_absolute_path): Change profile, so that the call from
15177         GNAT.OS_Lib can be made more efficient.
15178
15179         * adaint.h (gnat_is_absolute_path): Change profile, so that the call
15180         from GNAT.OS_Lib can be made more efficient.
15181
15182         * g-os_lib.adb (Is_Absolute_Path): More efficient implementation, avoid
15183         one copy of the file name. Found by code reading.
15184
15185 2004-04-23  Vincent Celier  <celier@gnat.com>
15186
15187         * gnat_ugn.texi: Add documentation for gnatmake switch -eL
15188         Correct documentation on gnatmake switches transmitted to the compiler
15189
15190         * ali.ads: Minor comment fix
15191
15192 2004-04-23  Javier Miranda  <miranda@gnat.com>
15193
15194         * sem_ch6.adb: (Confirming Types): Code cleanup
15195
15196         * decl.c (gnat_to_gnu_entity): Give support to anonymous access to
15197         subprogram types: E_Anonymous_Access_Subprogram_Type and
15198         E_Anonymous_Access_Protected_Subprogram_Type.
15199
15200 2004-04-23  Thomas Quinot  <quinot@act-europe.fr>
15201
15202         * sem_dist.adb: Add a new paramter to the RAS_Access TSS indicating
15203         whether a pragma All_Calls_Remote applies to the subprogram on which
15204         'Access is taken.
15205         No functional change is introduced by this revision; the new parameter
15206         will be used to allow calls to local RCI subprograms to be optimized
15207         to not use the PCS in the case where no pragma All_Calls_Remote applies,
15208         as is already done in the PolyORB implementation of the DSA.
15209
15210         * exp_dist.adb: Add a new paramter to the RAS_Access TSS indicating
15211         whether a pragma All_Calls_Remote applies to the subprogram on which
15212         'Access is taken.
15213         No functional change is introduced by this revision; the new parameter
15214         will be used to allow calls to local RCI subprograms to be optimized
15215         to not use the PCS in the case where no pragma All_Calls_Remote applies,
15216         as is already done in the PolyORB implementation of the DSA.
15217
15218 2004-04-23  Robert Dewar  <dewar@gnat.com>
15219
15220         * Makefile.rtl: Add entry for s-addope.o in run time library list
15221         * Make-lang.in: Add entry for s-addope.o to GNAT1 objects
15222         * s-addope.ads, s-addope.adb: New files.
15223
15224         * s-carsi8.adb, s-carun8.adb, s-casi16.adb, s-casi32.adb,
15225         s-casi64.adb, s-caun16.adb, s-caun32.adb, s-caun64.adb,
15226         s-finimp.adb, s-geveop.adb, s-stoele.adb: Modifications to allow
15227         System.Address to be non-private and signed.
15228
15229         * sem_elim.adb: Minor reformatting (fairly extensive)
15230         Some minor code reorganization from code reading
15231         Add a couple of ??? comments
15232
15233 2004-04-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15234
15235         * trans.c (tree_transform, build_unit_elab): Don't call getdecls.
15236         (tree_transform, case N_If_Statement): Remove non-determinism.
15237
15238         * utils.c (begin_subprog_body): Just set DECL_CONTEXT in PARM_DECL.
15239
15240 2004-04-23  Sergey Rybin  <rybin@act-europe.fr>
15241
15242         * gnat_rm.texi: Small fixes in the changes made in the 'pragma
15243         Eliminate' section.
15244
15245         * snames.ads, snames.adb: Remove Name_Homonym_Number (Homonym_Number is
15246         no longer used as a parameter name for Eliminate pragma).
15247
15248 2004-04-22  Laurent GUERBY <laurent@guerby.net>
15249
15250         PR optimization/14984
15251         PR optimization/14985
15252         * trans.c (gigi): Fix non determinism leading to bootstrap
15253         comparison failures.
15254
15255 2004-04-21  Pascal Obry  <obry@gnat.com>
15256
15257         * adaint.c (__gnat_portable_spawn): Quote first argument (argv[0])
15258         passed to spawnvp() to properly handle program pathname with spaces on
15259         Win32.
15260
15261 2004-04-21  Emmanuel Briot  <briot@act-europe.fr>
15262
15263         * g-debpoo.adb (Print_Info): Avoid extra work if Display_Slots is False.
15264         (Allocate, Deallocate, Free_Physically): Make sure the tasks are
15265         unlocked in case of exceptions.
15266
15267 2004-04-21  Joel Brobecker  <brobecker@gnat.com>
15268
15269         * gigi.h (get_target_no_dollar_in_label): Remove extern declaration.
15270         This function does not exist anymore.
15271
15272 2004-04-21  Thomas Quinot  <quinot@act-europe.fr>
15273
15274         * gnatbind.adb, gnatlink.adb: Update name of imported C symbol.
15275
15276         * link.c: Move variables to the __gnat name space.
15277
15278         * Makefile.in: list link.o explicitly when needed.
15279
15280         * mlib.adb: Remove pragma Linker_Option for "link.o" from mlib.
15281
15282 2004-04-21  Javier Miranda  <miranda@gnat.com>
15283
15284         * einfo.adb (Original_Access_Type): New subprogram
15285         (Set_Original_Access_Type): New subprogram
15286         (Write_Field21_Name): Write the name of the new field
15287
15288         * einfo.ads (Original_Access_Type): New field present in access to
15289         subprogram types.
15290         Addition of two new entities: E_Anonymous_Access_Subprogram_Type, and
15291         E_Anonymous_Access_Protected_Subprogram_Type.
15292
15293         * lib-xref.adb (Output_One_Ref): Give support to anonymous access to
15294         subprogram types.
15295
15296         * lib-xref.ads (Xref_Entity_Letters): Initialize values corresponding
15297         to anonymous access to subprogram types.
15298
15299         * sem_attr.adb (Resolve_Attribute): Give support to anonymous access
15300         to subprogram types.
15301
15302         * sem_ch3.adb (Access_Definition): Complete decoration of entities
15303         corresponding to anonymous access to subprogram types.
15304         (Analyze_Component_Declaration): Add new actual to the call to
15305         subprogram replace_anonymous_access_to_protected_subprogram.
15306         (Array_Type_Declaration): Add new actual to the call to subprogram
15307         replace_anonymous_access_to_protected_subprogram.
15308         (Process_Discriminants): Add new actual to the call to subprogram
15309         replace_anonymous_access_to_protected_subprogram.
15310         (Replace_Anonymous_Access_To_Protected_Subprogram): New formal.
15311
15312         * sem_ch3.ads (Replace_Anonymous_Access_To_Protected_Subprogram): New
15313         formal.
15314
15315         * sem_ch6.adb, sem_type.adb, sem_res.adb: Give support to anonymous
15316         access to subprogram types.
15317
15318         * sem_util.adb (Has_Declarations): Addition of package_specification
15319         nodes.
15320
15321 2004-04-21  Ed Schonberg  <schonberg@gnat.com>
15322
15323         * sem_prag.adb (Make_Inline): If subprogram is a renaming, propagate
15324         inlined flags to renamed entity only if in current unit.
15325
15326 2004-04-21  Thomas Quinot  <quinot@act-europe.fr>
15327
15328         * s-parint.ads: Add DSA implementation marker.
15329
15330         * rtsfind.ads, rtsfind.adb, snames.ads, snames.adb, s-rpc.adb: Use the
15331         value of System.Partition_Interface.DSA_Implementation to determine
15332         what version of the distributed systems annex is available (no
15333         implementation, GLADE, or PolyORB).
15334
15335 2004-04-21  Joel Brobecker  <brobecker@gnat.com>
15336
15337         * targtyps.c (get_target_no_dollar_in_label): Remove, no longer used.
15338
15339 2004-04-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15340
15341         * utils.c (convert, case CONSTRUCTOR, COMPONENT_REF): Do not make node
15342         with new type if alias sets differ.
15343         Fixes ACATS c41103b.
15344
15345 2004-04-21  Vincent Celier  <celier@gnat.com>
15346
15347         * prj.ads: Remove FORTRAN as an accepted language: not tested yet.
15348         Add array Lang_Args for the language specific compiling argument
15349         switches.
15350
15351         * gnat_ugn.texi: Explain in more details when a library is rebuilt.
15352
15353 2004-04-21  Sergey Rybin  <rybin@act-europe.fr>
15354
15355         * gnat_rm.texi: Update the descripton of the Eliminate pragma
15356         according to the recent changes in the format of the parameters of the
15357         pragma (replacing Homonym_Number with Source_Location).
15358
15359 2004-04-19  Arnaud Charlet  <charlet@act-europe.fr>
15360
15361         * 5isystem.ads: Removed, unused.
15362
15363         * gnat_rm.texi: Redo 1.13 change.
15364
15365 2004-04-19  Robert Dewar  <dewar@gnat.com>
15366
15367         * s-stoele.ads: Clean up definition of Storage_Offset (the new
15368         definition is cleaner, avoids the kludge of explicit Standard operator
15369         references, and also is consistent with a visible System.Address with
15370         no visible operations.
15371
15372         * s-geveop.adb: Add declarations to avoid assumption of visible
15373         operations on type System.Address (since these might not be available
15374         if Address is a non-private type for which the operations
15375         are made abstract).
15376
15377         * sem_eval.adb: Minor reformatting
15378
15379         * s-carsi8.ads, s-carun8.ads, s-casi16.ads, s-casi32.ads,
15380         s-casi64.ads, s-caun16.ads, s-caun32.ads, s-caun64.ads: Minor
15381         reformatting (new function spec format).
15382
15383         * s-auxdec.adb, s-carsi8.adb, s-carun8.adb, s-casi16.adb,
15384         s-casi32.adb, s-casi64.adb, s-caun16.adb, s-caun32.adb,
15385         s-caun64.adb: Add declarations to avoid assumption of visible
15386         operations on type System.Address (since these might not be available
15387         if Address is a non-private type for which the operations are made
15388         abstract).
15389
15390         * lib.ads, lib.adb (Synchronize_Serial_Number): New procedure.
15391
15392         * exp_intr.adb: Minor comment update
15393
15394         * exp_aggr.adb, exp_attr.adb, exp_ch13.adb: Minor reformatting.
15395
15396         * 5omastop.adb: Add declarations to avoid assumption of visible
15397         operations on type System.Address (since these might not be available
15398         if Address is a non-private type for which the operations
15399         are made abstract).
15400
15401 2004-04-19  Vincent Celier  <celier@gnat.com>
15402
15403         * switch-m.adb: (Scan_Make_Switches): Process new switch -eL
15404
15405         * prj-pars.ads (Parse): New Boolean parameter Process_Languages,
15406         defaulted to Ada.
15407
15408         * prj-proc.adb (Process): New Boolean parameter Process_Languages,
15409         defaulted to Ada.
15410         Call Check with Process_Languages.
15411         (Check): New Boolean parameter Process_Languages. Call Recursive_Check
15412         with Process_Languages.
15413         (Recursive_Check): New Boolean parameter Process_Languages. Call
15414         Nmsc.Ada_Check or Nmsc.Other_Languages_Check according to
15415         Process_Languages.
15416
15417         * prj-proc.ads (Process): New Boolean parameter Process_Languages,
15418
15419         * prj-util.ads, prj-util.adb (Executable_Of): New Boolean
15420         parameter Ada_Main, defaulted to True.
15421         Check for Ada specific characteristics only when Ada_Main is True.
15422
15423         * opt.ads: (Follow_Links): New Boolean flag for gnatmake
15424
15425         * prj.adb: (Project_Empty): Add new Project_Data components.
15426
15427         * prj.ads: New types and tables for non Ada languages.
15428         (Project_Data): New components Languages, Impl_Suffixes,
15429         First_Other_Source, Last_Other_Source, Imported_Directories_Switches,
15430         Include_Path, Include_Data_Set.
15431
15432         * prj-env.ads, prj-env.adb: Minor reformatting
15433
15434         * prj-nmsc.ads, prj-nmsc.adb: (Other_Languages_Check): New procedure
15435         Put subprograms in alphabetical order
15436
15437         * prj-pars.adb (Parse): New Boolean parameter Process_Languages,
15438         defaulted to Ada; Call Prj.Proc.Process with Process_Languages and
15439         Opt.Follow_Links.
15440
15441         * mlib-prj.adb: Back out modification in last version, as they are
15442         incorrect.
15443         (Build_Library.Check_Libs): Remove useless pragma Warnings (Off)
15444
15445         * make.adb: (Mains): Moved to package Makeutl
15446         (Linker_Opts): Moved to package Makeutl
15447         (Is_External_Assignment): Moved to package Makeutl
15448         (Test_If_Relative_Path): Moved to package Makeutl
15449         (Gnatmake): Move sorting of linker options to function
15450         Makeutl.Linker_Options_Switches.
15451
15452         * makeutl.ads, makeutl.adb: New files.
15453
15454         * Makefile.in: Add makeutl.o to the object files for gnatmake
15455
15456         * makeusg.adb: Add line for new switch -eL.
15457
15458         * gnatls.adb (Image): New function.
15459         (Output_Unit): If in verbose mode, output the list of restrictions
15460         specified by pragmas Restrictions.
15461
15462         * 5bml-tgt.adb, 5vml-tgt.adb (Build_Dynamic_Library): Do not use
15463         Text_IO.
15464
15465         * a-calend.adb (Split): Shift the date by multiple of 56 years, if
15466         needed, to put it in the range 1970 (included) - 2026 (excluded).
15467         (Time_Of): Do not shift Unix_Min_Year (1970).
15468         Shift the date by multiple of 56 years, if needed, to put it in the
15469         range 1970 (included) - 2026 (excluded).
15470
15471         * adaint.h, adaint.c (__gnat_set_executable): New function.
15472
15473 2004-04-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15474
15475         * trans.c (tree_transform, case N_Subprogram_Body): Temporarily push
15476         and pop GC context.
15477         (tree_transform, case N_Procedure_Call): Fix typo in setting TREE_TYPE.
15478         (tree_transform, case N_Label): Don't set LABEL_STMT_FIRST_IN_EH.
15479         (tree_transform, case N_Procedure_Call_Statement): Build a tree.
15480         (tree_transform, case N_Code_Statement): Likewise.
15481         (gnat_expand_stmt, case LABEL_STMT): Don't look at
15482         LABEL_STMT_FIRST_IN_EH.
15483         (gnat_expand_stmt, case ASM_STMT): New case.
15484
15485         * utils2.c (build_unary_op): Properly set TREE_READONLY of
15486         UNCONSTRAINED_ARRAY_REF.
15487
15488         * utils.c (poplevel): Temporarily push/pop GC context around inline
15489         function expansion.
15490
15491         * decl.c (maybe_variable): Properly set TREE_READONLY of
15492         UNCONSTRAINED_ARRAY_REF.
15493         (make_packable_type): Only reference TYPE_IS_PADDING_P for RECORD_TYPE.
15494
15495         * ada-tree.def: (ASM_STMT): New.
15496
15497         * ada-tree.h: (LABEL_STMT_FIRST_IN_EH): Deleted.
15498         (ASM_STMT_TEMPLATE, ASM_STMT_OUTPUT, ASM_STMT_ORIG_OUT,
15499         ASM_STMT_INPUT): New.
15500         (ASM_STMT_CLOBBER): Likewise.
15501
15502 2004-04-19  Thomas Quinot  <quinot@act-europe.fr>
15503
15504         * a-except.adb, s-parint.ads, s-parint.adb, types.ads, types.h: Use
15505         general rcheck mechanism to raise Program_Error for E.4(18), instead
15506         of a custom raiser in System.Partition_Interface.
15507         Part of general cleanup work before PolyORB integration.
15508
15509         * snames.ads, snames.adb: Add new runtime library entities and names
15510         for PolyORB DSA.
15511
15512         * sem_dist.ads, sem_dist.adb (Get_Subprogram_Id): Move from sem_dist to
15513         exp_dist.
15514         (Build_Subprogram_Id): New subprogram provided by exp_dist
15515         Code reorganisation in preparation for PolyORB integration.
15516
15517         * exp_dist.ads, exp_dist.adb (Get_Subprogram_Id): Move from sem_dist to
15518         exp_dist.
15519         (Build_Subprogram_Id): New subprogram provided by exp_dist
15520
15521         * sem_ch4.adb (Analyze_One_Call): Fix error message for mismatch in
15522         actual parameter types for call to dereference of an
15523         access-to-subprogram type.
15524
15525         * rtsfind.ads: Add new runtime library entities and names for PolyORB
15526         DSA.
15527
15528         * gnatlink.adb (Value): Remove. Use Interfaces.C.Strings.Value
15529         instead, which has the same behaviour here since we never pass it a
15530         NULL pointer.
15531
15532         * link.c (run_path_option, Solaris case): Use -Wl, as for other
15533         platforms.
15534
15535         * Makefile.in: adjust object file lists for gnatlink and gnatmake
15536         to account for new dependency upon Interfaces.C.Strings + link.o
15537         For x86 FreeBSD, use 86numaux.
15538
15539         * make.adb, gnatcmd.adb: Linker_Library_Path_Option has been moved up
15540         from Mlib.Tgt to Mlib.
15541
15542         * mlib.ads, mlib.adb (Linker_Library_Path_Option): New subprogram, now
15543         target-independent.
15544
15545         * mlib-tgt.ads, mlib-tgt.adb (Linker_Library_Path_Option): Remove
15546         target-specific versions of this subprogram, now implemented as a
15547         target-independent function in Mlib.
15548
15549         * 5aml-tgt.adb, 5bml-tgt.adb, 5gml-tgt.adb, 5hml-tgt.adb, 5lml-tgt.adb,
15550         5sml-tgt.adb, 5vml-tgt.adb, 5zml-tgt.adb, 5wml-tgt.adb
15551         (Linker_Library_Path_Option): Remove target-specific versions of this
15552         subprogram, now implemented as a target-independent function in Mlib.
15553
15554         * atree.adb: (Allocate_Initialize_Node): New subprogram.
15555         Factors out node table slots allocation.
15556         (Fix_Parents): New subprogram.
15557         Encapsulate the pattern of fixing up parent pointers for syntactic
15558         children of a rewritten node.
15559         (New_Copy_Tree): Use New_Copy to copy non-entity nodes.
15560         (Rewrite): Use New_Copy when creating saved copy of original node.
15561         (Replace): Use Copy_Node to copy nodes.
15562
15563 2004-04-19  Javier Miranda  <miranda@gnat.com>
15564
15565         * sprint.adb (Sprint_Node_Actual): Give support to the new
15566         Access_To_Subprogram node available in Access_Definition nodes. In
15567         addition, give support to the AI-231 node fields: null-exclusion,
15568         all-present, constant-present.
15569
15570         * sem_util.ads, sem_util.adb: (Has_Declarations): New subprogram
15571
15572         * sinfo.ads, sinfo.adb:
15573         New field Access_To_Subprogram_Definition in Access_Definition nodes
15574
15575         * sem_ch6.adb (Process_Formals): Move here the code that creates and
15576         decorates internal subtype declaration corresponding to the
15577         null-excluding formal. This code was previously in Set_Actual_Subtypes.
15578         In addition, carry out some code cleanup on this code. In case of
15579         access to protected subprogram call
15580         Replace_Anonymous_Access_To_Protected_Subprogram.
15581         (Set_Actual_Subtypes): Code cleanup.
15582
15583         * sem_ch8.adb (Analyze_Object_Renaming): Remove un-necessary call to
15584         Find_Type in case of anonymous access renamings. Add warning in case of
15585         null-excluding attribute used in anonymous access renaming.
15586
15587         * sem_ch3.ads (Replace_Anonymous_Access_To_Protected_Subprogram): New
15588         subprogram
15589
15590         * sem_ch3.adb (Replace_Anonymous_Access_To_Protected_Subprogram): New
15591         subprogram.
15592         (Access_Definition): In case of anonymous access to subprograms call
15593         the corresponding semantic routine to decorate the node.
15594         (Access_Subprogram_Declaration): Addition of some comments indicating
15595         some code that probably should be added here. Detected by comparison
15596         with the access_definition subprogram.
15597         (Analyze_Component_Declaration): In case of access to protected
15598         subprogram call Replace_Anonymous_Access_To_Protected.
15599         (Array_Type_Declaration): In case of access to protected subprogram call
15600         Replace_Anonymous_Access_To_Protected_Subprogram.
15601         (Process_Discriminants): In case of access to protected subprogram call
15602         Replace_Anonymous_Access_To_Protected_Subprogram.
15603
15604         * par.adb (P_Access_Definition): New formal that indicates if the
15605         null-exclusion part was present.
15606         (P_Access_Type_Definition): New formal that indicates if the caller has
15607         already parsed the null-excluding part.
15608
15609         * par-ch3.adb (P_Subtype_Declaration): Code cleanup.
15610         (P_Identifier_Declarations): Code cleanup and give support to renamings
15611         of anonymous access to subprogram types.
15612         (P_Derived_Type_Def_Or_Private_Ext_Decl): Code cleanup.
15613         (P_Array_Type_Definition): Give support to AI-254.
15614         (P_Component_Items): Give support to AI-254.
15615         (P_Access_Definition): New formal that indicates if the header was
15616         already parsed by the caller.
15617         (P_Access_Type_Definition): New formal that indicates if the caller has
15618         already parsed the null-excluding part.
15619
15620         * par-ch6.adb (P_Formal_Part): Add the null-excluding parameter to the
15621         call to P_Access_Definition.
15622
15623 2004-04-19  Geert Bosch  <bosch@gnat.com>
15624
15625         * checks.adb (Apply_Float_Conversion_Check): New procedure to implement
15626         the delicate semantics of floating-point to integer conversion.
15627         (Apply_Type_Conversion_Checks): Use Apply_Float_Conversion_Check.
15628
15629         * eval_fat.adb (Machine_Mantissa): Moved to spec.
15630         (Machine_Radix): New function.
15631
15632         * eval_fat.ads (Machine_Mantissa): Moved from body for use in
15633         conversion checks.
15634         (Machine_Radix): New function also for use in conversion checks.
15635
15636 2004-04-19  Ed Schonberg  <schonberg@gnat.com>
15637
15638         * par-prag.adb (Source_File_Name_Project): Fix typo in error message.
15639
15640         * exp_ch9.adb (Expand_Access_Protected_Subprogram_Type): Call analyze
15641         to decorate the access-to-protected subprogram and the equivalent type.
15642
15643         * checks.adb (Null_Exclusion_Static_Checks): Code cleanup. Give support
15644         to anonymous access to subprogram types.
15645
15646         * exp_ch4.adb (Expand_N_In): Preserve Static flag before
15647         constant-folding, for legality checks in contexts that require an RM
15648         static expression.
15649
15650         * exp_ch6.adb (Expand_N_Function_Call): If call may generate large
15651         temporary but stack checking is not enabled, increment serial number
15652         to so that symbol generation is consistent with and without stack
15653         checking.
15654
15655         * exp_util.ads, exp_util.adb (May_Generate_Large_Temp): Predicate is
15656         independent on whether stack checking is enabled, caller must check
15657         the corresponding flag.
15658
15659         * sem_ch3.adb (Constrain_Index): Index bounds given by attributes need
15660         range checks.
15661         (Build_Derived_Concurrent_Type): Inherit Is_Constrained flag from
15662         parent if it has discriminants.
15663         (Build_Derived_Private_Type): Constructed full view does
15664         not come from source.
15665         (Process_Discriminants): Default discriminants on a tagged type are
15666         legal if this is the internal completion of a private untagged
15667         derivation.
15668
15669         * sem_ch6.adb (Set_Actual_Subtypes): The generated declaration needs
15670         no constraint checks, because it corresponds to an existing object.
15671
15672         * sem_prag.adb (Process_Convention): Pragma applies
15673         only to subprograms in the same declarative part, i.e. the same unit,
15674         not the same scope.
15675
15676         * sem_res.adb (Valid_Conversion): In an instance or inlined body,
15677         ignore type mismatch on a numeric conversion if expression comes from
15678         expansion.
15679
15680 2004-04-19  Sergey Rybin  <rybin@act-europe.fr>
15681
15682         * sem_elim.adb (Process_Eliminate_Pragma): Remove the processing for
15683         Homonym_Number parameter, add processing for Source_Location parameter
15684         corresponding.
15685         (Check_Eliminated): Remove the check for homonym numbers, add the check
15686         for source location traces.
15687
15688         * sem_elim.ads (Process_Eliminate_Pragma): Replace Arg_Homonym_Number
15689         with Arg_Source_Location corresponding to the changes in the format of
15690         the pragma.
15691
15692         * sem_prag.adb: (Analyze_Pragma): Changes in the processing of
15693         Eliminate pragma corresponding to the changes in the format of the
15694         pragma: Homonym_Number is replaced with Source_Location, two ways of
15695         distinguishing homonyms are mutially-exclusive.
15696
15697 2004-04-19  Joel Brobecker  <brobecker@gnat.com>
15698
15699         * get_targ.ads (Get_No_Dollar_In_Label): Remove.
15700
15701         * exp_dbug.adb (Output_Homonym_Numbers_Suffix): Remove use of
15702         No_Dollar_In_Label, no longer necessary, as it is always True.
15703         (Strip_Suffixes): Likewise.
15704
15705 2004-04-19  Gary Dismukes  <dismukes@gnat.com>
15706
15707         * s-stalib.ads (type Exception_Code): Use Integer'Size for exponent of
15708         modulus for compatibility with size clause on targets with 16-bit
15709         Integer.
15710
15711         * layout.adb (Discrimify): In the case of private types, set Vtyp to
15712         full type to fix type mismatches on calls to size functions for
15713         discriminant-dependent array components.
15714
15715 2004-04-19  Jerome Guitton  <guitton@act-europe.fr>
15716
15717         * Makefile.in (gnatlib-zcx): New target, for building a ZCX run-time
15718         lib.
15719
15720 2004-04-19  Pascal Obry  <obry@gnat.com>
15721
15722         * mdll-utl.adb (Locate): New version is idempotent.
15723
15724 2004-04-17  Laurent Guerby <laurent@guerby.net>
15725
15726         PR ada/14988 (partial)
15727         * impunit.adb: Fix typo.
15728
15729 2004-04-14  Nathanael Nerode  <neroden@gcc.gnu.org>
15730
15731         * Make-lang.in: Remove obsolete rts-none, rts-cert, install-rts-none,
15732         and install-rts-cert targets.  Remove all gnatlib and gnattools
15733         targets and all other rts-* targets (moved to libada).  Remove (now)
15734         unused Make variables CHMOD, CHMOD_AX_FLAGS, shext, THREAD_KIND,
15735         TRACE, GNATLIBFLAGS, GNATLIBCFLAGS.
15736
15737 2004-04-08  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15738
15739         * trans.c (tree_transform): Shortcut returning error_mark_node for
15740         statements in annotate_only_mode.
15741         (tree_transform, case N_Label, case N_Return_Statement,
15742         N_Goto_Statement): Make statement tree instead of generating code.
15743         (tree_transform, case N_Assignment_Statement): No longer check
15744         type_annotate_only.
15745         (gnat_expand_stmt, case GOTO_STMT, case LABEL_STMT, case
15746         RETURN_STMT): New.
15747         (first_nondeleted_insn, build_block_stmt, make_expr_stmt_from_rtl):
15748         New fcns.
15749         (gnat_to_gnu): Collect any RTL generated and deal with it.
15750         (tree_transform, case N_And_Then): Refine when have non-null RTL_EXPR.
15751         (tree_transform case N_If_Statement): Rewrite to make IF_STMT.
15752         (gnat_expand_stmt, case BLOCK_STMT, IF_STMT): New cases.
15753
15754         * ada-tree.def (GOTO_STMT, LABEL_STMT, RETURN_STMT): New tree nodes.
15755
15756         * ada-tree.def (EXPR_STMT): Fix typo in name.
15757         (BLOCK_STMT, IF_STMT): New nodes.
15758
15759         * ada-tree.h (GOTO_STMT_LABEL, LABEL_STMT_LABEL,
15760         LABEL_STMT_FIRST_IN_EH): New macros.
15761         (RETURN_STMT_EXPR): Likewise.
15762
15763         * ada-tree.h: (BLOCK_STMT_LIST, IF_STMT_COND, IF_STMT_TRUE,
15764         IF_STMT_ELSEIF, IF_STMT_ELSE): New macros.
15765
15766 2004-04-08  Thomas Quinot  <quinot@act-europe.fr>
15767
15768         * atree.ads: Correct documentation on extended nodes.
15769
15770         * link.c: Set run_path_option for FreeBSD.
15771
15772 2004-04-08  Vincent Celier  <celier@gnat.com>
15773
15774         * mlib-prj.adb (Build_Library.Check_Libs): On OpenVMS, if dec.ali is
15775         one of the ALI file, do not link with DEC lib.
15776
15777         * par.adb Remove the last two characters ("%s" or "%b") when checking
15778         if a language defined unit may be recompiled.
15779
15780 2004-04-08  Ed Schonberg  <schonberg@gnat.com>
15781
15782         * sem_ch4.adb (Remove_Abstract_Operations): Improve error message when
15783         removal of abstract operation leaves no possible interpretation for
15784         expression.
15785
15786         * sem_eval.adb (Eval_Qualified_Expression): Use
15787         Set_Raises_Constraint_Error on node when needed, so that it does not
15788         get optimized away by subsequent optimizations.
15789
15790         * sem_res.adb (Resolve_Intrinsic_Operator): Save interpretations of
15791         operands even when they are not wrapped in a type conversion.
15792
15793 2004-04-08  Olivier Hainque  <hainque@act-europe.fr>
15794
15795         * sem_prag.adb (Set_Exported): Warn about making static as result of
15796         export only when the export is coming from source. This may be not
15797         be true e.g. on VMS where we expand export pragmas for exception codes
15798         together with imported or exported exceptions, and we don't want the
15799         user to be warned about something he didn't write.
15800
15801 2004-04-08  Thomas Quinot  <quinot@act-europe.fr>
15802
15803         * sem_util.adb (Note_Possible_Modification): Reorganize to remove code
15804         duplication between normal entities and those declared as renamings.
15805         No functional change.
15806
15807         * s-fileio.ads (Form): Remove pragma Inline, as we cannot currently
15808         inline functions returning an unconstrained result.
15809
15810 2004-04-08  Eric Botcazou  <ebotcazou@act-europe.fr>
15811
15812         * utils.c (type_for_mode): Handle BLKmode and VOIDmode properly, to
15813         conform to what other front-ends do.
15814
15815 2004-04-08  Doug Rupp  <rupp@gnat.com>
15816
15817         * 5vml-tgt.adb: Use Gas instead of VMS Macro to build auto init shared
15818         libraries.
15819
15820 2004-04-06  Pascal Obry  <obry@gnat.com>
15821
15822         * adaint.c (DIR_SEPARATOR): Properly set DIR_SEPARATOR on Win32.
15823
15824         * osint.adb (Program_Name): Do not look past a directory separator.
15825
15826 2004-04-06  Thomas Quinot  <quinot@act-europe.fr>
15827
15828         * atree.adb: Update comment (Rewrite_Substitute_Node no longer exists).
15829
15830         * exp_ch6.adb (Rewrite_Function_Call): Clarify documentation of
15831         requirement for preserving a copy of the original assignment node.
15832
15833         * sinfo.ads: Update comment (Original_Tree -> Original_Node).
15834
15835 2004-04-06  Olivier Hainque  <hainque@act-europe.fr>
15836
15837         (__gnat_initialize [Vxworks]): Enable references to the crtstuff bits
15838         when supported.
15839
15840 2004-04-06  Ed Schonberg  <schonberg@gnat.com>
15841
15842         * sem_ch4.adb (Remove_Abstract_Operations): Extend previous changes to
15843         operator calls in functional notation, and apply
15844         Universal_Interpretation to operands, not to their type.
15845
15846 2004-04-06  Robert Dewar  <dewar@gnat.com>
15847
15848         * 5wdirval.adb: Minor reformatting
15849
15850 2004-04-06  Ed Falis  <falis@gnat.com>
15851
15852         * gnat_rm.texi: Improve a reference to the GCC manual
15853
15854 2004-04-05  Vincent Celier  <celier@gnat.com>
15855
15856         * adaint.h, adaint.c: Add function __gnat_named_file_length
15857
15858         * impunit.adb: Add Ada.Directories to the list
15859
15860         * Makefile.in: Add VMS and Windows versions of
15861         Ada.Directories.Validity package body.
15862
15863         * Makefile.rtl: Add a-direct and a-dirval
15864
15865         * mlib-tgt.ads: Minor comment update.
15866
15867         * a-dirval.ads, a-dirval.adb, 5vdirval.adb, 5wdirval.adb,
15868         a-direct.ads, a-direct.adb: New files.
15869
15870 2004-04-05  Vincent Celier  <celier@gnat.com>
15871
15872         PR ada/13620
15873         * make.adb (Scan_Make_Arg): Pass any -fxxx switches to gnatlink, not
15874         just to the compiler.
15875
15876 2004-04-05  Robert Dewar  <dewar@gnat.com>
15877
15878         * a-except.adb (Exception_Name_Simple): Make sure lower bound of
15879         returned string is 1.
15880
15881         * ali-util.adb: Use proper specific form for Warnings (Off, entity)
15882
15883         * eval_fat.ads: Minor reformatting
15884
15885         * g-curexc.ads: Document that lower bound of returned string values
15886         is always one.
15887
15888         * gnatlink.adb: Add ??? comment for previous change
15889         (need to document why this is VMS specific)
15890
15891         * s-stoele.ads: Minor reformatting
15892
15893         * tbuild.ads: Minor reformatting throughout (new function specs)
15894
15895         * par-ch10.adb (P_Context_Clause): Handle comma instead of semicolon
15896         after WITH.
15897
15898         * scng.adb: Minor reformatting
15899
15900 2004-04-05  Geert Bosch  <bosch@gnat.com>
15901
15902         * eval_fat.adb (Machine): Remove unnecessary suppression of warning.
15903         (Leading_Part): Still perform truncation to machine number if the
15904         specified radix_digits is greater or equal to machine_mantissa.
15905
15906 2004-04-05  Javier Miranda  <miranda@gnat.com>
15907
15908         * par-ch3.adb: Complete documentation of previous change
15909         Correct wrong syntax documentation of the OBJECT_DECLARATION rule
15910         (aliased must appear before constant).
15911
15912         * par-ch4.adb: Complete documentation of previous change.
15913
15914         * par-ch6.adb: Complete documentation of previous change.
15915
15916         * sinfo.ads: Fix typo in commment.
15917
15918 2004-04-05  Ed Schonberg  <schonberg@gnat.com>
15919
15920         * sem_ch3.adb (Inherit_Components): If derived type is private and has
15921         stored discriminants, use its discriminants to constrain parent type,
15922         as is done for non-private derived record types.
15923
15924         * sem_ch4.adb (Remove_Abstract_Operations): New subprogram to implement
15925         Ada 2005 AI-310: an abstract non-dispatching operation is not a
15926         candidate interpretation in an overloaded call.
15927
15928         * tbuild.adb (Unchecked_Convert_To): Preserve conversion node if
15929         expression is Null and target type is not an access type (e.g. a
15930         non-private address type).
15931
15932 2004-04-05  Thomas Quinot  <quinot@act-europe.fr>
15933
15934         * exp_ch6.adb (Rewrite_Function_Call): When rewriting an assignment
15935         statement whose right-hand side is an inlined call, save a copy of the
15936         original assignment subtree to preserve enough consistency for
15937         Analyze_Assignment to proceed.
15938
15939         * sem_ch5.adb (Analyze_Assignment): Remove a costly copy of the
15940         complete assignment subtree which is now unnecessary, as the expansion
15941         of inlined call has been improved to preserve a consistent assignment
15942         tree.  Note_Possible_Modification must be called only
15943         after checks have been applied, or else unnecessary checks will
15944         be generated.
15945
15946         * sem_util.adb (Note_Possible_Modification): Reorganise the handling
15947         of explicit dereferences that do not Come_From_Source:
15948          - be selective on cases where we must go back to the dereferenced
15949            pointer (an assignment to an implicit dereference must not be
15950            recorded as modifying the pointer);
15951          - do not rely on Original_Node being present (Analyze_Assignment
15952            calls Note_Possible_Modification on a copied tree).
15953
15954         * sem_warn.adb (Check_References): When an unset reference to a pointer
15955         that is never assigned is encountered, prefer '<pointer> may be null'
15956         warning over '<pointer> is never assigned a value'.
15957
15958 2004-04-05  Ramon Fernandez  <fernandez@gnat.com>
15959
15960         * tracebak.c: Change STOP_FRAME in ppc vxworks to be compliant with
15961         the ABI.
15962
15963 2004-04-05  Olivier Hainque  <hainque@act-europe.fr>
15964
15965         * 5gmastop.adb (Pop_Frame): Comment out the pragma Linker_Option for
15966         libexc. We currently don't reference anything in this library and
15967         linking it in triggers linker warnings we don't want to see.
15968
15969         * init.c: Update comments.
15970
15971 2004-04-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15972
15973         * decl.c (gnat_to_gnu_entity): Use TYPE_READONLY.
15974         * utils.c (create_field_decl): Likewise.
15975         * utils2.c (build_unary_op, gnat_build_constructor): Likewise.
15976
15977 2004-04-02  Arnaud Charlet  <charlet@act-europe.fr>
15978
15979         * gnat-style.texi, gnat_rm.texi, gnat_ugn.texi: Remove RCS tags.
15980         Replace ifinfo by ifnottex, to make makeinfo --html happy again.
15981         Add info directory entry and category.
15982
15983 2004-04-02  Jan Hubicka  <jh@suse.cz>
15984
15985         * utils.c: Include function.h
15986         (end_subprog_body): Clear DECL_STRUCT_FUNCTION.
15987
15988 2004-04-01  Arnaud Charlet  <charlet@act-europe.fr>
15989
15990         PR ada/14150
15991         * Make-lang.in: Clean up generation of documentation
15992
15993         * gnat-style.texi, gnat_rm.texi, ug_words: Resync with AdaCore version
15994
15995         * xgnatug.adb: Removed, replaced by xgnatugn.adb
15996
15997         * xgnatugn.adb: Replaces xgnatug.adb
15998
15999         * gnat_ug.texi: Removed, replaced by gnat_ugn.texi
16000
16001         * gnat_ugn.texi: Replaces gnat_ug.texi. Resync with AdaCore version
16002
16003         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
16004         gnat_ug_wnt.texi: Removed.
16005
16006 2004-04-01  Arnaud Charlet  <charlet@act-europe.fr>
16007
16008         * utils2.c: Update copyright notice.
16009
16010 2004-04-01  Robert Dewar  <dewar@gnat.com>
16011
16012         * checks.adb: Minor reformatting throughout
16013         Note that prev checkin added RM reference to alignment warning
16014
16015 2004-04-01  Ed Schonberg  <schonberg@gnat.com>
16016
16017         * exp_aggr.adb (Get_Component_Val): Treat a string literal as
16018         non-static when building aggregate for bit-packed array.
16019
16020         * exp_ch4.adb (Expand_N_Slice): If a packed slice is an actual of a
16021         function call that is itself the actual in a procedure call, build
16022         temporary for it.
16023
16024         * exp_pakd.adb (Expand_Bit_Packed_Element_Set): If right-hand side is
16025         a string literal, create a temporary for it, constant folding only
16026         handles scalars here.
16027
16028 2004-04-01  Vincent Celier  <celier@gnat.com>
16029
16030         * ali-util.adb (Post_Scan, Error_Msg, Error_Msg_S, Error_Msg_SC,
16031         Error_Msg_SP): New empty procedures to instantiate the Scanner.
16032         (Style, Scanner): Instantiations of Styleg and Scng to be able to scan
16033         tokens.
16034         (Accumulate_Checksum, Initialize_Checksum): Remove procedures.
16035         (Get_File_Checksum): Use the instantiated scanner to scan all the tokens
16036         and get the checksum.
16037
16038         * make.adb (Gnatmake): Do not insert into Q the Main_Source if it is
16039         already in the Q.
16040         Increase the Marking_Label at the end of the Multiple_Main_Loop,
16041         instead of at the beginning.
16042
16043         * osint.adb (Lib_File_Name): Use Multi_Unit_Index_Character, not '~'
16044         directly.
16045         (Osint package elaboration): Change Multi_Unit_Index_Character to '$' if
16046         on VMS.
16047
16048         * osint.ads (Multi_Unit_Index_Character): New Character global variable
16049
16050         * osint-c.adb (Set_Library_Info_Name): Use Multi_Unit_Index_Character,
16051         not '~' directly.
16052
16053         * par.adb: Remove test on file name to detect language defined units.
16054         Add test on unit name, after parsing, to detect language defined units
16055         that are not compiled with -gnatg (except System.RPC and its children)
16056
16057         * par-ch10.adb (P_Compilation_Unit): In multi-unit sources, scan the
16058         following units without style checking.
16059
16060         * switch-c.adb: Change -gnatC to -gnateI
16061
16062         * usage.adb: Document new switch -gnateInnn
16063
16064         * scng.adb (Accumulate_Token_Checksum): New procedure
16065         (Scan): Call Accumulate_Token_Checksum after each identifier, reserved
16066         word or literal number.
16067         (Scan.Nlit.Scan_Integer): Do not accumulate internal '_' in litteral
16068         numbers.
16069
16070 2004-04-01  Thomas Quinot  <quinot@act-europe.fr>
16071
16072         * a-tasatt.adb,
16073         g-comlin.adb, sinput-c.adb, s-secsta.adb, s-tpobop.adb,
16074         switch-m.adb, 56taprop.adb, 5ginterr.adb, 5gmastop.adb,
16075         5staprop.adb, 5vinterr.adb, 5vtaprop.adb, 5vtpopde.adb,
16076         5vtpopde.adb: Add missing 'constant' keywords.
16077
16078 2004-04-01  Javier Miranda  <miranda@gnat.com>
16079
16080         * par-ch4.adb: (P_Allocator): Code cleanup
16081
16082         * sem_ch3.adb (Access_Definition): Properly set the null-excluding
16083         attribute.
16084
16085         * sinfo.ads: Complete documentation of previous change
16086
16087 2004-04-01  Pascal Obry  <obry@gnat.com>
16088
16089         * gnatlink.adb (Process_Binder_File): Remove duplicate linker options
16090         only on VMS.  This special handling was done because an old GNU/ld bug
16091         on Windows which has been fixed.
16092
16093 2004-04-01  GNAT Script  <nobody@gnat.com>
16094
16095         * Make-lang.in: Makefile automatically updated
16096
16097 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16098
16099         * decl.c (gnat_to_gnu_entity, make_type_from_size):
16100         Use TYPE_UNSIGNED, not TREE_UNSIGNED.
16101         * trans.c (tree_transform, convert_with_check): Likewise.
16102         * utils.c (gnat_signed_or_unsigned_type): Likewise.
16103         (build_vms_descriptor, unchecked_convert): Likewise.
16104         * utils2.c (nonbinary_modular_operation): Likewise.
16105
16106 2004-03-29  Javier Miranda  <miranda@gnat.com>
16107
16108         * checks.adb (Null_Exclusion_Static_Checks): New subprogram
16109         (Install_Null_Excluding_Check): Local subprogram that determines whether
16110         an access node requires a runtime access check and if so inserts the
16111         appropriate run-time check.
16112         (Apply_Access_Check): Call Install_Null_Excluding check if required
16113         (Apply_Constraint_Check): Call Install_Null_Excluding check if required
16114
16115         * checks.ads: (Null_Exclusion_Static_Checks): New subprogram
16116
16117         * einfo.ads: Fix typo in comment
16118
16119         * exp_ch3.adb (Build_Assignment): Generate conversion to the
16120         null-excluding type to force the corresponding run-time check.
16121         (Expand_N_Object_Declaration): Generate conversion to the null-excluding
16122         type to force the corresponding run-time check.
16123
16124         * exp_ch5.adb (Expand_N_Assignment_Statement): Generate conversion to
16125         the null-excluding type to force the corresponding run-time check.
16126
16127         * exp_ch6.adb (Expand_Call): Do not generate the run-time check in
16128         case of access types unless they have the null-excluding attribute.
16129
16130         * sprint.adb (Sprint_Node_Actual): Give support to the null-exclusing
16131         part.
16132
16133         * exp_util.ads: Fix typo in comment
16134
16135         * par.adb (P_Null_Exclusion): New subprogram
16136         (P_Subtype_Indication): New formal that indicates if the null-excluding
16137         part has been scanned-out and it was present
16138
16139         * par-ch3.adb, par-ch4.adb, par-ch6.adb: Give support to AI-231
16140
16141         * sem_aggr.adb: (Check_Can_Never_Be_Null): New subprogram
16142         (Aggregate_Constraint_Checks): Generate conversion to the null-excluding
16143         type to force the corresponding run-time check
16144         (Resolve_Aggregate): Propagate the null-excluding attribute to the array
16145         components
16146         (Resolve_Array_Aggregate): Carry out some static checks
16147         (Resolve_Record_Aggregate.Get_Value): Carry out some static check
16148
16149         * sem_ch3.adb (Access_Definition): In Ada 0Y the Can_Never_Be_Null
16150         attribute must be set only if specified by means of the null-excluding
16151         part. In addition, we must also propagate the access-constant attribute
16152         if present.
16153         (Access_Subprogram_Declaration, Access_Type_Declaration,
16154         Analyze_Component_Declaration, Analyze_Object_Declaration,
16155         Array_Type_Declaration, Process_Discriminants,
16156         Analyze_Subtype_Declaration): Propagate the null-excluding attribute
16157         and carry out some static checks.
16158         (Build_Derived_Access_Type): Set the null-excluding attribute
16159         (Derived_Type_Declaration, Process_Subtype): Carry out some static
16160         checks.
16161
16162         * sem_ch4.adb (Analyze_Allocator): Carry out some static checks
16163
16164         * sem_ch5.adb (Analyze_Assignment): Carry out some static checks
16165
16166         * sem_ch6.adb (Process_Formals): Carry out some static checks.
16167         (Set_Actual_Subtypes): Generate null-excluding subtype if the
16168         null-excluding part was present; it is not required to be done here in
16169         case of anonymous access types.
16170         (Set_Formal_Mode): Ada 0Y allows anonymous access to have the null
16171         value.
16172
16173         * sem_res.adb (Resolve_Actuals): Carry out some static check
16174         (Resolve_Null): Allow null in anonymous access
16175
16176         * sinfo.adb: New subprogram Null_Exclusion_Present
16177         All_Present and Constant_Present available on access_definition nodes
16178
16179         * sinfo.ads: New flag Null_Exclusion_Present on subtype_declaration,
16180         object_declaration, derived_type_definition, component_definition,
16181         discriminant_specification, access_to_object_definition,
16182         access_function_definition, allocator, access_procedure_definition,
16183         access_definition, parameter_specification, All_Present and
16184         Constant_Present flags available on access_definition nodes.
16185
16186 2004-03-29  Robert Dewar  <dewar@gnat.com>
16187
16188         * fname.adb, fname.ads, fname-sf.adb, fname-uf.adb, fname-uf.ads,
16189         gnat1drv.adb, lib.adb, lib.ads, lib-load.adb, lib-writ.adb,
16190         opt.ads, osint.adb, osint.ads, osint-c.adb, par.adb,
16191         par-ch10.adb, par-load.adb, par-prag.adb, sfn_scan.adb,
16192         sfn_scan.ads, sinput-l.adb, sinput-l.ads, switch-c.adb,
16193         sem_prag.adb: Updates to handle multiple units/file
16194
16195         * par.adb: Change test for s-rpc to s-rp for detecting rpc and children
16196
16197         * par.adb, memtrack.adb, prj-makr.adb, prj-part.adb,
16198         sem_util.adb: Minor reformatting
16199
16200         * sem_ch12.adb: Add comment for previous change
16201
16202 2004-03-29  Laurent Pautet  <pautet@act-europe.fr>
16203
16204         * osint.adb (Executable_Prefix): Set Exec_Name to the current
16205         executable name when not initialized. Otherwise, use its current value.
16206
16207         * osint.ads (Exec_Name): Move Exec_Name from body to spec in order to
16208         initialize it to another executable name than the current one. This
16209         allows to configure paths for an executable name (gnatmake) different
16210         from the current one (gnatdist).
16211
16212 2004-03-29  Ed Schonberg  <schonberg@gnat.com>
16213
16214         * exp_ch6.adb (Expand_Call): A call to a function declared in the
16215         current unit cannot be inlined if it appears in the body of a withed
16216         unit, to avoid order of elaboration problems in gigi.
16217
16218         * exp_ch9.adb (Build_Protected_Sub_Specification): Generate debugging
16219         information for protected (wrapper) operation as well, to simplify gdb
16220         use.
16221
16222         * sem_ch6.adb (Analyze_Subprogram_Body): For a private operation in a
16223         protected body, indicate that the entity for the generated spec comes
16224         from source, to ensure that references are properly generated for it.
16225         (Build_Body_To_Inline): Do not inline a function that returns a
16226         controlled type.
16227
16228         * sem_prag.adb (Process_Convention): If subprogram is overloaded, only
16229         apply convention to homonyms that are declared explicitly.
16230
16231         * sem_res.adb (Make_Call_Into_Operator): If the operation is a function
16232         that renames an equality operator and the operands are overloaded,
16233         resolve them with the declared formal types, before rewriting as an
16234         operator.
16235
16236 2004-03-29  GNAT Script  <nobody@gnat.com>
16237
16238         * Make-lang.in: Makefile automatically updated
16239
16240 2004-03-25  Vasiliy Fofanov  <fofanov@act-europe.fr>
16241
16242         * memtrack.adb: Log realloc calls, which are treated as free followed
16243         by alloc.
16244
16245 2004-03-25  Vincent Celier  <celier@gnat.com>
16246
16247         * prj-makr.adb (Process_Directories): Detect when a file contains
16248         several units. Do not include such files in the config pragmas or
16249         in the naming scheme.
16250
16251         * prj-nmsc.adb (Record_Source): New parameter Trusted_Mode.
16252         Resolve links only when not in Trusted_Mode.
16253         (Find_Sources, Recursive_Find_Dirs, Find_Source_Dirs, Locate_Directory):
16254         Do not resolve links for the display names.
16255
16256         * prj-part.adb (Parse_Single_Project, Project_Path_Name_Of): Do not
16257         resolve links when computing the display names.
16258
16259 2004-03-25  Thomas Quinot  <quinot@act-europe.fr>
16260
16261         * sem_attr.adb (Check_Dereference): When the prefix of a 'Tag
16262         attribute reference does not denote a subtype, it can be any
16263         expression that has a classwide type, potentially after an implicit
16264         dereference.  In particular, the prefix can be a view conversion for
16265         a classwide type (for which Is_Object_Reference holds), but it can
16266         also be a value conversion for an access-to-classwide type. In the
16267         latter case, there is an implicit dereference, and the original node
16268         for the prefix does not verify Is_Object_Reference.
16269
16270         * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): A view
16271         conversion of a discriminant-dependent component of a mutable object
16272         is one itself.
16273
16274 2004-03-25  Ed Schonberg  <schonberg@gnat.com>
16275
16276         * freeze.adb (Freeze_Entity): When an inherited subprogram is
16277         inherited, has convention C, and has unconstrained array parameters,
16278         place the corresponding warning on the derived type declaration rather
16279         than the original subprogram.
16280
16281         * sem_ch12.adb (Instantiate_Formal_Subprogram): Set From_Default
16282         indication on renaming declaration, if formal has a box and actual
16283         is absent.
16284
16285         * sem_ch8.adb (Analyze_Subprogram_Renaming): Use From_Default flag to
16286         determine whether to generate an implicit or explicit reference to
16287         the renamed entity.
16288
16289         * sinfo.ads, sinfo.adb: New flag From_Default, to indicate that a
16290         subprogram renaming comes from a defaulted formal subprogram in an
16291         instance.
16292
16293 2004-03-25  Gary Dismukes  <dismukes@gnat.com>
16294
16295         * sem_elab.adb (Check_Elab_Call): Refine loop that checks for default
16296         value expressions to ensure that calls within a component definition
16297         will be checked (since those are evaluated during the record type's
16298         elaboration).
16299
16300 2004-03-25  Arnaud Charlet  <charlet@act-europe.fr>
16301
16302         * s-tpobop.adb: Code clean up:
16303         (Requeue_Call): Extract from PO_Service_Entries to remove duplicated
16304         code.
16305         (PO_Do_Or_Queue): Remove duplicated code and use Requeue_Call.
16306
16307 2004-03-25  Jose Ruiz  <ruiz@act-europe.fr>
16308
16309         * Makefile.in: Clean up in the ravenscar run time.
16310
16311 2004-03-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16312
16313         * decl.c (gnat_to_gnu_entity, case E_Access_Type): Pass value
16314         of No_Strict_Aliasing to build_pointer_type_for_mode.
16315         * utils.c (update_pointer_to): Walk pointer and ref chains.
16316
16317 2004-03-22  Cyrille Comar  <comar@act-europe.fr>
16318
16319         * ali.ads: Fix Comment about Dynamic_Elab.
16320
16321         * gnatls.adb (Output_Unit): Add output of many flags (Dynamic_Elab,
16322         Has_RACW, Is_Generic, etc.)
16323         (Output_Object, Gnatls): Take into account ALI files not attached to
16324         an object.
16325
16326 2004-03-22  Vincent Celier  <celier@gnat.com>
16327
16328         * gprep.adb: Change all String_Access to Name_Id
16329         (Is_ASCII_Letter): new function
16330         (Double_File_Name_Buffer): New procedure
16331         (Preprocess_Infile_Name): New procedure
16332         (Process_Files): New procedure
16333         (Gnatprep): Check if output and input are existing directories.
16334         Call Process_Files to do the real job.
16335
16336 2004-03-22  Robert Dewar  <dewar@gnat.com>
16337
16338         * prj-env.adb, prj-nmsc.ads, prj-proc.ads,
16339         s-stache.ads, s-stache.adb: Comment updates. Minor reformatting.
16340
16341 2004-03-22  Sergey Rybin  <rybin@act-europe.fr>
16342
16343         * scn.adb (Contains): Add check for EOF, is needed for a degenerated
16344         case when the source contains only comments.
16345
16346 2004-03-22  Ed Schonberg  <schonberg@gnat.com>
16347
16348         * sem_ch10.adb (Analyze_Compilation_Unit): When generating a
16349         declaration for a child subprogram body that acts as a spec, indicate
16350         that the entity in the declaration needs debugging information.
16351
16352         * sem_ch3.adb (Complete_Private_Subtype): Do not build an underlying
16353         full view if the subtype is created for a constrained record component;
16354         gigi has enough information to construct the record, and there is no
16355         place in the tree for the declaration.
16356
16357         * sem_ch6.adb (Build_Body_To_Inline): Use an internal name without
16358         serial number for the dummy body that is built for analysis, to avoid
16359         inconsistencies in the generation of internal names when compiling
16360         with -gnatN.
16361
16362 2004-03-22  Thomas Quinot  <quinot@act-europe.fr>
16363
16364         * sem_util.adb (Is_Object_Reference): A view conversion denotes an
16365         object.
16366
16367 2004-03-22  GNAT Script  <nobody@gnat.com>
16368
16369         * Make-lang.in: Makefile automatically updated
16370
16371 2004-03-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16372
16373         * decl.c (gnat_to_gnu_entity): Use SUBSTITUTE_PLACEHOLDER_IN_EXPR.
16374         * trans.c (tree_transform, emit_index_check): Likewise.
16375         * utils.c (build_template): Likewise.
16376         (max_size, convert): Remove handling of WITH_RECORD_EXPR.
16377         (maybe_unconstrained_array, unchecked_convert): Likewise.
16378         * utils2.c (gnat_truthvalue_conversion, build_binary_op): Likewise.
16379         (build_unary_op): Likewise.
16380         (compare_arrays, build_allocator): Use SUBSTITUTE_PLACEHOLDER_IN_EXPR.
16381         (fill_vms_descriptor): Likewise.
16382         (build_call_alloc_dealloc): Likewise.
16383         ALIGN is unsigned.
16384         * gigi.h (build_call_alloc_dealloc): Alignment is unsigned.
16385
16386 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
16387
16388         PR other/14630
16389         * gnat_ug.texi: Add info directory category and entry.
16390         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
16391         gnat_ug_wnt.texi: Regenerate.
16392
16393 2004-03-19  Arnaud Charlet  <charlet@act-europe.fr>
16394
16395         * ada-tree.h: Update copyright notice.
16396         Minor reformatting.
16397
16398 2004-03-19  Olivier Hainque  <hainque@act-europe.fr>
16399
16400         * decl.c (gnat_to_gnu_entity, case E_Exception): Handle VMS exceptions
16401         as regular exception objects and not as mere integers representing the
16402         condition code.  The latter approach required some dynamics to mask off
16403         severity bits, which did not fit well into the GCC table based model.
16404         (gnat_to_gnu_entity, objects): Don't supply an external name for VMS
16405         exception data objects. We don't it and it would conflict with the other
16406         external symbol we have to generate for such exceptions.
16407
16408         * trans.c (tree_transform, case N_Exception_Handler): Remove part of
16409         the special code for VMS exceptions, since these are now represented
16410         as regular exceptions objects.
16411
16412 2004-03-19 Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16413
16414         * decl.c (debug_no_type_hash): Remove.
16415         (gnat_to_gnu_entity, case E_Array_Type): Don't set and clear it.
16416         * misc.c (LANG_HOOK_HASH_TYPE): Redefine.
16417
16418 2004-03-19  Laurent Guerby <laurent@guerby.net>
16419
16420         * sem_prag.adb (Suppress_Unsuppress_Echeck): use loop instead of
16421         aggregate, allows bootstrap from 3.3 on powerpc-darwin.
16422
16423 2004-03-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16424
16425         * ada-tree.h (TYPE_LEFT_JUSTIFIED_MODULAR_P): Add checking.
16426         (TYPE_CONTAINS_TEMPLATE_P, TYPE_OBJECT_RECORD_TYPE): Likewise.
16427         (TYPE_RM_SIZE_INT): Directly use type.values.
16428         (TREE_LOOP_ID): Clean up check.
16429         * decl.c (gnat_to_gnu_entity, case E_Enumeration_Type): Use
16430         TYPE_VALUES, not TYPE_FIELDS.
16431         * trans.c (convert_with_check): Delay access of bounds of basetype
16432         until sure is numeric.
16433
16434 2004-03-18  Arnaud Charlet  <charlet@act-europe.fr>
16435
16436         * 5atpopsp.adb: Remove RTEMS from list of platforms using this file.
16437
16438         Code clean up:
16439         * 5ataprop.adb, 5ftaprop.adb, 5htaprop.adb, 5itaprop.adb, 5staprop.adb,
16440         5vtaprop.adb, 5wtaprop.adb, 7staprop.adb (Finalize_TCB): Use
16441         Specific.Set instead of direct call to e.g pthread_setspecific.
16442
16443 2004-03-18  Thomas Quinot  <quinot@act-europe.fr>
16444
16445         * adaint.c: Update comments.
16446
16447         * Makefile.in: set PREFIX_OBJS, SYMLIB, THREADSLIB, and
16448         GNATLIB_SHARED for FreeBSD.
16449
16450 2004-03-18  Jose Ruiz  <ruiz@act-europe.fr>
16451
16452         * init.c [VxWorks]: Do not fix the stack size for the environment task.
16453         When needed (stack checking) the stack size is retrieved
16454         from the VxWorks kernel.
16455
16456         * Makefile.in: Flag -nostdinc is required when building the run time
16457         for avoiding looking for files in the base compiler.
16458         Add the VxWorks specific version of the package body for
16459         System.Stack_checking.Operations (5zstchop.adb).
16460
16461         * Make-lang.in: Add the object file for
16462         System.Stack_Checking.Operations.
16463
16464         * Makefile.rtl: Add object file for the package
16465         System.Stack_Checking.Operations.
16466
16467         * s-stchop.ads, s-stchop.adb, 5zstchop.adb: New files.
16468
16469         * s-stache.ads, s-stache.adb: Move the operations related to stack
16470         checking from this package to package System.Stack_Checking.Operations.
16471         This way, stack checking operations are only linked in the final
16472         executable when using the -fstack-check flag.
16473
16474 2004-03-18  Doug Rupp  <rupp@gnat.com>
16475
16476         * Makefile.in [VMS]: Handle 64 bit specs (5qsystem.ads, 5xcrtl.ads).
16477         Reorganize ifeq's.
16478
16479         * 5qsystem.ads, 5xcrtl.ads: New files.
16480
16481 2004-03-18  Vincent Celier  <celier@gnat.com>
16482
16483         * prj.adb (Reset): Reset hash table Files_Htable
16484
16485         * prj-env.adb (Source_Paths, Object_Paths): New tables.
16486         (Add_To_Source_Path, Add_To_Object_Path): New procedures, to replace
16487         the procedures Add_To_Path_File.
16488         (Set_Ada_Paths): Accumulate source and object dirs in the tables,
16489         making sure that each directory is present only once and, for object
16490         dirs, when a directory already present is added, the duplicate is
16491         removed and the directory is always put as the last in the table.
16492         Write the path files at the end of these accumulations.
16493
16494         * prj-nmsc.adb (Record_Source): Add source file name in hash table
16495         Files_Htable for all sources.
16496
16497         * prj-proc.adb (Process): Remove restrictions between not directly
16498         related extending projects.
16499
16500 2004-03-18  Emmanuel Briot  <briot@act-europe.fr>
16501
16502         * prj-nmsc.ads, prj-nmsc.adb (Ada_Check): New parameter Trusted_Mode.
16503         (Find_Sources): Minor speed optimization.
16504
16505         * prj-proc.ads, prj-proc.adb (Check, Recursive_Check, Process): New
16506         parameter Trusted_Mode.
16507
16508 2004-03-18  Sergey Rybin  <rybin@act-europe.fr>
16509
16510         * scn.adb (Determine_License): Take into account a degenerated case
16511         when the source contains only comments.
16512
16513 2004-03-18  Ed Schonberg  <schonberg@gnat.com>
16514
16515         * sem_warn.adb (Check_References): For a warning on a selected
16516         component that does not come from source, locate an uninitialized
16517         component of the record type to produce a more precise error message.
16518
16519 2004-03-15  Jerome Guitton  <guitton@act-europe.fr>
16520
16521         * 3zsoccon.ads: Fix multicast options.
16522
16523         * s-thread.ads: Move unchecked conversion from ATSD_Access to Address
16524         in the spec.
16525
16526 2004-03-15  Robert Dewar  <dewar@gnat.com>
16527
16528         * sem_prag.adb: Make sure No_Strict_Aliasing flag is set right when
16529         pragma used for a private type.
16530
16531         * lib-xref.adb (Generate_Reference): Do not generate warning if
16532         reference is in a different unit from the pragma Unreferenced.
16533
16534         * 5vtpopde.adb: Minor reformatting
16535         Fix casing of To_Task_ID
16536
16537         * sem_ch13.adb (Validate_Unchecked_Conversion): Set No_Strict_Aliasing
16538         flag if we have an unchecked conversion to an access type in the same
16539         unit.
16540
16541 2004-03-15  Geert Bosch  <bosch@gnat.com>
16542
16543         * a-ngcoty.adb (Modulus): In alternate formula for large real or
16544         imaginary parts, use Double precision throughout.
16545
16546         * a-tifiio.adb (Put_Scaled): Remove remaining pragma Debug. Not only
16547         we want to be able to compile run-time with -gnata for testing, but
16548         this may also be instantiated in user code that is compiled with -gnata.
16549
16550 2004-03-15  Olivier Hainque  <hainque@act-europe.fr>
16551
16552         * s-stalib.ads (Exception_Code): New type, to represent Import/Export
16553         codes. Having a separate type for this is useful to enforce consistency
16554         throughout the various run-time units.
16555         (Exception_Data): Use Exception_Code for Import_Code.
16556
16557         * s-vmextra.ads, s-vmexta.adb: Use Exception_Code instead of a mix of
16558         Natural and Integer in various places.
16559         (Register_VMS_Exception): Use Base_Code_In to compute the exception code
16560         with the severity bits masked off.
16561         (Register_VMS_Exception): Handle the additional exception data pointer
16562         argument.
16563
16564         * raise.c (_GNAT_Exception structure): Remove the handled_by_others
16565         component, now reflected by an exported accessor.
16566         (is_handled_by): New routine to compute whether the propagated
16567         occurrence matches some handler choice specification. Extracted out of
16568         get_action_description_for, and expanded to take care of the VMS
16569         specifities.
16570         (get_action_description_for): Use is_handled_by instead of an explicit
16571         complex condition to decide if the current choice at hand catches the
16572         propagated occurrence.
16573
16574         * raise.h (Exception_Code): New type for C.
16575
16576         * rtsfind.ads (RE_Id, RE_Unit_Table): Add
16577         System.Standard_Library.Exception_Code, to allow references from the
16578         pragma import/export expander.
16579
16580         * a-exexpr.adb (Is_Handled_By_Others, Language_For, Import_Code_For):
16581         New accessors to allow easy access to GNAT exception data
16582         characteristics.
16583         (GNAT_GCC_Exception record, Propagate_Exception): Get rid of the
16584         redundant Handled_By_Others component, helper for the personality
16585         routine which will now be able to call the appropriate exception data
16586         accessor instead.
16587
16588         * cstand.adb (Create_Standard): Adjust the type of the Import_Code
16589         component of Standard_Exception_Type to be the closest possible to
16590         Exception_Code in System.Standard_Library, that we cannot get at this
16591         point. Expand a ??? comment to notify that this type node should
16592         probably be rewritten later on.
16593
16594         * exp_prag.adb (Expand_Pragma_Import_Export_Exception): Adjust the
16595         registration call to include a pointer to the exception object in the
16596         arguments.
16597
16598         * init.c (__gnat_error_handler): Use Exception_Code and Base_Code_In
16599         instead of int and explicit bitmasks.
16600
16601 2004-03-15  Vincent Celier  <celier@gnat.com>
16602
16603         * vms_data.ads: Add new GNAT BIND qualifier /STATIC. Makes /NOSHARED
16604         equivalent to /STATIC and /NOSTATIC equivalent to /SHARED.
16605
16606         * a-tasatt.adb (To_Access_Code): Remove this UC instantiation, no
16607         longer needed now that it is in the spec of
16608         System.Tasking.Task_Attributes.
16609
16610         * adaint.h, adaint.c: (__gnat_create_output_file): New function
16611
16612         * gnatcmd.adb: Fix bug introduced in previous rev: /= instead of =
16613
16614         * g-os_lib.ads, g-os_lib.adb (Create_Output_Text_File): New function.
16615
16616         * make.adb (Gnatmake): Do not check the executable suffix; it is being
16617         taken care of in Scan_Make_Arg.
16618         (Scan_Make_Arg): Add the executable suffix only if the argument
16619         following -o, in canonical case, does not end with the executable
16620         suffix.  When in verbose mode and executable file name does not end
16621         with executable suffix, output the executable name, in canonical case.
16622
16623         * s-tataat.ads (Access_Dummy_Wrapper): Add pragma No_Strict_Aliasing
16624         to avoid warnings when instantiating Ada.Task_Attributes.
16625         Minor reformating.
16626
16627         * mlib-prj.adb (Process_Imported_Libraries): Get the imported libraries
16628         in the correct order.
16629
16630         * prj-makr.adb (Process_Directory): No longer use GNAT.Expect, but
16631         redirect standard output and error to a file for the invocation of the
16632         compiler, then read the file.
16633
16634         * prj-nmsc.adb (Find_Sources): Use the Display_Value for each
16635         directory, instead of the Value.
16636         (Find_Source_Dirs): Remove useless code & comments.
16637
16638 2004-03-15  Ed Schonberg  <schonberg@gnat.com>
16639
16640         * exp_ch3.adb (Freeze_Record_Type): If a primitive operation of a
16641         tagged type is inherited, and the parent operation is not frozen yet,
16642         force generation of a freeze node for the inherited operation, so the
16643         corresponding dispatch entry is properly initialized.
16644         (Make_Predefined_Primitive_Specs): Check that return type is Boolean
16645         when looking for user-defined equality operation.
16646
16647         * exp_ch4.adb (Expand_Composite_Equality): Check that return type is
16648         boolean when locating primitive equality of tagged component.
16649
16650         * exp_ch5.adb (Expand_Assign_Array): If the left-hand side is a
16651         bit-aligned field and the right-hand side a string literal, introduce
16652         a temporary before expanding assignment into a loop.
16653
16654         * exp_ch9.adb (Expand_N_Task_Type_Declaration): Copy expression for
16655         priority in full, to ensure that any expanded subepxressions of it are
16656         elaborated in the scope of the init_proc.
16657
16658         * exp_prag.adb (Expand_Pragma_Import): Search for initialization call
16659         after object declaration, skipping over code that may have been
16660         generated for validity checks.
16661
16662         * sem_ch12.adb (Validate_Private_Type_Instance): If type has unknown
16663         discriminants, ignore the known discriminants of its full view, if
16664         any, to check legality.
16665
16666         * sem_ch3.adb (Complete_Private_Subtype): Do not create constrained
16667         component if type has unknown discriminants.
16668         (Analyze_Private_Extension_Declaration): Discriminant constraint is
16669         null if type has unknown discriminants.
16670
16671         * sem_ch6.adb (Analyze_Generic_Subprogram_Body): Generate reference
16672         for end label when present.
16673
16674         * s-fileio.adb (Open): When called with a C_Stream, use given name for
16675         temporary file, rather than an empty string.
16676
16677 2004-03-15  Ed Falis  <falis@gnat.com>
16678
16679         * s-thread.adb: Removed, no longer used.
16680
16681 2004-03-15  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16682
16683         * decl.c (target.h): Now include.
16684         (gnat_to_gnu_entity, case E_Access_Type): Use mode derived from ESIZE
16685         in new build_pointer_from_mode calls for non-fat/non-thin pointer.
16686         (validate_size): For POINTER_TYPE, get smallest size permitted on
16687         machine.
16688
16689         * fe.h: Sort Einfo decls and add Set_Mechanism.
16690
16691         * Makefile.in: (LIBGNAT_SRCS): Remove types.h.
16692         (ada/decl.o): Depends on target.h.
16693
16694         * trans.c (tree_transform, N_Unchecked_Type_Conversion): Do not use
16695         FUNCTION_BOUNDARY; always use TYPE_ALIGN.
16696
16697 2004-03-15  Thomas Quinot  <quinot@act-europe.fr>
16698
16699         * 5ztpopsp.adb, 56tpopsp.adb: Fix spelling of Task_ID.
16700
16701         * exp_ch4.adb (Expand_N_Indexed_Component): Do not call
16702         Insert_Dereference_Action when rewriting an implicit dereference into
16703         an explicit one, this will be taken care of during expansion of the
16704         explicit dereference.
16705         (Expand_N_Slice): Same. Always do the rewriting, even for the case
16706         of non-packed slices, since the dereference action generated by
16707         expansion of the explicit dereference is needed in any case.
16708         (Expand_N_Selected_Component): When rewriting an implicit dereference,
16709         analyze and resolve the rewritten explicit dereference so it is seen
16710         by the expander.
16711         (Insert_Dereference_Action): This procedure is now called only for the
16712         expansion of an N_Explcit_Dereference_Node. Do insert a check even for
16713         dereferences that do not come from source (including explicit
16714         dereferences resulting from rewriting implicit ones), but do not
16715         recursively insert a check for the dereference nodes contained within
16716         the check.
16717         (Insert_Dereference_Action): Clarify and correct comment.
16718
16719 2004-03-08  Paolo Bonzini  <bonzini@gnu.org>
16720
16721         PR ada/14131
16722         Move language detection to the top level.
16723         * config-lang.in: Build by default.
16724
16725 2004-03-05  Robert Dewar  <dewar@gnat.com>
16726
16727         * 56taprop.adb, 5ataprop.adb: Remove unneeded unchecked conversions
16728
16729         * a-tags.adb, a-tags.ads, s-finimp.adb, s-finroo.ads,
16730         i-cpoint.ads, i-cpoint.adb, i-cstrin.adb, i-cstrin.ads,
16731         5iosinte.ads, 5sosinte.ads, 5staspri.ads, 5itaprop.adb,
16732         5staprop.adb, 5wtaprop.adb, s-tataat.ads, s-tataat.adb: Move
16733         unchecked conversion to spec to avoid warnings.
16734
16735         * s-tasini.adb, s-taskin.ads, 5atpopsp.adb: Correct spelling Task_Id
16736         to Task_ID
16737
16738         * 7stpopsp.adb: Correct casing in To_Task_ID call
16739
16740         * a-strsea.ads, a-strsea.adb: Minor reformatting
16741
16742         * einfo.ads, einfo.adb: Define new flag No_Strict_Aliasing
16743
16744         * errout.ads: Switch for VMS is now NO_STRICT_ALIASING.
16745         Adjust Max_Msg_Length to be clearly large enough.
16746
16747         * fe.h: Define In_Same_Source_Unit
16748
16749         * osint.adb: Add pragma Warnings Off to suppress warnings
16750         * g-dyntab.adb, g-table.adb, g-thread.adb: Add Warnings (Off) to kill
16751         aliasing warnings.
16752
16753         * opt.ads: Put entries in alpha order. Add entry for No_Strict_Aliasing
16754
16755         * par-prag.adb: Add dummy entry for No_Strict_Aliasing pragma
16756
16757         * sem_ch13.adb: Generate validate unchecked conversion nodes for gcc.
16758
16759         * sem_ch3.adb: Set No_Strict_Aliasing flag if config pragma set.
16760
16761         * sem_prag.adb: Implement pragma No_Strict_Aliasing.
16762
16763         * sinfo.ads: Remove obsolete comment on validate unchecked conversion
16764         node. We now do generate them for gcc back end.
16765
16766         * table.adb, sinput.adb: Add pragma Warnings Off to suppress aliasing
16767         warning.
16768
16769         * sinput-c.adb: Fix bad name in header.
16770         Add pragma Warnings Off to suppress aliasing warning.
16771
16772         * sinput-l.adb: Add pragma Warnings Off to suppress aliasing warning.
16773
16774         * snames.h, snames.ads, snames.adb: Add entry for pragma
16775         No_Strict_Aliasing.
16776
16777 2004-03-05  Vincent Celier  <celier@gnat.com>
16778
16779         * prj-com.ads: Add hash table Files_Htable to check when a file name
16780         is already a source of another project.
16781
16782         * prj-nmsc.adb (Record_Source): Before recording a new source, check
16783         if its file name is not already a source of another project. Report an
16784         error if it is.
16785
16786         * gnatcmd.adb: When GNAT PRETTY is invoked with a project file and no
16787         source file name, call gnatpp with all the sources of the main project.
16788
16789         * vms_conv.adb (Initialize): GNAT PRETTY may be called with any number
16790         of file names.
16791
16792         * vms_data.ads: Correct documentation of new /OPTIMIZE keyword
16793         NO_STRICT_ALIASING. Add new qualifier for GNAT PRETTY:
16794         /RUNTIME_SYSTEM=, converted to --RTS=
16795         /NOTABS, converted to -notabs
16796
16797 2004-03-05  Pascal Obry  <obry@gnat.com>
16798
16799         * make.adb: Minor reformatting.
16800
16801 2004-03-05  Ed Schonberg  <schonberg@gnat.com>
16802
16803         Part of implemention of AI-262.
16804         * par-ch10.adb (P_Context_Clause): Recognize private with_clauses.
16805
16806         * sem_ch10.ads, sem_ch10.adb: (Install_Private_With_Clauses): New
16807         procedure.
16808
16809         * sem_ch3.adb (Analyze_Component_Declaration): Improve error message
16810         when component type is a partially constrained class-wide subtype.
16811         (Constrain_Discriminated_Type): If parent type has unknown
16812         discriminants, a constraint is illegal, even if full view has
16813         discriminants.
16814         (Build_Derived_Record_Type): Inherit discriminants when deriving a type
16815         with unknown discriminants whose full view is a discriminated record.
16816
16817         * sem_ch7.adb (Preserve_Full_Attributes): Preserve Has_Discriminants
16818         flag, to handle properly derivations of tagged types with unknown
16819         discriminants.
16820         (Analyze_Package_Spec, Analyze_Package_Body): Install
16821         Private_With_Clauses before analyzing private part or body.
16822
16823         * einfo.ads: Indicate that both Has_Unknown_Discriminants and
16824         Has_Discriminants can be true for a given type (documentation).
16825
16826 2004-03-05  Arnaud Charlet  <charlet@act-europe.fr>
16827
16828         * s-restri.ads: Fix license (GPL->GMGPL).
16829
16830         * s-tassta.adb: Minor reformatting.
16831
16832         * s-tasren.adb: Replace manual handling of Self_Id.ATC_Nesting_Level
16833         by calls to Exit_One_ATC_Level, since additional clean up is performed
16834         by this function.
16835
16836         * s-tpobop.adb: Replace manual handling of Self_Id.ATC_Nesting_Level
16837         by calls to Exit_One_ATC_Level, since additional clean up is performed
16838         by this function.
16839
16840 2004-03-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16841
16842         * trans.c: Reflect GCC changes to fix bootstrap problem.
16843         Add warning for suspicious aliasing unchecked conversion.
16844
16845 2004-03-05  GNAT Script  <nobody@gnat.com>
16846
16847         * Make-lang.in: Makefile automatically updated
16848
16849 2004-03-02  Emmanuel Briot  <briot@act-europe.fr>
16850
16851         * ali.adb (Read_Instantiation_Instance): Do not modify the
16852         current_file_num when reading information about instantiations, since
16853         this corrupts files in later references.
16854
16855 2004-03-02  Vincent Celier  <celier@gnat.com>
16856
16857         * bcheck.adb (Check_Consistency): Get the full path of an ALI file
16858         before checking if it is read-only.
16859
16860         * bld.adb (Recursive_Process): Concatenate <PROJECT>.src_dirs in front
16861         of SRC_DIRS and eliminate duplicates.
16862
16863         * gprcmd.adb: Replace command "path" with command "path_sep" to return
16864         the path separator.
16865         (Usage): Document path_sep
16866
16867         * Makefile.generic: For Ada and GNU C++ cases, link directly with the
16868         C++ compiler. No need for a script.
16869         Replace use of C*_INCLUDE_PATH env var for GCC compilers with CPATH.
16870         Do not call gprcmd to build the C*_INCLUDE_PATHs, do it with function
16871         subst.
16872
16873         * prj-env.adb (For_All_Source_Dirs): Only add source dirs in project
16874         where there are Ada sources.
16875         (Set_Ada_Paths): Only add to the include path the source dirs of project
16876         with Ada sources.
16877         (Add_To_Path): Add the Display_Values of the directories, not their
16878         Values.
16879
16880         * prj-nmsc.adb (Find_Sources): Set flag Sources_Present in the project
16881         data.
16882
16883         * prj-nmsc.adb (Add_ALI_For): Make sure that the element Display_Value
16884         is not No_Name.
16885         (Find_Source_Dirs): Set Display_Value to a non canonicalized value, only
16886         Value is canonicalized.
16887         (Language_Independent_Check): Do not copy Value to Display_Value when
16888         canonicalizing Value.
16889
16890         * prj-part.adb (Post_Parse_Context_Clause): Compare canonical cased
16891         path to find limited with cycles.
16892         (Parse_Single_Project): Use canonical cased path to find the end of a
16893         with cycle.
16894
16895 2004-03-02  Ed Schonberg  <schonberg@gnat.com>
16896
16897         * sem_ch10.adb (Optional_Subunit): Verify that unit contains a subunit
16898         and not a child unit.
16899
16900         * sinfo.ads, sinfo.adb: Rearrange flags so that Private_Present can
16901         appear in a with_clause.
16902
16903         * decl.c (gnat_to_gnu_type): If entity is a generic type, which can
16904         only happen in type_annotate mode, do not try to elaborate it.
16905
16906         * exp_util.adb (Force_Evaluation): If expression is a selected
16907         component on the left of an assignment, use a renaming rather than a
16908         temporary to remove side effects.
16909
16910         * freeze.adb (Freeze_Entity): Do not freeze a global entity within an
16911         inlined instance body, which is analyzed before the end of the
16912         enclosing scope.
16913
16914 2004-03-02  Robert Dewar  <dewar@gnat.com>
16915
16916         * par-ch10.adb, par-ch3.adb, par-ch4.adb, scng.adb,
16917         sem_ch4.adb: Use new feature for substitution of keywords in VMS
16918
16919         * errout.ads, errout.adb: Implement new circuit for substitution of
16920         keywords in VMS.
16921
16922         * sem_case.adb (Analyze_Choices): Place message properly when case is
16923         a subtype reference rather than an explicit range.
16924
16925         * sem_elim.adb, s-tpobop.ads, exp_ch2.adb: Minor reformatting
16926
16927 2004-03-02  Doug Rupp  <rupp@gnat.com>
16928
16929         * init.c (__gnat_initialize)[VMS]: Resignal RDB-E-STREAM_EOF.
16930
16931 2004-03-02  Thomas Quinot  <quinot@act-europe.fr>
16932
16933         * s-tporft.adb: Add missing locking around call to Initialize_ATCB.
16934
16935 2004-03-02  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16936
16937         * utils.c (finish_record_type): Do not set DECL_NONADDRESSABLE for a
16938         BLKmode bitfield.
16939
16940 2004-02-25  Robert Dewar  <dewar@gnat.com>
16941
16942         * 51osinte.ads, 52osinte.ads, 53osinte.ads, 54osinte.ads,
16943         55osinte.ads, 56osinte.ads, 5aosinte.ads, 5bosinte.ads,
16944         5cosinte.ads, 5fosinte.ads, 5gosinte.ads, 5hosinte.ads,
16945         5iosinte.ads, 5losinte.ads, 5nosinte.ads, 5oosinte.ads,
16946         5posinte.ads, 5sosinte.ads, 5tosinte.ads, 5vosinte.ads,
16947         5wosinte.ads, 5zosinte.ads: Move instances of Unchecked_Conversion to
16948         the defining instance of the type to avoid aliasing problems.
16949         Fix copyright header.  Fix bad comments in package header.
16950
16951         * exp_util.adb, prj-part.adb, prj-part.adb: Minor reformatting
16952
16953 2004-02-25  Ed Schonberg  <schonberg@gnat.com>
16954
16955         * exp_ch2.adb (Param_Entity): Handle properly formals that have been
16956         rewritten as references when aliased through an address clause.
16957
16958         * sem_ch4.adb (Try_Indirect_Call): Normalize actuals before checking
16959         whether call can be interpreted as an indirect call to the result of a
16960         parameterless function call returning an access subprogram.
16961
16962 2004-02-25  Arnaud Charlet  <charlet@act-europe.fr>
16963
16964         Code clean up:
16965         * exp_ch7.adb (Make_Clean): Remove generation of calls to
16966         Unlock[_Entries], since this is now done by Service_Entries directly.
16967
16968         * exp_ch9.adb (Build_Protected_Subprogram_Body): ditto.
16969
16970         * s-tpobop.ads, s-tpobop.adb (PO_Service_Entries): New nested procedure
16971         Requeue_Call for better code readability. Change spec and update calls:
16972         PO_Service_Entries now unlock the PO on exit.
16973         (Protected_Entry_Call, Timed_Protected_Entry_Call): Update calls to
16974         PO_Service_Entries.
16975
16976         * s-tposen.ads, s-tposen.adb (Service_Entry): Now unlock the PO on exit.
16977
16978         * s-taenca.adb, s-tasren.adb: Update calls to PO_Service_Entries.
16979
16980 2004-02-25  Sergey Rybin  <rybin@act-europe.fr>
16981
16982         * exp_ch9.adb (Build_Simple_Entry_Call): Prevent expanding the
16983         protected subprogram call and analyzing the result of such expanding
16984         in case when the called protected subprogram is eliminated.
16985
16986         * sem_elim.adb (Check_Eliminated): Skip blocks when comparing scope
16987         names.
16988
16989 2004-02-25  Jerome Guitton  <guitton@act-europe.fr>
16990
16991         * Makefile.in: Clean ups.
16992
16993 2004-02-23  Ed Schonberg  <schonberg@gnat.com>
16994
16995         * exp_ch6.adb (Expand_N_Subprogram_Declaration): Do not create
16996         protected operations if original subprogram is flagged as eliminated.
16997         (Expand_N_Subprogram_Body): For a protected operation, create
16998         discriminals for next operation before checking whether the operation
16999         is eliminated.
17000
17001         * exp_ch9.adb (Expand_N_Protected_Body,
17002         Expand_N_Protected_Type_Declaration): Do not generate specs and bodies
17003         for internal protected operations if the original subprogram is
17004         eliminated.
17005
17006         * sem_elim.adb (Check_Eliminated): Handle properly protected operations
17007         declared in a single protected object.
17008
17009 2004-02-23  Vincent Celier  <celier@gnat.com>
17010
17011         * prj-attr.adb: Make attribute Builder'Executable an associative array,
17012         case insensitive if file names are case insensitive, instead of a
17013         standard associative array.
17014
17015         * prj-attr.adb (Initialize): For 'b' associative arrays, do not set
17016         them as case insensitive on platforms where the file names are case
17017         sensitive.
17018
17019         * prj-part.adb (Parse_Single_Project): Make sure, when checking if
17020         project file has already been parsed that canonical path are compared.
17021
17022 2004-02-23  Robert Dewar  <dewar@gnat.com>
17023
17024         * sinput-c.ads: Correct bad unit title in header
17025
17026         * freeze.adb: Minor reformatting
17027
17028 2004-02-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17029
17030         * trans.c (tree_transform, case N_Procedure_Call_Statement): For
17031         nonaddressable COMPONENT_REF that is removing padding that we are
17032         taking the address of, take the address of the padded record instead
17033         if item is variable size.
17034
17035 2004-02-20  Robert Dewar  <dewar@gnat.com>
17036
17037         * bld.adb, exp_util.adb, gprcmd.adb: Minor reformatting
17038
17039 2004-02-20  Ed Schonberg  <schonberg@gnat.com>
17040
17041         * freeze.adb (Freeze_Record_Type): Generalize mechanism that generates
17042         itype references for the constrained designated type of a component
17043         whose base type is already frozen.
17044
17045 2004-02-20  Arnaud Charlet  <charlet@act-europe.fr>
17046
17047         * init.c (__gnat_error_handler [tru64]): Rewrite previous change to
17048         avoid GCC warnings.
17049
17050 2004-02-20  Sergey Rybin  <rybin@act-europe.fr>
17051
17052         * sem_ch12.adb (Analyze_Formal_Package): Create a new defining
17053         identifier for a phantom package that rewrites the formal package
17054         declaration with a box. The Add semantic decorations for the defining
17055         identifier from the original node (that represents the formal package).
17056
17057 2004-02-19  Matt Kraai  <kraai@alumni.cmu.edu>
17058
17059         * Make-lang.in (ada/stamp-sdefault): Use the top level
17060         move-if-change.
17061
17062 2004-02-19  Richard Henderson  <rth@redhat.com>
17063
17064         * misc.c (record_code_position): Add third build arg for RTL_EXPR.
17065
17066 2004-02-18  Emmanuel Briot  <briot@act-europe.fr>
17067
17068         * ali.ads, ali.adb (First_Sdep_Entry): No longer a constant, so that
17069         Scan_ALI can be used for multiple ALI files without reinitializing
17070         between calls.
17071
17072 2004-02-18  Robert Dewar  <dewar@gnat.com>
17073
17074         * debug.adb: Minor reformatting.
17075
17076 2004-02-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17077
17078         * decl.c (gnat_to_gnu_entity, case object): Set DECL_POINTER_ALIAS_SET
17079         to zero if there is an address clause.
17080
17081 2004-02-18  Thomas Quinot  <quinot@act-europe.fr>
17082
17083         * exp_util.adb (Side_Effect_Free): Any literal is side effects free.
17084
17085 2004-02-18  Gary Dismukes  <dismukes@gnat.com>
17086
17087         * layout.adb (Layout_Component_List): Revise generation of call to
17088         discriminant-checking function to pass selections of all of the type's
17089         discriminants rather than just the variant-controlling discriminant.
17090
17091 2004-02-18  Olivier Hainque  <hainque@act-europe.fr>
17092
17093         * 5gmastop.adb (Pop_Frame): Do not call exc_unwind, which is bound to
17094         fail in the current setup and triggers spurious system error messages.
17095         Pretend it occurred and failed instead.
17096
17097 2004-02-18  Vincent Celier  <celier@gnat.com>
17098
17099         * bld.adb: Mark FLDFLAGS as saved
17100         (Process_Declarative_Items): Add Linker'Linker_Options to FLDFLAGS when
17101         it is not the root project.  Put each directory to be
17102         extended between double quotes to prevent it to be expanded on Windows.
17103         (Recursive_Process): Reset CFLAGS/CXXFLAGS to nothing before processing
17104         the project file. Set them back to their initial values if they have not
17105         been set in the project file.
17106
17107         * gprcmd.adb: (Gprdebug, Debug): New global variables
17108         (Display_Command): New procedure
17109         (Usage): Document new command "linkopts"
17110         Call Display_Command when env var GPRDEBUG has the value "TRUE"
17111         Implement new command "linkopts"
17112         Remove quotes that may be around arguments for "extend"
17113         Always call Normalize_Pathname with arguments formatted for the platform
17114
17115         * Makefile.generic: Link C/C++ mains with $(FLDFLAGS)
17116         Change @echo to @$(display) in target clean to be able to clean silently
17117
17118         * Makefile.prolog: Save FLDFLAGS and give it an initial empty value
17119
17120         * prj-part.adb (Project_Path_Name_Of): Do not put final result in
17121         canonical case.
17122
17123         * prj-part.adb (Parse_Single_Project): Always call with From_Extended
17124         = Extending_All when current project is an extending all project.
17125
17126         * vms_conv.adb (Output_File_Expected): New Boolean global variable,
17127         set to True only for LINK command, after Unix switch -o.
17128         (Process_Arguments): Set Output_File_Expected to True for LINK command
17129         after Unix switch -o. When Output_File_Expected is True, never add an
17130         extension to a file name.
17131
17132         * 5vml-tgt.adb (Build_Dynamic_Library): Do not append "/OPTIONS" to the
17133         option file name, only to the --for-linker= switch.
17134         (Option_File_Name): If option file name do not end with ".opt", append
17135         "/OPTIONS".
17136
17137 2004-02-18  GNAT Script  <nobody@gnat.com>
17138
17139         * Make-lang.in: Makefile automatically updated
17140
17141 2004-02-17  Matt Kraai  <kraai@alumni.cmu.edu>
17142
17143         * Make-lang.in (stamp-sdefault): Do not depend on
17144         move-if-change.
17145
17146 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
17147
17148         * config-lang.in: Disable Ada by default until probe logic for
17149         a bootstrap Ada compiler can be moved to the top level configure
17150         script.
17151
17152 2004-02-12  Olivier Hainque  <hainque@act-europe.fr>
17153
17154         * decl.c (components_to_record): Don't claim that the internal fields
17155         we make to hold the variant parts are semantically addressable, because
17156         they are not.
17157
17158         * exp_pakd.adb (Create_Packed_Array_Type): Rename Esiz into PASize and
17159         adjust the comment describing the modular type form when we can use it.
17160         (Install_PAT): Account for the Esiz renaming.
17161
17162         * init.c (__gnat_error_handler for alpha-tru64): Arrange to clear the
17163         sc_onstack context indication before raising the exception to which
17164         the signal is mapped. Allows better handling of later signals possibly
17165         triggered by the resumed user code if the exception is handled.
17166
17167 2004-02-12  Arnaud Charlet  <charlet@act-europe.fr>
17168
17169         * 5zinit.adb: Removed, no longer used.
17170
17171 2004-02-12  Robert Dewar  <dewar@gnat.com>
17172
17173         * ali.adb: Remove separating space between parameters on R line. Makes
17174         format consistent with format used by the binder for Set_Globals call.
17175
17176         * atree.ads, atree.adb: Minor reformatting (new function header format)
17177
17178         * bindgen.adb: Add Run-Time Globals documentation section containing
17179         detailed documentation of the globals passed from the binder file to
17180         the run time.
17181
17182         * gnatls.adb: Minor reformatting
17183
17184         * init.c (__gnat_set_globals): Add note pointing to documentation in
17185         bindgen.
17186
17187         * lib-writ.ads, lib-writ.adb: Remove separating space between
17188         parameters on R line.
17189         Makes format consistent with format used by the binder for Set_Globals
17190         call.
17191
17192         * osint.ads: Add 2004 to copyright notice
17193         Minor reformatting
17194
17195         * snames.ads: Correct capitalization of FIFO_Within_Priorities
17196         Noticed during code reading, documentation issue only
17197
17198         * usage.adb: Remove junk line for obsolete C switch
17199         Noticed during code reading
17200
17201 2004-02-12  Vincent Celier  <celier@gnat.com>
17202
17203         * bld.adb (Process_Declarative_Items): For Source_Dirs call gprcmd
17204         extend for each directory, so that multiple /** directories are
17205         extended individually.
17206         (Recursive_Process): Set the default for LANGUAGES to ada
17207
17208         * gprcmd.adb: Define new command "ignore", to do nothing.
17209         Implement new comment "path".
17210
17211         * Makefile.generic: Suppress output when SILENT is set
17212         Make sure that when compiler for C/C++ is gcc, the correct -x switch is
17213         used, so that the correct compiler is invoked.
17214         When compiler is gcc/g++, put search path in env vars C_INCLUDE_PATH/
17215         CXX_INCLUDE_PATH, to avoid failure with too long command lines.
17216
17217 2004-02-12  Jerome Guitton  <guitton@act-europe.fr>
17218
17219         * Makefile.in: Clean ups and remove obsolete targets.
17220
17221 2004-02-12  Ed Schonberg  <schonberg@gnat.com>
17222
17223         * exp_ch5.adb: Remove Possible_Unligned_Slice, in favor of the similar
17224         predicate declared in exp_util.
17225
17226         * exp_util.adb: Add comments.
17227
17228         * sem_ch10.adb (Analyze_Subunit): Remove ultimate parent unit from
17229         visibility before compiling context of the subunit.
17230
17231         * sem_res.adb (Check_Parameterless_Call): If the context expects a
17232         value but the name is a procedure, do not attempt to analyze as a call,
17233         in order to obtain more telling diagnostics.
17234
17235         * sem_util.adb (Wrong_Type): Further enhancement to diagnose missing
17236         'Access on parameterless function calls.
17237         (Normalize_Actuals): For a parameterless function call with missing
17238         actuals, defer diagnostic until resolution of enclosing call.
17239
17240         * sem_util.adb (Wrong_Type): If the context type is an access to
17241         subprogram and the expression is a procedure name, suggest a missing
17242         'attribute.
17243
17244 2004-02-10  Arnaud Charlet  <charlet@act-europe.fr>,
17245             Nathanael Nerode  <neroden@gcc.gnu.org>
17246
17247         PR ada/6637, PR ada/5911
17248         Merge with libada-branch:
17249         * config-lang.in: Build libada only when ada is built.
17250
17251 2004-02-09  Ed Schonberg  <schonberg@gnat.com>
17252
17253         * exp_ch4.adb (Expand_N_Op_Eq): When looking for the primitive equality
17254         for a tagged type, verify that both formals have the same type.
17255
17256         * exp_ch6.adb (Add_Call_By_Copy_Code): Initialize properly the
17257         temporary when the formal is an in-parameter and the actual a possibly
17258         unaligned slice.
17259
17260         * exp_ch9.adb (Expand_Entry_Barrier): Resolve barrier expression even
17261         when expansion is disabled, to ensure proper name capture with
17262         overloaded literals.  Condition can be of any boolean type, resolve
17263         accordingly.
17264
17265         * sem_ch8.adb (Analyze_Subprogram_Renaming): Emit warning if the
17266         renaming is for a formal subprogram with a default operator name, and
17267         there is a usable operator that is visible at the point of
17268         instantiation.
17269
17270 2004-02-09  Robert Dewar  <dewar@gnat.com>
17271
17272         * ali.adb (Scan_Ali) Add Ignore_Errors argument. This is a major
17273         rewrite to ignore errors in ali files, intended to allow tools downward
17274         compatibility with new versions of ali files.
17275
17276         * ali.ads: Add new parameter Ignore_Errors
17277
17278         * bcheck.adb (Check_Consistent_Restrictions): Fix error of sometimes
17279         duplicating the error message giving the file with restrictions.
17280
17281         * debug.adb: Add debug flag I for gnatbind
17282
17283         * errout.adb (Set_Msg_Insertion_Node): Suppress extra quotes around
17284         operators for the case where the operator is a defining operator.
17285
17286         * exp_ch3.adb: Minor reformatting (new function spec format).
17287
17288         * exp_ch4.adb: Add comment for previous change, and make minor
17289         adjustment to loop to always check for improper loop termination.
17290         Minor reformatting throughout (new function spec format).
17291
17292         * gnatbind.adb: Implement -di debug flag for gnatbind
17293
17294         * gnatlink.adb: Call Scan_ALI with Ignore_Errors set to True
17295
17296         * gnatls.adb: Call Scan_ALI with Ignore_Errors set to True
17297
17298         * lib-load.adb: Fix bad assertion.
17299         Found by testing and code reading.
17300         Minor reformatting.
17301
17302         * lib-load.ads: Minor reformatting.
17303
17304         * lib-writ.adb: There is only one R line now.
17305
17306         * lib-writ.ads: Add documentation on making downward compatible changes
17307         to ali files so old tools work with new ali files.
17308         There is only one R line now.
17309         Add documentation on format incompatibilities (with special GPS note)
17310
17311         * namet.ads, namet.adb: (Is_Operator_Name): New procedure
17312
17313         * par-load.adb: Minor reformatting
17314
17315         * sem_ch8.adb: Fix to error message from last update
17316         Minor reformatting and restructuring of code from last update
17317
17318         * par-prag.adb, snames.adb, snames.ads, snames.h,
17319         sem_prag.adb: Implement pragma Profile.
17320
17321         * stylesw.adb: Implement -gnatyN switch to turn off all style check
17322         options.
17323
17324         * usage.adb: Add line for -gnatyN switch
17325
17326         * vms_data.ads: Add entry STYLE_CHECKS=NONE for -gnatyN
17327
17328 2004-02-09  Albert Lee  <lee@gnat.com>
17329
17330         * errno.c: define _SGI_MP_SOURCE for task-safe errno on IRIX
17331
17332 2004-02-09  Ed Schonberg  <schonberg@gnat.com>
17333
17334         * exp_ch3.adb (Build_Slice_Assignment): Handle properly case of null
17335         slices.
17336
17337         * exp_ch6.adb (Expand_Call): Do not inline a call when the subprogram
17338         is nested in an instance that is not frozen yet, to avoid
17339         order-of-elaboration problems in gigi.
17340
17341         * sem_attr.adb (Analyze_Attribute, case 'Access): Within an inlined
17342         body the attribute is legal.
17343
17344 2004-02-09  Robert Dewar  <dewar@gnat.com>
17345
17346         * s-rident.ads: Minor comment correction
17347
17348         * targparm.adb: Remove dependence on uintp completely. There was
17349         always a bug in Make in that it called Targparm before initializing
17350         the Uint package. The old code appeared to get away with this, but
17351         the new code did not! This caused an assertion error in gnatmake.
17352
17353         * targparm.ads: Fix bad comment, restriction pragmas with parameters
17354         are indeed fully supported.
17355
17356 2004-02-06  Alan Modra  <amodra@bigpond.net.au>
17357
17358         * misc.c (default_pass_by_ref): Update INIT_CUMULATIVE_ARGS call.
17359
17360 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
17361
17362         * ada/utils.c (create_param_decl): Replace PROMOTE_PROTOTYPES
17363         with targetm.calls.promote_prototypes.
17364
17365 2004-02-04  Robert Dewar  <dewar@gnat.com>
17366
17367         * 5gtasinf.adb, 5gtasinf.ads, 5gtaprop.adb, ali.adb,
17368         ali.ads, gprcmd.adb: Minor reformatting
17369
17370         * bindgen.adb: Output restrictions string for new style restrictions
17371         handling
17372
17373         * impunit.adb: Add s-rident.ads (System.Rident) and
17374         s-restri (System.Restrictions)
17375
17376         * lib-writ.adb: Fix bug in writing restrictions string (last few
17377         entries wrong)
17378
17379         * s-restri.ads, s-restri.adb: Change name Restrictions to
17380         Run_Time_Restrictions to avoid conflict with package name.
17381         Add circuit to read and acquire run time restrictions.
17382
17383 2004-02-04  Jose Ruiz  <ruiz@act-europe.fr>
17384
17385         * restrict.ads, restrict.adb: Use the new restriction
17386         No_Task_Attributes_Package instead of the old No_Task_Attributes.
17387
17388         * sem_prag.adb: No_Task_Attributes is a synonym of
17389         No_Task_Attributes_Package.
17390
17391         * snames.ads, snames.adb: New entry for proper handling of
17392         No_Task_Attributes.
17393
17394         * s-rident.ads: Adding restriction No_Task_Attributes_Package
17395         (AI-00249) that supersedes the GNAT specific restriction
17396         No_Task_Attributes.
17397
17398 2004-02-04  Ed Schonberg  <schonberg@gnat.com>
17399
17400         * sem_prag.adb:
17401         (Analyze_Pragma, case Warnings): In an inlined body, as in an instance
17402          body, an identifier may be wrapped in an unchecked conversion.
17403
17404 2004-02-04  Vincent Celier  <celier@gnat.com>
17405
17406         * lib-writ.ads: Comment update for the W lines
17407
17408         * bld.adb: (Expression): An empty string list is static
17409
17410         * fname-uf.adb: Minor comment update
17411
17412         * fname-uf.ads: (Get_File_Name): Document new parameter May_Fail
17413
17414         * gnatbind.adb: Initialize Cumulative_Restrictions with the
17415         restrictions on the target.
17416
17417 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
17418
17419         * ada/trans.c (gigi): Use gen_rtx_SYMBOL_REF instead of
17420         gen_rtx.
17421
17422 2004-02-02  Arnaud Charlet  <charlet@gnat.com>
17423
17424         * Makefile.in: Remove setting of THREADSLIB on mips o32, unneeded.
17425
17426 2004-02-02  Vincent Celier  <celier@gnat.com>
17427
17428         * gprcmd.adb (Check_Args): If condition is false, print the invoked
17429         comment before the usage.
17430         Gprcmd: Fail when command is not recognized.
17431         (Usage): Document command "prefix"
17432
17433         * g-md5.adb (Digest): Process last block.
17434         (Update): Do not process last block. Store remaining characters and
17435         length in Context.
17436
17437         * g-md5.ads (Update): Document that several call to update are
17438         equivalent to one call with the concatenated string.
17439         (Context): Add fields to allow new Update behaviour.
17440
17441         * fname-uf.ads/adb (Get_File_Name): New Boolean parameter May_Fail,
17442         defaulted to False.
17443         When May_Fail is True and no existing file can be found, return No_File.
17444
17445         * 6vcstrea.adb: Inlined functions are now wrappers to implementation
17446         functions.
17447
17448         * lib-writ.adb (Write_With_Lines): When body file does not exist, use
17449         spec file name instead on the W line.
17450
17451 2004-02-02  Robert Dewar  <dewar@gnat.com>
17452
17453         * ali.adb: Read and acquire info from new format restrictions lines
17454
17455         * bcheck.adb: Add circuits for checking restrictions with parameters
17456
17457         * bindgen.adb: Output dummy restrictions data
17458         To be changed later
17459
17460         * ali.ads, checks.adb, exp_aggr.adb, exp_attr.adb, exp_ch11.adb,
17461         exp_ch3.adb, exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_util.adb,
17462         freeze.adb, gnat1drv.adb, sem_attr.adb, sem_ch10.adb, sem_ch11.adb,
17463         sem_ch12.adb, targparm.adb, targparm.ads, tbuild.adb, sem_ch2.adb,
17464         sem_elab.adb, sem_res.adb: Minor changes for new restrictions handling.
17465
17466         * exp_ch9.adb (Build_Master_Entity): Cleanup the code (also suppresses
17467         the warning message on access to possibly uninitialized variable S)
17468         Minor changes for new restrictions handling.
17469
17470         * gnatbind.adb: Minor reformatting
17471         Minor changes for new restrictions handling
17472         Move circuit for -r processing here from bcheck (cleaner)
17473
17474         * gnatcmd.adb, gnatlink.adb: Minor reformatting
17475
17476         * lib-writ.adb: Output new format restrictions lines
17477
17478         * lib-writ.ads: Document new R format lines for new restrictions
17479         handling.
17480
17481         * s-restri.ads/adb: New files
17482
17483         * Makefile.rtl: Add entry for s-restri.ads/adb
17484
17485         * par-ch3.adb: Fix bad error messages starting with upper case letter
17486         Minor reformatting
17487
17488         * restrict.adb: Major rewrite throughout for new restrictions handling
17489         Major point is to handle restrictions with parameters
17490
17491         * restrict.ads: Major changes in interface to handle restrictions with
17492         parameters. Also generally simplifies setting of restrictions.
17493
17494         * snames.ads/adb: New entry for proper handling of No_Requeue
17495
17496         * sem_ch3.adb (Count_Tasks): New circuitry for implementing Max_Tasks
17497         restriction counting.
17498         Other minor changes for new restrictions handling
17499
17500         * sem_prag.adb: No_Requeue is a synonym for No_Requeue_Statements.
17501         Restriction_Warnings now allows full parameter notation
17502         Major rewrite of Restrictions for new restrictions handling
17503
17504 2004-02-02  Javier Miranda  <miranda@gnat.com>
17505
17506         * par-ch3.adb (P_Identifier_Declarations): Give support to the Ada 0Y
17507         syntax rule for object renaming declarations.
17508         (P_Array_Type_Definition): Give support for the Ada 0Y syntax rule for
17509         component definitions.
17510
17511         * sem_ch3.adb (Analyze_Component_Declaration): Give support to access
17512         components.
17513         (Array_Type_Declaration): Give support to access components. In addition
17514         it was also modified to reflect the name of the object in anonymous
17515         array types. The old code did not take into account that it is possible
17516         to have an unconstrained anonymous array with an initial value.
17517         (Check_Or_Process_Discriminants): Allow access discriminant in
17518         non-limited types.
17519         (Process_Discriminants): Allow access discriminant in non-limited types
17520         Initialize the new Access_Definition field in N_Object_Renaming_Decl
17521         node.  Change Ada0Y to Ada 0Y in comments
17522
17523         * sem_ch4.adb (Find_Equality_Types): Allow anonymous access types in
17524         equality operators.
17525         Change Ada0Y to Ada 0Y in comments
17526
17527         * sem_ch8.adb (Analyze_Object_Renaming): Give support to access
17528         renamings Change Ada0Y to Ada 0Y in comments
17529
17530         * sem_type.adb (Find_Unique_Type): Give support to the equality
17531         operators for universal access types
17532         Change Ada0Y to Ada 0Y in comments
17533
17534         * sinfo.adb (Access_Definition, Set_Access_Definition): New subprograms
17535
17536         * sinfo.ads (N_Component_Definition): Addition of Access_Definition
17537         field.
17538         (N_Object_Renaming_Declaration): Addition of Access_Definition field
17539         Change Ada0Y to Ada 0Y in comments
17540
17541         * sprint.adb (Sprint_Node_Actual): Give support to the new syntax for
17542         component definition and object renaming nodes
17543         Change Ada0Y to Ada 0Y in comments
17544
17545 2004-02-02  Jose Ruiz  <ruiz@act-europe.fr>
17546
17547         * restrict.adb: Use the new restriction identifier
17548         No_Requeue_Statements instead of the old No_Requeue for defining the
17549         restricted profile.
17550
17551         * sem_ch9.adb (Analyze_Requeue): Check the new restriction
17552         No_Requeue_Statements.
17553
17554         * s-rident.ads: Adding restriction No_Requeue_Statements (AI-00249)
17555         that supersedes the GNAT specific restriction No_Requeue. The later is
17556         kept for backward compatibility.
17557
17558 2004-02-02  Ed Schonberg  <schonberg@gnat.com>
17559
17560         * lib.ads, i-cobol.ads, * s-stoele.ads, s-thread.ads, style.ads,
17561         5staprop.adb, atree.adb, atree.ads, g-crc32.ads: Remove redundant
17562         pragma and fix incorrect ones.
17563
17564         * sem_prag.adb For pragma Inline and pragma Pure_Function, emit a
17565         warning if the pragma is redundant.
17566
17567 2004-02-02  Thomas Quinot  <quinot@act-europe.fr>
17568
17569         * 5staprop.adb: Add missing 'constant' keywords.
17570
17571         * Makefile.in: use consistent value for SYMLIB on
17572         platforms where libaddr2line is supported.
17573
17574 2004-02-02  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17575
17576         * utils.c (end_subprog_body): Do not call rest_of_compilation if just
17577         annotating types.
17578
17579 2004-02-02  Olivier Hainque  <hainque@act-europe.fr>
17580
17581         * init.c (__gnat_install_handler): Setup an alternate stack for signal
17582         handlers in the environment thread. This allows proper propagation of
17583         an exception on stack overflows in this thread even when the builtin
17584         ABI stack-checking scheme is used without support for a stack reserve
17585         region.
17586
17587         * utils.c (create_field_decl): Augment the head comment about bitfield
17588         creation, and don't account for DECL_BIT_FIELD in DECL_NONADDRESSABLE_P
17589         here, because the former is not accurate enough at this point.
17590         Let finish_record_type decide instead.
17591         Don't make a bitfield if the field is to be addressable.
17592         Always set a size for the field if the record is packed, to ensure the
17593         checks for bitfield creation are triggered.
17594         (finish_record_type): During last pass over the fields, clear
17595         DECL_BIT_FIELD when possible in the !STRICT_ALIGNMENT case, as this is
17596         not covered by the calls to layout_decl.  Adjust DECL_NONADDRESSABLE_P
17597         from DECL_BIT_FIELD.
17598
17599 2004-01-30  Kelley Cook  <kcook@gcc.gnu.org>
17600
17601         * Make-lang.in (doc/gnat_ug_unx.dvi): Use $(abs_docdir).
17602         (doc/gnat_ug_vms.dvi, doc/gnat_ug_unx.dvi): Likewise.
17603         (doc/gnat_ug_unx.dvi, doc/gnat-style.dvi): Likewise.
17604
17605 2004-01-26  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
17606
17607         * Makefile.in (mips-sgi-irix5): Remove -lathread from THREADSLIB.
17608
17609         * 5fsystem.ads (Functions_Return_By_DSP): Set to False.
17610         (ZCX_By_Default): Likewise.
17611         (Front_End_ZCX_Support): Likewise.
17612
17613         * 5gtaprop.adb (Stack_Guard): Mark T, On unreferenced.
17614         (Initialize_Lock): Mark Level unreferenced.
17615         (Sleep): Mark Reason unreferenced.
17616         (Timed_Sleep): Likewise.
17617         (Wakeup): Likewise.
17618         (Exit_Task): Use Result.
17619         (Check_No_Locks): Mark Self_ID unreferenced.
17620
17621         * 5gtasinf.adb (New_Sproc): Make Attr constant.
17622         (Bound_Thread_Attributes): Make Sproc constant.
17623         (New_Bound_Thread_Attributes): Likewise.
17624
17625 2004-01-26  Ed Schonberg  <schonberg@gnat.com>
17626
17627         * exp_ch3.adb (Build_Slice_Assignment): New TSS procedure for
17628         one-dimensional array an slice assignments, when component type is
17629         controlled.
17630
17631         * exp_ch5.adb (Expand_Assign_Array): If array is one-dimensional,
17632         component type is controlled, and control_actions are in effect, use
17633         TSS procedure rather than generating inline code.
17634
17635         * exp_tss.ads (TSS_Slice_Assign): New TSS procedure for one-dimensional
17636         arrays with controlled components.
17637
17638 2004-01-26  Vincent Celier  <celier@gnat.com>
17639
17640         * gnatcmd.adb (GNATCmd): Add specification of argument file on the
17641         command line for the non VMS case.
17642
17643         * gnatlink.adb (Process_Binder_File): When building object file, if
17644         GNU linker is used, put all object paths between quotes, to prevent ld
17645         error when there are unusual characters (such as '!') in the paths.
17646
17647         * Makefile.generic: When there are sources in Ada and the main is in
17648         C/C++, invoke gnatmake with -B, instead of -z.
17649
17650         * vms_conv.adb (Preprocess_Command_Data): New procedure, extracted
17651         from VMS_Conversion.
17652         (Process_Argument): New procedure, extracted from VMS_Conversion. Add
17653         specification of argument file on the command line.
17654
17655 2004-01-26  Bernard Banner  <banner@gnat.com>
17656
17657         * Makefile.in: Enable GMEM_LIB and SYMLIB for x86_64
17658
17659 2004-01-26  Ed Schonberg  <schonberg@gnat.com>
17660
17661         * snames.adb: Update copyright notice.
17662         Add info on slice assignment for controlled arrays.
17663
17664 2004-01-23  Robert Dewar  <dewar@gnat.com>
17665
17666         * exp_aggr.adb: Minor reformatting
17667
17668         * exp_ch9.adb: Minor code clean up
17669         Minor reformatting
17670         Fix bad character in comment
17671
17672         PR ada/13471
17673         * targparm.adb (Get_Target_Parameters): Give clean abort error on
17674         unexpected end of file, along with more detailed message.
17675
17676 2004-01-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17677
17678         * exp_pakd.adb (Install_PAT): Clear Freeze_Node for PAT and Etype of
17679         PAT.
17680
17681         * decl.c (copy_alias_set): New function.
17682         (gnat_to_gnu_entity, make_aligning_type, make_packable_type): Use it.
17683
17684 2004-01-23  Doug Rupp  <rupp@gnat.com>
17685
17686         * Makefile.in (install-gnatlib): Change occurrences of lib$$file to
17687         lib$${file} in case subsequent character is not a separator.
17688
17689 2004-01-23  Vincent Celier  <celier@gnat.com>
17690
17691         * 5vml-tgt.adb (Build_Dynamic_Library): Invoke gcc with -shared-libgcc
17692         when the GCC version is at least 3.
17693
17694         * make.adb: (Scan_Make_Arg): Pass -B to Scan_Make_Switches
17695         Remove all "Opt.", to prepare for opt split
17696
17697         * prj-part.adb (Parse_Single_Project): New Boolean out parameter
17698         Extends_All. Set to True when the project parsed is an extending all
17699         project. Fails for importing an extending all project only when the
17700         imported project is an extending all project.
17701         (Post_Parse_Context_Clause): Set Is_Extending_All to the with clause,
17702         depending on the value of Extends_All returned.
17703
17704         * prj-proc.adb (Process): Check that no project shares its object
17705         directory with a project that extends it, directly or indirectly,
17706         including a virtual project.
17707         Check that no project extended by another project shares its object
17708         directory with another also extended project.
17709
17710         * prj-tree.adb (Is_Extending_All, Set_Is_Extending_All): Allow for
17711         Kind = N_With_Clause
17712
17713         * prj-tree.ads: Minor reformatting
17714         Indicate that Flag2 also applies to N_With_Clause (Is_Extending_All).
17715
17716 2004-01-23  Ed Schonberg  <schonberg@gnat.com>
17717
17718         * sem_ch13.adb (Analyze_Attribute_Definition_Clause): If the attribute
17719         applies to a type with an incomplete view, use full view in Name of
17720         clause, for consistency with uses of Get_Attribute_Definition_Clause.
17721
17722 2004-01-23  Arnaud Charlet  <charlet@act-europe.fr>
17723
17724         * 5itaprop.adb (Set_Priority): Reset the priority to 0 when using
17725         SCHED_RR, since other values are not supported by this policy.
17726         (Initialize): Move initialization of mutex attribute to package
17727         elaboration, to prevent early access to this variable.
17728
17729         * Makefile.in: Remove mention of Makefile.adalib, unused.
17730
17731         * Makefile.adalib, 1aexcept.adb, 1aexcept.ads, 1ic.ads, 1ssecsta.adb,
17732         1ssecsta.ads: Removed, unused.
17733
17734 2004-01-21  Javier Miranda  <miranda@gnat.com>
17735
17736         * exp_aggr.adb (Build_Record_Aggr_Code): Do not build the master
17737         entity if already built in the current scope.
17738
17739         * exp_ch9.adb (Build_Master_Entity): Do not set the has_master_entity
17740         reminder in internal scopes. Required for nested limited aggregates.
17741
17742 2004-01-21  Doug Rupp  <rupp@gnat.com>
17743
17744         * Makefile.in (hyphen): New variable, default value '-'. Set to '_' on
17745         VMS. Replace all occurences of libgnat- and libgnarl- with
17746         libgnat$(hyphen) and libgnarl$(hyphen).
17747         Fixed shared library build problem on VMS.
17748
17749 2004-01-21  Robert Dewar  <dewar@gnat.com>
17750
17751         * mlib-prj.adb: Minor reformatting
17752
17753 2004-01-21  Thomas Quinot  <quinot@act-europe.fr>
17754
17755         * prj-tree.adb, 7staprop.adb, vms_conv.adb, xr_tabls.adb: Add missing
17756         'constant' keywords for declaration of pointers that are not modified.
17757
17758         * exp_pakd.adb: Fix English in comment.
17759
17760 2004-01-21  Ed Schonberg  <schonberg@gnat.com>
17761
17762         PR ada/10889
17763         * sem_ch3.adb (Analyze_Subtype_Declaration): For an array subtype,
17764         copy all attributes of the parent, including the foreign language
17765         convention.
17766
17767 2004-01-21  Sergey Rybin  <rybin@act-europe.fr>
17768
17769         PR ada/10565
17770         * sem_ch9.adb (Analyze_Delay_Alternative): Add expression type check
17771         for 'delay until' statement.
17772
17773 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
17774
17775         * Make-lang.in: Replace $(docdir) with doc.
17776         (doc/gnat_ug_unx.info, doc/gnat_ug_vwx.info, doc/gnat_ug_vms.info
17777         doc/gnat_ug_wnt.info, doc/gnat_rm.info, doc/gnat-style.info): Update
17778         to use consistent MAKEINFO rule.
17779         (ada.man, ada.srcman): Dummy entry.
17780         (ADA_INFOFILES): Define.
17781         (ada.info, ada.srcinfo): New rules.
17782
17783 2004-01-19  Arnaud Charlet  <charlet@act-europe.fr>
17784
17785         * utils.c: Update copyright notice, missed in previous change.
17786
17787 2004-01-19  Vincent Celier  <celier@gnat.com>
17788
17789         * mlib-prj.adb (Build_Library.Add_ALI_For): Only add the ALI to the
17790         args if Bind is True. Set First_ALI, if not already done.
17791         (Build_Library): For Stand Alone Libraries, extract from one ALI file
17792         an eventual --RTS switch, for gnatbind, and all backend switches +
17793         --RTS, for linking.
17794
17795 2004-01-19  Robert Dewar  <dewar@gnat.com>
17796
17797         * sem_attr.adb, memtrack.adb: Minor reformatting
17798
17799 2004-01-19  Ed Schonberg  <schonberg@gnat.com>
17800
17801         * exp_ch6.adb (Expand_Call): Remove code to fold calls to functions
17802         that rename enumeration literals. This is properly done in sem_eval.
17803
17804         * sem_eval.ads, sem_eval.adb (Eval_Call): New procedure to fold calls
17805         to functions that rename enumeration literals.
17806
17807         * sem_res.adb (Resolve_Call): Use Eval_Call to fold static calls to
17808         functions that rename enumeration literals.
17809
17810 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
17811
17812         * Make-lang.in (utils.o): Depend on target.h.
17813         * utils.c: Include target.h.
17814         (process_attributes): Use targetm.have_named_sections instead
17815         of ASM_OUTPUT_SECTION_NAME.
17816
17817 2004-01-16  Andreas Jaeger  <aj@suse.de>
17818
17819         * Makefile.in: Add $(DESTDIR).
17820
17821 2004-01-15  Olivier Hainque  <hainque@act-europe.fr>
17822
17823         * decl.c (gnat_to_gnu_entity, E_Variable): Retrieve the object size
17824         also when not defining if a Size clause applies. That information is
17825         not to be ignored.
17826
17827 2004-01-15  Arnaud Charlet  <charlet@act-europe.fr>
17828
17829         * Makefile.in (install-gnatlib, gnatlib-shared-default): Set up
17830         symbolic links for the shared gnat run time when needed.
17831
17832 2004-01-15  Vasiliy Fofanov  <fofanov@act-europe.fr>
17833
17834         * memtrack.adb (Gmem_Initialize): check that gmem.out could be opened
17835         for writing, and terminate with an error message if not.
17836
17837 2004-01-15  Ed Schonberg  <schonberg@gnat.com>
17838
17839         * sem_attr.adb (Resolve_Attribute, case 'Access): Remove spurious
17840         warning on an access to subprogram in an instance, when the target
17841         type is declared in the same generic unit.
17842         (Eval_Attribute): If 'access is known to fail accessibility check,
17843         rewrite as a raise statement.
17844
17845 2004-01-15  GNAT Script  <nobody@gnat.com>
17846
17847         * Make-lang.in: Makefile automatically updated
17848
17849 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
17850
17851         * Make-lang.in (ada.srcextra): Dummy entry.
17852
17853 2004-01-14  Kelley Cook  <kcook@gcc.gnu.org>
17854
17855         * Make-lang.in: Only regenerate texi files if --enable-maintainer-mode.
17856
17857 2004-01-13  Ed Schonberg  <schonberg@gnat.com>
17858
17859         * exp_ch3.adb (Build_Assignment): Fix bug in handling of controlled
17860         components that are initialized with aggregates.
17861
17862 2004-01-13  Vincent Celier  <celier@gnat.com>
17863
17864         * gnatlink.adb (Process_Binder_File): To find directory of shared
17865         libgcc, if "gcc-lib" is not a subdirectory, look for the last
17866         subdirectory "lib" in the path of the shared libgnat or libgnarl.
17867
17868         * make.adb (Gnatmake): If GCC version is at least 3, link with
17869         -shared-libgcc, when there is at least one shared library project.
17870
17871         * opt.ads (GCC_Version): New integer constant.
17872
17873         * adaint.c (get_gcc_version): New function.
17874
17875 2004-01-13  Robert Dewar  <dewar@gnat.com>
17876
17877         * sem_dist.adb, sem_res.adb, sem_util.adb,
17878         sprint.adb, 3zsocthi.adb, einfo.adb, cstand.adb,
17879         exp_ch4.adb, exp_ch9.adb, exp_dist.adb: Minor reformatting
17880
17881 2004-01-13  Thomas Quinot  <quinot@act-europe.fr>
17882
17883         * s-interr.adb, s-stache.adb, s-taenca.adb, g-regpat.adb,
17884         g-spitbo.adb, 5itaprop.adb: Add missing 'constant' keywords in object
17885         declarations.
17886
17887 2004-01-12  Arnaud Charlet  <charlet@act-europe.fr>
17888
17889         * misc.c: Remove trailing spaces.
17890         Update copyright notice missed in previous change.
17891
17892         PR ada/13572
17893         * bld.adb (Recursive_Process): Reference prefix/share/gnat instead of
17894         prefix/share/make
17895
17896         * Makefile.generic: Update copyright.
17897         Add license notice.
17898
17899         * Makefile.in (ADA_SHARE_MAKE_DIR): Set to prefix/share/gnat instead
17900         of prefix/share/make.
17901
17902         * Makefile.prolog: Update copyright.
17903         Add license notice.
17904
17905 2004-01-12  Laurent Pautet  <pautet@act-europe.fr>
17906
17907         * 3vsocthi.adb, 3vsocthi.ads, 3wsocthi.adb,
17908         3wsocthi.ads, 3zsocthi.adb, 3zsocthi.ads, g-socthi.adb,
17909         g-socthi.ads (Socket_Error_Message): Return C.Strings.chars_ptr
17910         instead of String.
17911
17912         * g-socket.adb (Raise_Socket_Error): Use new Socket_Error_Message
17913         signature.
17914
17915 2004-01-12  Javier Miranda  <miranda@gnat.com>
17916
17917         * cstand.adb, exp_aggr.adb, exp_ch3.adb, exp_ch9.adb, exp_dist.adb,
17918         exp_imgv.adb, exp_pakd.adb, exp_util.adb, par-ch3.adb, sem.adb,
17919         sem_ch12.adb, sem_ch3.adb, sem_dist.adb, sem_prag.adb, sem_res.adb,
17920         sem_util.adb, sinfo.adb, sinfo.ads, sprint.adb: Addition of
17921         Component_Definition node.
17922
17923 2004-01-12  Ed Falis  <falis@gnat.com>
17924
17925         * impunit.adb: Add GNAT.Secondary_Stack_Info as user-visible unit
17926
17927 2004-01-12  Thomas Quinot  <quinot@act-europe.fr>
17928
17929         * link.c: Change default libgnat kind to STATIC for FreeBSD.
17930
17931 2004-01-12  Bernard Banner  <banner@gnat.com>
17932
17933         * Makefile.in: map 86numaux to a-numaux for x86_64
17934
17935 2004-01-12  Ed Schonberg  <schonberg@gnat.com>
17936
17937         * lib-xref.adb (Get_Type_Reference): If the type is the subtype entity
17938         generated to rename a generic actual, go to the actual itself, the
17939         subtype is not a user-visible entity.
17940
17941         * sem_ch7.adb (Uninstall_Declarations): If an entity in the visible
17942         part is a private subtype, reset the visibility of its full view, if
17943         any, to be consistent.
17944
17945         PR ada/13417
17946         * sem_ch12.adb (Analyze_Formal_Package): Diagnose properly an attempt
17947         to use a generic package G as a formal package for another generic
17948         declared within G.
17949
17950 2004-01-12  Robert Dewar  <dewar@gnat.com>
17951
17952         * trans.c (Eliminate_Error_Msg): New procedure called to generate msg
17953
17954         * usage.adb: Remove mention of obsolete -gnatwb switch
17955         Noticed during code reading
17956
17957 2004-01-12  Jerome Guitton  <guitton@act-europe.fr>
17958
17959         * 1ssecsta.adb: Minor changes for -gnatwa warnings
17960
17961 2004-01-12  GNAT Script  <nobody@gnat.com>
17962
17963         * Make-lang.in: Makefile automatically updated
17964
17965 2004-01-09  Mark Mitchell  <mark@codesourcery.com>
17966
17967         * misc.c (gnat_expand_expr): Add alt_rtl parameter.
17968
17969 2004-01-07  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
17970
17971         * link.c [sgi] (shared_libgnat_default): Change to STATIC.
17972
17973 2004-01-05  Kelley Cook  <kcook@gcc.gnu.org>
17974
17975         * Make-lang.in: Revert stamp-xgnatug change from 2003-12-18.
17976         Update comment and copyright date.
17977         * stamp-xgnatug: Delete.
17978
17979 2004-01-05  Robert Dewar  <dewar@gnat.com>
17980
17981         * 1ssecsta.ads: Default_Secondary_Stack is not a constant since it may
17982         be modified by the binder generated main program if the -D switch is
17983         used.
17984
17985         * 4onumaux.ads, 4znumaux.ads: Add Pure_Function pragmas for all
17986         imported functions (since now we expect this to be done for imported
17987         functions)
17988
17989         * 5vtaprop.adb: Add several ??? for sections requiring more comments
17990         Minor reformatting throughout
17991
17992         * 5zinit.adb: Minor reformatting
17993         Add 2004 to copyright date
17994         Minor changes to avoid -gnatwa warnings
17995         Correct some instances of using OR instead of OR ELSE (noted while
17996         doing reformatting)
17997
17998         * sprint.adb: Minor updates to avoid -gnatwa warnings
17999
18000         * s-secsta.ads, s-secsta.adb:
18001         (SS_Get_Max): New function to obtain high water mark for ss stack
18002         Default_Secondary_Stack is not a constant since it may be modified by
18003         the binder generated main program if the -D switch is used.
18004
18005         * switch-b.adb: New -Dnnn switch for binder
18006
18007         * switch-c.adb:
18008         Make -gnatg imply all warnings currently in -gnatwa
18009
18010         * vms_conv.adb: Minor reformatting
18011         Add 2004 to copyright notice
18012         Add 2004 to printed copyright notice
18013
18014         * 3vexpect.adb, 4zsytaco.adb, 3wsocthi.adb, 3zsocthi.adb,
18015         3zsocthi.adb, 56taprop.adb, 56tpopsp.adb, 5amastop.adb,
18016         5aml-tgt.adb, 5ataprop.adb, 5ataprop.adb, 5atpopsp.adb,
18017         5ftaprop.adb, 5ginterr.adb, 5gmastop.adb, 5gml-tgt.adb,
18018         5gtaprop.adb, 5hml-tgt.adb, 5hml-tgt.adb, 5hml-tgt.adb,
18019         5htaprop.adb, 5htraceb.adb, 5itaprop.adb, 5lml-tgt.adb,
18020         5sml-tgt.adb, 5staprop.adb, 5staprop.adb, 5stpopsp.adb,
18021         5vasthan.adb, 5vinmaop.adb, 5vinterr.adb, 5vtaprop.adb,
18022         5vml-tgt.adb, 5vtaprop.adb, 5wosprim.adb, 5wtaprop.adb,
18023         5zinterr.adb, 5zintman.adb, 5zml-tgt.adb, 5ztaprop.adb,
18024         6vcpp.adb, 6vcstrea.adb, 7staprop.adb, 7stpopsp.adb,
18025         vxaddr2line.adb, vxaddr2line.adb, xref_lib.adb, xr_tabls.adb,
18026         xr_tabls.ads, s-tasdeb.adb, s-tasdeb.adb, sem_res.ads,
18027         sem_util.adb, sem_util.adb, sem_util.ads, s-interr.adb,
18028         checks.adb, clean.adb, cstand.adb, einfo.ads,
18029         einfo.adb, exp_aggr.adb, exp_ch11.adb, exp_ch3.adb,
18030         exp_ch4.adb, exp_ch5.adb, exp_ch7.adb, exp_ch9.adb,
18031         prj-nmsc.adb, prj-pp.adb, prj-util.adb, sem_attr.adb,
18032         sem_ch10.adb, sem_ch12.adb, sem_ch4.adb, g-dirope.adb,
18033         g-dirope.ads, gnatlbr.adb, i-cstrea.adb, inline.adb,
18034         lib-xref.adb, sem_ch5.adb, sem_ch7.adb, sem_ch8.adb:
18035         Minor reformatting and code clean ups.
18036         Minor changes to prevent -gnatwa warnings
18037
18038         * ali.adb: Minor reformatting and cleanup of code
18039         Acquire new SS indication of secondary stack use from ali files
18040
18041         * a-numaux.ads: Add Pure_Function pragmas for all imported functions
18042         (since now we expect this to be done for imported functions)
18043
18044         * bindgen.adb: Generate call to modify default secondary stack size if
18045         -Dnnn switch given
18046
18047         * bindusg.adb: Add line for new -D switch
18048
18049         * exp_aggr.adb (Type_May_Have_Bit_Aligned_Components): More appropriate
18050         replacement name for Type_May_Have_Non_Bit_Aligned_Components!
18051         Add circuitry for both records and arrays to avoid gigi
18052         processing if the type involved has non-bit-aligned components
18053
18054         * exp_ch5.adb (Expand_Assign_Array): Avoid assumption that
18055         N_String_Literal node always references an E_String_Literal_Subtype
18056         entity. This may not be true in the future.
18057         (Possible_Bit_Aligned_Component): Move processing of
18058         Component_May_Be_Bit_Aligned from exp_ch5 to exp_util
18059
18060         * exp_ch6.adb (Expand_Thread_Body): Pick up
18061         Default_Secondary_Stack_Size as variable so that we get value modified
18062         by possible -Dnnn binder parameter.
18063
18064         * exp_util.adb (Component_May_Be_Bit_Aligned): New function.
18065         (Type_May_Have_Bit_Aligned_Components): New function.
18066
18067         * exp_util.ads (Component_May_Be_Bit_Aligned): New function.
18068         (Type_May_Have_Bit_Aligned_Components): New function.
18069
18070         * fe.h: (Set_Identifier_Casing): Fix prototype.
18071         Add declaration for Sem_Elim.Eliminate_Error_Msg.
18072         Minor reformatting.
18073
18074         * freeze.adb (Freeze_Entity): Add RM reference to error message about
18075         importing constant atomic/volatile objects.
18076         (Freeze_Subprogram): Reset Is_Pure indication for imported subprogram
18077         unless explicit Pure_Function pragma given, to avoid insidious bug of
18078         call to non-pure imported function getting eliminated.
18079
18080         * gnat1drv.adb, gnatbind.adb, gnatchop.adb, gnatfind.adb,
18081         gnatls.adb, gnatlink.adb, gnatmem.adb, gnatname.adb, gnatsym.adb,
18082         gnatxref.adb, gprcmd.adb, gprep.adb, make.adb: Minor reformatting
18083         Add 2004 to printed copyright notice
18084
18085         * lib-writ.ads, lib-writ.adb: Put new SS flag in ali file if secondary
18086         stack used.
18087
18088         * Makefile.rtl: Add entry for g-sestin.o
18089         g-sestin.ads: New file.
18090
18091         * mdll.adb: Minor changes to avoid -gnatwa warnings
18092
18093         * mlib-tgt.adb: Minor reformatting
18094
18095         * opt.ads: New parameter Default_Secondary_Stack_Size (GNATBIND)
18096         New switch Sec_Stack_Used (GNAT, GNATBIND)
18097         Make Default_Secondary_Stack_Size a variable instead of a constant,
18098         so that it can be modified by the new -Dnnn bind switch.
18099
18100         * rtsfind.adb (Load_Fail): Give full error message in configurable
18101         run-time mode if all_errors mode is set. This was not done in the case
18102         of a file not found, which was an oversight.
18103         Note if secondary stack unit is used by compiler.
18104
18105         * sem_elab.adb (Check_A_Call): Rewrite to avoid trying to put
18106         ineffective elaborate all pragmas on non-visible packages (this
18107         happened when a renamed subprogram was called). Now the elaborate all
18108         always goes on the package containing the renaming rather than the one
18109         containing the renamed subprogram.
18110
18111         * sem_elim.ads, sem_elim.adb (Eliminate_Error_Msg): New procedure
18112         (Process_Eliminate_Pragma): Add parameter to capture pragma location.
18113
18114         * sem_eval.adb (Eval_String_Literal): Do not assume that string literal
18115         has an Etype that references an E_String_Literal.
18116         (Eval_String_Literal): Avoid assumption that N_String_Literal node
18117         always references an E_String_Literal_Subtype entity. This may not
18118         be true in the future.
18119
18120         * sem_prag.adb (Process_Eliminate_Pragma): Add parameter to capture
18121         pragma location.
18122
18123         * sem_res.adb (Resolve): Specialize msg for function name used in proc
18124         call.
18125
18126 2004-01-05  Ed Falis  <falis@gnat.com>
18127
18128         * g-debuti.adb: Replaced direct boolean operator with short-circuit
18129         form.
18130
18131 2004-01-05  Vincent Celier  <celier@gnat.com>
18132
18133         * bld.adb: Minor comment updates
18134         (Process_Declarative_Items): Correct incorrect name (Index_Name instead
18135         of Item_Name).
18136
18137         * make.adb (Gnatmake): Special process for files to compile/check when
18138         -B is specified. Fail when there are only foreign mains in attribute
18139         Main of the project file and -B is not specified. Do not skip bind/link
18140         steps when -B is specified.
18141
18142         * makeusg.adb: Document new switch -B
18143
18144         * opt.ads (Build_Bind_And_Link_Full_Project): New Boolean flag
18145
18146         * switch-m.adb: (Scan_Make_Switches): Process -B switch
18147
18148         * vms_data.ads: Add new GNAT PRETTY qualifier
18149         /FORM_FEED_AFTER_PRAGMA_PAGE for switch -ff
18150
18151 2004-01-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18152
18153         * trans.c (tree_transform, case N_Free_Statement): Handle thin pointer
18154         case.
18155
18156         * misc.c (gnat_printable_name): If VERBOSITY is 2, call
18157         Set_Identifier_Casing.
18158
18159         * decl.c (gnat_to_gnu_entity, E_Function): Give error if return type
18160         has size that overflows.
18161
18162 2004-01-05  Gary Dismukes  <dismukes@gnat.com>
18163
18164         * exp_ch4.adb (Expand_Array_Comparison): Add Boolean constant to avoid
18165         -gnatwa warning on static condition.
18166
18167 2004-01-05  Doug Rupp  <rupp@gnat.com>
18168
18169         * link.c: (shared_libgnat_default) [VMS]: Change to STATIC.
18170
18171 2004-01-05  Arnaud Charlet  <charlet@act-europe.fr>
18172
18173         * Makefile.in: Install ali files using INSTALL_DATA_DATE to preserve
18174         all attributes, including read-only attribute.
18175
18176 2004-01-05  Pascal Obry  <obry@gnat.com>
18177
18178         * bindgen.adb (Gen_Object_Files_Options): Generate the new shared
18179         library naming scheme.
18180
18181         * mlib-prj.adb (Build_Library): Generate different names for the static
18182         or dynamic version of the GNAT runtime. This is needed to support the
18183         new shared library naming scheme.
18184         (Process_Binder_File): Add detection of shared library in binder file
18185         based on the new naming scheme.
18186
18187         * gnatlink.adb (Process_Binder_File): Properly detect the new naming
18188         scheme for the shared runtime libraries.
18189
18190         * Makefile.in:
18191         (LIBRARY_VERSION) [VMS]: Convert all . to _ to conform to new naming
18192         scheme.
18193         (install-gnatlib): Do not create symlinks for shared libraries.
18194         (gnatlib-shared-default): Idem.
18195         (gnatlib-shared-dual-win32): New target. Not used for now as the
18196         auto-import feature does not support arrays/records.
18197         (gnatlib-shared-win32): Do not create copy for the shared libraries.
18198         (gnatlib-shared-vms): Fix shared runtime libraries names.
18199
18200         * osint.ads, osint.adb (Shared_Lib): New routine, returns the target
18201         dependent runtime shared library name.
18202
18203 2004-01-05  Vasiliy Fofanov  <fofanov@act-europe.fr>
18204
18205         * osint.adb (Read_Library_Info): Remove bogus check if ALI is older
18206         than the object.
18207
18208 2004-01-05  Ed Schonberg  <schonberg@gnat.com>
18209
18210         * sem_ch4.adb (Analyze_Allocator): Check restriction on dynamic
18211         protected objects when allocator has a subtype indication, not a
18212         qualified expression. Note that qualified expressions may have to be
18213         checked when limited aggregates are implemented.
18214
18215         * sem_prag.adb (Analyze_Pragma, case Import): If enclosing package is
18216         pure, emit warning.
18217         (Analyze_Pragma, case Pure_Function): If enclosing package is pure and
18218         subprogram is imported, remove warning.
18219
18220 2004-01-05  Geert Bosch  <bosch@gnat.com>
18221
18222         * s-poosiz.adb: Update copyright notice.
18223         (Allocate): Use Task_Lock to protect against concurrent access.
18224         (Deallocate): Likewise.
18225
18226 2004-01-05  Joel Brobecker  <brobecker@gnat.com>
18227
18228         * s-stalib.adb (Elab_Final_Code): Add missing year in date inside ???
18229         comment.
18230
18231 2003-12-23  Kelley Cook  <kcook@gcc.gnu.org>
18232
18233         * gnat_ug.texi: Force a CVS commit by updating copyright.
18234         * gnat_ug_vxw.texi: Regenerate.
18235         * gnat_ug_wnt.texi: Regenerate.
18236         * gnat_ug_vms.texi: Regenerate.
18237         * gnat_ug_unx.texi: Regenerate.
18238
18239 2003-12-20  Kazu Hirata  <kazu@cs.umass.edu>
18240
18241         * trans.c: Remove uses of "register" specifier in
18242         declarations of local variables.
18243
18244 2003-12-18  Kelley Cook  <kcook@gcc.gnu.org>
18245
18246         * stamp-xgnatug: New stamp file.
18247         * Make-lang.in (stamp-xgnatug):  New stamp file and comment.
18248         (ada/doctools/xgnatug): Add $(build_exeext).
18249         (ada/gnat_ug_unx.texi, ada/gnat_ug_vwx.texi, ada/gnat_ug_vms.texi
18250         ada/gnat_ug_wnt.texi): Update to depend on stamp-xgnatug.
18251
18252 2003-12-17  Ed Falis  <falis@gnat.com>
18253
18254         * a-elchha.adb (Tailored_Exception_Information): made Info constant to
18255         eliminate warning.
18256
18257         * a-exextr.adb: Add context clause for
18258         Ada.Exceptions.Last_Chance_Handler.
18259
18260 2003-12-17  Sergey Rybin  <rybin@act-europe.fr>
18261
18262         * cstand.adb (Create_Standard): Change the way how the declaration of
18263         the Duration type is created (making it the same way as it is for all
18264         the other standard types).
18265
18266 2003-12-17  Robert Dewar  <dewar@gnat.com>
18267
18268         * s-crtl.ads: Fix header format
18269         Change Pure to Preelaborate
18270
18271 2003-12-17  Ed Schonberg  <schonberg@gnat.com>
18272
18273         * checks.adb (Selected_Length_Checks): Generate an Itype reference for
18274         the expression type only if it is declared in the current unit.
18275
18276         * sem_ch3.adb (Constrain_Index): Handle properly a range whose bounds
18277         are universal and already analyzed, as can occur in constrained
18278         subcomponents that depend on discriminants, when one constraint is a
18279         subtype mark.
18280
18281         * sem_res.adb (Resolve_Type_Conversion): Any arithmetic expression of
18282         type Any_Fixed is legal as the argument of a conversion, if only one
18283         fixed-point type is in context.
18284
18285 2003-12-17  GNAT Script  <nobody@gnat.com>
18286
18287         * Make-lang.in: Makefile automatically updated
18288
18289 2003-12-15  Robert Dewar  <dewar@gnat.com>
18290
18291         * exp_ch6.adb (Expand_Thread_Body): Fix error in picking up default
18292         sec stack size.
18293
18294 2003-12-15  Vincent Celier  <celier@gnat.com>
18295
18296         * gnatchop.adb: (Error_Msg): Do not exit on error for a warning
18297         (Gnatchop): Do not set failure status when reporting the number of
18298         warnings.
18299
18300 2003-12-15  Doug Rupp  <rupp@gnat.com>
18301
18302         * s-ctrl.ads: New file.
18303
18304         * Makefile.rtl (GNAT_RTL_NONTASKING_OBJS): Add s-crtl$(objext).
18305
18306         * Make-lang.in: (GNAT_ADA_OBJS): Add ada/s-crtl.o.
18307         (GNATBIND_OBJS): Add ada/s-crtl.o.
18308
18309         * Makefile.in [VMS]: Clean up ifeq rules.
18310
18311         * gnatlink.adb, 6vcstrea.adb, a-direio.adb, a-sequio.adb,
18312         a-ststio.adb, a-textio.adb, g-os_lib.adb, a-witeio.adb,
18313         g-os_lib.ads, i-cstrea.adb, i-cstrea.ads, s-direio.adb,
18314         s-fileio.adb, s-memcop.ads, s-memory.adb, s-stache.adb,
18315         s-tasdeb.adb: Update copyright.
18316         Import System.CRTL.
18317         Make minor modifications to use System.CRTL declared functions instead
18318         of importing locally.
18319
18320 2003-12-15  GNAT Script  <nobody@gnat.com>
18321
18322         * Make-lang.in: Makefile automatically updated
18323
18324 2003-12-11  Ed Falis  <falis@gnat.com>
18325
18326         * 5zinit.adb: Clean up.
18327
18328         * 5zintman.adb (Notify_Exception): replaced case statement with a call
18329         to __gnat_map_signal, imported from init.c to support
18330         signal -> exception mappings that depend on the vxWorks version.
18331
18332         * init.c:
18333         Created and exported __gnat_map_signal to support signal -> exception
18334         mapping that is dependent on the VxWorks version.
18335         Change mapping of SIGBUS from Program_Error to Storage_Error on VxWorks
18336
18337 2003-12-11  Vasiliy Fofanv  <fofanov@act-europe.fr>
18338
18339         * 5wosinte.ads: Link with -mthreads switch.
18340
18341 2003-12-11  Arnaud Charlet  <charlet@act-europe.fr>
18342
18343         * init.c (__gnat_install_handler [NetBSD]): Set
18344         __gnat_handler_installed, as done on all other platforms.
18345         Remove duplicated code.
18346
18347 2003-12-11  Jerome Guitton  <guitton@act-europe.fr>
18348
18349         * Makefile.in (rts-zfp, rts-ravenscar): Create libgnat.a.
18350
18351 2003-12-11  Thomas Quinot  <quinot@act-europe.fr>
18352
18353         * sinfo.ads: Fix inconsistent example code in comment.
18354
18355 2003-12-11  Robert Dewar  <dewar@gnat.com>
18356
18357         * a-tiinau.adb: Add a couple of comments
18358
18359         * sem_ch3.adb: Minor reformatting
18360
18361         * sem_prag.adb:
18362         Fix bad prototype of Same_Base_Type in body (code reading cleanup)
18363         Minor reformatting throughout
18364
18365 2003-12-11  Ed Schonberg  <schonberg@gnat.com>
18366
18367         * exp_ch7.adb (Establish_Transient_Scope): If the call is within the
18368         bounds of a loop, create a separate block in order to generate proper
18369         cleanup actions to prevent memory leaks.
18370
18371         * sem_res.adb (Resolve_Call): After a call to
18372         Establish_Transient_Scope, the call may be rewritten and relocated, in
18373         which case no further processing is needed.
18374
18375         * sem_util.adb: (Wrong_Type): Refine previous fix.
18376          Fixes ACATS regressions.
18377
18378         PR ada/13353
18379
18380         * sem_prag.adb (Back_End_Cannot_Inline): A renaming_as_body can always
18381         be inlined.
18382
18383 2003-12-08  Jerome Guitton  <guitton@act-europe.fr>
18384
18385         * 5ytiitho.adb, 5zthrini.adb, 5ztiitho.adb, i-vthrea.adb,
18386         i-vthrea.ads, s-tpae65.adb, s-tpae65.ads: Cleanup: Remove a bunch of
18387         obsolete files.
18388
18389         * Makefile.in: (rts-ravenscar): Generate an empty libgnat.a.
18390         (rts-zfp): Ditto.
18391
18392 2003-12-08  Robert Dewar  <dewar@gnat.com>
18393
18394         * 7sintman.adb: Minor reformatting
18395
18396         * bindgen.adb: Configurable_Run_Time mode no longer suppresses the
18397         standard linker options to get standard libraries linked. We now plan
18398         to provide dummy versions of these libraries to match the appropriate
18399         configurable run-time (e.g. if a library is not needed at all, provide
18400         a dummy empty library).
18401
18402         * targparm.ads: Configurable_Run_Time mode no longer affects linker
18403         options (-L parameters and standard libraries). What we plan to do is
18404         to provide dummy libraries where the libraries are not required.
18405
18406         * gnatbind.adb: Minor comment improvement
18407
18408 2003-12-08  Javier Miranda  <miranda@gnat.com>
18409
18410         * exp_aggr.adb (Build_Record_Aggr_Code): Do not remove the expanded
18411         aggregate in the parent. Otherwise constants with limited aggregates
18412         are not supported. Add new formal to pass the component type (Ctype).
18413         It is required to call the corresponding IP subprogram in case of
18414         default initialized components.
18415         (Gen_Assign): In case of default-initialized component, generate a
18416         call to the IP subprogram associated with the component.
18417         (Build_Record_Aggr_Code): Remove the aggregate from the parent in case
18418         of aggregate with default initialized components.
18419         (Has_Default_Init_Comps): Improve implementation to recursively check
18420         all the present expressions.
18421
18422         * exp_ch3.ads, exp_ch3.adb (Build_Initialization_Call): Add new formal
18423         to indicate that the initialization call corresponds to a
18424         default-initialized component of an aggregate.
18425         In case of default initialized aggregate with tasks this parameter is
18426         used to generate a null string (this is just a workaround that must be
18427         improved later). In case of discriminants, this parameter is used to
18428         generate a selected component node that gives access to the discriminant
18429         value.
18430
18431         * exp_ch9.ads, exp_ch9.adb (Build_Task_Allocate_Block_With_Stmts): New
18432         subprogram, based on Build_Task_Allocate_Block, but adapted to expand
18433         allocated aggregates with default-initialized components.
18434
18435         * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Improve error message if
18436         the box notation is used in positional aggregates.
18437
18438 2003-12-08  Samuel Tardieu  <tardieu@act-europe.fr>
18439
18440         * lib.ads: Fix typo in comment
18441
18442 2003-12-08  Vincent Celier  <celier@gnat.com>
18443
18444         * prj.adb (Project_Empty): New component Unkept_Comments
18445         (Scan): Remove procedure; moved to Prj.Err.
18446
18447         * prj.ads (Project_Data): New Boolean component Unkept_Comments
18448         (Scan): Remove procedure; moved to Prj.Err.
18449
18450         * prj-dect.adb: Manage comments for the different declarations.
18451
18452         * prj-part.adb (With_Record): New component Node
18453         (Parse): New Boolean parameter Store_Comments, defaulted to False.
18454         Set the scanner to return ends of line and comments as tokens, if
18455         Store_Comments is True.
18456         (Pre_Parse_Context_Clause): Create the N_With_Clause nodes so that
18457         comments are associated with these nodes. Store the node IDs in the
18458         With_Records.
18459         (Post_Parse_Context_Clause): Use the N_With_Clause nodes stored in the
18460         With_Records.
18461         (Parse_Single_Project): Call Pre_Parse_Context_Clause before creating
18462         the N_Project node. Call Tree.Save and Tree.Reset before scanning the
18463         current project. Call Tree.Restore afterwards. Set the various nodes
18464         for comment storage (Next_End, End_Of_Line, Previous_Line,
18465         Previous_End).
18466
18467         * prj-part.ads (Parse): New Boolean parameter Store_Comments,
18468         defaulted to False.
18469
18470         * prj-pp.adb (Write_String): New Boolean parameter Truncated, defaulted
18471         to False. When Truncated is True, truncate the string, never go to the
18472         next line.
18473         (Write_End_Of_Line_Comment): New procedure
18474         (Print): Process comments for nodes N_With_Clause,
18475         N_Package_Declaration, N_String_Type_Declaration,
18476         N_Attribute_Declaration, N_Typed_Variable_Declaration,
18477         N_Variable_Declaration, N_Case_Construction, N_Case_Item.
18478         Process nodes N_Comment.
18479
18480         * prj-tree.ads, prj-tree.adb (Default_Project_Node): If it is a node
18481         without comments and there are some comments, set the flag
18482         Unkept_Comments to True.
18483         (Scan): If there are comments, set the flag Unkept_Comments to True and
18484         clear the comments.
18485         (Project_Node_Kind): Add enum values N_Comment_Zones, N_Comment
18486         (Next_End_Nodes: New table
18487         (Comment_Zones_Of): New function
18488         (Scan): New procedure; moved from Prj. Accumulate comments in the
18489         Comments table and set end of line comments, comments after, after end
18490         and before end.
18491         (Add_Comments): New procedure
18492         (Save, Restore, Seset_State): New procedures
18493         (There_Are_Unkept_Comments): New function
18494         (Set_Previous_Line_Node, Set_Previous_End_Node): New procedures
18495         (Set_End_Of_Line, Set_Next_End_Node, Remove_Next_End_Node): New
18496         procedures.
18497         (First_Comment_After, First_Comment_After_End): New functions
18498         (First_Comment_Before, First_Comment_Before_End): New functions
18499         (Next_Comment): New function
18500         (End_Of_Line_Comment, Follows_Empty_Line,
18501         Is_Followed_By_Empty_Line): New functions
18502         (Set_First_Comment_After, Set_First_Comment_After_End): New procedures
18503         (Set_First_Comment_Before, Set_First_Comment_Before_End): New procedures
18504         (Set_Next_Comment): New procedure
18505         (Default_Project_Node): Associate comment before if the node can store
18506         comments.
18507
18508         * scans.ads (Token_Type): New enumeration value Tok_Comment
18509         (Comment_Id): New global variable
18510
18511         * scng.ads, scng.adb (Comment_Is_Token): New Boolean global variable,
18512         defaulted to False.
18513         (Scan): Store position of start of comment. If comments are tokens, set
18514         Comment_Id and set Token to Tok_Comment when scanning a comment.
18515         (Set_Comment_As_Token): New procedure
18516
18517         * sinput-p.adb: Update Copyright notice
18518         (Source_File_Is_Subunit): Call Prj.Err.Scanner.Scan instead of Prj.Scan
18519         that no longer exists.
18520
18521 2003-12-08  Javier Miranda  <miranda@gnat.com>
18522
18523         * sem_aggr.adb: Add dependence on Exp_Tss package
18524         Correct typo in comment
18525         (Resolve_Aggregate): In case of array aggregates set the estimated
18526         type of the aggregate before calling resolve. This is needed to know
18527         the name of the corresponding IP in case of limited array aggregates.
18528         (Resolve_Array_Aggregate): Delay the resolution to the expansion phase
18529         in case of default initialized array components.
18530
18531         * sem_ch12.adb (Analyze_Formal_Object_Declaration): Allow limited
18532         types. Required to give support to limited aggregates in generic
18533         formals.
18534
18535 2003-12-08  Ed Schonberg  <schonberg@gnat.com>
18536
18537         * sem_ch3.adb (Check_Initialization): For legality purposes, an
18538         inlined body functions like an instantiation.
18539         (Decimal_Fixed_Point_Declaration): Do not set kind of first subtype
18540         until bounds are analyzed, to diagnose premature use of type.
18541
18542         * sem_util.adb (Wrong_Type): Improve error message when the type of
18543         the expression is used prematurely.
18544
18545 2003-12-08  GNAT Script  <nobody@gnat.com>
18546
18547         * Make-lang.in: Makefile automatically updated
18548
18549 2003-12-08  Arnaud Charlet  <charlet@act-europe.fr>
18550
18551         * sinfo.h, einfo.h, nmake.ads, nmake.adb, treeprs.ads: Removed, since
18552         they are automatically generated by Make-lang.in and cause nothing but
18553         maintenance troubles.
18554
18555 2003-12-05  Thomas Quinot  <quinot@act-europe.fr>
18556
18557         * 3ssoliop.ads: Fix comment (this is the Solaris, not the UnixWare,
18558         version of this unit).
18559
18560 2003-12-05  Olivier Hainque  <hainque@act-europe.fr>
18561
18562         * 53osinte.ads, 54osinte.ads, 55osinte.ads, 56osinte.ads, 5bosinte.ads,
18563         5cosinte.ads, 5hosinte.ads, 5iosinte.ads, 5losinte.ads,
18564         5tosinte.ads: Define the SA_SIGINFO constant, to allow references from
18565         the body of System.Interrupt_Management common to several targets.
18566         Update copyright notice when appropriate.
18567
18568         * 52osinte.ads, 5posinte.ads: Define a dummy value for the SA_SIGINFO
18569         constant.
18570
18571         * 7sintman.adb (elaboration): Set SA_SIGINFO in the sigaction flags,
18572         to ensure that the kernel fills in the interrupted context structure
18573         before calling a signal handler, which is necessary to be able to
18574         unwind past it. Update the copyright notice.
18575
18576 2003-12-05  Jerome Guitton  <guitton@act-europe.fr>
18577
18578         * a-elchha.ads: New file.
18579
18580         * a-elchha.adb: New default last chance handler. Contents taken from
18581         Ada.Exceptions.Exception_Traces.Unhandled_Exception_Terminate.
18582
18583         * a-exextr.adb (Unhandled_Exception_Terminate): Most of this routine
18584         is moved to a-elchha.adb to provide a target-independent default last
18585         chance handler.
18586
18587         * Makefile.rtl: Add a-elchha.o
18588
18589         * Make-lang.in (GNAT_ADA_OBJS, GNATBIND_OBJS): Add a-elchha.o.
18590
18591 2003-12-05  Ed Schonberg  <schonberg@gnat.com>
18592
18593         * exp_ch6.adb (Expand_Call): If the subprogram is inlined and is
18594         declared in an instance, do not inline the call if the instance is not
18595         frozen yet, to prevent order of elaboration problems.
18596
18597         * sem_prag.adb: Add comments for previous fix.
18598
18599 2003-12-05  Samuel Tardieu  <tardieu@act-europe.fr>
18600
18601         * g-table.adb: Use the right variable in Set_Item.
18602         Update copyright notice.
18603
18604 2003-12-05  Arnaud Charlet  <charlet@act-europe.fr>
18605
18606         * Makefile.in: Remove unused rules.
18607
18608 2003-12-05  Vincent Celier  <celier@gnat.com>
18609
18610         * switch-c.adb (Scan_Front_End_Switches): Remove processing of
18611         -nostdlib. Not needed here after all.
18612
18613 2003-12-03  Thomas Quinot  <quinot@act-europe.fr>
18614
18615         PR ada/11724
18616
18617         * adaint.h, adaint.c, g-os_lib.ads:
18618         Do not assume that the offset argument to lseek(2) is a 32 bit integer,
18619         on some platforms (including FreeBSD), it is a 64 bit value.
18620         Introduce a __gnat_lseek wrapper in adaint.c to allow for portability.
18621
18622 2003-12-03  Arnaud Charlet  <charlet@act-europe.fr>
18623
18624         * gnatvsn.ads (Library_Version): Now contain only the relevant
18625         version info.
18626         (Verbose_Library_Version): New constant.
18627
18628         * g-spipat.adb, g-awk.adb, g-debpoo.adb,
18629         g-memdum.adb, g-thread.adb, s-geveop.adb, s-interr.adb,
18630         s-taskin.adb, s-tassta.adb: Make code compile with -gnatwa.
18631
18632         * gnatlbr.adb: Clean up: replace Library_Version by
18633         Verbose_Library_Version.
18634
18635         * make.adb, lib-writ.adb, exp_attr.adb:
18636         Clean up: replace Library_Version by Verbose_Library_Version.
18637
18638         * 5lintman.adb: Removed.
18639
18640         * Makefile.in:
18641         Update and simplify computation of LIBRARY_VERSION.
18642         Fix computation of GSMATCH_VERSION.
18643         5lintman.adb is no longer used: replaced by 7sintman.adb.
18644
18645 2003-12-03  Robert Dewar  <dewar@gnat.com>
18646
18647         * exp_ch5.adb:
18648         (Possible_Bit_Aligned_Component): Maybe_Bit_Aligned_Large_Component new
18649         name. Modified to consider small non-bit-packed arrays as troublesome
18650         and in need of component-by-component assigment expansion.
18651
18652 2003-12-03  Vincent Celier  <celier@gnat.com>
18653
18654         * lang-specs.h: Process nostdlib as nostdinc
18655
18656         * back_end.adb: Update Copyright notice
18657         (Scan_Compiler_Arguments): Process -nostdlib directly.
18658
18659 2003-12-03  Jose Ruiz  <ruiz@act-europe.fr>
18660
18661         * Makefile.in:
18662         When defining LIBGNAT_TARGET_PAIRS for bare board targets, remove the
18663         redundant inclusion of EXTRA_HIE_NONE_TARGET_PAIRS, which is always
18664         included in HIE_NONE_TARGET_PAIRS.
18665
18666 2003-12-03  Ed Schonberg  <schonberg@gnat.com>
18667
18668         * sem_attr.adb:
18669         (Legal_Formal_Attribute): Attribute is legal in an inlined body, as it
18670         is legal in an instance, because legality is cheched in the template.
18671
18672         * sem_prag.adb:
18673         (Analyze_Pragma, case Warnings): In an inlined body, the pragma may be
18674         appplied to an unchecked conversion of a formal parameter.
18675
18676         * sem_warn.adb:
18677         (Output_Unreferenced_Messages): Suppress "not read" warnings on imported
18678         variables.
18679
18680 2003-12-03  Olivier Hainque  <hainque@act-europe.fr>
18681
18682         * tb-alvms.c (unwind_regular_code, unwind_kernel_handler): New
18683         routines. The second one is new functionality to deal with backtracing
18684         through signal handlers.
18685         (unwind): Split into the two separate subroutines above.
18686         Update the documentation, and deal properly with sizeof (REG) different
18687         from sizeof (void*).
18688
18689 2003-12-01  Nicolas Setton  <setton@act-europe.fr>
18690
18691         * a-except.adb (Raise_Current_Excep): Add a pragma Inspection_Point,
18692         so that the debugger can reliably access the value of the parameter,
18693         and therefore is able to display the exception name when an exception
18694         breakpoint is reached.
18695
18696 2003-12-01  Thomas Quinot  <quinot@act-europe.fr>
18697
18698         * fmap.adb: Fix typo in warning message.
18699
18700         * g-socket.ads, g-socket.adb: Make Free a visible instance of
18701         Ada.Unchecked_Deallocation (no need to wrap it in a subprogram).
18702
18703 2003-12-01  Vincent Celier  <celier@gnat.com>
18704
18705         * mlib-prj.adb (Build_Library.Process): Do not check a withed unit if
18706         ther is no Afile.
18707         (Build_Library): Get the switches only if Default_Switches is declared
18708         in package Binder.
18709
18710 2003-12-01  Ed Schonberg  <schonberg@gnat.com>
18711
18712         * exp_ch6.adb (Expand_Actuals): When applying validity checks to
18713         actuals that are indexed components, reanalyze actual to ensure that
18714         packed array references are properly expanded.
18715
18716         * sem_ch5.adb (Diagnose_Non_Variable_Lhs): Add special case for
18717         attempted assignment to a discriminant.
18718
18719 2003-12-01  Robert Dewar  <dewar@gnat.com>
18720
18721         * rtsfind.adb, exp_ch4.adb, s-exnint.ads, s-exnint.adb: Minor
18722         reformatting.
18723
18724         * switch-c.adb: Minor reformatting of comments
18725
18726 2003-12-01  Arnaud Charlet  <charlet@act-europe.fr>
18727
18728         * Makefile.in: Clean ups.
18729
18730 2003-12-01  GNAT Script  <nobody@gnat.com>
18731
18732         * Make-lang.in: Makefile automatically updated
18733
18734 2003-12-01  Arnaud Charlet  <charlet@act-europe.fr>
18735
18736         * 5wsystem.ads: Disable zero cost exception, not ready yet.
18737
18738 2003-11-29  Ulrich Weigand  <uweigand@de.ibm.com>
18739
18740         * Make-lang.in (nmake.ads): Add dependency on ada/nmake.adb
18741         to force serialization.
18742
18743 2003-11-26  Thomas Quinot  <quinot@act-europe.fr>
18744
18745         * g-socket.ads, g-socket.adb:
18746         Clarify documentation of function Stream. Introduce a Free procedure
18747         to release the returned Stream once it becomes unused.
18748
18749         * 5asystem.ads: For Alpha Tru64, enable ZCX by default.
18750
18751 2003-11-26  Arnaud Charlet  <charlet@act-europe.fr>
18752
18753         (Cond_Timed_Wait): Introduce new constant Time_Out_Max,
18754         since NT 4 cannot handle timeout values that are too large,
18755         e.g. DWORD'Last - 1.
18756
18757 2003-11-26  Ed Schonberg  <schonberg@gnat.com>
18758
18759         * exp_ch4.adb:
18760         (Expand_N_Slice): Recognize all cases of slices that appear as actuals
18761         in procedure calls and whose expansion must be deferred.
18762
18763         * exp_ch6.adb (Add_Call_By_Copy_Node): Remove previous fix. Proper fix
18764         is in exp_ch4.
18765
18766         * sem_ch3.adb:
18767         (Build_Derived_Array_Type): Create operator for unconstrained type
18768         if ancestor is unconstrained.
18769
18770 2003-11-26  Vincent Celier  <celier@gnat.com>
18771
18772         * make.adb (Project_Object_Directory): New global variable
18773         (Change_To_Object_Directory): New procedure
18774         (Collect_Arguments_And_Compile): Call Change_To_Object_Directory instead
18775         of Change_Dir directly. Do not change working directory to object
18776         directory of main project after each compilation.
18777         (Gnatmake): Use Change_To_Object_Directory instead of Change_Dir
18778         directly.
18779         Change to object directory of main project before binding step.
18780         (Initialize): Initialize Project_Object_Directory to No_Project
18781
18782         * mlib-prj.adb:
18783         (Build_Library): Take into account Builder'Default_Switches ("Ada") when
18784         binding a Stand-Alone Library.
18785
18786         * output.adb: Update Copyright notice
18787         (Write_Char): Output buffer when full
18788
18789 2003-11-26  Robert Dewar  <dewar@gnat.com>
18790
18791         * sem_ch13.adb: (Check_Size): Reset size if size is too small
18792
18793         * sem_ch13.ads:
18794         (Check_Size): Fix documentation to include bit-packed array case
18795
18796         * sem_res.adb: Implement restriction No_Direct_Boolean_Operators
18797
18798         * s-rident.ads: Put No_Direct_Boolean_Operators in proper order
18799
18800         * s-rident.ads: Add new restriction No_Direct_Boolean_Operators
18801
18802 2003-11-24  Arnaud Charlet <charlet@act-europe.fr>
18803
18804         PR ada/13142
18805         * utils.c (init_gigi_decls): Change name of built-in setjmp to
18806         __builtin_setjmp, since this is apparently needed by recent
18807         non Ada changes.
18808
18809 2003-11-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
18810
18811         * adadecode.c: Only include ctype.h if not IN_GCC.
18812         (__gnat_decode): Use ISDIGIT from safe-ctype.h.
18813
18814 2003-11-24  Jose Ruiz  <ruiz@act-europe.fr>
18815
18816         * Makefile.in:
18817         Use 5zintman.ads for VxWorks targets. This file avoid confusion between
18818         signals and interrupts.
18819
18820         * 5zintman.ads: New File.
18821
18822         * 5zintman.adb: Replace Exception_Interrupts by Exception_Signals, and
18823         add exception signals to the set of unmasked signals.
18824
18825         * 5ztaprop.adb:
18826         Use Abort_Task_Signal instead of Abort_Task_Interrupt to avoid confusion
18827         between signals and interrupts.
18828         Add to Unblocked_Signal_Mask the set of signals that are in
18829         Keep_Unmasked.
18830
18831         * 7sinmaop.adb:
18832         Adding a check to see whether the Interrupt_ID we want to unmask is in
18833         the range of Keep_Unmasked (in procedure Interrupt_Self_Process). The
18834         reason is that the index type of the Keep_Unmasked array is not always
18835         Interrupt_ID; it may be a subtype of Interrupt_ID.
18836
18837 2003-11-24  Gary Dismukes  <dismukes@gnat.com>
18838
18839         * exp_util.adb:
18840         (Remove_Side_Effects): Condition constantness of object created for a
18841          an unchecked type conversion on the constantness of the expression
18842          to ensure the correct value for 'Constrained when passing components
18843          of view-converted class-wide objects.
18844
18845 2003-11-24  Robert Dewar  <dewar@gnat.com>
18846
18847         * par-load.adb (Load): Improve handling of misspelled and missing units
18848         Removes several cases of compilation abandoned messages
18849
18850         * lib.adb: (Remove_Unit): New procedure
18851
18852         * lib.ads: (Remove_Unit): New procedure
18853
18854         * lib-load.adb: Minor reformatting
18855
18856 2003-11-24  Vincent Celier  <celier@gnat.com>
18857
18858         * make.adb:
18859         (Gnatmake, Initialize): Call Usage instead of Makeusg directly
18860         (Marking_Label): Label to mark processed source files. Incremented for
18861         each executable.
18862         (Gnatmake): Increase Marking_Labet for each executable
18863         (Is_Marked): Compare against marking label
18864         (Mark): Mark with marking label
18865
18866 2003-11-24  Jerome Guitton  <guitton@act-europe.fr>
18867
18868         * s-thread.ads:
18869         Move the declaration of the TSD for System.Threads to System.Soft_Links.
18870         Add some comments.
18871
18872         * Makefile.in: Added target pair for s-thread.adb for cert runtime.
18873         (rts-cert): build a single relocatable object for the run-time lib.
18874         Fix perms.
18875
18876 2003-11-24  Vasiliy Fofanov  <fofanov@act-europe.fr>
18877
18878         * Make-lang.in:
18879         Use gnatls rather than gcc to obtain the location of GNAT RTL for
18880         crosstools build.
18881
18882 2003-11-24  Sergey Rybin  <rybin@act-europe.fr>
18883
18884         * opt.adb (Tree_Write): Gnat_Version_String is now a function, so we
18885         can not use it as before (that is, as a variable) when dumping it into
18886         the tree file. Add a local variable to store the result of this
18887         function and to be used as the string to be written into the tree.
18888
18889         * scn.adb (Initialize_Scanner): Add comments explaining the recent
18890         changes.
18891
18892         * sinput.adb (Source_First, Source_Last): In case of
18893         Internal_Source_File, replace returning attributes of
18894         Internal_Source_Ptr (which is wrong) with returning attributes of
18895         Internal_Source.
18896
18897 2003-11-24  Ed Schonberg  <schonberg@gnat.com>
18898
18899         * sem_ch3.adb:
18900         (New_Concatenation_Op): Proper name for New_Binary_Operator, only
18901         used for implicit concatenation operators.
18902         Code cleanup.
18903
18904         * sem_elab.adb:
18905         (Check_Elab_Call): Set No_Elaboration_Check appropriately on calls in
18906         task bodies that are in the scope of a Suppress pragma.
18907         (Check_A Call): Use the flag to prevent spurious elaboration checks.
18908
18909         * sinfo.ads, sinfo.adb:
18910         New flag No_Elaboration_Check on function/procedure calls, to properly
18911         suppress checks on calls in task bodies that are within a local suppress
18912         pragma.
18913
18914         * exp_ch4.adb:
18915         (Expand_Concatenate_Other): Use the proper integer type for the
18916         expression for the upper bound, to avoid universal_integer computations
18917         when possible.
18918
18919 2003-11-21  Kelley Cook  <kcook@gcc.gnu.org>
18920
18921         * .cvsignore: Delete.
18922
18923 2003-11-21  Andreas Schwab  <schwab@suse.de>
18924
18925         * 55system.ads: Set ZCX_By_Default and GCC_ZCX_Support to True.
18926
18927 2003-11-21  Vasiliy Fofanov  <fofanov@act-europe.fr>
18928
18929         * 5wsystem.ads: Enable zero cost exception.
18930
18931 2003-11-21  Jerome Guitton  <guitton@act-europe.fr>
18932
18933         * 5ztiitho.adb: Remove an unreferenced variable.
18934
18935 2003-11-21  Thomas Quinot  <quinot@act-europe.fr>
18936
18937         * adaint.c: For FreeBSD, use mkstemp.
18938
18939 2003-11-21  Arnaud Charlet  <charlet@act-europe.fr>
18940
18941         * gnatlbr.adb: Now reference Gnat_Static_Version_String.
18942
18943 2003-11-21  Robert Dewar  <dewar@gnat.com>
18944
18945         * bld.adb: Remove useless USE of gnatvsn
18946
18947         * gnatchop.adb: Minor reformatting
18948         Clean up version handling to be more consistent
18949
18950         * gnatxref.adb: Minor reformatting
18951
18952         * gprcmd.adb: Minor reformatting
18953         Fix output of copyright to be more consistent with other tools
18954
18955 2003-11-21  Vincent Celier  <celier@gnat.com>
18956
18957         * make.adb (Scan_Make_Args): Do not transmit --RTS= to gnatlink
18958
18959 2003-11-21  Sergey Rybin  <rybin@act-europe.fr>
18960
18961         * atree.adb (Initialize): Add initializations for global variables
18962         used in New_Copy_Tree.
18963
18964         * cstand.adb (Create_Standard): Add call to Initialize_Scanner (with
18965         Internal_Source_File as the actual).
18966         Put the set of statements creating Any_Character before the set of
18967         statements creating Any_Array to have Any_Character fully initialized
18968         when it is used in creating Any_Array.
18969
18970         * scn.adb (Initialize_Scanner): Do not set Comes_From_Source ON and do
18971         not call Scan in case if the actual is Internal_Source_File
18972         Add 2003 to copyright note.
18973
18974         * sinput.adb (Source_First, Source_Last, Source_Text): Add code for
18975         processing Internal_Source_File.
18976
18977         * types.ads: Add the constant Internal_Source_File representing the
18978         source buffer for artificial source-code-like strings created within
18979         the compiler (the definition of Source_File_Index is changed).
18980
18981 2003-11-20  Arnaud Charlet  <charlet@act-europe.fr>
18982
18983         * 35soccon.ads, 45intnam.ads, 55osinte.adb, 55osinte.ads,
18984         56system.ads: New file, FreeBSD version.
18985
18986 2003-11-20  Joseph S. Myers  <jsm@polyomino.org.uk>
18987
18988         * Make-lang.in (ada.extraclean): Delete.
18989
18990 2003-11-19  Arnaud Charlet  <charlet@act-europe.fr>
18991
18992         * gnatmem.adb: Clean up verbose output.
18993
18994         * gprcmd.adb: Change copyright to FSF.
18995
18996 2003-11-19  Vincent Celier  <celier@gnat.com>
18997
18998         * symbols.adb: (Initialize): New parameters Reference, Symbol_Policy
18999         and Version (ignored).
19000
19001         * symbols.ads: (Policy): New type
19002         (Initialize): New parameter Reference, Symbol_Policy and
19003         Library_Version.
19004         Remove parameter Force.
19005         Minor reformatting.
19006
19007         * snames.ads, snames.adbadb: New standard names
19008         Library_Reference_Symbol_File and Library_Symbol_Policy
19009
19010         * mlib-prj.adb:
19011         (Build_Library): Call Build_Dinamic_Library with the Symbol_Data of the
19012         project.
19013
19014         * mlib-tgt.adb:
19015         (Build_Dynamic_Library): New parameter Symbol_Data (ignored)
19016
19017         * mlib-tgt.ads: (Build_Dynamic_Library): New parameter Symbol_Data
19018
19019         * prj.adb: (Project_Empty): New component Symbol_Data
19020
19021         * prj.ads: (Policy, Symbol_Record): New types
19022         (Project_Data): New component Symbol_Data
19023
19024         * prj-attr.adb:
19025         New attributes Library_Symbol_File, Library_Symbol_Policy and
19026         Library_Reference_Symbol_File.
19027
19028         * prj-nmsc.adb:
19029         (Ada_Check): When project is a Stand-Alone library project, process
19030         attribute Library_Symbol_File, Library_Symbol_Policy and
19031         Library_Reference_Symbol_File.
19032
19033         * 5aml-tgt.adb, 5bml-tgt.adb, 5gml-tgt.adb, 5hml-tgt.adb,
19034         5wml-tgt.adb, 5zml-tgt.adb, 5lml-tgt.adb,
19035         5sml-tgt.adb (Build_Dynamic_Library): New parameter
19036         Symbol_Data (ignored).
19037
19038         * 5vml-tgt.adb (VMS_Options): Remove --for-linker=gsmatch=equal,1,0
19039         (Build_Dynamic_Library): New parameter Symbol_Data. New internal
19040         functions Option_File_Name and Version_String. Set new options of
19041         gnatsym related to symbol file, symbol policy and reference symbol
19042         file.
19043
19044         * 5vsymbol.adb:
19045         Extensive modifications to take into account the reference symbol file,
19046         the symbol policy, the library version and to put in the symbol file the
19047         minor and major IDs.
19048
19049         * bld.adb (Process_Declarative_Items): Put second argument of
19050         gprcmd to_absolute between single quotes, to avoid problems with
19051         Windows.
19052
19053         * bld-io.adb: Update Copyright notice.
19054         (Flush): Remove last character of a line, if it is a back slash, to
19055         avoid make problems.
19056
19057         * gnatsym.adb:
19058         Implement new scheme with reference symbol file and symbol policy.
19059
19060         * g-os_lib.ads: (Is_Directory): Clarify comment
19061
19062 2003-11-19  Robert Dewar  <dewar@gnat.com>
19063
19064         * atree.adb: Move New_Copy_Tree global variables to head of package
19065
19066         * errout.adb: Minor reformatting
19067
19068 2003-11-19  Javier Miranda  <miranda@gnat.com>
19069
19070         * sem_ch4.adb: (Diagnose_Call): Improve error message.
19071         Add reference to Ada0Y (AI-50217)
19072
19073         * sem_ch6.adb, sem_ch8.adb, sem_type.adb,
19074         sem_util.adb: Add reference to AI-50217
19075
19076         * sinfo.ads: (N_With_Clause): Document fields referred to AI-50217
19077
19078         * sprint.adb: Add reference to Ada0Y (AI-50217, AI-287)
19079
19080         * sem_aggr.adb: Complete documentation of AI-287 changes
19081
19082         * par-ch4.adb: Document previous changes.
19083
19084         * lib-load.adb, lib-writ.adb, einfo.ads, par-ch10.adb,
19085         sem_cat.adb, sem_ch3.adb, sem_ch10.adb, sem_ch12.adb: Add references to
19086         Ada0Y (AI-50217)
19087
19088         * exp_aggr.adb: Add references to AI-287 in previous changes
19089
19090 2003-11-19  Ed Schonberg  <schonberg@gnat.com>
19091
19092         * exp_ch6.adb:
19093         (Add_Call_By_Copy_Node): Do not original node of rewritten expression
19094         in the rewriting is the result of an inlined call.
19095
19096         * exp_ch6.adb (Add_Call_By_Copy_Node): If actual for (in-)out
19097         parameter is a type conversion, use original node to construct the
19098         post-call assignment, because expression may have been rewritten, e.g.
19099         if it is a packed array.
19100
19101         * sem_attr.adb:
19102         (Resolve_Attribute, case 'Constrained): Attribute is legal in an inlined
19103         body, just as it is in an instance.
19104         Categorization routines
19105
19106         * sem_ch12.adb (Analyze_Association, Instantiate_Formal_Subprogram,
19107         Instantiate_Object): Set proper sloc reference for message on missing
19108         actual.
19109
19110 2003-11-19  Thomas Quinot  <quinot@act-europe.fr>
19111
19112         * Makefile.in: Add FreeBSD libgnat pairs.
19113
19114         * usage.adb: Fix typo in usage message.
19115
19116 2003-11-19  Jerome Guitton  <guitton@act-europe.fr>
19117
19118         * Makefile.in: On powerpc-wrs-vxworksae: Add s-thread.ad?,
19119         s-thrini.ad? and s-tiitho.adb to the full runtime, to support the
19120         pragma Thread_Body.
19121         Remove i-vthrea.ad? and s-tpae65.ad?, not needed anymore.
19122
19123         * s-thread.adb: This file is now a dummy implementation of
19124         System.Thread.
19125
19126 2003-11-19  Sergey Rybin  <rybin@act-europe.fr>
19127
19128         * rtsfind.adb (Initialize): Add initialization for RTE_Is_Available
19129
19130 2003-11-19  Emmanuel Briot  <briot@act-europe.fr>
19131
19132         * xref_lib.adb (Parse_Identifier_Info): Add handling of generic
19133         instanciation references in the parent type description.
19134
19135 2003-11-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19136
19137         * ada-tree.def: (ALLOCATE_EXPR): Class is "2", not "s".
19138
19139         * decl.c (gnat_to_gnu_entity, case E_Floating_Point_Subtype): Set
19140         TYPE_PRECISION directly from esize.
19141
19142 2003-11-18  Thomas Quinot  <quinot@act-europe.fr>
19143
19144         * cstreams.c:
19145         Use realpath(3) on FreeBSD. Fix typo in comment while we are at it.
19146
19147         * init.c: Initialization routines for FreeBSD
19148
19149         * link.c: Link info for FreeBSD
19150
19151         * sysdep.c: Add the case of FreeBSD
19152
19153 2003-11-17  Jerome Guitton  <guitton@act-europe.fr>
19154
19155         * 5zthrini.adb: Remove the call to Init_RTS at elaboration, as it is
19156         already called in System.Threads.
19157
19158         * 5ztiitho.adb (Initialize_Task_Hooks): Remove the registration of the
19159         environment task, as it has been moved to System.Threads.Initialization.
19160
19161 2003-11-17  Arnaud Charlet  <charlet@act-europe.fr>
19162
19163         * adaint.c (__gnatlib_install_locks): Only reference
19164         __gnat_install_locks on VMS, since other platforms can avoid using
19165         --enable-threads=gnat
19166
19167 2003-11-17  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19168
19169         * ada-tree.h: (TYPE_IS_PACKED_ARRAY_TYPE_P): New macro.
19170
19171         * decl.c (gnat_to_gnu_entity, case E_Array_Subtype): Set
19172         TYPE_PACKED_ARRAY_TYPE_P.
19173         (validate_size): Do not verify size if TYPE_IS_PACKED_ARRAY_TYPE_P.
19174
19175         Part of PR ada/12806
19176         * utils.c (float_type_for_precision): Renamed from float_type_for_size.
19177         Use GET_MODE_PRECISION instead of GET_MODE_BITSIZE.
19178
19179 2003-11-17  Vincent Celier  <celier@gnat.com>
19180
19181         * gnatchop.adb (Error_Msg): New Boolean parameter Warning, defaulted
19182         to False.
19183         Do not set exit status to Failure when Warning is True.
19184         (Gnatchop): Make errors "no compilation units found" and
19185         "no source files written" warnings only.
19186
19187         * make.adb (Gnatmake): When using a project file, set
19188         Look_In_Primary_Dir to False.
19189         (Configuration_Pragmas_Switch): Check for Global_Configuration_Pragmas
19190         and Local_Configuration_Pragmas in the project where they are declared
19191         not an extending project which might have inherited them.
19192
19193         * osint.adb (Locate_File): If Name is already an absolute path, do not
19194         look for a directory.
19195
19196         * par-ch10.adb (P_Compilation_Unit): If source contains no token, and
19197         -gnats (Check_Syntax) is used, issue only a warning, not an error.
19198
19199         * prj.adb (Register_Default_Naming_Scheme): Add new component Project
19200         in objects of type Variable_Value.
19201
19202         * prj.ads: (Variable_Value): New component Project
19203
19204         * prj-nmsc.adb (Ada_Check.Warn_If_Not_Sources): No warning if source
19205         is in a project extended by Project.
19206
19207         * prj-proc.adb (Add_Attributes): New parameter Project. Set component
19208         Project of Variable_Values to this new parameter value.
19209         (Expression): Set component Project of Variable_Values.
19210         (Process_Declarative_Items): Call Add_Attributes with parameter Project.
19211         Set the component Project in array elements.
19212
19213 2003-11-17  Sergey Rybin  <rybin@act-europe.fr>
19214
19215         * errout.adb: (Initialize): Add initialization for error nodes.
19216
19217         * sem_ch12.adb (Initialize): Add missing initializations for
19218         Exchanged_Views and Hidden_Entities.
19219
19220 2003-11-17  Ed Schonberg  <schonberg@gnat.com>
19221
19222         * sem_ch12.adb (Copy_Generic_Node): Preserve entity when copying an
19223         already instantiated tree for use in subsequent inlining.
19224         (Analyze_Associations, Instantiate_Formal_Subprogram,
19225         Instantiate_Object): improve error message for mismatch in
19226         instantiations.
19227
19228         * sem_ch6.adb (Build_Body_To_Inline): Major cleanup to handle
19229         instantiations of subprograms declared in instances.
19230
19231 2003-11-17  Javier Miranda  <miranda@gnat.com>
19232
19233         * sem_ch4.adb (Analyze_Allocator): Previous modification must be
19234         executed only under the Extensions_Allowed flag.
19235
19236 2003-11-17  Robert Dewar  <dewar@gnat.com>
19237
19238         * a-exexda.adb (Address_Image): Fix documentation to indicate leading
19239         zeroes suppressed.
19240         (Address_Image): Fix bug of returning 0x instead of 0x0
19241         Minor reformatting (function specs).
19242
19243         * einfo.ads: Minor fix for documentation of Is_Bit_Packed_Array
19244         (missed case of 33-63)
19245
19246         * freeze.adb, sem_ch13.adb: Properly check size of packed bit array
19247
19248         * s-thread.adb: Add comments for pragma Restriction
19249
19250         * exp_aggr.adb, g-debuti.adb, par-ch4.adb, sem_aggr.adb,
19251         sem_ch6.adb, sprint.adb, xref_lib.adb: Minor reformatting
19252
19253 2003-11-17  Ed Falis  <falis@gnat.com>
19254
19255         * s-thread.adb: Added No_Tasking restriction for this implementation.
19256
19257 2003-11-17  Emmanuel Briot  <briot@act-europe.fr>
19258
19259         * xref_lib.adb (Parse_Identifier_Info): Add handling of generic
19260         instanciation references in the parent type description.
19261
19262 2003-11-17  GNAT Script  <nobody@gnat.com>
19263
19264         * Make-lang.in: Makefile automatically updated
19265
19266 2003-11-16  Jason Merrill  <jason@redhat.com>
19267
19268         * Make-lang.in (ada.tags): Create TAGS.sub files in each directory
19269         and TAGS files that include them for each front end.
19270
19271 2003-11-14  Andreas Jaeger  <aj@suse.de>
19272
19273         * lang.opt: Change -Wno-long-long to -Wlong-long since the latter
19274         is the canonical version.
19275         * misc.c (gnat_handle_option): Likewise.
19276
19277         * Makefile.in (LIBGNAT_TARGET_PAIRS): Add rules for x86_64-linux.
19278
19279         * 5nsystem.ads: New file for x86_64-linux-gnu.
19280
19281 2003-11-14  Arnaud Charlet  <charlet@act-europe.fr>
19282
19283         * nmake.ads, nmake.adb, sinfo.h, treeprs.ads: Regenerated.
19284
19285         * comperr.adb: Fix logic in previous change.
19286
19287 2003-11-13  Vincent Celier  <celier@gnat.com>
19288
19289         * 5bml-tgt.adb (Build_Dynamic_Library): Use
19290         Osint.Include_Dir_Default_Prefix instead of
19291         Sdefault.Include_Dir_Default_Name.
19292
19293         * gnatlbr.adb: Update Copyright notice
19294         (Gnatlbr): : Use Osint.Include_Dir_Default_Prefix instead of
19295         Sdefault.Include_Dir_Default_Name and Osint.Object_Dir_Default_Prefix
19296         instead of Sdefault.Object_Dir_Default_Name
19297
19298         * gnatlink.adb:
19299         (Process_Binder_File): Never suppress the option following -Xlinker
19300
19301         * mdll-utl.adb:
19302         (Gcc): Use Osint.Object_Dir_Default_Prefix instead of
19303         Sdefault.Object_Dir_Default_Name.
19304
19305         * osint.ads, osint.adb:
19306         (Include_Dir_Default_Prefix, Object_Dir_Default_Prefix): New functions
19307         Minor reformatting.
19308
19309         * vms_conv.ads: Minor reformating
19310         Remove GNAT STANDARD and GNAT PSTA
19311
19312         * vms_conv.adb:
19313         Allow GNAT MAKE to have several files on the command line.
19314         (Init_Object_Dirs): Use Osint.Object_Dir_Default_Prefix instead of
19315         Sdefault.Object_Dir_Default_Name.
19316         Minor Reformating
19317         Remove data for GNAT STANDARD
19318
19319         * vms_data.ads:
19320         Add new compiler qualifier /PRINT_STANDARD (-gnatS)
19321         Remove data for GNAT STANDARD
19322         Remove options and documentation for -gnatwb/-gnatwB: these warning
19323         options no longer exist.
19324
19325 2003-11-13  Ed Falis  <falis@gnat.com>
19326
19327         * 5zthrini.adb: (Init_RTS): Made visible
19328
19329         * 5zthrini.adb:
19330         (Register): Removed unnecessary call to taskVarGet that checked whether
19331          an ATSD was already set as a task var for the argument thread.
19332
19333         * s-thread.adb:
19334         Updated comment to reflect that this is a VxWorks version
19335         Added context clause for System.Threads.Initialization
19336         Added call to System.Threads.Initialization.Init_RTS
19337
19338 2003-11-13  Jerome Guitton  <guitton@act-europe.fr>
19339
19340         * 5zthrini.adb:
19341         (Init_RTS): New procedure, for the initialization of the run-time lib.
19342
19343         * s-thread.adb:
19344         Remove dependancy on System.Init, so that this file can be used in the
19345         AE653 sequential run-time lib.
19346
19347 2003-11-13  Robert Dewar  <dewar@gnat.com>
19348
19349         * bindgen.adb: Minor reformatting
19350
19351 2003-11-13  Ed Schonberg  <schonberg@gnat.com>
19352
19353         * checks.adb:
19354         (Apply_Discriminant_Check): Do no apply check if target type is derived
19355         from source type with no applicable constraint.
19356
19357         * lib-writ.adb:
19358         (Ensure_System_Dependency): Do not apply the style checks that may have
19359         been specified for the main unit.
19360
19361         * sem_ch8.adb:
19362         (Find_Selected_Component): Further improvement in error message, with
19363         RM reference.
19364
19365         * sem_res.adb:
19366         (Resolve): Handle properly the case of an illegal overloaded protected
19367         procedure.
19368
19369 2003-11-13  Javier Miranda  <miranda@gnat.com>
19370
19371         * exp_aggr.adb:
19372         (Has_Default_Init_Comps): New function to check the presence of
19373         default initialization in an aggregate.
19374         (Build_Record_Aggr_Code): Recursively expand the ancestor in case of
19375         extension aggregate of a limited record. In addition, a new formal
19376         was added to do not initialize the record controller (if any) during
19377         this recursive expansion of ancestors.
19378         (Init_Controller): Add support for limited record components.
19379         (Expand_Record_Aggregate): In case of default initialized components
19380         convert the aggregate into a set of assignments.
19381
19382         * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Update the comment
19383         describing the new syntax.
19384         Nothing else needed to be done because this subprogram delegates part of
19385         its work to P_Precord_Or_Array_Component_Association.
19386         (P_Record_Or_Array_Component_Association): Give support to the new
19387         syntax for default initialization of components.
19388
19389         * sem_aggr.adb:
19390         (Resolve_Aggregate): Relax the strictness of the frontend in case of
19391         limited aggregates.
19392         (Resolve_Record_Aggregate): Give support to default initialized
19393         components.
19394         (Get_Value): In case of default initialized components, duplicate
19395         the corresponding default expression (from the record type
19396         declaration). In case of default initialization in the *others*
19397         choice, do not check that all components have the same type.
19398         (Resolve_Extension_Aggregate): Give support to limited extension
19399         aggregates.
19400
19401         * sem_ch3.adb:
19402         (Check_Initialization): Relax the strictness of the front-end in case
19403         of aggregate and extension aggregates. This test is now done in
19404         Get_Value in a per-component manner.
19405
19406         * sem_ch4.adb (Analyze_Allocator): Don't post an error if the
19407         expression corresponds to a limited aggregate. This test is now done
19408         in Get_Value.
19409
19410         * sinfo.ads, sinfo.adb (N_Component_Association): Addition of
19411         Box_Present flag.
19412
19413         * sprint.adb (Sprint_Node_Actual): Modified to print an mbox if
19414         present in an N_Component_Association node
19415
19416 2003-11-13  Thomas Quinot  <quinot@act-europe.fr>
19417
19418         * sem_ch9.adb (Analyze_Accept_Statement): A procedure hides a
19419         type-conformant entry only if they are homographs.
19420
19421 2003-11-13  GNAT Script  <nobody@gnat.com>
19422
19423         * Make-lang.in: Makefile automatically updated
19424
19425 2003-11-12  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
19426
19427         * adadecode.c: Use <> form of include for ctype.h.
19428         * sysdep.c [IN_RTS]: Use <> form of include for time.h.
19429
19430 2003-11-12  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
19431
19432         * 5gsystem.ads (Functions_Return_By_DSP): Set to False.
19433         Works around PR middle-end/6552.
19434
19435 2003-11-10  Ed Falis  <falis@gnat.com>
19436
19437         * 5ytiitho.adb: (procStartHookAdd): Definition and call deleted
19438
19439         * 5zinit.adb: (Install_Handler): Moved back to spec
19440         (Install_Signal_Handlers): Deleted
19441
19442         * 5zthrini.adb: Added context clause for System.Storage_Elements
19443         (Register): Only handles creation of taskVar; initialization moved to
19444         Thread_Body_Enter.
19445         (Reset_TSD): Deleted; replaced by Thread_Body_Enter
19446         Added declaration of environment task secondary stack and
19447         initialization.
19448
19449         * s-thread.adb: Implement bodies for thread body processing
19450
19451         * s-thread.ads:
19452         Added comment identifying supported targets for pragma Thread_Body.
19453
19454 2003-11-10  Pascal Obry  <obry@gnat.com>
19455
19456         * adaint.c (_gnat_stat) [WIN32]: Check if name is not bigger than
19457         GNAT_MAX_PATH_LEN.
19458
19459         * s-fileio.adb:
19460         (Open): Properly check for string length before copying into the buffer.
19461         Raises Name_Error if buffer is too small. Note that this was a potential
19462         buffer overflow.
19463
19464 2003-11-10  Romain Berrendonner  <berrendo@act-europe.fr>
19465
19466         * bindgen.adb, comperr.adb: Code clean ups.
19467         * gnatvsn.ads, gnatvsn.adb (Get_Gnat_Version_Type): New function.
19468
19469 2003-11-10  Sergey Rybin  <rybin@act-europe.fr>
19470
19471         * gnat1drv.adb: Add call to Sem_Elim.Initialize.
19472
19473 2003-11-10  Vincent Celier  <celier@gnat.com>
19474
19475         * gprcmd.adb:
19476         (Gprcmd): Add new command "prefix" to get the prefix of the GNAT
19477         installation.
19478
19479         * make.adb (Scan_Make_Arg): Transmit -nostdlib to the compiler
19480
19481         * prj.adb: (Project_Empty): Add new boolean component Virtual
19482
19483         * prj.ads: (Virtual_Prefix): New constant string
19484         (Project_Data): New boolean component Virtual
19485
19486         * prj-nmsc.adb (Language_Independent_Check): Adjust error message when
19487         a library project is extended by a virtual extending project.
19488
19489         * prj-part.adb:
19490         Modifications throughout to implement extending-all project, including:
19491         (Virtual_Hash, Processed_Hash): New hash tables
19492         (Create_Virtual_Extending_Project): New procedure
19493         (Look_For_Virtual_Projects_For): New procedure
19494
19495         * prj-proc.adb:
19496         (Process): After checking the projects, if main project is an
19497         extending-all project, set the object directory of all virtual extending
19498         project to the object directory of the main project.
19499         Adjust error message when a virtual extending project has the same
19500         object directory as an project being extended.
19501         (Recursive_Process): If name starts with the virtual prefix, set Virtual
19502         to True in the project data.
19503
19504         * prj-tree.adb:
19505         (Default_Project_Node): Add new boolean component Extending_All
19506         (Is_Extending_All): New function
19507         (Set_Is_Extending_All): New procedure
19508
19509         * prj-tree.ads: (Is_Extending_All): New function
19510         (Set_Is_Extending_All): New procedure
19511         (Project_Node_Record): New boolean component Extending_All
19512
19513         * switch-c.adb: (Scan_Front_End_Switches): Process -nostdlib
19514
19515         * vms_data.ads:
19516         Add qualifier /NOSTD_LIBRARIES (-nostdlib) for the compiler
19517
19518         * bld.adb (Recursive_Process): If MAKE_ROOT is not defined, call
19519         "gprcmd prefix" to define it.
19520
19521 2003-11-10  Thomas Quinot  <quinot@act-europe.fr>
19522
19523         * einfo.ads: Fix a typo and remove an extraneous word in comments.
19524
19525         * lib-load.adb:
19526         (Create_Dummy_Package_Unit): Set the scope of the entity for the
19527         created dummy package to Standard_Standard, not to itself, to
19528         defend other parts of the front-end against encoutering a cycle in
19529         the scope chain.
19530
19531         * sem_ch10.adb:
19532         (Analyze_With_Clause): When setting the entities for the successive
19533         N_Expanded_Names that constitute the name of a child unit, do not
19534         attempt to go further than Standard_Standard in the chain of scopes.
19535         This case arises from the placeholder units created by
19536         Create_Dummy_Package_Unit in the case of a with_clause for a
19537         nonexistent child unit.
19538
19539 2003-11-10  Ed Schonberg  <schonberg@gnat.com>
19540
19541         * exp_ch6.adb:
19542         (Expand_Thread_Body): Place subprogram on scope stack, so that new
19543         declarations are given the proper scope.
19544
19545         * sem_ch13.adb:
19546         (Check_Expr_Constants): Reject an expression that contains a constant
19547         created during expansion, and that appears after the object to which
19548         the address clause applies.
19549
19550         * sem_ch5.adb (Check_Controlled_Array_Attribute): Subsidiary of
19551         Analyze_Iteration_Scheme, to rewrite a loop parameter specification
19552         that uses 'Range of a function call with controlled components, so
19553         that the function result can be finalized before starting the loop.
19554
19555         * sem_ch8.adb:
19556         (Find_Selected_Component): Improve error message when prefix is
19557         an implicit dereference of an incomplete type.
19558
19559 2003-11-10  Robert Dewar  <dewar@gnat.com>
19560
19561         * opt.ads: New Print_Standard flag for -gnatS switch
19562
19563         * sem_ch13.adb: Remove some additional checks for unaligned arrays
19564
19565         * cstand.adb (Create_Standard): Print out package standard if -gnatS
19566         switch set
19567
19568         * debug.adb: Update doc for -gnatds to discuss relationship with new
19569         -gnatS flag
19570
19571         * sinfo.adb: Add new field Entity_Or_Associated_Node
19572
19573         * sinfo.ads: Add new field Entity_Or_Associated_Node
19574         Update documentation for Associated_Node and Entity fields to clarify
19575         relationship and usage.
19576
19577         * sprint.adb:
19578         (Write_Id): Properly process Associated_Node field in generic template
19579
19580         * switch-c.adb:
19581         Recognize new -gnatS switch for printing package Standard
19582         This replaces gnatpsta
19583
19584         * usage.adb:
19585         Add line for  new -gnatS switch for printing package Standard
19586         This replaces gnatpsta
19587
19588 2003-11-10  Andreas Jaeger  <aj@suse.de>
19589
19590         * 7sosprim.adb: tv_usec of struct_timeval and time_t are long
19591         integer.
19592
19593 2003-11-10  Arnaud Charlet  <charlet@act-europe.fr>
19594
19595         * misc.c, lang.opt: Add handling of -nostdlib, now recognized/needed
19596         by gnat1.
19597
19598 2003-11-10  Arnaud Charlet  <charlet@act-europe.fr>
19599
19600         * Makefile.in, Make-lang.in: Remove build of gnat_wrapper and gnatpsta,
19601         no longer needed.
19602
19603         * gnatpsta.adb, gnat_wrapper.adb: Removed, no longer needed.
19604
19605         * sysdep.c: Add handling of cygwin.
19606
19607 2003-11-10  GNAT Script  <nobody@gnat.com>
19608
19609         * Make-lang.in: Makefile automatically updated
19610
19611 2003-11-10  Arnaud Charlet  <charlet@act-europe.fr>
19612
19613         PR 12950
19614         * osint.ads, osint.adb (Relocate_Path, Executable_Suffix): New
19615         functions. Used to handle dynamic prefix relocation, via set_std_prefix.
19616         Replace GNAT_ROOT by GCC_ROOT.
19617
19618         * Make-lang.in: Use new function Relocate_Path to generate sdefault.adb
19619
19620 2003-11-06  Zack Weinberg  <zack@codesourcery.com>
19621
19622         * misc.c (fp_prec_to_size, fp_size_to_prec): Use GET_MODE_PRECISION
19623         and update for changed meaning of GET_MODE_BITSIZE.
19624
19625 2003-11-04  Doug Rupp  <rupp@gnat.com>
19626
19627         * sysdep.c: Problem discovered during IA64 VMS port.
19628         [VMS] #include <unixio.h> to get proper prototypes.
19629
19630         * adaint.c:
19631         Issues discovered/problems fixed during IA64 VMS port.
19632         [VMS] #define _POSIX_EXIT for proper semantics.
19633         [VMS] #include <unixio.h> for proper prototypes.
19634         [VMS] (fork): #define IA64 version.
19635         (__gnat_os_exit): Remove unnecessary VMS specific code.
19636
19637 2003-11-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19638
19639         Part of PR ada/12806
19640
19641         * ada-tree.h (TYPE_DIGITS_VALUE, SET_TYPE_DIGITS_VALUE): Save count as
19642         tree, not integer.
19643
19644         * decl.c:
19645         (gnat_to_gnu_entity, case E_Floating_Point_Type): Save count as tree,
19646         not integer.
19647
19648         * targtyps.c, decl.c, misc.c,
19649         gigi.h (fp_prec_to_size, fp_size_to_prec): Temporary
19650         routines to work around change in FP sizing semantics in GCC.
19651
19652         * utils.c:
19653         (build_vms_descriptor): TYPE_DIGITS_VALUE is tree, not integer.
19654
19655         * gigi.h: (enumerate_modes): New function.
19656
19657         * Make-lang.in: (ada/misc.o): Add real.h.
19658
19659         * misc.c: (enumerate_modes): New function.
19660
19661 2003-11-04  Robert Dewar  <dewar@gnat.com>
19662
19663         * 3vtrasym.adb: Minor reformatting
19664         Use terminology encoded/decoded name, rather than C++ specific notion
19665         of mangling (this is the terminology used throughout GNAT).
19666
19667         * einfo.h: Regenerated
19668
19669         * einfo.ads, einfo.adb: Add new flag Is_Thread_Body
19670
19671         * exp_ch6.adb:
19672         (Expand_N_Subprogram_Body): Handle expansion of thread body procedure
19673
19674         * par-prag.adb: Add dummy entry for Thread_Body pragma
19675
19676         * rtsfind.ads:
19677         Add entries for System.Threads entities for thread body processing
19678
19679         * sem_attr.adb:
19680         (Analyze_Pragma, Access attributes): Check these are not applied to a
19681         thread body, since this is not permitted
19682
19683         * sem_prag.adb: Add processing for Thread_Body pragma.
19684         Minor comment fix.
19685
19686         * sem_res.adb:
19687         (Resolve_Call): Check for incorrect attempt to call a thread body
19688          procedure with a direct call.
19689
19690         * snames.ads, snames.adb: Add entry for Thread_Body pragma
19691         Add names associated with thread body expansion
19692
19693         * snames.h: Add entry for Thread_Body pragma
19694
19695         * s-thread.adb: Add entries for thread body processing
19696         These are dummy bodies so far
19697
19698         * s-thread.ads: Add documentation on thread body handling.
19699         Add entries for thread body processing.
19700
19701 2003-11-04  Javier Miranda  <miranda@gnat.com>
19702
19703         * sem_ch10.adb:
19704         (Build_Limited_Views): Return after posting an error in case of limited
19705         with_clause on subprograms, generics, instances or generic renamings
19706         (Install_Limited_Withed_Unit): Do nothing in case of limited with_clause
19707         on subprograms, generics, instances or generic renamings
19708
19709 2003-11-04  Arnaud Charlet  <charlet@act-europe.fr>
19710
19711         * raise.c (setup_to_install): Correct mistake in last revision; two
19712         arguments out of order.
19713
19714         * trans.c, cuintp.c, argv.c, aux-io.c, cal.c, errno.c, exit.c,
19715         gnatbl.c, init.c, stringt.h, utils.c, utils2.c: Update copyright
19716         notice, missed in previous change.
19717         Remove trailing blanks and other style errors introduced in previous
19718         change.
19719
19720 2003-11-04  Olivier Hainque  <hainque@act-europe.fr>
19721
19722         * decl.c (gnat_to_gnu_field): Adjust the conditions under which we get
19723         rid of the wrapper for a LJM type, ensuring we don't do that if the
19724         field is addressable.  This avoids potential low level type view
19725         mismatches later on, for instance in a by-reference argument passing
19726         process.
19727
19728 2003-11-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19729
19730         * decl.c (gnat_to_gnu_field): No longer check for BLKmode being
19731         aligned at byte boundary.
19732
19733 2003-11-04  Joel Brobecker  <brobecker@gnat.com>
19734
19735         * decl.c (components_to_record): Do not delete the empty variants from
19736         the end of the union type.
19737
19738 2003-11-04  Ed Schonberg  <schonberg@gnat.com>
19739
19740         * exp_ch4.adb (Expand_N_Op_Eq): Use base type when locating primitive
19741         operation for a derived type, an explicit declaration may use a local
19742         subtype of Boolean.
19743
19744 2003-11-04  Vincent Celier  <celier@gnat.com>
19745
19746         * make.adb (Gnatmake): Allow main sources on the command line with a
19747         library project when it is only for compilation (no binding or
19748         linking).
19749
19750 2003-11-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
19751
19752         * Makefile.in: Remove many duplicate variables.
19753
19754 2003-11-03  Kelley Cook  <kcook@gcc.gnu.org>
19755
19756         * Make-lang.in (dvi): Move targets to $(docobjdir).
19757         (gnat_ug_vms.dvi): Simplify rule and adjust target.
19758         (gnat_ug_wnt.dvi): Likewise.
19759         (gnat_ug_unx.dvi): Likewise.
19760         (gnat_ug_vxw.dvi): Likewise.
19761         (gnat_rm.dvi): Likewise.
19762         (gnat-style.dvi): Likewise.
19763
19764 2003-10-31  Kelley Cook  <kcook@gcc.gnu.org>
19765
19766         * gigi.h: Missed commit from update for C90.
19767
19768 2003-10-31  Kelley Cook  <kcook@gcc.gnu.org>
19769
19770         * Makefile.in (ada/b_gnat1.o): Compile with -Wno-error.
19771
19772 2003-10-31  Andreas Schwab  <schwab@suse.de>
19773
19774         * raise.c (get_action_description_for): Fix typo in last change.
19775
19776 2003-10-31  Nathanael Nerode  <neroden@gcc.gnu.org>
19777
19778         PR ada/12761
19779         * ada/Make-lang.in: Move default definitions of X_ADA_CFLAGS,
19780         T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS from here to master Makefile.in.
19781
19782 2003-10-30  Kelley Cook  <kcook@gcc.gnu.org>
19783
19784         * adadecode.c, adaint.c, argv.c, aux-io.c, cal.c, cio.c, cstreams.c,
19785         ctrl_c.c, cuintp.c, decl.c, errno.c, exit.c, expect.c, final.c,
19786         gigi.h, gmem.c, gnatbl.c, init.c, misc.c, mkdir.c, raise.c, socket.c,
19787         sysdep.c, sysdep.c, targtyps.c, tb-alvms.c, tb-alvxw.c, tracebak.c,
19788         trans.c, utils.c, utils2.c: Convert function prototypes to C90.
19789
19790 2003-10-30  Vasiliy Fofanov  <fofanov@act-europe.fr>
19791
19792         * 3vtrasym.adb:
19793         Demangle Ada symbols returned by TBK$SYMBOLIZE. Correctly align line
19794         numbers when symbol name is too long.
19795
19796 2003-10-30  Ed Falis  <falis@gnat.com>
19797
19798         * g-signal.ads, g-signal.adb: New files
19799
19800         * impunit.adb: (Non_Imp_File_Names): Added "g-signal"
19801
19802         * Makefile.rtl: Introduce GNAT.Signals
19803
19804 2003-10-30  Robert Dewar  <dewar@gnat.com>
19805
19806         * freeze.adb: Minor reformatting
19807
19808         * lib-writ.adb (Write_ALI): Never write ali file if -gnats is specified
19809
19810         * par.adb, par-ch12.adb, par-ch13.adb, par-ch2.adb, par-ch3.adb,
19811         par-ch5.adb, par-ch6.adb, par-ch9.adb, par-util.adb:
19812         New handling of Id_Check parameter to improve recognition of keywords
19813         used as identifiers.
19814         Update copyright notice to include 2003
19815
19816 2003-10-29  Robert Dewar  <dewar@gnat.com>
19817
19818         * 3vtrasym.adb, 5vtraent.ads, sprint.adb,
19819         sem_ch10.adb: Minor reformatting
19820
19821         * exp_ch5.adb (Expand_Assign_Array): Test for bit unaligned operands
19822         (Expand_Assign_Record): Test right hand side for bit unaligned as well
19823
19824 2003-10-29  Vasiliy Fofanov  <fofanov@act-europe.fr>
19825
19826         * 3vtrasym.adb, 5vtraent.adb, 5vtraent.ads, tb-alvms.c:
19827         Support for TBK$SYMBOLIZE-based symbolic traceback.
19828
19829 2003-10-29  Jose Ruiz  <ruiz@act-europe.fr>
19830
19831         * exp_disp.adb:
19832         Revert previous change, that did not work well when pragma No_Run_Time
19833         was used in conjunction with a run-time other than ZFP.
19834
19835 2003-10-29  Vincent Celier  <celier@gnat.com>
19836
19837         * make.adb:
19838         (Gnatmake): When there are no Ada mains in attribute Main, disable the
19839          bind and link steps only is switch -z is not used.
19840
19841 2003-10-29  Arnaud Charlet  <charlet@act-europe.fr>
19842
19843         * Makefile.generic: Remove duplicated setting of CC.
19844
19845         * Makefile.prolog: Set CC to gcc by default, to override make's
19846         default (cc).
19847
19848         * einfo.h: Regenerated.
19849
19850 2003-10-29  Ed Schonberg  <schonberg@gnat.com>
19851
19852         * sem_ch10.adb (Analyze_Subunit): Restore state of suppress flags for
19853         current body, after compiling subunit.
19854
19855         * itypes.adb (Create_Itype): In ASIS_Mode, do not freeze the itype
19856         when in deleted code, because gigi needs properly ordered freeze
19857         actions to annotate types.
19858
19859         * freeze.adb (Is_Fully_Defined): Predicate must be recursive, to
19860         prevent the premature freezing of record type that contains
19861         subcomponents with a private type that does not yet have a completion.
19862
19863 2003-10-29  Javier Miranda  <miranda@gnat.com>
19864
19865         * sem_ch12.adb:
19866         (Analyze_Package_Instantiation): Check that instances can not be used in
19867         limited with_clauses.
19868
19869         * sem_ch8.adb:
19870         (Analyze_Package_Renaming): Check that limited withed packages cannot
19871         be renamed. Improve text on error messages related to limited
19872         with_clauses.
19873
19874         * einfo.adb, einfo.ads: Remove Non_Limited_Views attribute.
19875
19876         * sprint.adb: (Sprint_Node_Actual): Print limited with_clauses.
19877         Update copyright notice.
19878
19879         * sem_ch10.adb: (Build_Limited_Views): Complete its documentation.
19880         (Install_Limited_Context_Clauses): New subprogram that isolates all the
19881         checks required for limited context_clauses and installs the limited
19882         view.
19883         (Install_Limited_Withed_Unit): Complete its documentation.
19884         (Analyze_Context): Check that limited with_clauses are only allowed in
19885         package specs.
19886         (Install_Context): Call Install_Limited_Context_Clauses after the
19887         parents have been installed.
19888         (Install_Limited_Withed_Unit): Add documentation. Mark the installed
19889         package as 'From_With_Type'; this mark indicates that the limited view
19890         is installed. Used to check bad usages of limited with_clauses.
19891         (Build_Limited_Views): Do not add shadow entities to the scope's list
19892         of entities. Do not add real entities to the Non_Limited_Views chain.
19893         Improve error notification.
19894         (Remove_Context_Clauses): Remove context clauses in two phases:
19895         limited views first and regular views later (to maintain the
19896         stack model).
19897         (Remove_Limited_With_Clause): If the package is analyzed then reinstall
19898         its visible entities.
19899
19900 2003-10-29  Thomas Quinot  <quinot@act-europe.fr>
19901
19902         * sem_type.adb (Specific_Type): Type Universal_Fixed is compatible
19903         with any type that Is_Fixed_Point_Type.
19904
19905         * sinfo.ads: Fix documentation for Associated_Node attribute.
19906
19907 2003-10-29  Sergey Rybin  <rybin@act-europe.fr>
19908
19909         * switch-c.adb (Scan_Front_End_Switches): ASIS_Mode is set now when
19910         both '-gnatc' and '-gnatt' are specified.
19911
19912         * atree.adb (Initialize): Add initialization for Node_Count (set to
19913         zero).
19914
19915 2003-10-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19916
19917         * decl.c (gnat_to_gnu_entity, case E_Subprogram): If no return value,
19918         do not consider as Pure.
19919
19920         Part of implementation of function-at-a-time:
19921
19922         * trans.c (gnat_to_gnu_code): If IS_STMT, call expand_expr_stmt.
19923         (tree_transform): Add new argument to build_component_ref.
19924         (tree_transform, case N_Assignment_Statement): Make and return an
19925         EXPR_STMT.
19926         (tree_transform): If result IS_STMT, set flags and return it.
19927         (gnat_expand_stmt, set_lineno_from_sloc): New functions.
19928
19929         * utils2.c (build_simple_component_ref, build_component_ref): Add new
19930         arg, NO_FOLD_P.
19931         (build_binary_op, case EQ_EXPR): Pass additional arg to it.
19932         (build_allocator): Likewise.
19933
19934         * utils.c (convert_to_fat_pointer, convert_to_thin_pointer, convert):
19935         Add new arg to build_component_ref.
19936         (maybe_unconstrained_array, unchecked_convert): Likewise.
19937
19938         * ada-tree.def (EXPR_STMT): New code.
19939
19940         * ada-tree.h (IS_STMT, TREE_SLOC, EXPR_STMT_EXPR): New macros.
19941
19942         * decl.c (gnat_to_gnu_entity, case object): Add extra arg to
19943         build_component_ref calls.
19944
19945         * misc.c (gnat_expand_expr): If IS_STMT, call gnat_expand_stmt.
19946
19947         * gigi.h (gnat_expand_stmt, set_lineno_from_sloc): New functions.
19948         (build_component_ref): Add new argument, NO_FOLD_P.
19949
19950 2003-10-27  Arnaud Charlet  <charlet@act-europe.fr>
19951
19952         * Makefile.generic: Add missing substitution on object_deps handling.
19953
19954         PR ada/5909:
19955         * Make-lang.in (check-ada): Enable ACATS test suite.
19956
19957 2003-10-27  Robert Dewar  <dewar@gnat.com>
19958
19959         * exp_ch3.adb:
19960         (Freeze_Array_Type): We do not need an initialization routine for types
19961         derived from String or Wide_String. They should be treated the same
19962         as String and Wide_String themselves. This caused problems with the
19963         use of Initialize_Scalars.
19964
19965         * exp_ch5.adb:
19966         (Expand_Assign_Record): Do component-wise assignment of non-byte aligned
19967         composites. This allows use of component clauses that are not byte
19968         aligned.
19969
19970         * sem_prag.adb:
19971         (Analyze_Pragma, case Pack): Generate warning and ignore pack if there
19972         is an attempt to pack an array of atomic objects.
19973
19974         * make.adb, prj-env.adb, prj-env.ads: Minor reformatting
19975
19976 2003-10-27  Pascal Obry  <obry@gnat.com>
19977
19978         * g-dirope.adb:
19979         (Basename): Check for drive letters in a pathname only on DOS based OS.
19980
19981 2003-10-27  Vincent Celier  <celier@gnat.com>
19982
19983         * make.adb:
19984         (Gnatmake): When unable to change dir to the object dir, display the
19985         content of the parent dir of the obj dir, to try to understand why this
19986         happens.
19987
19988 2003-10-27  GNAT Script  <nobody@gnat.com>
19989
19990         * Make-lang.in: Makefile automatically updated
19991
19992 2003-10-27  Ed Schonberg  <schonberg@gnat.com>
19993
19994         * sem_ch12.adb:
19995         (Inline_Instance_Body): Indicate that the save/restore of use_clauses
19996         should not be done in Save/Restore_Scope_Stack, because it is performed
19997         locally.
19998
19999         * sem_ch8.adb:
20000         (Save_Scope_Stack, Restore_Scope_Stack): Add parameter to indicate
20001         whether use clauses should be removed/restored.
20002
20003         * sem_ch8.ads:
20004         (Save_Scope_Stack, Restore_Scope_Stack): Add parameter to indicate
20005         whether use clauses should be removed/restored.
20006
20007 2003-10-26  Andreas Jaeger  <aj@suse.de>
20008
20009         * Makefile.in: Remove duplicated lines.
20010
20011 2003-10-24  Arnaud Charlet  <charlet@act-europe.fr>
20012
20013         * gnatvsn.ads (Gnat_Static_Version_String): New constant, used to
20014         minimize the differences with ACT tree.
20015
20016         * gnatkr.adb, gnatlink.adb, gnatls.adb, gnatmake.adb,
20017         gnatprep.adb, gnatpsta.adb, gnatvsn.ads: Take advantage of
20018         Gnatvsn.Gnat_Static_Version_String to reduce differences between
20019         ACT and FSF trees.
20020
20021 2003-10-24  Pascal Obry  <obry@gnat.com>
20022
20023         * adadecode.c (ostrcpy): New function.
20024         (__gnat_decode): Use ostrcpy of strcpy.
20025         (has_prefix): Set first parameter a const.
20026         (has_suffix): Set first parameter a const.
20027         Update copyright notice. Fix source name in header.
20028         Removes a trailing space.
20029         PR ada/12014.
20030
20031 2003-10-24  Jose Ruiz  <ruiz@act-europe.fr>
20032
20033         * exp_disp.adb:
20034         Remove the test against being in No_Run_Time_Mode before generating a
20035         call to Register_Tag. It is redundant with the test against the
20036         availability of the function Register_Tag.
20037
20038 2003-10-24  Vincent Celier  <celier@gnat.com>
20039
20040         * g-catiio.adb: (Month_Name): Correct spelling of February
20041
20042         * make.adb: (Mains): New package
20043         (Initialize): Call Mains.Delete
20044         (Gnatmake): Check that each main on the command line is a source of a
20045         project file and, if there are several mains, each of them is a source
20046         of the same project file.
20047         (Gnatmake): When a foreign language is specified in attribute Languages,
20048         no main is specified on the command line and attribute Mains is not
20049         empty, only build the Ada main. If there is no Ada main, just compile
20050         the Ada sources and their closure.
20051         (Gnatmake): If a main is specified on the command line with directory
20052         information, check that the source exists and, if it does, that the path
20053         is the actual path of a source of a project.
20054
20055         * prj-env.adb:
20056         (File_Name_Of_Library_Unit_Body): New Boolean parameter Full_Path. When
20057         Full_Path is True, return the full path instead of the simple file name.
20058         (Project_Of): New function
20059
20060         * prj-env.ads:
20061         (File_Name_Of_Library_Unit_Body): New Boolean parameter Full_Path,
20062         defaulted to False.
20063         (Project_Of): New function
20064
20065 2003-10-24  Arnaud Charlet  <charlet@act-europe.fr>
20066
20067         * Makefile.generic:
20068         Ensure objects of main project are always checked and rebuilt if needed.
20069         Set CC to gcc by default.
20070         Prepare new handling of link by creating a global archive (not activated
20071         yet).
20072
20073         * adadecode.h, atree.h, elists.h, nlists.h, raise.h,
20074         stringt.h: Update copyright notice. Remove trailing blanks.
20075         Fix source name in header.
20076
20077 2003-10-24  Robert Dewar  <dewar@gnat.com>
20078
20079         * sem_ch12.adb: Minor reformatting
20080
20081         * sem_ch3.adb:
20082         Minor reformatting (including new function return style throughout)
20083
20084         * sem_ch3.ads:
20085         Minor reformatting (including new function return style throughout)
20086
20087 2003-10-24  Arnaud Charlet  <charlet@act-europe.fr>
20088
20089         * adadecode.h, atree.h, elists.h, nlists.h, raise.h,
20090         stringt.h: Update copyright notice. Remove trailing blanks.
20091         Fix source name in header.
20092
20093 2003-10-24  GNAT Script  <nobody@gnat.com>
20094
20095         * Make-lang.in: Makefile automatically updated
20096
20097 2003-10-23  Nathanael Nerode  <neroden@gcc.gnu.org>
20098
20099         * adadecode.h, atree.h, elists.h, namet.h, nlists.h, raise.h,
20100         stringt.h: Convert to ISO C90 declarations and definitions.
20101
20102 2003-10-23  Thomas Quinot  <quinot@act-europe.fr>
20103
20104         PR ada/11978:
20105         * exp_ch13.adb (Expand_N_Freeze_Entity): Do not consider inherited
20106         External_Tag attribute definition clauses.
20107
20108 2003-10-23  Ed Schonberg  <schonberg@gnat.com>
20109
20110         PR ada/7613:
20111         * exp_dbug.adb (Debug_Renaming_Declaration): For the renaming of a
20112         child unit, generate a fully qualified name to avoid spurious errors
20113         when the context contains renamings of different child units with
20114         the same simple name.
20115
20116         * exp_dbug.ads: Add documentation on name qualification for renamings
20117         of child units.
20118
20119 2003-10-23  Robert Dewar  <dewar@gnat.com>
20120
20121         * g-regpat.ads, g-regpat.adb: Minor reformatting
20122
20123 2003-10-23  Jose Ruiz  <ruiz@act-europe.fr>
20124
20125         * Makefile.in: Use the file 1atags.ads with the ZFP and cert run-times.
20126
20127 2003-10-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20128
20129         * trans.c: (tree_transform, case N_Real_Literal): Add extra arg to
20130         Machine call.
20131
20132         * urealp.h: (Machine): Update to proper definition.
20133
20134 2003-10-23  Arnaud Charlet  <charlet@act-europe.fr>
20135
20136         * init.c, adaint.c: Minor reformatting.
20137
20138 2003-10-23  Danny Smith  <dannysmith@users.sourceforge.net>
20139
20140         * adaint.c (w32_epoch_offset): Define static const at file level.
20141         (win32_filetime): Replace offset with w32_epoch_offset. Use NULL
20142         rather than t_create, t_access in call to GetFileTime. Use union
20143         to convert between FILETIME and  unsigned long long.
20144         (__gnat_file_time_name): Test for invalid file handle.
20145         (__gnat_set_filetime_name): Support win32 targets using
20146         w32api SetFileTime.
20147
20148 2003-10-22  Danny Smith  <dannysmith@users.sourceforge.net>
20149
20150         * sysdep.c: Include conio.h if __MINGW32__ and !OLD_MINGW.
20151
20152         * ctrl_c.c (__gnat_int_handler): Remove declaration.
20153
20154         * decl.c (creat_concat_name):  Const-ify prefix.
20155
20156         * adaint.c: Include ctype.h if __MINGW32__.
20157         (__gnat_readlink): Mark arguments as possibly unused.
20158         (__gnat_symlink): Likewise.
20159         (__gnat_is_symbolic_link): Likewise.
20160         (__gnat_portable_spawn): Likewise.  Cast last arg of spawnvp to match
20161         declaration
20162         (__gnat_file_time_name): Don't declare struct stat statbuf when
20163         not needed.
20164         (__gnat_is_absolute_path): Add parenthesis around condition of
20165         'if' statement to avoid warning.
20166         (__gnat_plist_init): Specify void as parameter.
20167         (plist_enter): Likewise.
20168         (plist_leave): Likewise.
20169         (remove_handle): Make static. Initialize prev.
20170
20171 2003-10-22  Arnaud Charlet  <charlet@act-europe.fr>
20172
20173         * Makefile.in: Disable build of gnatpsta. PR ada/10110.
20174         * cstreams.c (__gnat_full_name): Minor improvements and clean up
20175         of previous change.
20176
20177 2003-10-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
20178
20179         * tracebak.c (MAX): Avoid redefinition warning.
20180
20181         * init.c [sgi] (__gnat_error_handler): Remove i, unused.
20182         Change msg to const char *.
20183         (__gnat_install_handler): Remove ss, unused.
20184         [sun && __SVR4 && !__vxworks] (__gnat_error_handler): Change msg
20185         to const char *.
20186         * cstreams.c (__gnat_full_name): Declare p only when used.
20187         (__gnat_full_name) [sgi] Return buffer.
20188
20189 2003-10-22  Arnaud Charlet  <charlet@act-europe.fr>
20190
20191         * mingw32.h: New file.
20192         * gnat_wrapper.adb: New file.
20193
20194 2003-10-22  Jerome Roussel  <roussel@act-europe.fr>
20195
20196         * g-regpat.ads, g-regpat.adb (Match): new function, to know if a
20197         string match a pre compiled regular expression (the corresponding
20198         version of the function working on a raw regular expression)
20199         Fix typos in various comments
20200         Update copyright notice in spec
20201
20202 2003-10-21  Gary Dismukes  <dismukes@gnat.com>
20203
20204         * exp_ch3.adb:
20205         (Component_Needs_Simple_Initialization): Return False when the type is a
20206         packed bit array. Revise spec comments to document this case.
20207
20208         * exp_prag.adb:
20209         (Expand_Pragma_Import): Set any expression on the imported object to
20210         empty to avoid initializing imported objects (in particular this
20211         covers the case of zero-initialization of bit arrays).
20212         Update copyright notice.
20213
20214 2003-10-21  Ed Schonberg  <schonberg@gnat.com>
20215
20216         * sem_ch12.adb:
20217         (Load_Parent_Of_Generic): If parent is compilation unit, stop search,
20218         a subunit is missing.
20219         (Instantiate_Subprogram_Body): If body of function is missing, set type
20220         of return expression explicitly in dummy body, to prevent cascaded
20221         errors when a subunit is missing.
20222         Fixes PR 5677.
20223
20224         * sem_ch3.adb:
20225         (Access_Subprogram_Declaration): Verify that return type is valid.
20226         Fixes PR 8693.
20227
20228         * sem_elab.adb:
20229         (Check_Elab_Calls): Do not apply elaboration checks if the main unit is
20230         generic.
20231         Fixes PR 12318.
20232
20233         * sem_util.adb:
20234         (Corresponding_Discriminant): If the scope of the discriminant is a
20235         private type without discriminant, use its full view.
20236         Fixes PR 8247.
20237
20238 2003-10-21  Arnaud Charlet  <charlet@act-europe.fr>
20239
20240         * 3psoccon.ads, 3veacodu.adb, 3vexpect.adb, 3vsoccon.ads,
20241         3vsocthi.adb, 3vsocthi.ads, 3vtrasym.adb, 3zsoccon.ads,
20242         3zsocthi.adb, 3zsocthi.ads, 50system.ads, 51system.ads,
20243         55system.ads, 56osinte.adb, 56osinte.ads, 56taprop.adb,
20244         56taspri.ads, 56tpopsp.adb, 57system.ads, 58system.ads,
20245         59system.ads, 5aml-tgt.adb, 5bml-tgt.adb, 5csystem.ads,
20246         5dsystem.ads, 5fosinte.adb, 5gml-tgt.adb, 5hml-tgt.adb,
20247         5isystem.ads, 5lparame.adb, 5msystem.ads, 5psystem.ads,
20248         5sml-tgt.adb, 5sosprim.adb, 5stpopsp.adb, 5tsystem.ads,
20249         5usystem.ads, 5vml-tgt.adb, 5vsymbol.adb, 5vtraent.adb,
20250         5vtraent.ads, 5wml-tgt.adb, 5xparame.ads, 5xsystem.ads,
20251         5xvxwork.ads, 5yparame.ads, 5ytiitho.adb, 5zinit.adb,
20252         5zml-tgt.adb, 5zparame.ads, 5ztaspri.ads, 5ztfsetr.adb,
20253         5zthrini.adb, 5ztiitho.adb, 5ztpopsp.adb, 7stfsetr.adb,
20254         7straces.adb, 7strafor.adb, 7strafor.ads, 7stratas.adb,
20255         a-excach.adb, a-exexda.adb, a-exexpr.adb, a-exextr.adb,
20256         a-exstat.adb, a-strsup.adb, a-strsup.ads, a-stwisu.adb,
20257         a-stwisu.ads, bld.adb, bld.ads, bld-io.adb,
20258         bld-io.ads, clean.adb, clean.ads, ctrl_c.c,
20259         erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
20260         err_vars.ads, final.c, g-arrspl.adb, g-arrspl.ads,
20261         g-boubuf.adb, g-boubuf.ads, g-boumai.ads, g-bubsor.adb,
20262         g-bubsor.ads, g-comver.adb, g-comver.ads, g-ctrl_c.ads,
20263         g-dynhta.adb, g-dynhta.ads, g-eacodu.adb, g-excact.adb,
20264         g-excact.ads, g-heasor.adb, g-heasor.ads, g-memdum.adb,
20265         g-memdum.ads, gnatclean.adb, gnatsym.adb, g-pehage.adb,
20266         g-pehage.ads, g-perhas.ads, gpr2make.adb, gpr2make.ads,
20267         gprcmd.adb, gprep.adb, gprep.ads, g-semaph.adb,
20268         g-semaph.ads, g-string.adb, g-string.ads, g-strspl.ads,
20269         g-wistsp.ads, i-vthrea.adb, i-vthrea.ads, i-vxwoio.adb,
20270         i-vxwoio.ads, Makefile.generic, Makefile.prolog, Makefile.rtl,
20271         prep.adb, prep.ads, prepcomp.adb, prepcomp.ads,
20272         prj-err.adb, prj-err.ads, s-boarop.ads, s-carsi8.adb,
20273         s-carsi8.ads, s-carun8.adb, s-carun8.ads, s-casi16.adb,
20274         s-casi16.ads, s-casi32.adb, s-casi32.ads, s-casi64.adb,
20275         s-casi64.ads, s-casuti.adb, s-casuti.ads, s-caun16.adb,
20276         s-caun16.ads, s-caun32.adb, s-caun32.ads, s-caun64.adb,
20277         s-caun64.ads, scng.adb, scng.ads, s-exnint.adb,
20278         s-exnllf.adb, s-exnlli.adb, s-expint.adb, s-explli.adb,
20279         s-geveop.adb, s-geveop.ads, s-hibaen.ads, s-htable.adb,
20280         s-htable.ads, sinput-c.adb, sinput-c.ads, s-memcop.ads,
20281         socket.c, s-purexc.ads, s-scaval.adb, s-stopoo.adb,
20282         s-strcom.adb, s-strcom.ads, s-strxdr.adb, s-rident.ads,
20283         s-thread.adb, s-thread.ads, s-tpae65.adb, s-tpae65.ads,
20284         s-tporft.adb, s-traent.adb, s-traent.ads, styleg.adb,
20285         styleg.ads, styleg-c.adb, styleg-c.ads, s-veboop.adb,
20286         s-veboop.ads, s-vector.ads, symbols.adb, symbols.ads,
20287         tb-alvms.c, tb-alvxw.c, tempdir.adb, tempdir.ads,
20288         vms_conv.ads, vms_conv.adb, vms_data.ads,
20289         vxaddr2line.adb: Files added. Merge with ACT tree.
20290
20291         * 4dintnam.ads, 4mintnam.ads, 4uintnam.ads, 52system.ads,
20292         5dosinte.ads, 5etpopse.adb, 5mosinte.ads, 5qosinte.adb,
20293         5qosinte.ads, 5qstache.adb, 5qtaprop.adb, 5qtaspri.ads,
20294         5stpopse.adb, 5uintman.adb, 5uosinte.ads, adafinal.c,
20295         g-enblsp.adb, io-aux.c, scn-nlit.adb, scn-slit.adb,
20296         s-exnflt.ads, s-exngen.adb, s-exngen.ads, s-exnlfl.ads,
20297         s-exnlin.ads, s-exnsfl.ads, s-exnsin.ads, s-exnssi.ads,
20298         s-expflt.ads, s-expgen.adb, s-expgen.ads, s-explfl.ads,
20299         s-explin.ads, s-expllf.ads, s-expsfl.ads, s-expsin.ads,
20300         s-expssi.ads, style.adb: Files removed. Merge with ACT tree.
20301
20302         * 1ic.ads, 31soccon.ads, 31soliop.ads, 3asoccon.ads,
20303         3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3ssoccon.ads,
20304         3ssoliop.ads, 3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads,
20305         3wsoliop.ads, 41intnam.ads, 42intnam.ads, 4aintnam.ads,
20306         4cintnam.ads, 4gintnam.ads, 4hexcpol.adb, 4hintnam.ads,
20307         4lintnam.ads, 4nintnam.ads, 4ointnam.ads, 4onumaux.ads,
20308         4pintnam.ads, 4sintnam.ads, 4vcaldel.adb, 4vcalend.adb,
20309         4vintnam.ads, 4wexcpol.adb, 4wintnam.ads, 4zintnam.ads,
20310         51osinte.adb, 51osinte.ads, 52osinte.adb, 52osinte.ads,
20311         53osinte.ads, 54osinte.ads, 5aosinte.adb, 5aosinte.ads,
20312         5asystem.ads, 5ataprop.adb, 5atasinf.ads, 5ataspri.ads,
20313         5atpopsp.adb, 5avxwork.ads, 5bosinte.adb, 5bosinte.ads,
20314         5bsystem.ads, 5cosinte.ads, 5esystem.ads, 5fintman.adb,
20315         5fosinte.ads, 5fsystem.ads, 5ftaprop.adb, 5ftasinf.ads,
20316         5ginterr.adb, 5gintman.adb, 5gmastop.adb, 5gosinte.ads,
20317         5gproinf.ads, 5gsystem.ads, 5gtaprop.adb, 5gtasinf.ads,
20318         5gtpgetc.adb, 5hosinte.adb, 5hosinte.ads, 5hsystem.ads,
20319         5htaprop.adb, 5htaspri.ads, 5htraceb.adb, 5iosinte.adb,
20320         5itaprop.adb, 5itaspri.ads, 5ksystem.ads, 5kvxwork.ads,
20321         5lintman.adb, 5lml-tgt.adb, 5losinte.ads, 5lsystem.ads,
20322         5mvxwork.ads, 5ninmaop.adb, 5nintman.adb, 5nosinte.ads,
20323         5ntaprop.adb, 5ntaspri.ads, 5ointerr.adb, 5omastop.adb,
20324         5oosinte.adb, 5oosinte.ads, 5oosprim.adb, 5oparame.adb,
20325         5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5posinte.ads,
20326         5posprim.adb, 5pvxwork.ads, 5sintman.adb, 5sosinte.adb,
20327         5sosinte.ads, 5ssystem.ads, 5staprop.adb, 5stasinf.ads,
20328         5staspri.ads, 5svxwork.ads, 5tosinte.ads, 5vasthan.adb,
20329         5vinmaop.adb, 5vinterr.adb, 5vintman.adb, 5vintman.ads,
20330         5vmastop.adb, 5vosinte.adb, 5vosinte.ads, 5vosprim.adb,
20331         5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads, 5vtpopde.adb,
20332         5vtpopde.ads, 5wgloloc.adb, 5wintman.adb, 5wmemory.adb,
20333         5wosprim.adb, 5wsystem.ads, 5wtaprop.adb, 5wtaspri.ads,
20334         5ysystem.ads, 5zinterr.adb, 5zintman.adb, 5zosinte.adb,
20335         5zosinte.ads, 5zosprim.adb, 5zsystem.ads, 5ztaprop.adb,
20336         6vcpp.adb, 6vcstrea.adb, 6vinterf.ads, 7sinmaop.adb,
20337         7sintman.adb, 7sosinte.adb, 7sosprim.adb, 7staprop.adb,
20338         7staspri.ads, 7stpopsp.adb, 7straceb.adb, 9drpc.adb,
20339         a-caldel.adb, a-caldel.ads, a-charac.ads, a-colien.ads,
20340         a-comlin.adb, adaint.c, adaint.h, ada-tree.def,
20341         a-diocst.adb, a-diocst.ads, a-direio.adb, a-except.adb,
20342         a-except.ads, a-excpol.adb, a-exctra.adb, a-exctra.ads,
20343         a-filico.adb, a-interr.adb, a-intsig.adb, a-intsig.ads,
20344         ali.adb, ali.ads, ali-util.adb, ali-util.ads,
20345         a-ngcefu.adb, a-ngcoty.adb, a-ngelfu.adb, a-nudira.adb,
20346         a-nudira.ads, a-nuflra.adb, a-nuflra.ads, a-reatim.adb,
20347         a-reatim.ads, a-retide.ads, a-sequio.adb, a-siocst.adb,
20348         a-siocst.ads, a-ssicst.adb, a-ssicst.ads, a-strbou.adb,
20349         a-strbou.ads, a-strfix.adb, a-strmap.adb, a-strsea.ads,
20350         a-strunb.adb, a-strunb.ads, a-ststio.adb, a-stunau.adb,
20351         a-stunau.ads, a-stwibo.adb, a-stwibo.ads, a-stwifi.adb,
20352         a-stwima.adb, a-stwiun.adb, a-stwiun.ads, a-tags.adb,
20353         a-tags.ads, a-tasatt.adb, a-taside.adb, a-teioed.adb,
20354         a-textio.adb, a-textio.ads, a-tienau.adb, a-tifiio.adb,
20355         a-tiflau.adb, a-tiflio.adb, a-tigeau.adb, a-tigeau.ads,
20356         a-tiinau.adb, a-timoau.adb, a-tiocst.adb, a-tiocst.ads,
20357         atree.adb, atree.ads, a-witeio.adb, a-witeio.ads,
20358         a-wtcstr.adb, a-wtcstr.ads, a-wtdeio.adb, a-wtedit.adb,
20359         a-wtenau.adb, a-wtflau.adb, a-wtinau.adb, a-wtmoau.adb,
20360         bcheck.adb, binde.adb, bindgen.adb, bindusg.adb,
20361         checks.adb, checks.ads, cio.c, comperr.adb,
20362         comperr.ads, csets.adb, cstand.adb, cstreams.c,
20363         debug_a.adb, debug_a.ads, debug.adb, decl.c,
20364         einfo.adb, einfo.ads, errout.adb, errout.ads,
20365         eval_fat.adb, eval_fat.ads, exp_aggr.adb, expander.adb,
20366         expander.ads, exp_attr.adb, exp_ch11.adb, exp_ch13.adb,
20367         exp_ch2.adb, exp_ch3.adb, exp_ch3.ads, exp_ch4.adb,
20368         exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch7.ads,
20369         exp_ch8.adb, exp_ch9.adb, exp_code.adb, exp_dbug.adb,
20370         exp_dbug.ads, exp_disp.adb, exp_dist.adb, expect.c,
20371         exp_fixd.adb, exp_imgv.adb, exp_intr.adb, exp_pakd.adb,
20372         exp_prag.adb, exp_strm.adb, exp_strm.ads, exp_tss.adb,
20373         exp_tss.ads, exp_util.adb, exp_util.ads, exp_vfpt.adb,
20374         fe.h, fmap.adb, fmap.ads, fname.adb,
20375         fname.ads, fname-uf.adb, fname-uf.ads, freeze.adb,
20376         freeze.ads, frontend.adb, g-awk.adb, g-awk.ads,
20377         g-busora.adb, g-busora.ads, g-busorg.adb, g-busorg.ads,
20378         g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads,
20379         g-cgi.adb, g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads,
20380         g-cgideb.adb, g-cgideb.ads, g-comlin.adb, g-comlin.ads,
20381         g-crc32.adb, g-crc32.ads, g-debpoo.adb, g-debpoo.ads,
20382         g-debuti.adb, g-debuti.ads, g-diopit.adb, g-diopit.ads,
20383         g-dirope.adb, g-dirope.ads, g-dyntab.adb, g-dyntab.ads,
20384         g-except.ads, g-exctra.adb, g-exctra.ads, g-expect.adb,
20385         g-expect.ads, g-hesora.adb, g-hesora.ads, g-hesorg.adb,
20386         g-hesorg.ads, g-htable.adb, g-htable.ads, gigi.h,
20387         g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads,
20388         g-locfil.adb, g-locfil.ads, g-md5.adb, g-md5.ads,
20389         gmem.c, gnat1drv.adb, gnatbind.adb, gnatchop.adb,
20390         gnatcmd.adb, gnatfind.adb, gnatkr.adb, gnatlbr.adb,
20391         gnatlink.adb, gnatls.adb, gnatmake.adb, gnatmem.adb,
20392         gnatname.adb, gnatprep.adb, gnatprep.ads, gnatpsta.adb,
20393         gnatxref.adb, g-os_lib.adb, g-os_lib.ads, g-regexp.adb,
20394         g-regexp.ads, g-regist.adb, g-regist.ads, g-regpat.adb,
20395         g-regpat.ads, g-soccon.ads, g-socket.adb, g-socket.ads,
20396         g-socthi.adb, g-socthi.ads, g-soliop.ads, g-souinf.ads,
20397         g-speche.adb, g-speche.ads, g-spipat.adb, g-spipat.ads,
20398         g-spitbo.adb, g-spitbo.ads, g-sptabo.ads, g-sptain.ads,
20399         g-sptavs.ads, g-table.adb, g-table.ads, g-tasloc.adb,
20400         g-tasloc.ads, g-thread.adb, g-thread.ads, g-traceb.adb,
20401         g-traceb.ads, g-trasym.adb, g-trasym.ads, hostparm.ads,
20402         i-c.ads, i-cobol.adb, i-cpp.adb, i-cstrea.ads,
20403         i-cstrin.adb, i-cstrin.ads, impunit.adb, init.c,
20404         inline.adb, interfac.ads, i-pacdec.ads, itypes.adb,
20405         itypes.ads, i-vxwork.ads, lang.opt, lang-specs.h,
20406         layout.adb, lib.adb, lib.ads, lib-list.adb,
20407         lib-load.adb, lib-load.ads, lib-sort.adb, lib-util.adb,
20408         lib-writ.adb, lib-writ.ads, lib-xref.adb, lib-xref.ads,
20409         link.c, live.adb, make.adb, make.ads,
20410         Makefile.adalib, Makefile.in, Make-lang.in, makeusg.adb,
20411         mdll.adb, mdll-fil.adb, mdll-fil.ads, mdll-utl.adb,
20412         mdll-utl.ads, memroot.adb, memroot.ads, memtrack.adb,
20413         misc.c, mkdir.c, mlib.adb, mlib.ads,
20414         mlib-fil.adb, mlib-fil.ads, mlib-prj.adb, mlib-prj.ads,
20415         mlib-tgt.adb, mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads,
20416         namet.adb, namet.ads, namet.h, nlists.ads,
20417         nlists.h, nmake.adt, opt.adb, opt.ads,
20418         osint.adb, osint.ads, osint-b.adb, osint-c.adb,
20419         par.adb, par-ch10.adb, par-ch11.adb, par-ch2.adb,
20420         par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb,
20421         par-ch9.adb, par-endh.adb, par-labl.adb, par-load.adb,
20422         par-prag.adb, par-sync.adb, par-tchk.adb, par-util.adb,
20423         prj.adb, prj.ads, prj-attr.adb, prj-attr.ads,
20424         prj-com.adb, prj-com.ads, prj-dect.adb, prj-dect.ads,
20425         prj-env.adb, prj-env.ads, prj-ext.adb, prj-ext.ads,
20426         prj-makr.adb, prj-makr.ads, prj-nmsc.adb, prj-nmsc.ads,
20427         prj-pars.adb, prj-pars.ads, prj-part.adb, prj-part.ads,
20428         prj-pp.adb, prj-pp.ads, prj-proc.adb, prj-proc.ads,
20429         prj-strt.adb, prj-strt.ads, prj-tree.adb, prj-tree.ads,
20430         prj-util.adb, prj-util.ads, raise.c, raise.h,
20431         repinfo.adb, repinfo.h, restrict.adb, restrict.ads,
20432         rident.ads, rtsfind.adb, rtsfind.ads, s-addima.ads,
20433         s-arit64.adb, s-assert.adb, s-assert.ads, s-atacco.adb,
20434         s-atacco.ads, s-auxdec.adb, s-auxdec.ads, s-bitops.adb,
20435         scans.ads, scn.adb, scn.ads, s-crc32.adb,
20436         s-crc32.ads, s-direio.adb, sem.adb, sem.ads,
20437         sem_aggr.adb, sem_attr.adb, sem_attr.ads, sem_case.adb,
20438         sem_case.ads, sem_cat.adb, sem_cat.ads, sem_ch10.adb,
20439         sem_ch11.adb, sem_ch12.adb, sem_ch12.ads, sem_ch13.adb,
20440         sem_ch13.ads, sem_ch3.adb, sem_ch3.ads, sem_ch4.adb,
20441         sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
20442         sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads,
20443         sem_ch9.adb, sem_disp.adb, sem_disp.ads, sem_dist.adb,
20444         sem_elab.adb, sem_eval.adb, sem_eval.ads, sem_intr.adb,
20445         sem_maps.adb, sem_mech.adb, sem_prag.adb, sem_prag.ads,
20446         sem_res.adb, sem_res.ads, sem_type.adb, sem_type.ads,
20447         sem_util.adb, sem_util.ads, sem_warn.adb, s-errrep.adb,
20448         s-errrep.ads, s-exctab.adb, s-exctab.ads, s-exnint.ads,
20449         s-exnllf.ads, s-exnlli.ads, s-expint.ads, s-explli.ads,
20450         s-expuns.ads, s-fatflt.ads, s-fatgen.adb, s-fatgen.ads,
20451         s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads, s-fileio.adb,
20452         s-fileio.ads, s-finimp.adb, s-finimp.ads, s-finroo.adb,
20453         s-finroo.ads, sfn_scan.adb, s-gloloc.adb, s-gloloc.ads,
20454         s-imgdec.adb, s-imgenu.adb, s-imgrea.adb, s-imgwch.adb,
20455         sinfo.adb, sinfo.ads, s-inmaop.ads, sinput.adb,
20456         sinput.ads, sinput-d.adb, sinput-l.adb, sinput-l.ads,
20457         sinput-p.adb, sinput-p.ads, s-interr.adb, s-interr.ads,
20458         s-intman.ads, s-maccod.ads, s-mastop.adb, s-mastop.ads,
20459         s-memory.adb, s-memory.ads, snames.adb, snames.ads,
20460         snames.h, s-osprim.ads, s-parame.ads, s-parint.ads,
20461         s-pooloc.adb, s-pooloc.ads, s-poosiz.adb, sprint.adb,
20462         s-proinf.ads, s-scaval.ads, s-secsta.adb, s-secsta.ads,
20463         s-sequio.adb, s-shasto.adb, s-shasto.ads, s-soflin.ads,
20464         s-stache.adb, s-stache.ads, s-stalib.adb, s-stalib.ads,
20465         s-stoele.ads, s-stopoo.ads, s-stratt.adb, s-stratt.ads,
20466         s-strops.adb, s-strops.ads, s-taasde.adb, s-taasde.ads,
20467         s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads,
20468         s-taenca.adb, s-taenca.ads, s-taprob.adb, s-taprob.ads,
20469         s-taprop.ads, s-tarest.adb, s-tarest.ads, s-tasdeb.adb,
20470         s-tasdeb.ads, s-tasinf.adb, s-tasinf.ads, s-tasini.adb,
20471         s-tasini.ads, s-taskin.adb, s-taskin.ads, s-tasque.adb,
20472         s-tasque.ads, s-tasren.adb, s-tasren.ads, s-tasres.ads,
20473         s-tassta.adb, s-tassta.ads, s-tasuti.adb, s-tasuti.ads,
20474         s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
20475         s-tpoben.adb, s-tpoben.ads, s-tpobop.adb, s-tpobop.ads,
20476         s-tposen.adb, s-tposen.ads, s-traceb.adb, s-traceb.ads,
20477         stringt.adb, stringt.ads, stringt.h, style.ads,
20478         stylesw.adb, stylesw.ads, s-unstyp.ads, s-vaflop.ads,
20479         s-valrea.adb, s-valuti.adb, s-vercon.adb, s-vmexta.adb,
20480         s-wchcnv.ads, s-wchcon.ads, s-widcha.adb, switch.adb,
20481         switch.ads, switch-b.adb, switch-c.adb, switch-m.adb,
20482         s-wwdcha.adb, s-wwdwch.adb, sysdep.c, system.ads,
20483         table.adb, table.ads, targparm.adb, targparm.ads,
20484         targtyps.c, tbuild.adb, tbuild.ads, tracebak.c,
20485         trans.c, tree_io.adb, treepr.adb, treeprs.adt,
20486         ttypes.ads, types.ads, types.h, uintp.adb,
20487         uintp.ads, uintp.h, uname.adb, urealp.adb,
20488         urealp.ads, urealp.h, usage.adb, utils2.c,
20489         utils.c, validsw.adb, validsw.ads, widechar.adb,
20490         xeinfo.adb, xnmake.adb, xref_lib.adb, xref_lib.ads,
20491         xr_tabls.adb, xr_tabls.ads, xtreeprs.adb, xsnames.adb,
20492         einfo.h, sinfo.h, treeprs.ads, nmake.ads, nmake.adb,
20493         gnatvsn.ads: Merge with ACT tree.
20494
20495         * gnatvsn.adb: Rewritten in a simpler and more efficient way.
20496
20497 2003-10-20  Mark Mitchell  <mark@codesourcery.com>
20498
20499         * Make-lang.in (gnat_ug_unx.info): Add dependency on stmp-docobjdir.
20500         (gnat_ug_vmx.info): Likewise.
20501         (gnat_ug_vxw.info): Likewise.
20502         (gnat_ug_wnt.info): Likewise.
20503         (gnat_rm.info): Likewise.
20504         (gnat-style.info): Likewise.
20505
20506         * Make-lang.in (ada.install-info): Remove target.
20507         (info): New target.
20508         (install-info): Likewise.
20509         (gnat_ug_unx.info): Simplify rule.
20510         (gnat_ug_vmx.info): Likewise.
20511         (gnat_ug_vxw.info): Likewise.
20512         (gnat_ug_wnt.info): Likewise.
20513         (gnat_rm.info): Likewise.
20514         (gnat-style.info): Likewise.
20515
20516 2003-10-14  Nathanael Nerode  <neroden@gcc.gnu.org>
20517
20518         * Make-lang.in: Replace uses of $(target_alias) with
20519         $(target_noncanonical).
20520         * ada/Makefile.in: Remove unused mention of $(target_alias).
20521
20522 2003-10-06  Mark Mitchell  <mark@codesourcery.com>
20523
20524         * Make-lang.in (ada.info): Replace with ...
20525         (info): ... this.
20526         (ada.dvi): Replace with ...
20527         (dvi): ... this.
20528
20529 2003-09-29  Zack Weinberg  <zack@codesourcery.com>
20530
20531         * trans.c (gigi): Use REAL_ARITHMETIC, not REAL_VALUE_ATOF, to
20532         initialize dconstp5 and dconstmp5.
20533
20534 2003-09-28  Richard Henderson  <rth@redhat.com>
20535
20536         * trans.c (tree_transform): Update call to expand_asm_operands.
20537
20538 2003-09-21  Richard Henderson  <rth@redhat.com>
20539
20540         * trans.c, utils.c: Revert.
20541
20542 2003-09-21  Richard Henderson  <rth@redhat.com>
20543
20544         * trans.c, utils.c: Update for DECL_SOURCE_LOCATION rename and
20545         change to const.
20546
20547 2003-09-04  Michael Matz  <matz@suse.de>
20548
20549         * misc.c: Include "target.h".
20550         * Make-lang.in (misc.o): Add dependency on target.h.
20551
20552 2003-09-03  DJ Delorie  <dj@redhat.com>
20553
20554         * misc.c (default_pass_by_ref): Convert to calls.return_in_memory
20555         hook.
20556
20557 2003-08-30  Zack Weinberg  <zack@codesourcery.com>
20558
20559         * Makefile.in: Update substitutions to match changes to
20560         configure.  Use include directives instead of @-insertions
20561         to read in host and target fragments.  Add a rule to
20562         regenerate ada/Makefile.
20563
20564 2003-07-18  Neil Booth  <neil@daikokuya.co.uk>
20565
20566         * lang-options.h: Remove.
20567         * lang.opt: Add help text.
20568
20569 2003-07-07  Nathan Sidwell  <nathan@codesourcery.com>
20570
20571         * trans.c (build_unit_elab, set_lineno): Adjust emit_line_note
20572         calls.
20573
20574 2003-07-06  Neil Booth  <neil@daikokuya.co.uk>
20575
20576         * misc.c (gnat_handle_option): Don't handle filenames.
20577
20578 2003-07-04  H.J. Lu <hongjiu.lu@intel.com>
20579
20580         * Make-lang.in: Replace PWD with PWD_COMMAND.
20581         * Makefile.adalib: Likewise.
20582         * Makefile.in: Likewise.
20583
20584 2003-07-04  Matt Kraai  <kraai@alumni.cmu.edu>
20585
20586         * misc.c (gnat_argv): Revert last change.
20587         (gnat_handle_option, gnat_init_options): Copy arguments.
20588
20589 2003-07-03  Neil Booth  <neil@daikokuya.co.uk>
20590
20591         * misc.c (gnat_argv): Make const.
20592
20593 2003-07-02  Neil Booth  <neil@daikokuya.co.uk>
20594
20595         * misc.c (save_argc, save_argv): Keep non-static!
20596
20597 2003-07-02  Neil Booth  <neil@daikokuya.co.uk>
20598
20599         * misc.c (save_argc, save_argv): Make static.
20600         (gnat_init_options): New prototype.
20601         (gnat_init_options): Update.
20602
20603 2003-07-01  Matt Kraai  <kraai@alumni.cmu.edu>
20604
20605         * gnat_ug.texi: Remove unlikely characters from @vars.
20606         * gnat_ug_vms.texi: Regenerate.
20607
20608 2003-06-27  Nathan Sidwell  <nathan@codesourcery.com>
20609
20610         * misc.c (record_code_position): Adjust emit_note call.
20611
20612 2003-06-26  Neil Booth  <neil@daikokuya.co.uk>
20613
20614         * misc.c (gnat_handle_option): Don't check for missing arguments.
20615
20616 2003-06-20  Nathan Sidwell  <nathan@codesourcery.com>
20617
20618         * utils.c (end_subprog_body): Adjust expand_function_end call.
20619
20620 2003-06-16  Matt Kraai  <kraai@alumni.cmu.edu>
20621
20622         * bindgen.adb (Gen_Main_Ada, Gen_Main_C): Do not test
20623         Bind_Main_Program.
20624
20625 2003-06-15  Neil Booth  <neil@daikokuya.co.uk>
20626
20627         * lang.opt: Declare Ada.
20628         * misc.c (gnat_init_options): Update.
20629
20630 2003-06-14  Nathan Sidwell  <nathan@codesourcery.com>
20631
20632         * utils.c (begin_subprog_body): Adjust init_function_start call.
20633
20634 2003-06-14  Neil Booth  <neil@daikokuya.co.uk>
20635
20636         * Make-lang.in: Update to use options.c and options.h.
20637         * misc.c: Include options.h not aoptions.h.
20638         (gnat_handle_option): Abort on unrecognized switch.
20639         (gnat_init_options): Request Ada switches.
20640
20641 2003-06-14  Neil Booth  <neil@daikokuya.co.uk>
20642
20643         * lang.opt: Add -Wall.
20644         * misc.c (gnat_handle_option): Handle it.
20645
20646 2003-06-12  Neil Booth  <neil@daikokuya.co.uk>
20647
20648         * misc.c (gnat_handle_option): Fix warnings.
20649
20650 2003-06-11  Matt Kraai  <kraai@alumni.cmu.edu>
20651
20652         * Make-lang.in (gnatbind): Remove $(LIBIBERTY).
20653
20654 2003-06-11  Neil Booth  <neil@daikokuya.co.uk>
20655
20656         * Make-lang.in: Update to handle command-line options.
20657         * lang.opt: New file.
20658         * misc.c: Include aoptions.h.
20659         (cl_options_count, cl_options): Remove.
20660         (gnat_handle_option): New.
20661         (gnat_decode_option): Remove.
20662         (LANG_HOOKS_DECODE_OPTION): Remove.
20663         (LANG_HOOKS_HANDLE_OPTION): Override.
20664
20665 2003-06-10  Nathanael Nerode  <neroden@gcc.gnu.org>
20666
20667         * init.c, misc.c, trans.c, utils.c: Remove dead code.
20668
20669 2003-06-09  Nathanael Nerode  <neroden@gcc.gnu.org>
20670
20671         * Makefile.in: Replace "host_canonical" with "host" for autoconf
20672         substitution.
20673
20674 2003-06-08  Neil Booth  <neil@daikokuya.co.uk>
20675
20676         * Make-lang.in: Update.
20677         * misc.c: Include opts.h. Define cl_options_count and cl_options.
20678
20679 2003-06-07  Neil Booth  <neil@daikokuya.co.uk>
20680
20681         * misc.c (gnat_init_options): Update.
20682
20683 2003-06-05  Matt Kraai  <kraai@alumni.cmu.edu>
20684
20685         * Make-lang.in (ada/b_gnatb.o-warn): Remove.
20686         * bindgen.adb (Gen_Main_C): Mark ensure_reference with
20687         __attribute__ ((__unused__)).
20688
20689 2003-06-05  Jan Hubicka  <jh@suse.cz>
20690
20691         * Make-lang.in:  Add support for stageprofile and stagefeedback
20692
20693 2003-06-05  Matt Kraai  <kraai@alumni.cmu.edu>
20694
20695         * bindgen.adb (Gen_Adafinal_C, Gen_Adainit_C, Gen_Elab_Defs_C)
20696         (Gen_Main_C, Gen_Output_File_C): Generate ISO C.
20697
20698 2003-06-04  Matt Kraai  <kraai@alumni.cmu.edu>
20699
20700         * gnat_ug.texi (The GNAT Run-Time Library Builder gnatlbr):
20701         Remove non-VMS directive.
20702         (Switches for gnatlbr, Optimization Levels): Remove non-VMS
20703         alternatives.
20704         (Examples of gnatls Usage): Remove VMS alternative.
20705
20706 2003-06-04  Olivier Hainque  <hainque@act-europe.fr>
20707
20708         PR ada/9953:
20709         * 5hsystem.ads: Remove pragma Linker_Option for pthreads library,
20710         and turn ZCX_By_Default back to False since the underlying support
20711         is not quite there yet.
20712
20713 2003-06-01  Andreas Jaeger  <aj@suse.de>
20714
20715         * utils.c (finish_record_type): Remove usages of ROUND_TYPE_SIZE
20716         and ROUND_TYPE_SIZE_UNIT.
20717
20718 2003-05-22   Geert Bosch <bosch@gnat.com>
20719
20720         * gnat_rm.texi : Remove reference to Ada Core Technologies.
20721
20722 2003-05-03  Nathan Sidwell  <nathan@codesourcery.com>
20723
20724         * trans.c (tree_transform): Use location_t and input_location
20725         directly.
20726         (build_unit_elab): Likewise.
20727         * utils.c (create_label_decl): Likewise.
20728
20729 2003-05-01  Nathan Sidwell  <nathan@codesourcery.com>
20730
20731         * trans.c (tree_transform, build_unit_elab,
20732         set_lineno): Rename lineno to input_line.
20733         * utils.c (pushdecl, create_label_decl, begin_subprog_body,
20734         end_subprog_body): Likewise.
20735         * utils2.c (build_call_raise): Likewise.
20736
20737 2003-05-01  Laurent Guerby <guerby@acm.org>
20738
20739         PR ada/10546
20740         * 5iosinte.ads: Increase pthread_cond_t size to match recent
20741         LinuxThread and NPTL version, merge from ACT.
20742
20743 2003-04-28  Zack Weinberg  <zack@codesourcery.com>
20744
20745         * utils.c (convert): No need to clear TREE_CST_RTL.
20746
20747 2003-04-23   Geert Bosch <bosch@gnat.com>
20748
20749         * 1aexcept.adb, 1aexcept.ads, 1ic.ads, 1ssecsta.adb,
20750         1ssecsta.ads, 31soccon.ads, 31soliop.ads, 3asoccon.ads,
20751         3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3ssoccon.ads,
20752         3ssoliop.ads, 3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads,
20753         3wsoliop.ads, 41intnam.ads, 42intnam.ads, 4aintnam.ads,
20754         4cintnam.ads, 4dintnam.ads, 4gintnam.ads, 4hexcpol.adb,
20755         4hintnam.ads, 4lintnam.ads, 4mintnam.ads, 4nintnam.ads,
20756         4ointnam.ads, 4onumaux.ads, 4pintnam.ads, 4rintnam.ads,
20757         4sintnam.ads, 4uintnam.ads, 4vcaldel.adb, 4vcalend.adb,
20758         4vcalend.ads, 4vintnam.ads, 4wcalend.adb, 4wexcpol.adb,
20759         4wintnam.ads, 4zintnam.ads, 4znumaux.ads, 4zsytaco.adb,
20760         4zsytaco.ads, 51osinte.adb, 51osinte.ads, 52osinte.adb,
20761         52osinte.ads, 52system.ads, 53osinte.ads, 54osinte.ads,
20762         5amastop.adb, 5aosinte.adb, 5aosinte.ads, 5asystem.ads,
20763         5ataprop.adb, 5atasinf.ads, 5ataspri.ads, 5atpopsp.adb,
20764         5avxwork.ads, 5bosinte.adb, 5bosinte.ads, 5bsystem.ads,
20765         5cosinte.ads, 5dosinte.ads, 5esystem.ads, 5etpopse.adb,
20766         5fintman.adb, 5fosinte.ads, 5fsystem.ads, 5ftaprop.adb,
20767         5ftasinf.ads, 5ginterr.adb, 5gintman.adb, 5gmastop.adb,
20768         5gosinte.ads, 5gproinf.adb, 5gproinf.ads, 5gsystem.ads,
20769         5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads, 5gtpgetc.adb,
20770         5hosinte.adb, 5hosinte.ads, 5hparame.ads, 5hsystem.ads,
20771         5htaprop.adb, 5htaspri.ads, 5htraceb.adb, 5iosinte.adb,
20772         5iosinte.ads, 5itaprop.adb, 5itaspri.ads, 5ksystem.ads,
20773         5kvxwork.ads, 5lintman.adb, 5lml-tgt.adb, 5losinte.ads,
20774         5lsystem.ads, 5mosinte.ads, 5mvxwork.ads, 5ninmaop.adb,
20775         5nintman.adb, 5nosinte.ads, 5ntaprop.adb, 5ntaspri.ads,
20776         5ointerr.adb, 5omastop.adb, 5oosinte.adb, 5oosinte.ads,
20777         5oosprim.adb, 5oparame.adb, 5osystem.ads, 5otaprop.adb,
20778         5otaspri.ads, 5posinte.ads, 5posprim.adb, 5pvxwork.ads,
20779         5qosinte.adb, 5qosinte.ads, 5qstache.adb, 5qtaprop.adb,
20780         5qtaspri.ads, 5rosinte.adb, 5rosinte.ads, 5rparame.adb,
20781         5sintman.adb, 5sosinte.adb, 5sosinte.ads, 5sparame.adb,
20782         5ssystem.ads, 5staprop.adb, 5stasinf.adb, 5stasinf.ads,
20783         5staspri.ads, 5stpopse.adb, 5svxwork.ads, 5tosinte.ads,
20784         5uintman.adb, 5uosinte.ads, 5vasthan.adb, 5vinmaop.adb,
20785         5vinterr.adb, 5vintman.adb, 5vintman.ads, 5vmastop.adb,
20786         5vosinte.adb, 5vosinte.ads, 5vosprim.adb, 5vosprim.ads,
20787         5vparame.ads, 5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads,
20788         5vtpopde.adb, 5vtpopde.ads, 5vvaflop.adb, 5wgloloc.adb,
20789         5wintman.adb, 5wmemory.adb, 5wosinte.ads, 5wosprim.adb,
20790         5wsystem.ads, 5wtaprop.adb, 5wtaspri.ads, 5ysystem.ads,
20791         5zinterr.adb, 5zintman.adb, 5zosinte.adb, 5zosinte.ads,
20792         5zosprim.adb, 5zsystem.ads, 5ztaprop.adb, 6vcpp.adb,
20793         6vcstrea.adb, 6vinterf.ads, 7sinmaop.adb, 7sintman.adb,
20794         7sosinte.adb, 7sosprim.adb, 7staprop.adb, 7staspri.ads,
20795         7stpopsp.adb, 7straceb.adb, 86numaux.adb, 86numaux.ads,
20796         9drpc.adb, a-astaco.adb, a-astaco.ads, a-caldel.adb,
20797         a-caldel.ads, a-calend.adb, a-calend.ads, a-chahan.adb,
20798         a-chahan.ads, a-charac.ads, a-chlat1.ads, a-chlat9.ads,
20799         a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
20800         a-comlin.adb, a-comlin.ads, a-cwila1.ads, a-cwila9.ads,
20801         a-decima.adb, a-decima.ads, a-diocst.adb, a-diocst.ads,
20802         a-direio.adb, a-direio.ads, a-dynpri.adb, a-dynpri.ads,
20803         a-einuoc.adb, a-einuoc.ads, a-except.adb, a-except.ads,
20804         a-excpol.adb, a-exctra.adb, a-exctra.ads, a-filico.adb,
20805         a-filico.ads, a-finali.adb, a-finali.ads, a-flteio.ads,
20806         a-fwteio.ads, a-inteio.ads, a-interr.adb, a-interr.ads,
20807         a-intnam.ads, a-intsig.adb, a-intsig.ads, a-ioexce.ads,
20808         a-iwteio.ads, a-lfteio.ads, a-lfwtio.ads, a-liteio.ads,
20809         a-liwtio.ads, a-llftio.ads, a-llfwti.ads, a-llitio.ads,
20810         a-lliwti.ads, a-ncelfu.ads, a-ngcefu.adb, a-ngcefu.ads,
20811         a-ngcoty.adb, a-ngcoty.ads, a-ngelfu.adb, a-ngelfu.ads,
20812         a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads,
20813         a-nllcty.ads, a-nllefu.ads, a-nscefu.ads, a-nscoty.ads,
20814         a-nselfu.ads, a-nucoty.ads, a-nudira.adb, a-nudira.ads,
20815         a-nuelfu.ads, a-nuflra.adb, a-nuflra.ads, a-numaux.ads,
20816         a-numeri.ads, a-reatim.adb, a-reatim.ads, a-retide.adb,
20817         a-retide.ads, a-sequio.adb, a-sequio.ads, a-sfteio.ads,
20818         a-sfwtio.ads, a-siocst.adb, a-siocst.ads, a-siteio.ads,
20819         a-siwtio.ads, a-ssicst.adb, a-ssicst.ads, a-ssitio.ads,
20820         a-ssiwti.ads, a-stmaco.ads, a-storio.adb, a-storio.ads,
20821         a-strbou.adb, a-strbou.ads, a-stream.ads, a-strfix.adb,
20822         a-strfix.ads, a-string.ads, a-strmap.adb, a-strmap.ads,
20823         a-strsea.adb, a-strsea.ads, a-strunb.adb, a-strunb.ads,
20824         a-ststio.adb, a-ststio.ads, a-stunau.adb, a-stunau.ads,
20825         a-stwibo.adb, a-stwibo.ads, a-stwifi.adb, a-stwifi.ads,
20826         a-stwima.adb, a-stwima.ads, a-stwise.adb, a-stwise.ads,
20827         a-stwiun.adb, a-stwiun.ads, a-suteio.adb, a-suteio.ads,
20828         a-swmwco.ads, a-swuwti.adb, a-swuwti.ads, a-sytaco.adb,
20829         a-sytaco.ads, a-tags.adb, a-tags.ads, a-tasatt.adb,
20830         a-tasatt.ads, a-taside.adb, a-taside.ads, a-teioed.adb,
20831         a-teioed.ads, a-textio.adb, a-textio.ads, a-ticoau.adb,
20832         a-ticoau.ads, a-ticoio.adb, a-ticoio.ads, a-tideau.adb,
20833         a-tideau.ads, a-tideio.adb, a-tideio.ads, a-tienau.adb,
20834         a-tienau.ads, a-tienio.adb, a-tienio.ads, a-tifiio.adb,
20835         a-tifiio.ads, a-tiflau.adb, a-tiflau.ads, a-tiflio.adb,
20836         a-tiflio.ads, a-tigeau.adb, a-tigeau.ads, a-tiinau.adb,
20837         a-tiinau.ads, a-tiinio.adb, a-tiinio.ads, a-timoau.adb,
20838         a-timoau.ads, a-timoio.adb, a-timoio.ads, a-tiocst.adb,
20839         a-tiocst.ads, a-titest.adb, a-titest.ads, a-unccon.ads,
20840         a-uncdea.ads, a-witeio.adb, a-witeio.ads, a-wtcoau.adb,
20841         a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads, a-wtcstr.adb,
20842         a-wtcstr.ads, a-wtdeau.adb, a-wtdeau.ads, a-wtdeio.adb,
20843         a-wtdeio.ads, a-wtedit.adb, a-wtedit.ads, a-wtenau.adb,
20844         a-wtenau.ads, a-wtenio.adb, a-wtenio.ads, a-wtfiio.adb,
20845         a-wtfiio.ads, a-wtflau.adb, a-wtflau.ads, a-wtflio.adb,
20846         a-wtflio.ads, a-wtgeau.adb, a-wtgeau.ads, a-wtinau.adb,
20847         a-wtinau.ads, a-wtinio.adb, a-wtinio.ads, a-wtmoau.adb,
20848         a-wtmoau.ads, a-wtmoio.adb, a-wtmoio.ads, a-wttest.adb,
20849         a-wttest.ads, ada-tree.h, ada.ads, ada.h,
20850         adadecode.c, adadecode.h, ali-util.adb, ali-util.ads,
20851         ali.adb, ali.ads, alloc.ads, argv.c,
20852         atree.adb, atree.ads, atree.h, aux-io.c,
20853         back_end.adb, back_end.ads, bcheck.adb, bcheck.ads,
20854         binde.adb, binde.ads, binderr.adb, binderr.ads,
20855         bindgen.adb, bindgen.ads, bindusg.adb, bindusg.ads,
20856         butil.adb, butil.ads, cal.c, calendar.ads,
20857         casing.adb, casing.ads, ceinfo.adb, checks.adb,
20858         checks.ads, cio.c, comperr.adb, comperr.ads,
20859         config-lang.in, csets.adb, csets.ads, csinfo.adb,
20860         cstand.adb, cstand.ads, cuintp.c, debug.adb,
20861         debug.ads, debug_a.adb, debug_a.ads, dec-io.adb,
20862         dec-io.ads, dec.ads, deftarg.c, directio.ads,
20863         einfo.adb, einfo.ads, elists.adb, elists.ads,
20864         elists.h, errno.c, errout.adb, errout.ads,
20865         eval_fat.adb, eval_fat.ads, exit.c, exp_aggr.adb,
20866         exp_aggr.ads, exp_attr.adb, exp_attr.ads, exp_ch10.ads,
20867         exp_ch11.adb, exp_ch11.ads, exp_ch12.adb, exp_ch12.ads,
20868         exp_ch13.adb, exp_ch13.ads, exp_ch2.adb, exp_ch2.ads,
20869         exp_ch3.adb, exp_ch3.ads, exp_ch4.adb, exp_ch4.ads,
20870         exp_ch5.adb, exp_ch5.ads, exp_ch6.adb, exp_ch6.ads,
20871         exp_ch7.adb, exp_ch7.ads, exp_ch8.adb, exp_ch8.ads,
20872         exp_ch9.adb, exp_ch9.ads, exp_code.adb, exp_code.ads,
20873         exp_dbug.adb, exp_dbug.ads, exp_disp.adb, exp_disp.ads,
20874         exp_dist.adb, exp_dist.ads, exp_fixd.adb, exp_fixd.ads,
20875         exp_imgv.adb, exp_imgv.ads, exp_intr.adb, exp_intr.ads,
20876         exp_pakd.adb, exp_pakd.ads, exp_prag.adb, exp_prag.ads,
20877         exp_smem.adb, exp_smem.ads, exp_strm.adb, exp_strm.ads,
20878         exp_tss.adb, exp_tss.ads, exp_util.adb, exp_util.ads,
20879         exp_vfpt.adb, exp_vfpt.ads, expander.adb, expander.ads,
20880         fmap.adb, fmap.ads, fname-sf.adb, fname-sf.ads,
20881         fname-uf.adb, fname-uf.ads, fname.adb, fname.ads,
20882         freeze.adb, freeze.ads, frontend.adb, frontend.ads,
20883         g-awk.adb, g-awk.ads, g-busora.adb, g-busora.ads,
20884         g-busorg.adb, g-busorg.ads, g-calend.adb, g-calend.ads,
20885         g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads,
20886         g-cgi.adb, g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads,
20887         g-cgideb.adb, g-cgideb.ads, g-comlin.adb, g-comlin.ads,
20888         g-crc32.adb, g-crc32.ads, g-curexc.ads, g-debpoo.adb,
20889         g-debpoo.ads, g-debuti.adb, g-debuti.ads, g-diopit.adb,
20890         g-diopit.ads, g-dirope.adb, g-dirope.ads, g-dyntab.adb,
20891         g-dyntab.ads, g-enblsp.adb, g-except.ads, g-exctra.adb,
20892         g-exctra.ads, g-expect.adb, g-expect.ads, g-flocon.ads,
20893         g-hesora.adb, g-hesora.ads, g-hesorg.adb, g-hesorg.ads,
20894         g-htable.adb, g-htable.ads, g-io.adb, g-io.ads,
20895         g-io_aux.adb, g-io_aux.ads, g-locfil.ads, g-md5.adb,
20896         g-md5.ads, g-moreex.adb, g-moreex.ads, g-os_lib.adb,
20897         g-os_lib.ads, g-regexp.adb, g-regexp.ads, g-regist.ads,
20898         g-regpat.adb, g-regpat.ads, g-soccon.ads, g-socket.adb,
20899         g-socket.ads, g-socthi.adb, g-socthi.ads, g-soliop.ads,
20900         g-souinf.ads, g-speche.adb, g-speche.ads, g-spipat.adb,
20901         g-spipat.ads, g-spitbo.adb, g-spitbo.ads, g-sptabo.ads,
20902         g-sptain.ads, g-sptavs.ads, g-table.adb, g-table.ads,
20903         g-tasloc.adb, g-tasloc.ads, g-thread.adb, g-thread.ads,
20904         g-traceb.adb, g-traceb.ads, g-trasym.adb, g-trasym.ads,
20905         get_targ.adb, get_targ.ads, gnat-style.texi, gnat.ads,
20906         gnat1drv.adb, gnat1drv.ads, gnatbind.adb, gnatbind.ads,
20907         gnatbl.c, gnatchop.adb, gnatcmd.adb, gnatcmd.ads,
20908         gnatdll.adb, gnatfind.adb, gnatkr.adb, gnatkr.ads,
20909         gnatlbr.adb, gnatlink.adb, gnatlink.ads, gnatls.adb,
20910         gnatls.ads, gnatmake.adb, gnatmake.ads, gnatmem.adb,
20911         gnatname.adb, gnatname.ads, gnatprep.adb, gnatprep.ads,
20912         gnatpsta.adb, gnatvsn.adb, gnatvsn.ads, gnatxref.adb,
20913         hlo.adb, hlo.ads, hostparm.ads, i-c.adb,
20914         i-c.ads, i-cexten.ads, i-cobol.adb, i-cobol.ads,
20915         i-cpoint.adb, i-cpoint.ads, i-cpp.adb, i-cpp.ads,
20916         i-cstrea.adb, i-cstrea.ads, i-cstrin.adb, i-cstrin.ads,
20917         i-fortra.adb, i-fortra.ads, i-os2err.ads, i-os2lib.adb,
20918         i-os2lib.ads, i-os2syn.ads, i-os2thr.ads, i-pacdec.adb,
20919         i-pacdec.ads, i-vxwork.ads, impunit.adb, impunit.ads,
20920         inline.adb, inline.ads, interfac.ads, ioexcept.ads,
20921         itypes.adb, itypes.ads, krunch.adb, krunch.ads,
20922         layout.adb, layout.ads, lib-list.adb, lib-load.adb,
20923         lib-load.ads, lib-sort.adb, lib-util.adb, lib-util.ads,
20924         lib-writ.adb, lib-writ.ads, lib-xref.adb, lib-xref.ads,
20925         lib.adb, lib.ads, live.adb, live.ads,
20926         machcode.ads, make.adb, make.ads, makeusg.adb,
20927         makeusg.ads, math_lib.adb, mdll-fil.adb, mdll-fil.ads,
20928         mdll-utl.adb, mdll-utl.ads, mdll.adb, mdll.ads,
20929         memroot.adb, memroot.ads, memtrack.adb, mlib-fil.adb,
20930         mlib-fil.ads, mlib-prj.adb, mlib-prj.ads, mlib-tgt.adb,
20931         mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads, mlib.adb,
20932         mlib.ads, namet.adb, namet.ads, nlists.adb,
20933         nlists.ads, opt.adb, opt.ads, osint-b.adb,
20934         osint-b.ads, osint-c.adb, osint-c.ads, osint-l.adb,
20935         osint-l.ads, osint-m.adb, osint-m.ads, osint.adb,
20936         osint.ads, output.adb, output.ads, par-ch10.adb,
20937         par-ch11.adb, par-ch12.adb, par-ch13.adb, par-ch2.adb,
20938         par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb,
20939         par-ch7.adb, par-ch8.adb, par-ch9.adb, par-endh.adb,
20940         par-labl.adb, par-load.adb, par-prag.adb, par-sync.adb,
20941         par-tchk.adb, par-util.adb, par.adb, par.ads,
20942         prj-attr.adb, prj-attr.ads, prj-com.adb, prj-com.ads,
20943         prj-dect.adb, prj-dect.ads, prj-env.adb, prj-env.ads,
20944         prj-ext.adb, prj-ext.ads, prj-makr.adb, prj-makr.ads,
20945         prj-nmsc.adb, prj-nmsc.ads, prj-pars.adb, prj-pars.ads,
20946         prj-part.adb, prj-part.ads, prj-pp.adb, prj-pp.ads,
20947         prj-proc.adb, prj-proc.ads, prj-strt.adb, prj-strt.ads,
20948         prj-tree.adb, prj-tree.ads, prj-util.adb, prj-util.ads,
20949         prj.adb, prj.ads, repinfo.adb, repinfo.ads,
20950         restrict.adb, restrict.ads, rident.ads, rtsfind.adb,
20951         rtsfind.ads, s-addima.adb, s-addima.ads, s-arit64.adb,
20952         s-arit64.ads, s-assert.adb, s-assert.ads, s-asthan.adb,
20953         s-asthan.ads, s-atacco.adb, s-atacco.ads, s-auxdec.adb,
20954         s-auxdec.ads, s-bitops.adb, s-bitops.ads, s-chepoo.ads,
20955         s-crc32.adb, s-crc32.ads, s-direio.adb, s-direio.ads,
20956         s-errrep.adb, s-errrep.ads, s-except.ads, s-exctab.adb,
20957         s-exctab.ads, s-exnflt.ads, s-exngen.adb, s-exngen.ads,
20958         s-exnint.ads, s-exnlfl.ads, s-exnlin.ads, s-exnllf.ads,
20959         s-exnlli.ads, s-exnsfl.ads, s-exnsin.ads, s-exnssi.ads,
20960         s-expflt.ads, s-expgen.adb, s-expgen.ads, s-expint.ads,
20961         s-explfl.ads, s-explin.ads, s-expllf.ads, s-explli.ads,
20962         s-expllu.adb, s-expllu.ads, s-expmod.adb, s-expmod.ads,
20963         s-expsfl.ads, s-expsin.ads, s-expssi.ads, s-expuns.adb,
20964         s-expuns.ads, s-fatflt.ads, s-fatgen.adb, s-fatgen.ads,
20965         s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads, s-ficobl.ads,
20966         s-fileio.adb, s-fileio.ads, s-finimp.adb, s-finimp.ads,
20967         s-finroo.adb, s-finroo.ads, s-fore.adb, s-fore.ads,
20968         s-gloloc.adb, s-gloloc.ads, s-imgbiu.adb, s-imgbiu.ads,
20969         s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads,
20970         s-imgdec.adb, s-imgdec.ads, s-imgenu.adb, s-imgenu.ads,
20971         s-imgint.adb, s-imgint.ads, s-imgllb.adb, s-imgllb.ads,
20972         s-imglld.adb, s-imglld.ads, s-imglli.adb, s-imglli.ads,
20973         s-imgllu.adb, s-imgllu.ads, s-imgllw.adb, s-imgllw.ads,
20974         s-imgrea.adb, s-imgrea.ads, s-imguns.adb, s-imguns.ads,
20975         s-imgwch.adb, s-imgwch.ads, s-imgwiu.adb, s-imgwiu.ads,
20976         s-inmaop.ads, s-interr.adb, s-interr.ads, s-intman.ads,
20977         s-io.adb, s-io.ads, s-maccod.ads, s-mantis.adb,
20978         s-mantis.ads, s-mastop.adb, s-mastop.ads, s-memory.adb,
20979         s-memory.ads, s-osprim.ads, s-pack03.adb, s-pack03.ads,
20980         s-pack05.adb, s-pack05.ads, s-pack06.adb, s-pack06.ads,
20981         s-pack07.adb, s-pack07.ads, s-pack09.adb, s-pack09.ads,
20982         s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads,
20983         s-pack12.adb, s-pack12.ads, s-pack13.adb, s-pack13.ads,
20984         s-pack14.adb, s-pack14.ads, s-pack15.adb, s-pack15.ads,
20985         s-pack17.adb, s-pack17.ads, s-pack18.adb, s-pack18.ads,
20986         s-pack19.adb, s-pack19.ads, s-pack20.adb, s-pack20.ads,
20987         s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads,
20988         s-pack23.adb, s-pack23.ads, s-pack24.adb, s-pack24.ads,
20989         s-pack25.adb, s-pack25.ads, s-pack26.adb, s-pack26.ads,
20990         s-pack27.adb, s-pack27.ads, s-pack28.adb, s-pack28.ads,
20991         s-pack29.adb, s-pack29.ads, s-pack30.adb, s-pack30.ads,
20992         s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads,
20993         s-pack34.adb, s-pack34.ads, s-pack35.adb, s-pack35.ads,
20994         s-pack36.adb, s-pack36.ads, s-pack37.adb, s-pack37.ads,
20995         s-pack38.adb, s-pack38.ads, s-pack39.adb, s-pack39.ads,
20996         s-pack40.adb, s-pack40.ads, s-pack41.adb, s-pack41.ads,
20997         s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads,
20998         s-pack44.adb, s-pack44.ads, s-pack45.adb, s-pack45.ads,
20999         s-pack46.adb, s-pack46.ads, s-pack47.adb, s-pack47.ads,
21000         s-pack48.adb, s-pack48.ads, s-pack49.adb, s-pack49.ads,
21001         s-pack50.adb, s-pack50.ads, s-pack51.adb, s-pack51.ads,
21002         s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads,
21003         s-pack54.adb, s-pack54.ads, s-pack55.adb, s-pack55.ads,
21004         s-pack56.adb, s-pack56.ads, s-pack57.adb, s-pack57.ads,
21005         s-pack58.adb, s-pack58.ads, s-pack59.adb, s-pack59.ads,
21006         s-pack60.adb, s-pack60.ads, s-pack61.adb, s-pack61.ads,
21007         s-pack62.adb, s-pack62.ads, s-pack63.adb, s-pack63.ads,
21008         s-parame.adb, s-parame.ads, s-parint.adb, s-parint.ads,
21009         s-pooglo.adb, s-pooglo.ads, s-pooloc.adb, s-pooloc.ads,
21010         s-poosiz.adb, s-poosiz.ads, s-powtab.ads, s-proinf.adb,
21011         s-proinf.ads, s-rpc.adb, s-rpc.ads, s-scaval.ads,
21012         s-secsta.adb, s-secsta.ads, s-sequio.adb, s-sequio.ads,
21013         s-shasto.adb, s-shasto.ads, s-soflin.adb, s-soflin.ads,
21014         s-sopco3.adb, s-sopco3.ads, s-sopco4.adb, s-sopco4.ads,
21015         s-sopco5.adb, s-sopco5.ads, s-stache.adb, s-stache.ads,
21016         s-stalib.adb, s-stalib.ads, s-stoele.adb, s-stoele.ads,
21017         s-stopoo.ads, s-stratt.adb, s-stratt.ads, s-strops.adb,
21018         s-strops.ads, s-taasde.adb, s-taasde.ads, s-tadeca.adb,
21019         s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-taenca.adb,
21020         s-taenca.ads, s-taprob.adb, s-taprob.ads, s-taprop.ads,
21021         s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads,
21022         s-tasinf.adb, s-tasinf.ads, s-tasini.adb, s-tasini.ads,
21023         s-taskin.adb, s-taskin.ads, s-tasque.adb, s-tasque.ads,
21024         s-tasren.adb, s-tasren.ads, s-tasres.ads, s-tassta.adb,
21025         s-tassta.ads, s-tasuti.adb, s-tasuti.ads, s-tataat.adb,
21026         s-tataat.ads, s-tpinop.adb, s-tpinop.ads, s-tpoben.adb,
21027         s-tpoben.ads, s-tpobop.adb, s-tpobop.ads, s-tposen.adb,
21028         s-tposen.ads, s-traceb.adb, s-traceb.ads, s-traces.adb,
21029         s-traces.ads, s-tratas.adb, s-tratas.ads, s-unstyp.ads,
21030         s-vaflop.adb, s-vaflop.ads, s-valboo.adb, s-valboo.ads,
21031         s-valcha.adb, s-valcha.ads, s-valdec.adb, s-valdec.ads,
21032         s-valenu.adb, s-valenu.ads, s-valint.adb, s-valint.ads,
21033         s-vallld.adb, s-vallld.ads, s-vallli.adb, s-vallli.ads,
21034         s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads,
21035         s-valuns.adb, s-valuns.ads, s-valuti.adb, s-valuti.ads,
21036         s-valwch.adb, s-valwch.ads, s-vercon.adb, s-vercon.ads,
21037         s-vmexta.adb, s-vmexta.ads, s-wchcnv.adb, s-wchcnv.ads,
21038         s-wchcon.ads, s-wchjis.adb, s-wchjis.ads, s-wchstw.adb,
21039         s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, s-widboo.adb,
21040         s-widboo.ads, s-widcha.adb, s-widcha.ads, s-widenu.adb,
21041         s-widenu.ads, s-widlli.adb, s-widlli.ads, s-widllu.adb,
21042         s-widllu.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb,
21043         s-wwdcha.ads, s-wwdenu.adb, s-wwdenu.ads, s-wwdwch.adb,
21044         s-wwdwch.ads, scans.adb, scans.ads, scn-nlit.adb,
21045         scn-slit.adb, scn.adb, scn.ads, sdefault.ads,
21046         sem.adb, sem.ads, sem_aggr.adb, sem_aggr.ads,
21047         sem_attr.adb, sem_attr.ads, sem_case.adb, sem_case.ads,
21048         sem_cat.adb, sem_cat.ads, sem_ch10.adb, sem_ch10.ads,
21049         sem_ch11.adb, sem_ch11.ads, sem_ch12.adb, sem_ch12.ads,
21050         sem_ch13.adb, sem_ch13.ads, sem_ch2.adb, sem_ch2.ads,
21051         sem_ch3.adb, sem_ch3.ads, sem_ch4.adb, sem_ch4.ads,
21052         sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
21053         sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads,
21054         sem_ch9.adb, sem_ch9.ads, sem_disp.adb, sem_disp.ads,
21055         sem_dist.adb, sem_dist.ads, sem_elab.adb, sem_elab.ads,
21056         sem_elim.adb, sem_elim.ads, sem_eval.adb, sem_eval.ads,
21057         sem_intr.adb, sem_intr.ads, sem_maps.adb, sem_maps.ads,
21058         sem_mech.adb, sem_mech.ads, sem_prag.adb, sem_prag.ads,
21059         sem_res.adb, sem_res.ads, sem_smem.adb, sem_smem.ads,
21060         sem_type.adb, sem_type.ads, sem_util.adb, sem_util.ads,
21061         sem_vfpt.adb, sem_vfpt.ads, sem_warn.adb, sem_warn.ads,
21062         sequenio.ads, sfn_scan.adb, sfn_scan.ads, sinfo-cn.adb,
21063         sinfo-cn.ads, sinfo.adb, sinfo.ads, sinput-d.adb,
21064         sinput-d.ads, sinput-l.adb, sinput-l.ads, sinput-p.adb,
21065         sinput-p.ads, sinput.adb, sinput.ads, snames.adb,
21066         snames.ads, sprint.adb, sprint.ads, stand.adb,
21067         stand.ads, stringt.adb, stringt.ads, style.adb,
21068         style.ads, stylesw.adb, stylesw.ads, switch-b.adb,
21069         switch-b.ads, switch-c.adb, switch-c.ads, switch-m.adb,
21070         switch-m.ads, switch.adb, switch.ads, system.ads,
21071         table.adb, table.ads, targparm.adb, targparm.ads,
21072         tbuild.adb, tbuild.ads, text_io.ads, trans.c,
21073         tree_gen.adb, tree_gen.ads, tree_in.adb, tree_in.ads,
21074         tree_io.adb, tree_io.ads, treepr.adb, treepr.ads,
21075         ttypef.ads, ttypes.ads, types.adb, types.ads,
21076         uintp.adb, uintp.ads, uname.adb, uname.ads,
21077         unchconv.ads, unchdeal.ads, urealp.adb, urealp.ads,
21078         usage.adb, usage.ads, validsw.adb, validsw.ads,
21079         widechar.adb, widechar.ads, xeinfo.adb, xnmake.adb,
21080         xr_tabls.adb, xr_tabls.ads, xref_lib.adb, xref_lib.ads,
21081         xsinfo.adb, xsnames.adb, xtreeprs.adb : Merge header,
21082         formatting and other trivial changes from ACT.
21083
21084 2003-04-12  Zack Weinberg  <zack@codesourcery.com>
21085
21086         * gigi.h, utils2.c (build_constructor):
21087         Rename gnat_build_constructor. Use build_constructor.
21088         * decl.c (gnat_to_gnu_entity)
21089         * trans.c (tree_transform, pos_to_constructor, extract_values)
21090         * ada/utils.c (build_template, convert_to_fat_pointer, convert)
21091         (unchecked_convert)
21092         * ada/utils2.c (build_binary_op, build_call_raise, build_allocator)
21093         (fill_vms_descriptor):
21094         Update to match.
21095
21096 2003-04-06  Zack Weinberg  <zack@codesourcery.com>
21097
21098         * ada-tree.def: Make fourth element for GNAT_LOOP_ID zero.
21099         * misc.c (gnat_tree_size): New function.
21100         (LANG_HOOKS_TREE_SIZE): Override.
21101
21102 2003-04-03  Jason Merrill  <jason@redhat.com>
21103
21104         * misc.c (gnat_adjust_rli): #if 0.
21105
21106 2003-03-31   Geert Bosch <bosch@gnat.com>
21107
21108         PR ada/10020
21109         * link.c : Fix misspelled "const" keyword
21110
21111 2003-03-23  Mark Mitchell  <mark@codesourcery.com>
21112
21113         PR c++/7086
21114         * utils2.c: Adjust calls to put_var_into_stack.
21115
21116 2003-03-12  Nathanael Nerode  <neroden@gcc.gnu.org>
21117
21118         * Make-lang.in, Makefile.in, config-lang.in: GCC, not GNU CC.
21119
21120 2003-03-08  Neil Booth  <neil@daikokuya.co.uk>
21121
21122         * misc.c (gnat_init): Update for new prototype.
21123
21124 2003-03-05  Olivier Hainque  <hainque@gnat.com>
21125
21126         ada/9961
21127         * raise.c (__gnat_Unwind_RaiseException): Add prototype to avoid
21128         warning, and fix return type for the IN_RTS && !SJLJ case.
21129
21130 2003-03-04  Tom Tromey  <tromey@redhat.com>
21131
21132         * Make-lang.in (ada.tags): New target.
21133
21134 2003-03-04  Olivier Hainque  <hainque@act-europe.fr>
21135
21136         ada/9911
21137         * a-except.adb (Unwind_RaiseException): Import a GNAT specific
21138         wrapper, which name remains constant whatever underlying GCC
21139         scheme.
21140
21141         * raise.c (__gnat_Unwind_RaiseException): New wrappers, providing
21142         the stable interface needed for a-except.
21143
21144 2003-03-02  Andreas Jaeger  <aj@suse.de>
21145
21146         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
21147         gnat_ug_wnt.texi: Regenerate.
21148
21149 2003-03-02  Laurent Guerby <guerby@acm.org>
21150
21151         * Makefile.in (install-gnatlib): Match previous change there
21152         so it works.
21153
21154 2003-02-28  Andreas Schwab  <schwab@suse.de>
21155
21156         * Make-lang.in (install-gnatlib): Change to ada directory before
21157         running make instead of using ada/Makefile directly.
21158
21159 2003-02-18  Ben Elliston  <bje@redhat.com>
21160
21161         Part of fix for PR ada/9406
21162         * gnat_ug.texi (Binder output file): Grammar fix.
21163
21164 2003-02-18  Ben Elliston  <bje@redhat.com>
21165
21166         PR other/7350
21167         * 5qtaprop.adb (Sleep): Fix typo in comment.
21168
21169 2003-02-04  Joseph S. Myers  <jsm@polyomino.org.uk>
21170
21171         * gnat_rm.texi, gnat_ug.texi: Update to GFDL 1.2.
21172         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
21173         gnat_ug_wnt.texi: Regenerate.
21174
21175 2003-02-03  Christian Cornelssen <ccorn@cs.tu-berlin.de>
21176
21177         * Make-lang.in (ada.install-info): Let $(DESTDIR)$(infodir)
21178         be created if necessary.
21179         (ada.install-common): Let $(DESTDIR)$(bindir) be created
21180         if necessary.  Remove erroneous and redundant gnatchop
21181         installation commands.  Test for gnatdll before attempting
21182         to install it.
21183         (ada.uninstall): Also uninstall gnatfind, gnatxref, gnatlbr,
21184         and gnatdll from all plausible locations.
21185
21186 2003-02-01  Richard Sandiford  <rsandifo@redhat.com>
21187
21188         * utils2.c (build_unary_op): Don't check flag_volatile.
21189         * gnat_ug.texi: Remove -fvolatile from example.
21190         * gnat_ug_vxw.texi: Likewise.
21191
21192 2003-01-29  Laurent Guerby <guerby@acm.org>
21193
21194         PR ada/8344
21195         * final.c: rename to adafinal.c to avoid file name conflicts with gcc file.
21196         * Makefile.in: match previous change.
21197         * Make-lang.in: match previous change.
21198
21199 2003-01-29      Joel Sherrill <joel@OARcorp.com>
21200
21201         * 5rosinte.ads: Add SIGXCPU.
21202         * 5rtpopsp.adb: New file.
21203         * Make-lang.in: Do not build gnatpsta and gnatpsys when cross.
21204         * Makefile.in: Recognize more RTEMS targets and add the RTEMS
21205         specific file 5rtpopsp.adb.
21206         * adaint.h: Add include of <stdio.h> when target is RTEMS.  This
21207         is likely needed for all newlib targets.
21208         * init.c: Add RTEMS specific version of __gnat_initialize().
21209
21210 2003-01-28  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
21211
21212         * adaint.c, adaint.h, gmem.c, init.c: Update copyright year.
21213
21214 2003-01-27  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
21215
21216         * init.c (__gnat_error_handler): Make msg const.
21217
21218         * gmem.c (convert_addresses): Move declaration ...
21219         * adaint.h: ... here.
21220         * adaint.c (convert_addresses): Adapt addrs type to match
21221         prototype.
21222
21223         * adaint.c (__gnat_try_lock): Cast pid_t to long, adapt format.
21224
21225 2003-01-24  Andreas Schwab  <schwab@suse.de>
21226
21227         * ada-tree.h (SET_TYPE_DIGITS_VALUE): Add intermediate cast to
21228         size_t to avoid warning.
21229
21230 2003-01-21  Zack Weinberg  <zack@codesourcery.com>
21231
21232         * Make-lang.in: Disable -Werror for tracebak.c and b_gnatb.c.
21233
21234 2003-01-09  Geoffrey Keating  <geoffk@apple.com>
21235
21236         * gnat_rm.texi: Remove RCS version number.
21237
21238         * ada-tree.h (union lang_tree_node): Add chain_next option.
21239
21240 2003-01-09  Christian Cornelssen  <ccorn@cs.tu-berlin.de>
21241
21242         * Make-lang.in (ada.install-info, ada.install-common,
21243         ada.uninstall): Prepend $(DESTDIR) to the destination
21244         directory in all (un)installation commands.
21245         * Makefile.in (install-gnatlib, install-rts): Ditto.
21246
21247 2002-12-28  Joseph S. Myers  <jsm@polyomino.org.uk>
21248
21249         * gnat_rm.texi, gnat_ug.texi: Use @copying.
21250         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
21251         gnat_ug_wnt.texi: Regenerate.
21252
21253 2002-12-23  Joseph S. Myers  <jsm@polyomino.org.uk>
21254
21255         * gnat_rm.texi: Include gcc-common.texi.  Use GCC version number
21256         only.
21257         * Make-lang.in ($(srcdir)/ada/gnat_ug_unx.info,
21258         $(srcdir)/ada/gnat_ug_vms.info, $(srcdir)/ada/gnat_ug_vxw.info,
21259         $(srcdir)/ada/gnat_ug_wnt.info, $(srcdir)/ada/gnat_rm.info,
21260         ada/gnat_ug_unx.dvi, ada/gnat_ug_vms.dvi, ada/gnat_ug_vxw.dvi,
21261         ada/gnat_ug_wnt.dvi, ada/gnat_rm.dvi): Depend on
21262         $(srcdir)/doc/include/gcc-common.texi.
21263
21264 2002-12-15   Geert Bosch <bosch@gnat.com>
21265
21266         * sem_ch6.adb (Analyze_Subprogram_Body): Fix typo and formatting
21267
21268 2002-12-14   Geert Bosch <bosch@gnat.com>
21269
21270         * sem_ch6.adb (Analyze_Subprogram_Body): Recognize additional
21271         case of a body created for a Renaming_As_Body, on which
21272         conformance checks are not performed. Fixes PR ada/5690.
21273
21274 2002-11-30  Zack Weinberg  <zack@codesourcery.com>
21275
21276         * cuintp.c, decl.c, deftarg.c, misc.c, targtyps.c, trans.c,
21277         utils.c, utils2.c: Include coretypes.h and tm.h, and system.h when
21278         not already included.
21279         * Make-lang.in: Update dependencies.
21280
21281 2002-11-18  Nathanael Nerode  <neroden@gcc.gnu.org>
21282         * adaint.c (__gnat_tmp_name): Better, but good enough for now,
21283         solution to buffer overflow bug on GNU/Linux.
21284
21285 2002-11-14  Nathanael Nerode  <neroden@gcc.gnu.org>
21286         Closes PR ada/5856 and PR ada/6919 !
21287         * bindgen.adb: Remove all references to Public_Version.
21288         * comperr.adb: Remove all references to Public_Version and
21289         GNATPRO_Version; correct bug reporting instructions.
21290         * comperr.ads: Change to match bug box.
21291         * gnatvsn.ads: Remove all references to Public version and
21292         GNATPRO version.
21293
21294 2002-11-13  Nathanael Nerode  <neroden@gcc.gnu.org>
21295         PR ada/6919
21296         * adaint.c (__gnat_tmp_name): Remove buffer overflow bug on
21297         GNU/Linux.
21298
21299         PR ada/6558
21300         * config-lang.in: Remove diff_excludes.
21301
21302 2002-11-05  Graham Stott  <graham.stott@btinternet.com>
21303         PR ada/8358
21304         * trans.c (gnu_pending_elaboration_lists): New GC root.
21305         (build_unit_elab): Use..
21306
21307 2002-10-30   Geert Bosch <bosch@gnat.com>
21308         PR ada/6558
21309         * misc.c : Include optabs.h
21310
21311         * Make-lang.in (misc.o): Add dependency on optabs.h
21312
21313 2002-10-29   Geert Bosch <bosch@gnat.com>
21314         PR ada/6558
21315         * Make-lang.in (gnatbind): Depend on CONFIG_H
21316
21317 2002-10-29  Geert bosch  <bosch@gnat.com>
21318         PR ada/6558
21319         * misc.c: Unrevert misc.c (1.13)
21320
21321 2002-10-28  Nathanael Nerode  <neroden@gcc.gnu.org>
21322
21323         * a-chlat9.ads a-cwila9.ads a-dynpri.adb a-retide.adb: Update
21324         maintainership comments.
21325
21326 2002-09-25  Nathanael Nerode  <neroden@gcc.gnu.org>
21327         PR ada/5904
21328         * 5ataprop.adb 5atpopsp.adb 5bosinte.adb 5ftaprop.adb
21329         5gtaprop.adb 5htaprop.adb 5rosinte.ads 5staprop.adb
21330         5stpopse.adb 5vtaspri.ads 5zintman.adb 5ztaprop.adb
21331         7staprop.adb: Correct statements in comments about
21332         maintainership of GNAT.
21333
21334         PR ada/5904
21335         * 1ssecsta.adb 1ssecsta.ads adadecode.c adadecode.h aux-io.c
21336         gnatname.adb gnatname.ads mkdir.c osint-b.adb osint-b.ads
21337         osint-c.adb osint-c.ads osint-l.adb osint-l.ads osint-m.adb
21338         osint-m.ads prj-makr.adb prj-makr.ads prj-pp.adb prj-pp.ads
21339         s-atacco.ads s-traceb.adb s-traceb.ads s-traces.adb
21340         s-traces.ads s-tratas.adb s-tratas.ads sinput-d.adb
21341         sinput-d.ads switch-b.adb switch-b.ads switch-c.adb
21342         switch-c.ads switch-m.adb switch-m.ads: Correct statements in
21343         comments about maintainership of GNAT.
21344
21345         PR ada/6919 (forward port of patch for PR ada/5904)
21346         * 1aexcept.adb 1aexcept.ads 41intnam.ads 42intnam.ads
21347         4aintnam.ads 4cintnam.ads 4dintnam.ads 4hexcpol.adb
21348         4lintnam.ads 4mintnam.ads 4nintnam.ads 4onumaux.ads
21349         4pintnam.ads 4rintnam.ads 4sintnam.ads 4uintnam.ads
21350         4vcalend.adb 4vintnam.ads 4wcalend.adb 4wexcpol.adb
21351         4wintnam.ads 4zintnam.ads 4znumaux.ads 4zsytaco.adb
21352         4zsytaco.ads 51osinte.adb 51osinte.ads 52osinte.adb
21353         52osinte.ads 52system.ads 53osinte.ads 5aosinte.ads
21354         5asystem.ads 5atasinf.ads 5ataspri.ads 5avxwork.ads
21355         5bosinte.ads 5bsystem.ads 5cosinte.ads 5dosinte.ads
21356         5esystem.ads 5fosinte.ads 5fsystem.ads 5ftasinf.ads
21357         5ginterr.adb 5gmastop.adb 5gosinte.ads 5gproinf.adb
21358         5gproinf.ads 5gsystem.ads 5gtasinf.adb 5gtasinf.ads
21359         5gtpgetc.adb 5hparame.ads 5hsystem.ads 5htaspri.ads
21360         5iosinte.ads 5itaspri.ads 5ksystem.ads 5kvxwork.ads
21361         5losinte.ads 5lsystem.ads 5mosinte.ads 5mvxwork.ads
21362         5ninmaop.adb 5nintman.adb 5nosinte.ads 5ntaspri.ads
21363         5oosprim.adb 5oparame.adb 5osystem.ads 5posinte.ads
21364         5posprim.adb 5pvxwork.ads 5rosinte.ads 5rparame.adb
21365         5sintman.adb 5sosinte.ads 5sparame.adb 5ssystem.ads
21366         5stasinf.adb 5stasinf.ads 5staspri.ads 5svxwork.ads
21367         5tosinte.ads 5uosinte.ads 5vasthan.adb 5vinterr.adb
21368         5vintman.ads 5vosinte.ads 5vosprim.adb 5vosprim.ads
21369         5vparame.ads 5vsystem.ads 5vtaspri.ads 5vtpopde.adb
21370         5vtpopde.ads 5vvaflop.adb 5wintman.adb 5wmemory.adb
21371         5wosinte.ads 5wosprim.adb 5wsystem.ads 5wtaprop.adb
21372         5wtaspri.ads 5ysystem.ads 5zinterr.adb 5zosinte.adb
21373         5zosinte.ads 5zosprim.adb 5zsystem.ads 6vcpp.adb 6vcstrea.adb
21374         7sosprim.adb 86numaux.adb 86numaux.ads 9drpc.adb a-astaco.adb
21375         a-caldel.ads a-calend.adb a-calend.ads a-chahan.adb
21376         a-chahan.ads a-colien.adb a-colien.ads a-colire.adb
21377         a-colire.ads a-comlin.adb a-comlin.ads a-cwila1.ads
21378         a-decima.adb a-decima.ads a-diocst.adb a-diocst.ads
21379         a-direio.adb a-direio.ads a-einuoc.adb a-einuoc.ads
21380         a-except.adb a-except.ads a-excpol.adb a-exctra.adb
21381         a-exctra.ads a-filico.adb a-filico.ads a-finali.adb
21382         a-finali.ads a-interr.ads a-intsig.adb a-intsig.ads
21383         a-ngcefu.adb a-ngcoty.adb a-ngcoty.ads a-ngelfu.adb
21384         a-nudira.adb a-nudira.ads a-nuflra.adb a-nuflra.ads
21385         a-numaux.ads a-reatim.ads a-retide.ads a-sequio.adb
21386         a-sequio.ads a-siocst.adb a-siocst.ads a-ssicst.adb
21387         a-ssicst.ads a-stmaco.ads a-storio.adb a-strbou.adb
21388         a-strbou.ads a-stream.ads a-strfix.adb a-strfix.ads
21389         a-strmap.adb a-strmap.ads a-strsea.adb a-strsea.ads
21390         a-strunb.adb a-strunb.ads a-ststio.adb a-ststio.ads
21391         a-stunau.adb a-stunau.ads a-stwibo.adb a-stwibo.ads
21392         a-stwifi.adb a-stwima.adb a-stwima.ads a-stwise.adb
21393         a-stwise.ads a-stwiun.adb a-stwiun.ads a-suteio.adb
21394         a-suteio.ads a-swmwco.ads a-swuwti.adb a-swuwti.ads
21395         a-sytaco.adb a-sytaco.ads a-tags.adb a-tags.ads a-tasatt.ads
21396         a-taside.adb a-taside.ads a-teioed.adb a-teioed.ads
21397         a-textio.adb a-textio.ads a-ticoau.adb a-ticoau.ads
21398         a-ticoio.adb a-ticoio.ads a-tideau.adb a-tideau.ads
21399         a-tideio.adb a-tideio.ads a-tienau.adb a-tienau.ads
21400         a-tienio.adb a-tienio.ads a-tifiio.adb a-tifiio.ads
21401         a-tiflau.adb a-tiflau.ads a-tiflio.adb a-tiflio.ads
21402         a-tigeau.adb a-tigeau.ads a-tiinau.adb a-tiinau.ads
21403         a-tiinio.adb a-tiinio.ads a-timoau.adb a-timoau.ads
21404         a-timoio.adb a-timoio.ads a-tiocst.adb a-tiocst.ads
21405         a-titest.adb a-witeio.adb a-witeio.ads a-wtcoau.adb
21406         a-wtcoau.ads a-wtcoio.adb a-wtcstr.adb a-wtcstr.ads
21407         a-wtdeau.adb a-wtdeau.ads a-wtdeio.adb a-wtdeio.ads
21408         a-wtedit.adb a-wtedit.ads a-wtenau.adb a-wtenau.ads
21409         a-wtenio.adb a-wtenio.ads a-wtfiio.adb a-wtfiio.ads
21410         a-wtflau.adb a-wtflau.ads a-wtflio.adb a-wtflio.ads
21411         a-wtgeau.adb a-wtgeau.ads a-wtinau.adb a-wtinau.ads
21412         a-wtinio.adb a-wtmoau.adb a-wtmoau.ads a-wtmoio.adb
21413         a-wtmoio.ads a-wttest.adb ada-tree.def ada-tree.h ada.h
21414         adaint.c adaint.h ali-util.adb ali-util.ads ali.adb ali.ads
21415         alloc.ads argv.c atree.adb atree.ads atree.h back_end.adb
21416         back_end.ads bcheck.adb bcheck.ads binde.adb binde.ads
21417         binderr.adb binderr.ads bindgen.adb bindgen.ads bindusg.adb
21418         bindusg.ads butil.adb butil.ads cal.c casing.adb casing.ads
21419         ceinfo.adb checks.adb checks.ads cio.c comperr.adb comperr.ads
21420         csets.adb csets.ads csinfo.adb cstand.adb cstand.ads
21421         cstreams.c cuintp.c debug.adb debug.ads debug_a.adb
21422         debug_a.ads dec-io.adb dec-io.ads dec.ads decl.c deftarg.c
21423         einfo.adb einfo.ads einfo.h elists.adb elists.ads elists.h
21424         errno.c errout.adb errout.ads eval_fat.adb eval_fat.ads exit.c
21425         exp_aggr.adb exp_aggr.ads exp_attr.adb exp_attr.ads
21426         exp_ch10.ads exp_ch11.adb exp_ch11.ads exp_ch12.adb
21427         exp_ch12.ads exp_ch13.adb exp_ch13.ads exp_ch2.adb exp_ch2.ads
21428         exp_ch3.adb exp_ch3.ads exp_ch4.adb exp_ch4.ads exp_ch5.adb
21429         exp_ch5.ads exp_ch6.adb exp_ch6.ads exp_ch7.adb exp_ch7.ads
21430         exp_ch8.adb exp_ch8.ads exp_ch9.adb exp_ch9.ads exp_code.adb
21431         exp_code.ads exp_dbug.adb exp_dbug.ads exp_disp.adb
21432         exp_disp.ads exp_dist.adb exp_dist.ads exp_fixd.adb
21433         exp_fixd.ads exp_imgv.adb exp_imgv.ads exp_intr.adb
21434         exp_intr.ads exp_pakd.adb exp_pakd.ads exp_prag.adb
21435         exp_prag.ads exp_smem.adb exp_smem.ads exp_strm.adb
21436         exp_strm.ads exp_tss.adb exp_tss.ads exp_util.adb exp_util.ads
21437         exp_vfpt.adb exp_vfpt.ads expander.adb expander.ads fe.h
21438         final.c fmap.adb fmap.ads fname-sf.adb fname-sf.ads
21439         fname-uf.adb fname-uf.ads fname.adb fname.ads freeze.adb
21440         freeze.ads frontend.adb frontend.ads g-calend.ads g-comlin.adb
21441         g-debpoo.adb g-debpoo.ads g-locfil.adb g-os_lib.ads
21442         g-regist.adb g-regist.ads get_targ.adb get_targ.ads gigi.h
21443         gmem.c gnat1drv.adb gnat1drv.ads gnat_ug.texi gnatbind.adb
21444         gnatbind.ads gnatbl.c gnatcmd.adb gnatcmd.ads gnatdll.adb
21445         gnatfind.adb gnatkr.adb gnatkr.ads gnatlbr.adb gnatlink.adb
21446         gnatlink.ads gnatls.adb gnatls.ads gnatmake.adb gnatmake.ads
21447         gnatmem.adb gnatprep.adb gnatprep.ads gnatpsta.adb gnatvsn.ads
21448         gnatxref.adb hlo.adb hlo.ads hostparm.ads i-c.adb i-cexten.ads
21449         i-cobol.adb i-cobol.ads i-cpoint.adb i-cpoint.ads i-cpp.adb
21450         i-cpp.ads i-cstrea.adb i-cstrea.ads i-cstrin.adb i-cstrin.ads
21451         i-fortra.adb i-os2err.ads i-os2lib.adb i-os2lib.ads
21452         i-os2syn.ads i-os2thr.ads i-pacdec.adb i-pacdec.ads
21453         impunit.adb impunit.ads init.c inline.adb inline.ads io-aux.c
21454         itypes.adb itypes.ads krunch.adb krunch.ads lang-options.h
21455         lang-specs.h layout.adb layout.ads lib-list.adb lib-load.adb
21456         lib-load.ads lib-sort.adb lib-util.adb lib-util.ads
21457         lib-writ.adb lib-writ.ads lib-xref.adb lib-xref.ads lib.adb
21458         lib.ads link.c live.adb live.ads make.adb make.ads makeusg.adb
21459         makeusg.ads math_lib.adb mdll.adb mdll.ads memtrack.adb misc.c
21460         namet.adb namet.ads namet.h nlists.adb nlists.ads nlists.h
21461         nmake.adb nmake.ads nmake.adt opt.adb opt.ads osint.adb
21462         osint.ads output.adb output.ads par-ch10.adb par-ch11.adb
21463         par-ch12.adb par-ch13.adb par-ch2.adb par-ch3.adb par-ch4.adb
21464         par-ch5.adb par-ch6.adb par-ch7.adb par-ch8.adb par-ch9.adb
21465         par-endh.adb par-labl.adb par-load.adb par-prag.adb
21466         par-sync.adb par-tchk.adb par-util.adb par.adb par.ads
21467         prj-attr.adb prj-attr.ads prj-com.adb prj-com.ads prj-dect.adb
21468         prj-dect.ads prj-env.adb prj-env.ads prj-ext.adb prj-ext.ads
21469         prj-nmsc.adb prj-nmsc.ads prj-pars.adb prj-pars.ads
21470         prj-part.adb prj-part.ads prj-proc.adb prj-proc.ads
21471         prj-strt.adb prj-strt.ads prj-tree.adb prj-tree.ads
21472         prj-util.adb prj-util.ads prj.adb prj.ads raise.c raise.h
21473         repinfo.adb repinfo.ads repinfo.h restrict.adb restrict.ads
21474         rident.ads rtsfind.adb rtsfind.ads s-addima.adb s-addima.ads
21475         s-arit64.adb s-arit64.ads s-assert.adb s-assert.ads
21476         s-asthan.adb s-asthan.ads s-atacco.adb s-auxdec.adb
21477         s-auxdec.ads s-bitops.adb s-bitops.ads s-chepoo.ads
21478         s-direio.adb s-direio.ads s-except.ads s-exctab.adb
21479         s-exctab.ads s-exnflt.ads s-exngen.adb s-exngen.ads
21480         s-exnint.ads s-exnlfl.ads s-exnlin.ads s-exnllf.ads
21481         s-exnlli.ads s-exnsfl.ads s-exnsin.ads s-exnssi.ads
21482         s-expflt.ads s-expgen.adb s-expgen.ads s-expint.ads
21483         s-explfl.ads s-explin.ads s-expllf.ads s-explli.ads
21484         s-expllu.adb s-expllu.ads s-expmod.adb s-expmod.ads
21485         s-expsfl.ads s-expsin.ads s-expssi.ads s-expuns.adb
21486         s-expuns.ads s-fatflt.ads s-fatgen.adb s-fatgen.ads
21487         s-fatlfl.ads s-fatllf.ads s-fatsfl.ads s-ficobl.ads
21488         s-fileio.adb s-fileio.ads s-finimp.adb s-finimp.ads
21489         s-finroo.adb s-finroo.ads s-fore.adb s-fore.ads s-imgbiu.adb
21490         s-imgbiu.ads s-imgboo.adb s-imgboo.ads s-imgcha.adb
21491         s-imgcha.ads s-imgdec.adb s-imgdec.ads s-imgenu.adb
21492         s-imgenu.ads s-imgint.adb s-imgint.ads s-imgllb.adb
21493         s-imgllb.ads s-imglld.adb s-imglld.ads s-imglli.adb
21494         s-imglli.ads s-imgllu.adb s-imgllu.ads s-imgllw.adb
21495         s-imgllw.ads s-imgrea.adb s-imgrea.ads s-imguns.adb
21496         s-imguns.ads s-imgwch.adb s-imgwch.ads s-imgwiu.adb
21497         s-imgwiu.ads s-inmaop.ads s-interr.adb s-interr.ads
21498         s-intman.ads s-io.adb s-io.ads s-maccod.ads s-mantis.adb
21499         s-mantis.ads s-memory.adb s-memory.ads s-osprim.ads
21500         s-pack03.adb s-pack03.ads s-pack05.adb s-pack05.ads
21501         s-pack06.adb s-pack06.ads s-pack07.adb s-pack07.ads
21502         s-pack09.adb s-pack09.ads s-pack10.adb s-pack10.ads
21503         s-pack11.adb s-pack11.ads s-pack12.adb s-pack12.ads
21504         s-pack13.adb s-pack13.ads s-pack14.adb s-pack14.ads
21505         s-pack15.adb s-pack15.ads s-pack17.adb s-pack17.ads
21506         s-pack18.adb s-pack18.ads s-pack19.adb s-pack19.ads
21507         s-pack20.adb s-pack20.ads s-pack21.adb s-pack21.ads
21508         s-pack22.adb s-pack22.ads s-pack23.adb s-pack23.ads
21509         s-pack24.adb s-pack24.ads s-pack25.adb s-pack25.ads
21510         s-pack26.adb s-pack26.ads s-pack27.adb s-pack27.ads
21511         s-pack28.adb s-pack28.ads s-pack29.adb s-pack29.ads
21512         s-pack30.adb s-pack30.ads s-pack31.adb s-pack31.ads
21513         s-pack33.adb s-pack33.ads s-pack34.adb s-pack34.ads
21514         s-pack35.adb s-pack35.ads s-pack36.adb s-pack36.ads
21515         s-pack37.adb s-pack37.ads s-pack38.adb s-pack38.ads
21516         s-pack39.adb s-pack39.ads s-pack40.adb s-pack40.ads
21517         s-pack41.adb s-pack41.ads s-pack42.adb s-pack42.ads
21518         s-pack43.adb s-pack43.ads s-pack44.adb s-pack44.ads
21519         s-pack45.adb s-pack45.ads s-pack46.adb s-pack46.ads
21520         s-pack47.adb s-pack47.ads s-pack48.adb s-pack48.ads
21521         s-pack49.adb s-pack49.ads s-pack50.adb s-pack50.ads
21522         s-pack51.adb s-pack51.ads s-pack52.adb s-pack52.ads
21523         s-pack53.adb s-pack53.ads s-pack54.adb s-pack54.ads
21524         s-pack55.adb s-pack55.ads s-pack56.adb s-pack56.ads
21525         s-pack57.adb s-pack57.ads s-pack58.adb s-pack58.ads
21526         s-pack59.adb s-pack59.ads s-pack60.adb s-pack60.ads
21527         s-pack61.adb s-pack61.ads s-pack62.adb s-pack62.ads
21528         s-pack63.adb s-pack63.ads s-parame.adb s-parame.ads
21529         s-parint.adb s-parint.ads s-pooglo.adb s-pooglo.ads
21530         s-pooloc.adb s-pooloc.ads s-poosiz.adb s-poosiz.ads
21531         s-powtab.ads s-proinf.adb s-proinf.ads s-rpc.adb s-rpc.ads
21532         s-scaval.ads s-secsta.adb s-secsta.ads s-sequio.adb
21533         s-sequio.ads s-shasto.adb s-shasto.ads s-soflin.adb
21534         s-soflin.ads s-sopco3.adb s-sopco3.ads s-sopco4.adb
21535         s-sopco4.ads s-sopco5.adb s-sopco5.ads s-stache.adb
21536         s-stache.ads s-stalib.adb s-stalib.ads s-stoele.adb
21537         s-stopoo.ads s-stratt.adb s-stratt.ads s-strops.adb
21538         s-strops.ads s-taprob.ads s-taprop.ads s-tarest.ads
21539         s-tasdeb.adb s-tasdeb.ads s-tasinf.adb s-tasinf.ads
21540         s-tasini.ads s-taskin.ads s-tasren.ads s-tasres.ads
21541         s-tassta.ads s-tpinop.adb s-tpinop.ads s-tpoben.ads
21542         s-tpobop.ads s-unstyp.ads s-vaflop.adb s-vaflop.ads
21543         s-valboo.adb s-valboo.ads s-valcha.adb s-valcha.ads
21544         s-valdec.adb s-valdec.ads s-valenu.adb s-valenu.ads
21545         s-valint.adb s-valint.ads s-vallld.adb s-vallld.ads
21546         s-vallli.adb s-vallli.ads s-valllu.adb s-valllu.ads
21547         s-valrea.adb s-valrea.ads s-valuns.adb s-valuns.ads
21548         s-valuti.adb s-valuti.ads s-valwch.adb s-valwch.ads
21549         s-vercon.adb s-vercon.ads s-vmexta.adb s-vmexta.ads
21550         s-wchcnv.adb s-wchcnv.ads s-wchcon.ads s-wchjis.adb
21551         s-wchjis.ads s-wchstw.adb s-wchstw.ads s-wchwts.adb
21552         s-wchwts.ads s-widboo.adb s-widboo.ads s-widcha.adb
21553         s-widcha.ads s-widenu.adb s-widenu.ads s-widlli.adb
21554         s-widlli.ads s-widllu.adb s-widllu.ads s-widwch.adb
21555         s-widwch.ads s-wwdcha.adb s-wwdcha.ads s-wwdenu.adb
21556         s-wwdenu.ads s-wwdwch.adb s-wwdwch.ads scans.adb scans.ads
21557         scn-nlit.adb scn-slit.adb scn.adb scn.ads sdefault.ads sem.adb
21558         sem.ads sem_aggr.adb sem_aggr.ads sem_attr.adb sem_attr.ads
21559         sem_case.adb sem_case.ads sem_cat.adb sem_cat.ads sem_ch10.adb
21560         sem_ch10.ads sem_ch11.adb sem_ch11.ads sem_ch12.adb
21561         sem_ch12.ads sem_ch13.adb sem_ch13.ads sem_ch2.adb sem_ch2.ads
21562         sem_ch3.adb sem_ch3.ads sem_ch4.adb sem_ch4.ads sem_ch5.adb
21563         sem_ch5.ads sem_ch6.adb sem_ch6.ads sem_ch7.adb sem_ch7.ads
21564         sem_ch8.adb sem_ch8.ads sem_ch9.adb sem_ch9.ads sem_disp.adb
21565         sem_disp.ads sem_dist.adb sem_dist.ads sem_elab.adb
21566         sem_elab.ads sem_elim.adb sem_elim.ads sem_eval.adb
21567         sem_eval.ads sem_intr.adb sem_intr.ads sem_maps.adb
21568         sem_maps.ads sem_mech.adb sem_mech.ads sem_prag.adb
21569         sem_prag.ads sem_res.adb sem_res.ads sem_smem.adb sem_smem.ads
21570         sem_type.adb sem_type.ads sem_util.adb sem_util.ads
21571         sem_vfpt.adb sem_vfpt.ads sem_warn.adb sem_warn.ads
21572         sfn_scan.adb sfn_scan.ads sinfo-cn.adb sinfo-cn.ads sinfo.adb
21573         sinfo.ads sinfo.h sinput-l.adb sinput-l.ads sinput-p.adb
21574         sinput-p.ads sinput.adb sinput.ads snames.adb snames.ads
21575         snames.h sprint.adb sprint.ads stand.adb stand.ads stringt.adb
21576         stringt.ads stringt.h style.adb style.ads stylesw.adb
21577         stylesw.ads switch.adb switch.ads sysdep.c system.ads
21578         table.adb table.ads targparm.adb targparm.ads targtyps.c
21579         tbuild.adb tbuild.ads trans.c tree_gen.adb tree_gen.ads
21580         tree_in.adb tree_in.ads tree_io.adb tree_io.ads treepr.adb
21581         treepr.ads treeprs.ads treeprs.adt ttypef.ads ttypes.ads
21582         types.adb types.ads types.h uintp.adb uintp.ads uintp.h
21583         uname.adb uname.ads urealp.adb urealp.ads urealp.h usage.adb
21584         usage.ads utils.c utils2.c validsw.adb validsw.ads
21585         widechar.adb widechar.ads xeinfo.adb xnmake.adb xr_tabls.adb
21586         xr_tabls.ads xref_lib.adb xref_lib.ads xsinfo.adb xsnames.adb
21587         xtreeprs.adb: Correct statements in comments about maintainership
21588         of GNAT.
21589
21590 2002-09-23  Zack Weinberg  <zack@codesourcery.com>
21591
21592         * Make-lang.in (EXTRA_GNATBIND_OBJS): Add version.o.
21593         * Makefile.in (TOOLS_LIBS): Add ../../version.o.
21594         * gnatvsn.ads: Gnat_Version_String is now a function.
21595         * gnatvsn.adb: New file.  When asked for Gnat_Version_String,
21596         copy the C version_string into a String and return it.
21597         * gnatcmd.adb, gnatkr.adb, gnatlbr.adb, gnatlink.adb,
21598         gnatls.adb,gnatmake.adb, gnatprep.adb, gnatpsta.adb:
21599         Remove pragma Ident (Gnat_Version_String).  If this was the
21600         sole use of package Gnatvsn, remove the with statement too.
21601         * gnat1drv.adb: Tweak -gnatv output.
21602
21603 2002-09-17  Richard Henderson  <rth@redhat.com>
21604
21605         * trans.c (tree_transform): Use real_ldexp not REAL_VALUE_LDEXP.
21606         * config/dsp16xx/dsp16xx.md (fixuns_trunchfhi2): Use real_2expN.
21607         * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
21608         (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
21609         * config/m68k/m68k.c (floating_exact_log2): Use real_exponent
21610         and real_2expN instead of a loop.
21611         * doc/tm.texi (REAL_VALUE_LDEXP): Remove.
21612         (REAL_VALUE_RNDZINT, REAL_VALUE_UNSIGNED_RNDZINT): Remove.
21613
21614 2002-08-25  Andre Leis <a.leis@gmx.net>
21615             David Billinghurst (David.Billinghurst@riotinto.com>
21616
21617         * sysdep.c (__gnat_ttyname): include <termios.h> on cygwin
21618
21619 2002-08-13  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
21620
21621         * Make-lang.in (gnatbind$(exeext)): Link with $(SYSLIBS).
21622         Remove $(CONFIG_H) dependency.
21623
21624 2002-08-08  Nathan Sidwell  <nathan@codesourcery.com>
21625
21626         * ada/Make-lang.in (ada.mostlyclean): Remove coverage files.
21627
21628 2002-07-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21629
21630         * adadecode.c (ada_demangle): Use xstrdup in lieu of
21631         xmalloc/strcpy.
21632         * misc.c (gnat_decode_option): Likewise.
21633
21634 2002-07-15  Florian Weimer  <fw@deneb.enyo.de>
21635
21636         * make.adb (Add_Switch): Make Generic_Position a procedure.  The
21637         function approach did not work well because of a side effect (the
21638         function call could reallocate the table which was being indexed
21639         using its result). Fixes ada/4851. [RESURRECTED]
21640
21641 2002-07-01  Roger Sayle  <roger@eyesopen.com>
21642
21643         * ada/utils.c (builtin_function): Accept an additional parameter.
21644
21645 2002-06-28  Andreas Jaeger  <aj@suse.de>
21646
21647         PR ada/7144
21648         * Makefile.in: Fix typo in comment, patch by Adrian Knoth
21649         <adi@thur.de>.
21650
21651 2002-06-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21652
21653         * Makefile.in (SHELL): Set to @SHELL@.
21654
21655 2002-06-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21656
21657         * utils.c (init_gigi_decls): Use ARRAY_SIZE in lieu of explicit
21658         array size calculation.
21659
21660 2002-06-04  Andreas Jaeger  <aj@suse.de>
21661
21662         * Make-lang.in (gnatbind): Readd rule that has been lost in last
21663         patch.
21664
21665 2002-06-03  Geoffrey Keating  <geoffk@redhat.com>
21666
21667         Merge from pch-branch:
21668
21669         * config-lang.in (gtfiles): Add ada-tree.h.
21670         * ada-tree.h (SET_TYPE_CI_CO_LIST): New.
21671         (SET_TYPE_MODULUS): New.
21672         (SET_TYPE_INDEX): New.
21673         (SET_TYPE_DIGITS_VALUE): New.
21674         (SET_TYPE_RM_SIZE): New.
21675         (SET_TYPE_UNCONSTRAINED_ARRAY): New.
21676         (SET_TYPE_ADA_SIZE): New.
21677         (SET_TYPE_ACTUAL_BOUNDS): New.
21678         (SET_DECL_CONST_CORRESPONDING_VAR): New.
21679         (SET_DECL_ORIGINAL_FIELD): New.
21680         (TREE_LOOP_ID): Correct typo.
21681         * decl.c: Use new macros.
21682         * utils.c: Include debug.h, use new macros.
21683         * utils2.c: Use new macros.
21684
21685         * ada-tree.h: Update all macros for new tree description.
21686         (struct tree_loop_id): New.
21687         (union lang_tree_node): New.
21688         (struct lang_decl): New.
21689         (struct lang_type): New.
21690         * misc.c (gnat_mark_tree): Delete.
21691         (LANG_HOOKS_MARK_TREE): Delete.
21692         * trans.c (tree_transform): No longer any need to cast
21693         for TREE_LOOP_ID.
21694
21695         * utils.c (struct language_function): New dummy structure.
21696
21697         * Makefile.in (decl.o): gt-ada-<filename.h> is in objdir, not srcdir.
21698         (misc.o): Likewise.
21699         (utils.o): Likewise; also gtype-ada.h.
21700         * Make-lang.in (gnat1): Add dependency on s-gtype.
21701         (gnatbind): Add dependency on $(CONFIG_H).
21702         * utils.c: Correct last #include.
21703         (stuct e_stack): Remove unnecessary 'static'.
21704         (mark_e_stack): Remove unused prototype.
21705
21706         * scn-nlit.adb: Remove whitespace after version number to
21707         keep lines under 80 chars.
21708         * snames.adb: Likewise.
21709         * treepr.ads: Likewise.
21710
21711         * Makefile.in (decl.o): Include gt-ada-<filename>.h.
21712         (misc.o): Likewise.
21713         (utils.o): Include gt-ada-<filename>.h and gtype-ada.h.
21714         * config-lang.in (gtfiles): New.
21715         * decl.c: Use gengtype for roots.
21716         * gigi.h: Use gengtype for roots.
21717         * trans.c: Use gengtype for roots.
21718         * utils.c: Use gengtype for roots, marking.  Include gtype-ada.h.
21719
21720 2002-06-02  Gabriel Dos Reis  <gdr@codesourcery.com>
21721
21722         * misc.c (gnat_init): Adjust setting of internal_error_function.
21723
21724 2002-06-01  Joseph S. Myers  <jsm28@cam.ac.uk>
21725
21726         * gnat_ug.texi: Use @ifnottex instead of @ifinfo.
21727         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
21728         gnat_ug_wnt.texi: Regenerate.
21729
21730 2002-05-31  Florian Weimer  <fw@deneb.enyo.de>
21731
21732         * 5ntaprop.adb (with System.OS_Primitives): Remove.
21733
21734         * cstreams.c (max_path_len): Move from here ...
21735         * adaint.c (__gnat_max_path_len): ... to here.
21736         * adaint.c (__gnat_max_path_len): Declare.
21737         * g-dirope.adb (Max_Path): Adjust.
21738         * g-os_lib.adb (Normalize_Pathname.Max_Path): Adjust.
21739         * i-cstrea.ads (max_path_len): Adjust.
21740         * osint.adb (Get_RTS_Search_Dir.Max_Path): Adjust.
21741         * xr_tabls.adb (Dir_Name.Max_Path: Adjust.
21742
21743         * Makefile.in, Make-lang.in: Documentation is now built in
21744         Make-lang.in.  Store Info and generated Texinfo files in the
21745         source directory.
21746         * gnat_ug.texi: Remove CVS keywords, correct version number.
21747         Set file name correctly.
21748
21749         * gnat_ug_*.texi: Add.
21750         * .cvsignore: Ignore generated Texinfo files.
21751
21752 2002-05-30  Zack Weinberg  <zack@codesourcery.com>
21753
21754         * ada.h: Add MI guard macro.
21755         (SUBTYPE): Define constants with an anonymous enum, not static
21756         const variables.
21757         (IN): Cast constants to appropriate type before use.
21758
21759 2002-05-26  Joseph S. Myers  <jsm28@cam.ac.uk>
21760
21761         * gnatvsn.ads (Gnat_Version_String): Change to "3.2 20020526
21762         (experimental)".
21763
21764 2002-05-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
21765
21766         * Make-lang.in (CP, ECHO): Copy from Makefile.in.
21767         (X_ADA_CFLAGS, T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS): Likewise.
21768         (ALL_ADAFLAGS, FORCE_DEBUG_ADAFLAGS, ADA_CFLAGS): Likewise.
21769         (ALL_ADA_CFLAGS): Likewise.
21770         (ADA_INCLUDES): Likewise.
21771         Adapt for new working dir.
21772         (GNATBIND): Use Makefile.in version.
21773         (.SUFFIXES): Copy from Makefile.in.
21774         (ada-warn): Define.
21775         (.adb.o, .ads.o): Copy from Makefile.in.
21776         Added $(OUTPUT_OPTION).
21777         (GNAT1_C_OBJS): Moved from Makefile.in.
21778         Prefix with ada subdir.
21779         (GNAT_ADA_OBJS, GNAT1_ADA_OBJS, GNAT1_OBJS, GNATBIND_OBJS): Likewise.
21780         (EXTRA_GNAT1_OBJS): Moved from Makefile.in.
21781         Adapt for new working dir.
21782         (EXTRA_GNATBIND_OBJS): Likewise.
21783         (ADA_BACKEND): Moved from Makefile.in.
21784         Renamed to avoid conflict with global BACKEND.
21785         Use that one.
21786         (TARGET_ADA_SRCS): Moved from Makefile.in.
21787         (gnat1$(exeext)): Replaced recursive rule with Makefile.in version.
21788         Use ADA_BACKEND.
21789         (gnatbind$(exeext)): Replaced recursive rule with Makefile.in version.
21790         (ada_extra_files): Moved from Makefile.in.
21791         Prefix with ada subdir.
21792         (ada/b_gnat1.c, ada/b_gnat1.o, ada/b_gnatb.c, ada/b_gnatb.o): Likewise.
21793         (ada/treeprs.ads, ada/einfo.h, ada/sinfo.h, ada/nmake.adb): Likewise.
21794         (ada/nmake.ads): Likewise.
21795         (update-sources): Moved from Makefile.in.
21796         Prefix with ada subdir.
21797         (ada/sdefault.adb, ada/stamp-sdefault, ada/sdefault.o): Likewise.
21798         (ADA_TREE_H): Likewise.
21799         (ada/a-except.o, ada/s-assert.o, ada/s-memory.o): Likewise.
21800         (ada/memtrack.o): Likewise.
21801         (ada/adadecode.o): Likewise.
21802         Update dependencies.
21803         (ada/adaint.o): New.
21804         (ada/argv.o): Moved from Makefile.in.
21805         Prefix with ada subdir.
21806         Update dependencies.
21807         (ada/cstreams.o, ada/exit.o, ada/final.o, ada/link.o): Likewise.
21808         (ada/cio.o, ada/init.o, ada/raise.o, ada/tracebak.o): Likewise.
21809         (ada/cuintp.o, ada/decl.o, ada/misc.o): Moved from Makefile.in.
21810         Prefix with ada subdir.
21811         (ada/targtyps.o, ada/trans.o, ada/utils.o, ada/utils2.o): Likewise.
21812         (GNAT DEPENDENCIES): Regenerate.
21813         * Makefile.in (MACHMODE_H, RTL_H, TREE_H): Removed, provided by
21814         toplevel Makefile.in.
21815         (EXTRA_GNAT1_OBJS, EXTRA_GNATBIND_OBJS): Removed.
21816         (TARGET_ADA_SRCS): Removed.
21817         (GNAT1_C_OBJS, GNAT_ADA_OBJS, GNAT1_ADA_OBJS, GNAT1_OBJS): Likewise.
21818         (GNATBIND_OBJS): Likewise.
21819         (ADA_INCLUDE_DIR, ADA_RTL_OBJ_DIR): Moved here.
21820         (BACKEND): Removed.
21821         (../gnat1$(exeext), ../gnatbind$(exeext)): Likewise.
21822         (TREE_H): Likewise.
21823         (ada_extra_files): Likewise.
21824         (b_gnat1.c, b_gnat1.o, b_gnatb.c, b_gnatb.o): Likewise.
21825         (treeprs.ads, einfo.h, sinfo.h, nmake.adb, nmake.ads): Likewise.
21826         (update-sources): Likewise.
21827         (sdefault.adb, stamp-sdefault, sdefault.o): Likewise
21828         (ADA_TREE_H): Likewise.
21829         (adadecoce.o): Likewise.
21830         (cuintp.o, decl.o, misc.o, trans.o, utils.o, utils2.o): Likewise.
21831         (GNAT DEPENDENCIES): Likewise.
21832
21833 2002-05-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
21834
21835         * Makefile.adalib: Allow for PWDCMD to override hardcoded pwd.
21836         * Makefile.in: Likewise.
21837
21838 2002-05-14  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
21839
21840         * Make-lang.in (gnat1$(exeext), gnatbind$(exeext), gnattools):
21841         Restore $(CONFIG_H) and prefix.o dependencies.
21842         (ada.stage[1-4]): Depend on stage?-start.
21843
21844         * Makefile.in (b_gnatb.c): Depend on interfac.o.
21845
21846 2002-05-02  Jim Wilson  <wilson@redhat.com>
21847
21848         * utils.c (finish_record_type): Change record_size to record_type.
21849
21850 2001-05-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
21851
21852         * ada/Makefile.in (X_ADA_CFLAGS, T_ADA_CFLAGS): New fragment overrides.
21853         (ALL_ADA_CFLAGS): Define.  Replace ADA_CFLAGS with ALL_ADA_CFLAGS in
21854         ALL_ADAFLAGS, MOST_ADAFLAGS, and all compilations using CC.
21855
21856 2002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>
21857
21858         * misc.c (gnat_parse_file): Update.
21859
21860 2002-04-24  Neil Booth  <neil@daikokuya.demon.co.uk>
21861
21862         * misc.c (gnat_init): Don't set lang_attribute_common.
21863
21864 2002-04-21  Joseph S. Myers  <jsm28@cam.ac.uk>
21865
21866         * gnat_rm.texi: Use @ifnottex instead of @ifinfo.
21867
21868 2002-04-21  Florian Weimer  <fw@deneb.enyo.de>
21869
21870         * gnat_ug.texi: New file.
21871
21872         * gnat_rm.texi: Do not include texiplus.texi.  Include fdl.texi
21873         instead of gfdl.texi
21874
21875         * xgnatug.adb, ug_words: New files.
21876
21877         * Makefile.in (doc, dvi): New targets.  Build gnat_ug_*,
21878         gnat_rm and gnat-style manuals.
21879
21880 2002-04-18  Neil Booth  <neil@daikokuya.demon.co.uk>
21881
21882         * gigi.h (incomplete_type_error): Remove.
21883         * utils.c (incomplete_type_error): Remove.
21884
21885 2002-04-16  Mark Mitchell  <mark@codesourcery.com>
21886
21887         * trans.c (tree_transform): Add has_scope argument to
21888         expand_start_stmt_expr.
21889
21890 2002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>
21891
21892         * gigi.h (truthvalue_conversion): Rename.
21893         * misc.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
21894         * trans.c (tree_transform): Update.
21895         * utils2.c (truthvalue_conversion): Rename, update.
21896         (build_binary_op, build_unary_op): Update.
21897
21898 2002-04-04  Laurent Guerby  <guerby@acm.org>
21899
21900         * make.adb: Implement -margs, remove restriction about file name placement.
21901         * makeusg.adb: Documentation update.
21902         * Makefile.in (TOOLS_FLAGS_TO_PASS): Add VPATH=$(fsrcdir).
21903         * Makefile.in (gnattools3): Comment out, gnatmem does not build without libaddr2line.
21904
21905 2002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>
21906
21907         * utils.c (create_subprog_decl): Use SET_DECL_ASSEMBLER_NAME.
21908         (builtin_function): Similarly.
21909
21910 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
21911
21912         * decl.c (gnat_to_gnu_entity): Update.
21913         * gigi.h (mark_addressable): Rename.
21914         * misc.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
21915         * trans.c (tree_transform): Update.
21916         * utils.c (create_var_decl): Update.
21917         * util2.c (build_binary_op, build_unary_op,
21918         fill_vms_descriptor): Update.
21919         (mark_addressable): Rename, update.
21920
21921 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
21922
21923         * gigi.h (unsigned_type, signed_type, signed_or_unsigned_type):
21924         Rename.
21925         * misc.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
21926         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
21927         * trans.c (tree_transform, convert_with_check): Update.
21928         * utils.c (unsigned_type, signed_type, signed_or_unsigned_type):
21929         Rename.
21930
21931 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
21932
21933         * gigi.h (finish_incomplete_decl): Rename.
21934         * misc.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL): Redefine.
21935         * utils.c (gnat_init_decl_processing): Don't set hook.
21936         (finish_incomplete_decl): Rename.
21937
21938 2002-03-29  Andreas Schwab  <schwab@suse.de>
21939
21940         * Makefile.in: Pass VPATH=$(fsrcdir) when calling make in rts
21941         directory.
21942
21943 2001-03-28  Robert Dewar <dewar@gnat.com>
21944
21945         * checks.ads:
21946         (Remove_Checks): New procedure
21947
21948         * checks.adb:
21949         (Remove_Checks): New procedure
21950
21951         * exp_util.adb:
21952         Use new Duplicate_Subexpr functions
21953         (Duplicate_Subexpr_No_Checks): New procedure
21954         (Duplicate_Subexpr_No_Checks_Orig): New procedure
21955         (Duplicate_Subexpr): Restore original form (checks duplicated)
21956         (Duplicate_Subexpr): Call Remove_Checks
21957
21958         * exp_util.ads:
21959         (Duplicate_Subexpr_No_Checks): New procedure
21960         (Duplicate_Subexpr_No_Checks_Orig): New procedure
21961         Add 2002 to copyright notice
21962
21963         * sem_util.adb: Use new Duplicate_Subexpr functions
21964
21965         * sem_eval.adb:
21966         (Eval_Indexed_Component): This is the place to call
21967         Constant_Array_Ref and to replace the value. We simply merge
21968         the code of this function in here, since it is now no longer
21969         used elsewhere. This fixes the problem of the back end not
21970         realizing we were clever enough to see that this was
21971         constant.
21972         (Expr_Val): Remove call to Constant_Array_Ref
21973         (Expr_Rep_Val): Remove call to Constant_Array_Ref
21974         Minor reformatting
21975         (Constant_Array_Ref): Deal with string literals (patch
21976         suggested by Zack Weinberg on the gcc list)
21977
21978 2001-03-28  Ed Schonberg <schonber@gnat.com>
21979
21980         * exp_util.adb: Duplicate_Subexpr_No_Checks_Orig =>
21981         Duplicate_Subexpr_Move_Checks.
21982
21983         * exp_util.ads: Duplicate_Subexpr_No_Checks_Orig =>
21984         Duplicate_Subexpr_Move_Checks.
21985
21986         * sem_eval.adb: (Constant_Array_Ref): Verify that constant
21987         value of array exists before retrieving it (it may a private
21988         protected component in a function).
21989
21990 2002-03-28   Geert Bosch <bosch@gnat.com>
21991
21992         * prj-pp.adb : New file.
21993
21994         * prj-pp.ads : New file.
21995
21996 2002-03-28  Andreas Jaeger  <aj@suse.de>
21997
21998         * Makefile.in (stamp-sdefault): Fix path for Makefile.
21999
22000 2002-03-28  Neil Booth  <neil@daikokuya.demon.co.uk>
22001
22002         * misc.c (gnat_expand_expr): Move prototype.
22003
22004 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
22005
22006         * misc.c (insert_default_attributes): Remove.
22007
22008 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
22009
22010         * misc.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
22011         (gnat_init): Don't set hook.
22012         (gnat_expand_expr): Fix prototype.
22013
22014 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
22015
22016         * misc.c (ggc_p): Remove.
22017
22018 2002-03-27  Geert Bosch  <bosch@gnat.com>
22019
22020         * prj-makr.ads, prj-makr.adb : New files.
22021
22022 2002-03-26  Neil Booth  <neil@daikokuya.demon.co.uk>
22023
22024         * misc.c (LANG_HOOKS_MARK_TREE): Redefine.
22025         (lang_mark_tree): Make static, rename.
22026
22027 2002-03-25  Neil Booth  <neil@daikokuya.demon.co.uk>
22028
22029         * misc.c (maybe_build_cleanup): Remove.
22030
22031 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
22032
22033         * gigi.h (yyparse): Remove.
22034
22035 2002-03-23  Florian Weimer  <fw@deneb.enyo.de>
22036
22037         * gnat_rm.texi: Sync with ACT version.
22038           (From Ben Brosgol <brosgol@gnat.com>)
22039
22040 2002-03-20  Neil Booth  <neil@daikokuya.demon.co.uk>
22041
22042         * misc.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
22043         (gnat_init): Remove old hook.
22044
22045 2002-03-17  Neil Booth  <neil@daikokuya.demon.co.uk>
22046
22047         * misc.c (LANG_HOOKS_PARSE_FILE): Redefine.
22048         (yyparse): Rename gnat_parse_file.
22049
22050 2002-03-14  Geoffrey Keating  <geoffk@redhat.com>
22051
22052         Delete all lines containing "$Revision:".
22053         * xeinfo.adb: Don't look for revision numbers.
22054         * xnmake.adb: Likewise.
22055         * xsinfo.adb: Likewise.
22056         * xsnames.adb: Likewise.
22057         * xtreeprs.adb: Likewise.
22058
22059 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
22060
22061         * misc.c (gnat_tree_code_type, gnat_tree_code_length,
22062         gnat_tree_code_name): Delete.
22063         (tree_code_type, tree_code_length, tree_code_name): Define.
22064         (gnat_init): Don't try to copy into the various tree_code
22065         arrays.
22066
22067 2002-03-11  Richard Henderson  <rth@redhat.com>
22068
22069         * Makefile.in (.NOTPARALLEL): Add fake tag.
22070
22071 2002-03-07  Geert Bosch  <bosch@gnat.com>
22072
22073         * adadecode.c, adadecode.h, aux-io.c, s-traces.adb, s-traces.ads,
22074         s-tratas.adb, s-tratas.ads, sinput-d.adb, sinput-d.ads,
22075         switch-b.adb, switch-b.ads, switch-c.adb, switch-c.ads,
22076         switch-m.adb, switch-m.ads : New files.
22077
22078 2002-03-07  Geert Bosch  <bosch@gnat.com>
22079
22080         * 41intnam.ads, 42intnam.ads, 4aintnam.ads, 4cintnam.ads,
22081         4dintnam.ads, 4gintnam.ads, 4hintnam.ads, 4lintnam.ads,
22082         4mintnam.ads, 4pintnam.ads, 4rintnam.ads, 4sintnam.ads,
22083         4uintnam.ads, 4vcalend.adb, 4zintnam.ads, 52system.ads,
22084         5amastop.adb, 5asystem.ads, 5ataprop.adb, 5atpopsp.adb,
22085         5avxwork.ads, 5bosinte.adb, 5bsystem.ads, 5esystem.ads,
22086         5fsystem.ads, 5ftaprop.adb, 5ginterr.adb, 5gmastop.adb,
22087         5gsystem.ads, 5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads,
22088         5hparame.ads, 5hsystem.ads, 5htaprop.adb, 5htraceb.adb,
22089         5itaprop.adb, 5ksystem.ads, 5kvxwork.ads, 5lintman.adb,
22090         5lsystem.ads, 5mvxwork.ads, 5ninmaop.adb, 5nosinte.ads,
22091         5ntaprop.adb, 5ointerr.adb, 5omastop.adb, 5oosinte.adb,
22092         5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5pvxwork.ads,
22093         5qtaprop.adb, 5sintman.adb, 5ssystem.ads, 5staprop.adb,
22094         5stpopse.adb, 5svxwork.ads, 5tosinte.ads, 5uintman.adb,
22095         5vasthan.adb, 5vinmaop.adb, 5vinterr.adb, 5vintman.adb,
22096         5vmastop.adb, 5vparame.ads, 5vsystem.ads, 5vtaprop.adb,
22097         5vtpopde.adb, 5wmemory.adb, 5wsystem.ads, 5wtaprop.adb,
22098         5ysystem.ads, 5zinterr.adb, 5zintman.adb, 5zosinte.adb,
22099         5zosinte.ads, 5zsystem.ads, 5ztaprop.adb, 6vcpp.adb, 6vcstrea.adb,
22100         7sintman.adb, 7staprop.adb, 7stpopsp.adb, 9drpc.adb,
22101         Make-lang.in, Makefile.in, a-caldel.adb, a-comlin.ads,
22102         a-dynpri.adb, a-except.adb, a-except.ads, a-finali.adb,
22103         a-ncelfu.ads, a-reatim.adb, a-retide.adb, a-stream.ads,
22104         a-ststio.adb, a-ststio.ads, a-stwifi.adb, a-tags.adb, a-tasatt.adb,
22105         a-textio.adb, a-tideau.adb, a-tiflau.adb, a-tigeau.adb,
22106         a-tigeau.ads, a-tiinau.adb, a-timoau.adb, a-witeio.adb,
22107         a-wtdeau.adb, a-wtenau.adb, a-wtflau.adb, a-wtgeau.adb,
22108         a-wtgeau.ads, a-wtinau.adb, a-wtmoau.adb, ada-tree.def, ada-tree.h,
22109         adaint.c, adaint.h, ali-util.adb, ali.adb, ali.ads, atree.adb,
22110         atree.ads, atree.h, back_end.adb, bcheck.adb, bindgen.adb,
22111         bindusg.adb, checks.adb, comperr.adb, config-lang.in, csets.adb,
22112         csets.ads, cstand.adb, cstreams.c, debug.adb, debug.ads, decl.c,
22113         einfo.adb, einfo.ads, einfo.h, elists.h, errout.adb, errout.ads,
22114         eval_fat.adb, exp_aggr.adb, exp_attr.adb, exp_ch11.adb,
22115         exp_ch12.adb, exp_ch13.adb, exp_ch2.adb, exp_ch3.adb, exp_ch3.ads,
22116         exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch7.ads,
22117         exp_ch9.adb, exp_ch9.ads, exp_dbug.adb, exp_dbug.ads, exp_disp.ads,
22118         exp_dist.adb, exp_fixd.adb, exp_intr.adb, exp_pakd.adb,
22119         exp_prag.adb, exp_strm.adb, exp_util.adb, exp_util.ads,
22120         expander.adb, expect.c, fe.h, fmap.adb, fmap.ads, fname-uf.adb,
22121         freeze.adb, frontend.adb, g-awk.adb, g-cgideb.adb, g-comlin.adb,
22122         g-comlin.ads, g-debpoo.adb, g-dirope.adb, g-dirope.ads,
22123         g-dyntab.adb, g-expect.adb, g-expect.ads, g-io.ads, g-io_aux.adb,
22124         g-io_aux.ads, g-locfil.adb, g-locfil.ads, g-os_lib.adb,
22125         g-os_lib.ads, g-regexp.adb, g-regpat.adb, g-socket.adb,
22126         g-socket.ads, g-spipat.adb, g-table.adb, g-trasym.adb,
22127         g-trasym.ads, gigi.h, gmem.c, gnat1drv.adb, gnatbind.adb, gnatbl.c,
22128         gnatchop.adb, gnatcmd.adb, gnatdll.adb, gnatfind.adb, gnatlbr.adb,
22129         gnatlink.adb, gnatls.adb, gnatmem.adb, gnatprep.adb, gnatvsn.ads,
22130         gnatxref.adb, hlo.adb, hostparm.ads, i-cobol.adb, i-cpp.adb,
22131         i-cstrea.ads, i-cstrin.adb, i-pacdec.adb, i-vxwork.ads,
22132         impunit.adb, init.c, inline.adb, io-aux.c, layout.adb, lib-load.adb,
22133         lib-util.adb, lib-writ.adb, lib-writ.ads, lib-xref.adb,
22134         lib-xref.ads, lib.adb, lib.ads, make.adb, makeusg.adb, mdll.adb,
22135         memroot.adb, misc.c, mlib-tgt.adb, mlib-utl.adb, mlib-utl.ads,
22136         mlib.adb, namet.adb, namet.ads, namet.h, nlists.h, nmake.adb,
22137         nmake.ads, nmake.adt, opt.adb, opt.ads, osint.adb, osint.ads,
22138         output.adb, output.ads, par-ch2.adb, par-ch3.adb, par-ch5.adb,
22139         par-prag.adb, par-tchk.adb, par-util.adb, par.adb, prj-attr.adb,
22140         prj-dect.adb, prj-env.adb, prj-env.ads, prj-nmsc.adb, prj-part.adb,
22141         prj-proc.adb, prj-strt.adb, prj-tree.adb, prj-tree.ads, prj.adb,
22142         prj.ads, raise.c, raise.h, repinfo.adb, restrict.adb, restrict.ads,
22143         rident.ads, rtsfind.adb, rtsfind.ads, s-arit64.adb, s-asthan.adb,
22144         s-atacco.adb, s-atacco.ads, s-auxdec.adb, s-crc32.adb, s-crc32.ads,
22145         s-direio.adb, s-fatgen.adb, s-fileio.adb, s-finimp.adb,
22146         s-gloloc.adb, s-gloloc.ads, s-interr.adb, s-mastop.adb,
22147         s-mastop.ads, s-memory.adb, s-parame.ads, s-parint.adb,
22148         s-pooglo.adb, s-pooloc.adb, s-rpc.adb, s-secsta.adb, s-sequio.adb,
22149         s-shasto.adb, s-soflin.adb, s-soflin.ads, s-stache.adb,
22150         s-taasde.adb, s-taasde.ads, s-tadeca.adb, s-tadeca.ads,
22151         s-tadert.adb, s-tadert.ads, s-taenca.adb, s-taenca.ads,
22152         s-taprob.adb, s-taprop.ads, s-tarest.adb, s-tasdeb.adb,
22153         s-tasini.adb, s-tasini.ads, s-taskin.adb, s-taskin.ads,
22154         s-tasque.adb, s-tasque.ads, s-tasren.adb, s-tasren.ads,
22155         s-tassta.adb, s-tasuti.adb, s-tasuti.ads, s-tataat.adb,
22156         s-tataat.ads, s-tpoben.adb, s-tpoben.ads, s-tpobop.adb,
22157         s-tposen.adb, s-tposen.ads, s-traceb.adb, s-traceb.ads,
22158         s-unstyp.ads, s-widenu.adb, scn-nlit.adb, scn.adb, sem.adb,
22159         sem_aggr.adb, sem_attr.adb, sem_attr.ads, sem_case.adb,
22160         sem_ch10.adb, sem_ch11.adb, sem_ch11.ads, sem_ch12.adb,
22161         sem_ch13.adb, sem_ch13.ads, sem_ch2.adb, sem_ch3.adb, sem_ch3.ads,
22162         sem_ch4.adb, sem_ch5.adb, sem_ch6.adb, sem_ch6.ads, sem_ch7.adb,
22163         sem_ch8.adb, sem_ch8.ads, sem_ch9.adb, sem_disp.adb, sem_dist.adb,
22164         sem_elab.adb, sem_elim.adb, sem_elim.ads, sem_eval.adb,
22165         sem_intr.adb, sem_mech.adb, sem_prag.adb, sem_res.adb,
22166         sem_type.adb, sem_util.adb, sem_util.ads, sem_vfpt.adb,
22167         sem_warn.adb, sinfo.adb, sinfo.ads, sinfo.h, sinput-l.adb,
22168         sinput-l.ads, sinput.adb, sinput.ads, snames.adb, snames.ads,
22169         snames.h, sprint.adb, sprint.ads, stringt.adb, stringt.ads,
22170         stringt.h, style.adb, switch.adb, switch.ads, sysdep.c, system.ads,
22171         table.adb, targparm.adb, targparm.ads, targtyps.c, tbuild.adb,
22172         tbuild.ads, tracebak.c, trans.c, tree_gen.adb, tree_io.adb,
22173         treepr.adb, treepr.ads, treeprs.ads, treeprs.adt, ttypes.ads,
22174         types.adb, types.ads, types.h, uintp.ads, urealp.ads, usage.adb,
22175         utils.c, utils2.c, validsw.adb, xnmake.adb, xr_tabls.adb,
22176         xr_tabls.ads, xref_lib.adb, xref_lib.ads : Merge in ACT changes.
22177
22178         * 1ssecsta.adb, 1ssecsta.ads, a-chlat9.ads, a-cwila9.ads,
22179         g-enblsp.adb, g-md5.adb, g-md5.ads, gnatname.adb, gnatname.ads,
22180         mkdir.c, osint-b.adb, osint-b.ads, osint-c.adb, osint-c.ads,
22181         osint-l.adb, osint-l.ads, osint-m.adb, osint-m.ads : New files
22182
22183         * 3lsoccon.ads, 5qparame.ads, 5qvxwork.ads, 5smastop.adb,
22184         5zparame.ads, gnatmain.adb, gnatmain.ads, gnatpsys.adb : Removed
22185
22186         * mdllfile.adb, mdllfile.ads, mdlltool.adb, mdlltool.ads : Renamed
22187         to mdll-fil.ad[bs] and mdll-util.ad[bs]
22188
22189         * mdll-fil.adb, mdll-fil.ads, mdll-utl.adb, mdll-utl.ads : Renamed
22190         from mdllfile.ad[bs] and mdlltool.ad[bs]
22191
22192 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
22193
22194         * utils.c (init_gnat_to_gnu, init_gigi_decls): Use ARRAY_SIZE in
22195         lieu of explicit sizeof/sizeof.
22196
22197 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
22198
22199         * misc.c (copy_lang_decl): Remove.
22200
22201 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
22202
22203         * misc.c: Delete traditional-mode-related code copied from the
22204         C front end but not used, or used only to permit the compiler
22205         to link.
22206
22207 2002-02-07  Richard Henderson  <rth@redhat.com>
22208
22209         * adaint.c (__gnat_to_gm_time): First arg is int, not time_t.
22210         * adaint.h (__gnat_to_gm_time): Update prototype.
22211
22212 2002-01-30  Richard Henderson  <rth@redhat.com>
22213
22214         * trans.c (tree_transform) [N_Loop_Statement]: Use
22215         expand_exit_loop_top_cond.
22216
22217 2001-12-23  Richard Henderson  <rth@redhat.com>
22218
22219         * utils.c (end_subprog_body): Push GC context around
22220         rest_of_compilation for nested functions.
22221
22222 2001-12-23  Richard Henderson  <rth@redhat.com>
22223
22224         * 5nosinte.ads: Get definition of "int" from Interfaces.C.
22225
22226 2001-12-23  Florian Weimer  <fw@deneb.enyo.de>
22227
22228         * gnat-style.texi (Declarations and Types): Remove ancient style
22229         rule which was mandated by code generation issues.
22230
22231         * gnat-style.texi (header): Add @dircategory, @direntry.
22232         (title page): Remove date.
22233         (general) Add @./@: where approriate, and two spaces after the
22234         full stop at the end of a sentence.  Use @samp markup when
22235         referring concrete lexical entities (keywords, attribute names
22236         etc.), and @syntax for ARM grammar elements. Use @r for English
22237         text in comments.  Use @emph for emphasis.  Change "if-statements"
22238         etc. to "if statements" (without @samp). Break long lines.  Make
22239         casing of section names consistent.
22240         (Identifiers): Use @samp markup for variable names.
22241         (Comments): Use @samp markup for comment characters. Line-end
22242         comments may follow any Ada code, not just statements.  Fix
22243         misspelling of "Integer" as "integer".
22244         (Loop statements): Do not use variable name "I", use "J".
22245         (Subprogram Declarations): Document alignment.
22246         (Subprogram Bodies, Block statements): Document empty line before
22247         "begin".
22248
22249 2001-12-22  Florian Weimer  <fw@deneb.enyo.de>
22250
22251         * make.adb (Add_Switch): Make Generic_Position a procedure.  The
22252         function approach did not work well because of a side effect (the
22253         function call could reallocate the table which was being indexed
22254         using its result). Fixes ada/4851.
22255
22256 2001-12-19  Robert Dewar <dewar@gnat.com>
22257
22258         * bindgen.adb: Minor reformatting
22259
22260         * cstand.adb: Minor reformatting
22261
22262         * fmap.adb: Minor reformatting
22263         Change name from Add for Add_To_File_Map (Add is much too generic)
22264         Change Path_Name_Of to Mapped_Path_Name
22265         Change File_Name_Of to Mapped_File_Name
22266         Fix copyright dates in header
22267
22268         * fmap.ads:
22269         Change name from Add for Add_To_File_Map (Add is much too generic)
22270         Change Path_Name_Of to Mapped_Path_Name
22271         Change File_Name_Of to Mapped_File_Name
22272         Fix copyright dates in header
22273
22274         * fname-uf.adb: Minor reformatting.  New names of stuff in Fmap.
22275         Add use clause for Fmap.
22276
22277         * make.adb: Minor reformatting
22278
22279         * osint.adb: Minor reformatting.  Change of names in Fmap.
22280         Add use clause for Fmap.
22281
22282         * prj-env.adb: Minor reformatting
22283
22284         * prj-env.ads: Minor reformatting
22285
22286         * switch.adb: Minor reformatting.  Do proper raise of Bad_Switch if
22287         error found (there were odd exceptions to this general rule in
22288         -gnatec/-gnatem processing)
22289
22290 2001-12-19  Olivier Hainque <hainque@gnat.com>
22291
22292         * raise.c (__gnat_eh_personality): Exception handling personality
22293         routine for Ada.  Still in rough state, inspired from the C++ version
22294         and still containing a bunch of debugging artifacts.
22295         (parse_lsda_header, get_ttype_entry): Local (static) helpers, also
22296         inspired from the C++ library.
22297
22298         * raise.c (eh_personality): Add comments. Part of work for the GCC 3
22299         exception handling integration.
22300
22301 2001-12-19  Arnaud Charlet <charlet@gnat.com>
22302
22303         * Makefile.in: Remove use of 5smastop.adb which is obsolete.
22304         (HIE_SOURCES): Add s-secsta.ad{s,b}.
22305         (HIE_OBJS): Add s-fat*.o
22306         (RAVEN_SOURCES): Remove files that are no longer required. Add
22307         interrupt handling files.
22308         (RAVEN_MOD): Removed, no longer needed.
22309
22310 2001-12-19  Robert Dewar <dewar@gnat.com>
22311
22312         * a-ngelfu.adb: Remove ??? comment for inappropriate Inline_Always
22313         Add 2001 to copyright date
22314
22315         * g-regpat.adb: Change pragma Inline_Always to Inline. There is no
22316         need to force universal inlining for these cases.
22317
22318 2001-12-19  Arnaud Charlet <charlet@gnat.com>
22319
22320         * s-taprob.adb: Minor clean ups so that this unit can be used in
22321         Ravenscar HI.
22322
22323         * exp_ch7.adb: Allow use of secondary stack in HI mode.
22324         Disallow it when pragma Restrictions (No_Secondary_Stack) is specified.
22325
22326 2001-12-19  Vincent Celier <celier@gnat.com>
22327
22328         * prj-tree.ads (Project_Node_Record): Add comments for components
22329         Pkg_Id and Case_Insensitive.
22330
22331 2001-12-19  Pascal Obry <obry@gnat.com>
22332
22333         * g-socket.adb: Minor reformatting. Found while reading code.
22334
22335 2001-12-19  Robert Dewar <dewar@gnat.com>
22336
22337         * prj-tree.ads: Minor reformatting
22338
22339 2001-12-20  Joseph S. Myers  <jsm28@cam.ac.uk>
22340
22341         * config-lang.in (diff_excludes): Remove.
22342
22343 2001-12-17  Ed Schonberg <schonber@gnat.com>
22344
22345         * sem_res.adb (Resolve_Selected_Component): do not generate a
22346         discriminant check if the selected component is a component of
22347         the argument of an initialization procedure.
22348
22349         * trans.c (tree_transform, case of arithmetic operators): If result
22350         type is private, the gnu_type is the base type of the full view,
22351         given that the full view itself may be a subtype.
22352
22353 2001-12-17  Robert Dewar <dewar@gnat.com>
22354
22355         * sem_res.adb: Minor reformatting
22356
22357         * trans.c (tree_transform, case N_Real_Literal): Add missing third
22358         parameter in call to Machine (unknown horrible effects from this
22359         omission).
22360
22361         * urealp.h: Add definition of Round_Even for call to Machine
22362         Add third parameter for Machine
22363
22364 2001-12-17  Ed Schonberg <schonber@gnat.com>
22365
22366         * sem_warn.adb (Check_One_Unit): Suppress warnings completely on
22367         predefined units in No_Run_Time mode.
22368
22369 2001-12-17  Richard Kenner <kenner@gnat.com>
22370
22371         * misc.c (insn-codes.h): Now include.
22372
22373 2001-12-17  Olivier Hainque <hainque@gnat.com>
22374
22375         * a-except.adb: Preparation work for future integration of the GCC 3
22376         exception handling mechanism
22377         (Notify_Handled_Exception, Notify_Unhandled_Exception): New routines
22378         to factorize previous code sequences and make them externally callable,
22379         e.g. for the Ada personality routine when the GCC 3 mechanism is used.
22380         (Propagate_Exception, Raise_Current_Excep, Raise_From_Signal_Handler):
22381         Use the new notification routines.
22382
22383 2001-12-17  Emmanuel Briot <briot@gnat.com>
22384
22385         * prj-tree.ads (First_Choice_Of): Document the when others case
22386
22387 2001-12-17  Arnaud Charlet <charlet@gnat.com>
22388
22389         * bindgen.adb (Gen_Ada_Init_*): Set priority of environment task in
22390         HI-E mode, in order to support Ravenscar profile properly.
22391
22392         * cstand.adb (Create_Standard): Duration is a 32 bit type in HI-E
22393         mode on 32 bits targets.
22394
22395 2001-12-17  Vincent Celier <celier@gnat.com>
22396
22397         * fmap.adb: Initial version.
22398
22399         * fmap.ads: Initial version.
22400
22401         * fname-uf.adb (Get_File_Name): Use mapping if unit name mapped.
22402         If search is successfully done, add to mapping.
22403
22404         * frontend.adb: Initialize the mapping if a -gnatem switch was used.
22405
22406         * make.adb:
22407         (Gnatmake): Add new local variable Mapping_File_Name.
22408          Create mapping file when using project file(s).
22409          Delete mapping file before exiting.
22410
22411         * opt.ads (Mapping_File_Name): New variable
22412
22413         * osint.adb (Find_File): Use path name found in mapping, if any.
22414
22415         * prj-env.adb (Create_Mapping_File): New procedure
22416
22417         * prj-env.ads (Create_Mapping_File): New procedure.
22418
22419         * switch.adb (Scan_Front_End_Switches): Add processing for -gnatem
22420         (Mapping_File)
22421
22422         * usage.adb: Add entry for new switch -gnatem.
22423
22424         * Makefile.in: Add dependencies for fmap.o.
22425
22426 2001-12-17  Ed Schonberg <schonber@gnat.com>
22427
22428         * sem_ch10.adb (Analyze_With_Clause): Retrieve proper entity when unit
22429         is a package instantiation rewritten as a package body.
22430         (Install_Withed_Unit): Undo previous change, now redundant.
22431
22432 2001-12-17  Gary Dismukes <dismukes@gnat.com>
22433
22434         * layout.adb:
22435         (Compute_Length): Move conversion to Unsigned to callers.
22436         (Get_Max_Size): Convert Len expression to Unsigned after calls to
22437         Compute_Length and Determine_Range.
22438         (Layout_Array_Type): Convert Len expression to Unsigned after calls to
22439         Compute_Length and Determine_Range.
22440         Above changes fix problem with length computation for supernull arrays
22441         where Max (Len, 0) wasn't getting applied due to the Unsigned
22442         conversion used by Compute_Length.
22443
22444 2001-12-17  Arnaud Charlet <charlet@gnat.com>
22445
22446         * rtsfind.ads:
22447         (OK_To_Use_In_No_Run_Time_Mode): Allow Ada.Exceptions and
22448          System.Secondary_Stack.
22449         (OK_To_Use_In_Ravenscar_Mode): New table needed to implement Ravenscar
22450          in HI-E mode.
22451         Remove unused entity RE_Exception_Data.
22452
22453         * rtsfind.adb (RTE): Allow Ravenscar Profile in HI mode.
22454
22455         * rident.ads (No_Secondary_Stack): New restriction.
22456
22457 2001-12-17  Joel Brobecker <brobecke@gnat.com>
22458
22459         * gnat_rm.texi: Fix minor typos. Found while reading the section
22460         regarding "Bit_Order Clauses" that was sent to a customer.
22461         Very interesting documentation!
22462
22463 2001-12-17  Robert Dewar <dewar@gnat.com>
22464
22465         * sem_case.adb (Choice_Image): Avoid creating improper character
22466         literal names by using the routine Set_Character_Literal_Name. This
22467         fixes bombs in certain error message cases.
22468
22469 2001-12-17  Arnaud Charlet <charlet@gnat.com>
22470
22471         * a-reatim.adb: Minor reformatting.
22472
22473 2001-12-17  Ed Schonberg <schonber@gnat.com>
22474
22475         * sem_ch12.adb (Validate_Derived_Type_Instance): Handle properly the
22476         case where the formal is an extension of another formal in the current
22477         unit or in a parent generic unit.
22478
22479 2001-12-17  Arnaud Charlet <charlet@gnat.com>
22480
22481         * s-tposen.adb: Update comments.  Minor reformatting.
22482         Minor code clean up.
22483
22484         * s-tarest.adb: Update comments.  Minor code reorganization.
22485
22486 2001-12-17  Gary Dismukes <dismukes@gnat.com>
22487
22488         * exp_attr.adb (Attribute_Tag): Suppress expansion of <type_name>'Tag
22489         when Java_VM.
22490
22491 2001-12-17  Robert Dewar <dewar@gnat.com>
22492
22493         * exp_attr.adb: Minor reformatting
22494
22495 2001-12-17  Ed Schonberg <schonber@gnat.com>
22496
22497         * sem_ch3.adb (Build_Derived_Private_Type): Refine check to handle
22498         derivations nested within a child unit: verify that the parent
22499         type is declared in an outer scope.
22500
22501 2001-12-17  Robert Dewar <dewar@gnat.com>
22502
22503         * sem_ch12.adb: Minor reformatting
22504
22505 2001-12-17  Ed Schonberg <schonber@gnat.com>
22506
22507         * sem_warn.adb (Check_One_Unit): In No_Run_Time mode, do not post
22508         warning if current unit is a predefined one, from which bodies may
22509         have been deleted.
22510
22511 2001-12-17  Robert Dewar <dewar@gnat.com>
22512
22513         * eval_fat.ads: Add comment that Round_Even is referenced in Ada code
22514         Fix header format. Add 2001 to copyright date.
22515
22516         * exp_dbug.adb (Get_Encoded_Name): Fix out of bounds reference,
22517         which caused CE during compilation if checks were enabled.
22518
22519 2001-12-17  Vincent Celier <celier@gnat.com>
22520
22521         * make.adb:
22522         (Switches_Of): New function
22523         (Test_If_Relative_Path): New procedure
22524         (Add_Switches): Use new function Switches_Of
22525         (Collect_Arguments_And_Compile): Use new function Switches_Of.
22526         When using a project file, test if there are any relative
22527         search path. Fail if there are any.
22528         (Gnatmake): Only add switches for the primary directory when not using
22529         a project file. When using a project file, change directory to the
22530         object directory of the main project file. When using a project file,
22531         test if there are any relative search path. Fail if there are any.
22532         When using a project file, fail if specified executable is relative
22533         path with directory information, and prepend executable, if not
22534         specified as an absolute path, with the exec directory.  Make sure
22535         that only one -o switch is transmitted to the linker.
22536
22537         * prj-attr.adb (Initialization_Data): Add project attribute Exec_Dir
22538
22539         * prj-nmsc.adb:
22540         (Ada_Check): Get Spec_Suffix_Loc and Impl_Suffix_Loc,
22541         when using a non standard naming scheme.
22542         (Check_Ada_Naming_Scheme): Make sure that error messages
22543         do not raise exceptions.
22544         (Is_Illegal_Append): Return True if there is no dot in the suffix.
22545         (Language_Independent_Check): Check the exec directory.
22546
22547         * prj.adb (Project_Empty): Add new component Exec_Directory
22548
22549         * prj.ads:
22550         (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Add defaults.
22551         (Project_Data): Add component Exec_Directory
22552
22553         * snames.adb: Updated to match snames.ads revision 1.215
22554
22555         * snames.ads: Added Exec_Dir
22556
22557 2001-12-17  Robert Dewar <dewar@gnat.com>
22558
22559         * make.adb: Minor reformatting
22560
22561         * prj-nmsc.adb: Minor reformatting
22562
22563         * snames.adb: Updated to match snames.ads
22564
22565         * snames.ads: Alphebetize entries for project file
22566
22567 2001-12-17  Ed Schonberg <schonber@gnat.com>
22568
22569         * trans.c (process_freeze_entity): Do nothing if the entity is a
22570         subprogram that was already elaborated.
22571
22572 2001-12-17  Richard Kenner <kenner@gnat.com>
22573
22574         * decl.c (gnat_to_gnu_entity, object): Do not back-annotate Alignment
22575         and Esize if object is referenced via pointer.
22576
22577 2001-12-17  Ed Schonberg <schonber@gnat.com>
22578
22579         * sem_ch3.adb (Analyze_Variant_Part): check that type of discriminant
22580         is discrete before analyzing choices.
22581
22582 2001-12-17  Joel Brobecker <brobecke@gnat.com>
22583
22584         * bindgen.adb (Gen_Output_File_Ada): Generate a new C-like string
22585         containing the name of the Ada Main Program. This string is mainly
22586         intended for the debugger.
22587         (Gen_Output_File_C): Do the equivalent change when generating a C file.
22588
22589 2001-12-17  Robert Dewar <dewar@gnat.com>
22590
22591         * ali.adb: Set new Dummy_Entry field in dependency entry
22592
22593         * ali.ads: Add Dummy_Entry field to source dependency table
22594
22595         * bcheck.adb (Check_Consistency): Ignore dummy D lines
22596
22597         * lib-writ.adb (Writ_ALI): Write dummy D lines for missing source files
22598
22599         * lib-writ.ads: Document dummy D lines for missing files.
22600
22601         * types.ads: (Dummy_Time_Stamp): New value for non-existant files
22602
22603 2001-12-17  Robert Dewar <dewar@gnat.com>
22604
22605         * ali.adb: Type reference does not reset current file.
22606
22607         * ali.adb: Recognize and scan renaming reference
22608
22609         * ali.ads: Add spec for storing renaming references.
22610
22611         * lib-xref.ads: Add documentation for handling of renaming references
22612
22613         * lib-xref.adb: Implement output of renaming reference.
22614
22615         * checks.adb:
22616         (Determine_Range): Document local variables
22617         (Determine_Range): Make sure Hbound is initialized. It looks as though
22618          there could be a real problem here with an uninitialized reference
22619          to Hbound, but no actual example of failure has been found.
22620
22621 2001-12-17  Laurent Pautet <pautet@gnat.com>
22622
22623         * g-socket.ads:
22624         Fix comment of Shutdown_Socket and Close_Socket. These functions
22625         should not fail silently because if they are called twice, this
22626         probably means that there is a race condition in the user program.
22627         Anyway, this behaviour is consistent with the rest of this unit.
22628         When an error occurs, an exception is raised with the error message
22629         as exception message.
22630
22631 2001-12-17  Robert Dewar <dewar@gnat.com>
22632
22633         * frontend.adb: Move call to Check_Unused_Withs from Frontend, so
22634         that it happens before modification of Sloc values for -gnatD.
22635
22636         * gnat1drv.adb: Move call to Check_Unused_Withs to Frontend,
22637         so that it happens before modification of Sloc values for -gnatD.
22638
22639         * switch.adb: Minor reformatting
22640
22641 2001-12-15  Richard Henderson  <rth@redhat.com>
22642
22643         * sem_ch7.adb: Wrap comment.
22644
22645 2001-12-16  Joseph S. Myers  <jsm28@cam.ac.uk>
22646
22647         * 5ataprop.adb, 5atpopsp.adb, 5ftaprop.adb, 5gmastop.adb,
22648         5gtaprop.adb, 5htaprop.adb, 5itaprop.adb, 5lintman.adb,
22649         5omastop.adb, 5oosinte.adb, 5otaprop.adb, 5staprop.adb,
22650         5vinterr.adb, 5vtaprop.adb, 5vtpopde.adb, 5wintman.adb,
22651         5wtaprop.adb, 5zinterr.adb, 5ztaprop.adb, 6vcstrea.adb,
22652         7sintman.adb, 7staprop.adb, 9drpc.adb, ChangeLog, Makefile.in,
22653         a-except.adb, a-tags.ads, a-tasatt.adb, a-teioed.adb,
22654         a-textio.ads, a-witeio.ads, a-wtedit.adb, ali.ads, comperr.adb,
22655         cstand.adb, einfo.ads, errout.adb, exp_ch11.adb, exp_ch2.adb,
22656         exp_ch3.adb, exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch9.adb,
22657         exp_util.adb, exp_util.ads, fname-uf.adb, g-cgi.ads, g-exctra.ads,
22658         g-expect.ads, g-regist.adb, g-spipat.adb, gnatchop.adb,
22659         gnatlink.adb, gnatls.adb, gnatmain.adb, gnatmem.adb, init.c,
22660         make.adb, make.ads, mdlltool.adb, nlists.ads, osint.ads,
22661         par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb, par.adb,
22662         repinfo.adb, s-fatflt.ads, s-fatlfl.ads, s-fatllf.ads,
22663         s-fatsfl.ads, s-finimp.adb, s-finimp.ads, s-interr.adb,
22664         s-secsta.ads, s-shasto.ads, s-stalib.adb, s-stalib.ads,
22665         s-tarest.ads, s-tasdeb.adb, s-tassta.adb, s-tassta.ads,
22666         s-vaflop.ads, scans.ads, scn.adb, sem.ads, sem_aggr.adb,
22667         sem_attr.adb, sem_case.ads, sem_ch10.adb, sem_ch12.adb,
22668         sem_ch13.adb, sem_ch3.adb, sem_ch3.ads, sem_ch5.adb, sem_ch7.adb,
22669         sem_ch8.adb, sem_ch8.ads, sem_type.adb, sem_util.ads, sinfo.ads,
22670         sprint.adb, tbuild.ads, types.ads, utils.c, xeinfo.adb: Fix
22671         spelling errors.
22672
22673 2001-12-14  Vincent Celier <celier@gnat.com>
22674
22675         * osint.adb(Create_Debug_File): When an object file is specified,
22676         put the .dg file in the same directory as the object file.
22677
22678 2001-12-14  Robert Dewar <dewar@gnat.com>
22679
22680         * osint.adb: Minor reformatting
22681
22682         * lib-xref.adb (Output_Instantiation): New procedure to generate
22683         instantiation references.
22684
22685         * lib-xref.ads: Add documentation of handling of generic references.
22686
22687         * ali.adb (Read_Instantiation_Ref): New procedure to read
22688         instantiation references
22689
22690         * ali.ads: Add spec for storing instantiation references
22691
22692         * bindusg.adb: Minor reformatting
22693
22694         * switch.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
22695
22696         * usage.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
22697
22698         * gnatcmd.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
22699
22700         * csets.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
22701
22702         * csets.ads:
22703         Fix header format
22704         Add 2001 to copyright date
22705         Add entry for Latin-5 (Cyrillic ISO-8859-5)
22706
22707 2001-12-14  Matt Gingell <gingell@gnat.com>
22708
22709         * adaint.c: mktemp is a macro on Lynx and can not be used as an
22710         expression.
22711
22712 2001-12-14  Richard Kenner <kenner@gnat.com>
22713
22714         * misc.c (gnat_expand_constant): Do not strip UNCHECKED_CONVERT_EXPR
22715         if operand is CONSTRUCTOR.
22716
22717 2001-12-14  Ed Schonberg <schonber@gnat.com>
22718
22719         * trans.c (tree_transform, case N_Assignment_Statement): Set lineno
22720         before emiting check on right-hand side, so that exception information
22721         is correct.
22722
22723 2001-12-14  Richard Kenner <kenner@gnat.com>
22724
22725         * utils.c (create_var_decl): Throw away initializing expression
22726         if just annotating types and non-constant.
22727
22728 2001-12-14  Vincent Celier <celier@gnat.com>
22729
22730         * prj-nmsc.adb: (Ada_Check): Migrate drom Ada_Default_... to
22731         Default_Ada_...
22732
22733         * prj.adb: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
22734         Remove functions.
22735         (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Move to spec.
22736
22737         * prj.ads: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
22738         Remove functions.
22739         (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Move from body.
22740
22741 2001-12-16  Joseph S. Myers  <jsm28@cam.ac.uk>
22742
22743         * ChangeLog: Remove piece of diff output.
22744
22745 2001-12-14  Geert Bosch <bosch@gnat.com>
22746
22747         * config-lang.in: Update copyright notice
22748
22749         * layout.adb: Remove commented out code.
22750
22751         * mdllfile.ads: Update copyright notice. Fix header format.
22752
22753         * sem_case.ads: Likewise.
22754
22755         * sem_ch3.adb: Minor reformatting.
22756
22757 2001-12-12  Geert Bosch <bosch@gnat.com>
22758
22759         * freeze.ads: Update copyright date.
22760
22761         * g-comlin.ads: Minor reformatting.
22762
22763         * gnat-style.texi: Fix typo.
22764
22765 2001-12-12  Geert Bosch <bosch@gnat.com>
22766
22767         *  einfo.h: Regenerate.
22768
22769 2001-12-12  Ed Schonberg <schonber@gnat.com>
22770
22771         * sem_ch12.adb (Save_Entity_Descendant): Use syntactic field names
22772         on known node types, rather than untyped fields. Further cleanups.
22773
22774 2001-12-12  Robert Dewar <dewar@gnat.com>
22775
22776         * sem_ch12.adb:
22777         (Save_Entity_Descendant): Minor comment update.
22778         (Copy_Generic_Node): Deal with incorrect reference to Associated_Node
22779          of an N_Attribute_Reference node. As per note below, this does not
22780         eliminate need for Associated_Node in attribute ref nodes.
22781         (Associated_Node): Documentation explicitly mentions attribute
22782         reference nodes, since this field is used in such nodes.
22783
22784         * sem_ch12.adb (Associated_Node): Minor documentation cleanup.
22785
22786 2001-12-12  Robert Dewar <dewar@gnat.com>
22787
22788         * s-stalib.adb: Add more comments on with statements being needed
22789
22790         * par-ch12.adb: Minor reformatting
22791
22792         * prj-dect.ads: Fix copyright header
22793
22794         * s-arit64.adb (Multiply_With_Ovflo_Check): Fix case where both
22795         inputs fit in 32 bits, but the result still overflows.
22796
22797         * s-fatgen.ads: Minor comment improvement
22798
22799 2001-12-12  Ed Schonberg <schonber@gnat.com>
22800
22801         * sem_ch4.adb (Analyze_Selected_Component): If the prefix is of a
22802         formal derived type, look for an inherited component from the full
22803         view of the parent, if any.
22804
22805 2001-12-12  Robert Dewar <dewar@gnat.com>
22806
22807         * checks.ads (Apply_Alignment_Check): New procedure.
22808
22809         * exp_ch13.adb (Expand_N_Freeze_Entity): Generate dynamic check to
22810         ensure that the alignment of objects with address clauses is
22811         appropriate, and raise PE if not.
22812
22813         * exp_util.ads (Must_Be_Aligned): Removed, replaced by
22814         Exp_Pakd.Known_Aligned_Enough
22815
22816         * mdllfile.ads: Minor reformatting
22817
22818         * mlib-fil.ads: Minor reformatting
22819
22820 2001-12-12  Ed Schonberg <schonber@gnat.com>
22821
22822         * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Extend previous
22823         fix to any component reference if enclosing record has non-standard
22824         representation.
22825
22826 2001-12-12  Vincent Celier <celier@gnat.com>
22827
22828         * g-dirope.ads (Find, Wildcard_Iterator): Moved to child package
22829         Iteration
22830
22831 2001-12-12  Ed Schonberg <schonber@gnat.com>
22832
22833         * freeze.ads: Make Freeze_Fixed_Point_Type visible, for use in
22834         sem_attr.
22835
22836 2001-12-12  Robert Dewar <dewar@gnat.com>
22837
22838         * impunit.adb: Add entry for GNAT.Directory_Operations.Iteration
22839
22840 2001-12-12  Emmanuel Briot <briot@gnat.com>
22841
22842         * g-regexp.adb: Remove all debug code, since it isn't required anymore,
22843         and it adds dependencies to system.io.
22844
22845 2001-12-12  Pascal Obry <obry@gnat.com>
22846
22847         * g-dirope.adb (Expand_Path.Var): Correctly detect end of
22848         variable name.
22849
22850 2001-12-11  Ed Schonberg <schonber@gnat.com>
22851
22852         * sem_ch10.adb (Install_Withed_Unit): If the unit is a generic instance
22853         that is the parent of other generics, the instance body replaces the
22854         instance node.  Retrieve the instance of the spec, which is the one
22855         that is visible in clients and within the body.
22856
22857 2001-12-11  Vincent Celier <celier@gnat.com>
22858
22859         * gnatmain.adb: Initial version.
22860
22861         * gnatmain.ads: Initial version.
22862
22863         * prj-attr.adb (Initialisation_Data): Add package Gnatstub.
22864
22865         * snames.adb: Updated to match snames.ads.
22866
22867         * snames.ads: Added Gnatstub.
22868
22869 2001-12-11  Vincent Celier <celier@gnat.com>
22870
22871         * prj-attr.adb (Initialization_Data): Change name from
22872         Initialisation_Data.
22873
22874 2001-12-11  Emmanuel Briot <briot@gnat.com>
22875
22876         * g-regpat.adb (Parse_Literal): Properly handle simple operators ?,
22877         + and * applied to backslashed expressions like \r.
22878
22879 2001-12-11  Vasiliy Fofanov <fofanov@gnat.com>
22880
22881         * g-os_lib.ads: String_List type added, Argument_List type is now
22882         subtype of String_List.
22883
22884 2001-12-11  Robert Dewar <dewar@gnat.com>
22885
22886         * g-os_lib.ads: Change copyright to FSF
22887         Add comments for String_List type
22888
22889 2001-12-11  Vincent Celier <celier@gnat.com>
22890
22891         * g-dirope.adb (Expand_Path): Fix bug. (wrong length when adding a
22892         string to the buffer).
22893
22894 2001-12-11  Ed Schonberg <schonber@gnat.com>
22895
22896         * freeze.adb: Make Freeze_Fixed_Point_Type visible, for use in
22897         sem_attr.
22898
22899         * sem_attr.adb: Simplify previous fix for Address.
22900         (Set_Bounds): If prefix is a non-frozen fixed-point type, freeze now,
22901         to avoid anomalies where the bound of the type appears to raise
22902         constraint error.
22903
22904 2001-12-11  Robert Dewar <dewar@gnat.com>
22905
22906         * lib-xref.adb (Output_Refs): Make sure pointers are always properly
22907         handled.
22908
22909 2001-12-11  Ed Schonberg <schonber@gnat.com>
22910
22911         * sem_ch12.adb (Analyze_Subprogram_Instantiation): Check for a
22912         renamed unit before checking for recursive instantiations.
22913
22914 2001-12-11  Emmanuel Briot <briot@gnat.com>
22915
22916         * prj.ads: Add comments for some of the fields.
22917
22918 2001-12-11  Robert Dewar <dewar@gnat.com>
22919
22920         * lib-xref.adb (Output_Refs): Don't output type references outside
22921         the main unit if they are not otherwise referenced.
22922
22923 2001-12-11  Ed Schonberg <schonber@gnat.com>
22924
22925         * sem_attr.adb (Analyze_attribute, case Address and Size): Simplify
22926         code and diagnose additional illegal uses
22927
22928         * sem_util.adb (Is_Object_Reference): An indexed component is an
22929         object only if the prefix is.
22930
22931 2001-12-11  Vincent Celier <celier@gnat.com>
22932
22933         * g-diopit.adb: Initial version.
22934
22935         * g-diopit.ads: Initial version.
22936
22937         * g-dirope.adb:
22938         (Expand_Path): Avoid use of Unbounded_String
22939         (Find, Wildcard_Iterator): Moved to child package Iteration
22940
22941         * Makefile.in: Added g-diopit.o to GNATRTL_NONTASKING_OBJS
22942
22943 2001-12-11  Robert Dewar <dewar@gnat.com>
22944
22945         * sem_attr.adb: Minor reformatting
22946
22947 2001-12-11  Ed Schonberg <schonber@gnat.com>
22948
22949         * sem_ch3.adb: Clarify some ???.
22950
22951 2001-12-11  Robert Dewar <dewar@gnat.com>
22952
22953         * exp_util.adb (Must_Be_Aligned): Removed, replaced by
22954         Exp_Pakd.Known_Aligned_Enough
22955
22956         * sem_ch13.adb (Check_Address_Alignment): Removed, extended
22957         version is moved to Exp_Ch13.
22958
22959 2001-12-11  Robert Dewar <dewar@gnat.com>
22960
22961         * einfo.ads: Minor reformatting
22962
22963         * exp_ch5.adb: Add comment for previous.change
22964
22965         * ali.adb: New interface for extended typeref stuff.
22966
22967         * ali.ads: New interface for typeref stuff.
22968
22969         * checks.adb (Apply_Alignment_Check): New procedure.
22970
22971         * debug.adb: Add -gnatdM for modified ALI output
22972
22973         * exp_pakd.adb (Known_Aligned_Enough): Replaces Known_Aligned_Enough.
22974
22975         * lib-xref.adb: Extend generation of <..> notation to cover
22976         subtype/object types. Note that this is a complete rewrite,
22977         getting rid of the very nasty quadratic algorithm previously
22978         used for derived type output.
22979
22980         * lib-xref.ads: Extend description of <..> notation to cover
22981         subtype/object types. Uses {..} for these other cases.
22982         Also use (..) for pointer types.
22983
22984         * sem_util.adb (Check_Potentially_Blocking_Operation): Slight cleanup.
22985
22986         * exp_pakd.adb: Minor reformatting.  Note that prevous RH should say:
22987         (Known_Aligned_Enough): Replaces Must_Be_Aligned.
22988
22989 2001-12-11  Vincent Celier <celier@gnat.com>
22990
22991         * gnatcmd.adb:
22992         Changed /COMPILE_ONLY to /ACTIONS=COMPILE
22993         Changed /BIND_ONLY to /ACTIONS=BIND
22994         Changed /LINK_ONLY to /ACTIONS=LINK
22995
22996 2001-12-11  Ed Schonberg  <schonber@gnat.com>
22997
22998         * sem_ch8.adb (Find_Selected_Component): improved search for a
22999         candidate package in case of error.
23000
23001         * sem_ch12.adb (Inline_Instance_Body): place head of use_clause
23002         chain back on scope stack before reinstalling use clauses.
23003
23004         * exp_ch5.adb (Expand_N_If_Statement): if Constant_Condition_Warnings
23005         is enabled, do not kill the code for the condition, to preserve
23006         warning.
23007
23008 2001-12-11  Robert Dewar <dewar@gnat.com>
23009
23010         * checks.adb (Insert_Valid_Check): Apply validity check to expression
23011         of conversion, not to result of conversion.
23012
23013 2001-12-11  Ed Schonberg <schonber@gnat.com>
23014
23015         * sem_ch3.adb (Build_Derived_Record_Type): set Controlled flag
23016         before freezing parent. If the declarations are mutually recursive,
23017         an access to the current record type may be frozen before the
23018         derivation is complete.
23019
23020 2001-12-05  Vincent Celier <celier@gnat.com>
23021
23022         * gnatcmd.adb: (MAKE): Add new translations: -b /BIND_ONLY,
23023         -c /COMPILE_ONLY, -l /LINK_ONLY
23024
23025         * opt.ads:
23026         (Bind_Only): New Flag
23027         (Link_Only): New flag
23028
23029         * switch.adb (Scan_Make_Switches): Add processing for -b (Bind_Only)
23030         and -l (Link_Only)
23031
23032         * makeusg.adb: Add new switches -b and -l. Update Copyright notice.
23033
23034         * make.adb:
23035         (Do_Compile_Step, Do_Bind_Step, Do_Link_Step): New flags.
23036         (Gnatmake): Set the step flags. Only perform a step if the
23037         corresponding step flag is True.
23038         (Scan_Make_Arg): Reset the bind and link step flags when -u
23039         or -gnatc has been specified.
23040
23041 2001-12-05  Ed Schonberg <schonber@gnat.com>
23042
23043         * sem_eval.adb (Eval_Concatenation): If left operand is a null string,
23044         get bounds from right operand.
23045
23046         * sem_eval.adb: Minor reformatting
23047
23048         * exp_util.adb (Make_Literal_Range): use bound of literal rather
23049         than Index'First, its lower bound may be different from 1.
23050
23051         * exp_util.adb: Undo earlier change, fixes ACVC regressions C48009B
23052         and C48009J
23053
23054 2001-12-05  Vincent Celier <celier@gnat.com>
23055
23056         * prj-nmsc.adb Minor reformatting
23057
23058         * prj-nmsc.adb (Language_Independent_Check): Reset Library flag if
23059         set and libraries are not supported.
23060
23061 2001-12-05  Ed Schonberg <schonber@gnat.com>
23062
23063         * sem_ch3.adb (Build_Derived_Private_Type): set Public status of
23064         private view explicitly, so the back-end can treat as a global
23065         when appropriate.
23066
23067 2001-12-05  Ed Schonberg <schonber@gnat.com>
23068
23069         * sem_ch12.adb (Instantiate_Package_Body): if instance is a compilation
23070          unit, always replace instance node with new body, for ASIS use.
23071
23072 2001-12-05  Vincent Celier <celier@gnat.com>
23073
23074         * prj-nmsc.adb (Language_Independent_Check): Issue a warning if
23075         libraries are not supported and both attributes Library_Name and
23076         Library_Dir are specified.
23077
23078         * prj-proc.adb (Expression): Set location of Result to location of
23079         first term.
23080
23081         * Makefile.in: Add mlib.o, mlib-fil.o, mlib-tgt and mlib-utl to GNATLS.
23082         (prj-nmsc is now importing MLib.Tgt)
23083
23084         * prj-proc.adb: Put the change indicated above that was forgotten.
23085
23086 2001-12-05  Robert Dewar <dewar@gnat.com>
23087
23088         * Makefile.in: Add dependencies for System.IO for GNAT.Regexp
23089
23090 2001-12-05  Ed Schonberg <schonber@gnat.com>
23091
23092         * sem_ch3.adb (Build_Derived_Concurrent_Type): If derivation imposes a
23093         constraint, introduce explicit subtype declaration and derive from it.
23094
23095         * sem_ch3.adb: Minor reformatting
23096
23097 2001-12-05  Robert Dewar <dewar@gnat.com>
23098
23099         * checks.adb (Determine_Range): Increase cache size for checks.
23100         Minor reformatting
23101
23102         * exp_ch6.adb: Minor reformatting
23103         (Expand_N_Subprogram_Body): Reset Is_Pure for any subprogram that has
23104         a parameter whose root type is System.Address, since treating such
23105         subprograms as pure in the code generator is almost surely a mistake
23106         that will lead to unexpected results.
23107
23108         * exp_util.adb (Remove_Side_Effects): Clean up old ??? comment and
23109         change handling of conversions.
23110
23111         * g-regexp.adb: Use System.IO instead of Ada.Text_IO.
23112
23113 2001-12-05  Ed Schonberg <schonber@gnat.com>
23114
23115         * sem_ch3.adb (Analyze_Object_Declaration): If expression is an
23116         aggregate with static wrong size, attach generated Raise node to
23117         declaration.
23118
23119 2001-12-05  Robert Dewar <dewar@gnat.com>
23120
23121         * sem_attr.adb (Analyze_Attribute): Defend against bad Val attribute.
23122         Fixes compilation abandoned bomb in B24009B.
23123
23124 2001-12-05  Ed Schonberg <schonber@gnat.com>
23125
23126         * sem_ch12.adb:
23127         Document use of Associated_Node on Selected_Components.
23128         (Save_Global_Operand_Descendants): Change to Save_Entity_Descendants,
23129         to clarify use of untyped descendant fields.
23130
23131 2001-12-05  Robert Dewar <dewar@gnat.com>
23132
23133         * prj-dect.ads: Add ??? comment
23134         Add 2001 to copyright notice (was not done in after all)
23135
23136         * prj-part.adb: Minor reformatting. Reword one awkward error message.
23137
23138         * prj.ads: Minor reformatting throughout, and add some ??? comments
23139
23140         * snames.ads: Minor reformatting
23141
23142 2001-12-05  Geert Bosch <bosch@gnat.com>
23143
23144         * snames.adb: Autoupdate
23145
23146 2001-12-05  Vincent Celier <celier@gnat.com>
23147
23148         * prj-dect.adb (Parse): Rename parameter Modifying to Extends.
23149
23150         * prj-dect.ads (Parse): Rename parameter Modifying to Extends.
23151
23152         * prj-env.adb: Minor comment changes (modifying -> extends).
23153
23154         * prj-nmsc.adb: Minor comment changes (modifying -> extends).
23155
23156         * prj-part.adb (Parse_Single_Project): Change Tok_Modifying to
23157         Tok_Extends.
23158
23159         * prj.adb (Initialize): Change Modifying to Extends.
23160
23161         * scans.ads (Token_Type): Change Tok_Modifying to Tok_Extends.
23162
23163         * prj.ads: Minor comment change (Modifying -> extending).
23164
23165         * snames.ads: Change modifying to extends.
23166
23167 2001-12-05  Robert Dewar <dewar@gnat.com>
23168
23169         * sem_warn.adb: Remove stuff for conditionals, we are not going to
23170         do this after all.
23171
23172         * sem_warn.ads: Remove stuff for conditionals, we are not going to
23173         do this after all.  Add 2001 to copyright notice
23174
23175 2001-12-04  Geert Bosch <bosch@gnat.com>
23176
23177         *  einfo.h, sinfo.h, treeprs.ads: Regenerate.
23178
23179 2001-12-04  Robert Dewar <dewar@gnat.com>
23180
23181         * errout.adb (Error_Msg): Ignore attempt to put error msg at junk
23182         location if we already have errors. Stops some cases of cascaded
23183         errors.
23184
23185         * errout.adb: Improve comment.
23186
23187 2001-12-04  Robert Dewar <dewar@gnat.com>
23188
23189         * sem_ch12.adb:
23190         (Analyze_Formal_Type_Definition): Defend against Error.
23191         (Analyze_Formal_Subprogram): Defend against Error.
23192
23193         * par-ch12.adb (F_Formal_Type_Declaration): In case of error,
23194         remove following semicolon if present. Removes cascaded error.
23195
23196 2001-12-04  Douglas B. Rupp <rupp@gnat.com>
23197
23198         * bindgen.adb:
23199         (Gen_Exception_Table_Ada): Write "begin" and then return if Num
23200          exceptions equals 0.
23201         (Gen_Exception_Table_C): Return if Num exceptions equals 0.
23202         Fixes PIWG E tests (which have to be run with -gnatL).
23203
23204 2001-12-04  Robert Dewar <dewar@gnat.com>
23205
23206         * einfo.ads: Minor reformatting
23207
23208 2001-12-04  Ed Schonberg <schonber@gnat.com>
23209
23210         * einfo.ads: Block_Node points to the identifier of the block, not to
23211         the block node itself, to preserve the link when the block is
23212         rewritten, e.g. within an if-statement with a static condition.
23213
23214         * inline.adb (Cleanup_Scopes): recover block statement from block
23215         entity using new meaning of Block_Node.
23216
23217         * sem_ch5.adb (Analyze_Block_Statement): set Block_Node to point to
23218         identifier of block node, rather than to node itself.
23219
23220 2001-12-04  Gary Dismukes <dismukes@gnat.com>
23221
23222         * layout.adb:
23223         (Get_Max_Size): Fix "start of processing" comment to say Get_Max_Size.
23224         (Discrimify): Go back to setting the Etypes of the selected component
23225         because the Vname component does not exist at this point and will
23226         fail name resolution. Also set Analyzed.
23227         Remove with and use of Sem_Res.
23228
23229 2001-12-04  Arnaud Charlet <charlet@gnat.com>
23230
23231         * Makefile.in: (HIE_SOURCES): add s-fat*.
23232
23233 2001-12-04  Robert Dewar <dewar@gnat.com>
23234
23235         * sem_attr.adb:
23236         (Compile_Time_Known_Attribute): New procedure.
23237         (Eval_Attribute, case Size): Use Compile_Time_Known_Attribute to ensure
23238          proper range check.
23239
23240 2001-12-04  Ed Schonberg <schonber@gnat.com>
23241
23242         * sem_ch7.adb (New_Private_Type): Set Is_Tagged_Type flag before
23243         processing discriminants to diagnose illegal default values.
23244
23245 2001-12-04  Ed Schonberg <schonber@gnat.com>
23246
23247         * sem_attr.adb (Resolve_Attribute): Handle properly an non-classwide
23248         access discriminant within a type extension that constrains its
23249         parent discriminants.
23250
23251 2001-12-04  Ed Schonberg <schonber@gnat.com>
23252
23253         * sem_ch3.adb (Find_Type_Of_Subtype_Indic): If subtype indication
23254         is malformed, use instance of Any_Id to allow analysis to proceed.
23255
23256         * par-ch12.adb (P_Formal_Type_Declaration): Propagate Error if
23257         type definition is illegal.
23258         (P_Formal_Derived_Type_Definition): Better recovery when TAGGED is
23259         misplaced.
23260
23261 2001-12-04  Ed Schonberg <schonber@gnat.com>
23262
23263         * sem_warn.adb (Output_Unreferenced_Messages): Extend previous fix to
23264         constants.
23265
23266 2001-12-04  Robert Dewar <dewar@gnat.com>
23267
23268         * errout.adb: Minor reformatting
23269
23270 2001-12-04  Robert Dewar <dewar@gnat.com>
23271
23272         * exp_util.adb: Minor reformatting from last change
23273
23274         * errout.adb (Check_For_Warning): For a Raised_Constraint_Error node
23275         which is a rewriting of an expression, traverse the original
23276         expression to remove warnings that may have been posted on it.
23277
23278 2001-12-04  Ed Schonberg <schonber@gnat.com>
23279
23280         * exp_util.adb (Must_Be_Aligned): Return false for a component of a
23281         record that has other packed components.
23282
23283 2001-12-04  Douglass B. Rupp <rupp@gnat.com>
23284
23285         * adaint.c: Minor cleanups.
23286
23287 2001-12-04  Douglass B. Rupp <rupp@gnat.com>
23288
23289         * adaint.c: Do not use utime.h on vxworks.
23290
23291 2001-12-04  Arnaud Charlet <charlet@gnat.com>
23292
23293         * Makefile.adalib: Clarify step 3 (use of gnat.adc) as it causes
23294         more confusion than it solves.
23295
23296 2001-12-04  Geert bosch <bosch@gnat.com>
23297
23298         * einfo.h, nmake.adb, nmake.ads, sinfo.h treeprs.ads: Regenerate.
23299
23300 2001-12-04  Geert Bosch  <bosch@gnat.com>
23301
23302         * Makefile.in (update-sources): New target.
23303         For use by gcc_release script.
23304
23305 2001-12-04  Ed Schonberg <schonber@gnat.com>
23306
23307         * sem_prag.adb (Analyze_Pragma, case Validity_Checks): do not treat as
23308         a configuration pragma, it is now legal wherever a pragma can appear.
23309
23310 2001-12-04  Zack Weinberg  <zack@codesourcery.com>
23311
23312         * Makefile.in: Don't set ALL.  Delete @cross_defines@,
23313         @cross_overrides@, @build_overrides@ stanzas.  INTERNAL_CFLAGS
23314         is now @CROSS@ -DIN_GCC; update comment.
23315
23316 2001-12-04  Robert Dewar <dewar@gnat.com>
23317
23318         * einfo.adb (Has_Pragma_Pure_Function): New flag.
23319         Fix problem that stopped ceinfo from working
23320
23321         * einfo.ads (Has_Pragma_Pure_Function): New flag.
23322
23323         * sem_prag.adb (Pure_Function): Set new flag Has_Pragma_Pure_Function.
23324
23325 2001-12-04  Douglas B. Rupp <rupp@gnat.com>
23326
23327         * gnatchop.adb:
23328         (File_Time_Stamp): New procedure.
23329         (Preserve_Mode): New boolean.
23330         (Write_Unit): Pass time stamp.
23331         Implement -p switch (preserve time stamps).
23332
23333         * gnatcmd.adb (CHOP): Add translation for -p (/PRESERVE).
23334
23335         * gnatchop.adb: Do usage info for -p switch
23336
23337         * adaint.h (__gnat_set_file_time_name): New function
23338
23339         * adaint.c (__gnat_set_file_time_name): Implement
23340
23341         * adaint.h: Fix typo
23342
23343 2001-12-03  Robert Dewar <dewar@gnat.com>
23344
23345         * sinfo.ads: Minor reformatting. N_Freeze_Entity node does not
23346         have Associated_Node.
23347
23348 2001-12-03  Robert Dewar <dewar@gnat.com>
23349
23350         * prj-proc.adb: Minor reformatting
23351
23352         * make.adb: Minor reformatting
23353
23354 2001-12-03  Geert Bosch <bosch@gnat.com>
23355
23356         * make.adb: Minor reformatting.
23357
23358 2001-12-03 Robert Dewar  <dewar@gnat.com>
23359
23360         * sem_ch12.adb: Minor reformatting
23361
23362 2001-12-03  Ed Schonberg <schonber@gnat.com>
23363
23364         * sem_ch12.adb (Inline_Instance_Body): Use Save_Scope_Stack and
23365         push Standard on the stack before analyzing the instance body,
23366         in order to have a clean visibility environment.
23367
23368         * sem_ch12.adb (Inline_Instance_Body): Remove redundant code.
23369
23370 2001-12-03  Ed Schonberg <schonber@gnat.com>
23371
23372         * sem_ch12.adb (Instantiate_Package_Body): Protect against double
23373         instantiation of a body that contains an inlined body.
23374
23375 2001-12-03  Ed Schonberg <schonber@gnat.com>
23376
23377         * sem_ch12.adb:
23378         (Analyze_generic_subprogram_Declaration): Set outer_generic_scope,
23379         to prevent freezing within formal packages.
23380         (Freeze_Subprogram_Body): If body comes from another instance that
23381         appeared before its own body, place freeze node at end of current
23382         declarative part, to prevent a back-end crash.
23383         (Inline_Instance_Body): Handle properly a package instance within
23384         a subprogram instance that is a child unit.
23385
23386 2001-12-01  Graham Stott  <grahams@redhat.com>
23387
23388         * Makefile.in (misc.o): Add missing $(srcdir) prefix
23389         and add optabs.h dependency.
23390
23391         * misc.c: Include optabs.h
23392         (gnat_tree_code_type): Make static and const.
23393         (gnat_tree_code_length): Likewise.
23394         (gnat_tree_code_name): Likewise.
23395         (update_setjmp_buf): Obtain operands mode from insn_data.
23396
23397 2001-11-29  Richard Henderson  <rth@redhat.com>
23398
23399         * init.c: Remove obsolete dwarf2 frame.h section.
23400
23401 2001-11-29  Joseph S. Myers  <jsm28@cam.ac.uk>
23402
23403         * Make-lang.in (ada.generated-manpages): New dummy target.
23404
23405 2001-11-29  Ed Schonberg <schonber@gnat.com>
23406
23407         * g-os_lib.adb (Add_To_Command): use explicit loop to move string
23408         into Command, an array conversion is illegal here. Uncovered by
23409         ACATS B460005.
23410
23411 2001-11-28  Geert Bosch <bosch@gnat.com>
23412
23413         * init.c: Minor whitespace changes.
23414
23415 2001-11-28  Doug Rupp <rupp@gnat.com>
23416
23417         * init.c: (__gnat_install_handler,VMS): Increase size of alternate
23418         signal stack.
23419
23420 2001-11-28  Zack Weinberg  <zack@codesourcery.com>
23421
23422         * misc.c (gnat_expand_constant): Move declaration above
23423         definition of lang_hooks.
23424         (LANG_HOOKS_EXPAND_CONSTANT): Set to gnat_expand_constant.
23425         (gnat_init): lang_expand_constant no longer exists.
23426
23427         (internal_error_function): Remove #ifdef HAVE_VPRINTF.  We
23428         always have vprintf.
23429         (gnat_init): Always call set_internal_error_function.
23430
23431 2001-11-27  Andreas Jaeger  <aj@suse.de>
23432
23433         * Makefile.in (stamp-tool_src_dir): Use symbolic link.
23434
23435 2001-11-27  Laurent Guerby  <guerby@acm.org>
23436
23437         * Makefile.in: Regenerate Ada dependencies.
23438
23439 2001-11-26  Richard Henderson  <rth@redhat.com>
23440
23441         * Make-lang.in (gnatbind, gnatmake, gnatbl, gnatchop, gnatcmd,
23442         gnatlink, gnatkr, gnatls, gnatmem, gnatprep, gnatpsta, gnatpsys,
23443         gnatxref, gnatfind, gnatlbr): Depend on CONFIG_H and prefix.o.
23444
23445 2001-11-25  Laurent Guerby  <guerby@acm.org>
23446
23447         * sysdep.c (rts_get_*): Fix style.
23448
23449 2001-11-19  Laurent Guerby  <guerby@acm.org>
23450
23451         * Makefile.in (INCLUDES_FOR_SUBDIR): Remove redundant system include
23452         since it is of no apparent use and cause warnings.
23453
23454 2001-11-18  Neil Booth  <neil@daikokuya.demon.co.uk>
23455
23456         * misc.c (gnat_decode_option, gnat_init_options): Make definitions
23457         static too.
23458         (gnat_init): Don't return NULL.
23459         (finish_parse): Remove.
23460
23461 2001-11-17  Laurent Guerby  <guerby@acm.org>
23462
23463         * Make-lang.in (GNATLIBFLAGS): Add -W -Wall.
23464         * gigi.h (init_decl_processing): Rename to gnat_init_decl_processing.
23465         * io-aux.c: Provide K&R prototypes to all functions, reformat code.
23466         * lang-spec.h: Add missing struct field to silence warnings.
23467         * sysdep.c (rts_get_*): Provide K&R prototype.
23468         * sysdep.c (Unlock_Task, Lock_Task): Move to K&R prototype.
23469         * traceback.c (Unlock_Task, Lock_Task): Likewise.
23470         * tracebak.c (__gnat_backtrace): Remove unused variable.
23471         * utils.c (end_subprog_body): Move to K&R style.
23472
23473 Thu Nov 15 18:16:17 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
23474
23475         * trans.c, utils2.c: Remove PALIGN parameter to get_inner_reference.
23476
23477 2001-11-15  Neil Booth  <neil@daikokuya.demon.co.uk>
23478
23479         * misc.c (gnat_init): Change prototype.  Include the
23480         functionality of the old init_parse and init_decl_processing.
23481         (gnat_init_decl_processing): New prototype.
23482         (init_parse): Remove.
23483         * utils.c (init_decl_processing): Rename gnat_init_decl_processing.
23484
23485 2001-11-09  Neil Booth  <neil@daikokuya.demon.co.uk>
23486
23487         * misc.c (gnat_print_decl, gnat_print_type): Renamed.
23488         (LANG_HOOKS_PRINT_DECL, LANG_HOOKS_PRINT_TYPE): Override.
23489         (print_lang_statistics, lang_print_xnode, print_lang_identifier,
23490         set_yydebug): Remove.
23491
23492 2001-11-09  Neil Booth  <neil@daikokuya.demon.co.uk>
23493
23494         * misc.c (LANG_HOOKS_NAME, LANG_HOOKS_IDENTIFIER_SIZE): Override.
23495         (struct lang_hooks): Constify.
23496         (language_string, lang_identify): Remove.
23497         * utils.c (init_decl_processing): Update.
23498
23499 2001-11-06  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
23500
23501         * misc.c: Include langhooks-def.h.
23502         * Makefile.in: Update.
23503
23504 2001-10-30  Robert Dewar <dewar@gnat.com>
23505
23506         * style.adb:
23507         (Check_Identifier): Rewrite circuit to be compatible with use of letters
23508         in the upper half of ASCII.
23509         (Check_Identifier): Minor reformatting
23510
23511 2001-10-30  Geert Bosch <bosch@gnat.com>
23512
23513         * (Associated_Node, Set_Associated_Node): Do not check for
23514         Freeze_Entity.
23515
23516 2001-10-30  Robert Dewar <dewar@gnat.com>
23517
23518         * a-reatim.ads: Minor reformatting
23519
23520 2001-10-30  Robert Dewar <dewar@gnat.com>
23521
23522         * gnatdll.adb: Minor reformatting throughout. Many ??? added for
23523         undocumented declarations.
23524
23525 2001-10-30  Pascal Obry <obry@gnat.com>
23526
23527         * gnatdll.adb (Parse_Command_Line): handle -g option to be passed
23528         to the binder and linker.
23529         Minor style fix.
23530
23531         * mdll.ads: Fix layout.  Update copyright notice.
23532
23533         * mdll.adb: Fix layout.  Update copyright notice.
23534
23535 2001-10-30  Robert Dewar <dewar@gnat.com>
23536
23537         * usage.adb: Minor fix to output for -gnaty.
23538
23539 2001-10-30  Ed Schonberg <schonber@gnat.com>
23540
23541         * a-reatim.ads: Makes Seconds_Count into a 64-bit integer,
23542         to accommodate all its possible values.
23543
23544         * a-reatim.adb (Split): Special-case handling of Time_Span_First
23545         and of small absolute values of T.
23546
23547 2001-10-30  Richard Kenner <kenner@gnat.com>
23548
23549         * misc.c (gnat_expand_expr, case NULL_EXPR): Remove call to
23550         set_mem_attributes since not needed and wrong if RESULT if a REG;
23551         fixes ACATS failures.
23552
23553 2001-10-30  Geert Bosch <bosch@gnat.com>
23554
23555         * 86numaux.adb, a-tigeau.ads, a-wtgeau.ads, fname-sf.ads, g-traceb.ads,
23556         s-tasdeb.ads, sem_maps.ads: Add 2001 to copyright notice.
23557
23558 2001-10-30  Robert Dewar <dewar@gnat.com>
23559
23560         * bindusg.adb: Undocument -f switch.
23561
23562         * gnatcmd.adb: Remove /FULL_ELABORATION.
23563
23564         * opt.ads (Force_RM_Elaboration_Order): Document that this is
23565         obsolescent.
23566
23567         * gnatbind.adb: Output new warning for use of obsolescent -f switch.
23568
23569         * gnatbind.adb: Minor update of warning msg.
23570
23571 2001-10-30  Vincent Celier <celier@gnat.com>
23572
23573         * gnatcmd.adb (MAKE, BIND, LINK, LIST, FIND, XREF): Add translations
23574         for project file switches (-P (/PROJECT_FILE=),
23575          -X (/EXTERNAL_REFERENCE=) and -vPx (/PROJECT_FILE_VERBOSITY=DEFAULT
23576         or MEDIUM or HIGH)
23577
23578 2001-10-30  Geert Bosch <bosch@gnat.com>
23579
23580         * decl.c: Minor whitespace fixes.
23581
23582 2001-10-30  Richard Kenner <kenner@gnat.com>
23583
23584         * utils2.c (build_allocator): Test for SIZE overflow in array case too
23585
23586 2001-10-30  Geert Bosch <bosch@gnat.com>
23587
23588         * ali-util.adb (Initialize_Checksum): Use out-mode instead of in out.
23589         Found due to GCC 3.0 warning of using uninitialized value.
23590
23591         * layout.adb:
23592         (Get_Max_Size): Use variant record for tracking value/expression.
23593          Makes logic clearer and prevents warnings for uninitialized variables.
23594         (Layout_Array_Type): Use variant record for tracking value/expression.
23595          Makes logic clearer and prevents warnings for uninitialized variables.
23596
23597 2001-10-30  Robert Dewar <dewar@gnat.com>
23598
23599         * lib.adb: Minor reformatting
23600
23601         * s-taprop.ads: Minor reformatting
23602
23603 2001-10-29  Laurent Guerby  <guerby@acm.org>
23604
23605         * init.c:
23606         (Raise_From_Signal_Handler, Propagate_Signal_Exception): Make arg
23607         const.
23608         (_gnat_error_handler): Make MSG const.
23609
23610 2001-10-29  Richard Kenner <kenner@gnat.com>
23611
23612         * sysdep.c: Fix localtime_r problem on LynxOS.
23613         Also remove #elif to avoid warnings.
23614
23615         * misc.c (yyparse): Don't set up and register jmpbuf; remove decls
23616         used by this.
23617
23618         * decl.c (annotate_value): Make SIZE unsigned to avoid warning.
23619
23620 2001-10-28  Joseph S. Myers  <jsm28@cam.ac.uk>
23621
23622         * 86numaux.adb, a-tigeau.ads, a-wtgeau.ads, decl.c, exp_ch6.adb,
23623         exp_ch9.adb, exp_util.adb, fname-sf.ads, freeze.ads, g-awk.adb,
23624         g-comlin.ads, g-dirope.adb, g-dyntab.ads, g-socket.ads,
23625         g-table.ads, g-traceb.ads, gnat-style.texi, gnatchop.adb, init.c,
23626         layout.adb, layout.ads, mdllfile.ads, mlib-fil.ads, osint.ads,
23627         s-fatgen.adb, s-imgrea.adb, s-taprop.ads, s-tasdeb.ads,
23628         sem_aggr.adb, sem_attr.adb, sem_case.ads, sem_ch13.adb,
23629         sem_ch3.adb, sem_elab.adb, sem_maps.ads, sem_res.adb,
23630         sem_util.ads, sinfo.ads, sinput.ads, table.adb, table.ads,
23631         types.ads, urealp.adb: Fix spelling errors.
23632
23633 2001-10-27  Laurent Guerby <guerby@acm.org>
23634
23635         * trans.c (gigi): Fix non determinism leading to bootstrap
23636         comparison failures for debugging information.
23637
23638 2001-10-26  Florian Weimer  <fw@deneb.enyo.de>
23639
23640         * gnat_rm.texi: Use @./@: where appropriate.
23641
23642 2001-10-26  Robert Dewar <dewar@gnat.com>
23643
23644         * sinfo.adb: Define Associated_Node to overlap Entity field. Cleanup.
23645
23646 2001-10-26  Richard Kenner <kenner@gnat.com>
23647
23648         * gmem.c (__gnat_gmem_read_next): Properly check for EOF
23649
23650 2001-10-26  Richard Kenner <kenner@gnat.com>
23651
23652         * decl.c (validate_size): Modify message for bad size to avoid
23653         implication that compiler is modifying the size.
23654
23655 2001-10-26  Robert Dewar <dewar@gnat.com>
23656
23657         * prj-util.adb: Minor reformatting. Fix bad header format.
23658
23659 2001-10-26  Robert Dewar <dewar@gnat.com>
23660
23661         * sinfo.ads: Define Associated_Node to overlap Entity field. Cleanup.
23662
23663         * sinfo.ads: Clarify use of Associated_Node (documentation only).
23664
23665         * sem_ch12.adb: Change Node4 to Associated_Node. Change
23666         Associated_Node to Get_Associated_Node. Put use of Unchecked_Access
23667         much more narrowly in places where needed. These are cleanups.
23668
23669 2001-10-26  Joel Brobecker <brobecke@gnat.com>
23670
23671         * 5zosinte.ads (null_pthread): new constant.
23672
23673         * 5ztaprop.adb:
23674         (Initialize_TCB): Initialize thread ID to null, to be able to verify
23675          later that this field has been set.
23676         (Finalize_TCB): ditto.
23677         (Suspend_Task): Verify that the thread ID is not null before using it.
23678         (Resume_Task): ditto.
23679
23680         * s-tasdeb.adb:
23681         (Resume_All_Tasks): Lock the tasks list before using it.
23682         (Suspend_All_Tasks): ditto.
23683
23684 2001-10-26  Richard Kenner <kenner@gnat.com>
23685
23686         * decl.c (gnat_to_gnu_entity, case E_General_Access_Type):
23687         Make constant variant of designated type for Is_Access_Constant.
23688         Call update_pointer_to with main variant.
23689
23690         * trans.c (process_freeze_entity, process_type):
23691         Call update_pointer_to on main variant.
23692
23693         * utils.c (update_pointer_to): Make corresponding variant for NEW_TYPE.
23694         If main variant, update all other variants.
23695
23696         * utils2.c (build_unary_op, case INDIRECT_REF): No longer set
23697         TREE_STATIC.
23698
23699 2001-10-26  Robert Dewar <dewar@gnat.com>
23700
23701         * prj-util.adb: Minor reformatting
23702
23703 2001-10-26  Robert Dewar <dewar@gnat.com>
23704
23705         * prj-util.adb: Minor reformatting
23706
23707 2001-10-26  Robert Dewar <dewar@gnat.com>
23708
23709         * prj-attr.adb: Minor reformatting throughout
23710
23711 2001-10-26  Robert Dewar <dewar@gnat.com>
23712
23713         * prj-attr.ads: Minor reformatting
23714         Add ??? comment (this whole spec has almost no comments)
23715
23716 2001-10-26  Vincent Celier <celier@gnat.com>
23717
23718         * g-os_lib.adb (Normalize_Pathname): Preserve the double slash
23719         ("//") that precede the drive letter on Interix.
23720
23721 2001-10-26  Geert Bosch <bosch@gnat.com>
23722
23723         * gnat_rm.texi: Add GNAT Reference Manual.
23724
23725 2001-10-25  Robert Dewar <dewar@gnat.com>
23726
23727         * sem_ch8.adb (Analyze_Package_Renaming): Skip analysis if Name
23728         is Error. Similar change for other renaming cases.
23729
23730 2001-10-25  Robert Dewar <dewar@gnat.com>
23731
23732         * s-atacco.ads: Add pragma Inline_Always for functions.
23733         Fix header format. Add copyright 2001
23734
23735 2001-10-25  Ed Schonberg <schonber@gnat.com>
23736
23737         * par-ch3.adb (P_Subtype_Mark_Resync): for an anonymous array
23738         return Error rather than Empty so that analysis can proceed.
23739
23740 2001-10-25  Ed Schonberg <schonber@gnat.com>
23741
23742         * sem_util.adb (Enter_Name): better handling of cascaded error
23743         messages when a unit appears in its own context.
23744
23745 2001-10-25  Ed Schonberg <schonber@gnat.com>
23746
23747         * sem_util.adb (Defining_Entity): in case of error, attach created
23748         entity to specification, so that semantic analysis can proceed.
23749
23750 2001-10-25  Robert Dewar <dewar@gnat.com>
23751
23752         * sem_util.adb
23753         (Defining_Entity): Deal with Error.
23754         (Process_End_Label): Deal with bad end label for.
23755
23756 2001-10-25  Ed Schonberg <schonber@gnat.com>
23757
23758         * sem_elab.adb (Check_A_Call): refine message when call is in an
23759         instance but callee is not declared in the generic unit.
23760
23761 2001-10-25  Ed Schonberg <schonber@gnat.com>
23762
23763         * sem_elab.adb (Check_A_Call): check for renaming before finding the
23764         enclosing unit, which may already be different from the calling unit.
23765
23766 2001-10-25  Geert Bosch <bosch@gnat.com>
23767
23768         * 4gintnam.ads: fix header format.
23769
23770 2001-10-25  Ed Schonberg <schonber@gnat.com>
23771
23772         * sem_res.adb (Resolve_Call): if the call is actually an indexing
23773         operation on the result of a parameterless call, perform elaboration
23774         check after the node has been properly rewritten.
23775
23776         * sem_ch12.adb (Copy_Generic_Node): after the proper body has been
23777         inlined within the generic tree, the defining identifier is not a
23778         compilation_unit.
23779
23780 2001-10-25  Ed Schonberg <schonber@gnat.com>
23781
23782         * sem_res.adb (Resolve): special-case resolution of Null in an
23783          instance or an inlined body to avoid view conflicts.
23784
23785         * sem_ch12.adb (Copy_Generic_Node): for allocators, check for view
23786          compatibility by retrieving the access type of the generic copy.
23787
23788 2001-10-25  Robert Dewar <dewar@gnat.com>
23789
23790         * sem_ch3.adb:
23791         (Analyze_Number_Declaration): Handle error expression.
23792         (Signed_Integer_Type_Declaration): Handle error bound.
23793         (Analyze_Subtype_Indication): Handle error range.
23794
23795         * sem_util.adb (Get_Index_Bounds): Check for Error.
23796
23797 2001-10-25  Robert Dewar <dewar@gnat.com>
23798
23799         * restrict.adb (Set_No_Run_Time_Mode): Set Discard_Names as default
23800         in no run time mode.
23801
23802 2001-10-25  Pascal Obry <obry@gnat.com>
23803
23804         * gnatmem.adb (Read_Next): fix Curs2 value to properly handle quiet
23805         mode case for ALLOC case.
23806
23807         * gnatmem.adb (Read_Next): correctly fix parsing in Quiet mode on
23808         all platforms. Improvement of last change.
23809
23810 2001-10-25  Robert Dewar <dewar@gnat.com>
23811
23812         * exp_ch4.adb (Expand_N_Allocator): Minor reformatting.
23813
23814 2001-10-25  Geert Bosch  <bosch@gnat.com>
23815
23816         * osint.adb (Is_Relative): Remove duplicate.
23817
23818 2001-10-25  Pascal Obry <obry@gnat.com>
23819
23820         * osint.adb (Read_Default_Search_Dirs): correctly detect relative
23821         pathnames in UNIX and DOS style with drive letter.
23822         (Is_Relative): new routine.
23823
23824         * osint.adb: Minor reformatting
23825
23826         * osint.adb (Is_Relative): implementation using
23827         GNAT.OS_Lib.Is_Absolute_Path. Better fix.
23828
23829 2001-10-25  Pascal Obry <obry@gnat.com>
23830
23831         * g-dirope.adb (Basename): correctly compute offset between the
23832         original Path and the translated one.
23833
23834         * g-dirope.adb: (Base_Name): add some comments.
23835
23836 2001-10-25  Robert Dewar <dewar@gnat.com>
23837
23838         * exp_imgv.adb (Expand_Image_Attribute): Defend against bad use
23839         in HIE mode, avoids compilation abandoned message
23840
23841         * exp_imgv.adb: Correct typo in previous change
23842
23843         * exp_imgv.adb: Correct typo in previous change (not my day!)
23844
23845 2001-10-25  Robert Dewar <dewar@gnat.com>
23846
23847         * s-tpinop.ads: Add 2001 to copyright notice. Fix header format.
23848
23849 2001-10-25  Pascal Obry <obry@gnat.com>
23850
23851         * g-awk.ads: Move all pragma inlines next to the routine
23852          declarations. This is more uniform with other GNAT spec.
23853
23854 2001-10-22  Geert Bosch  <bosch@gnat.com>
23855
23856         * Make-lang.in (gnattools, cross-gnattools): Remove gnatmem.
23857
23858 2001-10-19  Geert Bosch  <bosch@gnat.com>
23859
23860         * Makefile.in (tools, gnattools): Remove gnatmem.
23861
23862 2001-10-17  Richard Henderson  <rth@redhat.com>
23863
23864         * Makefile.in (misc.o): Depend on langhooks.h.
23865         * misc.c: Include it.
23866         (LANG_HOOKS_INIT, LANG_HOOKS_INIT_OPTIONS): New.
23867         (LANG_HOOKS_DECODE_OPTION): New.
23868         (lang_hooks): Use LANG_HOOKS_INITIALIZER.
23869
23870 2001-10-16  Florian Weimer  <fw@deneb.enyo.de>
23871
23872         * trans.c (tree_transform): Adjust to recent change in
23873         expand_asm_operands to implement named asm operands.
23874
23875 2001-10-11  Ed Schonberg  <schonber@gnat.com>
23876
23877         * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Bugfix in
23878         renaming of discriminant for mutable record type.
23879
23880 2001-10-11  Robert Dewar  <dewar@gnat.com>
23881
23882         * validsw.adb: Properly save -gnatVn status.
23883
23884 2001-10-11  Robert Dewar <dewar@gnat.com>
23885
23886         * usage.adb: Add lines for V switch.
23887
23888         * gnatcmd.adb (COMPILE): Revise translations for -gnatV
23889         (/VALIDITY_CHECKING).
23890
23891 2001-10-11  Ed Schonberg <schonber@gnat.com>
23892
23893         * sem_type.adb (Add_One_Interp): an operator for a type declared in
23894         an extension of System is known to be visible.
23895
23896 2001-10-11  Ed Schonberg <schonber@gnat.com>
23897
23898         * sem_eval.adb (Compare_Fixup): get the bounds of a String_Literal
23899         properly. Fixes regression on ACATS C34005G.
23900
23901 2001-10-11  Robert Dewar <dewar@gnat.com>
23902
23903         * sem_ch5.adb (Analyze_Iteration_Scheme): Suppress warning on null
23904         loop in generic instance, since this is likely not very useful.
23905
23906 2001-10-11  Robert Dewar <dewar@gnat.com>
23907
23908         * restrict.adb (Disallow in No_Run_Time_Mode): Properly specialize
23909         the error message for high integrity mode.
23910
23911         * rtsfind.adb (RTE): Give message if we try to find an entity that
23912         is not available in high integrity mode.
23913
23914         * rtsfind.ads:
23915         (OK_To_Use_In_HIE_Mode): New array.
23916         (RTE): May return Empty in high integrity mode.
23917
23918         * rtsfind.ads (OK_To_Use_In_No_Run_Time_Mode): New name for
23919         OK_To_Use_In_HIE_Mode, now includes System_FAT_xxx.
23920
23921         * sem_ch6.adb (Analyze_Subprogram_Body): Kill body in predefined
23922         unit if not inlined always and in no runtime mode. Fixes problem
23923         caused by new Rtsfind changes.
23924
23925         * sem_ch6.adb (Analyze_Subrogram_Body): Do not Check_References if
23926         body is deleted.
23927
23928         * rtsfind.adb (RTE): Make sure we do not try to load unit after
23929         giving message for entity not available in high integrity mode.
23930
23931 2001-10-11  Pascal Obry <obry@gnat.com>
23932
23933         * impunit.adb: Add GNAT.CRC32.
23934
23935 2001-10-11  Ed Schonberg <schonber@gnat.com>
23936
23937         * exp_fixd.adb (Expand_Multiply_Fixed_By_Fixed_Giving_Fixed): handle
23938         properly the case where one universal operand in a non-static
23939         exponentiation of a real literal.
23940
23941 2001-10-11  Ed Schonberg <schonber@gnat.com>
23942
23943         * exp_ch7.adb (Find_Final_List): for a type appearing in a with_type
23944         clause, return the gobal finalization list, for lack of anthing else.
23945
23946 2001-10-11  Ed Schonberg <schonber@gnat.com>
23947
23948         * exp_ch7.adb (Make_Transient_Block): if statement is within
23949         exception handler, always use new transient scope to place Clean
23950         procedure.
23951
23952 2001-10-11  Pascal Obry <obry@gnat.com>
23953
23954         * Makefile.in:
23955         (GNAT_ADA_OBJS): add g-crc32.o, a-tags.o, a-stream.o
23956         (GNATBIND_OBJS): add g-crc32.o, a-tags.o, a-stream.o
23957         (GNATLS_RTL_OBJS): add g-crc32.o
23958         (GNATMAKE_RTL_OBJS): add g-crc32.o
23959
23960         * ali-util.adb:
23961         (CRC_Match): new function.
23962         (Get_File_Checksum): renamed Get_File_CRC. Use the GNAT.CRC32 unit
23963         instead of the previous simple checksum algorithm.
23964         (Time_Stamp_Mismatch): use CRC_Match for comparison.
23965         (Set_Source_Table): idem.
23966
23967         * ali-util.ads:
23968         (Get_File_Checksum): renamed Get_File_CRC as now we compute CRC
23969         instead of simple checksum.
23970         (CRC_Match): new function.
23971         (CRC_Error): new constant.
23972
23973         * ali.adb (Scan_ALI): rename variable Chk to CRC as we are handling
23974         a CRC now and not a simple checksum. A CRC uses lower-case hex
23975         letters, fixes ambiguity in parsing.
23976
23977         * ali.ads (Sdep_Record.Checksum): renamed Sdep_Record.CRC as this
23978         is what this variable will store.
23979
23980         * bcheck.adb: Change reference to chechsum in comments by CRC.
23981         (Check_Consistency): Rename Get_File_Checksum to Get_File_CRC.
23982         rename All_Checksum_Match to All_CRC_Match. Change due to API
23983         renaming since now GNAT does not use a simple checksum but a
23984         CRC using GNAT.CRC32.
23985
23986         * gnatls.adb: Rename Checksum to CRC in many places, we use a CRC
23987         now and not anymore a simple checksum.
23988
23989         * lib-load.adb: Use Source_CRC instead of Source_Checksum in many
23990         places.
23991
23992         * lib-writ.adb (Write_ALI): Use Source_CRC instead of Source_Checksum.
23993
23994         * scans.adb:
23995         (Restore_Scan_State): rename Checksum to CRC.
23996         (Save_Scan_State): idem.
23997
23998         * scans.ads:
23999         With GNAT.CRC32.
24000         (Checksum): rename to CRC.
24001         (Saved_Scan_State): Save_Checksum field renamed to Save_CRC
24002
24003         * scn-nlit.adb: Rename many Accumulate_Checksum to Update (from
24004         GNAT.CRC32).  Update copyright notice.
24005
24006         * scn-slit.adb: Rename many Accumulate_Checksum to Update (from
24007         GNAT.CRC32).  Update copyright notice.
24008
24009         * scn.adb:
24010         (Accumulate_Checksum): removed.
24011         (Update): new procedure. Add a wide-character into the CRC.
24012
24013         * sinput-l.adb:
24014         (Complete_Source_File_Entry): use CRC32 instead of simple checksum.
24015         (Load_File): fix initialization of S (change Source_Checksum to
24016         Source_CRC)
24017
24018         * sinput-p.adb (Load_Project_File): rename Source_Checksum to
24019         Source_CRC in S initialization.
24020
24021         * sinput.adb (Source_Checksum): renamed to Source_CRC.
24022
24023         * sinput.ads (Source_Checksum): renamed to Source_CRC.
24024         Update comments for the CRC.
24025
24026         * types.adb (Hex): Use lowercase for the letter part.
24027
24028         * types.ads (Get_Hex_String): Returns the hexadecimal representation
24029         for a word. This is currently used only for CRC. In previous version,
24030         the checksum was using a representation with all letter being
24031         upper-case. With the new implementation (using CRC) we do not remove
24032         the 32th bit of the CRC, so we can have an upper-case starting letter
24033         in the CRC. This is not possible to parse in Scan_ALI (ali.adb).
24034         It is ambigous since the CRC was optional and could be followed by
24035         options like EB, EE. So now this routines uses lower-case letter for
24036         the hexadecimal representation. Strange enough only lower case letters
24037         where checked in Scan_ALI (even if this was not a possible case).
24038
24039         * gnatvsn.ads (Library_Version): changed to 3.15a.
24040
24041         * s-crc32.ads: Initial version from GNAT.CRC32. This is the version
24042         for the compiler.
24043
24044         * s-crc32.adb: Initial version from GNAT.CRC32. This is the version
24045         for the compiler.
24046
24047         * ali-util.adb: Redo previous change to avoid using word CRC everywhere
24048         Add 2001 to copyright notice
24049         (Accumulate_Checksum): Modify to use System.CRC32.
24050
24051         * ali-util.ads: Redo changes of previous revision to continue to use
24052         the word Checksum. Add 2001 to copyright notice.
24053
24054         * ali.adb: Undo some of previous changes, not needed.
24055         Keep the change for lower case letters in the checksum.
24056
24057         * ali.ads: Undo previous change not needed.
24058
24059         * bcheck.adb: Undo most of previous change, not needed.
24060         But do use Checksums_Match for checksum comparison.
24061
24062         * gnatls.adb: Undo most of previous change, not needed.
24063         But do use Checksums_Match for comparing checksums.
24064
24065         * lib-load.adb: Undo previous change, not needed.
24066
24067         * lib-writ.adb: Undo previous change, not needed.
24068
24069         * lib-writ.ads: Document that checksums use lower case,
24070         not upper case letters.
24071
24072         * scans.adb: Undo previous change, not needed
24073
24074         * scans.ads: Undo previous change, not needed.
24075
24076         * scn-nlit.adb: Undo previous changes, not needed.
24077
24078         * scn-slit.adb: Undo previous change, not needed.  Fix header format.
24079
24080         * scn.adb:
24081         (Accumulate_Checksum): Use System.CRC32.
24082         (Initialize_Checksum): New procedure.
24083         Remove other changes of previous revision.
24084
24085         * sinput-p.adb: Undo previous change, not needed.
24086
24087         * sinput.adb: Undo previous change, not needed.
24088
24089         * sinput-l.adb: Undo previous change, not needed.
24090
24091         * sinput.ads: Undo previous change, not needed.  Keep only comment
24092         on new checksum algorithm
24093
24094         * Makefile.in: Add s-crc32 as needed, remove g-crc32.
24095         Also remove a-tags and a-stream from GNAT sources.
24096
24097         * ali.adb (Scan_ALI): fix typo introduce in latest check-in.
24098
24099         * Makefile.in (GNATRTL_NONTASKING_OBJS): Add g-crc32.o.
24100
24101 2001-10-11  Geert Bosch  <bosch@gnat.com>
24102
24103         * einfo.h: Regenerate.
24104
24105         * nmake.ads: Regenerate.
24106
24107         * nmake.adb: Regenerate.
24108
24109         * sinfo.h: Regenerate.
24110
24111         * treeprs.adb: Regenerate.
24112
24113 2001-10-10  Geert Bosch  <bosch@gnat.com>
24114
24115         * gnat-style.texi: New file describing coding guidelines for Ada.
24116
24117 2001-10-10  Ed Schonberg <schonber@gnat.com>
24118
24119         * einfo.adb (Write_Entity_Flags): Elaboration_Entity_Required
24120         is Flag174.
24121
24122 2001-10-10  Geert Bosch  <bosch@gnat.com>
24123
24124         * snames.ads: Add new names for project facility.
24125
24126         * snames.adb: Update to reflect snames.ads changes.
24127
24128         * snames.h: Update to reflect snames.ads changes.
24129
24130 2001-10-10  Vincent Celier <celier@gnat.com>
24131
24132         * make.adb:
24133         (Add_Switches): reflect the changes for the switches attributes
24134         Default_Switches indexed by the programming language,
24135         Switches indexed by the file name.
24136         (Collect_Arguments_And_Compile): Idem.
24137         Reflect the attribute name changes.
24138
24139         * prj-attr.adb:
24140         (Initialisation_Data): Change the names of some packages and
24141         attributes.
24142         (Initialize): process case insensitive associative arrays.
24143
24144         * prj-attr.ads:
24145         (Attribute_Kind): Remove Both, add Case_Insensitive_Associative_Array.
24146
24147         * prj-dect.adb:
24148         (Parse_Attribute_Declaration): For case insensitive associative
24149          arrays, set the index string to lower case.
24150
24151         * prj-env.adb:
24152         Reflect the changes of the project attributes.
24153
24154         * prj-nmsc.adb:
24155         Replace Check_Naming_Scheme by Ada_Check and
24156         Language_Independent_Check.
24157
24158         * prj-nmsc.ads:
24159         Replaced Check_Naming_Scheme by 2 procedures:
24160         Ada_Check and Language_Independent_Check.
24161
24162         * prj-proc.adb:
24163         (Process_Declarative_Items): For case-insensitive associative
24164         arrays, set the index string to lower case.
24165         (Recursive_Check): Call Prj.Nmsc.Ada_Check, instead of
24166         Prj.Nmsc.Check_Naming_Scheme.
24167
24168         * prj-tree.adb:
24169         (Case_Insensitive): New function
24170         (Set_Case_Insensitive): New procedure
24171
24172         * prj-tree.ads:
24173         (Case_Insensitive): New function
24174         (Set_Case_Insensitive): New procedure
24175         (Project_Node_Record): New flag Case_Insensitive.
24176
24177         * prj-util.adb:
24178         (Value_Of): new function to get the string value of a single
24179         string variable or attribute.
24180
24181         * prj-util.ads:
24182         (Value_Of): new function to get the string value of a single
24183         string variable or attribute.
24184
24185         * prj.adb:
24186         (Ada_Default_Spec_Suffix): New function
24187         (Ada_Default_Impl_Suffix): New function
24188         Change definitions of several constants to reflect
24189         new components of record types.
24190
24191         * prj.ads:
24192         (Naming_Data): Change several components to reflect new
24193         elements of naming schemes.
24194         (Project_Data): New flags Sources_Present and
24195         Language_Independent_Checked.
24196         (Ada_Default_Spec_Suffix): New function.
24197         (Ada_Default_Impl_Suffix): New function.
24198
24199         * snames.ads:
24200         Modification of predefined names for project manager: added
24201         Implementation, Specification_Exceptions, Implementation_Exceptions,
24202         Specification_Suffix, Implementation_Suffix, Separate_Suffix,
24203         Default_Switches, _Languages, Builder, Cross_Reference,
24204         Finder. Removed Body_Part, Specification_Append, Body_Append,
24205         Separate_Append, Gnatmake, Gnatxref, Gnatfind, Gnatbind,
24206         Gnatlink.
24207
24208         * prj.ads: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
24209         Add comments.
24210
24211         * prj-nmsc.adb (Ada_Check): Test that Separate_Suffix is defaulted,
24212         not that it is Nil_Variable_Value.
24213
24214         * prj.ads: Add ??? for uncommented declarations
24215
24216 2001-10-10  Ed Schonberg <schonber@gnat.com>
24217
24218         * sem_prag.adb: (Analyze_Pragma, case External): If entity is a
24219         constant, do not indicate possible modification, so that gigi can
24220         treat it as a bona fide constant.
24221
24222 2001-10-10  Robert Dewar <dewar@gnat.com>
24223
24224         * sem_prag.adb: Add processing for pragma External.
24225
24226         * snames.ads: Add entry for pragma External.
24227
24228         * par-prag.adb: Add pragma External.
24229
24230         * snames.adb: Updated to match snames.ads.
24231
24232 2001-10-10  Ed Schonberg <schonber@gnat.com>
24233
24234         * exp_ch4.adb (Expand_N_Allocator): Generate meaningful names for
24235         a dynamic task if the allocator appears in an indexed assignment
24236         or selected component assignment.
24237
24238         * exp_util.adb (Build_Task_Array_Image, Build_Task_Record_Image):
24239         For a dynamic task in an assignment statement, use target of
24240         assignment to generate meaningful name.
24241
24242 2001-10-10  Ed Schonberg <schonber@gnat.com>
24243
24244         * einfo.adb (Write_Field19_Name): Body_Entity is also defined for
24245         a generic package.
24246
24247         * einfo.ads: Body_Entity is also defined for generic package.
24248         Documentation change only
24249
24250         * exp_aggr.adb (Build_Array_Aggr_Code): When expanding an
24251         others_choice for a discriminated component initialization,
24252         convert discriminant references into the corresponding discriminals.
24253
24254         * exp_ch3.adb (Get_Simple_Init_Val): Add qualification to aggregate
24255         only if original type is private and expression has to be wrapped
24256         in a conversion.
24257
24258         * checks.adb:
24259         (Apply_Constraint_Check): Do not perform length check
24260         if expression is an aggregate with only an others_choice.
24261         (Length_N_Cond): two references to the same in_parameter
24262         (typically the discriminal in an init_proc) denote the same value.
24263         Two useful optimization uncovered by bugfixes above.
24264
24265 2001-10-10  Robert Dewar <dewar@gnat.com>
24266
24267         * xeinfo.adb: Change int to char in translation of enumeration types.
24268         This fixes a problem in the C representation of component alignment.
24269         Add 2001 to copyright notice
24270
24271 2001-10-10  Richard Kenner <kenner@gnat.com>
24272
24273         * decl.c: (validate_size): Do check size of object of integral type
24274         if it is a packed array type.
24275
24276 2001-10-10  Richard Kenner <kenner@gnat.com>
24277
24278         * decl.c: (gnat_to_gnu_entity, case object): Also materialize
24279         VAR_DECL for constant if not Is_Public but -O0.
24280
24281 2001-10-10  Richard Kenner  <kenner@gnat.com>
24282
24283         * misc.c (struct lang_hooks): Add new initializer to match GCC change.
24284
24285 2001-10-10  Geert Bosch  <bosch@gnat.com>
24286
24287         * xnmake.adb (XNmake): Fix handling of -s/-b options.  No longer
24288         use '/' as switch character, allowing for absolute file names.
24289
24290 2001-10-09  Joseph S. Myers  <jsm28@cam.ac.uk>
24291
24292         * 4gintnam.ads, Make-lang.in, Makefile.in, config-lang.in: Update
24293         FSF address.
24294
24295 2001-10-08  Geert Bosch  <bosch@gnat.com>
24296
24297         * Makefile.in (treeprs.ads, einfo.h, sinfo.h, nmake.adb, nmake.ads):
24298         Automatically build utilities when files need to be regenerated.
24299
24300 2001-10-08  Geert Bosch  <bosch@gnat.com>
24301
24302         * xsnames.adb: New utility for updating snames.ads and snames.adb
24303
24304 2001-10-08  Zack Weinberg  <zack@codesourcery.com>
24305
24306         * Make-lang.in (ADAFLAGS): Add -W -Wall.
24307         (ADA_FLAGS_TO_PASS): Set ADA_CFLAGS=$(CFLAGS) also.
24308         (gnat1): Also depend on attribs.o.
24309         (gnatlib, gnatlib-shared): Set CC and ADAC in recursive make.
24310         * Makefile.in (X_ADAFLAGS, T_ADAFLAGS): New.
24311         (ADAC): Set to @ADAC@ in stage1, $(CC) later.
24312         (ADAFLAGS): Add -W -Wall.
24313         (ALL_ADAFLAGS, MOST_ADAFLAGS): Add X_ADAFLAGS and T_ADAFLAGS;
24314         take out CFLAGS.
24315
24316         (.adb.o, .ads.o, a-numaux.o, a-teioed.o, s-interr.o,
24317         s-taskin.o, sdefault.o, s-tasdeb.o, s-vaflop.o, a-except.o,
24318         s-assert.o, s-stalib.o, s-memory.o, memtrack.o, mlib-tgt.o):
24319         Use $(ADAC), not $(CC), as compilation command.
24320
24321         (gnattools): Depend directly on tools to build, don't use
24322         recursive make.
24323         (gnatlib): Set ADA_CFLAGS=$(GNATLIBCFLAGS) in recursive make.
24324
24325         * einfo.h, sinfo.h: New files (autogenerated).
24326
24327 2001-10-08  Richard Henderson  <rth@redhat.com>
24328
24329         * comperr.adb (Abort_In_Progress): New.
24330         (Compiler_Abort): Use it to prevent recursion.
24331
24332 2001-10-08  Robert Dewar <dewar@gnat.com>
24333
24334         * atree.adb: Set Error_Posted in Error node, helps error recovery.
24335
24336         * par-endh.adb (Output_End_Expected): We should also not test
24337         Error_Posted on the Error node, since now it is always set.
24338
24339         * cstand.adb (Create_Standard): Set Etype of Error to Any_Type
24340         to help error recovery. Part of general work on 9407-004.
24341
24342         * par.adb: Add ??? for misuse of error
24343
24344         * sem_res.adb:
24345         (Resolve): Defend against Error, fixes 9407-003.
24346         (Resolve_Discrete_Subtype_Indication): Defend against Error.
24347
24348         * sinfo.ads (N_Error): Now has Etype field (which will be set
24349         to Any_Type to help error recovery).
24350
24351 2001-10-08  Richard Kenner (kenner@gnat.com)
24352
24353         * misc.c (gnat_expand_expr, case UNCHECKED_CONVERT_EXPR):
24354         Consistently set MEM attributes from expression; fixes
24355         bootstrap failure on x86.
24356
24357 2001-10-08  Geert Bosch  (bosch@gnat.com)
24358
24359         * 5oosinte.adb: Add 2001 to copyright notice.
24360
24361 2001-10-08  Geert Bosch  (bosch@gnat.com)
24362
24363         * ceinfo.adb: Add utility for consistency checking of einfo.ad[bs].
24364
24365         * csinfo.adb: Add utility for consistency checking of sinfo.ad[bs].
24366
24367 2001-10-07  Joseph S. Myers  <jsm28@cam.ac.uk>
24368
24369         * 5oosinte.adb: Fix spelling error of "separate" as "seperate".
24370
24371 2001-10-05  Geert Bosch  (bosch@gnat.com)
24372
24373         * adaint.h: Small formatting fix.
24374
24375 2001-10-04  Geert Bosch  <bosch@gnat.com>
24376
24377         * sysdep.c (__gnat_set_binary_mode, __gnat_set_text_mode):
24378         Arg is int, not FILE *, in dummy version of functions.
24379
24380         * adaint.h (__gnat_set_binary_mode, __gnat_set_text_mode):
24381         Arg is int, not FILE *.
24382
24383 2001-10-04  Geert Bosch  <bosch@gnat.com>
24384
24385         * 3lsoccon.ads: Added file, missed with initial check ins.
24386
24387         * 4lintnam.ads: Fix header format.
24388         Change Linux to GNU/Linux.
24389
24390         * 5iosinte.adb: Change Linux to GNU/Linux.
24391
24392         * 5iosinte.ads: Change Linux to GNU/Linux.
24393
24394         * 5itaprop.adb: Change Linux to GNU/Linux.
24395
24396         * 5itaspri.ads: Change Linux to GNU/Linux.
24397         Update copyright notice.
24398
24399         * 5lintman.adb: Change Linux to GNU/Linux.
24400
24401         * 5lml-tgt.adb: Change Linux to GNU/Linux.
24402
24403         * 5losinte.ads: Change Linux to GNU/Linux.
24404
24405         * 5lsystem.ads: Change Linux to GNU/Linux.
24406
24407         * 5qosinte.adb: Change Linux to GNU/Linux.
24408
24409         * 5qosinte.ads: Change Linux to GNU/Linux.
24410
24411         * 5qparame.ads: Change Linux to GNU/Linux.
24412
24413         * 5qtaprop.adb: Change Linux to GNU/Linux.
24414
24415         * 5qtaspri.ads: Change Linux to GNU/Linux.
24416         Add 2001 to copyright notice.
24417
24418         * 5vintman.ads: Change Linux to GNU/Linux.
24419         Fix header format.  Add 2001 to copyright notice.
24420
24421         * g-soccon.ads: Change Linux to GNU/Linux.
24422
24423         * g-trasym.ads: Change Linux to GNU/Linux.
24424         Add 2001 to copyright notice.
24425
24426         * memtrack.adb: Change Linux to GNU/Linux.
24427
24428         * s-intman.ads: Change Linux to GNU/Linux.
24429         Add 2001 to copyright notice.  Fix header format.
24430
24431         * s-stache.adb: Change Linux to GNU/Linux.
24432
24433         * adaint.c: Change Linux to GNU/Linux.
24434
24435         * cio.c: Change Linux to GNU/Linux.
24436
24437         * cstreams.c: Change Linux to GNU/Linux.
24438
24439         * init.c: Change Linux to GNU/Linux.
24440
24441         * gmem.c: Change Linux to GNU/Linux.
24442
24443         * tracebak.c: Change Linux to GNU/Linux.
24444
24445
24446 2001-10-02  Geert Bosch  <bosch@gnat.com>
24447
24448         * misc.c (insert_default_attributes): Add dummy version.