OSDN Git Service

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