OSDN Git Service

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