OSDN Git Service

* env.c (__gnat_setenv): Use size_t.
[pf3gnuchains/gcc-fork.git] / gcc / ada / ChangeLog
1 2006-02-16  Eric Botcazou  <ebotcazou@adacore.com>
2
3         * env.c (__gnat_setenv): Use size_t.
4         (__gnat_unsetenv): Likewise.
5         (__gnat_clearenv): Likewise.
6
7 2006-02-16  Arnaud Charlet  <charlet@adacore.com>
8
9         * opt.ads (Ada_Version_Default): Set to Ada 2005 by default.
10
11 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
12
13         * a-intnam-os2.ads, a-intnam-unixware.ads, g-soccon-unixware.ads,
14         g-soliop-unixware.ads, i-os2err.ads, i-os2lib.adb, i-os2lib.ads,
15         i-os2syn.ads, i-os2thr.ads, s-intman-irix-athread.adb,
16         s-osinte-aix-fsu.ads, s-osinte-fsu.adb, s-parame-os2.adb,
17         s-osinte-irix-athread.ads, s-osinte-linux-fsu.ads, s-osinte-os2.adb,
18         s-osinte-os2.ads, s-osinte-solaris-fsu.ads, s-osinte-unixware.adb,
19         s-osinte-unixware.ads, s-osprim-os2.adb, s-taprop-irix-athread.adb,
20         s-taprop-os2.adb, s-tasinf-irix-athread.adb, s-tasinf-irix-athread.ads,
21         s-taspri-os2.ads, system-os2.ads, system-unixware.ads: Removed,
22         no longer used.
23
24 2006-02-13  Jose Ruiz  <ruiz@adacore.com>
25
26         * a-taster.adb (Current_Task_Fallback_Handler): Document why explicit
27         protection against race conditions is not needed.
28         (Set_Dependents_Fallback_Handler): Add mutual exclusive access to the
29         fallback handler.
30         (Set_Specific_Handler): Add mutual exclusive access to the specific
31         handler.
32         (Specific_Handler): Add mutual exclusive access for retrieving the
33         specific handler.
34
35         * s-tarest.adb (Task_Wrapper): Add mutual exclusive access to the fall
36         back handler.
37
38         * s-taskin.ads (Common_ATCB): Remove pragma Atomic for
39         Fall_Back_Handler and Specific_Handler.
40
41         * s-tassta.adb (Task_Wrapper): Add mutual exclusive access to the task
42         termination handlers.
43         Set two different owerflow depending on the maximal stack size.
44
45         * s-solita.adb (Task_Termination_Handler_T): Document why explicit
46         protection against race conditions is not needed when executing the
47         task termination handler.
48
49 2006-02-13  Robert Dewar  <dewar@adacore.com>
50
51         * s-gloloc-mingw.adb, a-cgaaso.ads, a-stzmap.adb, a-stzmap.adb,
52         a-stzmap.ads, a-ztcoio.adb, a-ztedit.adb, a-ztedit.ads, a-ztenau.adb,
53         a-ztenau.ads, a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
54         a-comlin.adb, a-decima.adb, a-decima.ads, a-direio.adb, a-direio.adb,
55         a-direio.adb, a-direio.ads, a-ngcoty.adb, a-ngcoty.ads, a-nuflra.adb,
56         a-nuflra.ads, a-sequio.adb, a-sequio.ads, a-sequio.ads, a-storio.ads,
57         a-stream.ads, a-ststio.adb, a-ststio.adb, a-ststio.ads, a-ststio.ads,
58         a-stwima.adb, a-stwima.adb, a-stwima.ads, a-stwise.adb, a-teioed.adb,
59         a-teioed.ads, a-ticoau.adb, a-ticoau.ads, a-ticoio.adb, a-tasatt.ads,
60         a-tideau.adb, a-tideau.ads, a-tideio.adb, a-tideio.ads, a-tienau.adb,
61         a-tienau.ads, a-tienio.adb, a-tienio.ads, a-tifiio.ads, a-tiflau.adb,
62         a-tiflau.ads, a-tiflio.adb, a-tiflio.adb, a-tiflio.ads, a-tigeau.ads,
63         a-tiinau.adb, a-tiinau.ads, a-tiinio.adb, a-tiinio.ads, a-timoio.adb,
64         a-timoio.ads, a-titest.adb, a-titest.ads, a-wtcoio.adb, a-wtdeau.adb,
65         a-wtdeau.ads, a-wtdeio.adb, a-wtdeio.ads, a-wtedit.adb, a-wtedit.adb,
66         a-wtedit.ads, a-wtenau.adb, a-wtenau.ads, a-wtenau.ads, a-wtenio.adb,
67         a-wtenio.ads, a-wtfiio.adb, a-wtfiio.ads, a-wtflau.adb, a-wtflau.ads,
68         a-wtflio.adb, a-wtflio.adb, a-wtflio.ads, a-wtgeau.ads, a-wtinau.adb,
69         a-wtinau.ads, a-wtinio.adb, a-wtinio.ads, a-wtmoau.adb, a-wtmoau.ads,
70         a-wtmoio.adb, a-wtmoio.ads, xref_lib.adb, xref_lib.ads, xr_tabls.adb,
71         g-boubuf.adb, g-boubuf.ads, g-cgideb.adb, g-io.adb, gnatdll.adb,
72         g-pehage.adb, i-c.ads, g-spitbo.adb, g-spitbo.ads, mdll.adb,
73         mlib-fil.adb, mlib-utl.adb, mlib-utl.ads, prj-env.adb, prj-tree.adb,
74         prj-tree.ads, prj-util.adb, s-arit64.adb, s-asthan.ads, s-auxdec.adb,
75         s-auxdec.ads, s-chepoo.ads, s-direio.adb, s-direio.ads, s-errrep.adb,
76         s-errrep.ads, s-fileio.adb, s-fileio.ads, s-finroo.adb, s-finroo.ads,
77         s-gloloc.adb, s-gloloc.ads, s-io.adb, s-io.ads, s-rpc.adb,
78         s-rpc.ads, s-shasto.ads, s-sequio.adb, s-stopoo.ads, s-stratt.adb,
79         s-stratt.ads, s-taasde.adb, s-taasde.ads, s-tadert.adb, s-sequio.ads,
80         s-taskin.adb, s-tasque.adb, s-tasque.ads, s-wchjis.ads, makegpr.adb,
81         a-coinve.adb, a-cidlli.adb, eval_fat.adb, exp_dist.ads, exp_smem.adb,
82         fmap.adb, g-dyntab.ads, g-expect.adb, lib-xref.ads, osint.adb,
83         par-load.adb, restrict.adb, sinput-c.ads, a-cdlili.adb,
84         system-vms.ads, system-vms-zcx.ads, system-vms_64.ads: Minor
85         reformatting.
86
87 2006-02-13  Hristian Kirtchev  <kirtchev@adacore.com>
88
89         * a-tasatt.adb, s-osinte-lynxos-3.adb, s-osinte-lynxos.adb,
90         s-osinte-aix.adb, s-interr-sigaction.adb, s-asthan-vms-alpha.adb,
91         s-interr-vms.adb, s-intman-vms.adb, s-interr-vxworks.adb,
92         s-intman-vxworks.adb, s-asthan-vms-alpha.adb, a-ztexio.adb,
93         a-reatim.adb, a-taside.adb, a-textio.adb, a-witeio.adb, prj-attr.adb,
94         s-intman-irix.adb, s-intman-solaris.adb, s-intman-posix.adb,
95         a-dynpri.adb, a-interr.adb, g-dynhta.adb, s-asthan.adb, s-interr.adb,
96         s-pooglo.adb, s-pooloc.adb, s-poosiz.adb, s-tasren.adb, s-tasuti.adb,
97         s-tataat.adb, s-tpobop.adb: Remove redundant with clauses.
98
99 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
100
101         * s-osinte-darwin.adb, s-osinte-darwin.ads, s-osinte-vxworks.ads, 
102         s-osinte-solaris.ads, s-osinte-linux.ads, s-osinte-freebsd.ads, 
103         s-osinte-solaris-posix.ads, s-osinte-lynxos-3.ads, s-osinte-lynxos.ads, 
104         s-osinte-tru64.ads, s-osinte-aix.ads, s-osinte-irix.ads, 
105         s-osinte-hpux-dce.ads, s-osinte-linux-hppa.ads, 
106         s-osinte-linux-alpha.ads, s-inmaop-posix.adb (sigset_t_ptr): Removed,
107         replaced by anonymous access type.
108         (pthread_sigmask): Now take an access sigset_t
109
110         * s-osinte-hpux.ads:  Ditto.
111         (pthread_mutex_t, pthread_cond_t): Update definitions to support
112         properly 32 and 64 bit ABIs.
113
114 2006-02-13  Pascal Obry  <obry@adacore.com>
115
116         * s-taprop-posix.adb, s-taprop-vxworks.adb, s-taprop-tru64.adb, 
117         s-taprop-lynxos.adb, s-taprop-irix.adb, s-taprop-hpux-dce.adb, 
118         s-taprop-linux.adb, s-taprop-solaris.adb,
119         s-taprop-vms.adb (Create_Task): Remove task adjustment code. This
120         adjustement is already done when calling this routine.
121
122 2006-02-13  Pascal Obry  <obry@adacore.com>
123
124         * system-mingw.ads (Underlying_Priorities): Update the priority mapping
125         table to take advantage of the 16 priority levels available on Windows
126         2000 and XP. On NT4 there are only 7 priority levels, this is properly
127         supported by this new mapping.
128
129 2006-02-13  Nicolas Setton  <setton@adacore.com>
130
131         * adadecode.h, adadecode.c: (__gnat_decode): Improve support of types.
132         (get_encoding): New subprogram. Extracts the encodings from an encoded
133         Ada name.
134
135 2006-02-13  Pascal Obry  <obry@adacore.com>
136             Nicolas Roche  <roche@adacore.com>
137             Arnaud Charlet  <charlet@adacore.com>
138
139         * adaint.h, adaint.c (DIR_SEPARATOR): Use _T() macro for Unicode
140         support.
141         (__gnat_try_lock): Add unicode support by using a specific section on
142         Windows.
143         (__gnat_get_current_dir): Idem.
144         (__gnat_open_read): Idem.
145         (__gnat_open_rw): Idem.
146         (__gnat_open_create): Idem.
147         (__gnat_create_output_file): Idem.
148         (__gnat_open_append): Idem.
149         (__gnat_open_new): Idem.
150         (__gnat_file_time_name): Idem.
151         (__gnat_set_file_time_name): Idem.
152         (__gnat_stat): Idem.
153         (win32_no_block_spawn): Idem.
154         (__gnat_locate_exec_on_path): Idem.
155         (__gnat_opendir): New routine.
156         (__gnat_closedir): Idem.
157         (__gnat_readdir): Add new parameter length (pointer to int). Update
158         implementation to use it and add specific Win32 code for Unicode
159         support.
160         (__gnat_get_env_value_ptr): Remove. Replaced by __gnat_getenv in env.c
161         (__gnat_set_env_value): Remove. Replaced by __gnat_setenv in env.c
162         (convert_addresses): Do not define this dummy routine on VMS.
163
164         * mingw32.h (GNAT_UNICODE_SUPPORT): New definition, if set the GNAT
165         runtime Unicode support will be activated.
166         (S2WS): String to Wide-String conversion. This version just copy a
167         string in non Unicode version.
168         (WS2S): Wide-String to String conversion. This version just copy a
169         string in non Unicode version.
170
171         * g-dirope.adb: (Close): Now import __gnat_closedir from adaint.c.
172         (Open): Now import __gnat_opendir from adaint.c.
173         (Read): Change the implementation to support unicode characters. It is
174         not possible to use strlen() on Windows as this version supports only
175         standard ASCII characters. So the length of the directory entry is now
176         returned from the imported __gnat_readdir routine.
177         Update copyright notice.
178
179         * s-crtl-vms64.ads, s-crtl.ads: (closedir): Moved to adaint.c.
180         (opendir): Moved to adaint.c.
181
182         * g-os_lib.adb (Copy_Time_Stamp): Fix off-by-one range computation.
183         (Get_Directory): Fix wrong indexing.
184         (Getenv): replace __gnat_get_env_value_ptr from adaint.c by
185         __gnat_getenv from env.c
186         (Setenv): replace __gnat_set_env_value from adaint.c by __gnat_setenv
187         from env.c
188
189         * env.h, env.c: New file.
190
191         * s-scaval.adb (Initialize): Replace __gnat_get_env_value_ptr from
192         adaint.c by __gnat_getenv from env.c
193
194         * s-shasto.adb (Initialize): replace __gnat_get_env_value_ptr from
195         adaint.c by __gnat_getenv from env.c
196
197         * Make-lang.in: Add env.o in the list of C object needed by gnat1
198         and gnatbind.
199         Update dependencies.
200
201 2006-02-13  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
202             Olivier Hainque  <hainque@adacore.com>
203             Eric Botcazou  <ebotcazou@adacore.com>
204
205         * ada-tree.h: (TYPE_UNCHECKED_UNION_P): Deleted.
206         
207         * gigi.h (value_factor_p): Add prototype and description, now public.
208
209         * decl.c (gnat_to_gnu_field): Don't attempt BLKmode to integral type
210         promotion for field with rep clause if the associated size was proven
211         to be in error.
212         Expand comments describing attempts to use a packable type.
213         (gnat_to_gnu_entity) <E_Signed_Integer_Subtype,
214         E_Floating_Point_Subtype>: Inherit alias set of what we are making a
215         subtype of to ensure conflicts amongst all subtypes in a hierarchy,
216         necessary since these are not different types and pointers may
217         actually designate any subtype in this hierarchy.
218         (gnat_to_gnu_entity, case E_Record_Type): Always make fields for
219         discriminants but put them into record only if not Unchecked_Union;
220         pass flag to components_to_record showing Unchecked_Union.
221         (make_dummy_type): Use UNION_TYPE only if Unchecked_Union and no
222         components before variants; don't set TYPE_UNCHECKED_UNION_P.
223         (components_to_record): New argument UNCHECKED_UNION.
224         Remove special case code for Unchecked_Union and instead use main code
225         with small changes.
226
227         PR ada/26096
228         (gnat_to_gnu_entity) <E_Variable>: Do not initialize the
229         aligning variable with the expression being built, only its inner
230         field.
231
232         * trans.c (Handled_Sequence_Of_Statements_to_gnu): Remove call to
233         emit_sequence_entry_statements.
234         (emit_sequence_entry_statements, body_with_handlers_p): Delete.
235         (establish_gnat_vms_condition_handler): Move before
236         Subprogram_Body_to_gnu.
237         (Subprogram_Body_to_gnu): On VMS, establish_gnat_vms_condition_handler
238         for a subprogram if it has a foreign convention or is exported.
239         (Identifier_to_gnu): Manually unshare the DECL_INITIAL tree when it is
240         substituted for a CONST_DECL.
241         (tree_transform, case N_Aggregate): Remove code for UNION_TYPE and pass
242         Etype to assoc_to_constructor.
243         (assoc_to_constructor): New argument, GNAT_ENTITY; use it to ignore
244         discriminants of Unchecked_Union.
245         (TARGET_ABI_OPEN_VMS): Define to 0 if not defined, so that later uses
246         don't need cluttering preprocessor directives.
247         (establish_gnat_vms_condition_handler): New function. Establish the GNAT
248         condition handler as current in the compiled function.
249         (body_with_handlers_p): New function. Tell whether a given sequence of
250         statements node is attached to a package or subprogram body and involves
251         exception handlers possibly nested within inner block statements.
252         (emit_sequence_entry_statements): New function, to emit special
253         statements on entry of sequences when necessary. Establish GNAT
254         condition handler in the proper cases for VMS.
255         (Handled_Sequence_Of_Statements_to_gnu): Start block code with
256         emit_sequence_entry_statements.
257
258         * utils2.c (find_common_type): If both input types are BLKmode and
259         have a constant size, use the smaller one.
260         (build_simple_component_ref): Also match if FIELD and NEW_FIELD are
261         the same.
262
263         * utils.c (value_factor_p): Make public, to allow uses from other gigi
264         units.
265         (create_type_decl): Do not set the flag DECL_IGNORED_P for dummy types.
266         (convert, case UNION_TYPE): Remove special treatment for unchecked
267         unions.
268
269         PR ada/18659
270         (update_pointer_to): Update variants of pointer types to
271         unconstrained arrays by attaching the list of fields of the main
272         variant.
273
274 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
275             Robert Dewar  <dewar@adacore.com>
276
277         * a-exexpr.adb, a-exexpr-gcc.adb
278         (Process_Raise_Exception): Removed, merged with Propagate_Exception.
279         (Propagate_Exception): Now take extra From_Signal_Handler parameter.
280         Remove code unused for exception propagation for the compiler itself
281         from a-except.adb and update to still share separate packages.
282
283         * a-except.ads, a-except.adb: Ditto.
284         Add comments that this version is now used only by the compiler and
285         other basic tools. The full version that includes the Ada 2005 stuff
286         is in separate files a-except-2005.ads/adb. The reason is that we do
287         not want to cause bootstrap problems with compilers not recognizing
288         Wide_Wide_String.
289         Add exception reason code PE_Implicit_Return
290         Add new exception reason code (Null Exception_Id)
291
292         * a-except-2005.adb, a-except-2005.ads: New files.
293
294         * s-wchcon.ads: (Get_WC_Encoding_Method): New function.
295
296         * s-wchcon.adb: New file.
297
298         * Makefile.in (LIBGNAT_SRCS): Add tb-gcc.c.
299         (traceback.o deps): Likewise.
300         (SPARC/Solaris): Accept sparc[64|v9]-sun-solaris.
301         Activate build of GMEM instrumentation library on VMS targets.
302         (gnatlib-sjlj, gnatlib-zcx): Pass EH_MECHANISM to make gnatlib.
303         Use a-except-2005.ads/adb for all run-time library builds unless
304         specified otherwise.
305         [VMS] (LIBGNAT_TARGET_PAIRS_AUX1,2): Rename s-parame-vms.ads to
306         s-parame-vms-alpha.ads and add s-parame-vms-ia64.ads.
307         Use s-parame.adb on all native platforms.
308         Use s-parame-vxworks.adb on all vxworks platforms.
309         Add env.c env.h in LIBGNAT_SRCS
310         Add env.o in LIBGNAT_OBJS
311         (GNATMAKE_OBJS): Remove ctrl_c.o object.
312         (LIBGNAT_TARGET_PAIRS for x86-vxworks): Use an specialized version of
313         s-osinte.adb, s-tpopsp.adb, and system.ads for the run time that
314         supports VxWorks 6 RTPs.
315         (EXTRA_GNATRTL_NONTASKING_OBJS for x86-vxworks): Remove the use of
316         i-vxworks and i-vxwoio from the run time that supports VxWorks 6 RTPs.
317
318         * types.h, types.ads (Terminate_Program): New exception
319         Add comment on modifying multiple versions of a-except.adb when the
320         table of exception reasons is modified.
321         Add exception reason code PE_Implicit_Return
322         Add new exception reason code (Null Exception_Id)
323
324         * clean.adb (Initialize): Get the target parameters before checking
325         if target is OpenVMS. Move the OpenVMS specific code here from package
326         body elaboration code.
327
328 2006-02-13  Thomas Quinot  <quinot@adacore.com>
329             Vincent Celier  <celier@adacore.com>
330             Robert Dewar  <dewar@adacore.com>
331
332         * ali-util.adb (Get_File_Checksum): Update to account for change in
333         profile of Initialize_Scanner.
334
335         * gprep.adb (Gnatprep): Update to account for change in profile of
336         Initialize_Scanner.
337         (Process_One_File): Same.
338
339         * lib.adb (Get_Code_Or_Source_Unit): New subprogram factoring the
340         common code between Get_Code_Unit and Get_Source_Unit. Reimplement
341         that behaviour using the new Unit information recorded in the source
342         files table, rather than going through all units every time.
343         (Get_Code_Unit): Reimplement in terms of Get_Code_Or_Source_Unit.
344         (Get_Source_Unit): Same.
345
346         * prepcomp.adb (Parse_Preprocessing_Data_File): Update to account for
347         change in profile of Initialize_Scanner.
348         (Prepare_To_Preprocess): Same.
349
350         * lib.ads: Fix typo in comment (templace -> template).
351
352         * prj-part.adb (Parse_Single_Project): Update to account for change in
353         profile of Initialize_Scanner.
354
355         * scn.adb (Initialize_Scanner): Account for change in profile of
356         Scng.Initialize_Scanner: set Current_Source_Unit in Scn instead of Scng.
357         Also record the association of the given Source_File_Index to the
358         corresponding Unit_Number_Type.
359
360         * scng.ads, scng.adb (Initialize_Scanner.Set_Reserved): Remove
361         procedure.
362         (Initialize_Scanner): Call Scans.Initialize_Ada_Keywords.
363         Remove Unit formal for generic scanner: this formal
364         is only relevant to Scn (the scanner instance used to parse Ada source
365         files), not to other instances. Update comment accordingly.
366         (Scan): Use new function Snames.Is_Keyword_Name.
367
368         * sinfo-cn.adb: Fix typo in comment.
369
370         * sinput.adb (Unit, Set_Unit): Accessors for new source file attribute
371         Unit.
372
373         * sinput.ads (Source_File_Record): New component Unit, used to capture
374         the unit identifier (if any) associated to a source file.
375
376         * sinput-c.adb, sinput-l.adb (Load_File): Initialize new component
377         Unit in Source_File_Record.
378
379         * sinput-p.adb (Source_File_Is_Subunit): Update to account for change
380         in profile of Initialize_Scanner.
381
382         * scans.adb (Initialize_Ada_Keywords): New procedure
383
384         * scans.ads (Initialize_Ada_Keywords): New procedure to initialize the
385         Ada keywords in the Namet table, without the need to call
386         Initialize_Scanner.
387
388         * snames.adb: Add pragma Ada_2005 (synonym for Ada_05)
389         (Is_Keyword_Name): New function
390
391         * snames.ads: Add subtype Configuration_Pragma_Names
392         Add pragma Ada_2005 (synonym for Ada_05)
393         (Is_Keyword_Name): New function
394
395         * snames.h: Add pragma Ada_2005 (synonym for Ada_05)
396
397 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
398
399         * a-stwisu.adb, a-strsup.adb, a-stzsup.adb (Super_Slice): Fix slice
400         index.
401
402         * a-stwima.adb (To_Set): Add extra check when N = 0.
403
404         * g-regpat.adb: (Match_Simple_Operator): Avoid possible overflow.
405
406 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
407
408         * s-parame-mingw.adb, s-parame-linux.adb,
409         s-parame-solaris.adb: Removed, replaced by s-parame.adb
410
411         * s-parame-vxworks.ads: Fix typo.
412
413         * s-parame-vxworks.adb: New file.
414
415         * s-parame.adb: Version now used by all native platforms.
416         (Default_Stack_Size): Use 2 megs for default stack size and use
417         __gl_default_stack_size when available.
418         (Minimum_Stack_Size): Use 12K.
419
420         * s-taprop-mingw.adb: Set default stack size linker switch to 2megs.
421         (Create_Task): Refine implementation taking advantage of the XP stack
422         size support. On XP, we now create the thread using the flag
423         STACK_SIZE_PARAM_IS_A_RESERVATION.
424
425         * s-osinte-mingw.ads (Stack_Size_Param_Is_A_Reservation): New constant.
426
427         * sysdep.c (__gnat_is_windows_xp): New routine, returns 1 on Windows
428         XP and 0 on older Windows versions.
429
430         * interfac-vms.ads: Removed, no longer used.
431
432 2006-02-13  Matthew Heaney  <heaney@adacore.com>
433
434         * a-rbtgso.adb, a-crbtgo.adb, a-crbtgk.adb, a-coorse.adb, 
435         a-cohama.adb, a-ciorse.adb, a-cihama.adb, a-cihase.adb, 
436         a-cohase.adb: All explicit raise statements now include an exception
437         message.
438
439         * a-ciormu.ads, a-ciormu.adb, a-coormu.ads, a-coormu.adb
440         (Update_Element_Preserving_Key): renamed op to just Update_Element.
441         Explicit raise statements now include an exception message
442
443         * a-cihase.ads, a-cohase.ads: Removed comment.
444
445         * a-stboha.ads, a-stboha.adb, a-stfiha.ads, a-envvar.adb,
446         a-envvar.ads, a-swbwha.ads, a-swbwha.adb, a-swfwha.ads, a-szbzha.ads,
447         a-szbzha.adb, a-szfzha.ads: New files.
448
449 2006-02-13  Matthew Heaney  <heaney@adacore.com>
450
451         * a-cgcaso.adb, a-cgaaso.adb: Implemented using heapsort instead of
452         quicksort.
453
454 2006-02-13  Eric Botcazou  <ebotcazou@adacore.com>
455
456         * lang.opt: Wvariadic-macros: New option.
457         Wold-style-definition: Likewise.
458         Wmissing-format-attribute: Likewise.
459
460         * misc.c (gnat_handle_option): New cases for -Wvariadic-macros,
461         -Wold-style-definition and -Wmissing-format-attribute.
462
463 2006-02-13  Robert Dewar  <dewar@adacore.com>
464
465         * a-ticoio.ads, a-ticoio.adb: Add use clause (moved here from spec)
466
467         * a-coteio.ads, a-lcteio.ads, a-llctio.ads, a-scteio.ads: New files.
468
469 2006-02-13  Nicolas Roche  <roche@adacore.com>
470
471         * a-envvar.adb, a-envvar.ads: New files.
472
473 2006-02-13  Douglas Rupp  <rupp@adacore.com>
474
475         * s-parame-vms.ads: Renamed to s-parame-vms-alpha.ads
476
477         * s-parame-vms-alpha.ads, s-parame-vms-ia64.ads: New files.
478
479 2006-02-13  Pat Rogers  <rogers@adacore.com>
480
481         * a-rttiev.adb, a-rttiev.ads: New files.
482
483 2006-02-13  Hristian Kirtchev  <kirtchev@adacore.com>
484
485         * a-tiboio.adb, a-tiboio.ads, a-wwboio.adb,
486         a-wwboio.ads, a-zzboio.adb, a-zzboio.ads:  New files.
487
488         * impunit.adb, Makefile.rtl: Added new Ada 2005 units.
489
490 2006-02-13  Robert Dewar  <dewar@adacore.com>
491
492         * rtsfind.adb, exp_prag.adb, lib-writ.adb, par-labl.adb, 
493         sem_case.adb: Minor code reorganization (not Present should be No)
494
495 2006-02-13  Geert Bosch  <bosch@adacore.com>
496             Gary Dismukes  <dismukes@adacore.com>
497
498         * a-tifiio.adb (Put_Digits): Test Last against To'First - 1 instead of
499         0, since the lower bound of the actual string may be greater than one.
500
501         PR ada/20753
502
503         (Put): Fix condition to raise Layout_Error when invalid
504         layout is requested.
505
506 2006-02-13  Vincent Celier  <celier@adacore.com>
507
508         * back_end.adb (Scan_Compiler_Arguments): Check if
509         Search_Directory_Present is True and, if it is, add the argument in
510         the source search directory path.
511
512         * switch-c.adb (Scan_Front_End_Switches): Accept switch "-I". Set
513         Search_Directory_Present to True.
514
515 2006-02-13  Joel Brobecker  <brobecke@adacore.com>
516
517         * bindgen.adb (Gen_Main_C): declare the ensure_reference variable as
518         volatile, to tell the compiler to preserve this variable at any level
519         of optimization.
520         (Gen_Versions_Ada): Temporarily work around codegen bug.
521
522 2006-02-13  Vincent Celier  <celier@adacore.com>
523
524         * gnatlink.adb (Process_Binder_File): If -shared is specified, invoke
525         gcc to link with option -shared-libgcc.
526         (Gnatlink): Remove duplicate switches -shared-libgcc
527
528 2006-02-13  Robert Dewar  <dewar@adacore.com>
529
530         * gnatvsn.ads (Current_Year): New constant, used to easily update
531         copyright on all GNAT tools.
532
533         * gnatls.adb, gnatname.adb, vms_conv.adb: Add 2006 to displayed
534         copyright notice.
535
536 2006-02-13  Robert Dewar  <dewar@adacore.com>
537
538         * erroutc.ads, erroutc.adb (Set_Message_Blank): Don't insert space
539         after hyphen (small aesthetic change useful for a range of numbers
540         using ^-^.
541         Suppress range checks for a couple of assignments which otherwise
542         cause validity checks with validity checking turned on.
543
544         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Size):
545         Improvement in error message for object.
546         (Rep_Item_Too_Late): Remove '!' in warning message.
547
548 2006-02-13  Robert Dewar  <dewar@adacore.com>
549             Eric Botcazou  <ebotcazou@adacore.com>
550
551         * err_vars.ads: Suppress range checks for a couple of assignments
552         which otherwise cause validity checks with validity checking turned on.
553         Update comments.
554
555         * errout.adb (Error_Msg_Internal): Do not suppress warning messages.
556         Make message unconditional if it is a warning.
557         (Error_Msg_NEL): Always output warning messages.
558         Suppress range checks for a couple of assignments which otherwise
559         cause validity checks with validity checking turned on.
560
561         * errout.ads (Message Insertion Characters): Document that '!' is
562         implied by '?' in error messages.
563
564         * gnat1drv.adb: (Bad_Body): Remove '!' in warning message.
565         (Gnat1drv): Use a goto to end of main subprogram instead of
566         Exit_Program (E_Success) so that finalization can occur normally.
567
568 2006-02-13  Eric Botcazou  <ebotcazou@adacore.com>
569
570         * s-stchop.adb (Stack_Check): Raise Storage_Error if the argument has
571         wrapped around.
572
573 2006-02-13  Vincent Celier  <celier@adacore.com>
574
575         * a-direct.adb (Duration_To_Time, OS_Time_To_Long_Integer): New
576         Unchecked_Conversion functions.
577         (Modification_Time): Use direct conversion of OS_Time to Calendar time
578         when OpenVMS returns False.
579
580         * a-dirval-mingw.adb, a-dirval-vms.adb, a-dirval.ads,
581         a-dirval.adb (OpenVMS): New Boolean function
582
583 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
584             Thomas Quinot  <quinot@adacore.com>
585
586         * checks.adb (Build_Discriminant_Checks): If the expression being
587         checks is an aggregate retrieve the values of its discriminants to
588         generate the check, rather than creating a temporary and a reference
589         to it.
590         (Apply_Access_Check): Rewritten to handle new Is_Known_Null flag
591         (Install_Null_Excluding_Check): Ditto
592         (Selected_Length_Checks): Build actual subtype for the original Ck_Node,
593         not for the renamed object, so that the actual itype is attached in the
594         proper context.
595
596 2006-02-13  Robert Dewar  <dewar@adacore.com>
597             Vincent Celier  <celier@adacore.com>
598
599         * debug.adb: Eliminate numeric switches for binder/gnatmake
600
601         * switch-m.adb (Normalize_Compiler_Switches): Record numeric debug
602         switches for the compiler.
603         (Scan_Make_Switches): Do not allow numeric debug switches for gnatmake
604         (Scan_Make_Switches): When failing with an illegal switch, output an
605         error message with the full switch.
606         Eliminate numeric switches for binder/gnatmake
607
608         * switch.ads, switch.adb (Bad_Switch): New procedure
609
610         * switch-b.adb (Scan_Binder_Switches): Do not accept combined switches.
611         Remove 0-9 as debug flag character possibilities
612         -d is now controlling the primary stack size when its value is a
613         positive. Also add checks against invalid values, and support for kb,
614         mb. Ditto for -D switch.
615
616 2006-02-13  Robert Dewar  <dewar@adacore.com>
617             Serguei Rybin  <rybin@adacore.com>
618
619         * opt.ads opt.adb: Add Ada_Version_Explicit_Config along with
620         save/restore routines.
621         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
622         were not always properly handled previously.
623         Since we are changing the tree format anyway, also get rid of the
624         junk obsolete Immediate_Errors flag.
625         (Tree_Read): Change the way of reading Tree_Version_String - now we
626         read the version string from the tree even if its length is not the
627         same as the length of the version string computed from Gnatvsn.
628         (Search_Directory_Present): New Boolean flag for the compiler.
629         Define Tree_Version_String as a dynamic string.
630         (Default_Stack_Size): new variable, used to handle switch -d.
631
632         * par-prag.adb: 
633         For pragma Ada_2005, remove stuff about setting Ada_Version_Explicit
634         only for main unit.
635         Add pragma Ada_2005 (synonym for Ada_05)
636         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
637         were not always properly handled previously.
638
639         * directio.ads, ioexcept.ads, sequenio.ads, text_io.ads: Change
640         explicit Ada_95 to Ada_2005.
641
642 2006-02-13  Javier Miranda  <miranda@adacore.com>
643             Robert Dewar  <dewar@adacore.com>
644             Ed Schonberg  <schonberg@adacore.com>
645
646         * einfo.ads, einfo.adb (First_Tag_Component): Protect the frontend
647         against errors in the source program: a private types for which the
648         corresponding full type declaration is missing and pragma CPP_Virtual
649         is used.
650         (Is_Unchecked_Union): Check flag on Implementation_Base_Type.
651         (Is_Known_Null): New flag
652         (Has_Pragma_Pure): New flag
653         (No_Return): Present in all entities, set only for procedures
654         (Is_Limited_Type): A type whose ancestor is an interface is limited if
655         explicitly declared limited.
656         (DT_Offset_To_Top_Func): New attribute that is present in E_Component
657         entities. Only used for component marked Is_Tag. If present it stores
658         the Offset_To_Top function used to provide this value in tagged types
659         whose ancestor has discriminants.
660
661         * exp_ch2.adb: Update status of new Is_Known_Null flag
662
663         * sem_ch7.adb: Maintain status of new Is_Known_Null flag
664
665         * sem_cat.adb (Get_Categorization): Don't treat function as Pure in
666         the categorization sense if Is_Pure was set by pragma Pure_Function.
667
668 2006-02-13  Quentin Ochem  <ochem@adacore.com>
669             Olivier Hainque  <hainque@adacore.com>
670
671         * bindusg.adb: Updated documentation for -d and -D switches.
672
673         * raise.h (__gnat_set_globals): added new parameter for
674         Default_Stack_Size.
675
676         * init.c (__gnat_adjust_context_for_raise) <alpha-vms case>: Implement.
677         (__gnat_handle_vms_condition): Adjust context before raise.
678         (__gnat_install_handler): Restore the global vector setup for GCC
679         versions before 3.4, as the frame based circtuitry is not available
680         in this case.
681         (__gnat_set_globals): added a parameter default_stack_size
682         (__gl_default_stack_size): new variable.
683
684 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
685
686         * exp_aggr.adb (Build_Array_Aggr_Code): Rename variable
687         "Others_Mbox_Present" to "Others_Box_Present" because the mbox concept
688         does not exist in the Ada RM.
689         (Compatible_Int_Bounds): Determine whether two integer range bounds
690         are of equal length and have the same start and end values.
691         (Is_Int_Range_Bounds): Determine whether a node is an integer range.
692         (Build_Record_Aggr_Code): Perform proper sliding of a nested array
693         aggregate when it is part of an object declaration.
694         (Build_Record_Aggr_Code)  If the aggregate ttype is a derived type that
695         constrains discriminants of its parent, add explicitly the discriminant
696         constraints of the ancestor by retrieving them from the
697         stored_constraint of the parent.
698
699 2006-02-13  Robert Dewar  <dewar@adacore.com>
700
701         * exp_attr.adb (Expand_N_Attribute_Reference, case Mechanism_Code): If
702         attribute Mechanism_Code is applied to renamed subprogram, modify
703         prefix to point to base subprogram.
704         Max/Min attributes now violate Restriction No_Implicit_Conditionals
705
706         * sinfo.ads: Document that Mechanism_Code cannot be applied to
707         renamed subprograms so that the front-end must replace the prefix
708         appropriately.
709
710 2006-02-13  Javier Miranda  <miranda@adacore.com>
711             Gary Dismukes  <dismukes@adacore.com>
712
713         * exp_ch3.adb (Component_Needs_Simple_Initialization): Add check for
714         availability of RE_Interface_Tag.
715         (Build_Initialization_Call): Fix wrong access to the discriminant value.
716         (Freeze_Record_Type): Do not generate the tables associated with
717         timed and conditional dispatching calls through synchronized
718         interfaces if compiling under No_Dispatching_Calls restriction.
719         When compiling for Ada 2005, for a nonabstract
720         type with a null extension, call Make_Controlling_Function_Wrappers
721         and insert the wrapper function declarations and bodies (the latter
722         being appended as freeze actions).
723         (Predefined_Primitive_Bodies): Do not generate the bodies of the
724         predefined primitives associated with timed and conditional
725         dispatching calls through synchronized interfaces if we are
726         compiling under No_Dispatching_Calls.
727         (Build_Init_Procedure):  Use RTE_Available to check if a run-time
728         service is available before generating a call.
729         (Make_Controlling_Function_Wrappers): New procedure.
730         (Expand_N_Full_Type_Declaration): Create a class-wide master for
731         access-to-limited-interfaces because they can be used to reference
732         tasks that implement such limited interface.
733         (Build_Offset_To_Top_Functions): Build the tree corresponding to the
734         procedure spec and body of the Offset_To_Top function that is generated
735         when the parent of a type with discriminants has secondary dispatch
736         tables.
737         (Init_Secondary_Tags): Handle the case in which the parent of the type
738         containing secondary dispatch tables has discriminants to generate the
739         correct arguments to call Set_Offset_To_Top.
740         (Build_Record_Init_Proc): Add call to Build_Offset_To_Top_Functions.
741
742         * a-tags.ads, a-tags.adb: (Check_Index): Removed.
743         Add Wide_[Wide_]Expanded_Name.
744         (Get_Predefined_Prim_Op_Address): New subprogram that provides exactly
745         the same functionality of Get_Prim_Op_Address but applied to predefined
746         primitive operations because the pointers to the predefined primitives
747         are now saved in a separate table.
748         (Parent_Size): Modified to get access to the separate table of primitive
749         operations or the parent type.
750         (Set_Predefined_Prim_Op_Address): New subprogram that provides the same
751         functionality of Set_Prim_Op_Address but applied to predefined primitive
752         operations.
753         (Set_Signature): New subprogram used to store the signature of a DT.
754         (Displace): If the Offset_To_Top value is not static then call the
755         function generated by the expander to get such value; otherwise use
756         the value stored in the table of interfaces.
757         (Offset_To_Top): The type of the actual has been changed to Address to
758         give the correct support to tagged types with discriminants. In this
759         case this value is stored just immediately after the tag field.
760         (Set_Offset_To_Top): Two new formals have been added to indicate if the
761         offset_to_top value is static and hence pass this value to the run-time
762         to store it in the table of interfaces, or else if this value is dynamic
763         and then pass to the run-time the address of a function that is
764         generated by the expander to provide this value for each object of the
765         type.
766
767         * rtsfind.ads (Default_Prin_Op_Count): Removed.
768         (Default_Prim_Op_Count): New entity
769         (Get_Predefined_Prim_Op_Address): New entity
770         (Set_Predefined_Prim_Op_Address): New entity
771         (RE_Set_Signature): New entity
772
773 2006-02-13  Thomas Quinot  <quinot@adacore.com>
774             Ed Schonberg  <schonberg@adacore.com>
775
776         * exp_ch4.adb (Expand_Allocator_Expression): Pass Allocator => True to
777         Make_Adjust_Call done for a newly-allocated object.
778
779         * exp_ch7.ads, exp_ch7.adb (Expand_Cleanup_Actions): If the statements
780         in a subprogram are wrapped in a cleanup block, indicate that the
781         subprogram contains an inner block with an exception handler.
782         (Make_Adjust_Call): New Boolean formal Allocator indicating whether the
783         Adjust call is for a newly-allocated object. In that case we must not
784         assume that the finalization list chain pointers are correct (since they
785         come from a bit-for-bit copy of the original object's pointers) so if
786         the attach level would otherwise be zero (no change), we set it to 4
787         instead to cause the pointers to be reset to null.
788
789         * s-finimp.adb (Attach_To_Final_List): New attach level: 4, meaning
790         reset chain pointers to null.
791
792 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
793
794         * exp_ch5.adb (Expand_Assign_Array): If the right-hand side is a
795         string, and the context requires a loop for the assignment (e.g.
796         because the left-hand side is packed), generate a unique name for the
797         temporary that holds the string, to prevent spurious name clashes.
798
799 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
800             Javier Miranda  <miranda@adacore.com>
801             Robert Dewar  <dewar@adacore.com>
802             Gary Dismukes  <dismukes@adacore.com>
803
804         * exp_ch6.adb (Expand_Inlined_Call): Handle calls to functions that
805         return unconstrained arrays.
806         Update comments.
807         (Expand_Call):  An indirect call through an access parameter of a
808         protected operation is not a protected call.
809         Add circuit to raise CE in Ada 2005 mode following call
810         to Raise_Exception.
811         (Register_DT_Entry): Do nothing if
812         the run-time does not give support to abstract interfaces.
813         (Freeze_Subprogram): In case of dispatching operations, do not generate
814         code to register the operation in the dispatch table if the source
815         is compiled with No_Dispatching_Calls.
816         (Register_Predefined_DT_Entry): Generate code that calls the new
817         run-time subprogram Set_Predefined_Prim_Op_Address instead of
818         Set_Prim_Op_Address.
819
820         * sem_ch5.adb (Analyze_Assignment_Statement): Do not apply length checks
821         on array assignments if the right-hand side is a function call that has
822         been inlined. Check is performed on the assignment in the block.
823         (Process_Bounds): If bounds and range are overloaded, apply preference
824         rule for root operations to disambiguate, and diagnose true ambiguity.
825         (Analyze_Assignment): Propagate the tag for a class-wide assignment with
826         a tag-indeterminate right-hand side even when Expander_Active is True.
827         Needed to ensure that dispatching calls to T'Input are allowed and
828         get the tag of the target class-wide object.
829
830         * sem_ch6.adb (New_Overloaded_Entity): Handle entities that override
831         an inherited primitive operation that already overrides several
832         abstract interface primitives. For transitivity, the new entity must
833         also override all the abstract interface primitives covered by the
834         inherited overriden primitive.
835         Emit warning if new entity differs from homograph in same scope only in
836         that one has an access parameter and the other one has a parameter of
837         a general access type with the same designated type, at the same
838         position in the signature.
839         (Make_Inequality_Operator): Use source locations of parameters and
840         subtype marks from corresponding equality operator when creating the
841         tree structure for the implicit declaration of "/=". This does not
842         change anything in behaviour except that the decoration of the
843         components of the subtree created for "/=" allows ASIS to get the
844         string images of the corresponding identifiers.
845         (Analyze_Return_Statement): Remove '!' in warning message.
846         (Check_Statement_Sequence): Likewise.
847         (Analyze_Subprogram_Body): For an access parameter whose designated type
848         is an incomplete type imported through a limited_with clause, use the
849         type of the corresponding formal in the body.
850         (Check_Returns): Implicit return in No_Return procedure now raises
851         Program_Error with a compile time warning, instead of beging illegal.
852         (Has_Single_Return):  Function returning unconstrained type cannot be
853         inlined if expression in unique return statement is not an identifier.
854         (Build_Body_To_Inline): It is possible to inline a function call that
855         returns an unconstrained type if all return statements in the function
856         return the same local variable. Subsidiary procedure Has_Single_Return
857         verifies that the body conforms to this restriction.
858
859         * sem_res.adb (Resolve_Equality_Op): If the operands do not have the
860         same type, and  one of them is of an anonymous access type, convert
861         the other operand to it, so that this is a valid binary operation for
862         gigi.
863         (Resolve_Type_Conversion): Handle subtypes of protected types and
864         task types when accessing to the corresponding record type.
865         (Resolve_Allocator): Add '\' in 2-line warning message.
866         Remove '!' in warning message.
867         (Resolve_Call): Add '\' in 2-line warning message.
868         (Valid_Conversion): Likewise.
869         (Resolve_Overloaded_Selected_Component): If disambiguation succeeds, the
870         resulting type may be an access type with an implicit dereference.
871         Obtain the proper component from the designated type.
872         (Make_Call_Into_Operator): Handle properly a call to predefined equality
873         given by an expanded name with prefix Standard, when the operands are
874         of an anonymous access type.
875         (Check_Fully_Declared_Prefix): New procedure, subsidiary of Resolve_
876         Explicit_Dereference and Resolve_Selected_Component, to verify that the
877         prefix of the expression is not of an incomplete type. Allows full
878         diagnoses of all semantic errors.
879         (Resolve_Actuals): If the actual is an allocator whose directly
880         designated type is a class-wide interface we build an anonymous
881         access type to use it as the type of the allocator. Later, when
882         the subprogram call is expanded, if the interface has a secondary
883         dispatch table the expander will add a type conversion to force
884         the displacement of the pointer.
885         (Resolve_Call): If a function that returns an unconstrained type is
886         marked Inlined_Always and inlined, the call will be inlined and does
887         not require the creation of a transient scope.
888         (Check_Direct_Boolean_Op): Removed
889         (Resolve_Comparison_Op): Remove call to above
890         (Resolve_Equality_Op): Remove call to above
891         (Resolve_Logical_Op): Inline above, since this is only call.
892         (Valid_Conversion): Handle properly conversions between arrays of
893         convertible anonymous access types.
894
895         PR ada/25885
896
897         (Set_Literal_String_Subtype): If the lower bound is not static, wrap
898         the literal in an unchecked conversion, because GCC 4.x needs a static
899         value for a string bound.
900
901 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
902             Hristian Kirtchev  <kirtchev@adacore.com>
903
904         * exp_ch9.adb (Expand_N_Protected_Type_Declaration): When creating the
905         components of the corresponding record, take into account component
906         definitions that are access definitions.
907         (Expand_N_Asynchronous_Select): A delay unit statement rewritten as a
908         procedure is not considered a dispatching call and will be expanded
909         properly.
910
911 2006-02-13  Javier Miranda  <miranda@adacore.com>
912
913         * exp_disp.ads, exp_disp.adb (Expand_Dispatching_Call): If the
914         controlling argument of the dispatching call is an abstract interface
915         class-wide type then we use it directly.
916         Check No_Dispatching_Calls restriction.
917         (Default_Prim_Op_Position): Remove the code that looks for the last
918         entity in the list of aliased subprograms. This code was wrong in
919         case of renamings.
920         (Fill_DT_Entry): Add assertion to avoid the use of this subprogram
921         when the source is compiled with the No_Dispatching_Calls restriction.
922         (Init_Predefined_Interface_Primitives): No need to inherit primitives
923         if we are compiling with restriction No_Dispatching_Calls.
924         (Make_Disp_XXX): Addition of assertion to avoid the use of all these
925         subprograms if we are compiling under No_Dispatching_Calls restriction.
926         (Make_DT): Generate a dispatch table with a single dummy entry if
927         we are compiling with the No_Dispatching_Calls restriction. In
928         addition, in this case we don't generate code that calls to the
929         following run-time subprograms: Set_Type_Kind, Inherit_DT.
930         (Make_Select_Specific_Data_Table): Add assertion to avoid the use
931         of this subprogram if compiling with the No_Dispatching_Calls
932         restriction.
933         (Expand_Type_Conversion): Instead of using the actual parameter,
934         the argument passed as parameter to the conversion function was
935         erroneously referenced by the expander.
936         (Ada_Actions): Addition of Get_Predefined_Prim_Op_Address,
937         Set_Predefined_Primitive_Op_Address and Set_Signature.
938         (Expand_Dispatching_Call): Generate call to
939         Get_Predefined_Prim_Op_Address for predefined primitives.
940         (Fill_DT_Entry): Generate call to Set_Predefined_Prim_Op_Address for
941         predefined primitives.
942         (Make_DT, Make_Secondary_DT): If the tagged type has no user defined
943         primitives we reserve one dummy entry to ensure that the tag does not
944         point to some memory that is associated with some other object. In
945         addition, remove all the old code that generated the assignments
946         associated with the signature of the dispatch table and replace them
947         by a call to the new subprogram Set_Signature.
948         (Set_All_DT_Position): Change the algorithm because now we have a
949         separate dispatch table associated with predefined primitive operations.
950         (Expand_Interface_Conversion): In case of non-static offset_to_top
951         add explicit dereference to get access to the object after the call
952         to displace the pointer to the object.
953         (Expand_Interface_Thunk): Modify the generation of the actual used
954         in the calls to the run-time function Offset_To_Top to fulfil its
955         new interface.
956         (Make_DT): Add the new actuals required to call Set_Offset_To_Top.
957
958 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
959
960         * exp_dist.adb (Copy_Specification): For access parameters, copy
961         Null_Exclusion flag, which will have been set for stream subprograms
962         in Ada2005 mode.
963
964 2006-02-13  Pascal Obry  <obry@adacore.com>
965
966         * expect.c (__gnat_expect_portable_execvp): New implementation. The
967         previous implementation was using the C runtime spawnve routine but
968         the corresponding wait was using directly the Win32 API. This was
969         causing some times a lock when waiting for an event using
970         WaitForSingleObject in __gnat_waitpid. This new implementation uses
971         the Win32 CreateProcess routine. Avoiding mixing C runtime and Win32
972         API fixes this problem.
973
974 2006-02-13  Robert Dewar  <dewar@adacore.com>
975
976         * exp_intr.adb (Expand_Unc_Deallocation): Correct error of bad analyze
977         call.
978
979 2006-02-13  Thomas Quinot  <quinot@adacore.com>
980
981         * exp_pakd.ads: Fix typos in comments.
982
983         * exp_pakd.adb (Convert_To_PAT_Type): For the case of a bit packed
984         array reference that is an explicit dereference, mark the converted
985         (packed) array reference as analyzed to prevent a forthcoming
986         reanalysis from resetting its type to the original (non-packed) array
987         type.
988
989 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
990             Javier Miranda  <miranda@adacore.com>
991             Eric Botcazou  <ebotcazou@adacore.com>
992
993         * exp_util.ads, exp_util.adb (Find_Prim_Op,
994         Is_Predefined_Primitive_Operation): When
995         searching for the predefined equality operator, verify that operands
996         have the same type.
997         (Is_Predefined_Dispatching_Operation): Remove the code that looks
998         for the last entity in the list of aliased subprograms. This code
999         was wrong in case of renamings.
1000         (Set_Renamed_Subprogram): New procedure
1001         (Remove_Side_Effects): Replace calls to Etype (Exp) with use of the
1002         Exp_Type constant computed when entering this subprogram.
1003         (Known_Null): New function
1004         (OK_To_Do_Constant_Replacement): New function
1005         (Known_Non_Null): Check scope before believing Is_Known_Non_Null flag
1006         (Side_Effect_Free): An attribute reference 'Input is not free of
1007         side effect, unlike other attributes that are functions. (from code
1008         reading).
1009         (Remove_Side_Effects): Expressions that involve packed arrays or records
1010         are copied at the point of reference, and therefore must be marked as
1011         renamings of objects.
1012         (Is_Predefined_Dispatching_Operation): Return false if the operation is
1013         not a dispatching operation.
1014
1015         PR ada/18819
1016         (Remove_Side_Effects): Lift enclosing type conversion nodes for
1017         elementary types in all cases.
1018
1019 2006-02-13  Javier Miranda  <miranda@adacore.com>
1020
1021         * freeze.adb (Freeze_Entity): Handle subtypes of protected types and
1022         task types when accessing to the corresponding record type.
1023         Remove '!' in warning message.
1024
1025 2006-02-13  Olivier Hainque  <hainque@adacore.com>
1026
1027         * g-altive.ads (VECTOR_ALIGNMENT): Set to Min (16, Max_Alignment),
1028         to avoid useless and space inefficient overalignments on targets where
1029         Max_Alignment is larger than 16.
1030
1031 2006-02-13  Pascal Obry  <obry@adacore.com>
1032
1033         * g-catiio.adb (Sec_Number): New type used to compute the number of
1034         seconds since 1-1-1970.
1035         (Image) [Natural]: The parameter was an Integer, as we can't deal with
1036         negative numbers (years, months...) it is better to have a Natural here.
1037         Code clean-up.
1038         (Image) [Number]: Change parameter from Long_Integer to Number.
1039         (Image): Use Number type to compute the seconds since 1-1-1970 to fix an
1040         overflow for dates past year 2038.
1041
1042 2006-02-13  Matthew Heaney  <heaney@adacore.com>
1043
1044         *  g-dyntab.adb (Index_Of): conversion from Natural can no longer raise
1045         Constraint_Error.
1046
1047 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
1048
1049         * gnatbind.adb (Scan_Bind_Arg): Replace error by warning on -M and
1050         native platforms.
1051         (Gnatbind): Do not call Exit_Program (E_Success) at the end, so that
1052         finalization can occur normally.
1053
1054 2006-02-13  Vincent Celier  <celier@adacore.com>
1055
1056         * gnatcmd.adb (Rules_Switches): New table
1057         (Add_To_Rules_Switches): New procedure
1058         (GNATCmd): For command CHECK, put all options following "-rules" in the
1059         Rules_Switches table. Append these -rules switches after the -cargs
1060         switches.
1061
1062 2006-02-13  Robert Dewar  <dewar@adacore.com>
1063
1064         * g-spipat.adb (Image, case PC_Assign_Imm and case PC_Assign_OnM):
1065         These two cases were generating incorrect output, and if this unit
1066         was built with checks on, generated a discriminant mismatch constraint
1067         error.
1068
1069 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
1070             Robert Dewar  <dewar@adacore.com>
1071
1072         * lib-xref.adb (Get_Type_Reference): For a private type whose full
1073         view is an array type, indicate the component type as well, for
1074         navigation purposes.
1075         (Generate_Reference): Don't consider array ref on LHS to be a case
1076         of violating pragma Unreferenced.
1077         Do not give Ada 2005 warning except on real reference.
1078
1079 2006-02-13  Vincent Celier  <celier@adacore.com>
1080
1081         * make.adb (Collect_Arguments_And_Compile): For VMS, when compiling the
1082         main source, add switch -mdebug-main=_ada_ so that the executable can
1083         be debugged by the standard VMS debugger.
1084         (Gnatmake): Set No_Main_Subprogram to True when there is no main
1085         subprogram, to avoid issuing -mdebug-main=_ada_ for VMS uselessly.
1086         Exit the Multi_Main_Loop when Unique_Compile is True after compilation
1087         of the last source, as the binding and linking phases are never
1088         performed.
1089         Set all executable obsolete when rebuilding a library.
1090
1091         * makeutl.adb (Linker_Options_Switches): Do not process empty linker
1092         options.
1093
1094 2006-02-13  Javier Miranda  <miranda@adacore.com>
1095
1096         PR ada/23973
1097
1098         * par-ch3.adb (P_Derived_Type_Def_Or_Private_Ext_Decl): Reorganize the
1099         code to improve the error message reported when the program has
1100         declarations of abstract interface types and it is not compiled with
1101         the -gnat05 switch.
1102         (P_Access_Definition): Reorganize the code to improve the error
1103         message reported when the new Ada 2005 syntax for anonymous
1104         access types is used and the program is not compiled with the
1105         -gnat05 switch.
1106
1107 2006-02-13  Robert Dewar  <dewar@adacore.com>
1108
1109         * par-ch6.adb, style.ads, styleg.adb, styleg.ads, stylesw.adb,
1110         stylesw.ads, usage.adb, vms_data.ads: Implement -gnatyI switch
1111         (MODE_IN)
1112
1113 2006-02-13  Javier Miranda  <miranda@adacore.com>
1114
1115         * par-endh.adb (Explicit_Start_Label): Add code to protect the parser
1116         against source containing syntax errors.
1117
1118 2006-02-13  Vincent Celier  <celier@adacore.com>
1119
1120         * prj.adb (Reset): Initialize the first element of table Namings with
1121         the standard naming data.
1122
1123 2006-02-13  Vincent Celier  <celier@adacore.com>
1124
1125         * prj.ads (Error_Warning): New enumeration type
1126
1127         * prj-nmsc.ads, prj-nmsc.adb (Error_Msg): If location parameter is
1128         unknown, use the location of the project to report the error.
1129         (When_No_Sources): New global variable
1130         (Report_No_Ada_Sources): New procedure
1131         (Check): New parameter When_No_Sources. Set value of global variable
1132         When_No_Sources,
1133         (Find_Sources): Call Report_No_Ada_Sources when appropriate
1134         (Get_Sources_From_File): Ditto
1135         (Warn_If_Not_Sources): Better warning messages indicating the unit name
1136         and the file name.
1137
1138         * prj-pars.ads, prj-pars.adb (Parse): New parameter When_No_Sources.
1139         Call Prj.Proc.Process with parameter When_No_Sources.
1140
1141         * prj-proc.ads, prj-proc.adb (Check): New parameter When_No_Sources.
1142         Call Recursive_Check with parameter When_No_Sources.
1143         (Recursive_Check): New parameter When_No_Sources. Call itself and
1144         Prj.Nmsc.Check with parameter When_No_Sources.
1145         (Process): New parameter When_No_Sources. Call Check with parameter
1146         When_No_Sources.
1147         (Copy_Package_Declarations): New procedure to copy renamed parameters
1148         and setting the location of the declared attributes to the location
1149         of the renamed package.
1150         (Process_Declarative_Items): Call Copy_Package_Declarations for renamed
1151         packages.
1152
1153 2006-02-13  Vincent Celier  <celier@adacore.com>
1154
1155         * prj-makr.adb (Make): Preserve the comments from the original project
1156         file.
1157         When removing nodes (attributes Source_Dirs, Source_Files,
1158         Source_List_File and package Naming), save the comments and attach the
1159         saved comments to the newly created nodes.
1160         Do not add a with clause for the naming package if one already exists.
1161
1162 2006-02-13  Javier Miranda  <miranda@adacore.com>
1163             Gary Dismukes  <dismukes@adacore.com>
1164             Robert Dewar  <dewar@adacore.com>
1165
1166         * restrict.ads (No_Dispatching_Calls): New GNAT restriction.
1167
1168         * sem_disp.adb (Override_Dispatching_Operation): Traverse the list of
1169         aliased entities to look for the overriden abstract interface
1170         subprogram.
1171         (Is_Interface_Subprogram): Complete documentation.
1172         (Check_Dispatching_Operation): Do not generate code to register the
1173         operation in the dispatch table if the source is compiled with
1174         restriction No_Dispatching_Calls.
1175         (Override_Dispatching_Operation): Check for illegal attempt to override
1176         No_Return procedure with procedure that is not No_Return
1177         (Check_Dispatching_Call): Suppress the check for an abstract operation
1178         when the original node of an actual is a tag-indeterminate attribute
1179         call, since the attribute, which must be 'Input, can never be abstract.
1180         (Is_Tag_Indeterminate): Handle checking of tag indeterminacy of a
1181         call to the Input attribute (even when rewritten).
1182         (Propagate_Tag): Augment comment to indicate the possibility of a call
1183         to an Input attribute.
1184
1185         * sem_disp.ads (Override_Dispatching_Operation): Moved to spec to allow
1186         calling it from Exp_Ch3.Make_Controlling_Function_Wrappers.
1187
1188         * s-rident.ads: (No_Dispatching_Calls): New GNAT restriction.
1189         No_Wide_Characters is no longer partition-wide
1190         No_Implementation_Attributes/Pragmas are now Ada 2005 (AI-257)
1191         rather than GNAT
1192
1193 2006-02-13  Douglas Rupp  <rupp@adacore.com>
1194
1195         * s-auxdec-vms_64.ads (Short_Address): Wrap it in a type.
1196
1197 2006-02-13  Javier Miranda  <miranda@adacore.com>
1198
1199         * sem_aggr.adb (Resolve_Record_Aggregate): Restructure the code that
1200         handles default-initialized components to keep separate the management
1201         of this feature but also avoid the unrequired resolution and
1202         expansion of components that do not have partially initialized
1203         values.
1204         (Collect_Aggr_Bounds): Add '\' in 2-line warning message.
1205         (Check_Bounds): Likewise.
1206         (Check_Length): Likewise.
1207
1208 2006-02-13  Javier Miranda  <miranda@adacore.com>
1209             Ed Schonberg  <schonberg@adacore.com>
1210
1211         * sem_attr.adb (Analyze_Attribute): In case of 'Class applied to an
1212         abstract interface type call analyze_and_resolve to expand the type
1213         conversion into the corresponding displacement of the
1214         reference to the base of the object.
1215         (Eval_Attribute, case Width): For systems where IEEE extended precision
1216         is supported, the maximum exponent occupies 4 decimal digits.
1217         (Accessibility_Message): Add '\' in 2-line warning message.
1218         (Resolve_Attribute): Likewise.
1219         (case Attribute_Access): Significantly revise checks
1220         for illegal access-to-subprogram Access attributes to properly enforce
1221         the rules of 3.10.2(32/2).
1222         Diagnose use of current instance with an illegal attribute.
1223
1224         * sem_util.ads, sem_util.adb (Enclosing_Generic_Body): Change formal
1225         to a Node_Id.
1226         (Enclosing_Generic_Unit): New function to return a node's innermost
1227         enclosing generic declaration node.
1228         (Compile_Time_Constraint_Error): Remove '!' in warning messages.
1229         (Type_Access_Level): The accessibility level of anonymous acccess types
1230         associated with discriminants is that of the current instance of the
1231         type, and that's deeper than the type itself (AARM 3.10.2 (12.3.21)).
1232         (Compile_Time_Constraint_Error): Handle case of conditional expression.
1233         (Kill_Current_Values_For_Entity): New function
1234         (Enter_Name): Change formal type to Entity_Id
1235
1236 2006-02-13  Hristian Kirtchev  <kirtchev@adacore.com>
1237             Ed Schonberg  <schonberg@adacore.com>
1238             Gary Dismukes  <dismukes@adacore.com>
1239
1240         * sem_ch10.adb (Check_Redundant_Withs): New procedure in
1241         Analyze_Compilation_Unit.
1242         Detect and warn on redundant with clauses detected in a package spec
1243         and/or body when -gnatwr is used.
1244         (Analyze_Context): Analyze config pragmas before other items
1245         (Install_Context_Items): Don't analyze config pragmas here
1246         (Install_Limited_Withed_Unit): Set limited entity of package in
1247         with_clause so that cross-reference information or warning messages on
1248         unused packages can be properly generated
1249         (Is_Visible_Through_Renamings): Return false if the limited_with_clause
1250         has Error_Posted set. Prevent infinite loops in illegal programs.
1251         (Check_Private_Child_Unit): Move test for a nonprivate with clause down
1252         to the point of the error test requiring the current unit to be private.
1253         This ensures that private with clauses are not exempted from the basic
1254         checking for being a descendant of the same library unit parent as a
1255         withed private descendant unit.
1256         (Check_Private_Limited_Withed_Unit): Revise the checking algorithm to
1257         handle private with clauses properly, as well as to account for cases
1258         where the withed unit is a public descendant of a private ancestor
1259         (in which case the current unit must be a descendant of the private
1260         ancestor's parent). The spec comments were updated accordingly. Also,
1261         the old error message in this subprogram was replaced with error
1262         messages that mirror the errors tested and reported by
1263         Check_Private_Child_Unit.
1264         Parameter and variable names improved for readability.
1265         (Install_Limited_Context_Clauses): Remove test for a withed unit being
1266         private as the precondition for calling
1267         Check_Private_Limited_Withed_Unit since that subprogram has been
1268         revised to test public units as well as private units.
1269
1270 2006-02-13  Thomas Quinot  <quinot@adacore.com>
1271             Robert Dewar  <dewar@adacore.com>
1272             Ed Schonberg  <schonberg@adacore.com>
1273             Javier Miranda  <miranda@adacore.com>
1274
1275         * sem_ch12.adb (Inline_Instance_Body): Remove erroneous assumption
1276         that Scope_Stack.First = 1.
1277         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
1278         were not always properly handled previously.
1279         (Formal_Entity): Complete rewrite, to handle properly some complex case
1280         with multiple levels of parametrization by formal packages.
1281         (Analyze_Formal_Derived_Type): Propagate Ada 2005 "limited" indicator
1282         to the corresponding derived type declaration for proper semantics.
1283
1284         * sem_prag.adb (Analyze_Pragma): Remove '!' in warning message.
1285         (Check_Component): Enforce restriction on components of
1286         unchecked_unions: a component in a variant cannot contain tasks or
1287         controlled types.
1288         (Unchecked_Union): Allow nested variants and multiple discriminants, to
1289         conform to AI-216.
1290         Add pragma Ada_2005 (synonym for Ada_05)
1291         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
1292         were not always properly handled previously.
1293         Document that pragma Propagate_Exceptions has no effect
1294         (Analyze_Pragma, case Pure): Set new flag Has_Pragma_Pure
1295         (Set_Convention_From_Pragma): Check that if a convention is
1296         specified for a dispatching operation, then it must be
1297         consistent with the existing convention for the operation.
1298         (CPP_Class): Because of the C++ ABI compatibility, the programmer is no
1299         longer required to specify an vtable-ptr component in the record. For
1300         compatibility reasons we leave the support for the previous definition.
1301         (Analyze_Pragma, case No_Return): Allow multiple arguments
1302
1303         * sem_ch3.ads, sem_ch3.adb (Check_Abstract_Overriding): Flag a
1304         non-overrideen inherited operation with a controlling result as
1305         illegal only its implicit declaration comes from the derived type
1306         declaration of its result's type.
1307         (Check_Possible_Deferred_Completion): Relocate the object definition
1308         node of the subtype indication of a deferred constant completion rather
1309         than directly analyzing it. The analysis of the generated subtype will
1310         correctly decorate the GNAT tree.
1311         (Record_Type_Declaration): Check whether this is a declaration for a
1312         limited derived record before analyzing components.
1313         (Analyze_Component_Declaration): Diagnose record types  not explicitly
1314         declared limited when a component has a limited type.
1315         (Build_Derived_Record_Type): Code reorganization to check if some of
1316         the inherited subprograms of a tagged type cover interface primitives.
1317         This check was missing in case of a full-type associated with a private
1318         type declaration.
1319         (Constant_Redeclaration): Check that the subtypes of the partial and the
1320         full view of a constrained deferred constant statically match.
1321         (Mentions_T): A reference to the current type in an anonymous access
1322         component declaration  must be an entity name.
1323         (Make_Incomplete_Type_Declaration): If type is tagged, set type of
1324         class_wide type to refer to full type, not to the incomplete one.
1325         (Add_Interface_Tag_Components): Do nothing if RE_Interface_Tag is not
1326         available. Required to give support to the certified run-time.
1327         (Analyze_Component_Declaration): In case of anonymous access components
1328         perform missing checks for AARM 3.9.2(9) and 3.10.2 (12.2).
1329         (Process_Discriminants): For an access discriminant, use the
1330         discriminant specification as the associated_node_for_itype, to
1331         simplify accessibility checks.
1332
1333 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
1334             Javier Miranda  <miranda@adacore.com>
1335
1336         * sem_ch4.adb (Remove_Abstract_Interpretations): Even if there are no
1337         abstract interpretations on an operator, remove interpretations that
1338         yield Address or a type derived from it, if one of the operands is an
1339         integer literal.
1340         (Try_Object_Operation.Try_Primitive_Operation,
1341         Try_Object_Operation.Try_Class_Wide_Operation): Set proper source
1342         location when creating the new reference to a primitive or class-wide
1343         operation as a part of rewriting a subprogram call.
1344         (Try_Primitive_Operations): If context requires a function, collect all
1345         interpretations after the first match, because there may be primitive
1346         operations of the same type with the same profile and different return
1347         types. From code reading.
1348         (Try_Primitive_Operation): Use the node kind to choose the proper
1349         operation when a function and a procedure have the same parameter
1350         profile.
1351         (Complete_Object_Operation): If formal is an access parameter and prefix
1352         is an object, rewrite as an Access reference, to match signature of
1353         primitive operation.
1354         (Find_Equality_Type, Find_One_Interp): Handle properly equality given
1355         by an expanded name with prefix Standard, when the operands are of an
1356         anonymous access type.
1357         (Remove_Abstract_Operations): If the operation is abstract because it is
1358         inherited by a user-defined type derived from Address, remove it as
1359         well from the set of candidate interpretations of an overloaded node.
1360         (Analyze_Membership_Op): Membership test not applicable to cpp-class
1361         types.
1362
1363 2006-02-13  Bob Duff  <duff@adacore.com>
1364
1365         * sem_ch8.adb (Note_Redundant_Use): Suppress unhelpful warning about
1366         redundant use clauses.
1367         In particular, if the scope of two use clauses overlaps, but one is not
1368         entirely included in the other, we should not warn.  This can happen
1369         with nested packages.
1370         (Analyze_Subprogram_Renaming): Protect the compiler against previously
1371         reported errors. The bug was reported when the compiler was built
1372         with assertions enabled.
1373         (Find_Type): If the node is a 'Class reference and the prefix is a
1374         synchronized type without a corresponding record, return the type
1375         itself.
1376
1377 2006-02-13  Javier Miranda  <miranda@adacore.com>
1378
1379         * sem_ch9.adb (Analyze_Protected_Type, Analyze_Task_Type): Check that
1380         if this is the full-declaration associated with a private declaration
1381         that implement interfaces, then the private type declaration must be
1382         limited.
1383         (Analyze_Single_Protected, Analyze_Single_Task): Do not mark the object
1384         as aliased. The use of the 'access attribute is not available for such
1385         object (for this purpose the object should be explicitly marked as
1386         aliased, but being an anonymous type this is not possible).
1387
1388 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
1389             Robert Dewar  <dewar@adacore.com>
1390
1391         * sem_elab.adb (Same_Elaboration_Scope): A package that is a
1392         compilation unit is an elaboration scope.
1393         (Add_Task_Proc): Add '\' in 2-line warning message.
1394         (Activate_All_Desirable): Deal with case of unit with'ed by parent
1395
1396 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
1397             Javier Miranda  <miranda@adacore.com>
1398
1399         * sem_type.adb (Write_Overloads): Improve display of candidate
1400         interpretations.
1401         (Add_One_Interp): Do not add to the list of interpretations aliased
1402         entities corresponding with an abstract interface type that is an
1403         immediate ancestor of a tagged type; otherwise we have a dummy
1404         conflict between this entity and the aliased entity.
1405         (Disambiguate): The predefined equality on universal_access is not
1406         usable if there is a user-defined equality with the proper signature,
1407         declared in the same declarative part as the designated type.
1408         (Find_Unique_Type): The universal_access equality operator defined under
1409         AI-230 does not cover pool specific access types.
1410         (Covers): If one of the types is a generic actual subtype, check whether
1411         it matches the partial view of the other type.
1412
1413 2006-02-13  Thomas Quinot  <quinot@adacore.com>
1414
1415         * sinput-d.adb (Write_Line): Update the Source_Index_Table after each
1416         line. This is necessary to allow In_Extended_Main_Unit to provide
1417         correct results for itypes while writing out expanded source.
1418         (Close_File): No need to update the source_index_table here since it's
1419         now done for each line.
1420
1421 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
1422             Robert Dewar  <dewar@adacore.com>
1423
1424         * sprint.adb (Write_Itype): Preserve Sloc of declaration, if any, to
1425         preserve the source unit where the itype is declared, and prevent a
1426         backend abort.
1427         (Note_Implicit_Run_Time_Call): New procedure
1428         (Write_Itype): Handle missing cases (E_Class_Wide_Type and
1429         E_Subprogram_Type)
1430
1431         * sprint.ads: Document use of $ for implicit run time routine call
1432
1433 2006-02-13  Quentin Ochem  <ochem@adacore.com>
1434
1435         * s-stausa.adb (Initialize_Analyzer): fixed error in assignment of
1436         task name.
1437
1438 2006-02-13  Bob Duff  <duff@adacore.com>
1439
1440         * s-valint.adb (Scan_Integer): Call Scan_Raw_Unsigned instead of
1441         Scan_Unsigned, so we do not scan leading blanks and sign twice.
1442         Integer'Value("- 5") and Integer'Value("-+5") now correctly
1443         raise Constraint_Error.
1444
1445         * s-vallli.adb (Scan_Long_Long_Integer): Call
1446         Scan_Raw_Long_Long_Unsigned instead of Scan_Long_Long_Unsigned, so we
1447         do not scan leading blanks and sign twice.
1448         Integer'Value("- 5") and Integer'Value("-+5") now correctly
1449         raise Constraint_Error.
1450
1451         * s-valllu.ads, s-valllu.adb (Scan_Raw_Long_Long_Unsigned,
1452         Scan_Long_Long_Unsigned): Split out most of the processing from
1453         Scan_Long_Long_Unsigned out into
1454         Scan_Raw_Long_Long_Unsigned, so that Val_LLI can call the Raw_ version.
1455         This prevents scanning leading blanks and sign twice.
1456         Also fixed a bug: Modular'Value("-0") should raise Constraint_Error
1457         See RM-3.5(44).
1458
1459         * s-valuns.ads, s-valuns.adb (Scan_Raw_Unsigned, Scan_Unsigned): Split
1460         out most of the processing from Scan_Unsigned out into
1461         Scan_Raw_Unsigned, so that Val_LLI can call the Raw_ version.
1462         This prevents scanning leading blanks and sign twice.
1463
1464         * s-valuti.ads, s-valuti.adb (Scan_Plus_Sign): Add Scan_Plus_Sign, for
1465         use with Modular'Value attribute.
1466         (Scan_Plus_Sign): Add Scan_Plus_Sign, for use with Modular'Value
1467         attribute.
1468
1469 2006-02-13  Robert Dewar  <dewar@adacore.com>
1470
1471         * s-wchjis.adb (JIS_To_EUC): Raise Constraint_Error for invalid value
1472
1473 2006-02-13  Eric Botcazou  <ebotcazou@adacore.com>
1474
1475         * tracebak.c (PPC AIX/Darwin): Define FORCE_CALL to 1.
1476         (PPC VxWorks): Likewise.
1477         (Generic unwinder): Define FORCE_CALL to 0 if not already defined.
1478         (forced_callee): Make non-inlinable and non-pure.
1479         (__gnat_backtrace): Call forced_callee if FORCE_CALL is set to 1.
1480
1481 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
1482             Ben Brosgol  <brosgol@adacore.com>
1483             Robert Dewar  <dewar@adacore.com>
1484
1485         * gnat_rm.texi, gnat_ugn.texi: Remove limitations with sparc m64
1486         support.
1487         Document that gnatbind -M option is for cross environments only.
1488         Added description of using gnatmem to trace gnat rtl allocs and deallocs
1489         Add note on use of $ to label implicit run time calls
1490         Add documentation for -gnatyI (check mode IN)
1491         Updated chapter on compatibility with HP Ada
1492         VMS-oriented edits.
1493         Ran spell and corrected errors
1494         Add documentation for gnatbind -d and rework documentation of -D
1495         at the same time.
1496         Add subprogram/data elimination section.
1497         Minor editing of annex A.
1498         Add section for gnatcheck.
1499         Add documentation for restriction No_Dispatching_Calls
1500         Add documentation for pragma Ada_2005
1501         Remove mention of obsolete pragma Propagate_Exceptions
1502         Document that pragma Unreferenced can appear after DO in ACCEPT
1503         Clarify Pure_Function for library level units
1504         Mention Max/Min in connection with No_Implicit_Conditionals
1505         No_Wide_Characters restriction is no longer partition-wide
1506         Add a nice example for Universal_Literal_String attribute
1507         Document that pragma No_Return can take multiple arguments
1508
1509         * ug_words: Added entry for gnatcheck
1510
1511         * g-ctrl_c.ads (Install_Handler): Enhance comments
1512
1513         * g-os_lib.ads: Add comments to OS_Exit that it is abrupt termination
1514
1515         * g-trasym.ads: Add documentation on how to do off line symbolic
1516         traceback computation.
1517
1518         * s-fatgen.adb: Add comments for Unaligned_Valid
1519
1520         * stand.ads: Fix typo in comment
1521
1522 2006-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1523
1524         * Make-lang.in (check-gnat): Run run_acats with $(SHELL).
1525
1526 2006-02-06  Roger Sayle  <roger@eyesopen.com>
1527
1528         * decl.c (gnat_substitute_in_type): Don't handle CHAR_TYPE.
1529
1530 2006-02-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1531
1532         PR target/25926
1533         * initialize.c (__gnat_initialize): Provide HP-UX 10 host and target
1534         implementation that calls __main.
1535
1536 2006-01-25  Peter O'Gorman  <peter@pogma.com>
1537
1538         PR bootstrap/25859
1539         * Makefile.in (GCC_LINK): Remove quotes.
1540         (tools targets): Link with either $(GNATLINK) --GCC="$(GCC_LINK)"
1541         or $(GCC_LINK).
1542
1543         (powerpc-darwin): Pass -shared-libgcc when building shared library.
1544
1545 2006-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1546
1547         PR ada/24533
1548         * s-osinte-linux-hppa.ads: Reduce alignment of atomic_lock_t to 8.
1549
1550 2005-12-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1551
1552         * s-osinte-linux-hppa.ads: Correct alignment of atomic_lock_t.
1553
1554 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
1555
1556         * Makefile.in: Remove dummy setting of GCC_FOR_TARGET, no longer
1557         needed.
1558
1559 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
1560
1561         * Make-lang.in: Update dependencies
1562
1563 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
1564
1565         * Make-lang.in: Add rule for ada/exp_sel.o
1566
1567 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
1568
1569         * Makefile.in (mingw section): Remove EH_MECHANISM setting.
1570
1571 2005-12-09  Arnaud Charlet  <charlet@adacore.com>
1572
1573         * gnatvsn.ads (Library_Version): Bump to version 4.2
1574         (ASIS_Version_Number): Bumped.
1575
1576 2005-12-09  Doug Rupp  <rupp@adacore.com>
1577
1578         * mlib-tgt-vms-ia64.adb, mlib-tgt-vms-alpha.adb (Is_Interface): Change
1579         Ada bind file prefix on VMS from b$ to b__.
1580         (Build_Dynamic_Library): Change Init file suffix on VMS from $init to
1581         __init.
1582
1583         * prj-nmsc.adb: Change some Hostparm.OpenVMS checks to
1584         Targparm.OpenVMS_On_Target.
1585         (Object_Suffix): Initialize with target object suffix.
1586         (Get_Unit): Change Ada bind file prefix on VMS from b$ to b__.
1587
1588         * butil.adb: Change some Hostparm.OpenVMS checks to
1589         Targparm.OpenVMS_On_Target.
1590
1591         * clean.adb: Change some Hostparm.OpenVMS checks to
1592         Targparm.OpenVMS_On_Target.
1593         (Object_Suffix): Initialize with call to Get_Target_Object_Suffix.
1594         ({declaraction},Delete_Binder_Generated_Files,{initialization}): Change
1595         Ada bind file prefix on VMS from b$ to b__.
1596
1597         * gnatlink.adb (Process_Args): Call Add_Src_Search_Dir for -I in
1598         --GCC so that Get_Target_Parameters can find system.ads.
1599         (Gnatlink): Call Get_Target_Parameters in mainline.
1600         Initialize standard packages for Targparm.
1601         Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target.
1602         (Process_Args): Also Check for object files with target object
1603         extension.
1604         (Make_Binder_File_Names): Create with target object extension.
1605         (Make_Binder_File_Names): Change Ada bind file prefix on VMS from b$
1606         to b__.
1607
1608         * mlib-prj.adb: Change some Hostparm.OpenVMS checks to
1609         Targparm.OpenVMS_On_Target.
1610         ({declaration},Build_Library,Check_Library): Change Ada bind file
1611         prefix on VMS from b$ to b__.
1612
1613         * osint-b.adb: Change some Hostparm.OpenVMS checks to
1614         Targparm.OpenVMS_On_Target.
1615         (Create_Binder_Output): Change Ada bind file prefix on VMS from b$ to
1616         b__.
1617
1618         * targext.c: New file.
1619
1620         * Makefile.in: add support for vxworks653 builds
1621         (../../vxaddr2line): gnatlink with targext.o.
1622         (TOOLS_LIBS): Move targext.o to precede libgnat.
1623         (init.o, initialize.o): Minor clean up in dependencies.
1624         (GNATLINK_OBJS): Add targparm.o, snames.o
1625         Add rules fo building targext.o and linking it explicitly with all
1626         tools.
1627         Also add targext.o to gnatlib.
1628
1629         * Make-lang.in: Add rules for building targext.o and linking it in
1630         with gnat1 and gnatbind.
1631         Add entry for exp_sel.o.
1632
1633         * osint.adb Change some Hostparm.OpenVMS checks to
1634         Targparm.OpenVMS_On_Target.
1635         (Object_File_Name): Use target object suffix.
1636
1637         * osint.ads (Object_Suffix): Remove, no longer used.
1638         (Target_Object_Suffix): Initialize with target object suffix.
1639
1640         * rident.ads: Add special exception to license.
1641
1642         * targparm.adb (Get_Target_Parameters): Set the value of
1643         Multi_Unit_Index_Character after OpenVMS_On_Target gets its definitive
1644         value.
1645         (Get_Target_Parameters): Set OpenVMS_On_Target if openvms.
1646         
1647         * targparm.ads: Add special exception to license.
1648
1649         * g-os_lib.ads, g-os_lib.adb (Get_Target_Debuggable_Suffix): New
1650         function.
1651         (Copy_File): Make sure from file is closed if error on to file
1652         (Get_Target_Executable_Suffix, Get_Target_Object_Suffix): New functions.
1653
1654         * make.adb (Object_Suffix): Intialize with Get_Target_Object_Suffix.
1655         (Executable_Suffix): Intialize with Get_Target_Executable_Suffix.
1656
1657         * osint-c.adb (Set_Output_Object_File_Name): Initialize extension with
1658         target object suffix.
1659
1660 2005-12-09  Jose Ruiz  <ruiz@adacore.com>
1661             Quentin Ochem  <ochem@adacore.com>
1662             Florian Villoing  <villoing@adacore.com>
1663
1664         * a-taster.ads, a-taster.adb: New files.
1665
1666         * a-elchha.adb (Last_Chance_Handler): Change the task termination soft
1667         link to the version that does nothing. This way the task termination
1668         routine is not executed twice for the environment task when finishing
1669         because of an unhandled exception.
1670
1671         * a-exextr.adb (Notify_Unhandled_Exception): Call the task termination
1672         handler because of an unhandled exception.
1673
1674         * a-taside.adb (Abort_Tasks): Call the Abort_Tasks procedure from
1675         System.Tasking.Utilities instead of that in System.Tasking.Stages.
1676
1677         * s-finimp.adb (initialization code): Modify the soft link for the
1678         finalization of the global list instead of Adafinal.
1679
1680         * s-soflin.ads, s-soflin.adb (Task_Termination_NT): Add this
1681         non-tasking version of the soft link for task termination. We do
1682         nothing since if we are using the non-tasking version it
1683         means that the task termination functionality is not used.
1684         (Null_Finalize_Global_List): Add this null version for the procedure
1685         in charge of finalizing the global list for controlled objects.
1686         (Null_Adafinal): Remove this procedure. Adafinal_NT has been created
1687         instead for handling run-time termination in a more flexible way.
1688         (Adafinal_NT): This new procedure will take care of finalizing the
1689         global list for controlled objects if needed, but no tasking
1690         finalization.
1691
1692         * s-tarest.adb (Task_Lock): Do not try to lock again the
1693         Global_Task_Lock if we already own it. Otherwise, we get blocked in
1694         some run-time operations.
1695         (Task_Unlock): Do not try to actually unlock the Global_Task_Lock
1696         until all nested locks have been released.
1697         (Task_Wrapper): Call the fall-back task termination handler. It
1698         applies to all tasks but the environment task.
1699         (Finalize_Global_Tasks): Add the call for the task termination
1700         procedure for the environment task.
1701         (Task_Wrapper): suppress warnings around declaration of
1702         Secondary_Stack_Address.
1703
1704         * s-tasini.adb (Final_Task_Unlock): Global_Task_Lock_Nesting has been
1705         moved to the Common_ATCB record.
1706         (Task_Lock): Global_Task_Lock_Nesting has been moved to the
1707         Common_ATCB record.
1708         (Task_Unlock): Global_Task_Lock_Nesting has been moved to the
1709         Common_ATCB record.
1710
1711         * s-taskin.adb (Initialize_ATCB): Initialize Global_Task_Lock_Nesting,
1712         Fall_Back_Handler, and Specific_Handler.
1713
1714         * s-taskin.ads (Cause_Of_Termination): Redefine this type here, already
1715         defined in Ada.Task_Termination, to avoid circular dependencies.
1716         (Termination_Handler): Redefine this type here, alredy defined in
1717         Ada.Task_Termination, for avoiding circular dependencies.
1718         (Common_ATCB): Add the Fall_Back_Handler and Specific_Handler required
1719         for storing task termination handlers. In addition,
1720         Global_Task_Lock_Nesting has been moved from Ada_Task_Control_Block to
1721         Common_ATCB because it is used by both the regular and the restricted
1722         run times.
1723         (Ada_Task_Control_Block): Move Global_Task_Lock_Nesting from here to
1724         Common_ATCB because it is used by both the regular and the restricted
1725         run times.
1726         (Common_ATCB): Added a dynamic task analyzer field.
1727
1728         * s-tassta.adb (Abort_Tasks): Move the code in charge of checking
1729         potentially blocking operations to System.Tasking.Utilities.Abort_Tasks.
1730         (Task_Wrapper): Call the task termination handler. It applies to all
1731         tasks but the environment task.
1732         (Finalize_Global_Tasks): Call the task termination procedure for the
1733         environment task. The call to Finalize_Global_List is now performed
1734         using the soft links mechanism.
1735         (Task_Wrapper): added dynamic stack analysis.
1736
1737         * s-tasuti.adb (Abort_Tasks): The code in charge of checking
1738         potentially blocking operations has been moved from
1739         System.Tasking.Stages.Abort_Tasks to this procedure. There can be
1740         direct calls to System.Tasking.Utilities.Abort_Tasks that do not pass
1741         through System.Tasking.Stages.Abort_Tasks, and we do not want to miss
1742         this run-time check.
1743
1744         * s-solita.adb (Task_Termination_Handler_T): Add this task-safe version
1745         of task termination procedure.
1746         (Init_Tasking_Soft_Links): Install the task-safe version of the soft
1747         link for the task termination procedure.
1748
1749         * bindusg.adb: (Bindusg): Added documentation for -u option.
1750
1751         * bindgen.adb (Get_Main_Ada) Added handling of dynamic stack analysis.
1752         (Get_Main_C): Add handling of dynamic stack analysis.
1753         (Gen_Output_File_C): Add external functions for dynamic stack analysis.
1754
1755         * Makefile.rtl: Add entry for a-taster (Ada.Task_Termination).
1756         (GNATRTL_NONTASKING_OBJS) Added entries for dynamic stack analysis
1757         (GNATRTL_NONTASKING_OBJS): Add AltiVec files.
1758
1759         * opt.ads: Added flags used by dynamic stack measurement.
1760         (Max_Line_Length): Remove (not used anymore)
1761
1762         * s-io.ads, s-io.adb (Standard_Error): new subprogram
1763         (Standart_Output): new subprogram
1764         (Set_Output): new subprogram
1765         (Put): now uses the value of Current_Out to know if the output has to be
1766         send to stderr or stdout.
1767         
1768         * s-stausa.ads: Complete implementation.
1769
1770         * switch-b.adb: Added handling of -u switch for dynamic stack analysis.
1771         
1772         * impunit.adb (Non_Imp_File_Names_05): Add Ada.Task_Termination to the
1773         list of Ada 05 files.
1774         (GNAT Library Units): Add AltiVec files.
1775
1776         * g-allein.ads, g-alleve.adb, g-alleve.ads, g-altcon.adb,
1777         g-altcon.ads, g-altive.ads, g-alveop.adb, g-alveop.ads
1778         g-alvety.ads, g-alvevi.ads: New files providing altivec API.
1779
1780 2005-12-09  Nicolas Setton  <setton@adacore.com>
1781
1782         * adaint.c (__gnat_locate_regular_file): Return immediately if
1783         file_name is empty.
1784
1785 2005-12-09  Javier Miranda  <miranda@adacore.com>
1786             Hristian Kirtchev  <kirtchev@adacore.com>
1787
1788         * a-tags.ads, a-tags.adb (Offset_To_Top): Moved from the package body
1789         to the specification because the frontend generates code that uses this
1790         subprogram.
1791         (Set_Interface_Table): Add missing assertion.
1792         Update documentation describing the run-time structure.
1793         (Displace): New subprogram that displaces the pointer to the object
1794         to reference one of its secondary dispatch tables.
1795         (IW_Membership): Modified to use the new table of interfaces.
1796         (Inherit_TSD): Modified to use the new table of interfaces.
1797         (Register_Interface_Tag): Use the additional formal to fill the
1798         contents of the new table of interfaces.
1799         (Set_Interface_Table): New subprogram that stores in the TSD the
1800         pointer to the table of interfaces.
1801         (Set_Offset_To_Top): Use the additional formal to save copy of
1802         the offset value in the table of interfaces.
1803         Update structure of GNAT Primary and Secondary dispatch table diagram.
1804         Add comment section on GNAT dispatch table prologue.
1805         (Offset_To_Signature): Update the constant value of the Signature field.
1806         (Dispatch_Table): Update comment on hidden fields in the prologue.
1807         (Get_Entry_Index, Get_Prim_Op_Kind, Get_Offset_Index, OSD,
1808         Set_Entry_Index, Set_Offset_Index, Set_Prim_Op_Kind, SSD, TSD): Change
1809         the type of formal parameter T to Tag, introduce additional assertions.
1810         (Get_Num_Prim_Ops, Set_Num_Prim_Ops): Remove an unnecessary type
1811         conversion.
1812         (Get_Tagged_Kind, Set_Tagged_Kind): New bodies.
1813
1814         * exp_ch6.adb (Register_Interface_DT_Entry): Remove the Thunk_Id actual
1815         in all the calls to Expand_Interface_Thunk. Instead of referencing the
1816         record component containing the tag of the secondary dispatch table we
1817         have to use the Offset_To_Top run-time function to get this information;
1818         otherwise if the pointer to the base of the object has been displace
1819         we get a wrong value if we use the 'position attribute.
1820
1821         * exp_disp.adb (Expand_Interface_Thunk): Remove the Thunk_Id actual in
1822         all the calls to Expand_Interface_Thunk.
1823         (Make_Secondary_DT): Secondary dispatch tables do not have a table of
1824         interfaces; hence the call to Set_Interface_Table was clearly wrong.
1825         (Collect_All_Interfaces): Modify the internal subprogram Collect to
1826         ensure that the interfaces implemented by the ancestors are placed
1827         at the header of the generated list.
1828         (Expand_Interface_Conversion): Handle the case in which the displacement
1829         associated with the interface conversion is not statically known. In
1830         this case we generate a call to the new run-time subprogram Displace.
1831         (Make_DT): Generate and fill the new table of interfaces.
1832         (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Add entries for
1833         Get_Tagged_Kind and Set_Tagged_Kind.
1834         (Tagged_Kind): New function that determines the tagged kind of a type
1835         with respect to limitedness and concurrency and returns a reference to
1836         RE_Tagged_Kind.
1837         (Make_Disp_Asynchronous_Select_Body, Make_Disp_Conditional_Select_Body,
1838         Make_Disp_Timed_Select_Body): Correctly retrieve the pointer to the
1839         primary dispatch table for a type.
1840         (Make_DT, Make_Secondary_DT): Set the tagged kind in the primary and
1841         secondary dispatch table respectively of a tagged type.
1842
1843         * exp_disp.ads (Expand_Interface_Thunk): Remove Thunk_Id formal.
1844         (Expand_Interface_Conversion): New subprogram to indicate if the
1845         displacement of the type conversion is statically known.
1846         (DT_Access_Action): Add values Get_Tagged_Kind and Set_Tagged_Kind.
1847
1848         * rtsfind.ads (RE_Offset_To_Top): New entity
1849         (RTU_Id): Add Ada_Task_Termination to the list so that it is made
1850         accessible to users.
1851         (Re_Displace): New entity
1852         (RE_Interface_Data): New entity
1853         (RE_Set_Interface_Data): New_Entity
1854         (RE_Id, RE_Unit_Table): Add entry for RE_Get_Tagged_Kind,
1855         Set_Tagged_Kind, RE_Tagged_Kind, RE_TK_Abstract_Limited_Tagged,
1856         RE_TK_Abstract_Tagged, RE_TK_Limited_Tagged, RE_TK_Protected,
1857         RE_TK_Tagged, RE_TK_Task.
1858
1859         * exp_ch3.adb (Init_Secondary_Tags): Modify the subprogram
1860         Init_Secondary_Tags_Internal to allow its use with interface types and
1861         also to generate the code for the new additional actual required
1862         by Set_Offset_To_Top.
1863         (Build_Init_Statements): In case of components associated with abstract
1864         interface types there is no need to generate a call to its IP.
1865         (Freeze_Record_Type): Generate Select Specific Data tables only for
1866         concurrent types.
1867         (Make_Predefined_Primitive_Specs, Predefined_Primitive_Bodies): Generate
1868         the bodies and specifications of the predefined primitive operations
1869         dealing with dispatching selects and abort, 'Callable, 'Terminated only
1870         for concurrent types.
1871
1872         * exp_sel.ads, exp_sel.adb: New files.
1873
1874         * exp_ch9.adb (Build_Protected_Entry, Expand_N_Protected_Body,
1875         Expand_N_Protected_Type_Declaration, Make_Initialize_Protection): Handle
1876         properly protected objects and attach handler in the case of the
1877         restricted profile.
1878         Move embeded package Select_Expansion_Utilities into a separate external
1879         package.
1880         (Expand_N_Asynchronous_Select, Expand_N_Conditional_Select,
1881         Expand_N_Timed_Entry_Call): Correct calls external package Exp_Sel.
1882         (Build_K, Build_S_Assignment): New subprograms, part of the select
1883         expansion utilities.
1884         (Expand_N_Asynchronous_Select, Expand_N_Conditional_Entry_Call,
1885         Expand_N_Timed_Entry_Call): Optimize expansion of select statements
1886         where the trigger is a dispatching procedure of a limited tagged type.
1887
1888 2005-12-09  Olivier Hainque  <hainque@adacore.com>
1889
1890         * decl.c (gnat_to_gnu_entity, renaming object case): Don't early expand
1891         pointer initialization values. Make a SAVE_EXPR instead. Add comments
1892         about the use and expansion of SAVE_EXPRs in the various possible
1893         renaming handling cases.
1894         (components_to_record, compare_field_bitpos): Sort by DECL_UID, not by
1895         abusing DECL_FCONTEXT.
1896
1897 2005-12-09  Matthew Heaney  <heaney@adacore.com>
1898
1899         * a-convec.adb (Merge): Added assertions to check whether vector params
1900         are sorted.
1901
1902         * a-coinve.adb (Merge): Added assertions to check whether vector params
1903         are sorted.
1904
1905         * a-cohama.ads (Cursor'Write): raises Program_Error per latest AI-302
1906         draft.
1907         (Cursor'Read): raises PE
1908
1909         * a-cohama.adb (Insert.New_Node): Uses box-style syntax to init elem
1910         to its default value.
1911
1912         * a-cihama.adb: Manually check whether cursor's key and elem are
1913         non-null
1914
1915         * a-cidlli.ads, a-cidlli.adb (Splice): Changed param name and param mode
1916         (Merge): Assert that target and source lists are in order
1917         (Swap): Declare non-const temporaries, to pass to Splice
1918
1919         * a-cdlili.ads: (Splice): Changed param name and param mode
1920
1921         * a-cdlili.adb: (Splice): Changed param name and param mode
1922         (Merge): Assert that target and source lists are in order
1923         (Swap): Declare non-const temporaries, to pass to Splice
1924
1925         * a-ciorma.ads, a-coorma.ads: (Read): declare Stream param as not null
1926         (Write): declare Stream param as not null
1927
1928         * a-ciorma.adb, a-coorma.adb: All explicit raise statements now include
1929         an exception message.
1930
1931 2005-12-09  Thomas Quinot  <quinot@adacore.com>
1932             Robert Dewar  <dewar@adacore.com>
1933
1934         * hostparm.ads (Max_Line_Length): Set to Types.Column_Number'Last - 1,
1935         which is the absolute maximum length we can support.
1936
1937         * frontend.adb: For the processing of configuration pragma files,
1938         remove references to Opt.Max_Line_Length, which is not checked anymore.
1939
1940         * namet.ads (Name_Buffer): Adjust size to reflect increase on max line
1941         length.
1942
1943         * scn.adb, scng.adb: 
1944         Always check line length against the absolute supported maximum,
1945         Hostparm.Max_Line_Length.
1946
1947         * stylesw.adb (Set_Style_Check_Options, case M): The maximum supported
1948         value for the maximum line length is Max_Line_Length (not
1949         Column_Number'Last).
1950         Minor error msg update
1951         (Set_Style_Check_Options): New interface returning error msg
1952         Minor code reorganization (processing for 'M' was out of alpha order)
1953
1954         * switch-c.adb: New interface for Set_Style_Check_Options
1955
1956         * stylesw.ads (Set_Style_Check_Options): New interface returning error
1957         msg.
1958
1959 2005-12-09  Javier Miranda  <miranda@adacore.com>
1960
1961         * exp_aggr.adb (Build_Record_Aggr_Code): Default-initialialized records
1962         with IP subprogram were only supported if there were limited types.
1963
1964         * sem_aggr.adb (Resolve_Record_Aggregate): Default-initialialized
1965         records with IP subprogram were only supported if there were limited
1966         types.
1967
1968 2005-12-09  Olivier Hainque  <hainque@adacore.com>
1969             Eric Botcazou  <ebotcazou@adacore.com>
1970
1971         * trans.c (tree_transform, emit_check): Adjust calls to
1972         build_call_raise, passing the now expected GNAT_NODE argument.
1973
1974         * gigi.h (build_call_raise): Add a GNAT_NODE argument to convey better
1975         source line information than what the current global locus indicates
1976         when appropriate.
1977
1978         * utils2.c (build_simple_component_ref): Return 0 if the offset of the
1979         field has overflowed.
1980         (build_call_raise): Add a GNAT_NODE argument to convey better source
1981         line information than what the current global locus indicates when
1982         appropriate.
1983         (build_component_ref): Adjust call to build_call_raise.
1984
1985 2005-12-09  Pascal Obry  <obry@adacore.com>
1986
1987         * g-diopit.adb (Find): Fix test to exit the iterator and make sure that
1988         the iterator is quitting iteration on parent directory.
1989
1990 2005-12-09  Javier Miranda  <miranda@adacore.com>
1991
1992         * exp_ch5.adb (Expand_N_Assignment_Statement): In case of tagged types
1993         and the assignment to a class-wide object, before the assignment we
1994         generate a run-time check to ensure that the tag of the Target is
1995         covered by the tag of the source.
1996
1997 2005-12-09  Robert Dewar  <dewar@adacore.com>
1998
1999         * exp_imgv.adb (Expand_Image_Attribute): Generate extra boolean
2000         parameter in call to Image_Wide_Character.
2001
2002         * s-imgwch.ads, s-imgwch.adb (Image_Wide_Character): Add boolean
2003         parameter Ada_2005 to deal with annoying FFFE/FFFF inconsistency.
2004         (Image_Wide_Character): Add boolean parameter Ada_2005 to deal with
2005         annoying FFFE/FFFF inconsistency.
2006
2007 2005-12-09  Robert Dewar  <dewar@adacore.com>
2008             Javier Miranda  <miranda@adacore.com>
2009             Ed Schonberg  <schonberg@adacore.com>
2010
2011         * exp_util.ads, exp_util.adb (Is_Ref_To_Bit_Packed_Slice): Handle case
2012         of type conversion.
2013         (Find_Interface): New subprogram that given a tagged type and one of its
2014         component associated with the secondary table of an abstract interface
2015         type, return the entity associated with such abstract interface type.
2016         (Make_Subtype_From_Expr): If type has unknown discriminants, always use
2017         base type to create anonymous subtype, because entity may be a locally
2018         declared subtype or generic actual.
2019         (Find_Interface): New subprogram that given a tagged type and one of its
2020         component associated with the secondary table of an abstract interface
2021         type, return the entity associated with such abstract interface type.
2022
2023         * sem_res.adb (Resolve_Type_Conversion): Handle the case in which the
2024         conversion cannot be handled at compile time. In this case we pass this
2025         information to the expander to generate the appropriate code.
2026
2027 2005-12-09  Robert Dewar  <dewar@adacore.com>
2028             Ed Schonberg  <schonberg@adacore.com>
2029             Gary Dismukes  <dismukes@adacore.com>
2030             Javier Miranda  <miranda@adacore.com>
2031             Hristian Kirtchev  <kirtchev@adacore.com>
2032
2033         * einfo.adb (Itype_Printed): New flag
2034         (Is_Limited_Type): Derived types do not inherit limitedness from
2035         interface progenitors.
2036         (Is_Return_By_Reference_Type): Predicate does not apply to limited
2037         interfaces.
2038
2039         * einfo.ads (Itype_Printed): New flag
2040         Move Is_Wrapper_Package to proper section
2041         Add missing Inline for Is_Volatile
2042
2043         * output.ads, output.adb (Write_Erase_Char): New procedure
2044         (Save/Restore_Output_Buffer): New procedures
2045         (Save/Restore_Output_Buffer): New procedures
2046
2047         * sprint.ads, sprint.adb (Write_Itype): Handle case of record itypes
2048         Add missing support for anonymous access type
2049         (Write_Id): Insert calls to Write_Itype
2050         (Write_Itype): New procedure to output itypes
2051
2052         * par-ch12.adb (P_Formal_Derived_Type_Definition): In Ada 2005, handle
2053         use of "limited" in declaration.
2054
2055         * sinfo.ads, sinfo.adb: 
2056         Formal derived types can carry an explicit "limited" indication.
2057
2058         * sem_ch3.adb: Add with and use of Targparm.
2059         (Create_Component): If Frontend_Layout_On_Target is True and the
2060         copied component does not have a known static Esize, then reset
2061         the size and positional fields of the new component.
2062         (Analyze_Component_Declaration): A limited component is
2063         legal within a protected type that implements an interface.
2064         (Collect_Interfaces): Do not add to the list the interfaces that
2065         are implemented by the ancestors.
2066         (Derived_Type_Declaration): If the parent of the full-view is an
2067         interface perform a transformation of the tree to ensure that it has
2068         the same parent than the partial-view. This simplifies the job of the
2069         expander in order to generate the correct object layout, and it is
2070         needed because the list of interfaces of the full-view can be given in
2071         any order.
2072         (Process_Full_View): The parent of the full-view does not need to be
2073         a descendant of the parent of the partial view if both parents are
2074         interfaces.
2075         (Analyze_Private_Extension_Declaration): If declaration has an explicit
2076         "limited" the parent must be a limited type.
2077         (Build_Derived_Record_Type): A derived type that is explicitly limited
2078         must have limited ancestor and progenitors.
2079         (Build_Derived_Type): Ditto.
2080         (Process_Full_View): Verify that explicit uses of "limited" in partial
2081         and full declarations are consistent.
2082         (Find_Ancestor_Interface): Remove function.
2083         (Collect_Implemented_Interfaces): New procedure used to gather all
2084         implemented interfaces by a type.
2085         (Contain_Interface): New function used to check whether an interface is
2086         present in a list.
2087         (Find_Hidden_Interface): New function used to determine whether two
2088         lists of interfaces constitute a set equality. If not, the first
2089         differing interface is returned.
2090         (Process_Full_View): Improve the check for the "no hidden interface"
2091         rule as defined by AI-396.
2092
2093 2005-12-09  Robert Dewar  <dewar@adacore.com>
2094
2095         * freeze.adb (Freeze_Record_Type): Only test for useless pack on record
2096         types, not on record subtypes.
2097         (Freeze_Entity): Code cleanup. Add barrier to the loop
2098         that generates the references for primitive operations. This allows to
2099         remove an unnecessary exception handler.
2100         Code reformatting and comment clean ups.
2101
2102 2005-12-09  Vincent Celier  <celier@adacore.com>
2103
2104         * gnatcmd.adb (GNATCmd): GNAT CHECK accepts switch -U
2105         If GNAT CHECK is called with a project file, but with no
2106         source on the command line, call gnatcheck with all the compilable
2107         sources of the project.
2108         Take into account the new command Check, for gnatcheck. Treat as for
2109         other ASIS tools: take into account project, specific package Check and
2110         Compiler switches.
2111         For ASIS tools, add the switches in package Compiler for
2112         the invocation of the compiler.
2113
2114         * prj-attr.adb: Add package Check and its attributes
2115
2116         * vms_conv.ads (Command_Type): New command Check, for gnatcheck
2117
2118         * vms_conv.adb (Initialize): Change Params of command Check to
2119         unlimited files.
2120         Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target.
2121         Add data for new command Check
2122
2123         * vms_data.ads: Add project related qualifiers for GNAT CHECK and GNAT
2124         ELIM.
2125         Add qualifiers for Check command options
2126         (Command_Type): New command Check
2127
2128 2005-12-09  Thomas Quinot  <quinot@adacore.com>
2129
2130         * mlib-utl.adb (Ar): Use Output.Buffer_Max to determine whether a
2131         command line switch overruns the output buffer.
2132
2133 2005-12-09  Robert Dewar  <dewar@adacore.com>
2134
2135         * sem_prag.adb: Processing for new pragma Complete_Representation
2136         (Analyze_Pragma, case Debug): Implement two argument form.
2137
2138         * par-prag.adb: Entry for new pragma Complete_Representation
2139         (Prag, case Debug): Recognize two argument form of pragma Debug
2140         New interface for Set_Style_Check_Options.
2141
2142         * sem_ch13.adb: Implement new pragma Complete_Representation.
2143
2144         * snames.adb, snames.ads, snames.h: Entry for new pragma
2145         Complete_Representation.
2146
2147 2005-12-09  Gary Dismukes  <dismukes@adacore.com>
2148
2149         * sem_cat.adb (Validate_RCI_Subprogram_Declaration): Revise test for
2150         available user-specified stream attributes on limited parameters to
2151         also test the type directly rather than only its underlying type (for
2152         Ada 95) and, in the case of Ada 2005, to check that the user-specified
2153         attributes are visible at the point of the subprogram declaration.
2154         For Ada 2005, the error message is modified to indicate that the
2155         type's stream attributes must be visible (again, only for -gnat05).
2156
2157 2005-12-09  Ed Schonberg  <schonberg@adacore.com>
2158
2159         * sem_ch12.adb (Subtypes_Match): Handle properly Ada05 arrays of
2160         anonymous access types.
2161
2162         * sem_eval.adb (Subtypes_Statically_Match): Implement new rules for
2163         matching of anonymous access types and anonymous access to subprogram
2164         types. 'R'M 4.9.1 (2/2).
2165
2166 2005-12-09  Ed Schonberg  <schonberg@adacore.com>
2167
2168         * sem_ch4.adb (Remove_Abstract_Operations): Do not apply preference
2169         rule prematurely when operands are universal, remaining ambiguities
2170         will be removed during resolution.
2171         Code cleanup.
2172
2173         * sem_type.adb (Disambiguate): In Ada95 mode, discard interpretations
2174         that are Ada 2005 functions.
2175         (Has_Abstract_Interpretation): Subsidiary to
2176         Remove_Conversions, to remove ambiguities caused by abstract operations
2177         on numeric types when operands are universal.
2178
2179 2005-12-09  Robert Dewar  <dewar@adacore.com>
2180
2181         * sem_ch6.adb (Analyze_Subprogram_Body): Properly check categorization
2182         for case where spec is categorized.
2183
2184 2005-12-09  Javier Miranda  <miranda@adacore.com>
2185
2186         * sem_ch8.adb (Find_Type): In case of tagged types that are concurrent
2187         types use the corresponding record type. This was not needed before
2188         the implementation of Ada 2005 synchronized types because
2189         concurrent types were never tagged types in Ada 95.
2190
2191 2005-12-09  Ed Schonberg  <schonberg@adacore.com>
2192
2193         * sem_ch9.adb (Analyze_Delay_Alternative, Analyze_Delay_Until): Use the
2194         first subtype of the type of the expression to verify that it is a
2195         legal Time type.
2196
2197 2005-12-09  Robert Dewar  <dewar@adacore.com>
2198
2199         * sem_util.ads, sem_util.adb (Full_Qualified_Name): Now provides
2200         decoded names.
2201
2202 2005-12-09  Quentin Ochem  <ochem@adacore.com>
2203             Robert Dewar  <dewar@adacore.com>
2204             Ed Falis  <falis@adacore.com>
2205             Florian Villoing  <villoing@adacore.com>
2206             Thomas Quinot  <quinot@adacore.com>
2207             Arnaud Charlet  <charlet@adacore.com>
2208
2209         * gnat_ugn.texi: Created section "Stack Related Tools"
2210         Moved "Stack Overflow Checking" subsection from "Switches for gcc" to
2211         "Stack Related Tools"
2212         Added subsection "Static Stack Usage Analysis"
2213         Added subsection "Dynamic Stack Usage Analysis"
2214         Include documentation of itypes in sprint listing (-gnatG)
2215         Documented gnatbind -D switch (default sec stack size for fixed sec
2216         stacks).
2217         Added Interrupt_State and Persistent_BSS to list of configuration
2218         pragmas.
2219         Add missing doc for maximum value of nnn in -gnatyMnnn
2220
2221         * gnat_rm.texi: Document the AltiVec binding.
2222         Add documentation for pragma Complete_Representation
2223         Shortened an overly long line (> 79 chars)
2224         Clarify documentation of unchecked conversion in implementation
2225         defined cases.
2226         Document two argument form of pragma Debug
2227
2228         * types.ads (Column_Number): Update documentation.
2229
2230         * exp_ch7.ads (Make_Adjust_Call): Document the special processing for
2231         library level Finalize_Storage_Only objects (these are not attached to
2232         any finalization list).
2233
2234         * system-mingw.ads: (Underlying_Priorities): Update comment.
2235
2236 2005-12-09  Robert Dewar  <dewar@adacore.com>
2237
2238         * i-c.adb, i-cexten.ads, i-cobol.adb, i-cobol.ads, i-cpoint.ads,
2239         i-cpp.adb, i-cpp.ads, i-cstrea.ads, i-cstrin.adb, i-cstrin.ads,
2240         inline.adb, interfac.ads, i-os2err.ads, i-os2lib.ads, i-os2syn.ads,
2241         i-os2thr.ads, itypes.adb, itypes.adb, itypes.ads, krunch.ads,
2242         krunch.adb, lib.adb, lib.ads, lib-list.adb, lib-load.adb,
2243         lib-load.ads, lib-sort.adb, live.adb, make.ads, i-cstrea-vms.adb,
2244         interfac-vms.ads, makegpr.adb, indepsw-gnu.adb, indepsw.ads,
2245         s-wchcon.ads, sdefault.ads, sem_ch10.adb, sem_eval.ads: Minor
2246         reformatting.
2247
2248 2005-12-09  Robert Dewar  <dewar@adacore.com>
2249
2250         * s-vaflop-vms-alpha.adb: (Ne_F): New function
2251         (Ne_G): New function
2252
2253         * exp_ch4.adb (Expand_Allocator_Expression): Factor duplicated code
2254         for tag assignment.
2255         (Rewrite_Comparison): Handle case where operation is not a comparison
2256         and ignore, and also handle type conversion case.
2257
2258 2005-12-09  Thomas Quinot  <quinot@adacore.com>
2259
2260         * exp_aggr.ads: Fix typo in comment.
2261         ???-mark Convert_Aggr_In_Assignment as needing documentation.
2262
2263 2005-12-09  Gary Dismukes  <dismukes@adacore.com>
2264
2265         * layout.adb: Replace various uses of byte by storage unit throughout.
2266         (Get_Max_SU_Size): Name changed from Get_Max_Size. In the case of a
2267         static size, convert to storage units before returning, to conform to
2268         spec.
2269
2270 2005-12-09  Matthew Gingell  <gingell@adacore.com>
2271
2272         * g-exctra.ads: Fix typo in comment.
2273
2274 2005-12-09  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2275
2276         * utils.c: Minor reformatting.
2277
2278 2005-12-09  Robert Dewar  <dewar@adacore.com>
2279
2280         * g-soccon.ads: 
2281         Further comment fixes to make the status of the default file clear
2282
2283         * s-bitops.adb: Clarify comment for Bits_Array
2284
2285 2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
2286
2287         * Make-lang.in (ada.install-normal): Remove.
2288
2289 2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
2290
2291         * Make-lang.in: Remove all dependencies on s-gtype.
2292
2293 2005-12-05  Richard Guenther  <rguenther@suse.de>
2294
2295         * utils.c (convert): Use fold_convert where appropriate.
2296
2297 2005-12-05  Paolo Bonzini  <bonzini@gnu.org>
2298
2299         * Makefile.in (gnatlib): Fix regex, using \. instead of . when
2300         a period is meant.
2301
2302 2005-12-02  Richard Guenther  <rguenther@suse.de>
2303
2304         * trans.c (gnat_gimplify_expr): Use buildN instead of build.
2305
2306 2005-12-01  Roger Sayle  <roger@eyesopen.com>
2307
2308         * utils.c (max_size): Only test for TREE_OVERFLOW on INTEGER_CST
2309         nodes.
2310
2311 2005-11-23  Laurent GUERBY  <laurent@guerby.net>
2312
2313         * mlib-prj.adb (Build_Library): Initialize Delete.
2314
2315 2005-11-21  Joel Sherrill <joel.sherrill@oarcorp.com>
2316
2317         * socket.c: Add extern int h_errno for rtems since networking header
2318         files are not available at this point in a tool bootstrap. Newlib
2319         only has basic C library header files.
2320
2321 2005-11-19  Richard Guenther  <rguenther@suse.de>
2322         Roger Sayle  <roger@eyesopen.com>
2323
2324         PR ada/23717
2325         * misc.c (internal_error_function): Don't use vsprintf to format
2326         the error message text, instead use pp_format_text and the new
2327         pretty printer APIs.  This allows handling of %qs, %w, etc.
2328
2329 2005-11-18  Laurent GUERBY  <laurent@guerby.net>
2330
2331         PR ada/24857
2332         * Makefile.in: Use s-auxdec-empty for RTEMS.
2333
2334 2005-11-17  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2335
2336         PR ada/22333
2337         * trans.c (gnat_gimplify_expr, case ADDR_EXPR): Always make
2338         a temporary if taking the address of something that is neither
2339         reference, declaration, or constant, since the gimplifier
2340         can't handle that case.
2341
2342 2005-11-17  Laurent GUERBY  <laurent@guerby.net>
2343
2344         PR ada/24857
2345         * s-auxdec-empty.ads, s-auxdec-empty.adb: New files.
2346         
2347 2005-11-16  Richard Guenther  <rguenther@suse.de>
2348
2349         * Makefile.in: Add EH_MECHANISM=-gcc to s390(x) linux.
2350
2351 2005-11-16  Joel Sherrill <joel.sherrill@oarcorp.com>
2352
2353         PR ada/24855
2354         * raise-gcc.c: Add missing stdarg.h include.
2355  
2356 2005-11-16  Richard Guenther  <rguenther@suse.de>
2357
2358         * Make-lang.in (ada/decl.o): Add $(EXPR_H) dependency.
2359         (ada/misc.o): Likewise.
2360
2361 2005-11-14  Thomas Quinot  <quinot@adacore.com>
2362
2363         * g-soccon.ads: Minor reformatting. Update comments.
2364
2365         * gsocket.h: Include <sys/times.h> in the VxWorks case, in order to
2366         gain visibility on the declaration of struct timeval.
2367
2368         * g-soccon-freebsd.ads,
2369         g-soccon-darwin.ads,
2370         g-soccon-tru64.ads,
2371         g-soccon-aix.ads,
2372         g-soccon-irix.ads,
2373         g-soccon-hpux.ads,
2374         g-soccon-solaris.ads,
2375         g-soccon-vms.ads,
2376         g-soccon-mingw.ads,
2377         g-soccon-vxworks.ads (SIZEOF_tv_sec, SIZEOF_tv_usec): New constants.
2378
2379         * g-soccon-hpux-ia64.ads, g-soccon-linux-ppc.ads,
2380         g-soccon-solaris-64.ads, g-soccon-linux-64.ads,
2381         g-soccon-linux-x86.ads: New files.
2382
2383         * g-socthi-mingw.adb: 
2384         (Socket_Error_Message): Remove redundant use of GNAT.Sockets.Constants
2385
2386         * g-socthi-vxworks.ads, g-socthi-vms.ads, g-socthi-mingw.ads
2387         (time_t, suseconds_t): New types constructed to match the tv_sec
2388         and tv_usec fields of C struct timeval.
2389         (Timeval): Construct structure in terms of the new types.
2390         (Host_Errno): New function (imported from socket.c), returns last hosts
2391         database error.
2392
2393         * g-socthi-vxworks.adb:  Add error handling circuitry.
2394
2395         * g-socket.ads, g-socket.adb (To_Timeval): Reflect change of type for
2396         components of struct timeval.
2397         (Get_Host_By_Name, Get_Host_By_Address): Fix error reporting circuitry.
2398         (Check_Selector): In error conditions, clear internal socket sets to
2399         avoid a memory leak.
2400         (Get_Socket_Option, Set_Socket_Option): Support for Multicast_If,
2401         Send_Timeout, Receive_Timeout.
2402
2403         * g-socthi.ads (time_t, suseconds_t): New types constructed to match
2404         the tv_sec and tv_usec fields of C struct timeval.
2405         (Timeval): Construct structure in terms of the new types.
2406         (Host_Errno): New function (imported from socket.c), returns last hosts
2407         database error.
2408
2409         * socket.c (__gnat_get_h_errno): New function to retrieve h_errno, the
2410         hosts database last error code.
2411
2412         * gen-soccon.c: Complete value expansion should not be performed on
2413         TARGET, as it has the form of a math expression, and some components
2414         may be platform-defined macros.
2415         For VxWorks, generate the OK and ERROR values.
2416         New constants giving the sizes of the components of C struct timeval.
2417
2418 2005-11-14  Robert Dewar  <dewar@adacore.com>
2419             Ed Schonberg  <schonberg@adacore.com>
2420
2421         PR ada/18434
2422
2423         * types.ads: Include All_Checks in Suppress_Array
2424
2425         * checks.adb (Check_Needed): Remove kludge for a/=b rewritten as
2426         not(a=b), since we no longer do this rewriting, and hence it is not
2427         needed.
2428         (Elaboration_Checks_Suppressed): Add special casing to
2429         deal with different cases of static and dynamic elaboration checks (all
2430         checks does not count in the first case, but does in the second).
2431         (Expr_Known_Valid): Do not assume that the result of any arbitrary
2432         function call is valid, since this is not the case.
2433         (Ensure_Valid): Do not apply validity check to a real literal
2434         in a universal or fixed context
2435
2436         * exp_ch4.adb (Expand_N_Op_Ne): Don't expand a/=b to not(a=b) for
2437         elementary types using the operator in standard. It is cleaner not to
2438         modify the programmers intent, especially in the case of floating-point.
2439         (Rewrite_Comparison): Fix handling of /= (this was always wrong, but
2440         it did not matter because we always rewrote a/=b to not(a=b).
2441         (Expand_Allocator_Expression): For an allocator expression whose nominal
2442         subtype is an unconstrained packed type, convert the expression to its
2443         actual constrained subtype.
2444         Implement warning for <= or >= where < or > not possible
2445         Fix to Vax_Float tests (too early in many routines, causing premature
2446         Vax_Float expansions.
2447
2448         * sem_prag.adb (Analyze_Pragma, case Obsolescent): Allow this pragma
2449         to be used with packages and generic packages as well as with
2450         subprograms.
2451         (Suppress): Set All_Checks, but not Elaboration_Check, for case
2452         of pragma Suppress (All_Checks)
2453         (Analyze_Pragma, case Warnings): Implement first argument allowed to be
2454         a string literal for precise control over warnings.
2455         Avoid raise of pragma in case of unrecognized pragma and just return
2456         instead.
2457
2458         * sem_prag.ads: Minor reformatting
2459
2460         * switch-c.adb (Scan_Front_End_Switches): Replace "raise Bad_Switch;"
2461         with call to new procedure Bad_Switch. Call Scan_Pos with new parameter
2462         Switch. Do not handle any exception.
2463         Include -gnatwx as part of -gnatg (warn on redundant parens)
2464         Allow optional = after -gnatm
2465         (Scan_Front_End_Switches): The -gnatp switch sets All_Checks, but no
2466         longer sets Elaboration_Checks.
2467         Code to set warning mode moved to Sem_Warn
2468         so that it can be shared by pragma processing.
2469
2470         * s-mastop-tru64.adb (Pop_Frame): Remove redundant parentheses in if
2471         statement.
2472
2473         * s-taprop-solaris.adb: 
2474         Change some <= to =, to avoid new warning
2475
2476         * a-exexda.adb, prj-proc.adb: 
2477         Fix obvious typo (Num_Tracebacks compared <= 0 instead of < 0)
2478         Fix obvious typo (Total_Errors_Detected <= 0 should be = 0)
2479
2480 2005-11-14  Robert Dewar  <dewar@adacore.com>
2481
2482         * exp_vfpt.adb: Handle /= case
2483         (Expand_Vax_Conversion): Properly recognize Conversion_OK flag
2484         so that we do not get duplicate scaling for fixed point conversions.
2485
2486         * s-vaflop.ads, s-vaflop.adb: (Ne_F): New function
2487
2488 2005-11-14  Matthew Gingell  <gingell@adacore.com>
2489
2490         * system-lynxos-ppc.ads, system-lynxos-x86.ads: 
2491         Increase default priority on Lynx from 15 to 17, and meet the Ada
2492         requirement that Default_Priority be ((Priority'First +
2493         Priority'Last) / 2) by increasing the range of Interrupt_Priority.
2494
2495 2005-11-14  Vincent Celier  <celier@adacore.com>
2496
2497         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
2498         mlib-tgt-hpux.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
2499         mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-alpha.adb,
2500         mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb,
2501         mlib-tgt-darwin.adb, mlib-tgt.adb, mlib-tgt.ads,
2502         mlib-tgt-lynxos.adb (DLL_Prefix): New function
2503
2504 2005-11-14  Doug Rupp  <rupp@adacore.com>
2505
2506         * system-vms.ads, system-vms_64.ads: ADA$GNAT: New exported object in
2507         private part.
2508
2509 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
2510
2511         * s-traces-default.adb, s-trafor-default.ads,
2512         s-tratas-default.adb: Fix compilation errors.
2513
2514 2005-11-14  Jose Ruiz  <ruiz@adacore.com>
2515
2516         * s-taprop-posix.adb (Initialize_Lock): Destroy mutex attribute before
2517         raising the exception so the memory used is freed.
2518
2519 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
2520
2521         * adaint.h, adaint.c (__gnat_is_cross_compiler): New constant.
2522         (Gnat_Install_Locks, __gnatlib_install_locks): Removed, no longer used.
2523         (convert_address): Update comments and list of platforms using this.
2524
2525         * s-tasini.adb (Gnat_Install_Locks, __gnatlib_install_locks): Removed,
2526         no longer used.
2527
2528 2005-11-14  Pascal Obry  <obry@adacore.com>
2529             Vincent Celier  <celier@adacore.com>
2530
2531         * gnatdll.adb (Parse_Command_Line): Remove redundant use of
2532         GNAT.Command_Line.
2533
2534         * memroot.adb: Remove redundant with/use clause on
2535         System.Storage_Elements.
2536
2537 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
2538
2539         * a-except.adb (Zero_Cost_Exceptions): Removed, no longer used.
2540         (builtin_longjmp, Process_Raise_Exceeption): Move setjmp/longjmp
2541         related code to a-exexpr.adb
2542         (Save_Occurrence_And_Private): Move GCC EH related code to
2543         a-exexpr-gcc.adb
2544         (Raise_Current_Excep): Add new variable Id with pragma
2545         volatile, to ensure that the variable lives on stack.
2546
2547         * a-exexpr-gcc.adb, raise-gcc.c: New file.
2548
2549         * a-exexpr.adb (builtin_longjmp, Propagate_Exception): Moved here code
2550         from a-except.adb.
2551         Move GCC EH related code to a-exexpr-gcc.adb
2552
2553         * Makefile.in: Add or update g-soccon LIBGNAT pairs for Linux/PPC and
2554         64-bit Solaris
2555         Split the Linux version of g-soccon into separate variants for 32 and 64
2556         bit platforms.
2557         (gnatlib): Use $(AR_FOR_TARGET) and $(RANLIB_FOR_TARGET)
2558         vice $(AR) and $(RANLIB). Remove use of host variable $(RANLIB_FLAGS).
2559         install-gnatlib: Use $(RANLIB_FOR_TARGET) vice $(RANLIB). Remove use
2560         of host variable $(RANLIB_FLAGS).
2561         (alpha64-dec-*vms*): Fix translations for 64 bit compiler.
2562         Code clean up: remove unused/obsolete targets.
2563         (EH_MECHANISM): New variable introduced to differenciate between the
2564         two EH mechanisms statically.
2565         (gnatlib-zcx, gnatlib-sjlj): Force EH_MECHANISM manually.
2566         (LIBGNAT_OBJS): Add raise-gcc.o
2567         (LIBGNAT_TARGET_PAIRS for ppc-vxworks): Use an specialized version of
2568         s-osinte.adb, s-tpopsp.adb, and system.ads for the run time that
2569         supports VxWorks 6 RTPs.
2570         (EXTRA_GNATRTL_NONTASKING_OBJS for ppc-vxworks): Remove the use of
2571         i-vxworks and i-vxwoio from the run time that supports VxWorks 6 RTPs.
2572
2573         * raise.c: Move all GCC EH-related routines to raise-gcc.c
2574
2575 2005-11-14  Jose Ruiz  <ruiz@adacore.com>
2576
2577         * s-tassta.adb (Create_Task): Move the code in charge of resetting the
2578         deferral level, when abort is not allowed, to a later stage (the
2579         Task_Wrapper).
2580         (Task_Wrapper): If Abort is not allowed, reset the deferral level since
2581         it will not get changed by the generated code. It was previously done
2582         in Create_Task.
2583
2584 2005-11-14  Thomas Quinot  <quinot@adacore.com>
2585             Olivier Hainque  <hainque@adacore.com>
2586             Eric Botcazou  <ebotcazou@adacore.com>
2587
2588         * decl.c:
2589         Factor common code to build a storage type for an unconstrained object
2590         from a fat or thin pointer type and a constrained object type.
2591         (annotate_value): Handle BIT_AND_EXPR.
2592         (annotate_rep): Don't restrict the back annotation of inherited
2593         components to the type_annotate_only case.
2594         (gnat_to_gnu_entity) <E_Array_Type>: Do not invoke create_type_decl if
2595         we are not defining the type.
2596         <E_Record_Type>: Likewise.
2597         (gnat_to_gnu_entity) <object, renaming>: Adjust comments and structure
2598         to get advantage of the new maybe_stabilize_reference interface, to
2599         ensure that what we reference is indeed stabilized instead of relying
2600         on assumptions on what the stabilizer does.
2601         (gnat_to_gnu_entity) <E_Incomplete_Type>: If the entity is an incomplete
2602         type imported through a limited_with clause, use its non-limited view.
2603         (Has_Stdcall_Convention): New macro, to centralize the Windows vs others
2604         differentiation.
2605         (gnat_to_gnu_entity): Use Has_Stdcall_Convention instead of a spread mix
2606         of #if sections + explicit comparisons of convention identifiers.
2607         (gnat_to_gnu_entity) <E_Variable>: Decrement force_global if necessary
2608         before early-returning for certain types when code generation is
2609         disabled.
2610         (gnat_to_gnu_entity) <object>: Adjust comment attached to the
2611         nullification of gnu_expr we do for objects with address clause and
2612         that we are not defining.
2613         (elaborate_expression_1): Do not create constants when creating
2614         variables needed by the debug info: the dwarf2 writer considers that
2615         CONST_DECLs is used only to represent enumeration constants, and emits
2616         nothing for them.
2617         (gnat_to_gnu_entity) <object>: When turning a non-definition of an
2618         object with an address clause into an indirect reference, drop the
2619         initializing expression.
2620         Include "expr.h".
2621         (STACK_CHECK_BUILTIN): Delete.
2622         (STACK_CHECK_PROBE_INTERVAL): Likewise.
2623         (STACK_CHECK_MAX_FRAME_SIZE): Likewise.
2624         (STACK_CHECK_MAX_VAR_SIZE): Likewise.
2625         (gnat_to_gnu_entity): If gnat_entity is a renaming, do not mark the tree
2626         corresponding to the renamed object as ignored for debugging purposes.
2627
2628         * trans.c (tree_transform, case N_Attribute_Reference, case Attr_Size &
2629         related): For a prefix that is a dereference of a fat or thin pointer,
2630         if there is an actual subtype provided by the front-end, use that
2631         subtype to build an actual type with bounds template.
2632         (tree_transform, case N_Free_Statement): If an Actual_Designated_Subtype
2633         is provided by the front-end, use that subtype to compute the size of
2634         the deallocated object.
2635         (gnat_to_gnu): When adding a statement into an elaboration procedure,
2636         check for a potential violation of a No_Elaboration_Code restriction.
2637         (maybe_stabilize_reference): New function, like gnat_stabilize_reference
2638         with extra arguments to control whether to recurse through non-values
2639         and to let the caller know if the stabilization has succeeded.
2640         (gnat_stabilize_reference): Now a simple wrapper around
2641         maybe_stabilize, for common uses without restriction on lvalues and
2642         without need to check for the success indication.
2643         (gnat_to_gnu, call_to_gnu): Adjust calls to gnat_stabilize_reference, to
2644         pass false instead of 0 as the FORCE argument which is a bool.
2645         (Identifier_to_gnu): Remove checks ensuring that an renamed object
2646         attached to a renaming pointer has been properly stabilized, as no such
2647         object is attached otherwise.
2648         (call_to_gnu): Invoke create_var_decl to create the temporary when the
2649         function uses the "target pointer" return mechanism.
2650         Reinstate conversion of the actual to the type of the formal
2651         parameter before any other specific treatment based on the passing
2652         mechanism. This turns out to be necessary in order for PLACEHOLDER
2653         substitution to work properly when the latter type is unconstrained.
2654
2655         * gigi.h (build_unc_object_type_from_ptr): New subprogram, factoring a
2656         common pattern.
2657         (maybe_stabilize_reference): New function, like gnat_stabilize_reference
2658         with extra arguments to control whether to recurse through non-values
2659         and to let the caller know if the stabilization has succeeded.
2660
2661         * utils2.c (gnat_build_constructor): Only sort the fields for possible
2662         static output of record constructor if all the components are constant.
2663         (gnat_build_constructor): For a record type, sort the list of field
2664         initializers in increasing bit position order.
2665         Factor common code to build a storage type for an unconstrained object
2666         from a fat or thin pointer type and a constrained object type.
2667         (build_unary_op) <ADDR_EXPR>: Always recurse down conversions between
2668         types variants, and process special cases of VIEW_CONVERT expressions
2669         as their NOP_EXPR counterpart to ensure we get to the
2670         CORRESPONDING_VARs associated with CONST_DECls.
2671         (build_binary_op) <MODIFY_EXPR>: Do not strip VIEW_CONVERT_EXPRs
2672         on the right-hand side.
2673
2674         * utils.c (build_unc_object_type_from_ptr): New subprogram, factoring
2675         a common pattern.
2676         (convert) <VIEW_CONVERT_EXPR>: Return the inner operand directly if we
2677         are converting back to its original type.
2678         (convert) <JM input>: Fallthrough regular conversion code instead of
2679         extracting the object if converting to a type variant.
2680         (create_var_decl): When a variable has an initializer requiring code
2681         generation and we are at the top level, check for a potential violation
2682         of a No_Elaboration_Code restriction.
2683         (create_var_decl): call expand_decl for CONST_DECLs, to set MODE, ALIGN
2684         SIZE and SIZE_UNIT which we need for later back-annotations.
2685         * utils.c: (convert) <STRING_CST>: Remove obsolete code.
2686         <VIEW_CONVERT_EXPR>: Do not lift the conversion if the target type
2687         is an unchecked union.
2688         (pushdecl): Set DECL_NO_STATIC_CHAIN on imported nested functions.
2689         (convert) <VIEW_CONVERT_EXPR>: When the types have the same
2690         main variant, just replace the VIEW_CONVERT_EXPR.
2691         <UNION_TYPE>: Revert 2005-03-02 change.
2692
2693         * repinfo.h, repinfo.ads: Add tcode for BIT_AND_EXPR.
2694
2695         * repinfo.adb (Print_Expr, Rep_Value): Handle Bit_And_Expressions.
2696
2697 2005-11-14  Matthew Heaney  <heaney@adacore.com>
2698
2699         * a-crbtgo.ads, a-crbtgo.adb, a-coorse.ads, a-coorse.adb, a-convec.ads, 
2700         a-convec.adb, a-coinve.ads, a-coinve.adb, a-cohama.ads, a-cohama.adb, 
2701         a-ciorse.ads, a-ciorse.adb, a-cihama.ads, a-cihama.adb, a-cidlli.ads, 
2702         a-cidlli.adb, a-cdlili.ads, a-cdlili.adb, a-coormu.adb, a-ciormu.adb, 
2703         a-cihase.adb, a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads, 
2704         a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-ciorma.adb, a-coorma.adb: 
2705         Compiles against the spec for ordered maps described in sections
2706         A.18.6 of the most recent (August 2005) AI-302 draft.
2707
2708 2005-11-14  Olivier Hainque  <hainque@adacore.com>
2709
2710         * cuintp.c (UI_To_gnu): Use a proper type for intermediate computations
2711         to ensure bias adjustments take place when need be and to prevent
2712         occurrences of intermediate overflows.
2713
2714 2005-11-14  Matthew Gingell  <gingell@adacore.com>
2715             Olivier Hainque  <hainque@adacore.com>
2716
2717         * tb-gcc.c (trace_callback): Work around problem with _Unwind_GetIP on
2718         ia64 HP-UX.
2719
2720         * tracebak.c (ia64 configuration): Enable _Unwind_Backtrace driven
2721         tracebacks on ia64 HP-UX and provide explanatory comment.
2722         Enable backtraces on ia64 GNU/Linux.
2723         (x86 configuration): Bump FRAME_LEVEL to 1 to ensure we retrieve a real
2724         base pointer from builtin_frame_address. Adjust BASE_SKIP accordingly.
2725
2726 2005-11-14  Hristian Kirtchev  <kirtchev@adacore.com>
2727             Javier Miranda  <miranda@adacore.com>
2728
2729         * rtsfind.ads, exp_util.adb, exp_util.ads, exp_disp.adb, exp_disp.ads,
2730         exp_ch7.adb, sem_ch9.adb, snames.adb, snames.ads,
2731         exp_ch9.adb, exp_ch9.ads, exp_ch6.adb, exp_ch3.adb, exp_ch3.ads,
2732         einfo.ads, einfo.adb: Complete support for Ada 2005 interfaces.
2733
2734         * a-tags.ads, a-tags.adb: Major rewrite and additions to implement
2735         properly new Ada 2005 interfaces (AI-345) and add run-time checks (via
2736         assertions).
2737
2738         * exp_dbug.ads, exp_dbug.adb (Get_Secondary_DT_External_Name): New
2739         subprogram that generates the external name associated with a
2740         secondary dispatch table.
2741         (Get_Secondary_DT_External_Name): New subprogram that generates the
2742         external name associated with a secondary dispatch table.
2743
2744 2005-11-14  Emmanuel Briot  <briot@adacore.com>
2745
2746         * xref_lib.adb (Parse_Identifier_Info): It is possible for an entity
2747         line in the ALI file to include both an instantiation reference, and a
2748         returned value.
2749
2750 2005-11-14  Vincent Celier  <celier@adacore.com>
2751
2752         * clean.adb (Check_Project): Look for Ada code in extending project,
2753         even if Ada is not specified as a language.
2754         Use new function DLL_Prefix for DLL_Name
2755         (Clean_Interface_Copy_Directory): New procedure
2756         (Clean_Library_Directory): New procedure
2757         (Clean_Directory): Remove procedure, no longer used
2758         (Clean_Project): Do not delete any file in an externally built project
2759
2760         * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Add the object
2761         directory of an extending project, even when there are no Ada source
2762         present.
2763         (Ada_Objects_Path.Add): Add Library_ALI_Dir, not Library_Dir to the path
2764         (Set_Ada_Paths.Add.Recursive_Add): Ditto
2765
2766         * mlib-prj.adb (Check_Library): For all library projects, get the
2767         library file timestamp.
2768         (Build_Library): Copy ALI files in Library_ALI_Dir, not in Library_Dir
2769         (Build_Library): Use new function DLL_Prefix for the DLL_Name
2770         (Clean): Remove procedure, no longer used
2771         (Ultimate_Extension_Of): New function
2772         (Build_Library): When cleaning the library directory, only remove an
2773         existing library file and any ALI file of a source of the project.
2774         When cleaning the interface copy directory, remove any source that
2775         could be a source of the project.
2776
2777         * prj.ads, prj.adb (Project_Empty): Add values of new components
2778         Library_TS and All_Imported_Projects.
2779         (Project_Empty): Add values for new components of Project_Data:
2780         Library_ALI_Dir and Display_Library_ALI_Dir
2781
2782         * prj-attr.adb: New project level attribute name Library_ALI_Dir
2783
2784         * prj-nmsc.adb (Check_Library_Attributes): Take into account new
2785         attribute Library_ALI_Dir.
2786         (Check_Library_Attributes): The library directory cannot be the same as
2787         any source directory of the project tree.
2788         (Check_Stand_Alone_Library): The interface copy directory cannot be
2789         the same as any source directory of the project tree.
2790
2791         * mlib.adb: Use Prj.Com.Fail, instead of Osint.Fail directly, to delete
2792         all temporary files.
2793
2794 2005-11-14  Robert Dewar  <dewar@adacore.com>
2795             Ed Schonberg  <schonberg@adacore.com>
2796
2797         * sem_elab.adb: Change name Is_Package to Is_Package_Or_Generic_Package
2798         (Check_Elab_Call): A call within a protected body is never an
2799         elaboration call, and does not require checking.
2800         (Same_Elaboration_Scope): Take into account protected types for both
2801         entities.
2802         (Activate_Elaborate_All_Desirable): New procedure
2803
2804         * ali.ads, ali.adb: Implement new AD/ED for Elaborate_All/Elaborate
2805         desirable
2806
2807         * binde.adb: Implement new AD/ED for Elaborate_All/Elaborate desirable
2808         (Elab_Error_Msg): Use -da to include internal unit links, not -de.
2809
2810         * lib-writ.ads, lib-writ.adb: 
2811         Implement new AD/ED for Elaborate_All/Elaborate desirable
2812         Use new Elaborate_All_Desirable flag in N_With_Clause node
2813
2814         * sinfo.ads, sinfo.adb (Actual_Designated_Subtype): New attribute for
2815         N_Free_Statement nodes.
2816         Define new class N_Subprogram_Instantiation
2817         Add Elaborate_Desirable flag to N_With_Clause node
2818         Add N_Delay_Statement (covering two kinds of delay)
2819
2820         * debug.adb: Introduce d.f flag for compiler
2821         Add -da switch for binder
2822
2823 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
2824             Cyrille Comar  <comar@adacore.com>
2825
2826         * exp_aggr.adb (Build_Record_Aggr_Code): Do not create master entity
2827         for task component, in the case of a limited aggregate. The enclosed
2828         object declaration will create it earlier. Otherwise, in the case of a
2829         nested aggregate, the object may appear in the wrong scope.
2830         (Convert_Aggr_In_Object_Decl): Create a transient scope when needed.
2831         (Gen_Assign): If the component being assigned is an array type and the
2832         expression is itself an aggregate, wrap the assignment in a block to
2833         force finalization actions on the temporary created for each row of the
2834         enclosing object.
2835         (Build_Record_Aggr_Code): Significant rewrite insuring that ctrl
2836         structures are initialized after all discriminants are set so that
2837         they can be accessed even when their offset is dynamic.
2838
2839 2005-11-14  Robert Dewar  <dewar@adacore.com>
2840             Hristian Kirtchev  <kirtchev@adacore.com>
2841
2842         * sem_attr.adb: Implement Machine_Rounding attribute
2843         (Analyze_Access_Attribute): The access attribute may appear within an
2844         aggregate that has been expanded into a loop.
2845         (Check_Task_Prefix): Add semantic check for attribute 'Callable and
2846         'Terminated whenever the prefix is of a task interface class-wide type.
2847         (Analyze_Attribute): Add semantic check for attribute 'Identity whenever
2848         the prefix is of a task interface class-wide type.
2849
2850         * s-vaflop-vms-alpha.adb: Valid_D, Valid_F, Valid_G: Make Val constant
2851         to avoid warnings.
2852
2853         * s-fatgen.ads, s-fatgen.adb (Machine_Rounding): New function
2854         Remove pragma Inline for [Unaligned_]Valid.
2855         Add comments that Valid routines do not work for Vax_Float
2856
2857         * exp_attr.adb: Implement Machine_Rounding attribute
2858
2859         * snames.h: Add entry for Machine_Rounding attribute
2860
2861 2005-11-14  Javier Miranda  <miranda@adacore.com>
2862             Robert Dewar  <dewar@adacore.com>
2863             Hristian Kirtchev  <kirtchev@adacore.com>
2864
2865         * exp_attr.adb (Expand_N_Attribute_Reference, cases of Attribute_Size
2866         and related): For a prefix that is an explicit dereference of an
2867         access to unconstrained packed array type, annotate the dereference
2868         with an actual subtype so GIGI can make a correct size computation.
2869         (Expand_N_Attribute_Reference): In case of 'Unchecked_Access and
2870         'Unrestricted_Access, if the designated type is an interface we
2871         add a type conversion to force the displacement of the pointer
2872         to the secondary dispatch table.
2873         Use Universal_Real instead of Long_Long_Float when we need a high
2874         precision float type for the generated code (prevents gratuitous
2875         Vax_Float stuff when pragma Float_Representation (Vax_Float) used)
2876         (Expand_N_Attribute_Reference): Add support for attribute 'Callable and
2877         'Terminated for task interface class-wide objects. Generate a call to
2878         the predefined dispatching routine used to retrieve the _task_id from
2879         a task corresponding record.
2880         (Expand_Fpt_Attribute): Major change to properly handle Vax_Float
2881
2882         * sem_disp.adb: Change name Is_Package to Is_Package_Or_Generic_Package
2883         (Check_Dispatching_Operation): Protect the frontend againts
2884         previously detected errors.
2885
2886         * Makefile.rtl: Add new instantiations of system.fat_gen
2887
2888         * s-fatflt.ads, s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads: 
2889         Change name of instantiated package for better consistency
2890         with newly added system.fat_gen instantiations.
2891
2892         * s-filofl.ads, s-fishfl.ads, s-fvadfl.ads, s-fvaffl.ads,
2893         s-fvagfl.ads: New files.
2894
2895 2005-11-14  Cyrille Comar  <comar@adacore.com>
2896             Thomas Quinot  <quinot@adacore.com>
2897
2898         * exp_ch5.adb (Expand_N_Assignment_Statement, Tagged_Case): For an
2899         assignment of a value of a tagged type that has been rewritten to a
2900         block statement, it is known by construction that no checks are
2901         necessary for the statements within the block: analyze it with checks
2902         suppressed.
2903         (Expand_N_If_Statement): When killing a dead then-branch in an
2904         if-statement that has elsif_parts, recompute the Current_Value node
2905         for any entity whose value is known from the condition of the first
2906         elsif_part.
2907         (Expand_N_Return_Statement): When returning a mutable record, convert
2908         the return value into its actual subtype in order to help the backend
2909         to return the actual size instead of the maximum. This is another
2910         aftermath of not returning mutable records on the sec-stack anymore.
2911
2912         * sem_ch5.ads, sem_ch5.adb (Analyze_Iteration_Scheme): Minor change to
2913         handling of error msg for suspicious reverse range iteration.
2914         (Check_Possible_Current_Value_Condition): Move declaration from body to
2915         spec, to allow this subprogram to be called from exp_ch5.
2916
2917 2005-11-14  Thomas Quinot  <quinot@adacore.com>
2918
2919         * exp_dist.adb (Append_Array_Traversal): Modify constrained case to
2920         generate a set of nested array aggregates instead of a single flat
2921         aggregate for multi-dimensional arrays.
2922
2923 2005-11-14  Pascal Obry  <obry@adacore.com>
2924
2925         * expect.c (__gnat_kill) [Win32]: Fix implementation, the pid returned
2926         by spawnve is a process handle, no need to convert. Add a parameter
2927         close to control wether the process handle must be closed.
2928         (__gnat_waitpid): Fix implementation, the pid returned by spawnve is
2929         a process handle, not need to convert.
2930         (__gnat_kill) [*]: Add dummy parameter close to match the Win32 spec.
2931
2932         * g-expect.adb: (Kill): Document the new close parameter.
2933         (Close): Do not release the process handle in the kill there as
2934         waitpid() is using it.
2935         (Send_Signal): Release the process handle.
2936
2937 2005-11-14  Robert Dewar  <dewar@adacore.com>
2938
2939         * exp_fixd.adb: Use Universal_Real instead of Long_Long_Float when we
2940         need a high precision float type for the generated code (prevents
2941         gratuitous Vax_Float stuff when pragma Float_Representation (Vax_Float)
2942         used).
2943
2944         * exp_imgv.adb: Use Universal_Real instead of Long_Long_Float when we
2945         need a high precision float type for the generated code (prevents
2946         gratuitous Vax_Float stuff when pragma Float_Representation (Vax_Float)
2947         used).
2948         (Expand_Width_Attribute): In configurable run-time, the attribute is not
2949         allowed on non-static enumeration subtypes. Force a load error to emit
2950         the correct diagnostic.
2951
2952 2005-11-14  Thomas Quinot  <quinot@adacore.com>
2953             Robert Dewar  <dewar@adacore.com>
2954             Ed Schonberg  <schonberg@adacore.com>
2955
2956         * exp_intr.adb (Expand_Unc_Deallocation): If GIGI needs an actual
2957         subtype to compute the size of the designated object at run-time,
2958         create such a subtype and store it in the Actual_Designated_Subtype
2959         attribute of the N_Free_Statement.
2960         Generate itype for classwide designated object in both cases of
2961         user-specified storage pool: specific and class-wide, not only in the
2962         specific case.
2963         Raise CE when trying to set a not null access type object to null.
2964         (Expand_Dispatching_Constructor_Call): Retrieve subprogram actual with
2965         an explicit loop, because freeze nodes make its position variable.
2966
2967         * sem_intr.adb (Check_Intrinsic_Call): Given warning for freeing not
2968         null object.
2969
2970 2005-11-14  Javier Miranda  <miranda@adacore.com>
2971
2972         * exp_strm.adb (Build_Stream_Attr_Profile, Build_Stream_Function,
2973         Build_Stream_Procedure): Add the null-excluding attribute to the first
2974         formal.
2975         This has no semantic meaning under Ada95 mode but it is a
2976         requirement under Ada05 mode.
2977
2978         * par-ch3.adb (P_Access_Definition): Addition of warning message if
2979         the null exclusion is used under Ada95 mode
2980         (P_Null_Exclusion): The qualifier has no semantic meaning in Ada 95.
2981         (P_Access_Definition): Remove assertion that forbids the use of
2982         the null-exclusion feature in Ada95.
2983
2984 2005-11-14  Robert Dewar  <dewar@adacore.com>
2985
2986         * impunit.adb: Exclude container helper units not intended for use by
2987         users.
2988
2989 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
2990
2991         * freeze.adb (Freeze_Entity): For an access formal that is an access
2992         to subprogram, freeze the anonymous subprogram type at the same time,
2993         to prevent later freezing in the wrong scope, such as the enclosing
2994         subprogram body.
2995         (Freeze_Entity): Freeze the equivalent_type of an access_to_protected_
2996         subprogram whenever available.
2997
2998 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
2999
3000         PR ada/23732
3001         * gnatvsn.ads (Library_Version): Bump to 4.1
3002
3003 2005-11-14  Robert Dewar  <dewar@adacore.com>
3004
3005         * g-debpoo.adb (Set_Valid): Use Integer_Address instead of
3006         Storage_Offset to avoid wrap around causing invalid results.
3007
3008 2005-11-14  Pascal Obry  <obry@adacore.com>
3009
3010         * gnatbind.adb (Is_Cross_Compiler): New function returning True for
3011         cross-compiler.
3012         (Scan_Bind_Arg): Fail with an error message if -M option is used
3013         on a native compiler.
3014
3015 2005-11-14  Robert Dewar  <dewar@adacore.com>
3016             Vincent Celier  <celier@adacore.com>
3017
3018         * gprep.adb: Implement -C switch to scan comments
3019
3020         * scng.adb: Scan comment symbol separately if Replace_In_Comments set
3021
3022         * scans.ads: Comment updates (including new use of Tok_Comment in
3023         preprocessing)
3024
3025         * opt.ads: Add documentation for flags that are used by gprmake,
3026         currently and in the next version of gprmake.
3027         (Verbosity_Level): New variable
3028         Add Replace_In_Comments switch
3029
3030         * vms_data.ads: Add VMS equivalent for new gnatmake switches -vl, -vm
3031         and -vm.
3032         Add /REPLACE_IN_COMMENTS for gnatprep -C switch
3033
3034 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
3035
3036         * g-regpat.adb (Fail): raise Expression_Error including the diagnostic
3037         message, friendlier.
3038
3039 2005-11-14  Robert Dewar  <dewar@adacore.com>
3040
3041         * g-spitbo.adb: (Hash): Rotate by 3 instead of 1
3042
3043 2005-11-14  Doug Rupp  <rupp@adacore.com>
3044
3045         * init.c [VMS]: Don't install __gnat_error_handler if DBG$TDBG defined.
3046
3047 2005-11-14  Robert Dewar  <dewar@adacore.com>
3048
3049         * interfac.ads: Change declarations of IEEE float types so that we no
3050         longer need a separate version of this package for VMS.
3051
3052 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
3053
3054         * lib-xref.adb (Generate_Definition, Generate_Reference): Treat the
3055         internal entity created for the declaration of a child subprogram body
3056         with no spec as coming from source, to generate proper cross-reference
3057         information.
3058
3059 2005-11-14  Vincent Celier  <celier@adacore.com>
3060
3061         * make.adb (Compile_Sources): Change verbose message to minimum
3062         verbosity level High for "is in an Ada library", "is a read-only
3063         library" and "is an internal library",
3064         (Create_Binder_Mapping_File): Path name of ALI file for library project
3065         must include the library directory, not the object directory.
3066         (Scan_Make_Arg): Make sure that Switch.M.Scan_Make_Switches is called
3067         for new switches -vl, -vm and -vh.
3068         (Verbose_Msg): Add new defaulted parameter Minimum_Verbosity
3069         (Check): Use minimum verbosity Medium for some Verbose_Msg calls
3070         (Compile_Sources): Do not attempt to compile if an ALI file is missing
3071         in a project that is externally built.
3072         (Compute_All_Imported_Projects): New procedure
3073         (Gnatmake): Check if importing libraries should be regenerated because
3074         at least an imported library is more recent.
3075         (Initialize): For each project compute the list of the projects it
3076         imports directly or indirectly.
3077         (Add_Library_Search_Dir): New procedure, used in place of
3078         Add_Lib_Search_Dir in procedure Scan_Make_Arg so that absolute paths are
3079         put in the search paths.
3080         (Add_Source_Search_Dir): New procedure, used in place of
3081         Add_Src_Search_Dir in procedure Scan_Make_Arg so that absolute paths are
3082         put in the search paths.
3083         (Mark_Directory): Resolve the absolute path the directory before marking
3084         it.
3085
3086         * switch-m.adb (Scan_Make_Switches): Replace "raise Bad_Switch;" with
3087         call to new procedure Bad_Switch. Call Scan_Pos with new parameter
3088         Switch. Do not handle any exception.
3089         (Scan_Make_Switches): Increment Ptr for new switches -vl, -vm and -vh
3090         so that the switch is recognized as valid.
3091         (Scan_Make_Switches): Implement new switches -vl, -vm and -vh.
3092
3093 2005-11-14  GNAT Script  <nobody@adacore.com>
3094
3095         * Make-lang.in: Makefile automatically updated
3096
3097 2005-11-14  Pascal Obry  <obry@adacore.com>
3098
3099         * mdll.adb (Build_Reloc_DLL): Fix parameter handling when a map file is
3100         used.
3101         (Ada_Build_Reloc_DLL): Fix parameter handling when a map file is used.
3102         In both cases the last argument was dropped.
3103
3104 2005-11-14  Eric Botcazou  <ebotcazou@adacore.com>
3105
3106         * namet.h: (Column_Numbe): New type.
3107         (Get_Column_Number): Define to sinput__get_column_number.
3108         (Instantiation): Define to sinput__instantiation.
3109         (Get_Column_Number): Declare.
3110         (Instantiation): Likewise.
3111
3112 2005-11-14  Robert Dewar  <dewar@adacore.com>
3113
3114         * par-ch10.adb (P_Compilation_Unit): Add defenses against junk unit
3115         syntax, which could cause compiler hangs.
3116
3117 2005-11-14  Vincent Celier  <celier@adacore.com>
3118
3119         * prj-ext.adb: Take into account new environment variable
3120         GPR_PROJECT_PATH. Warn if both GPR_PROJECT_PATH and ADA_PROJECT_PATH
3121         are defined.
3122         (Prj.Ext elaboration): For each directory in the ADA_PROJECT_PATH,
3123         normalize its path name, making it absolute and resolving symbolic
3124         links, and replace the original if resolved path is different.
3125
3126 2005-11-14  Vincent Celier  <celier@adacore.com>
3127
3128         * prj-part.adb (Create_Virtual_Extending_Project): Put virtual project
3129         into Prj.Tree.Tree_Private_Part.Projects_Htable for GPS.
3130
3131 2005-11-14  Emmanuel Briot  <briot@adacore.com>
3132
3133         * prj-pp.adb (Print): Do not output the with statement if the
3134         associated name is empty, which happens for virtual extending projects.
3135         (Print): Preserve the "extends all" attribute when printing the project.
3136
3137         * prj-tree.ads (String_Value_Of): Add comment about returned value for
3138         a virtual extending project.
3139
3140 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
3141
3142         * sem_aggr.adb (Resolve_Aggregate): An others choice is legal on the
3143         rhs of an assignment even if the type is unconstrained, when the
3144         context is non-expanding.
3145         In an inlined body, if the context type is private,
3146         resolve with its full view, which must be a composite type.
3147
3148 2005-11-14  Robert Dewar  <dewar@adacore.com>
3149             Ed Schonberg  <schonberg@adacore.com>
3150
3151         * sem_ch10.adb: Change name Is_Package to Is_Package_Or_Generic_Package
3152         Do not give obsolescent warning on with of subprogram (since we
3153         diagnose calls)
3154         (Analyze_With_Clause): Add test for obsolescent package
3155         (Install_Context_Clauses): If the unit is the body of a child unit, do
3156         not install twice the private declarations of the parents, to prevent
3157         circular lists of Use_Clauses in a parent.
3158         (Implicit_With_On_Parent): Do add duplicate with_clause on parent when
3159         compiling body of child unit.
3160         Use new class N_Subprogram_Instantiation
3161         (Expand_With_Clause): If this is a private with_clause for a child unit,
3162         appearing in the context of a package declaration, then the implicit
3163         with_clauses generated for parent units are private as well.
3164         (License_Check): Do not generate message if with'ed unit is internal
3165
3166 2005-11-14  Gary Dismukes  <dismukes@adacore.com>
3167             Ed Schonberg  <schonberg@adacore.com>
3168             Thomas Quinot  <quinot@adacore.com>
3169
3170         * sem_ch12.ads, sem_ch12.adb (Map_Entities): Exclude entities whose
3171         names are internal, because they will not have a corresponding partner
3172         in the actual package.
3173         (Analyze_Formal_Package): Move the setting of the formal package spec's
3174         Generic_Parent field so that it occurs prior to analyzing the package,
3175         to allow proper operation of Install_Parent_Private_Declarations.
3176         (Analyze_Package_Instantiation): Set the instantiated package entity's
3177         Package_Instantiation field.
3178         (Get_Package_Instantiation_Node): Move declaration to package spec.
3179         Retrieve the N_Package_Instantiation node when the Package_Instantiation
3180         field is present.
3181         (Check_Generic_Child_Unit): Within an inlined call, the only possible
3182         instantiation is Unchecked_Conversion, for which no parents are needed.
3183         (Inline_Instance_Body): Deinstall and record the use_clauses for all
3184         parent scopes of a scope being removed prior to inlining an instance
3185         body.
3186         (Analyze_Package_Instantiation): Do not perform front-end inlining when
3187         the current context is itself an instance within a non-instance child
3188         unit, to prevent scope stack errors.
3189         (Save_References): If the node is an aggregate that is an actual in a
3190         call, rewrite as a qualified expression to preserve some type
3191         information, to resolve possible ambiguities in the instance.
3192         (Instance_Parent_Unit): New global variable to record the ultimate
3193         parent unit associated with a generic child unit instance (associated
3194         with the existing Parent_Unit_Visible flag).
3195         (type Instance_Env): New component Instance_Parent_Unit for stacking
3196         parents recorded in the global Instance_Parent_Unit.
3197         (Init_Env): Save value of Instance_Parent_Unit in the Instance_Env
3198         stack.
3199         (Install_Spec): Save the parent unit entity in Instance_Parent_Unit when
3200         it's not a top-level unit, and only do this if Instance_Parent_Unit is
3201         not already set. Replace test of Is_Child_Unit with test of parent's
3202         scope against package Standard. Add comments and a ??? comment.
3203         (Remove_Parent): Revise condition for resetting Is_Immediately_Visible
3204         on a child instance parent to test that the parent equals
3205         Instance_Parent rather than simply checking that the unit is not a
3206         child unit.
3207         (Restore_Env): Restore value of Instance_Parent_Unit from Instance_Env.
3208         (Validate_Derived_Interface_Type_Instance): Verify that all ancestors of
3209         a formal interface are ancestors of the corresponding actual.
3210         (Validate_Formal_Interface_Type): Additional legality checks.
3211         (Analyze_Formal_Derived_Interface_Type): New procedure to handle formal
3212         interface types with ancestors.
3213         (Analyze_Formal_Package): If formal is a renaming, use renamed entity
3214         to diagnose attempts to use generic within its own declaration.
3215
3216 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
3217             Javier Miranda  <miranda@adacore.com>
3218
3219         * sem_ch3.ads, sem_ch3.adb (Build_Discriminal): Add link to original
3220         discriminant.
3221         (Build_Private_Derived_Type): The entity of the created full view of the
3222         derived type does not come from source. If after installing the private
3223         declarations of the parent scope the parent is still private, use its
3224         full view to construct the full declaration of the derived type.
3225         (Build_Derived_Record_Type): Relax the condition that controls the
3226         execution of the check that verifies that the partial view and
3227         the full view agree in the set of implemented interfaces. In
3228         addition, this test now only takes into account the progenitors.
3229         (Derive_Interface_Subprograms): No need to derive subprograms
3230         of ancestors that are interfaces.
3231         (Derive_Subprograms): Remove formal No_Predefined_Prims and the
3232         associated code.
3233         Change name Is_Package to Is_Package_Or_Generic_Package
3234         (Complete_Subprograms_Derivation): Handle the case in which the full
3235         view is a transitive derivation of the ancestor of the partial view.
3236         (Process_Full_View): Rename local subprogram Find_Interface_In_
3237         Descendant to Find_Ancestor_Interface to leave the code more clear.
3238         Remove wrong code that avoids the generation of an error message
3239         when the immediate ancestor of the partial view is an interface.
3240         In addition some minor reorganization of the code has been done to
3241         leave it more clear.
3242         (Analyze_Type_Declaration): If type has previous incomplete tagged
3243         partial view, inherit properly its primitive operations.
3244         (Collect_Interfaces): Make public, for analysis of formal
3245         interfaces.
3246         (Analyze_Interface_Declaration): New procedure for use for regular and
3247         formal interface declarations.
3248         (Build_Derived_Record_Type): Add support for private types to the code
3249         that checks if a tagged type implements abstract interfaces.
3250         (Check_Aliased_Component_Type): The test applies in the spec of an
3251         instance as well.
3252         (Access_Type_Declaration): Clean up declaration of malformed type
3253         declared as an access to its own classwide type, to prevent cascaded
3254         crash.
3255         (Collect_Interfaces): For private extensions and for derived task types
3256         and derived protected types, the parent may be an interface that must
3257         be included in the interface list.
3258         (Access_Definition): If the designated type is an interface that may
3259         contain tasks, create Master_Id for it before analyzing the expression
3260         of the declaration, which may be an allocator.
3261         (Record_Type_Declaration): Set properly the interface kind, for use
3262         in allocators, the creation of master id's for task interfaces, etc.
3263
3264 2005-11-14  Javier Miranda  <miranda@adacore.com>
3265             Ed Schonberg  <schonberg@adacore.com>
3266
3267         * sem_ch6.adb (Check_Conformance): The null-exclusion feature can be
3268         omitted in case of stream attribute subprograms.
3269         (Check_Inline_Pragma): Handle Inline and Inline_Always pragmas that
3270         appear immediately after a subprogram body, when there is no previous
3271         subprogram declaration.
3272         Change name Is_Package to Is_Package_Or_Generic_Package
3273         (Process_Formals): A non null qualifier on a non null named access
3274         type is not an error, and is a warning only if Redundant_Constructs
3275         are flagged.
3276
3277 2005-11-14  Gary Dismukes  <dismukes@adacore.com>
3278             Ed Schonberg  <schonberg@adacore.com>
3279
3280         * sem_ch7.adb (Install_Parent_Private_Declarations): New procedure
3281         nested within Analyze_Package_Specification to install the private
3282         declarations and use clauses within each of the parent units of a
3283         package instance of a generic child package.
3284         (Analyze_Package_Specification): When entering a private part of a
3285         package associated with a generic instance or formal package, the
3286         private declarations of the parent must be installed (by calling new
3287         procedure Install_Parent_Private_Declarations).
3288         Change name Is_Package to Is_Package_Or_Generic_Package
3289         (Preserve_Full_Attributes): For a synchronized type, the corresponding
3290         record is absent in a generic context, which does not indicate a
3291         compiler error.
3292
3293 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
3294
3295         * sem_ch8.adb (Analyze_Subprogram_Renaming): In a generic context, do
3296         not try to rewrite a renamed stream attribute, because the operations
3297         on the type may not have been generated.
3298         Handle properly a renaming_as_body generated for a stream operation
3299         whose default is abstract because the object type itself is abstract.
3300         (Find_Type): If the type is incomplete and appears as the prefix of a
3301         'Class reference, it is tagged, and its list of primitive operations
3302         must be initialized properly.
3303         (Chain_Use_Clauses): When chaining the use clauses that appear in the
3304         private declaration of a parent unit, prior to compiling the private
3305         part of a child unit, find on the scope stack the proper parent entity
3306         on which to link the use clause.
3307         (Note_Redundant_Use): Emit a warning when a redundant use clause is
3308         detected.
3309         (Analyze_Object_Renaming): An attribute reference is not a legal object
3310         if it is not a function call.
3311
3312 2005-11-14  Robert Dewar  <dewar@adacore.com>
3313             Ed Schonberg  <schonberg@adacore.com>
3314
3315         * sem_eval.adb: Implement d.f flag
3316         (Subtype_Statically_Match): A generic actual type has unknown
3317         discriminants when the corresponding actual has a similar partial view.
3318         If the routine is called to validate the signature of an inherited
3319         operation in a child instance, the generic actual matches the full view,
3320
3321 2005-11-14  Hristian Kirtchev  <kirtchev@adacore.com>
3322             Ed Schonberg  <schonberg@adacore.com>
3323             Robert Dewar  <dewar@adacore.com>
3324             Thomas Quinot  <quinot@adacore.com>
3325
3326         * sem_res.adb (Resolve_Call): Provide a better error message whenever
3327         a procedure call is used as a select statement trigger and is not an
3328         entry renaming or a primitive of a limited interface.
3329         (Valid_Conversion): If the operand has a single interpretation do not
3330         remove address operations.
3331         (Check_Infinite_Recursion): Skip freeze nodes when looking for a raise
3332         statement to inhibit warning.
3333         (Resolve_Unary_Op): Do not produce a warning when
3334         processing an expression of the form -(A mod B)
3335         Use Universal_Real instead of Long_Long_Float when we need a high
3336         precision float type for the generated code (prevents gratuitous
3337         Vax_Float stuff when pragma Float_Representation (Vax_Float) used)
3338         (Resolve_Concatenation_Arg): Improve error message when argument is an
3339         ambiguous call to a function that returns an array.
3340         (Make_Call_Into_Operator, Operand_Type_In_Scope): Do not check that
3341         there is an implicit operator in the given scope if we are within an
3342         instance: legality check has been performed on the generic.
3343         (Resolve_Unary_Op): Apply warnings checks on argument of Abs operator
3344         after resolving operand, to avoid false warnings on overloaded calls.
3345
3346 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
3347             Javier Miranda  <miranda@adacore.com>
3348
3349         PR ada/15604
3350
3351         * sem_type.adb (Covers): In an inlined body, a composite type matches
3352         a private type whose full view is a composite type.
3353         (Interface_Present_In_Ancestor): Protect the frontend against
3354         previously detected errors to ensure that its compilation
3355         with assertions enabled gives the same output that its
3356         compilation without assertions.
3357         (Interface_Present_In_Ancestor): Add support for private types.
3358         Change name In_Actual to In_Generic_Actual (clean up)
3359         (Disambiguate): New predicate In_Actual, to recognize expressions that
3360         appear in the renaming declaration generated for generic actuals, and
3361         which must be resolved in the outer context.
3362
3363 2005-11-14  Robert Dewar  <dewar@adacore.com>
3364             Thomas Quinot  <quinot@adacore.com>
3365             Hristian Kirtchev  <kirtchev@adacore.com>
3366             Ed Schonberg  <schonberg@adacore.com>
3367
3368         * sem_util.ads, sem_util.adb: Change name Is_Package to
3369         Is_Package_Or_Generic_Package.
3370         (Check_Obsolescent): New procedure.
3371         (Set_Is_Public): Remove obsolete junk test.
3372         (Set_Public_Status): Do not set Is_Public on an object whose declaration
3373         occurs within a handled_sequence_of_statemets.
3374         (Is_Controlling_Limited_Procedure): Factor some of the logic, account
3375         for a parameterless procedure.
3376         (Enter_Name): Recognize renaming declarations created for private
3377         component of a protected type within protected operations, so that
3378         the source name of the component can be used in the debugger.
3379
3380 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
3381             Robert Dewar  <dewar@adacore.com>
3382
3383         * sem_warn.ads, sem_warn.adb (Publicly_Referenceable): Generic formals
3384         of a generic subprogram are not visible outside the body.
3385         (Set_Warning_Switch): New procedure (code to set warning mode moved
3386         here from Switch.C so that it can be shared by pragma processing.
3387         (Check_References): Special case warning for non-modified non-imported
3388         volatile objects.
3389         * par-prag.adb: Modify processing of pragma Warnings to accomodate new
3390         form with a string literal argument
3391
3392 2005-11-14  Javier Miranda  <miranda@adacore.com>
3393
3394         * s-finroo.ads, s-finroo.adb (Read): Addition of "not null" to the
3395         anonymous access.
3396         (Write): Addition of "not null" to the anonymous access.
3397         (Read): Addition of "not null" to the anonymous access.
3398         (Write): Addition of "not null" to the anonymous access.
3399
3400         * s-strxdr.adb, s-stratt.ads, s-stratt.adb (I_AD, I_AS, I_B, I_C, I_F,
3401         I_I, I_LF, I_LI, I_LLF, I_LLI, I_LLU, I_LU, I_SF, I_SI, I_SSI, I_SSU,
3402         I_SU, I_U, I_WC): Addition of "not null" to the anonymous access.
3403         (W_AD, W_AS, W_B, W_C, W_F, W_I, W_LF, W_LI, W_LLF, W_LLI, W_LLU,
3404         W_LU, W_SF, W_SI, W_SSI, W_SSU, W_SU, W_U, W_WC): Addition of
3405         "not null" to the anonymous access.
3406
3407 2005-11-14  Robert Dewar  <dewar@adacore.com>
3408
3409         * s-stoele.adb: Fix code for Address mod Storage_Offset for negative
3410         offset values
3411
3412 2005-11-14  Vincent Celier  <celier@adacore.com>
3413
3414         * switch.adb (Bad_Switch): New procedure
3415         (Scan_Nat, Scan_Pos): Directly call Osint.Fail with the appropriate
3416         message when in error.
3417
3418         * switch.ads (Bad_Switch, Bad_Switch_Value, Missing_Switch_Value,
3419         Too_Many_Output_Files): Remove declarations, no longer used.
3420         (Scan_Nat): New parameter Switch
3421         (Scan_Pos): Ditto
3422         (Bad_Switch): New procedure
3423
3424         * switch-b.adb (Scan_Binder_Switches): Replace "raise Bad_Switch;"
3425         with call to new procedure Bad_Switch. Call Scan_Pos and Scan_Natwith
3426         new parameter Switch. Replace "raise Too_Many_Output_Files;" with call
3427         to Osint.Fail. Do not handle any exception.
3428
3429 2005-11-14  Vincent Celier  <celier@adacore.com>
3430
3431         * tempdir.adb (Tempdir): Do not use environment variable TMPDIR if it
3432         designates a non existent directory.
3433
3434 2005-11-14  Robert Dewar  <dewar@adacore.com>
3435
3436         * xgnatugn.adb: Replace invalid membership test by 'Valid
3437
3438 2005-11-14  Vincent Celier  <celier@adacore.com>
3439
3440         * makegpr.adb (Gprmake): Do not attempt to build the global archive if
3441         there is no object directory.
3442
3443 2005-11-14  Robert Dewar  <dewar@adacore.com>
3444
3445         * usage.adb: Minor adjustment to output format, use nn instead of nnn
3446         (so that -gnateInnn does not run into next column)
3447
3448 2005-11-14  Ed Falis  <falis@adacore.com>
3449
3450         * s-bitops.adb (Bits_Array): corrected comment: "unconstrained" =>
3451         "constrained"
3452
3453 2005-11-14  Cyrille Comar  <comar@adacore.com>
3454
3455         * s-chepoo.ads: Add comments on Dereference.
3456         Remove unnecessary inherited abstract primitives.
3457         Cosmetic cleanup.
3458
3459 2005-11-14  Robert Dewar  <dewar@adacore.com>
3460
3461         * sem_cat.ads (Validate_Access_Type_Declaration): Remove declaration
3462         node parameter, not needed, since it is available as Declaration_Node.
3463
3464 2005-11-14  Geert Bosch  <bosch@adacore.com>
3465
3466         * s-exnllf.adb (Exn_LLF): Fix comment to be more precise and
3467         grammatically correct.
3468
3469 2005-11-14  Vincent Celier  <celier@adacore.com>
3470
3471         * s-fileio.ads: Correct spelling error in comment
3472
3473 2005-11-14  Cyrille Comar  <comar@adacore.com>
3474             Robert Dewar  <dewar@adacore.com>
3475             Vincent Celier  <celier@adacore.com>
3476             Ben Brosgol  <brosgol@adacore.com>
3477             Jose Ruiz  <ruiz@adacore.com>
3478             Pascal Obry  <obry@adacore.com>
3479
3480         * gnat_ugn.texi: 
3481         Document that -fstack-check is needed for strict compliance with the
3482         Ada 95 Reference Manual.
3483         Correct reference to VAX systems to meet HP guidelines
3484         Add documentation for new gnatmake switches -vl, -vm and -vh
3485         Replace DEC Ada by HP Ada
3486         Replace DIGITAL by HP
3487         Remove empty section on tools in compatibility section
3488         Clarify the Windows convention semantics.
3489         Document the Win32 calling convention.
3490         The Stdcall, Win32 and DLL convention are synonyms.
3491         Add a note in -gnatR description about zero size record components
3492         Note on new >= and <= warnings for -gnatwc
3493         Document that equal sign after -gnatm is optional.
3494         Note that strip is working fine on DLL built with a Library
3495         Project. The restriction apply only to DLL built with gnatdll.
3496         Update section about the way to debug a DLL.
3497         Update information about the DLL convention.
3498         Document -C switch for gnatprep
3499         Document new attribute Library_ALI_Dir
3500         Update elaboration doc to include implicit Elaborate pragmas now
3501         generated for subprogram instantiations.
3502         Document limitation on executable names that include spaces for --GCC,
3503         --GNATBIND, and --GNATLINK switches.
3504         Document that -w causes -gnatws to be added at start of gcc switches
3505
3506         * gnat_rm.texi: Document that -mieee is needed for generating infinite
3507         and NaN values in case of overflow on machines that are not fully
3508         compliant with the IEEE floating-point standard.
3509         Create a section describing the set of compiler options needed for
3510         strict compliance with the Ada 95 Reference Manual.
3511         Add documentation for pragma Obsolescent applied to a package
3512         Clarify potential issues of mixed language programs related to the
3513         I/O buffering enabling in the elaboration of the GNAT runtime.
3514         Add extra documentation for pragma Restrictions (No_Elaboration_Code)
3515         This documentation only patch adds extra documentsion for pragma
3516         Restrictions (No_Elaboration_Code), explaining why it is not possible
3517         to document this restriction in terms of allowed source constructs.
3518         Document string literal form of pragma Warnings
3519         Document new attribute Library_ALI_Dir
3520         Add documentation on stable attributes in project files that was missing
3521
3522         * gnat-style.texi: Indicate that paragraphs within a single comment
3523         should be separated by empty comment lines
3524
3525         * ug_words: Added replacements for -gnat95 and -gnat05 (/95 and
3526         /05 respectively)
3527
3528         * bindusg.adb: Minor cleanup, put -m before -M for consistency
3529
3530 2005-11-14  Robert Dewar  <dewar@adacore.com>
3531
3532         * a-secain.adb, a-slcain.adb, a-shcain.adb, a-chtgke.ads, a-chtgke.adb,
3533         a-stwiha.adb, a-strhas.adb, a-chzla1.ads, a-chzla9.ads, a-stzbou.adb,
3534         a-stzbou.ads, a-stzfix.adb, a-stzhas.adb, a-stzmap.adb, a-stzmap.ads,
3535         a-stzsea.adb, a-stzsea.ads, a-stzsup.adb, a-stzsup.ads, a-stzunb.adb,
3536         a-stzunb.ads, a-szuzha.adb, a-szuzha.ads, a-szuzti.adb, a-szuzti.ads,
3537         a-ztcoau.adb, a-ztcoau.ads, a-ztcoio.adb, a-ztcstr.adb, a-ztcstr.ads,
3538         a-ztdeau.adb, a-ztdeau.ads, a-ztdeio.adb, a-ztdeio.ads, a-ztedit.adb,
3539         a-ztedit.ads, a-ztenau.ads, a-ztenio.adb, a-ztenio.ads, a-ztexio.adb,
3540         a-ztexio.ads, a-ztfiio.adb, a-ztfiio.ads, a-ztflau.adb, a-ztflau.ads,
3541         a-ztflio.adb, a-ztflio.ads, a-ztgeau.adb, a-ztgeau.ads, a-ztinau.adb,
3542         a-ztinau.ads, a-ztinio.adb, a-ztmoau.ads, a-ztmoio.adb, a-ztmoio.ads,
3543         a-zttest.adb, g-enblsp-vms-alpha.adb, g-enblsp-vms-alpha.adb,
3544         g-enblsp-vms-ia64.adb, g-enblsp-vms-ia64.adb, system-linux-hppa.ads,
3545         a-chacon.adb, a-chacon.ads, a-wichun.adb, a-wichun.ads, a-zchuni.adb,
3546         a-zchuni.ads, g-trasym-vms-alpha.adb, g-trasym-vms-ia64.adb,
3547         system-hpux-ia64.ads, g-soccon-unixware.ads, g-soliop-unixware.ads,
3548         g-soccon-interix.ads, g-soliop-solaris.ads, g-eacodu-vms.adb,
3549         g-expect-vms.adb, g-socthi-vms.adb, g-soliop-mingw.ads,
3550         a-intnam-unixware.ads, a-intnam-lynxos.ads, a-intnam-tru64.ads,
3551         a-intnam-aix.ads, a-intnam-linux.ads, a-intnam-linux.ads,
3552         a-intnam-dummy.ads, a-numaux-libc-x86.ads, a-intnam-interix.ads,
3553         a-intnam-solaris.ads, a-calend-vms.adb, a-calend-vms.ads,
3554         a-intnam-vms.ads, a-calend-mingw.adb, a-intnam-mingw.ads,
3555         a-intnam-vxworks.ads, a-numaux-vxworks.ads, system-unixware.ads,
3556         system-linux-ia64.ads, a-intnam-freebsd.ads, system-freebsd-x86.ads,
3557         system-lynxos-ppc.ads, system-linux-x86_64.ads, a-stunha.adb,
3558         a-cgaaso.ads, a-cgaaso.adb, a-chtgop.adb, a-cgcaso.adb, a-cgarso.adb,
3559         a-cohata.ads, a-crbtgk.adb, a-crbltr.ads, a-coprnu.adb, a-rbtgso.adb,
3560         a-intnam-darwin.ads, system-darwin-ppc.ads, gprmake.adb, makegpr.ads,
3561         system-tru64.ads, system-aix.ads, system-solaris-x86.ads,
3562         system-irix-o32.ads, s-interr-sigaction.adb, system-irix-n32.ads,
3563         s-parame-mingw.adb, system-hpux.ads, s-traceb-hpux.adb,
3564         system-linux-x86.ads, s-inmaop-dummy.adb, system-os2.ads,
3565         system-interix.ads, system-solaris-sparc.ads,
3566         system-solaris-sparcv9.ads, s-inmaop-vms.adb,
3567         s-mastop-vms.adb, expander.adb, expander.ads, s-gloloc-mingw.adb,
3568         system-mingw.ads, system-vms-zcx.ads, s-osinte-fsu.adb,
3569         s-traceb-mastop.adb, a-exextr.adb, a-exstat.adb, a-filico.ads,
3570         a-finali.ads, a-interr.ads, a-intsig.adb, a-intsig.ads,
3571         a-except.ads, a-numaux-x86.ads, a-astaco.adb, a-calend.adb,
3572         a-calend.ads, a-chahan.adb, a-chahan.ads, a-chlat9.ads,
3573         a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
3574         a-comlin.adb, a-comlin.ads, a-cwila1.ads, a-cwila9.ads,
3575         a-elchha.adb, a-decima.adb, a-decima.ads, a-diocst.ads,
3576         a-direio.adb, a-direio.ads, a-excach.adb, a-excach.adb,
3577         a-exctra.ads, ali-util.adb, a-ngcefu.adb, a-ngcoty.adb,
3578         a-ngcoty.ads, a-nudira.adb, a-nudira.ads, a-nuflra.adb,
3579         a-numaux.ads, a-reatim.ads, a-sequio.adb, a-sequio.ads,
3580         a-siocst.ads, a-ssicst.ads, a-stmaco.ads, a-storio.adb,
3581         a-strbou.adb, a-strbou.ads, a-stream.ads, a-strfix.adb,
3582         a-strmap.adb, a-strmap.ads, a-strsea.adb, a-strsea.ads,
3583         a-strsup.adb, a-strsup.ads, a-strunb.adb, a-strunb.ads,
3584         a-stwibo.adb, a-stwibo.ads, a-stwifi.adb, a-stwima.adb,
3585         a-stwima.ads, a-stwise.adb, a-stwise.ads, a-stwisu.adb,
3586         a-stwisu.ads, a-stwiun.adb, a-stwiun.ads, a-suteio.adb,
3587         a-suteio.ads, a-swmwco.ads, a-swuwti.adb, a-swuwti.ads,
3588         a-sytaco.adb, a-sytaco.ads, a-tasatt.adb, a-taside.adb,
3589         a-taside.ads, a-teioed.adb, a-textio.adb, a-textio.ads,
3590         a-ticoau.adb, a-ticoau.ads, a-ticoio.adb, a-tideau.adb,
3591         a-tideio.adb, a-tienau.adb, a-tienio.adb, a-tifiio.adb,
3592         a-tiflio.adb, a-tigeau.adb, a-tigeau.ads, a-tiinau.adb,
3593         a-tiinio.adb, a-timoau.adb, a-timoio.adb, a-timoio.ads,
3594         a-tiocst.ads, a-titest.adb, atree.adb, a-witeio.adb,
3595         a-witeio.ads, a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb,
3596         a-wtcstr.ads, a-wtdeau.adb, a-wtdeio.adb, a-wtedit.adb,
3597         a-wtedit.ads, a-wtenau.adb, a-wtenio.adb, a-wtfiio.adb,
3598         a-wtflio.adb, a-wtgeau.adb, a-wtinau.adb, a-wtinio.adb,
3599         a-wtmoau.adb, a-wtmoio.adb, a-wttest.adb, back_end.adb,
3600         bindgen.adb, butil.adb, butil.ads, checks.ads, cio.c, comperr.adb,
3601         csets.ads, cstand.adb, debug.ads, elists.ads, errno.c, errout.adb,
3602         errout.ads, erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
3603         errutil.ads, err_vars.ads, eval_fat.adb, exp_ch11.adb, exp_ch11.ads,
3604         exp_ch2.adb, exp_ch7.ads, exp_imgv.ads, exp_pakd.adb, exp_prag.adb,
3605         exp_prag.ads, exp_tss.adb, exp_tss.ads, exp_vfpt.ads, fe.h, fmap.adb,
3606         freeze.ads, frontend.adb, frontend.ads, g-arrspl.adb, g-arrspl.ads,
3607         g-awk.adb, g-awk.ads, g-boumai.ads, g-calend.adb, g-calend.ads,
3608         g-catiio.adb, g-comlin.adb, g-comlin.ads, g-comlin.ads, g-comlin.ads,
3609         g-comver.adb, g-crc32.adb, g-crc32.ads, g-ctrl_c.ads, g-curexc.ads,
3610         g-debpoo.ads, g-debuti.adb, g-diopit.adb, g-diopit.ads, g-dirope.adb,
3611         g-dirope.ads, g-dyntab.adb, g-dyntab.ads, g-excact.adb, g-excact.ads,
3612         g-except.ads, g-exctra.adb, g-exctra.ads, g-expect.ads, g-flocon.ads,
3613         g-hesorg.ads, g-io.adb, g-locfil.ads, g-md5.adb, g-md5.ads, g-md5.ads,
3614         g-moreex.adb, g-signal.ads, g-signal.adb, gnatbind.ads, gnatchop.adb,
3615         gnatcmd.adb, gnatfind.adb, gnatlbr.adb, gnatmake.ads, gnatmem.adb,
3616         gnatprep.adb, gnatprep.ads, gnatsym.adb, gnatxref.adb, g-os_lib.adb,
3617         g-os_lib.ads, g-pehage.adb, g-pehage.ads, gprep.ads, g-regexp.adb,
3618         g-regexp.ads, g-regist.adb, g-regist.ads, g-regpat.ads, g-semaph.adb,
3619         g-socthi.adb, g-soliop.ads, g-spipat.adb, g-spipat.ads, g-sptabo.ads,
3620         g-sptain.ads, g-sptavs.ads, g-string.ads, g-tasloc.adb, g-tasloc.ads,
3621         g-trasym.adb, g-trasym.ads, i-fortra.adb, i-fortra.ads, inline.adb,
3622         layout.adb, live.adb, make.ads, makeutl.ads, makeutl.adb, mdll-fil.adb,
3623         mdll-fil.ads, mdll-utl.ads, memroot.ads, memtrack.adb, mlib.ads,
3624         mlib-fil.adb, mlib-fil.ads, mlib-prj.ads, mlib-utl.adb, mlib-utl.ads,
3625         nlists.adb, nlists.ads, osint.adb, osint.ads, osint-c.adb, osint-l.adb,
3626         osint-l.ads, osint-m.ads, output.adb, par.adb, par.adb, par.ads,
3627         par-ch11.adb, par-ch12.adb, par-ch2.adb, par-ch4.adb, par-ch5.adb,
3628         par-ch6.adb, par-ch9.adb, par-endh.adb, par-labl.adb, par-load.adb,
3629         par-tchk.adb, prep.adb, prepcomp.adb, prepcomp.ads, prj-attr.ads,
3630         prj-com.ads, prj-dect.adb, prj-dect.ads, prj-env.ads, prj-err.ads,
3631         prj-ext.ads, prj-makr.adb, prj-makr.ads, prj-nmsc.ads, prj-pars.adb,
3632         prj-pars.ads, prj-part.ads, prj-pp.ads, prj-proc.ads, prj-strt.adb,
3633         prj-strt.ads, prj-tree.adb, prj-util.adb, prj-util.ads, rtsfind.adb,
3634         sem.adb, sem.ads, sem_case.adb, sem_case.ads, sem_ch11.adb,
3635         sem_ch4.adb, sem_ch6.ads, sem_ch7.ads, sem_dist.ads, sem_elab.ads,
3636         sem_elim.ads, sem_eval.ads, sem_intr.ads, sem_maps.adb, sem_maps.ads,
3637         sem_maps.ads, sem_res.ads, sem_type.ads, sfn_scan.adb, sfn_scan.ads,
3638         s-imgwch.ads, s-imgwiu.adb, s-imgwiu.ads, s-inmaop.ads, sinput.adb,
3639         sinput.ads, s-pack03.adb, s-pack03.ads, s-pack05.adb, s-pack05.ads,
3640         s-pack06.adb, s-pack06.ads, s-pack07.adb, s-pack07.ads, s-pack09.adb,
3641         s-pack09.ads, s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads,
3642         s-pack12.adb, s-pack12.ads, s-pack13.adb, s-pack13.ads, s-pack14.adb,
3643         s-pack14.ads, s-pack15.adb, s-pack15.ads, s-pack17.adb, s-pack17.ads,
3644         s-pack18.adb, s-pack18.ads, s-pack19.adb, s-pack19.ads, s-pack20.adb,
3645         s-pack20.ads, s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads,
3646         s-pack23.adb, s-pack23.ads, s-pack24.adb, s-pack24.ads, s-pack25.adb,
3647         s-pack25.ads, s-pack26.adb, s-pack26.ads, s-pack27.adb, s-pack27.ads,
3648         s-pack28.adb, s-pack28.ads, s-pack29.adb, s-pack29.ads, s-pack30.adb,
3649         s-pack30.ads, s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads,
3650         s-pack34.adb, s-pack34.ads, s-pack35.adb, s-pack35.ads, s-pack36.adb,
3651         s-pack36.ads, s-pack37.adb, s-pack37.ads, s-pack38.adb, s-pack38.ads,
3652         s-pack39.adb, s-pack39.ads, s-pack40.adb, s-pack40.ads, s-pack41.adb,
3653         s-pack41.ads, s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads,
3654         s-pack44.adb, s-pack44.ads, s-pack45.adb, s-pack45.ads, s-pack46.adb,
3655         s-pack46.ads, s-pack47.adb, s-pack47.ads, s-pack48.adb, s-pack48.ads,
3656         s-pack49.adb, s-pack49.ads, s-pack50.adb, s-pack50.ads, s-pack51.adb,
3657         s-pack51.ads, s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads,
3658         s-pack54.adb, s-pack54.ads, s-pack55.adb, s-pack55.ads, s-pack56.adb,
3659         s-pack56.ads, s-pack57.adb, s-pack57.ads, s-pack58.adb, s-pack58.ads,
3660         s-pack59.adb, s-pack59.ads, s-pack60.adb, s-pack60.adb, s-pack60.ads,
3661         s-pack61.adb, s-pack61.ads, s-pack62.adb, s-pack62.ads, s-pack63.adb,
3662         s-pack63.ads, s-parint.adb, s-parint.adb, s-parint.ads, sprint.ads,
3663         s-purexc.ads, s-restri.ads, s-restri.adb, s-scaval.adb, s-scaval.ads,
3664         s-secsta.adb, s-secsta.ads, s-sequio.adb, s-sequio.ads, stand.ads,
3665         s-tasuti.adb, s-traceb.adb, s-traceb.ads, stringt.adb, stringt.ads,
3666         styleg.ads, s-valboo.adb, s-valboo.ads, s-valcha.adb, s-valcha.ads,
3667         s-valdec.adb, s-valdec.ads, s-valint.adb, s-valint.ads, s-valint.ads,
3668         s-vallld.adb, s-vallld.ads, s-vallli.adb, s-vallli.ads, s-valllu.adb,
3669         s-valllu.ads, s-valrea.adb, s-valrea.ads, s-valuns.adb, s-valuns.ads,
3670         s-valuti.adb, s-valuti.ads, s-valwch.ads, s-veboop.adb, s-veboop.ads,
3671         s-vercon.adb, s-vercon.ads, s-wchcnv.adb, s-wchcnv.ads, s-wchcon.ads,
3672         s-wchjis.adb, s-wchjis.ads, s-wchstw.adb, s-wchstw.adb, s-wchstw.ads,
3673         s-wchwts.adb, s-wchwts.ads, s-widboo.adb, s-widboo.ads, s-widcha.adb,
3674         s-widcha.ads, s-widenu.adb, s-widenu.ads, s-widlli.adb, s-widlli.ads,
3675         s-widllu.adb, s-widllu.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb,
3676         s-wwdcha.ads, s-wwdenu.adb, s-wwdenu.ads, symbols.adb, symbols.ads,
3677         table.ads, targparm.adb, targparm.ads, tb-alvms.c, tb-alvxw.c,
3678         tbuild.adb, tree_io.ads, treepr.adb, treeprs.adt, ttypef.ads,
3679         ttypes.ads, types.adb, uintp.adb, uintp.ads, uname.ads, urealp.ads,
3680         usage.ads, validsw.ads, vxaddr2line.adb, widechar.adb, widechar.ads,
3681         xeinfo.adb, xnmake.adb, xref_lib.ads, xr_tabls.adb, xr_tabls.ads,
3682         xsinfo.adb, xtreeprs.adb, xsnames.adb, vms_conv.ads, vms_conv.adb,
3683         a-dirval.ads, a-dirval.adb, a-dirval-mingw.adb, a-direct.ads,
3684         a-direct.adb, indepsw.ads, prj-attr-pm.ads, system-linux-ppc.ads,
3685         a-numaux-darwin.ads, a-numaux-darwin.adb,
3686         a-swuwha.ads, a-stunha.ads: Minor reformatting
3687
3688 2005-11-14  Robert Dewar  <dewar@adacore.com>
3689
3690         PR ada/18434
3691         * osint-m.adb: Add pragma Elaborate_All for Osint
3692
3693 2005-11-10  Eric Botcazou  <ebotcazou@adacore.com>
3694
3695         PR ada/23995
3696         * trans.c (call_to_gnu): Restore statement lost in translation.
3697
3698 2005-11-08  Eric Botcazou  <ebotcazou@adacore.com>
3699
3700         * init.c: Use the Linux-specific section for the IA-64/Linux target.
3701         (__gnat_adjust_context_for_raise): Add conditional code so that the
3702         IA-64 is also supported.
3703
3704 2005-11-03  James E Wilson  <wilson@specifix.com>
3705
3706         PR ada/23427
3707         * trans.c (gnat_to_gnu): Use TYPE_SIZE_UNIT not TYPE_SIZE in
3708         TREE_OVERFLOW check.
3709
3710 2005-09-21  Olivier Hainque  <hainque@adacore.com>
3711
3712         PR ada/22418
3713         * decl.c (maybe_pad_type): Use proper bitsizetype for XVZ objects,
3714         as we create them to store a size in bits.
3715
3716 2005-10-21  Eric Botcazou  <ebotcazou@adacore.com>
3717
3718         PR ada/21937
3719         PR ada/22328
3720         PR ada/22381
3721         PR ada/22383
3722         PR ada/22419
3723         PR ada/22420
3724         * utils2.c (build_return_expr): New helper function.
3725         * gigi.h (build_return_expr): Declare it.
3726         * trans.c (Subprogram_Body_to_gnu): Use build_return_expr instead
3727         of manually building the RETURN_EXPR tree.
3728         (call_to_gnu): Pass MODIFY_EXPR through build_binary_op.
3729         (gnat_to_gnu) <N_Return_Statement>: Pass MODIFY_EXPR through
3730         build_binary_op for the "target pointer" case.  Use build_return_expr
3731         instead of manually building the RETURN_EXPR tree.
3732
3733 2005-09-16  Laurent GUERBY  <laurent@guerby.net>
3734
3735         PR ada/23788
3736         * s-tpinop.ads: Make this unit Preelaborate.
3737
3738 2005-09-16  Andreas Jaeger  <aj@suse.de>
3739
3740         * socket.c: Add string.h for memcpy.
3741
3742 2005-09-05  Arnaud Charlet  <charlet@adacore.com>
3743
3744         * dec-io.ads, dec-io.adb: Removed, no longer used.
3745
3746 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
3747
3748         * a-calend-mingw.adb: Add call to OS_Primitives.Initialize;
3749
3750         * s-taprop-mingw.adb, s-taprop-vms.adb, s-taprop-solaris.adb,
3751         s-taprop-os2.adb, s-taprop-irix-athread.adb, s-taprop-linux.adb,
3752         s-taprop-hpux-dce.adb, s-taprop-irix.adb, s-taprop-tru64.adb,
3753         s-taprop-lynxos.adb: Move with clauses outside Warnings Off now that
3754         dependent units are Preelaborate.
3755         (Initialize): Call Interrupt_Managemeent.Initialize and
3756         OS_Primitives.Initialize to ensure proper initialization of this unit.
3757         Remove use of System.Soft_Links
3758         Make this unit Preelaborate.
3759
3760         * s-stache.ads, s-taspri-vxworks.ads, s-taspri-mingw.ads,
3761         s-taspri-vms.ads, s-tasinf-solaris.ads, s-taspri-os2.ads,
3762         s-taspri-lynxos.ads, s-taspri-hpux-dce.ads, s-taspri-tru64.ads,
3763         s-tasinf-tru64.ads, s-tasinf-irix.ads, s-tasinf-irix-athread.ads,
3764         s-proinf-irix-athread.adb, s-proinf-irix-athread.ads,
3765         s-tratas.ads, s-tasinf.ads: Minor reformatting.
3766         Add pragma Preelaborate, since these packages are suitable for this
3767         categorization.
3768         Update comments.
3769
3770         * s-traent-vms.ads, s-intman-dummy.adb,
3771         s-taprop-dummy.adb: Make this unit Preelaborate.
3772
3773         * s-osprim-vxworks.adb, s-osprim-vms.adb, s-osprim-vms.ads,
3774         s-osprim-mingw.adb, s-intman-vxworks.ads, s-intman-vxworks.adb,
3775         s-intman-vms.adb, s-intman-mingw.adb, s-intman-vms.ads,
3776         s-osprim-unix.adb, s-osprim-os2.adb, s-osprim-solaris.adb,
3777         s-intman-solaris.adb, s-intman-irix-athread.adb,
3778         s-intman-irix.adb: Mark this unit Preelaborate.
3779         (Initialize): New procedure.
3780         Update comments.
3781
3782         * s-taspri-linux.ads: Removed.
3783
3784         * s-tpopsp-solaris.adb (Initialize): Create the key in this procedure,
3785         as done by other implementations (e.g. posix).
3786
3787         * s-taprop.ads (Timed_Delay): Update spec since the caller now is
3788         responsible for deferring abort.
3789         Mark this unit Preelaborate.
3790
3791         * s-taprob.adb, s-tarest.adb: Call System.Tasking.Initialize to ensure
3792         proper initialization of the tasking run-time.
3793
3794         * s-tasdeb.ads: Mark this unit Preelaborate.
3795         (Known_Tasks): Add explicit default value to avoid elaboration code.
3796
3797         * s-inmaop-vms.adb (Elaboration code): Add call to
3798         Interrupt_Management.Initialize since the elaboration code depends on
3799         proper initialization of this package.
3800
3801         * s-intman.ads, s-inmaop-posix.adb, s-intman-posix.adb,
3802         s-osprim.ads, s-taprop-posix.adb, s-taspri-posix.ads,
3803         s-osprim-posix.adb: Make this unit Preelaborate.
3804
3805         * a-calend.adb: Add call to OS_Primitives.Initialize
3806
3807         * a-elchha.adb: Update use of Except.Id.Full_Name.
3808         Minor reformatting.
3809         Remove use of Ada.Exceptions.Traceback when possible, cleaner.
3810
3811         * a-dynpri.adb, a-sytaco.adb, a-sytaco.ads:
3812         Move with clauses outside Warnings Off now that dependent units are
3813         Preelaborate.
3814         Use raise xxx with "..."; Ada 2005 form.
3815
3816         * a-taside.ads, a-taside.adb:
3817         Remove some dependencies, to make it easier to make this unit truly
3818         Preelaborate.
3819         Rewrite some code to be conformant with Preelaborate rules.
3820
3821         * g-os_lib.adb: Remove non-preelaborate code so that this unit can be
3822         marked Preelaborate in the future.
3823
3824         * s-proinf.ads, g-string.ads, s-auxdec.ads, s-auxdec-vms_64.ads: Make
3825         these units Preelaborate.
3826
3827         * s-exctab.adb: Update use of Except.Id.Full_Name.
3828
3829         * s-soflin.ads, s-soflin.adb: Mark this unit Preelaborate_05.
3830         (Set_Exc_Stack_Addr_Soft, Get_Exc_Stack_Addr_NT, Set_Exc_Stack_Addr_NT,
3831         Set_Exc_Stack_Addr): Removed, no longer used.
3832         Remove reference to *Machine_State_Addr*, no longer needed.
3833
3834         * s-stalib.ads: Mark this unit as Preelaborate[_05].
3835         (Exception_Data): Full_Name is now a System.Address so that this unit
3836         can be made Preelaborate.
3837         Clean up/simplify code thanks to Full_Name being a System.Address.
3838         Remove obsolete pragma Suppress (All_Checks), no longer needed.
3839
3840         * s-taskin.ads, s-taskin.adb:
3841         Move with clauses outside Warnings Off now that dependent units are
3842         Preelaborate.
3843         Make this unit Preelaborate.
3844         (Initialize): New proceduure, replace elaboration code and makes the
3845         set up of the tasking run-time cleaner.
3846         (Detect_Blocking): Now a function instead of a deferred boolean, to
3847         obey Preelaborate rules.
3848
3849         * s-tassta.adb (Finalize_Global_Tasks): Remove Get/Set_Exc_Stack_Addr
3850         soft links, no longer used.
3851
3852         * s-traces.ads, s-traent.ads: Add pragma Preelaborate, since these
3853         packages are suitable for this categorization.
3854
3855         * s-solita.adb: Replace use of Ada.Exception by raise xxx with "..."
3856         since we compile run-time sources in Ada 2005 mode.
3857         (Timed_Delay_T): Call Abort_Defer/Undefer around Timed_Delay, to
3858         avoid having s-taprop*.adb depend on s-soflin and to avoid code
3859         duplication.
3860         Remove reference to *Machine_State_Addr*, no longer needed.
3861
3862 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
3863
3864         * s-mastop-tru64.adb, s-mastop-irix.adb, s-mastop-vms.adb
3865         (Enter_Handler, Set_Signal_Machine_State): Removed, no longer used.
3866         Remove reference to System.Exceptions.
3867
3868         * s-mastop-x86.adb: Removed, no longer used.
3869
3870         * s-traceb-mastop.adb: Adjust calls to Pop_Frame.
3871
3872         * a-excach.adb: Minor reformatting.
3873
3874         * a-except.ads, a-except.adb: Remove global Warnings (Off) pragma, and
3875         instead fix new warnings that were hidden by this change.
3876         (AAA, ZZZ): Removed, replaced by...
3877         (Code_Address_For_AAA, Code_Address_For_ZZZ): ... these functions, who
3878         are used instead of constants, to help make Ada.Exception truly
3879         preelaborate.
3880         (Rcheck_*, Raise_Constraint_Error, Raise_Program_Error,
3881         Raise_Storage_Error): File is now a System.Address, to simplify code.
3882         (Elab code): Removed, no longer used.
3883         (Null_Occurrence): Remove Warnings Off and make this construct
3884         preelaborate.
3885         Remove code related to front-end zero cost exception handling, since
3886         it is no longer used.
3887         Remove -gnatL/-gnatZ switches.
3888
3889         * a-exexda.adb (Append_Info_Exception_Name, Set_Exception_C_Msg):
3890         Update use of Except.Msg.
3891
3892         * gnat1drv.adb, inline.adb, bindgen.adb, debug.adb, exp_ch11.ads,
3893         freeze.adb, frontend.adb, lib.adb, exp_ch11.adb: Remove code related
3894         to front-end zero cost exception handling, since it is no longer used.
3895         Remove -gnatL/-gnatZ switches.
3896
3897         * lib-writ.ads: Minor reformatting
3898         Remove doc of UX
3899
3900         * Makefile.rtl: Remove references to s-except*, s-mastop-x86*
3901
3902         * Make-lang.in: Remove references to s-except.ads
3903
3904         * s-except.ads: Removed, no longer used.
3905
3906         * s-mastop.ads, s-mastop.adb:
3907         (Enter_Handler, Set_Signal_Machine_State): Removed, no longer used.
3908         Remove reference to System.Exceptions.
3909
3910         * raise.h, usage.adb, targparm.adb, targparm.ads, switch-m.adb,
3911         switch-b.adb: Remove code related to front-end zero cost exception
3912         handling, since it is no longer used.
3913         Remove -gnatL/-gnatZ switches.
3914
3915 2005-09-01  Robert Dewar  <dewar@adacore.com>
3916             Gary Dismukes  <dismukes@adacore.com>
3917             Javier Miranda  <miranda@adacore.com>
3918
3919         * exp_ch4.adb (Expand_N_In): Replace test of expression in its own
3920         type by valid test and generate warning.
3921         (Tagged_Membership): Generate call to the run-time
3922         subprogram IW_Membership in case of "Iface_CW_Typ in Typ'Class"
3923         Change formal name Subtype_Mark to Result_Definition in several calls to
3924         Make_Function_Specification.
3925         (Expand_Allocator_Expression): Add tests for suppression of the AI-344
3926         check for proper accessibility of the operand of a class-wide allocator.
3927         The check can be left out if checks are suppressed or if the expression
3928         has a specific tagged type whose level is known to be safe.
3929
3930         * exp_ch5.adb (Expand_N_Assignment_Statement): Simplify the code that
3931         generates the run-time check associated with null-excluding entities.
3932         (Expand_N_Return_Statement): Add tests to determine if the accessibility
3933         check on the level of the return expression of a class-wide function
3934         can be elided. The check usually isn't needed if the expression has a
3935         specific type (unless it's a conversion or a formal parameter). Also
3936         add a test for whether accessibility checks are suppressed. Augment
3937         the comments to describe the conditions for performing the check.
3938
3939 2005-09-01  Hristian Kirtchev  <kirtchev@adacore.com>
3940             Javier Miranda  <miranda@adacore.com>
3941             Gary Dismukes  <dismukes@adacore.com>
3942             Ed Schonberg  <schonberg@adacore.com>
3943
3944         * a-tags.adb (IW_Membership): Give support to
3945         "Iface_CW_Typ in T'Class". For this purpose the functionality of this
3946         subprogram has been extended to look for the tag in the ancestors tag
3947         table.
3948         Update the structure of the GNAT Dispatch Table to reflect the
3949         additional two tables used in dispatching selects.
3950         Introduce appropriate array types and record components in
3951         Type_Specific_Data to reflect the two tables.
3952         (Get_Entry_Index, Set_Entry_Index): Retrieve and set the entry index in
3953         the TSD of a tag, indexed by position.
3954         (Get_Prim_Op_Kind, Set_Prim_Op_Kind): Retrieve and set the primitive
3955         operation kind in the TSD of a tag, indexed by position.
3956
3957         * a-tags.ads: Introduce an enumeration type to capture different
3958         primitive operation kinds. Define a constant reflecting the number of
3959         predefined primitive operations.
3960         (Get_Entry_Index, Set_Entry_Index): Set and retrieve the entry index
3961         of an entry wrapper.
3962         (Get_Prim_Op_Kind, Set_Prim_Op_Kind): Set and retrieve the kind of
3963         callable entity of a primitive operation.
3964
3965         * exp_ch3.adb (Freeze_Record_Type): Generate the declarations of the
3966         primitive operations used in dispatching selects for limited
3967         interfaces, limited tagged, task and protected types what implement a
3968         limited interface.
3969         (Freeze_Type): Generate the bodies of the primitive operations used in
3970         dispatching selects for limited tagged, task and protected types that
3971         implement a limited interface. Generate statements to populate the two
3972         auxiliary tables used for dispatching in select statements.
3973         (Freeze_Record_Type): Add call to initialize the dispatch table entries
3974         associated with predefined interface primitive operations.
3975         (Build_Dcheck_Function): Change Set_Subtype_Mark to
3976         Set_Result_Definition.
3977         (Build_Variant_Record_Equality): Change Subtype_Mark to
3978         Result_Definition.
3979         (Freeze_Enumeration_Type): Change Subtype_Mark to Result_Definition.
3980         (Predef_Spec_Or_Body): Change Subtype_Mark to Result_Definition.
3981         (Build_Assignment): Simplify the code that adds the run-time-check.
3982         (Expand_N_Object_Declaration): Code cleanup.
3983
3984         * exp_ch7.adb (Make_Clean): Select the appropriate type for locking
3985         entries when there is a protected type that implements a limited
3986         interface.
3987
3988         * exp_ch9.adb: Add package Select_Expansion_Utilities that contains
3989         common routines used in expansion of dispatching selects.
3990         (Add_Private_Declarations): Select the appropriate protection type when
3991         there is a protected type that implements a limited interface.
3992         (Build_Parameter_Block): Generate a wrapped parameter block.
3993         (Build_Protected_Subprogram_Body): Select the appropriate type for
3994         locking entries when there is a protected type that implements a
3995         limited interface.
3996         (Build_Wrapper_Spec): Set the flag and wrapped entity for procedures
3997         classified as entry wrappers.
3998         (Expand_N_Asynchronous_Select): Add support for expansion of dispatching
3999         asynchronous selects.
4000         (Expand_N_Conditional_Entry_Call): Add support for expansion of
4001         dispatching conditional selects.
4002         (Expand_N_Protected_Type_Declaration): Select the appropriate type for
4003         protection when there is a protected type that implements limited
4004         interfaces.
4005         (Expand_N_Timed_Entry_Call): Add support for expansion of dispatching
4006         timed selects.
4007         (Extract_Dispatching_Call): Extract the entity of the name of a
4008         dispatching call, the object parameter, actual parameters and
4009         corresponding formals.
4010         (Make_Initialize_Protection): Correct logic of protection initialization
4011         when there is a protected type that implements a limited interface.
4012         (Parameter_Block_Pack): Populate a wrapped parameter block with the
4013         values of actual parameters.
4014         (Parameter_Block_Unpack): Retrieve the values from a wrapped parameter
4015         block and assign them to the original actual parameters.
4016
4017         * exp_ch9.ads (Subprogram_Protection_Mode): New type.
4018         (Build_Protected_Sub_Specification): Change the type and name of the
4019         last formal to account for the increased variety of protection modes.
4020
4021         * einfo.ads, einfo.adb (Was_Hidden): New attribute. Present in all
4022         entities. Used to save the value of the Is_Hidden attribute when the
4023         limited-view is installed.
4024         (Is_Primitive_Wrapper, Set_Is_Primitive_Wrapper): Retrieve and change
4025         the attribute of procedures classified as entry wrappers.
4026         (Wrapped_Entity, Set_Wrapped_Entity): Retrieve and change the wrapped
4027         entity of a primitive wrapper.
4028         (Write_Entity_Flags): Output the name and value of the
4029         Is_Primitive_Wrapper attribute.
4030         (Write_Field27_Name): Output the name and entity of the field Wrapped_
4031         Entity.
4032         (Underlying_Type): If we have an incomplete entity that comes from
4033         the limited view then we return the Underlying_Type of its non-limited
4034         view if it is already available.
4035         (Abstract_Interface_Alias): Flag applies to all subrogram kinds,
4036         including operators.
4037         (Write_Field26_Name): Add entry for Overridden_Operation
4038         (Overridden_Operation): New attribute of functions and procedures.
4039
4040         * exp_disp.ads, exp_disp.adb (Default_Prim_Op_Position): Return a
4041         predefined position in the dispatch table for the primitive operations
4042         used in dispatching selects.
4043         (Init_Predefined_Interface_Primitives): Remove the hardcoded number of
4044         predefined primitive operations and replace it with
4045         Default_Prim_Op_Count.
4046         (Make_Disp_Asynchronous_Select_Spec, Make_Disp_Conditional_Select_Spec,
4047         Make_Disp_Get_Prim_Op_Kind_Spec, Make_Disp_Timed_Select_Spec): Update
4048         the names of the generated primitive operations used in dispatching
4049         selects.
4050         (Init_Predefined_Interface_Primitives): No need to inherit primitives in
4051         case of abstract interface types. They will be inherit by the objects
4052         implementing the interface.
4053         (Make_DT): There is no need to inherit the dispatch table of the
4054         ancestor interface for the elaboration of abstract interface types.
4055         The dispatch table will be inherited by the object implementing the
4056         interface.
4057         (Copy_Secondary_DTs): Add documentation.
4058         (Validate_Position): Improve this static check in case of
4059         aliased subprograms because aliased subprograms must have
4060         the same position.
4061         (Init_Predefined_Interface_Primitives): New subprogram that initializes
4062         the entries associated with predefined primitives of all the secondary
4063         dispatch tables.
4064         (Build_Anonymous_Access_Type): Removed.
4065         (Expand_Interface_Actuals): With the previous cleanup there is no need
4066         to build an anonymous access type. This allows further cleanup in the
4067         code generated by the expander.
4068         (Expand_Interface_Conversion): If the actual is an access type then
4069         build an internal function to handle the displacement. If the actual
4070         is null this function returns null because no displacement is
4071         required; otherwise performs a type conversion that will be
4072         expanded in the code that returns the value of the displaced actual.
4073         (Expand_Interface_Actuals): Avoid the generation of unnecessary type
4074         conversions that have no effect in the generated code because no
4075         displacement is required. Code cleanup; use local variables to
4076         avoid repeated calls to the subprogram directly_designated_type().
4077
4078         * exp_util.ads, exp_util.adb (Is_Predefined_Dispatching_Operation):
4079         Classify the primitive operations used in dispatching selects as
4080         predefined.
4081         (Implements_Limited_Interface): Determine whether some type either
4082         directly implements a limited interface or extends a type that
4083         implements a limited interface.
4084         (Build_Task_Image_Function): Change Subtype_Mark to Result_Definition.
4085         (Expand_Subtype_From_Expr): Do not build actual subtype if the
4086         expression is limited.
4087         (Find_Interface_Tag): Add code to handle class-wide types and
4088         entities from the limited-view.
4089
4090         * rtsfind.ads: Add entries in RE_Id and RE_Unit_Table for
4091         Get_Entry_Index, Get_Prim_Op_Kind, POK_Function, POK_Procedure,
4092         POK_Protected_Entry, POK_Protected_Function, POK_Protected_Procedure,
4093         POK_Task_Entry, POK_Task_Procedure, Prim_Op_Kind, Set_Entry_Index,
4094         Set_Prim_Op_Kind.
4095
4096         * sem_ch9.adb (Analyze_Triggering_Alternative): Check for legal type
4097         of procedure name or prefix that appears as a trigger in a triggering
4098         alternative.
4099
4100         * uintp.ads: Introduce constants Uint_11 and Uint_13.
4101
4102 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
4103
4104         * s-tataat.adb, a-tasatt.adb:
4105         Replace calls to Defer/Undefer_Abortion by Defer/Undefer_Abort.
4106
4107         * s-tasini.ads, s-tasini.adb (Defer_Abortion, Undefer_Abortion): Moved
4108         these procedures to body, and renamed Abort_Defer, Abort_Undefer.
4109         (Get_Exc_Stack_Addr, Set_Exc_Stack_Addr): Removed, no
4110         longer used.
4111
4112 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
4113             Jose Ruiz  <ruiz@adacore.com>
4114
4115         * s-taprop-vxworks.adb:
4116         Move with clauses outside Warnings Off now that dependent units are
4117         Preelaborate.
4118         (Initialize): Call Interrupt_Managemeent.Initialize to ensure proper
4119         initialization of this unit.
4120         (Specific): Add new procedures Initialize and Delete so that this
4121         package can be used for VxWorks 5.x and 6.x
4122         (ATCB_Key, ATCB_Key_Address): Moved to Specific package body to hide
4123         differences between VxWorks 5.x and 6.x
4124         Minor reformatting.
4125         (Timed_Delay): Remove calls to Defer/Undefer_Abort, now performed by
4126         caller.
4127         Use only Preelaborate-compatible constructs.
4128
4129         * s-tpopsp-vxworks.adb (ATBC_Key, ATCB_Key_Addr): Moved from
4130         Primitives.Operations.
4131         (Delete, Initialize): New procedures.
4132
4133         * s-osinte-vxworks.adb: Body used to handle differences between
4134         VxWorks 5.x and 6.x
4135         (kill, Set_Time_Slice, VX_FP_TASK): New functions.
4136
4137         * s-osinte-vxworks.ads: Minor reformatting.
4138         Add VxWworks 6.x specific functions (only called from VxWorks 6 files).
4139         (VX_FP_TASK): Now a function, to handle differences between VxWorks 5
4140         and 6.
4141         (Set_Time_Slice): New function, replacing kerneltimeSlice to share code
4142         between Vxworks 5 and 6.
4143         (taskLock, taskUnlock): Removeed, no longer used.
4144
4145         * adaint.c: The wait.h header is not located in the sys directory on
4146         VxWorks when using RTPs.
4147         (__gnat_set_env_value): Use setenv instead of putenv on VxWorks when
4148         using RTPs.
4149         (__gnat_dup): dup is available on Vxworks when using RTPs.
4150         (__gnat_dup2): dup2 is available on Vxworks when using RTPs.
4151
4152         * cal.c: Use the header time.h for Vxworks 6.0 when using RTPs.
4153
4154         * expect.c: The wait.h header is not located in the sys directory on
4155         VxWorks when using RTPs.
4156
4157 2005-09-01  Thomas Quinot  <quinot@adacore.com>
4158
4159         * g-soccon-vms.adb: Renamed to g-soccon-vms.ads
4160
4161         * g-soccon-vms.ads: Renamed from g-soccon-vms.adb
4162
4163         * g-soccon.ads, g-soccon-tru64.ads, g-soccon-aix.ads,
4164         g-soccon-darwin.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
4165         g-soccon-solaris.ads, g-soccon-mingw.ads, g-soccon-vxworks.ads,
4166         g-soccon-freebsd.ads: Add new constants:
4167          IP_MULTICAST_IF
4168          SO_RCVTIMEO/SO_SNDTIMEO
4169          IOV_MAX
4170
4171         * gen-soccon.c:
4172         Move all target-specific file inclusions and macro definitions to
4173         gsocket.h, in order to ensure that any C code in socket.c will see a
4174         set of constants that is consistent with the contents of g-soccon.ads.
4175
4176         * gsocket.h: Code imported from gen-soccon.c:
4177         Move all target-specific file inclusions and macro definitions to
4178         gsocket.h, in order to ensure that any C code in socket.c will see a set
4179         of constants that is consistent with the contents of g-soccon.ads.
4180         This change also makes gen-soccon self-contained (removing dependencies
4181         upon GCC internal headers).
4182
4183         * g-socket.adb (Send_Vector): Make calls to Writev at most IOV_MAX
4184         iovecs at a time.
4185         (To_Inet_Addr): Now a procedure instead of a function, more efficient.
4186
4187         * socket.c: Minor reformatting.
4188
4189 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
4190             Thomas Quinot  <quinot@adacore.com>
4191
4192         * fname-sf.adb, mlib-tgt.ads,
4193         back_end.adb, casing.adb, g-debpoo.adb, g-excact.adb, g-spipat.adb,
4194         g-spipat.ads, g-thread.adb, lib-list.adb, makeutl.adb, mlib.adb,
4195         osint.adb, par-ch10.adb, par-load.adb, prep.adb, prj.adb, prj-attr.ads,
4196         prj-env.ads, prj-err.adb, prj-err.ads, prj-ext.adb, prj-ext.ads,
4197         prj-makr.adb, prj-makr.ads, prj-pars.ads, prj-part.adb, prj-strt.adb,
4198         prj-tree.ads, prj-util.ads, sem_dist.adb, sinput-c.ads, sinput-l.ads,
4199         sinput-p.ads, styleg-c.ads, xr_tabls.adb, prj-attr-pm.ads,
4200         makegpr.adb: Remove redundant use_clauses.
4201
4202 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
4203
4204         * s-stoele.ads, s-stopoo.ads, s-stratt.ads, s-strops.ads, s-unstyp.ads,
4205         s-valboo.ads, s-valcha.ads, s-valdec.ads, s-valenu.ads, s-valint.ads,
4206         s-vallld.ads, s-vallli.ads, s-valllu.ads, s-valrea.ads, s-valuns.ads,
4207         s-valuti.ads, s-valwch.ads, s-veboop.ads, s-vector.ads, s-vercon.ads,
4208         s-wchcnv.ads, s-wchcon.ads, s-wchjis.ads, s-wchstw.ads, s-wchwts.ads,
4209         s-widboo.ads, s-widcha.ads, s-widenu.ads, s-widlli.ads, s-widllu.ads,
4210         s-widwch.ads, s-wwdcha.ads, s-wwdenu.ads, s-wwdwch.ads, system.ads,
4211         table.ads, types.ads, system-vms_64.ads, s-crtl-vms64.ads,
4212         s-addope.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
4213         s-vxwork-x86.ads, system-linux-ppc.ads, i-vxwork-x86.ads,
4214         a-numaux-darwin.ads, a-crbtgo.ads, a-crbtgk.ads, a-crbltr.ads,
4215         a-coprnu.ads, a-convec.ads, a-contai.ads, a-coinve.ads, a-cohata.ads,
4216         a-cohama.ads, a-cihama.ads, a-cidlli.ads, a-cdlili.ads,
4217         a-numaux-libc-x86.ads, a-numaux-vxworks.ads, system-linux-ia64.ads,
4218         system-freebsd-x86.ads, system-unixware.ads, system-lynxos-ppc.ads,
4219         system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
4220         s-vxwork-alpha.ads, system-aix.ads, system-vxworks-sparcv9.ads,
4221         system-solaris-x86.ads, system-irix-o32.ads, system-irix-n32.ads,
4222         s-parame-hpux.ads, system-hpux.ads, system-vxworks-m68k.ads,
4223         s-vxwork-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads,
4224         s-vxwork-mips.ads, system-os2.ads, system-interix.ads,
4225         s-vxwork-ppc.ads, system-solaris-sparc.ads, s-vxwork-sparcv9.ads,
4226         system-solaris-sparcv9.ads, s-parame-vms.ads, system-vms.ads,
4227         s-osinte-mingw.ads, system-mingw.ads, s-parame-vms-restrict.ads,
4228         system-vms-zcx.ads, s-parame-ae653.ads, system-vxworks-ppc.ads,
4229         s-parame-vxworks.ads, system-vxworks-alpha.ads, interfac-vms.ads,
4230         a-numaux-x86.ads, a-astaco.ads, a-chahan.ads, a-charac.ads,
4231         a-chlat1.ads, a-chlat9.ads, a-colire.adb, a-colire.ads, a-comlin.ads,
4232         a-cwila1.ads, a-cwila9.ads, ada.ads, a-decima.ads, a-exextr.adb,
4233         a-filico.ads, a-finali.ads, a-interr.ads, a-ioexce.ads, a-dynpri.ads,
4234         a-ngcefu.ads, a-ngcefu.adb, a-ngcoty.adb, a-ngcoty.ads, a-ngelfu.ads,
4235         a-nudira.adb, a-nudira.ads, a-nuflra.adb, a-numaux.ads, a-numeri.ads,
4236         a-reatim.adb, a-stmaco.ads, a-storio.ads, a-strbou.ads, a-stream.ads,
4237         a-strfix.ads, a-string.ads, a-strmap.ads, a-strsea.ads, a-strsup.ads,
4238         a-strunb.ads, a-stunau.ads, a-stwibo.ads, a-stwifi.ads, a-stwima.ads,
4239         a-stwise.ads, a-stwisu.ads, a-stwiun.ads, a-swmwco.ads, a-textio.ads,
4240         csets.ads, debug.ads, dec.ads, g-curexc.ads, get_targ.ads,
4241         g-except.ads, system-linux-hppa.ads, a-chacon.ads, a-widcha.ads,
4242         a-zchara.ads, system-hpux-ia64.ads, a-ciorma.ads, a-coorma.ads,
4243         a-ciormu.ads, a-coormu.ads, a-rbtgso.ads, a-chzla1.ads, a-chzla9.ads,
4244         a-stzbou.ads, a-stzfix.ads, a-stzmap.ads, a-stzsea.ads, a-stzsup.ads,
4245         a-stzunb.ads, a-swunau.ads, a-szunau.ads, gnat.ads, g-regpat.ads,
4246         g-speche.ads, g-spitbo.ads, g-table.ads, g-tasloc.ads, g-trasym.ads,
4247         i-c.ads, i-cpoint.ads, i-cpp.ads, i-cstrin.ads, i-fortra.ads,
4248         interfac.ads, i-os2err.ads, i-os2lib.ads, i-os2syn.ads, i-os2thr.ads,
4249         i-vxwork.ads, output.ads, s-arit64.ads, s-atacco.ads, s-boarop.ads,
4250         s-casuti.ads, s-crtl.ads, s-exctab.ads, s-exnint.ads, s-exnllf.ads,
4251         s-exnlli.ads, s-expint.ads, s-explli.ads, s-expllu.ads, s-expmod.ads,
4252         s-expuns.ads, s-fatflt.ads, s-fatgen.ads, s-fatlfl.ads, s-fatllf.ads,
4253         s-fatsfl.ads, s-finimp.ads, s-finroo.ads, s-fore.ads, s-geveop.ads,
4254         s-htable.ads, s-imgbiu.ads, s-imgboo.ads, s-imgcha.ads, s-imgdec.ads,
4255         s-imgenu.ads, s-imgint.ads, s-imgllb.ads, s-imglld.ads, s-imglli.ads,
4256         s-imgllu.ads, s-imgllw.ads, s-imgrea.ads, s-imguns.ads, s-imgwch.ads,
4257         s-imgwiu.ads, s-io.ads, s-maccod.ads, s-mantis.ads, s-memcop.ads,
4258         s-pack03.ads, s-pack05.ads, s-pack06.ads, s-pack07.ads, s-pack09.ads,
4259         s-pack10.ads, s-pack11.ads, s-pack12.ads, s-pack13.ads, s-pack14.ads,
4260         s-pack15.ads, s-pack17.ads, s-pack18.ads, s-pack19.ads, s-pack20.ads,
4261         s-pack21.ads, s-pack22.ads, s-pack23.ads, s-pack24.ads, s-pack25.ads,
4262         s-pack26.ads, s-pack27.ads, s-pack28.ads, s-pack29.ads, s-pack30.ads,
4263         s-pack31.ads, s-pack33.ads, s-pack34.ads, s-pack35.ads, s-pack36.ads,
4264         s-pack37.ads, s-pack38.ads, s-pack39.ads, s-pack40.ads, s-pack41.ads,
4265         s-pack42.ads, s-pack43.ads, s-pack44.ads, s-pack45.ads, s-pack46.ads,
4266         s-pack47.ads, s-pack48.ads, s-pack49.ads, s-pack50.ads, s-pack51.ads,
4267         s-pack52.ads, s-pack53.ads, s-pack54.ads, s-pack55.ads, s-pack56.ads,
4268         s-pack57.ads, s-pack58.ads, s-pack59.ads, s-pack60.ads, s-pack61.ads,
4269         s-pack62.ads, s-pack63.ads, s-parame.ads, s-pooglo.ads, s-pooloc.ads,
4270         s-poosiz.ads, s-powtab.ads, s-purexc.ads, s-sopco3.ads, s-sopco4.ads,
4271         s-sopco5.ads: Minor reformatting: reindent pragma Pure/Preelaborate
4272         and always use the no parameter form for consistency.
4273
4274         * gnat-style.texi: Document rules about Preelaborate/Pure pragmas.
4275
4276 2005-09-01  Robert Dewar  <dewar@adacore.com>
4277
4278         * binde.adb: Minor reformatting
4279         (Find_Elab_Order): Output warning if -p used with static elab order
4280
4281 2005-09-01  Robert Dewar  <dewar@adacore.com>
4282
4283         * checks.adb (Check_Needed): New procedure, deals with removing checks
4284         based on analysis of short-circuited forms. Also generates warnings for
4285         improper use of non-short-circuited forms.
4286         Code clean ups.
4287
4288 2005-09-01  Robert Dewar  <dewar@adacore.com>
4289
4290         * a-ztexio.adb, a-textio.adb, a-witeio.adb: Replace bad range checks
4291         with 'Valid tests.
4292
4293 2005-09-01  Robert Dewar  <dewar@adacore.com>
4294
4295         * errout.ads, errout.adb (Fix Error_Msg_F): Fix implementation to meet
4296         spec.
4297         Implement new insertion char < (conditional warning)
4298         * errutil.adb, erroutc.adb: Implement new insertion char <
4299         (conditional warning).
4300         * sem_elab.adb, prj-dect.adb, erroutc.ads, err_vars.ads
4301         (Error_Msg_Warn): New variable for < insertion char.
4302         * prj-nmsc.adb: Implement new errout insertion char < (conditional
4303         warning).
4304         (Check_For_Source): Change value of Source_Id only after the current
4305         source has been dealt with.
4306
4307 2005-09-01  Robert Dewar  <dewar@adacore.com>
4308             Doug Rupp  <rupp@adacore.com>
4309
4310         * exp_attr.adb: Handle vax fpt for 'Valid attribute
4311         * exp_vfpt.ads, exp_vfpt.adb: (Expand_Vax_Valid): New procedure
4312         * s-vaflop-vms-alpha.adb, s-vaflop.ads, s-vaflop.adb
4313         (Valid_D, Valid_F, Valid_G): New functions
4314
4315 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
4316             Hristian Kirtchev  <kirtchev@adacore.com>
4317             Javier Miranda  <miranda@adacore.com>
4318
4319         * exp_ch6.adb (Expand_Call): If an actual is a function call rewritten
4320         from object notation, the original node is unanalyzed and carries no
4321         semantic information, so that accessiblity checks must be performed on
4322         the type of the actual itself.
4323         (Expand_N_Subprogram_Declaration): Change last actual parameter for
4324         compatibility with Build_Protected_Sub_Specification.
4325         (Check_Overriding_Inherited_Interfaces): Add suport to handle
4326         overloaded primitives.
4327         (Register_Interface_DT_Entry): Use the new name of the formal
4328         the the calls to Expand_Interface_Thunk
4329
4330         * exp_dbug.ads: Augment comments on encoding of protected types to
4331         include the generation of dispatching subprograms when the type
4332         implements at least one interface.
4333
4334         * lib.ads: Extend information in Load_Stack to include whether a given
4335         load comes from a Limited_With_Clause.
4336
4337         * lib-load.adb (From_Limited_With_Chain): New predicate to determine
4338         whether a potential circularity is harmless, because it includes units
4339         loaded through a limited_with clause. Extends previous treatment which
4340         did not handle properly arbitrary combinations of limited and
4341         non-limited clauses.
4342
4343 2005-09-01  Nicolas Setton  <setton@adacore.com>
4344
4345         * exp_dbug.adb (Get_Encoded_Name): Fixed bug that caused biaised types
4346         to be encoded as typ___XBLU_lowerbound__upperbound instead of
4347         typ___XB_lowerbound__upperbound.
4348
4349 2005-09-01  Thomas Quinot  <quinot@adacore.com>
4350
4351         * exp_dist.adb (Add_RACW_TypeCode, Add_RAS_TypeCode): Do not generate
4352         dummy access formal for RACW/RAS TypeCode TSS.
4353         (Build_TypeCode_Call): Do not generate dummy null access actual for
4354         calls to the TypeCode TSS.
4355
4356 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
4357
4358         * exp_intr.adb (Expand_Source_Name): For Enclosing_Entity, generate
4359         fully qualified name, to distinguish instances with the same local name.
4360
4361         * g-souinf.ads (Enclosing_Entity): Document that entity name is now
4362         fully qualified.
4363
4364 2005-09-01  Robert Dewar  <dewar@adacore.com>
4365
4366         * exp_pakd.adb (Create_Packed_Array_Type): Properly handle very large
4367         packed arrays.
4368
4369 2005-09-01  Jerome Lambourg  <lambourg@adacore.com>
4370
4371         * g-expect.adb (Non_Blocking_Spawn): Initialize the filters field to
4372         (Free): New deallocation procedure for filter elements
4373         (Close): Deallocate any existing filter for the concerned connection
4374
4375 2005-09-01  Laurent Pautet  <pautet@adacore.com>
4376
4377         * g-pehage.ads, g-pehage.adb (Select_Char_Position): When no character
4378         position set is provided, we compute one in order to reduce the maximum
4379         length of the keys.  This computation first selects a character
4380         position between 1 and the minimum length of the keys in order to
4381         avoid reducing one of the keys to an empty string.
4382         (Initialize, Compute): When the ratio V to K is too low, the algorithm
4383         does not converge. The initialization procedure now comes with a
4384         maximum number of iterations such that when exceeded, an exception is
4385         raised in Compute. The user can initialize this ratio to another value
4386         and try again
4387         Reformating and updated headers.
4388
4389 2005-09-01  Javier Miranda  <miranda@adacore.com>
4390
4391         * itypes.ads, itypes.adb (Create_Null_Excluding_Itype): New subprogram
4392         that given an entity T creates and returns an Itype that duplicates the
4393         contents of T. The returned Itype has the null-exclusion
4394         attribute set to True, and its Etype attribute references T
4395         to keep the association between the two entities.
4396         Update copyright notice
4397
4398         * sem_aggr.adb (Check_Can_Never_Be_Null,
4399         Aggregate_Constraint_Checks, Resolve_Aggregate,
4400         Resolve_Array_Aggregate, Resolve_Record_Aggregate): Code cleanup.
4401
4402         * sem_ch5.adb (Analyze_Assignment): Code cleanup.
4403
4404 2005-09-01  Gary Dismukes  <dismukes@adacore.com>
4405             Robert Dewar  <dewar@adacore.com>
4406             Hristian Kirtchev  <kirtchev@adacore.com>
4407
4408         * layout.adb (SO_Ref_From_Expr): Change Subtype_Mark to
4409         Result_Definition.
4410
4411         * par-ch6.adb (P_Subprogram): Handle parsing of Access_Definitions in
4412         function specs.
4413         Call Set_Result_Definition instead of Set_Subtype_Mark.
4414         (P_Subprogram_Specification): Add parsing of anonymous access result
4415         plus null exclusions. Call Set_Result_Definition instead of
4416         Set_Subtype_Mark.
4417
4418         * par-ch3.adb: Add support for LIMITED NEW for Ada 2005 AI-419
4419         (P_Access_Type_Definition): Add parsing for an anonymous access result
4420         subtype, plus parsing for null exclusions. Call Set_Result_Definition
4421         instead of Set_Subtype_Mark.
4422
4423         * sinfo.adb: Add support for LIMITED NEW for Ada 2005 AI-419
4424         (Null_Exclusion_Present): Allow this flag for N_Function_Specification.
4425         (Result_Definition): New function for N_Function_Specifications.
4426         (Subtype_Mark): No longer allowed for N_Access_Function_Definition and
4427         N_Function_Specification.
4428         (Set_Null_Exclusion_Present): Allow this flag for
4429         N_Function_Specification.
4430         (Set_Result_Definition): New procedure for N_Function_Specifications.
4431         (Set_Subtype_Mark): No longer allowed for N_Access_Function_Definition
4432         and N_Function_Specification.
4433
4434         * sinfo.ads: Update grammar rules for 9.7.2: Entry_Call_Alternative,
4435         Procedure_Or_Entry_Call; 9.7.4: Triggering_Statement.
4436         Add support for LIMITED NEW for Ada 2005 AI-419
4437         Update the syntax of PARAMETER_AND_RESULT_PROFILE to reflect the new
4438         syntax for anonymous access results.
4439         Replace Subtype_Mark field by Result_Definition in
4440         N_Function_Specification and N_Access_Definition specs.
4441         Add Null_Exclusion_Present to spec of N_Function_Specification.
4442         (Result_Definition): New function for N_Function_Specification and
4443         N_Access_Function_Definition.
4444         (Set_Result_Definition): New procedure for N_Function_Specification and
4445         N_Access_Function_Definition.
4446
4447         * sprint.adb (S_Print_Node_Actual): Change Subtype_Mark calls to
4448         Result_Definition for cases of N_Access_Function_Definition and
4449         N_Function_Specification.
4450         Print "not null" if Null_Exclusion_Present on N_Function_Specification.
4451
4452 2005-09-01  Vincent Celier  <celier@adacore.com>
4453
4454         * lib-writ.adb: Update Copyright notice
4455         (Write_With_Lines): On platforms where file names are case-insensitive,
4456         record the file names in lower case.
4457         (Write_ALI): For D lines, on platforms where file names are
4458         case-insensitive, record the file names in lower case.
4459
4460 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
4461             Emmanuel Briot  <briot@adacore.com>
4462
4463         * lib-xref.adb (Output_Overridden_Op): Display information on
4464         overridden operation.
4465
4466         * lib-xref.ads: Add documentation on overridden operations.
4467
4468         * ali.ads (Xref_Entity_Record): Add support for storing the overriding
4469         information.
4470
4471         * ali.adb (Get_Typeref): New subprogram. Adds support for parsing the
4472         overriding entity information.
4473
4474 2005-09-01  Vincent Celier  <celier@adacore.com>
4475
4476         * mlib-prj.adb (Copy_Interface_Sources): Copy all interface sources,
4477         including those that are inherited.
4478
4479 2005-09-01  Robert Dewar  <dewar@adacore.com>
4480
4481         * opt.ads, opt.adb: Add new switches Debug_Pragmas_Enabled[_Config]
4482
4483         * par-prag.adb: Implement new pragma Debug_Policy
4484
4485         * sem_prag.adb Implement new pragma Debug_Policy
4486         (Analyze_Pragma, case Pack): do not let pragma Pack override an explicit
4487         Component_Size attribute specification. Give warning for ignored pragma
4488         Pack.
4489
4490         * snames.h, snames.ads, snames.adb: Introduce entries in
4491         Preset_Names for Name_Disp_Asynchronous_Select,
4492         Name_Disp_Conditional_Select, Name_Disp_Get_Prim_Op_Kind,
4493         Name_Disp_Timed_Select.
4494         New pragma Debug_Policy
4495
4496         * switch-c.adb (Scan_Front_End_Switches): Set Ada 2005 mode
4497         explicitly.
4498         Switch -gnata also sets Debug_Pragmas_Enabled
4499
4500         * sem.adb, par.adb (Set_Opt_Config_Switch): Add parameter Main_Unit to
4501         handle an explicit -gnata when compiling predefined files.
4502
4503 2005-09-01  Vincent Celier  <celier@adacore.com>
4504
4505         * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Do not add the object
4506         directories of projects that have no Ada sources.
4507
4508 2005-09-01  Robert Dewar  <dewar@adacore.com>
4509
4510         * scng.adb (Check_End_Of_Line): Count characters, rather than bytes
4511         (makes a difference for wide characters)
4512
4513         * widechar.adb, widechar.ads:
4514         Add Wide_Char_Byte_Count feature to count chars vs bytes
4515
4516 2005-09-01  Thomas Quinot  <quinot@adacore.com>
4517             Ed Schonberg  <schonberg@adacore.com>
4518             Robert Dewar  <dewar@adacore.com>
4519
4520         * sem_attr.adb (Resolve_Attribute, case 'Address): For an illegal
4521         'Address attribute reference with an overloaded prefix, use the
4522         location of the prefix (not the location of the attribute reference) as
4523         the error location.
4524         (Analyze_Attribute, case 'Size): The name of an enumeration literal, or
4525         a function renaming thereof, is a valid prefix for 'Size (where it is
4526         intepreted as a function call).
4527         (Statically_Denotes_Entity): New predicate to determine whether the
4528         prefix of an array attribute can be considered static.
4529
4530         PR ada/9087
4531         (Eval_Attr): Fix failure to evaluate Component_Size for
4532         unconstrained arrays (resulted in wrong value in packed case, since
4533         back end cannot handle this case)
4534
4535 2005-09-01  Robert Dewar  <dewar@adacore.com>
4536
4537         * sem_cat.adb (Check_Categorization_Dependencies): Add more detail to
4538         error msgs for most common cases.
4539         Use new errout insertion char < (conditional warning)
4540
4541 2005-09-01  Javier Miranda  <miranda@adacore.com>
4542             Ed Schonberg  <schonberg@adacore.com>
4543
4544         * sem_ch10.adb (In_Chain): Moved from the scope of a subprogram to
4545         become local to the whole package.
4546         (Install_Limited_Withed_Unit): Instead of unchaining real entities if
4547         the package was already analyzed the new algorithm "replaces" the
4548         real entities by the shadow ones. This is required to ensure that
4549         the order of these entities in the homonym chains does not change;
4550         otherwise we can have undefined references at linking time because
4551         in case of conflicts the external name of the entities will have
4552         a suffix that depends on the order of the entities in the chain.
4553         (Remove_Limited_With_Clause): Complementary code that completes the
4554         new algorithm and replaces the shadow entities by the real ones.
4555         (Install_Limited_Withed_Unit): When unchaining entities before the
4556         installation of the shadow entities, only regular entities of the
4557         public part must be taken into account. This is required to
4558         keep this routine in synch with the work done by Remove_Limited_
4559         With_Clause
4560         (Install_Limited_With_Clause): Introduce implicit limited_with_clause
4561         even if unit is analyzed, because the analysis of the unit is
4562         idempotent in any case, and the limited view of the unit may have to
4563         be installed for proper visibility.
4564         (Expand_Limited_With_Clause): Even if the unit in the implicit
4565         with_clause has been analyzed already, a limited view of the package
4566         must be built for the current context, if it does not exist yet.
4567
4568 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
4569             Javier Miranda  <miranda@adacore.com>
4570             Gary Dismukes  <dismukes@adacore.com>
4571
4572         * sem_ch12.adb (Instantiate_Subprogram_Body): When creating the
4573         defining entity for the instance body, make a new defining identifier
4574         rather than copying the entity of the spec, to prevent accidental
4575         sharing of the entity list.
4576         (Check_Private_View): When exchanging views of private types, build the
4577         list of exchanged views as a stack, to ensure that on exit the exchanges
4578         are undone in the proper order.
4579         (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation):
4580         Restore the compilation environment in case of instantiation_error.
4581         (Analyze_Generic_Subprogram_Declaration): Handle creation of type entity
4582         for an anonymous access result.
4583         (Instantiate_Generic_Subprogram): Subtype_Mark => Result_Definition
4584         (Formal_Entity): Handle properly the case of a formal package that
4585         denotes a generic package renaming.
4586
4587 2005-09-01  Thomas Quinot  <quinot@adacore.com>
4588
4589         * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Reject the
4590         clause if the array aggregate is surrounded by parentheses.
4591
4592 2005-09-01  Cyrille Comar  <comar@adacore.com>
4593             Gary Dismukes  <dismukes@adacore.com>
4594             Ed Schonberg  <schonberg@adacore.com>
4595             Javier Miranda  <miranda@adacore.com>
4596
4597         * sem_ch3.ads, sem_ch3.adb (Analyze_Object_Declaration): Go to the
4598         underlying type
4599         to check if a type is Constrained in cases related to code generation
4600         (rather than semantic checking) since otherwise we do not generate
4601         similar code for mutable private types depending if their
4602         discriminants are visible or not.
4603         (Check_Abstract_Overriding): Do not complain about failure to override
4604         the primitive operations used in dispatching selects since they will
4605         always be overriden at the freeze point of the type.
4606         (Access_Definition): Separate out handling for resetting the scope
4607         of an anonymous access function result type. Retrieve the scope
4608         of the associated function rather than using Current_Scope, which
4609         does not have a consistent value (depends on whether we're in the
4610         middle of analyzing formal parameters). Add ??? comment about
4611         finding a cleaner way to handle the special cases of scope setting.
4612         (Process_Incomplete_Dependents): A protected operation is never a
4613         dispatching operation (only its wrapper may be).
4614         (Build_Derived_Record_Type): In case of tagged private types that
4615         implement interfaces add derivation of predefined primitive
4616         operations.
4617         (Derive_Subprograms): Replace the Is_Interface_Derivation parameter
4618         by two parameters that are used in case of derivation from abstract
4619         interface types: No_Predefined_Prims is used to avoid the derivation
4620         of predefined primitives from the interface, and Predefined
4621         Prims_Only is used to complete the derivation predefined primitives
4622         in case of private tagged types implementing interfaces.
4623         Fix typo in comments
4624         (Find_Interface_In_Descendant): Protect the frontend against
4625         wrong code with large circularity chains.
4626         (Is_Private_Overriding): Add support for entities overriding interface
4627         subprograms. The test failed because Entities associated with overriden
4628         interface subprograms are always marked as hidden (and used to build
4629         the secondary dispatch table); in this case the overriden entity is
4630         available through the field abstract_interface_alias (cf. override_
4631         dispatching_operation)
4632         (Access_Definition): Set the scope of the type to Current_Scope for the
4633         case of a function with an anonymous access result type.
4634         (Access_Subprogram_Declaration): Handle creation of the type entity for
4635         an access-to-function type with an anonymous access result.
4636         (Check_Anonymous_Access_Types): Change Subtype_Mark to Result_Definition
4637         in handling for N_Access_Function_Definition.
4638         (Analyze_Subtype_Declaration): Modify the text of error message.
4639         (Derived_Type_Declaration): Modify the text of error message.
4640         (Process_Subtype): Modify the text of error message plus cleanup
4641         of one redundant error message.
4642         (Analyze_Component_Declaration): Code cleanup.
4643         (Analyze_Object_Declaration): Code cleanup.
4644         (Analyze_Subtype_Declaration): Propagate the null-exclusion
4645         attribute in case of access types. Code cleanup.
4646         (Array_Type_Declaration): Code cleanup.
4647         (Process_Discriminants): Create the new null-excluding itype
4648         if required. Code cleanup.
4649         (Process_Subtype): Create the new null-excluding itype if
4650         required. Code cleanup.
4651         (Build_Derived_Record_Type): Code cleanup to avoid calling
4652         twice the subprogram derive_subprograms in case of private
4653         types that implement interfaces. In this particular case the
4654         subprogram Complete_Subprograms_Derivation already does the
4655         job associated with the second call.
4656
4657         * exp_strm.adb (Build_Elementary_Input_Call): Add an explicit
4658         conversion to the full view when generating an operation for a
4659         discriminant whose type may currently be private.
4660
4661 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
4662             Javier Miranda  <miranda@adacore.com>
4663
4664         * sem_ch4.adb (Transform_Object_Operation): In a context off the form
4665         V (Obj.F), the rewriting does not involve the indexed component, but
4666         only the selected component itself.
4667         Do not apply the transformation if the analyzed node is an actual of a
4668         call to another subprogram.
4669         (Complete_Object_Operation): Retain the entity of the
4670         dispatching operation in the selector of the rewritten node. The
4671         entity will be used in the expansion of dispatching selects.
4672         (Analyze_One_Call): Improve location of the error message associated
4673         with interface.
4674         (Analyze_Selected_Component): No need to resolve prefix when it is a
4675         function call, resolution is done when parent node is resolved, as
4676         usual.
4677         (Analyze_One_Call): Add a flag to suppress analysis of the first actual,
4678         when attempting to resolve a call transformed from its object notation.
4679         (Try_Object_Operation, Transform_Object_Operastion): Avoid makind copies
4680         of the argument list for each interpretation of the operation.
4681         (Try_Object_Operation): The designated type of an access parameter may
4682         be an incomplete type obtained through a limited_with clause, in which
4683         case the primitive operations of the type are retrieved from its full
4684         view.
4685         (Analyze_Call): If this is an indirect call, and the return type of the
4686         access_to_subprogram is incomplete, use its full view if available.
4687
4688 2005-09-01  Javier Miranda  <miranda@adacore.com>
4689             Gary Dismukes  <dismukes@adacore.com>
4690
4691         * sem_ch6.ads, sem_ch6.adb (Check_Conformance): In case of anonymous
4692         access types the null-exclusion and access-to-constant attributes must
4693         also match.
4694         (Analyze_Return_Statement): When the result type is an anonymous access
4695         type, apply a conversion of the return expression to the access type
4696         to ensure that appropriate accessibility checks are performed.
4697         (Analyze_Return_Type): For the case of an anonymous access result type,
4698         generate the Itype and set Is_Local_Anonymous_Access on the type.
4699         Add ??? placeholder for check to disallow returning a limited object
4700         in Ada 2005 unless it's an aggregate or a result of a function call.
4701         Change calls from Subtype_Mark to Result_Definition.
4702         (Analyze_Subprogram_Body): Change formal Subtype_Mark to
4703         Result_Definition in call to Make_Function_Specification.
4704         (Build_Body_To_Inline): Change Set_Subtype_Mark to
4705         Set_Result_Definition.
4706         (Make_Inequality_Operator): Change formal Subtype_Mark to
4707         Result_Definition in call to Make_Function_Specification.
4708         (Process_Formals): Create the new null-excluding itype if required.
4709         (New_Overloaded_Entity): For an entity overriding an interface primitive
4710         check if the entity also covers other abstract subprograms in the same
4711         scope. This is required to handle the general case, that is, overriding
4712         other interface primitives and overriding abstract subprograms inherited
4713         from some abstract ancestor type.
4714         (New_Overloaded_Entity): For an overriding entity that comes from
4715         source, note the operation that it overrides.
4716         (Check_Conformance, Type_Conformant): Addition of one new formal
4717         to skip controlling formals in the analysis. This is used to
4718         handle overloading of abstract interfaces.
4719         (Base_Types_Match): Add missing case for types imported from
4720         limited-with clauses
4721         (New_Overloaded_Entity): Add barrier to protect the use of
4722         the "alias" attribute.
4723
4724 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
4725
4726         * sem_ch8.adb (Analyze_Renamed_Entry): For a renaming_as_declaration,
4727         verify that the procedure and the entry are mode conformant.
4728         (Analyze_Subprogram_Renaming): Emit a warning if an operator is renamed
4729         as a different operator, which is often a cut-and-paste error.
4730
4731 2005-09-01  Javier Miranda  <miranda@adacore.com>
4732             Ed Schonberg  <schonberg@adacore.com>
4733
4734         * sem_disp.adb (Check_Controlling_Formals): Anonymous access types
4735         used in controlling parameters exclude null because it is necessary to
4736         read the tag to dispatch, and null has no tag.
4737         (Override_Dispatching_Operation): If the previous operation is inherited
4738         from an interface, it becomes hidden  and does not participate in later
4739         name resolution.
4740
4741 2005-09-01  Javier Miranda  <miranda@adacore.com>
4742             Ed Schonberg  <schonberg@adacore.com>
4743             Gary Dismukes  <dismukes@adacore.com>
4744
4745         * sem_res.adb (Resolve_Membership_Op): In case of the membership test
4746         "Iface_CW_Typ in T'Class" we have nothing else to do in the frontend;
4747         the expander will generate the corresponding run-time check to evaluate
4748         the expression.
4749         (Resolve_Call): Check for legal type of procedure name or prefix that
4750         appears as a trigger in a triggering alternative.
4751         (Valid_Conversion): If expression is ambiguous and the context involves
4752         an extension of System, remove System.Address interpretations.
4753         (Resolve_Qualified_Expression): Reject the case of a specific-type
4754         qualification applied to a class-wide argument. Enhance comment
4755         to explain checking of Original_Node.
4756         (Resolve_Type_Conversion): The location of the error message was not
4757         general enough to handle the general case and hence it has been removed.
4758         In addition, this patch improves the text of the message.
4759         (Resolve_Type_Conversion): Add missing support for access to interface
4760         types.
4761         (Resolve_Type_Conversion): If the target is a class-wide interface type,
4762         do not expand if the expression is the actual in a call, because proper
4763         expansion will take place when the call itself is expanded.
4764         (Resolve_Allocator): If the context is an unchecked conversion, the
4765         allocator inherits its storage pool, if any, from the target type of
4766         the conversion.
4767
4768 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
4769             Javier Miranda  <miranda@adacore.com>
4770
4771         * sem_type.adb (Add_One_Interp): If a candidate operation is an
4772         inherited interface operation that has an implementation, use the
4773         implementation to avoid spurious ambiguities.
4774         (Interface_Present_In_Ancestor): In case of concurrent types we can't
4775         use the Corresponding_Record_Typ attribute to look for the interface
4776         because it is set by the expander (and hence it is not always
4777         available). For this reason we traverse the list of interfaces
4778         (available in the parent of the concurrent type).
4779         (Interface_Present_In_Ancestor): Handle entities from the limited view
4780
4781 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
4782
4783         * sem_util.ads, sem_util.adb (Gather_Components): Omit interface tags
4784         from the list of required components.
4785         (Is_Controlling_Limited_Procedure): Determine whether an entity is a
4786         primitive procedure of a limited interface with a controlling first
4787         parameter.
4788         (Is_Renamed_Entry): Determine whether an entry is a procedure renaming
4789         of an entry.
4790         (Safe_To_Capture_Value): A value (such as non_null) is not safe to
4791         capture if it is generated in the second operand of a short-circuit
4792         operation.
4793         Do not capture values for variables with address clauses.
4794         (Is_Object_Reference): Treat a function call as an object reference only
4795         if its type is not Standard_Void_Type.
4796
4797 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
4798
4799         * sem_warn.adb (Warn_On_Known_Condition): Refine warning when applied
4800         to a variable that is statically known to be constant.
4801
4802 2005-09-01  Geert Bosch  <bosch@adacore.com>
4803             Robert Dewar  <dewar@adacore.com>
4804
4805         * ttypef.ads (VAXDF_Safe_First): Use correct value for constant.
4806         (VAXGF_Safe_First): Idem.
4807
4808 2005-09-01  Robert Dewar  <dewar@adacore.com>
4809             Arnaud Charlet  <charlet@adacore.com>
4810
4811         * g-dirope.ads: Minor reformatting
4812         Document that bounds of result of Base_Name match the input index
4813         positions.
4814         Add documentation on environment variable syntax for Expand_Path
4815
4816         * gnat_ugn.texi: Update documentation to include mention of -m switches
4817         Document new treatment of wide characters in max line length
4818         style check.
4819         Remove -gnatL/-gnatZ switches, no longer used.
4820         Add note on pragmas Assertion_Policy and Debug_Policy in discussion
4821         of -gnata switch.
4822
4823         * gnat_rm.texi: Add doc for two argument form of pragma
4824         Float_Representation.
4825         Add documentation for pragma No_Strict_Aliasing
4826         Add note that explicit component clause overrides pragma Pack.
4827         Add documentation of pragma Debug_Policy
4828
4829 2005-09-01  Matthew Heaney  <heaney@adacore.com>
4830
4831         * a-cihase.adb, a-coorse.ads, a-coorse.adb, a-cohama.adb,
4832         a-ciorse.ads, a-ciorse.adb, a-cihama.adb, a-cdlili.adb,
4833         a-cidlli.adb, a-chtgop.adb, a-cihase.adb, a-cihase.ads,
4834         a-cohase.adb, a-cohase.adb, a-cohase.ads: Synchronized with latest
4835         draft (Draft 13, August 2005) of Ada Amendment 1.
4836
4837 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
4838
4839         * Makefile.in: Adjust the libgnat target pairs for Xscale to ARM.
4840         Note that the platform-specific version of g-soccon.ads for VMS is now
4841         named g-soccon-vms.ads (it was previously g-soccon-vms.adb, although it
4842         really is a package spec).
4843         Replace s-taspri-linux.ads by s-taspri-posix.ads
4844         Remove references to s-mastop-x86.adb
4845
4846         * system-vxworks-xscale.ads: Removed, no longer used.
4847         * s-vxwork-xscale.ads: Removed, no longer used.
4848
4849 2005-09-01  Robert Dewar  <dewar@adacore.com>
4850
4851         * a-dirval-mingw.adb, a-direct.adb, a-coinve.adb,
4852         g-dynhta.adb, g-dynhta.ads, cstand.adb, exp_smem.adb, g-debuti.ads,
4853         g-dirope.adb, g-table.adb, lib-sort.adb, sem_maps.adb,
4854         exp_fixd.adb, exp_aggr.adb, a-intnam-mingw.ads, a-intnam-vxworks.ads,
4855         g-arrspl.adb, g-arrspl.ads, g-awk.adb, g-awk.ads, g-boubuf.ads,
4856         g-boubuf.ads, g-boubuf.ads, g-bubsor.ads, g-bubsor.adb, g-busora.adb,
4857         g-busora.ads, g-busorg.adb, g-busorg.ads, g-calend.adb, g-calend.ads,
4858         g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads, g-cgi.adb,
4859         g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads, g-cgideb.adb, g-cgideb.ads,
4860         g-comlin.adb, g-comver.ads, g-semaph.ads, g-socthi.ads,
4861         sem_ch7.adb, a-direio.adb, a-caldel.ads, i-cstrea-vms.adb,
4862         a-ztedit.adb, a-ztenau.adb, g-socthi-vms.adb, g-socthi-vms.ads,
4863         g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vxworks.ads,
4864         a-intnam-irix.ads, a-intnam-irix.ads, a-intnam-hpux.ads,
4865         a-intnam-os2.ads, a-intnam-os2.ads, a-caldel-vms.adb, a-calend-vms.adb,
4866         a-calend-vms.ads, g-heasor.adb, g-heasor.ads, g-hesora.adb,
4867         g-hesora.ads, g-hesorg.adb, g-hesorg.ads, g-htable.adb, g-htable.ads,
4868         g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads, g-locfil.ads,
4869         g-memdum.adb, g-memdum.ads, g-traceb.adb, g-traceb.ads, i-cobol.adb,
4870         i-cobol.ads, i-cstrea.ads, i-cstrin.adb, a-wtedit.adb, a-tifiio.adb,
4871         a-wtenau.adb, a-wtenau.adb, a-teioed.adb: Minor reformatting
4872
4873 2005-08-29  Arnaud Charlet  <charlet@adacore.com>
4874
4875         PR ada/23187
4876         * adaint.c
4877         (GNAT_MAXPATH_LEN): Use default value if MAXPATHLEN is undefined.
4878
4879 2005-08-29  Arnaud Charlet  <charlet@adacore.com>
4880             Doug Rupp  <rupp@adacore.com>
4881
4882         * s-stalib.adb: Add missing pragma Warnings (On) to reenable Warnings
4883         when needed.
4884         (Inside_Elab_Final_Code): Moved to init.c to avoid having to keep
4885         this code in the GNAT run-time.
4886
4887         * decl.c, fe.h: Replace GCC_ZCX by Back_End_Exceptions.
4888
4889         PR ada/21053
4890         * init.c (__gnat_error_handler [many]): Mark "msg" as const
4891         (__gnat_error_handler [HPUX]): Mark siginfo parameter as unused
4892
4893         (__gnat_inside_elab_final_code): Moved here from
4894         Standard_Library and only defined for the compiler.
4895         __gnat_error_handler [VMS]: Adjust sigargs to account for PC & PSL.
4896         (__gnat_inum_to_ivec): Do not define this function on VxWorks when
4897         using RTPs because directly vectored Interrupt routines are not
4898         supported on this configuration.
4899         (getpid): Do not redefine this function on VxWorks when using RTPs
4900         because this primitive is well supported by the RTP libraries.
4901         (copy_msg): Correct the code that checks for buffer overflow.
4902         Discovered during code reading.
4903
4904 2005-08-29  Olivier Hainque  <hainque@adacore.com>
4905
4906         * decl.c (gnat_to_gnu_entity) <E_Variable>: When allocating storage for
4907         a library level mutable variable with an initializer, tell
4908         build_allocator to ignore the initializer's size. It may not be large
4909         enough for all the values that might be assigned to the variable later
4910         on.
4911
4912 2005-08-29  Arnaud Charlet  <charlet@adacore.com>
4913             Eric Botcazou  <ebotcazou@adacore.com>
4914
4915         * trans.c: Protect < in error msg with quote
4916         Replace GCC_ZCX by Back_End_Exceptions.
4917         (addressable_p) <COMPONENT_REF>: Also return 1 if the field
4918         has been sufficiently aligned in the record.
4919
4920 2005-08-15  James E. Wilson  <wilson@specifix.com>
4921
4922         * system-linux-alpha.ads: Change ia64 to alpha.
4923
4924 2005-08-01  Kazu Hirata  <kazu@codesourcery.com>
4925
4926         * decl.c, utils.c: Fix comment typos.
4927
4928 2005-07-29  Kazu Hirata  <kazu@codesourcery.com>
4929
4930         * decl.c, init.c, initialize.c: Fix comment typos.
4931
4932 2005-07-20  Giovanni Bajo  <giovannibajo@libero.it>
4933
4934         Make CONSTRUCTOR use VEC to store initializers.
4935         * decl.c (gnat_to_gnu_entity): Update to cope with VEC in
4936         CONSTRUCTOR_ELTS.
4937         * trans.c (extract_values): Likewise.
4938         * utils.c (convert, remove_conversions): Likewise.
4939         * utils2.c (contains_save_expr_p, build_binary_op, build_unary_op,
4940         gnat_build_constructor): Likewise.
4941
4942 2005-07-09  Andrew Pinski  <pinskia@physics.uc.edu>
4943
4944         * decl.c (components_to_record): Use DECL_FCONTEXT instead of
4945         DECL_SECTION_NAME.
4946         (compare_field_bitpos): Likewise.
4947
4948 2005-07-09  Andrew Pinski  <pinskia@physics.uc.edu>
4949
4950         * utils.c (create_var_decl): Only set DECL_COMMON on
4951         VAR_DECLs. Only set SET_DECL_ASSEMBLER_NAME on
4952         VAR_OR_FUNCTION_DECL_P.
4953
4954 2005-07-08  Daniel Berlin  <dberlin@dberlin.org>
4955
4956         * utils.c (create_param_decl): DECL_ARG_TYPE_AS_WRITTEN is
4957         removed.
4958
4959 2005-07-07  Pascal Obry  <obry@adacore.com>
4960
4961         * g-socthi-mingw.adb (C_Inet_Addr): New body used to convert the
4962         returned type on Windows.
4963
4964         * g-socthi-mingw.ads (C_Inet_Addr): Remove pragma Import for this
4965         routine.
4966
4967         * g-socket.adb (Inet_Addr): Check for empty Image and raises an
4968         exception in this case.
4969         Simplify the code as "Image (Image'Range)" = "Image".
4970
4971 2005-07-07  Vincent Celier  <celier@adacore.com>
4972
4973         * bindgen.adb (Gen_Output_File_C): When switch -a was specified, put
4974         the destructor/constructor attributes for <lib>final/<lib>init.
4975
4976         * gnatbind.adb (Gnatbind): Allow -a to be used in conjunction with -C
4977
4978 2005-07-07  Eric Botcazou  <ebotcazou@adacore.com>
4979
4980         * decl.c (gnat_to_gnu_entity) <E_Procedure>: Do not strip the padding
4981         type if the parameter is not passed by copy but reference by default.
4982
4983 2005-07-07  Javier Miranda  <miranda@adacore.com>
4984
4985         * exp_ch3.adb (Build_Record_Init_Proc/Freeze_Record_Type):
4986         Reimplementation of the support for abstract interface types in order
4987         to leave the code more clear and easy to maintain.
4988
4989         * exp_ch6.adb (Freeze_Subprogram): Reimplementation of the support for
4990         abstract interface types in order to leave the code clearer and easier
4991         to maintain.
4992
4993         * exp_disp.ads, exp_disp.adb (Fill_DT_Entry): Part of its functionality
4994         is now implemented by the new subprogram Fill_Secondary_DT_Entry.
4995         (Fill_Secondary_DT_Entry): Generate the code necessary to fill the
4996         appropriate entry of the secondary dispatch table.
4997         (Make_DT): Add code to inherit the secondary dispatch tables of
4998         the ancestors.
4999
5000         * exp_util.adb (Find_Interface_Tag/Find_Interface_ADT): Instead of
5001         implementing both functionalities by means of a common routine, each
5002         routine has its own code.
5003
5004 2005-07-07  Javier Miranda  <miranda@adacore.com>
5005
5006         * freeze.adb (Freeze_Entity): Check wrong uses of tag incomplete types.
5007
5008         * par-ch3.adb (P_Type_Declaration): Give support to tagged incomplete
5009         types:
5010         --
5011           type DEFINING_IDENTIFIER [DISCRIMINANT_PART] [IS TAGGED];
5012         --
5013
5014         * sem_attr.adb (Check_Not_Incomplete_Type): Additional checks for wrong
5015         use of tag incomplete types.
5016
5017         * sem_ch3.adb (Analyze_Incomplete_Type): Add mininum decoration to
5018         give support to tagged incomplete types.
5019
5020         * sem_ch5.adb (Analyze_Case_Statement): In generated code, if the
5021         expression is a discriminant reference and its type is private, as can
5022         happen within a stream operation for a mutable record, use the full
5023         view of the type to resolve the case alternatives.
5024         (Analyze_Assignment): Check wrong dereference of incomplete types.
5025
5026         * sem_ch6.adb (Process_Formals): Allow the use of tagged incomplete
5027         types.
5028
5029         * sem_res.adb (Resolve_Explicit_Dereference): Allow the use of tagged
5030         incomplete types.
5031
5032         * sinfo.adb (Taggged_Present/Set_Taggged_Present): Applicable to
5033         N_Incomplete_Type_Declaration nodes.
5034
5035         * sinfo.ads (N_Incomplete_Type_Declaration): Addition of attribute
5036         Tag_Present to give support to tagged incomplete types:
5037         --
5038           type DEFINING_IDENTIFIER [DISCRIMINANT_PART] [IS TAGGED];
5039         --
5040
5041 2005-07-07  Olivier Hainque  <hainque@adacore.com>
5042
5043         PR ada/22301
5044
5045         * raise.c: Only include unwind.h if IN_RTS, and provide dummy type
5046         definitions for the Unwind wrappers in the compiler case.
5047
5048 2005-07-07  Ed Schonberg  <schonberg@adacore.com>
5049             Javier Miranda  <miranda@adacore.com>
5050
5051         * par-load.adb (Load): If a child unit is loaded through a limited_with
5052         clause, each parent must be loaded as a limited unit as well.
5053
5054         * sem_ch10.adb (Previous_Withed_Unit): Better name for
5055         Check_Withed_Unit. Return true if there is a previous with_clause for
5056         this unit, whether limited or not.
5057         (Expand_Limited_With_Clause): Do not generate a limited_with_clause on
5058         the current unit.
5059         (Is_Visible_Through_Renamings): New local subprogram of install_limited
5060         _withed_unit that checks if some package installed through normal with
5061         clauses has a renaming declaration of package whose limited-view is
5062         ready to be installed. This enforces the check of the rule 10.1.2 (21/2)
5063         of the current Draft document for Ada 2005.
5064         (Analyze_Context): Complete the list of compilation units that
5065         are allowed to contain limited-with clauses. It also contains
5066         checks that were previously done by Install_Limited_Context_Clauses.
5067         This makes the code more clear and easy to maintain.
5068         (Expand_Limited_With_Clause) It is now a local subprogram of
5069         Install_Limited_Context_Clauses, and contains the code that adds
5070         the implicit limited-with clauses for parents of child units.
5071         This functionality was prevously done by Analyze_Context.
5072
5073         * sem_ch4.adb (Analyze_Selected_Component): Check wrong use of
5074         incomplete type.
5075
5076         * sem_ch7.adb (Analyze_Package_Declaration): Check if the package has
5077         been erroneously named in a limited-with clause of its own context.
5078         In this case the error has been previously notified by Analyze_Context.
5079
5080 2005-07-07  Ed Schonberg  <schonberg@adacore.com>
5081
5082         * sem_ch8.adb (Find_Direct_Name): Handle properly the case of a
5083         generic package that contains local declarations with the same name.
5084         (Analyze_Object_Renaming): Check wrong renaming of incomplete type.
5085
5086 2005-07-07  Bernard Banner  <banner@adacore.com>
5087
5088         * tracebak.c: Refine tracebacks to use Unwind_Backtrace scheme on
5089         ia64 platform only on platforms that you the GCC unwind library
5090         rather than the system unwind library.
5091
5092 2005-07-07  Thomas Quinot  <quinot@adacore.com>
5093
5094         * expect.c: Minor reformatting
5095
5096 2005-07-07  Sergey Rybin  <rybin@adacore.com>
5097
5098         * vms_data.ads: Add VMS qualifiers for new gnatpp switch
5099         --no-separate-is
5100
5101         * gnat_ugn.texi: Add description for new gnatpp option
5102         (--no-separate-is)
5103
5104 2005-07-04  Thomas Quinot  <quinot@adacore.com>
5105
5106         * g-expect-vms.adb, g-expect.ads, g-expect.adb
5107         (Get_Command_Output): New subprogram to launch a process and get its
5108         standard output as a string.
5109
5110 2005-07-04  Eric Botcazou  <ebotcazou@adacore.com>
5111             Olivier Hainque  <hainque@adacore.com>
5112
5113         * s-mastop-tru64.adb (Pop_Frame): Use exc_lookup_function_entry to
5114         fetch a code-range descriptor associated with the machine state. On
5115         failure set the machine state's PC to 0; on success, pass the
5116         descriptor to exc_virtual_unwind.
5117
5118         * init.c (Tru64 section): New function __gnat_set_code_loc.
5119
5120 2005-07-04  Vincent Celier  <celier@adacore.com>
5121
5122         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
5123         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
5124         mlib-tgt-mingw.adb, mlib-tgt-darwin.adb (Build_Dynamic_Library):
5125         Remove all auto-initialization code, as this is now done through the
5126         constructor mechanism.
5127
5128         * adaint.h, adaint.c (__gnat_binder_supports_auto_init,
5129         __gnat_sals_init_using_constructors): New functions.
5130
5131         * bindgen.adb (Gen_Output_File_Ada): Generate pragmas
5132         Linker_Constructor and Linker_Destructor when switch -a is used.
5133
5134         * bindusg.adb: Add line for new switch -a
5135
5136         * gnatbind.adb (Gnatbind_Supports_Auto_Init): New Boolean function
5137         (Gnatbind): When switch -a is used, check if it is allowed
5138
5139         * switch-b.adb (Scan_Binder_Switches): Process new switch -a
5140
5141 2005-07-04  Joel Brobecker  <brobecker@adacore.com>
5142
5143         * a-tags.adb (Type_Specific_Data): Define Tags_Table as a small array.
5144         This prevents us from hitting a limitation during the debug info
5145         generation when using stabs.
5146         (Prims_Ptr): Likewise.
5147
5148 2005-07-04  Gary Dismukes  <dismukes@adacore.com>
5149             Ed Schonberg  <schonberg@adacore.com>
5150             Javier Miranda  <miranda@adacore.com>
5151
5152         * checks.adb (Null_Exclusion_Static_Checks): In the case of
5153         N_Object_Declaration, only perform the checks if the Object_Definition
5154         is not an Access_Definition.
5155
5156         * sem_ch3.adb (Access_Subprogram_Declaration): Add test for the case
5157         where the parent of an the access definition is an N_Object_Declaration
5158         when determining the Associated_Node_For_Itype and scope of an
5159         anonymous access-to-subprogram type.
5160
5161         * exp_ch6.adb (Expand_N_Subprogram_Declaration): Set the
5162         Corresponding_Spec on the body created for a null procedure. Add ???
5163         comment. Remove New_Copy_Tree call on body argument to
5164         Set_Body_To_Inline.
5165
5166         * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): For an out parameter with
5167         discriminants, use the type of the actual as well, because the
5168         discriminants may be read by the called subprogram.
5169
5170         * sem_ch3.adb (Access_Type_Declaration): If the designated type is an
5171         access type we do not need to handle non-limited views.
5172         (Build_Derived_Record_Type): Additional check to check that in case of
5173         private types, interfaces are only allowed in private extensions.
5174
5175 2005-07-04  Eric Botcazou  <ebotcazou@adacore.com>
5176
5177         * decl.c (prepend_attributes) <Pragma_Linker_Constructor>: New case.
5178         <Pragma_Linker_Destructor>: Likewise.
5179
5180         * einfo.ads (Has_Gigi_Rep_Item): Document Pragma_Linker_Constructor and
5181         Pragma_Linker_Destructor.
5182
5183         * gigi.h (attr_type): Add ATTR_LINK_CONSTRUCTOR and
5184         ATTR_LINK_DESTRUCTOR.
5185         (static_ctors, static_dtors): New variables.
5186
5187         * misc.c (gnat_expand_body): Output current function as constructor
5188         and destructor if requested.
5189
5190         * par-prag.adb: Add processing for pragma Linker_Constructor and
5191         Linker_Destructor.
5192
5193         * sem_prag.adb (Find_Unique_Parameterless_Procedure): New function
5194         extracted from Check_Interrupt_Or_Attach_Handler.
5195         (Check_Interrupt_Or_Attach_Handler): Invoke it.
5196         Implement pragma Linker_Constructor and Linker_Destructor with the
5197         help of Find_Unique_Parameterless_Procedure.
5198         Replace Name_Alias with Name_Target for pragma Linker_Alias.
5199
5200         * snames.h, snames.ads, snames.adb:
5201         Add Name_Linker_Constructor and Name_Linker_Destructor.
5202         Add Pragma_Linker_Constructor and Pragma_Linker_Destructor.
5203         * snames.adb: Remove Name_Alias.
5204
5205         * trans.c: Include cgraph.h.
5206         (build_global_cdtor): New function.
5207         (Compilation_Unit_to_gnu): Build global constructor and destructor if
5208         needed.
5209         (tree_transform) <N_Identifier>: Substitute renaming of view-conversions
5210         of objects too.
5211         (addressable_p) <COMPONENT_REF>: Unconditionally test
5212         DECL_NONADDRESSABLE_P on STRICT_ALIGNMENT platforms.
5213
5214         * utils.c (process_attributes) <ATTR_LINK_ALIAS>: Do not assemble the
5215         variable if it is external.
5216
5217         (static_ctors, static_dtors): New global variables.
5218         (process_attributes) <ATTR_LINK_CONSTRUCTOR>: New case.
5219         <ATTR_LINK_DESTRUCTOR>: Likewise.
5220         (end_subprog_body): Chain function as constructor and destructor
5221         if requested.
5222
5223         * exp_util.adb (Force_Evaluation): Unconditionally invoke
5224         Remove_Side_Effects with Variable_Ref set to true.
5225         (Remove_Side_Effects): Handle scalar types first. Use a renaming
5226         for non-scalar types even if Variable_Ref is true and for class-wide
5227         expressions.
5228
5229 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
5230
5231         * exp_attr.adb (Mod): Evaluate condition expression with checks off,
5232         to prevent spurious warnings.
5233
5234 2005-07-04  Thomas Quinot  <quinot@adacore.com>
5235
5236         * exp_dist.adb (Build_TypeCode_Call): Remove incorrect processing for
5237         Itypes. Itypes are really unexpected there.
5238         (Build_TypeCode_Function): Generalise special processing for Itypes to
5239         handle the case of numeric implicit base types as well as enumerated
5240         ones.
5241
5242 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
5243
5244         * exp_intr.adb (Expand_Unc_Deallocation): If the designated type is
5245         controlled, indicate the expected type of the dereference that is
5246         created for the call to Deep_Finalize, to prevent spurious errors when
5247         the designated type is private and completed with a derivation from
5248         another private type.
5249
5250 2005-07-04  Vincent Celier  <celier@adacore.com>
5251
5252         * make.adb (Change_To_Object_Directory): When unable to change the
5253         current dir to the object directory, output the full path of the
5254         directory.
5255
5256 2005-07-04  Matthew Gingell  <gingell@adacore.com>
5257
5258         * Makefile.in: Replace indepsw-linux.adb by indepsw-gnu.adb
5259
5260         * indepsw-linux.adb: Replace by...
5261
5262         * indepsw-gnu.adb: ...this new file
5263
5264 2005-07-04  Vincent Celier  <celier@adacore.com>
5265
5266         * mlib-prj.adb (Auto_Initialize): New constant String
5267         (SALs_Use_Constructors): New Boolean function
5268         (Build_Library): Call gnatbind with Auto_Initialize switch when
5269         SALs_Use_Constructors returns True.
5270
5271         * mlib-tgt.ads: Minor reformatting
5272
5273         * mlib-utl.ads: Minor reformatting
5274
5275         * opt.ads: (Use_Pragma_Linker_Constructor): New Boolean flag
5276
5277 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
5278
5279         * par-ch9.adb (P_Task, P_Protected): Indicate that single task and
5280         single protected declarations can have an interface list.
5281         (P_Entry_Declaration): Add handler for Error_Resync, which can be raised
5282         with seriously malformed entry declarations, and lead to compilation
5283         abandoned messages.
5284
5285 2005-07-04  Javier Miranda  <miranda@adacore.com>
5286
5287         * par-load.adb: Load the context items in two rounds.
5288
5289 2005-07-04  Robert Dewar  <dewar@adacore.com>
5290
5291         * scng.adb: Do not consider Mod used as an attribute to be a keyword
5292
5293 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
5294             Javier Miranda  <miranda@adacore.com>
5295
5296         * sem_ch10.adb (Build_Limited_Views): A type declared with a private
5297         type extension needs a limited view.
5298         Remove previous restriction on private types available through the
5299         limited-view (only tagged private types were previously allowed).
5300         (Install_Withed_Unit): In the code that implements the
5301         legality rule given in AI-377, exclude a child unit with the name
5302         Standard, because it is a homonym of the Standard environment package.
5303
5304 2005-07-04  Thomas Quinot  <quinot@adacore.com>
5305
5306         * sem_ch4.adb (Transform_Object_Operation): For an actual that is an
5307         overloaded function call, carry interpretations from the original tree
5308         to the copy.
5309
5310 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
5311
5312         * sem_ch6.adb (Conforming_Types): If the types are anonymous access
5313         types check whether some designated type is a limited view, and use
5314         the non-limited view if available.
5315
5316 2005-07-04  Gary Dismukes  <dismukes@adacore.com>
5317
5318         * sem_eval.adb (Subtypes_Statically_Match): Use the discriminant
5319         constraint of full view of a private view T1 if present, when T2 is a
5320         discriminated full view.
5321
5322 2005-07-04  Thomas Quinot  <quinot@adacore.com>
5323
5324         * sem_res.adb (Resolve_Actuals): Do not resolve the expression of an
5325         actual that is a view conversion of a bit packed array reference.
5326
5327 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
5328
5329         * sem_type.adb (Covers): Verify that Corresponding_Record_Type is
5330         present before checking whether an interface type covers a synchronized
5331         type.
5332
5333 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
5334
5335         * sem_util.adb (Is_Object_Reference): An indexed or selected component
5336         whose prefix is an implicit dereference is an object reference. Removes
5337         spurious errors when compiling with -gnatc.
5338
5339 2005-07-04  Robert Dewar  <dewar@adacore.com>
5340
5341         PR ada/22039
5342
5343         * s-sopco3.ads, s-sopco4.ads, s-sopco5.ads: Minor documentation fix
5344
5345 2005-07-04  Matthew Gingell  <gingell@adacore.com>
5346
5347         * tracebak.c: Enable tracebacks on ia64 platforms
5348
5349 2005-07-04  Vincent Celier  <celier@adacore.com>
5350
5351         * vms_conv.adb (Initialize): Allow multiple ALI files to be given to
5352         the GNAT BIND command, as gnatbind accepts multiples ALI files with
5353         the -L or -n switches.
5354
5355 2005-07-04  Vincent Celier  <celier@adacore.com>
5356
5357         * makegpr.adb (Build_Global_Archive): Make sure the list of sources is
5358         correctly computed and the main project data is not modified while
5359         doing so.
5360         (Add_C_Plus_Plus_Link_For_Gnatmake): Always link with the C++ compiler
5361         (Choose_C_Plus_Plus_Link_Process): Do not generate shell script
5362         c++linker as this does not work on some platforms.
5363
5364 2005-07-04  Matthew Heaney  <heaney@adacore.com>
5365
5366         * a-convec.ads, a-coinve.ads: Declaration of subtype Extended_Index
5367         was changed.
5368         * a-coinve.adb: Perform constraint checks explicitly.
5369
5370 2005-07-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5371             Thomas Quinot  <quinot@adacore.com>
5372
5373         * Make-lang.in: (ada/targtyps.o): Add missing TREE_H dependency.
5374         new target gen-soccon.
5375
5376 2005-07-04  Robert Dewar  <dewar@adacore.com>
5377
5378         * s-mastop-irix.adb, s-mastop-vms.adb: Minor reformatting
5379
5380 2005-07-04  Thomas Quinot  <quinot@adacore.com>
5381
5382         * g-socket.ads (Check_Selector): Minor rewording of comment.
5383
5384 2005-07-04  Vincent Celier  <celier@adacore.com>
5385
5386         * vms_data.ads: Add VMS qualifiers for new gnatpp switch --eol=
5387
5388 2005-07-04  Thomas Quinot  <quinot@adacore.com>
5389
5390         * gen-soccon.c: Add constants SO_SNDTIMEO and SO_RCVTIMEO.
5391
5392 2005-07-04  Sergey Rybin  <rybin@adacore.com>
5393
5394         * gnat_ugn.texi: Add description of --eol gnatpp option
5395
5396 2005-07-04  Eric Botcazou  <ebotcazou@adacore.com>
5397             Thomas Quinot  <quinot@adacore.com>
5398
5399         * gnat_rm.texi: Add a note that pragma Unreferenced is not appropriate
5400         if the user wants all calls of a subprogram to be flagged,
5401         independently of whether they are made from within the same unit or
5402         another unit.
5403         Mention restriction for pragma Linker_Alias on some platforms.
5404         Document pragma Linker_Constructor and Linker_Destructor.
5405         Rewrite documentation of Weak_External, Linker_Section and
5406         Linker_Alias pragmas.
5407
5408 2005-07-04  Arnaud Charlet  <charlet@adacore.com>
5409
5410         * s-stausa.ads, s-stausa.adb: New files.
5411
5412 2005-06-30  Kelley Cook
5413
5414         * all files:  Update FSF address in copyright headers.
5415         * gen-soccon.co (main): Output new FSF address in generated files.
5416
5417 2005-06-28  Paul Brook  <paul@codesourcery.com>
5418
5419         * misc.c (gnat_init_gcc_eh): Call default_init_unwind_resume_libfunc.
5420
5421 2005-06-14  Olivier Hainque  <hainque@adacore.com>
5422             Eric Botcazou  <ebotcazou@adacore.com>
5423
5424         * s-mastop-irix.adb (Pop_Frame): Revert shorcuts avoiding calls to
5425         exc_unwind, now that we are generating proper .debug_frame output for
5426         that target.
5427
5428         * tracebak.c: Remove the mips-irix section, as we are now using the
5429         s-mastop based unwinder again.
5430         Under SPARC/Solaris, take into account the stack bias to compute the
5431         frame offset.  The stack bias is 0 for the V8 ABI and 2047 for the V9
5432         ABI.
5433
5434 2005-06-14  Doug Rupp  <rupp@adacore.com>
5435
5436         * g-trasym-vms.adb: renamed g-trasym-vms-alpha.adb
5437
5438         * g-trasym-vms-alpha.adb, g-trasym-vms-ia64.adb: New files
5439
5440 2005-06-14  Pascal Obry  <obry@adacore.com>
5441
5442         * a-strhas.ads, a-secain.adb, a-secain.ads, a-rbtgso.ads, a-cgaaso.adb,
5443         a-cgaaso.ads, a-cgarso.adb, a-cgcaso.adb, a-cgarso.ads, a-cgcaso.ads,
5444         a-contai.ads, a-coprnu.ads, a-coprnu.adb: Fix header style (spaces in
5445         package name).
5446
5447         * a-intnam-lynxos.ads, a-intnam-unixware.ads, a-intnam-tru64.ads,
5448         a-intnam-aix.ads, a-intnam-irix.ads, a-excpol-interix.adb,
5449         a-intnam-hpux.ads, a-intnam-linux.ads, a-intnam-dummy.ads,
5450         a-intnam-os2.ads, a-numaux-libc-x86.ads, a-intnam-interix.ads,
5451         a-intnam-solaris.ads, a-caldel-vms.adb, a-calend-vms.ads,
5452         a-intnam-vms.ads, a-excpol-abort.adb, a-intnam-mingw.ads,
5453         a-intnam-vxworks.ads, a-numaux-vxworks.ads, s-osinte-unixware.adb,
5454         s-osinte-unixware.ads, s-osinte-lynxos-3.adb, s-osinte-lynxos-3.ads,
5455         s-osinte-hpux.ads, s-osinte-solaris-posix.ads, a-intnam-freebsd.ads,
5456         s-osinte-freebsd.adb, s-osinte-freebsd.ads, s-osinte-lynxos.adb,
5457         s-osinte-lynxos.ads, s-tpopsp-lynxos.adb, s-osinte-tru64.adb,
5458         s-osinte-tru64.ads, s-tpopsp-posix-foreign.adb, s-vxwork-alpha.ads,
5459         s-osinte-aix.adb, s-osinte-aix.ads, s-osinte-aix-fsu.ads,
5460         s-osinte-irix.adb, s-osinte-irix.ads, s-interr-sigaction.adb,
5461         s-osinte-irix-athread.ads, s-osinte-hpux-dce.adb,
5462         s-osinte-hpux-dce.ads, s-osinte-posix.adb, s-osinte-linux.ads,
5463         s-vxwork-m68k.ads, s-osinte-linux-fsu.ads, s-vxwork-mips.ads,
5464         s-osinte-dummy.ads, s-interr-dummy.adb, s-osinte-os2.adb,
5465         s-osinte-os2.ads, s-osprim-os2.adb, s-osinte-interix.ads,
5466         s-osprim-unix.adb, s-vxwork-ppc.ads, s-osinte-solaris.adb,
5467         s-osinte-solaris.ads, s-osprim-solaris.adb, s-tpopsp-solaris.adb,
5468         s-vxwork-sparcv9.ads, s-osinte-solaris-fsu.ads, s-interr-vms.adb,
5469         s-osinte-vms.adb, s-osinte-vms.ads, s-osprim-vms.adb,
5470         s-osprim-vms.ads, s-tpopde-vms.adb, s-tpopde-vms.ads,
5471         s-osprim-mingw.adb, s-vxwork-xscale.ads, s-interr-vxworks.adb,
5472         s-osinte-vxworks.adb, s-osinte-vxworks.ads, s-osprim-vxworks.adb,
5473         s-tfsetr-vxworks.adb, s-tpopsp-vxworks.adb, s-intman-posix.adb,
5474         s-osinte-fsu.adb, s-osprim-posix.adb, s-tfsetr-default.adb,
5475         s-tpopsp-posix.adb, s-traces-default.adb, s-trafor-default.adb,
5476         s-trafor-default.ads, s-tratas-default.adb, a-numaux-x86.adb,
5477         a-numaux-x86.ads, a-astaco.adb, a-astaco.ads, a-caldel.adb,
5478         a-caldel.ads, a-charac.ads, a-chlat1.ads, a-chlat9.ads, a-colien.adb,
5479         a-colien.ads, a-colire.adb, a-colire.ads, a-comlin.adb, a-cwila1.ads,
5480         a-cwila9.ads, ada.ads, a-decima.adb, a-diocst.ads, a-direio.adb,
5481         a-dynpri.adb, a-dynpri.ads, a-excpol.adb, a-flteio.ads, a-fwteio.ads,
5482         a-inteio.ads, a-interr.adb, a-intnam.ads, a-intsig.adb, a-intsig.ads,
5483         a-ioexce.ads, a-iwteio.ads, a-lfteio.ads, a-lfwtio.ads, a-liteio.ads,
5484         a-liwtio.ads, a-llftio.ads, a-llfwti.ads, a-llitio.ads, a-lliwti.ads,
5485         a-ncelfu.ads, a-ngcefu.adb, a-ngcefu.ads, a-ngcoty.adb, a-ngelfu.adb,
5486         a-ngelfu.ads, a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads,
5487         a-nllcty.ads, a-nllefu.ads, a-nscefu.ads, a-nscoty.ads, a-nselfu.ads,
5488         a-nucoty.ads, a-nudira.adb, a-nuelfu.ads, a-nuflra.adb, a-numaux.ads,
5489         a-numeri.ads, a-reatim.adb, a-retide.adb, a-retide.ads, a-sequio.adb,
5490         a-sequio.ads, a-sfteio.ads, a-sfwtio.ads, a-siocst.ads, a-siteio.ads,
5491         a-siwtio.ads, a-ssicst.ads, a-ssitio.ads, a-ssiwti.ads, a-stmaco.ads,
5492         a-storio.adb, a-strbou.adb, a-strfix.adb, a-string.ads, a-strmap.adb,
5493         a-strsea.adb, a-strsup.adb, a-strunb.ads, a-ststio.adb, a-stunau.adb,
5494         a-stunau.ads, a-stwibo.adb, a-stwifi.adb, a-stwifi.ads, a-stwima.adb,
5495         a-stwise.adb, a-stwisu.adb, a-suteio.adb, a-suteio.ads, a-swuwti.adb,
5496         a-swuwti.ads, a-teioed.adb, a-ticoau.adb, a-ticoau.ads, a-ticoio.adb,
5497         a-tideau.adb, a-tideio.adb, a-tienau.adb, a-tienio.adb, a-tifiio.adb,
5498         a-tiflio.adb, a-tigeau.adb, a-tigeau.ads, a-tiinio.adb, a-timoau.adb,
5499         a-timoio.adb, a-timoio.ads, a-tiocst.ads, a-titest.adb, a-titest.ads,
5500         a-witeio.adb, a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads,
5501         a-wtcstr.ads, a-wtdeau.adb, a-wtdeio.adb, a-wtenau.adb, a-wtenio.adb,
5502         a-wtfiio.adb, a-wtflio.adb, a-wtgeau.adb, a-wtinau.adb, a-wtinio.adb,
5503         a-wtinio.ads, a-wtmoau.adb, a-wtmoio.adb, a-wttest.adb, calendar.ads,
5504         dec.ads, dec-io.adb, dec-io.ads, directio.ads, errno.c, g-bubsor.adb,
5505         g-bubsor.ads, g-busora.adb, g-busora.ads, g-busorg.adb, g-busorg.ads,
5506         g-casuti.adb, g-casuti.ads, g-debuti.ads, g-heasor.adb, g-heasor.ads,
5507         g-hesora.adb, g-hesora.ads, g-hesorg.adb, g-hesorg.ads, g-htable.adb,
5508         g-htable.ads, g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads,
5509         g-memdum.adb, g-memdum.ads, g-sestin.ads, g-signal.ads, g-signal.adb,
5510         gnat.ads, g-souinf.ads, g-speche.adb, g-speche.ads, g-table.adb,
5511         g-table.ads, g-thread.adb, g-thread.ads, ioexcept.ads, i-vxwoio.adb,
5512         i-vxwoio.ads, math_lib.adb, s-assert.adb, s-assert.ads, s-asthan.ads,
5513         s-bitops.adb, s-bitops.ads, s-boarop.ads, s-carsi8.adb, s-carsi8.ads,
5514         s-carun8.adb, s-carun8.ads, s-casi16.adb, s-casi16.ads, s-casi32.adb,
5515         s-casi32.ads, s-casi64.adb, s-casi64.ads, s-casuti.adb, s-casuti.ads,
5516         s-caun16.adb, s-caun16.ads, s-caun32.adb, s-caun32.ads, s-caun64.adb,
5517         s-caun64.ads, s-direio.adb, s-direio.ads, sequenio.ads, s-errrep.adb,
5518         s-errrep.ads, s-exnint.adb, s-exnint.ads, s-exnllf.adb, s-exnllf.ads,
5519         s-exnlli.adb, s-exnlli.ads, s-expint.adb, s-expint.ads, s-explli.adb,
5520         s-explli.ads, s-expllu.adb, s-expllu.ads, s-expmod.adb, s-expmod.ads,
5521         s-expuns.adb, s-expuns.ads, s-fore.adb, s-fore.ads, s-geveop.adb,
5522         s-geveop.ads, s-htable.adb, s-htable.ads, s-imgbiu.adb, s-imgbiu.ads,
5523         s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads, s-imgdec.adb,
5524         s-imgdec.ads, s-imgenu.adb, s-imgenu.ads, s-imgint.adb, s-imgint.ads,
5525         s-imgllb.adb, s-imgllb.ads, s-imglld.adb, s-imglld.ads, s-imglli.adb,
5526         s-imglli.ads, s-imgllu.adb, s-imgllu.ads, s-imgllw.adb, s-imgllw.ads,
5527         s-imgrea.ads, s-imguns.adb, s-imguns.ads, s-imgwiu.adb, s-imgwiu.ads
5528         s-interr.ads, s-io.adb, s-mantis.adb, s-mantis.ads, s-osprim.ads,
5529         s-pack03.adb, s-pack03.ads, s-pack05.adb, s-pack05.ads, s-pack06.adb,
5530         s-pack06.ads, s-pack07.adb, s-pack07.ads, s-pack09.adb, s-pack09.ads,
5531         s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads, s-pack12.adb,
5532         s-pack12.ads, s-pack13.adb, s-pack13.ads, s-pack14.adb, s-pack14.ads,
5533         s-pack15.adb, s-pack15.ads, s-pack17.adb, s-pack17.ads, s-pack18.adb,
5534         s-pack18.ads, s-pack19.adb, s-pack19.ads, s-pack20.adb, s-pack20.ads,
5535         s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads, s-pack23.adb,
5536         s-pack23.ads, s-pack24.adb, s-pack24.ads, s-pack25.adb, s-pack25.ads,
5537         s-pack26.adb, s-pack26.ads, s-pack27.adb, s-pack27.ads, s-pack28.adb,
5538         s-pack28.ads, s-pack29.adb, s-pack29.ads, s-pack30.adb, s-pack30.ads,
5539         s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads, s-pack34.adb,
5540         s-pack34.ads, s-pack35.adb, s-pack35.ads, s-pack36.adb, s-pack36.ads,
5541         s-pack37.adb, s-pack37.ads, s-pack38.adb, s-pack38.ads, s-pack39.adb,
5542         s-pack39.ads, s-pack40.adb, s-pack40.ads, s-pack41.adb, s-pack41.ads,
5543         s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads, s-pack44.adb,
5544         s-pack44.ads, s-pack45.adb, s-pack45.ads, s-pack46.adb, s-pack46.ads,
5545         s-pack47.adb, s-pack47.ads, s-pack48.adb, s-pack48.ads, s-pack49.adb,
5546         s-pack49.ads, s-pack50.adb, s-pack50.ads, s-pack51.adb, s-pack51.ads,
5547         s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads, s-pack54.adb,
5548         s-pack54.ads, s-pack55.adb, s-pack55.ads, s-pack56.adb, s-pack56.ads,
5549         s-pack57.adb, s-pack57.ads, s-pack58.adb, s-pack58.ads, s-pack59.adb,
5550         s-pack59.ads, s-pack60.adb, s-pack60.ads, s-pack61.adb, s-pack61.ads,
5551         s-pack62.adb, s-pack62.ads, s-pack63.adb, s-pack63.ads, s-scaval.adb,
5552         s-scaval.ads, s-sequio.adb, s-sequio.ads, s-stache.adb, s-stache.ads,
5553         s-stratt.adb, s-stratt.ads, s-strcom.adb, s-strcom.ads, s-strops.adb,
5554         s-strops.ads, s-taasde.ads, s-tadeca.adb, s-tadeca.ads, s-tadert.adb,
5555         s-tadert.ads, s-taenca.adb, s-taenca.ads, s-taprob.adb, s-taprob.ads,
5556         s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads, s-tasini.adb,
5557         s-tasini.ads, s-taskin.adb, s-taskin.ads, s-tasque.adb, s-tasque.ads,
5558         s-tasren.ads, s-tasres.ads, s-tassta.adb, s-tassta.ads, s-tasuti.adb,
5559         s-tasuti.ads, s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
5560         s-tpoben.adb, s-tpoben.ads, s-tpobop.ads, s-tporft.adb, s-tposen.ads,
5561         s-traces.adb, s-traces.ads, s-tratas.adb, s-tratas.ads, s-valint.ads,
5562         s-unstyp.ads, s-veboop.adb, s-veboop.ads, s-vector.ads, s-vercon.adb,
5563         s-vercon.ads, s-wchcnv.adb, s-wchcnv.ads, s-wchjis.adb, s-wchjis.ads,
5564         s-wchstw.adb, s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, s-widboo.adb,
5565         s-widboo.ads, s-widcha.adb, s-widcha.ads, s-widenu.adb, s-widenu.ads,
5566         s-widlli.adb, s-widlli.ads, s-widllu.adb, s-widllu.ads, s-wwdcha.ads,
5567         s-wwdenu.adb, s-wwdwch.ads, text_io.ads, s-stchop.ads, s-stchop.adb,
5568         s-stchop-vxworks.adb, a-intnam-darwin.ads, s-osinte-darwin.adb,
5569         s-osinte-darwin.ads, s-vxwork-x86.ads, a-numaux-darwin.ads,
5570         a-numaux-darwin.adb, a-chzla1.ads, a-chzla9.ads, a-lfztio.ads,
5571         a-liztio.ads, a-llfzti.ads, a-llizti.ads, a-sfztio.ads, a-siztio.ads,
5572         a-ssizti.ads, a-stzbou.adb, a-stzfix.adb, a-stzfix.ads, a-stzmap.adb,
5573         a-stzsea.adb, a-stzsup.adb, a-swunau.adb, a-swunau.ads, a-szuzti.adb,
5574         a-szuzti.ads, a-tiunio.ads, a-wwunio.ads, a-ztcoau.adb, a-ztcoau.ads,
5575         a-ztcoio.adb, a-ztcoio.ads, a-ztcstr.ads, a-ztdeau.adb, a-ztdeio.adb,
5576         a-ztenio.adb, a-ztexio.adb, a-ztfiio.adb, a-ztflio.adb, a-ztgeau.adb,
5577         a-ztinau.adb, a-ztinio.adb, a-ztinio.ads, a-ztmoau.adb, a-ztmoio.adb,
5578         a-zttest.adb, a-zzunio.ads, g-utf_32.adb: Fix header style.
5579         "GNU Ada" to GNAT, use proper casing for RUN-TIME.
5580
5581 2005-06-14  Jose Ruiz  <ruiz@adacore.com>
5582             Arnaud Charlet  <charlet@adacore.com>
5583
5584         * a-sytaco.ads, a-sytaco.adb (Suspension_Object): These objects are no
5585         longer protected objects. They have been replaced by lower-level
5586         suspension objects made up by a mutex and a condition variable (or
5587         their equivalent given a particular OS) plus some internal data to
5588         reflect the state of the suspension object.
5589         (Initialize, Finalize): Add this initialization procedure for
5590         Suspension_Object, which is a controlled type.
5591         (Finalize): Add the finalization procedure for Suspension_Object,
5592         which is a controlled type.
5593
5594         * a-sytaco-vxworks.ads, a-sytaco-vxworks.adb: Remove this version of
5595         Ada.Synchronous_Task_Control because there is no longer a need for a
5596         VxWorks specific version of this package. Target dependencies
5597         has been moved to System.Task_Primitives.Operations.
5598
5599         * s-osinte-mingw.ads (pCRITICAL_SECTION): Remove this type which is no
5600         longer needed.
5601         (InitializeCriticalSection, EnterCriticalSection,
5602         LeaveCriticalSection, DeleteCriticalSection): Replace the type
5603         pCriticalSection by an anonymous access type so that we avoid problems
5604         of accessibility to local objects.
5605
5606         * s-taprop.ads, s-taprop-posix.adb, s-taprop-vxworks.adb,
5607         s-taprop-mingw.adb, s-taprop-vms.adb, s-taprop-solaris.adb,
5608         s-taprop-os2.adb, s-taprop-dummy.adb, s-taprop-hpux-dce.adb,
5609         s-taprop-linux.adb, s-taprop-irix.adb, s-taprop-irix-athread.adb,
5610         s-taprop-tru64.adb, s-taprop-lynxos.adb (Elaboration Code): No longer
5611         set the environment task mask here.
5612         (Current_State): Add this function that returns the state of the
5613         suspension object.
5614         (Set_False): Add this procedure that sets the state of the suspension
5615         object to False.
5616         (Set_True): Add this procedure that sets the state of the suspension
5617         object to True, releasing the task that was suspended, if any.
5618         (Suspend_Until_True): Add this procedure that blocks the calling task
5619         until the state of the object is True. Program_Error is raised if
5620         another task is already waiting on that suspension object.
5621         (Initialize): Add this procedure for initializing the suspension
5622         object. It initializes the mutex and the condition variable which are
5623         used for synchronization and queuing, and it sets the internal state
5624         to False.
5625         (Finalize): Add this procedure for finalizing the suspension object,
5626         destroying the mutex and the condition variable.
5627
5628         * s-taspri-posix.ads, s-taspri-vxworks.ads, s-taspri-mingw.ads,
5629         s-taspri-vms.ads, s-taspri-solaris.ads, s-taspri-os2.ads,
5630         s-taspri-dummy.ads, s-taspri-hpux-dce.ads, s-taspri-linux.ads,
5631         s-taspri-tru64.ads, s-taspri-lynxos.ads (Suspension_Object): New object
5632         which provides a low-level abstraction (using operating system
5633         primitives) for Ada.Synchronous_Task_Control.
5634         This object is made up by a mutex (for ensuring mutual exclusion), a
5635         condition variable (for queuing threads until the condition is
5636         signaled), a Boolean (State) indicating whether the object is open,
5637         and a Boolean (Waiting) reflecting whether there is a task already
5638         suspended on this object.
5639
5640         * s-intman.ads, s-intman-irix.adb, s-intman-irix-athread.adb,
5641         s-intman-dummy.adb, s-intman-solaris.adb, s-intman-vms.adb,
5642         s-intman-vms.ads, s-intman-mingw.adb,
5643         (Initialize_Interrupts): Removed, no longer used.
5644
5645         * s-inmaop-posix.adb, s-inmaop-vms.adb, s-inmaop-dummy.adb,
5646         (Setup_Interrupt_Mask): New procedure.
5647
5648         * s-intman-vxworks.ads, s-intman-vxworks.adb:  Update comments.
5649
5650         * s-inmaop.ads (Setup_Interrupt_Mask): New procedure
5651
5652         * s-interr.adb: Add explicit call to Setup_Interrupt_Mask now that
5653         this is no longer done in the body of s-taprop
5654         (Server_Task): Explicitely test for Pending_Action in case
5655         System.Parameters.No_Abort is True.
5656
5657         * s-taasde.adb: Add explicit call to Setup_Interrupt_Mask now that this
5658         is no longer done in the body of s-taprop
5659
5660 2005-06-14  Robert Dewar  <dewar@adacore.com>
5661
5662         * system-unixware.ads, system-linux-ia64.ads, system-freebsd-x86.ads,
5663         system-lynxos-ppc.ads, system-lynxos-x86.ads, system-linux-x86_64.ads,
5664         system-tru64.ads, system-aix.ads, system-vxworks-sparcv9.ads,
5665         system-vxworks-xscale.ads, system-solaris-x86.ads, system-irix-o32.ads,
5666         system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
5667         system-linux-x86.ads, system-vxworks-mips.ads, system-vxworks-mips.ads,
5668         system-os2.ads, system-interix.ads, system-solaris-sparc.ads,
5669         system-solaris-sparcv9.ads, system-vms.ads, system-mingw.ads,
5670         system-vms-zcx.ads, system-vxworks-ppc.ads, system.ads,
5671         system-darwin-ppc.ads, system-vxworks-x86.ads, system-linux-ppc.ads,
5672         system-linux-hppa.ads, system-vms_64.ads,
5673         system-vxworks-alpha.ads: Minor comment update for
5674         AI-362 (unit is Pure).
5675
5676         * a-chahan.ads, a-chahan.adb: Move Wide_Wide functions to Conversions
5677         Add pragma Pure_05 for AI-362
5678         Make remaining conversion functions obsolescent in Ada 95
5679
5680         * impunit.adb: Change a-swunha to a-swuwha and a-szunha to a-szuzha
5681         Make Ada.Wide_Characters[.Unicode] available in Ada 95 mode
5682         Add entries for a-wichun and a-zchuni
5683         Add a-widcha a-zchara for AI-395
5684         Add a-chacon (Ada.Characters.Conversions) to list of Ada 2005 routines
5685
5686         * Makefile.rtl: Change a-swunha to a-swuwha and a-szunha to a-szuzha
5687         Add entries for a-wichun.o and a-zchuni.o
5688         Entries for a-widcha.o and a-zchara.o
5689         Add entry for a-chacon.o
5690
5691         * a-ztenau.adb: Add with of Ada.Characters.Conversions
5692
5693         * a-chacon.ads, a-chacon.adb: New files.
5694
5695         * a-taside.adb, a-exstat.adb, a-excach.adb: Add warnings off to allow
5696         categorization violations.
5697
5698         * a-strmap.ads: Add pragma Pure_05 for AI-362
5699         * a-strmap.ads: Add note on implicit categorization for AI-362
5700
5701         * a-tgdico.ads, a-taside.ads: Add pragma Preelaborate_05 for AI-362
5702
5703         * par-prag.adb: Dummy entry for pragma Persistent_BSS
5704         Set Ada_Version_Explicit, for implementation of AI-362
5705         Add processing for pragma Pure_05 and Preelaborate_05
5706         Add entry for Assertion_Policy pragma
5707
5708         * sem.adb: Make sure predefined units are compiled with GNAT_Mode true
5709         when needed for proper processing of categorization stuff
5710
5711         * sem_cat.adb:
5712         For several cases, make errors in preealborate units warnings,
5713         instead of errors, if GNAT_Mode is set. For AI-362.
5714
5715         * sem_elab.adb (Check_Elab_Call): Call to non-static subprogram in
5716         preelaborate unit is now warning if in GNAT mode
5717
5718         * s-stoele.ads: Document AI-362 for pragma preelaborate
5719
5720 2005-06-14  Doug Rupp  <rupp@adacore.com>
5721
5722         * s-parame-vms.ads, s-parame-hpux.ads, s-parame-vms-restrict.ads,
5723         s-parame-ae653.ads, s-parame.ads, s-parame-vxworks.ads:
5724         Default_Exception_Msg_Max_Length: new parameter.
5725
5726         * a-except.ads: (Exception_Msg_Max_Length): Set to
5727         System.Parameters.Default_Exception_Msg_Max_Length
5728         Add pragma Preelaborate_05 for AI-362
5729         Add warnings off to allow categorization violations for AI-362
5730
5731 2005-06-14  Vincent Celier  <celier@adacore.com>
5732
5733         * gnatsym.adb: Adapt to modification of package Symbols: procedure
5734         Process is now in package Processing.
5735
5736         * symbols.ads, symbols.adb:
5737         (Processing): New package, containing procedure Process
5738
5739         * symbols-vms-alpha.adb:
5740         Replaced by symbols-vms.adb and symbols-processing-vms-alpha.adb
5741
5742         * symbols-vms.adb, symbols-processing-vms-alpha.adb,
5743         symbols-processing-vms-ia64.adb: New files.
5744
5745 2005-06-14  Pascal Obry  <obry@adacore.com>
5746
5747         * mlib-tgt-mingw.adb (Build_Dynamic_Library): Replace the previous
5748         implementation. This new version generates the proper DllMain routine
5749         to initialize the SAL. The DllMain is generated in Ada and compiled
5750         before being added as option to the library build command.
5751
5752 2005-06-14  Doug Rupp  <rupp@adacore.com>
5753             Pascal Obry  <obry@adacore.com>
5754
5755         * adaint.c (__gnat_to_canonical_file_spec): Check for error returns in
5756         call to decc$translate_vms.
5757         (__gnat_locate_regular_file): Check if the path_val contains quotes. We
5758         need to remove those quotes before catenating the filename.
5759         (__gnat_locate_exec_on_path): improvements to the Win32 section:
5760         * avoid allocating the memory twice for better efficiency;
5761         * allocate 32K buffer for environment expansion as suggested by MSDN;
5762         * prepend ".;" to the path so that current directory is searched too.
5763
5764 2005-06-14  Robert Dewar  <dewar@adacore.com>
5765
5766         * a-except.adb (Exception_Identity): return Null_Id for null occurrence
5767         instead of raising CE (AI-241)
5768         Add warnings off to allow categorization violations for AI-362
5769
5770 2005-06-14  Robert Dewar  <dewar@adacore.com>
5771
5772         * ali-util.adb, gnatbind.adb: Remove references to
5773         Force_RM_Elaboration_Order.
5774
5775         * switch-b.adb: Remove recognition of -f switch
5776
5777 2005-06-14  Pascal Obry  <obry@adacore.com>
5778
5779         * a-stzunb.adb, a-stwiun.adb, a-strunb.adb (Realloc_For_Chunk): New
5780         implementation which is slightly more efficient.
5781
5782 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
5783             Javier Miranda  <miranda@adacore.com>
5784             Ed Schonberg  <schonberg@adacore.com>
5785             Hristian Kirtchev  <kirtchev@adacore.com>
5786
5787         * exp_ch4.adb (Expand_Allocator_Expression): When an initialized
5788         allocator's designated type is a class-wide type, and compiling for
5789         Ada 2005, emit a run-time check that the accessibility level of the
5790         type given in the allocator's expression is not deeper than the level
5791         of the allocator's access type.
5792
5793         (Tagged_Membership): Modified to gives support to abstract interface
5794         types.
5795
5796         * a-tags.ads, a-tags.adb (type Type_Specific_Data): Add component
5797         Access_Level.
5798         (Descendant_Tag): New predefined function
5799         (Is_Descendant_At_Same_Level): New predefined function
5800         (Get_Access_Level): New private function
5801         (Set_Access_Level): New private procedure
5802         (IW_Membership): New function. Given the tag of an object and the tag
5803         associated with an interface, evaluate if the object implements the
5804         interface.
5805         (Register_Interface_Tag): New procedure used to initialize the table of
5806         interfaces used by the IW_Membership function.
5807         (Set_Offset_To_Top): Initialize the Offset_To_Top field in the prologue
5808         of the dispatch table.
5809         (Inherit_TSD): Modified to copy the table of ancestor tags plus the
5810         table of interfaces of the parent.
5811         (Expanded_Name): Raise Tag_Error if the passed tag equals No_Tag.
5812         (External_Tag): Raise Tag_Error if the passed tag equals No_Tag.
5813         (Parent_Tag): Return No_Tag in the case of a root-level tagged type,
5814         and raise Tag_Error if the passed tag equalis No_Tag, to conform with
5815         Ada 2005 semantics for the new predefined function.
5816
5817         * exp_attr.adb (Expand_N_Attribute, case Attribute_Input): Generate
5818         call to Descendant_Tag rather than Internal_Tag.
5819         (Expand_N_Attribute, case Attribute_Output): Emit a check to ensure that
5820         the accessibility level of the attribute's Item parameter is not deeper
5821         than the level of the attribute's prefix type. Tag_Error is raised if
5822         the check fails. The check is only emitted for Ada_05.
5823         (Find_Stream_Subprogram): If a TSS exists on the type itself for the
5824         requested stream attribute, use it.
5825         (Expand_N_Attribute_Reference): If the designated type is an interface
5826         then rewrite the referenced object as a conversion to force the
5827         displacement of the pointer to the secondary dispatch table.
5828         (Expand_N_Attribute_Reference, case 'Constrained): Return false if this
5829         is a dereference of an object with a constrained partial view.
5830
5831         * exp_ch5.adb (Expand_N_Return_Statement): When a function's result
5832         type is a class-wide type, emit a run-time check that the accessibility
5833         level of the returned object is not deeper than the level of the
5834         function's master (only when compiling for Ada 2005).
5835
5836         * exp_disp.ads, exp_disp.adb (Ada_Actions, Action_Is_Proc,
5837         Action_Nb_Arg): Add entries for new Get_Access_Level and
5838         Set_Access_Level routines in these tables.
5839         (Make_DT): Generate a call to set the accessibility level of the
5840         tagged type in its TSD.
5841         (Make_DT): Code cleanup. The functionality of generating all the
5842         secondary dispatch tables has been moved to freeze_record_type.
5843         (Make_Abstract_Interface_DT): Minor code cleanup.
5844         (Set_All_DT_Position): Code cleanup. As part of the code cleanup
5845         this subprogram implements a new algorithm that provides the
5846         same functionality and it is more clear in case of primitives
5847         associated with abstract interfaces.
5848         (Set_All_Interfaces_DTC_Entity): Removed. As part of the code
5849         clean up, the functionality of this subprogram is now provided
5850         by Set_All_DT_Position.
5851         (Write_DT): New subprogram: a debugging procedure designed to be called
5852         within gdb to display the dispatch tables associated with a tagged
5853         type.
5854         (Collect_All_Interfaces): New subprogram that collects the whole list
5855         of interfaces that are directly or indirectly implemented by a tagged
5856         type.
5857         (Default_Prim_Op_Position): New subprogram that returns the fixed
5858         position in the dispatch table of the default primitive operations.
5859         (Expand_Interface_Actuals): New subprogram to generate code that
5860         displaces all the actuals corresponding to class-wide interfaces to
5861         reference the interface tag of the actual object.
5862         (Expand_Interface_Conversion): New subprogram. Reference the base of
5863         the object to give access to the interface tag associated with the
5864         secondary dispatch table.
5865         (Expand_Interface_Thunk): New subprogram that generates the code of the
5866         thunk. This is required for compatibility with the C+ ABI.
5867         (Make_Abstract_Interface_DT): New subprogram that generate the
5868         declarations for the secondary dispatch tables associated with an
5869         abstract interface.
5870         (Set_All_Interfaces_DTC_Entity): New subprogram that sets the DTC_Entity
5871         attribute for each primitive operation covering interface subprograms
5872         (Expand_Dispatching_Call, Fill_DT_Entry, Make_DT, Set_All_DT_Position):
5873         These subprograms were upgraded to give support to abstract interfaces
5874
5875         * rtsfind.ads (type RE_Id): Add RE_Descendant_Tag,
5876         RE_Is_Descendant_At_Same_Level, RE_Get_Access_Level, and
5877         RE_Set_Access_Level.
5878         (RE_Unit_Table): Add entries for new Ada.Tags operations.
5879         Add support to call the followig new run-time subprograms:
5880         IW_Membership, Register_Interface_Tag, and Set_Offset_To_Top
5881
5882         * sem_ch3.adb (Constant_Redeclaration): Allow a deferred constant to
5883         match its full declaration when both have an access definition with
5884         statically matching designated subtypes.
5885         (Analyze_Component_Declaration): Delete commented out code that was
5886         incorrectly setting the scope of an anonymous access component's type.
5887         (Process_Discriminants): Set Is_Local_Anonymous_Access for the type of
5888         an access discriminant when the containing type is nonlimited.
5889         (Make_Incomplete_Type_Declaration): Create an incomplete type
5890         declaration for a record type that includes self-referential access
5891         components.
5892         (Check_Anonymous_Access_Types): Before full analysis of a record type
5893         declaration, create anonymous access types for each self-referential
5894         access component.
5895         (Analyze_Component_Declaration, Array_Type_Declaration): Indicate that
5896         an access component in this context is a Local_Anonymous_Access, for
5897         proper accessibility checks.
5898         (Access_Definition): Set properly the scope of the anonymous access type
5899         created for a stand-alone access object.
5900         (Find_Type_Of_Object): An object declaration may be given with an access
5901         definition.
5902         (Complete_Subprograms_Derivation): New subprogram used to complete
5903         type derivation of private tagged types implementing interfaces.
5904         In this case some interface primitives may have been overriden
5905         with the partial-view and, instead of re-calculating them, they
5906         are included in the list of primitive operations of the full-view.
5907         (Build_Derived_Record_Type): Modified to give support to private
5908         types implemening interfaces.
5909         (Access_Definition): Reject ALL on anonymous access types.
5910         (Build_Derived_Record_Type): In the case of Ada 2005, allow a tagged
5911         type derivation to occur at a deeper accessibility level than the
5912         parent type.
5913         For the case of derivation within a generic body however, disallow the
5914         derivation if the derived type has an ancestor that is a formal type
5915         declared in the formal part of an enclosing generic.
5916         (Analyze_Object_Declaration): For protected objects, remove the check
5917         that they cannot contain interrupt handlers if not declared at library
5918         level.
5919         (Add_Interface_Tag_Components): New subprogram to add the tag components
5920         corresponding to all the abstract interface types implemented by a
5921         record type or a derived record type.
5922         (Analyze_Private_Extension_Declaration, Build_Derived_Record_Type,
5923         Derived_Type_Declaration, Find_Type_Name, Inherit_Components,
5924         Process_Full_View, Record_Type_Declaration): Modified to give
5925         support to abstract interface types
5926         (Collect_Interfaces): New subprogram that collects the list of
5927         interfaces that are not already implemented by the ancestors
5928         (Process_Full_View): Set flag Has_Partial_Constrained_View appropriately
5929         when partial view has no discriminants and full view has defaults.
5930         (Constrain_Access): Reject a constraint on a general access type
5931         if the discriminants of the designated type have defaults.
5932         (Access_Subprogram_Declaration): Associate the Itype node with the inner
5933         full-type declaration or subprogram spec. This is required to handle
5934         nested anonymous declarations.
5935         (Analyze_Private_Extension_Declaration, Build_Derived_Record_Type,
5936         Derived_Type_Declaration, Find_Type_Name, Inherit_Components,
5937         Process_Full_View, Record_Type_Declaration): Modified to give
5938         support to abstract interface types
5939         (Derive_Subprograms): Addition of a new formal to indicate if
5940         we are in the case of an abstact-interface derivation
5941         (Find_Type_Of_Subtype_Indic): Moved from the body of the package
5942         to the specification because it is requied to analyze all the
5943         identifiers found in a list of interfaces
5944
5945         * debug.adb: Complete documentation of flag "-gnatdZ"
5946
5947         * exp_ch3.adb: Implement config version of persistent_bss pragma
5948         (Check_Stream_Attributes): Use Stream_Attribute_Available instead of
5949         testing for TSS presence to properly enforce visibility rules.
5950         (Freeze_Record_Type): Code cleanup. Modified to call the subprogram
5951         Make_Abstract_Interfaces_DT to generate the secondary tables
5952         associated with abstract interfaces.
5953         (Build_Init_Procedure): Modified to initialize all the tags
5954         corresponding.
5955         (Component_Needs_Simple_Initialization): Similar to other tags,
5956         interface tags do not need initialization.
5957         (Freeze_Record_Type): Modified to give support to abstract interface
5958         types.
5959         (Expand_N_Object_Declaration): Do not generate an initialization for
5960         a scalar temporary marked as internal.
5961
5962         * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): Handle properly an
5963         in-out parameter that is a component in an initialization procedure,
5964         whose constraint might depend on discriminants, and that may be
5965         misaligned because of packing or representation clauses.
5966         (Is_Legal_Copy): New predicate to determine whether a possibly
5967         misaligned in-out actual can actually be passed by copy/return. This
5968         is an error in case the type is by_reference, and a warning if this is
5969         the consequence of a DEC import pragma on the subprogram.
5970         (Expand_Call, Freeze_Subprogram): Modified to give support to abstract
5971         interface types
5972         (Expand_Inlined_Call): Mark temporary generated for the return value as
5973         internal, so that no useless scalar normalization is generated for it.
5974         (Expand_N_Subprogram_Declaration): Save unanalyzed body so calls to
5975         null procedure can always be inlined.
5976         (Expand_N_Subprogram_Declaration): If this is the declaration of a null
5977         procedure, generate an explicit empty body for it.
5978
5979         * exp_util.ads, exp_util.adb (Find_Interface_ADT): New subprogram.
5980         Given a type implementing an interface, returns the corresponding
5981         access_disp_table value.
5982         (Find_Interface_Tag): New subprogram. Given a type implementing an
5983         interface, returns the record component containing the tag of the
5984         interface.
5985         (Find_Interface_Tag): New overloaded subprogram. Subsidiary to the
5986         previous ones that return the corresponding tag and access_disp_table
5987         entities.
5988         (Is_Predefined_Dispatching_Operation): Determines if a subprogram
5989         is a predefined primitive operation.
5990         (Expand_Subtype_From_Expr): If the expression is a selected component
5991         within an initialization procedure, compute its actual subtype, because
5992         the component may depend on the discriminants of the enclosing record.
5993
5994         * i-cpp.ads, i-cpp.adb:
5995         This package has been left available for compatibility with previous
5996         versions of the frontend. As part of the new layout this is now a
5997         dummy package that uses declarations available at a-tags.ads
5998
5999         * par-ch3.adb (P_Identifier_Declarations): Give an error for use of
6000         "constant access" and "aliased [constant] access" when not compiling
6001         with -gnat05.
6002         Suppress Ada 2005 keyword warning if -gnatwY used
6003         (P_Identifier_Declarations): Add support for object declarations with
6004         access definitions.
6005         (Private_Extension_Declaration): Complete the documentation
6006         (P_Derived_Type_Def_Or_Private_Ext_Decl): Fill the inteface_list
6007         attribute in case of private extension declaration
6008         (P_Type_Declaration): Mark as "abstract" the type declarations
6009         corresponding with protected, synchronized and task interfaces
6010         (P_Declarative_Items): "not" and "overriding" are overriding indicators
6011         for a subprogram or instance declaration.
6012
6013         * sem_ch12.adb (Analyze_Subprogram_Instantiation): Verify that an
6014         instantiation that is a dispatching operation has controlling access
6015         parameters that are null excluding.
6016         Save and restore Ada_Version_Explicit, for implementation of AI-362
6017         (Validate_Derived_Type_Instance): Add check for abstract interface
6018         types.
6019         (Analyze_Formal_Package): Establish Instantiation source for the copy of
6020         the generic that is created to represent the formal package.
6021         (Analyze_Package_Instantiation): Instantiate body immediately if the
6022         package is a predefined unit that contains inlined subprograms, and
6023         we are compiling for a Configurable_Run_Time.
6024         (Instantiate_Formal_Subprogram): Indicate that null default subprogram
6025         If the program has a null default, generate an empty body for it.
6026
6027         * sem_ch6.adb, sem_ch9.adb (Analyze_Subprograms_Declaration): Update
6028         error message condition, null procedures are correctly detected now.
6029         (New_Overloaded_Entity): Bypass trivial overriding indicator check
6030         for subprograms in the context of protected types. Instead, the
6031         indicator is examined in Sem_Ch9 while analysing the subprogram
6032         declaration.
6033         (Check_Overriding_Indicator): Check consistency of overriding indicator
6034         on subprogram stubs as well.
6035         (Analyze_Subprogram_Declaration): Diagnose null procedures declared at
6036         the library level.
6037         (Analize_Subprogram_Specification): When analyzing a subprogram in which
6038         the type of the first formal is a concurrent type, replace this type
6039         by the corresponding record type.
6040         (Analyze_Subprogram_Body): Undo the previous work.
6041         (Analyze_Procedure_Call): If the call has the form Object.Op, the
6042         analysis of the prefix ends up analyzing the call itself, after which
6043         we are done.
6044         (Has_Interface_Formals): New subprogram subsidiary to analyze
6045         subprogram_specification that returns true if some non
6046         class-wide interface subprogram is found
6047         (New_Overloaded_Entity): Modified to give support to abstract
6048         interface types
6049         (Conforming_Types): In Ada 2005 mode, conformance checking of anonymous
6050         access to subprograms must be recursive.
6051         (Is_Unchecked_Conversion): Improve the test that recognizes
6052         instantiations of Unchecked_Conversion, and allows them in bodies that
6053         are to be inlined by the front-end. When the body comes from an
6054         instantiation, a reference to Unchecked_Conversion will be an
6055         Expanded_Name, even though the body has not been analyzed yet.
6056         Replace Is_Overriding and Not_Overriding in subprogram_indication with
6057         Must_Override and Must_Not_Override, to better express intent of AI.
6058         (Analyze_Subprogram_Body): If an overriding indicator is given, check
6059         that it is consistent with the overrinding status of the subprogram
6060         at this point.
6061         (Analyze_Subprogram_Declaration): Indicate that a null procedure is
6062         always inlined.
6063         If the subprogram is a null procedure, indicate that it does not need
6064         a completion.
6065
6066         * sem_disp.adb (Check_Controlling_Type): Give support to entities
6067         available through limited-with clauses.
6068         (Check_Dispatching_Operation): A stub acts like a body, and therefore is
6069         allowed as the last primitive of a tagged type if it has no previous
6070         spec.
6071         (Override_Dispatching_Operation, Check_Dispatching_Operation): Modified
6072         to give support to abstract interface types
6073
6074         * sem_res.adb (Valid_Conversion): Perform an accessibility level check
6075         in the case where the target type is an anonymous access type of an
6076         object or component (that is, when Is_Local_Anonymous_Access is true).
6077         Prevent the special checks for conversions of access discriminants in
6078         the case where the discriminant belongs to a nonlimited type, since
6079         such discriminants have their accessibility level defined in the same
6080         way as a normal component of an anonymous access type.
6081         (Resolve_Allocator): When an allocator's designated type is a class-wide
6082         type, check that the accessibility level of type given in the
6083         allocator's expression or subtype indication is not statically deeper
6084         than the level of the allocator's access type.
6085         (Check_Discriminant_Use): Diagnose discriminant given by an expanded
6086         name in a discriminant constraint of a record component.
6087         (Resolve_Explicit_Dereference): Do not check whether the type is
6088         incomplete when the dereference is a use of an access discriminant in
6089         an initialization procedure.
6090         (Resolve_Type_Conversion): Handle conversions to abstract interface
6091         types.
6092         (Valid_Tagged_Conversion): The conversion of a tagged type to an
6093         abstract interface type is always valid.
6094         (Valid_Conversion): Modified to give support to abstract interface types
6095         (Resolve_Actuals): Enable full error reporting on view conversions
6096         between unrelated by_reference array types.
6097         The rule for view conversions of arrays with aliased components is
6098         weakened in Ada 2005.
6099         Call to obsolescent subprogram is now considered to be a violation of
6100         pragma Restrictions (No_Obsolescent_Features).
6101         (Check_Direct_Boolean_Operator): If the boolean operation has been
6102         constant-folded, there is nothing to check.
6103         (Resolve_Comparison_Op, Resolve_Equality_Op, Resolve_Boolean_Op): Defer
6104         check on possible violation of restriction No_Direct_Boolean_Operators
6105         until after expansion of operands, to prevent spurious errors when
6106         operation is constant-folded.
6107
6108         * sem_type.ads, sem_type.adb (Covers, Intersect_Types, Specific_Type,
6109         Has_Compatible_Type): Modified to give support to abstract interface
6110         types.
6111         (Interface_Present_In_Ancestor): New function to theck if some ancestor
6112         of a given type implements a given interface
6113
6114         * sem_ch4.adb (Analyze_Call): Handle properly an indirect call whose
6115         prefix is a parameterless function that returns an access_to_procedure.
6116         (Transform_Object_Operation): Handle properly function calls of the
6117         form Obj.Op (X), which prior to analysis appear as indexed components.
6118         (Analyze_One_Call): Complete the error notification to help new Ada
6119         2005 users.
6120         (Analyze_Allocator): For an allocator without an initial value, where
6121         the designated type has a constrained partial view, a discriminant
6122         constraint is illegal.
6123
6124 2005-06-14  Robert Dewar  <dewar@adacore.com>
6125
6126         * a-textio.adb (Set_Col): Fix two errors noticed recently, having to
6127         do with treatment of Set_Col when positioned at end of line character.
6128
6129 2005-06-14  Robert Dewar  <dewar@adacore.com>
6130
6131         * atree.adb: (Elist*): Protect against uninitialized field
6132
6133 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
6134
6135         * checks.adb (Install_Null_Excluding_Check): Do not generate checks
6136         for an attribute reference that returns an access type.
6137         (Apply_Discriminant_Check): No need for check if (designated) type has
6138         constrained partial view.
6139
6140         (Apply_Float_Conversion_Check): Generate a short-circuit expression for
6141         both bound checks, rather than a conjunction.
6142         (Insert_Valid_Check): If the expression is an actual that is an indexed
6143         component of a bit-packed array, force expansion of the packed element
6144         reference, because it is specifically inhibited elsewhere.
6145
6146 2005-06-14  Vincent Celier  <celier@adacore.com>
6147
6148         * clean.adb (Clean_Project): Correctly delete executable specified as
6149         absolute path names.
6150
6151         * make.adb (Gnatmake): Allow relative executable path names with
6152         directory information even when project files are used.
6153         (Change_To_Object_Directory): Fail gracefully when unable to change
6154         current working directory to object directory of a project.
6155         (Gnatmake): Remove exception handler that could no longer be exercized
6156         (Compile_Sources.Compile): Use deep copies of arguments, as some of them
6157         may be deallocated by Normalize_Arguments.
6158         (Collect_Arguments): Eliminate empty arguments
6159
6160         * gnatcmd.adb (All_Projects): New Boolean flag, initialized to False,
6161         and set to True when -U is used for GNAT PRETTY or GNAT METRIC.
6162         (Check_Project): Return False when Project is No_Project. Return True
6163         when All_Projects is True.
6164         (GNATCmd): Recognize switch -U for GNAT PRETTY and GNAT METRIC and set
6165         All_Projects to True.
6166         Minor reformatting
6167
6168 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
6169             Javier Miranda  <miranda@adacore.com>
6170             Thomas Quinot  <quinot@adacore.com>
6171             Robert Dewar  <dewar@adacore.com>
6172             Hristian Kirtchev  <kirtchev@adacore.com>
6173             Gary Dismukes  <dismukes@adacore.com>
6174
6175         * einfo.ads, einfo.adb (Is_Local_Anonymous_Access): New flag on
6176         anonymous access types, to indicate that the accessibility level of
6177         the type is determined by that of the enclosing declaration.
6178         (Has_Persistent_BSS): New flag
6179         (Set_Is_Primitive_Wrapper): Upgrade the barrier to allow the usage
6180         of this attribute with functions.
6181         (Is_Primitive_Wrapper): Remove the barrier.
6182         (Has_Specified_Stream_Input, Has_Specified_Stream_Output,
6183         Has_Specified_Stream_Read, Has_Specified_Stream_Write):
6184         New subprograms.
6185         (Set_Has_Specified_Stream_Input, Set_Has_Specified_Stream_Output,
6186         Set_Has_Specified_Stream_Read, Set_Has_Specified_Stream_Write):
6187         New subprograms.
6188         (Is_Pure_Unit_Access_Type): New flag
6189         (Abstract_Interfaces): Complete the assertion to cover all usages.
6190         (Set_Is_Interface): Complete the assertion to cover all usages.
6191         (Is_Primitive_Wrapper): New attribute.
6192         (Is_Obsolescent): Now applies to all entities (though it is only set
6193         for subprograms currently)
6194         New flag:  Has_Constrained_Partial_View, to implemente Ada 2005 AI-363,
6195         which solves various problems concerning access subtypes.
6196         (Has_Persistent_BSS): New flag
6197         (Is_Primitive_Wrapper, Set_Primitive_Wrapper): Code cleanup.
6198         Remove these subprograms because this attribute is currently
6199         not used.
6200         New entity flags:
6201         Has_Specified_Stream_Input (Flag190)
6202         Has_Specified_Stream_Output (Flag191)
6203         Has_Specified_Stream_Read (Flag192)
6204         Has_Specified_Stream_Write (Flag193)
6205         Present in all type and subtype entities. Set for a given view if the
6206         corresponding stream-oriented attribute has been defined by an
6207         attribute definition clause. When such a clause occurs, a TSS is set
6208         on the underlying full view; the flags are used to track visibility of
6209         the attribute definition clause for partial or incomplete views.
6210         (Is_Pure_Unit_Access_Type): New flag
6211         Clarify use of Is_Internal.
6212         (Is_Primitive_Wrapper): New attribute present in primitive subprograms
6213         internally generated to wrap the invocation of tasks and protected
6214         types that implement interfaces.
6215         (Implementation_Base_Type): Documentation correction
6216         (Is_Obsolescent): Now applies to all entities (though it is only set
6217         for subprograms currently)
6218         New flag:  Has_Constrained_Partial_View, to implement Ada 2005 AI-363,
6219         which solves various problems concerning access subtypes.
6220
6221         * exp_ch9.adb (Type_Conformant_Parameters): Introduce mode conformance
6222         for examined parameters. Identify unequal parameter list lengths as
6223         non-conformant parameters.
6224         (Overriding_Possible): Do not check for "All" qualifier in declaration
6225         of controlling access parameter, following prescription of AI-404.
6226         (Build_Entry_Wrapper_Spec, Build_Entry_Wrapper_Body): New subprograms
6227         that build the procedure body that wraps an entry invocation
6228         (Build_Corresponding_Record, Build_Protected_Sub_Specification,
6229         Expand_N_Protected_Body, Expand_N_Protected_Type_Declaration,
6230         Expand_N_Task_Body, Expand_N_Task_Type_Declaration): Modified to
6231         give support to abstract interface types
6232
6233         * freeze.adb (Freeze_Entity): Issue error message if
6234         Is_Pure_Unit_Access_Type set, unless we are in Ada 2005 mode and the
6235         type has no storage pool (Ada 2005) AI-366.
6236         Also modified to give support to abstract interface types
6237         (Freeze_Subprogram): Issue an error for a dispatching subprogram with an
6238         Inline_Always pragma.
6239
6240         * par-ch9.adb (P_Task_Items): Reserved words "not" or "overriding" may
6241         now begin an entry declaration.
6242         (P_Entry_Or_Subprogram_With_Indicator): New procedure in
6243         P_Protected_Operation_Declaration_Opt. Parse an entry declaration or
6244         a subprogram declaration preceded by an overriding indicator.
6245         (P_Protected_Operation_Declaration_Opt): Add case for parsing entry
6246         declarations or subprogram declarations preceded by reserved words
6247         "not" or "overriding".
6248         (P_Entry_Declaration): Update comment. Parse and check overriding
6249         indicator, set semantic flags of entry declarations.
6250         (P_Task): New error message in case of private applied
6251         to a task type declaration.
6252         (P_Protected): New error message in case of private applied
6253         to a task type declaration.
6254
6255         * sem_ch7.adb (Preserve_Full_Attributes): Modified to handle the case
6256         in which the full view of a type implementing an interface is a
6257         concurrent type.
6258         (Has_Overriding_Pragma): Remove obsolete implementation of AI-218.
6259         Declare_Inherited_Private_Subprograms): If an explicit operation
6260         overrides an operation that is inherited in the private part, mark the
6261         explicit one as overriding, to enable overriding indicator checks.
6262         (Preserve_Full_Attributes): Propagate Is_Unchecked_Union attribute from
6263         full view to partial view, to simplify handling in back-end.
6264
6265         * sprint.adb: Print interface lists where needed: derived types,
6266         protected types, task types.
6267         output "is null" for null procedures. Part of implementation of
6268
6269         * sem_cat.adb (Validate_Access_Type_Declaration): Implement AI-366
6270         relaxation of rules for access types in pure, shared passive partitions.
6271
6272         * exp_strm.adb (Build_Mutable_Record_Read_Procedure): Reorganize to
6273         first read discriminants into temporary objects, performing checks on
6274         the read values, then possibly performing discriminant checks on the
6275         actual (if it is constrained), and only finally reading the components
6276         into a constrained temporary object.
6277         (Build_Elementary_Input_Call): Adjust the specific circuitry for the
6278         case of reading discriminants of a mutable record type to recognize
6279         the new form of the code generated by
6280         Build_Mutable_Record_Read_Procedure.
6281
6282         * exp_tss.ads, exp_tss.adb (Make_Init_Proc_Name): Reimplement in terms
6283         of a simple call to Make_TSS_Name.
6284         (Make_TSS_Name_Local): Add the TSS name as the last thing in the name
6285         buffer, in order for Is_TSS to work correctly on local TSS names.
6286
6287         * sem_attr.ads, sem_attr.adb (Resolve_Attribute, case 'Access): Use flag
6288         Is_Local_Anonymous_Access to check legaliy of attributes in the
6289         context of  access components and stand-alone access objects.
6290         (Stream_Attribute_Available): In Ada 95 mode, a stream attribute is
6291         treated as available for a limited private type if there is an
6292         attribute_definition_clause that applies to its full view, but not in
6293         other cases where the attribute is available for the full view
6294         (specifically, the sole fact that the full view is non-limited does not
6295         make the attribute available for the partial view).
6296         (Build_Access_Subprogram_Type): Diagnose attempt to apply 'access to a
6297         non-overloaded intrinsic subprogram.
6298         (Check_Stream_Attribute): Reject an attribute reference for an
6299         unavailable stream attribute even if the prefix is not a limited type
6300         (case of a 'Input attribute reference for an abstract, non-classwide
6301         type)
6302         (Stream_Attribute_Available): New function to determine whether a stream
6303         attribute is available at a place.
6304         (Check_Attribute): Use Stream_Attribute_Available instead of just
6305         testing for TSS presence on the implementation base type.
6306         (Analyze_Attribute): Modified to give support to task interfaces.
6307         (Analyze_Access_Attribute): Add error check for use of an Access (or
6308         Unrestricted_Access) attribute with a subprogram marked as
6309         Inline_Always.
6310         (Analyze_Attribute, case Attribute_Address): Add error check for use of
6311         an Address attribute with a subprogram marked as Inline_Always.
6312         Update Eval_Attribute to handle new value of Width from AI-395
6313
6314         * sem_ch13.adb (Analyze_Stream_TSS_Definition): New subprogram.
6315         (Analyze_Attribute_Definition_Clause, cases Input, Output, Read, Write):
6316         Factor common code across the stream-oriented attribute circcuits into
6317         a new subprogram, Analyze_Stream_TSS_Definition. The new uniform
6318         processing is functionally identical to the previous duplicated one,
6319         except that an expression that denotes an abstract subprogram will now
6320         be rejected, as mandated by AI-195 item 5.
6321
6322         * sem_util.ads, sem_util.adb (Type_Access_Level): Use flag
6323         Is_Local_Anonymous_Access to apply accessibility checks to access
6324         components and stand-alone access objects.
6325         (Has_Discriminant_Dependent_Constraint): Moved to spec for use
6326         elsewhere.
6327         (Is_Potentially_Persistent_Type): New function
6328         (Is_Dependent_Component_Of_Mutable_Object): If the enclosing object is
6329         a heap-object whose type has a constrained partial view, the object is
6330         unconstrained and the component may depend on a discriminant, making its
6331         renaming illegal.
6332
6333         * sinfo.ads, sinfo.adb
6334         (Must_Not_Override): Flag applicable to N_Entry_Declaration.
6335         (Must_Override): Flag applicable to N_Entry_Declaration.
6336         Indicate that interface_list can appear in single task and single
6337         protected declarations.
6338         Replace Is_Overriding and Not_Overriding with Must_Override and
6339         Must_Not_Override, to better express intent of AI.
6340         Is_Overriding, Not_Overriding: Ada2005 flags that indicate the presence
6341         of an overriding indicator in a subprogram or instance.
6342         Ada 2005 (AI-248) Null_Present can appear in a procedure specification.
6343         Add the overriding indicator [[not] overriding] construct to the
6344         following grammar productions:
6345          ENTRY_DECLARATION
6346          GENERIC_INSTANTIATION
6347          SUBPROGRAM_SPECIFICATION
6348
6349         * par-ch10.adb (P_Compilation_Unit): Subprogram declaration or body
6350         can start with an overriding indicator.
6351
6352         * par-ch6.adb (P_Subprogram): Recognize overriding indicator, and set
6353         flags accordingly on subrogram specifications or instances.
6354
6355         * sem_ch8.adb:
6356         (Analyze_Subprogram_Renaming): For a renaming_as_body, verify that the
6357         overriding_indicator, if present, is consistent with status of spec.
6358         Improve error message for null-excluding checks on controlling access
6359         parameters.
6360         (Check_In_Previous_With_Clause): Protect the frontend against
6361         previously reported critical errors in the context clauses.
6362         Save and restore Ada_Version_Explicit, for implementation of AI-362
6363         (Analyze_Subprogram_Renaming): If the new entity is a dispatching
6364         operation verify that controlling formals of the renamed entity that
6365         are access parameters are explicitly non-null.
6366         (Find_Expanded_Name): Improve error message when prefix is an illegal
6367         reference to a private child unit.
6368
6369         * exp_imgv.adb, s-imgwch.ads, s-imgwch.adb, s-valwch.adb,
6370         s-valwch.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb, s-wwdwch.adb:
6371         Rewrite to correspond to new wide character names in AI-395
6372
6373         * par-ch12.adb (P_Formal_Subprogram_Declaration): Recognize null
6374         default procedures.
6375
6376 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
6377             Robert Dewar  <dewar@adacore.com>
6378
6379         * errout.ads, errout.adb (Error_Msg_NW): Only emit warning on user
6380         code, not on the bodies of predefined operations, to cut down on
6381         spurious noise.
6382
6383 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
6384
6385         * exp_aggr.adb (Aggr_Size_OK): An array with no components can always
6386         be expanded in place. The size computation does not require a
6387         subtraction, which would raise an exception on a compiler built with
6388         assertions when the upper bound is Integer'first.
6389         (Flatten): For an array of composite components, take into account the
6390         size of the components to determine whether it is safe to expand the
6391         array into a purely positional representation.
6392
6393 2005-06-14  Thomas Quinot  <quinot@adacore.com>
6394
6395         * exp_ch2.adb (Param_Entity): Take the case of an expanded_name
6396         denoting a formal parameter into account.
6397
6398 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
6399
6400         * exp_ch7.adb (Find_Node_To_Be_Wrapped): If the node appears within
6401         the entry_call alternative of a conditional entry call, wrap the
6402         conditional entry call itself.
6403
6404 2005-06-14  Nicolas Setton  <setton@adacore.com>
6405             Ed Schonberg  <schonberg@adacore.com>
6406
6407         * exp_dbug.ads, exp_dbug.adb (Get_Variant_Part): Fix the encoding of
6408         the "simple_choice" member in a variant record, in accordance with the
6409         description in the package spec: the information output for a constant
6410         should be "S number", not "SS number".
6411         (Get_Encoded_Name): Return at once if not generating code. Avoids name
6412         overflow problem when compiling with -gnatct, for ASIS/gnatmetrics.
6413
6414 2005-06-14  Thomas Quinot  <quinot@adacore.com>
6415
6416         * exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): For an
6417         RACW without any primitives, do not generate the if statement for
6418         dispatching by name in the PolyORB/DSA case, as it would be malformed
6419         (it would have an Elsif_Parts list that is not No_List, but with a
6420         length of 0).
6421
6422 2005-06-14  Robert Dewar  <dewar@adacore.com>
6423
6424         * exp_intr.adb, par-ch5.adb: Minor fix to error message text
6425
6426 2005-06-14  Jose Ruiz  <ruiz@adacore.com>
6427
6428         * fe.h: Add entry for Opt.Exception_Locations_Suppressed so that gigi
6429         can determine whether pragma Suppress_Exception_Locations is in effect.
6430
6431         * utils2.c (build_call_raise): Do not pass the file name to the
6432         exception handler if pragma Suppress_Exception_Locations is in effect.
6433         (build_allocator): Add and process arg IGNORE_INIT_TYPE.
6434
6435 2005-06-14  Emmanuel Briot  <briot@adacore.com>
6436
6437         * g-debpoo.adb (Deallocate, Dereference): Improve output.
6438
6439 2005-06-14  Nicolas Roche  <roche@adacore.com>
6440
6441         * g-diopit.adb (Wildcard_Iterator): Return directly if Path is equal
6442         to ""
6443         (Next_Level): Fix minor bug in handling of ../dir case
6444         (Read): Add dir separator to Directory name so that "" is understood as
6445          "/"
6446
6447 2005-06-14  Pascal Obry  <obry@adacore.com>
6448
6449         * g-dynhta.ads, g-dynhta.adb (Reset): Free the table itself after
6450         releasing the items.
6451
6452 2005-06-14  Vincent Celier  <celier@adacore.com>
6453             Cyrille Comar  <comar@adacore.com>
6454
6455         * g-os_lib.ads, g-os_lib.adb (Non_Blocking_Spawn): Two new versions
6456         with output file descriptor and with output file name.
6457         (Dup, Dup2): Now global procedures as they are used by two subprograms
6458         (Copy): Allocate the 200K buffer on the heap rather than on the stack.
6459
6460 2005-06-14  Thomas Quinot  <quinot@adacore.com>
6461
6462         PR ada/6717
6463
6464         * g-socket.ads, g-socket.adb (Inet_Addr): Special case the all-ones
6465         broadcast address.
6466         (Create_Selector): Bind listening socket used to create the signalling
6467         socket pair to 127.0.0.1 to limit the scope for 'theft' of connection.
6468         Set listen backlog to 1 to ensure that we detect socket theft by a
6469         failure of our own connect(2) call.
6470         (Check_Selector): Improve documentation of the selector mechanism.
6471         (Broadcast_Inet_Addr): New constant.
6472
6473 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
6474
6475         * layout.adb (Discrimify): Remove resetting of Vtype to the underlying
6476         type which turns out to be an incomplete and incorrect fix.
6477         (Layout_Array_Type): Use Underlying_Type when checking whether the scope
6478         of the type is declared in a record (for determination of insertion
6479         type).
6480         (SO_Ref_From_Expr): Test whether Vtype denotes a partial or full view of
6481         a private type and ensure that the primary entity is used for the type
6482         of the newly created function's V formal by taking the Etype of the
6483         view.
6484
6485 2005-06-14  Javier Miranda  <miranda@adacore.com>
6486             Jose Ruiz  <ruiz@adacore.com>
6487             Robert Dewar  <dewar@adacore.com>
6488             Ed Schonberg  <schonberg@adacore.com>
6489
6490         * lib-load.ads, lib-load.adb (Load_Unit): Addition of a new parameter
6491         that indicates if we are parsing a compilation unit found in a
6492         limited-with clause.
6493         It is use to avoid the circularity check.
6494
6495         * par.ads, par.adb (Par): Addition of a new parameter to indicate if
6496         we are parsing a compilation unit found in a limited-with clause. This
6497         is use to avoid the circularity check.
6498
6499         * par-load.adb (Load): Indicate Lib.Load_Unit if we are loading the
6500         unit as a consequence of parsing a limited-with clause. This is used
6501         to avoid the circularity check.
6502
6503         * sem_ch10.adb: Suppress Ada 2005 unit warning if -gnatwY used
6504         (Analyze_Context): Limited-with clauses are now allowed
6505         in more compilation units.
6506         (Analyze_Subunit_Context, Check_Parent): Protect the frontend
6507         againts previously reported critical errors in context clauses
6508         (Install_Limited_Withed_Unit): Code cleanup plus static detection
6509         of two further errors: renamed subprograms and renamed packages
6510         are not allowed in limited with clauses.
6511         (Install_Siblings): Do not install private_with_clauses on the package
6512         declaration for a non-private child unit.
6513         (Re_Install_Parents): When a parent of the subunit is reinstalled,
6514         reset visibility of child units properly.
6515         (Install_Withed_Unit): When a child unit appears in a with_clause of its
6516         parent, it is immediately visible.
6517
6518 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
6519             Emmanuel Briot  <briot@adacore.com>
6520
6521         * lib-xref.ads, lib-xref.adb (Generate_Definition): Treat any entity
6522         declared within an inlined body as referenced, to prevent spurious
6523         warnings.
6524         (Output_One_Ref): If an entity renames an array component, indicate in
6525         the ALI file that this aliases (renames) the array. Capture as well
6526         function renamings that rename predefined operations.
6527         Add information about generic parent for package and subprogram
6528         instances.
6529         (Get_Type_Reference): For a subtype that is the renaming of an actual in
6530         an instantiation, use the first_subtype to ensure that we don't generate
6531         cross-reference information for internal types.
6532         For objects and parameters of a generic private type, retain the '*'
6533         indicator to distinguish such an entity from its type.
6534
6535         * ali.ads (Xref_Entity_Record): New fields Iref_File_Num and Iref_Line,
6536         to store information about instantiated entities.
6537
6538         * ali.adb (Scan_ALI): Add support for parsing the reference to the
6539         generic parent
6540
6541         * xref_lib.adb (Skip_To_Matching_Closing_Bracket): New subprogram
6542         (Parse_Identifier_Info, Parse_Token): Add support for the generic parent
6543         information.
6544
6545 2005-06-10  Doug Rupp  <rupp@adacore.com>
6546             Arnaud Charlet  <charlet@adacore.com>
6547             Olivier Hainque  <hainque@adacore.com>
6548             Jose Ruiz  <ruiz@adacore.com>
6549
6550         * Make-lang.in: Add initialize.o when needed.
6551         Remove obsolete references to RT_FLAGS.
6552         Add missing dependencies for sdefault.o
6553
6554         * initialize.c: New file.
6555
6556         * init.c [VMS] Declare ADA$ externs weak to fix build problem in IVMS.
6557         [VMS] cond_signal_table: Fix problem in declaration.
6558         [VMS] __gnat_error_handler: rewrite.
6559         Move all __gnat_initialize() routines to initialize.c
6560         Specialize the former "hpux" section to "hppa hpux", as this is what the
6561         section really is here for and we now have other hpux ports that need
6562         different contents.
6563         (__gnat_adjust_context_for_raise) i386-linux: First version of this
6564         function for this target. Adjust PC by one in the machine context. This
6565         adjustment was previously done in the MD_FALLBACK_FRAME_STATE_FOR, but
6566         it is more reliable to do that in the signal handler itself.
6567         (__gnat_install_handler) i386-linux: Set SA_SIGINFO in the sigaction
6568         flags, so that the handler is passed the context structure to adjust
6569         prior to the raise.
6570         (__gnat_error_handler) i386-linux: Adjust the signature to match what a
6571         SA_SIGINFO sigaction should look like. Call
6572         __gnat_adjust_context_for_raise before actually raising. Cleanup unused
6573         Machine_State_Operations stuff.
6574         Add conditional code so that the x86_64 is also supported.
6575
6576 2005-06-14  Pascal Obry  <obry@adacore.com>
6577
6578         * mdll.adb (Get_Dll_Name): New routine that returns the DLL name given
6579         the library name.
6580
6581 2005-06-14  Robert Dewar  <dewar@adacore.com>
6582
6583         * opt.ads, opt.adb: New flags for persistent_bss mode
6584         Add Ada_Version_Explicit, for implementation of AI-362
6585         Add Assertions_Enabled_Config and associated handling
6586         Needed since setting can be changed with Assertion_Policy pragma
6587         Add new flag Warn_On_Ada_2005_Compatibility
6588
6589         * switch-c.adb: Recognize -gnatwy/Y
6590         Set Ada_Version_Explicit, for implementation of AI-362
6591         The -gnatg switch now includes -gnatyu
6592
6593         * usage.adb: Add -gnatwy/Y
6594         Remove wrong asterisk on -gnatwX line
6595         Add line for -gnatyu switch
6596
6597 2005-06-14  Vincent Celier  <celier@adacore.com>
6598
6599         * osint.adb (Add_Default_Search_Dirs): Put source and object
6600         directories of project files before directories coming from
6601         ADA_INCLUDE_PATH and ADA_OBJECTS_PATH.
6602
6603 2005-06-14  Robert Dewar  <dewar@adacore.com>
6604
6605         PR ada/15613
6606
6607         * par-ch2.adb (Scan_Pragma_Argument): New procedure
6608         (P_Pragma): Implement RM 2.8(4) check for no pos args after named args
6609
6610 2005-06-14  Vincent Celier  <celier@adacore.com>
6611
6612         * prep.adb (Preprocess): Ignore error when scanning the first token of
6613         a line.
6614
6615 2005-06-14  Vincent Celier  <celier@adacore.com>
6616
6617         * prj-nmsc.adb (Suffix_For): Change default suffix for C++ to ".cpp"
6618         (Check_Stand_Alone_Library): If the specified reference symbol file does
6619         not exist, only issue a warning when the symbol policy is not
6620         Controlled. And, when symbol policy is Compliant, set the symbol
6621         policy to Autonomous.
6622
6623 2005-06-14  Vincent Celier  <celier@adacore.com>
6624
6625         * prj-part.adb (Pre_Parse_Context_Clause): Call Set_Is_Not_Last_In_List
6626         when the project file in a with clause is not the last one, that is the
6627         project file name is followed by a comma.
6628         * prj-pp.adb: (First_With_In_List): New Boolean global variable
6629         (Print): Issue list of project files separated by commas in with clauses
6630         according to the values returned by Is_Not_Last_In_List.
6631         * prj-tree.ads, prj-tree.adb: (Is_Not_Last_In_List): New function
6632         (Set_Is_Not_Last_In_List): New procedure
6633
6634 2005-06-14  Eric Botcazou  <ebotcazou@adacore.com>
6635
6636         * s-atacco.ads: Put a pragma No_Strict_Aliasing on Object_Pointer.
6637
6638 2005-06-14  Robert Dewar  <dewar@adacore.com>
6639
6640         * scng.adb: Add call to new Check_EOF routine
6641         (Accumulate_Checksum): Properly handle wide wide char >= 2 ** 24
6642         Add some comments regarding wide character handling
6643
6644         * style.ads, styleg.ads, styleg.adb: Implement new style switch -gnatyu
6645
6646         * stylesw.ads, stylesw.adb: Implement new style switch -gnatyu
6647
6648         * g-utf_32.ads, g-utf_32.adb (Is_UTF_32_Non_Graphic): Other_Format
6649         characters are now considered graphic characters and hence yield false
6650         in this call.
6651
6652         * nmake.adt: Modify header so that xnmake does not generate output
6653         files with multiple blank lines.
6654
6655         * treeprs.adt: Remove a blank line so that output from xtreeprs does
6656         not have an extra blank line
6657
6658 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
6659
6660         * sem_aggr.adb (Aggregate_Constraint_Checks): Apply a conversion to the
6661         expression when the component type is an anonymous access type to
6662         ensure that appropriate accessibility checks are done.
6663
6664         * sem_ch5.adb (Analyze_Assignment): Apply a implicit conversion to the
6665         expression of an assignment when the target object is of an anonymous
6666         access type. This ensures that required accessibility checks are done.
6667         (One_Bound): Move the check for type Universal_Integer to
6668         Process_Bounds.
6669         (Process_Bounds): Check whether the type of the preanalyzed range is
6670         Universal_Integer, and in that case set Typ to Integer_Type prior
6671         to setting the type of the original range and the calls to One_Bound.
6672
6673 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
6674
6675         * sem_case.adb (Expand_Others_Choice): Improve warning.
6676
6677 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
6678
6679         * sem_eval.adb (Subtypes_Statically_Match): Use discriminant
6680         constraint of full view if present, when other type is discriminated.
6681         (Eval_Relational_Op): Recognize tests of pointer values against Null,
6682         when the pointer is known to be non-null, and emit appropriate warning.
6683
6684 2005-06-14  Robert Dewar  <dewar@adacore.com>
6685             Ed Schonberg  <schonberg@adacore.com>
6686
6687         PR ada/10671
6688
6689         * sem_prag.adb: Implement pragma Persistent_BSS
6690         Remove obsolete pragma Persistent_Data, Persistent_Object
6691         Set Ada_Version_Explicit, for implementation of AI-362
6692         Test Ada_Version_Explicit for Preelaborate_05 and Pure_05
6693         Add processing for pragma Pure_05 and Preelaborate_05
6694         Add processing for Assertion_Policy pragma
6695         Add pragma identifiers for Assert
6696         (Analyze_Pragma, case Assert): Check number of arguments
6697         (Process_Inline): Additional guard against an illegal program, where the
6698         argument of the pragma is undefined, and warnings on redundant
6699         constructs are enabled.
6700         (Analyze_Pragma, case Obsolescent): Allow an optional second argument
6701         Ada_05 to this pragma, specifying that the pragma is only active in
6702         Ada_05 mode.
6703         (Check_Arg_Order): New procedure
6704         Add appropriate calls to this procedure throughout
6705         Also throughout, check entity name before doing any other checks
6706
6707         * snames.h snames.ads, snames.adb: Add pragma Persistent_BSS
6708         Remove obsolete pragma Persistent_Data, Persistent_Object
6709         Add entries for pragma Pure_05 and Preelaborate_05
6710         Add entries for Assertion_Policy pragma and associated names
6711         Add some names for pragma argument processing
6712
6713         * tbuild.ads, tbuild.adb: (Make_Linker_Section_Pragma): New function
6714
6715 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
6716
6717         * sem_warn.adb (Warn_On_Known_Condition): If the constant expression
6718         appears within a negation (either from source or as a rewriting of
6719         inequality) adjust text of warning accordingly.
6720
6721 2005-06-14  Thomas Quinot  <quinot@adacore.com>
6722
6723         * s-strxdr.adb: Follow AI95-00132
6724
6725 2005-06-14  Arnaud Charlet  <charlet@adacore.com>
6726
6727         * s-tasren.adb (Exceptional_Complete_Rendezvous): Fix race condition.
6728
6729 2005-06-14  Arnaud Charlet  <charlet@adacore.com>
6730             Jose Ruiz  <ruiz@adacore.com>
6731
6732         * s-tposen.adb, s-tpobop.adb
6733         (Exceptional_Complete_Rendezvous): Save the occurrence and not only
6734         the exception id.
6735         (PO_Do_Or_Queue): Before queuing a task on an entry queue we check that
6736         there is no violation of the Max_Entry_Queue_Length restriction (if it
6737         has been set); Program_Error is raised otherwise.
6738         (Requeue_Call): Before requeuing the task on the target entry queue we
6739         check that there is no violation of the Max_Entry_Queue_Length
6740         restriction (if it has been set); Program_Error is raised otherwise.
6741
6742 2005-06-14  Robert Dewar  <dewar@adacore.com>
6743
6744         * styleg.adb: Fix several remaining problems in -gnatyu switch
6745         Blank line count not reset at start
6746         Scanning outside source buffer in some cases
6747         Confusing message for blanks at end of file
6748         Non-empty blank lines not recognized
6749
6750         * nmake.adt: Modify header so that xnmake does not generate output
6751         files with multiple blank lines.
6752
6753         * treeprs.adt: Remove a blank line so that output from xtreeprs does
6754         not have an extra blank line
6755
6756 2005-06-14  Sergey Rybin  <rybin@adacore.com>
6757
6758         * styleg-c.adb (Body_With_No_Spec): Remove ':' from warning message.
6759
6760 2005-06-14  Doug Rupp  <rupp@adacore.com>
6761             Vincent Celier  <celier@adacore.com>
6762
6763         * vms_conv.ads, vms_conv.adb: Remove "Library" command.
6764         Update copyright.
6765
6766         * vms_data.ads: Add entry for -gnaty/Y [NO]ADA_2005_COMPATIBILITY
6767         Remove "Library" command.
6768         Change keyword for style check -gnatyd from NOCRLF to
6769         DOS_LINE_ENDINGS.
6770         Remove useless second style check keyword NONE
6771         Remove help documentation for inexistent style check keyword
6772         RM_COLUMN_LAYOUT.
6773         Add help documentation for style check keywords DOS_LINE_ENDINGS,
6774         UNNECESSARY_BLANK_LINES and XTRA_PARENS
6775         Add UNNECESSARY_BLANK_LINES for -gnatyu
6776         Add qualifiers /ALL_PROJECTS (-U) for GNAT PRETTY and GNAT METRIC
6777
6778         * ug_words: Add entry for -gnaty/Y [NO]ADA_2005_COMPATIBILITY
6779
6780 2005-06-14  Vincent Celier  <celier@adacore.com>
6781
6782         * makegpr.adb (Compile_Link_With_Gnatmake): Invoke gnatmake with -d if
6783         gprmake was invoked with -d.
6784         (Compile_Sources): If -d was used, output the "completed ..." message
6785         for each compilation.
6786         (Scan_Arg): Recognize new switch -d
6787         When -c and at least one main is specified, set
6788         Unique_Compile to True to guarantee that no other sources will be
6789         compiled.
6790
6791 2005-06-14  Matthew Heaney  <heaney@adacore.com>
6792
6793         * a-swunha.ads, a-swunha.adb: Removed. Replaced by a-swuwha.ad[sb]
6794         * a-swuwha.ads, a-swuwha.adb: New files
6795
6796         * a-szunha.ads, a-szunha.adb: Removed, replaced by a-szuzha.ad[sb]
6797         * a-szuzha.ads, a-szuzha.adb: New files.
6798
6799         * a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb, a-crbtgk.ads,
6800         a-crbtgk.adb, a-crbltr.ads, a-coorse.ads, a-coorse.adb, a-convec.ads,
6801         a-convec.adb, a-coinve.ads, a-coinve.adb, a-cohata.ads, a-cohama.ads,
6802         a-cohama.adb, a-ciorse.ads, a-ciorse.adb, a-cihama.ads, a-cihama.adb,
6803         a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cdlili.ads,
6804         a-cdlili.adb, a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cohase.adb,
6805         a-cohase.ads, a-ciorma.ads, a-coorma.ads, a-ciormu.ads, a-coormu.ads,
6806         a-swunha.adb, a-stunha.adb, a-ciorma.adb, a-coorma.adb, a-shcain.ads,
6807         a-shcain.adb, a-chtgke.ads, a-chtgke.adb, a-stwiha.ads, a-stwiha.adb,
6808         a-strhas.adb, a-stzhas.adb: synchronized to the latest version of the
6809         Ada 2005 RM.
6810
6811 2005-06-10  Eric Botcazou  <ebotcazou@adacore.com>
6812             Olivier Hainque  <hainque@adacore.com>
6813             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6814             Pascal Obry  <obry@adacore.com>
6815
6816         * gigi.h: (build_allocator): Add arg IGNORE_INIT_TYPE.
6817
6818         * trans.c (call_to_gnu): Issue a warning for users of Starlet when
6819         making a temporary around a procedure call because of non-addressable
6820         actual parameter.
6821         (process_freeze_entity): If entity is a private type, capture size
6822         information that may have been computed for the full view.
6823         (tree_transform, case N_Allocator): If have initializing expression,
6824         check type for Has_Constrained_Partial_View and pass that to
6825         build_allocator.
6826         (tree_transform, case N_Return_Statement): Pass extra arg to
6827         build_allocator.
6828
6829         * decl.c (annotate_value): Remove early return if -gnatR is not
6830         specified.
6831         (gnat_to_gnu_field): Don't make a packable type for a component clause
6832         if the position is byte aligned, the field is aliased, and the clause
6833         size isn't a multiple of the packable alignment. It serves no useful
6834         purpose packing-wise and would be rejected later on.
6835         (gnat_to_gnu_entity, case object): Pass extra arg to build_allocator.
6836
6837         PR ada/20515
6838         (gnat_to_gnu_entity): Remove use of macro _WIN32 which is wrong in the
6839         context of cross compilers. We use TARGET_DLLIMPORT_DECL_ATTRIBUTES
6840         instead.
6841         (create_concat_name): Idem.
6842
6843 2005-06-10  Robert Dewar  <dewar@adacore.com>
6844             Eric Botcazou  <ebotcazou@adacore.com>
6845             Ben Brosgol  <brosgol@adacore.com>
6846             Cyrille Comar  <comar@adacore.com>
6847             Sergey Rybin  <rybin@adacore.com>
6848             Pascal Obry  <obry@adacore.com>
6849
6850         * gnat_rm.texi: Add documentation for pragma Persistent_BSS
6851         Document second argument (Ada_05) of pragma Obsolescent
6852         Add note that call to subprogram marked with pragma Obsolescent
6853         is now considered to be a violation of program Restrictions
6854         (No_Obsolescent_Features).
6855         (Implementation Defined Pragmas) <Machine_Attribute>: Make it clear
6856         that only machine-dependent attributes are supported.
6857
6858         * gnat_ugn.texi:
6859         Commented out menu lines and empty section for gnatclean examples
6860         Document -gnatwy/Y
6861         Fix some over long lines
6862         Clarify and enhance documentation of ADA_PROJECT_PATH.
6863         Rework section 2.11.2(3) about linking with a non-GNU compiler.
6864         Mention new switch -fcallgraph-info.
6865         Mention new switch -fstack-usage.
6866         For gnatpp, replace '-notab' with '-N' and add this option to Index
6867         Corrected VMS example.
6868         VMS keyword for style check -gnatyd is DOS_LINE_ENDINGS, no NOCRLF
6869         Minor reformatting
6870         Add documentation for -gnatyu switch (unnecessary blank lines)
6871         Document new switch -U for GNAT PRETTY and GNAT METRIC
6872         Add note about Stdcall being handled as C convention on non Windows OS.
6873         Remove some junk typo in description of gnatbind -S switch
6874         Remove reference to Extensions_Allowed pragma
6875         Document the new order of the directories to be searched (source and
6876         object directories of project files before directories in ADA_*_PATH
6877         environment variables.
6878
6879         * g-trasym.ads: Document that IRIX is supported
6880
6881 2005-06-10  Arnaud Charlet  <charlet@adacore.com>
6882
6883         * Makefile.in: Add initialize.o when needed.
6884         Adapt to new VMS package body Symbols and subunits
6885         No specialized version of a-sytaco is needed for VxWorks.
6886
6887         * a-wichun.ads, a-wichun.adb, a-zchuni.ads, a-zchuni.adb: New files.
6888         * a-zchara.ads, a-widcha.ads: New files.
6889
6890         * system-hpux-ia64.ads: New file.
6891
6892         * i-vxwork-x86.ads, i-vxwork.ads (intContext): Add this function which
6893         is imported from the VxWorks kernel.
6894
6895 2005-06-14  Robert Dewar  <dewar@adacore.com>
6896
6897         * g-soliop-mingw.ads, g-soccon-vms.adb, a-swmwco.ads, exp_smem.adb,
6898         fmap.adb, a-szmzco.ads, s-traent-vms.adb, s-traent-vms.ads,
6899         a-direio.ads, a-exctra.ads, a-exexda.adb, a-exextr.adb, a-stream.ads,
6900         s-restri.ads, s-restri.adb, s-traent.adb, s-traent.ads, a-slcain.adb,
6901         a-stzhas.ads, a-tiinau.adb, comperr.adb, exp_ch11.adb, g-boubuf.adb,
6902         g-calend.adb, g-debpoo.ads, g-moreex.ads, gprep.adb, g-regpat.ads,
6903         i-cexten.ads, i-os2thr.ads, makeutl.ads, memroot.adb, mlib-prj.adb,
6904         namet.adb, namet.ads, prj-makr.adb, prj-proc.adb, sem_dist.adb,
6905         sem_elim.ads, s-valint.adb, s-vallli.adb, s-vallli.adb, s-vallli.ads,
6906         s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads, scn.adb,
6907         s-tasinf.adb, targparm.adb, uname.adb, uname.ads, xnmake.adb,
6908         xsinfo.adb, a-direct.ads: Remove extra blank lines. Minor reformatting.
6909
6910 2005-06-14  Thomas Quinot  <quinot@adacore.com>
6911
6912         * xeinfo.adb: Fix typo in comment
6913
6914 2005-06-14  Javier Miranda  <miranda@adacore.com>
6915
6916         * repinfo.ads: Fix typo in comment
6917
6918 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
6919
6920         * s-finimp.adb (Parent_Tag): Delete this imported function (function
6921         Parent_Tag is now in the visible part of Ada.Tags).
6922         (Get_Deep_Controller): Call Ada.Tags.Parent_Tag directly instead of
6923         using imported function.
6924
6925 2005-06-14  Bernard Banner  <banner@adacore.com>
6926
6927         * vxaddr2line.adb: Add support for Windows hosted x86 vxworks. Should
6928         also apply for handling support for VxSim 653.
6929
6930 2005-06-14  Eric Botcazou  <ebotcazou@adacore.com>
6931
6932         * xsnames.adb: Add automatic generation of snames.h.
6933
6934 2005-06-14  Thomas Quinot  <quinot@adacore.com>
6935
6936         * gen-soccon.c: Add IP_MULTICAST_IF constant
6937         Minor reformatting and adjustments to prevent warnings.
6938
6939 2005-06-14  Pascal Obry  <obry@adacore.com>
6940
6941         * seh_init.c: Do not include <sys/stat.h>. This is not needed.
6942
6943 2005-06-03  Andrew Pinski  <pinskia@physics.uc.edu>
6944
6945         * trans.c (gnat_gimplify_expr): Call
6946         recompute_tree_invarant_for_addr_expr when we change
6947         the operand of the ADDR_EXPR.
6948
6949 2005-05-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6950
6951         * misc.c: Don't include errors.h.
6952
6953 2005-05-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6954
6955         * raise.c (db): Add ATTRIBUTE_PRINTF_2.
6956
6957 2005-05-29  Kazu Hirata  <kazu@cs.umass.edu>
6958
6959         * cal.c, decl.c, init.c, raise.c, trans.c, utils2.c: Fix
6960         comment typos.
6961         * gnat_rm.texi, gnat_ugn.texi: Fix typos.
6962
6963 2005-05-16  Nathanael Nerode <neroden@gcc.gnu.org>
6964
6965         PR ada/20270
6966         * Makefile.in: Make TGT_LIB behave correctly.
6967
6968 2005-04-23  DJ Delorie  <dj@redhat.com>
6969
6970         * misc.c: Adjust warning() callers.
6971
6972 2005-04-16  Laurent GUERBY  <laurent@guerby.net>
6973
6974         PR ada/18847
6975         * a-nudira.adb (Value): Check for valid string.
6976         * a-nuflra.adb (Value): Likewise.
6977
6978 2005-04-11  Richard Sandiford  <rsandifo@redhat.com>
6979
6980         * lang.opt: Refer to the GCC internals documentation instead of c.opt.
6981
6982 2005-04-10  Kazu Hirata  <kazu@cs.umass.edu>
6983
6984         * adaint.c, init.c, tracebak.c: Fix comment typos.
6985         * gnat-style.texi, gnat_rm.texi, gnat_ugn.texi: Fix typos.
6986
6987 2005-04-07  Laurent GUERBY  <laurent@guerby.net>
6988             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6989
6990         * Makefile.in: Add make ifeq define for hppa linux tasking support.
6991         * system-hpux.ads: Define Signed_Zeros to be True.
6992         * system-linux-hppa.ads, s-osinte-linux-hppa.ads: New files.
6993
6994 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
6995
6996         * adaint.c, cal.c, decl.c, gigi.h, gmem.c, init.c, link.c,
6997         raise.c, tracebak.c, trans.c, utils2.c, utils.c: Fix comment
6998         typos.
6999
7000 2005-03-30  Tom Tromey  <tromey@redhat.com>
7001
7002         * decl.c (gnat_substitute_in_type): Don't handle FILE_TYPE.
7003
7004 2005-03-30  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
7005
7006         * adaint.c (_gnat_set_close_on_exec): Mark parameters unused.
7007
7008 2005-03-29  Robert Dewar  <dewar@adacore.com>
7009
7010         * sem_res.adb (Resolve_Real_Literal): Generate warning if static
7011         fixed-point expression has value that is not a multiple of the Small
7012         value.
7013
7014         * opt.ads (Warn_On_Bad_Fixed_Value): New flag
7015
7016         * s-taprop-tru64.adb (RT_Resolution): Return an integer number of
7017         nanoseconds.
7018
7019         * ug_words: Add entry for [NO_]BAD_FIXED_VALUES for -gnatwb/-gnatwB
7020
7021 2005-03-29  Vincent Celier  <celier@adacore.com>
7022
7023         * mlib-tgt-vms-ia64.adb, mlib-tgt-vms-alpha.adb
7024         (Build_Dynamic_Library.Version_String): Return the empty string when
7025         Lib_Version is empty or when the symbol policy is not Autonomous.
7026
7027         * symbols-vms-alpha.adb (Finalize): For symbol policy Compliant, when
7028         a symbol is not in the reference symbol file, increase the Major ID
7029         and set the Minor ID to 0.
7030         Use gsmatch=lequal instead of gsmatch=equal
7031
7032 2005-03-29  Doug Rupp  <rupp@adacore.com>
7033
7034         * adaint.c (__gnat_to_canonical_file_spec [VMS]): Check for logical
7035         name and translate.
7036
7037 2005-03-29  Javier Miranda  <miranda@adacore.com>
7038
7039         * a-tags.ads, a-tags.adb (Get_TSD): Subprogram removed.
7040         (Inherit_DT): The first formal has been redefined as a Tag.
7041         This allows us the removal of the subprogram Get_TSD.
7042         (TSD): Replace the call to Get_TSD by the actual code.
7043
7044         * exp_disp.ads, exp_disp.adb: Remove support to call Get_TSD.
7045         (Make_DT): Upgrade the call to Inherit_TSD according to the
7046         new interface: the first formal is now a Tag.
7047
7048         * i-cpp.ads, i-cpp.adb (CPP_Inherit_DT): The first formal has been
7049         redefined as a Tag.
7050         This change allows us to remove the subprogram Get_TSD.
7051         (CPP_Get_TSD): Subprogram removed.
7052         (TSD): Replace the call to CPP_Get_TSD by the actual code.
7053
7054         * rtsfind.ads: Remove support to call the run-time
7055         subprogram Get_TSD
7056
7057 2005-03-29  Robert Dewar  <dewar@adacore.com>
7058
7059         * errutil.adb, errout.adb:
7060         Minor comment updates on Line_Terminator references
7061
7062         * par-ch10.adb: Add ??? comment about line terminator
7063
7064         * styleg.adb (Check_Line_Terminator): Add check for new switch -gnatyd
7065         (check dos line terminator).
7066         (Check_Line_Max_Length): New procedure, split off from the existing
7067         Check_Line_Terminator routine. Separating this out allows -gnatyf to
7068         be properly recognized.
7069
7070         * styleg.adb: Add ??? comment for line terminator reference
7071
7072         * scng.adb (Check_End_Of_Line): Fix bug of -gnatyf being ignored
7073         (Check_End_Of_Line): Add -gnatyd handling (check dos line terminators)
7074
7075         * styleg.ads (Check_Line_Terminator): Add check for new switch -gnatyd
7076         (check dos line terminator).
7077         (Check_Line_Max_Length): New procedure, split off from the existing
7078         Check_Line_Terminator routine. Separating this out allows -gnatyf to
7079         be properly recognized.
7080
7081         * stylesw.ads, stylesw.adb:
7082         Add handling for new -gnatyd switch (check dos line terminator)
7083
7084         * switch-c.adb: Recognize new -gnatyd switch (check dos line terminator)
7085         Recognize -gnatwb/-gnatwB switches
7086         Include Warn_On_Bad_Fixed_Value for -gnatg
7087
7088         * usage.adb:
7089         Add line for new -gnatyd switch (check dos line terminator)
7090
7091         * usage.adb: Add lines for -gnatwb/-gnatwB
7092
7093         * vms_data.ads: Add entry for NOCRLF (-gnatyd)
7094
7095         * vms_data.ads: [NO_]BAD_FIXED_VALUES synonym for -gnatwb/-gnatwB
7096
7097         * gnat_ugn.texi: Fix overlong lines
7098         Document new -gnatyd switch
7099         Document new -gnatwb/-gnatwB switches
7100
7101 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
7102
7103         * exp_ch4.adb (Has_Unconstrained_UU_Component): Use the base type in
7104         order to retrieve the component list of the type, before examining
7105         individual components.
7106
7107         * sem_type.adb (Covers): Types are compatible if one is the base type
7108         of the other, even though their base types might differ when private
7109         views are involved.
7110
7111 2005-03-29  Thomas Quinot  <quinot@adacore.com>
7112
7113         * exp_dist.adb (Add_RAST_Features, PolyORB version): Set the From_Any,
7114         To_Any and TypeCode TSSs on RAS types directly using Set_TSS, instead
7115         of using Set_Renaming_TSS. This ensures that the TSS bodies are not
7116         analyzed if expansion is disabled (which could otherwise cause spurious
7117         error messages if expansion has been disabled due to previous
7118         (unrelated) errors).
7119
7120         * sem_prag.adb (Analyze_Pragma, case Asynchronous): If RAS expansion
7121         is disabled, the entity denoted by the argument is the access type
7122         itself, not an underlying record type, so there is no need to go back
7123         to the Corresponding_Remote_Type.
7124
7125 2005-03-29  Gary Dismukes  <dismukes@adacore.com>
7126             Robert Dewar  <dewar@adacore.com>
7127
7128         * exp_intr.adb (Expand_Dispatching_Constructor_Call): New procedure to
7129         expand a call to an instance of
7130         Ada.Tags.Generic_Dispatching_Constructor into a dispatching call to the
7131         Constructor actual of the instance. A class-wide membership
7132         check is also generated, to ensure that the tag passed to the instance
7133         denotes a type in the class.
7134         (Expand_Intrinsic_Call): Call Expand_Dispatching_Constructor in the case
7135         of Name_Generic_Dispatching_Constructor.
7136
7137         * Makefile.rtl: Add a-tgdico.ads to the list of library units (new Ada
7138         05 unit for AI-260-02).
7139
7140         * a-tgdico.ads: New file.
7141
7142         * impunit.adb (Non_Imp_File_Names_05): Add entry "a-tgdico" for new
7143         predefined Ada 05 generic unit Ada.Tags.Generic_Dispatching_Constructor.
7144
7145         * snames.ads, snames.adb (Preset_Names): Add entry for
7146         Generic_Dispatching_Constructor.
7147
7148         PR ada/20300
7149
7150         * sem_ch8.adb (Find_Direct_Name): Go to root type for check of
7151         character type cases.
7152         (Analyze_Subprogram_Renaming): Add special handling for
7153         the case of renaming of stream attributes when the renaming denotes a
7154         generic formal subprogram association for an abstract formal subprogram.
7155         Check that the attribute is a primitive stream attribute (and not
7156         a class-wide stream attribute) and then rewrite the attribute name
7157         as the name of the appropriate compiler-generated stream primitive.
7158
7159 2005-03-29  Robert Dewar  <dewar@adacore.com>
7160
7161         * exp_util.adb (Remove_Side_Effects): Properly propagate arguments to
7162         recursive calls.
7163         (Is_Possibly_Unaligned_Object): Correct typo that
7164         resulted in inaccurate result for unaligned scalars within records.
7165
7166 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
7167
7168         * freeze.adb (Freeze_Record_Type): If the type of the component is an
7169         itype whose parent is controlled and not yet frozen, do not create a
7170         freeze node for the itype if expansion is disabled.
7171
7172 2005-03-29  Vincent Celier  <celier@adacore.com>
7173
7174         * make.adb (Gnatmake): Don't fail if the main project file is declared
7175         as having no Ada sources. Do not display message "no sources to
7176         compile" in quiet output.
7177
7178 2005-03-29  Doug Rupp  <rupp@adacore.com>
7179
7180         * Makefile.in [VMS] (EXTRA_GNATTOOLS): Add vms_help and gnat.hlp as
7181         extra tools.
7182
7183 2005-03-29  Robert Dewar  <dewar@adacore.com>
7184
7185         * par-ch12.adb (P_Generic): Give better msg for illegal private generic
7186         child.
7187
7188 2005-03-29  Robert Dewar  <dewar@adacore.com>
7189
7190         * par-ch3.adb (P_Type_Declaration): Fix bad error recovery after
7191         missing TYPE Improve the error message generated when compiling a
7192         limited interface in Ada83 or Ada95 mode.
7193
7194 2005-03-29  Robert Dewar  <dewar@adacore.com>
7195
7196         * par-ch4.adb (P_Name): When a bad attribute is returned, return error,
7197         rather than proceed ahead using a junk attribute name.
7198
7199 2005-03-29  Vincent Celier  <celier@adacore.com>
7200
7201         * prj.ads, prj.adb: (Project_Data): Add new component Display_Name
7202
7203         * prj-part.adb (Parse_Single_Project): Set the location of a project
7204         on its defining identifier, rather than on the reserved word "project".
7205
7206         * prj-proc.adb (Expression): Adapt to the fact that default of external
7207         references may be string expressions, not always literal strings.
7208         (Recursive_Process): Set Display_Name equal to Name
7209         when Location is No_Location, that is when there is no actual file.
7210         Get the Display_Name of the project from the source, when it is not a
7211         virtual project.
7212         (Process): Use the Display_Name in error messages
7213
7214         * prj-strt.adb (External_Reference): Allow default to be string
7215         expressions, not only literal strings.
7216
7217 2005-03-29  Vincent Celier  <celier@adacore.com>
7218
7219         * prj-nmsc.adb (Check_Stand_Alone_Library): Do not forbid the symbol
7220         file and the reference symbol file to be the same file.
7221
7222 2005-03-29  Thomas Quinot  <quinot@adacore.com>
7223
7224         * sem_cat.adb (Validate_Remote_Types_Type_Conversion): Perform check to
7225         forbid conversion of a local access-to-subprogram type to a remote one.
7226
7227         * sem_util.adb (Wrong_Type): For a record type that is the expanded
7228         equivalent type for a remote access-to-subprogram type, go back to the
7229         original RAS entity when displaying an error message, so the casing is
7230         the original source casing.
7231
7232 2005-03-29  Robert Dewar  <dewar@adacore.com>
7233
7234         * sem_ch11.adb (Analyze_Raise_Statement): Change message for warning
7235         on param update.
7236
7237 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
7238
7239         * sem_ch4.adb (Analyze_Selected_Component): Do not generate an actual
7240         subtype if code is being pre-analyzed, to prevent un-expanded
7241         references to protected formals, among others.
7242         (Analyze_Explicit_Dereference): If the overloaded prefix includes some
7243         interpretation that can be a call, include the result of the call as a
7244         possible interpretation of the dereference.
7245
7246         * sem_ch5.adb (Process_Bounds): Determine type of range by
7247         pre-analyzing a copy of the original range, and then analyze the range
7248         with the expected type.
7249
7250         * sem_res.adb (Check_Parameterless_Call): For an explicit dereference
7251         with an overloaded prefix where not all interpretations yield an
7252         access to subprogram, do not rewrite node as a call.
7253         (Resolve_Explicit_Dereference): Recognize the previous case and rewrite
7254         the node as a call once the context identifies the interpretation of
7255         the prefix whose call yields the context type.
7256         (Valid_Conversion): For the case of a conversion between
7257         local access-to-subprogram types, check subtype conformance using
7258         Check_Subtype_Conformant instead of Subtype_Conformant, to have a more
7259         detailed error message.
7260
7261 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
7262
7263         * sem_ch6.adb (Set_Formal_Mode): If the subtype has a non_null
7264         indicator, indicate that the formal can never be null.
7265         (Process_Formals): If a formal has a non_null indicator, insert the
7266         resulting subtype immediately before the enclosing subprogram decl,
7267         and not at the beginning of the corresponding declarative part, to
7268         prevent access before elaboration (Ada2005).
7269
7270 2005-03-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7271
7272         PR ada/19956
7273         * utils.c (finish_record_type): Use variable_size when setting sizes.
7274
7275 2005-03-29  Robert Dewar  <dewar@adacore.com>
7276
7277         * xtreeprs.adb, xnmake.adb: Use Stream_IO instead of Text_IO to
7278         guarantee Unix style line terminators for the output files, even when
7279         running on windows.
7280
7281 2005-03-29  Robert Dewar  <dewar@adacore.com>
7282
7283         * a-direct.ads, a-direct.adb (Start_Search): Free allocated search
7284         buffer if an exception is raised.
7285
7286 2005-03-29  Ed Falis  <falis@adacore.com>
7287
7288         * cio.c: Undefine putchar and getchar for VTHREADS: incompatible with
7289         VxWorks 653 1.4
7290
7291 2005-03-29  Robert Dewar  <dewar@adacore.com>
7292
7293         * sem_util.ads: Minor reformatting
7294         * gnat_rm.texi: Minor editing.
7295
7296 2005-03-29  Eric Botcazou  <ebotcazou@adacore.com>
7297
7298         * decl.c (gnat_to_gnu_entity) <E_Variable>: Rework comment.
7299         * trans.c (tree_transform) <N_Identifier>: Use correct predicates.
7300
7301 2005-03-24  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
7302
7303         * adaint.c (__gnat_portable_spawn): Adjust cast.
7304
7305 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
7306
7307         * misc.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
7308
7309 2005-03-17  Pascal Obry  <obry@adacore.com>
7310
7311         * adaint.h, adaint.c (__gnat_waitpid): Moved to expect.c where it is
7312         used.
7313
7314         * expect.c (__gnat_waitpid): Moved here from adaint.c.
7315         Reimplement under Win32 using Win32 API.
7316
7317         (__gnat_kill) [Win32]: Properly close the process handle before leaving
7318         this routine.
7319
7320 2005-03-17  Eric Botcazou  <ebotcazou@adacore.com>
7321
7322         * ada-tree.h: (DECL_RENAMING_GLOBAL_P): New predicate.
7323         (DECL_RENAMED_OBJECT): New accessor macro.
7324         (SET_DECL_RENAMED_OBJECT): New setter macro.
7325
7326         * decl.c (gnat_to_gnu_entity) <E_Variable>: Stabilize the renamed
7327         object in all cases.  Attach the renamed object to the VAR_DECL.
7328         (gnat_to_gnu_field): Do not lift the record wrapper if the size of the
7329         field is not prescribed.
7330
7331         * misc.c (gnat_handle_option): Handle -gnatO separately.
7332         (gnat_print_decl) <VAR_DECL>: New case.
7333         Print the DECL_RENAMED_OBJECT node.
7334
7335         * lang.opt:  Declare separate -gnatO option.
7336
7337         * trans.c (tree_transform) <N_Identifier>: If the object is a renaming
7338         pointer, replace it with the renamed object.
7339         <N_Validate_Unchecked_Conversion>: Warn for a conversion to a fat
7340         pointer type if the source is not a fat pointer type whose underlying
7341         array has the same non-zero alias set as that of the destination array.
7342
7343 2005-03-17  Javier Miranda  <miranda@adacore.com>
7344
7345         * a-tags.ads, a-tags.adb (Get_Expanded_Name): Removed.
7346         (Get_Inheritance_Depth): Removed.
7347         (Set_Inheritance_Depth): Removed.
7348
7349         * rtsfind.ads, exp_disp.ads, exp_disp.adb: Remove support to call the
7350         subprogram Get_Expanded_Name because it is not referenced by the
7351         frontend.
7352
7353         * i-cpp.ads, i-cpp.adb (CPP_Get_Expanded_Name): Removed.
7354         (CPP_Get_Inheritance_Depth): Removed.
7355         (CPP_Set_Inheritance_Depth): Removed.
7356
7357         * tbuild.ads, tbuild.adb (Make_DT_Component): Removed.
7358
7359 2005-03-17  Robert Dewar  <dewar@adacore.com>
7360
7361         * checks.adb (Apply_Array_Size_Check): Completely remove this for GCC
7362         3, since we now expect GCC 3 to do all the work.
7363
7364 2005-03-17  Javier Miranda  <miranda@adacore.com>
7365
7366         * einfo.adb (First_Private_Entity, Set_First_Private_Entity): Addition
7367         of one barrier to avoid wrong usage of this attribute.
7368
7369         * sem_ch12.adb (Formal_Entity): Fix erroneous usage of the attribute
7370         First_Private_Entity.
7371
7372         * sem_ch7.adb (Install_Visible_Declarations): Add a barrier to protect
7373         the subprogram against wrong usage.
7374         Adapt the code to traverse the entities in the
7375         scope of a record_type because in addition to its usage regarding
7376         packages, this subprogram is also called by Expand_N_Freeze_Entity
7377         to install the visible declarations of the enclosing scope of a
7378         record_type_with_private to establish the proper visibility before
7379         freezing the entity and related subprograms.
7380
7381 2005-03-17  Ed Schonberg  <schonberg@adacore.com>
7382
7383         * exp_ch2.adb (In_Assignment_Context): Recognize slice assignments to
7384         entry formals.
7385
7386 2005-03-17  Thomas Quinot  <quinot@adacore.com>
7387
7388         * exp_ch3.adb (Check_Attr): New subprogram.
7389         (Check_Stream_Attribute): Move the code for 13.13.2(9/1) enforcement
7390         into a new Check_Attr subprogram, in order to provide a more
7391         explanatory error message (including the name of the missing attribute).
7392         (Stream_Operation_OK): Renamed from Stream_Operations_OK. This
7393         subprogram determines whether a default implementation exists for a
7394         given stream attribute.
7395         (Make_Predefined_Primitive_Specs, Predefined_Primitive_Bodies):
7396         Determine whether to generate a default implementation for each stream
7397         attribute separately, as this depends on the specific attribute.
7398
7399         * exp_strm.adb (Make_Field_Attribute): For the case of an illegal
7400         limited extension where a stream attribute is missing for a limited
7401         component (which will have been flagged in Exp_Ch3.Sem_Attr), do not
7402         generate a bogus reference to the missing attribute to prevent
7403         cascaded errors. Instead, generate a null statement.
7404
7405         * sem_attr.adb (Check_Stream_Attribute): A stream attribute is
7406         available for a limited type if it has been specified for an ancestor
7407         of the type.
7408
7409 2005-03-17  Ed Schonberg  <schonberg@adacore.com>
7410
7411         * exp_ch6.adb (Expand_Inlined_Call): handle the case when the renamed
7412         entity is an operator.
7413
7414 2005-03-17  Thomas Quinot  <quinot@adacore.com>
7415
7416         * exp_dist.adb (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist
7417         spec, to make this predicate available to other units.
7418
7419         * rtsfind.adb (Check_RPC): Use Sem_Dist.Get_PCS_Name instead of
7420         reimplementing it.
7421
7422         * sem_ch8.adb: Disable expansion of remote access-to-subprogram types
7423         when no distribution runtime library is available.
7424
7425         * sem_res.adb, sem_dist.adb: Disable expansion of remote
7426         access-to-subprogram types when no distribution runtime library is
7427         available.
7428         (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist spec, to make this
7429         predicate available to other units.
7430
7431         * sem_dist.ads (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist
7432         spec, to make this predicate available to other units.
7433
7434 2005-03-17  Vincent Celier  <celier@adacore.com>
7435
7436         * make.adb (Insert_Project_Sources): Make sure the Q is always
7437         initialized.
7438
7439         * prj-nmsc.adb (Check_Ada_Naming_Scheme_Validity): Check Naming against
7440         the default for the tree, not the global default naming.
7441
7442         * prj-proc.adb (Recursive_Process): No need to put the default naming
7443         in the project data, it's already there.
7444
7445 2005-03-17  Doug Rupp  <rupp@adacore.com>
7446
7447         * Makefile.in: (ia64-hp-*vms*): Use s-crtl-vms64.ads.
7448
7449         * 5xcrtl.ads: Renamed to...
7450         * s-crtl-vms64.ads: ...this new file
7451
7452 2005-03-17  Robert Dewar  <dewar@adacore.com>
7453
7454         PR ada/19519
7455
7456         * namet.adb (Copy_One_Character): Set proper wide character encoding
7457         for upper half character if we have upper half encoding.
7458
7459 2005-03-17  Robert Dewar  <dewar@adacore.com>
7460
7461         * par.adb (Par): Improved msg for attempt to recompile predefined unit
7462
7463 2005-03-17  Thomas Quinot  <quinot@adacore.com>
7464
7465         * sem_ch13.adb (New_Stream_Function, New_Stream_Procedure): For a
7466         tagged limited type, the TSS is a newly built renaming declaration:
7467         insert it using Set_TSS, not Copy_TSS.
7468
7469 2005-03-17  Javier Miranda  <miranda@adacore.com>
7470
7471         * sem_ch4.adb (Try_Primitive_Operation, Class_Wide_Operation and
7472         Try_Object_Operation): Analyze the object that is accessible
7473         through the prefix of the subprogram call before we apply
7474         the transformation of the object-operation notation.
7475
7476 2005-03-17  Jose Ruiz  <ruiz@adacore.com>
7477
7478         * s-taprob.adb (Initialize_Protection): Initialize the protected
7479         object's owner to Null_Task.
7480         (Lock): If pragma Detect_Blocking is in effect and the caller of this
7481         procedure is already the protected object's owner then Program_Error
7482         is raised. In addition the protected object's owner is updated.
7483         (Lock_Read_Only): If pragma Detect_Blocking is in effect and the caller
7484         of this procedure is already the protected object's owner then
7485         Program_Error is raised.
7486         In addition the protected object's owner is updated.
7487         (Unlock): Remove the ownership of the protected object.
7488
7489         * s-taprob.ads (Protection): Add the field Owner, used to store the
7490         protected object's owner.
7491         This component is needed for detecting one type of potentially blocking
7492         operations (external calls on a protected subprogram with the same
7493         target object as that of the protected action). Document the rest of
7494         the components.
7495
7496         * s-tposen.adb, s-tpoben.adb (Initialize_Protection_Entries):
7497         Initialize the protected object's owner to Null_Task.
7498         (Lock_Read_Only_Entries): If pragma Detect_Blocking is in effect and the
7499         caller of this procedure is already the protected object's owner then
7500         Program_Error is raised.
7501         Do not raise Program_Error when this procedure is called from a
7502         protected action.
7503         (Unlock_Entries): Remove the ownership of the protected object.
7504         (Lock_Entries): If pragma Detect_Blocking is in effect and the caller
7505         of this procedure is already the protected object's owner then
7506         Program_Error is raised.
7507         Do not raise Program_Error when this procedure is called from
7508         a protected action.
7509
7510         * s-tposen.ads, s-tpoben.ads (Protection_Entries): Add the field Owner,
7511         used to store the protected object's owner.
7512
7513         * s-tpobop.adb (Protected_Entry_Call): If pragma Detect_Blocking is in
7514         effect and this procedure (a potentially blocking operation) is called
7515         from whithin a protected action, Program_Error is raised.
7516         (Timed_Protected_Entry_Call): If pragma Detect_Blocking is in effect
7517         and this procedure (a potentially blocking operation) is called from
7518         whithin a protected action, Program_Error is raised.
7519
7520 2005-03-17  Vincent Celier  <celier@adacore.com>
7521             Nicolas Setton  <setton@adacore.com>
7522
7523         * mlib-tgt-darwin.adb (Build_Dynamic_Library): Remove the "-fini"
7524         switch, not supported by the linker on Darwin. Add '_' before
7525         <library>init, as this character is added unconditionally by the
7526         compiler.
7527         (Is_Archive_Ext): Replace the wrong library extension ".dyld" by the
7528         correct one ".dylib". This fixes detection of the archive files when
7529         building library projects.
7530
7531 2005-03-17  Vincent Celier  <celier@adacore.com>
7532
7533         * switch-m.adb (Normalize_Compiler_Switches): Recognize switches
7534         -gnat83, -gnat95 and -gnat05.
7535
7536 2005-03-17  Vasiliy Fofanov  <fofanov@adacore.com>
7537
7538         * gnat_ugn.texi: Document gnatmem restriction
7539
7540 2005-03-17  Thomas Quinot  <quinot@adacore.com>
7541
7542         * snames.adb: Document new TSS names introduced by exp_dist/exp_tss
7543         cleanup
7544
7545 2005-03-17  Robert Dewar  <dewar@adacore.com>
7546
7547         * s-interr.ads, s-interr.adb, sem_ch3.adb, prj.ads, prj.adb,
7548         a-interr.adb, a-interr.ads, s-interr-sigaction.adb, s-interr-dummy.adb,
7549         s-interr-vms.adb, s-interr-vxworks.adb: Minor reformatting
7550
7551         * casing.adb: Comment improvements
7552
7553 2005-03-17  Pascal Obry  <obry@adacore.com>
7554
7555         * g-expect.adb: Minor reformatting.
7556
7557 2005-03-15  Zack Weinberg  <zack@codesourcery.com>
7558
7559         * Make-lang.in (doc/gnat_ugn_unw.info, doc/gnat_rm.info)
7560         (doc/gnat_ugn_unw.dvi, doc/gnat_rm.dvi): Add gcc-vers.texi
7561         to dependencies.
7562
7563 2005-03-15  Vincent Celier  <celier@adacore.com>
7564
7565         * mlib-tgt-darwin.adb (Library_Exist_For, Library_File_Name_For):
7566         Add new parameter In_Tree to specify the project tree: needed
7567         by the project manager. Adapt to changes in project manager
7568         using new parameter In_Tree.
7569
7570 2005-03-15  Jakub Jelinek  <jakub@redhat.com>
7571
7572         * Make-lang.in (ada/treeprs.ads, ada/einfo.h, ada/sinfo.h,
7573         ada/nmake.adb, ada/nmake.ads): Use unique subdirectories of
7574         ada/bldtools to avoid make -jN failures.
7575
7576 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
7577
7578         * trans.c (gnat_to_gnu) <N_Return_Statement>: Set gnu_result
7579         to NULL_TREE on entry.
7580
7581 2005-03-15  Robert Dewar  <dewar@adacore.com>
7582
7583         * system-unixware.ads, system-linux-ia64.ads, system-freebsd-x86.ads,
7584         system-lynxos-ppc.ads, system-lynxos-x86.ads, system-linux-x86_64.ads,
7585         system-tru64.ads, system-aix.ads, system-vxworks-sparcv9.ads,
7586         system-vxworks-xscale.ads, system-solaris-x86.ads, system-irix-o32.ads,
7587         system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
7588         system-linux-x86.ads, system-vxworks-mips.ads, system-os2.ads,
7589         system-interix.ads, system-solaris-sparc.ads,
7590         system-solaris-sparcv9.ads, system-vms.ads, system-mingw.ads,
7591         system-vms-zcx.ads, system-vxworks-ppc.ads, system-vxworks-alpha.ads,
7592         system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
7593         system-linux-ppc.ads, system-linux-alpha.ads, system-linux-sparc.ads,
7594         system-linux-s390.ads, system-linux-s390x.ads: Add line defining
7595         Compiler_System_Version to be False.
7596
7597         * opt.ads: Add new flag Opt.Address_Is_Private
7598
7599         * targparm.ads, targparm.adb: Set new flag Opt.Address_Is_Private
7600         Add new parameter Compiler_System_Version to avoid checking for
7601         completeness of parameters when compiler is compiling itself.
7602         Allows old versions of GNAT to be compiled with new compiler.
7603
7604 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
7605
7606         * s-osinte-tru64.ads, s-osinte-tru64.adb (Get_Stack_Base): New function
7607         (Hide_Yellow_Zone): New procedure to hide the Yellow Zone of the
7608         calling thread.
7609         (Stack_Base_Available): New flag.
7610         (Get_Page_Size): New overloaded functions imported from C.
7611         (PROT_NONE, PROT_READ, PROT_WRITE, PROT_EXEC, PROT_ALL,
7612         PROT_ON, PROT_OFF): New constants.
7613         (mprotect): New function imported from C.
7614         (pthread_teb_t): New record type.
7615
7616         * s-taprop-tru64.adb: (Enter_Task): Invoke Hide_Yellow_Zone.
7617         (Create_Task): Account for the Yellow Zone and the guard page.
7618
7619 2005-03-15  Vincent Celier  <celier@adacore.com>
7620
7621         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
7622         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
7623         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb,
7624         mlib-tgt-vxworks.adb, mlib-tgt-lynxos.adb (Library_Exist_For,
7625         Library_File_Name_For): Add new parameter In_Tree
7626         to specify the project tree: needed by the project manager.
7627         Adapt to changes in project manager using new parameter In_Tree.
7628         Remove local imports, use functions in System.CRTL.
7629
7630         * make.adb, clean.adb, gnatcmd.adb (Project_Tree): New constant needed
7631         to use the project manager.
7632
7633         * makeutl.ads, makeutl.adb (Linker_Options_Switches): New parameter
7634         In_Tree to designate the project tree. Adapt to changes in the project
7635         manager, using In_Tree.
7636
7637         * mlib-prj.ads, mlib-prj.adb (Build_Library, Check_Library,
7638         Copy_Interface_Sources): Add new parameter In_Tree to specify the
7639         project tree: needed by the project manager.
7640         (Build_Library): Check that Arg'Length >= 6 before checking if it
7641         contains "--RTS=...".
7642
7643         * mlib-tgt.ads, mlib-tgt.adb (Library_Exist_For,
7644         Library_File_Name_For): Add new parameter In_Tree to specify the
7645         project tree: needed by the project manager.
7646
7647         * prj.ads, prj.adb: Major modifications to allow several project trees
7648         in memory at the same time.
7649         Change tables to dynamic tables and hash tables to dynamic hash
7650         tables. Move tables and hash tables from Prj.Com (in the visible part)
7651         and Prj.Env (in the private part). Move some constants from the visible
7652         part to the private part. Make other constants deferred.
7653         (Project_Empty): Make it a variable, not a function
7654         (Empty_Project): Add parameter Tree. Returns the data with the default
7655         naming data of the project tree Tree.
7656         (Initialize): After updating Std_Naming_Data, copy its value to the
7657         component Naming of Project Empty.
7658         (Register_Default_Naming_Scheme): Use and update the default naming
7659         component of the project tree, instead of the global variable
7660         Std_Naming_Data.
7661         (Standard_Naming_Data): Add defaulted parameter Tree. If project tree
7662         Tree is not defaulted, return the default naming data of the Tree.
7663         (Initial_Buffer_Size): Constant moved from private part
7664         (Default_Ada_Spec_Suffix_Id, Default_Ada_Body_Suffix_Id, Slash_Id); new
7665         variables initialized in procedure Initialize.
7666         (Add_To_Buffer): Add two in out parameters to replace global variables
7667         Buffer and Buffer_Last.
7668         (Default_Ada_Spec_Suffix, Default_Body_Spec_Suffix, Slash): New
7669         functions.
7670         Adapt to changes to use new type Project_Tree_Ref and dynamic tables and
7671         hash tables.
7672         (Initialize, Reset, register-Default_Namng-Scheme): Add a new parameter
7673         for the project tree.
7674         (Project_Tree_Data, Project_Tree_Ref, No_Project): Declare types and
7675         constant at the beginning of the package spec, so that they cane be used
7676         in subprograms before their full declarations.
7677         (Standard_Naming_Data): Add defaulted parameter of type Project_Node_Ref
7678         (Empty_Project): Add parameter of type Project_Node_Ref
7679         (Private_Project_Tree_Data): Add component Default_Naming of type
7680         Naming_Data.
7681         (Buffer, Buffer_Last): remove global variables
7682         (Add_To_Buffer): Add two in out parameters to replace global variables
7683         Buffer and Buffer_Last.
7684         (Current_Packages_To_Check): Remove global variable
7685         (Empty_Name): Move to private part
7686         (No-Symbols): Make it a constant
7687         (Private_Project_Tree_Data): New type for the private part of the
7688         project tree data.
7689         (Project_Tree_Data): New type for the data of a project tree
7690         (Project_Tree_Ref): New type to designate a project tree
7691         (Initialize, Reset, register-Default_Namng-Scheme): Add a new parameter
7692         for the project tree.
7693
7694         * prj-attr.ads: Add with Table; needed, as package Prj no longer
7695         imports package Table.
7696
7697         * prj-com.adb: Remove empty, no longer needed body
7698
7699         * prj-com.ads: Move most of the content of this package to package Prj.
7700
7701         * prj-dect.ads, prj-dect.adb (Parse): New parameters In_Tree to
7702         designate the project node tree and Packages_To_Check to replace
7703         global variable Current_Packages_To_Check.
7704         Add new parameters In_Tree and Packages_To_Check to local subprograms,
7705         when needed. Adapt to changes in project manager with project node tree
7706         In_Tree.
7707
7708         * prj-env.ads, prj-env.adb: Add new parameter In_Tree to designate the
7709         project tree to most subprograms. Move tables and hash tables to
7710         private part of package Prj.
7711         Adapt to changes in project manager using project tree In_Tree.
7712
7713         * prj-makr.adb (Tree): New constant to designate the project node tree
7714         Adapt to change in project manager using project node tree Tree
7715
7716         * prj-nmsc.ads, prj-nmsc.adb (Check_Stand_Alone_Library): Correctly
7717         display the Library_Src_Dir and the Library_Dir.
7718         Add new parameter In_Tree to designate the project node tree to most
7719         subprograms. Adapt to changes in the project manager, using project tree
7720         In_Tree.
7721         (Check_Naming_Scheme): Do not alter the casing on platforms where
7722         the casing of file names is not significant.
7723         (Check): Add new parameter In_Tree to designate the
7724
7725         * prj-pars.ads, prj-pars.adb (Parse): Add new parameter In_Tree to
7726         designate the project tree.
7727         Declare a project node tree to call Prj.Part.Parse and Prj.Proc.Process
7728
7729         * prj-part.ads, prj-part.adb (Buffer, Buffer_Last): Global variables,
7730         to replace those that were in the private part of package Prj.
7731         Add new parameter In__Tree to designate the project node tree to most
7732         subprograms. Adapt to change in Prj.Tree with project node tree In_Tree.
7733         (Post_Parse_Context_Clause): When specifying the project node of a with
7734         clause, indicate that it is a limited with only if there is "limited"
7735         in the with clause, not necessarily when In_Limited is True.
7736         (Parse): Add new parameter In_Tree to designate the project node tree
7737
7738         * prj-pp.ads, prj-pp.adb (Pretty_Print): Add new parameter In_Tree to
7739         designate the project node tree. Adapt to change in Prj.Tree with
7740         project node tree In_Tree.
7741
7742         * prj-proc.ads, prj-proc.adb (Recursive_Process): Specify the project
7743         tree In_Tree in the call to function Empty_Process to give its initial
7744         value to the project data Processed_Data.
7745         Add new parameters In_Tree to designate the project tree and
7746         From_Project_Node_Tree to designate the project node tree to several
7747         subprograms. Adapt to change in project manager with project tree
7748         In_Tree and project node tree From_Project_Node_Tree.
7749
7750         * prj-strt.ads, prj-strt.adb (Buffer, Buffer_Last): Global variables,
7751         to replace those that were in the private part of package Prj.
7752         Add new parameter In_Tree to designate the project node tree to most
7753         subprograms. Adapt to change in Prj.Tree with project node tree In_Tree.
7754
7755         * prj-tree.ads, prj-tree.adb: Add new parameter of type
7756         Project_Node_Tree_Ref to most subprograms.
7757         Use this new parameter to store project nodes in the designated project
7758         node tree.
7759         (Project_Node_Tree_Ref): New type to designate a project node tree
7760         (Tree_Private_Part): Change table to dynamic table and hash tables to
7761         dynamic hash tables.
7762
7763         * prj-util.ads, prj-util.adb: Add new parameter In_Tree to designate
7764         the project tree to most subprograms. Adapt to changes in project
7765         manager using project tree In_Tree.
7766
7767         * makegpr.adb (Project_Tree): New constant needed to use project
7768         manager.
7769
7770 2005-03-15  Olivier Hainque  <hainque@adacore.com>
7771
7772         * s-intman-posix.adb (Notify_Exception): Adjust signature, as handler
7773         for sigactions with SA_SIGINFO set. Call
7774         __gnat_adjust_context_for_raise before raising, to perform the
7775         potentially required adjustments to the machine context for the GCC
7776         unwinder.
7777
7778         * raise.h (__gnat_adjust_context_for_raise): New prototype.
7779
7780         * init.c (__gnat_adjust_context_for_raise) HPUX: Initial revision.
7781         Adjust PC by one in the provided machine context.
7782         (__gnat_install_handler) HPUX: Set SA_SIGINFO in the sigaction flags,
7783         so that the handler is passed the context structure to adjust prior to
7784         the raise.
7785         (__gnat_error_handler) HPUX: Adjust the signature to match what an
7786         SA_SIGINFO sigaction should look like. Call
7787         __gnat_adjust_context_for_raise before actually raising.
7788         (__gnat_adjust_context_for_raise): Default noop to help PC
7789         adjustments before raise from signal handlers.
7790         (__gnat_error_handler): Indirectly call a predicate function to
7791         determine if a condition should be resignaled or not.
7792         (__gnat_set_resignal_predicate): User interface to modify the predicate.
7793         (__gnat_default_resignal_p): Default GNAT predicate.
7794
7795 2005-03-15  Doug Rupp  <rupp@adacore.com>
7796
7797         * adaint.c: Prefix #include of VMS system header files with vms/
7798         [VMS] (HOST_EXECUTABLE_SUFFIX, HOST_OBJECT_SUFFIX): Define for VMS.
7799         Do not define a dummy function "convert_addresses" under Darwin,
7800         not needed.
7801
7802         * tb-alvms.c, expect.c: Prefix #include of VMS system header files
7803         with vms/
7804
7805 2005-03-15  Nicolas Setton  <setton@adacore.com>
7806
7807         * tracebak.c: Under Darwin, use the same unwinding mechanisms as under
7808         PPC/AIX.
7809
7810 2005-03-15  Robert Dewar  <dewar@adacore.com>
7811
7812         * a-reatim.ads, a-reatim.adb: Add functions Minutes and Seconds for
7813         AI-386.
7814
7815         * a-retide.ads: Minor comment changes
7816
7817 2005-03-15  Robert Dewar  <dewar@adacore.com>
7818
7819         * a-stzunb.adb, a-stzunb.adb a-stzunb.ads, a-stzunb.ads,
7820         a-stwiun.ads, a-stwiun.adb, a-strunb.ads, a-strunb.adb: Move
7821         Realloc_For_Chunk to private part of package.
7822         New subprograms for AI-301
7823
7824         * a-szuzti.adb, a-suteio.adb, a-swuwti.adb: Improve efficiency of
7825         Get_Line procedure.
7826         Avoid unnecessary use of Get/Set_Wide_String
7827
7828 2005-03-15  Robert Dewar  <dewar@adacore.com>
7829
7830         PR ada/13470
7831
7832         * a-stunau.ads, a-stunau.adb:
7833         Change interface to allow efficient (and correct) implementation
7834         The previous changes to allow extra space in unbounded strings had
7835         left this interface a bit broken.
7836
7837         * a-suteio.adb: Avoid unnecessary use of Get/Set_String
7838
7839         * g-spipat.ads, g-spipat.adb: New interface for Get_String
7840         Minor reformatting (function specs)
7841
7842         * g-spitbo.adb: New interface for Get_String
7843
7844         * g-spitbo.ads: Minor reformatting
7845
7846         * a-swunau.ads, a-swunau.adb: New interface for Get_Wide_String
7847
7848         * a-szunau.ads, a-szunau.adb: New interface for Get_Wide_Wide_String
7849
7850 2005-03-15  Javier Miranda  <miranda@adacore.com>
7851             Robert Dewar  <dewar@adacore.com>
7852             Thomas Quinot  <quinot@adacore.com>
7853             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7854
7855         * atree.ads, atree.adb: Add support for Elist24 field
7856
7857         * atree.h: Fix wrong definition of Field27
7858         Add support for Elist16 field
7859         Add support for Elist24 field
7860
7861         * einfo.ads, einfo.adb (Abstract_Interfaces,
7862         Set_Abstract_Interfaces): New subprograms.
7863         (Abstract_Interface_Alias, Set_Abstract_Interface_Alias): New
7864         subprograms.
7865         (Access_Disp_Table, Set_Access_Disp_Table): Modified to handle a list of
7866         entities rather than a single node.
7867         (Is_Interface, Set_Is_Interface): New subprogram
7868         (First_Tag_Component): New syntesized attribute
7869         (Next_Tag_Component): New synthesized attribute
7870         (Write_Entity_Flags): Upgraded to write Is_Interface
7871         (Write_Field24_Name): Upgraded to write Abstract_Interfaces
7872         (Write_Field25_Name): Upgraded to write Abstract_Interface_Alias
7873         (Task_Body_Procedure): New subprogram to read this attribute.
7874         (Set_Task_Body_Procedure): New subprogram to set this attribute.
7875         (Has_Controlled_Component): Now applies to all entities.
7876         This is only a documentation change, since it always worked to apply
7877         this to other than composite types (yielding false), but now this is
7878         official.
7879         Update documentation on Must_Be_Byte_Aligned for new spec
7880
7881         * tbuild.adb, exp_dist.adb, exp_disp.adb, exp_ch3.ads, exp_ch3.adb,
7882         exp_attr.adb, exp_aggr.adb, exp_ch4.adb, exp_ch5.adb: Upgrade all the
7883         uses of the Access_Disp_Table attribute to reference the first dispatch
7884         table associated with a tagged type. As
7885         part of the implementation of abstract interface types,
7886         Access_Disp_Table has been redefined to contain a list of dispatch
7887         tables (rather than a single dispatch table).
7888         Similarly, upgrade all the references to Tag_Component by the
7889         new attribute First_Tag_Component.
7890         (Find_Inherited_TSS): Moved to exp_tss.
7891         Clean up test in Expand_N_Object_Declaration for cases
7892         where we need to do a separate assignment of the initial value.
7893         (Expand_N_Object_Declaration): If the expression in the
7894         declaration of a tagged type is an aggregate, no need to generate an
7895         additional tag assignment.
7896         (Freeze_Type): Now a function that returns True if the N_Freeze_Entity
7897         is to be deleted.
7898         Bit packed array ops are only called if operands are known to be
7899         aligned.
7900         (Component_Equality): When returning an N_Raise_Program_Error statement,
7901         ensure that its Etype is set to Empty to avoid confusing GIGI (which
7902         expects that only expressions have a bona fide type).
7903         (Make_Tag_Ctrl_Assignment): Use Build_Actual_Subtype to correctly
7904         determine the amount of data to be copied.
7905
7906         * par.adb (P_Interface_Type_Definition): New subprogram that parses the
7907         new syntax rule of Ada 2005 interfaces (for AI-251 and AI-345):
7908             INTERFACE_TYPE_DEFINITION ::=
7909               [limited | task | protected | synchronized] interface
7910                 [AND interface_list]
7911
7912         * par-ch3.adb (P_Type_Declaration): Modified to give support to
7913         interfaces.
7914         (P_Derived_Type_Def_Or_Private_Ext_Decl): Modified to give support to
7915         interfaces.
7916         (P_Interface_Type_Definition): New subprogram that parses the new
7917         syntax rule of Ada 2005 interfaces
7918         (P_Identifier_Declarations): fix two occurrences of 'RENAMES' in error
7919         messages by the correct RENAMES (quotes removed).
7920
7921         * sem_prag.adb: Upgrade all the references to Tag_Component by the new
7922         attribute First_Tag_Component.
7923
7924         * sinfo.ads, sinfo.adb: Remove OK_For_Stream flag, not used, not needed
7925         (Interface_List, Set_Interface_List): New subprograms.
7926         (Interface_Present, Set_Interface_Present): New subprograms.
7927         (Limited_Present, Set_Limited_Present): Available also in derived
7928         type definition nodes.
7929         (Protected_Present, Set_Protected_Present): Available also in
7930         record type definition and
7931         derived type definition nodes.
7932         (Synchronized_Present, Set_Synchronized_Present): New subprograms.
7933         (Task_Present, Set_Task_Present): New subprogram.
7934         (Task_Body_Procedure): Removed.
7935         (Set_Task_Body_Procedure): Removed.
7936         These subprogram have been removed because the attribute
7937         Task_Body_Procedure has been moved to the corresponding task type
7938         or task subtype entity to leave a field free to store the list
7939         of interfaces implemented by a task (for AI-345)
7940         Add Expression field to N_Raise_Statement node for Ada 2005 AI-361
7941         (Null_Exclusion_Present): Change to Flag11, to avoid conflict with
7942         expression flag Do_Range_Check
7943         (Exception_Junk): Change to Flag7 to accomodate above change
7944         (Box_Present, Default_Name, Specification, Set_Box_Present,
7945         Set_Default_Name, Set_Specification): Expand the expression
7946         "X in N_Formal_Subprogram_Declaration" into the corresponding
7947         two comparisons. Required to use the csinfo tool.
7948
7949         * exp_ch11.adb (Expand_N_Raise_Statement): Deal with case where
7950         "with string" given.
7951
7952         * sem_ch11.adb (Analyze_Raise_Statement): Handle case where string
7953         expression given.
7954
7955         * par-ch11.adb (P_Raise_Statement): Recognize with string expression
7956         in 2005 mode
7957
7958         * exp_ch9.adb (Build_Task_Proc_Specification): Modified to use entity
7959         attribute Task_Body_Procedure rather than the old semantic field that
7960         was available in the task_type_declaration node.
7961
7962         * par-ch12.adb (P_Formal_Type_Definition): Modified to handle formal
7963         interface type definitions.
7964         (P_Formal_Derived_Type_Definition): Modified to handle the list of
7965         interfaces.
7966
7967         * par-ch9.adb (P_Task): Modified to handle the list of interfaces in a
7968         task type declaration.
7969         (P_Protected): Modified to handle the list of interfaces in a
7970         protected type declaration.
7971
7972 2005-03-15  Doug Rupp  <rupp@adacore.com>
7973             Vincent Celier  <celier@adacore.com>
7974
7975         * bindgen.adb (Gen_Main_C): Change WBI __posix_exit to decc$posix_exit
7976         (Gen_Output_File_C): Likewise.
7977         (Gen_Main_C): Issue #include <stdlib.h> to avoid warning
7978
7979 2005-03-15  Thomas Quinot  <quinot@adacore.com>
7980
7981         * checks.adb (Get_E_First_Or_Last): When the expression being retrieved
7982         is an N_Raise_Constraint_Error node, create a new copy of it without
7983         going through a call to Duplicate_Subexpr.
7984
7985 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
7986             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7987             Nicolas Setton  <setton@adacore.com>
7988             Ed Schonberg  <schonberg@adacore.com>
7989
7990         PR ada/19900
7991         PR ada/19408
7992         PR ada/19140
7993         PR ada/20255
7994
7995         * decl.c (gnat_to_gnu_field): Reject aliased components with a
7996         representation clause that prescribes a size not equal to the rounded
7997         size of their types.
7998         (gnat_to_gnu_entity, case E_Component): Always look at
7999         Original_Record_Component if Present and not the entity.
8000         (gnat_to_gnu_entity, case E_Record_Subtype): Rework handling of subtypes
8001         of tagged extension types by not making field for components that are
8002         inside the parent.
8003         (gnat_to_gnu_entity) <E_Record_Type>: Fix typo in the alignment formula
8004         (gnat_to_gnu_entity) <E_Variable>: Do not convert again the
8005         expression to the type of the object when the object is constant.
8006         Reverse defer_debug_incomplete_list before traversing it, so that trees
8007         are processed in the order at which they were added to the list. This
8008         order is important when using the stabs debug format.
8009         If we are deferring the output of debug information, also defer this
8010         output for a function return type.
8011         When adding fields to a record, prevent emitting debug information
8012         for incomplete records, emit the information only when the record is
8013         complete.
8014         (components_to_record): New parameter defer_debug.
8015         (gnat_to_gnu_entity, case E_Array_Subtype): Call copy_alias_set.
8016         (gnat_to_gnu_field_decl): New function.
8017         (substitution_list, annotate_rep): Call it.
8018         (gnat_to_gnu_entity, case E_Record_Subtype): Likewise.
8019         (gnat_to_gnu_entity, case E_Record_Type): Likewise.
8020         No longer update discriminants to not be a COMPONENT_REF.
8021         (copy_alias_set): Strip padding from input type; also handle
8022         unconstrained arrays properly.
8023
8024         * gigi.h (write_record_type_debug_info): New function.
8025         Convert to use ANSI-style prototypes. Remove unused
8026         declarations for emit_stack_check, elab_all_gnat and
8027         set_second_error_entity.
8028         (gnat_to_gnu_field_decl): New decl.
8029
8030         * utils.c (write_record_type_debug_info): New function.
8031         (finish_record_type): Delegate generation of debug information to
8032         write_record_type_debug_info.
8033         (update_pointer_to): Remove unneeded calls to rest_of_decl_compilation.
8034         (update_pointer_to): Fix pasto.
8035         (convert) <UNION_TYPE>: Accept slight type variations when
8036         converting to an unchecked union type.
8037
8038         * exp_ch13.adb (Expand_N_Freeze_Entity): If Freeze_Type returns True,
8039         replace the N_Freeze_Entity with a null statement.
8040
8041         * freeze.adb (Freeze_Expression): If the freeze nodes are generated
8042         within a constrained subcomponent of an enclosing record, place the
8043         freeze nodes in the scope stack entry for the enclosing record.
8044         (Undelay_Type): New Subprogram.
8045         (Set_Small_Size): Pass T, the type to modify; all callers changed.
8046         (Freeze_Entity, Freeze_Record_Type): Change the way we handle types
8047         within records; allow them to have freeze nodes if their base types
8048         aren't frozen yet.
8049
8050         * exp_util.adb (Remove_Side_Effects): Properly test for
8051         Expansion_Delayed and handle case when it's inside an
8052         N_Qualified_Expression.
8053
8054         * sem_ch3.adb (Derived_Type_Declaration): New predicate
8055         Comes_From_Generic, to recognize accurately that the parent type in a
8056         derived type declaration can be traced back to a formal type, because
8057         it is one or is derived from one, or because its completion is derived
8058         from one.
8059         (Constrain_Component_Type): If component comes from source and has no
8060         explicit constraint, no need to constrain in in a subtype of the
8061         enclosing record.
8062         (Constrain_Access, Constrain_Array): Allow itypes to be delayed.
8063         Minor change to propagate Is_Ada_2005 flag
8064
8065         * trans.c (gnat_to_gnu, case N_Aggregate): Verify that
8066         Expansion_Delayed is False.
8067         (assoc_to_constructor): Ignore fields that have a
8068         Corresponding_Discriminant.
8069         (gnat_to_gnu) <N_Return_Statement>: Restructure. If the
8070         function returns "by target", dereference the target pointer using the
8071         type of the actual return value.
8072         <all>: Be prepared for a null gnu_result.
8073         (processed_inline_subprograms): Check flag_really_no_inline
8074         instead of flag_no_inline.
8075         (set_second_error_entity): Remove unused function.
8076         (gnat_to_gnu, case N_Selected_Component): Call
8077         gnat_to_gnu_field_decl.
8078         (assoc_to_constructor): Likewise.
8079
8080 2005-03-15  Robert Dewar  <dewar@adacore.com>
8081             Ed Schonberg  <schonberg@adacore.com>
8082             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8083
8084         * exp_pakd.adb (Create_Packed_Array_Type): Do not set
8085         Must_Be_Byte_Aligned for cases where we do not need to use a
8086         System.Pack_nn unit.
8087
8088         * exp_ch6.adb (Expand_Call): Call Expand_Actuals for functions as well
8089         as procedures.
8090         Needed now that we do some processing for IN parameters as well. This
8091         may well fix some unrelated errors.
8092         (Expand_Call): Handle case of unaligned objects (in particular those
8093         that come from packed arrays).
8094         (Expand_Inlined_Call): If the subprogram is a renaming as body, and the
8095         renamed entity is an inherited operation, re-expand the call using the
8096         original operation, which is the one to call.
8097         Detect attempt to inline parameterless recursive subprogram.
8098         (Represented_As_Scalar): Fix to work properly with private types
8099         (Is_Possibly_Unaligned_Object): Major rewrite to get a much more
8100         accurate estimate. Yields True in far fewer cases than before,
8101         improving the quality of code that depends on this test.
8102
8103         * exp_util.adb (Kill_Dead_Code): For a package declaration, iterate
8104         over both visible and private declarations to remove them from tree,
8105         and mark subprograms declared in package as eliminated, to prevent
8106         spurious use in subsequent compilation of generic units in the context.
8107
8108         * exp_util.ads: Minor cleanup in variable names
8109
8110         * sem_eval.ads, sem_eval.adb: Minor reformatting
8111         (Compile_Time_Known_Bounds): New function
8112
8113 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
8114
8115         * exp_ch7.adb (Convert_View): Use base types of underlying types when
8116         determining whether an unchecked conversion is needed for the argument
8117         of an initialization call.
8118
8119 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
8120
8121         * exp_intr.adb (Expand_Unc_Conversion): As a target type, use the type
8122         that appears in the instantiation rather than the internal subtype
8123         generated in the wrapper package, to avoid anomalies in gigi when the
8124         target is derived from a private type whose full view is an access type.
8125
8126 2005-03-15  Robert Dewar  <dewar@adacore.com>
8127
8128         * exp_smem.adb, sem_attr.adb: Remove OK_For_Stream flag, not used,
8129         not needed.
8130         Add documentation to replace the use of this flag
8131         Fix kludge for Maximum_Alignment on x86 so that it does not apply to
8132         the x86_64.
8133
8134 2005-03-15  Thomas Quinot  <quinot@adacore.com>
8135
8136         * exp_tss.ads, exp_tss.adb (Find_Inherited_TSS): New subprogram, moved
8137         here from exp_attr so it can be shared between exp_attr and exp_dist.
8138         (TSS_Names): Renamed from OK_TSS_Names. This array contains the list of
8139         all TSS names, not a subset thereof, and the previous name introduced
8140         an unnecessarily confusion that a distinction might exist between
8141         "OK" TSS names and some "not OK" TSS names.
8142
8143 2005-03-15  Doug Rupp  <rupp@adacore.com>
8144
8145         * gnatchop.adb (Locate_Executable): Normalize the possibly VMS style
8146         Command_Name.
8147
8148 2005-03-15  Pascal Obry  <obry@adacore.com>
8149             Eric Botcazou  <ebotcazou@adacore.com>
8150
8151         PR ada/20226
8152         PR ada/20344
8153
8154         * init.c (__gnat_initialize): Do not call __gnat_install_SEH_handler()
8155         when IN_RTS. This is to work around a bootstrap path problem.
8156
8157         * misc.c (gnat_parse_file): Create a SEH (Structured Exception Handler)
8158         table and pass it to __gnat_install_SEH_handler().
8159         (gnat_handle_option): Accept OPT_fRTS_, not OPT_fRTS.
8160
8161         * lang.opt: Fix specification of -fRTS=.
8162
8163 2005-03-15  Doug Rupp  <rupp@adacore.com>
8164             Bernard Banner  <banner@adacore.com>
8165             Vincent Celier  <celier@adacore.com>
8166             Arnaud Charlet  <charlet@adacore.com>
8167
8168         PR ada/6852
8169         This change works fine when gnatlib is built from the gcc directory,
8170         but does not work when using the libada Makefile, since GCC_FOR_TARGET
8171         is not passed to ada/Makefile.in, so more work is needed by a
8172         Makefile/configure expert.
8173
8174         * Makefile.in(gnatlib): Use $(GCC_FOR_TARGET) for compiling library.
8175         set GMEM_LIB on ia64 linux to add optional support for gnatmem.
8176         Setup gnatlink switch -M for x86_64 linux, as it is already setup
8177         for Linux x86.
8178         (gnatlib-shared-default): Use GNATLIBCFLAGS as well.
8179         Run ranlib on libgccprefix.a
8180         Define PREFIX_OBJS for Darwin, to build libgccprefix.
8181         (ADA_INCLUDE_SRCS): Split Ada packages.
8182
8183 2005-03-15  Robert Dewar  <dewar@adacore.com>
8184
8185         * Make-lang.in: Add g-utf_32 unit for gnat and gnatbind
8186
8187         * impunit.adb: Add GNAT.UTF_32
8188
8189         * scng.adb: Use gnat.utf_32 instead of widechar for utf_32 stuff
8190
8191         * widechar.ads, widechar.adb: Remove redundant UTF-32 tables (scng
8192         now uses GNAT.UTF_32).
8193
8194         * g-utf_32.ads, g-utf_32.adb: This is a new unit with full
8195         capabilities for categorizing characters using Unicode categories
8196
8197 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
8198
8199         * sem_ch10.adb (Build_Ancestor_Name): If the ancestor is an
8200         instantiation that has been rewritten as a package body, retrieve spec
8201         to generate proper name for implicit_with_clause.
8202         (Install_Parents): Recognize a parent that is an instantiation but has
8203         been rewritten as a package declaration during analysis.
8204
8205 2005-03-15  Javier Miranda  <miranda@adacore.com>
8206             Ed Schonberg  <schonberg@adacore.com>
8207
8208         * sem_ch12.adb (Instantiate_Object): If the analysis of the actual
8209         parameter reported some error we immediately return. This improves the
8210         behaviour of the frontend in case of errors.
8211         (Install_Parent, Remove_Parent): Introduce new flag
8212         Parent_Unit_Visible, to preserve the proper visibility of the ultimate
8213         ancestor of a generic child unit, when the child is being instantiated.
8214         (Inline_Instance_Body): If we are compiling the private
8215         part or the body of a child unit, restore the proper visibility of the
8216         parents after compiling the instance body.
8217
8218 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
8219             Javier Miranda  <miranda@adacore.com>
8220
8221         PR ada/15608
8222         * sem_util.adb (Get_Task_Body_Procedure): Type may be the completion
8223         of a private type, in which case it is underlying_type that denotes
8224         the proper task. Also modified to use the new entity attribute
8225         that is directly available in the task type and task subtype entities
8226         (Build_Actual_Subtype_Of_Component): Handle properly multidimensional
8227         arrays when other dimensions than the first are constrained by
8228         discriminants of an enclosing record.
8229         (Insert_Explicit_Dereference): If the prefix is an indexed component or
8230         a combination of indexed and selected components, find ultimate entity
8231         and generate the appropriate reference for it, to suppress spurious
8232         warnings.
8233         (Note_Possible_Modification): If an entity name has no entity, return.
8234         (Is_Variable): A function call never denotes a variable.
8235         (Requires_Transient_Scope): For record types, recurse only on
8236         components, not on internal subtypes that may have been generated for
8237         constrained components.
8238
8239 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
8240
8241         * sem_ch4.adb (Analyze_Concatenation): Do not consider operators marked
8242         Eliminated as candidates for resolution. Both efficient, and avoids
8243         anomalies with operators declared in deleted code.
8244         (Process_Implicit_Dereference_Prefix): Use this procedure whenever
8245         expansion is disabled (as when compiling a generic) to prevent spurious
8246         warnings on prefixes of selected components.
8247
8248 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
8249
8250         * sem_ch6.adb (Is_Private_Declaration): Verify that the declaration is
8251         attached to a list before checking whether it appears in the private
8252         declarations of the current package.
8253         (Make_Inequality_Operator): Insert declaration in proper declarative
8254         list rather than just setting the Parent field, so that
8255         Is_Private_Declaration can handle it properly.
8256
8257 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
8258
8259         * sem_ch8.adb (Analyze_Subprogram_Renaming): In a generic, if this is
8260         a renaming a body, check that the renamed subprogram in not intrinsic.
8261         (Find_Direct_Name): If several use_visible entities hide
8262         each other, and the context is a predefined file compiled through
8263         rtsfind, keep only the entity that comes from a predefined file.
8264
8265 2005-03-15  Geert Bosch  <bosch@adacore.com>
8266
8267         * s-fatgen.adb (Valid): Extend special exceptions to account for long
8268         long float padding to also cover AMD64 and IA64.
8269
8270 2005-03-15  Gary Dismukes  <dismukes@adacore.com>
8271
8272         * s-imgwch.adb: Add with and use of Interfaces.
8273         (Img_Wide_Character): Change type of Val to Unsigned_16.
8274         (Img_Wide_Wide_Character): Change type of Val to Unsigned_32.
8275
8276 2005-03-15  Matthew Gingell  <gingell@adacore.com>
8277
8278         * sysdep.c: Implement __gnat_localtime_r as call to localtime_r on AIX.
8279
8280 2005-03-15  Robert Dewar  <dewar@adacore.com>
8281
8282         * usage.adb: Add missing lines for -gnat95 and -gnat05 switches
8283
8284         * sem_ch7.adb: Minor change to propagate Is_Ada_2005 flag
8285
8286         * i-c.adb: Clarify that AI-258 behavior is also intended in Ada 95
8287
8288 2005-03-15  Robert Dewar  <dewar@adacore.com>
8289
8290         * s-bitops.adb, s-bitops.ads,
8291         s-taprop-os2.adb, s-intman-vms.ads, s-intman-vxworks.ads,
8292         s-taprop-vxworks.adb, a-caldel.ads, a-calend.adb, a-tasatt.adb,
8293         tbuild.ads, s-finimp.adb, s-imgwch.adb, s-intman.ads, s-intman.ads,
8294         s-memory.adb, s-soflin.ads, s-taasde.ads, s-taprob.adb, s-taprop.ads,
8295         s-taprop.ads, s-tasini.adb, s-tasini.ads, s-tasini.ads, s-tasini.ads,
8296         s-taskin.ads, s-tasren.adb, s-tassta.adb, s-tassta.ads, s-tassta.ads,
8297         s-tasuti.ads, s-tataat.ads, s-tataat.ads, s-tataat.ads, s-tataat.ads,
8298         s-tpoben.adb, s-tpoben.adb, s-tpobop.ads: Update comments. Minor
8299         reformatting.
8300
8301 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
8302
8303         * utils2.c (build_binary_op): Fix typo.
8304
8305 2005-03-15  Doug Rupp  <rupp@adacore.com>
8306
8307         * s-crtl.ads (popen,pclose): New imports.
8308
8309 2005-03-15  Cyrille Comar  <comar@adacore.com>
8310
8311         * comperr.adb (Compiler_Abort): remove references to obsolete
8312         procedures in the bug boxes for various GNAT builds.
8313
8314 2005-03-15  Vincent Celier  <celier@adacore.com>
8315
8316         * snames.ads, snames.adb: Save as Unix text file, not as DOS text file
8317
8318 2005-03-15  Geert Bosch  <bosch@adacore.com>
8319             Arnaud Charlet  <charlet@adacore.com>
8320             Robert Dewar  <dewar@adacore.com>
8321             Cyrille Comar  <comar@adacore.com>
8322             Sergey Rybin  <rybin@adacore.com>
8323
8324         * gnat_ugn.texi: Remove extended inline assembly example, as it was far
8325         too specific and long-winded to be appropriate for the GNAT User's
8326         Guide.
8327         Warn about use of GCC switches not documented in the GNAT User's Guide,
8328         as these may cause generated code to not conform to Ada semantics.
8329         Remove mention of -gdwarf-2 for sparc64, since this is now the default.
8330         Add documentation for -gnat95 and -gnat05 switches
8331         Remove paragraph documenting obsolete way to refer to third party
8332         libraries.
8333         Add a few references to Ada_05 that were missing.
8334         Update documentation on -gnatZ/-gnatL.
8335         Document limitation when using -m64 under Solaris.
8336         Change the "Name Casing" subsection of the pretty-printer section
8337         according to the changes in the dictionary processing.
8338
8339         * gnat_rm.texi: Document the Ada_05 pragma.
8340         Section on record representation clauses describes the new more
8341         relaxed rules about placement of large packed bit array components.
8342         Add documentation of GNAT.UTF_32
8343
8344 2005-03-12  Daniel Berlin <dberlin@dberlin.org>
8345
8346         * misc.c (gnat_post_options): Turn off structural
8347         aliasing for now.
8348
8349 2005-03-08  Laurent Guerby <laurent@guerby.net>
8350
8351         * system-linux-sparc.ads: Fix typo in previous commit.
8352
8353 2005-03-07  James A. Morrison <phython@gcc.gnu.org>
8354             Laurent Guerby <laurent@guerby.net>
8355
8356         PR ada/20035
8357         * system-linux-sparc.ads: New.
8358         * Makefile.in: Add sparc linux entry.
8359
8360 2005-02-27  Danny Smith  <dannysmith@users.sourceforge.net>
8361
8362         * seh_init.c (__gnat_SEH_error_handler): Mark third and fourth
8363         parameters as unused.
8364
8365 2005-02-26  Nathanael Nerode  <neroden@gcc.gnu.org>
8366         Partial merge from libada-gnattools-branch:
8367
8368         2004-12-02  Nathanael Nerode  <neroden@gcc.gnu.org>
8369         * Makefile.in: Move gnattools{1,1re,2,3,4} and corresponding flags
8370         into code in gnattools/Makefile.in.  Remove direct dependencies on
8371         stamp-tools by tools clauses.
8372         2004-12-02  Nathanael Nerode  <neroden@gcc.gnu.org>
8373         * config-lang.in: Add gnattools to $lang_dirs.
8374
8375 2005-02-13  Andrew Pinski  <pinskia@physics.uc.edu>
8376
8377         PR ada/19942
8378         * utils.c (gnat_type_for_mode): Return null instead of ICE because
8379         we asked for an unknown mode.
8380
8381 2005-02-12  Richard Henderson  <rth@redhat.com>
8382
8383         * utils.c (gnat_type_for_mode): Return NULL for COMPLEX modes;
8384         validate SCALAR_INT_MODE_P before calling gnat_type_for_size.
8385
8386 2005-02-10  Andreas Jaeger  <aj@suse.de>
8387
8388         * init.c (__gnat_initialize): Mark parameter as unused.
8389
8390 2005-02-09  Doug Rupp  <rupp@adacore.com>
8391
8392         * g-expect-vms.adb (Non_Blocking_Spawn): Separate out.
8393         * g-enblsp-vms-alpha.adb g-enblsp-vms-ia64.adb: New subunits.
8394
8395 2005-02-09  Doug Rupp  <rupp@adacore.com>
8396
8397         * gnatchop.adb (dup, dup2),
8398         g-dirope.adb (closedir, opendir, rmdir): Reference via System.CRTL.
8399
8400         * gnatlbr.adb (mkdir),
8401         mlib-tgt-vms-ia64.adb (popen, plose):  Import with decc$ prefix.
8402
8403         * s-crtl.ads (closdir, dup, dup2, opendir, rmdir): Import.
8404
8405 2005-02-09  Doug Rupp  <rupp@adacore.com>
8406
8407         * s-tpopde-vms.adb: Add pragma Warnings (Off) for Task_Id conversions.
8408
8409 2005-02-09  Robert Dewar  <dewar@adacore.com>
8410             Thomas Quinot  <quinot@adacore.com>
8411             Javier Miranda  <miranda@adacore.com>
8412             Pascal Obry  <obry@adacore.com>
8413             Ed Schonberg  <schonberg@adacore.com>
8414             Doug Rupp  <rupp@adacore.com>
8415             Gary Dismukes  <dismukes@adacore.com>
8416             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8417
8418         * g-zstspl.ads: New file.
8419
8420         * a-chahan.ads, a-chahan.adb: Add declarations from AI-285
8421
8422         * a-string.ads: Add pragma Ada_05 for wide_wide_space to get warning in
8423         Ada 95 mode
8424         Add definition of Wide_Wide_Space for AI-285
8425
8426         * impunit.ads, impunit.adb, sem_ch10.adb: Complete rewrite and new
8427         interface (to support Ada 95 and Ada 2005 units).
8428         Add Unbounded_IO files
8429         Add entries for Wide_Wide packages for AI-285
8430         Add list of containers packages to Ada 2005 unit list
8431
8432         * a-swuwti.ads, a-swuwti.adb, a-suteio.ads, a-suteio.adb: Updates to
8433         support new Unbounded_IO package cleanly.
8434
8435         * g-utf_32.ads, g-utf_32.adb: New files.
8436
8437         * Makefile.rtl: Add entry for g-utf_32
8438         Add new files for Unbounded_IO
8439         Adjust make file for new AI-285 wide wide packages
8440         Add AI-302 containers to the run time.
8441
8442         * a-stwibo.adb, a-stwibo.ads, a-stwisu.adb, a-stwisu.ads,
8443         a-strbou.ads, a-strbou.adb, a-strsup.ads, a-strsup.adb: New
8444         subprograms for AI-301.
8445
8446         * a-stwiun.adb, a-stwiun.ads: Minor reformatting.
8447
8448         * a-stunau.ads: Minor comment correction
8449
8450         * rtsfind.ads, rtsfind.adb: Add definitions for Wide_Wide attributes
8451         etc.
8452         Also extend Text_IO_Kludge to support Wide_Wide_Text_IO
8453         (Check_RPC): Update to match changes in expanded code.
8454         Clean up unused entity.
8455
8456         * exp_ch3.ads, exp_ch3.adb: Fix various places where Wide_Wide_String
8457         was not taken into account.
8458         This includes proper initialization with Normalize_Scalars.
8459         (Get_Simple_Init_Val): Major rewrite for initialize scalars and
8460         normalize scalars cases (particularly the latter) to do a better job
8461         of finding invalid representations.
8462
8463         * s-scaval.ads, s-scaval.adb: Add values for zero invalid values
8464
8465         * s-strops.ads, s-strops.adb: Remove string normalize routines, never
8466         used
8467
8468         * exp_dist.adb: Add support for wide wide character type
8469         (Expand_Receiving_Stubs_Bodies): For a package declaration that has a
8470         private part, generate stub bodies at the end of the private part,
8471         not the visible part.
8472         (Add_RACW_Primitive_Operations_And_Bodies): Add last missing code for
8473         PolyORB support.
8474         (Add_Obj_RPC_Receiver_Completion): Add PCS-specific subprograms and
8475         generic wrapper to execute final processing after completing the
8476         expansion of the RPC receiver for an RACW.
8477
8478         * snames.h, snames.ads, snames.adb: Add definitions for wide_wide
8479         packages and attributes.
8480         (Preset_Names): Addition of the new reserved words of Ada 2005,
8481         that is interface, overriding and synchronized.
8482         (Get_Pragma_Id): Give support to the use of the new reserved word
8483         "interface" as a pragma name.
8484         (Is_Pragma_Name): Give support to the use of the new reserved word
8485         "interface" as a pragma name.
8486         (Preset_Names): Add stream_size string for the Stream_Size Ada2005
8487         attribute implementation.
8488
8489         * exp_attr.adb (Expand_Attribute_Reference): Do not apply validity
8490         checks to entities that are output parameters of Asm operations.
8491         Handle the Stream_Size attribute.
8492         Add implementation of Wide_Wide_Value, Wide_Wide_Image, Wide_Wide_Width
8493
8494         * exp_imgv.ads, exp_imgv.adb: Add support for wide wide character type
8495
8496         * sem_attr.adb (Eval_Attribute): Raise compile-time constraint error
8497         for second parameter being 0.0.
8498         Add support for wide wide character type.
8499         (Analyze_Attribute, Eval_Attribute): Handle the Stream_Size attribute.
8500
8501         * s-valwch.adb, s-valwch.ads, s-imgwch.ads, s-imgwch.adb,
8502         s-wchstw.ads, s-wchstw.adb, s-wchwts.adb, s-wchwts.ads,
8503         s-widwch.adb, s-widwch.ads, s-wwdcha.adb, s-wwdcha.ads,
8504         s-wwdenu.adb, s-wwdenu.ads, s-wwdwch.adb, s-wwdwch.ads: Add support
8505         for wide wide character cases.
8506
8507         * cstand.adb: Create entities for Wide_Wide_Character and
8508         Wide_Wide_String.
8509
8510         * i-c.ads, i-c.adb: Fix not raising CE for null wide strings in
8511         accordance with AI-258.
8512         Add new declarations for 16/32 bit C character types (Part of AI285)
8513
8514         * einfo.ads, einfo.adb (Is_Obsolescent, Is_Ada_2005): New flag
8515         (Obsolescent_Warning): New field
8516         (Rep_Clause): New local subprogram used to share code. Returns the rep
8517         clause for which the name is given in parameter.
8518         (Has_Stream_Size_Clause): New routine.
8519         (Stream_Size_Clause): Idem. Implementation is based on Rep_Clause.
8520         (Address_Clause): Implementation is now using Rep_Clause.
8521         (Alignment_Clause): Idem.
8522         (Size_Clause): Idem.
8523
8524         * lib-xref.adb (Generate_Reference): Test for reference to Ada 2005
8525         entity in non-Ada 2005 mode and generate warning.
8526
8527         * par-prag.adb: Add handling of one argument form for pragma Ada_05.
8528         (Prag): Code cleanup. Remove old gnat pragma "overriding"
8529
8530         * sem_prag.adb: Add handling of one argument form for pragma Ada_05
8531         (Analyze_Pragma, case Elaborate, Elaborate_All): Do not disable warnings
8532         on the named unit if the pragma is not in the current compilation unit,
8533         so that elaboration calls in the current unit can set up an elaboration
8534         dependency on the named unit, as needed.
8535         (Analyze_Pragma, case Obsolescent): Allow pragma to be used for library
8536         subprogram as well as for subprograms declared within a package.
8537         (Analyze_Pragma, Sig_Flags): Code cleanup. Remove support for the GNAT
8538         pragma overriding.
8539
8540         * krunch.ads, krunch.adb: Add special handling of Wide_Wide (krunched
8541         to z) to avoid some instances of duplication for Wide_Wide packages.
8542
8543         * namet.ads, namet.adb: Implement encoding (WWhhhhhhhh) for wide wide
8544         characters.
8545
8546         * scn.adb: Char_Literal_Value field is now a Uint
8547
8548         * scng.adb: Significant rewrite to handle new Ada 2005 features
8549         allowing wide and wide wide characters in program text, e.g. for
8550         identifiers, as described in AI-285.
8551         (Set_Reserved): New procedure, makes setting up keywords cleaner.
8552         (Initialize_Scanner): Register the new reserved words of Ada 2005.
8553         (Scan): Give support to the new reserved words.
8554
8555         * par-ch2.adb (P_Identifier): Compiling in Ada95 mode, generate a
8556         warning notifying that interface, overriding, and synchronized are
8557         new reserved words.
8558         (P_Pragma): Allow the use of the new reserved word "interface" as
8559         a pragma name.
8560
8561         * gnatls.adb, gnatbind.adb,
8562         ali-util.adb, binde.adb, ali.ads, ali.adb: Code cleanup. Rename
8563         identifiers named "interface" to "SAL_Interface".
8564
8565         * bindgen.adb (Gen_Main_Ada): Add support for the new SEH
8566         (Structured Exception handling).
8567         (Gen_Main_C): Idem.
8568
8569         * bindgen.adb:
8570         (Gen_Main_Ada): Set the default exit code if specified.
8571         (Gen_Main_C): Likewise.
8572         Part of *DC20-006.
8573         (Gen_Output_File_C): Remove redundant output of gnat_exit_status.
8574         Code cleanup. Rename identifiers named "interface" to "SAL_Interface"
8575
8576         * switch-b.adb, bindusg.adb, opt.ads, vms_data.ads: Add handling of
8577         new -Xnnn switch.
8578
8579         * mlib-prj.adb, mlib.adb: Code cleanup. Rename one identifier that
8580         has a collision with the new Ada 2005 "interface" reserved word.
8581
8582         * par-ch3.adb (P_Defining_Identifier): Compiling in Ada95 mode,
8583         generate a warning notifying that interface, overriding, and
8584         synchronized are new reserved words.
8585
8586         * scans.ads (Token_Type): Addition of the tokens corresponding to the
8587         new reserved words of Ada 2005: Tok_Interface, Tok_Overriding
8588         and Tok_Synchronized.
8589
8590         * sem_res.adb (Resolve_Actuals): Change error messages to refer to
8591         "dispatching" rather than "primitive" operations, since dispatching
8592         calls are now allowed to abstract formal subprograms (which are not
8593         primitive).
8594         Char_Literal_Value field is now a Uint
8595         (Resolve_Slice): If the prefix is an access to an unconstrained array,
8596         compute the actual subtype of the designated object to impose the proper
8597         index constraints.
8598         (Resolve_Selected_Component): Do not insert an access check if the
8599         prefix is an access type: such a node is expanded into an explicit
8600         dereference, on which the access check is performed anyway. Removes
8601         expensive duplicate checks.
8602         (Resolve_Call): Use new flag Is_Obsolescent and field
8603         Obsolescent_Warning so that pragma Obsolescent works on library
8604         subprograms.
8605         Add support for wide wide character type
8606         (Resolve_Allocator): Replace the error message on wrong null-exclusion
8607         value by a warning message.
8608         (Resolve_Type_Conversion): If the mixed-mode expression is interpreted
8609         as fixed-point, and one of the operands is non-static and universal, it
8610         can only be an illegal exponentiation operation, in which case there is
8611         no real value to retrieve.
8612
8613         * exp_strm.adb: Add support for wide wide character type
8614         (Build_Elementary_Input_Call): Compute the size of the stream element by
8615         querying the rep chain to find the Stream_Attribute attribute value.
8616         (Build_Elementary_Write_Call): Ditto.
8617
8618         * sem_aggr.adb: Char_Literal_Value field is now a Uint
8619         Add support for wide wide character type
8620         Replace the error messages on wrong null-exclusion value by warnings
8621         as described in Ada 2005.
8622         (Resolve_Extension_Aggregate): Document the fact that the error
8623         message on class-wide expressions in extensions aggregates.
8624
8625         * sem_case.adb: Add support for wide wide character type
8626
8627         * sem_ch13.adb: Add support for wide wide character type
8628         (Analyze_Attribute_Definition_Clause): Handle the Stream_Size attribute.
8629
8630         * sem_ch3.adb: Add support for wide wide character type
8631         (Process_Subtype): If constraint is illegal for the type, set Ekind of
8632         now-useless Itype, to prevent cascaded errors on a compiler built
8633         without -gnatp.
8634
8635         * sem_ch8.adb: Add with and use of Sem_Disp.
8636         (Analyze_Subprogram_Renaming): Replace unclean uses of
8637         Corresponding_Spec with Corresponding_Formal_Spec (and delete setting
8638         of Corresponding_Spec to Empty).
8639         (Attribute_Renaming): Replace use of Corresponding_Spec with
8640         Corresponding_ Formal_Spec and simplify condition.
8641         (Use_One_Package): Check that scope of homonym of identifier is defined,
8642         before checking whether it is a wrapper package.
8643         Add support for wide wide character type
8644
8645         * sem_eval.adb: Add support for wide wide character type.
8646         (Eval_Arithmetic_Op): Check for compile time known signed integer
8647         overflow in the non-static case.
8648         (Subtypes_Statically_Match): A formal scalar type and its base type do
8649         not statically match.
8650
8651         * sem_util.adb (Collect_Primitive_Operations): Minor change of "/=" to
8652         "not in" for test of N_Formal_Subprogram_Declaration (which is now a
8653         subtype).
8654         (Unit_Declaration_Node): Ditto.
8655         (Is_Variable_Prefix):  For the case of an indexed component whose prefix
8656         has a packed array type, the prefix has been rewritten into a type
8657         conversion. Determine variable-ness from the converted expression.
8658         Handle wide wide character cases.
8659
8660         * stand.ads: Add types Wide_Wide_Character and Wide_Wide_String
8661
8662         * stringt.ads, stringt.adb: Handle full UTF-32 range.
8663         Remove ["0A"] from comment, since it can look like a line terminator.
8664         Currently we don't permit this, but this is under discussion by the
8665         ARG, and it is easy enough to use a different example.
8666
8667         * s-wchcon.ads, s-wchcnv.ads, s-wchcnv.adb: Add new subprograms for
8668         handling UTF-32 encoding for wide wide character.
8669         Implement new brackets coding ["hhhhhhhh"]
8670         Add UTF-8 encodings for full UTF-32 range
8671
8672         * ttypes.ads: Add definition of Standard_Wide_Wide_Character_Size
8673
8674         * types.h, types.ads, types.adb: Wide_Wide_Character now has full 31
8675         bit range Add full UTF-32 support.
8676         (RT_Exception_Code): Addition of CE_Null_Not_Allowed; used to
8677         notify that constraint error will be raised at run-time
8678         because a null value is assigned to a null-excluding object.
8679         Remove some obsolete declarations and make Char_Code
8680         unsigned.
8681
8682         * a-except.adb (Rcheck_30): New subprogram. Addition of the message
8683         corresponding to CE_Null_Not_Allowed, and adjust the output of all the
8684         Rcheck subprograms.
8685
8686         * checks.adb (Check_Null_Not_Allowed): Replace the error message on
8687         wrong null-exclusion value by a warning message.
8688         (Enable_Range_Check): Do range check if the prefix is an
8689         explicit dereference whose designated object is an unconstrained array.
8690         Current algorithm for removing duplicate checks is over-eager in this
8691         case.
8692
8693         * sem_ch5.adb (Analyze_Assignment): Replace the error messages on wrong
8694         null-exclusion value by a warning message
8695
8696         * atree.h, atree.ads, atree.adb: Remove Char_Code field support
8697         completely. Add support for Uint2 field
8698
8699         sem_ch2.adb, exp_ch11.adb, exp_dbug.adb,
8700         exp_prag.adb: Char_Literal_Value field is now a Uint.
8701
8702         * exp_util.adb (Insert_Actions): Replace
8703         N_Formal_Subprogram_Declaration by
8704         N_Formal_{Abstract|Concrete}_Subprogram_Declaration.
8705         Char_Literal_Value field is now a Uint.
8706
8707         * sinfo.ads, sinfo.adb (Corresponding_Formal_Spec): New function
8708         defined for subprogram renaming declarations. When set, the field
8709         indicates the defining entity of a corresponding formal subprogram
8710         when the renaming corresponds to a formal subprogram association in an
8711         instantiation.
8712         (Set_Corresponding_Formal_Spec): New procedure to return
8713         Corresponding_Formal_Spec field.
8714         Minor changes of "=" to "in" in tests of N_Formal_Subprogram_Declaration
8715         (which is now a subtype).
8716         Char_Literal_Value field is now a Uint
8717
8718         * exp_disp.ads, exp_disp.adb (Make_DT): Generate code that moves the
8719         pointer to the base of the dispatch table.
8720         Minor changes to comments.
8721         (Controlling_Type): New function for determining the tagged type
8722         associated with a tagged primitive subprogram.
8723         (Expand_Dispatching_Call): Add support for a controlling actual that is
8724         directly a value of type Ada.Tag rather than a tagged object.
8725
8726         * i-cpp.ads, i-cpp.adb, a-tags.ads, a-tags.adb: Update documentation
8727         describing the new layout.
8728         (Dispatch_Table): The expander computes the actual array size, allocates
8729         the Dispatch_Table record accordingly, and generates code that displaces
8730         the base of the record after the Typeinfo_Ptr component. The access to
8731         these components is done by means of local functions.
8732         (Offset_To_Top): New function.
8733         (Typeinfo_Ptr): New function.
8734         (Get_TSD): Modified to access the new position of the TSD.
8735         (Set_TSD): Modified to save the TSD in its new position.
8736
8737         * par-ch12.adb (P_Formal_Subprogram_Declaration): Add parsing for the
8738         case of formal abstract subprograms. Add check and message for -gnat05.
8739         Update comments.
8740
8741         * sem_ch12.adb: Add with and use for Sem_Disp.
8742         (Analyze_Associations): Minor change from "=" to "in" for use of
8743         N_Formal_Subtype_Declaration (which is now a subtype).
8744         (Set_Analyzed_Formal): Minor changes from "=" to "in" for uses of
8745         N_Formal_Subtype_Declaration (which is now a subtype).
8746         (Analyze_Formal_Subprogram): Add handling for
8747         N_Formal_Abstract_Subprogram, marking the formal as abstract and
8748         dispatching, setting the controlling status of the formal parameters
8749         and result, and issuing an error if there is no controlling type for
8750         the formal subprogram.
8751         (Instantiate_Formal_Subprogram): Rather than setting Corresponding_Spec,
8752         which is an unclean use of that field, we set the new field
8753         Corresponding_Formal_Spec to make the formal subprogram available to
8754         processing in Analyze_Subprogram_Declaration.
8755         (Analyze_Formal_{Discrete, Decimal_Fixed_Point, Fixed_Point,
8756         Floating_Point, Modular_Integer, Signed_Integer}_Type: Make formal type
8757         Constrained, so that it is is does not statically match its anonymous
8758         base type.
8759
8760         * sem_ch6.adb (Analyze_Subprogram_Specification): Include test for
8761         abstract formal subprograms in error check for functions returning
8762         abstract types. Set scope of new designator for
8763         a parameterless subprogram, so that it is available when checking the
8764         body for nested subprograms, before full analysis of said body.
8765         (Analyze_Subprogram_Body): Warn on inlining bodies with nested
8766         subprogram only if inner one comes from source.
8767         (Analyze_Function_Call): If the call is given in object notation, the
8768         analysis of the name rewrites the node and analyzes it with the proper
8769         argument list. After analyzing the name, if the call has been rewritten
8770         and the result type is set, no further analysis is needed.
8771         (Analyze_Return_Type): Subsidiary to Process_Formals: analyze subtype
8772         mark in function specification, in a context where the formals are
8773         visible and hide outer homographs.
8774
8775         * sem_disp.adb (Check_Controlling_Type): Relax the check for same scope
8776         as the tagged type for the cases of abstract formal subprograms and
8777         renamings of those.  Clean up spec comments.
8778         (Check_Dispatching_Context): Add error message to indicate "abstract
8779         procedure", covering the case of a call to a formal abstract procedure
8780         that has statically tagged operands.
8781         (Check_Dispatching_Call): Check for the case of an actual given by
8782         a tag-indeterminate function call whose type is an ancestor of the
8783         containing call's associated tagged type. This situation can occur
8784         for inherited primitives with function defaults. In this case we
8785         use the tagged type's tag directly as the controlling argument for
8786         the calls.
8787         (Expand_Call): Name change on call to Expand_Dispatch_Call.
8788
8789         * sprint.adb (Sprint_Node_Actual): Split
8790         N_Formal_Subprogram_Declaration into two alternatives for the new
8791         cases N_Formal_Abstract_Subprogram_Declaration and
8792         N_Formal_Concrete_Subprogram_Declaration.
8793         Char_Literal_Value field is now a Uint.
8794
8795         * trans.c: Get rid of junk Uint2 reference.
8796         Char_Literal_Value field is now a Uint.
8797         (gnat_to_gnu, case N_Aggregate): Check TYPE_UNCHECKED_UNION_P.
8798         (gigi): Correct third arg to gimplify_body.
8799
8800         * ada-tree.h: (TYPE_UNCHECKED_UNION_P): New flag.
8801         (TYPE_LANG_FLAG_0): Check for record or union.
8802
8803         * treepr.adb: Char_Literal_Value field is now a Uint
8804
8805         * uintp.h, uintp.ads, uintp.adb: Add new routines UI_To_CC and
8806         UI_From_CC.
8807
8808         * widechar.ads, widechar.adb (Is_UTF_32_Non_Graphic): New function
8809         Add full UTF-32 support
8810         Char_Code is now 32 bits
8811
8812         * sinput.ads, sinput.adb (Skip_Line_Terminators): Extend to deal with
8813         wide character UTF_32 line terminators.
8814         Initialize Main_Source_File to avoid error when no main
8815         source is loaded.
8816
8817         * errout.adb (Finalize): Do not check Num_SRef_Pragmas
8818         (Main_Source_File) when no main source has been loaded, to avoid
8819         potential crash.
8820
8821 2005-02-09  Robert Dewar  <dewar@adacore.com>
8822
8823         * a-strunb.ads, a-strunb.adb: Add missing pragma Ada_05 statements
8824         Fix name of Set routine
8825
8826         * a-strfix.ads, a-strfix.adb: Add new index functions from AI-301 to
8827         fixed packages.
8828
8829         * a-stwise.ads, a-stwise.adb, a-stwifi.ads, a-stwifi.adb,
8830         a-strsea.ads, a-strsea.adb: Add new index functions from AI-301 to
8831         fixed packages
8832
8833         * a-witeio.ads, a-witeio.adb, a-textio.ads, a-textio.adb: New function
8834         forms of Get_Line subprograms for AI-301.
8835
8836         * a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads,
8837         a-wtedit.adb, a-wtedit.adb, a-wtedit.ads, a-wttest.adb,
8838         a-wttest.ads, a-strmap.ads, a-strmap.adb, a-stwima.adb,
8839         a-stwima.ads: Minor reformatting.
8840
8841 2005-02-09  Doug Rupp  <rupp@adacore.com>
8842             Thomas Quinot  <quinot@adacore.com>
8843
8844         * adaint.c, adaint.h
8845         [VMS] (to_ptr32): New function.
8846         (MAYBE_TO_PTR32): New macro.
8847         (__gnat_portable_spawn,__gnat_portable_no_block_spawn): Adjust argv
8848         for pointer size.
8849         [VMS] (descriptor_s, ile_s): Use __char_ptr32 for adr field.
8850         [VMS] (#define fork()): Remove since unneccessary.
8851         (__gnat_set_close_on_exec): New routine to support
8852         GNAT.OS_Lib.Set_Close_On_Exec.
8853
8854         * g-expect.adb (Set_Up_Communications): Mark the pipe descriptors for
8855         the parent side as close-on-exec so that they are not inherited by the
8856         child.
8857
8858         * g-os_lib.ads, g-os_lib.adb (Set_Close_On_Exec): New subprogram to
8859         set or clear the FD_CLOEXEC flag on a file descriptor.
8860
8861 2005-02-09  Eric Botcazou  <ebotcazou@adacore.com>
8862             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8863
8864         Fix for c330001 - PR ada/19386
8865
8866         * decl.c:
8867         (gnat_to_gnu_field): Do not necessarily invoke make_packable_type
8868         on the field if Pragma Component_Alignment (Storage_Unit).
8869         (gnat_to_gnu_entity, case object): Do not treat a renaming that has
8870         side-effects as if it were a constant; also make SAVE_EXPR to protect
8871         side-effects.
8872         (gnat_to_gnu_entity, case E_Record_Subtype): If have _Parent, make a
8873         UNION_TYPE.
8874         (make_dummy_type): Set TYPE_UNCHECKED_UNION_P.
8875         (components_to_record): Test it.
8876         Fix improper usage of REFERENCE_CLASS_P.
8877
8878         * utils2.c (build_binary_op, case MODIFY_EXPRP): Treat UNION_TYPE as
8879         RECORD_TYPE.
8880
8881         * utils2.c: Minor reformatting.
8882
8883         * utils.c (convert, case UNION_TYPE): Check TYPE_UNCHECKED_UNION;
8884         handle other cases like RECORD_TYPE.
8885
8886         * utils.c (gnat_pushdecl): Set TREE_NO_WARNING.
8887
8888 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
8889
8890         * exp_aggr.adb (Gen_Assign): If the expression is an aggregate for a
8891         component of an array of arrays in an assignment context, and the
8892         aggregate has component associations that require sliding on
8893         assignment, force reanalysis of the aggregate to generate a temporary
8894         before the assignment.
8895         (Must_Slide): Make global to the package, for use in Gen_Assign.
8896
8897 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
8898
8899         * exp_ch4.adb (Expand_Composite_Equality): If a component is an
8900         unchecked union with no inferable discriminants, return a
8901         Raise_Program_Error node, rather than inserting it at the point the
8902         type is frozen.
8903         (Expand_Record_Equality, Component_Equality): Handle properly the case
8904         where some subcomponent is an unchecked union whose generated equality
8905         code raises program error.
8906
8907 2005-02-09  Doug Rupp  <rupp@adacore.com>
8908
8909         * gnatbl.c: [VMS] (_POSIX_EXIT): Define.
8910         [VMS] (#define exit hack): Remove.
8911
8912 2005-02-09  Pascal Obry  <obry@adacore.com>
8913             Arnaud Charlet <charlet@adacore.com>
8914
8915         * init.c (__gnat_initialize): Add a new parameter eh which contains the
8916         address of the exception registration. The Win32 version of this
8917         routine calls __gnat_install_SEH_handler() to initialize the SEH
8918         (Structured Exception Handling) handler.
8919         (__gnat_error_handler) [Win32]: Removed. Not needed as we use
8920         SEH (Structured Exception Handling) now.
8921         (__gnat_install_handler) [Win32]: Nothing to do now as we use SEH.
8922         (__gnat_initialize for ppc-vxworks): Adjust comments and the
8923         preprocessor condition protecting the call to the extra eh setup
8924         subprogram, which is only available for the ppc target.
8925         (__gnat_clear_exception_count): replaced reference to
8926         variable taskIdCurrent by call to taskIdSelf(), cleaner.
8927
8928         * seh_init.c: New file.
8929
8930         * Make-lang.in: (GNAT_ADA_OBJS): Add seh_init.o.
8931         (GNATBIND_OBJS): Idem.
8932
8933         * misc.c (gnat_parse_file): Update call to __gnat_initialize. This
8934         routine takes a new parameter (a pointer to the exception registration
8935         for the SEH (Structured Exception Handling) support.
8936
8937         * raise.h: (__gnat_install_SEH_handler): New prototype.
8938         Update copyright notice.
8939
8940         * s-tassta.adb (Task_Wrapper): Declare the exception registration
8941         record and initialize it by calling __gnat_install_SEH_handler.
8942
8943 2005-02-09  Vincent Celier  <celier@adacore.com>
8944
8945         * make.adb (Gnatmake): Do not fail when the main project has no object
8946         directory.
8947
8948 2005-02-09  Doug Rupp  <rupp@adacore.com>
8949
8950         * Makefile.in [VMS] (LN,LN_S): Define as cp -p
8951         Rename s-asthan-vms.adb to s-asthan-vms-alpha.adb.
8952         [VMS]: Add translations for g-enblsp.adb.
8953
8954         * s-asthan-vms.adb: Removed.
8955         * s-asthan-vms-alpha.adb: Added.
8956
8957 2005-02-09  Pascal Obry  <obry@adacore.com>
8958
8959         * Makefile.in (LIBGNAT_SRCS): Add seh_init.c.
8960         (LIBGNAT_OBJS): Add seh_init.o.
8961
8962 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
8963
8964         PR ada/16592
8965
8966         * Makefile.in: Link all gnat tools with -static-libgcc, since
8967         -shared-libgcc is now used by default on some systems (e.g. linux with
8968         recent binutils).
8969         Remove references to Makefile.prolog/generic, no longer used.
8970
8971 2005-02-09  Vincent Celier  <celier@adacore.com>
8972
8973         * prj-makr.adb (Process_Directory): Put file name in canonical case
8974         before matching against the patterns.
8975         If gnatname has been invoked as <prefix>-gnatname
8976         then invoke the compiler as <prefix>-gcc, not just "gcc".
8977
8978 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
8979
8980         * sem_ch4.adb (Analyze_Selected_Component): Create Actual_Subtype even
8981         with expansion disabled. The actual subtype is needed among other
8982         places when the selected component appears in the context of a loop
8983         bound, and denotes a packed array.
8984         (Operator_Check): Always use the first subtype in the
8985         error message, to avoid the appearance of internal base types.
8986         (Transform_Object_Operation): Copy each actual in full
8987         to the parameter associations of the constructed call, rather than
8988         using the shallow copy mechanism of New_Copy_List. This ensures that
8989         the chaining of named associations is done properly.
8990         (Complete_Object_Operation): Rewrite node, rather than
8991         replacing it, so that we can trace back to the original selected
8992         component.
8993
8994         * sem_elab.adb (Set_Elaboration_Constraint): For initialization calls,
8995         and calls that use object notation, if the called function is not
8996         declared  in a withed unit, place the elaboration constraint on the
8997         unit in the context that makes the function accessible.
8998         (Check_Elab_Subtype_Declaration): Check whether a subtype declaration
8999         imposes an elaboration constraint between two packages.
9000
9001 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
9002
9003         * sem_ch7.adb (Uninstall_Declarations): Exchange full and private
9004         views of a private type after handling its private dependents, to
9005         maintain proper stack discipline between entry and exit from the
9006         package.
9007
9008 2005-02-09  Cyrille Comar  <comar@adacore.com>
9009
9010         * s-finimp.adb: (Finalize_List): Optimize in the no-abort case.
9011         Minor reformatting.
9012
9013 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
9014
9015         * s-tporft.adb (Register_Foreign_Thread): Initialize Task_Image[_Len]
9016         fields for foreign threads.
9017
9018 2005-02-09  Doug Rupp  <rupp@adacore.com>
9019
9020         * s-vaflop.adb: Add pragma Warnings (Off) to eliminate infinite
9021         recursion warnings when compiled with -gnatdm.
9022
9023 2005-02-09  Robert Dewar  <dewar@adacore.com>
9024
9025         * usage.adb: Add line for switch -gnat05 (allow Ada 2005 extensions)
9026         Slight fix to documentation of -gnaty with no parameters
9027
9028         * xr_tabls.ads: Add ??? comment for missing overall comment
9029
9030         * xsinfo.adb: Make default file name be sinfo.h, since this is what
9031         we now use by default.
9032
9033         * xsnames.adb: Adjust end of file test to look for five space followed
9034         by '#' instead of six spaces. The format of xsnames.adb was modified
9035         in the last update.
9036
9037         * a-numeri.ads: Add reference to AI-388 for greek letter pi
9038         identifier.
9039
9040         * clean.adb: Minor reformatting.
9041
9042         * gnat1drv.adb, gnatfind.adb, gnatlink.adb, gnatmem.adb,
9043         gnatname.adb: Minor reformatting
9044         Add 2005 to copyright output when utility is run
9045
9046         * csets.adb: Eliminate obsolete comment
9047
9048         * debug.adb, g-socket.ads, i-cobol.adb: Minor reformatting throughout
9049         Update comments.
9050
9051         * sem_eval.ads (Eval_Integer_Literal): Do not inline this, not useful.
9052
9053 2005-02-09  Sergey Rybin  <rybin@adacore.com>
9054
9055         * gnat_ugn.texi: Add to the gnatpp section the paragraph describing
9056         the difference between compact and incompact layout and add the record
9057         representation clause to the example illustrating different layouts.
9058         Add the description of '-A5' gnatpp option ("align 'AT' keywords in
9059         component clauses").
9060
9061 2005-02-09  Florian Villoing  <villoing@adacore.com>
9062
9063         * gnat_ugn.texi: Fix typos.
9064         Use @command to display 'gcc', 'gnatbind', etc. insted of @code or
9065         @file.
9066         Make proper use of @ref, @xref and @pxref to avoid duplication of "see"
9067         in the generated documentation.
9068
9069 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
9070
9071         * gnat_ugn.texi: Remove all mentions of FSU threads, which are no
9072         longer supported.
9073         Update linker wrapper when linking with non GNU C++.
9074
9075 2005-02-09  Pascal Obry  <obry@adacore.com>
9076
9077         * gnat_ugn.texi:
9078         Document the procedure to debug the DllMain routine on Windows.
9079         Add note about -funwind-tables and mixed Ada and C/C++ programming in
9080         ZCX mode.
9081         Document new BIND qualifer /RETURN_CODES=VMS.
9082
9083 2005-02-09  Ben Brosgol  <brosgol@adacore.com>
9084
9085         * gnat_ugn.texi: Wordsmithing of "GNAT and Libraries" chapter
9086         Edited gnatmetric chapter
9087
9088 2005-02-09  Robert Dewar  <dewar@adacore.com>
9089
9090         * gnat_rm.texi:
9091         Changes to document new wide wide character support
9092         For AI-285
9093         Update documentation on Normalize_Scalars and Initialize_Scalars
9094
9095 2005-02-09  Pascal Obry  <obry@adacore.com>
9096
9097         * s-taprop-mingw.adb, s-soflin.ads: Minor reformatting.
9098
9099 2005-02-09  Jose Ruiz  <ruiz@adacore.com>
9100
9101         * s-osinte-vxworks.ads (taskPriorityGet): Add this function (imported
9102         from the VxWorks kernel) that is needed for getting the active
9103         priority of the different tasks.
9104
9105         * s-atacco.ads, s-atacco.adb (Nothing): Remove this dummy procedure.
9106         Use a pragma Elaborate_Body in the spec file instead.
9107         Noticed by code reading.
9108
9109 2005-02-09  Thomas Quinot  <quinot@adacore.com>
9110
9111         * exp_util.ads: Minor correction in comment.
9112
9113 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
9114
9115         * s-taprop.ads (Initialize): Update comments. Remove pragma Inline,
9116         since this procedure is now too complex to be worth inlining.
9117
9118 2005-02-09  Richard Henderson  <rth@redhat.com>
9119
9120         * utils.c (gnat_define_builtin): Remove.
9121         (gnat_install_builtins): Use build_common_builtin_nodes.
9122
9123 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
9124
9125         * a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb, a-crbtgk.ads,
9126         a-crbtgk.adb, a-crbltr.ads, a-coprnu.ads, a-coprnu.adb,
9127         a-coorse.ads, a-coorse.adb, a-convec.ads, a-convec.adb,
9128         a-contai.ads, a-coinve.ads, a-coinve.adb, a-cohata.ads,
9129         a-cohama.ads, a-cohama.adb, a-ciorse.ads, a-ciorse.adb,
9130         a-cihama.ads, a-cihama.adb, a-cidlli.ads, a-cidlli.adb,
9131         a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads, a-cgcaso.adb,
9132         a-cgarso.ads, a-cgarso.adb, a-cdlili.ads, a-cdlili.adb,
9133         a-cgaaso.adb, a-coormu.adb, a-ciormu.adb, a-cihase.adb,
9134         a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads,
9135         a-coorma.ads, a-swunha.ads, a-stunha.ads, a-ciormu.ads,
9136         a-coormu.ads, a-rbtgso.ads, a-swunha.adb, a-stunha.adb,
9137         a-cgaaso.ads, a-ciorma.adb, a-coorma.adb, a-secain.adb,
9138         a-secain.ads, a-slcain.ads, a-slcain.adb, a-shcain.ads,
9139         a-shcain.adb, a-chtgke.ads, a-chtgke.adb, a-stwiha.ads,
9140         a-stwiha.adb, a-strhas.ads, a-strhas.adb, a-chzla1.ads,
9141         a-chzla9.ads, a-lfztio.ads, a-liztio.ads, a-llfzti.ads,
9142         a-llizti.ads, a-sfztio.ads, a-siztio.ads, a-ssizti.ads,
9143         a-stzbou.adb, a-stzbou.ads, a-stzfix.adb, a-stzfix.ads,
9144         a-stzhas.adb, a-stzhas.ads, a-stzmap.adb, a-stzmap.ads,
9145         a-stzsea.adb, a-stzsea.ads, a-stzsup.adb, a-stzsup.ads,
9146         a-stzunb.adb, a-stzunb.ads, a-swunau.adb, a-swunau.ads,
9147         a-szmzco.ads, a-szunau.adb, a-szunau.ads, a-szunha.adb,
9148         a-szunha.ads, a-szuzti.adb, a-szuzti.ads, a-tiunio.ads,
9149         a-wwunio.ads, a-ztcoau.adb, a-ztcoau.ads, a-ztcoio.adb,
9150         a-ztcoio.ads, a-ztcstr.adb, a-ztcstr.ads, a-ztdeau.adb,
9151         a-ztdeau.ads, a-ztdeio.adb, a-ztdeio.ads, a-ztedit.adb,
9152         a-ztedit.ads, a-ztenau.adb, a-ztenau.ads, a-ztenio.adb,
9153         a-ztenio.ads, a-ztexio.adb, a-ztexio.ads, a-ztfiio.adb,
9154         a-ztfiio.ads, a-ztflau.adb, a-ztflau.ads, a-ztflio.adb,
9155         a-ztflio.ads, a-ztgeau.adb, a-ztgeau.ads, a-ztinau.adb,
9156         a-ztinau.ads, a-ztinio.adb, a-ztinio.ads, a-ztmoau.adb,
9157         a-ztmoau.ads, a-ztmoio.adb, a-ztmoio.ads, a-zttest.adb,
9158         a-zttest.ads, a-zzunio.ads: New files. Part of new Ada 2005
9159         library.
9160
9161 2005-01-27  Laurent GUERBY <laurent@guerby.net>
9162
9163         * Makefile.in: Fix a-intnam.ads from previous commit,
9164         add 2005 to copyright.
9165         * a-intman-rtems.ads: Renamed to...
9166         * a-intnam-rtems.ads:
9167
9168 2005-01-27  Laurent GUERBY <laurent@guerby.net>
9169
9170         * Makefile.in: Rename GNAT RTEMS specific files.
9171         * 5rtpopsp.adb, 4rintnam.ads, 5rosinte.adb,
9172         5rosinte.ads, 5rparame.adb: Replaced by files below.
9173         * s-tpopsp-rtems.adb, a-intman-rtems.ads, s-osinte-rtems.adb,
9174         s-osinte-rtems.ads, s-parame-rtems.adb: Replace files above.
9175
9176 2005-01-27  Joel Sherrill <joel.sherrill@oarcorp.com>
9177             Laurent GUERBY <laurent@guerby.net>
9178
9179         PR ada/19488
9180         * 5rosinte.ads: Add No_Key constant.
9181         * 5rtpopsp.adb: Initialize ATCB_Key with No_Key and fix style.
9182         * gsocket.h: Do not include <sys/socket.h> with RTEMS either.
9183
9184 2005-01-26  Laurent GUERBY <laurent@guerby.net>
9185
9186         PR ada/19414
9187         * i-cobol.adb (Valid_Numeric): Handle zero length case.
9188
9189 2005-01-20  Richard Henderson  <rth@redhat.com>
9190
9191         * Makefile.in (alpha-linux, LIBGNAT_TARGET_PAIRS): Use
9192         a-intnam-linux.ads and system-linux-alpha.ads.
9193         * a-intnam-linux-alpha.ads: Remove file.
9194         * s-osinte-linux-alpha.ads (SIGUNUSED, SIGSTKFLT, SIGLOST): New.
9195         * system-linux-alpha.ads: New file.
9196
9197 2005-01-18  Jakub Jelinek  <jakub@redhat.com>
9198
9199         PR ada/13470
9200         * a-stunau.adb (Get_String): Don't return U.Reference, but Ret that is
9201         set to the new string.
9202
9203 2005-01-18  Toon Moene  <toon@moene.indiv.nluug.nl>
9204
9205         * system-linux-ppc.ads: Set ZCX_By_Default and GCC_ZCX_Support
9206         to True.
9207
9208 2005-01-18  Richard Henderson  <rth@redhat.com>
9209
9210         * Makefile.in (LIBGNAT_TARGET_PAIRS, TOOLS_TARGET_PAIRS, MISCLIB,
9211         THREADSLIB, GNATLIB_SHARED, PREFIX_OBJS, LIBRARY_VERSION): Specialize
9212         for alpha-linux.
9213         * s-osinte-linux-alpha.ads, a-intnam-linux-alpha.ads: New files.
9214
9215 2005-01-14  Andrew Pinski  <pinskia@physics.uc.edu>
9216
9217         * system-darwin-ppc.ads (ZCX_By_Default): Change to True.
9218         (GCC_ZCX_Support): Likewise.
9219
9220 2005-01-11  Bastian Blank  <waldi@debian.org>
9221
9222         * system-linux-s390.ads: Define Preallocated_Stacks.
9223         * system-linux-s390x.ads: Likewise.
9224
9225 2005-01-04  Arnaud Charlet  <charlet@adacore.com>
9226
9227         * gnat_ugn.texi: Fix texi errors with null variables.
9228
9229 2005-01-03  Thomas Quinot  <quinot@adacore.com>
9230
9231         * gen-soccon.c: New utility program to generate g-soccon.ads
9232         automatically.
9233
9234         * socket.c, gsocket.h: Split inclusion of system header files into a
9235         gsocket.h file separated from socket.c, to allow reuse in gen-soccon.c.
9236
9237         * g-soccon.ads, g-soccon-unixware.ads, g-soccon-tru64.ads,
9238         g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
9239         g-soccon-interix.ads, g-soccon-solaris.ads, g-soccon-mingw.ads,
9240         g-soccon-vxworks.ads, g-soccon-freebsd.ads: Note that these files
9241         should not be edited by hand anymore, but should be regenerated using
9242         gen-soccon.
9243
9244 2005-01-03  Robert Dewar  <dewar@adacore.com>
9245             Ed Schonberg  <schonberg@adacore.com>
9246             Vincent Celier  <celier@adacore.com>
9247
9248         * s-atacco.ads, a-direio.adb: Protect use of 'Constrained by warnings
9249         on/off, since this is an obsolescent feature, for which we now generate
9250         a warning.
9251
9252         * sem_attr.adb (Analyze_Attribute, case Constrained): Issue warning if
9253         warning mode is set and obsolescent usage of this attribute occurs.
9254         (Resolve_Access, case 'Access): Note that GNAT uses the context type to
9255         disambiguate overloaded prefixes, in accordance with AI-235. GNAT code
9256         predates, and partly motivates, the adoption of the AI.
9257         Implement new Ada 2005 attribute Mod
9258
9259         * exp_attr.adb (Expand_N_Attribute_Reference): Implement Ada 2005
9260         attribute Mod.
9261
9262         * par-ch4.adb (P_Name): In Ada 2005 mode, recognize new attribute Mod
9263
9264         * snames.h, snames.ads, snames.adb: Add entry for No_Dependence for
9265         pragma restrictions.
9266         New entry for Ada 2005 attribute Mod.
9267
9268         * par-prag.adb:
9269         Add recognition of new pragma Restrictions No_Dependence
9270         Recognize restriction No_Obsolescent_Features at parse time
9271
9272         * bcheck.adb: Add circuitry for checking for consistency of
9273         No_Dependence restrictions.
9274
9275         * lib-writ.ads, lib-writ.adb: Output new R lines for No_Dependence
9276         restrictions.
9277
9278         * restrict.ads, restrict.adb: Add subprograms to deal with
9279         No_Dependence restrictions.
9280
9281         * rtsfind.adb: Check that implicit with's do not violate No_Dependence
9282         restrictions.
9283
9284         * sem_ch3.adb, sem_ch11.adb, sem_ch13.adb, lib-xref.adb,
9285         sem_attr.adb: Add check for new restriction No_Obsolescent_Features
9286
9287         * scn.ads, prj-err.ads, prj-err.adb, ali-util.adb, gprep.adb: Add new
9288         dummy parameter to scng instantiation.
9289         Needed for new restriction No_Obsolescent_Features
9290
9291         * scn.adb: (Obsolescent_Check): New procedure
9292         Needed for new restriction No_Obsolescent_Features
9293
9294         * scng.ads, scng.adb: Always allow wide characters in Ada 2005 mode, as
9295         specified by AI-285, needed for implementation of AI-388 (adding greek
9296         pi to Ada.Numerics).
9297         Add new generic formal to scng, needed for new restriction
9298         No_Obsolescent_Features.
9299
9300         * s-rident.ads: Add new restriction No_Obsolescent_Features.
9301
9302         * ali.ads, ali.adb: Adjustments for reading new No_Dependence
9303         restrictions lines.
9304         (Scan_ALI): When finding an unexpected character on an R line, raise
9305         exception Bad_R_Line, instead of calling Fatal_Error, so that, when
9306         Ignore_Errors is True, default restrictions are set and scanning of the
9307         ALI file continues with the next line. Also, when Bad_R_Line is raised
9308         and Ignore_Errors is True, skip to the end of le line.
9309
9310         * sem_ch10.adb: Check that explicit with's do not violate
9311         No_Dependence restrictions.
9312         (Install_Withed_Unit): Add code to implement AI-377 and diagnose
9313         illegal context clauses containing child units of instance.
9314
9315         * sem_prag.adb: Processing and checking for new No_Dependence
9316         restrictions.
9317         (Analyze_Pragma, case Psect_Object): Call Check_Arg_Is_External_Name to
9318         analyze and check the External argument.
9319
9320         * a-numeri.ads: Add greek letter pi as alternative spelling of Pi
9321
9322 2005-01-03  Robert Dewar  <dewar@adacore.com>
9323
9324         * atree.adb: Add a fifth component to entities
9325         This allows us to add 32 flags and four new fields
9326
9327         * atree.ads: Add a fifth component to entities
9328         This allows us to add 32 flags and four new fields
9329
9330         * einfo.ads, einfo.adb: Document new fields and new flags now available
9331         Add routines for printing new fields
9332
9333         * treepr.adb: Call routines to print out additional fields if present
9334
9335 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
9336
9337         * bld.ads, bld.adb, bld-io.ads, bld-io.adb, gprcmd.adb,
9338         gpr2make.ads, gpr2make.adb: Remove gpr2make, replaced by gprmake.
9339
9340         * Makefile.in: Add support to build shared Ada libraries on solaris x86
9341         Remove gpr2make, replaced by gprmake.
9342         Remove references to gnatmem and libaddr2line.
9343         Add indepsw.adb<indepsw-linux.adb to TOOLS_TARGET_PAIRS for IA64 linux.
9344         (gnatlib-shared-darwin): Add "-fno-common" to GNATLIBCFLAGS.
9345         Add support for specialized version of Ada.Numerics.Aux for Darwin: use
9346         a-numaux-darwin.ads and a-numaux-darwin.adb
9347         Enable mlib-tgt-lynxos.adb on lynxos.
9348
9349         * Make-lang.in: Remove rules for gpr2make.
9350         When generating sdefault.adb, do not call Relocate_Path
9351         on S3 for function Target_Name, as it is not a path.
9352         Remove references to gnatmem and libaddr2line.
9353
9354         * a-numaux-darwin.ads, a-numaux-darwin.adb, g-soccon-darwin.ads: New
9355         files.
9356
9357 2005-01-03  Samuel Tardieu  <tardieu@adacore.com>
9358
9359         * checks.adb (Apply_Alignment_Check): Generate a warning if an object
9360         address is incompatible with its base type alignment constraints when
9361         this can be decided statically.
9362
9363 2005-01-03  Olivier Hainque  <hainque@adacore.com>
9364
9365         * decl.c (compatible_signatures_p): New function. The intended purpose
9366         is to check if two function signatures for a call-site and a callee are
9367         compatible enough for the call to be valid. The underlying purpose is
9368         to check if a call to a mapped builtin is using the right interface.
9369         The current code actually does not check antyhing - this a placeholder
9370         for future refinements.
9371         (gnat_to_gnu_entity) <E_Subprogram_Call>: Add preliminary bits to handle
9372         builtin calls for convention Intrinsic.
9373
9374         * gigi.h (builtin_decl_for): Declare (new function).
9375
9376         * utils.c (gnat_install_builtins): Install the target specific builtins.
9377         (builtin_decl_for): New function, provide a dummy body for now.
9378
9379 2005-01-03  Geert Bosch  <bosch@adacore.com>
9380
9381         * eval_fat.adb: (Eps_Model,Eps_Denorm): Remove, no longer used.
9382         (Succ): Re-implement using Scaling, Exponent and Ceiling attributes.
9383         (Pred): Implement in terms of Succ.
9384
9385         * trans.c (convert_with_check): Reimplement conversion of float to
9386         integer.
9387
9388 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
9389             Vincent Celier  <celier@adacore.com>
9390
9391         * exp_aggr.adb (Packed_Array_Aggregate_Handled): The values of the
9392         bounds can be negative, and must be declared Int, not Nat.
9393
9394         * sem_elim.adb (Line_Num_Match): Correct wrong code when index in an
9395         array is checked after using the index in the array.
9396
9397         * makegpr.adb (Add_Switches): Check if there is a package for the
9398         processor. If there is no package, do not look for switches.
9399
9400 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
9401
9402         * exp_ch3.adb (Stream_Operations_OK): Predicate to determine when the
9403         generation of predefined stream operations (specs and bodies) should
9404         proceed. Under various restrictions these subprograms must not be
9405         generated.
9406
9407 2005-01-03  Thomas Quinot  <quinot@adacore.com>
9408
9409         * exp_dist.adb:
9410         Declare subprogram index in Build_RPC_Receiver_Body, to reduce the
9411         amount of PCS-specific code in RACW stubs generation.
9412         (Copy_Specification): Set Etype on copied formal parameter entities, as
9413         this information is needed for PolyORB stubs generation.
9414         (PolyORB_Support.Build_Subprogram_Receiving_Stubs): Remove unused
9415         variable Dynamic_Async.
9416         (Build_Subprogram_Receiving_Stubs): Make PCS-specific
9417         (Build_RPC_Receiver_Specification): Make generic again, as recent
9418         changes have allowed RPC receivers to have the same profile for both
9419         variants of the PCS.
9420         Reorganise RPC receiver generation to reduce differences between the
9421         structure of GARLIC and PolyORB RPC receivers.
9422         (Add_Receiving_Stubs_To_Declarations): Make this subprogram
9423         PCS-specific.
9424         Simplify elaboration code for RCI packages.
9425
9426         * s-parint.ads, s-parint.adb, rtsfind.ads: Reorganise RPC receiver
9427         generation to reduce differences between the structure of GARLIC and
9428         PolyORB RPC receivers.
9429
9430         * s-stratt.adb: Fix typo in comment.
9431
9432 2005-01-03  Thomas Quinot  <quinot@adacore.com>
9433
9434         * exp_ch7.ads (Make_Final_Call): Rewrite comment (was incorrectly
9435         copied from Make_Init_Call).
9436
9437         * exp_strm.adb (Build_Mutable_Record_Read_Procedure): Do component
9438         reads and assignments on a temporary variable declared with appropriate
9439         discriminants.
9440
9441 2005-01-03  Robert Dewar  <dewar@adacore.com>
9442
9443         * i-c.adb (To_C): Raise CE if string is null and Append_Null
9444
9445 2005-01-03  Robert Dewar  <dewar@adacore.com>
9446
9447         * i-cstrin.adb (Update): Do not append a null in form called with a
9448         String. This avoids unintended behavior.
9449
9450 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
9451
9452         PR ada/17527
9453         * init.c: Fix warnings on Free BSD section.
9454
9455 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
9456
9457         PR ada/16949
9458         * sinfo.ads: Fix obsolete reference to xsinfo.spt (replaced by
9459         xsinfo.adb).
9460
9461 2005-01-03  Vincent Celier  <celier@adacore.com>
9462
9463         * make.adb (Collect_Arguments_And_Compile): Do not attempt to build
9464         libraries when Unique_Compile is True (-u switch).
9465         (Gnatmake): ditto.
9466
9467 2005-01-03  Robert Dewar  <dewar@adacore.com>
9468
9469         * namet.adb (Get_Decoded_Name_With_Brackets): Fix case of not allowing
9470         upper case letter or underscore after W, as allowed by spec.
9471
9472 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
9473
9474         * s-osinte-darwin.ads, s-osinte-darwin.adb: Clean up
9475         darwin port by using proper type definitions from header files.
9476         Use SIGTERM instead of SIGABRT for SIGADAABORT.
9477
9478 2005-01-03  Robert Dewar  <dewar@adacore.com>
9479
9480         * par.adb: Enhance error message handling for configuration file
9481         pragmas.
9482
9483 2005-01-03  Robert Dewar  <dewar@adacore.com>
9484
9485         * s-arit64.adb (Double_Divide): Put back changes that got accidentally
9486         removed during the previous update (test properly for case of dividing
9487         largest negative number by -1, which generates overflow).
9488
9489 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
9490             Sergey Rybin  <rybin@adacore.com>
9491
9492         * sem_ch12.adb (Analyze_Package_Instantiation): Create a separate node
9493         to use as the defining identifier for a formal package.
9494         (Remove_Parent): If the instance takes place within (an instance of)
9495         a sibling, preserve private declarations of common parent.
9496
9497 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
9498
9499         * sem_ch4.adb (Has_Fixed_Op): New predicate in Check_Arithmetic_Pair,
9500         to determine whether one of the operands is a fixed-point type for
9501         which a user-defined multiplication or division operation might be
9502         defined.
9503
9504         * sem_res.adb (Valid_Conversion): The legality rules for conversions
9505         of access types are symmetric in Ada 2005: either designated type can
9506         be unconstrained.
9507
9508 2005-01-03  Vincent Celier  <celier@adacore.com>
9509
9510         * s-fileio.adb (Temp_File_Record): Change length of string component
9511         Name from L_tmpnam + 1 to max_path_len + 1.
9512
9513 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
9514
9515         * s-tasini.ads, s-tasini.adb (Undefer_Abortion): Handle case of
9516         Self_Id.Deferral_Level = 0.
9517         (Do_Pending_Action): Move this function to the spec.
9518
9519         * s-tasren.adb (Selective_Wait [Terminate_Selected]): Call
9520         Do_Pending_Action explicitely when needed, in case we're using
9521         No_Abort restrictions.
9522
9523         * s-tassta.adb (Create_Task): If Abort is not allowed, reset the
9524         deferral level since it will not get changed by the generated code.
9525         Keeping a default value of 1 would prevent some operations (e.g.
9526         select or delay) to proceed successfully.
9527
9528 2005-01-03  Ben Brosgol  <brosgol@adacore.com>
9529             Robert Dewar  <dewar@adacore.com>
9530             Cyrille Comar  <comar@adacore.com>
9531
9532         * ug_words, gnat_ugn.texi: Added alpha-ivms transitioning section to
9533         porting guide chapter (vms version).
9534         Revised doc title (removed "for native platforms") and subtitle.
9535         Add discussion on warning flag for obsolescent features. First we
9536         note that it applies to obsolete GNAT features, which was previously
9537         omitted. Second we contrast the behavior with that of the new
9538         Ada 2005 AI-368 restriction No_Obsolescent_Features.
9539         Preliminary rewriting of GNAT & libraries chapter in order to take
9540         into account default project locations & new project manager
9541         capabilities.
9542
9543 2005-01-03  Robert Dewar  <dewar@adacore.com>
9544
9545         * cstand.adb (Create_Operators): Clean up format and documentation of
9546         unary and binary operator result tables. No change in code, just
9547         reformatting and addition of comments.
9548
9549         * errout.ads, gnatfind.adb, s-maccod.ads, sem.adb,
9550         sem_ch2.adb: Minor reformatting
9551
9552         * atree.ads, elists.ads, lib.ads, namet.ads, nlists.ads, repinfo.ads,
9553         sinput.ads, stringt.ads, uintp.ads, urealp.ads: Minor clarification to
9554         comments for Tree_Read and Tree_Write.
9555
9556 2005-01-03  Pascal Obry  <obry@adacore.com>
9557
9558         * exp_attr.ads: Minor reformatting.
9559
9560 2005-01-03  Romain Berrendonner  <berrendo@adacore.com>
9561
9562         * comperr.adb (Compiler_Abort): Add specialized message for GAP
9563         versions.
9564
9565 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
9566
9567         * exp_pakd.adb (Create_Packed_Array_Type): Add a guard to check
9568         whether the ancestor type is private, as may be the case with nested
9569         instantiations.
9570
9571 2004-12-30  Sohail Somani <sohail@sohailsomani.com>
9572
9573         PR ada/19128
9574         * trans.c (gnat_to_gnu): Fix typo: Use correct return variable.
9575
9576 2004-12-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
9577
9578         * trans.c (Attribute_to_gnu): Adjust call to get_inner_reference.
9579         * utils2.c (build_unary_op): Likewise.
9580
9581 2004-12-22  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9582
9583         * trans.c (mark_visited): Set TYPE_SIZES_GIMPLIFIED.
9584
9585 2004-12-19  Richard Henderson  <rth@redhat.com>
9586
9587         * trans.c (gigi): Update gimplify_body call.
9588
9589 2004-12-09  Nathan Sidwell  <nathan@codesourcery.com>
9590
9591         * decl.c (gnat_substitute_in_type): Remove SET_TYPE case.
9592
9593 2004-12-07  Ed Falis  <falis@adacore.com>
9594
9595         * s-intman-vxworks.adb (Notify_Exception): removed useless check for
9596         current task being suspended.
9597
9598         * init.c (__gnat_clear_exception): added to reset VxWorks exception
9599         count.
9600         (__gnat_map_signal): removed test for current task being suspended.
9601
9602 2004-12-07  Gary Dismukes  <dismukes@adacore.com>
9603
9604         * a-exexpr.adb (Others_Value, All_Others_Value): Change initial values
9605         from 16#BEEF# to 16#7FFF# to avoid exceeding Integer'Last on 16-bit
9606         targets (such as AAMP).
9607
9608 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
9609
9610         * atree.adb (Visit_Itype): Create a new name for the generated itype,
9611         because the back-end may otherwise treat it as a redefinition of the
9612         old symbol.
9613
9614 2004-12-07  Eric Botcazou  <ebotcazou@adacore.com>
9615
9616         * back_end.adb (Scan_Back_End_Switches): Accept --param.
9617
9618         * lang-specs.h: Accept --param.
9619
9620 2004-12-07  Vincent Celier  <celier@adacore.com>
9621
9622         * make.adb (Check_Mains, Switches_Of): Adapt to name changes in
9623         package Prj (Current_Spec_Suffix => Ada_Spec_Suffix,
9624         Current_Body_Suffix => Ada_Body_Suffix).
9625         Take into account Externally_Built attribute.
9626
9627         * clean.adb (In_Extension_Chain): Always return False when one of the
9628         parameter is No_Project.
9629         (Clean_Project): Adapt to changes in package Prj (Lang_Ada =>
9630         Ada_Language_Index).
9631         (Gnatclean): Adapt to change in package Prj.Pars (no parameter
9632         Process_Languages for procedure Parse).
9633
9634         * gnatcmd.adb (Carg_Switches): New table.
9635         (GNATCmd): Put all switches following -cargs in the Carg_Switches table.
9636         Adapt to name changes in package Prj (Current_Spec_Suffix =>
9637         Ada_Spec_Suffix, Current_Body_Suffix => Ada_Body_Suffix).
9638
9639         * mlib-prj.adb: Adapt to changes in packages Prj and Prj.Com: type
9640         Header_Num and function Hash are now declared in package Prj,
9641         not Prj.Com.
9642
9643         * prj.adb (Suffix_Of): New function.
9644         (Set (Suffix)): New procedure.
9645         (Hash): One function moved from Prj.Com
9646         (Is_Present, Language_Processing_Data_Of): New functions
9647         (Set): Two new procedures
9648         (Add_Language_Name, Display_Language_Name): New procedures
9649
9650         * prj.ads: (Suffix_Of): New function
9651         (Set (Suffix)): New procedure
9652         Add several types and tables for multi-language support.
9653         (Header_Num): Type moved from Prj.Com
9654         (Hash): Two functions moved from Prj.Com
9655         (Is_Present, Language_Processing_Data_Of): New functions
9656         (Set): Two new procedures
9657         (Add_Language_Name, Display_Language_Name): New procedures
9658         (Naming): Component name changes:
9659         Current_Spec_Suffix => Ada_Spec_Suffix,
9660         Current_Body_Suffix => Ada_Body_Suffix. Add new components:
9661         Impl_Suffixes, Supp_Suffixes.
9662         (Project_Data): New components: Externally_Built, Supp_Languages,
9663         First_Language_Processing, Supp_Language_Processing, Default_Linker,
9664         Default_Linker_Path.
9665
9666         * prj-attr.adb: Add new attributes Ada_Roots and Externally_Built and
9667         new package Language_Processing with its attributes (Compiler_Driver,
9668         Compiler_Kind, Dependency_Option, Compute_Dependency, Include_Option,
9669         Binder_Driver, Default_Linker).
9670
9671         * prj-com.ads, prj-com.adb (Hash): Function moved to package Prj.
9672         (Header_Num): Type moved to package Prj
9673
9674         * prj-env.adb: Adapt to name changes in package Prj
9675         (Current_Spec_Suffix => Ada_Spec_Suffix,
9676         Current_Body_Suffix => Ada_Body_Suffix).
9677
9678         * prj-ext.adb: Add the default project dir (<prefix>/log/gnat) by
9679         default to the project path, except the "-" is one of the directories
9680         in env var ADA_PROJECT_PATH.
9681         (Current_Project_Path): Global variable, replacing Project_Path
9682         that was in the body of Prj.Part.
9683         (Project_Path): New function
9684         (Set_Project_Path): New procedure
9685         Initialize Current_Project_Path during elaboration of the package
9686         Remove dependency on Prj.Com, no longer needed
9687
9688         * prj-ext.ads (Project_Path): New function
9689         (Set_Project_Path): New procedure
9690
9691         * prj-nmsc.adb (Body_Suffix_Of): New function. Returns .<lang> when no
9692         suffix is defined for language <lang>.
9693         (Find_Sources, Record_Other_Sources): Use Body_Suffix_Of, instead of
9694         accessing directly the components of Naming.
9695         (Look_For_Sources): Use Set (Suffix) to set the suffix of a language.
9696         Reorganise of this package.
9697         Break procedure Check in several procedures.
9698
9699         * prj-nmsc.ads: Replace all procedures (Ada_Check,
9700         Other_Languages_Check and Language_Independent_Check) with a single
9701         procedure Check.
9702
9703         * prj-pars.ads, prj-pars.adb (Parse): Remove parameter
9704         Process_Languages, no longer needed.
9705
9706         * prj-part.adb (Project_Path): Move to the body of Prj.Ext as
9707         Current_Project_Path.
9708         Remove elaboration code, moved to the body of Prj.Ext
9709         Use new function Prj.Ext.Project_Path instead of old variable
9710         Project_Path.
9711         (Post_Parse_Context_Clause): Get Resolved_Path as a case-sensitive path.
9712         When comparing with project paths on the stack, first put the resolved
9713         path in canonical case.
9714         (Parse_Single_Project): Set the path name of the project file in the
9715         tree to the normalized path.
9716
9717         * prj-proc.ads, prj-proc.adb (Check, Recursive_Check, Process): Remove
9718         parameter Process_Languages, no longer needed.
9719         (Recursive_Check): Call Prj.Nmsc.Check, instead of Ada_Check and
9720         Other_Languages_Check.
9721
9722         * prj-tree.ads (Project_Name_And_Node): New component Canonical_Path
9723         to store the resolved canonical path of the project file.
9724         Remove dependency to Prj.Com, no longer needed
9725
9726         * prj-util.adb: Adapt to name changes in package Prj
9727         (Current_Spec_Suffix => Ada_Spec_Suffix, Current_Body_Suffix =>
9728         Ada_Body_Suffix).
9729
9730         * snames.ads, snames.adb: New standard names: Ada_Roots, Binder_Driver,
9731         Compiler_Driver, Compiler_Kind, Compute_Dependency, Default_Linker,
9732         Externally_Built, Include_Option, Language_Processing.
9733
9734         * makegpr.adb: Numerous changes due to changes in packages
9735         Prj and Prj.Nmsc.
9736
9737         * gnatls.adb: Add the default project dir (<prefix>/log/gnat) by
9738         default to the project path, except whe "-" is one of the directories
9739         in env var ADA_PROJECT_PATH.
9740         (Gnatls): In verbose mode, add the new section "Project Search Path:"
9741
9742 2004-12-07  Robert Dewar  <dewar@adacore.com>
9743
9744         * debug.adb: Document that -gnatdA automatically sets -gnatR3m
9745
9746         * gnat1drv.adb (Gnat1drv): If debug flag A set, then automatically
9747         set -gnatR3m mode.
9748
9749         * repinfo.adb (List_Rep_Info): Remove special handling of -gnatdA
9750         flag. No longer needed now that we handle this in gnat1drv.adb.
9751
9752         * repinfo.ads: Minor reformatting
9753
9754 2004-12-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9755             Olivier Hainque  <hainque@adacore.com>
9756             Eric Botcazou  <ebotcazou@adacore.com>
9757
9758         * decl.c (maybe_pad_type): Use TYPE_SIZE_UNIT of the input type for
9759         TYPE_SIZE_UNIT of result type if SIZE is not specified.
9760         (make_aligning_type): Pass -1 as ADDRESSABLE to prevent the creation
9761         of a bitfield, which we know is useless and causes trouble because of
9762         alignment implications.
9763
9764         * utils.c (create_var_decl): Set DECL_COMMON again on targets without
9765         BSS sections.
9766         (process_attributes): Clear DECL_COMMON again when a section attribute
9767         is present.
9768         (finish_record_type): Independently track if RECORD_TYPE has SIZE and/or
9769         SIZE_UNIT already set and use to compute final SIZE and SIZE_UNIT.
9770         (create_field_decl): Special case ADDRESSABLE negative to mean
9771         "no bitfield creation", to be used by make_aligning_type. Don't
9772         restrict bitfield creation to !ADDRESSABLE any more, as some BLKmode
9773         fields claimed addressable still have to be bitfields. Use
9774         value_factor_p instead of a raw binop construction to check for the
9775         position's alignment.
9776
9777 2004-12-07  Geert Bosch  <bosch@adacore.com>
9778
9779         * eval_fat.adb: Revert previous change.
9780
9781 2004-12-07  Thomas Quinot  <quinot@adacore.com>
9782             Ed Schonberg  <schonberg@adacore.com>
9783
9784         * exp_ch4.adb (Expand_N_Indexed_Component): For an indexed component
9785         with an implicit dereference as its prefix, use
9786         Insert_Explicit_Dereference instead of merely rewriting the prefix into
9787         an explicit dereference. This ensures that a reference to the original
9788         prefix is generated, if appropriate.
9789
9790         * sem_util.adb (Insert_Explicit_Dereference): When an implicit
9791         dereference is rewritten to an explicit one, generate a reference to
9792         the entity denoted by its prefix using the original prefix node, so
9793         the dereference can be properly recorded as a read of the denoted
9794         access value, if appropriate.
9795
9796         * sem_warn.adb (Output_Unreferenced_Messages): Do not abstain from
9797         emitting 'assigned but never read' warning on a variable on the basis
9798         that it has an access type.
9799         (Check_References): Emit unreferenced warning when the scope is a
9800         subprogram body.
9801
9802 2004-12-07  Robert Dewar  <dewar@adacore.com>
9803             Ed Schonberg  <schonberg@adacore.com>
9804
9805         * exp_ch6.adb (Expand_Call): Add comment on handling of back end
9806         intrinsic
9807
9808         * exp_intr.adb (Expand_Intrinsic_Call): Ignore unrecognized intrinsic,
9809         leaving call unchanged.
9810         This deals with the case where the pragma Import specified
9811         an external name, to be handled by the back end.
9812
9813         * sem_prag.adb (Process_Import_Or_Interface): Do not check validity of
9814         subprogram which is Imported with convention Intrinsic if an
9815         External_Name argument is specified.
9816         (Process_Import_Or_Interface): Properly diagnose link name argument.
9817         (Inlining_Not_Possible): New name for Cannot_Inline, to avoid confusion
9818         with Sem_Ch6.Cannot_Inline.
9819         (Process_Inline): Provide separate warning for inapplicable inline
9820         pragma.
9821         (Cannot_Inline): Reject subprograms that have an at_end handler, so that
9822         treatment is uniform on different targets.
9823
9824 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
9825
9826         * exp_ch7.adb (Expand_Cleanup_Actions): If statement sequence of
9827         construct is rewritten, preserve end label to permit source navigation.
9828
9829 2004-12-07  Thomas Quinot  <quinot@adacore.com>
9830
9831         * exp_dist.adb (Specific_Build_General_Calling_Stubs,
9832         Specific_Build_Stub_Target): New subprograms.
9833         (Build_Subprogram_Calling_Stubs): Make this procedure independent from
9834         the PCS implementation used, using the above PCS-customized subprograms.
9835         Minor reformatting.
9836         (PolyORB_Support.Helpers): New subunit containing supporting subprograms
9837         for generation of DSA code targeted to the PolyORB PCS.
9838         (Add_Stub_Type): Rewrite to isolate the parts that are specific to one
9839         implementation of the partition communication subsystem in ancillary
9840         subprograms.
9841         (Specific_Build_Stub_Type, GARLIC_Support.Build_Stub_Type,
9842         PolyORB_Support.Build_Stub_Type): New subrograms containing the
9843         PCS-specific part of Add_Stub_Type.
9844         (Insert_Partition_Check): Use runtime library function to perform
9845         E.4(19) check.
9846
9847         * rtsfind.ads: New entity System.PolyORB_Interface.Make_Ref
9848         (RE_Same_Partition): New entity, from s-parint.
9849
9850         * s-parint.ads, s-parint.adb (Same_Partition): New subprogram.
9851
9852 2004-12-07  Gary Dismukes  <dismukes@adacore.com>
9853
9854         * gnatmem.adb, gnatname.adb, gnatsym.adb, gprcmd.adb, vms_conv.adb:
9855         Output the copyright message on a separate line from the version
9856         message.
9857
9858 2004-12-07  Joel Brobecker  <brobecker@adacore.com>
9859
9860         * g-os_lib.adb (Spawn): Explicitly initialize Saved_Error to avoid a
9861         compile-time warning.
9862
9863 2004-12-07  Robert Dewar  <dewar@adacore.com>
9864
9865         * g-regpat.adb: (Match): Change a misuse of or to or else
9866
9867 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
9868
9869         * lib-xref.adb:
9870         (Generate_Reference): Handle properly a reference to an entry formal,
9871          when an accept statement has a pragma Unreferenced for it.
9872
9873         * sem_ch9.adb (Analyze_Accept_Statement): Reset the Is_Referenced flag
9874         and the Has_Pragma_Unreferenced flag for each formal before analyzing
9875         the body, to ensure that warnings are properly emitted for each accept
9876         statement of a given task entry.
9877
9878 2004-12-07  Vasiliy Fofanov  <fofanov@adacore.com>
9879
9880         * Makefile.in: Add support for foreign threads on VMS.
9881
9882 2004-12-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9883
9884         * misc.c (gnat_types_compatible_p, LANG_HOOKS_TYPES_COMPATIBLE_P):
9885         Remove.
9886         (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): New.
9887
9888         * adaint.h: (__gnat_dup, __gnat_dup2): Add missing decls.
9889
9890         * trans.c (Exception_Handler_to_gnu_sjlj): Also handle renamed
9891         exception.
9892         (call_to_gnu): Convert to actual DECL_ARG_TYPE, not variant of it.
9893
9894 2004-12-07  Robert Dewar  <dewar@adacore.com>
9895
9896         * nlists.adb (Prepend_Debug): Remove parameters and nest within
9897         Prepend.
9898         (Remove_Next_Debug): Same fix
9899
9900         * nlists.ads: Correct bad comments for Prev and Prev_Non_Pragma (we do
9901         maintain back pointers now, though we did not used to, and comments
9902         were out of date).
9903         (Prepend): Remove pragma Inline.
9904         (Remove_Next): Same cleanup
9905
9906 2004-12-07  Thomas Quinot  <quinot@adacore.com>
9907
9908         * sem_ch4.adb (Process_Implicit_Dereference_Prefix): New subprogram
9909         used to record an implicit dereference as a read operation on its
9910         prefix when operating under -gnatc. Necessary to avoid spurious
9911         'variable assigned but never read' warnings in that mode.
9912         (Process_Indexed_Component, Analyze_Selected_Component): When the prefix
9913         is a non-overloaded implicit dereference, call the above subprogram to
9914         ensure proper recording of references.
9915
9916 2004-12-07  Gary Dismukes  <dismukes@adacore.com>
9917
9918         * sem_ch5.adb (One_Bound): Remove call to Resolve, as the bound needs
9919         to be resolved later as part of Analyze_Iteration_Scheme's call to
9920         Make_Index.
9921
9922 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
9923
9924         * sem_ch8.adb (Find_Type): If node is a reference to 'Base and the
9925         prefix is not a scalar type, place error message on prefix, not on
9926         type entity.
9927
9928 2004-12-07  Bernard Banner  <banner@adacore.com>
9929
9930         * vxaddr2line.adb: Add support for x86 vxworks
9931
9932 2004-12-07  Thomas Quinot  <quinot@adacore.com>
9933
9934         * g-socket.ads (Get_Host_By_Address, Get_Host_By_Name): Clarify
9935         documentation of the behaviour of these functions when passed an IP
9936         address that has no record in the system hosts database and no reverse
9937         record in the DNS.
9938
9939         * cstand.adb, a-tags.ads: Fix typos in comment.
9940
9941 2004-12-07  Robert Dewar  <dewar@adacore.com>
9942
9943         * exp_ch2.adb, exp_ch3.adb, exp_ch5.adb, exp_ch8.adb,
9944         exp_ch9.adb, exp_pakd.adb, interfac.ads, sem_ch6.adb,
9945         sem_ch7.adb, sem_ch10.adb, sem_ch13.adb, sem_ch3.adb,
9946         s-poosiz.ads: Minor reformatting
9947
9948         * make.adb: Minor reformatting
9949         Add some ??? comments asking for more comments
9950
9951         * s-poosiz.adb: Minor reformatting
9952         Add comments on alignment requirement
9953
9954         * sinfo.ads: Remove obsolete comment and fix typo.
9955
9956 2004-12-07  Vincent Celier  <celier@adacore.com>
9957             Sergey Rybin  <rybin@adacore.com>
9958
9959         * gnat_ugn.texi: Update the section "The GNAT Driver and Project
9960         Files" with the new tool and package names.
9961         Reformatting to suppress most of the warnings for line too long
9962         Document the new section "Project Search Path:" in the output of
9963         gnatls -v.
9964         Add gnatmetric section
9965
9966 2004-12-07  Vincent Celier  <celier@adacore.com>
9967
9968         * vms_data.ads: Correct GNAT METRIC qualifiers: -I-, -Idir and
9969         -gnatec= are not direct switches of gnatmetric. Changed -eis to -eps
9970         and -eit to -ept. Added qualifier
9971         /ELEMENT_METRICS=CONSTRUCT_NESTING_MAX for new switch -ec.
9972
9973 2004-11-27  Andreas Schwab  <schwab@suse.de>
9974
9975         * Make-lang.in (ada/trans.o): Depend on $(EXPR_H).
9976
9977 2004-11-25  Arnaud Charlet  <charlet@adacore.com>
9978
9979         * g-socthi-mingw.ads, g-socthi-vms.ads: Remove C_Read and C_Write from
9980         internal implementation unit GNAT.Sockets.Thin,
9981         as their usage for sockets is non-portable (using the read and write
9982         functions from the system runtime library is fine on UNIX but won't
9983         work under Windows).
9984
9985         * mingw32.h: Update copyright notice.
9986
9987 2004-11-25  Arnaud Charlet  <charlet@adacore.com>
9988
9989         * ada-tree.h: Minor reformatting of previous change to avoid lines
9990         longer than 79 characters.
9991
9992 2004-11-25  Olivier Hainque  <hainque@adacore.com>
9993
9994         * tb-gcc.c: GCC infrastructure based implementation of
9995         __gnat_backtrace.
9996
9997 2004-11-24  Steven Bosscher  <stevenb@suse.de>
9998
9999         * misc.c (gnat_post_options): Don't clear
10000         flag_inline_functions.
10001
10002 2004-11-22  Andrew Pinski  <pinskia@physics.uc.edu>
10003
10004         PR ada/17986
10005         * ada-tree.h (lang_tree_node): Set chain_next to be the chain of the
10006         tree.
10007
10008 2004-11-21  Andreas Jaeger  <aj@suse.de>
10009
10010         * stylesw.adb: Change Style_Check_Subprogram_Order to
10011         Style_Check_Order_Subprograms.
10012
10013 2004-11-18  Arnaud Charlet  <charlet@adacore.com>
10014
10015         * adaint.h, adaint.c
10016         (__gnat_portable_spawn): Fix cast of spawnvp third parameter
10017         to avoid warnings.
10018         Add also a cast to kill another warning.
10019         (win32_no_block_spawn): Initialize CreateProcess's dwCreationFlags
10020         parameter with the priority class of the parent process instead of
10021         always using the NORMAL_PRIORITY_CLASS.
10022         (__gnat_dup): New function.
10023         (__gnat_dup2): New function.
10024         (__gnat_is_symbolic_link): Enable the effective body of this
10025         function when __APPLE__ is defined.
10026
10027         * g-os_lib.ads, g-os_lib.adb (Spawn): Two new procedures.
10028         Update comments.
10029
10030 2004-11-18  Olivier Hainque  <hainque@adacore.com>
10031
10032         * a-exexpr.adb (Others_Value, All_Others_Value): New variables, the
10033         address of which may be used to represent "others" and "all others"
10034         choices in exception tables, instead of the current harcoded
10035         (void *)0 and (void *)1.
10036         (Setup_Exception): Do nothing in the GNAT SJLJ case.
10037
10038         * gigi.h (others_decl, all_others_decl): New decls representing the
10039         new Others_Value and All_Others_Value objects.
10040         (struct attrib): Rename "arg" component as "args", since GCC expects a
10041         list of arguments in there.
10042
10043         * raise.c (GNAT_OTHERS, GNAT_ALL_OTHERS): Are now the address of the
10044         corresponding objects exported by a-exexpr, instead of hardcoded dummy
10045         addresses.
10046
10047         * trans.c (Exception_Handler_to_gnu_zcx): Use the address of
10048         others_decl and all_others_decl instead of hardcoded dummy addresses
10049         to represent "others" and "all others" choices, which is cleaner and
10050         more flexible with respect to the possible eh pointer encoding policies.
10051
10052         * utils.c (init_gigi_decls): Initialize others_decl and all_others_decl.
10053         (process_attributes): Account for the naming change of the "args"
10054         attribute list entry component.
10055
10056         * decl.c (build_attr_list): Rename into prepend_attributes to allow
10057         cumulating attributes for different entities into a single list.
10058         (gnat_to_gnu_entity): Use prepend_attributes to build the list of
10059         attributes for the current entity and propagate first subtype
10060         attributes to other subtypes.
10061         <E_Procedure>: Attribute arguments are attr->args and not
10062         attr->arg any more.
10063         (build_attr_list): Ditto. Make attr->args a TREE_LIST when there is an
10064         argument provided, as this is what GCC expects. Use NULL_TREE instead
10065         of 0 for trees.
10066
10067 2004-11-18  Robert Dewar  <dewar@adacore.com>
10068
10069         * a-stmaco.ads, exp_util.ads, exp_util.adb, i-cpp.ads, i-cpp.adb:
10070         Minor reformatting througout (including new function specs)
10071         Add ??? comments asking for clarification.
10072
10073 2004-11-18  Thomas Quinot  <quinot@adacore.com>
10074
10075         * butil.ads, butil.adb, bindgen.adb (Get_Unit_Name_String): Remove
10076         incomplete duplicate implementation of this subprogram from butil.
10077
10078 2004-11-18  Thomas Quinot  <quinot@adacore.com>
10079
10080         * exp_dist.adb (Build_RPC_Receiver_Body): New subprogram. This
10081         procedures factors the common processing for building an RPC receiver
10082         for an RCI package or an RACW type.
10083         Stylistic cleanup: change '/= Empty' to 'Present ()'; move body of
10084         Build_Remote_Subprogram_Proxy_Type into proper alphabetical order.
10085         (Get_PCS_Name): New subprogram. Returns the name of the PCS currently
10086         in use.
10087         (Specific_Add_RACW_Features): New subprogram. PCS-specific part of
10088         Add_RACW_Features.
10089         (Specific_Add_RAST_Features): New subprogram. PCS-specific part of
10090         Add_RAST_Features.
10091         (Assign_Subprogram_Identifier): New subprogram. Provision for assigning
10092         distribution subprogram identifiers that are either subprogram numbers
10093         or strings.
10094         (Get_Subprogram_Ids): New subprogram. Retrieve both the numeric and
10095         string distribution identifiers assigned to a given subprogram.
10096         (Get_Subprogram_Id): Reimplement in terms of Get_Subprogram_Ids.
10097         (Add_RAS_Dereference_TSS): Add comments.
10098         (Build_General_Calling_Stubs): Note that the RACW_Type formal parameter
10099         is not referenced yet because it will be used by the PolyORB DSA
10100         implementation.
10101         (Insert_Partition_Check): Remove fossile code.
10102         (First_RCI_Subprogram_Id): Document this constant.
10103         (Add_RAS_Access_TSS): Correct the setting of the Etype of the
10104         RAS_Access TSS.
10105         (Get_Pkg_Name_String): Remove subprogram. Usage occurrences are
10106         replaced with calls to Get_Library_Unit_Name_String. Previously there
10107         were several instances of the same code in different locations in the
10108         compiler; this checkin completes the replacement of all of these
10109         instances with calls to a common subprogram.
10110         Minor reformatting.
10111
10112         * sem_dist.adb: Remove comment noting that RPC receiver generation
10113         should be disabled for RACWs that implement RASs.
10114         (Process_Partition_Id): Use new subprogram Get_Library_Unit_Name_String.
10115
10116         * sem_util.ads, sem_util.adb (Has_Stream): New function
10117         (Get_Library_Unit_Name_String): New subprogram to retrieve the fully
10118         qualified name of a library unit into the name buffer.
10119         (Note_Possible_Modification): Generate a reference only
10120         if the context comes from source.
10121
10122         * snames.ads (PCS_Names): New subtype corresponding to names of
10123         supported implementations of the Partition Communication Subsystem
10124         (PCS) (i.e. the runtime library support modules for the distributed
10125         systems annex).
10126
10127 2004-11-18  Robert Dewar  <dewar@adacore.com>
10128             Ed Schonberg  <schonberg@adacore.com>
10129
10130         * einfo.ads, einfo.adb: Remove Is_Psected flag, no longer used
10131         (Has_Rep_Pragma): New function
10132         (Has_Attribute_Definition_Clause): New function
10133         (Record_Rep_Pragma): Moved here from sem_ch13.adb
10134         (Get_Rep_Pragma): Remove junk kludge for Stream_Convert pragma
10135
10136         * sem_ch13.ads, sem_ch13.adb (Record_Rep_Pragma): Moved to einfo.adb
10137
10138         * exp_prag.adb: (Expand_Pragma_Common_Object): New procedure
10139         (Expand_Pragma_Psect_Object): New procedure
10140         These procedures contain the revised and cleaned up processing for
10141         these two pragmas. This processing was formerly in Sem_Prag, but
10142         is more appropriately moved here. The cleanup involves making sure
10143         that the pragmas are properly attached to the tree, and that no
10144         nodes are improperly shared.
10145
10146         * sem_prag.adb: Move expansion of Common_Object and Psect_Object
10147         pragmas to Exp_Prag, which is more appropriate.
10148         Attach these two pragmas to the Rep_Item chain Use Rep_Item chain to
10149         check for duplicates Remove use of Is_Psected flag, no longer needed.
10150         Use new Make_String_Literal function with string.
10151
10152         * exp_attr.adb (Expand_Fpt_Attribute): The floating-point attributes
10153         that are functions return universal values, that have to be converted
10154         to the context type.
10155         Use new Make_String_Literal function with string.
10156         (Get_Stream_Convert_Pragma): New function, replaces the use of
10157         Get_Rep_Pragma, which had to be kludged to work in this case.
10158
10159         * freeze.adb: Use new Has_Rep_Pragma function
10160
10161         * exp_intr.adb, exp_ch3.adb, sem_attr.adb: Use new Make_String_Literal
10162         function with string.
10163         Use new Has_Rep_Pragma function.
10164
10165         * tbuild.ads, tbuild.adb (Make_String_Literal): New function, takes
10166         string argument.
10167
10168 2004-11-18  Robert Dewar  <dewar@adacore.com>
10169
10170         * errout.ads, errout.adb: (First_Sloc): New function
10171
10172         * par-ch5.adb (P_Condition): Check for redundant parens is now a style
10173         check (-gnatyx) instead of being included as a redundant construct
10174         warning.
10175
10176         * sem_ch6.adb: Change name Style_Check_Subprogram_Order to
10177         Style_Check_Order_Subprograms.
10178
10179         * style.ads, styleg.ads, styleg.adb, styleg-c.adb, stylesw.ads,
10180         stylesw.adb: Add Style_Check_Xtra_Parens
10181
10182         * usage.adb: Add line for -gnatyx (check extra parens)
10183
10184         * vms_data.ads: Add entry for STYLE_CHECKS=XTRA_PARENS => -gnatyx
10185
10186 2004-11-18  Ed Schonberg  <schonberg@adacore.com>
10187             Robert Dewar  <dewar@adacore.com>
10188
10189         * exp_ch4.adb (Expand_N_Selected_Component): If the component is the
10190         discriminant of a constrained subtype, analyze the copy of the
10191         corresponding constraint, because in some cases it may be only
10192         partially analyzed.
10193         Removes long-lived ??? comments.
10194
10195         * exp_ch7.adb (Establish_Transient_Scope): Remove complex code that
10196         handled controlled or secondary-stack expressions within the
10197         iteration_scheme of a loop.
10198
10199         * sem_ch5.adb (Analyze_Iteration_Scheme): Build a block to evaluate
10200         bounds that may contain functions calls, to prevent memory leaks when
10201         the bound contains a call to a function that uses the secondary stack.
10202         (Check_Complex_Bounds): Subsidiary of Analyze_Iteration_Scheme, to
10203         generate temporaries for loop bounds that might contain function calls
10204         that require secondary stack and/or finalization actions.
10205
10206         * sem_ch4.adb (Analyze_Indexed_Component_Form): If the prefix is a
10207         selected component and the selector is overloadable (not just a
10208         function) treat as function call, Analyze_Call will disambiguate if
10209         necessary.
10210         (Analyze_Selected_Component): Do not generate an actual subtype for the
10211         selected component if expansion is disabled. The actual subtype is only
10212         needed for constraint checks.
10213         (Analyze_Allocator): If restriction No_Streams is set, then do
10214         not permit objects to be declared of a stream type, or of a
10215         composite type containing a stream.
10216
10217         * restrict.ads: Remove the a-stream entry from Unit_Array, since
10218         No_Streams no longer prohibits with'ing this package.
10219
10220         * sem_ch3.adb (Build_Derived_Record_Type): If the parent type has
10221         discriminants, but the parent base has unknown discriminants, there is
10222         no discriminant constraint to inherit. Such a discrepancy can arise
10223         when the actual for a formal type with unknown discriminants is a
10224         similar private type whose full view has discriminants.
10225         (Analyze_Object_Declaration): If restriction No_Streams is set, then
10226         do not permit objects to be declared of a stream type, or of a
10227         composite type containing a stream.
10228
10229 2004-11-18  Ed Schonberg  <schonberg@adacore.com>
10230
10231         * exp_dbug.ads: Update documentation to reflect simpler encoding for
10232         protected operations.
10233
10234         * exp_ch9.adb (Build_Selected_Name): Do not include "PT" suffix in
10235         generated name, it complicates decoding in gdb and hinders debugging
10236         of protected operations.
10237         (Build_Barrier_Function_Specification): Set the Needs_Debug_Info
10238         flag for the protected entry barrier function.
10239         (Build_Protected_Entry_Specification): Set the Needs_Debug_Info
10240         flag for the protected entry function.
10241
10242 2004-11-18  Nicolas Setton  <setton@adacore.com>
10243
10244         * expect.c: Define __unix__ when __APPLE__ is defined.
10245
10246         * Makefile.in: Inform the value of the variable GMEM_LIB in the
10247         Darwin-specific section.
10248
10249         * lang-specs.h: Change the placement of the %1 marker.
10250         Works around the fact that gcc adds -fPIC by default under Darwin.
10251
10252 2004-11-18  Ed Schonberg  <schonberg@adacore.com>
10253
10254         * exp_pakd.adb (Convert_To_PAT_Type): After replacing the original
10255         type of the object with the packed array type, set the Analyzed flag
10256         on the object if it is an entity or simple indexed component, to avoid
10257         spurious type errors.
10258
10259 2004-11-18  Gary Dismukes  <dismukes@adacore.com>
10260
10261         * gnat1drv.adb, gnatbind.adb, gnatchop.adb, gnatfind.adb, gnatlink.adb,
10262         gnatls.adb, gnatxref.adb, gprep.adb: Output the copyright message on a
10263         separate line from the version message.
10264
10265 2004-11-18  Ed Falis  <falis@adacore.com>
10266
10267         * init.c (__gnat_map_signal): map SIGSEGV to Storage_Error for AE653
10268         vthreads.
10269         (init_float): Eliminate initialization of floating point status for
10270         AE653. The instructions have no effect for vThreads.
10271
10272 2004-11-18  Vincent Celier  <celier@adacore.com>
10273
10274         * make.adb (Gnatmake): Invoke gnatlink with -shared-libgcc when
10275         gnatbind is invoked with -shared.
10276
10277 2004-11-18  Jose Ruiz  <ruiz@adacore.com>
10278
10279         * s-tposen.adb (Lock_Entry): Remove the code for raising Program_Error
10280         for Detect_Blocking which is redundant with the check done within the
10281         procedure Protected_Single_Entry_Call.
10282         (Lock_Read_Only_Entry): Remove the code for raising Program_Error for
10283         Detect_Blocking which is redundant with the check done within the
10284         procedure Protected_Single_Entry_Call.
10285
10286 2004-11-18  Vincent Celier  <celier@adacore.com>
10287
10288         * makegpr.adb (Compile): Put the compiling switches (in package
10289         Compiler and on the command line) immediately after "-c", instead of
10290         at the end of the command line invocation of the compiler, when
10291         compiling a non-Ada file.
10292         (Build_Global_Archive): When there is no need to rebuild the archive,
10293         set Global_Archive_Exists, so that the archive is passed to the linker
10294         if one is needed.
10295
10296 2004-11-18  Robert Dewar  <dewar@adacore.com>
10297             Sergey Rybin  <rybin@adacore.com>
10298
10299         * gnat_ugn.texi:
10300         Remove extra paren check from list of checks for redundant constructs
10301         Add documentation of new -gnatyx style check (check extra parens)
10302         Remove paragraph about gnatelim debug options.
10303
10304         * gnat_rm.texi: Document that Ada.Streams now forbids creating stream
10305         objects rather than forbidding dependencies on the package Ada.Streams.
10306
10307         * sinfo.ads: Add ??? note that we should document pragmas passed to
10308         back end.
10309
10310         * g-expect.ads: Fix a few typos in the comments.
10311
10312 2004-11-09  Joseph S. Myers  <joseph@codesourcery.com>
10313
10314         * misc.c (gnat_handle_option): Use %< and %> for quoting in
10315         warning message.
10316
10317 2004-11-08  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10318
10319         * a-numaux-x86.adb (Tan): Fix fdivp syntax.
10320
10321 2004-11-07  Andreas Schwab  <schwab@suse.de>
10322
10323         * Makefile.in (install-gnatlib): Remove spurious hyphen.
10324
10325 2004-11-02  Andrew Pinski  <pinskia@physics.uc.edu>
10326
10327         PR ada/18228
10328         * Makefile.in (darwin): Set soext to .dylib.
10329
10330 2004-10-26  Vincent Celier  <celier@gnat.com>
10331             Thomas Quinot   <quinot@act-europe.fr>
10332
10333         * g-socthi-vms.adb, g-socthi-mingw.adb, g-socthi-vxworks.ads:
10334         (C_Writev): Change MSG_Forced_Flags to Constants.MSG_Forced_Flags as
10335         there is no use of GNAT.Sockets.Constants.
10336         Remove remaining pragma Import for C_Write
10337         Remove C_Read and C_Write from internal implementation unit
10338         GNAT.Sockets.Thin, as their usage for sockets is non-portable (using
10339         the read and write functions from the system runtime library is fine
10340         on UNIX but won't work under Windows).
10341
10342         * g-socket.adb: (Abort_Selector): Use C_Send instead of C_Write.
10343         (Check_Selector): Use C_Recv instead of C_Read.
10344         Selectors are the GNAT.Sockets abstraction to perform a select()
10345         call on a set of descriptors. To allow abortion of an ongoing
10346         select operation, some data is written to a dedicated socket that
10347         is always monitored.
10348         Under Windows, the write and read library functions cannot operate
10349         on sockets, so we need to use send and recv instead, which is portable
10350         across all supported platforms.
10351
10352         * g-socthi.ads: Remove C_Read and C_Write from internal implementation
10353         unit GNAT.Sockets.Thin, as their usage for sockets is non-portable
10354         (using the read and write functions from the system runtime library is
10355         fine on UNIX but won't work under Windows).
10356
10357 2004-10-26  Nicolas Setton  <setton@act-europe.fr>
10358
10359         * mlib-tgt-darwin.adb: New file.
10360
10361         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
10362         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
10363         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
10364         mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb (Archive_Indexer_Options): New
10365         subprogram body.
10366
10367         * Makefile.in: Add support for building shared libraries under Darwin.
10368         (EXTRA_GNATRTL_NONTASKING_OBJS, ppc-vxworks): Add s-vxwexc.o, containing
10369         the low level EH init subprogram to be called from __gnat_initialize.
10370
10371         * mlib-tgt.ads, mlib-tgt.adb (Archive_Indexer_Options): New subprogram,
10372         indicates which options to pass to the archive indexer.
10373
10374         * mlib-utl.adb: Add support for calling ranlib with additional
10375         options. This is needed for instance under Mac OS X.
10376         (Ranlib_Options): New global variable, used to store the potential
10377         options to pass to ranlib.
10378         (Ar): Use Ranlib_Options when spawning ranlib.
10379         (Initialize): Set the value of ranlib option.
10380
10381 2004-10-26  Olivier Hainque  <hainque@act-europe.fr>
10382
10383         * s-parame-linux.adb (Minimum_Stack_Size): Adjust to return 12K
10384         instead of 8K, to reflect the real potential needs for stack-checking
10385         in the ZCX case.
10386
10387 2004-10-26  Pascal Obry  <obry@gnat.com>
10388
10389         * s-parame-mingw.adb (Default_Stack_Size): Add some comments.
10390
10391         * s-taprop-mingw.adb (Create_Task): Set initial stack size to 1024. On
10392         Windows only the initial thread stack size can be set so it is good to
10393         start we a low stack size.
10394         The OS will adjust the size as needed.
10395
10396 2004-10-26  Olivier Hainque  <hainque@act-europe.fr>
10397             Nicolas Setton  <setton@act-europe.fr>
10398
10399         * expect.c, adaint.c, link.c, sysdep.c (unix sections): Guard with
10400         "__unix__" instead of "unix".
10401         The latter is implicitly defined by gcc3.2 but not by gcc >= 3.4, so the
10402         sections were just mistakenly ignored. The former is
10403         implicitely defined by gcc2.8, gcc3.2 and gcc3.4.
10404         Update #ifdef preprocessor macro to detect the symbol __hpux__ instead
10405         of hpux. This prevents an unwanted definition of the symbol
10406         convert_addresses in adaint.o.
10407
10408 2004-10-26  Gary Dismukes  <dismukes@gnat.com>
10409
10410         * a-exexpr.adb (Setup_Key): Change initial value to 16#DEAD#, for
10411         compatibility with type Unwind_Word on 16-bit targets such as AAMP.
10412
10413 2004-10-26  Cyrille Comar  <comar@act-europe.fr>
10414
10415         * a-filico.ads, a-filico.adb: fix incorrect header.
10416
10417 2004-10-26  Javier Miranda  <miranda@gnat.com>
10418
10419         * a-ststio.ads: Fix typo in identifier
10420
10421 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
10422
10423         * sem_ch4.adb: Minor reformatting.
10424
10425 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
10426
10427         * checks.adb (Expr_Known_Valid): If floating-point validity checks are
10428         enabled, check the result of unary and binary operations when the
10429         expression is the right-hand side of an assignment.
10430
10431 2004-10-26  Vincent Celier  <celier@gnat.com>
10432
10433         * clean.adb (Delete): Do not output warnings when in quiet output and
10434         not in verbose mode.
10435         (Force_Deletions): New Boolean flag, defaulted to False
10436         (Delete): Only delete a file if it is writable, and when
10437         Force_Deletions is True.
10438         (Parse_Cmd_Line): New switch -f: set Force_Deletions to True
10439         (Usage): Line for new switch -f
10440         (Clean_Directory): Use GNAT.OS_Lib.Set_Writable instead of rolling our
10441         own.
10442
10443 2004-10-26  Eric Botcazou  <ebotcazou@act-europe.fr>
10444
10445         * decl.c (gnat_to_gnu_field): Use the type of the inner object for a
10446         JM type only if its size matches that of the wrapper.  When a size is
10447         prescribed and the field is not aliased, remove the wrapper of a JM
10448         type only if the size is not greater than that of the packed array.
10449         (gnat_to_gnu_entity): Change the extension of packed array wrappers
10450         from LJM to JM.
10451
10452 2004-10-26  Geert Bosch  <bosch@gnat.com>
10453
10454         * eval_fat.adb (Eps_Model,Eps_Denorm): Remove, no longer used.
10455         (Succ): Re-implement using Scaling, Exponent and Ceiling attributes.
10456         (Pred): Implement in terms of Succ.
10457
10458 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
10459
10460         * exp_aggr.adb (Safe_Component): An aggregate component that is an
10461         unchecked conversion is safe for in-place use if the expression of the
10462         conversion is safe.
10463         (Expand_Array_Aggregate): An aggregate that initializes an allocator may
10464         be expandable in place even if the aggregate does not come from source.
10465         (Convert_Array_Aggr_In_Allocator): New procedure to initialize the
10466         designated object of an allocator in place, rather than building it
10467         first on the stack. The previous scheme forces a full copy of the array,
10468         and may be altogether unsusable if the size of the array is too large
10469         for stack allocation.
10470
10471 2004-10-26  Robert Dewar  <dewar@gnat.com>
10472
10473         * exp_ch4.adb (Expand_N_Op_Eq): Make sure we expand a loop for array
10474         compares if the component is atomic.
10475
10476         * exp_ch5.adb (Expand_Assign_Array): Make sure we expand a loop for
10477         array assignment if the component type is atomic.
10478
10479 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
10480             Eric Botcazou  <ebotcazou@act-europe.fr>
10481
10482         * exp_ch6.adb (Expand_Actuals): If the actual for an in-out parameter
10483         is aliased and is a by_reference type, do not pass by copy.
10484         (Expand_N_Function_Call) <Rhs_Of_Assign_Or_Decl>: New function to
10485         detect whether the call is in the right side of an assignment or
10486         the expression of an object declaration.  Recurse on component
10487         association within aggregates.
10488         Call it in the condition that determines whether the temporary is
10489         necessary for correct stack-checking.
10490
10491 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
10492
10493         * exp_dist.adb (Build_General_Calling_Stubs): New formal parameter
10494         RACW_Type, used in the PolyORB version.
10495         Rename RCI_Info to RCI_Locator, for consistency between the PolyORB
10496         version and the GARLIC version.
10497
10498         * snames.ads, snames.adb, s-parint.ads, s-parint.adb:
10499         Rename RCI_Info to RCI_Locator for better consistency between the
10500         GARLIC and PolyORB versions of the distributed systems annex.
10501         (DSA_Implementation_Name): This enumeration lists the possible
10502         implementations of the Partition Communication Subsystem for the
10503         Distributed Systems Annex (DSA). The three available implementations
10504         are the dummy stub implementation (No_DSA), and two versions based on
10505         two different distribution runtime libraries: GARLIC and PolyORB. Both
10506         the GARLIC PCS and the PolyORB PCS are part of the GLADE distribution
10507         technology.
10508         Change the literal GLADE_DSA to GARLIC_DSA to accurately describe
10509         that organization.
10510
10511         * rtsfind.ads: Rename RCI_Info to RCI_Locator for better consistency
10512         between the GARLIC and PolyORB versions of the distributed systems
10513         annex.
10514         Remove RE_Unbounded_Reclaim_Pool since it is unused.
10515
10516 2004-10-26  Gary Dismukes  <dismukes@gnat.com>
10517
10518         * gnat1drv.adb: Suppress calling the back end when
10519         Frontend_Layout_On_Target is true.
10520
10521 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
10522
10523         * g-os_lib.ads, g-os_lib.adb (Set_Executable, Set_Writable,
10524         Set_Read_Only): New subprograms.
10525         These new routines allow the user to set or unset the Owner execute
10526         and Owner write permission flags on a file.
10527
10528         * makegpr.adb, mlib.adb, mlib-prj.adb: Use
10529         GNAT.OS_Lib.Set_Executable instead of rolling our own.
10530
10531 2004-10-26  Matthew Gingell  <gingell@gnat.com>
10532
10533         * i-cpp.ads, i-cpp.adb: Change layout of VTable for new C++ ABI.
10534
10535 2004-10-26  Pascal Obry  <obry@gnat.com>
10536
10537         * init.c (__gnat_error_handler) [Win32]: Instead of trying to read the
10538         memory before the faulting page we properly test the process read
10539         access for this address using appropriate Win32 routine.
10540         (HPUX sections): guard with "__hpux__" instead of "hpux".
10541
10542 2004-10-26  Robert Dewar  <dewar@gnat.com>
10543
10544         * lib-xref.adb (Generate_Reference): Don't complain about reference to
10545         entry parameter if pragma Unreferenced set, since we do not properly
10546         handle the case of multiple parameters.
10547
10548 2004-10-26  Vincent Celier  <celier@gnat.com>
10549
10550         * prj-env.adb: (Contains_ALI_Files): New Boolean function
10551         (Ada_Objects_Path.Add): For a library project, add to the object path
10552         the library directory only if there is no object directory or if the
10553         library directory contains ALI files.
10554         (Set_Ada_Paths.Add.Recursive_Add): Ditto
10555
10556 2004-10-26  Vincent Celier  <celier@gnat.com>
10557
10558         * prj-nmsc.adb (Language_Independent_Check): Do not forbid virtual
10559         extension of library projects.
10560
10561         * prj-part.adb: If env var ADA_PROJECT_PATH is not defined, project
10562         path defaults to ".:<prefix>/lib/gnat".
10563         (Parse): For an extending all project, allow direct import of a project
10564         that is virtually extended.
10565
10566         * prj-proc.adb (Imported_Or_Extended_Project_From): If a project with
10567         the specified name is directly imported, return its ID. Otherwise, if
10568         an extension of this project is imported, return the ID of the
10569         extension.
10570
10571 2004-10-26  Robert Dewar  <dewar@gnat.com>
10572
10573         * s-arit64.adb: (Le3): New function, used by Scaled_Divide
10574         (Sub3): New procedure, used by Scaled_Divide
10575         (Scaled_Divide): Substantial rewrite, avoid duplicated code, and also
10576         correct more than one instance of failure to propagate carries
10577         correctly.
10578         (Double_Divide): Handle overflow case of largest negative number
10579         divided by minus one.
10580
10581         * s-arit64.ads (Double_Divide): Document that overflow can occur in
10582         the case of a quotient value out of range.
10583         Fix comments.
10584
10585 2004-10-26  Robert Dewar  <dewar@gnat.com>
10586
10587         * s-bitops.adb (Bit_Eq): Remove redundant check.
10588
10589         * s-bitops.ads: Minor comment updates
10590         Change some occurrences of Address to System.Address
10591
10592         * s-carsi8.ads: Fix minor cut-and-paste error in comments
10593
10594 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
10595
10596         * sem_attr.adb (Resolve_Attribute, case 'Access): Apply proper
10597         accessibility check to prefix that is a protected operation.
10598
10599 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
10600
10601         * sem_ch10.adb (Optional_Subunit): If file of expected subunit is
10602         empty, post message on stub.
10603
10604 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
10605             Javier Miranda  <miranda@gnat.com>
10606
10607         * sem_ch12.adb (In_Main_Context): Predicate to determine whether the
10608         current instance appears within a unit that is directly in the context
10609         of the main unit.
10610         Used to determine whether the body of the instance should be analyzed
10611         immediately after its spec, to make its subprogram bodies available
10612         for front-end inlining.
10613         (Analyze_Formal_Array_Type): Cleanup condition that checks that range
10614         constraint is not allowed on the component type (AARM 12.5.3(3))
10615
10616 2004-10-26  Cyrille Comar  <comar@act-europe.fr>
10617
10618         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case
10619         'Storage_Pool): enhance, document & limit detection of non-sharable
10620         internal pools.
10621
10622         * impunit.adb: Make System.Pool_Global and System.Pool_Local visible.
10623
10624         * s-pooglo.ads: Add more documentation now that this pool is properly
10625         documented.
10626
10627 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
10628
10629         * sem_ch3.adb (Complete_Private_Subtype): If the full view is a task
10630         or protected type with discriminants, do not constrain the
10631         corresponding record type if the subtype declaration has no
10632         discriminant constraints. This can be the case in source code, or in
10633         the subtype declaration created to rename an actual type within an
10634         instantiation.
10635
10636 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
10637
10638         * sem_ch6.adb (Analyze_Subprogram_Body): If body is a subunit for a
10639         different kind of stub (possibly wrong name for file), do not check
10640         for conformance.
10641         (Uses_Secondary_Stack): New subsidiary to Build_Body_To_Inline. If body
10642         includes call to some function that returns an unconstrained type, do
10643         not inline.
10644
10645 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
10646
10647         * sem_elab.adb (Check_Elab_Call): Do not check a call that does not
10648         appear in the code for the main unit. Dependencies among units in the
10649         context of the main unit are established when those other units are
10650         compiled. Otherwise spurious elaboration constraints can generate
10651         incorrect elaboration circularities.
10652
10653 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
10654             Ed Schonberg   <schonberg@gnat.com>
10655
10656         * sem_util.adb (Is_Aliased_View): Defend against the case where this
10657         subprogram is called with a parameter that is not an object name. This
10658         situation arises for some cases of illegal code, which is diagnosed
10659         later, and in this case it is wrong to call Is_Aliased, as that might
10660         cause a compiler crash.
10661         (Explain_Limited_Type): Refine previous fix to include
10662         inherited components of derived types, to provide complete information.
10663
10664         * exp_ch9.adb (Set_Privals): Set the Ekind of the actual object that
10665         is the prival for a protected object.
10666         It is necessary to mark this entity as a variable, in addition to
10667         flagging it as Aliased, because Sem_Util.Is_Aliased_View has been
10668         modified to avoid checking the Aliased flag on entities that are not
10669         objects. (Checking that flag for non-objects is erroneous and could
10670         lead to a compiler crash).
10671
10672 2004-10-26  Robert Dewar  <dewar@gnat.com>
10673
10674         * s-fatgen.adb (Pred): Fix redundant test for X > 0.0, since if
10675         X_Frac = 0.5, then we know that the number X must be positive.
10676         (Succ): Remove the same redundant test, and also fix the primary test
10677         to test for X_Frac = -0.5 (used to be 0.5) which is clearly wrong.
10678         Minor reformatting
10679         (Decompose): Add fuller comments to spec
10680
10681 2004-10-26  Pascal Obry  <obry@gnat.com>
10682
10683         * tracebak.c (IS_BAD_PTR): Use IsBadCodePtr on Win32 to check for ptr
10684         validity (process must have read access). Set to 0 in all other cases.
10685         (STOP_FRAME): Now check for ptr validity to avoid a segmentation
10686         violation on Win32.
10687         (VALID_STACK_FRAME): Check for ptr validity on Win32 to avoid a
10688         segmentation violation.
10689
10690 2004-10-26  Eric Botcazou  <ebotcazou@act-europe.fr>
10691
10692         * trans.c (call_to_gnu): For an (in-)out parameter passed by reference
10693         whose type is a constructed subtype of an aliased object with an
10694         unconstrained nominal subtype, convert the actual to the constructed
10695         subtype before taking its address.
10696
10697 2004-10-26  Vincent Celier  <celier@gnat.com>
10698
10699         * a-dirval.ads, a-dirval.adb, a-dirval-vms.adb, a-dirval-mingw.adb
10700         (Is_Path_Name_Case_Sensitive): New function
10701
10702         * a-direct.adb (To_Lower_If_Case_Insensitive): New procedure
10703         (Base_Name, Simple_Name, Current_Directory, Compose,
10704         Containing_Directory, Full_Name): Call To_Lower_If_Case_Insensitive on
10705         the result.
10706
10707 2004-10-26  Cyrille Comar    <comar@act-europe.fr>
10708             Vasiliy Fofanov  <fofanov@act-europe.fr>
10709             Vincent Celier   <celier@gnat.com>
10710
10711         * gnat_ugn.texi: Generalize "finding memory problems" section into a
10712         "memory management issues" section and document some of the useful
10713         memory pools provided as part of the GNAT library.
10714         Remove "virtual" from declaration of A::method2 in
10715         the simple example of Ada/C++ mixed system.
10716         Library Projects may be virtually extended: their virtual extensions
10717         are not Library Projects.
10718         Added section on extending project hierarchies.
10719
10720 2004-10-19  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
10721
10722         * adaint.c (__gnat_get_libraries_from_registry): Cast value
10723         to LPBYTE.
10724         (__gnat_portable_spawn): Remove const.
10725
10726         * mingw32.h (MAXPATHLEN): Check for previous definition.
10727
10728 2004-10-17  Matthias Klose  <doko@debian.org>
10729
10730         * gnatvsn.ads: Set gnat library version to 4.0.
10731
10732 2004-10-05  Vincent Celier  <celier@gnat.com>
10733
10734         * mlib-tgt.ads: (Build_Dynamic_Library): New parameter Options_2
10735
10736 2004-10-04  Laurent GUERBY <laurent@guerby.net>
10737
10738         PR ada/15156
10739         * Makefile.in: Define and use RANLIB_FLAGS.
10740
10741 2004-10-04  Pascal Obry  <obry@gnat.com>
10742
10743         * tracebak.c: Always set LOWEST_ADDR to 0 on Win32 (as done on all
10744         other x86 platforms).
10745
10746 2004-10-04  Olivier Hainque  <hainque@act-europe.fr>
10747
10748         * s-tassta.adb (Task_Wrapper): Make it Convention C, which makes sense
10749         in general and triggers stack alignment adjustment for thread entry
10750         points on targets where this is necessary.
10751
10752 2004-10-04  Bernard Banner  <banner@gnat.com>
10753
10754         PR ada/13897
10755
10756         * Makefile.in: Add section for powerpc linux
10757         Add variant i-vxwork-x86.ads
10758
10759         * i-vxwork-x86.ads, system-linux-ppc.ads: New files.
10760
10761 2004-10-04  Olivier Hainque  <hainque@act-europe.fr>
10762
10763         * init.c (__gnat_initialize): Call an Ada subprogram to perform the
10764         table registration calls when need be. Ensures no reference to the crt
10765         ctors symbol are issued in the SJLJ case, which avoids possible
10766         undefined symbol errors in the case of modules to be statically linked
10767         with the kernel.
10768
10769 2004-10-04  Javier Miranda  <miranda@gnat.com>
10770
10771         * sem_ch4.adb (Try_Object_Operation): Reformat the code to expand
10772         in-line the code corresponding to subprogram Analyze_Actuals. In
10773         addition, analyze the actuals only in case of subprogram call.
10774
10775 2004-10-04  Ed Falis  <falis@gnat.com>
10776
10777         * s-vxwork-x86.ads: (FP_CONTEXT): Defined to be correct size
10778
10779 2004-10-04  Sergey Rybin  <rybin@act-europe.fr>
10780
10781         * g-dirope.ads (Base_Name): Clarify the meaning of the Suffix parameter
10782         in the documentation.
10783
10784 2004-10-04  Robert Dewar  <dewar@gnat.com>
10785
10786         * sem_ch5.adb (Unblocked_Exit_Count): Now used for blocks as well as
10787         IF and CASE.
10788         (Analyze_Block_Statement): Add circuitry to detect following dead code
10789         (Check_Unreachable_Code): Handle case of block exit
10790
10791 2004-10-04  Robert Dewar  <dewar@gnat.com>
10792
10793         * g-spipat.adb: (XMatch): Avoid warning for Logic_Error call
10794         (XMatchD): Avoid warning for Logic_Error call
10795
10796 2004-10-04  Robert Dewar  <dewar@gnat.com>
10797
10798         * exp_ch4.adb (Is_Procedure_Actual): Correct so that this does not
10799         consider expressions buried within a procedure actual to be an actual.
10800         This caused some blowups with uses of packed slices within a procedure
10801         actual.
10802
10803 2004-10-04  Robert Dewar  <dewar@gnat.com>
10804
10805         * exp_ch3.adb (Needs_Simple_Initialization): Modular packed arrays no
10806         longer need to be initialized to zero.
10807         (Get_Simple_Init_Val): Modular packed arrays no longer need to be
10808         initialized to zero.
10809
10810         * checks.adb (Expr_Known_Valid): Packed arrays are now always
10811         considered valid, even if the representation is modular. That's correct
10812         now that we no longer initialize packed modular arrays to zero.
10813
10814         * exp_dbug.ads: Clarify documentation on handling of PAD and JM
10815         suffixes. These are now documented as the only cases in which the
10816         debugger ignores outer records.
10817         Previously, the spec allowed arbitrary suffixes for this purpose.
10818         Change name of LJM to JM for packed array pad records
10819         Create separate section on packed array handling, and add a whole new
10820         set of comments to this section describing the situation with packed
10821         modular types and justification requirements depending on endianness.
10822
10823 2004-10-04  Robert Dewar  <dewar@gnat.com>
10824
10825         * a-except.adb: Add a comment for last change
10826
10827         * einfo.ads: Minor spelling correction in comment
10828
10829         * exp_pakd.adb, gnatdll.adb, prj-attr.ads: Minor reformatting
10830
10831         * sem_ch11.adb: Fix a case of using | instead of \ for continuation
10832         messages.
10833
10834         * sem_util.ads: Minor comment update
10835
10836 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
10837
10838         * sem_ch6.adb (Analyze_Subprogram_Body): Do not treat Inline as
10839         Inline_Always when in Configurable_Run_Time mode.
10840
10841         * sem_prag.adb (Process_Convention): If entity is an inherited
10842         subprogram, apply convention to parent subprogram if in same scope.
10843         (Analyze_Pragma, case Inline): Do not treat Inline as Inline_Always
10844         when in Configurable_Run_Time mode.
10845
10846 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
10847
10848         * sem_ch3.adb (Build_Derived_Record_Type): Set First/Last entity of
10849         class_wide type after component list has been inherited.
10850
10851 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
10852
10853         * sem_ch12.adb (Check_Generic_Actuals): New predicate
10854         Denotes_Previous_Actual, to handle properly the case of a private
10855         actual that is also the component type of a subsequent array actual.
10856         The visibility status of the first actual is not affected when the
10857         second is installed.
10858         (Process_Nested_Formal): Subsidiary of Instantiate_Formal_Package, to
10859         make fully recursive the treatment of formals of packages declared
10860         with a box.
10861         (Restore_Nested_Formal): Subsidiary of Restore_Private_Views, to undo
10862         the above on exit from an instantiation.
10863         (Denotes_Formal_Package): When called from Restore_Private_Views, ignore
10864         current instantiation which is now complete.
10865         (Analyze_Package_Instantiation): No instantiated body is needed if the
10866         main unit is generic. Efficient, and avoid anomalies when a instance
10867         appears in a package accessed through rtsfind.
10868
10869 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
10870
10871         * exp_ch6.adb (Expand_N_Function_Call): If stack checking is enabled,
10872         do not generate a declaration for a temporary if the call is part of a
10873         library-level instantiation.
10874
10875 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
10876
10877         * sem_util.adb (Explain_Limited_Type): Ignore internal components when
10878         searching for a limited component to flag.
10879
10880         * exp_attr.adb (Freeze_Stream_Subprogram): Subsidiary procedure to
10881         expansion of Input, to account for the fact that the implicit call
10882         generated by the attribute reference must freeze the user-defined
10883         stream subprogram. This is only relevant to 'Input, because it can
10884         appear in an object declaration, prior to the body of the subprogram.
10885
10886         * sem_ch13.adb (Rep_Item_Too_Late): Make the error non-serious, so that
10887         expansion can proceed and further errors uncovered.
10888         (Minor clean up): Fix cases of using | instead of \ for continuation
10889         messages.
10890
10891 2004-10-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10892
10893         * cuintp.c, decl.c, utils2.c: Use gcc_assert and gcc_unreachable.
10894
10895         * trans.c (assoc_to_constructor): Fix unused var warning if no checking.
10896         (gnat_gimplify_expr, case ADDR_EXPR): Fix error in last change.
10897         Use gcc_assert and gcc_unreachable.
10898
10899         * decl.c (gnat_to_gnu_entity, case object): Check and process a
10900         specified alignment before validating size.
10901         (gnat_to_gnu_entity) <E_Modular_Integer_Subtype>: Create a
10902         stripped-down declaration for the type of the inner field when making
10903         a JM type.
10904
10905         * utils.c (finish_record_type): Do not compute the size in units
10906         incrementally. Instead compute it once for the rep clause case.
10907         Use gcc_assert and gcc_unreachable.
10908
10909 2004-10-04  Vincent Celier  <celier@gnat.com>
10910
10911         * a-dirval-mingw.adb (Invalid_Character): Add '\' as invalid character
10912         in file name.
10913         (Is_Valid_Path_Name): Take '/' as a directory separator.
10914
10915 2004-10-04  Vincent Celier  <celier@gnat.com>
10916
10917         * prj-part.adb (Parse_Single_Project): Call Is_Extending_All
10918         (Extended_Project) only if Extended_Project is defined, to avoid
10919         assertion error.
10920         (Post_Parse_Context_Clause): Always call Set_Path_Name_Of with a
10921         resolved path.
10922         (Parse_Single_Project): Ditto.
10923
10924         * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Do not call
10925         Add_To_Project_Path for virtual projects.
10926
10927 2004-10-04  Vincent Celier  <celier@gnat.com>
10928
10929         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
10930         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
10931         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb,
10932         mlib-tgt-vxworks.adb, mlib-tgt.adb (Build_Dynamic_Library): New
10933         parameter Options_2.
10934
10935         * mlib-prj.ads, mlib-prj.adb (Build_Library): Call
10936         Build_Dynamic_Library with an empty Options_2.
10937
10938         * mlib-utl.ads, mlib-utl.adb (Gcc): Parameter Options_2 has no
10939         default anymore.
10940
10941         * makegpr.adb (Get_Imported_Directories.add): Remove trailing
10942         directory separator, if any.
10943         (Gprmake): Do not allow mains on the command line for library projects.
10944         Do not attempt to link when the project is a library project.
10945         (Library_Opts): New table to store Library_Options.
10946         (Build_Library): If Library_Options is specified, pass these options
10947         when building a shared library.
10948
10949 2004-10-04  Jose Ruiz  <ruiz@act-europe.fr>
10950
10951         * s-tposen.adb (Service_Entry): The object must be always unlocked at
10952         the end of this procedure now that the unlock operation was inserted
10953         by the expander.
10954
10955 2004-10-04  Jose Ruiz  <ruiz@act-europe.fr>
10956
10957         * targparm.ads, targparm.adb (Targparm_Tags): Add PAS value
10958         corresponding to the Preallocated_Stacks flags in System.
10959         (Get_Target_Parameters): Including the processing for
10960         Preallocated_Stacks.
10961
10962         * system.ads, system-vxworks-x86.ads, system-darwin-ppc.ads,
10963         system-vms_64.ads, system-unixware.ads, system-linux-ia64.ads,
10964         system-freebsd-x86.ads, system-lynxos-ppc.ads, system-lynxos-x86.ads,
10965         system-linux-x86_64.ads, system-tru64.ads, system-aix.ads,
10966         system-vxworks-sparcv9.ads, system-vxworks-xscale.ads,
10967         system-solaris-x86.ads, system-irix-o32.ads, system-irix-n32.ads,
10968         system-hpux.ads, system-vxworks-m68k.ads, system-linux-x86.ads,
10969         system-vxworks-mips.ads, system-os2.ads, system-interix.ads,
10970         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
10971         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
10972         system-vxworks-alpha.ads: Add the flag Preallocated_Stacks, that is
10973         used to signal whether the compiler creates the required stacks and
10974         descriptors for the different tasks (when True) or it is done by the
10975         underlying operating system at run time (when False).
10976         It is initially set to False in all targets.
10977
10978         * exp_ch9.adb (Expand_N_Task_Type_Declaration): Create the task stack
10979         if it is supported by the target.
10980         (Make_Task_Create_Call): Pass the stack address if it has been
10981         previously created. Otherwise pass a Null_Address.
10982
10983         * snames.adb: Add _stack.
10984
10985         * snames.ads: Add Name_uStack. Required to allow the expander to
10986         statically allocated task stacks.
10987
10988         * s-tarest.ads, s-tarest.adb (Create_Restricted_Task): Add
10989         Stack_Address argument.
10990         Check that its value is equal to Null_Address because this target does
10991         not support the static stack allocation.
10992
10993 2004-10-04  Thomas Quinot  <quinot@act-europe.fr>
10994
10995         * usage.adb: Change "pragma inline" to "pragma Inline" in information
10996         and error messages
10997
10998 2004-10-04  Thomas Quinot  <quinot@act-europe.fr>
10999
11000         * exp_dist.adb: Split declaration of asynchronous flag out of
11001         Add_RACW_Read_Attribute.
11002         Minor reformatting for better alignment with PolyORB version.
11003         Store the entity for the asynchronous flag of an RACW, rather than the
11004         expression, in the asynchronous flags table. This will allow this flag
11005         to be used in other subprograms beside Add_RACW_Read_Attribute.
11006
11007 2004-10-04  Thomas Quinot  <quinot@act-europe.fr>
11008
11009         * g-socket.ads, g-socket.adb, g-socthi.adb, socket.c,
11010         g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
11011         g-soccon-interix.ads, g-soccon-solaris.ads, g-soccon-vms.adb,
11012         g-soccon-mingw.ads, g-soccon-vxworks.ads, g-soccon-freebsd.ads,
11013         g-soccon.ads, g-soccon-unixware.ads, g-soccon-tru64.ads:  Add new
11014         sockets constant MSG_NOSIGNAL (Linux-specific).
11015         Add new sockets constant MSG_Forced_Flags, list of flags to be set on
11016         all Send operations.
11017         For Linux, set MSG_NOSIGNAL on all send operations to prevent them
11018         from trigerring SIGPIPE.
11019         Rename components to avoid clash with Ada 2005 possible reserved
11020         word 'interface'.
11021         (Check_Selector): When the select system call returns with an error
11022         condition, propagate Socket_Error to the caller.
11023
11024 2004-10-01  Jan Hubicka  <jh@suse.cz>
11025
11026         * misc.c (gnat_expand_body): Update call of tree_rest_of_compilation.
11027
11028 2004-09-23  Robert Dewar  <dewar@gnat.com>
11029
11030         PR ada/17540
11031
11032         * sem_prag.adb (Process_Import_Or_Interface): Don't set Is_Public here,
11033         instead do this at freeze time (we won't do it if there is an address
11034         clause).
11035         Change "pragma inline" to "pragma Inline" in information and error
11036         messages.
11037         Minor reformatting.
11038
11039         * freeze.adb (Check_Address_Clause): Remove previous change, not the
11040         right way of doing things after all.
11041         (Freeze_Entity): For object, set Is_Public for imported entities
11042         unless there is an address clause present.
11043
11044 2004-09-21  Olivier Hainque  <hainque@act-europe.fr>
11045
11046         * decl.c (gnat_to_gnu_entity) <E_General_Access_Type>: Check for a
11047         dummy designated type via TYPE_MODE instead of COMPLETE_TYPE_P. This
11048         ensures proper handling of types with rep clauses, which might have
11049         their TYPE_SIZE set already.
11050
11051 2004-09-21  Robert Dewar  <dewar@gnat.com>
11052
11053         * decl.c (gnat_to_gnu_type, case E_Modular_Integer_Type): Wrap modular
11054         packed array types in both little- and big-endian cases. This change
11055         ensures that we no longer count on the unused bits being initialized
11056         for such types (and in particular ensures that equality testing will
11057         only read the relevant bits).
11058         Change name TYPE_LEFT_JUSTIFIED_MODULAR_P to TYPE_JUSTIFIED_MODULAR_P
11059         These changes mean that we no longer need to initialize small packed
11060         arrays.
11061         (gnat_to_gnu_entity) <E_Record_Subtype>: Apply the same
11062         optimization to an LJM field as to its parent field.
11063
11064         * ada-tree.h, trans.c, utils.c, utils2.c:
11065         Change name TYPE_LEFT_JUSTIFIED_MODULAR_P to TYPE_JUSTIFIED_MODULAR_P
11066
11067 2004-09-20  Jan Hubicka  <jh@suse.cz>
11068
11069         * utils.c (gnat_finalize): Remove.
11070         (end_subprog_body): Directly call cgraph_finalize_function;
11071         do not lower the nested functions.
11072
11073 2004-09-20  Robert Dewar  <dewar@gnat.com>
11074
11075         PR ada/17540
11076
11077         * freeze.adb (Check_Address_Clause): Reset Is_Imported and Is_Public
11078         if an address clause is present, since that means that the Import
11079         should be ignored.
11080
11081 2004-09-20  Arnaud Charlet  <charlet@act-europe.fr>
11082
11083         * 5tsystem.ads: Removed, no longer used.
11084
11085 2004-09-17  Jeffrey D. Oldham  <oldham@codesourcery.com>
11086             Zack Weinberg  <zack@codesourcery.com>
11087
11088         * ada-tree.def: Use tree_code_class enumeration constants
11089         instead of code letters.
11090         * ada-tree.h, decl.c, misc.c, trans.c, utils.c, utils2.c:
11091         Update for new tree-class enumeration constants.
11092
11093 2004-09-17  Vincent Celier  <celier@gnat.com>
11094
11095         * prj-attr-pm.ads, prj-attr-pm.adb: New files, to split some private
11096         capabilities of the general project manager.
11097
11098 2004-09-09  Vincent Celier  <celier@gnat.com>
11099
11100         * a-direct.ads: Add pragma Ada_05
11101         (Directory_Entry_Type): Give default value to component Kind to avoid
11102         not initialized warnings.
11103
11104         * a-direct.adb (Current_Directory): Remove directory separator at the
11105         end.
11106         (Delete_Directory, Delete_Tree): Raise Name_Error if Directory is not
11107         an existing directory.
11108         (Fetch_Next_Entry): Give default value to variable Kind to avoid warning
11109         (Size (String)): Function C_Size returns Long_Integer, not File_Size.
11110         Convert the result to File_Size.
11111
11112         * prj.ads: (Project_Error): New exception
11113
11114         * prj-attr.adb: Except in procedure Initialize, Fail comes from
11115         Prj.Com, not from Osint.
11116         (Attrs, Package_Attributes): Tables moved to private part of spec
11117         (Add_Attribute, Add_Unknown_Package): Moved to new child package
11118         Prj.Attr.PM.
11119         (Register_New_Package (Name, Attributes), Register_New_Attribute): Raise
11120         Prj.Project_Error after call to Fail.
11121         (Register_New_Package (Name, Id)): Set Id to Empty_Package after calling
11122         Fail. Check that package name is not already in use.
11123
11124         * prj-attr.ads: Comment updates to indicate that all subprograms may be
11125         used by tools, not only by the project manager, and to indicate that
11126         exception Prj.Prj_Error may be raised in case of problem.
11127         (Add_Unknown_Package, Add_Attribute): Moved to new child package
11128         Prj.Attr.PM.
11129         (Attrs, Package_Attributes): Table instantiations moved from the body to
11130         the private part to be accessible from Prj.Attr.PM body.
11131
11132         * prj-dect.adb (Parse_Package_Declaration): Call Add_Unknown_Package
11133         from new package Prj.Attr.PM.
11134         (Parse_Attribute_Declaration): Call Add_Attribute from new package
11135         Prj.Attr.PM.
11136
11137         * Makefile.in: Add prj-attr-pm.o to gnatmake object list
11138
11139         * gnatbind.adb (Gnatbind): Correct warning message (Elaboration_Check
11140         instead of Elaboration_Checks).
11141
11142         * a-calend.adb: Minor reformatting
11143
11144 2004-09-09  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11145
11146         * gigi.h (maybe_pad_type): New declaration.
11147         (create_subprog_type): New arg RETURNS_BY_TARGET_PTR.
11148
11149         * ada-tree.h: (TYPE_RETURNS_BY_TARGET_PTR_P): New macro.
11150
11151         * cuintp.c: Convert to use buildN.
11152
11153         * decl.c (maybe_pad_type): No longer static.
11154         (gnat_to_gnu_entity, case E_Function): Handle case of returning by
11155         target pointer.
11156         Convert to use buildN.
11157
11158         * trans.c (call_to_gnu): Add arg GNU_TARGET; support
11159         TYPE_RETURNS_BY_TARGET_PTR_P.  All callers changed.
11160         (gnat_to_gnu, case N_Assignment_Statement): Call call_to_gnu if call on
11161         RHS.
11162         (gnat_to_gnu, case N_Return): Handle TYPE_RETURN_BY_TARGET_PTR_P.
11163         (gnat_gimplify_expr, case ADDR_EXPR): New case.
11164         Convert to use buildN.
11165
11166         * utils2.c (gnat_build_constructor): Also set TREE_INVARIANT and
11167         TREE_READONLY for const.
11168         Convert to use buildN.
11169
11170         * utils.c (create_subprog_type): New operand RETURNS_BY_TARGET_PTR.
11171         (create_var_decl): Refine when TREE_STATIC is set.
11172         Convert to use buildN.
11173
11174 2004-09-09  Gary Dismukes  <dismukes@gnat.com>
11175
11176         * gnat_ugn.texi: Delete text relating to checking of ali and object
11177         consistency.
11178
11179         * a-except.adb (Rcheck_*): Add pragmas No_Return for each of these
11180         routines.
11181
11182 2004-09-09  Jose Ruiz  <ruiz@act-europe.fr>
11183
11184         * gnat_ugn.texi: Add Detect_Blocking to the list of configuration
11185         pragmas recognized by GNAT.
11186
11187         * gnat_rm.texi: Document pragma Detect_Blocking.
11188
11189         * s-solita.adb (Timed_Delay_T): When pragma Detect_Blocking is active,
11190         raise Program_Error if called from a protected operation.
11191
11192         * s-taprob.adb (Lock): When pragma Detect_Blocking is active increase
11193         the protected action nesting level.
11194         (Lock_Read_Only): When pragma Detect_Blocking is active increase the
11195         protected action nesting level.
11196         (Unlock): When pragma Detect_Blocking is active decrease the protected
11197         action nesting level.
11198
11199         * s-taskin.adb (Initialize_ATCB): Initialize to 0 the
11200         Protected_Action_Nesting.
11201
11202         * s-taskin.ads: Adding the field Protected_Action_Nesting to the
11203         Common_ATCB record. It contains the dynamic level of protected action
11204         nesting for each task. It is needed for checking whether potentially
11205         blocking operations are called from protected operations.
11206         (Detect_Blocking): Adding a Boolean constant reflecting whether pragma
11207         Detect_Blocking is active or not in the partition.
11208
11209         * s-tasren.adb (Call_Simple): When pragma Detect_Blocking is active,
11210         raise Program_Error if called from a protected operation.
11211         (Task_Entry_Call): When pragma Detect_Blocking is active, raise
11212         Program_Error if called from a protected operation.
11213         (Timed_Task_Entry_Call): When pragma Detect_Blocking is active, raise
11214         Program_Error if called from a protected operation.
11215
11216         * s-tassta.adb (Abort_Tasks): When pragma Detect_Blocking is active,
11217         raise Program_Error if called from a protected operation.
11218
11219         * s-tpoben.adb (Lock_Entries): When pragma Detect_Blocking is active,
11220         raise Program_Error if called from a protected operation, and increase
11221         the protected action nesting level.
11222         (Lock_Read_Only_Entries): When pragma Detect_Blocking is active, raise
11223         Program_Error if called from a protected operation, and increase the
11224         protected action nesting level.
11225         (Unlock_Entries): When pragma Detect_Blocking is active decrease the
11226         protected action nesting level.
11227
11228         * s-tposen.adb (Lock_Entry): When pragma Detect_Blocking is active,
11229         raise Program_Error if called from a protected operation, and increase
11230         the protected action nesting level.
11231         (Lock_Read_Only_Entry): When pragma Detect_Blocking is active, raise
11232         Program_Error if called from a protected operation, and increase the
11233         protected action nesting level.
11234         (Protected_Single_Entry_Call): When pragma Detect_Blocking is active,
11235         raise Program_Error if called from a protected operation.
11236         (Timed_Protected_Single_Entry_Call): When pragma Detect_Blocking is
11237         active, raise Program_Error if called from a protected operation.
11238         (Unlock_Entry): When pragma Detect_Blocking is active decrease the
11239         protected action nesting level.
11240
11241         * sem_util.adb (Check_Potentially_Blocking_Operation): Remove the
11242         insertion of the statement raising Program_Error. The run time
11243         contains the required machinery for handling that.
11244
11245         * sem_util.ads: Change comment associated to procedure
11246         Check_Potentially_Blocking_Operation.
11247         This procedure does not insert a call for raising the exception because
11248         that is currently done by the run time.
11249
11250         * raise.h (__gnat_set_globals): Pass the detect_blocking parameter.
11251
11252         * init.c: Add the global variable __gl_detect_blocking that indicates
11253         whether pragma Detect_Blocking is active (1) or not (0). Needed for
11254         making the pragma available at run time.
11255         (__gnat_set_globals): Pass and update the detect_blocking parameter.
11256
11257         * lib-writ.adb (Write_ALI): Set the DB flag in the ali file if
11258         pragma Detect_Blocking is active.
11259
11260         * lib-writ.ads: Document the Detect_Blocking flag (DB) in ali files.
11261
11262         * ali.adb (Scan_ALI): Set the Detect_Blocking value to true if the flag
11263         DB is found in the ali file. Any unit compiled with pragma
11264         Detect_Blocking active forces its effect in the whole partition.
11265
11266         * a-retide.adb (Delay_Until): Raise Program_Error if pragma
11267         Detect_Blocking is active and delay is called from a protected
11268         operation.
11269
11270         * bindgen.adb (Gen_Adainit_Ada): When generating the call to
11271         __gnat_set_globals, pass 1 as Detect_Blocking parameter if pragma
11272         Detect_Blocking is active (0 otherwise).
11273         (Gen_Adainit_C): When generating the call to __gnat_set_globals, pass 1
11274         as Detect_Blocking parameter if pragma Detect_Blocking is active (0
11275         otherwise).
11276
11277 2004-09-09  Thomas Quinot  <quinot@act-europe.fr>
11278
11279         * gnat_rm.texi: Rename GNAT.Perfect_Hash.Generators to
11280         GNAT.Perfect_Hash_Generators, and remove the empty GNAT.Perfect_Hash
11281         package.
11282
11283         * s-parint.ads, s-parint.adb (Get_RAS_Info): New subprogram.
11284         (Register_Receiving_Stub): Add Subp_Info formal parameter.
11285         Update API in placeholder implemetation of s-parint to reflect changes
11286         in distribution runtime library.
11287
11288         * sem_ch3.adb (Expand_Derived_Record): Rename to
11289         Expand_Record_Extension.
11290
11291         * sem_disp.adb (Check_Controlling_Formals): Improve error message for
11292         primitive operations of potentially distributed object types that have
11293         non-controlling anonymous access formals.
11294
11295         * sem_dist.ads, sem_dist.adb (Build_RAS_Primitive_Specification): New
11296         subprogram.
11297         New implementation of expansion for remote access-to-subprogram types,
11298         based on the RACW infrastructure.
11299         This version of sem_dist is compatible with PolyORB/DSA as well as
11300         GLADE.
11301
11302         * sem_prag.adb (Analyze_Pragma, case Pragma_Asynchronous): For a pragma
11303         Asynchrronous that applies to a remote access-to-subprogram type, mark
11304         the underlying RACW type as asynchronous.
11305
11306         * link.c: FreeBSD uses GNU ld: set __gnat_objlist_file_supported and
11307          __gnat_using_gnu_linker to 1.
11308
11309         * Makefile.rtl, impunit.adb, g-perhas.ads, g-pehage.ads,
11310         g-pehage.adb: Rename GNAT.Perfect_Hash.Generators to
11311         GNAT.Perfect_Hash_Generators, and remove the empty
11312         GNAT.Perfect_Hash package.
11313
11314         * atree.adb: Minor reformatting
11315
11316         * exp_ch3.adb (Expand_Derived_Record): Rename to
11317         Expand_Record_Extension.
11318         (Build_Record_Init_Proc.Build_Assignment): The default expression in
11319         a component declaration must remain attached at that point in the
11320         tree so New_Copy_Tree copies it if the enclosing record type is derived.
11321         It is therefore necessary to take a copy of the expression when building
11322         the corresponding assignment statement in the init proc.
11323         As a side effect, in the case of a derived record type, we now see the
11324         original expression, without any rewriting that could have occurred
11325         during expansion of the ancestor type's init proc, and we do not need
11326         to go back to Original_Node.
11327
11328         * exp_ch3.ads (Expand_Derived_Record): Rename to
11329         Expand_Record_Extension.
11330
11331         * exp_dist.ads, exp_dist.adb (Underlying_RACW_Type): New subprogram.
11332         Returns the RACW type used to implement a remote access-to-subprogram
11333         type.
11334         (Add_RAS_Proxy_And_Analyze, Build_Remote_Subprogram_Proxy_Type):
11335         New subprograms. Used to create a proxy tagged object for a remote
11336         subprogram. The proxy object is used as the designated object
11337         for RAS values on the same partition (unless All_Calls_Remote applies).
11338         (Build_Get_Unique_RP_Call): New subprogram. Build a call to
11339         System.Partition_Interface.Get_Unique_Remote_Pointer.
11340         (Add_RAS_Access_TSS, Add_RAS_Dereference_TSS):
11341         Renamed from Add_RAS_*_Attribute.
11342         (Add_Receiving_Stubs_To_Declarations): Generate a table of local
11343         subprograms.
11344         New implementation of expansion for remote access-to-subprogram types,
11345         based on the RACW infrastructure.
11346
11347         * exp_dist.ads (Copy_Specification): Update comment to note that this
11348         function can copy the specification from either a subprogram
11349         specification or an access-to-subprogram type definition.
11350
11351 2004-09-09  Ed Schonberg  <schonberg@gnat.com>
11352
11353         * sem_type.adb (Disambiguate): Handle properly an accidental ambiguity
11354         in an instance, between an explicit subprogram an one inherited from a
11355         type derived from an actual.
11356
11357         * exp_ch6.adb (Expand_N_Subprogram_Body): If polling is enabled, do not
11358         add a polling call if the subprogram is to be inlined by the back-end,
11359         to avoid repeated calls with multiple inlinings.
11360
11361         * checks.adb (Apply_Alignment_Check): If the expression in the address
11362         clause is a call whose name is not a static entity (e.g. a dispatching
11363         call), treat as dynamic.
11364
11365 2004-09-09  Robert Dewar  <dewar@gnat.com>
11366
11367         * g-trasym.ads: Minor reformatting
11368
11369         * exp_ch3.adb (Component_Needs_Simple_Initialization): Don't except
11370         packed arrays, since unused bits are expected to be zero for a
11371         comparison.
11372
11373 2004-09-09  Eric Botcazou  <ebotcazou@act-europe.fr>
11374
11375         * exp_pakd.ads: Fix an inacurracy and a couple of typos in the head
11376         comment.
11377
11378 2004-09-09  Pascal Obry  <obry@gnat.com>
11379
11380         * mdll.ads, mdll.adb (Build_Dynamic_Library): New parameter Map_File to
11381         enable map file generation. Add the right option to generate the map
11382         file if Map_File is set to True.
11383
11384         * gnatdll.adb (Gen_Map_File): New variable.
11385         (Syntax): Add info about new -m (Map_File) option.
11386         (Parse_Command_Line): Add support for -m option.
11387         (gnatdll): Pass Gen_Map_File to Build_Dynamic_Library calls.
11388         Minor reformatting.
11389
11390 2004-09-09  Laurent Pautet  <pautet@act-europe.fr>
11391
11392         * gnatls.adb: Add a very verbose mode -V. Such mode is required by the
11393         new gnatdist implementation.
11394         Define a subpackage isolating the output routines specific to this
11395         verbose mode.
11396
11397 2004-09-09  Joel Brobecker  <brobecker@gnat.com>
11398
11399         * Makefile.rtl: (GNATRTL_NONTASKING_OBJS): Add g-dynhta.
11400
11401         * gnat_ugn.texi (Main Subprograms): Fix typo. Deduced, not deducted.
11402
11403 2004-09-09  Cyrille Comar  <comar@act-europe.fr>
11404
11405         * opt.adb (Set_Opt_Config_Switches): Use Ada_Version_Runtime to compile
11406         internal unit.
11407
11408         * opt.ads: Add Ada_Version_Runtime constant used to decide which
11409         version of the language is used to compile the run time.
11410
11411 2004-09-09  Arnaud Charlet  <charlet@act-europe.fr>
11412
11413         * sem_util.adb (Requires_Transient_Scope): Re-enable handling
11414         of variable length temporaries for function return now that the
11415         back-end and gigi support it.
11416
11417 2004-09-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11418
11419         * misc.c (gnat_print_type): Use TYPE_RM_SIZE_NUM.
11420
11421         * trans.c (struct stmt_group): Delete field GLOBAL.
11422         (gnat_init_stmt_group): Do not initialize it.
11423         (call_to_gnu): Use save_expr, not protect_multiple_eval.
11424         (Exception_Handler_to_gnu_sjlj): Call build_int_cst, not build_int_2
11425         (gnat_to_gnu, case N_Character_Literal, N_String_Literal): Likewise.
11426         (gnat_to_gnu, case N_Compilation_Unit): Do not set GLOBAL in stmt group.
11427         (start_stmt_group): Likewise.
11428         (add_stmt, add_decl_expr): Rework handling of global DECL_EXPRs.
11429
11430         * utils2.c (ggc.h): Include.
11431         (build_call_raise): Call build_int_cst, not build_int_2.
11432
11433         * utils.c (gnat_init_decl_processing): Fix arg to
11434         build_common_tree_nodes.
11435         (create_subprog_type): Do not use SET_TYPE_CI_CO_LIST.
11436         (gnat_define_builtin): Set built_in_decls.
11437         (init_gigi_decls): Call build_int_cst, not build_int_2.
11438
11439         * ada-tree.h (struct lang_decl, struct lang_type): Field is type tree.
11440         (GET_TYPE_LANG_SPECIFIC, SET_TYPE_LANG_SPECIFIC): New macros.
11441         (GET_DECL_LANG_SPECIFIC, SET_DECL_LANG_SPECIFIC): Likewise.
11442         (TYPE_CI_CO_LIST, SET_TYPE_CI_CO_LIST, TYPE_MODULE,
11443         SET_TYPE_MODULE): Use them.
11444         (TYPE_INDEX_TYPE, SET_TYPE_INDEX_TYPE, TYPE_DIGITS_VALUE): Likewise.
11445         (SET_TYPE_DIGITS_VALUE, TYPE_UNCONSTRAINED_ARRAY): Likewise.
11446         (SET_TYPE_UNCONSTRAINED_ARRAY, TYPE_ADA_SIZE,
11447         SET_TYPE_ADA_SIZE): Likewise.
11448         (TYPE_ACTUAL_BOUNDS, SET_TYPE_ACTUAL_BOUNDS): Likewise.
11449         (DECL_CONST_CORRESPONDING_VAR,
11450         SET_DECL_CONST_CORRESPONDING_VAR): Likewise.
11451         (DECL_ORIGINAL_FIELD, SET_DECL_ORIGINAL_FIELD): Likewise.
11452         (TYPE_RM_SIZE_INT, TYPE_RM_SIZE_ENUM, SET_TYPE_RM_SIZE_ENUM): Deleted.
11453         (TYPE_RM_SIZE_NUM): New macro.
11454         (TYPE_RM_SIZE): Modified to use above.
11455
11456         * cuintp.c: (build_cst_from_int): New function.
11457         (UI_To_gnu): Use it.
11458
11459         * decl.c (gnat_to_gnu_entity): Use TYPE_RM_SIZE_NUM.
11460         (make_type_from_size): Avoid changing TYPE_UNSIGNED of a type.
11461         (gnat_substitute_in_type, case ARRAY_TYPE): If old had a
11462         MIN_EXPR for the size, copy it into new.
11463
11464 2004-09-01  Robert Dewar  <dewar@gnat.com>
11465
11466         * exp_ch6.adb (Expand_Call): Properly handle validity checks for
11467         packed indexed component where array is an IN OUT formal. This
11468         generated garbage code previously.
11469
11470         * gnat_ugn.texi: Document -fverbose-asm
11471
11472         * gnat-style.texi: Minor updates (note that boolean constants and
11473         variables are joined with AND/OR rather than short circuit forms).
11474
11475 2004-09-01  Ed Schonberg  <schonberg@gnat.com>
11476
11477         * exp_util.adb (Safe_Unchecked_Type_Conversion): Conversion is safe if
11478         it is an upward conversion of an untagged type with no representation
11479         change.
11480
11481 2004-09-01  Thomas Quinot  <quinot@act-europe.fr>
11482
11483         * rtsfind.ads: Move RCI_Subp_Info and RCI_Subp_Info_Array to
11484         System.Partition_Interface.
11485
11486         * checks.adb (Apply_Access_Checks): Do not generate checks when
11487         expander is not active (but check for unset reference to prefix of
11488         dereference).
11489
11490         * sem_prag.adb (Analyze_Pragma, case Pragma_Debug): Uniformly rewrite
11491         pragma Debug as an if statement with a constant condition, for
11492         consistent treatment of entity references contained within the
11493         enclosed procedure call.
11494
11495 2004-09-01  Vincent Celier  <celier@gnat.com>
11496
11497         * bindgen.adb: (Set_EA_Last): New procedure
11498         (Gen_Exception_Table_Ada, Gen_Exception_Table_C): Use new procedure
11499         Set_EA_Last.
11500         (Gen_Adafinal_Ada): If no finalization, adafinal does nothing
11501         (Gen_Output_File_Ada): Always call Gen_Adafinal_Ada, so that SAL can be
11502         linked without errors.
11503         (Gen_Exception_Table_Ada): Correct bugs when generating code for arrays
11504         ST and EA.
11505         (Gen_Exception_Table_C): Correct same bugs
11506
11507         * vms_data.ads: Add new qualifier /VERBOSE_ASM to GCC_Switches
11508
11509         * g-os_lib.adb (Normalize_Pathname.Get_Directory): When Dir is empty,
11510         on Windows, make sure that the drive letter is in upper case.
11511
11512         * g-os_lib.ads (Normalize_Pathname): Add a comment to indicate that on
11513         Windows, when the drive letter is added and Case_Sensitive is True, the
11514         drive letter is forced to upper case.
11515
11516         * mlib-tgt-irix.adb (Build_Dynamic_Library): Transfer all -lxxx options
11517         to Options_2 for the call to MLib.Utl.Gcc.
11518
11519         * bld.adb (Put_Include_Project): Use '/', not '\' on Windows as
11520         directory separator when defining BASE_DIR.
11521
11522 2004-09-01  Pascal Obry  <obry@gnat.com>
11523
11524         * gprcmd.adb (Extend): Do not output trailing directory separator. This
11525         is not needed and it confuses Windows GNU/make which does not report
11526         directory terminated by a slash as a directory.
11527         (gprcmd): Idem for "pwd" internal command.
11528
11529         * Makefile.generic: Use __GPRCOLON__ instead of pipe character in
11530         target names rewrite to fix regressions with recent version of
11531         GNU/make. Starting with GNU/make 3.80 the pipe character was not
11532         handled properly anymore.
11533
11534 2004-09-01  Andreas Schwab  <schwab@suse.de>
11535
11536         * Make-lang.in (EXTRA_GNATBIND_OBJS): Revert last change.
11537         * raise.c [!IN_RTS]: Undef abort.
11538
11539 2004-08-27  Nathan Sidwell  <nathan@codesourcery.com>
11540
11541         * utils2.c (build_allocator): Use ssize_int.
11542
11543         * utils.c (gnat_init_decl_processing): Ada has a signed sizetype.
11544
11545 2004-08-27  Andreas Schwab  <schwab@suse.de>
11546
11547         * Make-lang.in (EXTRA_GNATBIND_OBJS): Add errors.o.
11548
11549 2004-08-25  Nathan Sidwell  <nathan@codesourcery.com>
11550             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11551
11552         * ada-tree.h (TYPE_RM_SIZE_INT): Use TYPE_LANG_SLOT_1.
11553
11554 2004-08-25  Nathan Sidwell  <nathan@codesourcery.com>
11555
11556         * cuintp.c (UI_To_gnu): Adjust build_int_cst calls.
11557         * trans.c (Exception_Handler_to_gnu_sjlj, gnat_to_gnu): Likewise.
11558         * utils.c (init_gigi_decls): Likewise.
11559         * utils2.c (build_call_raise, build_allocator): Likewise.
11560
11561 2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
11562
11563         * utils.c (gnat_init_decl_processing): Adjust
11564         build_common_tree_nodes call.
11565
11566 2004-08-20  Nathan Sidwell  <nathan@codesourcery.com>
11567
11568         * utils2.c (build_allocator): Use build_int_cst for negative
11569         size types.
11570
11571 2004-08-18  Richard Henderson  <rth@redhat.com>
11572
11573         * misc.c (LANG_HOOKS_HONOR_READONLY): Remove.
11574
11575 2004-08-16  Nathan Sidwell  <nathan@codesourcery.com>
11576
11577         * cuintp.c (UI_To_gnu): Be more conservative with build_int_cst
11578         call.s
11579         * trans.c (Exception_Handler_to_gnu_sjlj): Likewise.
11580         (gnat_to_gnu): Likewise.
11581
11582 2004-08-16  Pascal Obry  <obry@gnat.com>
11583
11584         * adaint.c (__gnat_prj_add_obj_files): Set to 0 only on Win32 for GCC
11585         backend prior to GCC 3.4. With GCC 3.4 we are using the GCC's shared
11586         option and not mdll anymore. Update comment.
11587
11588 2004-08-16  Pascal Obry  <obry@gnat.com>
11589
11590         * bld.adb (Put_Include_Project): Properly handle directory separators
11591         on Windows.
11592
11593 2004-08-16  Ed Schonberg  <schonberg@gnat.com>
11594
11595         * sem_ch4.adb (Try_Object_Operation): Restructure code. Optimize by
11596         decreasing the number of allocated junk nodes while searching for the
11597         appropriate subprogram.
11598
11599 2004-08-15  Nathan Sidwell  <nathan@codesourcery.com>
11600
11601         * cuintp.c (UI_To_gnu): Use build_int_cst..
11602         * trans.c (Exception_Handler_to_gnu_sjlj, gnat_to_gnu): Likewise.
11603         * utils.c (init_gigi_decls): Likewise.
11604         * utils2.c (build_call_raise): Likewise.
11605
11606 2004-08-13  Olivier Hainque  <hainque@act-europe.fr>
11607
11608         * decl.c (gnat_to_gnu_entity) <E_Variable>: When building an allocator
11609         for a global aliased object with a variable size and an unconstrained
11610         nominal subtype, pretend there is no initializer if the one we have is
11611         incomplete, and avoid referencing an inexistant component in there. The
11612         part we have will be rebuilt anyway and the reference may confuse
11613         further operations.
11614
11615 2004-08-13  Thomas Quinot  <quinot@act-europe.fr>
11616
11617         * einfo.ads: Minor reformatting
11618
11619         * lib-writ.adb (Output_Main_Program_Line): Do not set parameter
11620         restrictions in the ALI if we only want to warn about violations.
11621
11622 2004-08-13  Vincent Celier  <celier@gnat.com>
11623
11624         * ali.adb (Scan_ALI): Initialize component Body_Needed_For_SAL to False
11625         when creating a new Unit_Record in table Units.
11626
11627         * gnatls.adb (Output_Unit): In verbose mode, output the restrictions
11628         that are violated, if any.
11629
11630         * prj-nmsc.adb (Ada_Check.Get_Path_Names_And_Record_Sources): Do not
11631         add directory separator if path already ends with a directory separator.
11632
11633 2004-08-13  Ed Schonberg  <schonberg@gnat.com>
11634
11635         * rtsfind.adb (Entity_Not_Defined): If the error ocurrs in a predefined
11636         unit, this is an attempt to inline a construct that is not available in
11637         the current restricted mode, so abort rather than trying to continue.
11638
11639         * sem_ch3.adb (Build_Underlying_Full_View): If the new type has
11640         discriminants that rename those of the parent, recover names of
11641         original discriminants for the constraint on the full view of the
11642         parent.
11643         (Complete_Private_Subtype): Do not create a subtype declaration if the
11644         subtype is an itype.
11645
11646         * gnat_rm.texi: Added section on implementation of discriminated
11647         records with default values for discriminants.
11648
11649 2004-08-13  Ed Schonberg  <schonberg@gnat.com>
11650
11651         PR ada/15601
11652         * sem_res.adb (Make_Call_Into_Operator): Handle properly the case where
11653         the second operand is overloaded.
11654
11655 2004-08-10  Richard Henderson  <rth@redhat.com>
11656
11657         * utils.c (gnat_install_builtins): Remove __builtin_stack_alloc,
11658         add __builtin_alloca.
11659
11660 2004-08-10  Richard Henderson  <rth@redhat.com>
11661
11662         * config-lang.in (boot_language): Yes.
11663
11664 2004-08-09  Thomas Quinot  <quinot@act-europe.fr>
11665
11666         * g-socket.adb (Abort_Selector): Initialize Buf to prevent valgrind
11667         from complaining on potential uninitialized reference.
11668         Change calls to GNAT.Sockets.Thin.Is_Socket_In_Set to account for
11669         new specification and test explicitly for non-zero return value.
11670
11671         * g-socthi.ads (Is_Socket_In_Set): Declare imported function as
11672         returning C.int, to avoid using a derived boolean type.
11673
11674         * exp_ch5.adb (Make_Tag_Ctrl_Assignments): Use
11675         Duplicate_Subexpr_No_Checks in preference to direct use of
11676         Remove_Side_Effects and New_Copy_Tree.
11677         Clear Comes_From_Source on prefix of 'Size attribute reference.
11678
11679         * g-socthi.adb, g-socthi-vms.adb, g-socthi-mingw.adb,
11680         g-socthi-vxworks.adb: Change calls to
11681         GNAT.Sockets.Thin.Is_Socket_In_Set to account for new specification
11682         and test explicitly for non-zero return value.
11683
11684         * g-socthi-vms.ads, g-socthi-mingw.ads, g-socthi-vxworks.ads:
11685         (Is_Socket_In_Set): Declare imported function as returning C.int, to
11686         avoid using a derived boolean type.
11687
11688 2004-08-09  Albert Lee  <lee@gnat.com>
11689
11690         * system-irix-n32.ads: Refine tasking priority constants for IRIX.
11691
11692 2004-08-09  Pascal Obry  <obry@gnat.com>
11693
11694         * gnat_ugn.texi: Document new way to build DLLs on Windows using
11695         GCC's -shared option.
11696
11697         * mlib-tgt-mingw.adb (Build_Dynamic_Library): Pass GCC's options into
11698         Options_2 parameter (options put after object files).
11699
11700 2004-08-09  Olivier Hainque  <hainque@act-europe.fr>
11701
11702         * decl.c (gnat_to_gnu_entity) <E_Array_Subtype>: Adjust condition to
11703         ignore overflows on low and high bounds of an index to also account for
11704         differences in signedness between sizetype and gnu_index_subtype.
11705         These are as legitimate as the ones caused by a lower TYPE_PRECISION
11706         on sizetype.
11707
11708 2004-08-09  Robert Dewar  <dewar@gnat.com>
11709
11710         * s-solita.ads, s-solita.adb: Minor reformatting
11711
11712         * gnat_rm.texi: Add documentation for pragma Profile (Restricted)
11713         Move pragma Restricted_Run_Time, No_Run_Time, Ravenscar to new
11714         obsolescent section
11715         Add note that No_Implicit_Conditionals does not suppress
11716         run time constraint checks.
11717
11718         * vms_conv.ads: Minor reformatting
11719
11720         * s-secsta.adb: Use SS_Ptr instead of Mark_Id as stack pointer (cleanup
11721         and necessary for following change).
11722         (Mark): Return new format Mark_Id containing sec stack address
11723         (Release): Use sec stack address from Mark_Id avoiding Self call
11724
11725         * s-secsta.ads: Define SS_Ptr to be used instead of Mark_Id as stack
11726         pointer (cleanup and necessary for following change).
11727         Define Mark_Id as record containing address of secondary stack, that way
11728         Release does not need to find the stack again, decreasing the number of
11729         calls to Self and improving efficiency.
11730
11731         * sem_util.ads: Add a ??? comment for Is_Local_Variable_Reference
11732
11733         * sem_ch5.adb (Analyze_Case_Statement): Add circuitry to track value of
11734         case variable into the individual case branches when possible.
11735
11736         * sem_ch11.adb: Minor reformatting
11737
11738         * prj.ads: Correct spelling of suffixs
11739
11740         * prj-nmsc.adb: Minor reformatting
11741         Correct spelling suffixs throughout (also in identifiers)
11742
11743         * freeze.adb: Minor spelling correction
11744
11745         * exp_ch2.adb: Cleanups to handling of Current_Value
11746         (no functional effect).
11747
11748         * bld.adb: Correct spelling of suffixs
11749
11750         * einfo.adb (Enclosing_Dynamic_Scope): Defend against junk argument
11751
11752 2004-08-09  Ed Schonberg  <schonberg@gnat.com>
11753
11754         PR ada/15408
11755
11756         * sem_ch7.adb (Install_Private_Declarations): In the body of the
11757         package or of a child, private entities are both immediately_visible
11758         and not hidden.
11759
11760 2004-08-09  Ed Schonberg  <schonberg@gnat.com>
11761
11762         * sem_eval.adb (Eval_Integer_Literal): If the context is Any_Integer,
11763         there are no range checks on the value of the literal.
11764
11765         * exp_ch7.adb (Insert_Actions_In_Scope_Around): If the node being
11766         wrapped is the triggering alternative of an asynchronous select, action
11767         statements mustbe inserted before the select itself.
11768
11769         * sem_attr.adb (Analyze_Attribute, case 'Size): Handle properly the
11770         case where the prefix is a protected function call.
11771         (Resolve_Attribute, case 'Access): The attribute reference on a
11772         subprogram is legal in a generic body if the subprogram is declared
11773         elsewhere.
11774
11775 2004-08-09  Vincent Celier  <celier@gnat.com>
11776
11777         * makegpr.adb (Build_Library): Link with g++ if C++ is one of the
11778         languages, otherwise building the library may fail with unresolved
11779         symbols.
11780         (Compile_Sources): Do not build libraries if -c switch is used
11781
11782         * gnatlink.adb (Process_Args): New switches -M and -Mmap
11783         (Write_Usage): If map file creation is supported, output new switches
11784         -M and -Mmap.
11785         (Gnatlink): When -M is specified, add the necessary switch(es) to the
11786         gcc call, when supported.
11787
11788         * Makefile.in: Added indepsw.o to the object list for gnatlink
11789         Specified the AIX, GNU/Linux and Windows versions of indepsw.adb
11790
11791         * indepsw-aix.adb, indepsw-linux.adb, indepsw-mingw.adb,
11792         indepsw.adb, indepsw.ads: New files.
11793
11794 2004-08-09  Bernard Banner  <banner@gnat.com>
11795
11796         * system-vxworks-x86.ads, s-vxwork-x86.ads: New files.
11797
11798         * Makefile.in: add section for vxworks x86
11799
11800 2004-08-09  Hristian Kirtchev  <kirtchev@gnat.com>
11801
11802         * exp_ch3.adb (Build_Init_Statements): Add extra condition to deal with
11803         per-object constrained components where the discriminant is of an
11804         Access type.
11805         (Build_Record_Init_Proc): Add condition to prevent the inheritance of
11806         the parent initialization procedure for derived Unchecked_Unions.
11807         Instead, derived Unchecked_Unions build their own initialization
11808         procedure.
11809         (Build_Variant_Record_Equality): Implement Unchecked_Union equality.
11810         Check the body of the subprogram for details.
11811         (Freeze_Record_Type): Prevent the inheritance of discriminant checking
11812         functions for derived Unchecked_Union types by introducing a condition.
11813         Allow the creation of TSS equality functions for Unchecked_Unions.
11814         (Make_Eq_Case): Rename formal parameter Node to E in function signature.
11815         Add formal parameter Discr to function signature. Discr is used to
11816         control the generated case statement for Unchecked_Union types.
11817         (Make_Eq_If): Rename formal parameter Node to E in function signature.
11818
11819         * exp_ch4.adb (Build_Equality_Call): Implement equality calls for
11820         Unchecked_Unions.
11821         Check the body of the subprogram for details.
11822         (Expand_Composite_Equality): Augment composite type equality to include
11823         correct handling of Unchecked_Union components.
11824         (Expand_N_In): Add condition to detect illegal membership tests when the
11825         subtype mark is a constrained Unchecked_Union and the expression lacks
11826         inferable discriminants, and build a Raise_Program_Error node.
11827         (Expand_N_Op_Eq): Add function Has_Unconstrained_UU_Component. Used
11828         to detect types that contain components of unconstrained Unchecked_Union
11829         subtype. Add condition to detect equality between types that have an
11830         unconstrained Unchecked_Union component, and build a Raise_Program_Error
11831         node. Add condition to detect equality between Unchecked_Union types
11832         that lack inferable discriminants, and build a Raise_Program_Error node.
11833         Otherwise build a TSS equality function call.
11834         (Expand_N_Type_Conversion): Add condition to detect illegal conversions
11835         from a derived Unchecked_Union to an unconstrained non-Unchecked_Union
11836         with the operand lacking inferable discriminants, and build a Raise_
11837         Program_Error node.
11838         (Expand_Record_Equality): Remove guard that prevents Unchecked_Union
11839         composite equality.
11840         (Has_Inferable_Discriminants): Implement new predicate for objects and
11841         expressions of Unchecked_Union type. Check the body of subprogram for
11842         details.
11843         (Has_Unconstrained_UU_Components): Add function
11844         Component_Is_Unconstrained_UU. It is used to detect whether a single
11845         component is of an unconstrained Unchecked_Union subtype. Add function
11846         Variant_Is_Unconstrained_UU. It is used to detect whether a single
11847         component inside a variant is of an unconstrained Unchecked_Union type.
11848
11849         * exp_ch5.adb (Expand_Assign_Record): Add condition to copy the
11850         inferred discriminant values. Add condition to generate a case
11851         statement with an inferred discriminant as the switch.
11852         (Make_Component_List_Assign): Introduce a Boolean flag that determines
11853         the behaviour of the subprogram in the presence of an Unchecked_Union.
11854         Add condition to trigger the usage of the inferred discriminant value
11855         as the generated case statement switch.
11856         (Make_Field_Assign): Introduce a Boolean flag that determines the
11857         behaviour of the subprogram in the presence of an Unchecked_Union. Add
11858         condition to trigger the usage of the inferred discriminant value as
11859         the right-hand side of the generated assignment.
11860
11861         * exp_ch6.adb (Expand_Call): Add condition to skip extra actual
11862         parameter generation when dealing with Unchecked_Unions.
11863
11864         * checks.adb (Apply_Discriminant_Check): Do not apply discriminant
11865         checks for Unchecked_Unions.
11866
11867         * einfo.ads: Update comment on usage of flag Has_Per_Object_Constraint
11868
11869         * exp_attr.adb (Expand_N_Attribute_Reference): Produce
11870         Raise_Program_Error nodes for the execution of Read and Write
11871         attributes of Unchecked_Union types and the execution of Input and
11872         Output attributes of Unchecked_Union types that lack default
11873         discriminant values.
11874
11875         * sem_prag.adb (Analyze_Pragma): Remodel the analysis of pragma
11876         Unchecked_Union. Add procedure Check_Component. It is used to inspect
11877         per-object constrained components of Unchecked_Unions for being
11878         Unchecked_Unions themselves. Add procedure Check_Variant. It is used to
11879         check individual components withing a variant.
11880
11881         * sem_res.adb (Resolve_Comparison_Op): Remove guard that prevents
11882         comparison of Unchecked_Unions.
11883         (Resolve_Equality_OP): Remove guard that prevents equality between
11884         Unchecked_Unions.
11885
11886         * sem_util.adb (Build_Component_Subtype): Add guard to prevent creation
11887         of component subtypes for Unchecked_Union components.
11888         (Get_Actual_Subtype): Add condition that returs the Unchecked_Union type
11889         since it is the actual subtype.
11890
11891         * sem_ch12.adb (Instantiate_Type): Add condition to detect the correct
11892         pass of Unchecked_Union subtypes as generic actuals to formal types
11893         that lack known_discriminant_parts or that are derived Unchecked_Union
11894         types, and do nothing. In any other case, produce an error message.
11895
11896         * sem_ch3.adb (Analyze_Component_Declaration): Add function
11897         Contains_POC. It determines whether a constraint uses the discriminant
11898         of an enclosing record type.
11899         Add condition to detect per-object constrained component and set the
11900         appropriate flag.
11901         (Derived_Type_Declaration): Remove guard that prevents derivation from
11902         Unchecked_Union types.
11903         (Process_Subtype): Remove quard that prevents the creation of Unchecked_
11904         Union subtypes.
11905
11906         * sem_ch4.adb (Analyze_Selected_Component): Correct the detection of
11907         references to Unchecked_Union discriminants.
11908
11909         * sem_ch6.adb (Create_Extra_Formals): Add condition to skip extra
11910         formal generation when dealing with Unchecked_Unions.
11911         (Set_Actual_Subtypes): Add condition to prevent generation of actual
11912         subtypes for Unchecked_Unions.
11913
11914         * sem_ch7.adb (Analyze_Package_Specification): Add procedure
11915         Inspect_Unchecked_Union_Completion. It is used to detect incorrect
11916         completions of discriminated partial views by Unchecked_Unions and
11917         produce an error message.
11918
11919 2004-08-09  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11920
11921         * trans.c (struct stmt_group): New field, GLOBAL.
11922         (global_stmt_group, gnu_elab_proc_decl, build_unit_elab): Deleted.
11923         (struct elab_info): New struct.
11924         (elab_info_list, gnu_elab_proc_stack): New variables.
11925         (Compilation_Unit_to_gnu): New procedure.
11926         (gigi): Call it and also handle elaboration procs we've saved.
11927         (gnat_init_stmt_group): Don't set global_stmt_group; instead initialize
11928         global field from parent.
11929         (gnat_to_gnu): Get decl from gnu_elab_proc_stack.
11930         (gnat_to_gnu, case N_Compilation_Unit): Call Compilation_Unit_to_gnu.
11931         (start_stmt_group): Initialize global field from parent.
11932         (add_decl_expr): Set to global for current statement group.
11933         (gnat_gimplify_expr, case NULL_EXPR): Add operand 0 to pre list, not
11934         post.
11935
11936         * utils.c (global_bindings_p): True when no current_function_decl; no
11937         longer check current_binding_level.
11938
11939 2004-08-09  Ben Brosgol  <brosgol@gnat.com>
11940
11941         * xgnatugn.adb: Added logic to deal with @ifset/@ifclear for edition
11942         choice.
11943
11944         * gnat_rm.texi, gnat_ugn.texi: Added edition conditionalization logic.
11945
11946 2004-08-06  Andreas Schwab  <schwab@suse.de>
11947
11948         * utils.c (gnat_define_builtin): Remove second parameter of
11949         make_decl_rtl.
11950         (begin_subprog_body): Likewise.
11951
11952 2004-07-26  Arnaud Charlet  <charlet@act-europe.fr>
11953
11954         * sem_util.adb (Requires_Transient_Scope): Temporarily disable
11955         optimization, not supported by the tree-ssa back-end.
11956
11957 2004-07-26  Olivier Hainque  <hainque@act-europe.fr>
11958
11959         * s-mastop-irix.adb: Update comments.
11960
11961         * a-except.adb (Exception_Information): Raise Constraint_Error if
11962         exception Id is Null_Id.
11963         This is required behavior, which is more reliably and clearly checked
11964         at the top level interface level.
11965
11966 2004-07-26  Javier Miranda  <miranda@gnat.com>
11967
11968         * exp_aggr.adb (Build_Array_Aggr_Code): Do not build the initialization
11969         call if a component has no default_expression and the box is used.
11970
11971         * sem_aggr.adb (Resolve_Array_Aggregate): If a component has no
11972         default_expression and you use box, it behaves as if you had declared a
11973         stand-alone object.
11974         (Resolve_Record_Aggregate): If a component has no default_expression and
11975         you use box, it behaves as if you had declared a stand-alone object.
11976
11977         * sem_ch10.adb (Install_Siblings): Do not make visible the private
11978         entities of private-with siblings.
11979
11980 2004-07-26  Ed Schonberg  <schonberg@gnat.com>
11981
11982         * sem_ch3.adb (Build_Underlying_Full_View): If this is the full view
11983         for a component of an itype, set the parent pointer for analysis,
11984         there is no list in which to insert it.
11985
11986         * sem_res.adb (Resolve): Call Rewrite_Renamed_Operator only for
11987         bona-fide renamings, not for inherited operations.
11988
11989         * exp_ch4.adb (Expand_Allocator_Expression): If the allocator is an
11990         actual for a formal that is an access parameter, create local
11991         finalization list even if the expression is not an aggregate.
11992
11993 2004-07-26  Ed Schonberg  <schonberg@gnat.com>
11994
11995         PR ada/16213
11996         * sem_ch8.adb (Attribute_Renaming, Check_Library_Level_Renaming):
11997         Diagnose properly illegal subprogram renamings that are library units.
11998
11999 2004-07-26  Ed Schonberg  <schonberg@gnat.com>
12000
12001         PR ada/15588
12002         * sem_util.adb (Is_OK_Variable_For_Out_Formal): If actual is a type
12003         conversion rewritten as an unchecked conversion, check that original
12004         expression is a variable.
12005
12006         * exp_ch4.adb (Expand_N_Type_Conversion): If rewriting as an
12007         unchecked_conversion, create new node rather than rewriting in place,
12008         to preserve original construct.
12009
12010 2004-07-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12011
12012         * gigi.h (gnat_expand_body): Deleted.
12013
12014         * Make-lang.in: (trans.o): Depends on function.h.
12015
12016         * misc.c: (gnat_expand_body): Moved to here.
12017
12018         * trans.c (gnat_expand_body_1): Deleted.
12019         (gnat_expand_body): Moved from here.
12020         (gnat_to_gnu): N_Implicit_Label_Declaration forces being in elab proc.
12021         (add_stmt): Check for marked visited with global_bindings_p.
12022         (gnat_gimplify_expr, case COMPONENT_REF): New case.
12023         (gnat_gimplify_expr, case NULL_EXPR): Set TREE_NO_WARNING for temp.
12024
12025         * utils2.c (build_binary_op, case MODIFY_EXPR): Put LHS in a
12026         VIEW_CONVERT_EXPR if not operation type.
12027
12028         * utils.c (update_pointer_to): Set DECL_ORIGINAL_FIELD for
12029         fat pointer.
12030
12031         * decl.c, cuintp.c, gigi.h, misc.c, trans.c, utils.c, utils2.c: Minor
12032         changes: reformatting of negation operators, removing unneeded
12033         inequality comparison with zero, converting equality comparisons with
12034         zero to negations, changing int/0/1 to bool/false/true, replace calls
12035         to gigi_abort with abort, and various other similar changes.
12036
12037 2004-07-26  Vincent Celier  <celier@gnat.com>
12038
12039         * gnatcmd.adb (GNATCmd): Add processing for new built-in command
12040         "setup".
12041
12042         * make.adb (Gnatmake): Fail when a library is not present and there is
12043         no object directory.
12044
12045         * mlib-prj.adb (Check_Library): No need to check if the library needs
12046         to be rebuilt if there is no object directory, hence no object files
12047         to build the library.
12048
12049         * opt.ads (Setup_Projects): New Boolean flag.
12050
12051         * prj-nmsc.adb (Locate_Directory): New parameter Project, Kind and
12052         Location.
12053         Create directory when Kind /= "" and in "gnat setup". Report error if
12054         directory cannot be created.
12055         (Ada_Check): Create library interface copy dir if it does not exist
12056         and we are in "gnat setup".
12057         (Find_Sources): No error if in "gnat setup" and no Ada sources were
12058         found.
12059         (Language_Independent_Check): Create object directory, exec directory
12060         and/or library directory if they do not exist and we are in
12061         "gnat setup".
12062
12063         * vms_conv.ads: (Command_Type): New command Setup.
12064
12065         * vms_conv.adb (Initialize): Add Setup component of Cammand_List.
12066
12067         * vms_data.ads: Add qualifiers/switches for new built-in command
12068         "setup".
12069
12070 2004-07-25  Richard Henderson  <rth@redhat.com>
12071
12072         * utils.c (create_subprog_decl): Set DECL_ARTIFICIAL and
12073         DECL_IGNORED_P on RESULT_DECL.
12074
12075 2004-07-20  Olivier Hainque  <hainque@act-europe.fr>
12076
12077         * a-elchha.adb (Last_Chance_Handler): Remove the bogus buffer dynamic
12078         allocation and potentially overflowing update with
12079         Tailored_Exception_Information. Use the sec-stack free procedural
12080         interface to output Exception_Information instead.
12081
12082         * a-except.adb (To_Stderr): New subprogram for character, and string
12083         version moved from a-exextr to be visible from other separate units.
12084         (Tailored_Exception_Information): Remove the procedural version,
12085         previously used by the default Last_Chance_Handler and not any more.
12086         Adjust various comments.
12087
12088         * a-exexda.adb: Generalize the exception information procedural
12089         interface, to minimize the use of secondary stack and the need for
12090         local buffers when the info is to be output to stderr:
12091         (Address_Image): Removed.
12092         (Append_Info_Character): New subprogram, checking for overflows and
12093         outputing to stderr if buffer to fill is of length 0.
12094         (Append_Info_String): Output to stderr if buffer to fill is of length 0.
12095         (Append_Info_Address, Append_Info_Exception_Name,
12096         Append_Info_Exception_Message, Append_Info_Basic_Exception_Information,
12097         Append_Info_Basic_Exception_Traceback,
12098         Append_Info_Exception_Information): New subprograms.
12099         (Append_Info_Nat, Append_Info_NL): Use Append_Info_Character.
12100         (Basic_Exception_Info_Maxlength, Basic_Exception_Tback_Maxlength,
12101         Exception_Info_Maxlength, Exception_Name_Length,
12102         Exception_Message_Length): New subprograms.
12103         (Exception_Information): Use Append_Info_Exception_Information.
12104         (Tailored_Exception_Information): Use
12105         Append_Info_Basic_Exception_Information.
12106         Export services for the default Last_Chance_Handler.
12107
12108         * a-exextr.adb (To_Stderr): Remove. Now in a-except to be usable by
12109         other separate units.
12110
12111 2004-07-20  Vincent Celier  <celier@gnat.com>
12112
12113         * clean.adb, mlib-utl.adb, osint.adb, makegpr.adb: Minor reformatting.
12114
12115 2004-07-20  Ed Schonberg  <schonberg@gnat.com>
12116
12117         * freeze.adb (Freeze_Entity): If entity is a discriminated record type,
12118         emit itype references for the designated types of component types that
12119         are declared outside of the full record declaration, and that may
12120         denote a partial view of that record type.
12121
12122 2004-07-20  Ed Schonberg  <schonberg@gnat.com>
12123
12124         PR ada/15607
12125         * sem_ch3.adb (Build_Discriminated_Subtype): Do not attach a subtype
12126         which is the designated type in an access component declaration, to the
12127         list of incomplete dependents of the parent type, to avoid elaboration
12128         issues with out-of-scope subtypes.
12129         (Complete_Private_Subtype): Recompute Has_Unknown_Discriminants from the
12130         full view of the parent.
12131
12132 2004-07-20  Ed Schonberg  <schonberg@gnat.com>
12133
12134         PR ada/15610
12135         * sem_ch8.adb (Find_Expanded_Name): If name is overloaded, reject
12136         entities that are hidden, such as references to generic actuals
12137         outside an instance.
12138
12139 2004-07-20  Javier Miranda  <miranda@gnat.com>
12140
12141         * sem_ch4.adb (Try_Object_Operation): New subprogram that gives
12142         support to the new notation.
12143         (Analyze_Selected_Component): Add call to Try_Object_Operation.
12144
12145 2004-07-20  Jose Ruiz  <ruiz@act-europe.fr>
12146
12147         * s-taprob.adb: Adding the elaboration code required for initializing
12148         the tasking soft links that are common to the full and the restricted
12149         run times.
12150
12151         * s-tarest.adb (Init_RTS): Tasking soft links that are shared with the
12152         restricted run time has been moved to the package
12153         System.Soft_Links.Tasking.
12154
12155         * s-tasini.adb (Init_RTS): Tasking soft links that are shared with the
12156         restricted run time has been moved to the package
12157         System.Soft_Links.Tasking.
12158
12159         * Makefile.rtl: Add entry for s-solita.o in run-time library list.
12160
12161         * s-solita.ads, s-solita.adb: New files.
12162
12163 2004-07-20  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12164
12165         * trans.c (Identifier_to_gnu, Pragma_to_gnu, Attribute_to_gnu,
12166         Case_Statement_to_gnu): Split off from gnat_to_gnu.
12167         (Loop_Statement_to_gnu, Subprogram_Body_to_gnu, call_to_gnu,
12168         Handled_Sequence_Of_Statements_to_gnu, Exception_Handler_to_gnu_sjlj,
12169         Exception_Handler_to_gnu_zcx): Likewise.
12170
12171 2004-07-17  Joseph S. Myers  <jsm@polyomino.org.uk>
12172
12173         * gigi.h (builtin_function): Declare.
12174
12175 2004-07-15  Robert Dewar  <dewar@gnat.com>
12176
12177         * makegpr.adb, s-secsta.ads, sem_ch3.adb, sem_case.adb: Minor
12178         reformatting
12179
12180         * gnat_ugn.texi: Add instantiation of direct_io or sequential_io with
12181         access values as an example of a warning.
12182
12183         * gnat_rm.texi: Document new attribute Has_Access_Values
12184
12185         * gnat-style.texi: Document that box comments belong on nested
12186         subprograms
12187
12188         * sem_util.ads (Has_Access_Values): Improved documentation
12189
12190         * s-finimp.ads, s-finimp.adb: Fix spelling error in comment
12191
12192         * sem_prag.adb (Check_Duplicated_Export_Name): New procedure
12193         (Process_Interface_Name): Call to this new procedure
12194         (Set_Extended_Import_Export_External_Name): Call to this new procedure
12195
12196         * s-mastop-x86.adb, 9drpc.adb: Fix spelling error in comment
12197
12198         * a-direio.ads, a-sequio.ads: Warn if Element_Type has access values
12199
12200         * einfo.ads: Minor comment typo fixed
12201
12202 2004-07-15  Jose Ruiz  <ruiz@act-europe.fr>
12203
12204         * snames.adb: Add _atcb.
12205
12206         * snames.ads: Add Name_uATCB.
12207
12208         * s-tarest.adb (Create_Restricted_Task): ATCBs are always preallocated
12209         (in the expanded code) when using the restricted run time.
12210
12211         * s-tarest.ads (Create_Restricted_Task): Created_Task transformed into
12212         a in parameter in order to allow ATCBs to be preallocated (in the
12213         expanded code).
12214
12215         * s-taskin.adb (Initialize_ATCB): T converted into a in parameter in
12216         order to allow ATCBs to be preallocated. In case of error, the ATCB is
12217         deallocated in System.Tasking.Stages.
12218
12219         * s-taskin.ads (Initialize_ATCB): T converted into a in parameter in
12220         order to allow ATCBs to be preallocated.
12221
12222         * s-tassta.adb (Create_Task): In case of error the ATCB is deallocated
12223         here. It was previously done in Initialize_ATCB.
12224
12225         * rtsfind.ads: Make the Ada_Task_Control_Block visible.
12226
12227         * exp_ch9.adb: Preallocate the Ada_Task_Control_Block when using the
12228         Restricted run time.
12229
12230         * exp_ch3.adb: When using the Restricted run time, pass the
12231         preallocated Ada_Task_Control_Block when creating a task.
12232
12233 2004-07-15  Ed Schonberg  <schonberg@gnat.com>
12234
12235         * sem_util.adb (Normalize_Actuals): If there are no actuals on a
12236         function call that is itself an actual in an enclosing call, diagnose
12237         problem here rather than assuming that resolution will catch it.
12238
12239         * sem_ch7.adb (Analyze_Package_Specification): If the specification is
12240         the local copy of a generic unit for a formal package, and the generic
12241         is a child unit, install private part of ancestors before compiling
12242         private part of spec.
12243
12244         * sem_cat.adb (Validate_Categorization_Dependency): Simplify code to
12245         use scope entities rather than tree structures, to handle properly
12246         parent units that are instances rewritten as bodies for inlining
12247         purposes.
12248
12249         * sem_ch10.adb (Get_Parent_Entity, Implicit_With_On_Parent,
12250         Remove_Parents): Handle properly a parent unit that is an
12251         instantiation, when the unit has been rewritten as a body for inlining
12252         purposes.
12253
12254         * par.adb (Goto_List): Global variable to collect goto statements in a
12255         given unit, for use in detecting natural loops.
12256
12257         * par-ch5.adb (P_Goto_Statement): Add goto to global Goto_List, for
12258         use in detecting natural loops.
12259
12260         * par-labl.adb (Find_Natural_Loops): Recognize loops create by
12261         backwards goto's, and rewrite as a infinite loop, to improve locality
12262         of temporaries.
12263
12264         * exp_util.adb (Force_Evaluation): Recognize a left-hand side
12265         subcomponent that includes an indexed reference, to prevent the
12266         generation of copies that would miscompile the desired assignment
12267         statement.
12268         (Build_Task_Image_Decls): Add a numeric suffix to
12269         generated name for string variable, to avoid spurious conflicts with
12270         the name of the type of a single protected object.
12271
12272         * exp_ch4.adb (Expand_Array_Equality): If indices are distinct, use a
12273         loop with an explicit exit statement, to avoid generating an
12274         out-of-range value with 'Succ leading to spurious constraint_errors
12275         when compiling with -gnatVo.
12276
12277 2004-07-15  Thomas Quinot  <quinot@act-europe.fr>
12278
12279         * sem_ch4.adb (Analyze_Slice): Always call Analyze on the prefix: it
12280         might not be analyzed yet, even if its Etype is already set (case of an
12281         unchecked conversion built using Unchecked_Convert_To, for example).
12282         If the prefix has already been analyzed, this will be a nop anyway.
12283
12284         * exp_ch5.adb (Make_Tag_Ctrl_Assignment): For an assignment of a
12285         controller type, or an assignment of a record type with controlled
12286         components, copy only user data, and leave the finalization chain
12287         pointers untouched.
12288
12289 2004-07-15  Vincent Celier  <celier@gnat.com>
12290
12291         * make.adb (Collect_Arguments): Improve error message when attempting
12292         to compile a source not part of any project, when -x is not used.
12293
12294         * prj.ads: (Defined_Variable_Kind): New subtype
12295
12296         * prj-attr.adb (Register_New_Package): Two new procedures to register
12297         a package with or without its attributes.
12298         (Register_New_Attribute): Mew procedure to register a new attribute in a
12299         package.
12300         New attribute oriented subprograms: Attribute_Node_Id_Of,
12301         Attribute_Kind_Of, Set_Attribute_Kind_Of, Attribute_Name_Of,
12302         Variable_Kind_Of, Set_Variable_Kind_Of, Optional_Index_Of,
12303         Next_Attribute.
12304         New package oriented subprograms: Package_Node_Id_Of,
12305         Add_Unknown_Package, First_Attribute_Of, Add_Attribute.
12306
12307         * prj-attr.ads (Attribute_Node_Id): Now a private, self initialized
12308         type.
12309         (Package_Node_Id): Now a private, self initialized type
12310         (Register_New_Package): New procedure to register a package with its
12311         attributes.
12312         New attribute oriented subprograms: Attribute_Node_Id_Of,
12313         Attribute_Kind_Of, Set_Attribute_Kind_Of, Attribute_Name_Of,
12314         Variable_Kind_Of, Set_Variable_Kind_Of, Optional_Index_Of,
12315         Next_Attribute.
12316         New package oriented subprograms: Package_Node_Id_Of,
12317         Add_Unknown_Package, First_Attribute_Of, Add_Attribute.
12318
12319         * prj-dect.adb (Parse_Attribute_Declaration,
12320         Parse_Package_Declaration): Adapt to new spec of Prj.Attr.
12321
12322         * prj-makr.adb (Make): Parse existing project file before creating
12323         other files. Fail if there was an error during parsing.
12324
12325         * prj-proc.adb (Add_Attributes, Process_Declarative_Items): Adapt to
12326         new spec of Prj.Attr.
12327
12328         * prj-strt.adb (Attribute_Reference, Parse_Variable_Reference): Adapt
12329         to new spec of Prj.Attr.
12330
12331 2004-07-15  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12332
12333         * utils2.c: Fix typo in comment.
12334
12335 2004-07-14  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12336
12337         * trans.c (add_decl_expr): Clear TREE_READONLY if clear DECL_INITIAL.
12338         * utils.c (unchecked_convert): Don't do two VIEW_CONVERT_EXPRs.
12339
12340 2004-07-14  Andreas Schwab  <schwab@suse.de>
12341
12342         * trans.c (gnat_init_stmt_group): Remove duplicate definition.
12343
12344 2004-07-13  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12345
12346         * decl.c: (gnat_to_gnu_entity, object case): Convert initializer to
12347         object type.
12348         (gnat_to_gnu_entity, case E_Record_Subtype): Properly set
12349         TYPE_STUB_DECL.
12350
12351         * misc.c (gnat_types_compatible_p): New function.
12352         (LANG_HOOKS_TYPES_COMPATIBLE_P): New hook, to use it.
12353         (LANG_HOOKS_TYPE_MAX_SIZE, gnat_type_max_size): New.
12354
12355         * trans.c (gigi): Move processing of main N_Compilation_Unit here.
12356         (gnat_to_gnu, case N_Compilation_Unit): Just handle nested case here.
12357         (add_stmt): Force walking of sizes and DECL_INITIAL for DECL_EXPR.
12358         (mark_visited): Don't mark dummy type.
12359         (tree_transform <N_Procedure_Call_Statement>): Unless this is an In
12360         parameter, we must remove any LJM building from GNU_NAME.
12361         (gnat_to_gnu, case N_String_Literal): Fill in indices in CONSTRUCTOR.
12362         (pos_to_constructor): Use int_const_binop.
12363         (gnat_to_gnu, case N_Identifier): Don't reference DECL_INITIAL of
12364         PARM_DECL.
12365
12366         * utils.c (gnat_init_decl_processing): Don't make two "void" decls.
12367         (gnat_pushlevel): Set TREE_USE on BLOCK node.
12368         (gnat_install_builtins): Add __builtin_memset.
12369
12370 2004-07-13  Olivier Hainque  <hainque@act-europe.fr>
12371
12372         * decl.c (gnat_to_gnu_entity <E_Variable>): If we are making a pointer
12373         for a renaming, stabilize the initialization expression if we are at a
12374         local level.  At the local level, uses of the renaming may be performed
12375         by a direct dereference of the initializing expression, and we don't
12376         want possible variables there to be evaluated for every use.
12377
12378         * trans.c (gnat_stabilize_reference, gnat_stabilize_reference_1):
12379         Propagate TREE_SIDE_EFFECTS and TREE_THIS_VOLATILE to avoid loosing
12380         them on the way.  Account for the fact that we may introduce side
12381         effects in the process.
12382
12383 2004-07-13  Richard Henderson  <rth@redhat.com>
12384
12385         * misc.c (default_pass_by_ref): Use pass_by_reference.
12386
12387 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
12388
12389         * misc.c (LANG_HOOKS_CLEAR_BINDING_STACK, LANG_HOOKS_PUSHLEVEL,
12390         LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
12391
12392 2004-07-08  Richard Henderson  <rth@redhat.com>
12393
12394         * trans.c (gnat_to_gnu <N_Handled_Sequence_Of_Statements>): Update
12395         commentary.
12396
12397 2004-07-06  Vincent Celier  <celier@gnat.com>
12398
12399         * vms_conv.ads: Minor reformatting.
12400         Alphabetical order for enumerated values of type Command_Type, to have
12401         the command in alphabetical order for the usage.
12402
12403         * vms_conv.adb (Process_Argument): Set Keep_Temporary_Files to True for
12404         the special qualifier /KEEP_TEMPORARY_FILES (minimum 6 characters).
12405
12406         * gnat_ugn.texi: Document new switch -dn for the GNAT driver.
12407
12408         * makegpr.adb (Global_Archive_Exists): New global Boolean variable
12409         (Add_Archive_Path): Only add the global archive if there is one.
12410         (Build_Global_Archive): Set Global_Archive_Exists depending if there is
12411         or not any object file to put in the global archive, and don't build
12412         a global archive if there is none.
12413         (X_Switches): New table
12414         (Compile_Link_With_Gnatmake): Pass to gnatmake the -X switches stored
12415         in the X_Switches table, if any.
12416         (Initialize): Make sure the X_Switches table is empty
12417         (Scan_Arg): Record -X switches in table X_Switches
12418
12419         * opt.ads (Keep_Temporary_Files): New Boolean flag, defaulted to False.
12420
12421         * make.adb: Minor comment fix
12422
12423         * gnatname.adb (Gnatname): When not on VMS, and gnatname has been
12424         invoked with directory information, add the directory in front of the
12425         path.
12426
12427         * gnatchop.adb (Gnatchop): When not on VMS, and gnatchop has been
12428         invoked with directory information, add the directory in front of the
12429         path.
12430
12431         * gnatcmd.adb (Delete_Temp_Config_Files): Only delete temporary files
12432         when Keep_Temporary_Files is False.
12433         (GNATCmd): When not on VMS, and the GNAT driver has been invoked with
12434         directory information, add the directory in front of the path.
12435         When not on VMS, handle new switch -dn before the command to set
12436         Keep_Temporary_Files to True.
12437         (Non_VMS_Usage): Use lower case for the non VMS usage: this is valid
12438         everywhere.
12439
12440         * gnatlink.adb (Gnatlink): When not on VMS, and gnatlink has been
12441         invoked with directory information, add the directory in front of the
12442         path.
12443
12444 2004-07-06  Thomas Quinot  <quinot@act-europe.fr>
12445
12446         * snames.ads, snames.adb (Name_Stub): New name for the distributed
12447         systems annex.
12448
12449         * rtsfind.ads: New RTE TC_Object, for DSA/PolyORB.
12450         New RTEs RAS_Proxy_Type and RAS_Proxy_Type_Access, for DSA.
12451
12452         * g-socket.adb (To_Timeval): Fix incorrect conversion of
12453         Selector_Duration to Timeval for the case of 0.0.
12454
12455         * exp_util.ads (Evolve_Or_Else): Fix overenthusiastic copy/paste of
12456         documentation from Evolve_And_Then.
12457
12458 2004-07-06  Jose Ruiz  <ruiz@act-europe.fr>
12459
12460         * s-taprop-tru64.adb, s-taprop-os2.adb,
12461         s-taprop-mingw.adb, s-taprop-posix.adb: Update comment.
12462
12463 2004-07-06  Robert Dewar  <dewar@gnat.com>
12464
12465         * s-osinte-hpux.ads, s-osinte-freebsd.ads,
12466         s-osinte-lynxos.ads, s-taprop-lynxos.adb, s-osinte-tru64.ads,
12467         s-osinte-aix.ads, s-osinte-irix.ads, s-taprop-irix.adb,
12468         s-interr-sigaction.adb, s-taprop-irix-athread.adb,
12469         s-osinte-hpux-dce.adb, s-taprop-hpux-dce.adb,
12470         s-taprop-linux.adb, s-taprop-dummy.adb, s-taprop-solaris.adb,
12471         s-interr-vms.adb, s-osinte-vms.ads, s-taprop-vms.adb,
12472         s-osinte-vxworks.ads, s-osprim-vxworks.adb, a-numaux-x86.adb,
12473         a-except.adb, a-exexpr.adb, a-intsig.adb, a-tags.adb,
12474         a-tags.ads, bindgen.ads, checks.adb, checks.adb,
12475         csets.ads, einfo.ads, einfo.ads, elists.adb, exp_ch4.adb,
12476         exp_ch7.adb, exp_dist.adb, exp_util.adb, freeze.adb,
12477         g-dynhta.adb, gnatmem.adb, g-regexp.adb, inline.adb,
12478         i-os2thr.ads, osint.adb, prj.adb, scng.adb, sem_cat.adb,
12479         sem_ch10.adb, sem_ch12.adb, sem_ch4.adb, sem_ch7.adb,
12480         sem_ch8.adb, sem_disp.adb, sem_prag.adb, sem_res.adb,
12481         sem_type.adb, sem_type.ads, sem_warn.adb, s-ficobl.ads,
12482         s-finimp.adb, s-htable.adb, sinfo.ads, sinput-l.ads,
12483         s-interr.adb, s-interr.ads, sprint.adb, s-tarest.adb,
12484         s-tasini.ads, s-taskin.ads, s-taskin.ads, uname.adb,
12485         vms_data.ads: Minor reformatting,
12486         Fix bad box comment format.
12487
12488         * gnat_rm.texi: Fix minor grammatical error
12489
12490         * sem_attr.adb, exp_attr.adb: New attribute Has_Access_Values
12491
12492         * sem_util.ads, sem_util.adb (Requires_Transient_Scope): Allow many
12493         more cases of discriminated records to be recognized as not needing a
12494         secondary stack.
12495         (Has_Access_Values): New function.
12496
12497         * snames.h, snames.adb, snames.ads: New attribute Has_Access_Values
12498
12499         * cstand.adb, layout.ads, layout.adb, sem_ch13.ads: Change name
12500         Set_Prim_Alignment to Set_Elem_Alignment (more accurate correspondence
12501         with LRM terminology).
12502         Change terminology in comments primitive type => elementary type.
12503
12504 2004-07-06  Ed Schonberg  <schonberg@gnat.com>
12505
12506         PR ada/15602
12507         * sem_ch7.adb (Unit_Requires_Body): For a generic package, the formal
12508         parameters do not impose any requirements on the presence of a body.
12509
12510 2004-07-06  Ed Schonberg  <schonberg@gnat.com>
12511
12512         PR ada/15593
12513         * sem_ch12.adb (Analyze_Package_Instantiation): If the generic is not a
12514         compilation unit and is in an open scope at the point of instantiation,
12515         assume that a body may be present later.
12516
12517 2004-07-06  Ed Schonberg  <schonberg@gnat.com>
12518
12519         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case 'Size):
12520         Improve error message when specified size is not supported.
12521
12522         * sem_ch6.adb (Maybe_Primitive_Operation): A library-level subprogram
12523         is never a primitive operation.
12524
12525 2004-07-05  Andreas Schwab  <schwab@suse.de>
12526
12527         * ada-tree.h (TYPE_LEFT_JUSTIFIED_MODULAR_P): Use
12528         RECORD_OR_UNION_CHECK.
12529         (TYPE_CONTAINS_TEMPLATE_P): Likewise.
12530
12531 2004-07-04  Kelley Cook  <kcook@gcc.gnu.org>
12532
12533         * Make-lang.in (doc/gnat_ugn_unw.texi): Eliminate explicit
12534         dependency on xgnatugn, instead build it via a submake.
12535         (ADA_INFOFILES): Add doc/gnat_ugn_unw.texi.
12536
12537 2004-07-04  Richard Henderson  <rth@redhat.com>
12538
12539         * utils2.c (gnat_mark_addressable): Don't put_var_into_stack.
12540
12541 2004-07-01  Richard Henderson  <rth@redhat.com>
12542
12543         * trans.c (gnat_stabilize_reference): Don't handle RTL_EXPR.
12544         * utils.c (max_size): Likewise.
12545
12546 2004-06-28  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12547
12548         * decl.c: Remove calls to add_decl_expr, pushdecl, rest_of_compilation,
12549         and rest_of_type_compilation; add arg to create_*_decl.
12550         (annotate_decl_with_node): Deleted.
12551         (gnat_to_gnu_entity, case E_Array_Type): Set location of fields.
12552         * gigi.h (get_decls, block_has_vars, pushdecl): Deleted.
12553         (get_current_block_context, gnat_pushdecl): New declarations.
12554         (gnat_init_stmt_group): Likewise.
12555         (create_var_decl, create_type_decl, create_subprog_decl): Add new arg.
12556         * misc.c (LANG_HOOKS_CLEAR_BINDING_STACK): Deleted.
12557         (LANG_HOOKS_GETDECLS, LANG_HOOKS_PUSHDECL): Deleted.
12558         (gnat_init): Call gnat_init_stmt_group.
12559         * trans.c (global_stmt_group, gnu_elab_proc_decl): New variables.
12560         (gnu_pending_elaboration_list): Deleted.
12561         (mark_visited, mark_unvisited, gnat_init_stmt_group): New functions.
12562         (gigi): Rearrange initialization calls and move some to last above.
12563         (gnat_to_gnu): If statement and not in procedure, go into elab proc.
12564         Delete calls to add_decl_expr; add arg to create_*_decl.
12565         (gnat_to_gnu, case N_Loop): Recalculate side effects on COND_EXPR.
12566         (gnat_to_gnu, case N_Subprogram_Body): Move some code to
12567         begin_subprog_body and call it.
12568         Don't push and pop ggc context.
12569         (gnat_to_gnu, case N_Compilation_Unit): Rework to support elab proc.
12570         (add_stmt): Remove handling of DECL_EXPR from here.
12571         If not in function, mark visited.
12572         (add_decl_expr): Put global at top level.
12573         Check for cases of DECL_INITIAL we have to handle here.
12574         (process_type): Add extra arg to create_type_decl.
12575         (build_unit_elab): Rework to just gimplify.
12576         * utils.c (pending_elaborations, elist_stack, getdecls): Deleted.
12577         (block_has_vars, mark_visited, add_pending_elaborations): Likewise.
12578         (get_pending_elaborations, pending_elaborations_p): Likewise.
12579         (push_pending_elaborations, pop_pending_elaborations): Likewise.
12580         (get_elaboration_location, insert_elaboration_list): Likewise.
12581         (gnat_binding_level): Renamed from ada_binding_level.
12582         (init_gnat_to_gnu): Don't clear pending_elaborations.
12583         (global_bindings_p): Treat as global if no current_binding_level.
12584         (set_current_block_context): New function.
12585         (gnat_pushdecl): Renamed from pushdecl; major rework.
12586         All callers changed.
12587         (create_type_decl, create_var_decl, create_subprog_decl): Add new arg.
12588         (finish_record_type): Call call pushdecl for stub decl.
12589         (function_nesting_depth): Deleted.
12590         (begin_subprog_body): Delete obsolete code.
12591         * utils2.c (build_call_alloc_dealloc): Add new arg to create_var_decl.
12592
12593 2004-06-28  Robert Dewar  <dewar@gnat.com>
12594
12595         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
12596         mlib-tgt-irix.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
12597         mlib-tgt-linux.adb, mlib-tgt-solaris.adb, mlib-tgt-solaris.adb,
12598         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
12599         a-strmap.adb, a-strmap.ads, clean.adb: Minor reformatting
12600
12601         * exp_util.adb (Is_Possibly_Unaligned_Slice): Completely rewritten, to
12602         deal with problem of inefficient slices on machines with strict
12603         alignment, when the slice is a component of a composite.
12604
12605         * checks.adb (Apply_Array_Size_Check): Do not special case 64-bit
12606         machines, we need the check there as well.
12607
12608 2004-06-28  Ed Schonberg  <schonberg@gnat.com>
12609
12610         * exp_ch5.adb (Expand_Assign_Array): Use correct condition to
12611         determine safe copying direction for overlapping slice assignments
12612         when component is controlled.
12613
12614         * sem_ch12.adb (Instantiate_Formal_Package): Implicit operations of a
12615         formal derived type in the actual for a formal package are visible in
12616         the enclosing instance.
12617
12618 2004-06-28  Ed Schonberg  <schonberg@gnat.com>
12619
12620         PR ada/15600
12621         * sem_util.adb (Trace_Components): Diagnose properly an illegal
12622         circularity involving a private type whose completion includes a
12623         self-referential component.
12624         (Enter_Name): Use Is_Inherited_Operation to distinguish a source
12625         renaming or an instantiation from an implicit derived operation.
12626
12627 2004-06-28  Pascal Obry  <obry@gnat.com>
12628
12629         * mlib-tgt-mingw.adb: (Library_Exists_For): Remove "lib" prefix from
12630         DLL.
12631         (Library_File_Name_For): Idem.
12632
12633 2004-06-28  Matthew Gingell  <gingell@gnat.com>
12634
12635         * g-traceb.ads: Add explanatory note on the format of addresses
12636         expected by addr2line.
12637
12638 2004-06-28  Jerome Guitton  <guitton@act-europe.fr>
12639
12640         * Makefile.in: Force debugging information on s-tasdeb.adb,
12641         a-except.adb and s-assert.adb needed by the debugger.
12642
12643 2004-06-28  Vincent Celier  <celier@gnat.com>
12644
12645         * make.adb (Collect_Arguments_And_Compile): Change Flag1 to
12646         Need_To_Build_Lib.
12647         (Gnatmake): Ditto.
12648
12649         * mlib-prj.adb (Check_Library): Replace Flag1 with Need_To_Build_Lib
12650
12651         * prj.adb: Minor reformatting
12652         (Project_Empty): Change Flag1 to Need_To_Build_Lib. Remove Flag2.
12653
12654         * prj.ads: Comment updates
12655         Minor reformatting
12656         (Project_Data): Change Flag1 to Need_To_Build_Lib.
12657         Remove Flag2: not used.
12658
12659         * prj-dect.adb (Parse_Declarative_Items): Accept "null" as a
12660         declaration.
12661
12662         * gnat_ugn.texi: Put a "null;" declaration in one project file example
12663
12664         * gnat_rm.texi: Document Empty declarations "null;".
12665
12666         * makegpr.adb (Compile_Link_With_Gnatmake): Put the global archives in
12667         front of the linker options.
12668         (Link_Foreign): Put the global archives and the libraries in front of
12669         the linker options.
12670
12671 2004-06-28  Javier Miranda  <miranda@gnat.com>
12672
12673         * rtsfind.adb: (Get_Unit_Name): Fix typo in comment
12674         (RTU_Loaded): Code cleanup
12675         (Set_RTU_Loaded): New procedure to register as *loaded* explicitly
12676         withed predefined units.
12677
12678         * rtsfind.ads (Set_RTU_Loaded): New procedure to register as *loaded*
12679         explicitly withed predefined units.
12680         Fix typo in comment
12681
12682         * sem_ch10.adb (Analyze_Compilation_Unit): Register as *loaded*
12683         explicitly withed predefined units.
12684
12685 2004-06-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12686
12687         * ada-tree.def (DECL_STMT): Deleted.
12688         * ada-tree.h (IS_ADA_STMT): Now test against STMT_STMT.
12689         (DECL_STMT_VAR): Deleted.
12690         * decl.c: add_decl_stmt now add_decl_expr.
12691         * gigi.h: Likewise.
12692         * trans.c: Likewise.
12693         (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Deleted.
12694         (gnat_to_gnu, case N_Subprogram_Body): Set cfun->function_end_locus.
12695         (add_stmt): Only handle padded type here.
12696         (add_stmt_with_node): Allow gnat_node to not be present.
12697         (gnat_gimplify_stmt, case USE_STMT): Set *STMT_P to null.
12698         (gnat_gimplify_stmt, case DECL_STMT): Deleted.
12699         (gnat_stabilize_reference_1): If COMPONENT_REF of fat pointer,
12700         make a SAVE_EXPR for the entire fat pointer.
12701         * utils.c (pushdecl): Walk a DECL_EXPR in global case.
12702         (create_index_type): Make a DECL_EXPR.
12703         (end_subprog_body): Don't call allocate_struct_function here but
12704         do clear cfun.
12705
12706 2004-06-25  Pascal Obry  <obry@gnat.com>
12707
12708         * makegpr.adb (Build_Library): Remove parameter Lib_Address and
12709         Relocatable from Build_Dynamic_Library call.
12710
12711         * gnat_ugn.texi: Change documentation about Library_Kind. Dynamic and
12712         Relocatable are now synonym.
12713
12714         * Makefile.in: Use s-parame-mingw.adb on MingW platform.
12715
12716         * mlib-prj.adb (Build_Library): Remove DLL_Address constant definition.
12717         Remove parameter Lib_Address and Relocatable from Build_Dynamic_Library
12718         call.
12719
12720         * mlib-tgt.ads, mlib-tgt.adb (Build_Dynamic_Library): Remove parameter
12721         Lib_Address and Relocatable.
12722         (Default_DLL_Address): Removed.
12723
12724         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
12725         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
12726         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-vxworks.adb:
12727         (Build_Dynamic_Library): Remove parameter Lib_Address and Relocatable.
12728         (Default_DLL_Address): Removed.
12729
12730         * mlib-tgt-mingw.adb: Ditto.
12731         (Build_Dynamic_Library): Do not add "lib" prefix to the DLL name.
12732
12733         * s-taprop-mingw.adb (Create_Task): Use Adjust_Storage_Size to compute
12734         the initial thread stack size.
12735
12736         * a-strmap.ads: Move package L to private part as it is not used in
12737         the spec. Found while reading code.
12738
12739 2004-06-25  Olivier Hainque  <hainque@act-europe.fr>
12740
12741         * tracebak.c: Introduce support for a GCC infrastructure based
12742         implementation of __gnat_backtrace.
12743
12744         * raise.c: Don't rely on a C mapping of the GNAT_GCC_Exception record
12745         any more. Use accessors instead. This eases maintenance and relaxes
12746         some alignment constraints.
12747         (_GNAT_Exception structure): Remove the Ada specific fields
12748         (EID_For, Adjust_N_Cleanups_For): New accessors, exported by
12749         a-exexpr.adb.
12750         (is_handled_by, __gnat_eh_personality): Replace component references to
12751         exception structure by use of the new accessors.
12752
12753         * init.c (__gnat_initialize): Adjust comments to match the just
12754         reverted meaning of the -static link-time option.
12755
12756         * adaint.c (convert_addresses): Arrange not to define a stub for
12757         mips-irix any more, as we now want to rely on a real version from a
12758         recent libaddr2line.
12759
12760         * a-exexpr.adb: Provide new accessors to a GNAT_GCC occurrence, so that
12761         the personality routine can use them and not have to rely on a C
12762         counterpart of the record anymore. This simplifies maintenance and
12763         relaxes the constraint of having Standard'Maximum_Alignment match
12764         BIGGEST_ALIGNMENT.
12765         Update comments, and add a section on the common header alignment issue.
12766
12767 2004-06-25  Geert Bosch  <bosch@gnat.com>
12768
12769         * a-ngelfu.adb (Tanh): Use full 20 digit precision for constants in
12770         polynomial approximation. Fixes inconsistency with Cody/Waite algorithm.
12771
12772 2004-06-25  Robert Dewar  <dewar@gnat.com>
12773
12774         * gnat_rm.texi: Fix section on component clauses to indicate that the
12775         restriction on byte boundary placement still applies for bit packed
12776         arrays.
12777         Add comment on stack usage from Initialize_Scalars
12778
12779         * gnat_ugn.texi: Add documentation for -gnatyLnnn
12780
12781         * stylesw.ads, stylesw.adb: Implement new -gnatyLnnn option for
12782         limiting nesting level.
12783
12784         * usage.adb: Add line for -gnatyLnnn switch
12785
12786         * g-debpoo.ads, xtreeprs.adb, sinput.ads, sem_ch13.ads,
12787         sem_ch13.adb, exp_aggr.adb: Minor reformatting
12788
12789         * sem_prag.adb (Process_Atomic_Shared_Volatile): Set Is_Atomic on base
12790         type as well as on the subtype. This corrects a problem in freeze in
12791         setting alignments of atomic types.
12792
12793         * sem_eval.ads: Minor comment typo fixed
12794
12795         * par-util.adb (Push_Scope_Stack): Check for violation of max nesting
12796         level.  Minor reformatting.
12797
12798         * fname.adb (Is_Predefined_File_Name): Require a letter after the
12799         minus sign. This means that file names like a--b.adb will not be
12800         considered predefined.
12801
12802         * freeze.adb: Propagate new flag Must_Be_On_Byte_Boundary to containing
12803         record Test new flag and give diagnostic for bad component clause.
12804         (Freeze_Entity): Set alignment of array from component alignment in
12805         cases where this is safe to do.
12806
12807         * exp_pakd.adb: Set new flag Must_Be_On_Byte_Boundary for large packed
12808         arrays.
12809
12810         * cstand.adb: (Create_Standard): Set alignment of String to 1
12811
12812         * einfo.ads, einfo.adb: Introduce new flag Must_Be_On_Byte_Boundary
12813
12814         * exp_ch4.adb (Expand_Array_Equality): Improve efficiency of generated
12815         code in the common constrained array cases.
12816
12817         * a-storio.adb: Change implementation to avoid possible alignment
12818         problems on machines requiring strict alignment (data should be moved
12819         as type Buffer, not type Elmt).
12820
12821         * checks.adb (Apply_Array_Size_Check): Improve these checks by
12822         killing the overflow checks which we really do not need (64-bits is
12823         enough).
12824
12825 2004-06-25  Vincent Celier  <celier@gnat.com>
12826
12827         * makegpr.adb (Is_Included_In_Global_Archive): New Boolean function
12828         (Add_Archives.Recursive_Add_Archives): Call Add_Archive_Path
12829         inconditionally for the main project.
12830         (Recursive_Add_Archives.Add_Archive_Path): New procedure
12831         (Link_Executables.Check_Time_Stamps): New procedure
12832         (Link_Executables.Link_Foreign): New procedure
12833         Changes made to reduce nesting level of this package
12834         (Check): New procedure
12835         (Add_Switches): When not in quiet output, check that a switch is not
12836         the concatenation of several valid switches. If it is, issue a warning.
12837         (Build_Global_Archive): If the global archive is rebuilt, linking need
12838         to be done.
12839         (Compile_Sources): Rebuilding a library archive does not imply
12840         rebuilding the global archive.
12841         (Build_Global_Archive): New procedure
12842         (Build_Library): New name for Build_Archive, now only for library
12843         project
12844         (Check_Archive_Builder): New procedure
12845         (Create_Global_Archive_Dependency_File): New procedure
12846         (Gprmake): Call Build_Global_Archive before linking
12847         * makegpr.adb: Use Other_Sources_Present instead of Sources_Present
12848         throughout.
12849         (Scan_Arg): Display the Copyright notice when -v is used
12850
12851         * gnat_ugn.texi: Document new switch -files= (VMS qualifier /FILES=)
12852         for gnatls.
12853
12854         * vms_data.ads: Add qualifier /MAX_NESTING=nnn (-gnatyLnnn) for GNAT
12855         COMPILE.
12856         Add new GNAT LIST qualifier /FILES=
12857         Added qualifier /DIRECTORY= to GNAT METRIC
12858         Added qualifier /FILES= to GNAT METRIC
12859         Added qualifier /FILES to GNAT PRETTY
12860
12861         * switch.adb (Is_Front_End_Switch): Refine the test for --RTS or -fRTS,
12862         to take into account both versions of the switch.
12863
12864         * switch-c.adb (Scan_Front_End_Switches): New switch -gnatez. Should
12865         always be the last switch to the gcc driver. Disable switch storing so
12866         that switches automatically added by the gcc driver are not put in the
12867         ALI file.
12868
12869         * prj.adb (Project_Empty): Take into account changes in components of
12870         Project_Data.
12871
12872         * prj.ads (Languages_Processed): New enumaration value All_Languages.
12873
12874         * prj.ads (Project_Data): Remove component Lib_Elaboration: never
12875         used. Split Boolean component Ada_Sources_Present in two Boolean
12876         components Ada_Sources_Present and Other_Sources_Present.
12877         Minor reformatting
12878
12879         * prj-env.adb (For_All_Source_Dirs.Add): Use Ada_Sources_Present
12880         instead of Sources_Present.
12881         (Set_Ada_Paths.Add.Recursive_Add): Ditto
12882
12883         * prj-nmsc.adb: Minor reformatting
12884         (Check_Ada_Naming_Scheme): New name of procedure Check_Naming_Scheme
12885         (Check_Ada_Naming_Scheme_Validity): New name of previous procedure
12886         Check_Ada_Naming_Scheme.
12887         Change Sources_Present to Ada_Sources_Present or Other_Sources_Present
12888         throughout.
12889
12890         * prj-part.adb (Post_Parse_Context_Clause): New Boolean parameter
12891         In_Limited.
12892         Make sure that all cycles where there is at least one "limited with"
12893         are detected.
12894         (Parse_Single_Project): New Boolean parameter In_Limited
12895
12896         * prj-proc.adb (Recursive_Check): When Process_Languages is
12897         All_Languages, call first Prj.Nmsc.Ada_Check, then
12898         Prj.Nmsc.Other_Languages_Check.
12899
12900         * prj-proc.adb (Process): Use Ada_Sources_Present or
12901         Other_Sources_Present (instead of Sources_Present) depending on
12902         Process_Languages.
12903
12904         * lang-specs.h: Keep -g and -m switches in the same order, and as the
12905         last switches.
12906
12907         * lib.adb (Switch_Storing_Enabled): New global Boolean flag
12908         (Disable_Switch_Storing): New procedure. Set Switch_Storing_Enabled to
12909         False.
12910         (Store_Compilation_Switch): Do nothing if Switch_Storing_Enabled is
12911         False.
12912
12913         * lib.ads (Disable_Switch_Storing): New procedure.
12914
12915         * make.adb: Modifications to reduce nesting level of this package.
12916         (Check_Standard_Library): New procedure
12917         (Gnatmake.Check_Mains): New procedure
12918         (Gnatmake.Create_Binder_Mapping_File): New procedure
12919         (Compile_Sources.Compile): Add switch -gnatez as the last option
12920         (Display): Never display -gnatez
12921
12922         * Makefile.generic:
12923         When using $(MAIN_OBJECT), always use $(OBJ_DIR)/$(MAIN_OBJECT)
12924
12925         * gnatcmd.adb (Check_Project): New function
12926         (Process_Link): New procedure to reduce nesting depth
12927         (Check_Files): New procedure to reduce the nesting depth.
12928         For GNAT METRIC, include the inherited sources in extending projects.
12929         (GNATCmd): When GNAT LS is invoked with a project file and no files,
12930         add the list of files from the sources of the project file. If this list
12931         is too long, put it in a temp text files and use switch -files=
12932         (Delete_Temp_Config_Files): Delete the temp text file that contains
12933         a list of source for gnatpp or gnatmetric, if one has been created.
12934         (GNATCmd): For GNAT METRIC and GNAT PRETTY, if the number of sources
12935         in the project file is too large, create a temporary text file that
12936         list them and pass it to the tool with "-files=<temp text file>".
12937         (GNATCmd): For GNAT METRIC add "-d=<abject dir>" as the first switch
12938
12939         * gnatlink.adb (Gnatlink): Do not compile with --RTS= when the
12940         generated file is in not in Ada.
12941
12942         * gnatls.adb: Remove all parameters And_Save that are no longer used.
12943         (Scan_Ls_Arg): Add processing for -files=
12944         (Usage): Add line for -files=
12945
12946         * g-os_lib.adb (On_Windows): New global constant Boolean flag
12947         (Normalize_Pathname): When on Windows and the path starts with a
12948         directory separator, make sure that the resulting path will start with
12949         a drive letter.
12950
12951         * clean.adb (Clean_Archive): New procedure
12952         (Clean_Project): When there is non-Ada code, delete the global archive,
12953         the archive dependency files, the object files and their dependency
12954         files, if they exist.
12955         (Gnatclean): Call Prj.Pars.Parse for All_Languages, not for Ada only.
12956
12957 2004-06-25  Thomas Quinot  <quinot@act-europe.fr>
12958
12959         * sinfo.ads: Fix typo in comment.
12960
12961         * sem_dist.adb (Process_Remote_AST_Attribute): Simplify code that uses
12962         the TSS for remote access-to-subprogram types, since these TSS are
12963         always present once the type has been analyzed.
12964         (RAS_E_Dereference): Same.
12965
12966         * sem_attr.adb (Analyze_Attribute): When analysis of an attribute
12967         reference raises Bad_Attribute, mark the reference as analyzed so the
12968         node (and any children resulting from rewrites that could have occurred
12969         during the analysis that ultimately failed) is not analyzed again.
12970
12971         * exp_ch7.ads (Find_Final_List): Fix misaligned comment.
12972
12973         * exp_dist.adb: Minor comment fix.
12974
12975         * exp_ch4.adb (Expand_N_Allocator): For an allocator whose expected
12976         type is an anonymous access type, no unchecked deallocation of the
12977         allocated object can occur. If the object is controlled, attach it with
12978         a count of 1. This allows attachment to the Global_Final_List, if
12979         no other relevant list is available.
12980         (Get_Allocator_Final_List): For an anonymous access type that is
12981         the type of a discriminant or record component, the corresponding
12982         finalisation list is the one of the scope of the type.
12983
12984 2004-06-25  Ed Schonberg  <schonberg@gnat.com>
12985
12986         * sem_ch3.adb (Replace_Type): When computing the signature of an
12987         inherited subprogram, use the first subtype if the derived type
12988         declaration has no constraint.
12989
12990         * exp_ch6.adb (Add_Call_By_Copy_Code): Check that formal is an array
12991         before applying previous optimization. Minor code cleanup.
12992
12993         * exp_util.adb (Is_Possibly_Unaligned_Slice): If the component is
12994         placed at the beginning of an unpacked record without explicit
12995         alignment, a slice of it will be aligned and does not need a copy when
12996         used as an actual.
12997
12998 2004-06-25  Ed Schonberg  <schonberg@gnat.com>
12999
13000         PR ada/15591
13001         PR ada/15592
13002         * sem_ch8.adb (Attribute_Renaming): Reject renaming if the attribute
13003         reference is written with expressions mimicking parameters.
13004
13005 2004-06-25  Hristian Kirtchev  <kirtchev@gnat.com>
13006
13007         PR ada/15589
13008         * sem_ch3.adb (Build_Derived_Record_Type): Add additional check to
13009         STEP 2a. The constraints of a full type declaration of a derived record
13010         type are checked for conformance with those declared in the
13011         corresponding private extension declaration. The message
13012         "not conformant with previous declaration" is emitted if an error is
13013         detected.
13014
13015 2004-06-25  Vasiliy Fofanov  <fofanov@act-europe.fr>
13016
13017         * g-traceb.ads: Document the need for -E binder switch in the spec.
13018
13019         * g-trasym.ads: Document the need for -E binder switch in the spec.
13020
13021 2004-06-25  Jose Ruiz  <ruiz@act-europe.fr>
13022
13023         * sem_prag.adb: Add handling of pragma Detect_Blocking.
13024
13025         * snames.h, snames.ads, snames.adb: Add entry for pragma
13026         Detect_Blocking.
13027
13028         * s-rident.ads: Change reference to pragma Detect_Blocking.
13029
13030         * targparm.ads, targparm.adb: Allow pragma Detect_Blocking in
13031         system.ads.
13032
13033         * opt.ads (Detect_Blocking): New Boolean variable (defaulted to False)
13034         to indicate whether pragma Detect_Blocking is active.
13035
13036         * par-prag.adb: Add entry for pragma Detect_Blocking.
13037
13038         * rtsfind.adb (RTU_Loaded): Fix the temporary kludge to get past bug
13039         of not handling WITH.
13040         Note that this replaces the previous update which was incorrect.
13041
13042 2004-06-25  Javier Miranda  <miranda@gnat.com>
13043
13044         * sem_ch10.adb (Re_Install_Use_Clauses): Force the installation of the
13045         use-clauses to have a clean environment.
13046
13047         * sem_ch8.adb (Install_Use_Clauses): Addition of a new formal to force
13048         the installation of the use-clauses to stablish a clean environment in
13049         case of compilation of a separate unit; otherwise the call to
13050         use_one_package is protected by the barrier Applicable_Use.
13051
13052         * sem_ch8.ads (Install_Use_Clauses): Addition of a new formal to force
13053         the installation of the use-clauses to stablish a clean environment in
13054         case of compilation of a separate unit.
13055         (End_Use_Clauses): Minor comment cleanup.
13056
13057 2004-06-25  Sergey Rybin  <rybin@act-europe.fr>
13058
13059         * gnat_ugn.texi: Add description of the gnatpp 'files' switch
13060
13061 2004-06-23  Richard Henderson  <rth@redhat.com>
13062
13063         * trans.c (gnat_gimplify_stmt): Update gimplify_type_sizes call.
13064
13065 2004-06-20  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13066
13067         * decl.c (elaborate_expression, elaborate_expression_1): Arguments
13068         now bool instead of int.
13069         (gnat_to_gnu_entity, elaborate_expression_1): New arg to COMPONENT_REF.
13070         * trans.c (gnu_switch_label_stack): New function.
13071         (gnat_to_gnu, N_Object_Renaming_Declaration): Result is what the
13072         elaboration of renamed entity returns.
13073         (gnat_to_gnu, case N_Case_Statement): Add branches to end label.
13074         (add_decl_stmt): Don't add TYPE_DECL for UNCONSTRAINED_ARRAY_TYPE.
13075         (gnat_gimplify_stmt): Use alloc_stmt_list, not build_empty_stmt.
13076         (gnat_gimplify_stmt, case DECL_STMT): gimplify DECL_SIZE and
13077         DECL_SIZE_UNIT and simplify variable-sized case.
13078         (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Deleted.
13079         Callers changes to call gimplify_type_sizes and gimplify_one_sizepos.
13080         (gnat_stabilize_reference): Add arg to COMPONENT_REF.
13081         (build_unit_elab): Disable for now.
13082         * utils.c (mark_visited): New function.
13083         (pushdecl): Walk tree to call it for global decl.
13084         (update_pointer_to): Update all variants of pointer and ref types.
13085         Add arg to COMPONENT_REF.
13086         (convert): Likewise.
13087         Move check for converting between variants lower down.
13088         * utils2.c (build_simple_component_ref): Add arg to COMPONENT_REF.
13089         (build_allocator): Don't force type of MODIFY_EXPR.
13090         (gnat_mark_addressable, case VAR_DECL): Unconditionally call
13091         put_var_into_stack.
13092
13093 2004-06-14  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13094
13095         * ada-tree.def (LOOP_STMT, EXIT_STMT): Update documentation.
13096         * ada-tree.h (EXIT_STMT_LABEL): Renamed from EXIT_STMT_LOOP.
13097         * decl.c (gnat_to_gnu_entity): Also set force_global for imported
13098         subprograms.
13099         * trans.c (gnu_loop_label_stack): Renamed from gnu_loop_stmt_stack;
13100         all callers changed.
13101         (gnat_to_gnu, case N_Loop_Statement, case N_Exit_Statement): Change
13102         the way that EXIT_STMT finds the loop label.
13103         (gnat_gimplify_stmt, case LOOP_STMT, EXIT_STMT): Likewise.
13104         (gnat_gimplify_stmt, case DECL_STMT): Handle variable-sized decls here.
13105         (add_stmt): Use annotate_with_locus insted of setting directly.
13106         (pos_to_construct): Set TREE_PURPOSE of each entry to index.
13107         (gnat_stabilize_reference, case ARRAY_RANGE_REF): Merge with ARRAY_REF.
13108         * utils.c (gnat_install_builtins): Install __builtin_memcmp.
13109         (build_vms_descriptor): Add extra args to ARRAY_REF.
13110         (convert): Use VIEW_CONVERT_EXPR between aggregate types.
13111         * utils2.c (gnat_truthvalue_conversion, case INTEGER_CST, REAL_CST):
13112         New cases.
13113         (build_binary_op): Don't make explicit CONVERT_EXPR.
13114         Add extra rgs to ARRAY_REF.
13115
13116 2004-06-14  Pascal Obry  <obry@gnat.com>
13117
13118         * gnat_ugn.texi: Document relocatable vs. dynamic Library_Kind on
13119         Windows.  Fix minor typo.
13120
13121         * mlib-tgt-mingw.adb: New implementation using the GCC -shared option
13122         which is now supported on Windows. With this implementation using the
13123         Library Project feature is no different on Windows than on UNIX.
13124
13125 2004-06-14  Vincent Celier  <celier@gnat.com>
13126
13127         * makegpr.adb (Compile_Sources): Nothing to do when there are no
13128         non-Ada sources.
13129
13130         * mlib-tgt-vxworks.adb (Library_Exists_For): Remove incorrect comment
13131
13132         * prj-part.adb (Parse_Single_Project): When a duplicate project name is
13133         found, show the project name and the path of the previously parsed
13134         project file.
13135
13136 2004-06-14  Ed Schonberg  <schonberg@gnat.com>
13137
13138         * exp_ch6.adb (Add_Call_By_Copy_Code): For an out-parameter that is an
13139         array, avoid copying the actual before the call.
13140
13141 2004-06-14  Thomas Quinot  <quinot@act-europe.fr>
13142
13143         * g-debpoo.adb: Remove alignment assumptions from GNAT.Debug_Pools.
13144         Instead, allocate memory on worst-case alignment assumptions, and then
13145         return an aligned address within the allocated zone.
13146
13147 2004-06-14  Robert Dewar  <dewar@gnat.com>
13148
13149         * bindgen.adb (Gen_Adainit_Ada): Do not generate external references to
13150         elab entities in predefined units in No_Run_Time_Mode.
13151         (Gen_Adainit_C): Same fix
13152         (Gen_Elab_Calls_Ada): Do not generate calls to elaborate predefined
13153         units in No_Run_Time_Mode
13154         (Gen_Elab_Calls_C): Same fix
13155
13156         * symbols-vms-alpha.adb: Minor reformatting
13157
13158         * g-debpoo.ads: Minor reformatting
13159
13160         * lib.adb (In_Same_Extended_Unit): Version working on node id's
13161
13162         * lib.ads (In_Same_Extended_Unit): Version working on node id's
13163
13164         * lib-xref.adb: Minor cleanup, use new version of In_Same_Extended_Unit
13165         working on nodes.
13166
13167         * make.adb: Minor reformatting
13168
13169         * par-ch12.adb: Minor reformatting
13170
13171         * par-prag.adb: Add dummy entry for pragma Profile_Warnings
13172
13173         * prj-strt.adb: Minor reformatting
13174
13175         * restrict.ads, restrict.adb: Redo handling of profile restrictions to
13176         be more general.
13177
13178         * sem_attr.adb: Minor reformatting
13179
13180         * sem_ch7.adb: Minor reformatting
13181
13182         * sem_elab.adb (Check_A_Call): Deal with problem of calling init proc
13183         for type in the same unit as the object declaration.
13184
13185         * sem_prag.adb (Check_Arg_Is_External_Name): New procedure, allows
13186         static string expressions and not just string literals.
13187         Minor reformatting
13188         (Set_Warning): Reset restriction warning flag for restriction pragma
13189         Implement pragma Profile_Warnings
13190         Implement pragma Profile (Restricted)
13191         Give obolescent messages for old restrictions and pragmas
13192
13193         * snames.h, snames.ads, snames.adb: Add new entry for pragma
13194         Profile_Warnings.
13195
13196         * s-rident.ads: Add declarations for restrictions required by profile
13197         Restricted and profile Ravenscar.
13198
13199         * targparm.ads, targparm.adb: Allow pragma Profile in system.ads
13200
13201         * gnat_ugn.texi: Correct some missing entries in the list of GNAT
13202         configuration pragmas.
13203
13204 2004-06-11  Vincent Celier  <celier@gnat.com>
13205
13206         * mlib-tgt-vms-alpha.adb (Build_Dynamic_Library): Issue switch -R to
13207         gnatsym, when symbol policy is Restricted.
13208
13209         * mlib-tgt-vms-ia64.adb (Build_Dynamic_Library): Issue switch -R to
13210         gnatsym, when symbol policy is Restricted.
13211
13212         * symbols-vms-alpha.adb (Initialize): When symbol policy is Restricted,
13213         read the symbol file.
13214         (Finalize): Fail in symbol policy Restricted if a symbol in the original
13215         symbol file is not in the object files. Do not create a new symbol file
13216         when symbol policy is Restricted.
13217
13218         * gnatbind.adb (Gnatbind): Initialize Snames, because Snames is used
13219         in Scng.
13220
13221         * gnatsym.adb (Parse_Vmd_Line): Process new switch -R for symbol policy
13222         Restricted.
13223         (Usage): Line for new switch -R
13224
13225         * make.adb (Initialize): When the platform is not VMS, add the
13226         directory where gnatmake is invoked in the front of the path, if
13227         gnatmake is invoked with directory information.  Change the Scan_Args
13228         while loop to a for loop.
13229         (Recursive_Compute_Depth): Remove parameter Visited. Improve efficiency:
13230         if Depth is equal or greater than the proposed depth, there is nothing
13231         to do.
13232         (Initialize): Call Recursive_Compute_Depth with initial Depth equal to 1
13233         instead of 0.
13234
13235         * prj.ads: Add new symbol policy Restricted.
13236
13237         * prj-dect.adb (Parse_Case_Construction): Call End_Case_Construction
13238         with the new parameters Check_All_Labels and Case_Location.
13239
13240         * prj-nmsc.adb (Ada_Check): Process new symbol policy Restricted
13241         (Library_Symbol_File needs to be defined).
13242
13243         * prj-strt.adb (End_Case_Construction): New parameters Check_All_Labels
13244         and Case_Location If Check_All_Labels is True, check that all values of
13245         the string type are used, and output warning(s) if they are not.
13246
13247         * prj-strt.ads (End_Case_Construction): New parameters Check_All_Labels
13248         and Case_Location.
13249
13250         * gnat_ugn.texi: Reorder subclauses in menus "Switches for gcc"
13251
13252         * gnat_ugn.texi: Update documentation about the library directory in
13253         Library Projects.
13254
13255         * makegpr.adb (Display_Command): In verbose mode, also display the
13256         value of the CPATH env var, when the compiler is gcc.
13257         (Initialize): Change the Scan_Args while loop to a for loop
13258         (Compile_Individual_Sources): Change directory to object directory
13259         before compilations.
13260
13261         * symbols.ads: New symbol policy Restricted.
13262
13263 2004-06-11  Olivier Hainque  <hainque@act-europe.fr>
13264
13265         * a-except.adb (Raise_After_Setup family): Remove. The responsibility
13266         is now taken care of internally in the Exception_Propagation package
13267         and does not require clients assistance any more.
13268
13269         * a-exexpr.adb (Is_Setup_And_Not_Propagated,
13270         Set_Setup_And_Not_Propagated, and Clear_Setup_And_Not_Propagated): New
13271         functions. Helpers to maintain a predicate required in the handling of
13272         occurrence transfer between tasks.
13273         This is now handled internally and does not require clients assistance
13274         for the setup/propagate separation anymore.
13275         (Setup_Exception, Propagate_Exception): Simplify the Private_Data
13276         allocation strategy, handle the Setup_And_Not_Propagated predicate and
13277         document.
13278
13279         * s-taenca.adb (Check_Exception): Use raise_with_msg instead of
13280         raise_after_setup, now that everything is handled internally within the
13281         setup/propagation engine.
13282
13283 2004-06-11  Hristian Kirtchev  <kirtchev@gnat.com>
13284
13285         * exp_ch6.adb (Expand_Inlined_Call): Add function Formal_Is_Used_Once.
13286         Add additional conditions for the case of an actual being a simple
13287         name or literal. Improve inlining by preventing the generation
13288         of temporaries with a short lifetime (one use).
13289
13290 2004-06-11  Hristian Kirtchev  <kirtchev@gnat.com>
13291
13292         PR ada/15587
13293
13294         * einfo.ads: Minor comment updates for Has_Completion and
13295         E_Constant list of flags.
13296
13297         * sem_ch3.adb (Analyze_Object_Declaration): Full constant declarations
13298         and constant redeclarations now set the Has_Completion flag of their
13299         defining identifiers.
13300
13301         * sem_ch7.adb (Analyze_Package_Spec): Add procedure
13302         Inspect_Deferred_Constant_Completion.
13303         Used to detect private deferred constants that have not been completed
13304         either by a constant redeclaration or pragma Import. Emits error message
13305         "constant declaration requires initialization expression".
13306
13307         * sem_prag.adb (Process_Import_Or_Interface): An Import pragma now
13308         completes a deferred constant.
13309
13310 2004-06-11  Geert Bosch  <bosch@gnat.com>
13311
13312         * eval_fat.adb (Decompose_Int): Fix rounding of negative numbers.
13313
13314         * s-fatgen.adb (Gradual_Scaling): Correct off-by-one error in
13315         calculating exponent for scaling denormal numbers.
13316         (Leading_Part): Properly raise Constraint_Error for zero or negative
13317         Adjustment.
13318         (Remainder): Properly raise Constraint_Error for zero divisor.
13319
13320 2004-06-11  Thomas Quinot  <quinot@act-europe.fr>
13321
13322         * sem_util.adb: Minor reformatting.
13323
13324         * exp_ch2.adb (Expand_Entry_Parameter): Generate an explicit
13325         dereference when accessing the entry parameter record.
13326         (Check_Array_Type): Always check for possible implicit dereference.
13327         (maybe_implicit_dereference): Rename to check_no_implicit_derefence.
13328         Abort if a pointer is still present (denoting that an implicit
13329         dereference was left in the tree by the front-end).
13330
13331         * sem_attr.adb (Expand_Entry_Parameter): Generate an explicit
13332         dereference when accessing the entry parameter record.
13333         (Check_Array_Type): Always check for possible implicit dereference.
13334         (maybe_implicit_dereference): Rename to check_no_implicit_derefence.
13335         Abort if a pointer is still present (denoting that an implicit
13336         dereference was left in the tree by the front-end).
13337
13338 2004-06-11  Emmanuel Briot  <briot@act-europe.fr>
13339
13340         * g-debpoo.adb (Deallocate, Dereference): Add prefix "error:" to error
13341         message, like the compiler itself does. Easier to parse the output.
13342
13343         * g-debpoo.ads: (Allocate, Deallocate, Dereference): Add comments.
13344
13345         * gnat_ugn.texi (gnatxref, gnatfind): Clarify that source names should
13346         be base names, and not includes directories.
13347
13348 2004-06-11  Arnaud Charlet  <charlet@act-europe.fr>
13349
13350         * Makefile.generic ($(EXEC)): Depend on $(OBJECTS), not $(OBJ_FILES),
13351         so that dependencies are properly taken into account by make.
13352
13353 2004-06-11  Arnaud Charlet  <charlet@act-europe.fr>
13354
13355         PR ada/15622
13356         * s-unstyp.ads, s-maccod.ads, sem_ch8.adb, s-auxdec.ads,
13357         exp_intr.adb, s-auxdec-vms_64.ads: Fix typo: instrinsic -> intrinsic
13358
13359 2004-06-11  Jerome Guitton  <guitton@act-europe.fr>
13360
13361         * Makefile.in (install-gnatlib): install target-specific run-time files.
13362
13363         * Make-lang.in: Remove obsolete targets.
13364
13365 2004-06-11  Ed Schonberg  <schonberg@gnat.com>
13366
13367         * par-ch12.adb (P_Generic): Add scope before analyzing subprogram
13368         specification, to catch misuses of program unit names.
13369
13370         * sem_res.adb (Resolve_Type_Conversion): Do not emit warnings on
13371         superfluous conversions in an instance.
13372
13373 2004-06-11  Ed Schonberg  <schonberg@gnat.com>
13374
13375         PR ada/15403
13376
13377         * sem_ch12.adb (Save_References): If operator node has been folded to
13378         enumeration literal, associated_node must be discarded.
13379
13380 2004-06-11  Jose Ruiz  <ruiz@act-europe.fr>
13381
13382         * s-stchop-vxworks.adb: Add required pragma Convention to
13383         Task_Descriptor because it is updated by a C function.
13384
13385 2004-06-08  Arnaud Charlet  <charlet@act-europe.fr>
13386
13387         PR ada/15568
13388
13389         * Makefile.in: Remove target specific SO_OPT on IRIX
13390
13391 2004-06-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13392
13393         * ada-tree.def (TRANSFORM_EXPR, ALLOCATE_EXPR, USE_EXPR): Deleted.
13394         (GNAT_NOP_EXPR, GNAT_LOOP_ID, EXPR_STMT, NULL_STMT): Likewise.
13395         (BLOCK_STMT, IF_STMT, GOTO_STMT, LABEL_STMT, RETURN_STMT): Likewise.
13396         (ASM_STMT, BREAK_STMT, REGION_STMT,HANDLER_STMT): Likewise.
13397         (STMT_STMT, USE_STMT): New statement codes.
13398         (LOOP_STMT, EXIT_STMT): Make slight semantic changes.
13399         * ada-tree.h: Reflect above changes.
13400         (struct tree_loop_id): Deleted.
13401         (union lang_tree_node, struct lang_decl, struct lang_type):
13402         Now just contains a tree node; update macros using TYPE_LANG_SPECIFIC
13403         and DECL_LANGUAGE_SPECIFIC to reflect these changes.
13404         (DECL_INIT_BY_ASSIGN_P, TRE_LOOP_NODE_ID, TREE_SLOC): Deleted.
13405         (IS_ADA_STMT): New macro.
13406         * decl.c (annotate_decl_with_node): New function.
13407         (gnat_to_gnu_entity): Use it and Sloc_to_locus instead of set_lineno.
13408         (gnat_to_gnu_entity, case object): Remove call to expand CONVERT_EXPR.
13409         Call add_stmt_with_node to do needed assignments.
13410         Add call to update setjmp buffer directly, not via EXPR_STMT.
13411         (maybe_variable): Argment GNAT_NODE deleted.
13412         * gigi.h (maybe_variable): Likewise.
13413         (make_transform, add_stmt_with_node, set_block_for_group): New.
13414         (gnat_gimplify_expr, gnat_expand_body, Sloc_to_locus): Likewise.
13415         (set_block_jmpbuf_decl, get_block_jmpbuf_decl): Likewise.
13416         (discard_file_names, gnu_block_stack, gnat_to_code): Deleted.
13417         (set_lineno, set_lineno_from_sloc): Likewise.
13418         (record_code_position, insert_code_for): Likewise.
13419         (gnat_poplevel): Now returns void.
13420         (end_subprog_body): Now takes argument.
13421         * misc.c (cgraph.h, tree-inline.h): New includes.
13422         (gnat_tree_size, LANG_HOOKS_TREE_SIZE): Deleted.
13423         (gnat_post_options, LANG_HOOKS_POST_OPTIONS): New.
13424         (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Likewise.
13425         (LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_GIMPLIFY_EXPR): Likewise.
13426         (gnat_parse_file): Don't set immediate_size_expand.
13427         Call cgraph functions.
13428         (gnat_expand_expr): Remove most cases.
13429         (record_code_position, insert_code_for): Remove from here.
13430         * trans.c (toplev.h, tree-gimple.h): Now included.
13431         (discard_file_names): Deleted.
13432         (gnu_block_stack, gnu_block_stmt_node, gnu_block_stmt_free_list): Del.
13433         (first_nondeleted_insn, make_expr_stmt_from_rtl): Likewise.
13434         (struct stmt_group, current_stmt_group, stmt_group_free_list): New.
13435         (gnu_stack_free_list, record_cost_position, insert_code_for): Likewise.
13436         (add_cleanup, push_stack, gnat_gimplify_stmt, add_cleanup): Likewise.
13437         (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Likewise.
13438         (gnat_expand_body_1, gnat_gimplify_expr, annotate_with_node): Likewise.
13439         (set_block_for_group, add_stmt_list): Likewise.
13440         (start_stmt_group): Renamed from start_block_stmt.
13441         (end_stmt_group): Likewise, from end_block_stmt.
13442         (build_stmt_group): Likewise, from build_block_stmt, also add arg.
13443         (gigi): Don't set discard_file_names or call set_lineno.
13444         Disallow front end ZCX; call gnat_to_gnu, not gnat_to_code.
13445         (tree_transform): Deleted, now renamed to be gnat_to_gnu.
13446         Numerous changes throughout to reflect new names and complete
13447         function-at-a-time implementation.
13448         (gnat_expand_stmt): Delete or comment out all cases.
13449         (process_inlined_subprograms): Use add_stmt.
13450         (process_decls): Use gnat_to_gnu, not gnat_to_code, and don't
13451         call set_lineno; also remove unneeded block handling.
13452         (process_type): Remove unneeded block handling.
13453         (build_unit_elab): Remove calls to deleted functions.
13454         * utils.c (cgraph.h, tree-inline.h, tree-gimple.h): Now include.
13455         (tree-dump.h): Likewise.
13456         (struct ada_binding_level): Add field jmpbuf_decl.
13457         (gnat_define_builtin, gnat_install_builtins): New.
13458         (gnat_gimplify_function, gnat_finalize): Likewise.
13459         (gnat_poplevel): No longer return BLOCK, set it instead.
13460         Remove code dealing with nested functions.
13461         (gnat_init_decl_processing): Also set size_type_node.
13462         Call gnat_install_builtins.
13463         (create_var_decl): Don't set DECL_INIT_BY_ASSIGN.
13464         (create_subprog_decl): Change handling of inline_flag; set TREE_STATIC.
13465         Remove special-case for "main".
13466         (end_subprog_body): Add arg and rework for tree-ssa.
13467         (convert): Don't use GNAT_NOP_EXPR or look for TRANSFORM_EXPR.
13468         Add case for BOOLEAN_TYPE.
13469         * utils2.c (rtl.h): Now include.
13470         (build_call_raise): Test Debug_Flag_NN directly.
13471         (build_call_alloc_dealloc): Don't use local stack allocation for now.
13472         (gnat_mark_addressable, case GNAT_NOP_EXPR): Deleted.
13473         (gnat_mark_addressable, case VAR_DECL): Handle both early & late cases.
13474
13475 2004-06-07  Robert Dewar  <dewar@gnat.com>
13476
13477         * a-direct.ads, einfo.ads: Minor comment updates
13478
13479         * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
13480         s-taprop-irix-athread.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
13481         s-taprop-dummy.adb, s-taprop-os2.adb, s-taprop-solaris.adb,
13482         s-taprop-vms.adb, s-taprop-mingw.adb, s-taprop-vxworks.adb,
13483         s-taprop-posix.adb, s-taprop.ads, exp_dbug.adb: Minor reformatting.
13484
13485         * s-interr-sigaction.adb: Remove unreferenced variable
13486         (Attached_Interrupts).  Minor reformatting.
13487         Avoid use of variable I (replace by J).
13488
13489         * par-ch10.adb: Fix text of one error message
13490
13491         * checks.adb, checks.ads, cstand.adb, vms_data.ads, errout.ads,
13492         exp_aggr.adb, exp_ch3.adb, exp_ch3.ads, exp_ch5.adb, exp_ch6.adb,
13493         exp_ch9.adb, exp_code.adb, gnat1drv.adb, lib-load.adb, lib-writ.adb,
13494         opt.adb, par.adb, opt.ads, par-ch11.adb, par-ch3.adb, par-ch4.adb,
13495         par-ch5.adb, par-ch6.adb, par-ch8.adb, par-ch9.adb, par-prag.adb,
13496         par-util.adb, scng.adb, sem_aggr.adb, sem_attr.adb, sem_cat.adb,
13497         sem_ch10.adb, sem_ch10.adb, sem_ch11.adb, sem_ch12.adb, sem_ch2.adb,
13498         sem_ch3.adb, sem_ch3.ads, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb,
13499         sem_ch7.adb, sem_ch8.adb, sem_ch9.adb, sem_eval.adb, sem_prag.adb,
13500         sem_res.adb, sem_type.adb, sem_util.adb, sinfo.ads, snames.adb,
13501         snames.ads, snames.h, sprint.adb, switch-c.adb: Modifications for Ada
13502         2005 support.
13503
13504 2004-06-07  Doug Rupp  <rupp@gnat.com>
13505
13506         * mlib-tgt-vms.adb: Rename mlib-tgt-vms.adb mlib-tgt-vms-alpha.adb
13507
13508         * s-vaflop-vms.adb: Rename s-vaflop-vms.adb to s-vaflop-vms-alpha.adb
13509
13510         * mlib-tgt-vms-ia64.adb: New file.
13511
13512         * Makefile.in: Rename mlib-tgt-vms.adb to mlib-tgt-vms-alpha.adb
13513         Add mlib-tgt-vms-ia64.adb
13514         Rename s-vaflop-vms.adb to s-vaflop-vms-alpha.adb.
13515         Move to alpha specific ifeq section.
13516         Add VMS specific versions of symbols.adb
13517         Renaming of 5q vms files.
13518
13519         * 5qsystem.ads renamed to system-vms_64.ads.
13520
13521 2004-06-07  Vincent Celier  <celier@gnat.com>
13522
13523         * a-calend.ads: Add a GNAT Note comment after function Time_Of to
13524         explain that when a time of day corresponding to the non existing hour
13525         on the day switching to DST is specified, Split may return a different
13526         value for Seconds.
13527
13528         * gnatcmd.adb: Add processing of GNAT METRIC (for gnatmetric), similar
13529         to GNAT PRETTY.
13530
13531         * g-os_lib.adb (OpenVMS): New Boolean value imported from System.
13532         (Normalize_Pathname): Only resolve VMS logical names when on VMS.
13533
13534         * mlib-prj.adb (Build_Library): New flag Gtrasymobj_Needed, initialize
13535         to False.
13536         If Gtrasymobj_Needed is True, add the full path of g-trasym.obj to
13537         the linking options.
13538         (Build_Library.Check_Libs): On VMS, if there is a dependency on
13539         g-trasym.ads, set Gtrasymobj_Needed to True.
13540
13541         * prj-attr.adb: Add new package Metrics for gnatmetric
13542
13543         * prj-nmsc.adb (Record_Other_Sources): Put source file names in
13544         canonical case to take into account files with upper case characters on
13545         Windows.
13546         (Ada_Check): Load the reference symbol file name in the name buffer to
13547         check it, not the symbol file name.
13548
13549         * snames.ads, snames.adb: Add standard name Metrics (name of project
13550         file package for gnatmetric).
13551
13552         * vms_conv.ads: Add Metric to Comment_Type
13553
13554         * vms_conv.adb (Initialize): Add component dor Metric in Command_List
13555
13556         * vms_data.ads: Add qualifiers for GNAT METRIC
13557
13558         * makegpr.adb (Link_Executables): Take into account the switches
13559         specified in package Linker of the main project.
13560
13561 2004-06-07  Thomas Quinot  <quinot@act-europe.fr>
13562
13563         * bindgen.adb (Set_Unit_Number): Units is an instance of Table, and so
13564         the index of the last element is Units.Last, not Units.Table'Last
13565         (which is usually not a valid index within the actually allocated
13566         storage for the table).
13567
13568         * exp_ch4.adb (Insert_Dereference_Action): Change predicate that
13569         determines whether to generate a call to a checked storage pool
13570         Dereference action.
13571         Generate such a call only for a dereference that either comes from
13572         source, or is the result of rewriting a dereference that comes from
13573         source.
13574
13575 2004-06-07  Romain Berrendonner  <berrendo@act-europe.fr>
13576
13577         * bindgen.adb (Gen_Output_File): Add support for GAP builds.
13578
13579 2004-06-07  Eric Botcazou  <ebotcazou@act-europe.fr>
13580
13581         (gnat_to_gnu_entity) <E_Array_Subtype>: For multi-dimensional arrays at
13582         file level, elaborate the stride for inner dimensions in alignment
13583         units, not bytes.
13584
13585         * exp_ch5.adb: Correct wrong reference to Component_May_Be_Bit_Aligned
13586         in a comment.
13587
13588 2004-06-07  Javier Miranda  <miranda@gnat.com>
13589
13590         * exp_ch6.adb: Correct wrong modification in previous patch
13591
13592 2004-06-07  Vasiliy Fofanov  <fofanov@act-europe.fr>
13593
13594         * g-trasym.ads: Corrected comment to properly reflect level of support
13595         on VMS.
13596
13597 2004-06-07  Hristian Kirtchev  <kirtchev@gnat.com>
13598
13599         * lib-xref.adb (Generate_Reference): Add nested function Is_On_LHS. It
13600         includes case of a variable referenced on the left hand side of an
13601         assignment, therefore remove redundant code. Variables and prefixes of
13602         indexed or selected components are now marked as referenced on left
13603         hand side. Warnings are now properly emitted when variables or prefixes
13604         are assigned but not read.
13605
13606         * sem_warn.adb (Output_Unreferenced_Messages): Add additional checks to
13607         left hand side referenced variables. Private access types do not
13608         produce the warning "variable ... is assigned but never read".
13609         Add also additional checks to left hand side referenced variables.
13610         Aliased, renamed objects and access types do not produce the warning
13611         "variable ... is assigned but never read" since other entities may read
13612         the memory location.
13613
13614 2004-06-07  Jerome Guitton  <guitton@act-europe.fr>
13615
13616         * Makefile.in: In the powerpc/vxworks-specific section, restore
13617         EXTRA_GNATRTL_NONTASKING_OBJS and EXTRA_GNATRTL_TASKING_OBJS (removed
13618         by mistake).
13619
13620 2004-06-07  Ed Schonberg  <schonberg@gnat.com>
13621
13622         * sem_ch4.adb (Remove_Abstract_Operations): Refine the removal of
13623         predefined operators.
13624         Removes spurious type errors from g-trasym-vms.adb.
13625
13626         * sem_res.adb (Rewrite_Renamed_Operator): If intrinsic operator is
13627         distinct from the operator appearing in the source, call appropriate
13628         routine to insert conversions when needed, and complete resolution of
13629         node.
13630         (Resolve_Intrinsic_Operator): Fix cut-and-paste bug on transfer of
13631         interpretations for rewritten right operand.
13632         (Set_Mixed_Mode_Operand): Handle properly a universal real operand when
13633         the other operand is overloaded and the context is a type conversion.
13634
13635 2004-06-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13636
13637         * ada-tree.def (BLOCK_STMT): Now has two operands.
13638         (BREAK_STMT): New.
13639
13640         * ada-tree.h: (BLOCK_STMT_BLOCK): New macro.
13641
13642         * gigi.h: (gnat_poplevel): Now returns a tree.
13643
13644         * trans.c (end_block_stmt): Add arg; all callers changed.
13645         (tree_transform, case N_Case_Statement): Make a BLOCK_STMT for a WHEN.
13646         (start_block_stmt): Clear BLOCK_STMT_BLOCK.
13647         (add_stmt): Set TREE_TYPE.
13648         (gnat_expand_stmt, case BLOCK_STMT): Handle BLOCK_STMT_BLOCK.
13649         (gnat_expand_stmt, case BREAK_STMT): New case.
13650
13651         * utils.c (gnat_poplevel): Return a BLOCK, if we made one.
13652
13653 2004-06-07  Jose Ruiz  <ruiz@act-europe.fr>
13654
13655         * s-stchop.adsm s-stchop.adb, s-stchop-vxworks.adb: Remove the
13656         procedure Set_Stack_Size that is not needed.
13657
13658 2004-06-07  Sergey Rybin  <rybin@act-europe.fr>
13659
13660         * gnat_ugn.texi: Clarify the case when non-standard naming scheme is
13661         used for gnatpp input file and for the files upon which it depends
13662
13663 2004-06-07  Ben Brosgol  <brosgol@gnat.com>
13664
13665         * gnat_ugn.texi: Wordsmithing of "GNAT and Libraries" chapter
13666
13667 2004-06-07  Arnaud Charlet  <charlet@act-europe.fr>
13668
13669         * gnatvsn.ads: Bump version numbers appropriately.
13670         Add new build type.
13671
13672 2004-06-07  Pascal Obry  <obry@gnat.com>
13673
13674         * gnat_ugn.texi: Improve comments about imported names and link names
13675         on Windows. Add a note about the requirement to use -k gnatdll's option
13676         when working with a DLL which has stripped stdcall symbols (no @nn
13677         suffix).
13678
13679 2004-05-27  Vincent Celier  <celier@gnat.com>
13680
13681         * vms_data.ads: Add new GNAT PRETTY qualifiers /NO_BACKUP and
13682         COMMENTS_LAYOUT=UNTOUCHED
13683
13684         * symbols-vms.adb, symbols-vms-alpha.adb: Renamed symbols-vms.adb to
13685         symbols-vms-alpha.adb
13686
13687 2004-05-27  Thomas Quinot  <quinot@act-europe.fr>
13688
13689         * sem.ads: Clarify documentation on checks suppression.
13690
13691         * einfo.ads (Is_Known_Non_Null): Minor comment typo fix and rephrasing.
13692
13693 2004-05-27  Ed Schonberg  <schonberg@gnat.com>
13694
13695         * sem_util.adb (Is_Descendent_Of): Examine properly all ancestors in
13696         the case of multiple derivations.
13697         (Is_Object_Reference): For a selected component, verify that the prefix
13698         is itself an object and not a value.
13699
13700         * sem_ch12.adb (Same_Instantiated_Constant): New name for
13701         Same_Instantiated_Entity.
13702         (Same_Instantiated_Variable): Subsidiary to
13703         Check_Formal_Package_Instance, to recognize actuals for in-out generic
13704         formals that are obtained from a previous formal package.
13705         (Instantiate_Subprogram_Body): Emit proper error when
13706         generating code and the proper body of a stub is missing.
13707
13708         * sem_ch4.adb (Remove_Address_Interpretations): If the operation still
13709         has a universal interpretation, do the disambiguation here.
13710
13711         * exp_ch4.adb (Expand_N_Type_Conversion,
13712         Expand_N_Unchecked_Type_Conversion): Special handling when target type
13713         is Address, to avoid typing anomalies when Address is a visible integer
13714         type.
13715
13716         * exp_ch6.adb (Expand_N_Subprogram_Body): Use Is_Descendent_Of_Address
13717         to determine whether a subprogram should not be marked Pure, even when
13718         declared in a pure package.
13719
13720 2004-05-27  Jose Ruiz  <ruiz@act-europe.fr>
13721
13722         * gnat_ugn.texi: Replace pragma Ravenscar by pragma Profile.
13723
13724         * gnat_rm.texi: Replace Max_Entry_Queue_Depth by Max_Entry_Queue_Length
13725         Document No_Dynamic_Attachment, that supersedes No_Dynamic_Interrupts.
13726         Update the documentation about the Ravenscar profile, following the
13727         definition found in AI-249.
13728
13729         * sem_prag.adb: Use FIFO_Within_Priorities and Ceiling_Locking when
13730         setting the Profile (Ravenscar). This must be done in addition to
13731         setting the required restrictions.
13732
13733         * rtsfind.ads: Add the set of operations defined in package
13734         Ada.Interrupts.
13735
13736         * exp_ch6.adb: Check whether we are violating the No_Dynamic_Attachment
13737         restriction.
13738
13739 2004-05-27  Eric Botcazou  <ebotcazou@act-europe.fr>
13740
13741         lang-specs.h: Always require -c or -S and always redirect to /dev/null
13742         if -gnatc or -gnats is passed.
13743
13744 2004-05-27  Hristian Kirtchev  <kirtchev@gnat.com>
13745
13746         * sem_prag.adb (Sig_Flags): A Pragma_Unchecked_Union does not count as
13747         a significant reference. Warnings are now properly emitted when a
13748         discriminated type is not referenced.
13749
13750         * lib-xref.adb (Generate_Reference): A deferred constant completion,
13751         record representation clause or record type discriminant does not
13752         produce a reference to its corresponding entity. Warnings are now
13753         properly emitted when deferred constants and record types are not
13754         referenced.
13755
13756 2004-05-27  Geert Bosch  <bosch@gnat.com>
13757
13758         * Makefile.in: Use long version of libm routines on ia64 gnu/linux.
13759         Fixes ACATS Annex G tests.
13760
13761 2004-05-27  Robert Dewar  <dewar@gnat.com>
13762
13763         * rtsfind.adb (RTU_Loaded): Temporary kludge to get past bug of not
13764         handling WITH
13765
13766 2004-05-27  Arnaud Charlet  <charlet@act-europe.fr>
13767
13768         * s-interr.adb (Server_Task): Take into account case of early return
13769         from sigwait under e.g. linux.
13770
13771 2004-05-27  Sergey Rybin  <rybin@act-europe.fr>
13772
13773         * gnat_ugn.texi: Add description for the new gnatpp options:
13774          -rnb - replace the original source without creating its backup copy
13775          -c0 - do not format comments
13776
13777 2004-05-24  Geert Bosch  <bosch@gnat.com>
13778
13779         * a-numaux-x86.adb (Reduce): Reimplement using an approximation of Pi
13780         with 192 bits of precision, sufficient to reduce a double-extended
13781         arguments X with a maximum relative error of T'Machine_Epsilon, for X
13782         in -2.0**32 .. 2.0**32.
13783         (Cos, Sin):  Always reduce arguments of 1/4 Pi or larger, to prevent
13784         reduction by the processor, which only uses a 68-bit approximation of
13785         Pi.
13786         (Tan): Always reduce arguments and compute function either using
13787         the processor's fptan instruction, or by dividing sin and cos as needed.
13788
13789 2004-05-24  Doug Rupp  <rupp@gnat.com>
13790
13791         * adaint.c (__gnat_readdir): Cast CRTL function retun value to avoid
13792         gcc error on 32/64 bit VMS.
13793
13794 2004-05-24  Olivier Hainque  <hainque@act-europe.fr>
13795
13796         * init.c (__gnat_error_handler): Handle EEXIST as EACCES for SIGSEGVs,
13797         since this is what we get for stack overflows although not documented
13798         as such.
13799         Document the issues which may require adjustments to our signal
13800         handlers.
13801
13802 2004-05-24  Ed Schonberg  <schonberg@gnat.com>
13803
13804         * inline.adb (Add_Scope_To_Clean): Do not add cleanup actions to the
13805         enclosing dynamic scope if the instantiation is within a generic unit.
13806
13807 2004-05-24  Arnaud Charlet  <charlet@act-europe.fr>
13808
13809         * exp_dbug.ads: Fix typo.
13810
13811         * Makefile.in: s-osinte-linux-ia64.ads was misnamed.
13812         Rename it to its proper name: system-linux-ia64.ads
13813         (stamp-gnatlib1): Remove extra target specific run time files when
13814         setting up the rts directory.
13815
13816 2004-05-24  Javier Miranda  <miranda@gnat.com>
13817
13818         * einfo.ads, einfo.adb (Limited_Views): Removed.
13819         (Limited_View): New attribute that replaces the previous one. It is
13820         now a bona fide package with the limited-view list through the
13821         first_entity and first_private attributes.
13822
13823         * sem_ch10.adb (Install_Private_With_Clauses): Give support to
13824         limited-private-with clause.
13825         (Install_Limited_Withed_Unit): Install the private declarations of a
13826         limited-private-withed package. Update the installation of the shadow
13827         entities according to the new structure (see Build_Limited_Views)
13828         (Build_Limited_Views): Replace the previous implementation of the
13829         limited view by a package entity that references the first shadow
13830         entity plus the first shadow private entity (required for limited-
13831         private-with clause)
13832         (New_Internal_Shadow_Entity): Code cleanup.
13833         (Remove_Limited_With_Clause): Update the implementation to undo the
13834         new work carried out by Build_Limited_Views.
13835         (Build_Chain): Complete documentation.
13836         Replace Ada0Y by Ada 0Y in comments
13837         Minor reformating
13838
13839         * sem_ch3.adb (Array_Type_Declaration): In case of anonymous access
13840         types the level of accessibility depends on the enclosing type
13841         declaration.
13842
13843         * sem_ch8.adb (Find_Expanded_Name): Fix condition to detect shadow
13844         entities. Complete documentation of previous change.
13845
13846 2004-05-24  Robert Dewar  <dewar@gnat.com>
13847
13848         * namet.adb: Minor reformatting
13849         Avoid use of name I (replace by J)
13850         Minor code restructuring
13851
13852         * sem_ch6.adb: Minor reformatting
13853
13854         * lib-writ.adb: Do not set restriction as active if this is a
13855         Restriction_Warning case.
13856
13857         * sem_prag.adb: Reset restriction warning flag if real pragma
13858         restriction encountered.
13859
13860         * s-htable.adb: Minor reformatting
13861         Change rotate count to 3 in Hash (improves hash for small strings)
13862
13863         * 5qsystem.ads: Add comments for type Address (no literals allowed).
13864
13865         * gnat_ugn.texi: Add new section of documentation "Code Generation
13866         Control", which describes the use of -m switches.
13867
13868 2004-05-24  Eric Botcazou  <ebotcazou@act-europe.fr>
13869
13870         trans.c (tree_transform) <N_Identifier>: Do the dereference directly
13871         through the DECL_INITIAL for renamed variables.
13872
13873 2004-05-24  Arnaud Charlet  <charlet@act-europe.fr>
13874
13875         * s-osinte-linux-ia64.ads: Renamed system-linux-ia64.ads
13876
13877 2004-05-19  Joel Brobecker  <brobecker@gnat.com>
13878
13879         * exp_dbug.ads: Correct comments concerning handling of overloading,
13880         since we no longer use $ anymore.
13881
13882 2004-05-19  Sergey Rybin  <rybin@act-europe.fr>
13883
13884         * sem_ch10.adb (Optional_Subunit): When loading a subunit, do not
13885         ignore errors if ASIS_Mode is set. This prevents creating ASIS trees
13886         with illegal subunits.
13887
13888 2004-05-19  Ed Schonberg  <schonberg@gnat.com>
13889
13890         * sem_ch6.adb (Check_Following_Pragma): When compiling a subprogram
13891         body with front-end inlining enabled, check whether an inline pragma
13892         appears immediately after the body and applies to it.
13893
13894         * sem_prag.adb (Cannot_Inline): Emit warning if front-end inlining is
13895         enabled and the pragma appears after the body of the subprogram.
13896
13897 2004-05-17  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13898
13899         Part of function-at-a-time conversion
13900
13901         * misc.c (adjust_decl_rtl): Deleted.
13902         (LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK):
13903         Define.
13904
13905         * gigi.h: (adjust_decl_rtl, kept_level_p, set_block): Deleted.
13906         (add_decl_stmt, add_stmt, block_has_vars): New functions.
13907         (gnat_pushlevel, gnat_poplevel): Renamed from pushlevel and poplevel.
13908
13909         * decl.c (elaborate_expression, maybe_pad_type): Call add_decl_stmt
13910         when making a decl.
13911         (gnat_to_gnu_entity): Likewise.
13912         Use add_stmt to update setjmp buffer.
13913         Set TREE_ADDRESSABLE instead of calling put_var_into_stack and
13914         flush_addressof.
13915         No longer call adjust_decl_rtl.
13916         (DECL_INIT_BY_ASSIGN_P): New macro.
13917         (DECL_STMT_VAR): Likewise.
13918
13919         * trans.c (gigi): Call start_block_stmt to make the outermost
13920         BLOCK_STMT.
13921         (gnat_to_code, gnu_to_gnu, tree_transform, process_decls, process_type):
13922         Call start_block_stmt and end_block_stmt temporarily.
13923         Use gnat_expand_stmt instead of expand_expr_stmt.
13924         (add_decl_stmt): New function.
13925         (tree_transform): Call it.
13926         (add_stmt): Also emit initializing assignment for DECL_STMT if needed.
13927         (end_block_stmt): Set type and NULL_STMT.
13928         (gnat_expand_stmt): Make recursize call instead of calling
13929         expand_expr_stmt.
13930         (gnat_expand_stmt, case DECL_STMT): New case.
13931         (set_lineno_from_sloc): Do nothing if global.
13932         (gnu_block_stmt_node, gnu_block_stmt_free_list): New variables.
13933         (start_block_stmt, add_stmt, end_block_stmt): New functions.
13934         (build_block_stmt): Call them.
13935         (gnat_to_code): Don't expand NULL_STMT.
13936         (build_unit_elab): Rename pushlevel and poplevel to gnat_* and change
13937         args.
13938         (tree_transform): Likewise.
13939         (tree_transform, case N_Null_Statement): Return NULL_STMT.
13940         (gnat_expand_stmt, case NULL_STMT): New case.
13941         (gnat_expand_stmt, case IF_STMT): Allow nested IF_STMT to have no
13942         IF_STMT_TRUE.
13943
13944         * utils2.c (gnat_mark_addressable, case VAR_DECL): Do not set
13945         TREE_ADDRESSABLE.
13946
13947         * utils.c (create_var_decl): Do not call expand_decl or
13948         expand_decl_init.
13949         Set TREE_ADDRESSABLE instead of calling gnat_mark_addressable.
13950         Set DECL_INIT_BY_ASSIGN_P when needed and do not generate MODIFY_EXPR
13951         here.
13952         (struct e_stack): Add chain_next to GTY.
13953         (struct binding_level): Deleted.
13954         (struct ada_binding_level): New struct.
13955         (free_block_chain): New.
13956         (global_binding_level, clear_binding_level): Deleted.
13957         (global_bindings_p): Rework to see if no chain.
13958         (kept_level_p, set_block): Deleted.
13959         (gnat_pushlevel): Renamed from pushlevel and extensive reworked to use
13960         new data structure and work directly on BLOCK node.
13961         (gnat_poplevel): Similarly.
13962         (get_decls): Look at BLOCK_VARS.
13963         (insert_block): Work directly on BLOCK node.
13964         (block_has_var): New function.
13965         (pushdecl): Rework for new binding structures.
13966         (gnat_init_decl_processing): Rename and rework calls to pushlevel and
13967         poplevel.
13968         (build_subprog_body): Likewise.
13969         (end_subprog_body): Likewise; also set up BLOCK in DECL_INITIAL.
13970
13971         * ada-tree.def (DECL_STMT, NULL_STMT): New codes.
13972
13973         * ada-tree.h: (DECL_INIT_BY_ASSIGN_P): New macro.
13974         (DECL_STMT_VAR): Likewise.
13975
13976 2004-05-17  Robert Dewar  <dewar@gnat.com>
13977
13978         * restrict.ads, restrict.adb (Process_Restriction_Synonym): New
13979         procedure
13980
13981         * sem_prag.adb (Analyze_Pragma, case Restrictions): Cleanup handling
13982         of restriction synonyums by using
13983         Restrict.Process_Restriction_Synonyms.
13984
13985         * snames.ads, snames.adb: Add entries for Process_Restriction_Synonym
13986
13987         * s-restri.ads (Tasking_Allowed): Correct missing comment
13988
13989         * s-rident.ads: Add entries for restriction synonyms
13990
13991         * ali.adb: Fix some problems with badly formatted ALI files that can
13992         result in infinite loops.
13993
13994         * s-taprop-lynxos.adb, s-tpopsp-lynxos.adb, s-taprop-tru64.adb,
13995         s-tpopsp-posix-foreign.adb, s-taprop-irix.adb, s-interr-sigaction.adb,
13996         s-taprop-irix-athread.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
13997         s-taprop-dummy.adb, s-interr-dummy.adb, s-taprop-os2.adb,
13998         s-taprop-solaris.adb, s-tpopsp-solaris.adb, s-asthan-vms.adb,
13999         s-inmaop-vms.adb, s-interr-vms.adb, s-taprop-vms.adb,
14000         s-tpopde-vms.adb, s-taprop-mingw.adb, s-interr-vxworks.adb,
14001         s-taprop-vxworks.adb, s-tpopsp-vxworks.adb, s-taprop-posix.adb,
14002         s-tpopsp-posix.adb, s-tratas-default.adb, a-dynpri.adb,
14003         a-tasatt.adb, a-taside.adb, a-taside.ads, exp_attr.adb,
14004         exp_ch9.adb, g-thread.adb, rtsfind.ads, sem_attr.adb,
14005         s-interr.adb, s-interr.ads, s-soflin.ads, s-taasde.adb,
14006         s-taasde.ads, s-taenca.adb, s-taenca.ads, s-taprop.ads,
14007         s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads,
14008         s-tasini.adb, s-tasini.ads, s-taskin.adb, s-taskin.ads,
14009         s-tasque.adb, s-tasque.ads, s-tasren.adb, s-tasren.ads,
14010         s-tassta.adb, s-tassta.ads, s-tasuti.adb, s-tasuti.ads,
14011         s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
14012         s-tpoben.adb, s-tpobop.adb, s-tpobop.ads, s-tporft.adb,
14013         s-tposen.adb, s-tposen.ads, s-tratas.adb, s-tratas.ads: Change Task_ID
14014         to Task_Id (minor cleanup).
14015
14016 2004-05-17  Vincent Celier  <celier@gnat.com>
14017
14018         * g-os_lib.adb (Normalize_Pathname.Final_Value): Remove trailing
14019         directory separator.
14020
14021         * prj-proc.adb (Recursive_Process): Inherit attribute Languages from
14022         project being extended, if Languages is not declared in extending
14023         project.
14024
14025 2004-05-17  Javier Miranda  <miranda@gnat.com>
14026
14027         * sem_ch10.adb (Install_Limited_Withed_Unit): Do not install the
14028         limited view of a visible sibling.
14029
14030 2004-05-14  Robert Dewar  <dewar@gnat.com>
14031
14032         * gnat_ugn.texi: Minor change to -gnatS documentation
14033
14034         * sprint.adb: Remove some instances of Assert (False) and for this
14035         purpose replace them by output of a ??? string.
14036
14037         * checks.adb, exp_aggr.adb, sem_elim.adb: Remove useless pragma
14038         Assert (False).
14039
14040         * lib-writ.adb, lib-load.adb, lib.ads, lib.adb: Remove Dependent_Unit
14041         flag processing. This was suppressing required dependencies in
14042         No_Run_Time mode and is not needed since the binder does not generate
14043         references for things in libgnat anyway.
14044
14045         * sem_ch3.adb (Access_Type_Declaration): Reorganize code to avoid GCC
14046         warning.
14047
14048 2004-05-14  Thomas Quinot  <quinot@act-europe.fr>
14049
14050         * gnat_ugn.texi: Document AIX-specific issue with initialization of
14051         resolver library.
14052
14053         * exp_ch4.adb (Insert_Dereference_Action): Do not generate dereference
14054         action for the case of an actual parameter in an init proc call.
14055
14056 2004-05-14  Ed Schonberg  <schonberg@gnat.com>
14057
14058         * sem_ch4.adb (Analyze_Selected_Component): If prefix is a protected
14059         subtype, check visible entities in base type.
14060
14061         * exp_ch7.adb (Clean_Simple_Protected_Objects): Do not generate cleanup
14062         actions if the object is a renaming.
14063
14064         * sem_ch12.adb (Same_Instantiated_Entity): Predicate for
14065         Check_Formal_Package_Instance, to determine more precisely when the
14066         formal and the actual denote the same entity.
14067
14068 2004-05-14  Javier Miranda  <miranda@gnat.com>
14069
14070         * par-ch10.adb (P_Context_Clause): Complete documentation on AI-262
14071
14072         * sem_ch10.adb (Analyze_With_Clause): After analyzed, the entity
14073         corresponding to a private_with must be removed from visibility; it
14074         will be made visible later, just before we analyze the private part of
14075         the package.
14076         (Check_Private_Child_Unit): Allow private_with clauses in public
14077         siblings.
14078         (Install_Siblings): Make visible the private entities of private-withed
14079         siblings.
14080         (Install_Withed_Unit): Do not install the private withed unit if we
14081         are compiling a package declaration and the Private_With_OK flag was
14082         not set by the caller. These declarations will be installed later,
14083         just before we analyze the private part of the package.
14084
14085         * sem_ch3.adb (Analyze_Object_Declaration): In case of errors detected
14086         during the evaluation of the expression that initializes the object,
14087         decorate it with the expected type to avoid cascade errors.
14088         Code cleanup.
14089
14090         * sem_ch6.adb (Analyze_Subprogram_Body): If we are compiling a library
14091         subprogram we have to install the private_with clauses after its
14092         specification has been analyzed (as documented in AI-262.TXT).
14093
14094         * sem_ch8.adb (Has_Private_With): New function. Determines if the
14095         current compilation unit has a private with on a given entity.
14096         (Find_Direct_Name): Detect the Beaujolais problem described in
14097         AI-262.TXT
14098
14099         * sem_utils.ads, sem_util.adb (Is_Ancestor_Package): New function. It
14100         provides the functionality of the function Is_Ancestor that was
14101         previously available in sem_ch10. It has been renamed to avoid
14102         overloading.
14103
14104         * sprint.adb (Sprint_Node_Actual): Print limited_with clauses
14105
14106 2004-05-14  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14107
14108         * utils.c (build_vms_descriptor): Use SImode pointers.
14109
14110 2004-05-14  Vasiliy Fofanov  <fofanov@act-europe.fr>
14111
14112         * gnat_ugn.texi: Revised chapter "GNAT and Libraries".
14113
14114 2004-05-14  GNAT Script  <nobody@gnat.com>
14115
14116         * Make-lang.in: Makefile automatically updated
14117
14118 2004-05-14  Arnaud Charlet  <charlet@act-europe.fr>
14119
14120         Renaming of target specific files for clarity
14121
14122         * Makefile.in: Rename GNAT target specific files.
14123
14124         * 31soccon.ads, 31soliop.ads 35soccon.ads, 3asoccon.ads,
14125         3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3psoccon.ads,
14126         3ssoccon.ads, 3ssoliop.ads, 3veacodu.adb, 3vexpect.adb,
14127         3vsoccon.ads, 3vsocthi.adb, 3vsocthi.ads, 3vtrasym.adb,
14128         3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads, 3wsoliop.ads,
14129         3zsoccon.ads, 3zsocthi.adb, 3zsocthi.ads, 41intnam.ads,
14130         42intnam.ads, 45intnam.ads, 4aintnam.ads, 4cintnam.ads,
14131         4gintnam.ads, 4hexcpol.adb, 4hintnam.ads, 4lintnam.ads,
14132         4nintnam.ads, 4ointnam.ads, 4onumaux.ads, 4pintnam.ads,
14133         4sintnam.ads, 4vcaldel.adb, 4vcalend.adb, 4vcalend.ads,
14134         4vintnam.ads, 4wcalend.adb, 4wexcpol.adb, 4wintnam.ads,
14135         4zintnam.ads, 4znumaux.ads, 4zsytaco.adb, 4zsytaco.ads,
14136         51osinte.adb, 51osinte.ads, 51system.ads,
14137         52osinte.adb, 52osinte.ads, 53osinte.ads, 54osinte.ads,
14138         55osinte.adb, 55osinte.ads, 55system.ads, 56osinte.adb,
14139         56osinte.ads, 56system.ads, 56taprop.adb, 56taspri.ads,
14140         56tpopsp.adb, 57system.ads, 58system.ads,
14141         5amastop.adb, 5aml-tgt.adb, 5aosinte.adb, 5aosinte.ads,
14142         5asystem.ads, 5ataprop.adb, 5atasinf.ads, 5ataspri.ads,
14143         5atpopsp.adb, 5avxwork.ads, 5bml-tgt.adb, 5bosinte.adb,
14144         5bosinte.ads, 5bsystem.ads, 5cosinte.ads, 5csystem.ads,
14145         5dsystem.ads, 5esystem.ads, 5fintman.adb, 5fosinte.adb,
14146         5fosinte.ads, 5fsystem.ads, 5ftaprop.adb, 5ftasinf.ads,
14147         5ginterr.adb, 5gintman.adb, 5gmastop.adb, 5gml-tgt.adb,
14148         5gosinte.ads, 5gproinf.adb, 5gproinf.ads, 5gsystem.ads,
14149         5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads, 5gtpgetc.adb,
14150         5hml-tgt.adb, 5hosinte.adb, 5hosinte.ads, 5hparame.ads,
14151         5hsystem.ads, 5htaprop.adb, 5htaspri.ads, 5htraceb.adb,
14152         5iosinte.adb, 5iosinte.ads, 5itaprop.adb, 5itaspri.ads,
14153         5ksystem.ads, 5kvxwork.ads, 5lml-tgt.adb, 5losinte.ads,
14154         5lparame.adb, 5lsystem.ads, 5msystem.ads, 5mvxwork.ads,
14155         5ninmaop.adb, 5nintman.adb, 5nosinte.ads, 5nsystem.ads,
14156         5ntaprop.adb, 5ntaspri.ads, 5ointerr.adb, 5omastop.adb,
14157         5oosinte.adb, 5oosinte.ads, 5oosprim.adb, 5oparame.adb,
14158         5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5posinte.ads,
14159         5posprim.adb, 5psystem.ads, 5pvxwork.ads, 5sintman.adb,
14160         5sml-tgt.adb, 5sosinte.adb, 5sosinte.ads, 5sosprim.adb,
14161         5sparame.adb, 5ssystem.ads, 5staprop.adb, 5stasinf.adb,
14162         5stasinf.ads, 5staspri.ads, 5stpopsp.adb, 5svxwork.ads,
14163         5tosinte.ads, 5usystem.ads, 5vasthan.adb, 5vdirval.adb,
14164         5vinmaop.adb, 5vinterr.adb, 5vintman.adb, 5vintman.ads,
14165         5vmastop.adb, 5vml-tgt.adb, 5vosinte.adb, 5vosinte.ads,
14166         5vosprim.adb, 5vosprim.ads, 5vparame.ads, 5vsymbol.adb,
14167         5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads, 5vtpopde.adb,
14168         5vtpopde.ads, 5vtraent.adb, 5vtraent.ads, 5vvaflop.adb,
14169         5wdirval.adb, 5wgloloc.adb, 5wintman.adb, 5wmemory.adb,
14170         5wml-tgt.adb, 5wosinte.ads, 5wosprim.adb, 5wsystem.ads,
14171         5wtaprop.adb, 5wtaspri.ads, 5xparame.ads, 5xsystem.ads,
14172         5xvxwork.ads, 5yparame.ads, 5ysystem.ads, 5zinterr.adb,
14173         5zintman.adb, 5zintman.ads, 5zml-tgt.adb, 5zosinte.adb,
14174         5zosinte.ads, 5zosprim.adb, 5zparame.ads, 5zstchop.adb,
14175         5zsystem.ads, 5ztaprop.adb, 5ztaspri.ads, 5ztfsetr.adb,
14176         5ztpopsp.adb, 6vcpp.adb, 6vcstrea.adb, 6vinterf.ads,
14177         7sinmaop.adb, 7sintman.adb, 7sosinte.adb, 7sosprim.adb,
14178         7staprop.adb, 7staspri.ads, 7stfsetr.adb, 7stpopsp.adb,
14179         7straceb.adb, 7straces.adb, 7strafor.adb, 7strafor.ads,
14180         7stratas.adb, 86numaux.adb, 86numaux.ads: Replaced by files below.
14181
14182         * a-caldel-vms.adb, a-calend-mingw.adb, a-calend-vms.adb,
14183         a-calend-vms.ads, a-dirval-mingw.adb, a-dirval-vms.adb,
14184         a-excpol-abort.adb, a-excpol-interix.adb, a-intnam-aix.ads,
14185         a-intnam-dummy.ads, a-intnam-freebsd.ads, a-intnam-hpux.ads,
14186         a-intnam-interix.ads, a-intnam-irix.ads, a-intnam-linux.ads,
14187         a-intnam-lynxos.ads, a-intnam-mingw.ads, a-intnam-os2.ads,
14188         a-intnam-solaris.ads, a-intnam-tru64.ads, a-intnam-unixware.ads,
14189         a-intnam-vms.ads, a-intnam-vxworks.ads, a-numaux-libc-x86.ads,
14190         a-numaux-vxworks.ads, a-numaux-x86.adb, a-numaux-x86.ads,
14191         a-sytaco-vxworks.adb, a-sytaco-vxworks.ads, g-eacodu-vms.adb,
14192         g-expect-vms.adb, g-soccon-aix.ads, g-soccon-freebsd.ads,
14193         g-soccon-hpux.ads, g-soccon-interix.ads, g-soccon-irix.ads,
14194         g-soccon-mingw.ads, g-soccon-solaris.ads, g-soccon-tru64.ads,
14195         g-soccon-unixware.ads, g-soccon-vms.adb, g-soccon-vxworks.ads,
14196         g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vms.adb,
14197         g-socthi-vms.ads, g-socthi-vxworks.adb, g-socthi-vxworks.ads,
14198         g-soliop-mingw.ads, g-soliop-solaris.ads, g-soliop-unixware.ads,
14199         g-trasym-vms.adb, i-cpp-vms.adb, i-cstrea-vms.adb,
14200         interfac-vms.ads, mlib-tgt-aix.adb, mlib-tgt-hpux.adb,
14201         mlib-tgt-irix.adb, mlib-tgt-linux.adb, mlib-tgt-mingw.adb,
14202         mlib-tgt-solaris.adb, mlib-tgt-tru64.adb, mlib-tgt-vms.adb,
14203         mlib-tgt-vxworks.adb, s-asthan-vms.adb, s-gloloc-mingw.adb,
14204         s-inmaop-dummy.adb, s-inmaop-posix.adb, s-inmaop-vms.adb,
14205         s-interr-dummy.adb, s-interr-sigaction.adb, s-interr-vms.adb,
14206         s-interr-vxworks.adb, s-intman-dummy.adb, s-intman-irix.adb,
14207         s-intman-irix-athread.adb, s-intman-mingw.adb, s-intman-posix.adb,
14208         s-intman-solaris.adb, s-intman-vms.adb, s-intman-vms.ads,
14209         s-intman-vxworks.adb, s-intman-vxworks.ads, s-mastop-irix.adb,
14210         s-mastop-tru64.adb, s-mastop-vms.adb, s-mastop-x86.adb,
14211         s-memory-mingw.adb, s-osinte-aix.adb, s-osinte-aix.ads,
14212         s-osinte-aix-fsu.ads, s-osinte-dummy.ads, s-osinte-freebsd.adb,
14213         s-osinte-freebsd.ads, s-osinte-fsu.adb, s-osinte-hpux.ads,
14214         s-osinte-hpux-dce.adb, s-osinte-hpux-dce.ads, s-osinte-interix.ads,
14215         s-osinte-irix.adb, s-osinte-irix.ads, s-osinte-irix-athread.ads,
14216         s-osinte-linux.ads, s-osinte-linux-fsu.ads, s-osinte-linux-ia64.ads,
14217         s-osinte-lynxos-3.adb, s-osinte-lynxos-3.ads, s-osinte-lynxos.adb,
14218         s-osinte-lynxos.ads, s-osinte-mingw.ads, s-osinte-os2.adb,
14219         s-osinte-os2.ads, s-osinte-posix.adb, s-osinte-solaris.adb,
14220         s-osinte-solaris.ads, s-osinte-solaris-fsu.ads,
14221         s-osinte-solaris-posix.ads, s-osinte-tru64.adb, s-osinte-tru64.ads,
14222         s-osinte-unixware.adb, s-osinte-unixware.ads, s-osinte-vms.adb,
14223         s-osinte-vms.ads, s-osinte-vxworks.adb,
14224         s-osinte-vxworks.ads, s-osprim-mingw.adb,
14225         s-osprim-os2.adb, s-osprim-posix.adb, s-osprim-solaris.adb,
14226         s-osprim-unix.adb, s-osprim-vms.adb, s-osprim-vms.ads,
14227         s-osprim-vxworks.adb, s-parame-ae653.ads, s-parame-hpux.ads,
14228         s-parame-linux.adb, s-parame-os2.adb, s-parame-solaris.adb,
14229         s-parame-vms.ads, s-parame-vms-restrict.ads, s-parame-vxworks.ads,
14230         s-proinf-irix-athread.adb, s-proinf-irix-athread.ads,
14231         s-stchop-vxworks.adb, s-taprop-dummy.adb,
14232         s-taprop-hpux-dce.adb, s-taprop-irix.adb,
14233         s-taprop-irix-athread.adb, s-taprop-linux.adb, s-taprop-lynxos.adb,
14234         s-taprop-mingw.adb, s-taprop-os2.adb, s-taprop-posix.adb,
14235         s-taprop-solaris.adb, s-taprop-tru64.adb, s-taprop-vms.adb,
14236         s-taprop-vxworks.adb, s-tasinf-irix.ads, s-tasinf-irix-athread.adb,
14237         s-tasinf-irix-athread.ads, s-tasinf-solaris.adb, s-tasinf-solaris.ads,
14238         s-tasinf-tru64.ads, s-taspri-dummy.ads, s-taspri-hpux-dce.ads,
14239         s-taspri-linux.ads, s-taspri-lynxos.ads, s-taspri-mingw.ads,
14240         s-taspri-os2.ads, s-taspri-posix.ads, s-taspri-solaris.ads,
14241         s-taspri-tru64.ads, s-taspri-vms.ads, s-taspri-vxworks.ads,
14242         s-tfsetr-default.adb, s-tfsetr-vxworks.adb, s-tpopde-vms.adb,
14243         s-tpopde-vms.ads, s-tpopsp-lynxos.adb, s-tpopsp-posix.adb,
14244         s-tpopsp-posix-foreign.adb, s-tpopsp-solaris.adb, s-tpopsp-vxworks.adb,
14245         s-traceb-hpux.adb, s-traceb-mastop.adb, s-traces-default.adb,
14246         s-traent-vms.adb, s-traent-vms.ads, s-trafor-default.adb,
14247         s-trafor-default.ads, s-tratas-default.adb, s-vaflop-vms.adb,
14248         s-vxwork-alpha.ads, s-vxwork-m68k.ads, s-vxwork-mips.ads,
14249         s-vxwork-ppc.ads, s-vxwork-sparcv9.ads, s-vxwork-xscale.ads,
14250         symbols-vms.adb, system-aix.ads, system-freebsd-x86.ads,
14251         system-hpux.ads, system-interix.ads, system-irix-n32.ads,
14252         system-irix-o32.ads, system-linux-x86_64.ads,
14253         system-linux-x86.ads, system-lynxos-ppc.ads, system-lynxos-x86.ads,
14254         system-mingw.ads, system-os2.ads, system-solaris-sparc.ads,
14255         system-solaris-sparcv9.ads, system-solaris-x86.ads, system-tru64.ads,
14256         system-unixware.ads, system-vms.ads, system-vms-zcx.ads,
14257         system-vxworks-alpha.ads, system-vxworks-m68k.ads,
14258         system-vxworks-mips.ads, system-vxworks-ppc.ads,
14259         system-vxworks-sparcv9.ads, system-vxworks-xscale.ads: Replace files
14260         above.
14261
14262 2004-05-13  Zack Weinberg  <zack@codesourcery.com>
14263
14264         * trans.c (gnat_stabilize_reference_1): Remove case 'b'.
14265
14266 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
14267
14268         Merge from tree-ssa-20020619-branch.
14269
14270         * config-lang.in (boot_language, build_by_default): Set
14271         to no.
14272         * utils.c (unchecked_convert): Use OEP_ONLY_CONST.
14273         (max_size): Add static chain op for call_expr.
14274
14275 2004-05-12  Richard Sandiford  <rsandifo@redhat.com>
14276
14277         PR target/15331
14278         * 5gmastop.adb (Roff): Choose between '4' and '0', not '4' and ' '.
14279
14280 2004-05-11  Roger Sayle  <roger@eyesopen.com>
14281
14282         * utils.c (max_size): Use MIN_EXPR to find the minimum value of a
14283         COND_EXPR.
14284
14285 2004-05-10  Doug Rupp  <rupp@gnat.com>
14286
14287         * 5qsystem.ads: Remove Short_Address subtype declaration. Moved to
14288         system.aux_dec.
14289
14290         * s-auxdec.ads: Add Short_Address subtype (moved here from System).
14291
14292         * Makefile.in: [VMS]: Add translation for 5qauxdec.ads.
14293
14294         * init.c: [VMS] Macroize LIB$ calls for IA64 and Alpha.
14295         Fixes undefined symbols in IA64 gnatlib.
14296
14297         * 5vinmaop.adb: Reference s-auxdec for Short_Address.
14298
14299         * 5xsystem.ads, 5vsystem.ads: Back out last change (addition of subtype
14300         Short_Address). This will be moved to system.auxdec.
14301
14302 2004-05-10  Thomas Quinot  <quinot@act-europe.fr>
14303
14304         * sem_util.adb: Replace test for presence of a node that is always
14305         present with a call to Discard_Node.
14306
14307         * sem_ch10.adb (Analyze_Compilation_Unit): Remove superfluous call to
14308         Analyze on the library unit node after generation of distribution stub
14309         constructs.  The call was a no-op because Unit_Node has already been
14310         Analyzed, and the tree fragments for the distribution stubs are
14311         analyzed as they are inserted in Exp_Dist.
14312         Update comment regarding to distribution stubs to reflect that we
14313         do not generate stub in separate files anymore.
14314
14315         * einfo.ads: Clarify the fact that a tagged private type has the
14316         E_Record_Type_With_Private Ekind.
14317
14318         * erroutc.adb: Minor reformatting
14319
14320         * erroutc.ads (Max_Msg_Length): Increase to cover possible larger
14321         values if line length is increased using -gnatyM (noticed during code
14322         reading).
14323
14324         * eval_fat.adb: Minor reformatting
14325         Put spaces around exponentiation operator
14326
14327 2004-05-10  Ed Schonberg  <schonberg@gnat.com>
14328
14329         PR ada/15005
14330         * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): If prefix
14331         has been rewritten as an explicit dereference, retrieve type of
14332         original node to check for possibly unconstrained record type.
14333
14334 2004-05-10  Ed Schonberg  <schonberg@gnat.com>
14335
14336         * exp_ch7.adb (Check_Visibly_Controlled): If given operation is not
14337         overriding, use the operation of the parent unconditionally.
14338
14339         * sem_ch4.adb (Remove_Address_Interpretations): Remove address
14340         operation when either operand is a literal, to avoid further
14341         ambiguities.
14342
14343         * sem_ch6.adb (New_Overloaded_Entity): If new entity is inherited and
14344         overridden by a previous explicit declaration, mark the previous entity
14345         as overriding.
14346
14347         * sem_disp.adb (Check_Dispatching_Operation): New predicate
14348         Is_Visibly_Controlled, to determine whether a declaration of a
14349         primitive control operation for a derived type overrides an inherited
14350         one. Add warning if the explicit declaration does not override.
14351
14352 2004-05-10  Vincent Celier  <celier@gnat.com>
14353
14354         * gnatls.adb (Gnatls): Initialize Snames, to avoid assertion error in
14355         some cases when the sources are no longer present.
14356
14357         * make.adb (Collect_Arguments): Fail if an external source, not part
14358         of any project need to be compiled, when switch -x has not been
14359         specified.
14360
14361         * makeusg.adb: Document new switch -x
14362
14363         * opt.ads (External_Unit_Compilation_Allowed): New Boolean flag,
14364         defaulted to False.
14365
14366         * switch-m.adb (Scan_Make_Switches): New switch -x
14367
14368         * vms_data.ads: Add VMS qualifier /NON_PROJECT_UNIT_COMPILATION for
14369         gnatmake switch -x.
14370
14371         * gnat_ugn.texi: Document new gnatmake switch -x
14372
14373 2004-05-10  Eric Botcazou  <ebotcazou@act-europe.fr>
14374
14375         * misc.c (gnat_init_options): Set flag_zero_initialized_in_bss to 0.
14376
14377         * utils.c (create_var_decl): Do not modify the DECL_COMMON flag.
14378         (process_attributes): Likewise.
14379
14380 2004-05-10  Joel Brobecker  <brobecker@gnat.com>
14381
14382         * s-inmaop.ads: Fix spelling mistake in one of the comments.
14383
14384 2004-05-10  Robert Dewar  <dewar@gnat.com>
14385
14386         * gnat_ugn.texi: Document that for config pragma files, the maximum
14387         line length is always 32767.
14388
14389         * gnat_rm.texi: For pragma Eliminate, note that concatenation of string
14390         literals is now allowed.
14391
14392         * gnat-style.texi: Remove statement about splitting long lines before
14393         an operator rather than after, since we do not follow this rule at all.
14394         Clarify rule (really lack of rule) for spaces around exponentiation
14395
14396         * sem_elim.adb: Allow concatenation of string literals as well as a
14397         single string literal for pragma arguments.
14398
14399         * sem_prag.ads, sem_prag.adb: (Is_Config_Static_String): New function
14400
14401         * a-textio.adb (Terminate_Line): Do not add line feed if nothing
14402         written for append case.
14403
14404         * frontend.adb: Changes to avoid checking max line length in config
14405         pragma files.
14406
14407         * g-os_lib.ads: Minor reformatting
14408
14409         * mlib-utl.adb: Do not define Max_Line_Length locally (definition was
14410         wrong in any case. Instead use standard value. Noticed during code
14411         reading.
14412
14413         * opt.ads (Max_Line_Length): New field, used to implement removal of
14414         limitation on length of lines when scanning config pragma files.
14415
14416         * osint.ads, prj-dect.adb, prj-strt.adb, prj-tree.adb,
14417         makeutl.ads, makeutl.adb: Minor reformatting
14418
14419         * scn.adb: Do not check line length while scanning config pragma files
14420         Do not check line length while scanning out license information
14421
14422         * scng.adb: Changes to avoid line length checks while parsing config
14423         pragma files.
14424
14425 2004-05-10  GNAT Script  <nobody@gnat.com>
14426
14427         * Make-lang.in: Makefile automatically updated
14428
14429 2004-05-05  Arnaud Charlet  <charlet@act-europe.fr>
14430
14431         * osint.adb (Find_Program_Name): Fix handling of VMS version
14432         number.
14433
14434 2004-05-05  Emmanuel Briot  <briot@act-europe.fr>
14435
14436         * g-os_lib.ads (Invalid_Time): New constant
14437
14438         * adaint.h, adaint.c (__gnat_file_time_name, __gnat_file_time_fd): Now
14439         return OS_Time instead of time_t to match what is imported by Ada.
14440         Now return -1 if the file doesn't exist, instead of a random value
14441
14442 2004-05-05  Robert Dewar  <dewar@gnat.com>
14443
14444         * usage.adb: Add line for -gnatR?s switch
14445
14446         * sem_ch13.adb, exp_ch2.adb: Minor reformatting
14447
14448         * g-regpat.ads, g-regpat.adb: Add documentation on handling of Size
14449         and for Match (Data_First, Data_last)
14450
14451         * lib-writ.adb (Write_With_Lines): Ensure that correct index number is
14452         written when we are dealing with multi-unit files.
14453
14454 2004-05-05  Jerome Guitton  <guitton@act-europe.fr>
14455
14456         * Makefile.in: Remove unused targets and variables.
14457
14458 2004-05-05  Vincent Celier  <celier@gnat.com>
14459
14460         * switch-m.adb: New gnatmake switch -eI
14461
14462         * vms_data.ads: Add VMS equivalents of new gnatclean swith -innn and
14463         of new gnatmake switch -eInnn.
14464
14465         * makegpr.adb: Take into account new parameters Index and Src_Index in
14466         Prj.Util.
14467
14468         * clean.adb: Implement support for multi-unit sources, including new
14469         switch -i.
14470
14471         * gnatcmd.adb (GNATCmd): Call Prj.Util.Value_Of with new parameter
14472         Src_Index.
14473
14474         * make.ads, make.adb (Insert_Q): New parameter Index, defaulted to 0
14475         (Extract_From_Q): New out parameter Index
14476         (Mark, Is_Marked): Subprograms moved to Makeutl
14477         (Switches_Of): New parameter Source_Index
14478         (Add_Switch): New parameter Index
14479         (Check): New parameter Source_Index
14480         (Collect_Arguments): New parameter Source_Index
14481         (Collect_Arguments_And_Compile): New parameter Source_Index
14482         (Compile): New parameter Source_Index
14483         Put subprograms in alphabetical order
14484         Add support for multi-source sources, including in project files.
14485
14486         * makeutl.ads, makeutl.adb (Unit_Index_Of): New function
14487         (Mark, Is_Marked, Delete_All_Marks): New subprograms, moved from
14488         Make.
14489
14490         * makeusg.adb: New gnatmake switch -eInnn
14491
14492         * mlib-prj.adb (Build_Library): Add new parameter Src_Index to call to
14493         Prj.Util.Value_Of.
14494
14495         * opt.ads (Main_Index): New variable, defaulted to 0.
14496
14497         * osint.ads, osinte.adb (Add_File): New parameter Index
14498         (Current_Source_Index): New function
14499
14500         * prj.adb: Take into account new components Index and Src_Index
14501
14502         * prj.ads (String_Element): New component Index
14503         (Variable_Value): New component Index
14504         (Array_Element): New component Src_Index
14505
14506         * prj-attr.adb: Indicate that optional index may be specified for
14507         attributes Main, Executable, Spec, Body and some of Switches.
14508
14509         * prj-attr.ads (Attribute_Kind): New values for optional indexes
14510         (Attribute_Record): New component Optional_Index
14511
14512         * prj-com.ads (File_Name_Data): New component Index
14513
14514         * prj-dect.adb (Parse_Attribute_Declaration): Process optional index
14515
14516         * prj-env.adb (Put): Output optional index
14517
14518         * prj-makr.adb: Put indexes for multi-unit sources in SFN pragmas and
14519         attributes Spec and Body.
14520
14521         * prj-nmsc.adb: Process optional indexes
14522
14523         * prj-pp.adb: Ouput "at" for optional indexes
14524
14525         * prj-proc.adb: Take into account optional indexes
14526
14527         * prj-strt.ads, prj-strt.adb (Terms): New Boolean parameter
14528         Optional_Index. For string literal,
14529         process optional index when Optional_Index is True.
14530         (Parse_Expresion): New Boolean parameter Optional_Index
14531
14532         * prj-tree.ads, prj-tree.adb (Source_Index_Of): New function
14533         (Set_Source_Index_Of): New procedure
14534
14535         * prj-util.adb (Executable_Of, Value_Of): Take into account optional
14536         index.
14537
14538         * prj-util.ads (Executable_Of): New parameter Index
14539         (Value_Of (Name_Id, Array_Element_Id) returning Variable_Value):
14540         New parameter Src_Index, defaulted to 0.
14541
14542 2004-05-05  Ed Schonberg  <schonberg@gnat.com>
14543
14544         PR ada/15257
14545         * sem_ch3.adb (Access_Definition): If this is an access parameter
14546         whose designated type is imported through a limited_with clause, do
14547         not add the enclosing subprogram to the list of private dependents of
14548         the type.
14549
14550 2004-05-05  Ed Schonberg  <schonberg@gnat.com>
14551
14552         PR ada/15258
14553         * sem_ch6.adb (Base_Types_Match): True if one type is imported through
14554         a limited_with clause, and the other is its non-limited view.
14555
14556 2004-05-05  Thomas Quinot  <quinot@act-europe.fr>
14557
14558         * cstand.adb (Create_Standard): Initialize Stand.Boolean_Literals.
14559
14560         * exp_attr.adb, exp_ch5.adb, exp_ch9.adb, exp_disp.adb,
14561         exp_fixd.adb, sem_attr.adb, sem_dist.adb, sem_util.adb: Use
14562         Stand.Boolean_Literals to produce references to entities
14563         Standard_False and Standard_True from compile-time computed boolean
14564         values.
14565
14566         * stand.ads (Boolean_Literals): New variable, provides the entity
14567         values for False and True, for use by the expander.
14568
14569 2004-05-05  Doug Rupp  <rupp@gnat.com>
14570
14571         * 5vinmaop.adb, 5[vx]system.ads: Add Short_Address subtype
14572         5vinmaop.adb: Unchecked convert Short_Address vice Address
14573
14574         * adaint.c, raise.c: Caste CRTL function return value
14575         to avoid gcc error on 32/64 bit IVMS.
14576
14577         * Makefile.in [VMS]: Use iar archiver if host = Alpha/VMS and
14578         target = IA64/VMS.
14579
14580         * init.c[VMS]: Only call Alpha specific __gnat_error_prehandler IN_RTS.
14581
14582         * 5qsystem.ads (Address): Declare as Long_Integer
14583         (Short_Address): Declare as 32 bit subtype of Address
14584         Declare  abstract address operations to avoid gratuitous ambiguities.
14585
14586 2004-05-05  Jose Ruiz  <ruiz@act-europe.fr>
14587
14588         * gnat_rm.texi: Use the new restriction Simple_Barriers (AI-249)
14589         instead of the old Boolean_Entry_Barriers.
14590         Ditto for No_Task_Attributes_Package instead of No_Task_Attributes.
14591
14592 2004-05-05  GNAT Script  <nobody@gnat.com>
14593
14594         * Make-lang.in: Makefile automatically updated
14595
14596 2004-05-03  Arnaud Charlet  <charlet@act-europe.fr>
14597
14598         * 50system.ads, 59system.ads, s-thread.ads: Removed, no longer used.
14599
14600 2004-05-03  Olivier Hainque  <hainque@act-europe.fr>
14601
14602         PR ada/15152
14603
14604         * exp_ch2.adb (Expand_Current_Value): Leave Machine_Code Asm arguments
14605         alone. Replacing object references by literals is inappropriate in a
14606         so low level context.
14607
14608 2004-05-03  Arnaud Charlet  <charlet@act-europe.fr>
14609
14610         * a-exexpr.adb: Add comments
14611
14612 2004-05-03  Joel Brobecker  <brobecker@gnat.com>
14613
14614         * a-tags.adb (Tag_Table): Add Index_Check pragma Suppress. Allows us to
14615         declare the Ancestor_Tags array in Type_Specific_Data with a small size
14616         without risking a bounds check error when accessing one of its
14617         components.
14618         (Type_Specific_Data): Define Ancestor_Tags as a small array.
14619         This prevents us from hitting a limitation during the debug info
14620         generation when using stabs.
14621
14622         * a-tags.adb (Dispatch_Table): Define the Prims_Ptr component as a
14623         small array.
14624         This prevents us from hitting a limitation during the debug info
14625         generation when using stabs.
14626
14627 2004-05-03  Eric Botcazou  <ebotcazou@act-europe.fr>
14628
14629         lang-specs.h: Remove -gnatz* from specs.
14630
14631 2004-05-03  Vincent Celier  <celier@gnat.com>
14632
14633         * gprmake.adb, makegpr.ads, makegpr.adb: New files.
14634
14635         * Make-lang.in, Makefile.in: Add gprmake
14636
14637 2004-05-03  Thomas Quinot  <quinot@act-europe.fr>
14638
14639         * sem_aggr.adb: Fix typo in comment.
14640
14641 2004-05-03  Robert Dewar  <dewar@gnat.com>
14642
14643         * make.adb: Minor reformatting
14644
14645         * rtsfind.ads, rtsfind.adb: (RTU_Loaded): New function
14646
14647         * sem_attr.adb (Eval_Attribute, case Type_Class): Fix check for address
14648         so that it works when address is not a private type.
14649
14650         * sem_ch13.adb (Check_Expr_Constants, case N_Integer_Literal): Deal
14651         properly with rewritten unchecked conversions. This prevents
14652         order-of-elaboration issues that can otherwise arise.
14653         (Minimum_Size): Don't check size of access types under VMS
14654
14655         * sem_ch4.adb (Remove_Address_Interpretation): New circuit to remove
14656         interpretations of integer literals as type System.Address.
14657
14658         * sem_util.ads, sem_util.adb (Is_Descendent_Of_Address): New function
14659         (Is_Descendent_Of): New function
14660
14661 2004-05-03  Jose Ruiz  <ruiz@act-europe.fr>
14662
14663         * sem_prag.adb: Boolean_Entry_Barriers is a synonym of Simple_Barriers.
14664         Max_Entry_Queue_Depth is a synonym of Max_Entry_Queue_Length.
14665         No_Dynamic_Interrupts is a synonym of No_Dynamic_Attachment.
14666
14667         * sem_res.adb: Use the new restriction Max_Entry_Queue_Length instead
14668         of the old Max_Entry_Queue_Depth.
14669
14670         * snames.adb: Boolean_Entry_Barriers is a synonym of Simple_Barriers.
14671         Max_Entry_Queue_Depth is a synonym of Max_Entry_Queue_Length
14672         No_Dynamic_Interrupts is a synonym of No_Dynamic_Attachment
14673
14674         * snames.ads: New entry for proper handling of Boolean_Entry_Barriers.
14675         New entry for proper handling of Max_Entry_Queue_Depth.
14676         New entry for proper handling of No_Dynamic_Interrupts.
14677
14678         * s-rident.ads: Adding restriction Simple_Barriers (AI-00249) that
14679         supersedes the GNAT specific restriction Boolean_Entry_Barriers.
14680         Adding restriction Max_Entry_Queue_Length (AI-00249) that supersedes
14681         the GNAT specific restriction Max_Entry_Queue_Depth.
14682         Adding restriction No_Dynamic_Attachment (AI-00249) that supersedes
14683         the GNAT specific restriction No_Dynamic_Interrupts.
14684
14685         * restrict.ads, restrict.adb: Use the new restriction Simple_Barriers
14686         instead of the old Boolean_Entry_Barriers.
14687         Use the new restriction No_Dynamic_Attachment instead of the old
14688         No_Dynamic_Interrupts.
14689
14690         * exp_ch9.adb: Check restriction Simple_Barriers (AI-00249) that
14691         supersedes the GNAT specific restriction Boolean_Entry_Barriers.
14692
14693         * gnatbind.adb: Use the new restriction Max_Entry_Queue_Length instead
14694         of the old Max_Entry_Queue_Depth.
14695
14696 2004-05-03  GNAT Script  <nobody@gnat.com>
14697
14698         * Make-lang.in: Makefile automatically updated
14699
14700 2004-04-29  Ed Schonberg  <schonberg@gnat.com>
14701
14702         * checks.adb (Enable_Range_Check): If the prefix of an index component
14703         is an access to an unconstrained array, perform check unconditionally.
14704
14705 2004-04-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14706
14707         * decl.c (gnat_to_gnu_field): Also call make_packable_type if
14708         Component_Clause.
14709
14710 2004-04-29  Olivier Hainque  <hainque@act-europe.fr>
14711
14712         * init.c (__gnat_install_handler, __gnat_error_handler): Remove
14713         alternate stack setting. There was no support for the tasking cases
14714         and the changes eventually caused a number of side-effect failures in
14715         the non-tasking case too.
14716
14717 2004-04-29  Eric Botcazou  <ebotcazou@act-europe.fr>
14718
14719         lang-specs.h: Redirect output to /dev/null if -gnatc or -gnatz or
14720         -gnats is passed.
14721
14722 2004-04-29  Vincent Celier  <celier@gnat.com>
14723
14724         * make.adb (Gnatmake): Increase max size of argument array for
14725         gnatbind for the potential addition of -F.
14726         If there are Stand-Alone Library projects, invoke gnatbind with -F to
14727         be sure that elaboration flags will be checked.
14728
14729         * switch-c.adb: Correct call to Scan_Pos for -gnateI
14730
14731 2004-04-29  Thomas Quinot  <quinot@act-europe.fr>
14732
14733         * sem_warn.adb (Check_References): Move '<access-variable> may be
14734         null' warning out of under Warn_On_No_Value_Assigned.
14735
14736 2004-04-29  Ed Falis  <falis@gnat.com>
14737
14738         * gnat_ugn.texi: Fixed texi error
14739
14740 2004-04-29  Robert Dewar  <dewar@gnat.com>
14741
14742         * sem_ch4.adb (Remove_Abstract_Operations): Unconditionally remove
14743         abstract operations if they come from predefined files.
14744
14745         * gnat_rm.texi: Fix bad doc for pragma Elaboration_Checks (should be
14746         Dynamic, not RM).
14747
14748         * s-addope.adb: Correct obvious error in mod function
14749
14750 2004-04-28  Andrew W. Reynolds  <awreynolds@mac.com>
14751
14752         * Makefile.in: Add target pairs for powerpc darwin*
14753         tasking support.
14754
14755         * a-intnam-darwin.ads, s-osinte-darwin.adb,
14756         s-osinte-darwin.ads, system-darwin-ppc.ads: New files.
14757
14758 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
14759
14760         * Makefile.in: Add target macro definitions for s390*-linux*.
14761         * system-linux-s390.ads: New file.
14762         * system-linux-s390x.ads: New file.
14763
14764 2004-04-28  Joseph S. Myers  <jsm@polyomino.org.uk>
14765
14766         * gnat_ugn.texi: Correct argument to @setfilename.
14767
14768 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
14769
14770         * a-exexpr.adb (Unwind_Word): New data type.
14771         (Unwind_Exception): Use it as type of Private1 and Private2.
14772
14773         * raise.c (db_action_for): Fix debug printf.
14774
14775 2004-04-27  Ed Schonberg  <schonberg@gnat.com>
14776
14777         * a-wtmoio.ads: Formal type must be a modular type, not a signed
14778         integer type.
14779
14780 2004-04-27  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14781
14782         * decl.c (gnat_to_gnu_entity, case object): Call
14783         __builtin_update_setjmp_buf.
14784
14785         * gigi.h (update_setjmp_buf): Deleted.
14786         (ADT_update_setjmp_buf_decl, update_setjmp_buf_decl): New.
14787
14788         * misc.c: (update_setjmp_buf): Deleted.
14789
14790         * trans.c (gnat_to_gnu): Call do_pending_stack_adjust and emit_queue
14791         around block of RTL.
14792
14793         * utils.c (init_gigi_decls): Initialize update_setjmp_buf.
14794
14795 2004-04-26  Thomas Quinot  <quinot@act-europe.fr>
14796
14797         * sem_dist.adb, exp_dist.adb: When constructing a RAS value for a local
14798         subprogram for which no pragma All_Calls_Remote applies, store the
14799         address of the real subprogram in the underlying record type, so local
14800         dereferences do not go through the PCS.
14801
14802 2004-04-26  Robert Dewar  <dewar@gnat.com>
14803
14804         * i-c.ads: Add some type qualifications to avoid ambiguities when
14805         compiling with s-auxdec.ads and a non-private address type.
14806
14807 2004-04-26  Arnaud Charlet  <charlet@act-europe.fr>
14808
14809         * Makefile.rtl: Fix error in previous check-in:
14810         Add s-addope.o to non tasking object list (rather than tasking object
14811         list).
14812
14813 2004-04-26  Javier Miranda  <miranda@gnat.com>
14814
14815         * sem_aggr.adb: Fix typo in comments
14816         (Resolve_Aggr_Expr): Propagate the type to the nested aggregate.
14817         Required to check the null-exclusion attribute.
14818
14819         * sem_attr.adb (Resolve_Attribute): Check the accessibility level in
14820         case of anonymous access types in record and array components. For a
14821         component definition the level is the same of the enclosing composite
14822         type.
14823
14824         * sem_ch3.adb (Analyze_Component_Declaration): In case of components
14825         that are anonymous access types the level of accessibility depends on
14826         the enclosing type declaration. In order to have this information, set
14827         the scope of the anonymous access type to the enclosing record type
14828         declaration.
14829         (Array_Type_Declaration): In case of components that are anonymous
14830         access types the level of accessibility depends on the enclosing type
14831         declaration. In order to have this information, set the scope of the
14832         anonymous access type to the enclosing array type declaration.
14833
14834         * sem_ch3.adb (Array_Type_Declaration): Set the scope of the anonymous
14835         access type.
14836
14837         * sem_ch8.adb (Analyze_Object_Renaming): Add check to verify that
14838         renaming of anonymous access-to-constant types allowed if and only if
14839         the renamed object is access-to-constant.
14840
14841         * sem_util.adb (Type_Access_Level): In case of anonymous access types
14842         that are component_definition or discriminants of a nonlimited type,
14843         the level is the same as that of the enclosing component type.
14844
14845 2004-04-26  Sergey Rybin  <rybin@act-europe.fr>
14846
14847         * sem_elim.adb: Some minor code reorganization from code reading. Fix
14848         misprint in the function name (File_Name_Match).
14849
14850 2004-04-23  Laurent GUERBY <laurent@guerby.net>
14851
14852         * Makefile.in: Remove RANLIB_TEST, use -$(RANLIB) including after
14853         install.
14854
14855 2004-04-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14856
14857         * Make-lang.in (GNATBIND_OBJS): Add s-addope.o.
14858
14859 2004-04-23  Emmanuel Briot  <briot@act-europe.fr>
14860
14861         * adaint.c (__gnat_try_lock): No longer requires that the parent
14862         directory be writable, the directory itself is enough.
14863         (gnat_is_absolute_path): Change profile, so that the call from
14864         GNAT.OS_Lib can be made more efficient.
14865
14866         * adaint.h (gnat_is_absolute_path): Change profile, so that the call
14867         from GNAT.OS_Lib can be made more efficient.
14868
14869         * g-os_lib.adb (Is_Absolute_Path): More efficient implementation, avoid
14870         one copy of the file name. Found by code reading.
14871
14872 2004-04-23  Vincent Celier  <celier@gnat.com>
14873
14874         * gnat_ugn.texi: Add documentation for gnatmake switch -eL
14875         Correct documentation on gnatmake switches transmitted to the compiler
14876
14877         * ali.ads: Minor comment fix
14878
14879 2004-04-23  Javier Miranda  <miranda@gnat.com>
14880
14881         * sem_ch6.adb: (Confirming Types): Code cleanup
14882
14883         * decl.c (gnat_to_gnu_entity): Give support to anonymous access to
14884         subprogram types: E_Anonymous_Access_Subprogram_Type and
14885         E_Anonymous_Access_Protected_Subprogram_Type.
14886
14887 2004-04-23  Thomas Quinot  <quinot@act-europe.fr>
14888
14889         * sem_dist.adb: Add a new paramter to the RAS_Access TSS indicating
14890         whether a pragma All_Calls_Remote applies to the subprogram on which
14891         'Access is taken.
14892         No functional change is introduced by this revision; the new parameter
14893         will be used to allow calls to local RCI subprograms to be optimized
14894         to not use the PCS in the case where no pragma All_Calls_Remote applies,
14895         as is already done in the PolyORB implementation of the DSA.
14896
14897         * exp_dist.adb: Add a new paramter to the RAS_Access TSS indicating
14898         whether a pragma All_Calls_Remote applies to the subprogram on which
14899         'Access is taken.
14900         No functional change is introduced by this revision; the new parameter
14901         will be used to allow calls to local RCI subprograms to be optimized
14902         to not use the PCS in the case where no pragma All_Calls_Remote applies,
14903         as is already done in the PolyORB implementation of the DSA.
14904
14905 2004-04-23  Robert Dewar  <dewar@gnat.com>
14906
14907         * Makefile.rtl: Add entry for s-addope.o in run time library list
14908         * Make-lang.in: Add entry for s-addope.o to GNAT1 objects
14909         * s-addope.ads, s-addope.adb: New files.
14910
14911         * s-carsi8.adb, s-carun8.adb, s-casi16.adb, s-casi32.adb,
14912         s-casi64.adb, s-caun16.adb, s-caun32.adb, s-caun64.adb,
14913         s-finimp.adb, s-geveop.adb, s-stoele.adb: Modifications to allow
14914         System.Address to be non-private and signed.
14915
14916         * sem_elim.adb: Minor reformatting (fairly extensive)
14917         Some minor code reorganization from code reading
14918         Add a couple of ??? comments
14919
14920 2004-04-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14921
14922         * trans.c (tree_transform, build_unit_elab): Don't call getdecls.
14923         (tree_transform, case N_If_Statement): Remove non-determinism.
14924
14925         * utils.c (begin_subprog_body): Just set DECL_CONTEXT in PARM_DECL.
14926
14927 2004-04-23  Sergey Rybin  <rybin@act-europe.fr>
14928
14929         * gnat_rm.texi: Small fixes in the changes made in the 'pragma
14930         Eliminate' section.
14931
14932         * snames.ads, snames.adb: Remove Name_Homonym_Number (Homonym_Number is
14933         no longer used as a parameter name for Eliminate pragma).
14934
14935 2004-04-22  Laurent GUERBY <laurent@guerby.net>
14936
14937         PR optimization/14984
14938         PR optimization/14985
14939         * trans.c (gigi): Fix non determinism leading to bootstrap
14940         comparison failures.
14941
14942 2004-04-21  Pascal Obry  <obry@gnat.com>
14943
14944         * adaint.c (__gnat_portable_spawn): Quote first argument (argv[0])
14945         passed to spawnvp() to properly handle program pathname with spaces on
14946         Win32.
14947
14948 2004-04-21  Emmanuel Briot  <briot@act-europe.fr>
14949
14950         * g-debpoo.adb (Print_Info): Avoid extra work if Display_Slots is False.
14951         (Allocate, Deallocate, Free_Physically): Make sure the tasks are
14952         unlocked in case of exceptions.
14953
14954 2004-04-21  Joel Brobecker  <brobecker@gnat.com>
14955
14956         * gigi.h (get_target_no_dollar_in_label): Remove extern declaration.
14957         This function does not exist anymore.
14958
14959 2004-04-21  Thomas Quinot  <quinot@act-europe.fr>
14960
14961         * gnatbind.adb, gnatlink.adb: Update name of imported C symbol.
14962
14963         * link.c: Move variables to the __gnat name space.
14964
14965         * Makefile.in: list link.o explicitly when needed.
14966
14967         * mlib.adb: Remove pragma Linker_Option for "link.o" from mlib.
14968
14969 2004-04-21  Javier Miranda  <miranda@gnat.com>
14970
14971         * einfo.adb (Original_Access_Type): New subprogram
14972         (Set_Original_Access_Type): New subprogram
14973         (Write_Field21_Name): Write the name of the new field
14974
14975         * einfo.ads (Original_Access_Type): New field present in access to
14976         subprogram types.
14977         Addition of two new entities: E_Anonymous_Access_Subprogram_Type, and
14978         E_Anonymous_Access_Protected_Subprogram_Type.
14979
14980         * lib-xref.adb (Output_One_Ref): Give support to anonymous access to
14981         subprogram types.
14982
14983         * lib-xref.ads (Xref_Entity_Letters): Initialize values corresponding
14984         to anonymous access to subprogram types.
14985
14986         * sem_attr.adb (Resolve_Attribute): Give support to anonymous access
14987         to subprogram types.
14988
14989         * sem_ch3.adb (Access_Definition): Complete decoration of entities
14990         corresponding to anonymous access to subprogram types.
14991         (Analyze_Component_Declaration): Add new actual to the call to
14992         subprogram replace_anonymous_access_to_protected_subprogram.
14993         (Array_Type_Declaration): Add new actual to the call to subprogram
14994         replace_anonymous_access_to_protected_subprogram.
14995         (Process_Discriminants): Add new actual to the call to subprogram
14996         replace_anonymous_access_to_protected_subprogram.
14997         (Replace_Anonymous_Access_To_Protected_Subprogram): New formal.
14998
14999         * sem_ch3.ads (Replace_Anonymous_Access_To_Protected_Subprogram): New
15000         formal.
15001
15002         * sem_ch6.adb, sem_type.adb, sem_res.adb: Give support to anonymous
15003         access to subprogram types.
15004
15005         * sem_util.adb (Has_Declarations): Addition of package_specification
15006         nodes.
15007
15008 2004-04-21  Ed Schonberg  <schonberg@gnat.com>
15009
15010         * sem_prag.adb (Make_Inline): If subprogram is a renaming, propagate
15011         inlined flags to renamed entity only if in current unit.
15012
15013 2004-04-21  Thomas Quinot  <quinot@act-europe.fr>
15014
15015         * s-parint.ads: Add DSA implementation marker.
15016
15017         * rtsfind.ads, rtsfind.adb, snames.ads, snames.adb, s-rpc.adb: Use the
15018         value of System.Partition_Interface.DSA_Implementation to determine
15019         what version of the distributed systems annex is available (no
15020         implementation, GLADE, or PolyORB).
15021
15022 2004-04-21  Joel Brobecker  <brobecker@gnat.com>
15023
15024         * targtyps.c (get_target_no_dollar_in_label): Remove, no longer used.
15025
15026 2004-04-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15027
15028         * utils.c (convert, case CONSTRUCTOR, COMPONENT_REF): Do not make node
15029         with new type if alias sets differ.
15030         Fixes ACATS c41103b.
15031
15032 2004-04-21  Vincent Celier  <celier@gnat.com>
15033
15034         * prj.ads: Remove FORTRAN as an accepted language: not tested yet.
15035         Add array Lang_Args for the language specific compiling argument
15036         switches.
15037
15038         * gnat_ugn.texi: Explain in more details when a library is rebuilt.
15039
15040 2004-04-21  Sergey Rybin  <rybin@act-europe.fr>
15041
15042         * gnat_rm.texi: Update the descripton of the Eliminate pragma
15043         according to the recent changes in the format of the parameters of the
15044         pragma (replacing Homonym_Number with Source_Location).
15045
15046 2004-04-19  Arnaud Charlet  <charlet@act-europe.fr>
15047
15048         * 5isystem.ads: Removed, unused.
15049
15050         * gnat_rm.texi: Redo 1.13 change.
15051
15052 2004-04-19  Robert Dewar  <dewar@gnat.com>
15053
15054         * s-stoele.ads: Clean up definition of Storage_Offset (the new
15055         definition is cleaner, avoids the kludge of explicit Standard operator
15056         references, and also is consistent with a visible System.Address with
15057         no visible operations.
15058
15059         * s-geveop.adb: Add declarations to avoid assumption of visible
15060         operations on type System.Address (since these might not be available
15061         if Address is a non-private type for which the operations
15062         are made abstract).
15063
15064         * sem_eval.adb: Minor reformatting
15065
15066         * s-carsi8.ads, s-carun8.ads, s-casi16.ads, s-casi32.ads,
15067         s-casi64.ads, s-caun16.ads, s-caun32.ads, s-caun64.ads: Minor
15068         reformatting (new function spec format).
15069
15070         * s-auxdec.adb, s-carsi8.adb, s-carun8.adb, s-casi16.adb,
15071         s-casi32.adb, s-casi64.adb, s-caun16.adb, s-caun32.adb,
15072         s-caun64.adb: Add declarations to avoid assumption of visible
15073         operations on type System.Address (since these might not be available
15074         if Address is a non-private type for which the operations are made
15075         abstract).
15076
15077         * lib.ads, lib.adb (Synchronize_Serial_Number): New procedure.
15078
15079         * exp_intr.adb: Minor comment update
15080
15081         * exp_aggr.adb, exp_attr.adb, exp_ch13.adb: Minor reformatting.
15082
15083         * 5omastop.adb: Add declarations to avoid assumption of visible
15084         operations on type System.Address (since these might not be available
15085         if Address is a non-private type for which the operations
15086         are made abstract).
15087
15088 2004-04-19  Vincent Celier  <celier@gnat.com>
15089
15090         * switch-m.adb: (Scan_Make_Switches): Process new switch -eL
15091
15092         * prj-pars.ads (Parse): New Boolean parameter Process_Languages,
15093         defaulted to Ada.
15094
15095         * prj-proc.adb (Process): New Boolean parameter Process_Languages,
15096         defaulted to Ada.
15097         Call Check with Process_Languages.
15098         (Check): New Boolean parameter Process_Languages. Call Recursive_Check
15099         with Process_Languages.
15100         (Recursive_Check): New Boolean parameter Process_Languages. Call
15101         Nmsc.Ada_Check or Nmsc.Other_Languages_Check according to
15102         Process_Languages.
15103
15104         * prj-proc.ads (Process): New Boolean parameter Process_Languages,
15105
15106         * prj-util.ads, prj-util.adb (Executable_Of): New Boolean
15107         parameter Ada_Main, defaulted to True.
15108         Check for Ada specific characteristics only when Ada_Main is True.
15109
15110         * opt.ads: (Follow_Links): New Boolean flag for gnatmake
15111
15112         * prj.adb: (Project_Empty): Add new Project_Data components.
15113
15114         * prj.ads: New types and tables for non Ada languages.
15115         (Project_Data): New components Languages, Impl_Suffixes,
15116         First_Other_Source, Last_Other_Source, Imported_Directories_Switches,
15117         Include_Path, Include_Data_Set.
15118
15119         * prj-env.ads, prj-env.adb: Minor reformatting
15120
15121         * prj-nmsc.ads, prj-nmsc.adb: (Other_Languages_Check): New procedure
15122         Put subprograms in alphabetical order
15123
15124         * prj-pars.adb (Parse): New Boolean parameter Process_Languages,
15125         defaulted to Ada; Call Prj.Proc.Process with Process_Languages and
15126         Opt.Follow_Links.
15127
15128         * mlib-prj.adb: Back out modification in last version, as they are
15129         incorrect.
15130         (Build_Library.Check_Libs): Remove useless pragma Warnings (Off)
15131
15132         * make.adb: (Mains): Moved to package Makeutl
15133         (Linker_Opts): Moved to package Makeutl
15134         (Is_External_Assignment): Moved to package Makeutl
15135         (Test_If_Relative_Path): Moved to package Makeutl
15136         (Gnatmake): Move sorting of linker options to function
15137         Makeutl.Linker_Options_Switches.
15138
15139         * makeutl.ads, makeutl.adb: New files.
15140
15141         * Makefile.in: Add makeutl.o to the object files for gnatmake
15142
15143         * makeusg.adb: Add line for new switch -eL.
15144
15145         * gnatls.adb (Image): New function.
15146         (Output_Unit): If in verbose mode, output the list of restrictions
15147         specified by pragmas Restrictions.
15148
15149         * 5bml-tgt.adb, 5vml-tgt.adb (Build_Dynamic_Library): Do not use
15150         Text_IO.
15151
15152         * a-calend.adb (Split): Shift the date by multiple of 56 years, if
15153         needed, to put it in the range 1970 (included) - 2026 (excluded).
15154         (Time_Of): Do not shift Unix_Min_Year (1970).
15155         Shift the date by multiple of 56 years, if needed, to put it in the
15156         range 1970 (included) - 2026 (excluded).
15157
15158         * adaint.h, adaint.c (__gnat_set_executable): New function.
15159
15160 2004-04-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15161
15162         * trans.c (tree_transform, case N_Subprogram_Body): Temporarily push
15163         and pop GC context.
15164         (tree_transform, case N_Procedure_Call): Fix typo in setting TREE_TYPE.
15165         (tree_transform, case N_Label): Don't set LABEL_STMT_FIRST_IN_EH.
15166         (tree_transform, case N_Procedure_Call_Statement): Build a tree.
15167         (tree_transform, case N_Code_Statement): Likewise.
15168         (gnat_expand_stmt, case LABEL_STMT): Don't look at
15169         LABEL_STMT_FIRST_IN_EH.
15170         (gnat_expand_stmt, case ASM_STMT): New case.
15171
15172         * utils2.c (build_unary_op): Properly set TREE_READONLY of
15173         UNCONSTRAINED_ARRAY_REF.
15174
15175         * utils.c (poplevel): Temporarily push/pop GC context around inline
15176         function expansion.
15177
15178         * decl.c (maybe_variable): Properly set TREE_READONLY of
15179         UNCONSTRAINED_ARRAY_REF.
15180         (make_packable_type): Only reference TYPE_IS_PADDING_P for RECORD_TYPE.
15181
15182         * ada-tree.def: (ASM_STMT): New.
15183
15184         * ada-tree.h: (LABEL_STMT_FIRST_IN_EH): Deleted.
15185         (ASM_STMT_TEMPLATE, ASM_STMT_OUTPUT, ASM_STMT_ORIG_OUT,
15186         ASM_STMT_INPUT): New.
15187         (ASM_STMT_CLOBBER): Likewise.
15188
15189 2004-04-19  Thomas Quinot  <quinot@act-europe.fr>
15190
15191         * a-except.adb, s-parint.ads, s-parint.adb, types.ads, types.h: Use
15192         general rcheck mechanism to raise Program_Error for E.4(18), instead
15193         of a custom raiser in System.Partition_Interface.
15194         Part of general cleanup work before PolyORB integration.
15195
15196         * snames.ads, snames.adb: Add new runtime library entities and names
15197         for PolyORB DSA.
15198
15199         * sem_dist.ads, sem_dist.adb (Get_Subprogram_Id): Move from sem_dist to
15200         exp_dist.
15201         (Build_Subprogram_Id): New subprogram provided by exp_dist
15202         Code reorganisation in preparation for PolyORB integration.
15203
15204         * exp_dist.ads, exp_dist.adb (Get_Subprogram_Id): Move from sem_dist to
15205         exp_dist.
15206         (Build_Subprogram_Id): New subprogram provided by exp_dist
15207
15208         * sem_ch4.adb (Analyze_One_Call): Fix error message for mismatch in
15209         actual parameter types for call to dereference of an
15210         access-to-subprogram type.
15211
15212         * rtsfind.ads: Add new runtime library entities and names for PolyORB
15213         DSA.
15214
15215         * gnatlink.adb (Value): Remove. Use Interfaces.C.Strings.Value
15216         instead, which has the same behaviour here since we never pass it a
15217         NULL pointer.
15218
15219         * link.c (run_path_option, Solaris case): Use -Wl, as for other
15220         platforms.
15221
15222         * Makefile.in: adjust object file lists for gnatlink and gnatmake
15223         to account for new dependency upon Interfaces.C.Strings + link.o
15224         For x86 FreeBSD, use 86numaux.
15225
15226         * make.adb, gnatcmd.adb: Linker_Library_Path_Option has been moved up
15227         from Mlib.Tgt to Mlib.
15228
15229         * mlib.ads, mlib.adb (Linker_Library_Path_Option): New subprogram, now
15230         target-independent.
15231
15232         * mlib-tgt.ads, mlib-tgt.adb (Linker_Library_Path_Option): Remove
15233         target-specific versions of this subprogram, now implemented as a
15234         target-independent function in Mlib.
15235
15236         * 5aml-tgt.adb, 5bml-tgt.adb, 5gml-tgt.adb, 5hml-tgt.adb, 5lml-tgt.adb,
15237         5sml-tgt.adb, 5vml-tgt.adb, 5zml-tgt.adb, 5wml-tgt.adb
15238         (Linker_Library_Path_Option): Remove target-specific versions of this
15239         subprogram, now implemented as a target-independent function in Mlib.
15240
15241         * atree.adb: (Allocate_Initialize_Node): New subprogram.
15242         Factors out node table slots allocation.
15243         (Fix_Parents): New subprogram.
15244         Encapsulate the pattern of fixing up parent pointers for syntactic
15245         children of a rewritten node.
15246         (New_Copy_Tree): Use New_Copy to copy non-entity nodes.
15247         (Rewrite): Use New_Copy when creating saved copy of original node.
15248         (Replace): Use Copy_Node to copy nodes.
15249
15250 2004-04-19  Javier Miranda  <miranda@gnat.com>
15251
15252         * sprint.adb (Sprint_Node_Actual): Give support to the new
15253         Access_To_Subprogram node available in Access_Definition nodes. In
15254         addition, give support to the AI-231 node fields: null-exclusion,
15255         all-present, constant-present.
15256
15257         * sem_util.ads, sem_util.adb: (Has_Declarations): New subprogram
15258
15259         * sinfo.ads, sinfo.adb:
15260         New field Access_To_Subprogram_Definition in Access_Definition nodes
15261
15262         * sem_ch6.adb (Process_Formals): Move here the code that creates and
15263         decorates internal subtype declaration corresponding to the
15264         null-excluding formal. This code was previously in Set_Actual_Subtypes.
15265         In addition, carry out some code cleanup on this code. In case of
15266         access to protected subprogram call
15267         Replace_Anonymous_Access_To_Protected_Subprogram.
15268         (Set_Actual_Subtypes): Code cleanup.
15269
15270         * sem_ch8.adb (Analyze_Object_Renaming): Remove un-necessary call to
15271         Find_Type in case of anonymous access renamings. Add warning in case of
15272         null-excluding attribute used in anonymous access renaming.
15273
15274         * sem_ch3.ads (Replace_Anonymous_Access_To_Protected_Subprogram): New
15275         subprogram
15276
15277         * sem_ch3.adb (Replace_Anonymous_Access_To_Protected_Subprogram): New
15278         subprogram.
15279         (Access_Definition): In case of anonymous access to subprograms call
15280         the corresponding semantic routine to decorate the node.
15281         (Access_Subprogram_Declaration): Addition of some comments indicating
15282         some code that probably should be added here. Detected by comparison
15283         with the access_definition subprogram.
15284         (Analyze_Component_Declaration): In case of access to protected
15285         subprogram call Replace_Anonymous_Access_To_Protected.
15286         (Array_Type_Declaration): In case of access to protected subprogram call
15287         Replace_Anonymous_Access_To_Protected_Subprogram.
15288         (Process_Discriminants): In case of access to protected subprogram call
15289         Replace_Anonymous_Access_To_Protected_Subprogram.
15290
15291         * par.adb (P_Access_Definition): New formal that indicates if the
15292         null-exclusion part was present.
15293         (P_Access_Type_Definition): New formal that indicates if the caller has
15294         already parsed the null-excluding part.
15295
15296         * par-ch3.adb (P_Subtype_Declaration): Code cleanup.
15297         (P_Identifier_Declarations): Code cleanup and give support to renamings
15298         of anonymous access to subprogram types.
15299         (P_Derived_Type_Def_Or_Private_Ext_Decl): Code cleanup.
15300         (P_Array_Type_Definition): Give support to AI-254.
15301         (P_Component_Items): Give support to AI-254.
15302         (P_Access_Definition): New formal that indicates if the header was
15303         already parsed by the caller.
15304         (P_Access_Type_Definition): New formal that indicates if the caller has
15305         already parsed the null-excluding part.
15306
15307         * par-ch6.adb (P_Formal_Part): Add the null-excluding parameter to the
15308         call to P_Access_Definition.
15309
15310 2004-04-19  Geert Bosch  <bosch@gnat.com>
15311
15312         * checks.adb (Apply_Float_Conversion_Check): New procedure to implement
15313         the delicate semantics of floating-point to integer conversion.
15314         (Apply_Type_Conversion_Checks): Use Apply_Float_Conversion_Check.
15315
15316         * eval_fat.adb (Machine_Mantissa): Moved to spec.
15317         (Machine_Radix): New function.
15318
15319         * eval_fat.ads (Machine_Mantissa): Moved from body for use in
15320         conversion checks.
15321         (Machine_Radix): New function also for use in conversion checks.
15322
15323 2004-04-19  Ed Schonberg  <schonberg@gnat.com>
15324
15325         * par-prag.adb (Source_File_Name_Project): Fix typo in error message.
15326
15327         * exp_ch9.adb (Expand_Access_Protected_Subprogram_Type): Call analyze
15328         to decorate the access-to-protected subprogram and the equivalent type.
15329
15330         * checks.adb (Null_Exclusion_Static_Checks): Code cleanup. Give support
15331         to anonymous access to subprogram types.
15332
15333         * exp_ch4.adb (Expand_N_In): Preserve Static flag before
15334         constant-folding, for legality checks in contexts that require an RM
15335         static expression.
15336
15337         * exp_ch6.adb (Expand_N_Function_Call): If call may generate large
15338         temporary but stack checking is not enabled, increment serial number
15339         to so that symbol generation is consistent with and without stack
15340         checking.
15341
15342         * exp_util.ads, exp_util.adb (May_Generate_Large_Temp): Predicate is
15343         independent on whether stack checking is enabled, caller must check
15344         the corresponding flag.
15345
15346         * sem_ch3.adb (Constrain_Index): Index bounds given by attributes need
15347         range checks.
15348         (Build_Derived_Concurrent_Type): Inherit Is_Constrained flag from
15349         parent if it has discriminants.
15350         (Build_Derived_Private_Type): Constructed full view does
15351         not come from source.
15352         (Process_Discriminants): Default discriminants on a tagged type are
15353         legal if this is the internal completion of a private untagged
15354         derivation.
15355
15356         * sem_ch6.adb (Set_Actual_Subtypes): The generated declaration needs
15357         no constraint checks, because it corresponds to an existing object.
15358
15359         * sem_prag.adb (Process_Convention): Pragma applies
15360         only to subprograms in the same declarative part, i.e. the same unit,
15361         not the same scope.
15362
15363         * sem_res.adb (Valid_Conversion): In an instance or inlined body,
15364         ignore type mismatch on a numeric conversion if expression comes from
15365         expansion.
15366
15367 2004-04-19  Sergey Rybin  <rybin@act-europe.fr>
15368
15369         * sem_elim.adb (Process_Eliminate_Pragma): Remove the processing for
15370         Homonym_Number parameter, add processing for Source_Location parameter
15371         corresponding.
15372         (Check_Eliminated): Remove the check for homonym numbers, add the check
15373         for source location traces.
15374
15375         * sem_elim.ads (Process_Eliminate_Pragma): Replace Arg_Homonym_Number
15376         with Arg_Source_Location corresponding to the changes in the format of
15377         the pragma.
15378
15379         * sem_prag.adb: (Analyze_Pragma): Changes in the processing of
15380         Eliminate pragma corresponding to the changes in the format of the
15381         pragma: Homonym_Number is replaced with Source_Location, two ways of
15382         distinguishing homonyms are mutially-exclusive.
15383
15384 2004-04-19  Joel Brobecker  <brobecker@gnat.com>
15385
15386         * get_targ.ads (Get_No_Dollar_In_Label): Remove.
15387
15388         * exp_dbug.adb (Output_Homonym_Numbers_Suffix): Remove use of
15389         No_Dollar_In_Label, no longer necessary, as it is always True.
15390         (Strip_Suffixes): Likewise.
15391
15392 2004-04-19  Gary Dismukes  <dismukes@gnat.com>
15393
15394         * s-stalib.ads (type Exception_Code): Use Integer'Size for exponent of
15395         modulus for compatibility with size clause on targets with 16-bit
15396         Integer.
15397
15398         * layout.adb (Discrimify): In the case of private types, set Vtyp to
15399         full type to fix type mismatches on calls to size functions for
15400         discriminant-dependent array components.
15401
15402 2004-04-19  Jerome Guitton  <guitton@act-europe.fr>
15403
15404         * Makefile.in (gnatlib-zcx): New target, for building a ZCX run-time
15405         lib.
15406
15407 2004-04-19  Pascal Obry  <obry@gnat.com>
15408
15409         * mdll-utl.adb (Locate): New version is idempotent.
15410
15411 2004-04-17  Laurent Guerby <laurent@guerby.net>
15412
15413         PR ada/14988 (partial)
15414         * impunit.adb: Fix typo.
15415
15416 2004-04-14  Nathanael Nerode  <neroden@gcc.gnu.org>
15417
15418         * Make-lang.in: Remove obsolete rts-none, rts-cert, install-rts-none,
15419         and install-rts-cert targets.  Remove all gnatlib and gnattools
15420         targets and all other rts-* targets (moved to libada).  Remove (now)
15421         unused Make variables CHMOD, CHMOD_AX_FLAGS, shext, THREAD_KIND,
15422         TRACE, GNATLIBFLAGS, GNATLIBCFLAGS.
15423
15424 2004-04-08  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15425
15426         * trans.c (tree_transform): Shortcut returning error_mark_node for
15427         statements in annotate_only_mode.
15428         (tree_transform, case N_Label, case N_Return_Statement,
15429         N_Goto_Statement): Make statement tree instead of generating code.
15430         (tree_transform, case N_Assignment_Statement): No longer check
15431         type_annotate_only.
15432         (gnat_expand_stmt, case GOTO_STMT, case LABEL_STMT, case
15433         RETURN_STMT): New.
15434         (first_nondeleted_insn, build_block_stmt, make_expr_stmt_from_rtl):
15435         New fcns.
15436         (gnat_to_gnu): Collect any RTL generated and deal with it.
15437         (tree_transform, case N_And_Then): Refine when have non-null RTL_EXPR.
15438         (tree_transform case N_If_Statement): Rewrite to make IF_STMT.
15439         (gnat_expand_stmt, case BLOCK_STMT, IF_STMT): New cases.
15440
15441         * ada-tree.def (GOTO_STMT, LABEL_STMT, RETURN_STMT): New tree nodes.
15442
15443         * ada-tree.def (EXPR_STMT): Fix typo in name.
15444         (BLOCK_STMT, IF_STMT): New nodes.
15445
15446         * ada-tree.h (GOTO_STMT_LABEL, LABEL_STMT_LABEL,
15447         LABEL_STMT_FIRST_IN_EH): New macros.
15448         (RETURN_STMT_EXPR): Likewise.
15449
15450         * ada-tree.h: (BLOCK_STMT_LIST, IF_STMT_COND, IF_STMT_TRUE,
15451         IF_STMT_ELSEIF, IF_STMT_ELSE): New macros.
15452
15453 2004-04-08  Thomas Quinot  <quinot@act-europe.fr>
15454
15455         * atree.ads: Correct documentation on extended nodes.
15456
15457         * link.c: Set run_path_option for FreeBSD.
15458
15459 2004-04-08  Vincent Celier  <celier@gnat.com>
15460
15461         * mlib-prj.adb (Build_Library.Check_Libs): On OpenVMS, if dec.ali is
15462         one of the ALI file, do not link with DEC lib.
15463
15464         * par.adb Remove the last two characters ("%s" or "%b") when checking
15465         if a language defined unit may be recompiled.
15466
15467 2004-04-08  Ed Schonberg  <schonberg@gnat.com>
15468
15469         * sem_ch4.adb (Remove_Abstract_Operations): Improve error message when
15470         removal of abstract operation leaves no possible interpretation for
15471         expression.
15472
15473         * sem_eval.adb (Eval_Qualified_Expression): Use
15474         Set_Raises_Constraint_Error on node when needed, so that it does not
15475         get optimized away by subsequent optimizations.
15476
15477         * sem_res.adb (Resolve_Intrinsic_Operator): Save interpretations of
15478         operands even when they are not wrapped in a type conversion.
15479
15480 2004-04-08  Olivier Hainque  <hainque@act-europe.fr>
15481
15482         * sem_prag.adb (Set_Exported): Warn about making static as result of
15483         export only when the export is coming from source. This may be not
15484         be true e.g. on VMS where we expand export pragmas for exception codes
15485         together with imported or exported exceptions, and we don't want the
15486         user to be warned about something he didn't write.
15487
15488 2004-04-08  Thomas Quinot  <quinot@act-europe.fr>
15489
15490         * sem_util.adb (Note_Possible_Modification): Reorganize to remove code
15491         duplication between normal entities and those declared as renamings.
15492         No functional change.
15493
15494         * s-fileio.ads (Form): Remove pragma Inline, as we cannot currently
15495         inline functions returning an unconstrained result.
15496
15497 2004-04-08  Eric Botcazou  <ebotcazou@act-europe.fr>
15498
15499         * utils.c (type_for_mode): Handle BLKmode and VOIDmode properly, to
15500         conform to what other front-ends do.
15501
15502 2004-04-08  Doug Rupp  <rupp@gnat.com>
15503
15504         * 5vml-tgt.adb: Use Gas instead of VMS Macro to build auto init shared
15505         libraries.
15506
15507 2004-04-06  Pascal Obry  <obry@gnat.com>
15508
15509         * adaint.c (DIR_SEPARATOR): Properly set DIR_SEPARATOR on Win32.
15510
15511         * osint.adb (Program_Name): Do not look past a directory separator.
15512
15513 2004-04-06  Thomas Quinot  <quinot@act-europe.fr>
15514
15515         * atree.adb: Update comment (Rewrite_Substitute_Node no longer exists).
15516
15517         * exp_ch6.adb (Rewrite_Function_Call): Clarify documentation of
15518         requirement for preserving a copy of the original assignment node.
15519
15520         * sinfo.ads: Update comment (Original_Tree -> Original_Node).
15521
15522 2004-04-06  Olivier Hainque  <hainque@act-europe.fr>
15523
15524         (__gnat_initialize [Vxworks]): Enable references to the crtstuff bits
15525         when supported.
15526
15527 2004-04-06  Ed Schonberg  <schonberg@gnat.com>
15528
15529         * sem_ch4.adb (Remove_Abstract_Operations): Extend previous changes to
15530         operator calls in functional notation, and apply
15531         Universal_Interpretation to operands, not to their type.
15532
15533 2004-04-06  Robert Dewar  <dewar@gnat.com>
15534
15535         * 5wdirval.adb: Minor reformatting
15536
15537 2004-04-06  Ed Falis  <falis@gnat.com>
15538
15539         * gnat_rm.texi: Improve a reference to the GCC manual
15540
15541 2004-04-05  Vincent Celier  <celier@gnat.com>
15542
15543         * adaint.h, adaint.c: Add function __gnat_named_file_length
15544
15545         * impunit.adb: Add Ada.Directories to the list
15546
15547         * Makefile.in: Add VMS and Windows versions of
15548         Ada.Directories.Validity package body.
15549
15550         * Makefile.rtl: Add a-direct and a-dirval
15551
15552         * mlib-tgt.ads: Minor comment update.
15553
15554         * a-dirval.ads, a-dirval.adb, 5vdirval.adb, 5wdirval.adb,
15555         a-direct.ads, a-direct.adb: New files.
15556
15557 2004-04-05  Vincent Celier  <celier@gnat.com>
15558
15559         PR ada/13620
15560         * make.adb (Scan_Make_Arg): Pass any -fxxx switches to gnatlink, not
15561         just to the compiler.
15562
15563 2004-04-05  Robert Dewar  <dewar@gnat.com>
15564
15565         * a-except.adb (Exception_Name_Simple): Make sure lower bound of
15566         returned string is 1.
15567
15568         * ali-util.adb: Use proper specific form for Warnings (Off, entity)
15569
15570         * eval_fat.ads: Minor reformatting
15571
15572         * g-curexc.ads: Document that lower bound of returned string values
15573         is always one.
15574
15575         * gnatlink.adb: Add ??? comment for previous change
15576         (need to document why this is VMS specific)
15577
15578         * s-stoele.ads: Minor reformatting
15579
15580         * tbuild.ads: Minor reformatting throughout (new function specs)
15581
15582         * par-ch10.adb (P_Context_Clause): Handle comma instead of semicolon
15583         after WITH.
15584
15585         * scng.adb: Minor reformatting
15586
15587 2004-04-05  Geert Bosch  <bosch@gnat.com>
15588
15589         * eval_fat.adb (Machine): Remove unnecessary suppression of warning.
15590         (Leading_Part): Still perform truncation to machine number if the
15591         specified radix_digits is greater or equal to machine_mantissa.
15592
15593 2004-04-05  Javier Miranda  <miranda@gnat.com>
15594
15595         * par-ch3.adb: Complete documentation of previous change
15596         Correct wrong syntax documentation of the OBJECT_DECLARATION rule
15597         (aliased must appear before constant).
15598
15599         * par-ch4.adb: Complete documentation of previous change.
15600
15601         * par-ch6.adb: Complete documentation of previous change.
15602
15603         * sinfo.ads: Fix typo in commment.
15604
15605 2004-04-05  Ed Schonberg  <schonberg@gnat.com>
15606
15607         * sem_ch3.adb (Inherit_Components): If derived type is private and has
15608         stored discriminants, use its discriminants to constrain parent type,
15609         as is done for non-private derived record types.
15610
15611         * sem_ch4.adb (Remove_Abstract_Operations): New subprogram to implement
15612         Ada 2005 AI-310: an abstract non-dispatching operation is not a
15613         candidate interpretation in an overloaded call.
15614
15615         * tbuild.adb (Unchecked_Convert_To): Preserve conversion node if
15616         expression is Null and target type is not an access type (e.g. a
15617         non-private address type).
15618
15619 2004-04-05  Thomas Quinot  <quinot@act-europe.fr>
15620
15621         * exp_ch6.adb (Rewrite_Function_Call): When rewriting an assignment
15622         statement whose right-hand side is an inlined call, save a copy of the
15623         original assignment subtree to preserve enough consistency for
15624         Analyze_Assignment to proceed.
15625
15626         * sem_ch5.adb (Analyze_Assignment): Remove a costly copy of the
15627         complete assignment subtree which is now unnecessary, as the expansion
15628         of inlined call has been improved to preserve a consistent assignment
15629         tree.  Note_Possible_Modification must be called only
15630         after checks have been applied, or else unnecessary checks will
15631         be generated.
15632
15633         * sem_util.adb (Note_Possible_Modification): Reorganise the handling
15634         of explicit dereferences that do not Come_From_Source:
15635          - be selective on cases where we must go back to the dereferenced
15636            pointer (an assignment to an implicit dereference must not be
15637            recorded as modifying the pointer);
15638          - do not rely on Original_Node being present (Analyze_Assignment
15639            calls Note_Possible_Modification on a copied tree).
15640
15641         * sem_warn.adb (Check_References): When an unset reference to a pointer
15642         that is never assigned is encountered, prefer '<pointer> may be null'
15643         warning over '<pointer> is never assigned a value'.
15644
15645 2004-04-05  Ramon Fernandez  <fernandez@gnat.com>
15646
15647         * tracebak.c: Change STOP_FRAME in ppc vxworks to be compliant with
15648         the ABI.
15649
15650 2004-04-05  Olivier Hainque  <hainque@act-europe.fr>
15651
15652         * 5gmastop.adb (Pop_Frame): Comment out the pragma Linker_Option for
15653         libexc. We currently don't reference anything in this library and
15654         linking it in triggers linker warnings we don't want to see.
15655
15656         * init.c: Update comments.
15657
15658 2004-04-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15659
15660         * decl.c (gnat_to_gnu_entity): Use TYPE_READONLY.
15661         * utils.c (create_field_decl): Likewise.
15662         * utils2.c (build_unary_op, gnat_build_constructor): Likewise.
15663
15664 2004-04-02  Arnaud Charlet  <charlet@act-europe.fr>
15665
15666         * gnat-style.texi, gnat_rm.texi, gnat_ugn.texi: Remove RCS tags.
15667         Replace ifinfo by ifnottex, to make makeinfo --html happy again.
15668         Add info directory entry and category.
15669
15670 2004-04-02  Jan Hubicka  <jh@suse.cz>
15671
15672         * utils.c: Include function.h
15673         (end_subprog_body): Clear DECL_STRUCT_FUNCTION.
15674
15675 2004-04-01  Arnaud Charlet  <charlet@act-europe.fr>
15676
15677         PR ada/14150
15678         * Make-lang.in: Clean up generation of documentation
15679
15680         * gnat-style.texi, gnat_rm.texi, ug_words: Resync with AdaCore version
15681
15682         * xgnatug.adb: Removed, replaced by xgnatugn.adb
15683
15684         * xgnatugn.adb: Replaces xgnatug.adb
15685
15686         * gnat_ug.texi: Removed, replaced by gnat_ugn.texi
15687
15688         * gnat_ugn.texi: Replaces gnat_ug.texi. Resync with AdaCore version
15689
15690         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
15691         gnat_ug_wnt.texi: Removed.
15692
15693 2004-04-01  Arnaud Charlet  <charlet@act-europe.fr>
15694
15695         * utils2.c: Update copyright notice.
15696
15697 2004-04-01  Robert Dewar  <dewar@gnat.com>
15698
15699         * checks.adb: Minor reformatting throughout
15700         Note that prev checkin added RM reference to alignment warning
15701
15702 2004-04-01  Ed Schonberg  <schonberg@gnat.com>
15703
15704         * exp_aggr.adb (Get_Component_Val): Treat a string literal as
15705         non-static when building aggregate for bit-packed array.
15706
15707         * exp_ch4.adb (Expand_N_Slice): If a packed slice is an actual of a
15708         function call that is itself the actual in a procedure call, build
15709         temporary for it.
15710
15711         * exp_pakd.adb (Expand_Bit_Packed_Element_Set): If right-hand side is
15712         a string literal, create a temporary for it, constant folding only
15713         handles scalars here.
15714
15715 2004-04-01  Vincent Celier  <celier@gnat.com>
15716
15717         * ali-util.adb (Post_Scan, Error_Msg, Error_Msg_S, Error_Msg_SC,
15718         Error_Msg_SP): New empty procedures to instantiate the Scanner.
15719         (Style, Scanner): Instantiations of Styleg and Scng to be able to scan
15720         tokens.
15721         (Accumulate_Checksum, Initialize_Checksum): Remove procedures.
15722         (Get_File_Checksum): Use the instantiated scanner to scan all the tokens
15723         and get the checksum.
15724
15725         * make.adb (Gnatmake): Do not insert into Q the Main_Source if it is
15726         already in the Q.
15727         Increase the Marking_Label at the end of the Multiple_Main_Loop,
15728         instead of at the beginning.
15729
15730         * osint.adb (Lib_File_Name): Use Multi_Unit_Index_Character, not '~'
15731         directly.
15732         (Osint package elaboration): Change Multi_Unit_Index_Character to '$' if
15733         on VMS.
15734
15735         * osint.ads (Multi_Unit_Index_Character): New Character global variable
15736
15737         * osint-c.adb (Set_Library_Info_Name): Use Multi_Unit_Index_Character,
15738         not '~' directly.
15739
15740         * par.adb: Remove test on file name to detect language defined units.
15741         Add test on unit name, after parsing, to detect language defined units
15742         that are not compiled with -gnatg (except System.RPC and its children)
15743
15744         * par-ch10.adb (P_Compilation_Unit): In multi-unit sources, scan the
15745         following units without style checking.
15746
15747         * switch-c.adb: Change -gnatC to -gnateI
15748
15749         * usage.adb: Document new switch -gnateInnn
15750
15751         * scng.adb (Accumulate_Token_Checksum): New procedure
15752         (Scan): Call Accumulate_Token_Checksum after each identifier, reserved
15753         word or literal number.
15754         (Scan.Nlit.Scan_Integer): Do not accumulate internal '_' in litteral
15755         numbers.
15756
15757 2004-04-01  Thomas Quinot  <quinot@act-europe.fr>
15758
15759         * a-tasatt.adb,
15760         g-comlin.adb, sinput-c.adb, s-secsta.adb, s-tpobop.adb,
15761         switch-m.adb, 56taprop.adb, 5ginterr.adb, 5gmastop.adb,
15762         5staprop.adb, 5vinterr.adb, 5vtaprop.adb, 5vtpopde.adb,
15763         5vtpopde.adb: Add missing 'constant' keywords.
15764
15765 2004-04-01  Javier Miranda  <miranda@gnat.com>
15766
15767         * par-ch4.adb: (P_Allocator): Code cleanup
15768
15769         * sem_ch3.adb (Access_Definition): Properly set the null-excluding
15770         attribute.
15771
15772         * sinfo.ads: Complete documentation of previous change
15773
15774 2004-04-01  Pascal Obry  <obry@gnat.com>
15775
15776         * gnatlink.adb (Process_Binder_File): Remove duplicate linker options
15777         only on VMS.  This special handling was done because an old GNU/ld bug
15778         on Windows which has been fixed.
15779
15780 2004-04-01  GNAT Script  <nobody@gnat.com>
15781
15782         * Make-lang.in: Makefile automatically updated
15783
15784 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15785
15786         * decl.c (gnat_to_gnu_entity, make_type_from_size):
15787         Use TYPE_UNSIGNED, not TREE_UNSIGNED.
15788         * trans.c (tree_transform, convert_with_check): Likewise.
15789         * utils.c (gnat_signed_or_unsigned_type): Likewise.
15790         (build_vms_descriptor, unchecked_convert): Likewise.
15791         * utils2.c (nonbinary_modular_operation): Likewise.
15792
15793 2004-03-29  Javier Miranda  <miranda@gnat.com>
15794
15795         * checks.adb (Null_Exclusion_Static_Checks): New subprogram
15796         (Install_Null_Excluding_Check): Local subprogram that determines whether
15797         an access node requires a runtime access check and if so inserts the
15798         appropriate run-time check.
15799         (Apply_Access_Check): Call Install_Null_Excluding check if required
15800         (Apply_Constraint_Check): Call Install_Null_Excluding check if required
15801
15802         * checks.ads: (Null_Exclusion_Static_Checks): New subprogram
15803
15804         * einfo.ads: Fix typo in comment
15805
15806         * exp_ch3.adb (Build_Assignment): Generate conversion to the
15807         null-excluding type to force the corresponding run-time check.
15808         (Expand_N_Object_Declaration): Generate conversion to the null-excluding
15809         type to force the corresponding run-time check.
15810
15811         * exp_ch5.adb (Expand_N_Assignment_Statement): Generate conversion to
15812         the null-excluding type to force the corresponding run-time check.
15813
15814         * exp_ch6.adb (Expand_Call): Do not generate the run-time check in
15815         case of access types unless they have the null-excluding attribute.
15816
15817         * sprint.adb (Sprint_Node_Actual): Give support to the null-exclusing
15818         part.
15819
15820         * exp_util.ads: Fix typo in comment
15821
15822         * par.adb (P_Null_Exclusion): New subprogram
15823         (P_Subtype_Indication): New formal that indicates if the null-excluding
15824         part has been scanned-out and it was present
15825
15826         * par-ch3.adb, par-ch4.adb, par-ch6.adb: Give support to AI-231
15827
15828         * sem_aggr.adb: (Check_Can_Never_Be_Null): New subprogram
15829         (Aggregate_Constraint_Checks): Generate conversion to the null-excluding
15830         type to force the corresponding run-time check
15831         (Resolve_Aggregate): Propagate the null-excluding attribute to the array
15832         components
15833         (Resolve_Array_Aggregate): Carry out some static checks
15834         (Resolve_Record_Aggregate.Get_Value): Carry out some static check
15835
15836         * sem_ch3.adb (Access_Definition): In Ada 0Y the Can_Never_Be_Null
15837         attribute must be set only if specified by means of the null-excluding
15838         part. In addition, we must also propagate the access-constant attribute
15839         if present.
15840         (Access_Subprogram_Declaration, Access_Type_Declaration,
15841         Analyze_Component_Declaration, Analyze_Object_Declaration,
15842         Array_Type_Declaration, Process_Discriminants,
15843         Analyze_Subtype_Declaration): Propagate the null-excluding attribute
15844         and carry out some static checks.
15845         (Build_Derived_Access_Type): Set the null-excluding attribute
15846         (Derived_Type_Declaration, Process_Subtype): Carry out some static
15847         checks.
15848
15849         * sem_ch4.adb (Analyze_Allocator): Carry out some static checks
15850
15851         * sem_ch5.adb (Analyze_Assignment): Carry out some static checks
15852
15853         * sem_ch6.adb (Process_Formals): Carry out some static checks.
15854         (Set_Actual_Subtypes): Generate null-excluding subtype if the
15855         null-excluding part was present; it is not required to be done here in
15856         case of anonymous access types.
15857         (Set_Formal_Mode): Ada 0Y allows anonymous access to have the null
15858         value.
15859
15860         * sem_res.adb (Resolve_Actuals): Carry out some static check
15861         (Resolve_Null): Allow null in anonymous access
15862
15863         * sinfo.adb: New subprogram Null_Exclusion_Present
15864         All_Present and Constant_Present available on access_definition nodes
15865
15866         * sinfo.ads: New flag Null_Exclusion_Present on subtype_declaration,
15867         object_declaration, derived_type_definition, component_definition,
15868         discriminant_specification, access_to_object_definition,
15869         access_function_definition, allocator, access_procedure_definition,
15870         access_definition, parameter_specification, All_Present and
15871         Constant_Present flags available on access_definition nodes.
15872
15873 2004-03-29  Robert Dewar  <dewar@gnat.com>
15874
15875         * fname.adb, fname.ads, fname-sf.adb, fname-uf.adb, fname-uf.ads,
15876         gnat1drv.adb, lib.adb, lib.ads, lib-load.adb, lib-writ.adb,
15877         opt.ads, osint.adb, osint.ads, osint-c.adb, par.adb,
15878         par-ch10.adb, par-load.adb, par-prag.adb, sfn_scan.adb,
15879         sfn_scan.ads, sinput-l.adb, sinput-l.ads, switch-c.adb,
15880         sem_prag.adb: Updates to handle multiple units/file
15881
15882         * par.adb: Change test for s-rpc to s-rp for detecting rpc and children
15883
15884         * par.adb, memtrack.adb, prj-makr.adb, prj-part.adb,
15885         sem_util.adb: Minor reformatting
15886
15887         * sem_ch12.adb: Add comment for previous change
15888
15889 2004-03-29  Laurent Pautet  <pautet@act-europe.fr>
15890
15891         * osint.adb (Executable_Prefix): Set Exec_Name to the current
15892         executable name when not initialized. Otherwise, use its current value.
15893
15894         * osint.ads (Exec_Name): Move Exec_Name from body to spec in order to
15895         initialize it to another executable name than the current one. This
15896         allows to configure paths for an executable name (gnatmake) different
15897         from the current one (gnatdist).
15898
15899 2004-03-29  Ed Schonberg  <schonberg@gnat.com>
15900
15901         * exp_ch6.adb (Expand_Call): A call to a function declared in the
15902         current unit cannot be inlined if it appears in the body of a withed
15903         unit, to avoid order of elaboration problems in gigi.
15904
15905         * exp_ch9.adb (Build_Protected_Sub_Specification): Generate debugging
15906         information for protected (wrapper) operation as well, to simplify gdb
15907         use.
15908
15909         * sem_ch6.adb (Analyze_Subprogram_Body): For a private operation in a
15910         protected body, indicate that the entity for the generated spec comes
15911         from source, to ensure that references are properly generated for it.
15912         (Build_Body_To_Inline): Do not inline a function that returns a
15913         controlled type.
15914
15915         * sem_prag.adb (Process_Convention): If subprogram is overloaded, only
15916         apply convention to homonyms that are declared explicitly.
15917
15918         * sem_res.adb (Make_Call_Into_Operator): If the operation is a function
15919         that renames an equality operator and the operands are overloaded,
15920         resolve them with the declared formal types, before rewriting as an
15921         operator.
15922
15923 2004-03-29  GNAT Script  <nobody@gnat.com>
15924
15925         * Make-lang.in: Makefile automatically updated
15926
15927 2004-03-25  Vasiliy Fofanov  <fofanov@act-europe.fr>
15928
15929         * memtrack.adb: Log realloc calls, which are treated as free followed
15930         by alloc.
15931
15932 2004-03-25  Vincent Celier  <celier@gnat.com>
15933
15934         * prj-makr.adb (Process_Directories): Detect when a file contains
15935         several units. Do not include such files in the config pragmas or
15936         in the naming scheme.
15937
15938         * prj-nmsc.adb (Record_Source): New parameter Trusted_Mode.
15939         Resolve links only when not in Trusted_Mode.
15940         (Find_Sources, Recursive_Find_Dirs, Find_Source_Dirs, Locate_Directory):
15941         Do not resolve links for the display names.
15942
15943         * prj-part.adb (Parse_Single_Project, Project_Path_Name_Of): Do not
15944         resolve links when computing the display names.
15945
15946 2004-03-25  Thomas Quinot  <quinot@act-europe.fr>
15947
15948         * sem_attr.adb (Check_Dereference): When the prefix of a 'Tag
15949         attribute reference does not denote a subtype, it can be any
15950         expression that has a classwide type, potentially after an implicit
15951         dereference.  In particular, the prefix can be a view conversion for
15952         a classwide type (for which Is_Object_Reference holds), but it can
15953         also be a value conversion for an access-to-classwide type. In the
15954         latter case, there is an implicit dereference, and the original node
15955         for the prefix does not verify Is_Object_Reference.
15956
15957         * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): A view
15958         conversion of a discriminant-dependent component of a mutable object
15959         is one itself.
15960
15961 2004-03-25  Ed Schonberg  <schonberg@gnat.com>
15962
15963         * freeze.adb (Freeze_Entity): When an inherited subprogram is
15964         inherited, has convention C, and has unconstrained array parameters,
15965         place the corresponding warning on the derived type declaration rather
15966         than the original subprogram.
15967
15968         * sem_ch12.adb (Instantiate_Formal_Subprogram): Set From_Default
15969         indication on renaming declaration, if formal has a box and actual
15970         is absent.
15971
15972         * sem_ch8.adb (Analyze_Subprogram_Renaming): Use From_Default flag to
15973         determine whether to generate an implicit or explicit reference to
15974         the renamed entity.
15975
15976         * sinfo.ads, sinfo.adb: New flag From_Default, to indicate that a
15977         subprogram renaming comes from a defaulted formal subprogram in an
15978         instance.
15979
15980 2004-03-25  Gary Dismukes  <dismukes@gnat.com>
15981
15982         * sem_elab.adb (Check_Elab_Call): Refine loop that checks for default
15983         value expressions to ensure that calls within a component definition
15984         will be checked (since those are evaluated during the record type's
15985         elaboration).
15986
15987 2004-03-25  Arnaud Charlet  <charlet@act-europe.fr>
15988
15989         * s-tpobop.adb: Code clean up:
15990         (Requeue_Call): Extract from PO_Service_Entries to remove duplicated
15991         code.
15992         (PO_Do_Or_Queue): Remove duplicated code and use Requeue_Call.
15993
15994 2004-03-25  Jose Ruiz  <ruiz@act-europe.fr>
15995
15996         * Makefile.in: Clean up in the ravenscar run time.
15997
15998 2004-03-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15999
16000         * decl.c (gnat_to_gnu_entity, case E_Access_Type): Pass value
16001         of No_Strict_Aliasing to build_pointer_type_for_mode.
16002         * utils.c (update_pointer_to): Walk pointer and ref chains.
16003
16004 2004-03-22  Cyrille Comar  <comar@act-europe.fr>
16005
16006         * ali.ads: Fix Comment about Dynamic_Elab.
16007
16008         * gnatls.adb (Output_Unit): Add output of many flags (Dynamic_Elab,
16009         Has_RACW, Is_Generic, etc.)
16010         (Output_Object, Gnatls): Take into account ALI files not attached to
16011         an object.
16012
16013 2004-03-22  Vincent Celier  <celier@gnat.com>
16014
16015         * gprep.adb: Change all String_Access to Name_Id
16016         (Is_ASCII_Letter): new function
16017         (Double_File_Name_Buffer): New procedure
16018         (Preprocess_Infile_Name): New procedure
16019         (Process_Files): New procedure
16020         (Gnatprep): Check if output and input are existing directories.
16021         Call Process_Files to do the real job.
16022
16023 2004-03-22  Robert Dewar  <dewar@gnat.com>
16024
16025         * prj-env.adb, prj-nmsc.ads, prj-proc.ads,
16026         s-stache.ads, s-stache.adb: Comment updates. Minor reformatting.
16027
16028 2004-03-22  Sergey Rybin  <rybin@act-europe.fr>
16029
16030         * scn.adb (Contains): Add check for EOF, is needed for a degenerated
16031         case when the source contains only comments.
16032
16033 2004-03-22  Ed Schonberg  <schonberg@gnat.com>
16034
16035         * sem_ch10.adb (Analyze_Compilation_Unit): When generating a
16036         declaration for a child subprogram body that acts as a spec, indicate
16037         that the entity in the declaration needs debugging information.
16038
16039         * sem_ch3.adb (Complete_Private_Subtype): Do not build an underlying
16040         full view if the subtype is created for a constrained record component;
16041         gigi has enough information to construct the record, and there is no
16042         place in the tree for the declaration.
16043
16044         * sem_ch6.adb (Build_Body_To_Inline): Use an internal name without
16045         serial number for the dummy body that is built for analysis, to avoid
16046         inconsistencies in the generation of internal names when compiling
16047         with -gnatN.
16048
16049 2004-03-22  Thomas Quinot  <quinot@act-europe.fr>
16050
16051         * sem_util.adb (Is_Object_Reference): A view conversion denotes an
16052         object.
16053
16054 2004-03-22  GNAT Script  <nobody@gnat.com>
16055
16056         * Make-lang.in: Makefile automatically updated
16057
16058 2004-03-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16059
16060         * decl.c (gnat_to_gnu_entity): Use SUBSTITUTE_PLACEHOLDER_IN_EXPR.
16061         * trans.c (tree_transform, emit_index_check): Likewise.
16062         * utils.c (build_template): Likewise.
16063         (max_size, convert): Remove handling of WITH_RECORD_EXPR.
16064         (maybe_unconstrained_array, unchecked_convert): Likewise.
16065         * utils2.c (gnat_truthvalue_conversion, build_binary_op): Likewise.
16066         (build_unary_op): Likewise.
16067         (compare_arrays, build_allocator): Use SUBSTITUTE_PLACEHOLDER_IN_EXPR.
16068         (fill_vms_descriptor): Likewise.
16069         (build_call_alloc_dealloc): Likewise.
16070         ALIGN is unsigned.
16071         * gigi.h (build_call_alloc_dealloc): Alignment is unsigned.
16072
16073 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
16074
16075         PR other/14630
16076         * gnat_ug.texi: Add info directory category and entry.
16077         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
16078         gnat_ug_wnt.texi: Regenerate.
16079
16080 2004-03-19  Arnaud Charlet  <charlet@act-europe.fr>
16081
16082         * ada-tree.h: Update copyright notice.
16083         Minor reformatting.
16084
16085 2004-03-19  Olivier Hainque  <hainque@act-europe.fr>
16086
16087         * decl.c (gnat_to_gnu_entity, case E_Exception): Handle VMS exceptions
16088         as regular exception objects and not as mere integers representing the
16089         condition code.  The latter approach required some dynamics to mask off
16090         severity bits, which did not fit well into the GCC table based model.
16091         (gnat_to_gnu_entity, objects): Don't supply an external name for VMS
16092         exception data objects. We don't it and it would conflict with the other
16093         external symbol we have to generate for such exceptions.
16094
16095         * trans.c (tree_transform, case N_Exception_Handler): Remove part of
16096         the special code for VMS exceptions, since these are now represented
16097         as regular exceptions objects.
16098
16099 2004-03-19 Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16100
16101         * decl.c (debug_no_type_hash): Remove.
16102         (gnat_to_gnu_entity, case E_Array_Type): Don't set and clear it.
16103         * misc.c (LANG_HOOK_HASH_TYPE): Redefine.
16104
16105 2004-03-19  Laurent Guerby <laurent@guerby.net>
16106
16107         * sem_prag.adb (Suppress_Unsuppress_Echeck): use loop instead of
16108         aggregate, allows bootstrap from 3.3 on powerpc-darwin.
16109
16110 2004-03-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16111
16112         * ada-tree.h (TYPE_LEFT_JUSTIFIED_MODULAR_P): Add checking.
16113         (TYPE_CONTAINS_TEMPLATE_P, TYPE_OBJECT_RECORD_TYPE): Likewise.
16114         (TYPE_RM_SIZE_INT): Directly use type.values.
16115         (TREE_LOOP_ID): Clean up check.
16116         * decl.c (gnat_to_gnu_entity, case E_Enumeration_Type): Use
16117         TYPE_VALUES, not TYPE_FIELDS.
16118         * trans.c (convert_with_check): Delay access of bounds of basetype
16119         until sure is numeric.
16120
16121 2004-03-18  Arnaud Charlet  <charlet@act-europe.fr>
16122
16123         * 5atpopsp.adb: Remove RTEMS from list of platforms using this file.
16124
16125         Code clean up:
16126         * 5ataprop.adb, 5ftaprop.adb, 5htaprop.adb, 5itaprop.adb, 5staprop.adb,
16127         5vtaprop.adb, 5wtaprop.adb, 7staprop.adb (Finalize_TCB): Use
16128         Specific.Set instead of direct call to e.g pthread_setspecific.
16129
16130 2004-03-18  Thomas Quinot  <quinot@act-europe.fr>
16131
16132         * adaint.c: Update comments.
16133
16134         * Makefile.in: set PREFIX_OBJS, SYMLIB, THREADSLIB, and
16135         GNATLIB_SHARED for FreeBSD.
16136
16137 2004-03-18  Jose Ruiz  <ruiz@act-europe.fr>
16138
16139         * init.c [VxWorks]: Do not fix the stack size for the environment task.
16140         When needed (stack checking) the stack size is retrieved
16141         from the VxWorks kernel.
16142
16143         * Makefile.in: Flag -nostdinc is required when building the run time
16144         for avoiding looking for files in the base compiler.
16145         Add the VxWorks specific version of the package body for
16146         System.Stack_checking.Operations (5zstchop.adb).
16147
16148         * Make-lang.in: Add the object file for
16149         System.Stack_Checking.Operations.
16150
16151         * Makefile.rtl: Add object file for the package
16152         System.Stack_Checking.Operations.
16153
16154         * s-stchop.ads, s-stchop.adb, 5zstchop.adb: New files.
16155
16156         * s-stache.ads, s-stache.adb: Move the operations related to stack
16157         checking from this package to package System.Stack_Checking.Operations.
16158         This way, stack checking operations are only linked in the final
16159         executable when using the -fstack-check flag.
16160
16161 2004-03-18  Doug Rupp  <rupp@gnat.com>
16162
16163         * Makefile.in [VMS]: Handle 64 bit specs (5qsystem.ads, 5xcrtl.ads).
16164         Reorganize ifeq's.
16165
16166         * 5qsystem.ads, 5xcrtl.ads: New files.
16167
16168 2004-03-18  Vincent Celier  <celier@gnat.com>
16169
16170         * prj.adb (Reset): Reset hash table Files_Htable
16171
16172         * prj-env.adb (Source_Paths, Object_Paths): New tables.
16173         (Add_To_Source_Path, Add_To_Object_Path): New procedures, to replace
16174         the procedures Add_To_Path_File.
16175         (Set_Ada_Paths): Accumulate source and object dirs in the tables,
16176         making sure that each directory is present only once and, for object
16177         dirs, when a directory already present is added, the duplicate is
16178         removed and the directory is always put as the last in the table.
16179         Write the path files at the end of these accumulations.
16180
16181         * prj-nmsc.adb (Record_Source): Add source file name in hash table
16182         Files_Htable for all sources.
16183
16184         * prj-proc.adb (Process): Remove restrictions between not directly
16185         related extending projects.
16186
16187 2004-03-18  Emmanuel Briot  <briot@act-europe.fr>
16188
16189         * prj-nmsc.ads, prj-nmsc.adb (Ada_Check): New parameter Trusted_Mode.
16190         (Find_Sources): Minor speed optimization.
16191
16192         * prj-proc.ads, prj-proc.adb (Check, Recursive_Check, Process): New
16193         parameter Trusted_Mode.
16194
16195 2004-03-18  Sergey Rybin  <rybin@act-europe.fr>
16196
16197         * scn.adb (Determine_License): Take into account a degenerated case
16198         when the source contains only comments.
16199
16200 2004-03-18  Ed Schonberg  <schonberg@gnat.com>
16201
16202         * sem_warn.adb (Check_References): For a warning on a selected
16203         component that does not come from source, locate an uninitialized
16204         component of the record type to produce a more precise error message.
16205
16206 2004-03-15  Jerome Guitton  <guitton@act-europe.fr>
16207
16208         * 3zsoccon.ads: Fix multicast options.
16209
16210         * s-thread.ads: Move unchecked conversion from ATSD_Access to Address
16211         in the spec.
16212
16213 2004-03-15  Robert Dewar  <dewar@gnat.com>
16214
16215         * sem_prag.adb: Make sure No_Strict_Aliasing flag is set right when
16216         pragma used for a private type.
16217
16218         * lib-xref.adb (Generate_Reference): Do not generate warning if
16219         reference is in a different unit from the pragma Unreferenced.
16220
16221         * 5vtpopde.adb: Minor reformatting
16222         Fix casing of To_Task_ID
16223
16224         * sem_ch13.adb (Validate_Unchecked_Conversion): Set No_Strict_Aliasing
16225         flag if we have an unchecked conversion to an access type in the same
16226         unit.
16227
16228 2004-03-15  Geert Bosch  <bosch@gnat.com>
16229
16230         * a-ngcoty.adb (Modulus): In alternate formula for large real or
16231         imaginary parts, use Double precision throughout.
16232
16233         * a-tifiio.adb (Put_Scaled): Remove remaining pragma Debug. Not only
16234         we want to be able to compile run-time with -gnata for testing, but
16235         this may also be instantiated in user code that is compiled with -gnata.
16236
16237 2004-03-15  Olivier Hainque  <hainque@act-europe.fr>
16238
16239         * s-stalib.ads (Exception_Code): New type, to represent Import/Export
16240         codes. Having a separate type for this is useful to enforce consistency
16241         throughout the various run-time units.
16242         (Exception_Data): Use Exception_Code for Import_Code.
16243
16244         * s-vmextra.ads, s-vmexta.adb: Use Exception_Code instead of a mix of
16245         Natural and Integer in various places.
16246         (Register_VMS_Exception): Use Base_Code_In to compute the exception code
16247         with the severity bits masked off.
16248         (Register_VMS_Exception): Handle the additional exception data pointer
16249         argument.
16250
16251         * raise.c (_GNAT_Exception structure): Remove the handled_by_others
16252         component, now reflected by an exported accessor.
16253         (is_handled_by): New routine to compute whether the propagated
16254         occurrence matches some handler choice specification. Extracted out of
16255         get_action_description_for, and expanded to take care of the VMS
16256         specifities.
16257         (get_action_description_for): Use is_handled_by instead of an explicit
16258         complex condition to decide if the current choice at hand catches the
16259         propagated occurrence.
16260
16261         * raise.h (Exception_Code): New type for C.
16262
16263         * rtsfind.ads (RE_Id, RE_Unit_Table): Add
16264         System.Standard_Library.Exception_Code, to allow references from the
16265         pragma import/export expander.
16266
16267         * a-exexpr.adb (Is_Handled_By_Others, Language_For, Import_Code_For):
16268         New accessors to allow easy access to GNAT exception data
16269         characteristics.
16270         (GNAT_GCC_Exception record, Propagate_Exception): Get rid of the
16271         redundant Handled_By_Others component, helper for the personality
16272         routine which will now be able to call the appropriate exception data
16273         accessor instead.
16274
16275         * cstand.adb (Create_Standard): Adjust the type of the Import_Code
16276         component of Standard_Exception_Type to be the closest possible to
16277         Exception_Code in System.Standard_Library, that we cannot get at this
16278         point. Expand a ??? comment to notify that this type node should
16279         probably be rewritten later on.
16280
16281         * exp_prag.adb (Expand_Pragma_Import_Export_Exception): Adjust the
16282         registration call to include a pointer to the exception object in the
16283         arguments.
16284
16285         * init.c (__gnat_error_handler): Use Exception_Code and Base_Code_In
16286         instead of int and explicit bitmasks.
16287
16288 2004-03-15  Vincent Celier  <celier@gnat.com>
16289
16290         * vms_data.ads: Add new GNAT BIND qualifier /STATIC. Makes /NOSHARED
16291         equivalent to /STATIC and /NOSTATIC equivalent to /SHARED.
16292
16293         * a-tasatt.adb (To_Access_Code): Remove this UC instantiation, no
16294         longer needed now that it is in the spec of
16295         System.Tasking.Task_Attributes.
16296
16297         * adaint.h, adaint.c: (__gnat_create_output_file): New function
16298
16299         * gnatcmd.adb: Fix bug introduced in previous rev: /= instead of =
16300
16301         * g-os_lib.ads, g-os_lib.adb (Create_Output_Text_File): New function.
16302
16303         * make.adb (Gnatmake): Do not check the executable suffix; it is being
16304         taken care of in Scan_Make_Arg.
16305         (Scan_Make_Arg): Add the executable suffix only if the argument
16306         following -o, in canonical case, does not end with the executable
16307         suffix.  When in verbose mode and executable file name does not end
16308         with executable suffix, output the executable name, in canonical case.
16309
16310         * s-tataat.ads (Access_Dummy_Wrapper): Add pragma No_Strict_Aliasing
16311         to avoid warnings when instantiating Ada.Task_Attributes.
16312         Minor reformating.
16313
16314         * mlib-prj.adb (Process_Imported_Libraries): Get the imported libraries
16315         in the correct order.
16316
16317         * prj-makr.adb (Process_Directory): No longer use GNAT.Expect, but
16318         redirect standard output and error to a file for the invocation of the
16319         compiler, then read the file.
16320
16321         * prj-nmsc.adb (Find_Sources): Use the Display_Value for each
16322         directory, instead of the Value.
16323         (Find_Source_Dirs): Remove useless code & comments.
16324
16325 2004-03-15  Ed Schonberg  <schonberg@gnat.com>
16326
16327         * exp_ch3.adb (Freeze_Record_Type): If a primitive operation of a
16328         tagged type is inherited, and the parent operation is not frozen yet,
16329         force generation of a freeze node for the inherited operation, so the
16330         corresponding dispatch entry is properly initialized.
16331         (Make_Predefined_Primitive_Specs): Check that return type is Boolean
16332         when looking for user-defined equality operation.
16333
16334         * exp_ch4.adb (Expand_Composite_Equality): Check that return type is
16335         boolean when locating primitive equality of tagged component.
16336
16337         * exp_ch5.adb (Expand_Assign_Array): If the left-hand side is a
16338         bit-aligned field and the right-hand side a string literal, introduce
16339         a temporary before expanding assignment into a loop.
16340
16341         * exp_ch9.adb (Expand_N_Task_Type_Declaration): Copy expression for
16342         priority in full, to ensure that any expanded subepxressions of it are
16343         elaborated in the scope of the init_proc.
16344
16345         * exp_prag.adb (Expand_Pragma_Import): Search for initialization call
16346         after object declaration, skipping over code that may have been
16347         generated for validity checks.
16348
16349         * sem_ch12.adb (Validate_Private_Type_Instance): If type has unknown
16350         discriminants, ignore the known discriminants of its full view, if
16351         any, to check legality.
16352
16353         * sem_ch3.adb (Complete_Private_Subtype): Do not create constrained
16354         component if type has unknown discriminants.
16355         (Analyze_Private_Extension_Declaration): Discriminant constraint is
16356         null if type has unknown discriminants.
16357
16358         * sem_ch6.adb (Analyze_Generic_Subprogram_Body): Generate reference
16359         for end label when present.
16360
16361         * s-fileio.adb (Open): When called with a C_Stream, use given name for
16362         temporary file, rather than an empty string.
16363
16364 2004-03-15  Ed Falis  <falis@gnat.com>
16365
16366         * s-thread.adb: Removed, no longer used.
16367
16368 2004-03-15  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16369
16370         * decl.c (target.h): Now include.
16371         (gnat_to_gnu_entity, case E_Access_Type): Use mode derived from ESIZE
16372         in new build_pointer_from_mode calls for non-fat/non-thin pointer.
16373         (validate_size): For POINTER_TYPE, get smallest size permitted on
16374         machine.
16375
16376         * fe.h: Sort Einfo decls and add Set_Mechanism.
16377
16378         * Makefile.in: (LIBGNAT_SRCS): Remove types.h.
16379         (ada/decl.o): Depends on target.h.
16380
16381         * trans.c (tree_transform, N_Unchecked_Type_Conversion): Do not use
16382         FUNCTION_BOUNDARY; always use TYPE_ALIGN.
16383
16384 2004-03-15  Thomas Quinot  <quinot@act-europe.fr>
16385
16386         * 5ztpopsp.adb, 56tpopsp.adb: Fix spelling of Task_ID.
16387
16388         * exp_ch4.adb (Expand_N_Indexed_Component): Do not call
16389         Insert_Dereference_Action when rewriting an implicit dereference into
16390         an explicit one, this will be taken care of during expansion of the
16391         explicit dereference.
16392         (Expand_N_Slice): Same. Always do the rewriting, even for the case
16393         of non-packed slices, since the dereference action generated by
16394         expansion of the explicit dereference is needed in any case.
16395         (Expand_N_Selected_Component): When rewriting an implicit dereference,
16396         analyze and resolve the rewritten explicit dereference so it is seen
16397         by the expander.
16398         (Insert_Dereference_Action): This procedure is now called only for the
16399         expansion of an N_Explcit_Dereference_Node. Do insert a check even for
16400         dereferences that do not come from source (including explicit
16401         dereferences resulting from rewriting implicit ones), but do not
16402         recursively insert a check for the dereference nodes contained within
16403         the check.
16404         (Insert_Dereference_Action): Clarify and correct comment.
16405
16406 2004-03-08  Paolo Bonzini  <bonzini@gnu.org>
16407
16408         PR ada/14131
16409         Move language detection to the top level.
16410         * config-lang.in: Build by default.
16411
16412 2004-03-05  Robert Dewar  <dewar@gnat.com>
16413
16414         * 56taprop.adb, 5ataprop.adb: Remove unneeded unchecked conversions
16415
16416         * a-tags.adb, a-tags.ads, s-finimp.adb, s-finroo.ads,
16417         i-cpoint.ads, i-cpoint.adb, i-cstrin.adb, i-cstrin.ads,
16418         5iosinte.ads, 5sosinte.ads, 5staspri.ads, 5itaprop.adb,
16419         5staprop.adb, 5wtaprop.adb, s-tataat.ads, s-tataat.adb: Move
16420         unchecked conversion to spec to avoid warnings.
16421
16422         * s-tasini.adb, s-taskin.ads, 5atpopsp.adb: Correct spelling Task_Id
16423         to Task_ID
16424
16425         * 7stpopsp.adb: Correct casing in To_Task_ID call
16426
16427         * a-strsea.ads, a-strsea.adb: Minor reformatting
16428
16429         * einfo.ads, einfo.adb: Define new flag No_Strict_Aliasing
16430
16431         * errout.ads: Switch for VMS is now NO_STRICT_ALIASING.
16432         Adjust Max_Msg_Length to be clearly large enough.
16433
16434         * fe.h: Define In_Same_Source_Unit
16435
16436         * osint.adb: Add pragma Warnings Off to suppress warnings
16437         * g-dyntab.adb, g-table.adb, g-thread.adb: Add Warnings (Off) to kill
16438         aliasing warnings.
16439
16440         * opt.ads: Put entries in alpha order. Add entry for No_Strict_Aliasing
16441
16442         * par-prag.adb: Add dummy entry for No_Strict_Aliasing pragma
16443
16444         * sem_ch13.adb: Generate validate unchecked conversion nodes for gcc.
16445
16446         * sem_ch3.adb: Set No_Strict_Aliasing flag if config pragma set.
16447
16448         * sem_prag.adb: Implement pragma No_Strict_Aliasing.
16449
16450         * sinfo.ads: Remove obsolete comment on validate unchecked conversion
16451         node. We now do generate them for gcc back end.
16452
16453         * table.adb, sinput.adb: Add pragma Warnings Off to suppress aliasing
16454         warning.
16455
16456         * sinput-c.adb: Fix bad name in header.
16457         Add pragma Warnings Off to suppress aliasing warning.
16458
16459         * sinput-l.adb: Add pragma Warnings Off to suppress aliasing warning.
16460
16461         * snames.h, snames.ads, snames.adb: Add entry for pragma
16462         No_Strict_Aliasing.
16463
16464 2004-03-05  Vincent Celier  <celier@gnat.com>
16465
16466         * prj-com.ads: Add hash table Files_Htable to check when a file name
16467         is already a source of another project.
16468
16469         * prj-nmsc.adb (Record_Source): Before recording a new source, check
16470         if its file name is not already a source of another project. Report an
16471         error if it is.
16472
16473         * gnatcmd.adb: When GNAT PRETTY is invoked with a project file and no
16474         source file name, call gnatpp with all the sources of the main project.
16475
16476         * vms_conv.adb (Initialize): GNAT PRETTY may be called with any number
16477         of file names.
16478
16479         * vms_data.ads: Correct documentation of new /OPTIMIZE keyword
16480         NO_STRICT_ALIASING. Add new qualifier for GNAT PRETTY:
16481         /RUNTIME_SYSTEM=, converted to --RTS=
16482         /NOTABS, converted to -notabs
16483
16484 2004-03-05  Pascal Obry  <obry@gnat.com>
16485
16486         * make.adb: Minor reformatting.
16487
16488 2004-03-05  Ed Schonberg  <schonberg@gnat.com>
16489
16490         Part of implemention of AI-262.
16491         * par-ch10.adb (P_Context_Clause): Recognize private with_clauses.
16492
16493         * sem_ch10.ads, sem_ch10.adb: (Install_Private_With_Clauses): New
16494         procedure.
16495
16496         * sem_ch3.adb (Analyze_Component_Declaration): Improve error message
16497         when component type is a partially constrained class-wide subtype.
16498         (Constrain_Discriminated_Type): If parent type has unknown
16499         discriminants, a constraint is illegal, even if full view has
16500         discriminants.
16501         (Build_Derived_Record_Type): Inherit discriminants when deriving a type
16502         with unknown discriminants whose full view is a discriminated record.
16503
16504         * sem_ch7.adb (Preserve_Full_Attributes): Preserve Has_Discriminants
16505         flag, to handle properly derivations of tagged types with unknown
16506         discriminants.
16507         (Analyze_Package_Spec, Analyze_Package_Body): Install
16508         Private_With_Clauses before analyzing private part or body.
16509
16510         * einfo.ads: Indicate that both Has_Unknown_Discriminants and
16511         Has_Discriminants can be true for a given type (documentation).
16512
16513 2004-03-05  Arnaud Charlet  <charlet@act-europe.fr>
16514
16515         * s-restri.ads: Fix license (GPL->GMGPL).
16516
16517         * s-tassta.adb: Minor reformatting.
16518
16519         * s-tasren.adb: Replace manual handling of Self_Id.ATC_Nesting_Level
16520         by calls to Exit_One_ATC_Level, since additional clean up is performed
16521         by this function.
16522
16523         * s-tpobop.adb: Replace manual handling of Self_Id.ATC_Nesting_Level
16524         by calls to Exit_One_ATC_Level, since additional clean up is performed
16525         by this function.
16526
16527 2004-03-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16528
16529         * trans.c: Reflect GCC changes to fix bootstrap problem.
16530         Add warning for suspicious aliasing unchecked conversion.
16531
16532 2004-03-05  GNAT Script  <nobody@gnat.com>
16533
16534         * Make-lang.in: Makefile automatically updated
16535
16536 2004-03-02  Emmanuel Briot  <briot@act-europe.fr>
16537
16538         * ali.adb (Read_Instantiation_Instance): Do not modify the
16539         current_file_num when reading information about instantiations, since
16540         this corrupts files in later references.
16541
16542 2004-03-02  Vincent Celier  <celier@gnat.com>
16543
16544         * bcheck.adb (Check_Consistency): Get the full path of an ALI file
16545         before checking if it is read-only.
16546
16547         * bld.adb (Recursive_Process): Concatenate <PROJECT>.src_dirs in front
16548         of SRC_DIRS and eliminate duplicates.
16549
16550         * gprcmd.adb: Replace command "path" with command "path_sep" to return
16551         the path separator.
16552         (Usage): Document path_sep
16553
16554         * Makefile.generic: For Ada and GNU C++ cases, link directly with the
16555         C++ compiler. No need for a script.
16556         Replace use of C*_INCLUDE_PATH env var for GCC compilers with CPATH.
16557         Do not call gprcmd to build the C*_INCLUDE_PATHs, do it with function
16558         subst.
16559
16560         * prj-env.adb (For_All_Source_Dirs): Only add source dirs in project
16561         where there are Ada sources.
16562         (Set_Ada_Paths): Only add to the include path the source dirs of project
16563         with Ada sources.
16564         (Add_To_Path): Add the Display_Values of the directories, not their
16565         Values.
16566
16567         * prj-nmsc.adb (Find_Sources): Set flag Sources_Present in the project
16568         data.
16569
16570         * prj-nmsc.adb (Add_ALI_For): Make sure that the element Display_Value
16571         is not No_Name.
16572         (Find_Source_Dirs): Set Display_Value to a non canonicalized value, only
16573         Value is canonicalized.
16574         (Language_Independent_Check): Do not copy Value to Display_Value when
16575         canonicalizing Value.
16576
16577         * prj-part.adb (Post_Parse_Context_Clause): Compare canonical cased
16578         path to find limited with cycles.
16579         (Parse_Single_Project): Use canonical cased path to find the end of a
16580         with cycle.
16581
16582 2004-03-02  Ed Schonberg  <schonberg@gnat.com>
16583
16584         * sem_ch10.adb (Optional_Subunit): Verify that unit contains a subunit
16585         and not a child unit.
16586
16587         * sinfo.ads, sinfo.adb: Rearrange flags so that Private_Present can
16588         appear in a with_clause.
16589
16590         * decl.c (gnat_to_gnu_type): If entity is a generic type, which can
16591         only happen in type_annotate mode, do not try to elaborate it.
16592
16593         * exp_util.adb (Force_Evaluation): If expression is a selected
16594         component on the left of an assignment, use a renaming rather than a
16595         temporary to remove side effects.
16596
16597         * freeze.adb (Freeze_Entity): Do not freeze a global entity within an
16598         inlined instance body, which is analyzed before the end of the
16599         enclosing scope.
16600
16601 2004-03-02  Robert Dewar  <dewar@gnat.com>
16602
16603         * par-ch10.adb, par-ch3.adb, par-ch4.adb, scng.adb,
16604         sem_ch4.adb: Use new feature for substitution of keywords in VMS
16605
16606         * errout.ads, errout.adb: Implement new circuit for substitution of
16607         keywords in VMS.
16608
16609         * sem_case.adb (Analyze_Choices): Place message properly when case is
16610         a subtype reference rather than an explicit range.
16611
16612         * sem_elim.adb, s-tpobop.ads, exp_ch2.adb: Minor reformatting
16613
16614 2004-03-02  Doug Rupp  <rupp@gnat.com>
16615
16616         * init.c (__gnat_initialize)[VMS]: Resignal RDB-E-STREAM_EOF.
16617
16618 2004-03-02  Thomas Quinot  <quinot@act-europe.fr>
16619
16620         * s-tporft.adb: Add missing locking around call to Initialize_ATCB.
16621
16622 2004-03-02  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16623
16624         * utils.c (finish_record_type): Do not set DECL_NONADDRESSABLE for a
16625         BLKmode bitfield.
16626
16627 2004-02-25  Robert Dewar  <dewar@gnat.com>
16628
16629         * 51osinte.ads, 52osinte.ads, 53osinte.ads, 54osinte.ads,
16630         55osinte.ads, 56osinte.ads, 5aosinte.ads, 5bosinte.ads,
16631         5cosinte.ads, 5fosinte.ads, 5gosinte.ads, 5hosinte.ads,
16632         5iosinte.ads, 5losinte.ads, 5nosinte.ads, 5oosinte.ads,
16633         5posinte.ads, 5sosinte.ads, 5tosinte.ads, 5vosinte.ads,
16634         5wosinte.ads, 5zosinte.ads: Move instances of Unchecked_Conversion to
16635         the defining instance of the type to avoid aliasing problems.
16636         Fix copyright header.  Fix bad comments in package header.
16637
16638         * exp_util.adb, prj-part.adb, prj-part.adb: Minor reformatting
16639
16640 2004-02-25  Ed Schonberg  <schonberg@gnat.com>
16641
16642         * exp_ch2.adb (Param_Entity): Handle properly formals that have been
16643         rewritten as references when aliased through an address clause.
16644
16645         * sem_ch4.adb (Try_Indirect_Call): Normalize actuals before checking
16646         whether call can be interpreted as an indirect call to the result of a
16647         parameterless function call returning an access subprogram.
16648
16649 2004-02-25  Arnaud Charlet  <charlet@act-europe.fr>
16650
16651         Code clean up:
16652         * exp_ch7.adb (Make_Clean): Remove generation of calls to
16653         Unlock[_Entries], since this is now done by Service_Entries directly.
16654
16655         * exp_ch9.adb (Build_Protected_Subprogram_Body): ditto.
16656
16657         * s-tpobop.ads, s-tpobop.adb (PO_Service_Entries): New nested procedure
16658         Requeue_Call for better code readability. Change spec and update calls:
16659         PO_Service_Entries now unlock the PO on exit.
16660         (Protected_Entry_Call, Timed_Protected_Entry_Call): Update calls to
16661         PO_Service_Entries.
16662
16663         * s-tposen.ads, s-tposen.adb (Service_Entry): Now unlock the PO on exit.
16664
16665         * s-taenca.adb, s-tasren.adb: Update calls to PO_Service_Entries.
16666
16667 2004-02-25  Sergey Rybin  <rybin@act-europe.fr>
16668
16669         * exp_ch9.adb (Build_Simple_Entry_Call): Prevent expanding the
16670         protected subprogram call and analyzing the result of such expanding
16671         in case when the called protected subprogram is eliminated.
16672
16673         * sem_elim.adb (Check_Eliminated): Skip blocks when comparing scope
16674         names.
16675
16676 2004-02-25  Jerome Guitton  <guitton@act-europe.fr>
16677
16678         * Makefile.in: Clean ups.
16679
16680 2004-02-23  Ed Schonberg  <schonberg@gnat.com>
16681
16682         * exp_ch6.adb (Expand_N_Subprogram_Declaration): Do not create
16683         protected operations if original subprogram is flagged as eliminated.
16684         (Expand_N_Subprogram_Body): For a protected operation, create
16685         discriminals for next operation before checking whether the operation
16686         is eliminated.
16687
16688         * exp_ch9.adb (Expand_N_Protected_Body,
16689         Expand_N_Protected_Type_Declaration): Do not generate specs and bodies
16690         for internal protected operations if the original subprogram is
16691         eliminated.
16692
16693         * sem_elim.adb (Check_Eliminated): Handle properly protected operations
16694         declared in a single protected object.
16695
16696 2004-02-23  Vincent Celier  <celier@gnat.com>
16697
16698         * prj-attr.adb: Make attribute Builder'Executable an associative array,
16699         case insensitive if file names are case insensitive, instead of a
16700         standard associative array.
16701
16702         * prj-attr.adb (Initialize): For 'b' associative arrays, do not set
16703         them as case insensitive on platforms where the file names are case
16704         sensitive.
16705
16706         * prj-part.adb (Parse_Single_Project): Make sure, when checking if
16707         project file has already been parsed that canonical path are compared.
16708
16709 2004-02-23  Robert Dewar  <dewar@gnat.com>
16710
16711         * sinput-c.ads: Correct bad unit title in header
16712
16713         * freeze.adb: Minor reformatting
16714
16715 2004-02-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16716
16717         * trans.c (tree_transform, case N_Procedure_Call_Statement): For
16718         nonaddressable COMPONENT_REF that is removing padding that we are
16719         taking the address of, take the address of the padded record instead
16720         if item is variable size.
16721
16722 2004-02-20  Robert Dewar  <dewar@gnat.com>
16723
16724         * bld.adb, exp_util.adb, gprcmd.adb: Minor reformatting
16725
16726 2004-02-20  Ed Schonberg  <schonberg@gnat.com>
16727
16728         * freeze.adb (Freeze_Record_Type): Generalize mechanism that generates
16729         itype references for the constrained designated type of a component
16730         whose base type is already frozen.
16731
16732 2004-02-20  Arnaud Charlet  <charlet@act-europe.fr>
16733
16734         * init.c (__gnat_error_handler [tru64]): Rewrite previous change to
16735         avoid GCC warnings.
16736
16737 2004-02-20  Sergey Rybin  <rybin@act-europe.fr>
16738
16739         * sem_ch12.adb (Analyze_Formal_Package): Create a new defining
16740         identifier for a phantom package that rewrites the formal package
16741         declaration with a box. The Add semantic decorations for the defining
16742         identifier from the original node (that represents the formal package).
16743
16744 2004-02-19  Matt Kraai  <kraai@alumni.cmu.edu>
16745
16746         * Make-lang.in (ada/stamp-sdefault): Use the top level
16747         move-if-change.
16748
16749 2004-02-19  Richard Henderson  <rth@redhat.com>
16750
16751         * misc.c (record_code_position): Add third build arg for RTL_EXPR.
16752
16753 2004-02-18  Emmanuel Briot  <briot@act-europe.fr>
16754
16755         * ali.ads, ali.adb (First_Sdep_Entry): No longer a constant, so that
16756         Scan_ALI can be used for multiple ALI files without reinitializing
16757         between calls.
16758
16759 2004-02-18  Robert Dewar  <dewar@gnat.com>
16760
16761         * debug.adb: Minor reformatting.
16762
16763 2004-02-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16764
16765         * decl.c (gnat_to_gnu_entity, case object): Set DECL_POINTER_ALIAS_SET
16766         to zero if there is an address clause.
16767
16768 2004-02-18  Thomas Quinot  <quinot@act-europe.fr>
16769
16770         * exp_util.adb (Side_Effect_Free): Any literal is side effects free.
16771
16772 2004-02-18  Gary Dismukes  <dismukes@gnat.com>
16773
16774         * layout.adb (Layout_Component_List): Revise generation of call to
16775         discriminant-checking function to pass selections of all of the type's
16776         discriminants rather than just the variant-controlling discriminant.
16777
16778 2004-02-18  Olivier Hainque  <hainque@act-europe.fr>
16779
16780         * 5gmastop.adb (Pop_Frame): Do not call exc_unwind, which is bound to
16781         fail in the current setup and triggers spurious system error messages.
16782         Pretend it occurred and failed instead.
16783
16784 2004-02-18  Vincent Celier  <celier@gnat.com>
16785
16786         * bld.adb: Mark FLDFLAGS as saved
16787         (Process_Declarative_Items): Add Linker'Linker_Options to FLDFLAGS when
16788         it is not the root project.  Put each directory to be
16789         extended between double quotes to prevent it to be expanded on Windows.
16790         (Recursive_Process): Reset CFLAGS/CXXFLAGS to nothing before processing
16791         the project file. Set them back to their initial values if they have not
16792         been set in the project file.
16793
16794         * gprcmd.adb: (Gprdebug, Debug): New global variables
16795         (Display_Command): New procedure
16796         (Usage): Document new command "linkopts"
16797         Call Display_Command when env var GPRDEBUG has the value "TRUE"
16798         Implement new command "linkopts"
16799         Remove quotes that may be around arguments for "extend"
16800         Always call Normalize_Pathname with arguments formatted for the platform
16801
16802         * Makefile.generic: Link C/C++ mains with $(FLDFLAGS)
16803         Change @echo to @$(display) in target clean to be able to clean silently
16804
16805         * Makefile.prolog: Save FLDFLAGS and give it an initial empty value
16806
16807         * prj-part.adb (Project_Path_Name_Of): Do not put final result in
16808         canonical case.
16809
16810         * prj-part.adb (Parse_Single_Project): Always call with From_Extended
16811         = Extending_All when current project is an extending all project.
16812
16813         * vms_conv.adb (Output_File_Expected): New Boolean global variable,
16814         set to True only for LINK command, after Unix switch -o.
16815         (Process_Arguments): Set Output_File_Expected to True for LINK command
16816         after Unix switch -o. When Output_File_Expected is True, never add an
16817         extension to a file name.
16818
16819         * 5vml-tgt.adb (Build_Dynamic_Library): Do not append "/OPTIONS" to the
16820         option file name, only to the --for-linker= switch.
16821         (Option_File_Name): If option file name do not end with ".opt", append
16822         "/OPTIONS".
16823
16824 2004-02-18  GNAT Script  <nobody@gnat.com>
16825
16826         * Make-lang.in: Makefile automatically updated
16827
16828 2004-02-17  Matt Kraai  <kraai@alumni.cmu.edu>
16829
16830         * Make-lang.in (stamp-sdefault): Do not depend on
16831         move-if-change.
16832
16833 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
16834
16835         * config-lang.in: Disable Ada by default until probe logic for
16836         a bootstrap Ada compiler can be moved to the top level configure
16837         script.
16838
16839 2004-02-12  Olivier Hainque  <hainque@act-europe.fr>
16840
16841         * decl.c (components_to_record): Don't claim that the internal fields
16842         we make to hold the variant parts are semantically addressable, because
16843         they are not.
16844
16845         * exp_pakd.adb (Create_Packed_Array_Type): Rename Esiz into PASize and
16846         adjust the comment describing the modular type form when we can use it.
16847         (Install_PAT): Account for the Esiz renaming.
16848
16849         * init.c (__gnat_error_handler for alpha-tru64): Arrange to clear the
16850         sc_onstack context indication before raising the exception to which
16851         the signal is mapped. Allows better handling of later signals possibly
16852         triggered by the resumed user code if the exception is handled.
16853
16854 2004-02-12  Arnaud Charlet  <charlet@act-europe.fr>
16855
16856         * 5zinit.adb: Removed, no longer used.
16857
16858 2004-02-12  Robert Dewar  <dewar@gnat.com>
16859
16860         * ali.adb: Remove separating space between parameters on R line. Makes
16861         format consistent with format used by the binder for Set_Globals call.
16862
16863         * atree.ads, atree.adb: Minor reformatting (new function header format)
16864
16865         * bindgen.adb: Add Run-Time Globals documentation section containing
16866         detailed documentation of the globals passed from the binder file to
16867         the run time.
16868
16869         * gnatls.adb: Minor reformatting
16870
16871         * init.c (__gnat_set_globals): Add note pointing to documentation in
16872         bindgen.
16873
16874         * lib-writ.ads, lib-writ.adb: Remove separating space between
16875         parameters on R line.
16876         Makes format consistent with format used by the binder for Set_Globals
16877         call.
16878
16879         * osint.ads: Add 2004 to copyright notice
16880         Minor reformatting
16881
16882         * snames.ads: Correct capitalization of FIFO_Within_Priorities
16883         Noticed during code reading, documentation issue only
16884
16885         * usage.adb: Remove junk line for obsolete C switch
16886         Noticed during code reading
16887
16888 2004-02-12  Vincent Celier  <celier@gnat.com>
16889
16890         * bld.adb (Process_Declarative_Items): For Source_Dirs call gprcmd
16891         extend for each directory, so that multiple /** directories are
16892         extended individually.
16893         (Recursive_Process): Set the default for LANGUAGES to ada
16894
16895         * gprcmd.adb: Define new command "ignore", to do nothing.
16896         Implement new comment "path".
16897
16898         * Makefile.generic: Suppress output when SILENT is set
16899         Make sure that when compiler for C/C++ is gcc, the correct -x switch is
16900         used, so that the correct compiler is invoked.
16901         When compiler is gcc/g++, put search path in env vars C_INCLUDE_PATH/
16902         CXX_INCLUDE_PATH, to avoid failure with too long command lines.
16903
16904 2004-02-12  Jerome Guitton  <guitton@act-europe.fr>
16905
16906         * Makefile.in: Clean ups and remove obsolete targets.
16907
16908 2004-02-12  Ed Schonberg  <schonberg@gnat.com>
16909
16910         * exp_ch5.adb: Remove Possible_Unligned_Slice, in favor of the similar
16911         predicate declared in exp_util.
16912
16913         * exp_util.adb: Add comments.
16914
16915         * sem_ch10.adb (Analyze_Subunit): Remove ultimate parent unit from
16916         visibility before compiling context of the subunit.
16917
16918         * sem_res.adb (Check_Parameterless_Call): If the context expects a
16919         value but the name is a procedure, do not attempt to analyze as a call,
16920         in order to obtain more telling diagnostics.
16921
16922         * sem_util.adb (Wrong_Type): Further enhancement to diagnose missing
16923         'Access on parameterless function calls.
16924         (Normalize_Actuals): For a parameterless function call with missing
16925         actuals, defer diagnostic until resolution of enclosing call.
16926
16927         * sem_util.adb (Wrong_Type): If the context type is an access to
16928         subprogram and the expression is a procedure name, suggest a missing
16929         'attribute.
16930
16931 2004-02-10  Arnaud Charlet  <charlet@act-europe.fr>,
16932             Nathanael Nerode  <neroden@gcc.gnu.org>
16933
16934         PR ada/6637, PR ada/5911
16935         Merge with libada-branch:
16936         * config-lang.in: Build libada only when ada is built.
16937
16938 2004-02-09  Ed Schonberg  <schonberg@gnat.com>
16939
16940         * exp_ch4.adb (Expand_N_Op_Eq): When looking for the primitive equality
16941         for a tagged type, verify that both formals have the same type.
16942
16943         * exp_ch6.adb (Add_Call_By_Copy_Code): Initialize properly the
16944         temporary when the formal is an in-parameter and the actual a possibly
16945         unaligned slice.
16946
16947         * exp_ch9.adb (Expand_Entry_Barrier): Resolve barrier expression even
16948         when expansion is disabled, to ensure proper name capture with
16949         overloaded literals.  Condition can be of any boolean type, resolve
16950         accordingly.
16951
16952         * sem_ch8.adb (Analyze_Subprogram_Renaming): Emit warning if the
16953         renaming is for a formal subprogram with a default operator name, and
16954         there is a usable operator that is visible at the point of
16955         instantiation.
16956
16957 2004-02-09  Robert Dewar  <dewar@gnat.com>
16958
16959         * ali.adb (Scan_Ali) Add Ignore_Errors argument. This is a major
16960         rewrite to ignore errors in ali files, intended to allow tools downward
16961         compatibility with new versions of ali files.
16962
16963         * ali.ads: Add new parameter Ignore_Errors
16964
16965         * bcheck.adb (Check_Consistent_Restrictions): Fix error of sometimes
16966         duplicating the error message giving the file with restrictions.
16967
16968         * debug.adb: Add debug flag I for gnatbind
16969
16970         * errout.adb (Set_Msg_Insertion_Node): Suppress extra quotes around
16971         operators for the case where the operator is a defining operator.
16972
16973         * exp_ch3.adb: Minor reformatting (new function spec format).
16974
16975         * exp_ch4.adb: Add comment for previous change, and make minor
16976         adjustment to loop to always check for improper loop termination.
16977         Minor reformatting throughout (new function spec format).
16978
16979         * gnatbind.adb: Implement -di debug flag for gnatbind
16980
16981         * gnatlink.adb: Call Scan_ALI with Ignore_Errors set to True
16982
16983         * gnatls.adb: Call Scan_ALI with Ignore_Errors set to True
16984
16985         * lib-load.adb: Fix bad assertion.
16986         Found by testing and code reading.
16987         Minor reformatting.
16988
16989         * lib-load.ads: Minor reformatting.
16990
16991         * lib-writ.adb: There is only one R line now.
16992
16993         * lib-writ.ads: Add documentation on making downward compatible changes
16994         to ali files so old tools work with new ali files.
16995         There is only one R line now.
16996         Add documentation on format incompatibilities (with special GPS note)
16997
16998         * namet.ads, namet.adb: (Is_Operator_Name): New procedure
16999
17000         * par-load.adb: Minor reformatting
17001
17002         * sem_ch8.adb: Fix to error message from last update
17003         Minor reformatting and restructuring of code from last update
17004
17005         * par-prag.adb, snames.adb, snames.ads, snames.h,
17006         sem_prag.adb: Implement pragma Profile.
17007
17008         * stylesw.adb: Implement -gnatyN switch to turn off all style check
17009         options.
17010
17011         * usage.adb: Add line for -gnatyN switch
17012
17013         * vms_data.ads: Add entry STYLE_CHECKS=NONE for -gnatyN
17014
17015 2004-02-09  Albert Lee  <lee@gnat.com>
17016
17017         * errno.c: define _SGI_MP_SOURCE for task-safe errno on IRIX
17018
17019 2004-02-09  Ed Schonberg  <schonberg@gnat.com>
17020
17021         * exp_ch3.adb (Build_Slice_Assignment): Handle properly case of null
17022         slices.
17023
17024         * exp_ch6.adb (Expand_Call): Do not inline a call when the subprogram
17025         is nested in an instance that is not frozen yet, to avoid
17026         order-of-elaboration problems in gigi.
17027
17028         * sem_attr.adb (Analyze_Attribute, case 'Access): Within an inlined
17029         body the attribute is legal.
17030
17031 2004-02-09  Robert Dewar  <dewar@gnat.com>
17032
17033         * s-rident.ads: Minor comment correction
17034
17035         * targparm.adb: Remove dependence on uintp completely. There was
17036         always a bug in Make in that it called Targparm before initializing
17037         the Uint package. The old code appeared to get away with this, but
17038         the new code did not! This caused an assertion error in gnatmake.
17039
17040         * targparm.ads: Fix bad comment, restriction pragmas with parameters
17041         are indeed fully supported.
17042
17043 2004-02-06  Alan Modra  <amodra@bigpond.net.au>
17044
17045         * misc.c (default_pass_by_ref): Update INIT_CUMULATIVE_ARGS call.
17046
17047 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
17048
17049         * ada/utils.c (create_param_decl): Replace PROMOTE_PROTOTYPES
17050         with targetm.calls.promote_prototypes.
17051
17052 2004-02-04  Robert Dewar  <dewar@gnat.com>
17053
17054         * 5gtasinf.adb, 5gtasinf.ads, 5gtaprop.adb, ali.adb,
17055         ali.ads, gprcmd.adb: Minor reformatting
17056
17057         * bindgen.adb: Output restrictions string for new style restrictions
17058         handling
17059
17060         * impunit.adb: Add s-rident.ads (System.Rident) and
17061         s-restri (System.Restrictions)
17062
17063         * lib-writ.adb: Fix bug in writing restrictions string (last few
17064         entries wrong)
17065
17066         * s-restri.ads, s-restri.adb: Change name Restrictions to
17067         Run_Time_Restrictions to avoid conflict with package name.
17068         Add circuit to read and acquire run time restrictions.
17069
17070 2004-02-04  Jose Ruiz  <ruiz@act-europe.fr>
17071
17072         * restrict.ads, restrict.adb: Use the new restriction
17073         No_Task_Attributes_Package instead of the old No_Task_Attributes.
17074
17075         * sem_prag.adb: No_Task_Attributes is a synonym of
17076         No_Task_Attributes_Package.
17077
17078         * snames.ads, snames.adb: New entry for proper handling of
17079         No_Task_Attributes.
17080
17081         * s-rident.ads: Adding restriction No_Task_Attributes_Package
17082         (AI-00249) that supersedes the GNAT specific restriction
17083         No_Task_Attributes.
17084
17085 2004-02-04  Ed Schonberg  <schonberg@gnat.com>
17086
17087         * sem_prag.adb:
17088         (Analyze_Pragma, case Warnings): In an inlined body, as in an instance
17089          body, an identifier may be wrapped in an unchecked conversion.
17090
17091 2004-02-04  Vincent Celier  <celier@gnat.com>
17092
17093         * lib-writ.ads: Comment update for the W lines
17094
17095         * bld.adb: (Expression): An empty string list is static
17096
17097         * fname-uf.adb: Minor comment update
17098
17099         * fname-uf.ads: (Get_File_Name): Document new parameter May_Fail
17100
17101         * gnatbind.adb: Initialize Cumulative_Restrictions with the
17102         restrictions on the target.
17103
17104 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
17105
17106         * ada/trans.c (gigi): Use gen_rtx_SYMBOL_REF instead of
17107         gen_rtx.
17108
17109 2004-02-02  Arnaud Charlet  <charlet@gnat.com>
17110
17111         * Makefile.in: Remove setting of THREADSLIB on mips o32, unneeded.
17112
17113 2004-02-02  Vincent Celier  <celier@gnat.com>
17114
17115         * gprcmd.adb (Check_Args): If condition is false, print the invoked
17116         comment before the usage.
17117         Gprcmd: Fail when command is not recognized.
17118         (Usage): Document command "prefix"
17119
17120         * g-md5.adb (Digest): Process last block.
17121         (Update): Do not process last block. Store remaining characters and
17122         length in Context.
17123
17124         * g-md5.ads (Update): Document that several call to update are
17125         equivalent to one call with the concatenated string.
17126         (Context): Add fields to allow new Update behaviour.
17127
17128         * fname-uf.ads/adb (Get_File_Name): New Boolean parameter May_Fail,
17129         defaulted to False.
17130         When May_Fail is True and no existing file can be found, return No_File.
17131
17132         * 6vcstrea.adb: Inlined functions are now wrappers to implementation
17133         functions.
17134
17135         * lib-writ.adb (Write_With_Lines): When body file does not exist, use
17136         spec file name instead on the W line.
17137
17138 2004-02-02  Robert Dewar  <dewar@gnat.com>
17139
17140         * ali.adb: Read and acquire info from new format restrictions lines
17141
17142         * bcheck.adb: Add circuits for checking restrictions with parameters
17143
17144         * bindgen.adb: Output dummy restrictions data
17145         To be changed later
17146
17147         * ali.ads, checks.adb, exp_aggr.adb, exp_attr.adb, exp_ch11.adb,
17148         exp_ch3.adb, exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_util.adb,
17149         freeze.adb, gnat1drv.adb, sem_attr.adb, sem_ch10.adb, sem_ch11.adb,
17150         sem_ch12.adb, targparm.adb, targparm.ads, tbuild.adb, sem_ch2.adb,
17151         sem_elab.adb, sem_res.adb: Minor changes for new restrictions handling.
17152
17153         * exp_ch9.adb (Build_Master_Entity): Cleanup the code (also suppresses
17154         the warning message on access to possibly uninitialized variable S)
17155         Minor changes for new restrictions handling.
17156
17157         * gnatbind.adb: Minor reformatting
17158         Minor changes for new restrictions handling
17159         Move circuit for -r processing here from bcheck (cleaner)
17160
17161         * gnatcmd.adb, gnatlink.adb: Minor reformatting
17162
17163         * lib-writ.adb: Output new format restrictions lines
17164
17165         * lib-writ.ads: Document new R format lines for new restrictions
17166         handling.
17167
17168         * s-restri.ads/adb: New files
17169
17170         * Makefile.rtl: Add entry for s-restri.ads/adb
17171
17172         * par-ch3.adb: Fix bad error messages starting with upper case letter
17173         Minor reformatting
17174
17175         * restrict.adb: Major rewrite throughout for new restrictions handling
17176         Major point is to handle restrictions with parameters
17177
17178         * restrict.ads: Major changes in interface to handle restrictions with
17179         parameters. Also generally simplifies setting of restrictions.
17180
17181         * snames.ads/adb: New entry for proper handling of No_Requeue
17182
17183         * sem_ch3.adb (Count_Tasks): New circuitry for implementing Max_Tasks
17184         restriction counting.
17185         Other minor changes for new restrictions handling
17186
17187         * sem_prag.adb: No_Requeue is a synonym for No_Requeue_Statements.
17188         Restriction_Warnings now allows full parameter notation
17189         Major rewrite of Restrictions for new restrictions handling
17190
17191 2004-02-02  Javier Miranda  <miranda@gnat.com>
17192
17193         * par-ch3.adb (P_Identifier_Declarations): Give support to the Ada 0Y
17194         syntax rule for object renaming declarations.
17195         (P_Array_Type_Definition): Give support for the Ada 0Y syntax rule for
17196         component definitions.
17197
17198         * sem_ch3.adb (Analyze_Component_Declaration): Give support to access
17199         components.
17200         (Array_Type_Declaration): Give support to access components. In addition
17201         it was also modified to reflect the name of the object in anonymous
17202         array types. The old code did not take into account that it is possible
17203         to have an unconstrained anonymous array with an initial value.
17204         (Check_Or_Process_Discriminants): Allow access discriminant in
17205         non-limited types.
17206         (Process_Discriminants): Allow access discriminant in non-limited types
17207         Initialize the new Access_Definition field in N_Object_Renaming_Decl
17208         node.  Change Ada0Y to Ada 0Y in comments
17209
17210         * sem_ch4.adb (Find_Equality_Types): Allow anonymous access types in
17211         equality operators.
17212         Change Ada0Y to Ada 0Y in comments
17213
17214         * sem_ch8.adb (Analyze_Object_Renaming): Give support to access
17215         renamings Change Ada0Y to Ada 0Y in comments
17216
17217         * sem_type.adb (Find_Unique_Type): Give support to the equality
17218         operators for universal access types
17219         Change Ada0Y to Ada 0Y in comments
17220
17221         * sinfo.adb (Access_Definition, Set_Access_Definition): New subprograms
17222
17223         * sinfo.ads (N_Component_Definition): Addition of Access_Definition
17224         field.
17225         (N_Object_Renaming_Declaration): Addition of Access_Definition field
17226         Change Ada0Y to Ada 0Y in comments
17227
17228         * sprint.adb (Sprint_Node_Actual): Give support to the new syntax for
17229         component definition and object renaming nodes
17230         Change Ada0Y to Ada 0Y in comments
17231
17232 2004-02-02  Jose Ruiz  <ruiz@act-europe.fr>
17233
17234         * restrict.adb: Use the new restriction identifier
17235         No_Requeue_Statements instead of the old No_Requeue for defining the
17236         restricted profile.
17237
17238         * sem_ch9.adb (Analyze_Requeue): Check the new restriction
17239         No_Requeue_Statements.
17240
17241         * s-rident.ads: Adding restriction No_Requeue_Statements (AI-00249)
17242         that supersedes the GNAT specific restriction No_Requeue. The later is
17243         kept for backward compatibility.
17244
17245 2004-02-02  Ed Schonberg  <schonberg@gnat.com>
17246
17247         * lib.ads, i-cobol.ads, * s-stoele.ads, s-thread.ads, style.ads,
17248         5staprop.adb, atree.adb, atree.ads, g-crc32.ads: Remove redundant
17249         pragma and fix incorrect ones.
17250
17251         * sem_prag.adb For pragma Inline and pragma Pure_Function, emit a
17252         warning if the pragma is redundant.
17253
17254 2004-02-02  Thomas Quinot  <quinot@act-europe.fr>
17255
17256         * 5staprop.adb: Add missing 'constant' keywords.
17257
17258         * Makefile.in: use consistent value for SYMLIB on
17259         platforms where libaddr2line is supported.
17260
17261 2004-02-02  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17262
17263         * utils.c (end_subprog_body): Do not call rest_of_compilation if just
17264         annotating types.
17265
17266 2004-02-02  Olivier Hainque  <hainque@act-europe.fr>
17267
17268         * init.c (__gnat_install_handler): Setup an alternate stack for signal
17269         handlers in the environment thread. This allows proper propagation of
17270         an exception on stack overflows in this thread even when the builtin
17271         ABI stack-checking scheme is used without support for a stack reserve
17272         region.
17273
17274         * utils.c (create_field_decl): Augment the head comment about bitfield
17275         creation, and don't account for DECL_BIT_FIELD in DECL_NONADDRESSABLE_P
17276         here, because the former is not accurate enough at this point.
17277         Let finish_record_type decide instead.
17278         Don't make a bitfield if the field is to be addressable.
17279         Always set a size for the field if the record is packed, to ensure the
17280         checks for bitfield creation are triggered.
17281         (finish_record_type): During last pass over the fields, clear
17282         DECL_BIT_FIELD when possible in the !STRICT_ALIGNMENT case, as this is
17283         not covered by the calls to layout_decl.  Adjust DECL_NONADDRESSABLE_P
17284         from DECL_BIT_FIELD.
17285
17286 2004-01-30  Kelley Cook  <kcook@gcc.gnu.org>
17287
17288         * Make-lang.in (doc/gnat_ug_unx.dvi): Use $(abs_docdir).
17289         (doc/gnat_ug_vms.dvi, doc/gnat_ug_unx.dvi): Likewise.
17290         (doc/gnat_ug_unx.dvi, doc/gnat-style.dvi): Likewise.
17291
17292 2004-01-26  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
17293
17294         * Makefile.in (mips-sgi-irix5): Remove -lathread from THREADSLIB.
17295
17296         * 5fsystem.ads (Functions_Return_By_DSP): Set to False.
17297         (ZCX_By_Default): Likewise.
17298         (Front_End_ZCX_Support): Likewise.
17299
17300         * 5gtaprop.adb (Stack_Guard): Mark T, On unreferenced.
17301         (Initialize_Lock): Mark Level unreferenced.
17302         (Sleep): Mark Reason unreferenced.
17303         (Timed_Sleep): Likewise.
17304         (Wakeup): Likewise.
17305         (Exit_Task): Use Result.
17306         (Check_No_Locks): Mark Self_ID unreferenced.
17307
17308         * 5gtasinf.adb (New_Sproc): Make Attr constant.
17309         (Bound_Thread_Attributes): Make Sproc constant.
17310         (New_Bound_Thread_Attributes): Likewise.
17311
17312 2004-01-26  Ed Schonberg  <schonberg@gnat.com>
17313
17314         * exp_ch3.adb (Build_Slice_Assignment): New TSS procedure for
17315         one-dimensional array an slice assignments, when component type is
17316         controlled.
17317
17318         * exp_ch5.adb (Expand_Assign_Array): If array is one-dimensional,
17319         component type is controlled, and control_actions are in effect, use
17320         TSS procedure rather than generating inline code.
17321
17322         * exp_tss.ads (TSS_Slice_Assign): New TSS procedure for one-dimensional
17323         arrays with controlled components.
17324
17325 2004-01-26  Vincent Celier  <celier@gnat.com>
17326
17327         * gnatcmd.adb (GNATCmd): Add specification of argument file on the
17328         command line for the non VMS case.
17329
17330         * gnatlink.adb (Process_Binder_File): When building object file, if
17331         GNU linker is used, put all object paths between quotes, to prevent ld
17332         error when there are unusual characters (such as '!') in the paths.
17333
17334         * Makefile.generic: When there are sources in Ada and the main is in
17335         C/C++, invoke gnatmake with -B, instead of -z.
17336
17337         * vms_conv.adb (Preprocess_Command_Data): New procedure, extracted
17338         from VMS_Conversion.
17339         (Process_Argument): New procedure, extracted from VMS_Conversion. Add
17340         specification of argument file on the command line.
17341
17342 2004-01-26  Bernard Banner  <banner@gnat.com>
17343
17344         * Makefile.in: Enable GMEM_LIB and SYMLIB for x86_64
17345
17346 2004-01-26  Ed Schonberg  <schonberg@gnat.com>
17347
17348         * snames.adb: Update copyright notice.
17349         Add info on slice assignment for controlled arrays.
17350
17351 2004-01-23  Robert Dewar  <dewar@gnat.com>
17352
17353         * exp_aggr.adb: Minor reformatting
17354
17355         * exp_ch9.adb: Minor code clean up
17356         Minor reformatting
17357         Fix bad character in comment
17358
17359         PR ada/13471
17360         * targparm.adb (Get_Target_Parameters): Give clean abort error on
17361         unexpected end of file, along with more detailed message.
17362
17363 2004-01-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17364
17365         * exp_pakd.adb (Install_PAT): Clear Freeze_Node for PAT and Etype of
17366         PAT.
17367
17368         * decl.c (copy_alias_set): New function.
17369         (gnat_to_gnu_entity, make_aligning_type, make_packable_type): Use it.
17370
17371 2004-01-23  Doug Rupp  <rupp@gnat.com>
17372
17373         * Makefile.in (install-gnatlib): Change occurrences of lib$$file to
17374         lib$${file} in case subsequent character is not a separator.
17375
17376 2004-01-23  Vincent Celier  <celier@gnat.com>
17377
17378         * 5vml-tgt.adb (Build_Dynamic_Library): Invoke gcc with -shared-libgcc
17379         when the GCC version is at least 3.
17380
17381         * make.adb: (Scan_Make_Arg): Pass -B to Scan_Make_Switches
17382         Remove all "Opt.", to prepare for opt split
17383
17384         * prj-part.adb (Parse_Single_Project): New Boolean out parameter
17385         Extends_All. Set to True when the project parsed is an extending all
17386         project. Fails for importing an extending all project only when the
17387         imported project is an extending all project.
17388         (Post_Parse_Context_Clause): Set Is_Extending_All to the with clause,
17389         depending on the value of Extends_All returned.
17390
17391         * prj-proc.adb (Process): Check that no project shares its object
17392         directory with a project that extends it, directly or indirectly,
17393         including a virtual project.
17394         Check that no project extended by another project shares its object
17395         directory with another also extended project.
17396
17397         * prj-tree.adb (Is_Extending_All, Set_Is_Extending_All): Allow for
17398         Kind = N_With_Clause
17399
17400         * prj-tree.ads: Minor reformatting
17401         Indicate that Flag2 also applies to N_With_Clause (Is_Extending_All).
17402
17403 2004-01-23  Ed Schonberg  <schonberg@gnat.com>
17404
17405         * sem_ch13.adb (Analyze_Attribute_Definition_Clause): If the attribute
17406         applies to a type with an incomplete view, use full view in Name of
17407         clause, for consistency with uses of Get_Attribute_Definition_Clause.
17408
17409 2004-01-23  Arnaud Charlet  <charlet@act-europe.fr>
17410
17411         * 5itaprop.adb (Set_Priority): Reset the priority to 0 when using
17412         SCHED_RR, since other values are not supported by this policy.
17413         (Initialize): Move initialization of mutex attribute to package
17414         elaboration, to prevent early access to this variable.
17415
17416         * Makefile.in: Remove mention of Makefile.adalib, unused.
17417
17418         * Makefile.adalib, 1aexcept.adb, 1aexcept.ads, 1ic.ads, 1ssecsta.adb,
17419         1ssecsta.ads: Removed, unused.
17420
17421 2004-01-21  Javier Miranda  <miranda@gnat.com>
17422
17423         * exp_aggr.adb (Build_Record_Aggr_Code): Do not build the master
17424         entity if already built in the current scope.
17425
17426         * exp_ch9.adb (Build_Master_Entity): Do not set the has_master_entity
17427         reminder in internal scopes. Required for nested limited aggregates.
17428
17429 2004-01-21  Doug Rupp  <rupp@gnat.com>
17430
17431         * Makefile.in (hyphen): New variable, default value '-'. Set to '_' on
17432         VMS. Replace all occurences of libgnat- and libgnarl- with
17433         libgnat$(hyphen) and libgnarl$(hyphen).
17434         Fixed shared library build problem on VMS.
17435
17436 2004-01-21  Robert Dewar  <dewar@gnat.com>
17437
17438         * mlib-prj.adb: Minor reformatting
17439
17440 2004-01-21  Thomas Quinot  <quinot@act-europe.fr>
17441
17442         * prj-tree.adb, 7staprop.adb, vms_conv.adb, xr_tabls.adb: Add missing
17443         'constant' keywords for declaration of pointers that are not modified.
17444
17445         * exp_pakd.adb: Fix English in comment.
17446
17447 2004-01-21  Ed Schonberg  <schonberg@gnat.com>
17448
17449         PR ada/10889
17450         * sem_ch3.adb (Analyze_Subtype_Declaration): For an array subtype,
17451         copy all attributes of the parent, including the foreign language
17452         convention.
17453
17454 2004-01-21  Sergey Rybin  <rybin@act-europe.fr>
17455
17456         PR ada/10565
17457         * sem_ch9.adb (Analyze_Delay_Alternative): Add expression type check
17458         for 'delay until' statement.
17459
17460 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
17461
17462         * Make-lang.in: Replace $(docdir) with doc.
17463         (doc/gnat_ug_unx.info, doc/gnat_ug_vwx.info, doc/gnat_ug_vms.info
17464         doc/gnat_ug_wnt.info, doc/gnat_rm.info, doc/gnat-style.info): Update
17465         to use consistent MAKEINFO rule.
17466         (ada.man, ada.srcman): Dummy entry.
17467         (ADA_INFOFILES): Define.
17468         (ada.info, ada.srcinfo): New rules.
17469
17470 2004-01-19  Arnaud Charlet  <charlet@act-europe.fr>
17471
17472         * utils.c: Update copyright notice, missed in previous change.
17473
17474 2004-01-19  Vincent Celier  <celier@gnat.com>
17475
17476         * mlib-prj.adb (Build_Library.Add_ALI_For): Only add the ALI to the
17477         args if Bind is True. Set First_ALI, if not already done.
17478         (Build_Library): For Stand Alone Libraries, extract from one ALI file
17479         an eventual --RTS switch, for gnatbind, and all backend switches +
17480         --RTS, for linking.
17481
17482 2004-01-19  Robert Dewar  <dewar@gnat.com>
17483
17484         * sem_attr.adb, memtrack.adb: Minor reformatting
17485
17486 2004-01-19  Ed Schonberg  <schonberg@gnat.com>
17487
17488         * exp_ch6.adb (Expand_Call): Remove code to fold calls to functions
17489         that rename enumeration literals. This is properly done in sem_eval.
17490
17491         * sem_eval.ads, sem_eval.adb (Eval_Call): New procedure to fold calls
17492         to functions that rename enumeration literals.
17493
17494         * sem_res.adb (Resolve_Call): Use Eval_Call to fold static calls to
17495         functions that rename enumeration literals.
17496
17497 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
17498
17499         * Make-lang.in (utils.o): Depend on target.h.
17500         * utils.c: Include target.h.
17501         (process_attributes): Use targetm.have_named_sections instead
17502         of ASM_OUTPUT_SECTION_NAME.
17503
17504 2004-01-16  Andreas Jaeger  <aj@suse.de>
17505
17506         * Makefile.in: Add $(DESTDIR).
17507
17508 2004-01-15  Olivier Hainque  <hainque@act-europe.fr>
17509
17510         * decl.c (gnat_to_gnu_entity, E_Variable): Retrieve the object size
17511         also when not defining if a Size clause applies. That information is
17512         not to be ignored.
17513
17514 2004-01-15  Arnaud Charlet  <charlet@act-europe.fr>
17515
17516         * Makefile.in (install-gnatlib, gnatlib-shared-default): Set up
17517         symbolic links for the shared gnat run time when needed.
17518
17519 2004-01-15  Vasiliy Fofanov  <fofanov@act-europe.fr>
17520
17521         * memtrack.adb (Gmem_Initialize): check that gmem.out could be opened
17522         for writing, and terminate with an error message if not.
17523
17524 2004-01-15  Ed Schonberg  <schonberg@gnat.com>
17525
17526         * sem_attr.adb (Resolve_Attribute, case 'Access): Remove spurious
17527         warning on an access to subprogram in an instance, when the target
17528         type is declared in the same generic unit.
17529         (Eval_Attribute): If 'access is known to fail accessibility check,
17530         rewrite as a raise statement.
17531
17532 2004-01-15  GNAT Script  <nobody@gnat.com>
17533
17534         * Make-lang.in: Makefile automatically updated
17535
17536 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
17537
17538         * Make-lang.in (ada.srcextra): Dummy entry.
17539
17540 2004-01-14  Kelley Cook  <kcook@gcc.gnu.org>
17541
17542         * Make-lang.in: Only regenerate texi files if --enable-maintainer-mode.
17543
17544 2004-01-13  Ed Schonberg  <schonberg@gnat.com>
17545
17546         * exp_ch3.adb (Build_Assignment): Fix bug in handling of controlled
17547         components that are initialized with aggregates.
17548
17549 2004-01-13  Vincent Celier  <celier@gnat.com>
17550
17551         * gnatlink.adb (Process_Binder_File): To find directory of shared
17552         libgcc, if "gcc-lib" is not a subdirectory, look for the last
17553         subdirectory "lib" in the path of the shared libgnat or libgnarl.
17554
17555         * make.adb (Gnatmake): If GCC version is at least 3, link with
17556         -shared-libgcc, when there is at least one shared library project.
17557
17558         * opt.ads (GCC_Version): New integer constant.
17559
17560         * adaint.c (get_gcc_version): New function.
17561
17562 2004-01-13  Robert Dewar  <dewar@gnat.com>
17563
17564         * sem_dist.adb, sem_res.adb, sem_util.adb,
17565         sprint.adb, 3zsocthi.adb, einfo.adb, cstand.adb,
17566         exp_ch4.adb, exp_ch9.adb, exp_dist.adb: Minor reformatting
17567
17568 2004-01-13  Thomas Quinot  <quinot@act-europe.fr>
17569
17570         * s-interr.adb, s-stache.adb, s-taenca.adb, g-regpat.adb,
17571         g-spitbo.adb, 5itaprop.adb: Add missing 'constant' keywords in object
17572         declarations.
17573
17574 2004-01-12  Arnaud Charlet  <charlet@act-europe.fr>
17575
17576         * misc.c: Remove trailing spaces.
17577         Update copyright notice missed in previous change.
17578
17579         PR ada/13572
17580         * bld.adb (Recursive_Process): Reference prefix/share/gnat instead of
17581         prefix/share/make
17582
17583         * Makefile.generic: Update copyright.
17584         Add license notice.
17585
17586         * Makefile.in (ADA_SHARE_MAKE_DIR): Set to prefix/share/gnat instead
17587         of prefix/share/make.
17588
17589         * Makefile.prolog: Update copyright.
17590         Add license notice.
17591
17592 2004-01-12  Laurent Pautet  <pautet@act-europe.fr>
17593
17594         * 3vsocthi.adb, 3vsocthi.ads, 3wsocthi.adb,
17595         3wsocthi.ads, 3zsocthi.adb, 3zsocthi.ads, g-socthi.adb,
17596         g-socthi.ads (Socket_Error_Message): Return C.Strings.chars_ptr
17597         instead of String.
17598
17599         * g-socket.adb (Raise_Socket_Error): Use new Socket_Error_Message
17600         signature.
17601
17602 2004-01-12  Javier Miranda  <miranda@gnat.com>
17603
17604         * cstand.adb, exp_aggr.adb, exp_ch3.adb, exp_ch9.adb, exp_dist.adb,
17605         exp_imgv.adb, exp_pakd.adb, exp_util.adb, par-ch3.adb, sem.adb,
17606         sem_ch12.adb, sem_ch3.adb, sem_dist.adb, sem_prag.adb, sem_res.adb,
17607         sem_util.adb, sinfo.adb, sinfo.ads, sprint.adb: Addition of
17608         Component_Definition node.
17609
17610 2004-01-12  Ed Falis  <falis@gnat.com>
17611
17612         * impunit.adb: Add GNAT.Secondary_Stack_Info as user-visible unit
17613
17614 2004-01-12  Thomas Quinot  <quinot@act-europe.fr>
17615
17616         * link.c: Change default libgnat kind to STATIC for FreeBSD.
17617
17618 2004-01-12  Bernard Banner  <banner@gnat.com>
17619
17620         * Makefile.in: map 86numaux to a-numaux for x86_64
17621
17622 2004-01-12  Ed Schonberg  <schonberg@gnat.com>
17623
17624         * lib-xref.adb (Get_Type_Reference): If the type is the subtype entity
17625         generated to rename a generic actual, go to the actual itself, the
17626         subtype is not a user-visible entity.
17627
17628         * sem_ch7.adb (Uninstall_Declarations): If an entity in the visible
17629         part is a private subtype, reset the visibility of its full view, if
17630         any, to be consistent.
17631
17632         PR ada/13417
17633         * sem_ch12.adb (Analyze_Formal_Package): Diagnose properly an attempt
17634         to use a generic package G as a formal package for another generic
17635         declared within G.
17636
17637 2004-01-12  Robert Dewar  <dewar@gnat.com>
17638
17639         * trans.c (Eliminate_Error_Msg): New procedure called to generate msg
17640
17641         * usage.adb: Remove mention of obsolete -gnatwb switch
17642         Noticed during code reading
17643
17644 2004-01-12  Jerome Guitton  <guitton@act-europe.fr>
17645
17646         * 1ssecsta.adb: Minor changes for -gnatwa warnings
17647
17648 2004-01-12  GNAT Script  <nobody@gnat.com>
17649
17650         * Make-lang.in: Makefile automatically updated
17651
17652 2004-01-09  Mark Mitchell  <mark@codesourcery.com>
17653
17654         * misc.c (gnat_expand_expr): Add alt_rtl parameter.
17655
17656 2004-01-07  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
17657
17658         * link.c [sgi] (shared_libgnat_default): Change to STATIC.
17659
17660 2004-01-05  Kelley Cook  <kcook@gcc.gnu.org>
17661
17662         * Make-lang.in: Revert stamp-xgnatug change from 2003-12-18.
17663         Update comment and copyright date.
17664         * stamp-xgnatug: Delete.
17665
17666 2004-01-05  Robert Dewar  <dewar@gnat.com>
17667
17668         * 1ssecsta.ads: Default_Secondary_Stack is not a constant since it may
17669         be modified by the binder generated main program if the -D switch is
17670         used.
17671
17672         * 4onumaux.ads, 4znumaux.ads: Add Pure_Function pragmas for all
17673         imported functions (since now we expect this to be done for imported
17674         functions)
17675
17676         * 5vtaprop.adb: Add several ??? for sections requiring more comments
17677         Minor reformatting throughout
17678
17679         * 5zinit.adb: Minor reformatting
17680         Add 2004 to copyright date
17681         Minor changes to avoid -gnatwa warnings
17682         Correct some instances of using OR instead of OR ELSE (noted while
17683         doing reformatting)
17684
17685         * sprint.adb: Minor updates to avoid -gnatwa warnings
17686
17687         * s-secsta.ads, s-secsta.adb:
17688         (SS_Get_Max): New function to obtain high water mark for ss stack
17689         Default_Secondary_Stack is not a constant since it may be modified by
17690         the binder generated main program if the -D switch is used.
17691
17692         * switch-b.adb: New -Dnnn switch for binder
17693
17694         * switch-c.adb:
17695         Make -gnatg imply all warnings currently in -gnatwa
17696
17697         * vms_conv.adb: Minor reformatting
17698         Add 2004 to copyright notice
17699         Add 2004 to printed copyright notice
17700
17701         * 3vexpect.adb, 4zsytaco.adb, 3wsocthi.adb, 3zsocthi.adb,
17702         3zsocthi.adb, 56taprop.adb, 56tpopsp.adb, 5amastop.adb,
17703         5aml-tgt.adb, 5ataprop.adb, 5ataprop.adb, 5atpopsp.adb,
17704         5ftaprop.adb, 5ginterr.adb, 5gmastop.adb, 5gml-tgt.adb,
17705         5gtaprop.adb, 5hml-tgt.adb, 5hml-tgt.adb, 5hml-tgt.adb,
17706         5htaprop.adb, 5htraceb.adb, 5itaprop.adb, 5lml-tgt.adb,
17707         5sml-tgt.adb, 5staprop.adb, 5staprop.adb, 5stpopsp.adb,
17708         5vasthan.adb, 5vinmaop.adb, 5vinterr.adb, 5vtaprop.adb,
17709         5vml-tgt.adb, 5vtaprop.adb, 5wosprim.adb, 5wtaprop.adb,
17710         5zinterr.adb, 5zintman.adb, 5zml-tgt.adb, 5ztaprop.adb,
17711         6vcpp.adb, 6vcstrea.adb, 7staprop.adb, 7stpopsp.adb,
17712         vxaddr2line.adb, vxaddr2line.adb, xref_lib.adb, xr_tabls.adb,
17713         xr_tabls.ads, s-tasdeb.adb, s-tasdeb.adb, sem_res.ads,
17714         sem_util.adb, sem_util.adb, sem_util.ads, s-interr.adb,
17715         checks.adb, clean.adb, cstand.adb, einfo.ads,
17716         einfo.adb, exp_aggr.adb, exp_ch11.adb, exp_ch3.adb,
17717         exp_ch4.adb, exp_ch5.adb, exp_ch7.adb, exp_ch9.adb,
17718         prj-nmsc.adb, prj-pp.adb, prj-util.adb, sem_attr.adb,
17719         sem_ch10.adb, sem_ch12.adb, sem_ch4.adb, g-dirope.adb,
17720         g-dirope.ads, gnatlbr.adb, i-cstrea.adb, inline.adb,
17721         lib-xref.adb, sem_ch5.adb, sem_ch7.adb, sem_ch8.adb:
17722         Minor reformatting and code clean ups.
17723         Minor changes to prevent -gnatwa warnings
17724
17725         * ali.adb: Minor reformatting and cleanup of code
17726         Acquire new SS indication of secondary stack use from ali files
17727
17728         * a-numaux.ads: Add Pure_Function pragmas for all imported functions
17729         (since now we expect this to be done for imported functions)
17730
17731         * bindgen.adb: Generate call to modify default secondary stack size if
17732         -Dnnn switch given
17733
17734         * bindusg.adb: Add line for new -D switch
17735
17736         * exp_aggr.adb (Type_May_Have_Bit_Aligned_Components): More appropriate
17737         replacement name for Type_May_Have_Non_Bit_Aligned_Components!
17738         Add circuitry for both records and arrays to avoid gigi
17739         processing if the type involved has non-bit-aligned components
17740
17741         * exp_ch5.adb (Expand_Assign_Array): Avoid assumption that
17742         N_String_Literal node always references an E_String_Literal_Subtype
17743         entity. This may not be true in the future.
17744         (Possible_Bit_Aligned_Component): Move processing of
17745         Component_May_Be_Bit_Aligned from exp_ch5 to exp_util
17746
17747         * exp_ch6.adb (Expand_Thread_Body): Pick up
17748         Default_Secondary_Stack_Size as variable so that we get value modified
17749         by possible -Dnnn binder parameter.
17750
17751         * exp_util.adb (Component_May_Be_Bit_Aligned): New function.
17752         (Type_May_Have_Bit_Aligned_Components): New function.
17753
17754         * exp_util.ads (Component_May_Be_Bit_Aligned): New function.
17755         (Type_May_Have_Bit_Aligned_Components): New function.
17756
17757         * fe.h: (Set_Identifier_Casing): Fix prototype.
17758         Add declaration for Sem_Elim.Eliminate_Error_Msg.
17759         Minor reformatting.
17760
17761         * freeze.adb (Freeze_Entity): Add RM reference to error message about
17762         importing constant atomic/volatile objects.
17763         (Freeze_Subprogram): Reset Is_Pure indication for imported subprogram
17764         unless explicit Pure_Function pragma given, to avoid insidious bug of
17765         call to non-pure imported function getting eliminated.
17766
17767         * gnat1drv.adb, gnatbind.adb, gnatchop.adb, gnatfind.adb,
17768         gnatls.adb, gnatlink.adb, gnatmem.adb, gnatname.adb, gnatsym.adb,
17769         gnatxref.adb, gprcmd.adb, gprep.adb, make.adb: Minor reformatting
17770         Add 2004 to printed copyright notice
17771
17772         * lib-writ.ads, lib-writ.adb: Put new SS flag in ali file if secondary
17773         stack used.
17774
17775         * Makefile.rtl: Add entry for g-sestin.o
17776         g-sestin.ads: New file.
17777
17778         * mdll.adb: Minor changes to avoid -gnatwa warnings
17779
17780         * mlib-tgt.adb: Minor reformatting
17781
17782         * opt.ads: New parameter Default_Secondary_Stack_Size (GNATBIND)
17783         New switch Sec_Stack_Used (GNAT, GNATBIND)
17784         Make Default_Secondary_Stack_Size a variable instead of a constant,
17785         so that it can be modified by the new -Dnnn bind switch.
17786
17787         * rtsfind.adb (Load_Fail): Give full error message in configurable
17788         run-time mode if all_errors mode is set. This was not done in the case
17789         of a file not found, which was an oversight.
17790         Note if secondary stack unit is used by compiler.
17791
17792         * sem_elab.adb (Check_A_Call): Rewrite to avoid trying to put
17793         ineffective elaborate all pragmas on non-visible packages (this
17794         happened when a renamed subprogram was called). Now the elaborate all
17795         always goes on the package containing the renaming rather than the one
17796         containing the renamed subprogram.
17797
17798         * sem_elim.ads, sem_elim.adb (Eliminate_Error_Msg): New procedure
17799         (Process_Eliminate_Pragma): Add parameter to capture pragma location.
17800
17801         * sem_eval.adb (Eval_String_Literal): Do not assume that string literal
17802         has an Etype that references an E_String_Literal.
17803         (Eval_String_Literal): Avoid assumption that N_String_Literal node
17804         always references an E_String_Literal_Subtype entity. This may not
17805         be true in the future.
17806
17807         * sem_prag.adb (Process_Eliminate_Pragma): Add parameter to capture
17808         pragma location.
17809
17810         * sem_res.adb (Resolve): Specialize msg for function name used in proc
17811         call.
17812
17813 2004-01-05  Ed Falis  <falis@gnat.com>
17814
17815         * g-debuti.adb: Replaced direct boolean operator with short-circuit
17816         form.
17817
17818 2004-01-05  Vincent Celier  <celier@gnat.com>
17819
17820         * bld.adb: Minor comment updates
17821         (Process_Declarative_Items): Correct incorrect name (Index_Name instead
17822         of Item_Name).
17823
17824         * make.adb (Gnatmake): Special process for files to compile/check when
17825         -B is specified. Fail when there are only foreign mains in attribute
17826         Main of the project file and -B is not specified. Do not skip bind/link
17827         steps when -B is specified.
17828
17829         * makeusg.adb: Document new switch -B
17830
17831         * opt.ads (Build_Bind_And_Link_Full_Project): New Boolean flag
17832
17833         * switch-m.adb: (Scan_Make_Switches): Process -B switch
17834
17835         * vms_data.ads: Add new GNAT PRETTY qualifier
17836         /FORM_FEED_AFTER_PRAGMA_PAGE for switch -ff
17837
17838 2004-01-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17839
17840         * trans.c (tree_transform, case N_Free_Statement): Handle thin pointer
17841         case.
17842
17843         * misc.c (gnat_printable_name): If VERBOSITY is 2, call
17844         Set_Identifier_Casing.
17845
17846         * decl.c (gnat_to_gnu_entity, E_Function): Give error if return type
17847         has size that overflows.
17848
17849 2004-01-05  Gary Dismukes  <dismukes@gnat.com>
17850
17851         * exp_ch4.adb (Expand_Array_Comparison): Add Boolean constant to avoid
17852         -gnatwa warning on static condition.
17853
17854 2004-01-05  Doug Rupp  <rupp@gnat.com>
17855
17856         * link.c: (shared_libgnat_default) [VMS]: Change to STATIC.
17857
17858 2004-01-05  Arnaud Charlet  <charlet@act-europe.fr>
17859
17860         * Makefile.in: Install ali files using INSTALL_DATA_DATE to preserve
17861         all attributes, including read-only attribute.
17862
17863 2004-01-05  Pascal Obry  <obry@gnat.com>
17864
17865         * bindgen.adb (Gen_Object_Files_Options): Generate the new shared
17866         library naming scheme.
17867
17868         * mlib-prj.adb (Build_Library): Generate different names for the static
17869         or dynamic version of the GNAT runtime. This is needed to support the
17870         new shared library naming scheme.
17871         (Process_Binder_File): Add detection of shared library in binder file
17872         based on the new naming scheme.
17873
17874         * gnatlink.adb (Process_Binder_File): Properly detect the new naming
17875         scheme for the shared runtime libraries.
17876
17877         * Makefile.in:
17878         (LIBRARY_VERSION) [VMS]: Convert all . to _ to conform to new naming
17879         scheme.
17880         (install-gnatlib): Do not create symlinks for shared libraries.
17881         (gnatlib-shared-default): Idem.
17882         (gnatlib-shared-dual-win32): New target. Not used for now as the
17883         auto-import feature does not support arrays/records.
17884         (gnatlib-shared-win32): Do not create copy for the shared libraries.
17885         (gnatlib-shared-vms): Fix shared runtime libraries names.
17886
17887         * osint.ads, osint.adb (Shared_Lib): New routine, returns the target
17888         dependent runtime shared library name.
17889
17890 2004-01-05  Vasiliy Fofanov  <fofanov@act-europe.fr>
17891
17892         * osint.adb (Read_Library_Info): Remove bogus check if ALI is older
17893         than the object.
17894
17895 2004-01-05  Ed Schonberg  <schonberg@gnat.com>
17896
17897         * sem_ch4.adb (Analyze_Allocator): Check restriction on dynamic
17898         protected objects when allocator has a subtype indication, not a
17899         qualified expression. Note that qualified expressions may have to be
17900         checked when limited aggregates are implemented.
17901
17902         * sem_prag.adb (Analyze_Pragma, case Import): If enclosing package is
17903         pure, emit warning.
17904         (Analyze_Pragma, case Pure_Function): If enclosing package is pure and
17905         subprogram is imported, remove warning.
17906
17907 2004-01-05  Geert Bosch  <bosch@gnat.com>
17908
17909         * s-poosiz.adb: Update copyright notice.
17910         (Allocate): Use Task_Lock to protect against concurrent access.
17911         (Deallocate): Likewise.
17912
17913 2004-01-05  Joel Brobecker  <brobecker@gnat.com>
17914
17915         * s-stalib.adb (Elab_Final_Code): Add missing year in date inside ???
17916         comment.
17917
17918 2003-12-23  Kelley Cook  <kcook@gcc.gnu.org>
17919
17920         * gnat_ug.texi: Force a CVS commit by updating copyright.
17921         * gnat_ug_vxw.texi: Regenerate.
17922         * gnat_ug_wnt.texi: Regenerate.
17923         * gnat_ug_vms.texi: Regenerate.
17924         * gnat_ug_unx.texi: Regenerate.
17925
17926 2003-12-20  Kazu Hirata  <kazu@cs.umass.edu>
17927
17928         * trans.c: Remove uses of "register" specifier in
17929         declarations of local variables.
17930
17931 2003-12-18  Kelley Cook  <kcook@gcc.gnu.org>
17932
17933         * stamp-xgnatug: New stamp file.
17934         * Make-lang.in (stamp-xgnatug):  New stamp file and comment.
17935         (ada/doctools/xgnatug): Add $(build_exeext).
17936         (ada/gnat_ug_unx.texi, ada/gnat_ug_vwx.texi, ada/gnat_ug_vms.texi
17937         ada/gnat_ug_wnt.texi): Update to depend on stamp-xgnatug.
17938
17939 2003-12-17  Ed Falis  <falis@gnat.com>
17940
17941         * a-elchha.adb (Tailored_Exception_Information): made Info constant to
17942         eliminate warning.
17943
17944         * a-exextr.adb: Add context clause for
17945         Ada.Exceptions.Last_Chance_Handler.
17946
17947 2003-12-17  Sergey Rybin  <rybin@act-europe.fr>
17948
17949         * cstand.adb (Create_Standard): Change the way how the declaration of
17950         the Duration type is created (making it the same way as it is for all
17951         the other standard types).
17952
17953 2003-12-17  Robert Dewar  <dewar@gnat.com>
17954
17955         * s-crtl.ads: Fix header format
17956         Change Pure to Preelaborate
17957
17958 2003-12-17  Ed Schonberg  <schonberg@gnat.com>
17959
17960         * checks.adb (Selected_Length_Checks): Generate an Itype reference for
17961         the expression type only if it is declared in the current unit.
17962
17963         * sem_ch3.adb (Constrain_Index): Handle properly a range whose bounds
17964         are universal and already analyzed, as can occur in constrained
17965         subcomponents that depend on discriminants, when one constraint is a
17966         subtype mark.
17967
17968         * sem_res.adb (Resolve_Type_Conversion): Any arithmetic expression of
17969         type Any_Fixed is legal as the argument of a conversion, if only one
17970         fixed-point type is in context.
17971
17972 2003-12-17  GNAT Script  <nobody@gnat.com>
17973
17974         * Make-lang.in: Makefile automatically updated
17975
17976 2003-12-15  Robert Dewar  <dewar@gnat.com>
17977
17978         * exp_ch6.adb (Expand_Thread_Body): Fix error in picking up default
17979         sec stack size.
17980
17981 2003-12-15  Vincent Celier  <celier@gnat.com>
17982
17983         * gnatchop.adb: (Error_Msg): Do not exit on error for a warning
17984         (Gnatchop): Do not set failure status when reporting the number of
17985         warnings.
17986
17987 2003-12-15  Doug Rupp  <rupp@gnat.com>
17988
17989         * s-ctrl.ads: New file.
17990
17991         * Makefile.rtl (GNAT_RTL_NONTASKING_OBJS): Add s-crtl$(objext).
17992
17993         * Make-lang.in: (GNAT_ADA_OBJS): Add ada/s-crtl.o.
17994         (GNATBIND_OBJS): Add ada/s-crtl.o.
17995
17996         * Makefile.in [VMS]: Clean up ifeq rules.
17997
17998         * gnatlink.adb, 6vcstrea.adb, a-direio.adb, a-sequio.adb,
17999         a-ststio.adb, a-textio.adb, g-os_lib.adb, a-witeio.adb,
18000         g-os_lib.ads, i-cstrea.adb, i-cstrea.ads, s-direio.adb,
18001         s-fileio.adb, s-memcop.ads, s-memory.adb, s-stache.adb,
18002         s-tasdeb.adb: Update copyright.
18003         Import System.CRTL.
18004         Make minor modifications to use System.CRTL declared functions instead
18005         of importing locally.
18006
18007 2003-12-15  GNAT Script  <nobody@gnat.com>
18008
18009         * Make-lang.in: Makefile automatically updated
18010
18011 2003-12-11  Ed Falis  <falis@gnat.com>
18012
18013         * 5zinit.adb: Clean up.
18014
18015         * 5zintman.adb (Notify_Exception): replaced case statement with a call
18016         to __gnat_map_signal, imported from init.c to support
18017         signal -> exception mappings that depend on the vxWorks version.
18018
18019         * init.c:
18020         Created and exported __gnat_map_signal to support signal -> exception
18021         mapping that is dependent on the VxWorks version.
18022         Change mapping of SIGBUS from Program_Error to Storage_Error on VxWorks
18023
18024 2003-12-11  Vasiliy Fofanv  <fofanov@act-europe.fr>
18025
18026         * 5wosinte.ads: Link with -mthreads switch.
18027
18028 2003-12-11  Arnaud Charlet  <charlet@act-europe.fr>
18029
18030         * init.c (__gnat_install_handler [NetBSD]): Set
18031         __gnat_handler_installed, as done on all other platforms.
18032         Remove duplicated code.
18033
18034 2003-12-11  Jerome Guitton  <guitton@act-europe.fr>
18035
18036         * Makefile.in (rts-zfp, rts-ravenscar): Create libgnat.a.
18037
18038 2003-12-11  Thomas Quinot  <quinot@act-europe.fr>
18039
18040         * sinfo.ads: Fix inconsistent example code in comment.
18041
18042 2003-12-11  Robert Dewar  <dewar@gnat.com>
18043
18044         * a-tiinau.adb: Add a couple of comments
18045
18046         * sem_ch3.adb: Minor reformatting
18047
18048         * sem_prag.adb:
18049         Fix bad prototype of Same_Base_Type in body (code reading cleanup)
18050         Minor reformatting throughout
18051
18052 2003-12-11  Ed Schonberg  <schonberg@gnat.com>
18053
18054         * exp_ch7.adb (Establish_Transient_Scope): If the call is within the
18055         bounds of a loop, create a separate block in order to generate proper
18056         cleanup actions to prevent memory leaks.
18057
18058         * sem_res.adb (Resolve_Call): After a call to
18059         Establish_Transient_Scope, the call may be rewritten and relocated, in
18060         which case no further processing is needed.
18061
18062         * sem_util.adb: (Wrong_Type): Refine previous fix.
18063          Fixes ACATS regressions.
18064
18065         PR ada/13353
18066
18067         * sem_prag.adb (Back_End_Cannot_Inline): A renaming_as_body can always
18068         be inlined.
18069
18070 2003-12-08  Jerome Guitton  <guitton@act-europe.fr>
18071
18072         * 5ytiitho.adb, 5zthrini.adb, 5ztiitho.adb, i-vthrea.adb,
18073         i-vthrea.ads, s-tpae65.adb, s-tpae65.ads: Cleanup: Remove a bunch of
18074         obsolete files.
18075
18076         * Makefile.in: (rts-ravenscar): Generate an empty libgnat.a.
18077         (rts-zfp): Ditto.
18078
18079 2003-12-08  Robert Dewar  <dewar@gnat.com>
18080
18081         * 7sintman.adb: Minor reformatting
18082
18083         * bindgen.adb: Configurable_Run_Time mode no longer suppresses the
18084         standard linker options to get standard libraries linked. We now plan
18085         to provide dummy versions of these libraries to match the appropriate
18086         configurable run-time (e.g. if a library is not needed at all, provide
18087         a dummy empty library).
18088
18089         * targparm.ads: Configurable_Run_Time mode no longer affects linker
18090         options (-L parameters and standard libraries). What we plan to do is
18091         to provide dummy libraries where the libraries are not required.
18092
18093         * gnatbind.adb: Minor comment improvement
18094
18095 2003-12-08  Javier Miranda  <miranda@gnat.com>
18096
18097         * exp_aggr.adb (Build_Record_Aggr_Code): Do not remove the expanded
18098         aggregate in the parent. Otherwise constants with limited aggregates
18099         are not supported. Add new formal to pass the component type (Ctype).
18100         It is required to call the corresponding IP subprogram in case of
18101         default initialized components.
18102         (Gen_Assign): In case of default-initialized component, generate a
18103         call to the IP subprogram associated with the component.
18104         (Build_Record_Aggr_Code): Remove the aggregate from the parent in case
18105         of aggregate with default initialized components.
18106         (Has_Default_Init_Comps): Improve implementation to recursively check
18107         all the present expressions.
18108
18109         * exp_ch3.ads, exp_ch3.adb (Build_Initialization_Call): Add new formal
18110         to indicate that the initialization call corresponds to a
18111         default-initialized component of an aggregate.
18112         In case of default initialized aggregate with tasks this parameter is
18113         used to generate a null string (this is just a workaround that must be
18114         improved later). In case of discriminants, this parameter is used to
18115         generate a selected component node that gives access to the discriminant
18116         value.
18117
18118         * exp_ch9.ads, exp_ch9.adb (Build_Task_Allocate_Block_With_Stmts): New
18119         subprogram, based on Build_Task_Allocate_Block, but adapted to expand
18120         allocated aggregates with default-initialized components.
18121
18122         * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Improve error message if
18123         the box notation is used in positional aggregates.
18124
18125 2003-12-08  Samuel Tardieu  <tardieu@act-europe.fr>
18126
18127         * lib.ads: Fix typo in comment
18128
18129 2003-12-08  Vincent Celier  <celier@gnat.com>
18130
18131         * prj.adb (Project_Empty): New component Unkept_Comments
18132         (Scan): Remove procedure; moved to Prj.Err.
18133
18134         * prj.ads (Project_Data): New Boolean component Unkept_Comments
18135         (Scan): Remove procedure; moved to Prj.Err.
18136
18137         * prj-dect.adb: Manage comments for the different declarations.
18138
18139         * prj-part.adb (With_Record): New component Node
18140         (Parse): New Boolean parameter Store_Comments, defaulted to False.
18141         Set the scanner to return ends of line and comments as tokens, if
18142         Store_Comments is True.
18143         (Pre_Parse_Context_Clause): Create the N_With_Clause nodes so that
18144         comments are associated with these nodes. Store the node IDs in the
18145         With_Records.
18146         (Post_Parse_Context_Clause): Use the N_With_Clause nodes stored in the
18147         With_Records.
18148         (Parse_Single_Project): Call Pre_Parse_Context_Clause before creating
18149         the N_Project node. Call Tree.Save and Tree.Reset before scanning the
18150         current project. Call Tree.Restore afterwards. Set the various nodes
18151         for comment storage (Next_End, End_Of_Line, Previous_Line,
18152         Previous_End).
18153
18154         * prj-part.ads (Parse): New Boolean parameter Store_Comments,
18155         defaulted to False.
18156
18157         * prj-pp.adb (Write_String): New Boolean parameter Truncated, defaulted
18158         to False. When Truncated is True, truncate the string, never go to the
18159         next line.
18160         (Write_End_Of_Line_Comment): New procedure
18161         (Print): Process comments for nodes N_With_Clause,
18162         N_Package_Declaration, N_String_Type_Declaration,
18163         N_Attribute_Declaration, N_Typed_Variable_Declaration,
18164         N_Variable_Declaration, N_Case_Construction, N_Case_Item.
18165         Process nodes N_Comment.
18166
18167         * prj-tree.ads, prj-tree.adb (Default_Project_Node): If it is a node
18168         without comments and there are some comments, set the flag
18169         Unkept_Comments to True.
18170         (Scan): If there are comments, set the flag Unkept_Comments to True and
18171         clear the comments.
18172         (Project_Node_Kind): Add enum values N_Comment_Zones, N_Comment
18173         (Next_End_Nodes: New table
18174         (Comment_Zones_Of): New function
18175         (Scan): New procedure; moved from Prj. Accumulate comments in the
18176         Comments table and set end of line comments, comments after, after end
18177         and before end.
18178         (Add_Comments): New procedure
18179         (Save, Restore, Seset_State): New procedures
18180         (There_Are_Unkept_Comments): New function
18181         (Set_Previous_Line_Node, Set_Previous_End_Node): New procedures
18182         (Set_End_Of_Line, Set_Next_End_Node, Remove_Next_End_Node): New
18183         procedures.
18184         (First_Comment_After, First_Comment_After_End): New functions
18185         (First_Comment_Before, First_Comment_Before_End): New functions
18186         (Next_Comment): New function
18187         (End_Of_Line_Comment, Follows_Empty_Line,
18188         Is_Followed_By_Empty_Line): New functions
18189         (Set_First_Comment_After, Set_First_Comment_After_End): New procedures
18190         (Set_First_Comment_Before, Set_First_Comment_Before_End): New procedures
18191         (Set_Next_Comment): New procedure
18192         (Default_Project_Node): Associate comment before if the node can store
18193         comments.
18194
18195         * scans.ads (Token_Type): New enumeration value Tok_Comment
18196         (Comment_Id): New global variable
18197
18198         * scng.ads, scng.adb (Comment_Is_Token): New Boolean global variable,
18199         defaulted to False.
18200         (Scan): Store position of start of comment. If comments are tokens, set
18201         Comment_Id and set Token to Tok_Comment when scanning a comment.
18202         (Set_Comment_As_Token): New procedure
18203
18204         * sinput-p.adb: Update Copyright notice
18205         (Source_File_Is_Subunit): Call Prj.Err.Scanner.Scan instead of Prj.Scan
18206         that no longer exists.
18207
18208 2003-12-08  Javier Miranda  <miranda@gnat.com>
18209
18210         * sem_aggr.adb: Add dependence on Exp_Tss package
18211         Correct typo in comment
18212         (Resolve_Aggregate): In case of array aggregates set the estimated
18213         type of the aggregate before calling resolve. This is needed to know
18214         the name of the corresponding IP in case of limited array aggregates.
18215         (Resolve_Array_Aggregate): Delay the resolution to the expansion phase
18216         in case of default initialized array components.
18217
18218         * sem_ch12.adb (Analyze_Formal_Object_Declaration): Allow limited
18219         types. Required to give support to limited aggregates in generic
18220         formals.
18221
18222 2003-12-08  Ed Schonberg  <schonberg@gnat.com>
18223
18224         * sem_ch3.adb (Check_Initialization): For legality purposes, an
18225         inlined body functions like an instantiation.
18226         (Decimal_Fixed_Point_Declaration): Do not set kind of first subtype
18227         until bounds are analyzed, to diagnose premature use of type.
18228
18229         * sem_util.adb (Wrong_Type): Improve error message when the type of
18230         the expression is used prematurely.
18231
18232 2003-12-08  GNAT Script  <nobody@gnat.com>
18233
18234         * Make-lang.in: Makefile automatically updated
18235
18236 2003-12-08  Arnaud Charlet  <charlet@act-europe.fr>
18237
18238         * sinfo.h, einfo.h, nmake.ads, nmake.adb, treeprs.ads: Removed, since
18239         they are automatically generated by Make-lang.in and cause nothing but
18240         maintenance troubles.
18241
18242 2003-12-05  Thomas Quinot  <quinot@act-europe.fr>
18243
18244         * 3ssoliop.ads: Fix comment (this is the Solaris, not the UnixWare,
18245         version of this unit).
18246
18247 2003-12-05  Olivier Hainque  <hainque@act-europe.fr>
18248
18249         * 53osinte.ads, 54osinte.ads, 55osinte.ads, 56osinte.ads, 5bosinte.ads,
18250         5cosinte.ads, 5hosinte.ads, 5iosinte.ads, 5losinte.ads,
18251         5tosinte.ads: Define the SA_SIGINFO constant, to allow references from
18252         the body of System.Interrupt_Management common to several targets.
18253         Update copyright notice when appropriate.
18254
18255         * 52osinte.ads, 5posinte.ads: Define a dummy value for the SA_SIGINFO
18256         constant.
18257
18258         * 7sintman.adb (elaboration): Set SA_SIGINFO in the sigaction flags,
18259         to ensure that the kernel fills in the interrupted context structure
18260         before calling a signal handler, which is necessary to be able to
18261         unwind past it. Update the copyright notice.
18262
18263 2003-12-05  Jerome Guitton  <guitton@act-europe.fr>
18264
18265         * a-elchha.ads: New file.
18266
18267         * a-elchha.adb: New default last chance handler. Contents taken from
18268         Ada.Exceptions.Exception_Traces.Unhandled_Exception_Terminate.
18269
18270         * a-exextr.adb (Unhandled_Exception_Terminate): Most of this routine
18271         is moved to a-elchha.adb to provide a target-independent default last
18272         chance handler.
18273
18274         * Makefile.rtl: Add a-elchha.o
18275
18276         * Make-lang.in (GNAT_ADA_OBJS, GNATBIND_OBJS): Add a-elchha.o.
18277
18278 2003-12-05  Ed Schonberg  <schonberg@gnat.com>
18279
18280         * exp_ch6.adb (Expand_Call): If the subprogram is inlined and is
18281         declared in an instance, do not inline the call if the instance is not
18282         frozen yet, to prevent order of elaboration problems.
18283
18284         * sem_prag.adb: Add comments for previous fix.
18285
18286 2003-12-05  Samuel Tardieu  <tardieu@act-europe.fr>
18287
18288         * g-table.adb: Use the right variable in Set_Item.
18289         Update copyright notice.
18290
18291 2003-12-05  Arnaud Charlet  <charlet@act-europe.fr>
18292
18293         * Makefile.in: Remove unused rules.
18294
18295 2003-12-05  Vincent Celier  <celier@gnat.com>
18296
18297         * switch-c.adb (Scan_Front_End_Switches): Remove processing of
18298         -nostdlib. Not needed here after all.
18299
18300 2003-12-03  Thomas Quinot  <quinot@act-europe.fr>
18301
18302         PR ada/11724
18303
18304         * adaint.h, adaint.c, g-os_lib.ads:
18305         Do not assume that the offset argument to lseek(2) is a 32 bit integer,
18306         on some platforms (including FreeBSD), it is a 64 bit value.
18307         Introduce a __gnat_lseek wrapper in adaint.c to allow for portability.
18308
18309 2003-12-03  Arnaud Charlet  <charlet@act-europe.fr>
18310
18311         * gnatvsn.ads (Library_Version): Now contain only the relevant
18312         version info.
18313         (Verbose_Library_Version): New constant.
18314
18315         * g-spipat.adb, g-awk.adb, g-debpoo.adb,
18316         g-memdum.adb, g-thread.adb, s-geveop.adb, s-interr.adb,
18317         s-taskin.adb, s-tassta.adb: Make code compile with -gnatwa.
18318
18319         * gnatlbr.adb: Clean up: replace Library_Version by
18320         Verbose_Library_Version.
18321
18322         * make.adb, lib-writ.adb, exp_attr.adb:
18323         Clean up: replace Library_Version by Verbose_Library_Version.
18324
18325         * 5lintman.adb: Removed.
18326
18327         * Makefile.in:
18328         Update and simplify computation of LIBRARY_VERSION.
18329         Fix computation of GSMATCH_VERSION.
18330         5lintman.adb is no longer used: replaced by 7sintman.adb.
18331
18332 2003-12-03  Robert Dewar  <dewar@gnat.com>
18333
18334         * exp_ch5.adb:
18335         (Possible_Bit_Aligned_Component): Maybe_Bit_Aligned_Large_Component new
18336         name. Modified to consider small non-bit-packed arrays as troublesome
18337         and in need of component-by-component assigment expansion.
18338
18339 2003-12-03  Vincent Celier  <celier@gnat.com>
18340
18341         * lang-specs.h: Process nostdlib as nostdinc
18342
18343         * back_end.adb: Update Copyright notice
18344         (Scan_Compiler_Arguments): Process -nostdlib directly.
18345
18346 2003-12-03  Jose Ruiz  <ruiz@act-europe.fr>
18347
18348         * Makefile.in:
18349         When defining LIBGNAT_TARGET_PAIRS for bare board targets, remove the
18350         redundant inclusion of EXTRA_HIE_NONE_TARGET_PAIRS, which is always
18351         included in HIE_NONE_TARGET_PAIRS.
18352
18353 2003-12-03  Ed Schonberg  <schonberg@gnat.com>
18354
18355         * sem_attr.adb:
18356         (Legal_Formal_Attribute): Attribute is legal in an inlined body, as it
18357         is legal in an instance, because legality is cheched in the template.
18358
18359         * sem_prag.adb:
18360         (Analyze_Pragma, case Warnings): In an inlined body, the pragma may be
18361         appplied to an unchecked conversion of a formal parameter.
18362
18363         * sem_warn.adb:
18364         (Output_Unreferenced_Messages): Suppress "not read" warnings on imported
18365         variables.
18366
18367 2003-12-03  Olivier Hainque  <hainque@act-europe.fr>
18368
18369         * tb-alvms.c (unwind_regular_code, unwind_kernel_handler): New
18370         routines. The second one is new functionality to deal with backtracing
18371         through signal handlers.
18372         (unwind): Split into the two separate subroutines above.
18373         Update the documentation, and deal properly with sizeof (REG) different
18374         from sizeof (void*).
18375
18376 2003-12-01  Nicolas Setton  <setton@act-europe.fr>
18377
18378         * a-except.adb (Raise_Current_Excep): Add a pragma Inspection_Point,
18379         so that the debugger can reliably access the value of the parameter,
18380         and therefore is able to display the exception name when an exception
18381         breakpoint is reached.
18382
18383 2003-12-01  Thomas Quinot  <quinot@act-europe.fr>
18384
18385         * fmap.adb: Fix typo in warning message.
18386
18387         * g-socket.ads, g-socket.adb: Make Free a visible instance of
18388         Ada.Unchecked_Deallocation (no need to wrap it in a subprogram).
18389
18390 2003-12-01  Vincent Celier  <celier@gnat.com>
18391
18392         * mlib-prj.adb (Build_Library.Process): Do not check a withed unit if
18393         ther is no Afile.
18394         (Build_Library): Get the switches only if Default_Switches is declared
18395         in package Binder.
18396
18397 2003-12-01  Ed Schonberg  <schonberg@gnat.com>
18398
18399         * exp_ch6.adb (Expand_Actuals): When applying validity checks to
18400         actuals that are indexed components, reanalyze actual to ensure that
18401         packed array references are properly expanded.
18402
18403         * sem_ch5.adb (Diagnose_Non_Variable_Lhs): Add special case for
18404         attempted assignment to a discriminant.
18405
18406 2003-12-01  Robert Dewar  <dewar@gnat.com>
18407
18408         * rtsfind.adb, exp_ch4.adb, s-exnint.ads, s-exnint.adb: Minor
18409         reformatting.
18410
18411         * switch-c.adb: Minor reformatting of comments
18412
18413 2003-12-01  Arnaud Charlet  <charlet@act-europe.fr>
18414
18415         * Makefile.in: Clean ups.
18416
18417 2003-12-01  GNAT Script  <nobody@gnat.com>
18418
18419         * Make-lang.in: Makefile automatically updated
18420
18421 2003-12-01  Arnaud Charlet  <charlet@act-europe.fr>
18422
18423         * 5wsystem.ads: Disable zero cost exception, not ready yet.
18424
18425 2003-11-29  Ulrich Weigand  <uweigand@de.ibm.com>
18426
18427         * Make-lang.in (nmake.ads): Add dependency on ada/nmake.adb
18428         to force serialization.
18429
18430 2003-11-26  Thomas Quinot  <quinot@act-europe.fr>
18431
18432         * g-socket.ads, g-socket.adb:
18433         Clarify documentation of function Stream. Introduce a Free procedure
18434         to release the returned Stream once it becomes unused.
18435
18436         * 5asystem.ads: For Alpha Tru64, enable ZCX by default.
18437
18438 2003-11-26  Arnaud Charlet  <charlet@act-europe.fr>
18439
18440         (Cond_Timed_Wait): Introduce new constant Time_Out_Max,
18441         since NT 4 cannot handle timeout values that are too large,
18442         e.g. DWORD'Last - 1.
18443
18444 2003-11-26  Ed Schonberg  <schonberg@gnat.com>
18445
18446         * exp_ch4.adb:
18447         (Expand_N_Slice): Recognize all cases of slices that appear as actuals
18448         in procedure calls and whose expansion must be deferred.
18449
18450         * exp_ch6.adb (Add_Call_By_Copy_Node): Remove previous fix. Proper fix
18451         is in exp_ch4.
18452
18453         * sem_ch3.adb:
18454         (Build_Derived_Array_Type): Create operator for unconstrained type
18455         if ancestor is unconstrained.
18456
18457 2003-11-26  Vincent Celier  <celier@gnat.com>
18458
18459         * make.adb (Project_Object_Directory): New global variable
18460         (Change_To_Object_Directory): New procedure
18461         (Collect_Arguments_And_Compile): Call Change_To_Object_Directory instead
18462         of Change_Dir directly. Do not change working directory to object
18463         directory of main project after each compilation.
18464         (Gnatmake): Use Change_To_Object_Directory instead of Change_Dir
18465         directly.
18466         Change to object directory of main project before binding step.
18467         (Initialize): Initialize Project_Object_Directory to No_Project
18468
18469         * mlib-prj.adb:
18470         (Build_Library): Take into account Builder'Default_Switches ("Ada") when
18471         binding a Stand-Alone Library.
18472
18473         * output.adb: Update Copyright notice
18474         (Write_Char): Output buffer when full
18475
18476 2003-11-26  Robert Dewar  <dewar@gnat.com>
18477
18478         * sem_ch13.adb: (Check_Size): Reset size if size is too small
18479
18480         * sem_ch13.ads:
18481         (Check_Size): Fix documentation to include bit-packed array case
18482
18483         * sem_res.adb: Implement restriction No_Direct_Boolean_Operators
18484
18485         * s-rident.ads: Put No_Direct_Boolean_Operators in proper order
18486
18487         * s-rident.ads: Add new restriction No_Direct_Boolean_Operators
18488
18489 2003-11-24  Arnaud Charlet <charlet@act-europe.fr>
18490
18491         PR ada/13142
18492         * utils.c (init_gigi_decls): Change name of built-in setjmp to
18493         __builtin_setjmp, since this is apparently needed by recent
18494         non Ada changes.
18495
18496 2003-11-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
18497
18498         * adadecode.c: Only include ctype.h if not IN_GCC.
18499         (__gnat_decode): Use ISDIGIT from safe-ctype.h.
18500
18501 2003-11-24  Jose Ruiz  <ruiz@act-europe.fr>
18502
18503         * Makefile.in:
18504         Use 5zintman.ads for VxWorks targets. This file avoid confusion between
18505         signals and interrupts.
18506
18507         * 5zintman.ads: New File.
18508
18509         * 5zintman.adb: Replace Exception_Interrupts by Exception_Signals, and
18510         add exception signals to the set of unmasked signals.
18511
18512         * 5ztaprop.adb:
18513         Use Abort_Task_Signal instead of Abort_Task_Interrupt to avoid confusion
18514         between signals and interrupts.
18515         Add to Unblocked_Signal_Mask the set of signals that are in
18516         Keep_Unmasked.
18517
18518         * 7sinmaop.adb:
18519         Adding a check to see whether the Interrupt_ID we want to unmask is in
18520         the range of Keep_Unmasked (in procedure Interrupt_Self_Process). The
18521         reason is that the index type of the Keep_Unmasked array is not always
18522         Interrupt_ID; it may be a subtype of Interrupt_ID.
18523
18524 2003-11-24  Gary Dismukes  <dismukes@gnat.com>
18525
18526         * exp_util.adb:
18527         (Remove_Side_Effects): Condition constantness of object created for a
18528          an unchecked type conversion on the constantness of the expression
18529          to ensure the correct value for 'Constrained when passing components
18530          of view-converted class-wide objects.
18531
18532 2003-11-24  Robert Dewar  <dewar@gnat.com>
18533
18534         * par-load.adb (Load): Improve handling of misspelled and missing units
18535         Removes several cases of compilation abandoned messages
18536
18537         * lib.adb: (Remove_Unit): New procedure
18538
18539         * lib.ads: (Remove_Unit): New procedure
18540
18541         * lib-load.adb: Minor reformatting
18542
18543 2003-11-24  Vincent Celier  <celier@gnat.com>
18544
18545         * make.adb:
18546         (Gnatmake, Initialize): Call Usage instead of Makeusg directly
18547         (Marking_Label): Label to mark processed source files. Incremented for
18548         each executable.
18549         (Gnatmake): Increase Marking_Labet for each executable
18550         (Is_Marked): Compare against marking label
18551         (Mark): Mark with marking label
18552
18553 2003-11-24  Jerome Guitton  <guitton@act-europe.fr>
18554
18555         * s-thread.ads:
18556         Move the declaration of the TSD for System.Threads to System.Soft_Links.
18557         Add some comments.
18558
18559         * Makefile.in: Added target pair for s-thread.adb for cert runtime.
18560         (rts-cert): build a single relocatable object for the run-time lib.
18561         Fix perms.
18562
18563 2003-11-24  Vasiliy Fofanov  <fofanov@act-europe.fr>
18564
18565         * Make-lang.in:
18566         Use gnatls rather than gcc to obtain the location of GNAT RTL for
18567         crosstools build.
18568
18569 2003-11-24  Sergey Rybin  <rybin@act-europe.fr>
18570
18571         * opt.adb (Tree_Write): Gnat_Version_String is now a function, so we
18572         can not use it as before (that is, as a variable) when dumping it into
18573         the tree file. Add a local variable to store the result of this
18574         function and to be used as the string to be written into the tree.
18575
18576         * scn.adb (Initialize_Scanner): Add comments explaining the recent
18577         changes.
18578
18579         * sinput.adb (Source_First, Source_Last): In case of
18580         Internal_Source_File, replace returning attributes of
18581         Internal_Source_Ptr (which is wrong) with returning attributes of
18582         Internal_Source.
18583
18584 2003-11-24  Ed Schonberg  <schonberg@gnat.com>
18585
18586         * sem_ch3.adb:
18587         (New_Concatenation_Op): Proper name for New_Binary_Operator, only
18588         used for implicit concatenation operators.
18589         Code cleanup.
18590
18591         * sem_elab.adb:
18592         (Check_Elab_Call): Set No_Elaboration_Check appropriately on calls in
18593         task bodies that are in the scope of a Suppress pragma.
18594         (Check_A Call): Use the flag to prevent spurious elaboration checks.
18595
18596         * sinfo.ads, sinfo.adb:
18597         New flag No_Elaboration_Check on function/procedure calls, to properly
18598         suppress checks on calls in task bodies that are within a local suppress
18599         pragma.
18600
18601         * exp_ch4.adb:
18602         (Expand_Concatenate_Other): Use the proper integer type for the
18603         expression for the upper bound, to avoid universal_integer computations
18604         when possible.
18605
18606 2003-11-21  Kelley Cook  <kcook@gcc.gnu.org>
18607
18608         * .cvsignore: Delete.
18609
18610 2003-11-21  Andreas Schwab  <schwab@suse.de>
18611
18612         * 55system.ads: Set ZCX_By_Default and GCC_ZCX_Support to True.
18613
18614 2003-11-21  Vasiliy Fofanov  <fofanov@act-europe.fr>
18615
18616         * 5wsystem.ads: Enable zero cost exception.
18617
18618 2003-11-21  Jerome Guitton  <guitton@act-europe.fr>
18619
18620         * 5ztiitho.adb: Remove an unreferenced variable.
18621
18622 2003-11-21  Thomas Quinot  <quinot@act-europe.fr>
18623
18624         * adaint.c: For FreeBSD, use mkstemp.
18625
18626 2003-11-21  Arnaud Charlet  <charlet@act-europe.fr>
18627
18628         * gnatlbr.adb: Now reference Gnat_Static_Version_String.
18629
18630 2003-11-21  Robert Dewar  <dewar@gnat.com>
18631
18632         * bld.adb: Remove useless USE of gnatvsn
18633
18634         * gnatchop.adb: Minor reformatting
18635         Clean up version handling to be more consistent
18636
18637         * gnatxref.adb: Minor reformatting
18638
18639         * gprcmd.adb: Minor reformatting
18640         Fix output of copyright to be more consistent with other tools
18641
18642 2003-11-21  Vincent Celier  <celier@gnat.com>
18643
18644         * make.adb (Scan_Make_Args): Do not transmit --RTS= to gnatlink
18645
18646 2003-11-21  Sergey Rybin  <rybin@act-europe.fr>
18647
18648         * atree.adb (Initialize): Add initializations for global variables
18649         used in New_Copy_Tree.
18650
18651         * cstand.adb (Create_Standard): Add call to Initialize_Scanner (with
18652         Internal_Source_File as the actual).
18653         Put the set of statements creating Any_Character before the set of
18654         statements creating Any_Array to have Any_Character fully initialized
18655         when it is used in creating Any_Array.
18656
18657         * scn.adb (Initialize_Scanner): Do not set Comes_From_Source ON and do
18658         not call Scan in case if the actual is Internal_Source_File
18659         Add 2003 to copyright note.
18660
18661         * sinput.adb (Source_First, Source_Last, Source_Text): Add code for
18662         processing Internal_Source_File.
18663
18664         * types.ads: Add the constant Internal_Source_File representing the
18665         source buffer for artificial source-code-like strings created within
18666         the compiler (the definition of Source_File_Index is changed).
18667
18668 2003-11-20  Arnaud Charlet  <charlet@act-europe.fr>
18669
18670         * 35soccon.ads, 45intnam.ads, 55osinte.adb, 55osinte.ads,
18671         56system.ads: New file, FreeBSD version.
18672
18673 2003-11-20  Joseph S. Myers  <jsm@polyomino.org.uk>
18674
18675         * Make-lang.in (ada.extraclean): Delete.
18676
18677 2003-11-19  Arnaud Charlet  <charlet@act-europe.fr>
18678
18679         * gnatmem.adb: Clean up verbose output.
18680
18681         * gprcmd.adb: Change copyright to FSF.
18682
18683 2003-11-19  Vincent Celier  <celier@gnat.com>
18684
18685         * symbols.adb: (Initialize): New parameters Reference, Symbol_Policy
18686         and Version (ignored).
18687
18688         * symbols.ads: (Policy): New type
18689         (Initialize): New parameter Reference, Symbol_Policy and
18690         Library_Version.
18691         Remove parameter Force.
18692         Minor reformatting.
18693
18694         * snames.ads, snames.adbadb: New standard names
18695         Library_Reference_Symbol_File and Library_Symbol_Policy
18696
18697         * mlib-prj.adb:
18698         (Build_Library): Call Build_Dinamic_Library with the Symbol_Data of the
18699         project.
18700
18701         * mlib-tgt.adb:
18702         (Build_Dynamic_Library): New parameter Symbol_Data (ignored)
18703
18704         * mlib-tgt.ads: (Build_Dynamic_Library): New parameter Symbol_Data
18705
18706         * prj.adb: (Project_Empty): New component Symbol_Data
18707
18708         * prj.ads: (Policy, Symbol_Record): New types
18709         (Project_Data): New component Symbol_Data
18710
18711         * prj-attr.adb:
18712         New attributes Library_Symbol_File, Library_Symbol_Policy and
18713         Library_Reference_Symbol_File.
18714
18715         * prj-nmsc.adb:
18716         (Ada_Check): When project is a Stand-Alone library project, process
18717         attribute Library_Symbol_File, Library_Symbol_Policy and
18718         Library_Reference_Symbol_File.
18719
18720         * 5aml-tgt.adb, 5bml-tgt.adb, 5gml-tgt.adb, 5hml-tgt.adb,
18721         5wml-tgt.adb, 5zml-tgt.adb, 5lml-tgt.adb,
18722         5sml-tgt.adb (Build_Dynamic_Library): New parameter
18723         Symbol_Data (ignored).
18724
18725         * 5vml-tgt.adb (VMS_Options): Remove --for-linker=gsmatch=equal,1,0
18726         (Build_Dynamic_Library): New parameter Symbol_Data. New internal
18727         functions Option_File_Name and Version_String. Set new options of
18728         gnatsym related to symbol file, symbol policy and reference symbol
18729         file.
18730
18731         * 5vsymbol.adb:
18732         Extensive modifications to take into account the reference symbol file,
18733         the symbol policy, the library version and to put in the symbol file the
18734         minor and major IDs.
18735
18736         * bld.adb (Process_Declarative_Items): Put second argument of
18737         gprcmd to_absolute between single quotes, to avoid problems with
18738         Windows.
18739
18740         * bld-io.adb: Update Copyright notice.
18741         (Flush): Remove last character of a line, if it is a back slash, to
18742         avoid make problems.
18743
18744         * gnatsym.adb:
18745         Implement new scheme with reference symbol file and symbol policy.
18746
18747         * g-os_lib.ads: (Is_Directory): Clarify comment
18748
18749 2003-11-19  Robert Dewar  <dewar@gnat.com>
18750
18751         * atree.adb: Move New_Copy_Tree global variables to head of package
18752
18753         * errout.adb: Minor reformatting
18754
18755 2003-11-19  Javier Miranda  <miranda@gnat.com>
18756
18757         * sem_ch4.adb: (Diagnose_Call): Improve error message.
18758         Add reference to Ada0Y (AI-50217)
18759
18760         * sem_ch6.adb, sem_ch8.adb, sem_type.adb,
18761         sem_util.adb: Add reference to AI-50217
18762
18763         * sinfo.ads: (N_With_Clause): Document fields referred to AI-50217
18764
18765         * sprint.adb: Add reference to Ada0Y (AI-50217, AI-287)
18766
18767         * sem_aggr.adb: Complete documentation of AI-287 changes
18768
18769         * par-ch4.adb: Document previous changes.
18770
18771         * lib-load.adb, lib-writ.adb, einfo.ads, par-ch10.adb,
18772         sem_cat.adb, sem_ch3.adb, sem_ch10.adb, sem_ch12.adb: Add references to
18773         Ada0Y (AI-50217)
18774
18775         * exp_aggr.adb: Add references to AI-287 in previous changes
18776
18777 2003-11-19  Ed Schonberg  <schonberg@gnat.com>
18778
18779         * exp_ch6.adb:
18780         (Add_Call_By_Copy_Node): Do not original node of rewritten expression
18781         in the rewriting is the result of an inlined call.
18782
18783         * exp_ch6.adb (Add_Call_By_Copy_Node): If actual for (in-)out
18784         parameter is a type conversion, use original node to construct the
18785         post-call assignment, because expression may have been rewritten, e.g.
18786         if it is a packed array.
18787
18788         * sem_attr.adb:
18789         (Resolve_Attribute, case 'Constrained): Attribute is legal in an inlined
18790         body, just as it is in an instance.
18791         Categorization routines
18792
18793         * sem_ch12.adb (Analyze_Association, Instantiate_Formal_Subprogram,
18794         Instantiate_Object): Set proper sloc reference for message on missing
18795         actual.
18796
18797 2003-11-19  Thomas Quinot  <quinot@act-europe.fr>
18798
18799         * Makefile.in: Add FreeBSD libgnat pairs.
18800
18801         * usage.adb: Fix typo in usage message.
18802
18803 2003-11-19  Jerome Guitton  <guitton@act-europe.fr>
18804
18805         * Makefile.in: On powerpc-wrs-vxworksae: Add s-thread.ad?,
18806         s-thrini.ad? and s-tiitho.adb to the full runtime, to support the
18807         pragma Thread_Body.
18808         Remove i-vthrea.ad? and s-tpae65.ad?, not needed anymore.
18809
18810         * s-thread.adb: This file is now a dummy implementation of
18811         System.Thread.
18812
18813 2003-11-19  Sergey Rybin  <rybin@act-europe.fr>
18814
18815         * rtsfind.adb (Initialize): Add initialization for RTE_Is_Available
18816
18817 2003-11-19  Emmanuel Briot  <briot@act-europe.fr>
18818
18819         * xref_lib.adb (Parse_Identifier_Info): Add handling of generic
18820         instanciation references in the parent type description.
18821
18822 2003-11-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18823
18824         * ada-tree.def: (ALLOCATE_EXPR): Class is "2", not "s".
18825
18826         * decl.c (gnat_to_gnu_entity, case E_Floating_Point_Subtype): Set
18827         TYPE_PRECISION directly from esize.
18828
18829 2003-11-18  Thomas Quinot  <quinot@act-europe.fr>
18830
18831         * cstreams.c:
18832         Use realpath(3) on FreeBSD. Fix typo in comment while we are at it.
18833
18834         * init.c: Initialization routines for FreeBSD
18835
18836         * link.c: Link info for FreeBSD
18837
18838         * sysdep.c: Add the case of FreeBSD
18839
18840 2003-11-17  Jerome Guitton  <guitton@act-europe.fr>
18841
18842         * 5zthrini.adb: Remove the call to Init_RTS at elaboration, as it is
18843         already called in System.Threads.
18844
18845         * 5ztiitho.adb (Initialize_Task_Hooks): Remove the registration of the
18846         environment task, as it has been moved to System.Threads.Initialization.
18847
18848 2003-11-17  Arnaud Charlet  <charlet@act-europe.fr>
18849
18850         * adaint.c (__gnatlib_install_locks): Only reference
18851         __gnat_install_locks on VMS, since other platforms can avoid using
18852         --enable-threads=gnat
18853
18854 2003-11-17  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18855
18856         * ada-tree.h: (TYPE_IS_PACKED_ARRAY_TYPE_P): New macro.
18857
18858         * decl.c (gnat_to_gnu_entity, case E_Array_Subtype): Set
18859         TYPE_PACKED_ARRAY_TYPE_P.
18860         (validate_size): Do not verify size if TYPE_IS_PACKED_ARRAY_TYPE_P.
18861
18862         Part of PR ada/12806
18863         * utils.c (float_type_for_precision): Renamed from float_type_for_size.
18864         Use GET_MODE_PRECISION instead of GET_MODE_BITSIZE.
18865
18866 2003-11-17  Vincent Celier  <celier@gnat.com>
18867
18868         * gnatchop.adb (Error_Msg): New Boolean parameter Warning, defaulted
18869         to False.
18870         Do not set exit status to Failure when Warning is True.
18871         (Gnatchop): Make errors "no compilation units found" and
18872         "no source files written" warnings only.
18873
18874         * make.adb (Gnatmake): When using a project file, set
18875         Look_In_Primary_Dir to False.
18876         (Configuration_Pragmas_Switch): Check for Global_Configuration_Pragmas
18877         and Local_Configuration_Pragmas in the project where they are declared
18878         not an extending project which might have inherited them.
18879
18880         * osint.adb (Locate_File): If Name is already an absolute path, do not
18881         look for a directory.
18882
18883         * par-ch10.adb (P_Compilation_Unit): If source contains no token, and
18884         -gnats (Check_Syntax) is used, issue only a warning, not an error.
18885
18886         * prj.adb (Register_Default_Naming_Scheme): Add new component Project
18887         in objects of type Variable_Value.
18888
18889         * prj.ads: (Variable_Value): New component Project
18890
18891         * prj-nmsc.adb (Ada_Check.Warn_If_Not_Sources): No warning if source
18892         is in a project extended by Project.
18893
18894         * prj-proc.adb (Add_Attributes): New parameter Project. Set component
18895         Project of Variable_Values to this new parameter value.
18896         (Expression): Set component Project of Variable_Values.
18897         (Process_Declarative_Items): Call Add_Attributes with parameter Project.
18898         Set the component Project in array elements.
18899
18900 2003-11-17  Sergey Rybin  <rybin@act-europe.fr>
18901
18902         * errout.adb: (Initialize): Add initialization for error nodes.
18903
18904         * sem_ch12.adb (Initialize): Add missing initializations for
18905         Exchanged_Views and Hidden_Entities.
18906
18907 2003-11-17  Ed Schonberg  <schonberg@gnat.com>
18908
18909         * sem_ch12.adb (Copy_Generic_Node): Preserve entity when copying an
18910         already instantiated tree for use in subsequent inlining.
18911         (Analyze_Associations, Instantiate_Formal_Subprogram,
18912         Instantiate_Object): improve error message for mismatch in
18913         instantiations.
18914
18915         * sem_ch6.adb (Build_Body_To_Inline): Major cleanup to handle
18916         instantiations of subprograms declared in instances.
18917
18918 2003-11-17  Javier Miranda  <miranda@gnat.com>
18919
18920         * sem_ch4.adb (Analyze_Allocator): Previous modification must be
18921         executed only under the Extensions_Allowed flag.
18922
18923 2003-11-17  Robert Dewar  <dewar@gnat.com>
18924
18925         * a-exexda.adb (Address_Image): Fix documentation to indicate leading
18926         zeroes suppressed.
18927         (Address_Image): Fix bug of returning 0x instead of 0x0
18928         Minor reformatting (function specs).
18929
18930         * einfo.ads: Minor fix for documentation of Is_Bit_Packed_Array
18931         (missed case of 33-63)
18932
18933         * freeze.adb, sem_ch13.adb: Properly check size of packed bit array
18934
18935         * s-thread.adb: Add comments for pragma Restriction
18936
18937         * exp_aggr.adb, g-debuti.adb, par-ch4.adb, sem_aggr.adb,
18938         sem_ch6.adb, sprint.adb, xref_lib.adb: Minor reformatting
18939
18940 2003-11-17  Ed Falis  <falis@gnat.com>
18941
18942         * s-thread.adb: Added No_Tasking restriction for this implementation.
18943
18944 2003-11-17  Emmanuel Briot  <briot@act-europe.fr>
18945
18946         * xref_lib.adb (Parse_Identifier_Info): Add handling of generic
18947         instanciation references in the parent type description.
18948
18949 2003-11-17  GNAT Script  <nobody@gnat.com>
18950
18951         * Make-lang.in: Makefile automatically updated
18952
18953 2003-11-16  Jason Merrill  <jason@redhat.com>
18954
18955         * Make-lang.in (ada.tags): Create TAGS.sub files in each directory
18956         and TAGS files that include them for each front end.
18957
18958 2003-11-14  Andreas Jaeger  <aj@suse.de>
18959
18960         * lang.opt: Change -Wno-long-long to -Wlong-long since the latter
18961         is the canonical version.
18962         * misc.c (gnat_handle_option): Likewise.
18963
18964         * Makefile.in (LIBGNAT_TARGET_PAIRS): Add rules for x86_64-linux.
18965
18966         * 5nsystem.ads: New file for x86_64-linux-gnu.
18967
18968 2003-11-14  Arnaud Charlet  <charlet@act-europe.fr>
18969
18970         * nmake.ads, nmake.adb, sinfo.h, treeprs.ads: Regenerated.
18971
18972         * comperr.adb: Fix logic in previous change.
18973
18974 2003-11-13  Vincent Celier  <celier@gnat.com>
18975
18976         * 5bml-tgt.adb (Build_Dynamic_Library): Use
18977         Osint.Include_Dir_Default_Prefix instead of
18978         Sdefault.Include_Dir_Default_Name.
18979
18980         * gnatlbr.adb: Update Copyright notice
18981         (Gnatlbr): : Use Osint.Include_Dir_Default_Prefix instead of
18982         Sdefault.Include_Dir_Default_Name and Osint.Object_Dir_Default_Prefix
18983         instead of Sdefault.Object_Dir_Default_Name
18984
18985         * gnatlink.adb:
18986         (Process_Binder_File): Never suppress the option following -Xlinker
18987
18988         * mdll-utl.adb:
18989         (Gcc): Use Osint.Object_Dir_Default_Prefix instead of
18990         Sdefault.Object_Dir_Default_Name.
18991
18992         * osint.ads, osint.adb:
18993         (Include_Dir_Default_Prefix, Object_Dir_Default_Prefix): New functions
18994         Minor reformatting.
18995
18996         * vms_conv.ads: Minor reformating
18997         Remove GNAT STANDARD and GNAT PSTA
18998
18999         * vms_conv.adb:
19000         Allow GNAT MAKE to have several files on the command line.
19001         (Init_Object_Dirs): Use Osint.Object_Dir_Default_Prefix instead of
19002         Sdefault.Object_Dir_Default_Name.
19003         Minor Reformating
19004         Remove data for GNAT STANDARD
19005
19006         * vms_data.ads:
19007         Add new compiler qualifier /PRINT_STANDARD (-gnatS)
19008         Remove data for GNAT STANDARD
19009         Remove options and documentation for -gnatwb/-gnatwB: these warning
19010         options no longer exist.
19011
19012 2003-11-13  Ed Falis  <falis@gnat.com>
19013
19014         * 5zthrini.adb: (Init_RTS): Made visible
19015
19016         * 5zthrini.adb:
19017         (Register): Removed unnecessary call to taskVarGet that checked whether
19018          an ATSD was already set as a task var for the argument thread.
19019
19020         * s-thread.adb:
19021         Updated comment to reflect that this is a VxWorks version
19022         Added context clause for System.Threads.Initialization
19023         Added call to System.Threads.Initialization.Init_RTS
19024
19025 2003-11-13  Jerome Guitton  <guitton@act-europe.fr>
19026
19027         * 5zthrini.adb:
19028         (Init_RTS): New procedure, for the initialization of the run-time lib.
19029
19030         * s-thread.adb:
19031         Remove dependancy on System.Init, so that this file can be used in the
19032         AE653 sequential run-time lib.
19033
19034 2003-11-13  Robert Dewar  <dewar@gnat.com>
19035
19036         * bindgen.adb: Minor reformatting
19037
19038 2003-11-13  Ed Schonberg  <schonberg@gnat.com>
19039
19040         * checks.adb:
19041         (Apply_Discriminant_Check): Do no apply check if target type is derived
19042         from source type with no applicable constraint.
19043
19044         * lib-writ.adb:
19045         (Ensure_System_Dependency): Do not apply the style checks that may have
19046         been specified for the main unit.
19047
19048         * sem_ch8.adb:
19049         (Find_Selected_Component): Further improvement in error message, with
19050         RM reference.
19051
19052         * sem_res.adb:
19053         (Resolve): Handle properly the case of an illegal overloaded protected
19054         procedure.
19055
19056 2003-11-13  Javier Miranda  <miranda@gnat.com>
19057
19058         * exp_aggr.adb:
19059         (Has_Default_Init_Comps): New function to check the presence of
19060         default initialization in an aggregate.
19061         (Build_Record_Aggr_Code): Recursively expand the ancestor in case of
19062         extension aggregate of a limited record. In addition, a new formal
19063         was added to do not initialize the record controller (if any) during
19064         this recursive expansion of ancestors.
19065         (Init_Controller): Add support for limited record components.
19066         (Expand_Record_Aggregate): In case of default initialized components
19067         convert the aggregate into a set of assignments.
19068
19069         * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Update the comment
19070         describing the new syntax.
19071         Nothing else needed to be done because this subprogram delegates part of
19072         its work to P_Precord_Or_Array_Component_Association.
19073         (P_Record_Or_Array_Component_Association): Give support to the new
19074         syntax for default initialization of components.
19075
19076         * sem_aggr.adb:
19077         (Resolve_Aggregate): Relax the strictness of the frontend in case of
19078         limited aggregates.
19079         (Resolve_Record_Aggregate): Give support to default initialized
19080         components.
19081         (Get_Value): In case of default initialized components, duplicate
19082         the corresponding default expression (from the record type
19083         declaration). In case of default initialization in the *others*
19084         choice, do not check that all components have the same type.
19085         (Resolve_Extension_Aggregate): Give support to limited extension
19086         aggregates.
19087
19088         * sem_ch3.adb:
19089         (Check_Initialization): Relax the strictness of the front-end in case
19090         of aggregate and extension aggregates. This test is now done in
19091         Get_Value in a per-component manner.
19092
19093         * sem_ch4.adb (Analyze_Allocator): Don't post an error if the
19094         expression corresponds to a limited aggregate. This test is now done
19095         in Get_Value.
19096
19097         * sinfo.ads, sinfo.adb (N_Component_Association): Addition of
19098         Box_Present flag.
19099
19100         * sprint.adb (Sprint_Node_Actual): Modified to print an mbox if
19101         present in an N_Component_Association node
19102
19103 2003-11-13  Thomas Quinot  <quinot@act-europe.fr>
19104
19105         * sem_ch9.adb (Analyze_Accept_Statement): A procedure hides a
19106         type-conformant entry only if they are homographs.
19107
19108 2003-11-13  GNAT Script  <nobody@gnat.com>
19109
19110         * Make-lang.in: Makefile automatically updated
19111
19112 2003-11-12  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
19113
19114         * adadecode.c: Use <> form of include for ctype.h.
19115         * sysdep.c [IN_RTS]: Use <> form of include for time.h.
19116
19117 2003-11-12  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
19118
19119         * 5gsystem.ads (Functions_Return_By_DSP): Set to False.
19120         Works around PR middle-end/6552.
19121
19122 2003-11-10  Ed Falis  <falis@gnat.com>
19123
19124         * 5ytiitho.adb: (procStartHookAdd): Definition and call deleted
19125
19126         * 5zinit.adb: (Install_Handler): Moved back to spec
19127         (Install_Signal_Handlers): Deleted
19128
19129         * 5zthrini.adb: Added context clause for System.Storage_Elements
19130         (Register): Only handles creation of taskVar; initialization moved to
19131         Thread_Body_Enter.
19132         (Reset_TSD): Deleted; replaced by Thread_Body_Enter
19133         Added declaration of environment task secondary stack and
19134         initialization.
19135
19136         * s-thread.adb: Implement bodies for thread body processing
19137
19138         * s-thread.ads:
19139         Added comment identifying supported targets for pragma Thread_Body.
19140
19141 2003-11-10  Pascal Obry  <obry@gnat.com>
19142
19143         * adaint.c (_gnat_stat) [WIN32]: Check if name is not bigger than
19144         GNAT_MAX_PATH_LEN.
19145
19146         * s-fileio.adb:
19147         (Open): Properly check for string length before copying into the buffer.
19148         Raises Name_Error if buffer is too small. Note that this was a potential
19149         buffer overflow.
19150
19151 2003-11-10  Romain Berrendonner  <berrendo@act-europe.fr>
19152
19153         * bindgen.adb, comperr.adb: Code clean ups.
19154         * gnatvsn.ads, gnatvsn.adb (Get_Gnat_Version_Type): New function.
19155
19156 2003-11-10  Sergey Rybin  <rybin@act-europe.fr>
19157
19158         * gnat1drv.adb: Add call to Sem_Elim.Initialize.
19159
19160 2003-11-10  Vincent Celier  <celier@gnat.com>
19161
19162         * gprcmd.adb:
19163         (Gprcmd): Add new command "prefix" to get the prefix of the GNAT
19164         installation.
19165
19166         * make.adb (Scan_Make_Arg): Transmit -nostdlib to the compiler
19167
19168         * prj.adb: (Project_Empty): Add new boolean component Virtual
19169
19170         * prj.ads: (Virtual_Prefix): New constant string
19171         (Project_Data): New boolean component Virtual
19172
19173         * prj-nmsc.adb (Language_Independent_Check): Adjust error message when
19174         a library project is extended by a virtual extending project.
19175
19176         * prj-part.adb:
19177         Modifications throughout to implement extending-all project, including:
19178         (Virtual_Hash, Processed_Hash): New hash tables
19179         (Create_Virtual_Extending_Project): New procedure
19180         (Look_For_Virtual_Projects_For): New procedure
19181
19182         * prj-proc.adb:
19183         (Process): After checking the projects, if main project is an
19184         extending-all project, set the object directory of all virtual extending
19185         project to the object directory of the main project.
19186         Adjust error message when a virtual extending project has the same
19187         object directory as an project being extended.
19188         (Recursive_Process): If name starts with the virtual prefix, set Virtual
19189         to True in the project data.
19190
19191         * prj-tree.adb:
19192         (Default_Project_Node): Add new boolean component Extending_All
19193         (Is_Extending_All): New function
19194         (Set_Is_Extending_All): New procedure
19195
19196         * prj-tree.ads: (Is_Extending_All): New function
19197         (Set_Is_Extending_All): New procedure
19198         (Project_Node_Record): New boolean component Extending_All
19199
19200         * switch-c.adb: (Scan_Front_End_Switches): Process -nostdlib
19201
19202         * vms_data.ads:
19203         Add qualifier /NOSTD_LIBRARIES (-nostdlib) for the compiler
19204
19205         * bld.adb (Recursive_Process): If MAKE_ROOT is not defined, call
19206         "gprcmd prefix" to define it.
19207
19208 2003-11-10  Thomas Quinot  <quinot@act-europe.fr>
19209
19210         * einfo.ads: Fix a typo and remove an extraneous word in comments.
19211
19212         * lib-load.adb:
19213         (Create_Dummy_Package_Unit): Set the scope of the entity for the
19214         created dummy package to Standard_Standard, not to itself, to
19215         defend other parts of the front-end against encoutering a cycle in
19216         the scope chain.
19217
19218         * sem_ch10.adb:
19219         (Analyze_With_Clause): When setting the entities for the successive
19220         N_Expanded_Names that constitute the name of a child unit, do not
19221         attempt to go further than Standard_Standard in the chain of scopes.
19222         This case arises from the placeholder units created by
19223         Create_Dummy_Package_Unit in the case of a with_clause for a
19224         nonexistent child unit.
19225
19226 2003-11-10  Ed Schonberg  <schonberg@gnat.com>
19227
19228         * exp_ch6.adb:
19229         (Expand_Thread_Body): Place subprogram on scope stack, so that new
19230         declarations are given the proper scope.
19231
19232         * sem_ch13.adb:
19233         (Check_Expr_Constants): Reject an expression that contains a constant
19234         created during expansion, and that appears after the object to which
19235         the address clause applies.
19236
19237         * sem_ch5.adb (Check_Controlled_Array_Attribute): Subsidiary of
19238         Analyze_Iteration_Scheme, to rewrite a loop parameter specification
19239         that uses 'Range of a function call with controlled components, so
19240         that the function result can be finalized before starting the loop.
19241
19242         * sem_ch8.adb:
19243         (Find_Selected_Component): Improve error message when prefix is
19244         an implicit dereference of an incomplete type.
19245
19246 2003-11-10  Robert Dewar  <dewar@gnat.com>
19247
19248         * opt.ads: New Print_Standard flag for -gnatS switch
19249
19250         * sem_ch13.adb: Remove some additional checks for unaligned arrays
19251
19252         * cstand.adb (Create_Standard): Print out package standard if -gnatS
19253         switch set
19254
19255         * debug.adb: Update doc for -gnatds to discuss relationship with new
19256         -gnatS flag
19257
19258         * sinfo.adb: Add new field Entity_Or_Associated_Node
19259
19260         * sinfo.ads: Add new field Entity_Or_Associated_Node
19261         Update documentation for Associated_Node and Entity fields to clarify
19262         relationship and usage.
19263
19264         * sprint.adb:
19265         (Write_Id): Properly process Associated_Node field in generic template
19266
19267         * switch-c.adb:
19268         Recognize new -gnatS switch for printing package Standard
19269         This replaces gnatpsta
19270
19271         * usage.adb:
19272         Add line for  new -gnatS switch for printing package Standard
19273         This replaces gnatpsta
19274
19275 2003-11-10  Andreas Jaeger  <aj@suse.de>
19276
19277         * 7sosprim.adb: tv_usec of struct_timeval and time_t are long
19278         integer.
19279
19280 2003-11-10  Arnaud Charlet  <charlet@act-europe.fr>
19281
19282         * misc.c, lang.opt: Add handling of -nostdlib, now recognized/needed
19283         by gnat1.
19284
19285 2003-11-10  Arnaud Charlet  <charlet@act-europe.fr>
19286
19287         * Makefile.in, Make-lang.in: Remove build of gnat_wrapper and gnatpsta,
19288         no longer needed.
19289
19290         * gnatpsta.adb, gnat_wrapper.adb: Removed, no longer needed.
19291
19292         * sysdep.c: Add handling of cygwin.
19293
19294 2003-11-10  GNAT Script  <nobody@gnat.com>
19295
19296         * Make-lang.in: Makefile automatically updated
19297
19298 2003-11-10  Arnaud Charlet  <charlet@act-europe.fr>
19299
19300         PR 12950
19301         * osint.ads, osint.adb (Relocate_Path, Executable_Suffix): New
19302         functions. Used to handle dynamic prefix relocation, via set_std_prefix.
19303         Replace GNAT_ROOT by GCC_ROOT.
19304
19305         * Make-lang.in: Use new function Relocate_Path to generate sdefault.adb
19306
19307 2003-11-06  Zack Weinberg  <zack@codesourcery.com>
19308
19309         * misc.c (fp_prec_to_size, fp_size_to_prec): Use GET_MODE_PRECISION
19310         and update for changed meaning of GET_MODE_BITSIZE.
19311
19312 2003-11-04  Doug Rupp  <rupp@gnat.com>
19313
19314         * sysdep.c: Problem discovered during IA64 VMS port.
19315         [VMS] #include <unixio.h> to get proper prototypes.
19316
19317         * adaint.c:
19318         Issues discovered/problems fixed during IA64 VMS port.
19319         [VMS] #define _POSIX_EXIT for proper semantics.
19320         [VMS] #include <unixio.h> for proper prototypes.
19321         [VMS] (fork): #define IA64 version.
19322         (__gnat_os_exit): Remove unnecessary VMS specific code.
19323
19324 2003-11-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19325
19326         Part of PR ada/12806
19327
19328         * ada-tree.h (TYPE_DIGITS_VALUE, SET_TYPE_DIGITS_VALUE): Save count as
19329         tree, not integer.
19330
19331         * decl.c:
19332         (gnat_to_gnu_entity, case E_Floating_Point_Type): Save count as tree,
19333         not integer.
19334
19335         * targtyps.c, decl.c, misc.c,
19336         gigi.h (fp_prec_to_size, fp_size_to_prec): Temporary
19337         routines to work around change in FP sizing semantics in GCC.
19338
19339         * utils.c:
19340         (build_vms_descriptor): TYPE_DIGITS_VALUE is tree, not integer.
19341
19342         * gigi.h: (enumerate_modes): New function.
19343
19344         * Make-lang.in: (ada/misc.o): Add real.h.
19345
19346         * misc.c: (enumerate_modes): New function.
19347
19348 2003-11-04  Robert Dewar  <dewar@gnat.com>
19349
19350         * 3vtrasym.adb: Minor reformatting
19351         Use terminology encoded/decoded name, rather than C++ specific notion
19352         of mangling (this is the terminology used throughout GNAT).
19353
19354         * einfo.h: Regenerated
19355
19356         * einfo.ads, einfo.adb: Add new flag Is_Thread_Body
19357
19358         * exp_ch6.adb:
19359         (Expand_N_Subprogram_Body): Handle expansion of thread body procedure
19360
19361         * par-prag.adb: Add dummy entry for Thread_Body pragma
19362
19363         * rtsfind.ads:
19364         Add entries for System.Threads entities for thread body processing
19365
19366         * sem_attr.adb:
19367         (Analyze_Pragma, Access attributes): Check these are not applied to a
19368         thread body, since this is not permitted
19369
19370         * sem_prag.adb: Add processing for Thread_Body pragma.
19371         Minor comment fix.
19372
19373         * sem_res.adb:
19374         (Resolve_Call): Check for incorrect attempt to call a thread body
19375          procedure with a direct call.
19376
19377         * snames.ads, snames.adb: Add entry for Thread_Body pragma
19378         Add names associated with thread body expansion
19379
19380         * snames.h: Add entry for Thread_Body pragma
19381
19382         * s-thread.adb: Add entries for thread body processing
19383         These are dummy bodies so far
19384
19385         * s-thread.ads: Add documentation on thread body handling.
19386         Add entries for thread body processing.
19387
19388 2003-11-04  Javier Miranda  <miranda@gnat.com>
19389
19390         * sem_ch10.adb:
19391         (Build_Limited_Views): Return after posting an error in case of limited
19392         with_clause on subprograms, generics, instances or generic renamings
19393         (Install_Limited_Withed_Unit): Do nothing in case of limited with_clause
19394         on subprograms, generics, instances or generic renamings
19395
19396 2003-11-04  Arnaud Charlet  <charlet@act-europe.fr>
19397
19398         * raise.c (setup_to_install): Correct mistake in last revision; two
19399         arguments out of order.
19400
19401         * trans.c, cuintp.c, argv.c, aux-io.c, cal.c, errno.c, exit.c,
19402         gnatbl.c, init.c, stringt.h, utils.c, utils2.c: Update copyright
19403         notice, missed in previous change.
19404         Remove trailing blanks and other style errors introduced in previous
19405         change.
19406
19407 2003-11-04  Olivier Hainque  <hainque@act-europe.fr>
19408
19409         * decl.c (gnat_to_gnu_field): Adjust the conditions under which we get
19410         rid of the wrapper for a LJM type, ensuring we don't do that if the
19411         field is addressable.  This avoids potential low level type view
19412         mismatches later on, for instance in a by-reference argument passing
19413         process.
19414
19415 2003-11-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19416
19417         * decl.c (gnat_to_gnu_field): No longer check for BLKmode being
19418         aligned at byte boundary.
19419
19420 2003-11-04  Joel Brobecker  <brobecker@gnat.com>
19421
19422         * decl.c (components_to_record): Do not delete the empty variants from
19423         the end of the union type.
19424
19425 2003-11-04  Ed Schonberg  <schonberg@gnat.com>
19426
19427         * exp_ch4.adb (Expand_N_Op_Eq): Use base type when locating primitive
19428         operation for a derived type, an explicit declaration may use a local
19429         subtype of Boolean.
19430
19431 2003-11-04  Vincent Celier  <celier@gnat.com>
19432
19433         * make.adb (Gnatmake): Allow main sources on the command line with a
19434         library project when it is only for compilation (no binding or
19435         linking).
19436
19437 2003-11-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
19438
19439         * Makefile.in: Remove many duplicate variables.
19440
19441 2003-11-03  Kelley Cook  <kcook@gcc.gnu.org>
19442
19443         * Make-lang.in (dvi): Move targets to $(docobjdir).
19444         (gnat_ug_vms.dvi): Simplify rule and adjust target.
19445         (gnat_ug_wnt.dvi): Likewise.
19446         (gnat_ug_unx.dvi): Likewise.
19447         (gnat_ug_vxw.dvi): Likewise.
19448         (gnat_rm.dvi): Likewise.
19449         (gnat-style.dvi): Likewise.
19450
19451 2003-10-31  Kelley Cook  <kcook@gcc.gnu.org>
19452
19453         * gigi.h: Missed commit from update for C90.
19454
19455 2003-10-31  Kelley Cook  <kcook@gcc.gnu.org>
19456
19457         * Makefile.in (ada/b_gnat1.o): Compile with -Wno-error.
19458
19459 2003-10-31  Andreas Schwab  <schwab@suse.de>
19460
19461         * raise.c (get_action_description_for): Fix typo in last change.
19462
19463 2003-10-31  Nathanael Nerode  <neroden@gcc.gnu.org>
19464
19465         PR ada/12761
19466         * ada/Make-lang.in: Move default definitions of X_ADA_CFLAGS,
19467         T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS from here to master Makefile.in.
19468
19469 2003-10-30  Kelley Cook  <kcook@gcc.gnu.org>
19470
19471         * adadecode.c, adaint.c, argv.c, aux-io.c, cal.c, cio.c, cstreams.c,
19472         ctrl_c.c, cuintp.c, decl.c, errno.c, exit.c, expect.c, final.c,
19473         gigi.h, gmem.c, gnatbl.c, init.c, misc.c, mkdir.c, raise.c, socket.c,
19474         sysdep.c, sysdep.c, targtyps.c, tb-alvms.c, tb-alvxw.c, tracebak.c,
19475         trans.c, utils.c, utils2.c: Convert function prototypes to C90.
19476
19477 2003-10-30  Vasiliy Fofanov  <fofanov@act-europe.fr>
19478
19479         * 3vtrasym.adb:
19480         Demangle Ada symbols returned by TBK$SYMBOLIZE. Correctly align line
19481         numbers when symbol name is too long.
19482
19483 2003-10-30  Ed Falis  <falis@gnat.com>
19484
19485         * g-signal.ads, g-signal.adb: New files
19486
19487         * impunit.adb: (Non_Imp_File_Names): Added "g-signal"
19488
19489         * Makefile.rtl: Introduce GNAT.Signals
19490
19491 2003-10-30  Robert Dewar  <dewar@gnat.com>
19492
19493         * freeze.adb: Minor reformatting
19494
19495         * lib-writ.adb (Write_ALI): Never write ali file if -gnats is specified
19496
19497         * par.adb, par-ch12.adb, par-ch13.adb, par-ch2.adb, par-ch3.adb,
19498         par-ch5.adb, par-ch6.adb, par-ch9.adb, par-util.adb:
19499         New handling of Id_Check parameter to improve recognition of keywords
19500         used as identifiers.
19501         Update copyright notice to include 2003
19502
19503 2003-10-29  Robert Dewar  <dewar@gnat.com>
19504
19505         * 3vtrasym.adb, 5vtraent.ads, sprint.adb,
19506         sem_ch10.adb: Minor reformatting
19507
19508         * exp_ch5.adb (Expand_Assign_Array): Test for bit unaligned operands
19509         (Expand_Assign_Record): Test right hand side for bit unaligned as well
19510
19511 2003-10-29  Vasiliy Fofanov  <fofanov@act-europe.fr>
19512
19513         * 3vtrasym.adb, 5vtraent.adb, 5vtraent.ads, tb-alvms.c:
19514         Support for TBK$SYMBOLIZE-based symbolic traceback.
19515
19516 2003-10-29  Jose Ruiz  <ruiz@act-europe.fr>
19517
19518         * exp_disp.adb:
19519         Revert previous change, that did not work well when pragma No_Run_Time
19520         was used in conjunction with a run-time other than ZFP.
19521
19522 2003-10-29  Vincent Celier  <celier@gnat.com>
19523
19524         * make.adb:
19525         (Gnatmake): When there are no Ada mains in attribute Main, disable the
19526          bind and link steps only is switch -z is not used.
19527
19528 2003-10-29  Arnaud Charlet  <charlet@act-europe.fr>
19529
19530         * Makefile.generic: Remove duplicated setting of CC.
19531
19532         * Makefile.prolog: Set CC to gcc by default, to override make's
19533         default (cc).
19534
19535         * einfo.h: Regenerated.
19536
19537 2003-10-29  Ed Schonberg  <schonberg@gnat.com>
19538
19539         * sem_ch10.adb (Analyze_Subunit): Restore state of suppress flags for
19540         current body, after compiling subunit.
19541
19542         * itypes.adb (Create_Itype): In ASIS_Mode, do not freeze the itype
19543         when in deleted code, because gigi needs properly ordered freeze
19544         actions to annotate types.
19545
19546         * freeze.adb (Is_Fully_Defined): Predicate must be recursive, to
19547         prevent the premature freezing of record type that contains
19548         subcomponents with a private type that does not yet have a completion.
19549
19550 2003-10-29  Javier Miranda  <miranda@gnat.com>
19551
19552         * sem_ch12.adb:
19553         (Analyze_Package_Instantiation): Check that instances can not be used in
19554         limited with_clauses.
19555
19556         * sem_ch8.adb:
19557         (Analyze_Package_Renaming): Check that limited withed packages cannot
19558         be renamed. Improve text on error messages related to limited
19559         with_clauses.
19560
19561         * einfo.adb, einfo.ads: Remove Non_Limited_Views attribute.
19562
19563         * sprint.adb: (Sprint_Node_Actual): Print limited with_clauses.
19564         Update copyright notice.
19565
19566         * sem_ch10.adb: (Build_Limited_Views): Complete its documentation.
19567         (Install_Limited_Context_Clauses): New subprogram that isolates all the
19568         checks required for limited context_clauses and installs the limited
19569         view.
19570         (Install_Limited_Withed_Unit): Complete its documentation.
19571         (Analyze_Context): Check that limited with_clauses are only allowed in
19572         package specs.
19573         (Install_Context): Call Install_Limited_Context_Clauses after the
19574         parents have been installed.
19575         (Install_Limited_Withed_Unit): Add documentation. Mark the installed
19576         package as 'From_With_Type'; this mark indicates that the limited view
19577         is installed. Used to check bad usages of limited with_clauses.
19578         (Build_Limited_Views): Do not add shadow entities to the scope's list
19579         of entities. Do not add real entities to the Non_Limited_Views chain.
19580         Improve error notification.
19581         (Remove_Context_Clauses): Remove context clauses in two phases:
19582         limited views first and regular views later (to maintain the
19583         stack model).
19584         (Remove_Limited_With_Clause): If the package is analyzed then reinstall
19585         its visible entities.
19586
19587 2003-10-29  Thomas Quinot  <quinot@act-europe.fr>
19588
19589         * sem_type.adb (Specific_Type): Type Universal_Fixed is compatible
19590         with any type that Is_Fixed_Point_Type.
19591
19592         * sinfo.ads: Fix documentation for Associated_Node attribute.
19593
19594 2003-10-29  Sergey Rybin  <rybin@act-europe.fr>
19595
19596         * switch-c.adb (Scan_Front_End_Switches): ASIS_Mode is set now when
19597         both '-gnatc' and '-gnatt' are specified.
19598
19599         * atree.adb (Initialize): Add initialization for Node_Count (set to
19600         zero).
19601
19602 2003-10-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19603
19604         * decl.c (gnat_to_gnu_entity, case E_Subprogram): If no return value,
19605         do not consider as Pure.
19606
19607         Part of implementation of function-at-a-time:
19608
19609         * trans.c (gnat_to_gnu_code): If IS_STMT, call expand_expr_stmt.
19610         (tree_transform): Add new argument to build_component_ref.
19611         (tree_transform, case N_Assignment_Statement): Make and return an
19612         EXPR_STMT.
19613         (tree_transform): If result IS_STMT, set flags and return it.
19614         (gnat_expand_stmt, set_lineno_from_sloc): New functions.
19615
19616         * utils2.c (build_simple_component_ref, build_component_ref): Add new
19617         arg, NO_FOLD_P.
19618         (build_binary_op, case EQ_EXPR): Pass additional arg to it.
19619         (build_allocator): Likewise.
19620
19621         * utils.c (convert_to_fat_pointer, convert_to_thin_pointer, convert):
19622         Add new arg to build_component_ref.
19623         (maybe_unconstrained_array, unchecked_convert): Likewise.
19624
19625         * ada-tree.def (EXPR_STMT): New code.
19626
19627         * ada-tree.h (IS_STMT, TREE_SLOC, EXPR_STMT_EXPR): New macros.
19628
19629         * decl.c (gnat_to_gnu_entity, case object): Add extra arg to
19630         build_component_ref calls.
19631
19632         * misc.c (gnat_expand_expr): If IS_STMT, call gnat_expand_stmt.
19633
19634         * gigi.h (gnat_expand_stmt, set_lineno_from_sloc): New functions.
19635         (build_component_ref): Add new argument, NO_FOLD_P.
19636
19637 2003-10-27  Arnaud Charlet  <charlet@act-europe.fr>
19638
19639         * Makefile.generic: Add missing substitution on object_deps handling.
19640
19641         PR ada/5909:
19642         * Make-lang.in (check-ada): Enable ACATS test suite.
19643
19644 2003-10-27  Robert Dewar  <dewar@gnat.com>
19645
19646         * exp_ch3.adb:
19647         (Freeze_Array_Type): We do not need an initialization routine for types
19648         derived from String or Wide_String. They should be treated the same
19649         as String and Wide_String themselves. This caused problems with the
19650         use of Initialize_Scalars.
19651
19652         * exp_ch5.adb:
19653         (Expand_Assign_Record): Do component-wise assignment of non-byte aligned
19654         composites. This allows use of component clauses that are not byte
19655         aligned.
19656
19657         * sem_prag.adb:
19658         (Analyze_Pragma, case Pack): Generate warning and ignore pack if there
19659         is an attempt to pack an array of atomic objects.
19660
19661         * make.adb, prj-env.adb, prj-env.ads: Minor reformatting
19662
19663 2003-10-27  Pascal Obry  <obry@gnat.com>
19664
19665         * g-dirope.adb:
19666         (Basename): Check for drive letters in a pathname only on DOS based OS.
19667
19668 2003-10-27  Vincent Celier  <celier@gnat.com>
19669
19670         * make.adb:
19671         (Gnatmake): When unable to change dir to the object dir, display the
19672         content of the parent dir of the obj dir, to try to understand why this
19673         happens.
19674
19675 2003-10-27  GNAT Script  <nobody@gnat.com>
19676
19677         * Make-lang.in: Makefile automatically updated
19678
19679 2003-10-27  Ed Schonberg  <schonberg@gnat.com>
19680
19681         * sem_ch12.adb:
19682         (Inline_Instance_Body): Indicate that the save/restore of use_clauses
19683         should not be done in Save/Restore_Scope_Stack, because it is performed
19684         locally.
19685
19686         * sem_ch8.adb:
19687         (Save_Scope_Stack, Restore_Scope_Stack): Add parameter to indicate
19688         whether use clauses should be removed/restored.
19689
19690         * sem_ch8.ads:
19691         (Save_Scope_Stack, Restore_Scope_Stack): Add parameter to indicate
19692         whether use clauses should be removed/restored.
19693
19694 2003-10-26  Andreas Jaeger  <aj@suse.de>
19695
19696         * Makefile.in: Remove duplicated lines.
19697
19698 2003-10-24  Arnaud Charlet  <charlet@act-europe.fr>
19699
19700         * gnatvsn.ads (Gnat_Static_Version_String): New constant, used to
19701         minimize the differences with ACT tree.
19702
19703         * gnatkr.adb, gnatlink.adb, gnatls.adb, gnatmake.adb,
19704         gnatprep.adb, gnatpsta.adb, gnatvsn.ads: Take advantage of
19705         Gnatvsn.Gnat_Static_Version_String to reduce differences between
19706         ACT and FSF trees.
19707
19708 2003-10-24  Pascal Obry  <obry@gnat.com>
19709
19710         * adadecode.c (ostrcpy): New function.
19711         (__gnat_decode): Use ostrcpy of strcpy.
19712         (has_prefix): Set first parameter a const.
19713         (has_suffix): Set first parameter a const.
19714         Update copyright notice. Fix source name in header.
19715         Removes a trailing space.
19716         PR ada/12014.
19717
19718 2003-10-24  Jose Ruiz  <ruiz@act-europe.fr>
19719
19720         * exp_disp.adb:
19721         Remove the test against being in No_Run_Time_Mode before generating a
19722         call to Register_Tag. It is redundant with the test against the
19723         availability of the function Register_Tag.
19724
19725 2003-10-24  Vincent Celier  <celier@gnat.com>
19726
19727         * g-catiio.adb: (Month_Name): Correct spelling of February
19728
19729         * make.adb: (Mains): New package
19730         (Initialize): Call Mains.Delete
19731         (Gnatmake): Check that each main on the command line is a source of a
19732         project file and, if there are several mains, each of them is a source
19733         of the same project file.
19734         (Gnatmake): When a foreign language is specified in attribute Languages,
19735         no main is specified on the command line and attribute Mains is not
19736         empty, only build the Ada main. If there is no Ada main, just compile
19737         the Ada sources and their closure.
19738         (Gnatmake): If a main is specified on the command line with directory
19739         information, check that the source exists and, if it does, that the path
19740         is the actual path of a source of a project.
19741
19742         * prj-env.adb:
19743         (File_Name_Of_Library_Unit_Body): New Boolean parameter Full_Path. When
19744         Full_Path is True, return the full path instead of the simple file name.
19745         (Project_Of): New function
19746
19747         * prj-env.ads:
19748         (File_Name_Of_Library_Unit_Body): New Boolean parameter Full_Path,
19749         defaulted to False.
19750         (Project_Of): New function
19751
19752 2003-10-24  Arnaud Charlet  <charlet@act-europe.fr>
19753
19754         * Makefile.generic:
19755         Ensure objects of main project are always checked and rebuilt if needed.
19756         Set CC to gcc by default.
19757         Prepare new handling of link by creating a global archive (not activated
19758         yet).
19759
19760         * adadecode.h, atree.h, elists.h, nlists.h, raise.h,
19761         stringt.h: Update copyright notice. Remove trailing blanks.
19762         Fix source name in header.
19763
19764 2003-10-24  Robert Dewar  <dewar@gnat.com>
19765
19766         * sem_ch12.adb: Minor reformatting
19767
19768         * sem_ch3.adb:
19769         Minor reformatting (including new function return style throughout)
19770
19771         * sem_ch3.ads:
19772         Minor reformatting (including new function return style throughout)
19773
19774 2003-10-24  Arnaud Charlet  <charlet@act-europe.fr>
19775
19776         * adadecode.h, atree.h, elists.h, nlists.h, raise.h,
19777         stringt.h: Update copyright notice. Remove trailing blanks.
19778         Fix source name in header.
19779
19780 2003-10-24  GNAT Script  <nobody@gnat.com>
19781
19782         * Make-lang.in: Makefile automatically updated
19783
19784 2003-10-23  Nathanael Nerode  <neroden@gcc.gnu.org>
19785
19786         * adadecode.h, atree.h, elists.h, namet.h, nlists.h, raise.h,
19787         stringt.h: Convert to ISO C90 declarations and definitions.
19788
19789 2003-10-23  Thomas Quinot  <quinot@act-europe.fr>
19790
19791         PR ada/11978:
19792         * exp_ch13.adb (Expand_N_Freeze_Entity): Do not consider inherited
19793         External_Tag attribute definition clauses.
19794
19795 2003-10-23  Ed Schonberg  <schonberg@gnat.com>
19796
19797         PR ada/7613:
19798         * exp_dbug.adb (Debug_Renaming_Declaration): For the renaming of a
19799         child unit, generate a fully qualified name to avoid spurious errors
19800         when the context contains renamings of different child units with
19801         the same simple name.
19802
19803         * exp_dbug.ads: Add documentation on name qualification for renamings
19804         of child units.
19805
19806 2003-10-23  Robert Dewar  <dewar@gnat.com>
19807
19808         * g-regpat.ads, g-regpat.adb: Minor reformatting
19809
19810 2003-10-23  Jose Ruiz  <ruiz@act-europe.fr>
19811
19812         * Makefile.in: Use the file 1atags.ads with the ZFP and cert run-times.
19813
19814 2003-10-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19815
19816         * trans.c: (tree_transform, case N_Real_Literal): Add extra arg to
19817         Machine call.
19818
19819         * urealp.h: (Machine): Update to proper definition.
19820
19821 2003-10-23  Arnaud Charlet  <charlet@act-europe.fr>
19822
19823         * init.c, adaint.c: Minor reformatting.
19824
19825 2003-10-23  Danny Smith  <dannysmith@users.sourceforge.net>
19826
19827         * adaint.c (w32_epoch_offset): Define static const at file level.
19828         (win32_filetime): Replace offset with w32_epoch_offset. Use NULL
19829         rather than t_create, t_access in call to GetFileTime. Use union
19830         to convert between FILETIME and  unsigned long long.
19831         (__gnat_file_time_name): Test for invalid file handle.
19832         (__gnat_set_filetime_name): Support win32 targets using
19833         w32api SetFileTime.
19834
19835 2003-10-22  Danny Smith  <dannysmith@users.sourceforge.net>
19836
19837         * sysdep.c: Include conio.h if __MINGW32__ and !OLD_MINGW.
19838
19839         * ctrl_c.c (__gnat_int_handler): Remove declaration.
19840
19841         * decl.c (creat_concat_name):  Const-ify prefix.
19842
19843         * adaint.c: Include ctype.h if __MINGW32__.
19844         (__gnat_readlink): Mark arguments as possibly unused.
19845         (__gnat_symlink): Likewise.
19846         (__gnat_is_symbolic_link): Likewise.
19847         (__gnat_portable_spawn): Likewise.  Cast last arg of spawnvp to match
19848         declaration
19849         (__gnat_file_time_name): Don't declare struct stat statbuf when
19850         not needed.
19851         (__gnat_is_absolute_path): Add parenthesis around condition of
19852         'if' statement to avoid warning.
19853         (__gnat_plist_init): Specify void as parameter.
19854         (plist_enter): Likewise.
19855         (plist_leave): Likewise.
19856         (remove_handle): Make static. Initialize prev.
19857
19858 2003-10-22  Arnaud Charlet  <charlet@act-europe.fr>
19859
19860         * Makefile.in: Disable build of gnatpsta. PR ada/10110.
19861         * cstreams.c (__gnat_full_name): Minor improvements and clean up
19862         of previous change.
19863
19864 2003-10-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
19865
19866         * tracebak.c (MAX): Avoid redefinition warning.
19867
19868         * init.c [sgi] (__gnat_error_handler): Remove i, unused.
19869         Change msg to const char *.
19870         (__gnat_install_handler): Remove ss, unused.
19871         [sun && __SVR4 && !__vxworks] (__gnat_error_handler): Change msg
19872         to const char *.
19873         * cstreams.c (__gnat_full_name): Declare p only when used.
19874         (__gnat_full_name) [sgi] Return buffer.
19875
19876 2003-10-22  Arnaud Charlet  <charlet@act-europe.fr>
19877
19878         * mingw32.h: New file.
19879         * gnat_wrapper.adb: New file.
19880
19881 2003-10-22  Jerome Roussel  <roussel@act-europe.fr>
19882
19883         * g-regpat.ads, g-regpat.adb (Match): new function, to know if a
19884         string match a pre compiled regular expression (the corresponding
19885         version of the function working on a raw regular expression)
19886         Fix typos in various comments
19887         Update copyright notice in spec
19888
19889 2003-10-21  Gary Dismukes  <dismukes@gnat.com>
19890
19891         * exp_ch3.adb:
19892         (Component_Needs_Simple_Initialization): Return False when the type is a
19893         packed bit array. Revise spec comments to document this case.
19894
19895         * exp_prag.adb:
19896         (Expand_Pragma_Import): Set any expression on the imported object to
19897         empty to avoid initializing imported objects (in particular this
19898         covers the case of zero-initialization of bit arrays).
19899         Update copyright notice.
19900
19901 2003-10-21  Ed Schonberg  <schonberg@gnat.com>
19902
19903         * sem_ch12.adb:
19904         (Load_Parent_Of_Generic): If parent is compilation unit, stop search,
19905         a subunit is missing.
19906         (Instantiate_Subprogram_Body): If body of function is missing, set type
19907         of return expression explicitly in dummy body, to prevent cascaded
19908         errors when a subunit is missing.
19909         Fixes PR 5677.
19910
19911         * sem_ch3.adb:
19912         (Access_Subprogram_Declaration): Verify that return type is valid.
19913         Fixes PR 8693.
19914
19915         * sem_elab.adb:
19916         (Check_Elab_Calls): Do not apply elaboration checks if the main unit is
19917         generic.
19918         Fixes PR 12318.
19919
19920         * sem_util.adb:
19921         (Corresponding_Discriminant): If the scope of the discriminant is a
19922         private type without discriminant, use its full view.
19923         Fixes PR 8247.
19924
19925 2003-10-21  Arnaud Charlet  <charlet@act-europe.fr>
19926
19927         * 3psoccon.ads, 3veacodu.adb, 3vexpect.adb, 3vsoccon.ads,
19928         3vsocthi.adb, 3vsocthi.ads, 3vtrasym.adb, 3zsoccon.ads,
19929         3zsocthi.adb, 3zsocthi.ads, 50system.ads, 51system.ads,
19930         55system.ads, 56osinte.adb, 56osinte.ads, 56taprop.adb,
19931         56taspri.ads, 56tpopsp.adb, 57system.ads, 58system.ads,
19932         59system.ads, 5aml-tgt.adb, 5bml-tgt.adb, 5csystem.ads,
19933         5dsystem.ads, 5fosinte.adb, 5gml-tgt.adb, 5hml-tgt.adb,
19934         5isystem.ads, 5lparame.adb, 5msystem.ads, 5psystem.ads,
19935         5sml-tgt.adb, 5sosprim.adb, 5stpopsp.adb, 5tsystem.ads,
19936         5usystem.ads, 5vml-tgt.adb, 5vsymbol.adb, 5vtraent.adb,
19937         5vtraent.ads, 5wml-tgt.adb, 5xparame.ads, 5xsystem.ads,
19938         5xvxwork.ads, 5yparame.ads, 5ytiitho.adb, 5zinit.adb,
19939         5zml-tgt.adb, 5zparame.ads, 5ztaspri.ads, 5ztfsetr.adb,
19940         5zthrini.adb, 5ztiitho.adb, 5ztpopsp.adb, 7stfsetr.adb,
19941         7straces.adb, 7strafor.adb, 7strafor.ads, 7stratas.adb,
19942         a-excach.adb, a-exexda.adb, a-exexpr.adb, a-exextr.adb,
19943         a-exstat.adb, a-strsup.adb, a-strsup.ads, a-stwisu.adb,
19944         a-stwisu.ads, bld.adb, bld.ads, bld-io.adb,
19945         bld-io.ads, clean.adb, clean.ads, ctrl_c.c,
19946         erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
19947         err_vars.ads, final.c, g-arrspl.adb, g-arrspl.ads,
19948         g-boubuf.adb, g-boubuf.ads, g-boumai.ads, g-bubsor.adb,
19949         g-bubsor.ads, g-comver.adb, g-comver.ads, g-ctrl_c.ads,
19950         g-dynhta.adb, g-dynhta.ads, g-eacodu.adb, g-excact.adb,
19951         g-excact.ads, g-heasor.adb, g-heasor.ads, g-memdum.adb,
19952         g-memdum.ads, gnatclean.adb, gnatsym.adb, g-pehage.adb,
19953         g-pehage.ads, g-perhas.ads, gpr2make.adb, gpr2make.ads,
19954         gprcmd.adb, gprep.adb, gprep.ads, g-semaph.adb,
19955         g-semaph.ads, g-string.adb, g-string.ads, g-strspl.ads,
19956         g-wistsp.ads, i-vthrea.adb, i-vthrea.ads, i-vxwoio.adb,
19957         i-vxwoio.ads, Makefile.generic, Makefile.prolog, Makefile.rtl,
19958         prep.adb, prep.ads, prepcomp.adb, prepcomp.ads,
19959         prj-err.adb, prj-err.ads, s-boarop.ads, s-carsi8.adb,
19960         s-carsi8.ads, s-carun8.adb, s-carun8.ads, s-casi16.adb,
19961         s-casi16.ads, s-casi32.adb, s-casi32.ads, s-casi64.adb,
19962         s-casi64.ads, s-casuti.adb, s-casuti.ads, s-caun16.adb,
19963         s-caun16.ads, s-caun32.adb, s-caun32.ads, s-caun64.adb,
19964         s-caun64.ads, scng.adb, scng.ads, s-exnint.adb,
19965         s-exnllf.adb, s-exnlli.adb, s-expint.adb, s-explli.adb,
19966         s-geveop.adb, s-geveop.ads, s-hibaen.ads, s-htable.adb,
19967         s-htable.ads, sinput-c.adb, sinput-c.ads, s-memcop.ads,
19968         socket.c, s-purexc.ads, s-scaval.adb, s-stopoo.adb,
19969         s-strcom.adb, s-strcom.ads, s-strxdr.adb, s-rident.ads,
19970         s-thread.adb, s-thread.ads, s-tpae65.adb, s-tpae65.ads,
19971         s-tporft.adb, s-traent.adb, s-traent.ads, styleg.adb,
19972         styleg.ads, styleg-c.adb, styleg-c.ads, s-veboop.adb,
19973         s-veboop.ads, s-vector.ads, symbols.adb, symbols.ads,
19974         tb-alvms.c, tb-alvxw.c, tempdir.adb, tempdir.ads,
19975         vms_conv.ads, vms_conv.adb, vms_data.ads,
19976         vxaddr2line.adb: Files added. Merge with ACT tree.
19977
19978         * 4dintnam.ads, 4mintnam.ads, 4uintnam.ads, 52system.ads,
19979         5dosinte.ads, 5etpopse.adb, 5mosinte.ads, 5qosinte.adb,
19980         5qosinte.ads, 5qstache.adb, 5qtaprop.adb, 5qtaspri.ads,
19981         5stpopse.adb, 5uintman.adb, 5uosinte.ads, adafinal.c,
19982         g-enblsp.adb, io-aux.c, scn-nlit.adb, scn-slit.adb,
19983         s-exnflt.ads, s-exngen.adb, s-exngen.ads, s-exnlfl.ads,
19984         s-exnlin.ads, s-exnsfl.ads, s-exnsin.ads, s-exnssi.ads,
19985         s-expflt.ads, s-expgen.adb, s-expgen.ads, s-explfl.ads,
19986         s-explin.ads, s-expllf.ads, s-expsfl.ads, s-expsin.ads,
19987         s-expssi.ads, style.adb: Files removed. Merge with ACT tree.
19988
19989         * 1ic.ads, 31soccon.ads, 31soliop.ads, 3asoccon.ads,
19990         3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3ssoccon.ads,
19991         3ssoliop.ads, 3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads,
19992         3wsoliop.ads, 41intnam.ads, 42intnam.ads, 4aintnam.ads,
19993         4cintnam.ads, 4gintnam.ads, 4hexcpol.adb, 4hintnam.ads,
19994         4lintnam.ads, 4nintnam.ads, 4ointnam.ads, 4onumaux.ads,
19995         4pintnam.ads, 4sintnam.ads, 4vcaldel.adb, 4vcalend.adb,
19996         4vintnam.ads, 4wexcpol.adb, 4wintnam.ads, 4zintnam.ads,
19997         51osinte.adb, 51osinte.ads, 52osinte.adb, 52osinte.ads,
19998         53osinte.ads, 54osinte.ads, 5aosinte.adb, 5aosinte.ads,
19999         5asystem.ads, 5ataprop.adb, 5atasinf.ads, 5ataspri.ads,
20000         5atpopsp.adb, 5avxwork.ads, 5bosinte.adb, 5bosinte.ads,
20001         5bsystem.ads, 5cosinte.ads, 5esystem.ads, 5fintman.adb,
20002         5fosinte.ads, 5fsystem.ads, 5ftaprop.adb, 5ftasinf.ads,
20003         5ginterr.adb, 5gintman.adb, 5gmastop.adb, 5gosinte.ads,
20004         5gproinf.ads, 5gsystem.ads, 5gtaprop.adb, 5gtasinf.ads,
20005         5gtpgetc.adb, 5hosinte.adb, 5hosinte.ads, 5hsystem.ads,
20006         5htaprop.adb, 5htaspri.ads, 5htraceb.adb, 5iosinte.adb,
20007         5itaprop.adb, 5itaspri.ads, 5ksystem.ads, 5kvxwork.ads,
20008         5lintman.adb, 5lml-tgt.adb, 5losinte.ads, 5lsystem.ads,
20009         5mvxwork.ads, 5ninmaop.adb, 5nintman.adb, 5nosinte.ads,
20010         5ntaprop.adb, 5ntaspri.ads, 5ointerr.adb, 5omastop.adb,
20011         5oosinte.adb, 5oosinte.ads, 5oosprim.adb, 5oparame.adb,
20012         5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5posinte.ads,
20013         5posprim.adb, 5pvxwork.ads, 5sintman.adb, 5sosinte.adb,
20014         5sosinte.ads, 5ssystem.ads, 5staprop.adb, 5stasinf.ads,
20015         5staspri.ads, 5svxwork.ads, 5tosinte.ads, 5vasthan.adb,
20016         5vinmaop.adb, 5vinterr.adb, 5vintman.adb, 5vintman.ads,
20017         5vmastop.adb, 5vosinte.adb, 5vosinte.ads, 5vosprim.adb,
20018         5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads, 5vtpopde.adb,
20019         5vtpopde.ads, 5wgloloc.adb, 5wintman.adb, 5wmemory.adb,
20020         5wosprim.adb, 5wsystem.ads, 5wtaprop.adb, 5wtaspri.ads,
20021         5ysystem.ads, 5zinterr.adb, 5zintman.adb, 5zosinte.adb,
20022         5zosinte.ads, 5zosprim.adb, 5zsystem.ads, 5ztaprop.adb,
20023         6vcpp.adb, 6vcstrea.adb, 6vinterf.ads, 7sinmaop.adb,
20024         7sintman.adb, 7sosinte.adb, 7sosprim.adb, 7staprop.adb,
20025         7staspri.ads, 7stpopsp.adb, 7straceb.adb, 9drpc.adb,
20026         a-caldel.adb, a-caldel.ads, a-charac.ads, a-colien.ads,
20027         a-comlin.adb, adaint.c, adaint.h, ada-tree.def,
20028         a-diocst.adb, a-diocst.ads, a-direio.adb, a-except.adb,
20029         a-except.ads, a-excpol.adb, a-exctra.adb, a-exctra.ads,
20030         a-filico.adb, a-interr.adb, a-intsig.adb, a-intsig.ads,
20031         ali.adb, ali.ads, ali-util.adb, ali-util.ads,
20032         a-ngcefu.adb, a-ngcoty.adb, a-ngelfu.adb, a-nudira.adb,
20033         a-nudira.ads, a-nuflra.adb, a-nuflra.ads, a-reatim.adb,
20034         a-reatim.ads, a-retide.ads, a-sequio.adb, a-siocst.adb,
20035         a-siocst.ads, a-ssicst.adb, a-ssicst.ads, a-strbou.adb,
20036         a-strbou.ads, a-strfix.adb, a-strmap.adb, a-strsea.ads,
20037         a-strunb.adb, a-strunb.ads, a-ststio.adb, a-stunau.adb,
20038         a-stunau.ads, a-stwibo.adb, a-stwibo.ads, a-stwifi.adb,
20039         a-stwima.adb, a-stwiun.adb, a-stwiun.ads, a-tags.adb,
20040         a-tags.ads, a-tasatt.adb, a-taside.adb, a-teioed.adb,
20041         a-textio.adb, a-textio.ads, a-tienau.adb, a-tifiio.adb,
20042         a-tiflau.adb, a-tiflio.adb, a-tigeau.adb, a-tigeau.ads,
20043         a-tiinau.adb, a-timoau.adb, a-tiocst.adb, a-tiocst.ads,
20044         atree.adb, atree.ads, a-witeio.adb, a-witeio.ads,
20045         a-wtcstr.adb, a-wtcstr.ads, a-wtdeio.adb, a-wtedit.adb,
20046         a-wtenau.adb, a-wtflau.adb, a-wtinau.adb, a-wtmoau.adb,
20047         bcheck.adb, binde.adb, bindgen.adb, bindusg.adb,
20048         checks.adb, checks.ads, cio.c, comperr.adb,
20049         comperr.ads, csets.adb, cstand.adb, cstreams.c,
20050         debug_a.adb, debug_a.ads, debug.adb, decl.c,
20051         einfo.adb, einfo.ads, errout.adb, errout.ads,
20052         eval_fat.adb, eval_fat.ads, exp_aggr.adb, expander.adb,
20053         expander.ads, exp_attr.adb, exp_ch11.adb, exp_ch13.adb,
20054         exp_ch2.adb, exp_ch3.adb, exp_ch3.ads, exp_ch4.adb,
20055         exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch7.ads,
20056         exp_ch8.adb, exp_ch9.adb, exp_code.adb, exp_dbug.adb,
20057         exp_dbug.ads, exp_disp.adb, exp_dist.adb, expect.c,
20058         exp_fixd.adb, exp_imgv.adb, exp_intr.adb, exp_pakd.adb,
20059         exp_prag.adb, exp_strm.adb, exp_strm.ads, exp_tss.adb,
20060         exp_tss.ads, exp_util.adb, exp_util.ads, exp_vfpt.adb,
20061         fe.h, fmap.adb, fmap.ads, fname.adb,
20062         fname.ads, fname-uf.adb, fname-uf.ads, freeze.adb,
20063         freeze.ads, frontend.adb, g-awk.adb, g-awk.ads,
20064         g-busora.adb, g-busora.ads, g-busorg.adb, g-busorg.ads,
20065         g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads,
20066         g-cgi.adb, g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads,
20067         g-cgideb.adb, g-cgideb.ads, g-comlin.adb, g-comlin.ads,
20068         g-crc32.adb, g-crc32.ads, g-debpoo.adb, g-debpoo.ads,
20069         g-debuti.adb, g-debuti.ads, g-diopit.adb, g-diopit.ads,
20070         g-dirope.adb, g-dirope.ads, g-dyntab.adb, g-dyntab.ads,
20071         g-except.ads, g-exctra.adb, g-exctra.ads, g-expect.adb,
20072         g-expect.ads, g-hesora.adb, g-hesora.ads, g-hesorg.adb,
20073         g-hesorg.ads, g-htable.adb, g-htable.ads, gigi.h,
20074         g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads,
20075         g-locfil.adb, g-locfil.ads, g-md5.adb, g-md5.ads,
20076         gmem.c, gnat1drv.adb, gnatbind.adb, gnatchop.adb,
20077         gnatcmd.adb, gnatfind.adb, gnatkr.adb, gnatlbr.adb,
20078         gnatlink.adb, gnatls.adb, gnatmake.adb, gnatmem.adb,
20079         gnatname.adb, gnatprep.adb, gnatprep.ads, gnatpsta.adb,
20080         gnatxref.adb, g-os_lib.adb, g-os_lib.ads, g-regexp.adb,
20081         g-regexp.ads, g-regist.adb, g-regist.ads, g-regpat.adb,
20082         g-regpat.ads, g-soccon.ads, g-socket.adb, g-socket.ads,
20083         g-socthi.adb, g-socthi.ads, g-soliop.ads, g-souinf.ads,
20084         g-speche.adb, g-speche.ads, g-spipat.adb, g-spipat.ads,
20085         g-spitbo.adb, g-spitbo.ads, g-sptabo.ads, g-sptain.ads,
20086         g-sptavs.ads, g-table.adb, g-table.ads, g-tasloc.adb,
20087         g-tasloc.ads, g-thread.adb, g-thread.ads, g-traceb.adb,
20088         g-traceb.ads, g-trasym.adb, g-trasym.ads, hostparm.ads,
20089         i-c.ads, i-cobol.adb, i-cpp.adb, i-cstrea.ads,
20090         i-cstrin.adb, i-cstrin.ads, impunit.adb, init.c,
20091         inline.adb, interfac.ads, i-pacdec.ads, itypes.adb,
20092         itypes.ads, i-vxwork.ads, lang.opt, lang-specs.h,
20093         layout.adb, lib.adb, lib.ads, lib-list.adb,
20094         lib-load.adb, lib-load.ads, lib-sort.adb, lib-util.adb,
20095         lib-writ.adb, lib-writ.ads, lib-xref.adb, lib-xref.ads,
20096         link.c, live.adb, make.adb, make.ads,
20097         Makefile.adalib, Makefile.in, Make-lang.in, makeusg.adb,
20098         mdll.adb, mdll-fil.adb, mdll-fil.ads, mdll-utl.adb,
20099         mdll-utl.ads, memroot.adb, memroot.ads, memtrack.adb,
20100         misc.c, mkdir.c, mlib.adb, mlib.ads,
20101         mlib-fil.adb, mlib-fil.ads, mlib-prj.adb, mlib-prj.ads,
20102         mlib-tgt.adb, mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads,
20103         namet.adb, namet.ads, namet.h, nlists.ads,
20104         nlists.h, nmake.adt, opt.adb, opt.ads,
20105         osint.adb, osint.ads, osint-b.adb, osint-c.adb,
20106         par.adb, par-ch10.adb, par-ch11.adb, par-ch2.adb,
20107         par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb,
20108         par-ch9.adb, par-endh.adb, par-labl.adb, par-load.adb,
20109         par-prag.adb, par-sync.adb, par-tchk.adb, par-util.adb,
20110         prj.adb, prj.ads, prj-attr.adb, prj-attr.ads,
20111         prj-com.adb, prj-com.ads, prj-dect.adb, prj-dect.ads,
20112         prj-env.adb, prj-env.ads, prj-ext.adb, prj-ext.ads,
20113         prj-makr.adb, prj-makr.ads, prj-nmsc.adb, prj-nmsc.ads,
20114         prj-pars.adb, prj-pars.ads, prj-part.adb, prj-part.ads,
20115         prj-pp.adb, prj-pp.ads, prj-proc.adb, prj-proc.ads,
20116         prj-strt.adb, prj-strt.ads, prj-tree.adb, prj-tree.ads,
20117         prj-util.adb, prj-util.ads, raise.c, raise.h,
20118         repinfo.adb, repinfo.h, restrict.adb, restrict.ads,
20119         rident.ads, rtsfind.adb, rtsfind.ads, s-addima.ads,
20120         s-arit64.adb, s-assert.adb, s-assert.ads, s-atacco.adb,
20121         s-atacco.ads, s-auxdec.adb, s-auxdec.ads, s-bitops.adb,
20122         scans.ads, scn.adb, scn.ads, s-crc32.adb,
20123         s-crc32.ads, s-direio.adb, sem.adb, sem.ads,
20124         sem_aggr.adb, sem_attr.adb, sem_attr.ads, sem_case.adb,
20125         sem_case.ads, sem_cat.adb, sem_cat.ads, sem_ch10.adb,
20126         sem_ch11.adb, sem_ch12.adb, sem_ch12.ads, sem_ch13.adb,
20127         sem_ch13.ads, sem_ch3.adb, sem_ch3.ads, sem_ch4.adb,
20128         sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
20129         sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads,
20130         sem_ch9.adb, sem_disp.adb, sem_disp.ads, sem_dist.adb,
20131         sem_elab.adb, sem_eval.adb, sem_eval.ads, sem_intr.adb,
20132         sem_maps.adb, sem_mech.adb, sem_prag.adb, sem_prag.ads,
20133         sem_res.adb, sem_res.ads, sem_type.adb, sem_type.ads,
20134         sem_util.adb, sem_util.ads, sem_warn.adb, s-errrep.adb,
20135         s-errrep.ads, s-exctab.adb, s-exctab.ads, s-exnint.ads,
20136         s-exnllf.ads, s-exnlli.ads, s-expint.ads, s-explli.ads,
20137         s-expuns.ads, s-fatflt.ads, s-fatgen.adb, s-fatgen.ads,
20138         s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads, s-fileio.adb,
20139         s-fileio.ads, s-finimp.adb, s-finimp.ads, s-finroo.adb,
20140         s-finroo.ads, sfn_scan.adb, s-gloloc.adb, s-gloloc.ads,
20141         s-imgdec.adb, s-imgenu.adb, s-imgrea.adb, s-imgwch.adb,
20142         sinfo.adb, sinfo.ads, s-inmaop.ads, sinput.adb,
20143         sinput.ads, sinput-d.adb, sinput-l.adb, sinput-l.ads,
20144         sinput-p.adb, sinput-p.ads, s-interr.adb, s-interr.ads,
20145         s-intman.ads, s-maccod.ads, s-mastop.adb, s-mastop.ads,
20146         s-memory.adb, s-memory.ads, snames.adb, snames.ads,
20147         snames.h, s-osprim.ads, s-parame.ads, s-parint.ads,
20148         s-pooloc.adb, s-pooloc.ads, s-poosiz.adb, sprint.adb,
20149         s-proinf.ads, s-scaval.ads, s-secsta.adb, s-secsta.ads,
20150         s-sequio.adb, s-shasto.adb, s-shasto.ads, s-soflin.ads,
20151         s-stache.adb, s-stache.ads, s-stalib.adb, s-stalib.ads,
20152         s-stoele.ads, s-stopoo.ads, s-stratt.adb, s-stratt.ads,
20153         s-strops.adb, s-strops.ads, s-taasde.adb, s-taasde.ads,
20154         s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads,
20155         s-taenca.adb, s-taenca.ads, s-taprob.adb, s-taprob.ads,
20156         s-taprop.ads, s-tarest.adb, s-tarest.ads, s-tasdeb.adb,
20157         s-tasdeb.ads, s-tasinf.adb, s-tasinf.ads, s-tasini.adb,
20158         s-tasini.ads, s-taskin.adb, s-taskin.ads, s-tasque.adb,
20159         s-tasque.ads, s-tasren.adb, s-tasren.ads, s-tasres.ads,
20160         s-tassta.adb, s-tassta.ads, s-tasuti.adb, s-tasuti.ads,
20161         s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
20162         s-tpoben.adb, s-tpoben.ads, s-tpobop.adb, s-tpobop.ads,
20163         s-tposen.adb, s-tposen.ads, s-traceb.adb, s-traceb.ads,
20164         stringt.adb, stringt.ads, stringt.h, style.ads,
20165         stylesw.adb, stylesw.ads, s-unstyp.ads, s-vaflop.ads,
20166         s-valrea.adb, s-valuti.adb, s-vercon.adb, s-vmexta.adb,
20167         s-wchcnv.ads, s-wchcon.ads, s-widcha.adb, switch.adb,
20168         switch.ads, switch-b.adb, switch-c.adb, switch-m.adb,
20169         s-wwdcha.adb, s-wwdwch.adb, sysdep.c, system.ads,
20170         table.adb, table.ads, targparm.adb, targparm.ads,
20171         targtyps.c, tbuild.adb, tbuild.ads, tracebak.c,
20172         trans.c, tree_io.adb, treepr.adb, treeprs.adt,
20173         ttypes.ads, types.ads, types.h, uintp.adb,
20174         uintp.ads, uintp.h, uname.adb, urealp.adb,
20175         urealp.ads, urealp.h, usage.adb, utils2.c,
20176         utils.c, validsw.adb, validsw.ads, widechar.adb,
20177         xeinfo.adb, xnmake.adb, xref_lib.adb, xref_lib.ads,
20178         xr_tabls.adb, xr_tabls.ads, xtreeprs.adb, xsnames.adb,
20179         einfo.h, sinfo.h, treeprs.ads, nmake.ads, nmake.adb,
20180         gnatvsn.ads: Merge with ACT tree.
20181
20182         * gnatvsn.adb: Rewritten in a simpler and more efficient way.
20183
20184 2003-10-20  Mark Mitchell  <mark@codesourcery.com>
20185
20186         * Make-lang.in (gnat_ug_unx.info): Add dependency on stmp-docobjdir.
20187         (gnat_ug_vmx.info): Likewise.
20188         (gnat_ug_vxw.info): Likewise.
20189         (gnat_ug_wnt.info): Likewise.
20190         (gnat_rm.info): Likewise.
20191         (gnat-style.info): Likewise.
20192
20193         * Make-lang.in (ada.install-info): Remove target.
20194         (info): New target.
20195         (install-info): Likewise.
20196         (gnat_ug_unx.info): Simplify rule.
20197         (gnat_ug_vmx.info): Likewise.
20198         (gnat_ug_vxw.info): Likewise.
20199         (gnat_ug_wnt.info): Likewise.
20200         (gnat_rm.info): Likewise.
20201         (gnat-style.info): Likewise.
20202
20203 2003-10-14  Nathanael Nerode  <neroden@gcc.gnu.org>
20204
20205         * Make-lang.in: Replace uses of $(target_alias) with
20206         $(target_noncanonical).
20207         * ada/Makefile.in: Remove unused mention of $(target_alias).
20208
20209 2003-10-06  Mark Mitchell  <mark@codesourcery.com>
20210
20211         * Make-lang.in (ada.info): Replace with ...
20212         (info): ... this.
20213         (ada.dvi): Replace with ...
20214         (dvi): ... this.
20215
20216 2003-09-29  Zack Weinberg  <zack@codesourcery.com>
20217
20218         * trans.c (gigi): Use REAL_ARITHMETIC, not REAL_VALUE_ATOF, to
20219         initialize dconstp5 and dconstmp5.
20220
20221 2003-09-28  Richard Henderson  <rth@redhat.com>
20222
20223         * trans.c (tree_transform): Update call to expand_asm_operands.
20224
20225 2003-09-21  Richard Henderson  <rth@redhat.com>
20226
20227         * trans.c, utils.c: Revert.
20228
20229 2003-09-21  Richard Henderson  <rth@redhat.com>
20230
20231         * trans.c, utils.c: Update for DECL_SOURCE_LOCATION rename and
20232         change to const.
20233
20234 2003-09-04  Michael Matz  <matz@suse.de>
20235
20236         * misc.c: Include "target.h".
20237         * Make-lang.in (misc.o): Add dependency on target.h.
20238
20239 2003-09-03  DJ Delorie  <dj@redhat.com>
20240
20241         * misc.c (default_pass_by_ref): Convert to calls.return_in_memory
20242         hook.
20243
20244 2003-08-30  Zack Weinberg  <zack@codesourcery.com>
20245
20246         * Makefile.in: Update substitutions to match changes to
20247         configure.  Use include directives instead of @-insertions
20248         to read in host and target fragments.  Add a rule to
20249         regenerate ada/Makefile.
20250
20251 2003-07-18  Neil Booth  <neil@daikokuya.co.uk>
20252
20253         * lang-options.h: Remove.
20254         * lang.opt: Add help text.
20255
20256 2003-07-07  Nathan Sidwell  <nathan@codesourcery.com>
20257
20258         * trans.c (build_unit_elab, set_lineno): Adjust emit_line_note
20259         calls.
20260
20261 2003-07-06  Neil Booth  <neil@daikokuya.co.uk>
20262
20263         * misc.c (gnat_handle_option): Don't handle filenames.
20264
20265 2003-07-04  H.J. Lu <hongjiu.lu@intel.com>
20266
20267         * Make-lang.in: Replace PWD with PWD_COMMAND.
20268         * Makefile.adalib: Likewise.
20269         * Makefile.in: Likewise.
20270
20271 2003-07-04  Matt Kraai  <kraai@alumni.cmu.edu>
20272
20273         * misc.c (gnat_argv): Revert last change.
20274         (gnat_handle_option, gnat_init_options): Copy arguments.
20275
20276 2003-07-03  Neil Booth  <neil@daikokuya.co.uk>
20277
20278         * misc.c (gnat_argv): Make const.
20279
20280 2003-07-02  Neil Booth  <neil@daikokuya.co.uk>
20281
20282         * misc.c (save_argc, save_argv): Keep non-static!
20283
20284 2003-07-02  Neil Booth  <neil@daikokuya.co.uk>
20285
20286         * misc.c (save_argc, save_argv): Make static.
20287         (gnat_init_options): New prototype.
20288         (gnat_init_options): Update.
20289
20290 2003-07-01  Matt Kraai  <kraai@alumni.cmu.edu>
20291
20292         * gnat_ug.texi: Remove unlikely characters from @vars.
20293         * gnat_ug_vms.texi: Regenerate.
20294
20295 2003-06-27  Nathan Sidwell  <nathan@codesourcery.com>
20296
20297         * misc.c (record_code_position): Adjust emit_note call.
20298
20299 2003-06-26  Neil Booth  <neil@daikokuya.co.uk>
20300
20301         * misc.c (gnat_handle_option): Don't check for missing arguments.
20302
20303 2003-06-20  Nathan Sidwell  <nathan@codesourcery.com>
20304
20305         * utils.c (end_subprog_body): Adjust expand_function_end call.
20306
20307 2003-06-16  Matt Kraai  <kraai@alumni.cmu.edu>
20308
20309         * bindgen.adb (Gen_Main_Ada, Gen_Main_C): Do not test
20310         Bind_Main_Program.
20311
20312 2003-06-15  Neil Booth  <neil@daikokuya.co.uk>
20313
20314         * lang.opt: Declare Ada.
20315         * misc.c (gnat_init_options): Update.
20316
20317 2003-06-14  Nathan Sidwell  <nathan@codesourcery.com>
20318
20319         * utils.c (begin_subprog_body): Adjust init_function_start call.
20320
20321 2003-06-14  Neil Booth  <neil@daikokuya.co.uk>
20322
20323         * Make-lang.in: Update to use options.c and options.h.
20324         * misc.c: Include options.h not aoptions.h.
20325         (gnat_handle_option): Abort on unrecognized switch.
20326         (gnat_init_options): Request Ada switches.
20327
20328 2003-06-14  Neil Booth  <neil@daikokuya.co.uk>
20329
20330         * lang.opt: Add -Wall.
20331         * misc.c (gnat_handle_option): Handle it.
20332
20333 2003-06-12  Neil Booth  <neil@daikokuya.co.uk>
20334
20335         * misc.c (gnat_handle_option): Fix warnings.
20336
20337 2003-06-11  Matt Kraai  <kraai@alumni.cmu.edu>
20338
20339         * Make-lang.in (gnatbind): Remove $(LIBIBERTY).
20340
20341 2003-06-11  Neil Booth  <neil@daikokuya.co.uk>
20342
20343         * Make-lang.in: Update to handle command-line options.
20344         * lang.opt: New file.
20345         * misc.c: Include aoptions.h.
20346         (cl_options_count, cl_options): Remove.
20347         (gnat_handle_option): New.
20348         (gnat_decode_option): Remove.
20349         (LANG_HOOKS_DECODE_OPTION): Remove.
20350         (LANG_HOOKS_HANDLE_OPTION): Override.
20351
20352 2003-06-10  Nathanael Nerode  <neroden@gcc.gnu.org>
20353
20354         * init.c, misc.c, trans.c, utils.c: Remove dead code.
20355
20356 2003-06-09  Nathanael Nerode  <neroden@gcc.gnu.org>
20357
20358         * Makefile.in: Replace "host_canonical" with "host" for autoconf
20359         substitution.
20360
20361 2003-06-08  Neil Booth  <neil@daikokuya.co.uk>
20362
20363         * Make-lang.in: Update.
20364         * misc.c: Include opts.h. Define cl_options_count and cl_options.
20365
20366 2003-06-07  Neil Booth  <neil@daikokuya.co.uk>
20367
20368         * misc.c (gnat_init_options): Update.
20369
20370 2003-06-05  Matt Kraai  <kraai@alumni.cmu.edu>
20371
20372         * Make-lang.in (ada/b_gnatb.o-warn): Remove.
20373         * bindgen.adb (Gen_Main_C): Mark ensure_reference with
20374         __attribute__ ((__unused__)).
20375
20376 2003-06-05  Jan Hubicka  <jh@suse.cz>
20377
20378         * Make-lang.in:  Add support for stageprofile and stagefeedback
20379
20380 2003-06-05  Matt Kraai  <kraai@alumni.cmu.edu>
20381
20382         * bindgen.adb (Gen_Adafinal_C, Gen_Adainit_C, Gen_Elab_Defs_C)
20383         (Gen_Main_C, Gen_Output_File_C): Generate ISO C.
20384
20385 2003-06-04  Matt Kraai  <kraai@alumni.cmu.edu>
20386
20387         * gnat_ug.texi (The GNAT Run-Time Library Builder gnatlbr):
20388         Remove non-VMS directive.
20389         (Switches for gnatlbr, Optimization Levels): Remove non-VMS
20390         alternatives.
20391         (Examples of gnatls Usage): Remove VMS alternative.
20392
20393 2003-06-04  Olivier Hainque  <hainque@act-europe.fr>
20394
20395         PR ada/9953:
20396         * 5hsystem.ads: Remove pragma Linker_Option for pthreads library,
20397         and turn ZCX_By_Default back to False since the underlying support
20398         is not quite there yet.
20399
20400 2003-06-01  Andreas Jaeger  <aj@suse.de>
20401
20402         * utils.c (finish_record_type): Remove usages of ROUND_TYPE_SIZE
20403         and ROUND_TYPE_SIZE_UNIT.
20404
20405 2003-05-22   Geert Bosch <bosch@gnat.com>
20406
20407         * gnat_rm.texi : Remove reference to Ada Core Technologies.
20408
20409 2003-05-03  Nathan Sidwell  <nathan@codesourcery.com>
20410
20411         * trans.c (tree_transform): Use location_t and input_location
20412         directly.
20413         (build_unit_elab): Likewise.
20414         * utils.c (create_label_decl): Likewise.
20415
20416 2003-05-01  Nathan Sidwell  <nathan@codesourcery.com>
20417
20418         * trans.c (tree_transform, build_unit_elab,
20419         set_lineno): Rename lineno to input_line.
20420         * utils.c (pushdecl, create_label_decl, begin_subprog_body,
20421         end_subprog_body): Likewise.
20422         * utils2.c (build_call_raise): Likewise.
20423
20424 2003-05-01  Laurent Guerby <guerby@acm.org>
20425
20426         PR ada/10546
20427         * 5iosinte.ads: Increase pthread_cond_t size to match recent
20428         LinuxThread and NPTL version, merge from ACT.
20429
20430 2003-04-28  Zack Weinberg  <zack@codesourcery.com>
20431
20432         * utils.c (convert): No need to clear TREE_CST_RTL.
20433
20434 2003-04-23   Geert Bosch <bosch@gnat.com>
20435
20436         * 1aexcept.adb, 1aexcept.ads, 1ic.ads, 1ssecsta.adb,
20437         1ssecsta.ads, 31soccon.ads, 31soliop.ads, 3asoccon.ads,
20438         3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3ssoccon.ads,
20439         3ssoliop.ads, 3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads,
20440         3wsoliop.ads, 41intnam.ads, 42intnam.ads, 4aintnam.ads,
20441         4cintnam.ads, 4dintnam.ads, 4gintnam.ads, 4hexcpol.adb,
20442         4hintnam.ads, 4lintnam.ads, 4mintnam.ads, 4nintnam.ads,
20443         4ointnam.ads, 4onumaux.ads, 4pintnam.ads, 4rintnam.ads,
20444         4sintnam.ads, 4uintnam.ads, 4vcaldel.adb, 4vcalend.adb,
20445         4vcalend.ads, 4vintnam.ads, 4wcalend.adb, 4wexcpol.adb,
20446         4wintnam.ads, 4zintnam.ads, 4znumaux.ads, 4zsytaco.adb,
20447         4zsytaco.ads, 51osinte.adb, 51osinte.ads, 52osinte.adb,
20448         52osinte.ads, 52system.ads, 53osinte.ads, 54osinte.ads,
20449         5amastop.adb, 5aosinte.adb, 5aosinte.ads, 5asystem.ads,
20450         5ataprop.adb, 5atasinf.ads, 5ataspri.ads, 5atpopsp.adb,
20451         5avxwork.ads, 5bosinte.adb, 5bosinte.ads, 5bsystem.ads,
20452         5cosinte.ads, 5dosinte.ads, 5esystem.ads, 5etpopse.adb,
20453         5fintman.adb, 5fosinte.ads, 5fsystem.ads, 5ftaprop.adb,
20454         5ftasinf.ads, 5ginterr.adb, 5gintman.adb, 5gmastop.adb,
20455         5gosinte.ads, 5gproinf.adb, 5gproinf.ads, 5gsystem.ads,
20456         5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads, 5gtpgetc.adb,
20457         5hosinte.adb, 5hosinte.ads, 5hparame.ads, 5hsystem.ads,
20458         5htaprop.adb, 5htaspri.ads, 5htraceb.adb, 5iosinte.adb,
20459         5iosinte.ads, 5itaprop.adb, 5itaspri.ads, 5ksystem.ads,
20460         5kvxwork.ads, 5lintman.adb, 5lml-tgt.adb, 5losinte.ads,
20461         5lsystem.ads, 5mosinte.ads, 5mvxwork.ads, 5ninmaop.adb,
20462         5nintman.adb, 5nosinte.ads, 5ntaprop.adb, 5ntaspri.ads,
20463         5ointerr.adb, 5omastop.adb, 5oosinte.adb, 5oosinte.ads,
20464         5oosprim.adb, 5oparame.adb, 5osystem.ads, 5otaprop.adb,
20465         5otaspri.ads, 5posinte.ads, 5posprim.adb, 5pvxwork.ads,
20466         5qosinte.adb, 5qosinte.ads, 5qstache.adb, 5qtaprop.adb,
20467         5qtaspri.ads, 5rosinte.adb, 5rosinte.ads, 5rparame.adb,
20468         5sintman.adb, 5sosinte.adb, 5sosinte.ads, 5sparame.adb,
20469         5ssystem.ads, 5staprop.adb, 5stasinf.adb, 5stasinf.ads,
20470         5staspri.ads, 5stpopse.adb, 5svxwork.ads, 5tosinte.ads,
20471         5uintman.adb, 5uosinte.ads, 5vasthan.adb, 5vinmaop.adb,
20472         5vinterr.adb, 5vintman.adb, 5vintman.ads, 5vmastop.adb,
20473         5vosinte.adb, 5vosinte.ads, 5vosprim.adb, 5vosprim.ads,
20474         5vparame.ads, 5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads,
20475         5vtpopde.adb, 5vtpopde.ads, 5vvaflop.adb, 5wgloloc.adb,
20476         5wintman.adb, 5wmemory.adb, 5wosinte.ads, 5wosprim.adb,
20477         5wsystem.ads, 5wtaprop.adb, 5wtaspri.ads, 5ysystem.ads,
20478         5zinterr.adb, 5zintman.adb, 5zosinte.adb, 5zosinte.ads,
20479         5zosprim.adb, 5zsystem.ads, 5ztaprop.adb, 6vcpp.adb,
20480         6vcstrea.adb, 6vinterf.ads, 7sinmaop.adb, 7sintman.adb,
20481         7sosinte.adb, 7sosprim.adb, 7staprop.adb, 7staspri.ads,
20482         7stpopsp.adb, 7straceb.adb, 86numaux.adb, 86numaux.ads,
20483         9drpc.adb, a-astaco.adb, a-astaco.ads, a-caldel.adb,
20484         a-caldel.ads, a-calend.adb, a-calend.ads, a-chahan.adb,
20485         a-chahan.ads, a-charac.ads, a-chlat1.ads, a-chlat9.ads,
20486         a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
20487         a-comlin.adb, a-comlin.ads, a-cwila1.ads, a-cwila9.ads,
20488         a-decima.adb, a-decima.ads, a-diocst.adb, a-diocst.ads,
20489         a-direio.adb, a-direio.ads, a-dynpri.adb, a-dynpri.ads,
20490         a-einuoc.adb, a-einuoc.ads, a-except.adb, a-except.ads,
20491         a-excpol.adb, a-exctra.adb, a-exctra.ads, a-filico.adb,
20492         a-filico.ads, a-finali.adb, a-finali.ads, a-flteio.ads,
20493         a-fwteio.ads, a-inteio.ads, a-interr.adb, a-interr.ads,
20494         a-intnam.ads, a-intsig.adb, a-intsig.ads, a-ioexce.ads,
20495         a-iwteio.ads, a-lfteio.ads, a-lfwtio.ads, a-liteio.ads,
20496         a-liwtio.ads, a-llftio.ads, a-llfwti.ads, a-llitio.ads,
20497         a-lliwti.ads, a-ncelfu.ads, a-ngcefu.adb, a-ngcefu.ads,
20498         a-ngcoty.adb, a-ngcoty.ads, a-ngelfu.adb, a-ngelfu.ads,
20499         a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads,
20500         a-nllcty.ads, a-nllefu.ads, a-nscefu.ads, a-nscoty.ads,
20501         a-nselfu.ads, a-nucoty.ads, a-nudira.adb, a-nudira.ads,
20502         a-nuelfu.ads, a-nuflra.adb, a-nuflra.ads, a-numaux.ads,
20503         a-numeri.ads, a-reatim.adb, a-reatim.ads, a-retide.adb,
20504         a-retide.ads, a-sequio.adb, a-sequio.ads, a-sfteio.ads,
20505         a-sfwtio.ads, a-siocst.adb, a-siocst.ads, a-siteio.ads,
20506         a-siwtio.ads, a-ssicst.adb, a-ssicst.ads, a-ssitio.ads,
20507         a-ssiwti.ads, a-stmaco.ads, a-storio.adb, a-storio.ads,
20508         a-strbou.adb, a-strbou.ads, a-stream.ads, a-strfix.adb,
20509         a-strfix.ads, a-string.ads, a-strmap.adb, a-strmap.ads,
20510         a-strsea.adb, a-strsea.ads, a-strunb.adb, a-strunb.ads,
20511         a-ststio.adb, a-ststio.ads, a-stunau.adb, a-stunau.ads,
20512         a-stwibo.adb, a-stwibo.ads, a-stwifi.adb, a-stwifi.ads,
20513         a-stwima.adb, a-stwima.ads, a-stwise.adb, a-stwise.ads,
20514         a-stwiun.adb, a-stwiun.ads, a-suteio.adb, a-suteio.ads,
20515         a-swmwco.ads, a-swuwti.adb, a-swuwti.ads, a-sytaco.adb,
20516         a-sytaco.ads, a-tags.adb, a-tags.ads, a-tasatt.adb,
20517         a-tasatt.ads, a-taside.adb, a-taside.ads, a-teioed.adb,
20518         a-teioed.ads, a-textio.adb, a-textio.ads, a-ticoau.adb,
20519         a-ticoau.ads, a-ticoio.adb, a-ticoio.ads, a-tideau.adb,
20520         a-tideau.ads, a-tideio.adb, a-tideio.ads, a-tienau.adb,
20521         a-tienau.ads, a-tienio.adb, a-tienio.ads, a-tifiio.adb,
20522         a-tifiio.ads, a-tiflau.adb, a-tiflau.ads, a-tiflio.adb,
20523         a-tiflio.ads, a-tigeau.adb, a-tigeau.ads, a-tiinau.adb,
20524         a-tiinau.ads, a-tiinio.adb, a-tiinio.ads, a-timoau.adb,
20525         a-timoau.ads, a-timoio.adb, a-timoio.ads, a-tiocst.adb,
20526         a-tiocst.ads, a-titest.adb, a-titest.ads, a-unccon.ads,
20527         a-uncdea.ads, a-witeio.adb, a-witeio.ads, a-wtcoau.adb,
20528         a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads, a-wtcstr.adb,
20529         a-wtcstr.ads, a-wtdeau.adb, a-wtdeau.ads, a-wtdeio.adb,
20530         a-wtdeio.ads, a-wtedit.adb, a-wtedit.ads, a-wtenau.adb,
20531         a-wtenau.ads, a-wtenio.adb, a-wtenio.ads, a-wtfiio.adb,
20532         a-wtfiio.ads, a-wtflau.adb, a-wtflau.ads, a-wtflio.adb,
20533         a-wtflio.ads, a-wtgeau.adb, a-wtgeau.ads, a-wtinau.adb,
20534         a-wtinau.ads, a-wtinio.adb, a-wtinio.ads, a-wtmoau.adb,
20535         a-wtmoau.ads, a-wtmoio.adb, a-wtmoio.ads, a-wttest.adb,
20536         a-wttest.ads, ada-tree.h, ada.ads, ada.h,
20537         adadecode.c, adadecode.h, ali-util.adb, ali-util.ads,
20538         ali.adb, ali.ads, alloc.ads, argv.c,
20539         atree.adb, atree.ads, atree.h, aux-io.c,
20540         back_end.adb, back_end.ads, bcheck.adb, bcheck.ads,
20541         binde.adb, binde.ads, binderr.adb, binderr.ads,
20542         bindgen.adb, bindgen.ads, bindusg.adb, bindusg.ads,
20543         butil.adb, butil.ads, cal.c, calendar.ads,
20544         casing.adb, casing.ads, ceinfo.adb, checks.adb,
20545         checks.ads, cio.c, comperr.adb, comperr.ads,
20546         config-lang.in, csets.adb, csets.ads, csinfo.adb,
20547         cstand.adb, cstand.ads, cuintp.c, debug.adb,
20548         debug.ads, debug_a.adb, debug_a.ads, dec-io.adb,
20549         dec-io.ads, dec.ads, deftarg.c, directio.ads,
20550         einfo.adb, einfo.ads, elists.adb, elists.ads,
20551         elists.h, errno.c, errout.adb, errout.ads,
20552         eval_fat.adb, eval_fat.ads, exit.c, exp_aggr.adb,
20553         exp_aggr.ads, exp_attr.adb, exp_attr.ads, exp_ch10.ads,
20554         exp_ch11.adb, exp_ch11.ads, exp_ch12.adb, exp_ch12.ads,
20555         exp_ch13.adb, exp_ch13.ads, exp_ch2.adb, exp_ch2.ads,
20556         exp_ch3.adb, exp_ch3.ads, exp_ch4.adb, exp_ch4.ads,
20557         exp_ch5.adb, exp_ch5.ads, exp_ch6.adb, exp_ch6.ads,
20558         exp_ch7.adb, exp_ch7.ads, exp_ch8.adb, exp_ch8.ads,
20559         exp_ch9.adb, exp_ch9.ads, exp_code.adb, exp_code.ads,
20560         exp_dbug.adb, exp_dbug.ads, exp_disp.adb, exp_disp.ads,
20561         exp_dist.adb, exp_dist.ads, exp_fixd.adb, exp_fixd.ads,
20562         exp_imgv.adb, exp_imgv.ads, exp_intr.adb, exp_intr.ads,
20563         exp_pakd.adb, exp_pakd.ads, exp_prag.adb, exp_prag.ads,
20564         exp_smem.adb, exp_smem.ads, exp_strm.adb, exp_strm.ads,
20565         exp_tss.adb, exp_tss.ads, exp_util.adb, exp_util.ads,
20566         exp_vfpt.adb, exp_vfpt.ads, expander.adb, expander.ads,
20567         fmap.adb, fmap.ads, fname-sf.adb, fname-sf.ads,
20568         fname-uf.adb, fname-uf.ads, fname.adb, fname.ads,
20569         freeze.adb, freeze.ads, frontend.adb, frontend.ads,
20570         g-awk.adb, g-awk.ads, g-busora.adb, g-busora.ads,
20571         g-busorg.adb, g-busorg.ads, g-calend.adb, g-calend.ads,
20572         g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads,
20573         g-cgi.adb, g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads,
20574         g-cgideb.adb, g-cgideb.ads, g-comlin.adb, g-comlin.ads,
20575         g-crc32.adb, g-crc32.ads, g-curexc.ads, g-debpoo.adb,
20576         g-debpoo.ads, g-debuti.adb, g-debuti.ads, g-diopit.adb,
20577         g-diopit.ads, g-dirope.adb, g-dirope.ads, g-dyntab.adb,
20578         g-dyntab.ads, g-enblsp.adb, g-except.ads, g-exctra.adb,
20579         g-exctra.ads, g-expect.adb, g-expect.ads, g-flocon.ads,
20580         g-hesora.adb, g-hesora.ads, g-hesorg.adb, g-hesorg.ads,
20581         g-htable.adb, g-htable.ads, g-io.adb, g-io.ads,
20582         g-io_aux.adb, g-io_aux.ads, g-locfil.ads, g-md5.adb,
20583         g-md5.ads, g-moreex.adb, g-moreex.ads, g-os_lib.adb,
20584         g-os_lib.ads, g-regexp.adb, g-regexp.ads, g-regist.ads,
20585         g-regpat.adb, g-regpat.ads, g-soccon.ads, g-socket.adb,
20586         g-socket.ads, g-socthi.adb, g-socthi.ads, g-soliop.ads,
20587         g-souinf.ads, g-speche.adb, g-speche.ads, g-spipat.adb,
20588         g-spipat.ads, g-spitbo.adb, g-spitbo.ads, g-sptabo.ads,
20589         g-sptain.ads, g-sptavs.ads, g-table.adb, g-table.ads,
20590         g-tasloc.adb, g-tasloc.ads, g-thread.adb, g-thread.ads,
20591         g-traceb.adb, g-traceb.ads, g-trasym.adb, g-trasym.ads,
20592         get_targ.adb, get_targ.ads, gnat-style.texi, gnat.ads,
20593         gnat1drv.adb, gnat1drv.ads, gnatbind.adb, gnatbind.ads,
20594         gnatbl.c, gnatchop.adb, gnatcmd.adb, gnatcmd.ads,
20595         gnatdll.adb, gnatfind.adb, gnatkr.adb, gnatkr.ads,
20596         gnatlbr.adb, gnatlink.adb, gnatlink.ads, gnatls.adb,
20597         gnatls.ads, gnatmake.adb, gnatmake.ads, gnatmem.adb,
20598         gnatname.adb, gnatname.ads, gnatprep.adb, gnatprep.ads,
20599         gnatpsta.adb, gnatvsn.adb, gnatvsn.ads, gnatxref.adb,
20600         hlo.adb, hlo.ads, hostparm.ads, i-c.adb,
20601         i-c.ads, i-cexten.ads, i-cobol.adb, i-cobol.ads,
20602         i-cpoint.adb, i-cpoint.ads, i-cpp.adb, i-cpp.ads,
20603         i-cstrea.adb, i-cstrea.ads, i-cstrin.adb, i-cstrin.ads,
20604         i-fortra.adb, i-fortra.ads, i-os2err.ads, i-os2lib.adb,
20605         i-os2lib.ads, i-os2syn.ads, i-os2thr.ads, i-pacdec.adb,
20606         i-pacdec.ads, i-vxwork.ads, impunit.adb, impunit.ads,
20607         inline.adb, inline.ads, interfac.ads, ioexcept.ads,
20608         itypes.adb, itypes.ads, krunch.adb, krunch.ads,
20609         layout.adb, layout.ads, lib-list.adb, lib-load.adb,
20610         lib-load.ads, lib-sort.adb, lib-util.adb, lib-util.ads,
20611         lib-writ.adb, lib-writ.ads, lib-xref.adb, lib-xref.ads,
20612         lib.adb, lib.ads, live.adb, live.ads,
20613         machcode.ads, make.adb, make.ads, makeusg.adb,
20614         makeusg.ads, math_lib.adb, mdll-fil.adb, mdll-fil.ads,
20615         mdll-utl.adb, mdll-utl.ads, mdll.adb, mdll.ads,
20616         memroot.adb, memroot.ads, memtrack.adb, mlib-fil.adb,
20617         mlib-fil.ads, mlib-prj.adb, mlib-prj.ads, mlib-tgt.adb,
20618         mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads, mlib.adb,
20619         mlib.ads, namet.adb, namet.ads, nlists.adb,
20620         nlists.ads, opt.adb, opt.ads, osint-b.adb,
20621         osint-b.ads, osint-c.adb, osint-c.ads, osint-l.adb,
20622         osint-l.ads, osint-m.adb, osint-m.ads, osint.adb,
20623         osint.ads, output.adb, output.ads, par-ch10.adb,
20624         par-ch11.adb, par-ch12.adb, par-ch13.adb, par-ch2.adb,
20625         par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb,
20626         par-ch7.adb, par-ch8.adb, par-ch9.adb, par-endh.adb,
20627         par-labl.adb, par-load.adb, par-prag.adb, par-sync.adb,
20628         par-tchk.adb, par-util.adb, par.adb, par.ads,
20629         prj-attr.adb, prj-attr.ads, prj-com.adb, prj-com.ads,
20630         prj-dect.adb, prj-dect.ads, prj-env.adb, prj-env.ads,
20631         prj-ext.adb, prj-ext.ads, prj-makr.adb, prj-makr.ads,
20632         prj-nmsc.adb, prj-nmsc.ads, prj-pars.adb, prj-pars.ads,
20633         prj-part.adb, prj-part.ads, prj-pp.adb, prj-pp.ads,
20634         prj-proc.adb, prj-proc.ads, prj-strt.adb, prj-strt.ads,
20635         prj-tree.adb, prj-tree.ads, prj-util.adb, prj-util.ads,
20636         prj.adb, prj.ads, repinfo.adb, repinfo.ads,
20637         restrict.adb, restrict.ads, rident.ads, rtsfind.adb,
20638         rtsfind.ads, s-addima.adb, s-addima.ads, s-arit64.adb,
20639         s-arit64.ads, s-assert.adb, s-assert.ads, s-asthan.adb,
20640         s-asthan.ads, s-atacco.adb, s-atacco.ads, s-auxdec.adb,
20641         s-auxdec.ads, s-bitops.adb, s-bitops.ads, s-chepoo.ads,
20642         s-crc32.adb, s-crc32.ads, s-direio.adb, s-direio.ads,
20643         s-errrep.adb, s-errrep.ads, s-except.ads, s-exctab.adb,
20644         s-exctab.ads, s-exnflt.ads, s-exngen.adb, s-exngen.ads,
20645         s-exnint.ads, s-exnlfl.ads, s-exnlin.ads, s-exnllf.ads,
20646         s-exnlli.ads, s-exnsfl.ads, s-exnsin.ads, s-exnssi.ads,
20647         s-expflt.ads, s-expgen.adb, s-expgen.ads, s-expint.ads,
20648         s-explfl.ads, s-explin.ads, s-expllf.ads, s-explli.ads,
20649         s-expllu.adb, s-expllu.ads, s-expmod.adb, s-expmod.ads,
20650         s-expsfl.ads, s-expsin.ads, s-expssi.ads, s-expuns.adb,
20651         s-expuns.ads, s-fatflt.ads, s-fatgen.adb, s-fatgen.ads,
20652         s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads, s-ficobl.ads,
20653         s-fileio.adb, s-fileio.ads, s-finimp.adb, s-finimp.ads,
20654         s-finroo.adb, s-finroo.ads, s-fore.adb, s-fore.ads,
20655         s-gloloc.adb, s-gloloc.ads, s-imgbiu.adb, s-imgbiu.ads,
20656         s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads,
20657         s-imgdec.adb, s-imgdec.ads, s-imgenu.adb, s-imgenu.ads,
20658         s-imgint.adb, s-imgint.ads, s-imgllb.adb, s-imgllb.ads,
20659         s-imglld.adb, s-imglld.ads, s-imglli.adb, s-imglli.ads,
20660         s-imgllu.adb, s-imgllu.ads, s-imgllw.adb, s-imgllw.ads,
20661         s-imgrea.adb, s-imgrea.ads, s-imguns.adb, s-imguns.ads,
20662         s-imgwch.adb, s-imgwch.ads, s-imgwiu.adb, s-imgwiu.ads,
20663         s-inmaop.ads, s-interr.adb, s-interr.ads, s-intman.ads,
20664         s-io.adb, s-io.ads, s-maccod.ads, s-mantis.adb,
20665         s-mantis.ads, s-mastop.adb, s-mastop.ads, s-memory.adb,
20666         s-memory.ads, s-osprim.ads, s-pack03.adb, s-pack03.ads,
20667         s-pack05.adb, s-pack05.ads, s-pack06.adb, s-pack06.ads,
20668         s-pack07.adb, s-pack07.ads, s-pack09.adb, s-pack09.ads,
20669         s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads,
20670         s-pack12.adb, s-pack12.ads, s-pack13.adb, s-pack13.ads,
20671         s-pack14.adb, s-pack14.ads, s-pack15.adb, s-pack15.ads,
20672         s-pack17.adb, s-pack17.ads, s-pack18.adb, s-pack18.ads,
20673         s-pack19.adb, s-pack19.ads, s-pack20.adb, s-pack20.ads,
20674         s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads,
20675         s-pack23.adb, s-pack23.ads, s-pack24.adb, s-pack24.ads,
20676         s-pack25.adb, s-pack25.ads, s-pack26.adb, s-pack26.ads,
20677         s-pack27.adb, s-pack27.ads, s-pack28.adb, s-pack28.ads,
20678         s-pack29.adb, s-pack29.ads, s-pack30.adb, s-pack30.ads,
20679         s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads,
20680         s-pack34.adb, s-pack34.ads, s-pack35.adb, s-pack35.ads,
20681         s-pack36.adb, s-pack36.ads, s-pack37.adb, s-pack37.ads,
20682         s-pack38.adb, s-pack38.ads, s-pack39.adb, s-pack39.ads,
20683         s-pack40.adb, s-pack40.ads, s-pack41.adb, s-pack41.ads,
20684         s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads,
20685         s-pack44.adb, s-pack44.ads, s-pack45.adb, s-pack45.ads,
20686         s-pack46.adb, s-pack46.ads, s-pack47.adb, s-pack47.ads,
20687         s-pack48.adb, s-pack48.ads, s-pack49.adb, s-pack49.ads,
20688         s-pack50.adb, s-pack50.ads, s-pack51.adb, s-pack51.ads,
20689         s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads,
20690         s-pack54.adb, s-pack54.ads, s-pack55.adb, s-pack55.ads,
20691         s-pack56.adb, s-pack56.ads, s-pack57.adb, s-pack57.ads,
20692         s-pack58.adb, s-pack58.ads, s-pack59.adb, s-pack59.ads,
20693         s-pack60.adb, s-pack60.ads, s-pack61.adb, s-pack61.ads,
20694         s-pack62.adb, s-pack62.ads, s-pack63.adb, s-pack63.ads,
20695         s-parame.adb, s-parame.ads, s-parint.adb, s-parint.ads,
20696         s-pooglo.adb, s-pooglo.ads, s-pooloc.adb, s-pooloc.ads,
20697         s-poosiz.adb, s-poosiz.ads, s-powtab.ads, s-proinf.adb,
20698         s-proinf.ads, s-rpc.adb, s-rpc.ads, s-scaval.ads,
20699         s-secsta.adb, s-secsta.ads, s-sequio.adb, s-sequio.ads,
20700         s-shasto.adb, s-shasto.ads, s-soflin.adb, s-soflin.ads,
20701         s-sopco3.adb, s-sopco3.ads, s-sopco4.adb, s-sopco4.ads,
20702         s-sopco5.adb, s-sopco5.ads, s-stache.adb, s-stache.ads,
20703         s-stalib.adb, s-stalib.ads, s-stoele.adb, s-stoele.ads,
20704         s-stopoo.ads, s-stratt.adb, s-stratt.ads, s-strops.adb,
20705         s-strops.ads, s-taasde.adb, s-taasde.ads, s-tadeca.adb,
20706         s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-taenca.adb,
20707         s-taenca.ads, s-taprob.adb, s-taprob.ads, s-taprop.ads,
20708         s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads,
20709         s-tasinf.adb, s-tasinf.ads, s-tasini.adb, s-tasini.ads,
20710         s-taskin.adb, s-taskin.ads, s-tasque.adb, s-tasque.ads,
20711         s-tasren.adb, s-tasren.ads, s-tasres.ads, s-tassta.adb,
20712         s-tassta.ads, s-tasuti.adb, s-tasuti.ads, s-tataat.adb,
20713         s-tataat.ads, s-tpinop.adb, s-tpinop.ads, s-tpoben.adb,
20714         s-tpoben.ads, s-tpobop.adb, s-tpobop.ads, s-tposen.adb,
20715         s-tposen.ads, s-traceb.adb, s-traceb.ads, s-traces.adb,
20716         s-traces.ads, s-tratas.adb, s-tratas.ads, s-unstyp.ads,
20717         s-vaflop.adb, s-vaflop.ads, s-valboo.adb, s-valboo.ads,
20718         s-valcha.adb, s-valcha.ads, s-valdec.adb, s-valdec.ads,
20719         s-valenu.adb, s-valenu.ads, s-valint.adb, s-valint.ads,
20720         s-vallld.adb, s-vallld.ads, s-vallli.adb, s-vallli.ads,
20721         s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads,
20722         s-valuns.adb, s-valuns.ads, s-valuti.adb, s-valuti.ads,
20723         s-valwch.adb, s-valwch.ads, s-vercon.adb, s-vercon.ads,
20724         s-vmexta.adb, s-vmexta.ads, s-wchcnv.adb, s-wchcnv.ads,
20725         s-wchcon.ads, s-wchjis.adb, s-wchjis.ads, s-wchstw.adb,
20726         s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, s-widboo.adb,
20727         s-widboo.ads, s-widcha.adb, s-widcha.ads, s-widenu.adb,
20728         s-widenu.ads, s-widlli.adb, s-widlli.ads, s-widllu.adb,
20729         s-widllu.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb,
20730         s-wwdcha.ads, s-wwdenu.adb, s-wwdenu.ads, s-wwdwch.adb,
20731         s-wwdwch.ads, scans.adb, scans.ads, scn-nlit.adb,
20732         scn-slit.adb, scn.adb, scn.ads, sdefault.ads,
20733         sem.adb, sem.ads, sem_aggr.adb, sem_aggr.ads,
20734         sem_attr.adb, sem_attr.ads, sem_case.adb, sem_case.ads,
20735         sem_cat.adb, sem_cat.ads, sem_ch10.adb, sem_ch10.ads,
20736         sem_ch11.adb, sem_ch11.ads, sem_ch12.adb, sem_ch12.ads,
20737         sem_ch13.adb, sem_ch13.ads, sem_ch2.adb, sem_ch2.ads,
20738         sem_ch3.adb, sem_ch3.ads, sem_ch4.adb, sem_ch4.ads,
20739         sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
20740         sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads,
20741         sem_ch9.adb, sem_ch9.ads, sem_disp.adb, sem_disp.ads,
20742         sem_dist.adb, sem_dist.ads, sem_elab.adb, sem_elab.ads,
20743         sem_elim.adb, sem_elim.ads, sem_eval.adb, sem_eval.ads,
20744         sem_intr.adb, sem_intr.ads, sem_maps.adb, sem_maps.ads,
20745         sem_mech.adb, sem_mech.ads, sem_prag.adb, sem_prag.ads,
20746         sem_res.adb, sem_res.ads, sem_smem.adb, sem_smem.ads,
20747         sem_type.adb, sem_type.ads, sem_util.adb, sem_util.ads,
20748         sem_vfpt.adb, sem_vfpt.ads, sem_warn.adb, sem_warn.ads,
20749         sequenio.ads, sfn_scan.adb, sfn_scan.ads, sinfo-cn.adb,
20750         sinfo-cn.ads, sinfo.adb, sinfo.ads, sinput-d.adb,
20751         sinput-d.ads, sinput-l.adb, sinput-l.ads, sinput-p.adb,
20752         sinput-p.ads, sinput.adb, sinput.ads, snames.adb,
20753         snames.ads, sprint.adb, sprint.ads, stand.adb,
20754         stand.ads, stringt.adb, stringt.ads, style.adb,
20755         style.ads, stylesw.adb, stylesw.ads, switch-b.adb,
20756         switch-b.ads, switch-c.adb, switch-c.ads, switch-m.adb,
20757         switch-m.ads, switch.adb, switch.ads, system.ads,
20758         table.adb, table.ads, targparm.adb, targparm.ads,
20759         tbuild.adb, tbuild.ads, text_io.ads, trans.c,
20760         tree_gen.adb, tree_gen.ads, tree_in.adb, tree_in.ads,
20761         tree_io.adb, tree_io.ads, treepr.adb, treepr.ads,
20762         ttypef.ads, ttypes.ads, types.adb, types.ads,
20763         uintp.adb, uintp.ads, uname.adb, uname.ads,
20764         unchconv.ads, unchdeal.ads, urealp.adb, urealp.ads,
20765         usage.adb, usage.ads, validsw.adb, validsw.ads,
20766         widechar.adb, widechar.ads, xeinfo.adb, xnmake.adb,
20767         xr_tabls.adb, xr_tabls.ads, xref_lib.adb, xref_lib.ads,
20768         xsinfo.adb, xsnames.adb, xtreeprs.adb : Merge header,
20769         formatting and other trivial changes from ACT.
20770
20771 2003-04-12  Zack Weinberg  <zack@codesourcery.com>
20772
20773         * gigi.h, utils2.c (build_constructor):
20774         Rename gnat_build_constructor. Use build_constructor.
20775         * decl.c (gnat_to_gnu_entity)
20776         * trans.c (tree_transform, pos_to_constructor, extract_values)
20777         * ada/utils.c (build_template, convert_to_fat_pointer, convert)
20778         (unchecked_convert)
20779         * ada/utils2.c (build_binary_op, build_call_raise, build_allocator)
20780         (fill_vms_descriptor):
20781         Update to match.
20782
20783 2003-04-06  Zack Weinberg  <zack@codesourcery.com>
20784
20785         * ada-tree.def: Make fourth element for GNAT_LOOP_ID zero.
20786         * misc.c (gnat_tree_size): New function.
20787         (LANG_HOOKS_TREE_SIZE): Override.
20788
20789 2003-04-03  Jason Merrill  <jason@redhat.com>
20790
20791         * misc.c (gnat_adjust_rli): #if 0.
20792
20793 2003-03-31   Geert Bosch <bosch@gnat.com>
20794
20795         PR ada/10020
20796         * link.c : Fix misspelled "const" keyword
20797
20798 2003-03-23  Mark Mitchell  <mark@codesourcery.com>
20799
20800         PR c++/7086
20801         * utils2.c: Adjust calls to put_var_into_stack.
20802
20803 2003-03-12  Nathanael Nerode  <neroden@gcc.gnu.org>
20804
20805         * Make-lang.in, Makefile.in, config-lang.in: GCC, not GNU CC.
20806
20807 2003-03-08  Neil Booth  <neil@daikokuya.co.uk>
20808
20809         * misc.c (gnat_init): Update for new prototype.
20810
20811 2003-03-05  Olivier Hainque  <hainque@gnat.com>
20812
20813         ada/9961
20814         * raise.c (__gnat_Unwind_RaiseException): Add prototype to avoid
20815         warning, and fix return type for the IN_RTS && !SJLJ case.
20816
20817 2003-03-04  Tom Tromey  <tromey@redhat.com>
20818
20819         * Make-lang.in (ada.tags): New target.
20820
20821 2003-03-04  Olivier Hainque  <hainque@act-europe.fr>
20822
20823         ada/9911
20824         * a-except.adb (Unwind_RaiseException): Import a GNAT specific
20825         wrapper, which name remains constant whatever underlying GCC
20826         scheme.
20827
20828         * raise.c (__gnat_Unwind_RaiseException): New wrappers, providing
20829         the stable interface needed for a-except.
20830
20831 2003-03-02  Andreas Jaeger  <aj@suse.de>
20832
20833         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
20834         gnat_ug_wnt.texi: Regenerate.
20835
20836 2003-03-02  Laurent Guerby <guerby@acm.org>
20837
20838         * Makefile.in (install-gnatlib): Match previous change there
20839         so it works.
20840
20841 2003-02-28  Andreas Schwab  <schwab@suse.de>
20842
20843         * Make-lang.in (install-gnatlib): Change to ada directory before
20844         running make instead of using ada/Makefile directly.
20845
20846 2003-02-18  Ben Elliston  <bje@redhat.com>
20847
20848         Part of fix for PR ada/9406
20849         * gnat_ug.texi (Binder output file): Grammar fix.
20850
20851 2003-02-18  Ben Elliston  <bje@redhat.com>
20852
20853         PR other/7350
20854         * 5qtaprop.adb (Sleep): Fix typo in comment.
20855
20856 2003-02-04  Joseph S. Myers  <jsm@polyomino.org.uk>
20857
20858         * gnat_rm.texi, gnat_ug.texi: Update to GFDL 1.2.
20859         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
20860         gnat_ug_wnt.texi: Regenerate.
20861
20862 2003-02-03  Christian Cornelssen <ccorn@cs.tu-berlin.de>
20863
20864         * Make-lang.in (ada.install-info): Let $(DESTDIR)$(infodir)
20865         be created if necessary.
20866         (ada.install-common): Let $(DESTDIR)$(bindir) be created
20867         if necessary.  Remove erroneous and redundant gnatchop
20868         installation commands.  Test for gnatdll before attempting
20869         to install it.
20870         (ada.uninstall): Also uninstall gnatfind, gnatxref, gnatlbr,
20871         and gnatdll from all plausible locations.
20872
20873 2003-02-01  Richard Sandiford  <rsandifo@redhat.com>
20874
20875         * utils2.c (build_unary_op): Don't check flag_volatile.
20876         * gnat_ug.texi: Remove -fvolatile from example.
20877         * gnat_ug_vxw.texi: Likewise.
20878
20879 2003-01-29  Laurent Guerby <guerby@acm.org>
20880
20881         PR ada/8344
20882         * final.c: rename to adafinal.c to avoid file name conflicts with gcc file.
20883         * Makefile.in: match previous change.
20884         * Make-lang.in: match previous change.
20885
20886 2003-01-29      Joel Sherrill <joel@OARcorp.com>
20887
20888         * 5rosinte.ads: Add SIGXCPU.
20889         * 5rtpopsp.adb: New file.
20890         * Make-lang.in: Do not build gnatpsta and gnatpsys when cross.
20891         * Makefile.in: Recognize more RTEMS targets and add the RTEMS
20892         specific file 5rtpopsp.adb.
20893         * adaint.h: Add include of <stdio.h> when target is RTEMS.  This
20894         is likely needed for all newlib targets.
20895         * init.c: Add RTEMS specific version of __gnat_initialize().
20896
20897 2003-01-28  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
20898
20899         * adaint.c, adaint.h, gmem.c, init.c: Update copyright year.
20900
20901 2003-01-27  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
20902
20903         * init.c (__gnat_error_handler): Make msg const.
20904
20905         * gmem.c (convert_addresses): Move declaration ...
20906         * adaint.h: ... here.
20907         * adaint.c (convert_addresses): Adapt addrs type to match
20908         prototype.
20909
20910         * adaint.c (__gnat_try_lock): Cast pid_t to long, adapt format.
20911
20912 2003-01-24  Andreas Schwab  <schwab@suse.de>
20913
20914         * ada-tree.h (SET_TYPE_DIGITS_VALUE): Add intermediate cast to
20915         size_t to avoid warning.
20916
20917 2003-01-21  Zack Weinberg  <zack@codesourcery.com>
20918
20919         * Make-lang.in: Disable -Werror for tracebak.c and b_gnatb.c.
20920
20921 2003-01-09  Geoffrey Keating  <geoffk@apple.com>
20922
20923         * gnat_rm.texi: Remove RCS version number.
20924
20925         * ada-tree.h (union lang_tree_node): Add chain_next option.
20926
20927 2003-01-09  Christian Cornelssen  <ccorn@cs.tu-berlin.de>
20928
20929         * Make-lang.in (ada.install-info, ada.install-common,
20930         ada.uninstall): Prepend $(DESTDIR) to the destination
20931         directory in all (un)installation commands.
20932         * Makefile.in (install-gnatlib, install-rts): Ditto.
20933
20934 2002-12-28  Joseph S. Myers  <jsm@polyomino.org.uk>
20935
20936         * gnat_rm.texi, gnat_ug.texi: Use @copying.
20937         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
20938         gnat_ug_wnt.texi: Regenerate.
20939
20940 2002-12-23  Joseph S. Myers  <jsm@polyomino.org.uk>
20941
20942         * gnat_rm.texi: Include gcc-common.texi.  Use GCC version number
20943         only.
20944         * Make-lang.in ($(srcdir)/ada/gnat_ug_unx.info,
20945         $(srcdir)/ada/gnat_ug_vms.info, $(srcdir)/ada/gnat_ug_vxw.info,
20946         $(srcdir)/ada/gnat_ug_wnt.info, $(srcdir)/ada/gnat_rm.info,
20947         ada/gnat_ug_unx.dvi, ada/gnat_ug_vms.dvi, ada/gnat_ug_vxw.dvi,
20948         ada/gnat_ug_wnt.dvi, ada/gnat_rm.dvi): Depend on
20949         $(srcdir)/doc/include/gcc-common.texi.
20950
20951 2002-12-15   Geert Bosch <bosch@gnat.com>
20952
20953         * sem_ch6.adb (Analyze_Subprogram_Body): Fix typo and formatting
20954
20955 2002-12-14   Geert Bosch <bosch@gnat.com>
20956
20957         * sem_ch6.adb (Analyze_Subprogram_Body): Recognize additional
20958         case of a body created for a Renaming_As_Body, on which
20959         conformance checks are not performed. Fixes PR ada/5690.
20960
20961 2002-11-30  Zack Weinberg  <zack@codesourcery.com>
20962
20963         * cuintp.c, decl.c, deftarg.c, misc.c, targtyps.c, trans.c,
20964         utils.c, utils2.c: Include coretypes.h and tm.h, and system.h when
20965         not already included.
20966         * Make-lang.in: Update dependencies.
20967
20968 2002-11-18  Nathanael Nerode  <neroden@gcc.gnu.org>
20969         * adaint.c (__gnat_tmp_name): Better, but good enough for now,
20970         solution to buffer overflow bug on GNU/Linux.
20971
20972 2002-11-14  Nathanael Nerode  <neroden@gcc.gnu.org>
20973         Closes PR ada/5856 and PR ada/6919 !
20974         * bindgen.adb: Remove all references to Public_Version.
20975         * comperr.adb: Remove all references to Public_Version and
20976         GNATPRO_Version; correct bug reporting instructions.
20977         * comperr.ads: Change to match bug box.
20978         * gnatvsn.ads: Remove all references to Public version and
20979         GNATPRO version.
20980
20981 2002-11-13  Nathanael Nerode  <neroden@gcc.gnu.org>
20982         PR ada/6919
20983         * adaint.c (__gnat_tmp_name): Remove buffer overflow bug on
20984         GNU/Linux.
20985
20986         PR ada/6558
20987         * config-lang.in: Remove diff_excludes.
20988
20989 2002-11-05  Graham Stott  <graham.stott@btinternet.com>
20990         PR ada/8358
20991         * trans.c (gnu_pending_elaboration_lists): New GC root.
20992         (build_unit_elab): Use..
20993
20994 2002-10-30   Geert Bosch <bosch@gnat.com>
20995         PR ada/6558
20996         * misc.c : Include optabs.h
20997
20998         * Make-lang.in (misc.o): Add dependency on optabs.h
20999
21000 2002-10-29   Geert Bosch <bosch@gnat.com>
21001         PR ada/6558
21002         * Make-lang.in (gnatbind): Depend on CONFIG_H
21003
21004 2002-10-29  Geert bosch  <bosch@gnat.com>
21005         PR ada/6558
21006         * misc.c: Unrevert misc.c (1.13)
21007
21008 2002-10-28  Nathanael Nerode  <neroden@gcc.gnu.org>
21009
21010         * a-chlat9.ads a-cwila9.ads a-dynpri.adb a-retide.adb: Update
21011         maintainership comments.
21012
21013 2002-09-25  Nathanael Nerode  <neroden@gcc.gnu.org>
21014         PR ada/5904
21015         * 5ataprop.adb 5atpopsp.adb 5bosinte.adb 5ftaprop.adb
21016         5gtaprop.adb 5htaprop.adb 5rosinte.ads 5staprop.adb
21017         5stpopse.adb 5vtaspri.ads 5zintman.adb 5ztaprop.adb
21018         7staprop.adb: Correct statements in comments about
21019         maintainership of GNAT.
21020
21021         PR ada/5904
21022         * 1ssecsta.adb 1ssecsta.ads adadecode.c adadecode.h aux-io.c
21023         gnatname.adb gnatname.ads mkdir.c osint-b.adb osint-b.ads
21024         osint-c.adb osint-c.ads osint-l.adb osint-l.ads osint-m.adb
21025         osint-m.ads prj-makr.adb prj-makr.ads prj-pp.adb prj-pp.ads
21026         s-atacco.ads s-traceb.adb s-traceb.ads s-traces.adb
21027         s-traces.ads s-tratas.adb s-tratas.ads sinput-d.adb
21028         sinput-d.ads switch-b.adb switch-b.ads switch-c.adb
21029         switch-c.ads switch-m.adb switch-m.ads: Correct statements in
21030         comments about maintainership of GNAT.
21031
21032         PR ada/6919 (forward port of patch for PR ada/5904)
21033         * 1aexcept.adb 1aexcept.ads 41intnam.ads 42intnam.ads
21034         4aintnam.ads 4cintnam.ads 4dintnam.ads 4hexcpol.adb
21035         4lintnam.ads 4mintnam.ads 4nintnam.ads 4onumaux.ads
21036         4pintnam.ads 4rintnam.ads 4sintnam.ads 4uintnam.ads
21037         4vcalend.adb 4vintnam.ads 4wcalend.adb 4wexcpol.adb
21038         4wintnam.ads 4zintnam.ads 4znumaux.ads 4zsytaco.adb
21039         4zsytaco.ads 51osinte.adb 51osinte.ads 52osinte.adb
21040         52osinte.ads 52system.ads 53osinte.ads 5aosinte.ads
21041         5asystem.ads 5atasinf.ads 5ataspri.ads 5avxwork.ads
21042         5bosinte.ads 5bsystem.ads 5cosinte.ads 5dosinte.ads
21043         5esystem.ads 5fosinte.ads 5fsystem.ads 5ftasinf.ads
21044         5ginterr.adb 5gmastop.adb 5gosinte.ads 5gproinf.adb
21045         5gproinf.ads 5gsystem.ads 5gtasinf.adb 5gtasinf.ads
21046         5gtpgetc.adb 5hparame.ads 5hsystem.ads 5htaspri.ads
21047         5iosinte.ads 5itaspri.ads 5ksystem.ads 5kvxwork.ads
21048         5losinte.ads 5lsystem.ads 5mosinte.ads 5mvxwork.ads
21049         5ninmaop.adb 5nintman.adb 5nosinte.ads 5ntaspri.ads
21050         5oosprim.adb 5oparame.adb 5osystem.ads 5posinte.ads
21051         5posprim.adb 5pvxwork.ads 5rosinte.ads 5rparame.adb
21052         5sintman.adb 5sosinte.ads 5sparame.adb 5ssystem.ads
21053         5stasinf.adb 5stasinf.ads 5staspri.ads 5svxwork.ads
21054         5tosinte.ads 5uosinte.ads 5vasthan.adb 5vinterr.adb
21055         5vintman.ads 5vosinte.ads 5vosprim.adb 5vosprim.ads
21056         5vparame.ads 5vsystem.ads 5vtaspri.ads 5vtpopde.adb
21057         5vtpopde.ads 5vvaflop.adb 5wintman.adb 5wmemory.adb
21058         5wosinte.ads 5wosprim.adb 5wsystem.ads 5wtaprop.adb
21059         5wtaspri.ads 5ysystem.ads 5zinterr.adb 5zosinte.adb
21060         5zosinte.ads 5zosprim.adb 5zsystem.ads 6vcpp.adb 6vcstrea.adb
21061         7sosprim.adb 86numaux.adb 86numaux.ads 9drpc.adb a-astaco.adb
21062         a-caldel.ads a-calend.adb a-calend.ads a-chahan.adb
21063         a-chahan.ads a-colien.adb a-colien.ads a-colire.adb
21064         a-colire.ads a-comlin.adb a-comlin.ads a-cwila1.ads
21065         a-decima.adb a-decima.ads a-diocst.adb a-diocst.ads
21066         a-direio.adb a-direio.ads a-einuoc.adb a-einuoc.ads
21067         a-except.adb a-except.ads a-excpol.adb a-exctra.adb
21068         a-exctra.ads a-filico.adb a-filico.ads a-finali.adb
21069         a-finali.ads a-interr.ads a-intsig.adb a-intsig.ads
21070         a-ngcefu.adb a-ngcoty.adb a-ngcoty.ads a-ngelfu.adb
21071         a-nudira.adb a-nudira.ads a-nuflra.adb a-nuflra.ads
21072         a-numaux.ads a-reatim.ads a-retide.ads a-sequio.adb
21073         a-sequio.ads a-siocst.adb a-siocst.ads a-ssicst.adb
21074         a-ssicst.ads a-stmaco.ads a-storio.adb a-strbou.adb
21075         a-strbou.ads a-stream.ads a-strfix.adb a-strfix.ads
21076         a-strmap.adb a-strmap.ads a-strsea.adb a-strsea.ads
21077         a-strunb.adb a-strunb.ads a-ststio.adb a-ststio.ads
21078         a-stunau.adb a-stunau.ads a-stwibo.adb a-stwibo.ads
21079         a-stwifi.adb a-stwima.adb a-stwima.ads a-stwise.adb
21080         a-stwise.ads a-stwiun.adb a-stwiun.ads a-suteio.adb
21081         a-suteio.ads a-swmwco.ads a-swuwti.adb a-swuwti.ads
21082         a-sytaco.adb a-sytaco.ads a-tags.adb a-tags.ads a-tasatt.ads
21083         a-taside.adb a-taside.ads a-teioed.adb a-teioed.ads
21084         a-textio.adb a-textio.ads a-ticoau.adb a-ticoau.ads
21085         a-ticoio.adb a-ticoio.ads a-tideau.adb a-tideau.ads
21086         a-tideio.adb a-tideio.ads a-tienau.adb a-tienau.ads
21087         a-tienio.adb a-tienio.ads a-tifiio.adb a-tifiio.ads
21088         a-tiflau.adb a-tiflau.ads a-tiflio.adb a-tiflio.ads
21089         a-tigeau.adb a-tigeau.ads a-tiinau.adb a-tiinau.ads
21090         a-tiinio.adb a-tiinio.ads a-timoau.adb a-timoau.ads
21091         a-timoio.adb a-timoio.ads a-tiocst.adb a-tiocst.ads
21092         a-titest.adb a-witeio.adb a-witeio.ads a-wtcoau.adb
21093         a-wtcoau.ads a-wtcoio.adb a-wtcstr.adb a-wtcstr.ads
21094         a-wtdeau.adb a-wtdeau.ads a-wtdeio.adb a-wtdeio.ads
21095         a-wtedit.adb a-wtedit.ads a-wtenau.adb a-wtenau.ads
21096         a-wtenio.adb a-wtenio.ads a-wtfiio.adb a-wtfiio.ads
21097         a-wtflau.adb a-wtflau.ads a-wtflio.adb a-wtflio.ads
21098         a-wtgeau.adb a-wtgeau.ads a-wtinau.adb a-wtinau.ads
21099         a-wtinio.adb a-wtmoau.adb a-wtmoau.ads a-wtmoio.adb
21100         a-wtmoio.ads a-wttest.adb ada-tree.def ada-tree.h ada.h
21101         adaint.c adaint.h ali-util.adb ali-util.ads ali.adb ali.ads
21102         alloc.ads argv.c atree.adb atree.ads atree.h back_end.adb
21103         back_end.ads bcheck.adb bcheck.ads binde.adb binde.ads
21104         binderr.adb binderr.ads bindgen.adb bindgen.ads bindusg.adb
21105         bindusg.ads butil.adb butil.ads cal.c casing.adb casing.ads
21106         ceinfo.adb checks.adb checks.ads cio.c comperr.adb comperr.ads
21107         csets.adb csets.ads csinfo.adb cstand.adb cstand.ads
21108         cstreams.c cuintp.c debug.adb debug.ads debug_a.adb
21109         debug_a.ads dec-io.adb dec-io.ads dec.ads decl.c deftarg.c
21110         einfo.adb einfo.ads einfo.h elists.adb elists.ads elists.h
21111         errno.c errout.adb errout.ads eval_fat.adb eval_fat.ads exit.c
21112         exp_aggr.adb exp_aggr.ads exp_attr.adb exp_attr.ads
21113         exp_ch10.ads exp_ch11.adb exp_ch11.ads exp_ch12.adb
21114         exp_ch12.ads exp_ch13.adb exp_ch13.ads exp_ch2.adb exp_ch2.ads
21115         exp_ch3.adb exp_ch3.ads exp_ch4.adb exp_ch4.ads exp_ch5.adb
21116         exp_ch5.ads exp_ch6.adb exp_ch6.ads exp_ch7.adb exp_ch7.ads
21117         exp_ch8.adb exp_ch8.ads exp_ch9.adb exp_ch9.ads exp_code.adb
21118         exp_code.ads exp_dbug.adb exp_dbug.ads exp_disp.adb
21119         exp_disp.ads exp_dist.adb exp_dist.ads exp_fixd.adb
21120         exp_fixd.ads exp_imgv.adb exp_imgv.ads exp_intr.adb
21121         exp_intr.ads exp_pakd.adb exp_pakd.ads exp_prag.adb
21122         exp_prag.ads exp_smem.adb exp_smem.ads exp_strm.adb
21123         exp_strm.ads exp_tss.adb exp_tss.ads exp_util.adb exp_util.ads
21124         exp_vfpt.adb exp_vfpt.ads expander.adb expander.ads fe.h
21125         final.c fmap.adb fmap.ads fname-sf.adb fname-sf.ads
21126         fname-uf.adb fname-uf.ads fname.adb fname.ads freeze.adb
21127         freeze.ads frontend.adb frontend.ads g-calend.ads g-comlin.adb
21128         g-debpoo.adb g-debpoo.ads g-locfil.adb g-os_lib.ads
21129         g-regist.adb g-regist.ads get_targ.adb get_targ.ads gigi.h
21130         gmem.c gnat1drv.adb gnat1drv.ads gnat_ug.texi gnatbind.adb
21131         gnatbind.ads gnatbl.c gnatcmd.adb gnatcmd.ads gnatdll.adb
21132         gnatfind.adb gnatkr.adb gnatkr.ads gnatlbr.adb gnatlink.adb
21133         gnatlink.ads gnatls.adb gnatls.ads gnatmake.adb gnatmake.ads
21134         gnatmem.adb gnatprep.adb gnatprep.ads gnatpsta.adb gnatvsn.ads
21135         gnatxref.adb hlo.adb hlo.ads hostparm.ads i-c.adb i-cexten.ads
21136         i-cobol.adb i-cobol.ads i-cpoint.adb i-cpoint.ads i-cpp.adb
21137         i-cpp.ads i-cstrea.adb i-cstrea.ads i-cstrin.adb i-cstrin.ads
21138         i-fortra.adb i-os2err.ads i-os2lib.adb i-os2lib.ads
21139         i-os2syn.ads i-os2thr.ads i-pacdec.adb i-pacdec.ads
21140         impunit.adb impunit.ads init.c inline.adb inline.ads io-aux.c
21141         itypes.adb itypes.ads krunch.adb krunch.ads lang-options.h
21142         lang-specs.h layout.adb layout.ads lib-list.adb lib-load.adb
21143         lib-load.ads lib-sort.adb lib-util.adb lib-util.ads
21144         lib-writ.adb lib-writ.ads lib-xref.adb lib-xref.ads lib.adb
21145         lib.ads link.c live.adb live.ads make.adb make.ads makeusg.adb
21146         makeusg.ads math_lib.adb mdll.adb mdll.ads memtrack.adb misc.c
21147         namet.adb namet.ads namet.h nlists.adb nlists.ads nlists.h
21148         nmake.adb nmake.ads nmake.adt opt.adb opt.ads osint.adb
21149         osint.ads output.adb output.ads par-ch10.adb par-ch11.adb
21150         par-ch12.adb par-ch13.adb par-ch2.adb par-ch3.adb par-ch4.adb
21151         par-ch5.adb par-ch6.adb par-ch7.adb par-ch8.adb par-ch9.adb
21152         par-endh.adb par-labl.adb par-load.adb par-prag.adb
21153         par-sync.adb par-tchk.adb par-util.adb par.adb par.ads
21154         prj-attr.adb prj-attr.ads prj-com.adb prj-com.ads prj-dect.adb
21155         prj-dect.ads prj-env.adb prj-env.ads prj-ext.adb prj-ext.ads
21156         prj-nmsc.adb prj-nmsc.ads prj-pars.adb prj-pars.ads
21157         prj-part.adb prj-part.ads prj-proc.adb prj-proc.ads
21158         prj-strt.adb prj-strt.ads prj-tree.adb prj-tree.ads
21159         prj-util.adb prj-util.ads prj.adb prj.ads raise.c raise.h
21160         repinfo.adb repinfo.ads repinfo.h restrict.adb restrict.ads
21161         rident.ads rtsfind.adb rtsfind.ads s-addima.adb s-addima.ads
21162         s-arit64.adb s-arit64.ads s-assert.adb s-assert.ads
21163         s-asthan.adb s-asthan.ads s-atacco.adb s-auxdec.adb
21164         s-auxdec.ads s-bitops.adb s-bitops.ads s-chepoo.ads
21165         s-direio.adb s-direio.ads s-except.ads s-exctab.adb
21166         s-exctab.ads s-exnflt.ads s-exngen.adb s-exngen.ads
21167         s-exnint.ads s-exnlfl.ads s-exnlin.ads s-exnllf.ads
21168         s-exnlli.ads s-exnsfl.ads s-exnsin.ads s-exnssi.ads
21169         s-expflt.ads s-expgen.adb s-expgen.ads s-expint.ads
21170         s-explfl.ads s-explin.ads s-expllf.ads s-explli.ads
21171         s-expllu.adb s-expllu.ads s-expmod.adb s-expmod.ads
21172         s-expsfl.ads s-expsin.ads s-expssi.ads s-expuns.adb
21173         s-expuns.ads s-fatflt.ads s-fatgen.adb s-fatgen.ads
21174         s-fatlfl.ads s-fatllf.ads s-fatsfl.ads s-ficobl.ads
21175         s-fileio.adb s-fileio.ads s-finimp.adb s-finimp.ads
21176         s-finroo.adb s-finroo.ads s-fore.adb s-fore.ads s-imgbiu.adb
21177         s-imgbiu.ads s-imgboo.adb s-imgboo.ads s-imgcha.adb
21178         s-imgcha.ads s-imgdec.adb s-imgdec.ads s-imgenu.adb
21179         s-imgenu.ads s-imgint.adb s-imgint.ads s-imgllb.adb
21180         s-imgllb.ads s-imglld.adb s-imglld.ads s-imglli.adb
21181         s-imglli.ads s-imgllu.adb s-imgllu.ads s-imgllw.adb
21182         s-imgllw.ads s-imgrea.adb s-imgrea.ads s-imguns.adb
21183         s-imguns.ads s-imgwch.adb s-imgwch.ads s-imgwiu.adb
21184         s-imgwiu.ads s-inmaop.ads s-interr.adb s-interr.ads
21185         s-intman.ads s-io.adb s-io.ads s-maccod.ads s-mantis.adb
21186         s-mantis.ads s-memory.adb s-memory.ads s-osprim.ads
21187         s-pack03.adb s-pack03.ads s-pack05.adb s-pack05.ads
21188         s-pack06.adb s-pack06.ads s-pack07.adb s-pack07.ads
21189         s-pack09.adb s-pack09.ads s-pack10.adb s-pack10.ads
21190         s-pack11.adb s-pack11.ads s-pack12.adb s-pack12.ads
21191         s-pack13.adb s-pack13.ads s-pack14.adb s-pack14.ads
21192         s-pack15.adb s-pack15.ads s-pack17.adb s-pack17.ads
21193         s-pack18.adb s-pack18.ads s-pack19.adb s-pack19.ads
21194         s-pack20.adb s-pack20.ads s-pack21.adb s-pack21.ads
21195         s-pack22.adb s-pack22.ads s-pack23.adb s-pack23.ads
21196         s-pack24.adb s-pack24.ads s-pack25.adb s-pack25.ads
21197         s-pack26.adb s-pack26.ads s-pack27.adb s-pack27.ads
21198         s-pack28.adb s-pack28.ads s-pack29.adb s-pack29.ads
21199         s-pack30.adb s-pack30.ads s-pack31.adb s-pack31.ads
21200         s-pack33.adb s-pack33.ads s-pack34.adb s-pack34.ads
21201         s-pack35.adb s-pack35.ads s-pack36.adb s-pack36.ads
21202         s-pack37.adb s-pack37.ads s-pack38.adb s-pack38.ads
21203         s-pack39.adb s-pack39.ads s-pack40.adb s-pack40.ads
21204         s-pack41.adb s-pack41.ads s-pack42.adb s-pack42.ads
21205         s-pack43.adb s-pack43.ads s-pack44.adb s-pack44.ads
21206         s-pack45.adb s-pack45.ads s-pack46.adb s-pack46.ads
21207         s-pack47.adb s-pack47.ads s-pack48.adb s-pack48.ads
21208         s-pack49.adb s-pack49.ads s-pack50.adb s-pack50.ads
21209         s-pack51.adb s-pack51.ads s-pack52.adb s-pack52.ads
21210         s-pack53.adb s-pack53.ads s-pack54.adb s-pack54.ads
21211         s-pack55.adb s-pack55.ads s-pack56.adb s-pack56.ads
21212         s-pack57.adb s-pack57.ads s-pack58.adb s-pack58.ads
21213         s-pack59.adb s-pack59.ads s-pack60.adb s-pack60.ads
21214         s-pack61.adb s-pack61.ads s-pack62.adb s-pack62.ads
21215         s-pack63.adb s-pack63.ads s-parame.adb s-parame.ads
21216         s-parint.adb s-parint.ads s-pooglo.adb s-pooglo.ads
21217         s-pooloc.adb s-pooloc.ads s-poosiz.adb s-poosiz.ads
21218         s-powtab.ads s-proinf.adb s-proinf.ads s-rpc.adb s-rpc.ads
21219         s-scaval.ads s-secsta.adb s-secsta.ads s-sequio.adb
21220         s-sequio.ads s-shasto.adb s-shasto.ads s-soflin.adb
21221         s-soflin.ads s-sopco3.adb s-sopco3.ads s-sopco4.adb
21222         s-sopco4.ads s-sopco5.adb s-sopco5.ads s-stache.adb
21223         s-stache.ads s-stalib.adb s-stalib.ads s-stoele.adb
21224         s-stopoo.ads s-stratt.adb s-stratt.ads s-strops.adb
21225         s-strops.ads s-taprob.ads s-taprop.ads s-tarest.ads
21226         s-tasdeb.adb s-tasdeb.ads s-tasinf.adb s-tasinf.ads
21227         s-tasini.ads s-taskin.ads s-tasren.ads s-tasres.ads
21228         s-tassta.ads s-tpinop.adb s-tpinop.ads s-tpoben.ads
21229         s-tpobop.ads s-unstyp.ads s-vaflop.adb s-vaflop.ads
21230         s-valboo.adb s-valboo.ads s-valcha.adb s-valcha.ads
21231         s-valdec.adb s-valdec.ads s-valenu.adb s-valenu.ads
21232         s-valint.adb s-valint.ads s-vallld.adb s-vallld.ads
21233         s-vallli.adb s-vallli.ads s-valllu.adb s-valllu.ads
21234         s-valrea.adb s-valrea.ads s-valuns.adb s-valuns.ads
21235         s-valuti.adb s-valuti.ads s-valwch.adb s-valwch.ads
21236         s-vercon.adb s-vercon.ads s-vmexta.adb s-vmexta.ads
21237         s-wchcnv.adb s-wchcnv.ads s-wchcon.ads s-wchjis.adb
21238         s-wchjis.ads s-wchstw.adb s-wchstw.ads s-wchwts.adb
21239         s-wchwts.ads s-widboo.adb s-widboo.ads s-widcha.adb
21240         s-widcha.ads s-widenu.adb s-widenu.ads s-widlli.adb
21241         s-widlli.ads s-widllu.adb s-widllu.ads s-widwch.adb
21242         s-widwch.ads s-wwdcha.adb s-wwdcha.ads s-wwdenu.adb
21243         s-wwdenu.ads s-wwdwch.adb s-wwdwch.ads scans.adb scans.ads
21244         scn-nlit.adb scn-slit.adb scn.adb scn.ads sdefault.ads sem.adb
21245         sem.ads sem_aggr.adb sem_aggr.ads sem_attr.adb sem_attr.ads
21246         sem_case.adb sem_case.ads sem_cat.adb sem_cat.ads sem_ch10.adb
21247         sem_ch10.ads sem_ch11.adb sem_ch11.ads sem_ch12.adb
21248         sem_ch12.ads sem_ch13.adb sem_ch13.ads sem_ch2.adb sem_ch2.ads
21249         sem_ch3.adb sem_ch3.ads sem_ch4.adb sem_ch4.ads sem_ch5.adb
21250         sem_ch5.ads sem_ch6.adb sem_ch6.ads sem_ch7.adb sem_ch7.ads
21251         sem_ch8.adb sem_ch8.ads sem_ch9.adb sem_ch9.ads sem_disp.adb
21252         sem_disp.ads sem_dist.adb sem_dist.ads sem_elab.adb
21253         sem_elab.ads sem_elim.adb sem_elim.ads sem_eval.adb
21254         sem_eval.ads sem_intr.adb sem_intr.ads sem_maps.adb
21255         sem_maps.ads sem_mech.adb sem_mech.ads sem_prag.adb
21256         sem_prag.ads sem_res.adb sem_res.ads sem_smem.adb sem_smem.ads
21257         sem_type.adb sem_type.ads sem_util.adb sem_util.ads
21258         sem_vfpt.adb sem_vfpt.ads sem_warn.adb sem_warn.ads
21259         sfn_scan.adb sfn_scan.ads sinfo-cn.adb sinfo-cn.ads sinfo.adb
21260         sinfo.ads sinfo.h sinput-l.adb sinput-l.ads sinput-p.adb
21261         sinput-p.ads sinput.adb sinput.ads snames.adb snames.ads
21262         snames.h sprint.adb sprint.ads stand.adb stand.ads stringt.adb
21263         stringt.ads stringt.h style.adb style.ads stylesw.adb
21264         stylesw.ads switch.adb switch.ads sysdep.c system.ads
21265         table.adb table.ads targparm.adb targparm.ads targtyps.c
21266         tbuild.adb tbuild.ads trans.c tree_gen.adb tree_gen.ads
21267         tree_in.adb tree_in.ads tree_io.adb tree_io.ads treepr.adb
21268         treepr.ads treeprs.ads treeprs.adt ttypef.ads ttypes.ads
21269         types.adb types.ads types.h uintp.adb uintp.ads uintp.h
21270         uname.adb uname.ads urealp.adb urealp.ads urealp.h usage.adb
21271         usage.ads utils.c utils2.c validsw.adb validsw.ads
21272         widechar.adb widechar.ads xeinfo.adb xnmake.adb xr_tabls.adb
21273         xr_tabls.ads xref_lib.adb xref_lib.ads xsinfo.adb xsnames.adb
21274         xtreeprs.adb: Correct statements in comments about maintainership
21275         of GNAT.
21276
21277 2002-09-23  Zack Weinberg  <zack@codesourcery.com>
21278
21279         * Make-lang.in (EXTRA_GNATBIND_OBJS): Add version.o.
21280         * Makefile.in (TOOLS_LIBS): Add ../../version.o.
21281         * gnatvsn.ads: Gnat_Version_String is now a function.
21282         * gnatvsn.adb: New file.  When asked for Gnat_Version_String,
21283         copy the C version_string into a String and return it.
21284         * gnatcmd.adb, gnatkr.adb, gnatlbr.adb, gnatlink.adb,
21285         gnatls.adb,gnatmake.adb, gnatprep.adb, gnatpsta.adb:
21286         Remove pragma Ident (Gnat_Version_String).  If this was the
21287         sole use of package Gnatvsn, remove the with statement too.
21288         * gnat1drv.adb: Tweak -gnatv output.
21289
21290 2002-09-17  Richard Henderson  <rth@redhat.com>
21291
21292         * trans.c (tree_transform): Use real_ldexp not REAL_VALUE_LDEXP.
21293         * config/dsp16xx/dsp16xx.md (fixuns_trunchfhi2): Use real_2expN.
21294         * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
21295         (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
21296         * config/m68k/m68k.c (floating_exact_log2): Use real_exponent
21297         and real_2expN instead of a loop.
21298         * doc/tm.texi (REAL_VALUE_LDEXP): Remove.
21299         (REAL_VALUE_RNDZINT, REAL_VALUE_UNSIGNED_RNDZINT): Remove.
21300
21301 2002-08-25  Andre Leis <a.leis@gmx.net>
21302             David Billinghurst (David.Billinghurst@riotinto.com>
21303
21304         * sysdep.c (__gnat_ttyname): include <termios.h> on cygwin
21305
21306 2002-08-13  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
21307
21308         * Make-lang.in (gnatbind$(exeext)): Link with $(SYSLIBS).
21309         Remove $(CONFIG_H) dependency.
21310
21311 2002-08-08  Nathan Sidwell  <nathan@codesourcery.com>
21312
21313         * ada/Make-lang.in (ada.mostlyclean): Remove coverage files.
21314
21315 2002-07-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21316
21317         * adadecode.c (ada_demangle): Use xstrdup in lieu of
21318         xmalloc/strcpy.
21319         * misc.c (gnat_decode_option): Likewise.
21320
21321 2002-07-15  Florian Weimer  <fw@deneb.enyo.de>
21322
21323         * make.adb (Add_Switch): Make Generic_Position a procedure.  The
21324         function approach did not work well because of a side effect (the
21325         function call could reallocate the table which was being indexed
21326         using its result). Fixes ada/4851. [RESURRECTED]
21327
21328 2002-07-01  Roger Sayle  <roger@eyesopen.com>
21329
21330         * ada/utils.c (builtin_function): Accept an additional parameter.
21331
21332 2002-06-28  Andreas Jaeger  <aj@suse.de>
21333
21334         PR ada/7144
21335         * Makefile.in: Fix typo in comment, patch by Adrian Knoth
21336         <adi@thur.de>.
21337
21338 2002-06-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21339
21340         * Makefile.in (SHELL): Set to @SHELL@.
21341
21342 2002-06-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21343
21344         * utils.c (init_gigi_decls): Use ARRAY_SIZE in lieu of explicit
21345         array size calculation.
21346
21347 2002-06-04  Andreas Jaeger  <aj@suse.de>
21348
21349         * Make-lang.in (gnatbind): Readd rule that has been lost in last
21350         patch.
21351
21352 2002-06-03  Geoffrey Keating  <geoffk@redhat.com>
21353
21354         Merge from pch-branch:
21355
21356         * config-lang.in (gtfiles): Add ada-tree.h.
21357         * ada-tree.h (SET_TYPE_CI_CO_LIST): New.
21358         (SET_TYPE_MODULUS): New.
21359         (SET_TYPE_INDEX): New.
21360         (SET_TYPE_DIGITS_VALUE): New.
21361         (SET_TYPE_RM_SIZE): New.
21362         (SET_TYPE_UNCONSTRAINED_ARRAY): New.
21363         (SET_TYPE_ADA_SIZE): New.
21364         (SET_TYPE_ACTUAL_BOUNDS): New.
21365         (SET_DECL_CONST_CORRESPONDING_VAR): New.
21366         (SET_DECL_ORIGINAL_FIELD): New.
21367         (TREE_LOOP_ID): Correct typo.
21368         * decl.c: Use new macros.
21369         * utils.c: Include debug.h, use new macros.
21370         * utils2.c: Use new macros.
21371
21372         * ada-tree.h: Update all macros for new tree description.
21373         (struct tree_loop_id): New.
21374         (union lang_tree_node): New.
21375         (struct lang_decl): New.
21376         (struct lang_type): New.
21377         * misc.c (gnat_mark_tree): Delete.
21378         (LANG_HOOKS_MARK_TREE): Delete.
21379         * trans.c (tree_transform): No longer any need to cast
21380         for TREE_LOOP_ID.
21381
21382         * utils.c (struct language_function): New dummy structure.
21383
21384         * Makefile.in (decl.o): gt-ada-<filename.h> is in objdir, not srcdir.
21385         (misc.o): Likewise.
21386         (utils.o): Likewise; also gtype-ada.h.
21387         * Make-lang.in (gnat1): Add dependency on s-gtype.
21388         (gnatbind): Add dependency on $(CONFIG_H).
21389         * utils.c: Correct last #include.
21390         (stuct e_stack): Remove unnecessary 'static'.
21391         (mark_e_stack): Remove unused prototype.
21392
21393         * scn-nlit.adb: Remove whitespace after version number to
21394         keep lines under 80 chars.
21395         * snames.adb: Likewise.
21396         * treepr.ads: Likewise.
21397
21398         * Makefile.in (decl.o): Include gt-ada-<filename>.h.
21399         (misc.o): Likewise.
21400         (utils.o): Include gt-ada-<filename>.h and gtype-ada.h.
21401         * config-lang.in (gtfiles): New.
21402         * decl.c: Use gengtype for roots.
21403         * gigi.h: Use gengtype for roots.
21404         * trans.c: Use gengtype for roots.
21405         * utils.c: Use gengtype for roots, marking.  Include gtype-ada.h.
21406
21407 2002-06-02  Gabriel Dos Reis  <gdr@codesourcery.com>
21408
21409         * misc.c (gnat_init): Adjust setting of internal_error_function.
21410
21411 2002-06-01  Joseph S. Myers  <jsm28@cam.ac.uk>
21412
21413         * gnat_ug.texi: Use @ifnottex instead of @ifinfo.
21414         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
21415         gnat_ug_wnt.texi: Regenerate.
21416
21417 2002-05-31  Florian Weimer  <fw@deneb.enyo.de>
21418
21419         * 5ntaprop.adb (with System.OS_Primitives): Remove.
21420
21421         * cstreams.c (max_path_len): Move from here ...
21422         * adaint.c (__gnat_max_path_len): ... to here.
21423         * adaint.c (__gnat_max_path_len): Declare.
21424         * g-dirope.adb (Max_Path): Adjust.
21425         * g-os_lib.adb (Normalize_Pathname.Max_Path): Adjust.
21426         * i-cstrea.ads (max_path_len): Adjust.
21427         * osint.adb (Get_RTS_Search_Dir.Max_Path): Adjust.
21428         * xr_tabls.adb (Dir_Name.Max_Path: Adjust.
21429
21430         * Makefile.in, Make-lang.in: Documentation is now built in
21431         Make-lang.in.  Store Info and generated Texinfo files in the
21432         source directory.
21433         * gnat_ug.texi: Remove CVS keywords, correct version number.
21434         Set file name correctly.
21435
21436         * gnat_ug_*.texi: Add.
21437         * .cvsignore: Ignore generated Texinfo files.
21438
21439 2002-05-30  Zack Weinberg  <zack@codesourcery.com>
21440
21441         * ada.h: Add MI guard macro.
21442         (SUBTYPE): Define constants with an anonymous enum, not static
21443         const variables.
21444         (IN): Cast constants to appropriate type before use.
21445
21446 2002-05-26  Joseph S. Myers  <jsm28@cam.ac.uk>
21447
21448         * gnatvsn.ads (Gnat_Version_String): Change to "3.2 20020526
21449         (experimental)".
21450
21451 2002-05-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
21452
21453         * Make-lang.in (CP, ECHO): Copy from Makefile.in.
21454         (X_ADA_CFLAGS, T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS): Likewise.
21455         (ALL_ADAFLAGS, FORCE_DEBUG_ADAFLAGS, ADA_CFLAGS): Likewise.
21456         (ALL_ADA_CFLAGS): Likewise.
21457         (ADA_INCLUDES): Likewise.
21458         Adapt for new working dir.
21459         (GNATBIND): Use Makefile.in version.
21460         (.SUFFIXES): Copy from Makefile.in.
21461         (ada-warn): Define.
21462         (.adb.o, .ads.o): Copy from Makefile.in.
21463         Added $(OUTPUT_OPTION).
21464         (GNAT1_C_OBJS): Moved from Makefile.in.
21465         Prefix with ada subdir.
21466         (GNAT_ADA_OBJS, GNAT1_ADA_OBJS, GNAT1_OBJS, GNATBIND_OBJS): Likewise.
21467         (EXTRA_GNAT1_OBJS): Moved from Makefile.in.
21468         Adapt for new working dir.
21469         (EXTRA_GNATBIND_OBJS): Likewise.
21470         (ADA_BACKEND): Moved from Makefile.in.
21471         Renamed to avoid conflict with global BACKEND.
21472         Use that one.
21473         (TARGET_ADA_SRCS): Moved from Makefile.in.
21474         (gnat1$(exeext)): Replaced recursive rule with Makefile.in version.
21475         Use ADA_BACKEND.
21476         (gnatbind$(exeext)): Replaced recursive rule with Makefile.in version.
21477         (ada_extra_files): Moved from Makefile.in.
21478         Prefix with ada subdir.
21479         (ada/b_gnat1.c, ada/b_gnat1.o, ada/b_gnatb.c, ada/b_gnatb.o): Likewise.
21480         (ada/treeprs.ads, ada/einfo.h, ada/sinfo.h, ada/nmake.adb): Likewise.
21481         (ada/nmake.ads): Likewise.
21482         (update-sources): Moved from Makefile.in.
21483         Prefix with ada subdir.
21484         (ada/sdefault.adb, ada/stamp-sdefault, ada/sdefault.o): Likewise.
21485         (ADA_TREE_H): Likewise.
21486         (ada/a-except.o, ada/s-assert.o, ada/s-memory.o): Likewise.
21487         (ada/memtrack.o): Likewise.
21488         (ada/adadecode.o): Likewise.
21489         Update dependencies.
21490         (ada/adaint.o): New.
21491         (ada/argv.o): Moved from Makefile.in.
21492         Prefix with ada subdir.
21493         Update dependencies.
21494         (ada/cstreams.o, ada/exit.o, ada/final.o, ada/link.o): Likewise.
21495         (ada/cio.o, ada/init.o, ada/raise.o, ada/tracebak.o): Likewise.
21496         (ada/cuintp.o, ada/decl.o, ada/misc.o): Moved from Makefile.in.
21497         Prefix with ada subdir.
21498         (ada/targtyps.o, ada/trans.o, ada/utils.o, ada/utils2.o): Likewise.
21499         (GNAT DEPENDENCIES): Regenerate.
21500         * Makefile.in (MACHMODE_H, RTL_H, TREE_H): Removed, provided by
21501         toplevel Makefile.in.
21502         (EXTRA_GNAT1_OBJS, EXTRA_GNATBIND_OBJS): Removed.
21503         (TARGET_ADA_SRCS): Removed.
21504         (GNAT1_C_OBJS, GNAT_ADA_OBJS, GNAT1_ADA_OBJS, GNAT1_OBJS): Likewise.
21505         (GNATBIND_OBJS): Likewise.
21506         (ADA_INCLUDE_DIR, ADA_RTL_OBJ_DIR): Moved here.
21507         (BACKEND): Removed.
21508         (../gnat1$(exeext), ../gnatbind$(exeext)): Likewise.
21509         (TREE_H): Likewise.
21510         (ada_extra_files): Likewise.
21511         (b_gnat1.c, b_gnat1.o, b_gnatb.c, b_gnatb.o): Likewise.
21512         (treeprs.ads, einfo.h, sinfo.h, nmake.adb, nmake.ads): Likewise.
21513         (update-sources): Likewise.
21514         (sdefault.adb, stamp-sdefault, sdefault.o): Likewise
21515         (ADA_TREE_H): Likewise.
21516         (adadecoce.o): Likewise.
21517         (cuintp.o, decl.o, misc.o, trans.o, utils.o, utils2.o): Likewise.
21518         (GNAT DEPENDENCIES): Likewise.
21519
21520 2002-05-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
21521
21522         * Makefile.adalib: Allow for PWDCMD to override hardcoded pwd.
21523         * Makefile.in: Likewise.
21524
21525 2002-05-14  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
21526
21527         * Make-lang.in (gnat1$(exeext), gnatbind$(exeext), gnattools):
21528         Restore $(CONFIG_H) and prefix.o dependencies.
21529         (ada.stage[1-4]): Depend on stage?-start.
21530
21531         * Makefile.in (b_gnatb.c): Depend on interfac.o.
21532
21533 2002-05-02  Jim Wilson  <wilson@redhat.com>
21534
21535         * utils.c (finish_record_type): Change record_size to record_type.
21536
21537 2001-05-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
21538
21539         * ada/Makefile.in (X_ADA_CFLAGS, T_ADA_CFLAGS): New fragment overrides.
21540         (ALL_ADA_CFLAGS): Define.  Replace ADA_CFLAGS with ALL_ADA_CFLAGS in
21541         ALL_ADAFLAGS, MOST_ADAFLAGS, and all compilations using CC.
21542
21543 2002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>
21544
21545         * misc.c (gnat_parse_file): Update.
21546
21547 2002-04-24  Neil Booth  <neil@daikokuya.demon.co.uk>
21548
21549         * misc.c (gnat_init): Don't set lang_attribute_common.
21550
21551 2002-04-21  Joseph S. Myers  <jsm28@cam.ac.uk>
21552
21553         * gnat_rm.texi: Use @ifnottex instead of @ifinfo.
21554
21555 2002-04-21  Florian Weimer  <fw@deneb.enyo.de>
21556
21557         * gnat_ug.texi: New file.
21558
21559         * gnat_rm.texi: Do not include texiplus.texi.  Include fdl.texi
21560         instead of gfdl.texi
21561
21562         * xgnatug.adb, ug_words: New files.
21563
21564         * Makefile.in (doc, dvi): New targets.  Build gnat_ug_*,
21565         gnat_rm and gnat-style manuals.
21566
21567 2002-04-18  Neil Booth  <neil@daikokuya.demon.co.uk>
21568
21569         * gigi.h (incomplete_type_error): Remove.
21570         * utils.c (incomplete_type_error): Remove.
21571
21572 2002-04-16  Mark Mitchell  <mark@codesourcery.com>
21573
21574         * trans.c (tree_transform): Add has_scope argument to
21575         expand_start_stmt_expr.
21576
21577 2002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>
21578
21579         * gigi.h (truthvalue_conversion): Rename.
21580         * misc.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
21581         * trans.c (tree_transform): Update.
21582         * utils2.c (truthvalue_conversion): Rename, update.
21583         (build_binary_op, build_unary_op): Update.
21584
21585 2002-04-04  Laurent Guerby  <guerby@acm.org>
21586
21587         * make.adb: Implement -margs, remove restriction about file name placement.
21588         * makeusg.adb: Documentation update.
21589         * Makefile.in (TOOLS_FLAGS_TO_PASS): Add VPATH=$(fsrcdir).
21590         * Makefile.in (gnattools3): Comment out, gnatmem does not build without libaddr2line.
21591
21592 2002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>
21593
21594         * utils.c (create_subprog_decl): Use SET_DECL_ASSEMBLER_NAME.
21595         (builtin_function): Similarly.
21596
21597 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
21598
21599         * decl.c (gnat_to_gnu_entity): Update.
21600         * gigi.h (mark_addressable): Rename.
21601         * misc.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
21602         * trans.c (tree_transform): Update.
21603         * utils.c (create_var_decl): Update.
21604         * util2.c (build_binary_op, build_unary_op,
21605         fill_vms_descriptor): Update.
21606         (mark_addressable): Rename, update.
21607
21608 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
21609
21610         * gigi.h (unsigned_type, signed_type, signed_or_unsigned_type):
21611         Rename.
21612         * misc.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
21613         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
21614         * trans.c (tree_transform, convert_with_check): Update.
21615         * utils.c (unsigned_type, signed_type, signed_or_unsigned_type):
21616         Rename.
21617
21618 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
21619
21620         * gigi.h (finish_incomplete_decl): Rename.
21621         * misc.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL): Redefine.
21622         * utils.c (gnat_init_decl_processing): Don't set hook.
21623         (finish_incomplete_decl): Rename.
21624
21625 2002-03-29  Andreas Schwab  <schwab@suse.de>
21626
21627         * Makefile.in: Pass VPATH=$(fsrcdir) when calling make in rts
21628         directory.
21629
21630 2001-03-28  Robert Dewar <dewar@gnat.com>
21631
21632         * checks.ads:
21633         (Remove_Checks): New procedure
21634
21635         * checks.adb:
21636         (Remove_Checks): New procedure
21637
21638         * exp_util.adb:
21639         Use new Duplicate_Subexpr functions
21640         (Duplicate_Subexpr_No_Checks): New procedure
21641         (Duplicate_Subexpr_No_Checks_Orig): New procedure
21642         (Duplicate_Subexpr): Restore original form (checks duplicated)
21643         (Duplicate_Subexpr): Call Remove_Checks
21644
21645         * exp_util.ads:
21646         (Duplicate_Subexpr_No_Checks): New procedure
21647         (Duplicate_Subexpr_No_Checks_Orig): New procedure
21648         Add 2002 to copyright notice
21649
21650         * sem_util.adb: Use new Duplicate_Subexpr functions
21651
21652         * sem_eval.adb:
21653         (Eval_Indexed_Component): This is the place to call
21654         Constant_Array_Ref and to replace the value. We simply merge
21655         the code of this function in here, since it is now no longer
21656         used elsewhere. This fixes the problem of the back end not
21657         realizing we were clever enough to see that this was
21658         constant.
21659         (Expr_Val): Remove call to Constant_Array_Ref
21660         (Expr_Rep_Val): Remove call to Constant_Array_Ref
21661         Minor reformatting
21662         (Constant_Array_Ref): Deal with string literals (patch
21663         suggested by Zack Weinberg on the gcc list)
21664
21665 2001-03-28  Ed Schonberg <schonber@gnat.com>
21666
21667         * exp_util.adb: Duplicate_Subexpr_No_Checks_Orig =>
21668         Duplicate_Subexpr_Move_Checks.
21669
21670         * exp_util.ads: Duplicate_Subexpr_No_Checks_Orig =>
21671         Duplicate_Subexpr_Move_Checks.
21672
21673         * sem_eval.adb: (Constant_Array_Ref): Verify that constant
21674         value of array exists before retrieving it (it may a private
21675         protected component in a function).
21676
21677 2002-03-28   Geert Bosch <bosch@gnat.com>
21678
21679         * prj-pp.adb : New file.
21680
21681         * prj-pp.ads : New file.
21682
21683 2002-03-28  Andreas Jaeger  <aj@suse.de>
21684
21685         * Makefile.in (stamp-sdefault): Fix path for Makefile.
21686
21687 2002-03-28  Neil Booth  <neil@daikokuya.demon.co.uk>
21688
21689         * misc.c (gnat_expand_expr): Move prototype.
21690
21691 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
21692
21693         * misc.c (insert_default_attributes): Remove.
21694
21695 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
21696
21697         * misc.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
21698         (gnat_init): Don't set hook.
21699         (gnat_expand_expr): Fix prototype.
21700
21701 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
21702
21703         * misc.c (ggc_p): Remove.
21704
21705 2002-03-27  Geert Bosch  <bosch@gnat.com>
21706
21707         * prj-makr.ads, prj-makr.adb : New files.
21708
21709 2002-03-26  Neil Booth  <neil@daikokuya.demon.co.uk>
21710
21711         * misc.c (LANG_HOOKS_MARK_TREE): Redefine.
21712         (lang_mark_tree): Make static, rename.
21713
21714 2002-03-25  Neil Booth  <neil@daikokuya.demon.co.uk>
21715
21716         * misc.c (maybe_build_cleanup): Remove.
21717
21718 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
21719
21720         * gigi.h (yyparse): Remove.
21721
21722 2002-03-23  Florian Weimer  <fw@deneb.enyo.de>
21723
21724         * gnat_rm.texi: Sync with ACT version.
21725           (From Ben Brosgol <brosgol@gnat.com>)
21726
21727 2002-03-20  Neil Booth  <neil@daikokuya.demon.co.uk>
21728
21729         * misc.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
21730         (gnat_init): Remove old hook.
21731
21732 2002-03-17  Neil Booth  <neil@daikokuya.demon.co.uk>
21733
21734         * misc.c (LANG_HOOKS_PARSE_FILE): Redefine.
21735         (yyparse): Rename gnat_parse_file.
21736
21737 2002-03-14  Geoffrey Keating  <geoffk@redhat.com>
21738
21739         Delete all lines containing "$Revision:".
21740         * xeinfo.adb: Don't look for revision numbers.
21741         * xnmake.adb: Likewise.
21742         * xsinfo.adb: Likewise.
21743         * xsnames.adb: Likewise.
21744         * xtreeprs.adb: Likewise.
21745
21746 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21747
21748         * misc.c (gnat_tree_code_type, gnat_tree_code_length,
21749         gnat_tree_code_name): Delete.
21750         (tree_code_type, tree_code_length, tree_code_name): Define.
21751         (gnat_init): Don't try to copy into the various tree_code
21752         arrays.
21753
21754 2002-03-11  Richard Henderson  <rth@redhat.com>
21755
21756         * Makefile.in (.NOTPARALLEL): Add fake tag.
21757
21758 2002-03-07  Geert Bosch  <bosch@gnat.com>
21759
21760         * adadecode.c, adadecode.h, aux-io.c, s-traces.adb, s-traces.ads,
21761         s-tratas.adb, s-tratas.ads, sinput-d.adb, sinput-d.ads,
21762         switch-b.adb, switch-b.ads, switch-c.adb, switch-c.ads,
21763         switch-m.adb, switch-m.ads : New files.
21764
21765 2002-03-07  Geert Bosch  <bosch@gnat.com>
21766
21767         * 41intnam.ads, 42intnam.ads, 4aintnam.ads, 4cintnam.ads,
21768         4dintnam.ads, 4gintnam.ads, 4hintnam.ads, 4lintnam.ads,
21769         4mintnam.ads, 4pintnam.ads, 4rintnam.ads, 4sintnam.ads,
21770         4uintnam.ads, 4vcalend.adb, 4zintnam.ads, 52system.ads,
21771         5amastop.adb, 5asystem.ads, 5ataprop.adb, 5atpopsp.adb,
21772         5avxwork.ads, 5bosinte.adb, 5bsystem.ads, 5esystem.ads,
21773         5fsystem.ads, 5ftaprop.adb, 5ginterr.adb, 5gmastop.adb,
21774         5gsystem.ads, 5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads,
21775         5hparame.ads, 5hsystem.ads, 5htaprop.adb, 5htraceb.adb,
21776         5itaprop.adb, 5ksystem.ads, 5kvxwork.ads, 5lintman.adb,
21777         5lsystem.ads, 5mvxwork.ads, 5ninmaop.adb, 5nosinte.ads,
21778         5ntaprop.adb, 5ointerr.adb, 5omastop.adb, 5oosinte.adb,
21779         5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5pvxwork.ads,
21780         5qtaprop.adb, 5sintman.adb, 5ssystem.ads, 5staprop.adb,
21781         5stpopse.adb, 5svxwork.ads, 5tosinte.ads, 5uintman.adb,
21782         5vasthan.adb, 5vinmaop.adb, 5vinterr.adb, 5vintman.adb,
21783         5vmastop.adb, 5vparame.ads, 5vsystem.ads, 5vtaprop.adb,
21784         5vtpopde.adb, 5wmemory.adb, 5wsystem.ads, 5wtaprop.adb,
21785         5ysystem.ads, 5zinterr.adb, 5zintman.adb, 5zosinte.adb,
21786         5zosinte.ads, 5zsystem.ads, 5ztaprop.adb, 6vcpp.adb, 6vcstrea.adb,
21787         7sintman.adb, 7staprop.adb, 7stpopsp.adb, 9drpc.adb,
21788         Make-lang.in, Makefile.in, a-caldel.adb, a-comlin.ads,
21789         a-dynpri.adb, a-except.adb, a-except.ads, a-finali.adb,
21790         a-ncelfu.ads, a-reatim.adb, a-retide.adb, a-stream.ads,
21791         a-ststio.adb, a-ststio.ads, a-stwifi.adb, a-tags.adb, a-tasatt.adb,
21792         a-textio.adb, a-tideau.adb, a-tiflau.adb, a-tigeau.adb,
21793         a-tigeau.ads, a-tiinau.adb, a-timoau.adb, a-witeio.adb,
21794         a-wtdeau.adb, a-wtenau.adb, a-wtflau.adb, a-wtgeau.adb,
21795         a-wtgeau.ads, a-wtinau.adb, a-wtmoau.adb, ada-tree.def, ada-tree.h,
21796         adaint.c, adaint.h, ali-util.adb, ali.adb, ali.ads, atree.adb,
21797         atree.ads, atree.h, back_end.adb, bcheck.adb, bindgen.adb,
21798         bindusg.adb, checks.adb, comperr.adb, config-lang.in, csets.adb,
21799         csets.ads, cstand.adb, cstreams.c, debug.adb, debug.ads, decl.c,
21800         einfo.adb, einfo.ads, einfo.h, elists.h, errout.adb, errout.ads,
21801         eval_fat.adb, exp_aggr.adb, exp_attr.adb, exp_ch11.adb,
21802         exp_ch12.adb, exp_ch13.adb, exp_ch2.adb, exp_ch3.adb, exp_ch3.ads,
21803         exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch7.ads,
21804         exp_ch9.adb, exp_ch9.ads, exp_dbug.adb, exp_dbug.ads, exp_disp.ads,
21805         exp_dist.adb, exp_fixd.adb, exp_intr.adb, exp_pakd.adb,
21806         exp_prag.adb, exp_strm.adb, exp_util.adb, exp_util.ads,
21807         expander.adb, expect.c, fe.h, fmap.adb, fmap.ads, fname-uf.adb,
21808         freeze.adb, frontend.adb, g-awk.adb, g-cgideb.adb, g-comlin.adb,
21809         g-comlin.ads, g-debpoo.adb, g-dirope.adb, g-dirope.ads,
21810         g-dyntab.adb, g-expect.adb, g-expect.ads, g-io.ads, g-io_aux.adb,
21811         g-io_aux.ads, g-locfil.adb, g-locfil.ads, g-os_lib.adb,
21812         g-os_lib.ads, g-regexp.adb, g-regpat.adb, g-socket.adb,
21813         g-socket.ads, g-spipat.adb, g-table.adb, g-trasym.adb,
21814         g-trasym.ads, gigi.h, gmem.c, gnat1drv.adb, gnatbind.adb, gnatbl.c,
21815         gnatchop.adb, gnatcmd.adb, gnatdll.adb, gnatfind.adb, gnatlbr.adb,
21816         gnatlink.adb, gnatls.adb, gnatmem.adb, gnatprep.adb, gnatvsn.ads,
21817         gnatxref.adb, hlo.adb, hostparm.ads, i-cobol.adb, i-cpp.adb,
21818         i-cstrea.ads, i-cstrin.adb, i-pacdec.adb, i-vxwork.ads,
21819         impunit.adb, init.c, inline.adb, io-aux.c, layout.adb, lib-load.adb,
21820         lib-util.adb, lib-writ.adb, lib-writ.ads, lib-xref.adb,
21821         lib-xref.ads, lib.adb, lib.ads, make.adb, makeusg.adb, mdll.adb,
21822         memroot.adb, misc.c, mlib-tgt.adb, mlib-utl.adb, mlib-utl.ads,
21823         mlib.adb, namet.adb, namet.ads, namet.h, nlists.h, nmake.adb,
21824         nmake.ads, nmake.adt, opt.adb, opt.ads, osint.adb, osint.ads,
21825         output.adb, output.ads, par-ch2.adb, par-ch3.adb, par-ch5.adb,
21826         par-prag.adb, par-tchk.adb, par-util.adb, par.adb, prj-attr.adb,
21827         prj-dect.adb, prj-env.adb, prj-env.ads, prj-nmsc.adb, prj-part.adb,
21828         prj-proc.adb, prj-strt.adb, prj-tree.adb, prj-tree.ads, prj.adb,
21829         prj.ads, raise.c, raise.h, repinfo.adb, restrict.adb, restrict.ads,
21830         rident.ads, rtsfind.adb, rtsfind.ads, s-arit64.adb, s-asthan.adb,
21831         s-atacco.adb, s-atacco.ads, s-auxdec.adb, s-crc32.adb, s-crc32.ads,
21832         s-direio.adb, s-fatgen.adb, s-fileio.adb, s-finimp.adb,
21833         s-gloloc.adb, s-gloloc.ads, s-interr.adb, s-mastop.adb,
21834         s-mastop.ads, s-memory.adb, s-parame.ads, s-parint.adb,
21835         s-pooglo.adb, s-pooloc.adb, s-rpc.adb, s-secsta.adb, s-sequio.adb,
21836         s-shasto.adb, s-soflin.adb, s-soflin.ads, s-stache.adb,
21837         s-taasde.adb, s-taasde.ads, s-tadeca.adb, s-tadeca.ads,
21838         s-tadert.adb, s-tadert.ads, s-taenca.adb, s-taenca.ads,
21839         s-taprob.adb, s-taprop.ads, s-tarest.adb, s-tasdeb.adb,
21840         s-tasini.adb, s-tasini.ads, s-taskin.adb, s-taskin.ads,
21841         s-tasque.adb, s-tasque.ads, s-tasren.adb, s-tasren.ads,
21842         s-tassta.adb, s-tasuti.adb, s-tasuti.ads, s-tataat.adb,
21843         s-tataat.ads, s-tpoben.adb, s-tpoben.ads, s-tpobop.adb,
21844         s-tposen.adb, s-tposen.ads, s-traceb.adb, s-traceb.ads,
21845         s-unstyp.ads, s-widenu.adb, scn-nlit.adb, scn.adb, sem.adb,
21846         sem_aggr.adb, sem_attr.adb, sem_attr.ads, sem_case.adb,
21847         sem_ch10.adb, sem_ch11.adb, sem_ch11.ads, sem_ch12.adb,
21848         sem_ch13.adb, sem_ch13.ads, sem_ch2.adb, sem_ch3.adb, sem_ch3.ads,
21849         sem_ch4.adb, sem_ch5.adb, sem_ch6.adb, sem_ch6.ads, sem_ch7.adb,
21850         sem_ch8.adb, sem_ch8.ads, sem_ch9.adb, sem_disp.adb, sem_dist.adb,
21851         sem_elab.adb, sem_elim.adb, sem_elim.ads, sem_eval.adb,
21852         sem_intr.adb, sem_mech.adb, sem_prag.adb, sem_res.adb,
21853         sem_type.adb, sem_util.adb, sem_util.ads, sem_vfpt.adb,
21854         sem_warn.adb, sinfo.adb, sinfo.ads, sinfo.h, sinput-l.adb,
21855         sinput-l.ads, sinput.adb, sinput.ads, snames.adb, snames.ads,
21856         snames.h, sprint.adb, sprint.ads, stringt.adb, stringt.ads,
21857         stringt.h, style.adb, switch.adb, switch.ads, sysdep.c, system.ads,
21858         table.adb, targparm.adb, targparm.ads, targtyps.c, tbuild.adb,
21859         tbuild.ads, tracebak.c, trans.c, tree_gen.adb, tree_io.adb,
21860         treepr.adb, treepr.ads, treeprs.ads, treeprs.adt, ttypes.ads,
21861         types.adb, types.ads, types.h, uintp.ads, urealp.ads, usage.adb,
21862         utils.c, utils2.c, validsw.adb, xnmake.adb, xr_tabls.adb,
21863         xr_tabls.ads, xref_lib.adb, xref_lib.ads : Merge in ACT changes.
21864
21865         * 1ssecsta.adb, 1ssecsta.ads, a-chlat9.ads, a-cwila9.ads,
21866         g-enblsp.adb, g-md5.adb, g-md5.ads, gnatname.adb, gnatname.ads,
21867         mkdir.c, osint-b.adb, osint-b.ads, osint-c.adb, osint-c.ads,
21868         osint-l.adb, osint-l.ads, osint-m.adb, osint-m.ads : New files
21869
21870         * 3lsoccon.ads, 5qparame.ads, 5qvxwork.ads, 5smastop.adb,
21871         5zparame.ads, gnatmain.adb, gnatmain.ads, gnatpsys.adb : Removed
21872
21873         * mdllfile.adb, mdllfile.ads, mdlltool.adb, mdlltool.ads : Renamed
21874         to mdll-fil.ad[bs] and mdll-util.ad[bs]
21875
21876         * mdll-fil.adb, mdll-fil.ads, mdll-utl.adb, mdll-utl.ads : Renamed
21877         from mdllfile.ad[bs] and mdlltool.ad[bs]
21878
21879 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21880
21881         * utils.c (init_gnat_to_gnu, init_gigi_decls): Use ARRAY_SIZE in
21882         lieu of explicit sizeof/sizeof.
21883
21884 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
21885
21886         * misc.c (copy_lang_decl): Remove.
21887
21888 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
21889
21890         * misc.c: Delete traditional-mode-related code copied from the
21891         C front end but not used, or used only to permit the compiler
21892         to link.
21893
21894 2002-02-07  Richard Henderson  <rth@redhat.com>
21895
21896         * adaint.c (__gnat_to_gm_time): First arg is int, not time_t.
21897         * adaint.h (__gnat_to_gm_time): Update prototype.
21898
21899 2002-01-30  Richard Henderson  <rth@redhat.com>
21900
21901         * trans.c (tree_transform) [N_Loop_Statement]: Use
21902         expand_exit_loop_top_cond.
21903
21904 2001-12-23  Richard Henderson  <rth@redhat.com>
21905
21906         * utils.c (end_subprog_body): Push GC context around
21907         rest_of_compilation for nested functions.
21908
21909 2001-12-23  Richard Henderson  <rth@redhat.com>
21910
21911         * 5nosinte.ads: Get definition of "int" from Interfaces.C.
21912
21913 2001-12-23  Florian Weimer  <fw@deneb.enyo.de>
21914
21915         * gnat-style.texi (Declarations and Types): Remove ancient style
21916         rule which was mandated by code generation issues.
21917
21918         * gnat-style.texi (header): Add @dircategory, @direntry.
21919         (title page): Remove date.
21920         (general) Add @./@: where approriate, and two spaces after the
21921         full stop at the end of a sentence.  Use @samp markup when
21922         referring concrete lexical entities (keywords, attribute names
21923         etc.), and @syntax for ARM grammar elements. Use @r for English
21924         text in comments.  Use @emph for emphasis.  Change "if-statements"
21925         etc. to "if statements" (without @samp). Break long lines.  Make
21926         casing of section names consistent.
21927         (Identifiers): Use @samp markup for variable names.
21928         (Comments): Use @samp markup for comment characters. Line-end
21929         comments may follow any Ada code, not just statements.  Fix
21930         misspelling of "Integer" as "integer".
21931         (Loop statements): Do not use variable name "I", use "J".
21932         (Subprogram Declarations): Document alignment.
21933         (Subprogram Bodies, Block statements): Document empty line before
21934         "begin".
21935
21936 2001-12-22  Florian Weimer  <fw@deneb.enyo.de>
21937
21938         * make.adb (Add_Switch): Make Generic_Position a procedure.  The
21939         function approach did not work well because of a side effect (the
21940         function call could reallocate the table which was being indexed
21941         using its result). Fixes ada/4851.
21942
21943 2001-12-19  Robert Dewar <dewar@gnat.com>
21944
21945         * bindgen.adb: Minor reformatting
21946
21947         * cstand.adb: Minor reformatting
21948
21949         * fmap.adb: Minor reformatting
21950         Change name from Add for Add_To_File_Map (Add is much too generic)
21951         Change Path_Name_Of to Mapped_Path_Name
21952         Change File_Name_Of to Mapped_File_Name
21953         Fix copyright dates in header
21954
21955         * fmap.ads:
21956         Change name from Add for Add_To_File_Map (Add is much too generic)
21957         Change Path_Name_Of to Mapped_Path_Name
21958         Change File_Name_Of to Mapped_File_Name
21959         Fix copyright dates in header
21960
21961         * fname-uf.adb: Minor reformatting.  New names of stuff in Fmap.
21962         Add use clause for Fmap.
21963
21964         * make.adb: Minor reformatting
21965
21966         * osint.adb: Minor reformatting.  Change of names in Fmap.
21967         Add use clause for Fmap.
21968
21969         * prj-env.adb: Minor reformatting
21970
21971         * prj-env.ads: Minor reformatting
21972
21973         * switch.adb: Minor reformatting.  Do proper raise of Bad_Switch if
21974         error found (there were odd exceptions to this general rule in
21975         -gnatec/-gnatem processing)
21976
21977 2001-12-19  Olivier Hainque <hainque@gnat.com>
21978
21979         * raise.c (__gnat_eh_personality): Exception handling personality
21980         routine for Ada.  Still in rough state, inspired from the C++ version
21981         and still containing a bunch of debugging artifacts.
21982         (parse_lsda_header, get_ttype_entry): Local (static) helpers, also
21983         inspired from the C++ library.
21984
21985         * raise.c (eh_personality): Add comments. Part of work for the GCC 3
21986         exception handling integration.
21987
21988 2001-12-19  Arnaud Charlet <charlet@gnat.com>
21989
21990         * Makefile.in: Remove use of 5smastop.adb which is obsolete.
21991         (HIE_SOURCES): Add s-secsta.ad{s,b}.
21992         (HIE_OBJS): Add s-fat*.o
21993         (RAVEN_SOURCES): Remove files that are no longer required. Add
21994         interrupt handling files.
21995         (RAVEN_MOD): Removed, no longer needed.
21996
21997 2001-12-19  Robert Dewar <dewar@gnat.com>
21998
21999         * a-ngelfu.adb: Remove ??? comment for inappropriate Inline_Always
22000         Add 2001 to copyright date
22001
22002         * g-regpat.adb: Change pragma Inline_Always to Inline. There is no
22003         need to force universal inlining for these cases.
22004
22005 2001-12-19  Arnaud Charlet <charlet@gnat.com>
22006
22007         * s-taprob.adb: Minor clean ups so that this unit can be used in
22008         Ravenscar HI.
22009
22010         * exp_ch7.adb: Allow use of secondary stack in HI mode.
22011         Disallow it when pragma Restrictions (No_Secondary_Stack) is specified.
22012
22013 2001-12-19  Vincent Celier <celier@gnat.com>
22014
22015         * prj-tree.ads (Project_Node_Record): Add comments for components
22016         Pkg_Id and Case_Insensitive.
22017
22018 2001-12-19  Pascal Obry <obry@gnat.com>
22019
22020         * g-socket.adb: Minor reformatting. Found while reading code.
22021
22022 2001-12-19  Robert Dewar <dewar@gnat.com>
22023
22024         * prj-tree.ads: Minor reformatting
22025
22026 2001-12-20  Joseph S. Myers  <jsm28@cam.ac.uk>
22027
22028         * config-lang.in (diff_excludes): Remove.
22029
22030 2001-12-17  Ed Schonberg <schonber@gnat.com>
22031
22032         * sem_res.adb (Resolve_Selected_Component): do not generate a
22033         discriminant check if the selected component is a component of
22034         the argument of an initialization procedure.
22035
22036         * trans.c (tree_transform, case of arithmetic operators): If result
22037         type is private, the gnu_type is the base type of the full view,
22038         given that the full view itself may be a subtype.
22039
22040 2001-12-17  Robert Dewar <dewar@gnat.com>
22041
22042         * sem_res.adb: Minor reformatting
22043
22044         * trans.c (tree_transform, case N_Real_Literal): Add missing third
22045         parameter in call to Machine (unknown horrible effects from this
22046         omission).
22047
22048         * urealp.h: Add definition of Round_Even for call to Machine
22049         Add third parameter for Machine
22050
22051 2001-12-17  Ed Schonberg <schonber@gnat.com>
22052
22053         * sem_warn.adb (Check_One_Unit): Suppress warnings completely on
22054         predefined units in No_Run_Time mode.
22055
22056 2001-12-17  Richard Kenner <kenner@gnat.com>
22057
22058         * misc.c (insn-codes.h): Now include.
22059
22060 2001-12-17  Olivier Hainque <hainque@gnat.com>
22061
22062         * a-except.adb: Preparation work for future integration of the GCC 3
22063         exception handling mechanism
22064         (Notify_Handled_Exception, Notify_Unhandled_Exception): New routines
22065         to factorize previous code sequences and make them externally callable,
22066         e.g. for the Ada personality routine when the GCC 3 mechanism is used.
22067         (Propagate_Exception, Raise_Current_Excep, Raise_From_Signal_Handler):
22068         Use the new notification routines.
22069
22070 2001-12-17  Emmanuel Briot <briot@gnat.com>
22071
22072         * prj-tree.ads (First_Choice_Of): Document the when others case
22073
22074 2001-12-17  Arnaud Charlet <charlet@gnat.com>
22075
22076         * bindgen.adb (Gen_Ada_Init_*): Set priority of environment task in
22077         HI-E mode, in order to support Ravenscar profile properly.
22078
22079         * cstand.adb (Create_Standard): Duration is a 32 bit type in HI-E
22080         mode on 32 bits targets.
22081
22082 2001-12-17  Vincent Celier <celier@gnat.com>
22083
22084         * fmap.adb: Initial version.
22085
22086         * fmap.ads: Initial version.
22087
22088         * fname-uf.adb (Get_File_Name): Use mapping if unit name mapped.
22089         If search is successfully done, add to mapping.
22090
22091         * frontend.adb: Initialize the mapping if a -gnatem switch was used.
22092
22093         * make.adb:
22094         (Gnatmake): Add new local variable Mapping_File_Name.
22095          Create mapping file when using project file(s).
22096          Delete mapping file before exiting.
22097
22098         * opt.ads (Mapping_File_Name): New variable
22099
22100         * osint.adb (Find_File): Use path name found in mapping, if any.
22101
22102         * prj-env.adb (Create_Mapping_File): New procedure
22103
22104         * prj-env.ads (Create_Mapping_File): New procedure.
22105
22106         * switch.adb (Scan_Front_End_Switches): Add processing for -gnatem
22107         (Mapping_File)
22108
22109         * usage.adb: Add entry for new switch -gnatem.
22110
22111         * Makefile.in: Add dependencies for fmap.o.
22112
22113 2001-12-17  Ed Schonberg <schonber@gnat.com>
22114
22115         * sem_ch10.adb (Analyze_With_Clause): Retrieve proper entity when unit
22116         is a package instantiation rewritten as a package body.
22117         (Install_Withed_Unit): Undo previous change, now redundant.
22118
22119 2001-12-17  Gary Dismukes <dismukes@gnat.com>
22120
22121         * layout.adb:
22122         (Compute_Length): Move conversion to Unsigned to callers.
22123         (Get_Max_Size): Convert Len expression to Unsigned after calls to
22124         Compute_Length and Determine_Range.
22125         (Layout_Array_Type): Convert Len expression to Unsigned after calls to
22126         Compute_Length and Determine_Range.
22127         Above changes fix problem with length computation for supernull arrays
22128         where Max (Len, 0) wasn't getting applied due to the Unsigned
22129         conversion used by Compute_Length.
22130
22131 2001-12-17  Arnaud Charlet <charlet@gnat.com>
22132
22133         * rtsfind.ads:
22134         (OK_To_Use_In_No_Run_Time_Mode): Allow Ada.Exceptions and
22135          System.Secondary_Stack.
22136         (OK_To_Use_In_Ravenscar_Mode): New table needed to implement Ravenscar
22137          in HI-E mode.
22138         Remove unused entity RE_Exception_Data.
22139
22140         * rtsfind.adb (RTE): Allow Ravenscar Profile in HI mode.
22141
22142         * rident.ads (No_Secondary_Stack): New restriction.
22143
22144 2001-12-17  Joel Brobecker <brobecke@gnat.com>
22145
22146         * gnat_rm.texi: Fix minor typos. Found while reading the section
22147         regarding "Bit_Order Clauses" that was sent to a customer.
22148         Very interesting documentation!
22149
22150 2001-12-17  Robert Dewar <dewar@gnat.com>
22151
22152         * sem_case.adb (Choice_Image): Avoid creating improper character
22153         literal names by using the routine Set_Character_Literal_Name. This
22154         fixes bombs in certain error message cases.
22155
22156 2001-12-17  Arnaud Charlet <charlet@gnat.com>
22157
22158         * a-reatim.adb: Minor reformatting.
22159
22160 2001-12-17  Ed Schonberg <schonber@gnat.com>
22161
22162         * sem_ch12.adb (Validate_Derived_Type_Instance): Handle properly the
22163         case where the formal is an extension of another formal in the current
22164         unit or in a parent generic unit.
22165
22166 2001-12-17  Arnaud Charlet <charlet@gnat.com>
22167
22168         * s-tposen.adb: Update comments.  Minor reformatting.
22169         Minor code clean up.
22170
22171         * s-tarest.adb: Update comments.  Minor code reorganization.
22172
22173 2001-12-17  Gary Dismukes <dismukes@gnat.com>
22174
22175         * exp_attr.adb (Attribute_Tag): Suppress expansion of <type_name>'Tag
22176         when Java_VM.
22177
22178 2001-12-17  Robert Dewar <dewar@gnat.com>
22179
22180         * exp_attr.adb: Minor reformatting
22181
22182 2001-12-17  Ed Schonberg <schonber@gnat.com>
22183
22184         * sem_ch3.adb (Build_Derived_Private_Type): Refine check to handle
22185         derivations nested within a child unit: verify that the parent
22186         type is declared in an outer scope.
22187
22188 2001-12-17  Robert Dewar <dewar@gnat.com>
22189
22190         * sem_ch12.adb: Minor reformatting
22191
22192 2001-12-17  Ed Schonberg <schonber@gnat.com>
22193
22194         * sem_warn.adb (Check_One_Unit): In No_Run_Time mode, do not post
22195         warning if current unit is a predefined one, from which bodies may
22196         have been deleted.
22197
22198 2001-12-17  Robert Dewar <dewar@gnat.com>
22199
22200         * eval_fat.ads: Add comment that Round_Even is referenced in Ada code
22201         Fix header format. Add 2001 to copyright date.
22202
22203         * exp_dbug.adb (Get_Encoded_Name): Fix out of bounds reference,
22204         which caused CE during compilation if checks were enabled.
22205
22206 2001-12-17  Vincent Celier <celier@gnat.com>
22207
22208         * make.adb:
22209         (Switches_Of): New function
22210         (Test_If_Relative_Path): New procedure
22211         (Add_Switches): Use new function Switches_Of
22212         (Collect_Arguments_And_Compile): Use new function Switches_Of.
22213         When using a project file, test if there are any relative
22214         search path. Fail if there are any.
22215         (Gnatmake): Only add switches for the primary directory when not using
22216         a project file. When using a project file, change directory to the
22217         object directory of the main project file. When using a project file,
22218         test if there are any relative search path. Fail if there are any.
22219         When using a project file, fail if specified executable is relative
22220         path with directory information, and prepend executable, if not
22221         specified as an absolute path, with the exec directory.  Make sure
22222         that only one -o switch is transmitted to the linker.
22223
22224         * prj-attr.adb (Initialization_Data): Add project attribute Exec_Dir
22225
22226         * prj-nmsc.adb:
22227         (Ada_Check): Get Spec_Suffix_Loc and Impl_Suffix_Loc,
22228         when using a non standard naming scheme.
22229         (Check_Ada_Naming_Scheme): Make sure that error messages
22230         do not raise exceptions.
22231         (Is_Illegal_Append): Return True if there is no dot in the suffix.
22232         (Language_Independent_Check): Check the exec directory.
22233
22234         * prj.adb (Project_Empty): Add new component Exec_Directory
22235
22236         * prj.ads:
22237         (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Add defaults.
22238         (Project_Data): Add component Exec_Directory
22239
22240         * snames.adb: Updated to match snames.ads revision 1.215
22241
22242         * snames.ads: Added Exec_Dir
22243
22244 2001-12-17  Robert Dewar <dewar@gnat.com>
22245
22246         * make.adb: Minor reformatting
22247
22248         * prj-nmsc.adb: Minor reformatting
22249
22250         * snames.adb: Updated to match snames.ads
22251
22252         * snames.ads: Alphebetize entries for project file
22253
22254 2001-12-17  Ed Schonberg <schonber@gnat.com>
22255
22256         * trans.c (process_freeze_entity): Do nothing if the entity is a
22257         subprogram that was already elaborated.
22258
22259 2001-12-17  Richard Kenner <kenner@gnat.com>
22260
22261         * decl.c (gnat_to_gnu_entity, object): Do not back-annotate Alignment
22262         and Esize if object is referenced via pointer.
22263
22264 2001-12-17  Ed Schonberg <schonber@gnat.com>
22265
22266         * sem_ch3.adb (Analyze_Variant_Part): check that type of discriminant
22267         is discrete before analyzing choices.
22268
22269 2001-12-17  Joel Brobecker <brobecke@gnat.com>
22270
22271         * bindgen.adb (Gen_Output_File_Ada): Generate a new C-like string
22272         containing the name of the Ada Main Program. This string is mainly
22273         intended for the debugger.
22274         (Gen_Output_File_C): Do the equivalent change when generating a C file.
22275
22276 2001-12-17  Robert Dewar <dewar@gnat.com>
22277
22278         * ali.adb: Set new Dummy_Entry field in dependency entry
22279
22280         * ali.ads: Add Dummy_Entry field to source dependency table
22281
22282         * bcheck.adb (Check_Consistency): Ignore dummy D lines
22283
22284         * lib-writ.adb (Writ_ALI): Write dummy D lines for missing source files
22285
22286         * lib-writ.ads: Document dummy D lines for missing files.
22287
22288         * types.ads: (Dummy_Time_Stamp): New value for non-existant files
22289
22290 2001-12-17  Robert Dewar <dewar@gnat.com>
22291
22292         * ali.adb: Type reference does not reset current file.
22293
22294         * ali.adb: Recognize and scan renaming reference
22295
22296         * ali.ads: Add spec for storing renaming references.
22297
22298         * lib-xref.ads: Add documentation for handling of renaming references
22299
22300         * lib-xref.adb: Implement output of renaming reference.
22301
22302         * checks.adb:
22303         (Determine_Range): Document local variables
22304         (Determine_Range): Make sure Hbound is initialized. It looks as though
22305          there could be a real problem here with an uninitialized reference
22306          to Hbound, but no actual example of failure has been found.
22307
22308 2001-12-17  Laurent Pautet <pautet@gnat.com>
22309
22310         * g-socket.ads:
22311         Fix comment of Shutdown_Socket and Close_Socket. These functions
22312         should not fail silently because if they are called twice, this
22313         probably means that there is a race condition in the user program.
22314         Anyway, this behaviour is consistent with the rest of this unit.
22315         When an error occurs, an exception is raised with the error message
22316         as exception message.
22317
22318 2001-12-17  Robert Dewar <dewar@gnat.com>
22319
22320         * frontend.adb: Move call to Check_Unused_Withs from Frontend, so
22321         that it happens before modification of Sloc values for -gnatD.
22322
22323         * gnat1drv.adb: Move call to Check_Unused_Withs to Frontend,
22324         so that it happens before modification of Sloc values for -gnatD.
22325
22326         * switch.adb: Minor reformatting
22327
22328 2001-12-15  Richard Henderson  <rth@redhat.com>
22329
22330         * sem_ch7.adb: Wrap comment.
22331
22332 2001-12-16  Joseph S. Myers  <jsm28@cam.ac.uk>
22333
22334         * 5ataprop.adb, 5atpopsp.adb, 5ftaprop.adb, 5gmastop.adb,
22335         5gtaprop.adb, 5htaprop.adb, 5itaprop.adb, 5lintman.adb,
22336         5omastop.adb, 5oosinte.adb, 5otaprop.adb, 5staprop.adb,
22337         5vinterr.adb, 5vtaprop.adb, 5vtpopde.adb, 5wintman.adb,
22338         5wtaprop.adb, 5zinterr.adb, 5ztaprop.adb, 6vcstrea.adb,
22339         7sintman.adb, 7staprop.adb, 9drpc.adb, ChangeLog, Makefile.in,
22340         a-except.adb, a-tags.ads, a-tasatt.adb, a-teioed.adb,
22341         a-textio.ads, a-witeio.ads, a-wtedit.adb, ali.ads, comperr.adb,
22342         cstand.adb, einfo.ads, errout.adb, exp_ch11.adb, exp_ch2.adb,
22343         exp_ch3.adb, exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch9.adb,
22344         exp_util.adb, exp_util.ads, fname-uf.adb, g-cgi.ads, g-exctra.ads,
22345         g-expect.ads, g-regist.adb, g-spipat.adb, gnatchop.adb,
22346         gnatlink.adb, gnatls.adb, gnatmain.adb, gnatmem.adb, init.c,
22347         make.adb, make.ads, mdlltool.adb, nlists.ads, osint.ads,
22348         par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb, par.adb,
22349         repinfo.adb, s-fatflt.ads, s-fatlfl.ads, s-fatllf.ads,
22350         s-fatsfl.ads, s-finimp.adb, s-finimp.ads, s-interr.adb,
22351         s-secsta.ads, s-shasto.ads, s-stalib.adb, s-stalib.ads,
22352         s-tarest.ads, s-tasdeb.adb, s-tassta.adb, s-tassta.ads,
22353         s-vaflop.ads, scans.ads, scn.adb, sem.ads, sem_aggr.adb,
22354         sem_attr.adb, sem_case.ads, sem_ch10.adb, sem_ch12.adb,
22355         sem_ch13.adb, sem_ch3.adb, sem_ch3.ads, sem_ch5.adb, sem_ch7.adb,
22356         sem_ch8.adb, sem_ch8.ads, sem_type.adb, sem_util.ads, sinfo.ads,
22357         sprint.adb, tbuild.ads, types.ads, utils.c, xeinfo.adb: Fix
22358         spelling errors.
22359
22360 2001-12-14  Vincent Celier <celier@gnat.com>
22361
22362         * osint.adb(Create_Debug_File): When an object file is specified,
22363         put the .dg file in the same directory as the object file.
22364
22365 2001-12-14  Robert Dewar <dewar@gnat.com>
22366
22367         * osint.adb: Minor reformatting
22368
22369         * lib-xref.adb (Output_Instantiation): New procedure to generate
22370         instantiation references.
22371
22372         * lib-xref.ads: Add documentation of handling of generic references.
22373
22374         * ali.adb (Read_Instantiation_Ref): New procedure to read
22375         instantiation references
22376
22377         * ali.ads: Add spec for storing instantiation references
22378
22379         * bindusg.adb: Minor reformatting
22380
22381         * switch.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
22382
22383         * usage.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
22384
22385         * gnatcmd.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
22386
22387         * csets.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
22388
22389         * csets.ads:
22390         Fix header format
22391         Add 2001 to copyright date
22392         Add entry for Latin-5 (Cyrillic ISO-8859-5)
22393
22394 2001-12-14  Matt Gingell <gingell@gnat.com>
22395
22396         * adaint.c: mktemp is a macro on Lynx and can not be used as an
22397         expression.
22398
22399 2001-12-14  Richard Kenner <kenner@gnat.com>
22400
22401         * misc.c (gnat_expand_constant): Do not strip UNCHECKED_CONVERT_EXPR
22402         if operand is CONSTRUCTOR.
22403
22404 2001-12-14  Ed Schonberg <schonber@gnat.com>
22405
22406         * trans.c (tree_transform, case N_Assignment_Statement): Set lineno
22407         before emiting check on right-hand side, so that exception information
22408         is correct.
22409
22410 2001-12-14  Richard Kenner <kenner@gnat.com>
22411
22412         * utils.c (create_var_decl): Throw away initializing expression
22413         if just annotating types and non-constant.
22414
22415 2001-12-14  Vincent Celier <celier@gnat.com>
22416
22417         * prj-nmsc.adb: (Ada_Check): Migrate drom Ada_Default_... to
22418         Default_Ada_...
22419
22420         * prj.adb: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
22421         Remove functions.
22422         (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Move to spec.
22423
22424         * prj.ads: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
22425         Remove functions.
22426         (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Move from body.
22427
22428 2001-12-16  Joseph S. Myers  <jsm28@cam.ac.uk>
22429
22430         * ChangeLog: Remove piece of diff output.
22431
22432 2001-12-14  Geert Bosch <bosch@gnat.com>
22433
22434         * config-lang.in: Update copyright notice
22435
22436         * layout.adb: Remove commented out code.
22437
22438         * mdllfile.ads: Update copyright notice. Fix header format.
22439
22440         * sem_case.ads: Likewise.
22441
22442         * sem_ch3.adb: Minor reformatting.
22443
22444 2001-12-12  Geert Bosch <bosch@gnat.com>
22445
22446         * freeze.ads: Update copyright date.
22447
22448         * g-comlin.ads: Minor reformatting.
22449
22450         * gnat-style.texi: Fix typo.
22451
22452 2001-12-12  Geert Bosch <bosch@gnat.com>
22453
22454         *  einfo.h: Regenerate.
22455
22456 2001-12-12  Ed Schonberg <schonber@gnat.com>
22457
22458         * sem_ch12.adb (Save_Entity_Descendant): Use syntactic field names
22459         on known node types, rather than untyped fields. Further cleanups.
22460
22461 2001-12-12  Robert Dewar <dewar@gnat.com>
22462
22463         * sem_ch12.adb:
22464         (Save_Entity_Descendant): Minor comment update.
22465         (Copy_Generic_Node): Deal with incorrect reference to Associated_Node
22466          of an N_Attribute_Reference node. As per note below, this does not
22467         eliminate need for Associated_Node in attribute ref nodes.
22468         (Associated_Node): Documentation explicitly mentions attribute
22469         reference nodes, since this field is used in such nodes.
22470
22471         * sem_ch12.adb (Associated_Node): Minor documentation cleanup.
22472
22473 2001-12-12  Robert Dewar <dewar@gnat.com>
22474
22475         * s-stalib.adb: Add more comments on with statements being needed
22476
22477         * par-ch12.adb: Minor reformatting
22478
22479         * prj-dect.ads: Fix copyright header
22480
22481         * s-arit64.adb (Multiply_With_Ovflo_Check): Fix case where both
22482         inputs fit in 32 bits, but the result still overflows.
22483
22484         * s-fatgen.ads: Minor comment improvement
22485
22486 2001-12-12  Ed Schonberg <schonber@gnat.com>
22487
22488         * sem_ch4.adb (Analyze_Selected_Component): If the prefix is of a
22489         formal derived type, look for an inherited component from the full
22490         view of the parent, if any.
22491
22492 2001-12-12  Robert Dewar <dewar@gnat.com>
22493
22494         * checks.ads (Apply_Alignment_Check): New procedure.
22495
22496         * exp_ch13.adb (Expand_N_Freeze_Entity): Generate dynamic check to
22497         ensure that the alignment of objects with address clauses is
22498         appropriate, and raise PE if not.
22499
22500         * exp_util.ads (Must_Be_Aligned): Removed, replaced by
22501         Exp_Pakd.Known_Aligned_Enough
22502
22503         * mdllfile.ads: Minor reformatting
22504
22505         * mlib-fil.ads: Minor reformatting
22506
22507 2001-12-12  Ed Schonberg <schonber@gnat.com>
22508
22509         * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Extend previous
22510         fix to any component reference if enclosing record has non-standard
22511         representation.
22512
22513 2001-12-12  Vincent Celier <celier@gnat.com>
22514
22515         * g-dirope.ads (Find, Wildcard_Iterator): Moved to child package
22516         Iteration
22517
22518 2001-12-12  Ed Schonberg <schonber@gnat.com>
22519
22520         * freeze.ads: Make Freeze_Fixed_Point_Type visible, for use in
22521         sem_attr.
22522
22523 2001-12-12  Robert Dewar <dewar@gnat.com>
22524
22525         * impunit.adb: Add entry for GNAT.Directory_Operations.Iteration
22526
22527 2001-12-12  Emmanuel Briot <briot@gnat.com>
22528
22529         * g-regexp.adb: Remove all debug code, since it isn't required anymore,
22530         and it adds dependencies to system.io.
22531
22532 2001-12-12  Pascal Obry <obry@gnat.com>
22533
22534         * g-dirope.adb (Expand_Path.Var): Correctly detect end of
22535         variable name.
22536
22537 2001-12-11  Ed Schonberg <schonber@gnat.com>
22538
22539         * sem_ch10.adb (Install_Withed_Unit): If the unit is a generic instance
22540         that is the parent of other generics, the instance body replaces the
22541         instance node.  Retrieve the instance of the spec, which is the one
22542         that is visible in clients and within the body.
22543
22544 2001-12-11  Vincent Celier <celier@gnat.com>
22545
22546         * gnatmain.adb: Initial version.
22547
22548         * gnatmain.ads: Initial version.
22549
22550         * prj-attr.adb (Initialisation_Data): Add package Gnatstub.
22551
22552         * snames.adb: Updated to match snames.ads.
22553
22554         * snames.ads: Added Gnatstub.
22555
22556 2001-12-11  Vincent Celier <celier@gnat.com>
22557
22558         * prj-attr.adb (Initialization_Data): Change name from
22559         Initialisation_Data.
22560
22561 2001-12-11  Emmanuel Briot <briot@gnat.com>
22562
22563         * g-regpat.adb (Parse_Literal): Properly handle simple operators ?,
22564         + and * applied to backslashed expressions like \r.
22565
22566 2001-12-11  Vasiliy Fofanov <fofanov@gnat.com>
22567
22568         * g-os_lib.ads: String_List type added, Argument_List type is now
22569         subtype of String_List.
22570
22571 2001-12-11  Robert Dewar <dewar@gnat.com>
22572
22573         * g-os_lib.ads: Change copyright to FSF
22574         Add comments for String_List type
22575
22576 2001-12-11  Vincent Celier <celier@gnat.com>
22577
22578         * g-dirope.adb (Expand_Path): Fix bug. (wrong length when adding a
22579         string to the buffer).
22580
22581 2001-12-11  Ed Schonberg <schonber@gnat.com>
22582
22583         * freeze.adb: Make Freeze_Fixed_Point_Type visible, for use in
22584         sem_attr.
22585
22586         * sem_attr.adb: Simplify previous fix for Address.
22587         (Set_Bounds): If prefix is a non-frozen fixed-point type, freeze now,
22588         to avoid anomalies where the bound of the type appears to raise
22589         constraint error.
22590
22591 2001-12-11  Robert Dewar <dewar@gnat.com>
22592
22593         * lib-xref.adb (Output_Refs): Make sure pointers are always properly
22594         handled.
22595
22596 2001-12-11  Ed Schonberg <schonber@gnat.com>
22597
22598         * sem_ch12.adb (Analyze_Subprogram_Instantiation): Check for a
22599         renamed unit before checking for recursive instantiations.
22600
22601 2001-12-11  Emmanuel Briot <briot@gnat.com>
22602
22603         * prj.ads: Add comments for some of the fields.
22604
22605 2001-12-11  Robert Dewar <dewar@gnat.com>
22606
22607         * lib-xref.adb (Output_Refs): Don't output type references outside
22608         the main unit if they are not otherwise referenced.
22609
22610 2001-12-11  Ed Schonberg <schonber@gnat.com>
22611
22612         * sem_attr.adb (Analyze_attribute, case Address and Size): Simplify
22613         code and diagnose additional illegal uses
22614
22615         * sem_util.adb (Is_Object_Reference): An indexed component is an
22616         object only if the prefix is.
22617
22618 2001-12-11  Vincent Celier <celier@gnat.com>
22619
22620         * g-diopit.adb: Initial version.
22621
22622         * g-diopit.ads: Initial version.
22623
22624         * g-dirope.adb:
22625         (Expand_Path): Avoid use of Unbounded_String
22626         (Find, Wildcard_Iterator): Moved to child package Iteration
22627
22628         * Makefile.in: Added g-diopit.o to GNATRTL_NONTASKING_OBJS
22629
22630 2001-12-11  Robert Dewar <dewar@gnat.com>
22631
22632         * sem_attr.adb: Minor reformatting
22633
22634 2001-12-11  Ed Schonberg <schonber@gnat.com>
22635
22636         * sem_ch3.adb: Clarify some ???.
22637
22638 2001-12-11  Robert Dewar <dewar@gnat.com>
22639
22640         * exp_util.adb (Must_Be_Aligned): Removed, replaced by
22641         Exp_Pakd.Known_Aligned_Enough
22642
22643         * sem_ch13.adb (Check_Address_Alignment): Removed, extended
22644         version is moved to Exp_Ch13.
22645
22646 2001-12-11  Robert Dewar <dewar@gnat.com>
22647
22648         * einfo.ads: Minor reformatting
22649
22650         * exp_ch5.adb: Add comment for previous.change
22651
22652         * ali.adb: New interface for extended typeref stuff.
22653
22654         * ali.ads: New interface for typeref stuff.
22655
22656         * checks.adb (Apply_Alignment_Check): New procedure.
22657
22658         * debug.adb: Add -gnatdM for modified ALI output
22659
22660         * exp_pakd.adb (Known_Aligned_Enough): Replaces Known_Aligned_Enough.
22661
22662         * lib-xref.adb: Extend generation of <..> notation to cover
22663         subtype/object types. Note that this is a complete rewrite,
22664         getting rid of the very nasty quadratic algorithm previously
22665         used for derived type output.
22666
22667         * lib-xref.ads: Extend description of <..> notation to cover
22668         subtype/object types. Uses {..} for these other cases.
22669         Also use (..) for pointer types.
22670
22671         * sem_util.adb (Check_Potentially_Blocking_Operation): Slight cleanup.
22672
22673         * exp_pakd.adb: Minor reformatting.  Note that prevous RH should say:
22674         (Known_Aligned_Enough): Replaces Must_Be_Aligned.
22675
22676 2001-12-11  Vincent Celier <celier@gnat.com>
22677
22678         * gnatcmd.adb:
22679         Changed /COMPILE_ONLY to /ACTIONS=COMPILE
22680         Changed /BIND_ONLY to /ACTIONS=BIND
22681         Changed /LINK_ONLY to /ACTIONS=LINK
22682
22683 2001-12-11  Ed Schonberg  <schonber@gnat.com>
22684
22685         * sem_ch8.adb (Find_Selected_Component): improved search for a
22686         candidate package in case of error.
22687
22688         * sem_ch12.adb (Inline_Instance_Body): place head of use_clause
22689         chain back on scope stack before reinstalling use clauses.
22690
22691         * exp_ch5.adb (Expand_N_If_Statement): if Constant_Condition_Warnings
22692         is enabled, do not kill the code for the condition, to preserve
22693         warning.
22694
22695 2001-12-11  Robert Dewar <dewar@gnat.com>
22696
22697         * checks.adb (Insert_Valid_Check): Apply validity check to expression
22698         of conversion, not to result of conversion.
22699
22700 2001-12-11  Ed Schonberg <schonber@gnat.com>
22701
22702         * sem_ch3.adb (Build_Derived_Record_Type): set Controlled flag
22703         before freezing parent. If the declarations are mutually recursive,
22704         an access to the current record type may be frozen before the
22705         derivation is complete.
22706
22707 2001-12-05  Vincent Celier <celier@gnat.com>
22708
22709         * gnatcmd.adb: (MAKE): Add new translations: -b /BIND_ONLY,
22710         -c /COMPILE_ONLY, -l /LINK_ONLY
22711
22712         * opt.ads:
22713         (Bind_Only): New Flag
22714         (Link_Only): New flag
22715
22716         * switch.adb (Scan_Make_Switches): Add processing for -b (Bind_Only)
22717         and -l (Link_Only)
22718
22719         * makeusg.adb: Add new switches -b and -l. Update Copyright notice.
22720
22721         * make.adb:
22722         (Do_Compile_Step, Do_Bind_Step, Do_Link_Step): New flags.
22723         (Gnatmake): Set the step flags. Only perform a step if the
22724         corresponding step flag is True.
22725         (Scan_Make_Arg): Reset the bind and link step flags when -u
22726         or -gnatc has been specified.
22727
22728 2001-12-05  Ed Schonberg <schonber@gnat.com>
22729
22730         * sem_eval.adb (Eval_Concatenation): If left operand is a null string,
22731         get bounds from right operand.
22732
22733         * sem_eval.adb: Minor reformatting
22734
22735         * exp_util.adb (Make_Literal_Range): use bound of literal rather
22736         than Index'First, its lower bound may be different from 1.
22737
22738         * exp_util.adb: Undo earlier change, fixes ACVC regressions C48009B
22739         and C48009J
22740
22741 2001-12-05  Vincent Celier <celier@gnat.com>
22742
22743         * prj-nmsc.adb Minor reformatting
22744
22745         * prj-nmsc.adb (Language_Independent_Check): Reset Library flag if
22746         set and libraries are not supported.
22747
22748 2001-12-05  Ed Schonberg <schonber@gnat.com>
22749
22750         * sem_ch3.adb (Build_Derived_Private_Type): set Public status of
22751         private view explicitly, so the back-end can treat as a global
22752         when appropriate.
22753
22754 2001-12-05  Ed Schonberg <schonber@gnat.com>
22755
22756         * sem_ch12.adb (Instantiate_Package_Body): if instance is a compilation
22757          unit, always replace instance node with new body, for ASIS use.
22758
22759 2001-12-05  Vincent Celier <celier@gnat.com>
22760
22761         * prj-nmsc.adb (Language_Independent_Check): Issue a warning if
22762         libraries are not supported and both attributes Library_Name and
22763         Library_Dir are specified.
22764
22765         * prj-proc.adb (Expression): Set location of Result to location of
22766         first term.
22767
22768         * Makefile.in: Add mlib.o, mlib-fil.o, mlib-tgt and mlib-utl to GNATLS.
22769         (prj-nmsc is now importing MLib.Tgt)
22770
22771         * prj-proc.adb: Put the change indicated above that was forgotten.
22772
22773 2001-12-05  Robert Dewar <dewar@gnat.com>
22774
22775         * Makefile.in: Add dependencies for System.IO for GNAT.Regexp
22776
22777 2001-12-05  Ed Schonberg <schonber@gnat.com>
22778
22779         * sem_ch3.adb (Build_Derived_Concurrent_Type): If derivation imposes a
22780         constraint, introduce explicit subtype declaration and derive from it.
22781
22782         * sem_ch3.adb: Minor reformatting
22783
22784 2001-12-05  Robert Dewar <dewar@gnat.com>
22785
22786         * checks.adb (Determine_Range): Increase cache size for checks.
22787         Minor reformatting
22788
22789         * exp_ch6.adb: Minor reformatting
22790         (Expand_N_Subprogram_Body): Reset Is_Pure for any subprogram that has
22791         a parameter whose root type is System.Address, since treating such
22792         subprograms as pure in the code generator is almost surely a mistake
22793         that will lead to unexpected results.
22794
22795         * exp_util.adb (Remove_Side_Effects): Clean up old ??? comment and
22796         change handling of conversions.
22797
22798         * g-regexp.adb: Use System.IO instead of Ada.Text_IO.
22799
22800 2001-12-05  Ed Schonberg <schonber@gnat.com>
22801
22802         * sem_ch3.adb (Analyze_Object_Declaration): If expression is an
22803         aggregate with static wrong size, attach generated Raise node to
22804         declaration.
22805
22806 2001-12-05  Robert Dewar <dewar@gnat.com>
22807
22808         * sem_attr.adb (Analyze_Attribute): Defend against bad Val attribute.
22809         Fixes compilation abandoned bomb in B24009B.
22810
22811 2001-12-05  Ed Schonberg <schonber@gnat.com>
22812
22813         * sem_ch12.adb:
22814         Document use of Associated_Node on Selected_Components.
22815         (Save_Global_Operand_Descendants): Change to Save_Entity_Descendants,
22816         to clarify use of untyped descendant fields.
22817
22818 2001-12-05  Robert Dewar <dewar@gnat.com>
22819
22820         * prj-dect.ads: Add ??? comment
22821         Add 2001 to copyright notice (was not done in after all)
22822
22823         * prj-part.adb: Minor reformatting. Reword one awkward error message.
22824
22825         * prj.ads: Minor reformatting throughout, and add some ??? comments
22826
22827         * snames.ads: Minor reformatting
22828
22829 2001-12-05  Geert Bosch <bosch@gnat.com>
22830
22831         * snames.adb: Autoupdate
22832
22833 2001-12-05  Vincent Celier <celier@gnat.com>
22834
22835         * prj-dect.adb (Parse): Rename parameter Modifying to Extends.
22836
22837         * prj-dect.ads (Parse): Rename parameter Modifying to Extends.
22838
22839         * prj-env.adb: Minor comment changes (modifying -> extends).
22840
22841         * prj-nmsc.adb: Minor comment changes (modifying -> extends).
22842
22843         * prj-part.adb (Parse_Single_Project): Change Tok_Modifying to
22844         Tok_Extends.
22845
22846         * prj.adb (Initialize): Change Modifying to Extends.
22847
22848         * scans.ads (Token_Type): Change Tok_Modifying to Tok_Extends.
22849
22850         * prj.ads: Minor comment change (Modifying -> extending).
22851
22852         * snames.ads: Change modifying to extends.
22853
22854 2001-12-05  Robert Dewar <dewar@gnat.com>
22855
22856         * sem_warn.adb: Remove stuff for conditionals, we are not going to
22857         do this after all.
22858
22859         * sem_warn.ads: Remove stuff for conditionals, we are not going to
22860         do this after all.  Add 2001 to copyright notice
22861
22862 2001-12-04  Geert Bosch <bosch@gnat.com>
22863
22864         *  einfo.h, sinfo.h, treeprs.ads: Regenerate.
22865
22866 2001-12-04  Robert Dewar <dewar@gnat.com>
22867
22868         * errout.adb (Error_Msg): Ignore attempt to put error msg at junk
22869         location if we already have errors. Stops some cases of cascaded
22870         errors.
22871
22872         * errout.adb: Improve comment.
22873
22874 2001-12-04  Robert Dewar <dewar@gnat.com>
22875
22876         * sem_ch12.adb:
22877         (Analyze_Formal_Type_Definition): Defend against Error.
22878         (Analyze_Formal_Subprogram): Defend against Error.
22879
22880         * par-ch12.adb (F_Formal_Type_Declaration): In case of error,
22881         remove following semicolon if present. Removes cascaded error.
22882
22883 2001-12-04  Douglas B. Rupp <rupp@gnat.com>
22884
22885         * bindgen.adb:
22886         (Gen_Exception_Table_Ada): Write "begin" and then return if Num
22887          exceptions equals 0.
22888         (Gen_Exception_Table_C): Return if Num exceptions equals 0.
22889         Fixes PIWG E tests (which have to be run with -gnatL).
22890
22891 2001-12-04  Robert Dewar <dewar@gnat.com>
22892
22893         * einfo.ads: Minor reformatting
22894
22895 2001-12-04  Ed Schonberg <schonber@gnat.com>
22896
22897         * einfo.ads: Block_Node points to the identifier of the block, not to
22898         the block node itself, to preserve the link when the block is
22899         rewritten, e.g. within an if-statement with a static condition.
22900
22901         * inline.adb (Cleanup_Scopes): recover block statement from block
22902         entity using new meaning of Block_Node.
22903
22904         * sem_ch5.adb (Analyze_Block_Statement): set Block_Node to point to
22905         identifier of block node, rather than to node itself.
22906
22907 2001-12-04  Gary Dismukes <dismukes@gnat.com>
22908
22909         * layout.adb:
22910         (Get_Max_Size): Fix "start of processing" comment to say Get_Max_Size.
22911         (Discrimify): Go back to setting the Etypes of the selected component
22912         because the Vname component does not exist at this point and will
22913         fail name resolution. Also set Analyzed.
22914         Remove with and use of Sem_Res.
22915
22916 2001-12-04  Arnaud Charlet <charlet@gnat.com>
22917
22918         * Makefile.in: (HIE_SOURCES): add s-fat*.
22919
22920 2001-12-04  Robert Dewar <dewar@gnat.com>
22921
22922         * sem_attr.adb:
22923         (Compile_Time_Known_Attribute): New procedure.
22924         (Eval_Attribute, case Size): Use Compile_Time_Known_Attribute to ensure
22925          proper range check.
22926
22927 2001-12-04  Ed Schonberg <schonber@gnat.com>
22928
22929         * sem_ch7.adb (New_Private_Type): Set Is_Tagged_Type flag before
22930         processing discriminants to diagnose illegal default values.
22931
22932 2001-12-04  Ed Schonberg <schonber@gnat.com>
22933
22934         * sem_attr.adb (Resolve_Attribute): Handle properly an non-classwide
22935         access discriminant within a type extension that constrains its
22936         parent discriminants.
22937
22938 2001-12-04  Ed Schonberg <schonber@gnat.com>
22939
22940         * sem_ch3.adb (Find_Type_Of_Subtype_Indic): If subtype indication
22941         is malformed, use instance of Any_Id to allow analysis to proceed.
22942
22943         * par-ch12.adb (P_Formal_Type_Declaration): Propagate Error if
22944         type definition is illegal.
22945         (P_Formal_Derived_Type_Definition): Better recovery when TAGGED is
22946         misplaced.
22947
22948 2001-12-04  Ed Schonberg <schonber@gnat.com>
22949
22950         * sem_warn.adb (Output_Unreferenced_Messages): Extend previous fix to
22951         constants.
22952
22953 2001-12-04  Robert Dewar <dewar@gnat.com>
22954
22955         * errout.adb: Minor reformatting
22956
22957 2001-12-04  Robert Dewar <dewar@gnat.com>
22958
22959         * exp_util.adb: Minor reformatting from last change
22960
22961         * errout.adb (Check_For_Warning): For a Raised_Constraint_Error node
22962         which is a rewriting of an expression, traverse the original
22963         expression to remove warnings that may have been posted on it.
22964
22965 2001-12-04  Ed Schonberg <schonber@gnat.com>
22966
22967         * exp_util.adb (Must_Be_Aligned): Return false for a component of a
22968         record that has other packed components.
22969
22970 2001-12-04  Douglass B. Rupp <rupp@gnat.com>
22971
22972         * adaint.c: Minor cleanups.
22973
22974 2001-12-04  Douglass B. Rupp <rupp@gnat.com>
22975
22976         * adaint.c: Do not use utime.h on vxworks.
22977
22978 2001-12-04  Arnaud Charlet <charlet@gnat.com>
22979
22980         * Makefile.adalib: Clarify step 3 (use of gnat.adc) as it causes
22981         more confusion than it solves.
22982
22983 2001-12-04  Geert bosch <bosch@gnat.com>
22984
22985         * einfo.h, nmake.adb, nmake.ads, sinfo.h treeprs.ads: Regenerate.
22986
22987 2001-12-04  Geert Bosch  <bosch@gnat.com>
22988
22989         * Makefile.in (update-sources): New target.
22990         For use by gcc_release script.
22991
22992 2001-12-04  Ed Schonberg <schonber@gnat.com>
22993
22994         * sem_prag.adb (Analyze_Pragma, case Validity_Checks): do not treat as
22995         a configuration pragma, it is now legal wherever a pragma can appear.
22996
22997 2001-12-04  Zack Weinberg  <zack@codesourcery.com>
22998
22999         * Makefile.in: Don't set ALL.  Delete @cross_defines@,
23000         @cross_overrides@, @build_overrides@ stanzas.  INTERNAL_CFLAGS
23001         is now @CROSS@ -DIN_GCC; update comment.
23002
23003 2001-12-04  Robert Dewar <dewar@gnat.com>
23004
23005         * einfo.adb (Has_Pragma_Pure_Function): New flag.
23006         Fix problem that stopped ceinfo from working
23007
23008         * einfo.ads (Has_Pragma_Pure_Function): New flag.
23009
23010         * sem_prag.adb (Pure_Function): Set new flag Has_Pragma_Pure_Function.
23011
23012 2001-12-04  Douglas B. Rupp <rupp@gnat.com>
23013
23014         * gnatchop.adb:
23015         (File_Time_Stamp): New procedure.
23016         (Preserve_Mode): New boolean.
23017         (Write_Unit): Pass time stamp.
23018         Implement -p switch (preserve time stamps).
23019
23020         * gnatcmd.adb (CHOP): Add translation for -p (/PRESERVE).
23021
23022         * gnatchop.adb: Do usage info for -p switch
23023
23024         * adaint.h (__gnat_set_file_time_name): New function
23025
23026         * adaint.c (__gnat_set_file_time_name): Implement
23027
23028         * adaint.h: Fix typo
23029
23030 2001-12-03  Robert Dewar <dewar@gnat.com>
23031
23032         * sinfo.ads: Minor reformatting. N_Freeze_Entity node does not
23033         have Associated_Node.
23034
23035 2001-12-03  Robert Dewar <dewar@gnat.com>
23036
23037         * prj-proc.adb: Minor reformatting
23038
23039         * make.adb: Minor reformatting
23040
23041 2001-12-03  Geert Bosch <bosch@gnat.com>
23042
23043         * make.adb: Minor reformatting.
23044
23045 2001-12-03 Robert Dewar  <dewar@gnat.com>
23046
23047         * sem_ch12.adb: Minor reformatting
23048
23049 2001-12-03  Ed Schonberg <schonber@gnat.com>
23050
23051         * sem_ch12.adb (Inline_Instance_Body): Use Save_Scope_Stack and
23052         push Standard on the stack before analyzing the instance body,
23053         in order to have a clean visibility environment.
23054
23055         * sem_ch12.adb (Inline_Instance_Body): Remove redundant code.
23056
23057 2001-12-03  Ed Schonberg <schonber@gnat.com>
23058
23059         * sem_ch12.adb (Instantiate_Package_Body): Protect against double
23060         instantiation of a body that contains an inlined body.
23061
23062 2001-12-03  Ed Schonberg <schonber@gnat.com>
23063
23064         * sem_ch12.adb:
23065         (Analyze_generic_subprogram_Declaration): Set outer_generic_scope,
23066         to prevent freezing within formal packages.
23067         (Freeze_Subprogram_Body): If body comes from another instance that
23068         appeared before its own body, place freeze node at end of current
23069         declarative part, to prevent a back-end crash.
23070         (Inline_Instance_Body): Handle properly a package instance within
23071         a subprogram instance that is a child unit.
23072
23073 2001-12-01  Graham Stott  <grahams@redhat.com>
23074
23075         * Makefile.in (misc.o): Add missing $(srcdir) prefix
23076         and add optabs.h dependency.
23077
23078         * misc.c: Include optabs.h
23079         (gnat_tree_code_type): Make static and const.
23080         (gnat_tree_code_length): Likewise.
23081         (gnat_tree_code_name): Likewise.
23082         (update_setjmp_buf): Obtain operands mode from insn_data.
23083
23084 2001-11-29  Richard Henderson  <rth@redhat.com>
23085
23086         * init.c: Remove obsolete dwarf2 frame.h section.
23087
23088 2001-11-29  Joseph S. Myers  <jsm28@cam.ac.uk>
23089
23090         * Make-lang.in (ada.generated-manpages): New dummy target.
23091
23092 2001-11-29  Ed Schonberg <schonber@gnat.com>
23093
23094         * g-os_lib.adb (Add_To_Command): use explicit loop to move string
23095         into Command, an array conversion is illegal here. Uncovered by
23096         ACATS B460005.
23097
23098 2001-11-28  Geert Bosch <bosch@gnat.com>
23099
23100         * init.c: Minor whitespace changes.
23101
23102 2001-11-28  Doug Rupp <rupp@gnat.com>
23103
23104         * init.c: (__gnat_install_handler,VMS): Increase size of alternate
23105         signal stack.
23106
23107 2001-11-28  Zack Weinberg  <zack@codesourcery.com>
23108
23109         * misc.c (gnat_expand_constant): Move declaration above
23110         definition of lang_hooks.
23111         (LANG_HOOKS_EXPAND_CONSTANT): Set to gnat_expand_constant.
23112         (gnat_init): lang_expand_constant no longer exists.
23113
23114         (internal_error_function): Remove #ifdef HAVE_VPRINTF.  We
23115         always have vprintf.
23116         (gnat_init): Always call set_internal_error_function.
23117
23118 2001-11-27  Andreas Jaeger  <aj@suse.de>
23119
23120         * Makefile.in (stamp-tool_src_dir): Use symbolic link.
23121
23122 2001-11-27  Laurent Guerby  <guerby@acm.org>
23123
23124         * Makefile.in: Regenerate Ada dependencies.
23125
23126 2001-11-26  Richard Henderson  <rth@redhat.com>
23127
23128         * Make-lang.in (gnatbind, gnatmake, gnatbl, gnatchop, gnatcmd,
23129         gnatlink, gnatkr, gnatls, gnatmem, gnatprep, gnatpsta, gnatpsys,
23130         gnatxref, gnatfind, gnatlbr): Depend on CONFIG_H and prefix.o.
23131
23132 2001-11-25  Laurent Guerby  <guerby@acm.org>
23133
23134         * sysdep.c (rts_get_*): Fix style.
23135
23136 2001-11-19  Laurent Guerby  <guerby@acm.org>
23137
23138         * Makefile.in (INCLUDES_FOR_SUBDIR): Remove redundant system include
23139         since it is of no apparent use and cause warnings.
23140
23141 2001-11-18  Neil Booth  <neil@daikokuya.demon.co.uk>
23142
23143         * misc.c (gnat_decode_option, gnat_init_options): Make definitions
23144         static too.
23145         (gnat_init): Don't return NULL.
23146         (finish_parse): Remove.
23147
23148 2001-11-17  Laurent Guerby  <guerby@acm.org>
23149
23150         * Make-lang.in (GNATLIBFLAGS): Add -W -Wall.
23151         * gigi.h (init_decl_processing): Rename to gnat_init_decl_processing.
23152         * io-aux.c: Provide K&R prototypes to all functions, reformat code.
23153         * lang-spec.h: Add missing struct field to silence warnings.
23154         * sysdep.c (rts_get_*): Provide K&R prototype.
23155         * sysdep.c (Unlock_Task, Lock_Task): Move to K&R prototype.
23156         * traceback.c (Unlock_Task, Lock_Task): Likewise.
23157         * tracebak.c (__gnat_backtrace): Remove unused variable.
23158         * utils.c (end_subprog_body): Move to K&R style.
23159
23160 Thu Nov 15 18:16:17 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
23161
23162         * trans.c, utils2.c: Remove PALIGN parameter to get_inner_reference.
23163
23164 2001-11-15  Neil Booth  <neil@daikokuya.demon.co.uk>
23165
23166         * misc.c (gnat_init): Change prototype.  Include the
23167         functionality of the old init_parse and init_decl_processing.
23168         (gnat_init_decl_processing): New prototype.
23169         (init_parse): Remove.
23170         * utils.c (init_decl_processing): Rename gnat_init_decl_processing.
23171
23172 2001-11-09  Neil Booth  <neil@daikokuya.demon.co.uk>
23173
23174         * misc.c (gnat_print_decl, gnat_print_type): Renamed.
23175         (LANG_HOOKS_PRINT_DECL, LANG_HOOKS_PRINT_TYPE): Override.
23176         (print_lang_statistics, lang_print_xnode, print_lang_identifier,
23177         set_yydebug): Remove.
23178
23179 2001-11-09  Neil Booth  <neil@daikokuya.demon.co.uk>
23180
23181         * misc.c (LANG_HOOKS_NAME, LANG_HOOKS_IDENTIFIER_SIZE): Override.
23182         (struct lang_hooks): Constify.
23183         (language_string, lang_identify): Remove.
23184         * utils.c (init_decl_processing): Update.
23185
23186 2001-11-06  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
23187
23188         * misc.c: Include langhooks-def.h.
23189         * Makefile.in: Update.
23190
23191 2001-10-30  Robert Dewar <dewar@gnat.com>
23192
23193         * style.adb:
23194         (Check_Identifier): Rewrite circuit to be compatible with use of letters
23195         in the upper half of ASCII.
23196         (Check_Identifier): Minor reformatting
23197
23198 2001-10-30  Geert Bosch <bosch@gnat.com>
23199
23200         * (Associated_Node, Set_Associated_Node): Do not check for
23201         Freeze_Entity.
23202
23203 2001-10-30  Robert Dewar <dewar@gnat.com>
23204
23205         * a-reatim.ads: Minor reformatting
23206
23207 2001-10-30  Robert Dewar <dewar@gnat.com>
23208
23209         * gnatdll.adb: Minor reformatting throughout. Many ??? added for
23210         undocumented declarations.
23211
23212 2001-10-30  Pascal Obry <obry@gnat.com>
23213
23214         * gnatdll.adb (Parse_Command_Line): handle -g option to be passed
23215         to the binder and linker.
23216         Minor style fix.
23217
23218         * mdll.ads: Fix layout.  Update copyright notice.
23219
23220         * mdll.adb: Fix layout.  Update copyright notice.
23221
23222 2001-10-30  Robert Dewar <dewar@gnat.com>
23223
23224         * usage.adb: Minor fix to output for -gnaty.
23225
23226 2001-10-30  Ed Schonberg <schonber@gnat.com>
23227
23228         * a-reatim.ads: Makes Seconds_Count into a 64-bit integer,
23229         to accommodate all its possible values.
23230
23231         * a-reatim.adb (Split): Special-case handling of Time_Span_First
23232         and of small absolute values of T.
23233
23234 2001-10-30  Richard Kenner <kenner@gnat.com>
23235
23236         * misc.c (gnat_expand_expr, case NULL_EXPR): Remove call to
23237         set_mem_attributes since not needed and wrong if RESULT if a REG;
23238         fixes ACATS failures.
23239
23240 2001-10-30  Geert Bosch <bosch@gnat.com>
23241
23242         * 86numaux.adb, a-tigeau.ads, a-wtgeau.ads, fname-sf.ads, g-traceb.ads,
23243         s-tasdeb.ads, sem_maps.ads: Add 2001 to copyright notice.
23244
23245 2001-10-30  Robert Dewar <dewar@gnat.com>
23246
23247         * bindusg.adb: Undocument -f switch.
23248
23249         * gnatcmd.adb: Remove /FULL_ELABORATION.
23250
23251         * opt.ads (Force_RM_Elaboration_Order): Document that this is
23252         obsolescent.
23253
23254         * gnatbind.adb: Output new warning for use of obsolescent -f switch.
23255
23256         * gnatbind.adb: Minor update of warning msg.
23257
23258 2001-10-30  Vincent Celier <celier@gnat.com>
23259
23260         * gnatcmd.adb (MAKE, BIND, LINK, LIST, FIND, XREF): Add translations
23261         for project file switches (-P (/PROJECT_FILE=),
23262          -X (/EXTERNAL_REFERENCE=) and -vPx (/PROJECT_FILE_VERBOSITY=DEFAULT
23263         or MEDIUM or HIGH)
23264
23265 2001-10-30  Geert Bosch <bosch@gnat.com>
23266
23267         * decl.c: Minor whitespace fixes.
23268
23269 2001-10-30  Richard Kenner <kenner@gnat.com>
23270
23271         * utils2.c (build_allocator): Test for SIZE overflow in array case too
23272
23273 2001-10-30  Geert Bosch <bosch@gnat.com>
23274
23275         * ali-util.adb (Initialize_Checksum): Use out-mode instead of in out.
23276         Found due to GCC 3.0 warning of using uninitialized value.
23277
23278         * layout.adb:
23279         (Get_Max_Size): Use variant record for tracking value/expression.
23280          Makes logic clearer and prevents warnings for uninitialized variables.
23281         (Layout_Array_Type): Use variant record for tracking value/expression.
23282          Makes logic clearer and prevents warnings for uninitialized variables.
23283
23284 2001-10-30  Robert Dewar <dewar@gnat.com>
23285
23286         * lib.adb: Minor reformatting
23287
23288         * s-taprop.ads: Minor reformatting
23289
23290 2001-10-29  Laurent Guerby  <guerby@acm.org>
23291
23292         * init.c:
23293         (Raise_From_Signal_Handler, Propagate_Signal_Exception): Make arg
23294         const.
23295         (_gnat_error_handler): Make MSG const.
23296
23297 2001-10-29  Richard Kenner <kenner@gnat.com>
23298
23299         * sysdep.c: Fix localtime_r problem on LynxOS.
23300         Also remove #elif to avoid warnings.
23301
23302         * misc.c (yyparse): Don't set up and register jmpbuf; remove decls
23303         used by this.
23304
23305         * decl.c (annotate_value): Make SIZE unsigned to avoid warning.
23306
23307 2001-10-28  Joseph S. Myers  <jsm28@cam.ac.uk>
23308
23309         * 86numaux.adb, a-tigeau.ads, a-wtgeau.ads, decl.c, exp_ch6.adb,
23310         exp_ch9.adb, exp_util.adb, fname-sf.ads, freeze.ads, g-awk.adb,
23311         g-comlin.ads, g-dirope.adb, g-dyntab.ads, g-socket.ads,
23312         g-table.ads, g-traceb.ads, gnat-style.texi, gnatchop.adb, init.c,
23313         layout.adb, layout.ads, mdllfile.ads, mlib-fil.ads, osint.ads,
23314         s-fatgen.adb, s-imgrea.adb, s-taprop.ads, s-tasdeb.ads,
23315         sem_aggr.adb, sem_attr.adb, sem_case.ads, sem_ch13.adb,
23316         sem_ch3.adb, sem_elab.adb, sem_maps.ads, sem_res.adb,
23317         sem_util.ads, sinfo.ads, sinput.ads, table.adb, table.ads,
23318         types.ads, urealp.adb: Fix spelling errors.
23319
23320 2001-10-27  Laurent Guerby <guerby@acm.org>
23321
23322         * trans.c (gigi): Fix non determinism leading to bootstrap
23323         comparison failures for debugging information.
23324
23325 2001-10-26  Florian Weimer  <fw@deneb.enyo.de>
23326
23327         * gnat_rm.texi: Use @./@: where appropriate.
23328
23329 2001-10-26  Robert Dewar <dewar@gnat.com>
23330
23331         * sinfo.adb: Define Associated_Node to overlap Entity field. Cleanup.
23332
23333 2001-10-26  Richard Kenner <kenner@gnat.com>
23334
23335         * gmem.c (__gnat_gmem_read_next): Properly check for EOF
23336
23337 2001-10-26  Richard Kenner <kenner@gnat.com>
23338
23339         * decl.c (validate_size): Modify message for bad size to avoid
23340         implication that compiler is modifying the size.
23341
23342 2001-10-26  Robert Dewar <dewar@gnat.com>
23343
23344         * prj-util.adb: Minor reformatting. Fix bad header format.
23345
23346 2001-10-26  Robert Dewar <dewar@gnat.com>
23347
23348         * sinfo.ads: Define Associated_Node to overlap Entity field. Cleanup.
23349
23350         * sinfo.ads: Clarify use of Associated_Node (documentation only).
23351
23352         * sem_ch12.adb: Change Node4 to Associated_Node. Change
23353         Associated_Node to Get_Associated_Node. Put use of Unchecked_Access
23354         much more narrowly in places where needed. These are cleanups.
23355
23356 2001-10-26  Joel Brobecker <brobecke@gnat.com>
23357
23358         * 5zosinte.ads (null_pthread): new constant.
23359
23360         * 5ztaprop.adb:
23361         (Initialize_TCB): Initialize thread ID to null, to be able to verify
23362          later that this field has been set.
23363         (Finalize_TCB): ditto.
23364         (Suspend_Task): Verify that the thread ID is not null before using it.
23365         (Resume_Task): ditto.
23366
23367         * s-tasdeb.adb:
23368         (Resume_All_Tasks): Lock the tasks list before using it.
23369         (Suspend_All_Tasks): ditto.
23370
23371 2001-10-26  Richard Kenner <kenner@gnat.com>
23372
23373         * decl.c (gnat_to_gnu_entity, case E_General_Access_Type):
23374         Make constant variant of designated type for Is_Access_Constant.
23375         Call update_pointer_to with main variant.
23376
23377         * trans.c (process_freeze_entity, process_type):
23378         Call update_pointer_to on main variant.
23379
23380         * utils.c (update_pointer_to): Make corresponding variant for NEW_TYPE.
23381         If main variant, update all other variants.
23382
23383         * utils2.c (build_unary_op, case INDIRECT_REF): No longer set
23384         TREE_STATIC.
23385
23386 2001-10-26  Robert Dewar <dewar@gnat.com>
23387
23388         * prj-util.adb: Minor reformatting
23389
23390 2001-10-26  Robert Dewar <dewar@gnat.com>
23391
23392         * prj-util.adb: Minor reformatting
23393
23394 2001-10-26  Robert Dewar <dewar@gnat.com>
23395
23396         * prj-attr.adb: Minor reformatting throughout
23397
23398 2001-10-26  Robert Dewar <dewar@gnat.com>
23399
23400         * prj-attr.ads: Minor reformatting
23401         Add ??? comment (this whole spec has almost no comments)
23402
23403 2001-10-26  Vincent Celier <celier@gnat.com>
23404
23405         * g-os_lib.adb (Normalize_Pathname): Preserve the double slash
23406         ("//") that precede the drive letter on Interix.
23407
23408 2001-10-26  Geert Bosch <bosch@gnat.com>
23409
23410         * gnat_rm.texi: Add GNAT Reference Manual.
23411
23412 2001-10-25  Robert Dewar <dewar@gnat.com>
23413
23414         * sem_ch8.adb (Analyze_Package_Renaming): Skip analysis if Name
23415         is Error. Similar change for other renaming cases.
23416
23417 2001-10-25  Robert Dewar <dewar@gnat.com>
23418
23419         * s-atacco.ads: Add pragma Inline_Always for functions.
23420         Fix header format. Add copyright 2001
23421
23422 2001-10-25  Ed Schonberg <schonber@gnat.com>
23423
23424         * par-ch3.adb (P_Subtype_Mark_Resync): for an anonymous array
23425         return Error rather than Empty so that analysis can proceed.
23426
23427 2001-10-25  Ed Schonberg <schonber@gnat.com>
23428
23429         * sem_util.adb (Enter_Name): better handling of cascaded error
23430         messages when a unit appears in its own context.
23431
23432 2001-10-25  Ed Schonberg <schonber@gnat.com>
23433
23434         * sem_util.adb (Defining_Entity): in case of error, attach created
23435         entity to specification, so that semantic analysis can proceed.
23436
23437 2001-10-25  Robert Dewar <dewar@gnat.com>
23438
23439         * sem_util.adb
23440         (Defining_Entity): Deal with Error.
23441         (Process_End_Label): Deal with bad end label for.
23442
23443 2001-10-25  Ed Schonberg <schonber@gnat.com>
23444
23445         * sem_elab.adb (Check_A_Call): refine message when call is in an
23446         instance but callee is not declared in the generic unit.
23447
23448 2001-10-25  Ed Schonberg <schonber@gnat.com>
23449
23450         * sem_elab.adb (Check_A_Call): check for renaming before finding the
23451         enclosing unit, which may already be different from the calling unit.
23452
23453 2001-10-25  Geert Bosch <bosch@gnat.com>
23454
23455         * 4gintnam.ads: fix header format.
23456
23457 2001-10-25  Ed Schonberg <schonber@gnat.com>
23458
23459         * sem_res.adb (Resolve_Call): if the call is actually an indexing
23460         operation on the result of a parameterless call, perform elaboration
23461         check after the node has been properly rewritten.
23462
23463         * sem_ch12.adb (Copy_Generic_Node): after the proper body has been
23464         inlined within the generic tree, the defining identifier is not a
23465         compilation_unit.
23466
23467 2001-10-25  Ed Schonberg <schonber@gnat.com>
23468
23469         * sem_res.adb (Resolve): special-case resolution of Null in an
23470          instance or an inlined body to avoid view conflicts.
23471
23472         * sem_ch12.adb (Copy_Generic_Node): for allocators, check for view
23473          compatibility by retrieving the access type of the generic copy.
23474
23475 2001-10-25  Robert Dewar <dewar@gnat.com>
23476
23477         * sem_ch3.adb:
23478         (Analyze_Number_Declaration): Handle error expression.
23479         (Signed_Integer_Type_Declaration): Handle error bound.
23480         (Analyze_Subtype_Indication): Handle error range.
23481
23482         * sem_util.adb (Get_Index_Bounds): Check for Error.
23483
23484 2001-10-25  Robert Dewar <dewar@gnat.com>
23485
23486         * restrict.adb (Set_No_Run_Time_Mode): Set Discard_Names as default
23487         in no run time mode.
23488
23489 2001-10-25  Pascal Obry <obry@gnat.com>
23490
23491         * gnatmem.adb (Read_Next): fix Curs2 value to properly handle quiet
23492         mode case for ALLOC case.
23493
23494         * gnatmem.adb (Read_Next): correctly fix parsing in Quiet mode on
23495         all platforms. Improvement of last change.
23496
23497 2001-10-25  Robert Dewar <dewar@gnat.com>
23498
23499         * exp_ch4.adb (Expand_N_Allocator): Minor reformatting.
23500
23501 2001-10-25  Geert Bosch  <bosch@gnat.com>
23502
23503         * osint.adb (Is_Relative): Remove duplicate.
23504
23505 2001-10-25  Pascal Obry <obry@gnat.com>
23506
23507         * osint.adb (Read_Default_Search_Dirs): correctly detect relative
23508         pathnames in UNIX and DOS style with drive letter.
23509         (Is_Relative): new routine.
23510
23511         * osint.adb: Minor reformatting
23512
23513         * osint.adb (Is_Relative): implementation using
23514         GNAT.OS_Lib.Is_Absolute_Path. Better fix.
23515
23516 2001-10-25  Pascal Obry <obry@gnat.com>
23517
23518         * g-dirope.adb (Basename): correctly compute offset between the
23519         original Path and the translated one.
23520
23521         * g-dirope.adb: (Base_Name): add some comments.
23522
23523 2001-10-25  Robert Dewar <dewar@gnat.com>
23524
23525         * exp_imgv.adb (Expand_Image_Attribute): Defend against bad use
23526         in HIE mode, avoids compilation abandoned message
23527
23528         * exp_imgv.adb: Correct typo in previous change
23529
23530         * exp_imgv.adb: Correct typo in previous change (not my day!)
23531
23532 2001-10-25  Robert Dewar <dewar@gnat.com>
23533
23534         * s-tpinop.ads: Add 2001 to copyright notice. Fix header format.
23535
23536 2001-10-25  Pascal Obry <obry@gnat.com>
23537
23538         * g-awk.ads: Move all pragma inlines next to the routine
23539          declarations. This is more uniform with other GNAT spec.
23540
23541 2001-10-22  Geert Bosch  <bosch@gnat.com>
23542
23543         * Make-lang.in (gnattools, cross-gnattools): Remove gnatmem.
23544
23545 2001-10-19  Geert Bosch  <bosch@gnat.com>
23546
23547         * Makefile.in (tools, gnattools): Remove gnatmem.
23548
23549 2001-10-17  Richard Henderson  <rth@redhat.com>
23550
23551         * Makefile.in (misc.o): Depend on langhooks.h.
23552         * misc.c: Include it.
23553         (LANG_HOOKS_INIT, LANG_HOOKS_INIT_OPTIONS): New.
23554         (LANG_HOOKS_DECODE_OPTION): New.
23555         (lang_hooks): Use LANG_HOOKS_INITIALIZER.
23556
23557 2001-10-16  Florian Weimer  <fw@deneb.enyo.de>
23558
23559         * trans.c (tree_transform): Adjust to recent change in
23560         expand_asm_operands to implement named asm operands.
23561
23562 2001-10-11  Ed Schonberg  <schonber@gnat.com>
23563
23564         * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Bugfix in
23565         renaming of discriminant for mutable record type.
23566
23567 2001-10-11  Robert Dewar  <dewar@gnat.com>
23568
23569         * validsw.adb: Properly save -gnatVn status.
23570
23571 2001-10-11  Robert Dewar <dewar@gnat.com>
23572
23573         * usage.adb: Add lines for V switch.
23574
23575         * gnatcmd.adb (COMPILE): Revise translations for -gnatV
23576         (/VALIDITY_CHECKING).
23577
23578 2001-10-11  Ed Schonberg <schonber@gnat.com>
23579
23580         * sem_type.adb (Add_One_Interp): an operator for a type declared in
23581         an extension of System is known to be visible.
23582
23583 2001-10-11  Ed Schonberg <schonber@gnat.com>
23584
23585         * sem_eval.adb (Compare_Fixup): get the bounds of a String_Literal
23586         properly. Fixes regression on ACATS C34005G.
23587
23588 2001-10-11  Robert Dewar <dewar@gnat.com>
23589
23590         * sem_ch5.adb (Analyze_Iteration_Scheme): Suppress warning on null
23591         loop in generic instance, since this is likely not very useful.
23592
23593 2001-10-11  Robert Dewar <dewar@gnat.com>
23594
23595         * restrict.adb (Disallow in No_Run_Time_Mode): Properly specialize
23596         the error message for high integrity mode.
23597
23598         * rtsfind.adb (RTE): Give message if we try to find an entity that
23599         is not available in high integrity mode.
23600
23601         * rtsfind.ads:
23602         (OK_To_Use_In_HIE_Mode): New array.
23603         (RTE): May return Empty in high integrity mode.
23604
23605         * rtsfind.ads (OK_To_Use_In_No_Run_Time_Mode): New name for
23606         OK_To_Use_In_HIE_Mode, now includes System_FAT_xxx.
23607
23608         * sem_ch6.adb (Analyze_Subprogram_Body): Kill body in predefined
23609         unit if not inlined always and in no runtime mode. Fixes problem
23610         caused by new Rtsfind changes.
23611
23612         * sem_ch6.adb (Analyze_Subrogram_Body): Do not Check_References if
23613         body is deleted.
23614
23615         * rtsfind.adb (RTE): Make sure we do not try to load unit after
23616         giving message for entity not available in high integrity mode.
23617
23618 2001-10-11  Pascal Obry <obry@gnat.com>
23619
23620         * impunit.adb: Add GNAT.CRC32.
23621
23622 2001-10-11  Ed Schonberg <schonber@gnat.com>
23623
23624         * exp_fixd.adb (Expand_Multiply_Fixed_By_Fixed_Giving_Fixed): handle
23625         properly the case where one universal operand in a non-static
23626         exponentiation of a real literal.
23627
23628 2001-10-11  Ed Schonberg <schonber@gnat.com>
23629
23630         * exp_ch7.adb (Find_Final_List): for a type appearing in a with_type
23631         clause, return the gobal finalization list, for lack of anthing else.
23632
23633 2001-10-11  Ed Schonberg <schonber@gnat.com>
23634
23635         * exp_ch7.adb (Make_Transient_Block): if statement is within
23636         exception handler, always use new transient scope to place Clean
23637         procedure.
23638
23639 2001-10-11  Pascal Obry <obry@gnat.com>
23640
23641         * Makefile.in:
23642         (GNAT_ADA_OBJS): add g-crc32.o, a-tags.o, a-stream.o
23643         (GNATBIND_OBJS): add g-crc32.o, a-tags.o, a-stream.o
23644         (GNATLS_RTL_OBJS): add g-crc32.o
23645         (GNATMAKE_RTL_OBJS): add g-crc32.o
23646
23647         * ali-util.adb:
23648         (CRC_Match): new function.
23649         (Get_File_Checksum): renamed Get_File_CRC. Use the GNAT.CRC32 unit
23650         instead of the previous simple checksum algorithm.
23651         (Time_Stamp_Mismatch): use CRC_Match for comparison.
23652         (Set_Source_Table): idem.
23653
23654         * ali-util.ads:
23655         (Get_File_Checksum): renamed Get_File_CRC as now we compute CRC
23656         instead of simple checksum.
23657         (CRC_Match): new function.
23658         (CRC_Error): new constant.
23659
23660         * ali.adb (Scan_ALI): rename variable Chk to CRC as we are handling
23661         a CRC now and not a simple checksum. A CRC uses lower-case hex
23662         letters, fixes ambiguity in parsing.
23663
23664         * ali.ads (Sdep_Record.Checksum): renamed Sdep_Record.CRC as this
23665         is what this variable will store.
23666
23667         * bcheck.adb: Change reference to chechsum in comments by CRC.
23668         (Check_Consistency): Rename Get_File_Checksum to Get_File_CRC.
23669         rename All_Checksum_Match to All_CRC_Match. Change due to API
23670         renaming since now GNAT does not use a simple checksum but a
23671         CRC using GNAT.CRC32.
23672
23673         * gnatls.adb: Rename Checksum to CRC in many places, we use a CRC
23674         now and not anymore a simple checksum.
23675
23676         * lib-load.adb: Use Source_CRC instead of Source_Checksum in many
23677         places.
23678
23679         * lib-writ.adb (Write_ALI): Use Source_CRC instead of Source_Checksum.
23680
23681         * scans.adb:
23682         (Restore_Scan_State): rename Checksum to CRC.
23683         (Save_Scan_State): idem.
23684
23685         * scans.ads:
23686         With GNAT.CRC32.
23687         (Checksum): rename to CRC.
23688         (Saved_Scan_State): Save_Checksum field renamed to Save_CRC
23689
23690         * scn-nlit.adb: Rename many Accumulate_Checksum to Update (from
23691         GNAT.CRC32).  Update copyright notice.
23692
23693         * scn-slit.adb: Rename many Accumulate_Checksum to Update (from
23694         GNAT.CRC32).  Update copyright notice.
23695
23696         * scn.adb:
23697         (Accumulate_Checksum): removed.
23698         (Update): new procedure. Add a wide-character into the CRC.
23699
23700         * sinput-l.adb:
23701         (Complete_Source_File_Entry): use CRC32 instead of simple checksum.
23702         (Load_File): fix initialization of S (change Source_Checksum to
23703         Source_CRC)
23704
23705         * sinput-p.adb (Load_Project_File): rename Source_Checksum to
23706         Source_CRC in S initialization.
23707
23708         * sinput.adb (Source_Checksum): renamed to Source_CRC.
23709
23710         * sinput.ads (Source_Checksum): renamed to Source_CRC.
23711         Update comments for the CRC.
23712
23713         * types.adb (Hex): Use lowercase for the letter part.
23714
23715         * types.ads (Get_Hex_String): Returns the hexadecimal representation
23716         for a word. This is currently used only for CRC. In previous version,
23717         the checksum was using a representation with all letter being
23718         upper-case. With the new implementation (using CRC) we do not remove
23719         the 32th bit of the CRC, so we can have an upper-case starting letter
23720         in the CRC. This is not possible to parse in Scan_ALI (ali.adb).
23721         It is ambigous since the CRC was optional and could be followed by
23722         options like EB, EE. So now this routines uses lower-case letter for
23723         the hexadecimal representation. Strange enough only lower case letters
23724         where checked in Scan_ALI (even if this was not a possible case).
23725
23726         * gnatvsn.ads (Library_Version): changed to 3.15a.
23727
23728         * s-crc32.ads: Initial version from GNAT.CRC32. This is the version
23729         for the compiler.
23730
23731         * s-crc32.adb: Initial version from GNAT.CRC32. This is the version
23732         for the compiler.
23733
23734         * ali-util.adb: Redo previous change to avoid using word CRC everywhere
23735         Add 2001 to copyright notice
23736         (Accumulate_Checksum): Modify to use System.CRC32.
23737
23738         * ali-util.ads: Redo changes of previous revision to continue to use
23739         the word Checksum. Add 2001 to copyright notice.
23740
23741         * ali.adb: Undo some of previous changes, not needed.
23742         Keep the change for lower case letters in the checksum.
23743
23744         * ali.ads: Undo previous change not needed.
23745
23746         * bcheck.adb: Undo most of previous change, not needed.
23747         But do use Checksums_Match for checksum comparison.
23748
23749         * gnatls.adb: Undo most of previous change, not needed.
23750         But do use Checksums_Match for comparing checksums.
23751
23752         * lib-load.adb: Undo previous change, not needed.
23753
23754         * lib-writ.adb: Undo previous change, not needed.
23755
23756         * lib-writ.ads: Document that checksums use lower case,
23757         not upper case letters.
23758
23759         * scans.adb: Undo previous change, not needed
23760
23761         * scans.ads: Undo previous change, not needed.
23762
23763         * scn-nlit.adb: Undo previous changes, not needed.
23764
23765         * scn-slit.adb: Undo previous change, not needed.  Fix header format.
23766
23767         * scn.adb:
23768         (Accumulate_Checksum): Use System.CRC32.
23769         (Initialize_Checksum): New procedure.
23770         Remove other changes of previous revision.
23771
23772         * sinput-p.adb: Undo previous change, not needed.
23773
23774         * sinput.adb: Undo previous change, not needed.
23775
23776         * sinput-l.adb: Undo previous change, not needed.
23777
23778         * sinput.ads: Undo previous change, not needed.  Keep only comment
23779         on new checksum algorithm
23780
23781         * Makefile.in: Add s-crc32 as needed, remove g-crc32.
23782         Also remove a-tags and a-stream from GNAT sources.
23783
23784         * ali.adb (Scan_ALI): fix typo introduce in latest check-in.
23785
23786         * Makefile.in (GNATRTL_NONTASKING_OBJS): Add g-crc32.o.
23787
23788 2001-10-11  Geert Bosch  <bosch@gnat.com>
23789
23790         * einfo.h: Regenerate.
23791
23792         * nmake.ads: Regenerate.
23793
23794         * nmake.adb: Regenerate.
23795
23796         * sinfo.h: Regenerate.
23797
23798         * treeprs.adb: Regenerate.
23799
23800 2001-10-10  Geert Bosch  <bosch@gnat.com>
23801
23802         * gnat-style.texi: New file describing coding guidelines for Ada.
23803
23804 2001-10-10  Ed Schonberg <schonber@gnat.com>
23805
23806         * einfo.adb (Write_Entity_Flags): Elaboration_Entity_Required
23807         is Flag174.
23808
23809 2001-10-10  Geert Bosch  <bosch@gnat.com>
23810
23811         * snames.ads: Add new names for project facility.
23812
23813         * snames.adb: Update to reflect snames.ads changes.
23814
23815         * snames.h: Update to reflect snames.ads changes.
23816
23817 2001-10-10  Vincent Celier <celier@gnat.com>
23818
23819         * make.adb:
23820         (Add_Switches): reflect the changes for the switches attributes
23821         Default_Switches indexed by the programming language,
23822         Switches indexed by the file name.
23823         (Collect_Arguments_And_Compile): Idem.
23824         Reflect the attribute name changes.
23825
23826         * prj-attr.adb:
23827         (Initialisation_Data): Change the names of some packages and
23828         attributes.
23829         (Initialize): process case insensitive associative arrays.
23830
23831         * prj-attr.ads:
23832         (Attribute_Kind): Remove Both, add Case_Insensitive_Associative_Array.
23833
23834         * prj-dect.adb:
23835         (Parse_Attribute_Declaration): For case insensitive associative
23836          arrays, set the index string to lower case.
23837
23838         * prj-env.adb:
23839         Reflect the changes of the project attributes.
23840
23841         * prj-nmsc.adb:
23842         Replace Check_Naming_Scheme by Ada_Check and
23843         Language_Independent_Check.
23844
23845         * prj-nmsc.ads:
23846         Replaced Check_Naming_Scheme by 2 procedures:
23847         Ada_Check and Language_Independent_Check.
23848
23849         * prj-proc.adb:
23850         (Process_Declarative_Items): For case-insensitive associative
23851         arrays, set the index string to lower case.
23852         (Recursive_Check): Call Prj.Nmsc.Ada_Check, instead of
23853         Prj.Nmsc.Check_Naming_Scheme.
23854
23855         * prj-tree.adb:
23856         (Case_Insensitive): New function
23857         (Set_Case_Insensitive): New procedure
23858
23859         * prj-tree.ads:
23860         (Case_Insensitive): New function
23861         (Set_Case_Insensitive): New procedure
23862         (Project_Node_Record): New flag Case_Insensitive.
23863
23864         * prj-util.adb:
23865         (Value_Of): new function to get the string value of a single
23866         string variable or attribute.
23867
23868         * prj-util.ads:
23869         (Value_Of): new function to get the string value of a single
23870         string variable or attribute.
23871
23872         * prj.adb:
23873         (Ada_Default_Spec_Suffix): New function
23874         (Ada_Default_Impl_Suffix): New function
23875         Change definitions of several constants to reflect
23876         new components of record types.
23877
23878         * prj.ads:
23879         (Naming_Data): Change several components to reflect new
23880         elements of naming schemes.
23881         (Project_Data): New flags Sources_Present and
23882         Language_Independent_Checked.
23883         (Ada_Default_Spec_Suffix): New function.
23884         (Ada_Default_Impl_Suffix): New function.
23885
23886         * snames.ads:
23887         Modification of predefined names for project manager: added
23888         Implementation, Specification_Exceptions, Implementation_Exceptions,
23889         Specification_Suffix, Implementation_Suffix, Separate_Suffix,
23890         Default_Switches, _Languages, Builder, Cross_Reference,
23891         Finder. Removed Body_Part, Specification_Append, Body_Append,
23892         Separate_Append, Gnatmake, Gnatxref, Gnatfind, Gnatbind,
23893         Gnatlink.
23894
23895         * prj.ads: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
23896         Add comments.
23897
23898         * prj-nmsc.adb (Ada_Check): Test that Separate_Suffix is defaulted,
23899         not that it is Nil_Variable_Value.
23900
23901         * prj.ads: Add ??? for uncommented declarations
23902
23903 2001-10-10  Ed Schonberg <schonber@gnat.com>
23904
23905         * sem_prag.adb: (Analyze_Pragma, case External): If entity is a
23906         constant, do not indicate possible modification, so that gigi can
23907         treat it as a bona fide constant.
23908
23909 2001-10-10  Robert Dewar <dewar@gnat.com>
23910
23911         * sem_prag.adb: Add processing for pragma External.
23912
23913         * snames.ads: Add entry for pragma External.
23914
23915         * par-prag.adb: Add pragma External.
23916
23917         * snames.adb: Updated to match snames.ads.
23918
23919 2001-10-10  Ed Schonberg <schonber@gnat.com>
23920
23921         * exp_ch4.adb (Expand_N_Allocator): Generate meaningful names for
23922         a dynamic task if the allocator appears in an indexed assignment
23923         or selected component assignment.
23924
23925         * exp_util.adb (Build_Task_Array_Image, Build_Task_Record_Image):
23926         For a dynamic task in an assignment statement, use target of
23927         assignment to generate meaningful name.
23928
23929 2001-10-10  Ed Schonberg <schonber@gnat.com>
23930
23931         * einfo.adb (Write_Field19_Name): Body_Entity is also defined for
23932         a generic package.
23933
23934         * einfo.ads: Body_Entity is also defined for generic package.
23935         Documentation change only
23936
23937         * exp_aggr.adb (Build_Array_Aggr_Code): When expanding an
23938         others_choice for a discriminated component initialization,
23939         convert discriminant references into the corresponding discriminals.
23940
23941         * exp_ch3.adb (Get_Simple_Init_Val): Add qualification to aggregate
23942         only if original type is private and expression has to be wrapped
23943         in a conversion.
23944
23945         * checks.adb:
23946         (Apply_Constraint_Check): Do not perform length check
23947         if expression is an aggregate with only an others_choice.
23948         (Length_N_Cond): two references to the same in_parameter
23949         (typically the discriminal in an init_proc) denote the same value.
23950         Two useful optimization uncovered by bugfixes above.
23951
23952 2001-10-10  Robert Dewar <dewar@gnat.com>
23953
23954         * xeinfo.adb: Change int to char in translation of enumeration types.
23955         This fixes a problem in the C representation of component alignment.
23956         Add 2001 to copyright notice
23957
23958 2001-10-10  Richard Kenner <kenner@gnat.com>
23959
23960         * decl.c: (validate_size): Do check size of object of integral type
23961         if it is a packed array type.
23962
23963 2001-10-10  Richard Kenner <kenner@gnat.com>
23964
23965         * decl.c: (gnat_to_gnu_entity, case object): Also materialize
23966         VAR_DECL for constant if not Is_Public but -O0.
23967
23968 2001-10-10  Richard Kenner  <kenner@gnat.com>
23969
23970         * misc.c (struct lang_hooks): Add new initializer to match GCC change.
23971
23972 2001-10-10  Geert Bosch  <bosch@gnat.com>
23973
23974         * xnmake.adb (XNmake): Fix handling of -s/-b options.  No longer
23975         use '/' as switch character, allowing for absolute file names.
23976
23977 2001-10-09  Joseph S. Myers  <jsm28@cam.ac.uk>
23978
23979         * 4gintnam.ads, Make-lang.in, Makefile.in, config-lang.in: Update
23980         FSF address.
23981
23982 2001-10-08  Geert Bosch  <bosch@gnat.com>
23983
23984         * Makefile.in (treeprs.ads, einfo.h, sinfo.h, nmake.adb, nmake.ads):
23985         Automatically build utilities when files need to be regenerated.
23986
23987 2001-10-08  Geert Bosch  <bosch@gnat.com>
23988
23989         * xsnames.adb: New utility for updating snames.ads and snames.adb
23990
23991 2001-10-08  Zack Weinberg  <zack@codesourcery.com>
23992
23993         * Make-lang.in (ADAFLAGS): Add -W -Wall.
23994         (ADA_FLAGS_TO_PASS): Set ADA_CFLAGS=$(CFLAGS) also.
23995         (gnat1): Also depend on attribs.o.
23996         (gnatlib, gnatlib-shared): Set CC and ADAC in recursive make.
23997         * Makefile.in (X_ADAFLAGS, T_ADAFLAGS): New.
23998         (ADAC): Set to @ADAC@ in stage1, $(CC) later.
23999         (ADAFLAGS): Add -W -Wall.
24000         (ALL_ADAFLAGS, MOST_ADAFLAGS): Add X_ADAFLAGS and T_ADAFLAGS;
24001         take out CFLAGS.
24002
24003         (.adb.o, .ads.o, a-numaux.o, a-teioed.o, s-interr.o,
24004         s-taskin.o, sdefault.o, s-tasdeb.o, s-vaflop.o, a-except.o,
24005         s-assert.o, s-stalib.o, s-memory.o, memtrack.o, mlib-tgt.o):
24006         Use $(ADAC), not $(CC), as compilation command.
24007
24008         (gnattools): Depend directly on tools to build, don't use
24009         recursive make.
24010         (gnatlib): Set ADA_CFLAGS=$(GNATLIBCFLAGS) in recursive make.
24011
24012         * einfo.h, sinfo.h: New files (autogenerated).
24013
24014 2001-10-08  Richard Henderson  <rth@redhat.com>
24015
24016         * comperr.adb (Abort_In_Progress): New.
24017         (Compiler_Abort): Use it to prevent recursion.
24018
24019 2001-10-08  Robert Dewar <dewar@gnat.com>
24020
24021         * atree.adb: Set Error_Posted in Error node, helps error recovery.
24022
24023         * par-endh.adb (Output_End_Expected): We should also not test
24024         Error_Posted on the Error node, since now it is always set.
24025
24026         * cstand.adb (Create_Standard): Set Etype of Error to Any_Type
24027         to help error recovery. Part of general work on 9407-004.
24028
24029         * par.adb: Add ??? for misuse of error
24030
24031         * sem_res.adb:
24032         (Resolve): Defend against Error, fixes 9407-003.
24033         (Resolve_Discrete_Subtype_Indication): Defend against Error.
24034
24035         * sinfo.ads (N_Error): Now has Etype field (which will be set
24036         to Any_Type to help error recovery).
24037
24038 2001-10-08  Richard Kenner (kenner@gnat.com)
24039
24040         * misc.c (gnat_expand_expr, case UNCHECKED_CONVERT_EXPR):
24041         Consistently set MEM attributes from expression; fixes
24042         bootstrap failure on x86.
24043
24044 2001-10-08  Geert Bosch  (bosch@gnat.com)
24045
24046         * 5oosinte.adb: Add 2001 to copyright notice.
24047
24048 2001-10-08  Geert Bosch  (bosch@gnat.com)
24049
24050         * ceinfo.adb: Add utility for consistency checking of einfo.ad[bs].
24051
24052         * csinfo.adb: Add utility for consistency checking of sinfo.ad[bs].
24053
24054 2001-10-07  Joseph S. Myers  <jsm28@cam.ac.uk>
24055
24056         * 5oosinte.adb: Fix spelling error of "separate" as "seperate".
24057
24058 2001-10-05  Geert Bosch  (bosch@gnat.com)
24059
24060         * adaint.h: Small formatting fix.
24061
24062 2001-10-04  Geert Bosch  <bosch@gnat.com>
24063
24064         * sysdep.c (__gnat_set_binary_mode, __gnat_set_text_mode):
24065         Arg is int, not FILE *, in dummy version of functions.
24066
24067         * adaint.h (__gnat_set_binary_mode, __gnat_set_text_mode):
24068         Arg is int, not FILE *.
24069
24070 2001-10-04  Geert Bosch  <bosch@gnat.com>
24071
24072         * 3lsoccon.ads: Added file, missed with initial check ins.
24073
24074         * 4lintnam.ads: Fix header format.
24075         Change Linux to GNU/Linux.
24076
24077         * 5iosinte.adb: Change Linux to GNU/Linux.
24078
24079         * 5iosinte.ads: Change Linux to GNU/Linux.
24080
24081         * 5itaprop.adb: Change Linux to GNU/Linux.
24082
24083         * 5itaspri.ads: Change Linux to GNU/Linux.
24084         Update copyright notice.
24085
24086         * 5lintman.adb: Change Linux to GNU/Linux.
24087
24088         * 5lml-tgt.adb: Change Linux to GNU/Linux.
24089
24090         * 5losinte.ads: Change Linux to GNU/Linux.
24091
24092         * 5lsystem.ads: Change Linux to GNU/Linux.
24093
24094         * 5qosinte.adb: Change Linux to GNU/Linux.
24095
24096         * 5qosinte.ads: Change Linux to GNU/Linux.
24097
24098         * 5qparame.ads: Change Linux to GNU/Linux.
24099
24100         * 5qtaprop.adb: Change Linux to GNU/Linux.
24101
24102         * 5qtaspri.ads: Change Linux to GNU/Linux.
24103         Add 2001 to copyright notice.
24104
24105         * 5vintman.ads: Change Linux to GNU/Linux.
24106         Fix header format.  Add 2001 to copyright notice.
24107
24108         * g-soccon.ads: Change Linux to GNU/Linux.
24109
24110         * g-trasym.ads: Change Linux to GNU/Linux.
24111         Add 2001 to copyright notice.
24112
24113         * memtrack.adb: Change Linux to GNU/Linux.
24114
24115         * s-intman.ads: Change Linux to GNU/Linux.
24116         Add 2001 to copyright notice.  Fix header format.
24117
24118         * s-stache.adb: Change Linux to GNU/Linux.
24119
24120         * adaint.c: Change Linux to GNU/Linux.
24121
24122         * cio.c: Change Linux to GNU/Linux.
24123
24124         * cstreams.c: Change Linux to GNU/Linux.
24125
24126         * init.c: Change Linux to GNU/Linux.
24127
24128         * gmem.c: Change Linux to GNU/Linux.
24129
24130         * tracebak.c: Change Linux to GNU/Linux.
24131
24132
24133 2001-10-02  Geert Bosch  <bosch@gnat.com>
24134
24135         * misc.c (insert_default_attributes): Add dummy version.