OSDN Git Service

PR ada/27944
[pf3gnuchains/gcc-fork.git] / gcc / ada / ChangeLog
1 2006-06-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2
3         PR ada/27944
4         * s-taprop-hpux-dce.adb: Delete redundant 'with System.Parameters'.
5
6 2006-06-06  Laurent GUERBY  <laurent@guerby.net>
7
8         PR ada/27769
9         mlib-utl.adb: Use Program_Name.
10         
11 2006-05-28  Kazu Hirata  <kazu@codesourcery.com>
12
13         * decl.c, env.c, gigi.h, init.c, initialize.c, raise-gcc.c,
14         sem_ch13.adb, sysdep.c, targtyps.c, tb-alvxw.c, tracebak.c,
15         trans.c, utils.c: Fix comment typos.  Follow spelling
16         conventions.
17         * gnat_rm.texi, gnat_ugn.texi, : Fix typos.  Follow spelling
18         conventions.
19
20 2006-05-14  H.J. Lu  <hongjiu.lu@intel.com>
21
22         * Make-lang.in (ada/decl.o): Replace target.h with $(TARGET_H).
23         (ada/misc.o): Likewise.
24         (ada/utils.o): Likewise.
25
26 2006-04-08  Aurelien Jarno  <aurel32@debian.org>
27
28         * Makefile.in: Add Ada support for GNU/kFreeBSD.
29         * s-osinte-kfreebsd-gnu.ads: New file.
30
31 2006-03-29  Carlos O'Donell  <carlos@codesourcery.com>
32
33         * Make-lang.in: Rename docdir to gcc_docdir.
34
35 2006-03-04  Eric Botcazou  <ebotcazou@adacore.com>
36
37         * gigi.h (get_ada_base_type): Delete.
38         * utils2.c (get_ada_base_type): Likewise.
39         * trans.c (convert_with_check): Operate in the real base type.
40
41 2006-03-03  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
42
43         * uintp.adb (Num_Bits): Handle Uint_Int_First specially.
44
45 2006-03-02  Richard Sandiford  <richard@codesourcery.com>
46
47         * utils.c (create_var_decl): Use have_global_bss_p when deciding
48         whether to make the decl common.
49
50 2006-02-20 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
51
52         * Make-lang.in (Ada): Remove
53         (.PHONY): Remove Ada
54
55 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
56
57         * sem_ch4.adb (Find_Boolean_Types): If one of the operands is an
58         aggregate, check the interpretations of the other operand to find one
59         that may be a boolean array.
60
61         (Analyze_Selected_Component): Fix flow-of-control typo in case where
62         the prefix is a private extension.
63
64 2006-02-17  Eric Botcazou  <botcazou@adacore.com>
65
66         PR ada/26315
67
68         * utils2.c (find_common_type): If both input types are BLKmode and
69         have the same constant size, keep using the first one.
70
71         * bindgen.adb: (Gen_Versions_Ada): Revert previous workaround.
72
73         * decl.c (gnat_to_gnu_entity): Only check TREE_OVERFLOW for a constant.
74
75         * misc.c (gnat_handle_option): New case for -Woverlength-strings.
76
77 2006-02-17  Jose Ruiz  <ruiz@adacore.com>
78
79         * s-taprop-irix.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb, 
80         s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb, 
81         s-taprop-posix.adb, s-taprop-vxworks.adb, s-taprop-lynxos.adb, 
82         s-taprop-tru64.adb (Set_False, Set_True, Suspend_Until_True): Add
83         Abort_Defer/Undefer pairs to avoid the possibility of a task being
84         aborted while owning a lock.
85
86 2006-02-17  Javier Miranda  <miranda@adacore.com>
87             Robert Dewar  <dewar@adacore.com>
88
89         * exp_ch4.adb (Expand_N_Allocator): If the allocated object is accessed
90         through an access to class-wide interface we force the displacement of
91         the pointer to the allocated object to reference the corresponding
92         secondary dispatch table.
93         (Expand_N_Op_Divide): Allow 64 bit divisions by small power of 2,
94         if Long_Shifts are supported on the target, even if 64 bit divides
95         are not supported (configurable run time mode).
96         (Expand_N_Type_Conversion): Do validity check if validity checks on
97         operands are enabled.
98         (Expand_N_Qualified_Expression): Do validity check if validity checks
99         on operands are enabled.
100
101 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
102
103         * exp_dbug.adb (Debug_Renaming_Declaration): Indicate that the entity
104         must be materialized when the renamed expression is an explicit
105         dereference.
106
107 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
108
109         * freeze.adb (Statically_Discriminated_Components): Return false if
110         the bounds of the type of the discriminant are not static expressions.
111
112         * sem_aggr.adb (Check_Static_Discriminated_Subtype): Return false if
113         the bounds of the discriminant type are not static.
114
115 2006-02-17  Robert Dewar  <dewar@adacore.com>
116
117         * g-os_lib.adb (Copy_File): Make sure that if From has an Invalid_FD,
118         then we close To if it is valid.
119
120 2006-02-17  Vasiliy Fofanov  <fofanov@adacore.com>
121
122         * init.c (facility_resignal_table): new array
123         (__gnat_default_resignal_p): enhance default predicate to resignal if
124         VMS condition has one of the predefined facility codes.
125
126 2006-02-17  Vasiliy Fofanov  <fofanov@adacore.com>
127
128         * Makefile.in: Use VMS64 specialized versions of several units in
129         Interfaces.C hierarchy to be compatible with HP C default size choices.
130         Use the default version of Ada.Synchronous_Task_Control for VxWorks 653.
131
132 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
133
134         * sem_ch10.adb (Analyze_With_Clause): If the unit is a subprogram
135         instantiation, the corresponding entity is the related_instance of the
136         wrapper package created for the instance.
137
138 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
139
140         * sem_ch12.adb (Analyze_Package_Instantiation): Inline_Now is false if
141         the current instance is nested within another instance in a child unit.
142
143 2006-02-17  Javier Miranda  <miranda@adacore.com>
144             Ed Schonberg  <schonberg@adacore.com>
145
146         * sem_ch3.adb (Build_Discriminated_Subtype): In case of concurrent
147         type we cannot inherit the primitive operations; we inherit the
148         Corresponding_Record_Type (which has the list of primitive operations).
149         (Check_Anonymous_Access_Types): When creating anonymous access types for
150         access components, use Rewrite in order to preserve the tree structure,
151         for ASIS use.
152         (Analyze_Object_Declaration): For limited types with access
153         discriminants with defaults initialized by an aggregate, obtain
154         subtype from aggregate as for other mutable types.
155         (Derived_Type_Declaration): If the derived type is a limited interface,
156         set the corresponding flag (Is_Limited_Record is not sufficient).
157
158 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
159
160         * sem_ch6.adb (Build_Body_To_Inline): Enforce the rule that in order
161         to inline a function that returns an unconstrained type, the return
162         expression must be the first variable declared in the body of the
163         function.
164
165 2006-02-17  Javier Miranda  <miranda@adacore.com>
166
167         * sem_res.adb (Resolve_Type_Conversion): In case of conversion to an
168         abstract interface type, the static analysis is not enough to know if
169         the interface is implemented or not by the source tagged type. Hence
170         we must pass the work to the expander to generate the required code to
171         evaluate the conversion at run-time.
172         (Resolve_Equality_Op): Do not apply previous
173         transformation if expansion is disasbled, to prevent anomalies when
174         locating global references in a generic unit.
175
176 2006-02-17  Vincent Celier  <celier@adacore.com>
177
178         * snames.ads, snames.adb: New standard names for new project attributes:
179         archive_builder, archive_indexer, compiler_pic_option,
180         config_body_file_name, config_body_file_name_pattern,
181         config_file_switches, config_file_unique, config_spec_file_name,
182         config_spec_file_name_pattern, default_builder_switches,
183         default_global_compiler_switches, default_language,
184         dependency_file_kind, global_compiler_switches, include_path,
185         include_path_file, language_kind, linker_executable_option,
186         linker_lib_dir_option, linker_lib_name_option, mapping_file_switches,
187         roots, runtime_project.
188
189 2006-02-17  Matthew Heaney  <heaney@adacore.com>
190
191         * a-convec.ads, a-convec.adb: 
192         (operator "&"): handle potential overflow for large index types
193         (Insert): removed Contraint_Error when using large index types
194         (Insert_Space): removed Constraint_Error for large index types
195         (Length): moved constraint check from Length to Insert
196
197         * a-coinve.ads, a-coinve.adb: Stream attribute procedures are declared
198         as not null access.
199         Explicit raise statements now include an exception message.
200         (operator "&"): handle potential overflow for large index types
201         (Insert): removed Contraint_Error when using large index types
202         (Insert_Space): removed Constraint_Error for large index types
203         (Length): moved constraint check from Length to Insert
204
205 2006-02-17  Robert Dewar  <dewar@adacore.com>
206
207         * s-wchcnv.adb: Document handling of [ on output (we do not change
208         this to ["5B"] and the new comments say why not.
209
210         * gnat_ugn.texi: 
211         Add note for -gnatVo that this now includes the cases of type
212         conversions and qualified expressions.
213         Add comments on handling of brackets encoding for Text_IO
214
215 2006-02-17  Ramon Fernandez  <fernandez@adacore.com>
216             Thomas Quinot  <quinot@adacore.com>
217             Robert Dewar  <dewar@adacore.com>
218             Javier Miranda  <miranda@adacore.com>
219
220         * expander.adb: Fix typo in comment
221
222         * exp_pakd.adb: Fix typo
223         Minor comment reformatting.
224
225         * g-dyntab.adb: Minor reformatting
226
227         * exp_ch6.adb (Register_Interface_DT_Entry): Traverse the list of
228         aliased subprograms to look for the abstract interface subprogram.
229
230 2006-02-16  Eric Botcazou  <ebotcazou@adacore.com>
231
232         * env.c (__gnat_setenv): Use size_t.
233         (__gnat_unsetenv): Likewise.
234         (__gnat_clearenv): Likewise.
235
236 2006-02-16  Arnaud Charlet  <charlet@adacore.com>
237
238         * opt.ads (Ada_Version_Default): Set to Ada 2005 by default.
239
240 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
241
242         * a-intnam-os2.ads, a-intnam-unixware.ads, g-soccon-unixware.ads,
243         g-soliop-unixware.ads, i-os2err.ads, i-os2lib.adb, i-os2lib.ads,
244         i-os2syn.ads, i-os2thr.ads, s-intman-irix-athread.adb,
245         s-osinte-aix-fsu.ads, s-osinte-fsu.adb, s-parame-os2.adb,
246         s-osinte-irix-athread.ads, s-osinte-linux-fsu.ads, s-osinte-os2.adb,
247         s-osinte-os2.ads, s-osinte-solaris-fsu.ads, s-osinte-unixware.adb,
248         s-osinte-unixware.ads, s-osprim-os2.adb, s-taprop-irix-athread.adb,
249         s-taprop-os2.adb, s-tasinf-irix-athread.adb, s-tasinf-irix-athread.ads,
250         s-taspri-os2.ads, system-os2.ads, system-unixware.ads: Removed,
251         no longer used.
252
253 2006-02-13  Jose Ruiz  <ruiz@adacore.com>
254
255         * a-taster.adb (Current_Task_Fallback_Handler): Document why explicit
256         protection against race conditions is not needed.
257         (Set_Dependents_Fallback_Handler): Add mutual exclusive access to the
258         fallback handler.
259         (Set_Specific_Handler): Add mutual exclusive access to the specific
260         handler.
261         (Specific_Handler): Add mutual exclusive access for retrieving the
262         specific handler.
263
264         * s-tarest.adb (Task_Wrapper): Add mutual exclusive access to the fall
265         back handler.
266
267         * s-taskin.ads (Common_ATCB): Remove pragma Atomic for
268         Fall_Back_Handler and Specific_Handler.
269
270         * s-tassta.adb (Task_Wrapper): Add mutual exclusive access to the task
271         termination handlers.
272         Set two different owerflow depending on the maximal stack size.
273
274         * s-solita.adb (Task_Termination_Handler_T): Document why explicit
275         protection against race conditions is not needed when executing the
276         task termination handler.
277
278 2006-02-13  Robert Dewar  <dewar@adacore.com>
279
280         * s-gloloc-mingw.adb, a-cgaaso.ads, a-stzmap.adb, a-stzmap.adb,
281         a-stzmap.ads, a-ztcoio.adb, a-ztedit.adb, a-ztedit.ads, a-ztenau.adb,
282         a-ztenau.ads, a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
283         a-comlin.adb, a-decima.adb, a-decima.ads, a-direio.adb, a-direio.adb,
284         a-direio.adb, a-direio.ads, a-ngcoty.adb, a-ngcoty.ads, a-nuflra.adb,
285         a-nuflra.ads, a-sequio.adb, a-sequio.ads, a-sequio.ads, a-storio.ads,
286         a-stream.ads, a-ststio.adb, a-ststio.adb, a-ststio.ads, a-ststio.ads,
287         a-stwima.adb, a-stwima.adb, a-stwima.ads, a-stwise.adb, a-teioed.adb,
288         a-teioed.ads, a-ticoau.adb, a-ticoau.ads, a-ticoio.adb, a-tasatt.ads,
289         a-tideau.adb, a-tideau.ads, a-tideio.adb, a-tideio.ads, a-tienau.adb,
290         a-tienau.ads, a-tienio.adb, a-tienio.ads, a-tifiio.ads, a-tiflau.adb,
291         a-tiflau.ads, a-tiflio.adb, a-tiflio.adb, a-tiflio.ads, a-tigeau.ads,
292         a-tiinau.adb, a-tiinau.ads, a-tiinio.adb, a-tiinio.ads, a-timoio.adb,
293         a-timoio.ads, a-titest.adb, a-titest.ads, a-wtcoio.adb, a-wtdeau.adb,
294         a-wtdeau.ads, a-wtdeio.adb, a-wtdeio.ads, a-wtedit.adb, a-wtedit.adb,
295         a-wtedit.ads, a-wtenau.adb, a-wtenau.ads, a-wtenau.ads, a-wtenio.adb,
296         a-wtenio.ads, a-wtfiio.adb, a-wtfiio.ads, a-wtflau.adb, a-wtflau.ads,
297         a-wtflio.adb, a-wtflio.adb, a-wtflio.ads, a-wtgeau.ads, a-wtinau.adb,
298         a-wtinau.ads, a-wtinio.adb, a-wtinio.ads, a-wtmoau.adb, a-wtmoau.ads,
299         a-wtmoio.adb, a-wtmoio.ads, xref_lib.adb, xref_lib.ads, xr_tabls.adb,
300         g-boubuf.adb, g-boubuf.ads, g-cgideb.adb, g-io.adb, gnatdll.adb,
301         g-pehage.adb, i-c.ads, g-spitbo.adb, g-spitbo.ads, mdll.adb,
302         mlib-fil.adb, mlib-utl.adb, mlib-utl.ads, prj-env.adb, prj-tree.adb,
303         prj-tree.ads, prj-util.adb, s-arit64.adb, s-asthan.ads, s-auxdec.adb,
304         s-auxdec.ads, s-chepoo.ads, s-direio.adb, s-direio.ads, s-errrep.adb,
305         s-errrep.ads, s-fileio.adb, s-fileio.ads, s-finroo.adb, s-finroo.ads,
306         s-gloloc.adb, s-gloloc.ads, s-io.adb, s-io.ads, s-rpc.adb,
307         s-rpc.ads, s-shasto.ads, s-sequio.adb, s-stopoo.ads, s-stratt.adb,
308         s-stratt.ads, s-taasde.adb, s-taasde.ads, s-tadert.adb, s-sequio.ads,
309         s-taskin.adb, s-tasque.adb, s-tasque.ads, s-wchjis.ads, makegpr.adb,
310         a-coinve.adb, a-cidlli.adb, eval_fat.adb, exp_dist.ads, exp_smem.adb,
311         fmap.adb, g-dyntab.ads, g-expect.adb, lib-xref.ads, osint.adb,
312         par-load.adb, restrict.adb, sinput-c.ads, a-cdlili.adb,
313         system-vms.ads, system-vms-zcx.ads, system-vms_64.ads: Minor
314         reformatting.
315
316 2006-02-13  Hristian Kirtchev  <kirtchev@adacore.com>
317
318         * a-tasatt.adb, s-osinte-lynxos-3.adb, s-osinte-lynxos.adb,
319         s-osinte-aix.adb, s-interr-sigaction.adb, s-asthan-vms-alpha.adb,
320         s-interr-vms.adb, s-intman-vms.adb, s-interr-vxworks.adb,
321         s-intman-vxworks.adb, s-asthan-vms-alpha.adb, a-ztexio.adb,
322         a-reatim.adb, a-taside.adb, a-textio.adb, a-witeio.adb, prj-attr.adb,
323         s-intman-irix.adb, s-intman-solaris.adb, s-intman-posix.adb,
324         a-dynpri.adb, a-interr.adb, g-dynhta.adb, s-asthan.adb, s-interr.adb,
325         s-pooglo.adb, s-pooloc.adb, s-poosiz.adb, s-tasren.adb, s-tasuti.adb,
326         s-tataat.adb, s-tpobop.adb: Remove redundant with clauses.
327
328 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
329
330         * s-osinte-darwin.adb, s-osinte-darwin.ads, s-osinte-vxworks.ads, 
331         s-osinte-solaris.ads, s-osinte-linux.ads, s-osinte-freebsd.ads, 
332         s-osinte-solaris-posix.ads, s-osinte-lynxos-3.ads, s-osinte-lynxos.ads, 
333         s-osinte-tru64.ads, s-osinte-aix.ads, s-osinte-irix.ads, 
334         s-osinte-hpux-dce.ads, s-osinte-linux-hppa.ads, 
335         s-osinte-linux-alpha.ads, s-inmaop-posix.adb (sigset_t_ptr): Removed,
336         replaced by anonymous access type.
337         (pthread_sigmask): Now take an access sigset_t
338
339         * s-osinte-hpux.ads:  Ditto.
340         (pthread_mutex_t, pthread_cond_t): Update definitions to support
341         properly 32 and 64 bit ABIs.
342
343 2006-02-13  Pascal Obry  <obry@adacore.com>
344
345         * s-taprop-posix.adb, s-taprop-vxworks.adb, s-taprop-tru64.adb, 
346         s-taprop-lynxos.adb, s-taprop-irix.adb, s-taprop-hpux-dce.adb, 
347         s-taprop-linux.adb, s-taprop-solaris.adb,
348         s-taprop-vms.adb (Create_Task): Remove task adjustment code. This
349         adjustement is already done when calling this routine.
350
351 2006-02-13  Pascal Obry  <obry@adacore.com>
352
353         * system-mingw.ads (Underlying_Priorities): Update the priority mapping
354         table to take advantage of the 16 priority levels available on Windows
355         2000 and XP. On NT4 there are only 7 priority levels, this is properly
356         supported by this new mapping.
357
358 2006-02-13  Nicolas Setton  <setton@adacore.com>
359
360         * adadecode.h, adadecode.c: (__gnat_decode): Improve support of types.
361         (get_encoding): New subprogram. Extracts the encodings from an encoded
362         Ada name.
363
364 2006-02-13  Pascal Obry  <obry@adacore.com>
365             Nicolas Roche  <roche@adacore.com>
366             Arnaud Charlet  <charlet@adacore.com>
367
368         * adaint.h, adaint.c (DIR_SEPARATOR): Use _T() macro for Unicode
369         support.
370         (__gnat_try_lock): Add unicode support by using a specific section on
371         Windows.
372         (__gnat_get_current_dir): Idem.
373         (__gnat_open_read): Idem.
374         (__gnat_open_rw): Idem.
375         (__gnat_open_create): Idem.
376         (__gnat_create_output_file): Idem.
377         (__gnat_open_append): Idem.
378         (__gnat_open_new): Idem.
379         (__gnat_file_time_name): Idem.
380         (__gnat_set_file_time_name): Idem.
381         (__gnat_stat): Idem.
382         (win32_no_block_spawn): Idem.
383         (__gnat_locate_exec_on_path): Idem.
384         (__gnat_opendir): New routine.
385         (__gnat_closedir): Idem.
386         (__gnat_readdir): Add new parameter length (pointer to int). Update
387         implementation to use it and add specific Win32 code for Unicode
388         support.
389         (__gnat_get_env_value_ptr): Remove. Replaced by __gnat_getenv in env.c
390         (__gnat_set_env_value): Remove. Replaced by __gnat_setenv in env.c
391         (convert_addresses): Do not define this dummy routine on VMS.
392
393         * mingw32.h (GNAT_UNICODE_SUPPORT): New definition, if set the GNAT
394         runtime Unicode support will be activated.
395         (S2WS): String to Wide-String conversion. This version just copy a
396         string in non Unicode version.
397         (WS2S): Wide-String to String conversion. This version just copy a
398         string in non Unicode version.
399
400         * g-dirope.adb: (Close): Now import __gnat_closedir from adaint.c.
401         (Open): Now import __gnat_opendir from adaint.c.
402         (Read): Change the implementation to support unicode characters. It is
403         not possible to use strlen() on Windows as this version supports only
404         standard ASCII characters. So the length of the directory entry is now
405         returned from the imported __gnat_readdir routine.
406         Update copyright notice.
407
408         * s-crtl-vms64.ads, s-crtl.ads: (closedir): Moved to adaint.c.
409         (opendir): Moved to adaint.c.
410
411         * g-os_lib.adb (Copy_Time_Stamp): Fix off-by-one range computation.
412         (Get_Directory): Fix wrong indexing.
413         (Getenv): replace __gnat_get_env_value_ptr from adaint.c by
414         __gnat_getenv from env.c
415         (Setenv): replace __gnat_set_env_value from adaint.c by __gnat_setenv
416         from env.c
417
418         * env.h, env.c: New file.
419
420         * s-scaval.adb (Initialize): Replace __gnat_get_env_value_ptr from
421         adaint.c by __gnat_getenv from env.c
422
423         * s-shasto.adb (Initialize): replace __gnat_get_env_value_ptr from
424         adaint.c by __gnat_getenv from env.c
425
426         * Make-lang.in: Add env.o in the list of C object needed by gnat1
427         and gnatbind.
428         Update dependencies.
429
430 2006-02-13  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
431             Olivier Hainque  <hainque@adacore.com>
432             Eric Botcazou  <ebotcazou@adacore.com>
433
434         * ada-tree.h: (TYPE_UNCHECKED_UNION_P): Deleted.
435         
436         * gigi.h (value_factor_p): Add prototype and description, now public.
437
438         * decl.c (gnat_to_gnu_field): Don't attempt BLKmode to integral type
439         promotion for field with rep clause if the associated size was proven
440         to be in error.
441         Expand comments describing attempts to use a packable type.
442         (gnat_to_gnu_entity) <E_Signed_Integer_Subtype,
443         E_Floating_Point_Subtype>: Inherit alias set of what we are making a
444         subtype of to ensure conflicts amongst all subtypes in a hierarchy,
445         necessary since these are not different types and pointers may
446         actually designate any subtype in this hierarchy.
447         (gnat_to_gnu_entity, case E_Record_Type): Always make fields for
448         discriminants but put them into record only if not Unchecked_Union;
449         pass flag to components_to_record showing Unchecked_Union.
450         (make_dummy_type): Use UNION_TYPE only if Unchecked_Union and no
451         components before variants; don't set TYPE_UNCHECKED_UNION_P.
452         (components_to_record): New argument UNCHECKED_UNION.
453         Remove special case code for Unchecked_Union and instead use main code
454         with small changes.
455
456         PR ada/26096
457         (gnat_to_gnu_entity) <E_Variable>: Do not initialize the
458         aligning variable with the expression being built, only its inner
459         field.
460
461         * trans.c (Handled_Sequence_Of_Statements_to_gnu): Remove call to
462         emit_sequence_entry_statements.
463         (emit_sequence_entry_statements, body_with_handlers_p): Delete.
464         (establish_gnat_vms_condition_handler): Move before
465         Subprogram_Body_to_gnu.
466         (Subprogram_Body_to_gnu): On VMS, establish_gnat_vms_condition_handler
467         for a subprogram if it has a foreign convention or is exported.
468         (Identifier_to_gnu): Manually unshare the DECL_INITIAL tree when it is
469         substituted for a CONST_DECL.
470         (tree_transform, case N_Aggregate): Remove code for UNION_TYPE and pass
471         Etype to assoc_to_constructor.
472         (assoc_to_constructor): New argument, GNAT_ENTITY; use it to ignore
473         discriminants of Unchecked_Union.
474         (TARGET_ABI_OPEN_VMS): Define to 0 if not defined, so that later uses
475         don't need cluttering preprocessor directives.
476         (establish_gnat_vms_condition_handler): New function. Establish the GNAT
477         condition handler as current in the compiled function.
478         (body_with_handlers_p): New function. Tell whether a given sequence of
479         statements node is attached to a package or subprogram body and involves
480         exception handlers possibly nested within inner block statements.
481         (emit_sequence_entry_statements): New function, to emit special
482         statements on entry of sequences when necessary. Establish GNAT
483         condition handler in the proper cases for VMS.
484         (Handled_Sequence_Of_Statements_to_gnu): Start block code with
485         emit_sequence_entry_statements.
486
487         * utils2.c (find_common_type): If both input types are BLKmode and
488         have a constant size, use the smaller one.
489         (build_simple_component_ref): Also match if FIELD and NEW_FIELD are
490         the same.
491
492         * utils.c (value_factor_p): Make public, to allow uses from other gigi
493         units.
494         (create_type_decl): Do not set the flag DECL_IGNORED_P for dummy types.
495         (convert, case UNION_TYPE): Remove special treatment for unchecked
496         unions.
497
498         PR ada/18659
499         (update_pointer_to): Update variants of pointer types to
500         unconstrained arrays by attaching the list of fields of the main
501         variant.
502
503 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
504             Robert Dewar  <dewar@adacore.com>
505
506         * a-exexpr.adb, a-exexpr-gcc.adb
507         (Process_Raise_Exception): Removed, merged with Propagate_Exception.
508         (Propagate_Exception): Now take extra From_Signal_Handler parameter.
509         Remove code unused for exception propagation for the compiler itself
510         from a-except.adb and update to still share separate packages.
511
512         * a-except.ads, a-except.adb: Ditto.
513         Add comments that this version is now used only by the compiler and
514         other basic tools. The full version that includes the Ada 2005 stuff
515         is in separate files a-except-2005.ads/adb. The reason is that we do
516         not want to cause bootstrap problems with compilers not recognizing
517         Wide_Wide_String.
518         Add exception reason code PE_Implicit_Return
519         Add new exception reason code (Null Exception_Id)
520
521         * a-except-2005.adb, a-except-2005.ads: New files.
522
523         * s-wchcon.ads: (Get_WC_Encoding_Method): New function.
524
525         * s-wchcon.adb: New file.
526
527         * Makefile.in (LIBGNAT_SRCS): Add tb-gcc.c.
528         (traceback.o deps): Likewise.
529         (SPARC/Solaris): Accept sparc[64|v9]-sun-solaris.
530         Activate build of GMEM instrumentation library on VMS targets.
531         (gnatlib-sjlj, gnatlib-zcx): Pass EH_MECHANISM to make gnatlib.
532         Use a-except-2005.ads/adb for all run-time library builds unless
533         specified otherwise.
534         [VMS] (LIBGNAT_TARGET_PAIRS_AUX1,2): Rename s-parame-vms.ads to
535         s-parame-vms-alpha.ads and add s-parame-vms-ia64.ads.
536         Use s-parame.adb on all native platforms.
537         Use s-parame-vxworks.adb on all vxworks platforms.
538         Add env.c env.h in LIBGNAT_SRCS
539         Add env.o in LIBGNAT_OBJS
540         (GNATMAKE_OBJS): Remove ctrl_c.o object.
541         (LIBGNAT_TARGET_PAIRS for x86-vxworks): Use an specialized version of
542         s-osinte.adb, s-tpopsp.adb, and system.ads for the run time that
543         supports VxWorks 6 RTPs.
544         (EXTRA_GNATRTL_NONTASKING_OBJS for x86-vxworks): Remove the use of
545         i-vxworks and i-vxwoio from the run time that supports VxWorks 6 RTPs.
546
547         * types.h, types.ads (Terminate_Program): New exception
548         Add comment on modifying multiple versions of a-except.adb when the
549         table of exception reasons is modified.
550         Add exception reason code PE_Implicit_Return
551         Add new exception reason code (Null Exception_Id)
552
553         * clean.adb (Initialize): Get the target parameters before checking
554         if target is OpenVMS. Move the OpenVMS specific code here from package
555         body elaboration code.
556
557 2006-02-13  Thomas Quinot  <quinot@adacore.com>
558             Vincent Celier  <celier@adacore.com>
559             Robert Dewar  <dewar@adacore.com>
560
561         * ali-util.adb (Get_File_Checksum): Update to account for change in
562         profile of Initialize_Scanner.
563
564         * gprep.adb (Gnatprep): Update to account for change in profile of
565         Initialize_Scanner.
566         (Process_One_File): Same.
567
568         * lib.adb (Get_Code_Or_Source_Unit): New subprogram factoring the
569         common code between Get_Code_Unit and Get_Source_Unit. Reimplement
570         that behaviour using the new Unit information recorded in the source
571         files table, rather than going through all units every time.
572         (Get_Code_Unit): Reimplement in terms of Get_Code_Or_Source_Unit.
573         (Get_Source_Unit): Same.
574
575         * prepcomp.adb (Parse_Preprocessing_Data_File): Update to account for
576         change in profile of Initialize_Scanner.
577         (Prepare_To_Preprocess): Same.
578
579         * lib.ads: Fix typo in comment (templace -> template).
580
581         * prj-part.adb (Parse_Single_Project): Update to account for change in
582         profile of Initialize_Scanner.
583
584         * scn.adb (Initialize_Scanner): Account for change in profile of
585         Scng.Initialize_Scanner: set Current_Source_Unit in Scn instead of Scng.
586         Also record the association of the given Source_File_Index to the
587         corresponding Unit_Number_Type.
588
589         * scng.ads, scng.adb (Initialize_Scanner.Set_Reserved): Remove
590         procedure.
591         (Initialize_Scanner): Call Scans.Initialize_Ada_Keywords.
592         Remove Unit formal for generic scanner: this formal
593         is only relevant to Scn (the scanner instance used to parse Ada source
594         files), not to other instances. Update comment accordingly.
595         (Scan): Use new function Snames.Is_Keyword_Name.
596
597         * sinfo-cn.adb: Fix typo in comment.
598
599         * sinput.adb (Unit, Set_Unit): Accessors for new source file attribute
600         Unit.
601
602         * sinput.ads (Source_File_Record): New component Unit, used to capture
603         the unit identifier (if any) associated to a source file.
604
605         * sinput-c.adb, sinput-l.adb (Load_File): Initialize new component
606         Unit in Source_File_Record.
607
608         * sinput-p.adb (Source_File_Is_Subunit): Update to account for change
609         in profile of Initialize_Scanner.
610
611         * scans.adb (Initialize_Ada_Keywords): New procedure
612
613         * scans.ads (Initialize_Ada_Keywords): New procedure to initialize the
614         Ada keywords in the Namet table, without the need to call
615         Initialize_Scanner.
616
617         * snames.adb: Add pragma Ada_2005 (synonym for Ada_05)
618         (Is_Keyword_Name): New function
619
620         * snames.ads: Add subtype Configuration_Pragma_Names
621         Add pragma Ada_2005 (synonym for Ada_05)
622         (Is_Keyword_Name): New function
623
624         * snames.h: Add pragma Ada_2005 (synonym for Ada_05)
625
626 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
627
628         * a-stwisu.adb, a-strsup.adb, a-stzsup.adb (Super_Slice): Fix slice
629         index.
630
631         * a-stwima.adb (To_Set): Add extra check when N = 0.
632
633         * g-regpat.adb: (Match_Simple_Operator): Avoid possible overflow.
634
635 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
636
637         * s-parame-mingw.adb, s-parame-linux.adb,
638         s-parame-solaris.adb: Removed, replaced by s-parame.adb
639
640         * s-parame-vxworks.ads: Fix typo.
641
642         * s-parame-vxworks.adb: New file.
643
644         * s-parame.adb: Version now used by all native platforms.
645         (Default_Stack_Size): Use 2 megs for default stack size and use
646         __gl_default_stack_size when available.
647         (Minimum_Stack_Size): Use 12K.
648
649         * s-taprop-mingw.adb: Set default stack size linker switch to 2megs.
650         (Create_Task): Refine implementation taking advantage of the XP stack
651         size support. On XP, we now create the thread using the flag
652         STACK_SIZE_PARAM_IS_A_RESERVATION.
653
654         * s-osinte-mingw.ads (Stack_Size_Param_Is_A_Reservation): New constant.
655
656         * sysdep.c (__gnat_is_windows_xp): New routine, returns 1 on Windows
657         XP and 0 on older Windows versions.
658
659         * interfac-vms.ads: Removed, no longer used.
660
661 2006-02-13  Matthew Heaney  <heaney@adacore.com>
662
663         * a-rbtgso.adb, a-crbtgo.adb, a-crbtgk.adb, a-coorse.adb, 
664         a-cohama.adb, a-ciorse.adb, a-cihama.adb, a-cihase.adb, 
665         a-cohase.adb: All explicit raise statements now include an exception
666         message.
667
668         * a-ciormu.ads, a-ciormu.adb, a-coormu.ads, a-coormu.adb
669         (Update_Element_Preserving_Key): renamed op to just Update_Element.
670         Explicit raise statements now include an exception message
671
672         * a-cihase.ads, a-cohase.ads: Removed comment.
673
674         * a-stboha.ads, a-stboha.adb, a-stfiha.ads, a-envvar.adb,
675         a-envvar.ads, a-swbwha.ads, a-swbwha.adb, a-swfwha.ads, a-szbzha.ads,
676         a-szbzha.adb, a-szfzha.ads: New files.
677
678 2006-02-13  Matthew Heaney  <heaney@adacore.com>
679
680         * a-cgcaso.adb, a-cgaaso.adb: Implemented using heapsort instead of
681         quicksort.
682
683 2006-02-13  Eric Botcazou  <ebotcazou@adacore.com>
684
685         * lang.opt: Wvariadic-macros: New option.
686         Wold-style-definition: Likewise.
687         Wmissing-format-attribute: Likewise.
688
689         * misc.c (gnat_handle_option): New cases for -Wvariadic-macros,
690         -Wold-style-definition and -Wmissing-format-attribute.
691
692 2006-02-13  Robert Dewar  <dewar@adacore.com>
693
694         * a-ticoio.ads, a-ticoio.adb: Add use clause (moved here from spec)
695
696         * a-coteio.ads, a-lcteio.ads, a-llctio.ads, a-scteio.ads: New files.
697
698 2006-02-13  Nicolas Roche  <roche@adacore.com>
699
700         * a-envvar.adb, a-envvar.ads: New files.
701
702 2006-02-13  Douglas Rupp  <rupp@adacore.com>
703
704         * s-parame-vms.ads: Renamed to s-parame-vms-alpha.ads
705
706         * s-parame-vms-alpha.ads, s-parame-vms-ia64.ads: New files.
707
708 2006-02-13  Pat Rogers  <rogers@adacore.com>
709
710         * a-rttiev.adb, a-rttiev.ads: New files.
711
712 2006-02-13  Hristian Kirtchev  <kirtchev@adacore.com>
713
714         * a-tiboio.adb, a-tiboio.ads, a-wwboio.adb,
715         a-wwboio.ads, a-zzboio.adb, a-zzboio.ads:  New files.
716
717         * impunit.adb, Makefile.rtl: Added new Ada 2005 units.
718
719 2006-02-13  Robert Dewar  <dewar@adacore.com>
720
721         * rtsfind.adb, exp_prag.adb, lib-writ.adb, par-labl.adb, 
722         sem_case.adb: Minor code reorganization (not Present should be No)
723
724 2006-02-13  Geert Bosch  <bosch@adacore.com>
725             Gary Dismukes  <dismukes@adacore.com>
726
727         * a-tifiio.adb (Put_Digits): Test Last against To'First - 1 instead of
728         0, since the lower bound of the actual string may be greater than one.
729
730         PR ada/20753
731
732         (Put): Fix condition to raise Layout_Error when invalid
733         layout is requested.
734
735 2006-02-13  Vincent Celier  <celier@adacore.com>
736
737         * back_end.adb (Scan_Compiler_Arguments): Check if
738         Search_Directory_Present is True and, if it is, add the argument in
739         the source search directory path.
740
741         * switch-c.adb (Scan_Front_End_Switches): Accept switch "-I". Set
742         Search_Directory_Present to True.
743
744 2006-02-13  Joel Brobecker  <brobecke@adacore.com>
745
746         * bindgen.adb (Gen_Main_C): declare the ensure_reference variable as
747         volatile, to tell the compiler to preserve this variable at any level
748         of optimization.
749         (Gen_Versions_Ada): Temporarily work around codegen bug.
750
751 2006-02-13  Vincent Celier  <celier@adacore.com>
752
753         * gnatlink.adb (Process_Binder_File): If -shared is specified, invoke
754         gcc to link with option -shared-libgcc.
755         (Gnatlink): Remove duplicate switches -shared-libgcc
756
757 2006-02-13  Robert Dewar  <dewar@adacore.com>
758
759         * gnatvsn.ads (Current_Year): New constant, used to easily update
760         copyright on all GNAT tools.
761
762         * gnatls.adb, gnatname.adb, vms_conv.adb: Add 2006 to displayed
763         copyright notice.
764
765 2006-02-13  Robert Dewar  <dewar@adacore.com>
766
767         * erroutc.ads, erroutc.adb (Set_Message_Blank): Don't insert space
768         after hyphen (small aesthetic change useful for a range of numbers
769         using ^-^.
770         Suppress range checks for a couple of assignments which otherwise
771         cause validity checks with validity checking turned on.
772
773         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Size):
774         Improvement in error message for object.
775         (Rep_Item_Too_Late): Remove '!' in warning message.
776
777 2006-02-13  Robert Dewar  <dewar@adacore.com>
778             Eric Botcazou  <ebotcazou@adacore.com>
779
780         * err_vars.ads: Suppress range checks for a couple of assignments
781         which otherwise cause validity checks with validity checking turned on.
782         Update comments.
783
784         * errout.adb (Error_Msg_Internal): Do not suppress warning messages.
785         Make message unconditional if it is a warning.
786         (Error_Msg_NEL): Always output warning messages.
787         Suppress range checks for a couple of assignments which otherwise
788         cause validity checks with validity checking turned on.
789
790         * errout.ads (Message Insertion Characters): Document that '!' is
791         implied by '?' in error messages.
792
793         * gnat1drv.adb: (Bad_Body): Remove '!' in warning message.
794         (Gnat1drv): Use a goto to end of main subprogram instead of
795         Exit_Program (E_Success) so that finalization can occur normally.
796
797 2006-02-13  Eric Botcazou  <ebotcazou@adacore.com>
798
799         * s-stchop.adb (Stack_Check): Raise Storage_Error if the argument has
800         wrapped around.
801
802 2006-02-13  Vincent Celier  <celier@adacore.com>
803
804         * a-direct.adb (Duration_To_Time, OS_Time_To_Long_Integer): New
805         Unchecked_Conversion functions.
806         (Modification_Time): Use direct conversion of OS_Time to Calendar time
807         when OpenVMS returns False.
808
809         * a-dirval-mingw.adb, a-dirval-vms.adb, a-dirval.ads,
810         a-dirval.adb (OpenVMS): New Boolean function
811
812 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
813             Thomas Quinot  <quinot@adacore.com>
814
815         * checks.adb (Build_Discriminant_Checks): If the expression being
816         checks is an aggregate retrieve the values of its discriminants to
817         generate the check, rather than creating a temporary and a reference
818         to it.
819         (Apply_Access_Check): Rewritten to handle new Is_Known_Null flag
820         (Install_Null_Excluding_Check): Ditto
821         (Selected_Length_Checks): Build actual subtype for the original Ck_Node,
822         not for the renamed object, so that the actual itype is attached in the
823         proper context.
824
825 2006-02-13  Robert Dewar  <dewar@adacore.com>
826             Vincent Celier  <celier@adacore.com>
827
828         * debug.adb: Eliminate numeric switches for binder/gnatmake
829
830         * switch-m.adb (Normalize_Compiler_Switches): Record numeric debug
831         switches for the compiler.
832         (Scan_Make_Switches): Do not allow numeric debug switches for gnatmake
833         (Scan_Make_Switches): When failing with an illegal switch, output an
834         error message with the full switch.
835         Eliminate numeric switches for binder/gnatmake
836
837         * switch.ads, switch.adb (Bad_Switch): New procedure
838
839         * switch-b.adb (Scan_Binder_Switches): Do not accept combined switches.
840         Remove 0-9 as debug flag character possibilities
841         -d is now controlling the primary stack size when its value is a
842         positive. Also add checks against invalid values, and support for kb,
843         mb. Ditto for -D switch.
844
845 2006-02-13  Robert Dewar  <dewar@adacore.com>
846             Serguei Rybin  <rybin@adacore.com>
847
848         * opt.ads opt.adb: Add Ada_Version_Explicit_Config along with
849         save/restore routines.
850         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
851         were not always properly handled previously.
852         Since we are changing the tree format anyway, also get rid of the
853         junk obsolete Immediate_Errors flag.
854         (Tree_Read): Change the way of reading Tree_Version_String - now we
855         read the version string from the tree even if its length is not the
856         same as the length of the version string computed from Gnatvsn.
857         (Search_Directory_Present): New Boolean flag for the compiler.
858         Define Tree_Version_String as a dynamic string.
859         (Default_Stack_Size): new variable, used to handle switch -d.
860
861         * par-prag.adb: 
862         For pragma Ada_2005, remove stuff about setting Ada_Version_Explicit
863         only for main unit.
864         Add pragma Ada_2005 (synonym for Ada_05)
865         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
866         were not always properly handled previously.
867
868         * directio.ads, ioexcept.ads, sequenio.ads, text_io.ads: Change
869         explicit Ada_95 to Ada_2005.
870
871 2006-02-13  Javier Miranda  <miranda@adacore.com>
872             Robert Dewar  <dewar@adacore.com>
873             Ed Schonberg  <schonberg@adacore.com>
874
875         * einfo.ads, einfo.adb (First_Tag_Component): Protect the frontend
876         against errors in the source program: a private types for which the
877         corresponding full type declaration is missing and pragma CPP_Virtual
878         is used.
879         (Is_Unchecked_Union): Check flag on Implementation_Base_Type.
880         (Is_Known_Null): New flag
881         (Has_Pragma_Pure): New flag
882         (No_Return): Present in all entities, set only for procedures
883         (Is_Limited_Type): A type whose ancestor is an interface is limited if
884         explicitly declared limited.
885         (DT_Offset_To_Top_Func): New attribute that is present in E_Component
886         entities. Only used for component marked Is_Tag. If present it stores
887         the Offset_To_Top function used to provide this value in tagged types
888         whose ancestor has discriminants.
889
890         * exp_ch2.adb: Update status of new Is_Known_Null flag
891
892         * sem_ch7.adb: Maintain status of new Is_Known_Null flag
893
894         * sem_cat.adb (Get_Categorization): Don't treat function as Pure in
895         the categorization sense if Is_Pure was set by pragma Pure_Function.
896
897 2006-02-13  Quentin Ochem  <ochem@adacore.com>
898             Olivier Hainque  <hainque@adacore.com>
899
900         * bindusg.adb: Updated documentation for -d and -D switches.
901
902         * raise.h (__gnat_set_globals): added new parameter for
903         Default_Stack_Size.
904
905         * init.c (__gnat_adjust_context_for_raise) <alpha-vms case>: Implement.
906         (__gnat_handle_vms_condition): Adjust context before raise.
907         (__gnat_install_handler): Restore the global vector setup for GCC
908         versions before 3.4, as the frame based circtuitry is not available
909         in this case.
910         (__gnat_set_globals): added a parameter default_stack_size
911         (__gl_default_stack_size): new variable.
912
913 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
914
915         * exp_aggr.adb (Build_Array_Aggr_Code): Rename variable
916         "Others_Mbox_Present" to "Others_Box_Present" because the mbox concept
917         does not exist in the Ada RM.
918         (Compatible_Int_Bounds): Determine whether two integer range bounds
919         are of equal length and have the same start and end values.
920         (Is_Int_Range_Bounds): Determine whether a node is an integer range.
921         (Build_Record_Aggr_Code): Perform proper sliding of a nested array
922         aggregate when it is part of an object declaration.
923         (Build_Record_Aggr_Code)  If the aggregate ttype is a derived type that
924         constrains discriminants of its parent, add explicitly the discriminant
925         constraints of the ancestor by retrieving them from the
926         stored_constraint of the parent.
927
928 2006-02-13  Robert Dewar  <dewar@adacore.com>
929
930         * exp_attr.adb (Expand_N_Attribute_Reference, case Mechanism_Code): If
931         attribute Mechanism_Code is applied to renamed subprogram, modify
932         prefix to point to base subprogram.
933         Max/Min attributes now violate Restriction No_Implicit_Conditionals
934
935         * sinfo.ads: Document that Mechanism_Code cannot be applied to
936         renamed subprograms so that the front-end must replace the prefix
937         appropriately.
938
939 2006-02-13  Javier Miranda  <miranda@adacore.com>
940             Gary Dismukes  <dismukes@adacore.com>
941
942         * exp_ch3.adb (Component_Needs_Simple_Initialization): Add check for
943         availability of RE_Interface_Tag.
944         (Build_Initialization_Call): Fix wrong access to the discriminant value.
945         (Freeze_Record_Type): Do not generate the tables associated with
946         timed and conditional dispatching calls through synchronized
947         interfaces if compiling under No_Dispatching_Calls restriction.
948         When compiling for Ada 2005, for a nonabstract
949         type with a null extension, call Make_Controlling_Function_Wrappers
950         and insert the wrapper function declarations and bodies (the latter
951         being appended as freeze actions).
952         (Predefined_Primitive_Bodies): Do not generate the bodies of the
953         predefined primitives associated with timed and conditional
954         dispatching calls through synchronized interfaces if we are
955         compiling under No_Dispatching_Calls.
956         (Build_Init_Procedure):  Use RTE_Available to check if a run-time
957         service is available before generating a call.
958         (Make_Controlling_Function_Wrappers): New procedure.
959         (Expand_N_Full_Type_Declaration): Create a class-wide master for
960         access-to-limited-interfaces because they can be used to reference
961         tasks that implement such limited interface.
962         (Build_Offset_To_Top_Functions): Build the tree corresponding to the
963         procedure spec and body of the Offset_To_Top function that is generated
964         when the parent of a type with discriminants has secondary dispatch
965         tables.
966         (Init_Secondary_Tags): Handle the case in which the parent of the type
967         containing secondary dispatch tables has discriminants to generate the
968         correct arguments to call Set_Offset_To_Top.
969         (Build_Record_Init_Proc): Add call to Build_Offset_To_Top_Functions.
970
971         * a-tags.ads, a-tags.adb: (Check_Index): Removed.
972         Add Wide_[Wide_]Expanded_Name.
973         (Get_Predefined_Prim_Op_Address): New subprogram that provides exactly
974         the same functionality of Get_Prim_Op_Address but applied to predefined
975         primitive operations because the pointers to the predefined primitives
976         are now saved in a separate table.
977         (Parent_Size): Modified to get access to the separate table of primitive
978         operations or the parent type.
979         (Set_Predefined_Prim_Op_Address): New subprogram that provides the same
980         functionality of Set_Prim_Op_Address but applied to predefined primitive
981         operations.
982         (Set_Signature): New subprogram used to store the signature of a DT.
983         (Displace): If the Offset_To_Top value is not static then call the
984         function generated by the expander to get such value; otherwise use
985         the value stored in the table of interfaces.
986         (Offset_To_Top): The type of the actual has been changed to Address to
987         give the correct support to tagged types with discriminants. In this
988         case this value is stored just immediately after the tag field.
989         (Set_Offset_To_Top): Two new formals have been added to indicate if the
990         offset_to_top value is static and hence pass this value to the run-time
991         to store it in the table of interfaces, or else if this value is dynamic
992         and then pass to the run-time the address of a function that is
993         generated by the expander to provide this value for each object of the
994         type.
995
996         * rtsfind.ads (Default_Prin_Op_Count): Removed.
997         (Default_Prim_Op_Count): New entity
998         (Get_Predefined_Prim_Op_Address): New entity
999         (Set_Predefined_Prim_Op_Address): New entity
1000         (RE_Set_Signature): New entity
1001
1002 2006-02-13  Thomas Quinot  <quinot@adacore.com>
1003             Ed Schonberg  <schonberg@adacore.com>
1004
1005         * exp_ch4.adb (Expand_Allocator_Expression): Pass Allocator => True to
1006         Make_Adjust_Call done for a newly-allocated object.
1007
1008         * exp_ch7.ads, exp_ch7.adb (Expand_Cleanup_Actions): If the statements
1009         in a subprogram are wrapped in a cleanup block, indicate that the
1010         subprogram contains an inner block with an exception handler.
1011         (Make_Adjust_Call): New Boolean formal Allocator indicating whether the
1012         Adjust call is for a newly-allocated object. In that case we must not
1013         assume that the finalization list chain pointers are correct (since they
1014         come from a bit-for-bit copy of the original object's pointers) so if
1015         the attach level would otherwise be zero (no change), we set it to 4
1016         instead to cause the pointers to be reset to null.
1017
1018         * s-finimp.adb (Attach_To_Final_List): New attach level: 4, meaning
1019         reset chain pointers to null.
1020
1021 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
1022
1023         * exp_ch5.adb (Expand_Assign_Array): If the right-hand side is a
1024         string, and the context requires a loop for the assignment (e.g.
1025         because the left-hand side is packed), generate a unique name for the
1026         temporary that holds the string, to prevent spurious name clashes.
1027
1028 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
1029             Javier Miranda  <miranda@adacore.com>
1030             Robert Dewar  <dewar@adacore.com>
1031             Gary Dismukes  <dismukes@adacore.com>
1032
1033         * exp_ch6.adb (Expand_Inlined_Call): Handle calls to functions that
1034         return unconstrained arrays.
1035         Update comments.
1036         (Expand_Call):  An indirect call through an access parameter of a
1037         protected operation is not a protected call.
1038         Add circuit to raise CE in Ada 2005 mode following call
1039         to Raise_Exception.
1040         (Register_DT_Entry): Do nothing if
1041         the run-time does not give support to abstract interfaces.
1042         (Freeze_Subprogram): In case of dispatching operations, do not generate
1043         code to register the operation in the dispatch table if the source
1044         is compiled with No_Dispatching_Calls.
1045         (Register_Predefined_DT_Entry): Generate code that calls the new
1046         run-time subprogram Set_Predefined_Prim_Op_Address instead of
1047         Set_Prim_Op_Address.
1048
1049         * sem_ch5.adb (Analyze_Assignment_Statement): Do not apply length checks
1050         on array assignments if the right-hand side is a function call that has
1051         been inlined. Check is performed on the assignment in the block.
1052         (Process_Bounds): If bounds and range are overloaded, apply preference
1053         rule for root operations to disambiguate, and diagnose true ambiguity.
1054         (Analyze_Assignment): Propagate the tag for a class-wide assignment with
1055         a tag-indeterminate right-hand side even when Expander_Active is True.
1056         Needed to ensure that dispatching calls to T'Input are allowed and
1057         get the tag of the target class-wide object.
1058
1059         * sem_ch6.adb (New_Overloaded_Entity): Handle entities that override
1060         an inherited primitive operation that already overrides several
1061         abstract interface primitives. For transitivity, the new entity must
1062         also override all the abstract interface primitives covered by the
1063         inherited overriden primitive.
1064         Emit warning if new entity differs from homograph in same scope only in
1065         that one has an access parameter and the other one has a parameter of
1066         a general access type with the same designated type, at the same
1067         position in the signature.
1068         (Make_Inequality_Operator): Use source locations of parameters and
1069         subtype marks from corresponding equality operator when creating the
1070         tree structure for the implicit declaration of "/=". This does not
1071         change anything in behaviour except that the decoration of the
1072         components of the subtree created for "/=" allows ASIS to get the
1073         string images of the corresponding identifiers.
1074         (Analyze_Return_Statement): Remove '!' in warning message.
1075         (Check_Statement_Sequence): Likewise.
1076         (Analyze_Subprogram_Body): For an access parameter whose designated type
1077         is an incomplete type imported through a limited_with clause, use the
1078         type of the corresponding formal in the body.
1079         (Check_Returns): Implicit return in No_Return procedure now raises
1080         Program_Error with a compile time warning, instead of beging illegal.
1081         (Has_Single_Return):  Function returning unconstrained type cannot be
1082         inlined if expression in unique return statement is not an identifier.
1083         (Build_Body_To_Inline): It is possible to inline a function call that
1084         returns an unconstrained type if all return statements in the function
1085         return the same local variable. Subsidiary procedure Has_Single_Return
1086         verifies that the body conforms to this restriction.
1087
1088         * sem_res.adb (Resolve_Equality_Op): If the operands do not have the
1089         same type, and  one of them is of an anonymous access type, convert
1090         the other operand to it, so that this is a valid binary operation for
1091         gigi.
1092         (Resolve_Type_Conversion): Handle subtypes of protected types and
1093         task types when accessing to the corresponding record type.
1094         (Resolve_Allocator): Add '\' in 2-line warning message.
1095         Remove '!' in warning message.
1096         (Resolve_Call): Add '\' in 2-line warning message.
1097         (Valid_Conversion): Likewise.
1098         (Resolve_Overloaded_Selected_Component): If disambiguation succeeds, the
1099         resulting type may be an access type with an implicit dereference.
1100         Obtain the proper component from the designated type.
1101         (Make_Call_Into_Operator): Handle properly a call to predefined equality
1102         given by an expanded name with prefix Standard, when the operands are
1103         of an anonymous access type.
1104         (Check_Fully_Declared_Prefix): New procedure, subsidiary of Resolve_
1105         Explicit_Dereference and Resolve_Selected_Component, to verify that the
1106         prefix of the expression is not of an incomplete type. Allows full
1107         diagnoses of all semantic errors.
1108         (Resolve_Actuals): If the actual is an allocator whose directly
1109         designated type is a class-wide interface we build an anonymous
1110         access type to use it as the type of the allocator. Later, when
1111         the subprogram call is expanded, if the interface has a secondary
1112         dispatch table the expander will add a type conversion to force
1113         the displacement of the pointer.
1114         (Resolve_Call): If a function that returns an unconstrained type is
1115         marked Inlined_Always and inlined, the call will be inlined and does
1116         not require the creation of a transient scope.
1117         (Check_Direct_Boolean_Op): Removed
1118         (Resolve_Comparison_Op): Remove call to above
1119         (Resolve_Equality_Op): Remove call to above
1120         (Resolve_Logical_Op): Inline above, since this is only call.
1121         (Valid_Conversion): Handle properly conversions between arrays of
1122         convertible anonymous access types.
1123
1124         PR ada/25885
1125
1126         (Set_Literal_String_Subtype): If the lower bound is not static, wrap
1127         the literal in an unchecked conversion, because GCC 4.x needs a static
1128         value for a string bound.
1129
1130 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
1131             Hristian Kirtchev  <kirtchev@adacore.com>
1132
1133         * exp_ch9.adb (Expand_N_Protected_Type_Declaration): When creating the
1134         components of the corresponding record, take into account component
1135         definitions that are access definitions.
1136         (Expand_N_Asynchronous_Select): A delay unit statement rewritten as a
1137         procedure is not considered a dispatching call and will be expanded
1138         properly.
1139
1140 2006-02-13  Javier Miranda  <miranda@adacore.com>
1141
1142         * exp_disp.ads, exp_disp.adb (Expand_Dispatching_Call): If the
1143         controlling argument of the dispatching call is an abstract interface
1144         class-wide type then we use it directly.
1145         Check No_Dispatching_Calls restriction.
1146         (Default_Prim_Op_Position): Remove the code that looks for the last
1147         entity in the list of aliased subprograms. This code was wrong in
1148         case of renamings.
1149         (Fill_DT_Entry): Add assertion to avoid the use of this subprogram
1150         when the source is compiled with the No_Dispatching_Calls restriction.
1151         (Init_Predefined_Interface_Primitives): No need to inherit primitives
1152         if we are compiling with restriction No_Dispatching_Calls.
1153         (Make_Disp_XXX): Addition of assertion to avoid the use of all these
1154         subprograms if we are compiling under No_Dispatching_Calls restriction.
1155         (Make_DT): Generate a dispatch table with a single dummy entry if
1156         we are compiling with the No_Dispatching_Calls restriction. In
1157         addition, in this case we don't generate code that calls to the
1158         following run-time subprograms: Set_Type_Kind, Inherit_DT.
1159         (Make_Select_Specific_Data_Table): Add assertion to avoid the use
1160         of this subprogram if compiling with the No_Dispatching_Calls
1161         restriction.
1162         (Expand_Type_Conversion): Instead of using the actual parameter,
1163         the argument passed as parameter to the conversion function was
1164         erroneously referenced by the expander.
1165         (Ada_Actions): Addition of Get_Predefined_Prim_Op_Address,
1166         Set_Predefined_Primitive_Op_Address and Set_Signature.
1167         (Expand_Dispatching_Call): Generate call to
1168         Get_Predefined_Prim_Op_Address for predefined primitives.
1169         (Fill_DT_Entry): Generate call to Set_Predefined_Prim_Op_Address for
1170         predefined primitives.
1171         (Make_DT, Make_Secondary_DT): If the tagged type has no user defined
1172         primitives we reserve one dummy entry to ensure that the tag does not
1173         point to some memory that is associated with some other object. In
1174         addition, remove all the old code that generated the assignments
1175         associated with the signature of the dispatch table and replace them
1176         by a call to the new subprogram Set_Signature.
1177         (Set_All_DT_Position): Change the algorithm because now we have a
1178         separate dispatch table associated with predefined primitive operations.
1179         (Expand_Interface_Conversion): In case of non-static offset_to_top
1180         add explicit dereference to get access to the object after the call
1181         to displace the pointer to the object.
1182         (Expand_Interface_Thunk): Modify the generation of the actual used
1183         in the calls to the run-time function Offset_To_Top to fulfil its
1184         new interface.
1185         (Make_DT): Add the new actuals required to call Set_Offset_To_Top.
1186
1187 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
1188
1189         * exp_dist.adb (Copy_Specification): For access parameters, copy
1190         Null_Exclusion flag, which will have been set for stream subprograms
1191         in Ada2005 mode.
1192
1193 2006-02-13  Pascal Obry  <obry@adacore.com>
1194
1195         * expect.c (__gnat_expect_portable_execvp): New implementation. The
1196         previous implementation was using the C runtime spawnve routine but
1197         the corresponding wait was using directly the Win32 API. This was
1198         causing some times a lock when waiting for an event using
1199         WaitForSingleObject in __gnat_waitpid. This new implementation uses
1200         the Win32 CreateProcess routine. Avoiding mixing C runtime and Win32
1201         API fixes this problem.
1202
1203 2006-02-13  Robert Dewar  <dewar@adacore.com>
1204
1205         * exp_intr.adb (Expand_Unc_Deallocation): Correct error of bad analyze
1206         call.
1207
1208 2006-02-13  Thomas Quinot  <quinot@adacore.com>
1209
1210         * exp_pakd.ads: Fix typos in comments.
1211
1212         * exp_pakd.adb (Convert_To_PAT_Type): For the case of a bit packed
1213         array reference that is an explicit dereference, mark the converted
1214         (packed) array reference as analyzed to prevent a forthcoming
1215         reanalysis from resetting its type to the original (non-packed) array
1216         type.
1217
1218 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
1219             Javier Miranda  <miranda@adacore.com>
1220             Eric Botcazou  <ebotcazou@adacore.com>
1221
1222         * exp_util.ads, exp_util.adb (Find_Prim_Op,
1223         Is_Predefined_Primitive_Operation): When
1224         searching for the predefined equality operator, verify that operands
1225         have the same type.
1226         (Is_Predefined_Dispatching_Operation): Remove the code that looks
1227         for the last entity in the list of aliased subprograms. This code
1228         was wrong in case of renamings.
1229         (Set_Renamed_Subprogram): New procedure
1230         (Remove_Side_Effects): Replace calls to Etype (Exp) with use of the
1231         Exp_Type constant computed when entering this subprogram.
1232         (Known_Null): New function
1233         (OK_To_Do_Constant_Replacement): New function
1234         (Known_Non_Null): Check scope before believing Is_Known_Non_Null flag
1235         (Side_Effect_Free): An attribute reference 'Input is not free of
1236         side effect, unlike other attributes that are functions. (from code
1237         reading).
1238         (Remove_Side_Effects): Expressions that involve packed arrays or records
1239         are copied at the point of reference, and therefore must be marked as
1240         renamings of objects.
1241         (Is_Predefined_Dispatching_Operation): Return false if the operation is
1242         not a dispatching operation.
1243
1244         PR ada/18819
1245         (Remove_Side_Effects): Lift enclosing type conversion nodes for
1246         elementary types in all cases.
1247
1248 2006-02-13  Javier Miranda  <miranda@adacore.com>
1249
1250         * freeze.adb (Freeze_Entity): Handle subtypes of protected types and
1251         task types when accessing to the corresponding record type.
1252         Remove '!' in warning message.
1253
1254 2006-02-13  Olivier Hainque  <hainque@adacore.com>
1255
1256         * g-altive.ads (VECTOR_ALIGNMENT): Set to Min (16, Max_Alignment),
1257         to avoid useless and space inefficient overalignments on targets where
1258         Max_Alignment is larger than 16.
1259
1260 2006-02-13  Pascal Obry  <obry@adacore.com>
1261
1262         * g-catiio.adb (Sec_Number): New type used to compute the number of
1263         seconds since 1-1-1970.
1264         (Image) [Natural]: The parameter was an Integer, as we can't deal with
1265         negative numbers (years, months...) it is better to have a Natural here.
1266         Code clean-up.
1267         (Image) [Number]: Change parameter from Long_Integer to Number.
1268         (Image): Use Number type to compute the seconds since 1-1-1970 to fix an
1269         overflow for dates past year 2038.
1270
1271 2006-02-13  Matthew Heaney  <heaney@adacore.com>
1272
1273         *  g-dyntab.adb (Index_Of): conversion from Natural can no longer raise
1274         Constraint_Error.
1275
1276 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
1277
1278         * gnatbind.adb (Scan_Bind_Arg): Replace error by warning on -M and
1279         native platforms.
1280         (Gnatbind): Do not call Exit_Program (E_Success) at the end, so that
1281         finalization can occur normally.
1282
1283 2006-02-13  Vincent Celier  <celier@adacore.com>
1284
1285         * gnatcmd.adb (Rules_Switches): New table
1286         (Add_To_Rules_Switches): New procedure
1287         (GNATCmd): For command CHECK, put all options following "-rules" in the
1288         Rules_Switches table. Append these -rules switches after the -cargs
1289         switches.
1290
1291 2006-02-13  Robert Dewar  <dewar@adacore.com>
1292
1293         * g-spipat.adb (Image, case PC_Assign_Imm and case PC_Assign_OnM):
1294         These two cases were generating incorrect output, and if this unit
1295         was built with checks on, generated a discriminant mismatch constraint
1296         error.
1297
1298 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
1299             Robert Dewar  <dewar@adacore.com>
1300
1301         * lib-xref.adb (Get_Type_Reference): For a private type whose full
1302         view is an array type, indicate the component type as well, for
1303         navigation purposes.
1304         (Generate_Reference): Don't consider array ref on LHS to be a case
1305         of violating pragma Unreferenced.
1306         Do not give Ada 2005 warning except on real reference.
1307
1308 2006-02-13  Vincent Celier  <celier@adacore.com>
1309
1310         * make.adb (Collect_Arguments_And_Compile): For VMS, when compiling the
1311         main source, add switch -mdebug-main=_ada_ so that the executable can
1312         be debugged by the standard VMS debugger.
1313         (Gnatmake): Set No_Main_Subprogram to True when there is no main
1314         subprogram, to avoid issuing -mdebug-main=_ada_ for VMS uselessly.
1315         Exit the Multi_Main_Loop when Unique_Compile is True after compilation
1316         of the last source, as the binding and linking phases are never
1317         performed.
1318         Set all executable obsolete when rebuilding a library.
1319
1320         * makeutl.adb (Linker_Options_Switches): Do not process empty linker
1321         options.
1322
1323 2006-02-13  Javier Miranda  <miranda@adacore.com>
1324
1325         PR ada/23973
1326
1327         * par-ch3.adb (P_Derived_Type_Def_Or_Private_Ext_Decl): Reorganize the
1328         code to improve the error message reported when the program has
1329         declarations of abstract interface types and it is not compiled with
1330         the -gnat05 switch.
1331         (P_Access_Definition): Reorganize the code to improve the error
1332         message reported when the new Ada 2005 syntax for anonymous
1333         access types is used and the program is not compiled with the
1334         -gnat05 switch.
1335
1336 2006-02-13  Robert Dewar  <dewar@adacore.com>
1337
1338         * par-ch6.adb, style.ads, styleg.adb, styleg.ads, stylesw.adb,
1339         stylesw.ads, usage.adb, vms_data.ads: Implement -gnatyI switch
1340         (MODE_IN)
1341
1342 2006-02-13  Javier Miranda  <miranda@adacore.com>
1343
1344         * par-endh.adb (Explicit_Start_Label): Add code to protect the parser
1345         against source containing syntax errors.
1346
1347 2006-02-13  Vincent Celier  <celier@adacore.com>
1348
1349         * prj.adb (Reset): Initialize the first element of table Namings with
1350         the standard naming data.
1351
1352 2006-02-13  Vincent Celier  <celier@adacore.com>
1353
1354         * prj.ads (Error_Warning): New enumeration type
1355
1356         * prj-nmsc.ads, prj-nmsc.adb (Error_Msg): If location parameter is
1357         unknown, use the location of the project to report the error.
1358         (When_No_Sources): New global variable
1359         (Report_No_Ada_Sources): New procedure
1360         (Check): New parameter When_No_Sources. Set value of global variable
1361         When_No_Sources,
1362         (Find_Sources): Call Report_No_Ada_Sources when appropriate
1363         (Get_Sources_From_File): Ditto
1364         (Warn_If_Not_Sources): Better warning messages indicating the unit name
1365         and the file name.
1366
1367         * prj-pars.ads, prj-pars.adb (Parse): New parameter When_No_Sources.
1368         Call Prj.Proc.Process with parameter When_No_Sources.
1369
1370         * prj-proc.ads, prj-proc.adb (Check): New parameter When_No_Sources.
1371         Call Recursive_Check with parameter When_No_Sources.
1372         (Recursive_Check): New parameter When_No_Sources. Call itself and
1373         Prj.Nmsc.Check with parameter When_No_Sources.
1374         (Process): New parameter When_No_Sources. Call Check with parameter
1375         When_No_Sources.
1376         (Copy_Package_Declarations): New procedure to copy renamed parameters
1377         and setting the location of the declared attributes to the location
1378         of the renamed package.
1379         (Process_Declarative_Items): Call Copy_Package_Declarations for renamed
1380         packages.
1381
1382 2006-02-13  Vincent Celier  <celier@adacore.com>
1383
1384         * prj-makr.adb (Make): Preserve the comments from the original project
1385         file.
1386         When removing nodes (attributes Source_Dirs, Source_Files,
1387         Source_List_File and package Naming), save the comments and attach the
1388         saved comments to the newly created nodes.
1389         Do not add a with clause for the naming package if one already exists.
1390
1391 2006-02-13  Javier Miranda  <miranda@adacore.com>
1392             Gary Dismukes  <dismukes@adacore.com>
1393             Robert Dewar  <dewar@adacore.com>
1394
1395         * restrict.ads (No_Dispatching_Calls): New GNAT restriction.
1396
1397         * sem_disp.adb (Override_Dispatching_Operation): Traverse the list of
1398         aliased entities to look for the overriden abstract interface
1399         subprogram.
1400         (Is_Interface_Subprogram): Complete documentation.
1401         (Check_Dispatching_Operation): Do not generate code to register the
1402         operation in the dispatch table if the source is compiled with
1403         restriction No_Dispatching_Calls.
1404         (Override_Dispatching_Operation): Check for illegal attempt to override
1405         No_Return procedure with procedure that is not No_Return
1406         (Check_Dispatching_Call): Suppress the check for an abstract operation
1407         when the original node of an actual is a tag-indeterminate attribute
1408         call, since the attribute, which must be 'Input, can never be abstract.
1409         (Is_Tag_Indeterminate): Handle checking of tag indeterminacy of a
1410         call to the Input attribute (even when rewritten).
1411         (Propagate_Tag): Augment comment to indicate the possibility of a call
1412         to an Input attribute.
1413
1414         * sem_disp.ads (Override_Dispatching_Operation): Moved to spec to allow
1415         calling it from Exp_Ch3.Make_Controlling_Function_Wrappers.
1416
1417         * s-rident.ads: (No_Dispatching_Calls): New GNAT restriction.
1418         No_Wide_Characters is no longer partition-wide
1419         No_Implementation_Attributes/Pragmas are now Ada 2005 (AI-257)
1420         rather than GNAT
1421
1422 2006-02-13  Douglas Rupp  <rupp@adacore.com>
1423
1424         * s-auxdec-vms_64.ads (Short_Address): Wrap it in a type.
1425
1426 2006-02-13  Javier Miranda  <miranda@adacore.com>
1427
1428         * sem_aggr.adb (Resolve_Record_Aggregate): Restructure the code that
1429         handles default-initialized components to keep separate the management
1430         of this feature but also avoid the unrequired resolution and
1431         expansion of components that do not have partially initialized
1432         values.
1433         (Collect_Aggr_Bounds): Add '\' in 2-line warning message.
1434         (Check_Bounds): Likewise.
1435         (Check_Length): Likewise.
1436
1437 2006-02-13  Javier Miranda  <miranda@adacore.com>
1438             Ed Schonberg  <schonberg@adacore.com>
1439
1440         * sem_attr.adb (Analyze_Attribute): In case of 'Class applied to an
1441         abstract interface type call analyze_and_resolve to expand the type
1442         conversion into the corresponding displacement of the
1443         reference to the base of the object.
1444         (Eval_Attribute, case Width): For systems where IEEE extended precision
1445         is supported, the maximum exponent occupies 4 decimal digits.
1446         (Accessibility_Message): Add '\' in 2-line warning message.
1447         (Resolve_Attribute): Likewise.
1448         (case Attribute_Access): Significantly revise checks
1449         for illegal access-to-subprogram Access attributes to properly enforce
1450         the rules of 3.10.2(32/2).
1451         Diagnose use of current instance with an illegal attribute.
1452
1453         * sem_util.ads, sem_util.adb (Enclosing_Generic_Body): Change formal
1454         to a Node_Id.
1455         (Enclosing_Generic_Unit): New function to return a node's innermost
1456         enclosing generic declaration node.
1457         (Compile_Time_Constraint_Error): Remove '!' in warning messages.
1458         (Type_Access_Level): The accessibility level of anonymous acccess types
1459         associated with discriminants is that of the current instance of the
1460         type, and that's deeper than the type itself (AARM 3.10.2 (12.3.21)).
1461         (Compile_Time_Constraint_Error): Handle case of conditional expression.
1462         (Kill_Current_Values_For_Entity): New function
1463         (Enter_Name): Change formal type to Entity_Id
1464
1465 2006-02-13  Hristian Kirtchev  <kirtchev@adacore.com>
1466             Ed Schonberg  <schonberg@adacore.com>
1467             Gary Dismukes  <dismukes@adacore.com>
1468
1469         * sem_ch10.adb (Check_Redundant_Withs): New procedure in
1470         Analyze_Compilation_Unit.
1471         Detect and warn on redundant with clauses detected in a package spec
1472         and/or body when -gnatwr is used.
1473         (Analyze_Context): Analyze config pragmas before other items
1474         (Install_Context_Items): Don't analyze config pragmas here
1475         (Install_Limited_Withed_Unit): Set limited entity of package in
1476         with_clause so that cross-reference information or warning messages on
1477         unused packages can be properly generated
1478         (Is_Visible_Through_Renamings): Return false if the limited_with_clause
1479         has Error_Posted set. Prevent infinite loops in illegal programs.
1480         (Check_Private_Child_Unit): Move test for a nonprivate with clause down
1481         to the point of the error test requiring the current unit to be private.
1482         This ensures that private with clauses are not exempted from the basic
1483         checking for being a descendant of the same library unit parent as a
1484         withed private descendant unit.
1485         (Check_Private_Limited_Withed_Unit): Revise the checking algorithm to
1486         handle private with clauses properly, as well as to account for cases
1487         where the withed unit is a public descendant of a private ancestor
1488         (in which case the current unit must be a descendant of the private
1489         ancestor's parent). The spec comments were updated accordingly. Also,
1490         the old error message in this subprogram was replaced with error
1491         messages that mirror the errors tested and reported by
1492         Check_Private_Child_Unit.
1493         Parameter and variable names improved for readability.
1494         (Install_Limited_Context_Clauses): Remove test for a withed unit being
1495         private as the precondition for calling
1496         Check_Private_Limited_Withed_Unit since that subprogram has been
1497         revised to test public units as well as private units.
1498
1499 2006-02-13  Thomas Quinot  <quinot@adacore.com>
1500             Robert Dewar  <dewar@adacore.com>
1501             Ed Schonberg  <schonberg@adacore.com>
1502             Javier Miranda  <miranda@adacore.com>
1503
1504         * sem_ch12.adb (Inline_Instance_Body): Remove erroneous assumption
1505         that Scope_Stack.First = 1.
1506         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
1507         were not always properly handled previously.
1508         (Formal_Entity): Complete rewrite, to handle properly some complex case
1509         with multiple levels of parametrization by formal packages.
1510         (Analyze_Formal_Derived_Type): Propagate Ada 2005 "limited" indicator
1511         to the corresponding derived type declaration for proper semantics.
1512
1513         * sem_prag.adb (Analyze_Pragma): Remove '!' in warning message.
1514         (Check_Component): Enforce restriction on components of
1515         unchecked_unions: a component in a variant cannot contain tasks or
1516         controlled types.
1517         (Unchecked_Union): Allow nested variants and multiple discriminants, to
1518         conform to AI-216.
1519         Add pragma Ada_2005 (synonym for Ada_05)
1520         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
1521         were not always properly handled previously.
1522         Document that pragma Propagate_Exceptions has no effect
1523         (Analyze_Pragma, case Pure): Set new flag Has_Pragma_Pure
1524         (Set_Convention_From_Pragma): Check that if a convention is
1525         specified for a dispatching operation, then it must be
1526         consistent with the existing convention for the operation.
1527         (CPP_Class): Because of the C++ ABI compatibility, the programmer is no
1528         longer required to specify an vtable-ptr component in the record. For
1529         compatibility reasons we leave the support for the previous definition.
1530         (Analyze_Pragma, case No_Return): Allow multiple arguments
1531
1532         * sem_ch3.ads, sem_ch3.adb (Check_Abstract_Overriding): Flag a
1533         non-overrideen inherited operation with a controlling result as
1534         illegal only its implicit declaration comes from the derived type
1535         declaration of its result's type.
1536         (Check_Possible_Deferred_Completion): Relocate the object definition
1537         node of the subtype indication of a deferred constant completion rather
1538         than directly analyzing it. The analysis of the generated subtype will
1539         correctly decorate the GNAT tree.
1540         (Record_Type_Declaration): Check whether this is a declaration for a
1541         limited derived record before analyzing components.
1542         (Analyze_Component_Declaration): Diagnose record types  not explicitly
1543         declared limited when a component has a limited type.
1544         (Build_Derived_Record_Type): Code reorganization to check if some of
1545         the inherited subprograms of a tagged type cover interface primitives.
1546         This check was missing in case of a full-type associated with a private
1547         type declaration.
1548         (Constant_Redeclaration): Check that the subtypes of the partial and the
1549         full view of a constrained deferred constant statically match.
1550         (Mentions_T): A reference to the current type in an anonymous access
1551         component declaration  must be an entity name.
1552         (Make_Incomplete_Type_Declaration): If type is tagged, set type of
1553         class_wide type to refer to full type, not to the incomplete one.
1554         (Add_Interface_Tag_Components): Do nothing if RE_Interface_Tag is not
1555         available. Required to give support to the certified run-time.
1556         (Analyze_Component_Declaration): In case of anonymous access components
1557         perform missing checks for AARM 3.9.2(9) and 3.10.2 (12.2).
1558         (Process_Discriminants): For an access discriminant, use the
1559         discriminant specification as the associated_node_for_itype, to
1560         simplify accessibility checks.
1561
1562 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
1563             Javier Miranda  <miranda@adacore.com>
1564
1565         * sem_ch4.adb (Remove_Abstract_Interpretations): Even if there are no
1566         abstract interpretations on an operator, remove interpretations that
1567         yield Address or a type derived from it, if one of the operands is an
1568         integer literal.
1569         (Try_Object_Operation.Try_Primitive_Operation,
1570         Try_Object_Operation.Try_Class_Wide_Operation): Set proper source
1571         location when creating the new reference to a primitive or class-wide
1572         operation as a part of rewriting a subprogram call.
1573         (Try_Primitive_Operations): If context requires a function, collect all
1574         interpretations after the first match, because there may be primitive
1575         operations of the same type with the same profile and different return
1576         types. From code reading.
1577         (Try_Primitive_Operation): Use the node kind to choose the proper
1578         operation when a function and a procedure have the same parameter
1579         profile.
1580         (Complete_Object_Operation): If formal is an access parameter and prefix
1581         is an object, rewrite as an Access reference, to match signature of
1582         primitive operation.
1583         (Find_Equality_Type, Find_One_Interp): Handle properly equality given
1584         by an expanded name with prefix Standard, when the operands are of an
1585         anonymous access type.
1586         (Remove_Abstract_Operations): If the operation is abstract because it is
1587         inherited by a user-defined type derived from Address, remove it as
1588         well from the set of candidate interpretations of an overloaded node.
1589         (Analyze_Membership_Op): Membership test not applicable to cpp-class
1590         types.
1591
1592 2006-02-13  Bob Duff  <duff@adacore.com>
1593
1594         * sem_ch8.adb (Note_Redundant_Use): Suppress unhelpful warning about
1595         redundant use clauses.
1596         In particular, if the scope of two use clauses overlaps, but one is not
1597         entirely included in the other, we should not warn.  This can happen
1598         with nested packages.
1599         (Analyze_Subprogram_Renaming): Protect the compiler against previously
1600         reported errors. The bug was reported when the compiler was built
1601         with assertions enabled.
1602         (Find_Type): If the node is a 'Class reference and the prefix is a
1603         synchronized type without a corresponding record, return the type
1604         itself.
1605
1606 2006-02-13  Javier Miranda  <miranda@adacore.com>
1607
1608         * sem_ch9.adb (Analyze_Protected_Type, Analyze_Task_Type): Check that
1609         if this is the full-declaration associated with a private declaration
1610         that implement interfaces, then the private type declaration must be
1611         limited.
1612         (Analyze_Single_Protected, Analyze_Single_Task): Do not mark the object
1613         as aliased. The use of the 'access attribute is not available for such
1614         object (for this purpose the object should be explicitly marked as
1615         aliased, but being an anonymous type this is not possible).
1616
1617 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
1618             Robert Dewar  <dewar@adacore.com>
1619
1620         * sem_elab.adb (Same_Elaboration_Scope): A package that is a
1621         compilation unit is an elaboration scope.
1622         (Add_Task_Proc): Add '\' in 2-line warning message.
1623         (Activate_All_Desirable): Deal with case of unit with'ed by parent
1624
1625 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
1626             Javier Miranda  <miranda@adacore.com>
1627
1628         * sem_type.adb (Write_Overloads): Improve display of candidate
1629         interpretations.
1630         (Add_One_Interp): Do not add to the list of interpretations aliased
1631         entities corresponding with an abstract interface type that is an
1632         immediate ancestor of a tagged type; otherwise we have a dummy
1633         conflict between this entity and the aliased entity.
1634         (Disambiguate): The predefined equality on universal_access is not
1635         usable if there is a user-defined equality with the proper signature,
1636         declared in the same declarative part as the designated type.
1637         (Find_Unique_Type): The universal_access equality operator defined under
1638         AI-230 does not cover pool specific access types.
1639         (Covers): If one of the types is a generic actual subtype, check whether
1640         it matches the partial view of the other type.
1641
1642 2006-02-13  Thomas Quinot  <quinot@adacore.com>
1643
1644         * sinput-d.adb (Write_Line): Update the Source_Index_Table after each
1645         line. This is necessary to allow In_Extended_Main_Unit to provide
1646         correct results for itypes while writing out expanded source.
1647         (Close_File): No need to update the source_index_table here since it's
1648         now done for each line.
1649
1650 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
1651             Robert Dewar  <dewar@adacore.com>
1652
1653         * sprint.adb (Write_Itype): Preserve Sloc of declaration, if any, to
1654         preserve the source unit where the itype is declared, and prevent a
1655         backend abort.
1656         (Note_Implicit_Run_Time_Call): New procedure
1657         (Write_Itype): Handle missing cases (E_Class_Wide_Type and
1658         E_Subprogram_Type)
1659
1660         * sprint.ads: Document use of $ for implicit run time routine call
1661
1662 2006-02-13  Quentin Ochem  <ochem@adacore.com>
1663
1664         * s-stausa.adb (Initialize_Analyzer): fixed error in assignment of
1665         task name.
1666
1667 2006-02-13  Bob Duff  <duff@adacore.com>
1668
1669         * s-valint.adb (Scan_Integer): Call Scan_Raw_Unsigned instead of
1670         Scan_Unsigned, so we do not scan leading blanks and sign twice.
1671         Integer'Value("- 5") and Integer'Value("-+5") now correctly
1672         raise Constraint_Error.
1673
1674         * s-vallli.adb (Scan_Long_Long_Integer): Call
1675         Scan_Raw_Long_Long_Unsigned instead of Scan_Long_Long_Unsigned, so we
1676         do not scan leading blanks and sign twice.
1677         Integer'Value("- 5") and Integer'Value("-+5") now correctly
1678         raise Constraint_Error.
1679
1680         * s-valllu.ads, s-valllu.adb (Scan_Raw_Long_Long_Unsigned,
1681         Scan_Long_Long_Unsigned): Split out most of the processing from
1682         Scan_Long_Long_Unsigned out into
1683         Scan_Raw_Long_Long_Unsigned, so that Val_LLI can call the Raw_ version.
1684         This prevents scanning leading blanks and sign twice.
1685         Also fixed a bug: Modular'Value("-0") should raise Constraint_Error
1686         See RM-3.5(44).
1687
1688         * s-valuns.ads, s-valuns.adb (Scan_Raw_Unsigned, Scan_Unsigned): Split
1689         out most of the processing from Scan_Unsigned out into
1690         Scan_Raw_Unsigned, so that Val_LLI can call the Raw_ version.
1691         This prevents scanning leading blanks and sign twice.
1692
1693         * s-valuti.ads, s-valuti.adb (Scan_Plus_Sign): Add Scan_Plus_Sign, for
1694         use with Modular'Value attribute.
1695         (Scan_Plus_Sign): Add Scan_Plus_Sign, for use with Modular'Value
1696         attribute.
1697
1698 2006-02-13  Robert Dewar  <dewar@adacore.com>
1699
1700         * s-wchjis.adb (JIS_To_EUC): Raise Constraint_Error for invalid value
1701
1702 2006-02-13  Eric Botcazou  <ebotcazou@adacore.com>
1703
1704         * tracebak.c (PPC AIX/Darwin): Define FORCE_CALL to 1.
1705         (PPC VxWorks): Likewise.
1706         (Generic unwinder): Define FORCE_CALL to 0 if not already defined.
1707         (forced_callee): Make non-inlinable and non-pure.
1708         (__gnat_backtrace): Call forced_callee if FORCE_CALL is set to 1.
1709
1710 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
1711             Ben Brosgol  <brosgol@adacore.com>
1712             Robert Dewar  <dewar@adacore.com>
1713
1714         * gnat_rm.texi, gnat_ugn.texi: Remove limitations with sparc m64
1715         support.
1716         Document that gnatbind -M option is for cross environments only.
1717         Added description of using gnatmem to trace gnat rtl allocs and deallocs
1718         Add note on use of $ to label implicit run time calls
1719         Add documentation for -gnatyI (check mode IN)
1720         Updated chapter on compatibility with HP Ada
1721         VMS-oriented edits.
1722         Ran spell and corrected errors
1723         Add documentation for gnatbind -d and rework documentation of -D
1724         at the same time.
1725         Add subprogram/data elimination section.
1726         Minor editing of annex A.
1727         Add section for gnatcheck.
1728         Add documentation for restriction No_Dispatching_Calls
1729         Add documentation for pragma Ada_2005
1730         Remove mention of obsolete pragma Propagate_Exceptions
1731         Document that pragma Unreferenced can appear after DO in ACCEPT
1732         Clarify Pure_Function for library level units
1733         Mention Max/Min in connection with No_Implicit_Conditionals
1734         No_Wide_Characters restriction is no longer partition-wide
1735         Add a nice example for Universal_Literal_String attribute
1736         Document that pragma No_Return can take multiple arguments
1737
1738         * ug_words: Added entry for gnatcheck
1739
1740         * g-ctrl_c.ads (Install_Handler): Enhance comments
1741
1742         * g-os_lib.ads: Add comments to OS_Exit that it is abrupt termination
1743
1744         * g-trasym.ads: Add documentation on how to do off line symbolic
1745         traceback computation.
1746
1747         * s-fatgen.adb: Add comments for Unaligned_Valid
1748
1749         * stand.ads: Fix typo in comment
1750
1751 2006-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1752
1753         * Make-lang.in (check-gnat): Run run_acats with $(SHELL).
1754
1755 2006-02-06  Roger Sayle  <roger@eyesopen.com>
1756
1757         * decl.c (gnat_substitute_in_type): Don't handle CHAR_TYPE.
1758
1759 2006-02-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1760
1761         PR target/25926
1762         * initialize.c (__gnat_initialize): Provide HP-UX 10 host and target
1763         implementation that calls __main.
1764
1765 2006-01-25  Peter O'Gorman  <peter@pogma.com>
1766
1767         PR bootstrap/25859
1768         * Makefile.in (GCC_LINK): Remove quotes.
1769         (tools targets): Link with either $(GNATLINK) --GCC="$(GCC_LINK)"
1770         or $(GCC_LINK).
1771
1772         (powerpc-darwin): Pass -shared-libgcc when building shared library.
1773
1774 2006-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1775
1776         PR ada/24533
1777         * s-osinte-linux-hppa.ads: Reduce alignment of atomic_lock_t to 8.
1778
1779 2005-12-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1780
1781         * s-osinte-linux-hppa.ads: Correct alignment of atomic_lock_t.
1782
1783 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
1784
1785         * Makefile.in: Remove dummy setting of GCC_FOR_TARGET, no longer
1786         needed.
1787
1788 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
1789
1790         * Make-lang.in: Update dependencies
1791
1792 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
1793
1794         * Make-lang.in: Add rule for ada/exp_sel.o
1795
1796 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
1797
1798         * Makefile.in (mingw section): Remove EH_MECHANISM setting.
1799
1800 2005-12-09  Arnaud Charlet  <charlet@adacore.com>
1801
1802         * gnatvsn.ads (Library_Version): Bump to version 4.2
1803         (ASIS_Version_Number): Bumped.
1804
1805 2005-12-09  Doug Rupp  <rupp@adacore.com>
1806
1807         * mlib-tgt-vms-ia64.adb, mlib-tgt-vms-alpha.adb (Is_Interface): Change
1808         Ada bind file prefix on VMS from b$ to b__.
1809         (Build_Dynamic_Library): Change Init file suffix on VMS from $init to
1810         __init.
1811
1812         * prj-nmsc.adb: Change some Hostparm.OpenVMS checks to
1813         Targparm.OpenVMS_On_Target.
1814         (Object_Suffix): Initialize with target object suffix.
1815         (Get_Unit): Change Ada bind file prefix on VMS from b$ to b__.
1816
1817         * butil.adb: Change some Hostparm.OpenVMS checks to
1818         Targparm.OpenVMS_On_Target.
1819
1820         * clean.adb: Change some Hostparm.OpenVMS checks to
1821         Targparm.OpenVMS_On_Target.
1822         (Object_Suffix): Initialize with call to Get_Target_Object_Suffix.
1823         ({declaraction},Delete_Binder_Generated_Files,{initialization}): Change
1824         Ada bind file prefix on VMS from b$ to b__.
1825
1826         * gnatlink.adb (Process_Args): Call Add_Src_Search_Dir for -I in
1827         --GCC so that Get_Target_Parameters can find system.ads.
1828         (Gnatlink): Call Get_Target_Parameters in mainline.
1829         Initialize standard packages for Targparm.
1830         Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target.
1831         (Process_Args): Also Check for object files with target object
1832         extension.
1833         (Make_Binder_File_Names): Create with target object extension.
1834         (Make_Binder_File_Names): Change Ada bind file prefix on VMS from b$
1835         to b__.
1836
1837         * mlib-prj.adb: Change some Hostparm.OpenVMS checks to
1838         Targparm.OpenVMS_On_Target.
1839         ({declaration},Build_Library,Check_Library): Change Ada bind file
1840         prefix on VMS from b$ to b__.
1841
1842         * osint-b.adb: Change some Hostparm.OpenVMS checks to
1843         Targparm.OpenVMS_On_Target.
1844         (Create_Binder_Output): Change Ada bind file prefix on VMS from b$ to
1845         b__.
1846
1847         * targext.c: New file.
1848
1849         * Makefile.in: add support for vxworks653 builds
1850         (../../vxaddr2line): gnatlink with targext.o.
1851         (TOOLS_LIBS): Move targext.o to precede libgnat.
1852         (init.o, initialize.o): Minor clean up in dependencies.
1853         (GNATLINK_OBJS): Add targparm.o, snames.o
1854         Add rules fo building targext.o and linking it explicitly with all
1855         tools.
1856         Also add targext.o to gnatlib.
1857
1858         * Make-lang.in: Add rules for building targext.o and linking it in
1859         with gnat1 and gnatbind.
1860         Add entry for exp_sel.o.
1861
1862         * osint.adb Change some Hostparm.OpenVMS checks to
1863         Targparm.OpenVMS_On_Target.
1864         (Object_File_Name): Use target object suffix.
1865
1866         * osint.ads (Object_Suffix): Remove, no longer used.
1867         (Target_Object_Suffix): Initialize with target object suffix.
1868
1869         * rident.ads: Add special exception to license.
1870
1871         * targparm.adb (Get_Target_Parameters): Set the value of
1872         Multi_Unit_Index_Character after OpenVMS_On_Target gets its definitive
1873         value.
1874         (Get_Target_Parameters): Set OpenVMS_On_Target if openvms.
1875         
1876         * targparm.ads: Add special exception to license.
1877
1878         * g-os_lib.ads, g-os_lib.adb (Get_Target_Debuggable_Suffix): New
1879         function.
1880         (Copy_File): Make sure from file is closed if error on to file
1881         (Get_Target_Executable_Suffix, Get_Target_Object_Suffix): New functions.
1882
1883         * make.adb (Object_Suffix): Intialize with Get_Target_Object_Suffix.
1884         (Executable_Suffix): Intialize with Get_Target_Executable_Suffix.
1885
1886         * osint-c.adb (Set_Output_Object_File_Name): Initialize extension with
1887         target object suffix.
1888
1889 2005-12-09  Jose Ruiz  <ruiz@adacore.com>
1890             Quentin Ochem  <ochem@adacore.com>
1891             Florian Villoing  <villoing@adacore.com>
1892
1893         * a-taster.ads, a-taster.adb: New files.
1894
1895         * a-elchha.adb (Last_Chance_Handler): Change the task termination soft
1896         link to the version that does nothing. This way the task termination
1897         routine is not executed twice for the environment task when finishing
1898         because of an unhandled exception.
1899
1900         * a-exextr.adb (Notify_Unhandled_Exception): Call the task termination
1901         handler because of an unhandled exception.
1902
1903         * a-taside.adb (Abort_Tasks): Call the Abort_Tasks procedure from
1904         System.Tasking.Utilities instead of that in System.Tasking.Stages.
1905
1906         * s-finimp.adb (initialization code): Modify the soft link for the
1907         finalization of the global list instead of Adafinal.
1908
1909         * s-soflin.ads, s-soflin.adb (Task_Termination_NT): Add this
1910         non-tasking version of the soft link for task termination. We do
1911         nothing since if we are using the non-tasking version it
1912         means that the task termination functionality is not used.
1913         (Null_Finalize_Global_List): Add this null version for the procedure
1914         in charge of finalizing the global list for controlled objects.
1915         (Null_Adafinal): Remove this procedure. Adafinal_NT has been created
1916         instead for handling run-time termination in a more flexible way.
1917         (Adafinal_NT): This new procedure will take care of finalizing the
1918         global list for controlled objects if needed, but no tasking
1919         finalization.
1920
1921         * s-tarest.adb (Task_Lock): Do not try to lock again the
1922         Global_Task_Lock if we already own it. Otherwise, we get blocked in
1923         some run-time operations.
1924         (Task_Unlock): Do not try to actually unlock the Global_Task_Lock
1925         until all nested locks have been released.
1926         (Task_Wrapper): Call the fall-back task termination handler. It
1927         applies to all tasks but the environment task.
1928         (Finalize_Global_Tasks): Add the call for the task termination
1929         procedure for the environment task.
1930         (Task_Wrapper): suppress warnings around declaration of
1931         Secondary_Stack_Address.
1932
1933         * s-tasini.adb (Final_Task_Unlock): Global_Task_Lock_Nesting has been
1934         moved to the Common_ATCB record.
1935         (Task_Lock): Global_Task_Lock_Nesting has been moved to the
1936         Common_ATCB record.
1937         (Task_Unlock): Global_Task_Lock_Nesting has been moved to the
1938         Common_ATCB record.
1939
1940         * s-taskin.adb (Initialize_ATCB): Initialize Global_Task_Lock_Nesting,
1941         Fall_Back_Handler, and Specific_Handler.
1942
1943         * s-taskin.ads (Cause_Of_Termination): Redefine this type here, already
1944         defined in Ada.Task_Termination, to avoid circular dependencies.
1945         (Termination_Handler): Redefine this type here, alredy defined in
1946         Ada.Task_Termination, for avoiding circular dependencies.
1947         (Common_ATCB): Add the Fall_Back_Handler and Specific_Handler required
1948         for storing task termination handlers. In addition,
1949         Global_Task_Lock_Nesting has been moved from Ada_Task_Control_Block to
1950         Common_ATCB because it is used by both the regular and the restricted
1951         run times.
1952         (Ada_Task_Control_Block): Move Global_Task_Lock_Nesting from here to
1953         Common_ATCB because it is used by both the regular and the restricted
1954         run times.
1955         (Common_ATCB): Added a dynamic task analyzer field.
1956
1957         * s-tassta.adb (Abort_Tasks): Move the code in charge of checking
1958         potentially blocking operations to System.Tasking.Utilities.Abort_Tasks.
1959         (Task_Wrapper): Call the task termination handler. It applies to all
1960         tasks but the environment task.
1961         (Finalize_Global_Tasks): Call the task termination procedure for the
1962         environment task. The call to Finalize_Global_List is now performed
1963         using the soft links mechanism.
1964         (Task_Wrapper): added dynamic stack analysis.
1965
1966         * s-tasuti.adb (Abort_Tasks): The code in charge of checking
1967         potentially blocking operations has been moved from
1968         System.Tasking.Stages.Abort_Tasks to this procedure. There can be
1969         direct calls to System.Tasking.Utilities.Abort_Tasks that do not pass
1970         through System.Tasking.Stages.Abort_Tasks, and we do not want to miss
1971         this run-time check.
1972
1973         * s-solita.adb (Task_Termination_Handler_T): Add this task-safe version
1974         of task termination procedure.
1975         (Init_Tasking_Soft_Links): Install the task-safe version of the soft
1976         link for the task termination procedure.
1977
1978         * bindusg.adb: (Bindusg): Added documentation for -u option.
1979
1980         * bindgen.adb (Get_Main_Ada) Added handling of dynamic stack analysis.
1981         (Get_Main_C): Add handling of dynamic stack analysis.
1982         (Gen_Output_File_C): Add external functions for dynamic stack analysis.
1983
1984         * Makefile.rtl: Add entry for a-taster (Ada.Task_Termination).
1985         (GNATRTL_NONTASKING_OBJS) Added entries for dynamic stack analysis
1986         (GNATRTL_NONTASKING_OBJS): Add AltiVec files.
1987
1988         * opt.ads: Added flags used by dynamic stack measurement.
1989         (Max_Line_Length): Remove (not used anymore)
1990
1991         * s-io.ads, s-io.adb (Standard_Error): new subprogram
1992         (Standart_Output): new subprogram
1993         (Set_Output): new subprogram
1994         (Put): now uses the value of Current_Out to know if the output has to be
1995         send to stderr or stdout.
1996         
1997         * s-stausa.ads: Complete implementation.
1998
1999         * switch-b.adb: Added handling of -u switch for dynamic stack analysis.
2000         
2001         * impunit.adb (Non_Imp_File_Names_05): Add Ada.Task_Termination to the
2002         list of Ada 05 files.
2003         (GNAT Library Units): Add AltiVec files.
2004
2005         * g-allein.ads, g-alleve.adb, g-alleve.ads, g-altcon.adb,
2006         g-altcon.ads, g-altive.ads, g-alveop.adb, g-alveop.ads
2007         g-alvety.ads, g-alvevi.ads: New files providing altivec API.
2008
2009 2005-12-09  Nicolas Setton  <setton@adacore.com>
2010
2011         * adaint.c (__gnat_locate_regular_file): Return immediately if
2012         file_name is empty.
2013
2014 2005-12-09  Javier Miranda  <miranda@adacore.com>
2015             Hristian Kirtchev  <kirtchev@adacore.com>
2016
2017         * a-tags.ads, a-tags.adb (Offset_To_Top): Moved from the package body
2018         to the specification because the frontend generates code that uses this
2019         subprogram.
2020         (Set_Interface_Table): Add missing assertion.
2021         Update documentation describing the run-time structure.
2022         (Displace): New subprogram that displaces the pointer to the object
2023         to reference one of its secondary dispatch tables.
2024         (IW_Membership): Modified to use the new table of interfaces.
2025         (Inherit_TSD): Modified to use the new table of interfaces.
2026         (Register_Interface_Tag): Use the additional formal to fill the
2027         contents of the new table of interfaces.
2028         (Set_Interface_Table): New subprogram that stores in the TSD the
2029         pointer to the table of interfaces.
2030         (Set_Offset_To_Top): Use the additional formal to save copy of
2031         the offset value in the table of interfaces.
2032         Update structure of GNAT Primary and Secondary dispatch table diagram.
2033         Add comment section on GNAT dispatch table prologue.
2034         (Offset_To_Signature): Update the constant value of the Signature field.
2035         (Dispatch_Table): Update comment on hidden fields in the prologue.
2036         (Get_Entry_Index, Get_Prim_Op_Kind, Get_Offset_Index, OSD,
2037         Set_Entry_Index, Set_Offset_Index, Set_Prim_Op_Kind, SSD, TSD): Change
2038         the type of formal parameter T to Tag, introduce additional assertions.
2039         (Get_Num_Prim_Ops, Set_Num_Prim_Ops): Remove an unnecessary type
2040         conversion.
2041         (Get_Tagged_Kind, Set_Tagged_Kind): New bodies.
2042
2043         * exp_ch6.adb (Register_Interface_DT_Entry): Remove the Thunk_Id actual
2044         in all the calls to Expand_Interface_Thunk. Instead of referencing the
2045         record component containing the tag of the secondary dispatch table we
2046         have to use the Offset_To_Top run-time function to get this information;
2047         otherwise if the pointer to the base of the object has been displace
2048         we get a wrong value if we use the 'position attribute.
2049
2050         * exp_disp.adb (Expand_Interface_Thunk): Remove the Thunk_Id actual in
2051         all the calls to Expand_Interface_Thunk.
2052         (Make_Secondary_DT): Secondary dispatch tables do not have a table of
2053         interfaces; hence the call to Set_Interface_Table was clearly wrong.
2054         (Collect_All_Interfaces): Modify the internal subprogram Collect to
2055         ensure that the interfaces implemented by the ancestors are placed
2056         at the header of the generated list.
2057         (Expand_Interface_Conversion): Handle the case in which the displacement
2058         associated with the interface conversion is not statically known. In
2059         this case we generate a call to the new run-time subprogram Displace.
2060         (Make_DT): Generate and fill the new table of interfaces.
2061         (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Add entries for
2062         Get_Tagged_Kind and Set_Tagged_Kind.
2063         (Tagged_Kind): New function that determines the tagged kind of a type
2064         with respect to limitedness and concurrency and returns a reference to
2065         RE_Tagged_Kind.
2066         (Make_Disp_Asynchronous_Select_Body, Make_Disp_Conditional_Select_Body,
2067         Make_Disp_Timed_Select_Body): Correctly retrieve the pointer to the
2068         primary dispatch table for a type.
2069         (Make_DT, Make_Secondary_DT): Set the tagged kind in the primary and
2070         secondary dispatch table respectively of a tagged type.
2071
2072         * exp_disp.ads (Expand_Interface_Thunk): Remove Thunk_Id formal.
2073         (Expand_Interface_Conversion): New subprogram to indicate if the
2074         displacement of the type conversion is statically known.
2075         (DT_Access_Action): Add values Get_Tagged_Kind and Set_Tagged_Kind.
2076
2077         * rtsfind.ads (RE_Offset_To_Top): New entity
2078         (RTU_Id): Add Ada_Task_Termination to the list so that it is made
2079         accessible to users.
2080         (Re_Displace): New entity
2081         (RE_Interface_Data): New entity
2082         (RE_Set_Interface_Data): New_Entity
2083         (RE_Id, RE_Unit_Table): Add entry for RE_Get_Tagged_Kind,
2084         Set_Tagged_Kind, RE_Tagged_Kind, RE_TK_Abstract_Limited_Tagged,
2085         RE_TK_Abstract_Tagged, RE_TK_Limited_Tagged, RE_TK_Protected,
2086         RE_TK_Tagged, RE_TK_Task.
2087
2088         * exp_ch3.adb (Init_Secondary_Tags): Modify the subprogram
2089         Init_Secondary_Tags_Internal to allow its use with interface types and
2090         also to generate the code for the new additional actual required
2091         by Set_Offset_To_Top.
2092         (Build_Init_Statements): In case of components associated with abstract
2093         interface types there is no need to generate a call to its IP.
2094         (Freeze_Record_Type): Generate Select Specific Data tables only for
2095         concurrent types.
2096         (Make_Predefined_Primitive_Specs, Predefined_Primitive_Bodies): Generate
2097         the bodies and specifications of the predefined primitive operations
2098         dealing with dispatching selects and abort, 'Callable, 'Terminated only
2099         for concurrent types.
2100
2101         * exp_sel.ads, exp_sel.adb: New files.
2102
2103         * exp_ch9.adb (Build_Protected_Entry, Expand_N_Protected_Body,
2104         Expand_N_Protected_Type_Declaration, Make_Initialize_Protection): Handle
2105         properly protected objects and attach handler in the case of the
2106         restricted profile.
2107         Move embeded package Select_Expansion_Utilities into a separate external
2108         package.
2109         (Expand_N_Asynchronous_Select, Expand_N_Conditional_Select,
2110         Expand_N_Timed_Entry_Call): Correct calls external package Exp_Sel.
2111         (Build_K, Build_S_Assignment): New subprograms, part of the select
2112         expansion utilities.
2113         (Expand_N_Asynchronous_Select, Expand_N_Conditional_Entry_Call,
2114         Expand_N_Timed_Entry_Call): Optimize expansion of select statements
2115         where the trigger is a dispatching procedure of a limited tagged type.
2116
2117 2005-12-09  Olivier Hainque  <hainque@adacore.com>
2118
2119         * decl.c (gnat_to_gnu_entity, renaming object case): Don't early expand
2120         pointer initialization values. Make a SAVE_EXPR instead. Add comments
2121         about the use and expansion of SAVE_EXPRs in the various possible
2122         renaming handling cases.
2123         (components_to_record, compare_field_bitpos): Sort by DECL_UID, not by
2124         abusing DECL_FCONTEXT.
2125
2126 2005-12-09  Matthew Heaney  <heaney@adacore.com>
2127
2128         * a-convec.adb (Merge): Added assertions to check whether vector params
2129         are sorted.
2130
2131         * a-coinve.adb (Merge): Added assertions to check whether vector params
2132         are sorted.
2133
2134         * a-cohama.ads (Cursor'Write): raises Program_Error per latest AI-302
2135         draft.
2136         (Cursor'Read): raises PE
2137
2138         * a-cohama.adb (Insert.New_Node): Uses box-style syntax to init elem
2139         to its default value.
2140
2141         * a-cihama.adb: Manually check whether cursor's key and elem are
2142         non-null
2143
2144         * a-cidlli.ads, a-cidlli.adb (Splice): Changed param name and param mode
2145         (Merge): Assert that target and source lists are in order
2146         (Swap): Declare non-const temporaries, to pass to Splice
2147
2148         * a-cdlili.ads: (Splice): Changed param name and param mode
2149
2150         * a-cdlili.adb: (Splice): Changed param name and param mode
2151         (Merge): Assert that target and source lists are in order
2152         (Swap): Declare non-const temporaries, to pass to Splice
2153
2154         * a-ciorma.ads, a-coorma.ads: (Read): declare Stream param as not null
2155         (Write): declare Stream param as not null
2156
2157         * a-ciorma.adb, a-coorma.adb: All explicit raise statements now include
2158         an exception message.
2159
2160 2005-12-09  Thomas Quinot  <quinot@adacore.com>
2161             Robert Dewar  <dewar@adacore.com>
2162
2163         * hostparm.ads (Max_Line_Length): Set to Types.Column_Number'Last - 1,
2164         which is the absolute maximum length we can support.
2165
2166         * frontend.adb: For the processing of configuration pragma files,
2167         remove references to Opt.Max_Line_Length, which is not checked anymore.
2168
2169         * namet.ads (Name_Buffer): Adjust size to reflect increase on max line
2170         length.
2171
2172         * scn.adb, scng.adb: 
2173         Always check line length against the absolute supported maximum,
2174         Hostparm.Max_Line_Length.
2175
2176         * stylesw.adb (Set_Style_Check_Options, case M): The maximum supported
2177         value for the maximum line length is Max_Line_Length (not
2178         Column_Number'Last).
2179         Minor error msg update
2180         (Set_Style_Check_Options): New interface returning error msg
2181         Minor code reorganization (processing for 'M' was out of alpha order)
2182
2183         * switch-c.adb: New interface for Set_Style_Check_Options
2184
2185         * stylesw.ads (Set_Style_Check_Options): New interface returning error
2186         msg.
2187
2188 2005-12-09  Javier Miranda  <miranda@adacore.com>
2189
2190         * exp_aggr.adb (Build_Record_Aggr_Code): Default-initialialized records
2191         with IP subprogram were only supported if there were limited types.
2192
2193         * sem_aggr.adb (Resolve_Record_Aggregate): Default-initialialized
2194         records with IP subprogram were only supported if there were limited
2195         types.
2196
2197 2005-12-09  Olivier Hainque  <hainque@adacore.com>
2198             Eric Botcazou  <ebotcazou@adacore.com>
2199
2200         * trans.c (tree_transform, emit_check): Adjust calls to
2201         build_call_raise, passing the now expected GNAT_NODE argument.
2202
2203         * gigi.h (build_call_raise): Add a GNAT_NODE argument to convey better
2204         source line information than what the current global locus indicates
2205         when appropriate.
2206
2207         * utils2.c (build_simple_component_ref): Return 0 if the offset of the
2208         field has overflowed.
2209         (build_call_raise): Add a GNAT_NODE argument to convey better source
2210         line information than what the current global locus indicates when
2211         appropriate.
2212         (build_component_ref): Adjust call to build_call_raise.
2213
2214 2005-12-09  Pascal Obry  <obry@adacore.com>
2215
2216         * g-diopit.adb (Find): Fix test to exit the iterator and make sure that
2217         the iterator is quitting iteration on parent directory.
2218
2219 2005-12-09  Javier Miranda  <miranda@adacore.com>
2220
2221         * exp_ch5.adb (Expand_N_Assignment_Statement): In case of tagged types
2222         and the assignment to a class-wide object, before the assignment we
2223         generate a run-time check to ensure that the tag of the Target is
2224         covered by the tag of the source.
2225
2226 2005-12-09  Robert Dewar  <dewar@adacore.com>
2227
2228         * exp_imgv.adb (Expand_Image_Attribute): Generate extra boolean
2229         parameter in call to Image_Wide_Character.
2230
2231         * s-imgwch.ads, s-imgwch.adb (Image_Wide_Character): Add boolean
2232         parameter Ada_2005 to deal with annoying FFFE/FFFF inconsistency.
2233         (Image_Wide_Character): Add boolean parameter Ada_2005 to deal with
2234         annoying FFFE/FFFF inconsistency.
2235
2236 2005-12-09  Robert Dewar  <dewar@adacore.com>
2237             Javier Miranda  <miranda@adacore.com>
2238             Ed Schonberg  <schonberg@adacore.com>
2239
2240         * exp_util.ads, exp_util.adb (Is_Ref_To_Bit_Packed_Slice): Handle case
2241         of type conversion.
2242         (Find_Interface): New subprogram that given a tagged type and one of its
2243         component associated with the secondary table of an abstract interface
2244         type, return the entity associated with such abstract interface type.
2245         (Make_Subtype_From_Expr): If type has unknown discriminants, always use
2246         base type to create anonymous subtype, because entity may be a locally
2247         declared subtype or generic actual.
2248         (Find_Interface): New subprogram that given a tagged type and one of its
2249         component associated with the secondary table of an abstract interface
2250         type, return the entity associated with such abstract interface type.
2251
2252         * sem_res.adb (Resolve_Type_Conversion): Handle the case in which the
2253         conversion cannot be handled at compile time. In this case we pass this
2254         information to the expander to generate the appropriate code.
2255
2256 2005-12-09  Robert Dewar  <dewar@adacore.com>
2257             Ed Schonberg  <schonberg@adacore.com>
2258             Gary Dismukes  <dismukes@adacore.com>
2259             Javier Miranda  <miranda@adacore.com>
2260             Hristian Kirtchev  <kirtchev@adacore.com>
2261
2262         * einfo.adb (Itype_Printed): New flag
2263         (Is_Limited_Type): Derived types do not inherit limitedness from
2264         interface progenitors.
2265         (Is_Return_By_Reference_Type): Predicate does not apply to limited
2266         interfaces.
2267
2268         * einfo.ads (Itype_Printed): New flag
2269         Move Is_Wrapper_Package to proper section
2270         Add missing Inline for Is_Volatile
2271
2272         * output.ads, output.adb (Write_Erase_Char): New procedure
2273         (Save/Restore_Output_Buffer): New procedures
2274         (Save/Restore_Output_Buffer): New procedures
2275
2276         * sprint.ads, sprint.adb (Write_Itype): Handle case of record itypes
2277         Add missing support for anonymous access type
2278         (Write_Id): Insert calls to Write_Itype
2279         (Write_Itype): New procedure to output itypes
2280
2281         * par-ch12.adb (P_Formal_Derived_Type_Definition): In Ada 2005, handle
2282         use of "limited" in declaration.
2283
2284         * sinfo.ads, sinfo.adb: 
2285         Formal derived types can carry an explicit "limited" indication.
2286
2287         * sem_ch3.adb: Add with and use of Targparm.
2288         (Create_Component): If Frontend_Layout_On_Target is True and the
2289         copied component does not have a known static Esize, then reset
2290         the size and positional fields of the new component.
2291         (Analyze_Component_Declaration): A limited component is
2292         legal within a protected type that implements an interface.
2293         (Collect_Interfaces): Do not add to the list the interfaces that
2294         are implemented by the ancestors.
2295         (Derived_Type_Declaration): If the parent of the full-view is an
2296         interface perform a transformation of the tree to ensure that it has
2297         the same parent than the partial-view. This simplifies the job of the
2298         expander in order to generate the correct object layout, and it is
2299         needed because the list of interfaces of the full-view can be given in
2300         any order.
2301         (Process_Full_View): The parent of the full-view does not need to be
2302         a descendant of the parent of the partial view if both parents are
2303         interfaces.
2304         (Analyze_Private_Extension_Declaration): If declaration has an explicit
2305         "limited" the parent must be a limited type.
2306         (Build_Derived_Record_Type): A derived type that is explicitly limited
2307         must have limited ancestor and progenitors.
2308         (Build_Derived_Type): Ditto.
2309         (Process_Full_View): Verify that explicit uses of "limited" in partial
2310         and full declarations are consistent.
2311         (Find_Ancestor_Interface): Remove function.
2312         (Collect_Implemented_Interfaces): New procedure used to gather all
2313         implemented interfaces by a type.
2314         (Contain_Interface): New function used to check whether an interface is
2315         present in a list.
2316         (Find_Hidden_Interface): New function used to determine whether two
2317         lists of interfaces constitute a set equality. If not, the first
2318         differing interface is returned.
2319         (Process_Full_View): Improve the check for the "no hidden interface"
2320         rule as defined by AI-396.
2321
2322 2005-12-09  Robert Dewar  <dewar@adacore.com>
2323
2324         * freeze.adb (Freeze_Record_Type): Only test for useless pack on record
2325         types, not on record subtypes.
2326         (Freeze_Entity): Code cleanup. Add barrier to the loop
2327         that generates the references for primitive operations. This allows to
2328         remove an unnecessary exception handler.
2329         Code reformatting and comment clean ups.
2330
2331 2005-12-09  Vincent Celier  <celier@adacore.com>
2332
2333         * gnatcmd.adb (GNATCmd): GNAT CHECK accepts switch -U
2334         If GNAT CHECK is called with a project file, but with no
2335         source on the command line, call gnatcheck with all the compilable
2336         sources of the project.
2337         Take into account the new command Check, for gnatcheck. Treat as for
2338         other ASIS tools: take into account project, specific package Check and
2339         Compiler switches.
2340         For ASIS tools, add the switches in package Compiler for
2341         the invocation of the compiler.
2342
2343         * prj-attr.adb: Add package Check and its attributes
2344
2345         * vms_conv.ads (Command_Type): New command Check, for gnatcheck
2346
2347         * vms_conv.adb (Initialize): Change Params of command Check to
2348         unlimited files.
2349         Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target.
2350         Add data for new command Check
2351
2352         * vms_data.ads: Add project related qualifiers for GNAT CHECK and GNAT
2353         ELIM.
2354         Add qualifiers for Check command options
2355         (Command_Type): New command Check
2356
2357 2005-12-09  Thomas Quinot  <quinot@adacore.com>
2358
2359         * mlib-utl.adb (Ar): Use Output.Buffer_Max to determine whether a
2360         command line switch overruns the output buffer.
2361
2362 2005-12-09  Robert Dewar  <dewar@adacore.com>
2363
2364         * sem_prag.adb: Processing for new pragma Complete_Representation
2365         (Analyze_Pragma, case Debug): Implement two argument form.
2366
2367         * par-prag.adb: Entry for new pragma Complete_Representation
2368         (Prag, case Debug): Recognize two argument form of pragma Debug
2369         New interface for Set_Style_Check_Options.
2370
2371         * sem_ch13.adb: Implement new pragma Complete_Representation.
2372
2373         * snames.adb, snames.ads, snames.h: Entry for new pragma
2374         Complete_Representation.
2375
2376 2005-12-09  Gary Dismukes  <dismukes@adacore.com>
2377
2378         * sem_cat.adb (Validate_RCI_Subprogram_Declaration): Revise test for
2379         available user-specified stream attributes on limited parameters to
2380         also test the type directly rather than only its underlying type (for
2381         Ada 95) and, in the case of Ada 2005, to check that the user-specified
2382         attributes are visible at the point of the subprogram declaration.
2383         For Ada 2005, the error message is modified to indicate that the
2384         type's stream attributes must be visible (again, only for -gnat05).
2385
2386 2005-12-09  Ed Schonberg  <schonberg@adacore.com>
2387
2388         * sem_ch12.adb (Subtypes_Match): Handle properly Ada05 arrays of
2389         anonymous access types.
2390
2391         * sem_eval.adb (Subtypes_Statically_Match): Implement new rules for
2392         matching of anonymous access types and anonymous access to subprogram
2393         types. 'R'M 4.9.1 (2/2).
2394
2395 2005-12-09  Ed Schonberg  <schonberg@adacore.com>
2396
2397         * sem_ch4.adb (Remove_Abstract_Operations): Do not apply preference
2398         rule prematurely when operands are universal, remaining ambiguities
2399         will be removed during resolution.
2400         Code cleanup.
2401
2402         * sem_type.adb (Disambiguate): In Ada95 mode, discard interpretations
2403         that are Ada 2005 functions.
2404         (Has_Abstract_Interpretation): Subsidiary to
2405         Remove_Conversions, to remove ambiguities caused by abstract operations
2406         on numeric types when operands are universal.
2407
2408 2005-12-09  Robert Dewar  <dewar@adacore.com>
2409
2410         * sem_ch6.adb (Analyze_Subprogram_Body): Properly check categorization
2411         for case where spec is categorized.
2412
2413 2005-12-09  Javier Miranda  <miranda@adacore.com>
2414
2415         * sem_ch8.adb (Find_Type): In case of tagged types that are concurrent
2416         types use the corresponding record type. This was not needed before
2417         the implementation of Ada 2005 synchronized types because
2418         concurrent types were never tagged types in Ada 95.
2419
2420 2005-12-09  Ed Schonberg  <schonberg@adacore.com>
2421
2422         * sem_ch9.adb (Analyze_Delay_Alternative, Analyze_Delay_Until): Use the
2423         first subtype of the type of the expression to verify that it is a
2424         legal Time type.
2425
2426 2005-12-09  Robert Dewar  <dewar@adacore.com>
2427
2428         * sem_util.ads, sem_util.adb (Full_Qualified_Name): Now provides
2429         decoded names.
2430
2431 2005-12-09  Quentin Ochem  <ochem@adacore.com>
2432             Robert Dewar  <dewar@adacore.com>
2433             Ed Falis  <falis@adacore.com>
2434             Florian Villoing  <villoing@adacore.com>
2435             Thomas Quinot  <quinot@adacore.com>
2436             Arnaud Charlet  <charlet@adacore.com>
2437
2438         * gnat_ugn.texi: Created section "Stack Related Tools"
2439         Moved "Stack Overflow Checking" subsection from "Switches for gcc" to
2440         "Stack Related Tools"
2441         Added subsection "Static Stack Usage Analysis"
2442         Added subsection "Dynamic Stack Usage Analysis"
2443         Include documentation of itypes in sprint listing (-gnatG)
2444         Documented gnatbind -D switch (default sec stack size for fixed sec
2445         stacks).
2446         Added Interrupt_State and Persistent_BSS to list of configuration
2447         pragmas.
2448         Add missing doc for maximum value of nnn in -gnatyMnnn
2449
2450         * gnat_rm.texi: Document the AltiVec binding.
2451         Add documentation for pragma Complete_Representation
2452         Shortened an overly long line (> 79 chars)
2453         Clarify documentation of unchecked conversion in implementation
2454         defined cases.
2455         Document two argument form of pragma Debug
2456
2457         * types.ads (Column_Number): Update documentation.
2458
2459         * exp_ch7.ads (Make_Adjust_Call): Document the special processing for
2460         library level Finalize_Storage_Only objects (these are not attached to
2461         any finalization list).
2462
2463         * system-mingw.ads: (Underlying_Priorities): Update comment.
2464
2465 2005-12-09  Robert Dewar  <dewar@adacore.com>
2466
2467         * i-c.adb, i-cexten.ads, i-cobol.adb, i-cobol.ads, i-cpoint.ads,
2468         i-cpp.adb, i-cpp.ads, i-cstrea.ads, i-cstrin.adb, i-cstrin.ads,
2469         inline.adb, interfac.ads, i-os2err.ads, i-os2lib.ads, i-os2syn.ads,
2470         i-os2thr.ads, itypes.adb, itypes.adb, itypes.ads, krunch.ads,
2471         krunch.adb, lib.adb, lib.ads, lib-list.adb, lib-load.adb,
2472         lib-load.ads, lib-sort.adb, live.adb, make.ads, i-cstrea-vms.adb,
2473         interfac-vms.ads, makegpr.adb, indepsw-gnu.adb, indepsw.ads,
2474         s-wchcon.ads, sdefault.ads, sem_ch10.adb, sem_eval.ads: Minor
2475         reformatting.
2476
2477 2005-12-09  Robert Dewar  <dewar@adacore.com>
2478
2479         * s-vaflop-vms-alpha.adb: (Ne_F): New function
2480         (Ne_G): New function
2481
2482         * exp_ch4.adb (Expand_Allocator_Expression): Factor duplicated code
2483         for tag assignment.
2484         (Rewrite_Comparison): Handle case where operation is not a comparison
2485         and ignore, and also handle type conversion case.
2486
2487 2005-12-09  Thomas Quinot  <quinot@adacore.com>
2488
2489         * exp_aggr.ads: Fix typo in comment.
2490         ???-mark Convert_Aggr_In_Assignment as needing documentation.
2491
2492 2005-12-09  Gary Dismukes  <dismukes@adacore.com>
2493
2494         * layout.adb: Replace various uses of byte by storage unit throughout.
2495         (Get_Max_SU_Size): Name changed from Get_Max_Size. In the case of a
2496         static size, convert to storage units before returning, to conform to
2497         spec.
2498
2499 2005-12-09  Matthew Gingell  <gingell@adacore.com>
2500
2501         * g-exctra.ads: Fix typo in comment.
2502
2503 2005-12-09  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2504
2505         * utils.c: Minor reformatting.
2506
2507 2005-12-09  Robert Dewar  <dewar@adacore.com>
2508
2509         * g-soccon.ads: 
2510         Further comment fixes to make the status of the default file clear
2511
2512         * s-bitops.adb: Clarify comment for Bits_Array
2513
2514 2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
2515
2516         * Make-lang.in (ada.install-normal): Remove.
2517
2518 2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
2519
2520         * Make-lang.in: Remove all dependencies on s-gtype.
2521
2522 2005-12-05  Richard Guenther  <rguenther@suse.de>
2523
2524         * utils.c (convert): Use fold_convert where appropriate.
2525
2526 2005-12-05  Paolo Bonzini  <bonzini@gnu.org>
2527
2528         * Makefile.in (gnatlib): Fix regex, using \. instead of . when
2529         a period is meant.
2530
2531 2005-12-02  Richard Guenther  <rguenther@suse.de>
2532
2533         * trans.c (gnat_gimplify_expr): Use buildN instead of build.
2534
2535 2005-12-01  Roger Sayle  <roger@eyesopen.com>
2536
2537         * utils.c (max_size): Only test for TREE_OVERFLOW on INTEGER_CST
2538         nodes.
2539
2540 2005-11-23  Laurent GUERBY  <laurent@guerby.net>
2541
2542         * mlib-prj.adb (Build_Library): Initialize Delete.
2543
2544 2005-11-21  Joel Sherrill <joel.sherrill@oarcorp.com>
2545
2546         * socket.c: Add extern int h_errno for rtems since networking header
2547         files are not available at this point in a tool bootstrap. Newlib
2548         only has basic C library header files.
2549
2550 2005-11-19  Richard Guenther  <rguenther@suse.de>
2551         Roger Sayle  <roger@eyesopen.com>
2552
2553         PR ada/23717
2554         * misc.c (internal_error_function): Don't use vsprintf to format
2555         the error message text, instead use pp_format_text and the new
2556         pretty printer APIs.  This allows handling of %qs, %w, etc.
2557
2558 2005-11-18  Laurent GUERBY  <laurent@guerby.net>
2559
2560         PR ada/24857
2561         * Makefile.in: Use s-auxdec-empty for RTEMS.
2562
2563 2005-11-17  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2564
2565         PR ada/22333
2566         * trans.c (gnat_gimplify_expr, case ADDR_EXPR): Always make
2567         a temporary if taking the address of something that is neither
2568         reference, declaration, or constant, since the gimplifier
2569         can't handle that case.
2570
2571 2005-11-17  Laurent GUERBY  <laurent@guerby.net>
2572
2573         PR ada/24857
2574         * s-auxdec-empty.ads, s-auxdec-empty.adb: New files.
2575         
2576 2005-11-16  Richard Guenther  <rguenther@suse.de>
2577
2578         * Makefile.in: Add EH_MECHANISM=-gcc to s390(x) linux.
2579
2580 2005-11-16  Joel Sherrill <joel.sherrill@oarcorp.com>
2581
2582         PR ada/24855
2583         * raise-gcc.c: Add missing stdarg.h include.
2584  
2585 2005-11-16  Richard Guenther  <rguenther@suse.de>
2586
2587         * Make-lang.in (ada/decl.o): Add $(EXPR_H) dependency.
2588         (ada/misc.o): Likewise.
2589
2590 2005-11-14  Thomas Quinot  <quinot@adacore.com>
2591
2592         * g-soccon.ads: Minor reformatting. Update comments.
2593
2594         * gsocket.h: Include <sys/times.h> in the VxWorks case, in order to
2595         gain visibility on the declaration of struct timeval.
2596
2597         * g-soccon-freebsd.ads,
2598         g-soccon-darwin.ads,
2599         g-soccon-tru64.ads,
2600         g-soccon-aix.ads,
2601         g-soccon-irix.ads,
2602         g-soccon-hpux.ads,
2603         g-soccon-solaris.ads,
2604         g-soccon-vms.ads,
2605         g-soccon-mingw.ads,
2606         g-soccon-vxworks.ads (SIZEOF_tv_sec, SIZEOF_tv_usec): New constants.
2607
2608         * g-soccon-hpux-ia64.ads, g-soccon-linux-ppc.ads,
2609         g-soccon-solaris-64.ads, g-soccon-linux-64.ads,
2610         g-soccon-linux-x86.ads: New files.
2611
2612         * g-socthi-mingw.adb: 
2613         (Socket_Error_Message): Remove redundant use of GNAT.Sockets.Constants
2614
2615         * g-socthi-vxworks.ads, g-socthi-vms.ads, g-socthi-mingw.ads
2616         (time_t, suseconds_t): New types constructed to match the tv_sec
2617         and tv_usec fields of C struct timeval.
2618         (Timeval): Construct structure in terms of the new types.
2619         (Host_Errno): New function (imported from socket.c), returns last hosts
2620         database error.
2621
2622         * g-socthi-vxworks.adb:  Add error handling circuitry.
2623
2624         * g-socket.ads, g-socket.adb (To_Timeval): Reflect change of type for
2625         components of struct timeval.
2626         (Get_Host_By_Name, Get_Host_By_Address): Fix error reporting circuitry.
2627         (Check_Selector): In error conditions, clear internal socket sets to
2628         avoid a memory leak.
2629         (Get_Socket_Option, Set_Socket_Option): Support for Multicast_If,
2630         Send_Timeout, Receive_Timeout.
2631
2632         * g-socthi.ads (time_t, suseconds_t): New types constructed to match
2633         the tv_sec and tv_usec fields of C struct timeval.
2634         (Timeval): Construct structure in terms of the new types.
2635         (Host_Errno): New function (imported from socket.c), returns last hosts
2636         database error.
2637
2638         * socket.c (__gnat_get_h_errno): New function to retrieve h_errno, the
2639         hosts database last error code.
2640
2641         * gen-soccon.c: Complete value expansion should not be performed on
2642         TARGET, as it has the form of a math expression, and some components
2643         may be platform-defined macros.
2644         For VxWorks, generate the OK and ERROR values.
2645         New constants giving the sizes of the components of C struct timeval.
2646
2647 2005-11-14  Robert Dewar  <dewar@adacore.com>
2648             Ed Schonberg  <schonberg@adacore.com>
2649
2650         PR ada/18434
2651
2652         * types.ads: Include All_Checks in Suppress_Array
2653
2654         * checks.adb (Check_Needed): Remove kludge for a/=b rewritten as
2655         not(a=b), since we no longer do this rewriting, and hence it is not
2656         needed.
2657         (Elaboration_Checks_Suppressed): Add special casing to
2658         deal with different cases of static and dynamic elaboration checks (all
2659         checks does not count in the first case, but does in the second).
2660         (Expr_Known_Valid): Do not assume that the result of any arbitrary
2661         function call is valid, since this is not the case.
2662         (Ensure_Valid): Do not apply validity check to a real literal
2663         in a universal or fixed context
2664
2665         * exp_ch4.adb (Expand_N_Op_Ne): Don't expand a/=b to not(a=b) for
2666         elementary types using the operator in standard. It is cleaner not to
2667         modify the programmers intent, especially in the case of floating-point.
2668         (Rewrite_Comparison): Fix handling of /= (this was always wrong, but
2669         it did not matter because we always rewrote a/=b to not(a=b).
2670         (Expand_Allocator_Expression): For an allocator expression whose nominal
2671         subtype is an unconstrained packed type, convert the expression to its
2672         actual constrained subtype.
2673         Implement warning for <= or >= where < or > not possible
2674         Fix to Vax_Float tests (too early in many routines, causing premature
2675         Vax_Float expansions.
2676
2677         * sem_prag.adb (Analyze_Pragma, case Obsolescent): Allow this pragma
2678         to be used with packages and generic packages as well as with
2679         subprograms.
2680         (Suppress): Set All_Checks, but not Elaboration_Check, for case
2681         of pragma Suppress (All_Checks)
2682         (Analyze_Pragma, case Warnings): Implement first argument allowed to be
2683         a string literal for precise control over warnings.
2684         Avoid raise of pragma in case of unrecognized pragma and just return
2685         instead.
2686
2687         * sem_prag.ads: Minor reformatting
2688
2689         * switch-c.adb (Scan_Front_End_Switches): Replace "raise Bad_Switch;"
2690         with call to new procedure Bad_Switch. Call Scan_Pos with new parameter
2691         Switch. Do not handle any exception.
2692         Include -gnatwx as part of -gnatg (warn on redundant parens)
2693         Allow optional = after -gnatm
2694         (Scan_Front_End_Switches): The -gnatp switch sets All_Checks, but no
2695         longer sets Elaboration_Checks.
2696         Code to set warning mode moved to Sem_Warn
2697         so that it can be shared by pragma processing.
2698
2699         * s-mastop-tru64.adb (Pop_Frame): Remove redundant parentheses in if
2700         statement.
2701
2702         * s-taprop-solaris.adb: 
2703         Change some <= to =, to avoid new warning
2704
2705         * a-exexda.adb, prj-proc.adb: 
2706         Fix obvious typo (Num_Tracebacks compared <= 0 instead of < 0)
2707         Fix obvious typo (Total_Errors_Detected <= 0 should be = 0)
2708
2709 2005-11-14  Robert Dewar  <dewar@adacore.com>
2710
2711         * exp_vfpt.adb: Handle /= case
2712         (Expand_Vax_Conversion): Properly recognize Conversion_OK flag
2713         so that we do not get duplicate scaling for fixed point conversions.
2714
2715         * s-vaflop.ads, s-vaflop.adb: (Ne_F): New function
2716
2717 2005-11-14  Matthew Gingell  <gingell@adacore.com>
2718
2719         * system-lynxos-ppc.ads, system-lynxos-x86.ads: 
2720         Increase default priority on Lynx from 15 to 17, and meet the Ada
2721         requirement that Default_Priority be ((Priority'First +
2722         Priority'Last) / 2) by increasing the range of Interrupt_Priority.
2723
2724 2005-11-14  Vincent Celier  <celier@adacore.com>
2725
2726         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
2727         mlib-tgt-hpux.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
2728         mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-alpha.adb,
2729         mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb,
2730         mlib-tgt-darwin.adb, mlib-tgt.adb, mlib-tgt.ads,
2731         mlib-tgt-lynxos.adb (DLL_Prefix): New function
2732
2733 2005-11-14  Doug Rupp  <rupp@adacore.com>
2734
2735         * system-vms.ads, system-vms_64.ads: ADA$GNAT: New exported object in
2736         private part.
2737
2738 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
2739
2740         * s-traces-default.adb, s-trafor-default.ads,
2741         s-tratas-default.adb: Fix compilation errors.
2742
2743 2005-11-14  Jose Ruiz  <ruiz@adacore.com>
2744
2745         * s-taprop-posix.adb (Initialize_Lock): Destroy mutex attribute before
2746         raising the exception so the memory used is freed.
2747
2748 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
2749
2750         * adaint.h, adaint.c (__gnat_is_cross_compiler): New constant.
2751         (Gnat_Install_Locks, __gnatlib_install_locks): Removed, no longer used.
2752         (convert_address): Update comments and list of platforms using this.
2753
2754         * s-tasini.adb (Gnat_Install_Locks, __gnatlib_install_locks): Removed,
2755         no longer used.
2756
2757 2005-11-14  Pascal Obry  <obry@adacore.com>
2758             Vincent Celier  <celier@adacore.com>
2759
2760         * gnatdll.adb (Parse_Command_Line): Remove redundant use of
2761         GNAT.Command_Line.
2762
2763         * memroot.adb: Remove redundant with/use clause on
2764         System.Storage_Elements.
2765
2766 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
2767
2768         * a-except.adb (Zero_Cost_Exceptions): Removed, no longer used.
2769         (builtin_longjmp, Process_Raise_Exceeption): Move setjmp/longjmp
2770         related code to a-exexpr.adb
2771         (Save_Occurrence_And_Private): Move GCC EH related code to
2772         a-exexpr-gcc.adb
2773         (Raise_Current_Excep): Add new variable Id with pragma
2774         volatile, to ensure that the variable lives on stack.
2775
2776         * a-exexpr-gcc.adb, raise-gcc.c: New file.
2777
2778         * a-exexpr.adb (builtin_longjmp, Propagate_Exception): Moved here code
2779         from a-except.adb.
2780         Move GCC EH related code to a-exexpr-gcc.adb
2781
2782         * Makefile.in: Add or update g-soccon LIBGNAT pairs for Linux/PPC and
2783         64-bit Solaris
2784         Split the Linux version of g-soccon into separate variants for 32 and 64
2785         bit platforms.
2786         (gnatlib): Use $(AR_FOR_TARGET) and $(RANLIB_FOR_TARGET)
2787         vice $(AR) and $(RANLIB). Remove use of host variable $(RANLIB_FLAGS).
2788         install-gnatlib: Use $(RANLIB_FOR_TARGET) vice $(RANLIB). Remove use
2789         of host variable $(RANLIB_FLAGS).
2790         (alpha64-dec-*vms*): Fix translations for 64 bit compiler.
2791         Code clean up: remove unused/obsolete targets.
2792         (EH_MECHANISM): New variable introduced to differenciate between the
2793         two EH mechanisms statically.
2794         (gnatlib-zcx, gnatlib-sjlj): Force EH_MECHANISM manually.
2795         (LIBGNAT_OBJS): Add raise-gcc.o
2796         (LIBGNAT_TARGET_PAIRS for ppc-vxworks): Use an specialized version of
2797         s-osinte.adb, s-tpopsp.adb, and system.ads for the run time that
2798         supports VxWorks 6 RTPs.
2799         (EXTRA_GNATRTL_NONTASKING_OBJS for ppc-vxworks): Remove the use of
2800         i-vxworks and i-vxwoio from the run time that supports VxWorks 6 RTPs.
2801
2802         * raise.c: Move all GCC EH-related routines to raise-gcc.c
2803
2804 2005-11-14  Jose Ruiz  <ruiz@adacore.com>
2805
2806         * s-tassta.adb (Create_Task): Move the code in charge of resetting the
2807         deferral level, when abort is not allowed, to a later stage (the
2808         Task_Wrapper).
2809         (Task_Wrapper): If Abort is not allowed, reset the deferral level since
2810         it will not get changed by the generated code. It was previously done
2811         in Create_Task.
2812
2813 2005-11-14  Thomas Quinot  <quinot@adacore.com>
2814             Olivier Hainque  <hainque@adacore.com>
2815             Eric Botcazou  <ebotcazou@adacore.com>
2816
2817         * decl.c:
2818         Factor common code to build a storage type for an unconstrained object
2819         from a fat or thin pointer type and a constrained object type.
2820         (annotate_value): Handle BIT_AND_EXPR.
2821         (annotate_rep): Don't restrict the back annotation of inherited
2822         components to the type_annotate_only case.
2823         (gnat_to_gnu_entity) <E_Array_Type>: Do not invoke create_type_decl if
2824         we are not defining the type.
2825         <E_Record_Type>: Likewise.
2826         (gnat_to_gnu_entity) <object, renaming>: Adjust comments and structure
2827         to get advantage of the new maybe_stabilize_reference interface, to
2828         ensure that what we reference is indeed stabilized instead of relying
2829         on assumptions on what the stabilizer does.
2830         (gnat_to_gnu_entity) <E_Incomplete_Type>: If the entity is an incomplete
2831         type imported through a limited_with clause, use its non-limited view.
2832         (Has_Stdcall_Convention): New macro, to centralize the Windows vs others
2833         differentiation.
2834         (gnat_to_gnu_entity): Use Has_Stdcall_Convention instead of a spread mix
2835         of #if sections + explicit comparisons of convention identifiers.
2836         (gnat_to_gnu_entity) <E_Variable>: Decrement force_global if necessary
2837         before early-returning for certain types when code generation is
2838         disabled.
2839         (gnat_to_gnu_entity) <object>: Adjust comment attached to the
2840         nullification of gnu_expr we do for objects with address clause and
2841         that we are not defining.
2842         (elaborate_expression_1): Do not create constants when creating
2843         variables needed by the debug info: the dwarf2 writer considers that
2844         CONST_DECLs is used only to represent enumeration constants, and emits
2845         nothing for them.
2846         (gnat_to_gnu_entity) <object>: When turning a non-definition of an
2847         object with an address clause into an indirect reference, drop the
2848         initializing expression.
2849         Include "expr.h".
2850         (STACK_CHECK_BUILTIN): Delete.
2851         (STACK_CHECK_PROBE_INTERVAL): Likewise.
2852         (STACK_CHECK_MAX_FRAME_SIZE): Likewise.
2853         (STACK_CHECK_MAX_VAR_SIZE): Likewise.
2854         (gnat_to_gnu_entity): If gnat_entity is a renaming, do not mark the tree
2855         corresponding to the renamed object as ignored for debugging purposes.
2856
2857         * trans.c (tree_transform, case N_Attribute_Reference, case Attr_Size &
2858         related): For a prefix that is a dereference of a fat or thin pointer,
2859         if there is an actual subtype provided by the front-end, use that
2860         subtype to build an actual type with bounds template.
2861         (tree_transform, case N_Free_Statement): If an Actual_Designated_Subtype
2862         is provided by the front-end, use that subtype to compute the size of
2863         the deallocated object.
2864         (gnat_to_gnu): When adding a statement into an elaboration procedure,
2865         check for a potential violation of a No_Elaboration_Code restriction.
2866         (maybe_stabilize_reference): New function, like gnat_stabilize_reference
2867         with extra arguments to control whether to recurse through non-values
2868         and to let the caller know if the stabilization has succeeded.
2869         (gnat_stabilize_reference): Now a simple wrapper around
2870         maybe_stabilize, for common uses without restriction on lvalues and
2871         without need to check for the success indication.
2872         (gnat_to_gnu, call_to_gnu): Adjust calls to gnat_stabilize_reference, to
2873         pass false instead of 0 as the FORCE argument which is a bool.
2874         (Identifier_to_gnu): Remove checks ensuring that an renamed object
2875         attached to a renaming pointer has been properly stabilized, as no such
2876         object is attached otherwise.
2877         (call_to_gnu): Invoke create_var_decl to create the temporary when the
2878         function uses the "target pointer" return mechanism.
2879         Reinstate conversion of the actual to the type of the formal
2880         parameter before any other specific treatment based on the passing
2881         mechanism. This turns out to be necessary in order for PLACEHOLDER
2882         substitution to work properly when the latter type is unconstrained.
2883
2884         * gigi.h (build_unc_object_type_from_ptr): New subprogram, factoring a
2885         common pattern.
2886         (maybe_stabilize_reference): New function, like gnat_stabilize_reference
2887         with extra arguments to control whether to recurse through non-values
2888         and to let the caller know if the stabilization has succeeded.
2889
2890         * utils2.c (gnat_build_constructor): Only sort the fields for possible
2891         static output of record constructor if all the components are constant.
2892         (gnat_build_constructor): For a record type, sort the list of field
2893         initializers in increasing bit position order.
2894         Factor common code to build a storage type for an unconstrained object
2895         from a fat or thin pointer type and a constrained object type.
2896         (build_unary_op) <ADDR_EXPR>: Always recurse down conversions between
2897         types variants, and process special cases of VIEW_CONVERT expressions
2898         as their NOP_EXPR counterpart to ensure we get to the
2899         CORRESPONDING_VARs associated with CONST_DECls.
2900         (build_binary_op) <MODIFY_EXPR>: Do not strip VIEW_CONVERT_EXPRs
2901         on the right-hand side.
2902
2903         * utils.c (build_unc_object_type_from_ptr): New subprogram, factoring
2904         a common pattern.
2905         (convert) <VIEW_CONVERT_EXPR>: Return the inner operand directly if we
2906         are converting back to its original type.
2907         (convert) <JM input>: Fallthrough regular conversion code instead of
2908         extracting the object if converting to a type variant.
2909         (create_var_decl): When a variable has an initializer requiring code
2910         generation and we are at the top level, check for a potential violation
2911         of a No_Elaboration_Code restriction.
2912         (create_var_decl): call expand_decl for CONST_DECLs, to set MODE, ALIGN
2913         SIZE and SIZE_UNIT which we need for later back-annotations.
2914         * utils.c: (convert) <STRING_CST>: Remove obsolete code.
2915         <VIEW_CONVERT_EXPR>: Do not lift the conversion if the target type
2916         is an unchecked union.
2917         (pushdecl): Set DECL_NO_STATIC_CHAIN on imported nested functions.
2918         (convert) <VIEW_CONVERT_EXPR>: When the types have the same
2919         main variant, just replace the VIEW_CONVERT_EXPR.
2920         <UNION_TYPE>: Revert 2005-03-02 change.
2921
2922         * repinfo.h, repinfo.ads: Add tcode for BIT_AND_EXPR.
2923
2924         * repinfo.adb (Print_Expr, Rep_Value): Handle Bit_And_Expressions.
2925
2926 2005-11-14  Matthew Heaney  <heaney@adacore.com>
2927
2928         * a-crbtgo.ads, a-crbtgo.adb, a-coorse.ads, a-coorse.adb, a-convec.ads, 
2929         a-convec.adb, a-coinve.ads, a-coinve.adb, a-cohama.ads, a-cohama.adb, 
2930         a-ciorse.ads, a-ciorse.adb, a-cihama.ads, a-cihama.adb, a-cidlli.ads, 
2931         a-cidlli.adb, a-cdlili.ads, a-cdlili.adb, a-coormu.adb, a-ciormu.adb, 
2932         a-cihase.adb, a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads, 
2933         a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-ciorma.adb, a-coorma.adb: 
2934         Compiles against the spec for ordered maps described in sections
2935         A.18.6 of the most recent (August 2005) AI-302 draft.
2936
2937 2005-11-14  Olivier Hainque  <hainque@adacore.com>
2938
2939         * cuintp.c (UI_To_gnu): Use a proper type for intermediate computations
2940         to ensure bias adjustments take place when need be and to prevent
2941         occurrences of intermediate overflows.
2942
2943 2005-11-14  Matthew Gingell  <gingell@adacore.com>
2944             Olivier Hainque  <hainque@adacore.com>
2945
2946         * tb-gcc.c (trace_callback): Work around problem with _Unwind_GetIP on
2947         ia64 HP-UX.
2948
2949         * tracebak.c (ia64 configuration): Enable _Unwind_Backtrace driven
2950         tracebacks on ia64 HP-UX and provide explanatory comment.
2951         Enable backtraces on ia64 GNU/Linux.
2952         (x86 configuration): Bump FRAME_LEVEL to 1 to ensure we retrieve a real
2953         base pointer from builtin_frame_address. Adjust BASE_SKIP accordingly.
2954
2955 2005-11-14  Hristian Kirtchev  <kirtchev@adacore.com>
2956             Javier Miranda  <miranda@adacore.com>
2957
2958         * rtsfind.ads, exp_util.adb, exp_util.ads, exp_disp.adb, exp_disp.ads,
2959         exp_ch7.adb, sem_ch9.adb, snames.adb, snames.ads,
2960         exp_ch9.adb, exp_ch9.ads, exp_ch6.adb, exp_ch3.adb, exp_ch3.ads,
2961         einfo.ads, einfo.adb: Complete support for Ada 2005 interfaces.
2962
2963         * a-tags.ads, a-tags.adb: Major rewrite and additions to implement
2964         properly new Ada 2005 interfaces (AI-345) and add run-time checks (via
2965         assertions).
2966
2967         * exp_dbug.ads, exp_dbug.adb (Get_Secondary_DT_External_Name): New
2968         subprogram that generates the external name associated with a
2969         secondary dispatch table.
2970         (Get_Secondary_DT_External_Name): New subprogram that generates the
2971         external name associated with a secondary dispatch table.
2972
2973 2005-11-14  Emmanuel Briot  <briot@adacore.com>
2974
2975         * xref_lib.adb (Parse_Identifier_Info): It is possible for an entity
2976         line in the ALI file to include both an instantiation reference, and a
2977         returned value.
2978
2979 2005-11-14  Vincent Celier  <celier@adacore.com>
2980
2981         * clean.adb (Check_Project): Look for Ada code in extending project,
2982         even if Ada is not specified as a language.
2983         Use new function DLL_Prefix for DLL_Name
2984         (Clean_Interface_Copy_Directory): New procedure
2985         (Clean_Library_Directory): New procedure
2986         (Clean_Directory): Remove procedure, no longer used
2987         (Clean_Project): Do not delete any file in an externally built project
2988
2989         * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Add the object
2990         directory of an extending project, even when there are no Ada source
2991         present.
2992         (Ada_Objects_Path.Add): Add Library_ALI_Dir, not Library_Dir to the path
2993         (Set_Ada_Paths.Add.Recursive_Add): Ditto
2994
2995         * mlib-prj.adb (Check_Library): For all library projects, get the
2996         library file timestamp.
2997         (Build_Library): Copy ALI files in Library_ALI_Dir, not in Library_Dir
2998         (Build_Library): Use new function DLL_Prefix for the DLL_Name
2999         (Clean): Remove procedure, no longer used
3000         (Ultimate_Extension_Of): New function
3001         (Build_Library): When cleaning the library directory, only remove an
3002         existing library file and any ALI file of a source of the project.
3003         When cleaning the interface copy directory, remove any source that
3004         could be a source of the project.
3005
3006         * prj.ads, prj.adb (Project_Empty): Add values of new components
3007         Library_TS and All_Imported_Projects.
3008         (Project_Empty): Add values for new components of Project_Data:
3009         Library_ALI_Dir and Display_Library_ALI_Dir
3010
3011         * prj-attr.adb: New project level attribute name Library_ALI_Dir
3012
3013         * prj-nmsc.adb (Check_Library_Attributes): Take into account new
3014         attribute Library_ALI_Dir.
3015         (Check_Library_Attributes): The library directory cannot be the same as
3016         any source directory of the project tree.
3017         (Check_Stand_Alone_Library): The interface copy directory cannot be
3018         the same as any source directory of the project tree.
3019
3020         * mlib.adb: Use Prj.Com.Fail, instead of Osint.Fail directly, to delete
3021         all temporary files.
3022
3023 2005-11-14  Robert Dewar  <dewar@adacore.com>
3024             Ed Schonberg  <schonberg@adacore.com>
3025
3026         * sem_elab.adb: Change name Is_Package to Is_Package_Or_Generic_Package
3027         (Check_Elab_Call): A call within a protected body is never an
3028         elaboration call, and does not require checking.
3029         (Same_Elaboration_Scope): Take into account protected types for both
3030         entities.
3031         (Activate_Elaborate_All_Desirable): New procedure
3032
3033         * ali.ads, ali.adb: Implement new AD/ED for Elaborate_All/Elaborate
3034         desirable
3035
3036         * binde.adb: Implement new AD/ED for Elaborate_All/Elaborate desirable
3037         (Elab_Error_Msg): Use -da to include internal unit links, not -de.
3038
3039         * lib-writ.ads, lib-writ.adb: 
3040         Implement new AD/ED for Elaborate_All/Elaborate desirable
3041         Use new Elaborate_All_Desirable flag in N_With_Clause node
3042
3043         * sinfo.ads, sinfo.adb (Actual_Designated_Subtype): New attribute for
3044         N_Free_Statement nodes.
3045         Define new class N_Subprogram_Instantiation
3046         Add Elaborate_Desirable flag to N_With_Clause node
3047         Add N_Delay_Statement (covering two kinds of delay)
3048
3049         * debug.adb: Introduce d.f flag for compiler
3050         Add -da switch for binder
3051
3052 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
3053             Cyrille Comar  <comar@adacore.com>
3054
3055         * exp_aggr.adb (Build_Record_Aggr_Code): Do not create master entity
3056         for task component, in the case of a limited aggregate. The enclosed
3057         object declaration will create it earlier. Otherwise, in the case of a
3058         nested aggregate, the object may appear in the wrong scope.
3059         (Convert_Aggr_In_Object_Decl): Create a transient scope when needed.
3060         (Gen_Assign): If the component being assigned is an array type and the
3061         expression is itself an aggregate, wrap the assignment in a block to
3062         force finalization actions on the temporary created for each row of the
3063         enclosing object.
3064         (Build_Record_Aggr_Code): Significant rewrite insuring that ctrl
3065         structures are initialized after all discriminants are set so that
3066         they can be accessed even when their offset is dynamic.
3067
3068 2005-11-14  Robert Dewar  <dewar@adacore.com>
3069             Hristian Kirtchev  <kirtchev@adacore.com>
3070
3071         * sem_attr.adb: Implement Machine_Rounding attribute
3072         (Analyze_Access_Attribute): The access attribute may appear within an
3073         aggregate that has been expanded into a loop.
3074         (Check_Task_Prefix): Add semantic check for attribute 'Callable and
3075         'Terminated whenever the prefix is of a task interface class-wide type.
3076         (Analyze_Attribute): Add semantic check for attribute 'Identity whenever
3077         the prefix is of a task interface class-wide type.
3078
3079         * s-vaflop-vms-alpha.adb: Valid_D, Valid_F, Valid_G: Make Val constant
3080         to avoid warnings.
3081
3082         * s-fatgen.ads, s-fatgen.adb (Machine_Rounding): New function
3083         Remove pragma Inline for [Unaligned_]Valid.
3084         Add comments that Valid routines do not work for Vax_Float
3085
3086         * exp_attr.adb: Implement Machine_Rounding attribute
3087
3088         * snames.h: Add entry for Machine_Rounding attribute
3089
3090 2005-11-14  Javier Miranda  <miranda@adacore.com>
3091             Robert Dewar  <dewar@adacore.com>
3092             Hristian Kirtchev  <kirtchev@adacore.com>
3093
3094         * exp_attr.adb (Expand_N_Attribute_Reference, cases of Attribute_Size
3095         and related): For a prefix that is an explicit dereference of an
3096         access to unconstrained packed array type, annotate the dereference
3097         with an actual subtype so GIGI can make a correct size computation.
3098         (Expand_N_Attribute_Reference): In case of 'Unchecked_Access and
3099         'Unrestricted_Access, if the designated type is an interface we
3100         add a type conversion to force the displacement of the pointer
3101         to the secondary dispatch table.
3102         Use Universal_Real instead of Long_Long_Float when we need a high
3103         precision float type for the generated code (prevents gratuitous
3104         Vax_Float stuff when pragma Float_Representation (Vax_Float) used)
3105         (Expand_N_Attribute_Reference): Add support for attribute 'Callable and
3106         'Terminated for task interface class-wide objects. Generate a call to
3107         the predefined dispatching routine used to retrieve the _task_id from
3108         a task corresponding record.
3109         (Expand_Fpt_Attribute): Major change to properly handle Vax_Float
3110
3111         * sem_disp.adb: Change name Is_Package to Is_Package_Or_Generic_Package
3112         (Check_Dispatching_Operation): Protect the frontend againts
3113         previously detected errors.
3114
3115         * Makefile.rtl: Add new instantiations of system.fat_gen
3116
3117         * s-fatflt.ads, s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads: 
3118         Change name of instantiated package for better consistency
3119         with newly added system.fat_gen instantiations.
3120
3121         * s-filofl.ads, s-fishfl.ads, s-fvadfl.ads, s-fvaffl.ads,
3122         s-fvagfl.ads: New files.
3123
3124 2005-11-14  Cyrille Comar  <comar@adacore.com>
3125             Thomas Quinot  <quinot@adacore.com>
3126
3127         * exp_ch5.adb (Expand_N_Assignment_Statement, Tagged_Case): For an
3128         assignment of a value of a tagged type that has been rewritten to a
3129         block statement, it is known by construction that no checks are
3130         necessary for the statements within the block: analyze it with checks
3131         suppressed.
3132         (Expand_N_If_Statement): When killing a dead then-branch in an
3133         if-statement that has elsif_parts, recompute the Current_Value node
3134         for any entity whose value is known from the condition of the first
3135         elsif_part.
3136         (Expand_N_Return_Statement): When returning a mutable record, convert
3137         the return value into its actual subtype in order to help the backend
3138         to return the actual size instead of the maximum. This is another
3139         aftermath of not returning mutable records on the sec-stack anymore.
3140
3141         * sem_ch5.ads, sem_ch5.adb (Analyze_Iteration_Scheme): Minor change to
3142         handling of error msg for suspicious reverse range iteration.
3143         (Check_Possible_Current_Value_Condition): Move declaration from body to
3144         spec, to allow this subprogram to be called from exp_ch5.
3145
3146 2005-11-14  Thomas Quinot  <quinot@adacore.com>
3147
3148         * exp_dist.adb (Append_Array_Traversal): Modify constrained case to
3149         generate a set of nested array aggregates instead of a single flat
3150         aggregate for multi-dimensional arrays.
3151
3152 2005-11-14  Pascal Obry  <obry@adacore.com>
3153
3154         * expect.c (__gnat_kill) [Win32]: Fix implementation, the pid returned
3155         by spawnve is a process handle, no need to convert. Add a parameter
3156         close to control wether the process handle must be closed.
3157         (__gnat_waitpid): Fix implementation, the pid returned by spawnve is
3158         a process handle, not need to convert.
3159         (__gnat_kill) [*]: Add dummy parameter close to match the Win32 spec.
3160
3161         * g-expect.adb: (Kill): Document the new close parameter.
3162         (Close): Do not release the process handle in the kill there as
3163         waitpid() is using it.
3164         (Send_Signal): Release the process handle.
3165
3166 2005-11-14  Robert Dewar  <dewar@adacore.com>
3167
3168         * exp_fixd.adb: Use Universal_Real instead of Long_Long_Float when we
3169         need a high precision float type for the generated code (prevents
3170         gratuitous Vax_Float stuff when pragma Float_Representation (Vax_Float)
3171         used).
3172
3173         * exp_imgv.adb: Use Universal_Real instead of Long_Long_Float when we
3174         need a high precision float type for the generated code (prevents
3175         gratuitous Vax_Float stuff when pragma Float_Representation (Vax_Float)
3176         used).
3177         (Expand_Width_Attribute): In configurable run-time, the attribute is not
3178         allowed on non-static enumeration subtypes. Force a load error to emit
3179         the correct diagnostic.
3180
3181 2005-11-14  Thomas Quinot  <quinot@adacore.com>
3182             Robert Dewar  <dewar@adacore.com>
3183             Ed Schonberg  <schonberg@adacore.com>
3184
3185         * exp_intr.adb (Expand_Unc_Deallocation): If GIGI needs an actual
3186         subtype to compute the size of the designated object at run-time,
3187         create such a subtype and store it in the Actual_Designated_Subtype
3188         attribute of the N_Free_Statement.
3189         Generate itype for classwide designated object in both cases of
3190         user-specified storage pool: specific and class-wide, not only in the
3191         specific case.
3192         Raise CE when trying to set a not null access type object to null.
3193         (Expand_Dispatching_Constructor_Call): Retrieve subprogram actual with
3194         an explicit loop, because freeze nodes make its position variable.
3195
3196         * sem_intr.adb (Check_Intrinsic_Call): Given warning for freeing not
3197         null object.
3198
3199 2005-11-14  Javier Miranda  <miranda@adacore.com>
3200
3201         * exp_strm.adb (Build_Stream_Attr_Profile, Build_Stream_Function,
3202         Build_Stream_Procedure): Add the null-excluding attribute to the first
3203         formal.
3204         This has no semantic meaning under Ada95 mode but it is a
3205         requirement under Ada05 mode.
3206
3207         * par-ch3.adb (P_Access_Definition): Addition of warning message if
3208         the null exclusion is used under Ada95 mode
3209         (P_Null_Exclusion): The qualifier has no semantic meaning in Ada 95.
3210         (P_Access_Definition): Remove assertion that forbids the use of
3211         the null-exclusion feature in Ada95.
3212
3213 2005-11-14  Robert Dewar  <dewar@adacore.com>
3214
3215         * impunit.adb: Exclude container helper units not intended for use by
3216         users.
3217
3218 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
3219
3220         * freeze.adb (Freeze_Entity): For an access formal that is an access
3221         to subprogram, freeze the anonymous subprogram type at the same time,
3222         to prevent later freezing in the wrong scope, such as the enclosing
3223         subprogram body.
3224         (Freeze_Entity): Freeze the equivalent_type of an access_to_protected_
3225         subprogram whenever available.
3226
3227 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
3228
3229         PR ada/23732
3230         * gnatvsn.ads (Library_Version): Bump to 4.1
3231
3232 2005-11-14  Robert Dewar  <dewar@adacore.com>
3233
3234         * g-debpoo.adb (Set_Valid): Use Integer_Address instead of
3235         Storage_Offset to avoid wrap around causing invalid results.
3236
3237 2005-11-14  Pascal Obry  <obry@adacore.com>
3238
3239         * gnatbind.adb (Is_Cross_Compiler): New function returning True for
3240         cross-compiler.
3241         (Scan_Bind_Arg): Fail with an error message if -M option is used
3242         on a native compiler.
3243