OSDN Git Service

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