OSDN Git Service

* gnat_ugn.texi (Conventions): List environment variables and
[pf3gnuchains/gcc-fork.git] / gcc / ada / ChangeLog
1 2008-02-25  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2
3         * gnat_ugn.texi (Conventions): List environment variables and
4         metasyntactic variables.
5         (Compiling Programs): Fix notation of metasyntactic variables.
6         Add @file where appropriate.  Use @file for file extensions,
7         @samp for strings.
8         * gnat_rm.texi, gnat_ugn.texi: Where appropriate, use @samp
9         instead of @file, @env instead of @code.
10
11 2008-02-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12
13         PR documentation/15479
14         * gnat_rm.texi, gnat_ugn.texi: Where appropriate, replace `..'
15         and `...' with `@dots{}' or `@enddots{}'.
16
17         PR documentation/15479
18         * gnat_rm.texi, gnat_ugn.texi: Where appropriate, add @command,
19         use @command instead of @code, @option instead of @samp or @code,
20         @code instead of @var, @samp instead of @file.
21
22         PR documentation/15479
23         * gnat_ugn.texi (Using gnatmake in a Makefile): Do not ignore errors
24         in Makefile rules, by using `&&' rather than `;'.
25
26 2008-02-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
27
28         PR documentation/15479
29         * gnat_ugn.texi: In non-code, avoid space before colon.
30         (Regular Expressions in gnatfind and gnatxref): Fix indentation.
31         (Examples of gnatxref Usage): Use @command{vi} instead of
32         @file{vi}.
33         (Character Set Control): Do not use @code for UTF-8.
34         (Validity Checking): Fix typo "NaNs" instead of "NaN's".  Do not
35         use @code for IEEE.
36         * gnat_rm.texi (Aggregates with static bounds): Fix typo in code
37         sample.
38         * gnat_rm.texi, gnat_ugn.texi: Fix typos.  Bump copyright years.
39
40 2008-02-11  Joel Sherrill <joel.sherrill@oarcorp.com>
41
42         PR ada/35143
43         * env.c: Add __rtems__ to if defined.
44         * s-osinte-rtems.adb: Add To_Target_Priority.  Fix formatting.
45         * s-osinte-rtems.ads: Add To_Target_Priority prototype and
46         PTHREAD_SCOPE_PROCESS/PTHREAD_SCOPE_SYSTEM constants.  Add
47         pragma Convention as required.
48         * gsocket.h: Make compile in and out of RTS.
49         * Makefile.in: Add system-rtems.ads.  Build DEC extensions.
50         Use g-soccon-rtems.ads.
51         * g-soccon-rtems.ads, system-rtems.ads: New files.
52
53 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
54
55         PR other/35107
56         * Make-lang.in (gnat1): Add $(GMPLIBS).
57
58 2008-01-26  Eric Botcazou  <ebotcazou@adacore.com>
59
60         * decl.c (components_to_record): Improve comment.
61
62 2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>
63
64         * decl.c (components_to_record): Do not reuse the empty union type
65         if there is a representation clause on the record.
66         * trans.c (addressable_p): Return true for INTEGER_CST.
67
68 2008-01-21  Eric Botcazou  <ebotcazou@adacore.com>
69
70         * trans.c (gnat_to_gnu) <N_Free_Statement>: Use POINTER_PLUS_EXPR
71         in pointer arithmetics.
72         * utils2.c (build_allocator): Likewise.
73
74 2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>
75
76         * utils.c (build_function_stub): Properly build the call expression.
77
78 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
79
80         * decl.c (gnat_to_gnu_entity) <object>: Process renamings
81         before converting the expression to the type of the object.
82         * trans.c (maybe_stabilize_reference) <CONSTRUCTOR>: New case.
83         Stabilize constructors for special wrapping types.
84
85 2008-01-13  Eric Botcazou  <ebotcazou@adacore.com>
86
87         * trans.c (call_to_gnu):Invoke the addressable_p predicate only
88         when necessary.  Merge some conditional statements.  Update comments.
89         Rename unchecked_convert_p local variable to suppress_type_conversion.
90         Do not suppress conversions in the In case.
91         (addressable_p) <VIEW_CONVERT_EXPR>: Do not take alignment issues
92         into account on non strict-alignment platforms.
93
94 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
95
96         * utils.c (aggregate_type_contains_array_p): New predicate.
97         (create_field_decl): In a packed record, force byte alignment
98         for fields without specified position that contain an array.
99
100 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
101
102         * utils.c (unchecked_convert): Fold the VIEW_CONVERT_EXPR expression.
103
104 2008-01-10  John David Anglin  <dave.anglin.@nrc-cnrc.gc.ca>
105
106         PR ada/34466
107         * s-osinte-linux-hppa.ads (SC_NPROCESSORS_ONLN): New constant for
108         sysconf call.
109         (bit_field): New packed boolean type used by cpu_set_t.
110         (cpu_set_t): New type corresponding to the C type with
111         the same name. Note that on the Ada side we use a bit
112         field array for the affinity mask. There is not need
113         for the C macro for setting individual bit.
114         (pthread_setaffinity_np): New imported routine.
115
116 2008-01-03  Tero Koskinen <tero.koskinen@iki.fi>
117
118         PR ada/34647
119         * adaint.c (__gnat_open_new_temp, __gnat_tmp_name): Use mkstemp()
120         on OpenBSD as is done on other BSD systems.
121
122         PR ada/34645
123         * sysdep.c (__gnat_ttyname, getc_immediate_nowait,
124         getc_immediate_common): Treat OpenBSD as FreeBSD regarding immediate
125         I/O.
126
127         PR ada/34644
128         * env.c (__gnat_clearenv): Treat OpenBSD as other BSD systems missing
129         clearenv().
130
131         PR ada/34646
132         * init.c (__gnat_error_handler, __gnat_install_handler,
133         __gnat_init_float): Define for OpenBSD.
134
135         * initialize.c (__gnat_initialize): Define for OpenBSD.
136
137 2007-12-27  Samuel Tardieu  <sam@rfc1149.net>
138
139         PR ada/34553
140         * adaint.c (__gnat_open_new_temp, __gnat_tmp_name): Use mkstemp()
141         instead of mktemp() or tmpnam() on NetBSD.
142
143 2007-12-23  Eric Botcazou  <ebotcazou@adacore.com>
144
145         * trans.c (call_to_gnu): Make the temporary for non-addressable
146         In parameters passed by reference.
147         (addressable_p): Return true for STRING_CST and CALL_EXPR.
148
149 2007-12-19  Robert Dewar  <dewar@adacore.com>
150
151         * g-expect-vms.adb, g-expect.adb, s-poosiz.adb: 
152         Add pragma Warnings (Off) for unassigned IN OUT arguments
153
154         * sem_warn.adb (Output_Reference): Suppress messages for internal names
155         (Check_References): Extensive changes to tune up warnings
156         (Output_Non_Modifed_In_Out_Warnings): Changes to tune up warnings
157         (Has_Pragma_Unmodifed_Check_Spec): New function
158         (Check_References): Implement pragma Unmodified
159         (Warn_On_Unassigned_Out_Parameter): Implement pragma Unmodified
160
161         * par-prag.adb: Dummy entry for pragma Unmodified
162
163         * sem_prag.adb: Implement pragma Unmodified
164
165         * einfo.ads, einfo.adb: (Has_Pragma_Unmodified): New flag
166         (Proc_Next_Component_Or_Discriminant): Fix typo.
167         Update comments.
168
169         * sem_util.adb (Note_Possible_Modification): Add processinng for pragma
170         Unmodified.
171         (Reset_Analyzed_Flags): Use Traverse_Proc instead of Traverse_Func,
172         because the former already takes care of discarding the result.
173         (Mark_Coextensions): Remove ununused initial value from Is_Dynamic.
174         Add comment.
175
176         * snames.h, snames.ads, snames.adb: Add entry for pragma Unmodified
177
178 2007-12-19  Eric Botcazou  <ebotcazou@adacore.com>
179
180         * targparm.adb, targparm.ads, system.ads, system-darwin-ppc.ads,
181         system-vxworks-x86.ads, system-linux-ppc.ads, system-linux-hppa.ads,
182         system-hpux-ia64.ads, system-vxworks-arm.ads, system-darwin-x86.ads,
183         system-vms_64.ads, system-vms-ia64.ads, system-linux-ia64.ads,
184         system-freebsd-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
185         system-aix.ads, system-vxworks-sparcv9.ads, system-solaris-x86.ads,
186         system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads,
187         system-vxworks-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads,
188         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
189         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads
190         (Dynamic_Trampolines_Used): Delete.
191
192         * system-lynxos-x86.ads, system-lynxos-ppc.ads: Ditto.
193         Turn on stack probing mechanism on LynxOS.
194
195 2007-12-19  Bob Duff  <duff@adacore.com>
196
197         * atree.ads, atree.adb (Traverse_Func): Walk Field2 last, and eliminate
198         the resulting tail recursion by hand. This prevents running out of
199         memory on deeply nested concatenations, since Field2 is where the left
200         operand of concatenations is stored.
201         Fix bug (was returning OK_Orig in some cases). Fix return subtype to
202         clarify that it can only return OK or Abandon.
203
204         * sem_res.adb (Resolve_Op_Concat): Replace the recursion on the left
205         operand by iteration, in order to avoid running out of memory on
206         deeply-nested concatenations. Use the Parent pointer to get back up the
207         tree.
208         (Resolve_Op_Concat_Arg, Resolve_Op_Concat_First,
209          Resolve_Op_Concat_Rest): New procedures split out of
210         Resolve_Op_Concat, so the iterative algorithm in Resolve_Op_Concat is
211         clearer.
212
213         * checks.adb (Remove_Checks): Use Traverse_Proc instead of
214         Traverse_Func, because the former already takes care of discarding the
215         result.
216
217         * errout.adb (First_Node): Use Traverse_Proc instead of Traverse_Func,
218         because the former already takes care of discarding the result.
219         (Remove_Warning_Messages): Use appropriate subtype for Status and
220         Discard 
221
222 2007-12-19  Ed Schonberg  <schonberg@adacore.com>
223
224         * exp_aggr.adb (Not_OK_For_Backend): A component of a private type with
225         discriminants forces expansion of the aggregate into assignments.
226         (Init_Record_Controller):  If the type of the aggregate is untagged and
227         is not inherently limited, the record controller is not limited either.
228
229 2007-12-19  Robert Dewar  <dewar@adacore.com>
230
231         * exp_attr.adb (Expand_N_Attribute_Reference, case Size): Fix error in
232         handling compile time known size of record or array (case of front end
233         layout active, e.g. in GNAAMP).
234
235 2007-12-19  Javier Miranda  <miranda@adacore.com>
236
237         * exp_ch3.adb (Expand_N_Object_Declaration): Complete the circuitry
238         that forces the construction of static dispatch tables in case of
239         record subtypes.
240
241 2007-12-19  Robert Dewar  <dewar@adacore.com>
242
243         * exp_ch9.adb (Null_Statements): Moved to library level
244         (Trivial_Accept_OK): New function
245         (Expand_Accept_Declaration): Use Trivial_Accept_OK
246         (Expand_N_Accept_Statement): Use Trivial_Accept_OK
247
248 2007-12-19  Robert Dewar  <dewar@adacore.com>
249
250         * exp_pakd.adb (Expand_Bit_Packed_Element_Set): Fix packed array type
251         in complex case where array is Volatile.
252
253 2007-12-19  Ed Schonberg  <schonberg@adacore.com>
254
255         * freeze.adb (Freeze_Record_Type, Check_Current_Instance): Implement
256         properly the Ada2005 rules concerning when the current instance of a
257         record type is aliased.
258
259 2007-12-19  Ed Schonberg  <schonberg@adacore.com>
260
261         * par-ch3.adb (P_Record_Declaration): Guard against cascaded errors in
262         mangled declaration
263         (P_Type_Declaration): Diagnose misuse of "abstract" in untagged record
264         declarations.
265         (P_Variant_Part): Cleaner patch for parenthesized discriminant
266
267 2007-12-19  Vincent Celier  <celier@adacore.com>
268
269         * prj-attr.adb (Package_Node_Id_Of): Returns Unknown_Package when
270         package is not known
271
272         * prj-attr.ads (Unknown_Package): New constant
273         Do not crash when an unknown package is in several projects
274
275         * prj-dect.adb (Parse_Package_Declaration): Mark an unknown package as
276         ignored
277
278         * prj-nmsc.adb (Check): Remove obsolete code related to no longer
279         existing package Language_Processing.
280
281 2007-12-19  Ed Schonberg  <schonberg@adacore.com>
282             Gary Dismukes  <dismukes@adacore.com>
283             Samuel Tardieu  <sam@rfc1149.net>
284
285         PR ada/15803, ada/15805
286         * sem_ch6.adb, sem_ch3.adb (Constrain_Access): In Ada2005, diagnose
287         illegal access subtypes when there is a constrained partial view.
288         (Check_For_Premature_Usage): New procedure inside
289         Access_Subprogram_Declaration for checking that an access-to-subprogram
290         type doesn't reference its own name within any formal parameters or
291         result type (including within nested anonymous access types).
292         (Access_Subprogram_Declaration): Add call to Check_For_Premature_Usage.
293         (Sem_Ch3.Analyze_Object_Declaration, Sem_ch6.Process_Formals): if the
294         context is an access_to_variable, the expression cannot be an
295         access_to_constant.
296
297 2007-12-19  Bob Duff  <duff@adacore.com>
298
299         * sem_ch4.adb (Analyze_Concatenation_Rest): New procedure.
300         (Analyze_Concatenation): Use iteration instead of recursion in order
301         to avoid running out of stack space for deeply nested concatenations.
302
303 2007-12-19  Ed Schonberg  <schonberg@adacore.com>
304             Gary Dismukes  <dismukes@adacore.com>
305
306         * sem_ch8.adb (Analyze_Subprogram_Renaming): Diagnose illegal renamings
307         whose renamed entity is a subprogram that requires overriding.
308         (Premature_Usage): Test for the case of N_Full_Type_Declaration when
309         issuing an error for premature usage and issue a message that says
310         'type' rather than 'object'.
311
312 2007-12-19  Gary Dismukes  <dismukes@adacore.com>
313
314         PR ada/34149
315         * sem_disp.adb (Check_Dispatching_Call): Augment existing test for
316         presence of a statically tagged operand (Present (Static_Tag)) with
317         test for Indeterm_Ancestor_Call when determining whether to propagate
318         the static tag to tag-indeterminate operands (which forces dispatching
319         on such calls).
320         (Check_Controlling_Formals): Ada2005, access parameters can have
321         defaults.
322         (Add_Dispatching_Operation, Check_Operation_From_Private_View): do
323         not insert subprogram in list of primitive operations if already there.
324
325 2007-12-19  Tristan Gingold  <gingold@adacore.com>
326
327         * utils.c (create_var_decl_1): call rest_of_decl_compilation only for
328         global variable.
329
330 2007-12-19  Thomas Quinot  <quinot@adacore.com>
331
332         Part of PR ada/33688
333         * gen-soccon.c: Add constant IP_PKTINFO to allow getting ancillary
334         datagram info on Linux.
335
336 2007-12-19  Vincent Celier  <celier@adacore.com>
337
338         * makegpr.adb (Check_Compilation_Needed): Normalize C_Source_Path so
339         that the source path name is always found in the dependencies.
340
341 2007-12-19  Robert Dewar  <dewar@adacore.com>
342
343         * gnat_rm.texi, gnat_ugn.texi: Update documentation of -gnatw.o
344         Fix name of Wide_Wide_Latin_1/9 file names
345         Add documentation for Ada.Exceptions.Last_Chance_Handler (a-elchha.ads)
346         Add missing documentation for Ada.Wide_[Wide_]Characters.Unicode
347         Add missing documentation for Ada.Command_Line.Response_File
348         Update list of warning letters for Warnings pragma
349         Add documentation for pragma Unmodified
350
351 2007-12-19  Samuel Tardieu  <sam@rfc1149.net>
352
353         * Makefile.in: Add s-tasinf.ad[bs] substitutions for sh4-linux target.
354
355 2007-12-17  Arnaud Charlet  <charlet@adacore.com>
356
357         * s-vxwork-alpha.ads: Removed, no longer used.
358
359 2007-12-15  Jakub Jelinek  <jakub@redhat.com>
360
361         * Make-lang.in (gnat1, gnatbind): Pass ALL_CFLAGS on the link line.
362
363 2007-12-13  Samuel Tardieu  <sam@rfc1149.net>
364
365         PR ada/34360
366         * Makefile.in: Change two occurrences of mlib-tgt.adb by correct name
367         mlib-tgt-specific.adb.
368
369 2007-12-13  Bob Duff  <duff@adacore.com>
370
371         * trans.c (Attribute_to_gnu): Check for violations of the
372         No_Implicit_Dynamic_Code restriction. This checking used to be done in
373         the front end, but is moved here so we can make it more accurate.
374
375 2007-12-13  Pascal Obry  <obry@adacore.com>
376
377         * adaint.c (__gnat_pthread_setaffinity_np): New routine. A dummy
378          version is provided for older GNU/Linux distribution not
379          supporting thread affinity sets.
380         
381         * s-osinte-linux.ads (SC_NPROCESSORS_ONLN): New constant for sysconf
382         call.
383         (bit_field): New packed boolean type used by cpu_set_t.
384         (cpu_set_t): New type corresponding to the C type with
385         the same name. Note that on the Ada side we use a bit
386         field array for the affinity mask. There is not need
387         for the C macro for setting individual bit.
388         (pthread_setaffinity_np): New imported routine.
389         
390         * s-taprop-linux.adb (Enter_Task): Check that the CPU affinity mask is
391         no null.
392         (Create_Task): Set the processor affinity mask if information
393         is present.
394         
395         * s-tasinf-linux.ads, s-tasinf-linux.adb: New files.
396         
397 2007-12-13  Robert Dewar  <dewar@adacore.com>
398
399         * s-osinte-lynxos-3.ads, s-osinte-hpux.ads, s-osinte-solaris-posix.ads, 
400         s-osinte-freebsd.ads, s-osinte-lynxos.ads, s-osinte-tru64.ads, 
401         s-osinte-mingw.ads, s-osinte-aix.ads, s-osinte-hpux-dce.ads, 
402         s-osinte-irix.ads, s-osinte-solaris.ads, s-intman-vms.adb,
403         s-osinte-vms.ads, s-osinte-vxworks6.ads, s-osinte-vxworks.ads,
404         s-auxdec.ads, s-auxdec-vms_64.ads, s-osinte-darwin.ads, 
405         s-taprop-vms.adb, s-interr-sigaction.adb, s-osinte-linux-hppa.ads, 
406         i-vxwork-x86.ads, s-tpopde-vms.ads: Add missing pragma Convention C
407         for subprogram pointers.
408
409         * g-ctrl_c.adb: New file.
410
411         * g-ctrl_c.ads (Install_Handler): New body.
412
413         * freeze.adb (Freeze_Subprogram): Use new flag Has_Pragma_Inline_Always
414         instead of obsolete function Is_Always_Inlined.
415         (Freeze_Entity): check for tagged type in imported C subprogram
416         (Freeze_Entity): check for 8-bit boolean in imported C subprogram
417         (Freeze_Entity): check for convention Ada subprogram pointer in
418         imported C subprogram.
419         (Freeze_Fixed_Point_Type): In the case of a base type where the low
420         bound would be chopped off and go from negative to zero, force
421         Loval_Excl_EP to be the same as Loval_Incl_EP (the included lower
422         bound) so that the size computation for the base type will take
423         negative values into account.
424
425 2007-12-13  Eric Botcazou  <ebotcazou@adacore.com>
426             Bob Duff  <duff@adacore.com>
427             Tristan Gingold  <gingold@adacore.com>
428
429         * system-linux-ia64.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads, 
430         system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads, 
431         system-aix.ads, system-vxworks-sparcv9.ads, system-solaris-x86.ads, 
432         system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads, 
433         system-vxworks-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads, 
434         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads, 
435         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads, 
436         system-vxworks-arm.ads, system-darwin-x86.ads, system.ads,
437         system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads, 
438         system-linux-ppc.ads, system-linux-hppa.ads, system-hpux-ia64.ads,
439         system-vms-ia64.ads (Stack_Check_Limits): New target parameter.
440         (Always_Compatible_Rep): New flag to control trampolines globally.
441         (Dynamic_Trampolines_Used): New flag for implementing the
442         No_Implicit_Dynamic_Code restriction more correctly (not yet used,
443         and not yet set correctly for some targets).
444
445         * s-taprop-vxworks.adb: Use stack limit method of stack checking.
446         Simply indirectly call s-stchop when a task is created.
447
448         * ali.ads: 
449         New flag added: Stack_Check_Switch_Set which is set when '-fstack-check'
450         appears as an argument (entries A) in an ALI file.
451
452         * fe.h (Stack_Check_Limits): Declare new target parameter.
453         (Check_Implicit_Dynamic_Code_Allowed): New procedure.
454
455         * init.c: Declare __gnat_set_stack_limit_hook for VxWorks kernel RTS.
456         This variable is declared in C to be sure not subject to elaboration
457         code.
458         (__gnat_map_signal, VxWorks): In kernel mode, map SIGILL to
459         Storage_Error.
460
461         * targparm.ads, targparm.adb (Stack_Check_Limits): New parameter.
462         (Always_Compatible_Rep, Dynamic_Trampolines_Used): New parameters.
463
464         * s-stchop.ads: Add comments.
465
466         * s-stchop-vxworks.adb: Package almost fully rewritten to use stack
467         limit method of stack checking.
468
469         * s-stchop-limit.ads: New file.
470
471 2007-12-13  Robert Dewar  <dewar@adacore.com>
472
473         * sem_ch5.adb, s-taskin.adb, a-ciorma.adb, a-coorma.adb, a-cohama.adb, 
474         a-cihama.adb, g-awk.adb, 
475         s-inmaop-posix.adb: Update handling of assigned value/unreferenced
476         warnings
477
478         * exp_smem.adb: Update handling of assigned value/unreferenced warnings
479
480         * sem.adb: Update handling of assigned value/unreferenced warnings
481
482         * a-exexpr-gcc.adb: Add a pragma warnings off for boolean return
483
484         * lib-xref.ads: Improve documentation for k xref type
485
486         * lib-xref.adb: 
487         Update handling of assigned value/unreferenced warnings
488         (Generate_Reference): Warning for reference to entity for which a
489         pragma Unreferenced has been given should be unconditional.
490         If the entity is a discriminal, mark the original
491         discriminant as referenced.
492
493         * sem_warn.ads, sem_warn.adb
494         (Check_One_Unit): Test Renamed_In_Spec to control giving warning for
495         no entities referenced in package
496         (Check_One_Unit): Don't give message about no entities referenced in
497         a package if a pragma Unreferenced has appeared.
498         Handle new warning flag -gnatw.a/-gnatw.A
499         Update handling of assigned value/unreferenced warnings
500
501         * atree.h: Add flags up to Flag247
502         (Flag231): New macro.
503
504 2007-12-13  Jose Ruiz  <ruiz@adacore.com>
505
506         * adaint.h: (__gnat_plist_init): Not defined for RTX.
507
508         * initialize.c (__gnat_initialize): Do not call __gnat_plist_init for
509         RTX systems.
510
511         * Makefile.in: Add new files s-tasinf-linux.ads and s-tasinf-linux.adb.
512         (LIBGNAT_TARGET_PAIRS, MISCLIB, THREADSLIB,
513         EXTRA_GNATRTL_NONTASKING_OBJS, EXTRA_GNATRTL_TASKING_OBJS,
514         GNATLIB_SHARED for RTX run time): Use the versions required by RTX.
515
516         * mingw32.h: 
517         Do not define GNAT_UNICODE_SUPPORT for RTX since it is not supported.
518
519         * sysdep.c (winflush_function for RTX): Procedure that does nothing
520         since we only have problems with Windows 95/98, which are not
521         supported by RTX.
522         (__gnat_ttyname): Return the empty string on Nucleus, just as
523         done on vxworks.
524
525 2007-12-13  Robert Dewar  <dewar@adacore.com>
526
527         * a-textio.adb, a-textio.ads: 
528         Extensive changes to private part for wide character encoding
529
530         * a-witeio.adb, a-witeio.ads, a-ztexio.ads, a-ztexio.adb
531         (Look_Ahead): Fix mishandling of encoded sequences
532         Move declaration of Wch_Con to private part (should not be visible)
533
534         * ali.adb (Scan_ALI): Set default encoding method to brackets instead of
535         UTF-8. Probably this is never used, but if it is, brackets is
536         clearly correct.
537
538         * bindgen.adb (Get_WC_Encoding): New procedure to properly handle
539         setting wide character encoding for no main program case and when
540         encoding is specified using -W?
541         Initialize stack limit of environment task if stack limit method of
542         stack checking is enabled.
543         (Gen_Adainit_Ada): Use Get_WC_Encoding to output encoding method
544         (Gen_Adainit_C): Use Get_WC_Encoding to output encoding method
545         (Get_Main_Unit_Name): New function.
546         (Gen_Adainit_Ada): Add call to main program for .NET when needed.
547         (Gen_Output_File): Set Bind_Main_Program to True for .NET
548
549         * bindusg.adb: Add line for -Wx switch
550
551         * s-wchcon.adb, s-wchcon.ads: (Is_Start_Of_Encoding): New function
552         Add comments
553         Add new useful constant WC_Longest_Sequences
554
555         * switch-b.adb: Clean up handling of -Wx switch
556         For -gnatWx, set Wide_Character_Encoding_Method_Specified
557
558         * switch-c.adb: -gnatg activates warning on assertion errors
559         For -gnatWx, set Wide_Character_Encoding_Method_Specified
560
561         * s-wchcon.adb: (Is_Start_Of_Encoding): New function
562
563 2007-12-13  Robert Dewar  <dewar@adacore.com>
564             Ed Schonberg  <schonberg@adacore.com>
565
566         * a-ngcoty.adb: New pragma Fast_Math
567
568         * opt.adb: New pragma Fast_Math
569
570         * par-prag.adb: 
571         Add Implemented_By_Entry to the list of pragmas which do not require any
572         special processing.
573         (Favor_Top_Level): New pragma.
574         New pragma Fast_Math
575
576         * exp_attr.adb: Move Wide_[Wide_]Image routines to Exp_Imgv
577         (Expand_N_Attribute_Reference, Displace_Allocator_Pointer,
578         Expand_Allocator_Expression): Take into account VM_Target
579         (Expand_Attribute, case 'Identity):  Handle properly the case where
580         the prefix is a task interface.
581         New pragma Fast_Math
582
583         * par.adb (Next_Token_Is): New function
584         (P_Pragma): Add Skipping parameter
585         (U_Left_Paren): New procedure
586         (U_Right_Paren): New procedure
587         New pragma Fast_Math
588
589         * par-ch10.adb (P_Subunit): Unconditional msg for missing ) after
590         subunit
591         New pragma Fast_Math
592
593         * sem_prag.adb: Add significance value to table Sig_Flag for pragma
594         Implemented_By_Entry.
595         (Analyze_Pragma): Add case for Ada 2005 pragma Implemented_By_Entry.
596         (Set_Inline_Flags): Do not try to link pragma Inline onto chain of rep
597         items, since it can apply to more than one overloadable entity. Set
598         new flag Has_Pragma_Inline_Always for Inline_Always case.
599         (Analyze_Pragma, case Complex_Representation): Improve error message.
600         (Analyze_Pragma, case Assert): When assertions are disabled build the
601         rewritten code with Sloc of expression rather than pragma, so new
602         warning about failing is not deleted.
603         (Analyze_Pragma): Allow pragma Preelaborable_Initialization to apply to
604         protected types and update error message to reflect that. Test whether
605         the protected type is allowed for the pragma (an error is issued if the
606         type has any entries, or components that do not have preelaborable
607         initialization).
608         New pragma Fast_Math
609         (Analyze_Pragma, case No_Return): Handle generic instance
610
611         * snames.h, snames.ads, snames.adb: 
612         Add new predefined name for interface primitive _Disp_Requeue.
613         New pragma Fast_Math
614
615         * a-tags.ads, a-tags.adb: New calling sequence for
616         String_To_Wide_[Wide_]String
617         (Secondary_Tag): New subprogram.
618
619         * exp_imgv.ads, exp_imgv.adb: Move Wide_[Wide_]Image routines here
620         from Exp_Attr
621         New calling sequence for String_To_Wide_[Wide_]String
622         (Expand_Image_Attribute): Major rewrite. New calling sequence avoids
623         the use of the secondary stack for image routines.
624
625         * a-except-2005.adb, s-wchstw.ads, s-wchstw.adb, s-wwdenu.adb: New
626         calling sequence for String_To_Wide_[Wide_]String
627
628         * par-ch3.adb (P_Declarative_Items): Recognize use of Overriding in
629         Ada 95 mode
630         (P_Unknown_Discriminant_Part_Opt): Handle missing parens gracefully
631         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
632
633         * par-ch6.adb (P_Subprogram): Recognize use of Overriding in Ada 95 mode
634         (P_Formal_Part): Use Skipping parameter in P_Pragma call
635         to improve error recovery
636
637         * par-util.adb (Next_Token_Is): New function
638         (Signal_Bad_Attribute): Use new Namet.Is_Bad_Spelling_Of function
639
640         * par-ch2.adb (Skip_Pragma_Semicolon): Do not resynchronize to
641         semicolon if missing
642         (P_Pragma): Implement new Skipping parameter
643         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
644         Fix location of flag for unrecognized pragma message
645
646         * par-tchk.adb (U_Left_Paren): New procedure
647         (U_Right_Paren): New procedure
648
649 2007-12-13  Geert Bosch  <bosch@adacore.com>
650
651         * a-tifiio.adb: 
652         (Put_Int64): Use Put_Digit to advance Pos. This fixes a case where
653         the second or later Scaled_Divide would omit leading zeroes,
654         resulting in too few digits produced and a Layout_Error as result.
655         (Put): Initialize Pos.
656
657 2007-12-13  Robert Dewar  <dewar@adacore.com>
658
659         atree.ads, atree.adb (Flag231..Flag247): New functions
660         (Set_Flag231..Set_Flag247): New procedures
661         (Basic_Set_Convention): Rename Set_Convention to be
662         Basic_Set_Convention
663         (Nkind_In): New functions
664         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
665
666         * exp_ch6.adb (Expand_Call): Use new flag Has_Pragma_Inline_Always
667         instead
668          of obsolete function Is_Always_Inlined
669         (Register_Predefined_DT_Entry): Initialize slots of the second
670         secondary dispatch table.
671         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
672         (Expand_N_Function_Call): Remove special provision for stack checking.
673
674         * exp_util.ads, exp_util.adb (Is_Predefined_Dispatching_Operation):
675         Include _Disp_Requeue in the list of predefined operations.
676         (Find_Interface_ADT): Modified to fulfill the new specification.
677         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
678
679         * par-ch4.adb, nlists.ads, nlists.adb: 
680         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
681
682         * sinfo.ads, sinfo.adb: (Nkind_In): New functions
683         Fix location of flag for unrecognized pragma message
684
685         * sem_ch7.adb: Use Nkind_In
686
687 2007-12-13  Vincent Celier  <celier@adacore.com>
688
689         * opt.ads: 
690         Indicate what flags are used by the Project Manager, gprbuild and
691         gprclean.
692         (Opt.Follow_Links_For_Dirs): New flag
693         (Warn_On_Assertion_Failure): New flag
694         (Wide_Character_Encoding_Method_Specified): New flag
695         (Suppress_All_Inlining): New switch set by -fno-inline
696         (Real_VMS_Target): New flag
697         New pragma Fast_Math
698
699 2007-12-13  Robert Dewar  <dewar@adacore.com>
700
701         * back_end.adb: Recognize -fno-inline
702
703 2007-12-13  Robert Dewar  <dewar@adacore.com>
704
705         * checks.adb: Fix optimization problem with short-circuited form
706
707 2007-12-13  Bob Duff  <duff@adacore.com>
708
709         * clean.adb (Usage): Add line for -aP
710         (Check_Version_And_Help): Change Check_Version_And_Help to be generic,
711         with a parameter "procedure Usage", instead of passing a pointer to a
712         procedure. This is to eliminate trampolines (since the Usage procedure
713         is often nested in a main procedure, and it would be inconvenient to
714         unnest it).
715
716         * g-comlin.adb (For_Each_Simple_Switch): Change For_Each_Simple_Switch
717         to be generic, with a parameter "procedure Callback (...)", instead of
718         passing a pointer to a procedure. This is to eliminate trampolines
719         (since the Callback procedure is usually nested).
720
721         * gnatfind.adb, switch.adb, switch.ads, gnatlink.adb, gnatls.adb, 
722         gnatname.adb, gnatxref.adb, gnatchop.adb, gprep.adb, gnatbind.adb
723         (Check_Version_And_Help): Change Check_Version_And_Help to be generic.
724
725         * g-pehage.adb (Compute_Edges_And_Vertices, Build_Identical_Key_Sets):
726         Use the generic Heap_Sort_G instead of Heap_Sort_A.
727
728 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
729
730         * einfo.ads, einfo.adb: Flag 232 is now Implemented_By_Entry.
731         (Implemented_By_Entry, Set_Implemented_By_Entry): New routines.
732         (Write_Entry_Flags): Add an entry for Implemented_By_Entry.
733         (Renamed_In_Spec): New flag
734         (Has_Pragma_Inline_Always): New flag
735         Add missing doc for pragma Obsolescent_Warning
736         Add missing doc for 17 additional unused flags (230-247)
737         (Is_Derived_Type): Remove condition "not Is_Generic_Type".
738         Alphabetize with clauses.
739         Separate Is_Thunk and Has_Thunks flags
740         (Write_Entity_Flags): Add forgotten entry for Has_Thunks
741         (Related_Interface): Renamed to Related_Type.
742         (Has_Thunks/Set_Has_Thunks): Subprograms of new attribute.
743         (Set_Is_Flag): Restrict the assertion.
744
745 2007-12-13  Vincent Celier  <celier@adacore.com>
746
747         * errout.adb (Output_Source_Line): Do not keep a trailing space after
748         the source line number if the source line is empty.
749
750 2007-12-13  Geert Bosch  <bosch@adacore.com>
751
752         * eval_fat.adb (Decompose_Int): Handle argument of zero.
753         (Compose): Remove special casing of zero.
754         (Exponent): Likewise.
755         (Fraction): Likewise.
756         (Machine): Likewise.
757         (Decompose): Update comment.
758
759 2007-12-13  Ed Schonberg  <schonberg@adacore.com>
760
761         * exp_aggr.adb (Build_Record_Aggr_Code): If there is an aggregate for a
762         limited ancestor part, initialize controllers of enclosing record
763         before expanding ancestor aggregate.
764         (Gen_Assign): If a component of the aggregate is box-initialized, add
765         code to call Initialize if the component is controlled, and explicit
766         assignment of null if the component is an access type.
767
768         Handle properly aggregates for limited types that appear in object
769         declarations when the aggregate contains controlled values such as
770         protected types.
771         When expanding limited aggregates into individual components, do not
772         call Adjust on controlled components that are limited.
773
774 2007-12-13  Ed Schonberg  <schonberg@adacore.com>
775
776         * expander.adb: Take into account N_Subprogram_Renaming_Declaration
777
778 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
779
780         * exp_ch3.adb (Predefined_Primitive_Bodies): Generate the body of
781         predefined primitive _Disp_Requeue.
782         (Make_Predefined_Primitive_Specs): Create the spec for predefined
783         primitive _Disp_Requeue.
784         (Make_Predefined_Primitive_Specs/Predefined_Primitive_Bodies): Set the
785         type of formal Renamed_Eq to Entity_Id (instead of Node_Id).
786         (Make_Predefined_Primitive_Specs): Spec of "=" needed if the parent is
787         an interface type. In case of limited interfaces we now declare all the
788         predefined primitives associated with synchronized interfaces as
789         abstract.
790         (Predef_Spec_Or_Body): For interface types generate abstract subprogram
791         declarations.
792         (Predefined_Primitive_Bodies): Add body of "=" if the parent of the
793         tagged type is an interface type and there is no user-defined equality
794         function.
795         Add also bodies of predefined primitives associated with synchronized
796         interfaces.
797         (Freeze_Record_Type): Do not build bodies of predefined primitives of
798         interface types because they are now defined abstract.
799         Add missing documentation.
800         (Expand_Record_Controller): Update occurrence of Related_Interface
801         to Related_Type.
802         (Build_Offset_To_Top_Functions): Do nothing in case of VM.
803         (Expand_N_Object_Declaration): Take into account VM_Target when handling
804         class wide interface object declaration.
805         (Expand_Previous_Access_Type): Do not create a duplicate master entity
806         if the access type already has one.
807         (Expand_N_Object_Declaration): Defend against attempt to validity check
808         generic types. Noticed for -gnatVcf specified with previous errors.
809
810 2007-12-13  Arnaud Charlet  <charlet@adacore.com>
811
812         * exp_ch4.adb (Expand_N_Attribute_Reference, Displace_Allocator_Pointer,
813         Expand_Allocator_Expression): Take into account VM_Target
814
815         * exp_ch5.adb (Expand_N_Extended_Return_Statement): Do not use
816         secondary stack when VM_Target /= No_VM
817
818 2007-12-13  Javier Miranda  <miranda@adacore.com>
819             Ed Schonberg  <schonberg@adacore.com>
820
821         * exp_ch7.adb (Expand_N_Package_Body): Replace occurrence of attribute
822         Is_Complation_Unit by Is_Library_Level_Entity in the code
823         that decides if the static dispatch tables need to be built.
824         (Wrap_Transient_Declaration): Do not generate a finalization call if
825         this is a renaming declaration and the renamed object is a component
826         of a controlled type.
827
828 2007-12-13  Gary Dismukes  <dismukes@adacore.com>
829
830         * exp_ch8.ads, exp_ch8.adb (Expand_N_Subprogram_Renaming_Declaration):
831         In the case where the renamed subprogram is a dereference, call
832         Force_Evaluation on the prefix.
833
834 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
835             Ed Schonberg  <schonberg@adacore.com>
836
837         * exp_ch9.adb (Expand_N_Asynchronous_Select,
838         Expand_N_Conditional_Entry_Call, Expand_N_Timed_Entry_Call): Code and
839         comment reformatting.
840         (Set_Privals): Inherit aliased flag from formal. From code reading.
841         (Build_Simple_Entry_Call): Out parameters of an access type are passed
842         by copy and initialized from the actual. This includes entry parameters.
843         (Expand_N_Requeue_Statement): Reimplement in order to handle both Ada 95
844         and Ada 2005 models of requeue.
845         (Null_Statements): Still connsider do-end block null if it contains
846         Unreferenced and Warnings pragmas.
847         (Expand_N_Accept_Statement): Do not optimize away null do end if
848         dispatching policy is other than defaulted.
849         (Expand_N_Timed_Entry_Call): When the triggering statement is a
850         dispatching call, manually analyze the delay statement.
851         (Find_Parameter_Type): Move subprogram to Sem_Util.
852
853 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
854             Javier Miranda  <miranda@adacore.com>
855
856         * exp_disp.ads, exp_disp.adb (Default_Prim_Op_Position): Primitive
857         _Disp_Requeue occupies dispatch table slot number 15. Move
858         _Disp_Timed_Select to slot 16.
859         (Make_Disp_Requeue_Body, Make_Disp_Requeue_Spec): New routines which
860         generate the spec and body of _Disp_Reqeueue.
861         (Make_DT): Build and initialize the second dispatch table.
862         Handle initialization of RC_Offset when the parent
863         is a private type with variable size components.
864         (Make_Secondary_DT): Complete documentation. Add support to
865         initialize the second dispatch table.
866         (Make_Tags): Generate the tag of the second dispatch table.
867         (Register_Primitive): Add support to register primitives in the
868         second dispatch table.
869
870 2007-12-13  Pascal Obry  <obry@adacore.com>
871
872         * expect.c (__gnat_kill) [WIN32]: Implement the SIGINT signal on
873         Windows. This signal is used by gnatmake to kill child processes for
874         example.
875
876 2007-12-13  Javier Miranda  <miranda@adacore.com>
877
878         * exp_intr.adb (Expand_Dispatching_Constructor_Call): Add missing
879         support for generic dispatching constructor calls in which we need to
880         locate the tag of a secondary dispatch table associated with an
881         interface type to properly dispatch the call.
882         (Expand_N_Attribute_Reference [case Address],
883         Expand_Dispatching_Constructor_Call, Expand_Unc_Deallocation): Fix
884         handling of VM targets.
885
886 2007-12-13  Robert Dewar  <dewar@adacore.com>
887             Ed Schonberg  <schonberg@adacore.com>
888
889         * exp_prag.adb (Expand_Pragma_Assert): Recognize new warning flag for
890         assert fail
891
892         * ug_words: Add entries for -gnatw.a -gnatw.A
893
894         * sem_res.adb (Set_String_Literal_Subtype): If the context of the
895         literal is a subtype with non-static constraints, use the base type of
896         the context as the base of the string subtype, to prevent type
897         mismatches in gigi.
898         (Resolve_Actuals): If the actual is an entity name, generate a
899         reference before the actual is resolved and expanded, to prevent
900         spurious warnings on formals of enclosing protected operations.
901         (Analyze_Overloaded_Selected_Component): If type of prefix if
902         class-wide, use visible components of base type.
903         (Resolve_Selected_Component): Ditto.
904         (Resolve_Short_Circuit): Detect case of pragma Assert argument
905         evaluating to False, and issue warning message.
906
907         * usage.adb: Add lines for -gnatw.a and -gnatw.A
908
909 2007-12-13  Emmanuel Briot  <briot@adacore.com>
910
911         * g-calend.ads (No_Time): New constant, to represent an uninitialized
912         time value
913
914         * g-catiio.ads, g-catiio.adb (Value): Added support for more date
915         formats.
916         (Month_Name_To_Number): New subprogram
917
918         * g-dirope.adb (Get_Current_Dir): On windows, normalize the drive
919         letter to upper-case.
920
921 2007-12-13  Robert Dewar  <dewar@adacore.com>
922             Ed Schonberg  <schonberg@adacore.com>
923
924         * gnat1drv.adb (Gnat1drv): Properly set new flag Opt.Real_VMS_Target
925
926         * layout.adb (Resolve_Attribute, case 'Access): If designated type of
927         context is a limited view, use non-limited view when available. If the
928         non-limited view is an unconstrained array, this enforces consistency
929         requirements in 3.10.2 (27).
930         (Layout_Type): For an access type whose designated type is a limited
931         view, examine its declaration to determine if it is an unconstrained
932         array, and size the access type accordingly.
933         (Layout_Type): Do not force 32-bits for convention c subprogram
934         pointers in -gnatdm mode, only if real vms target.
935
936         * sem_attr.adb (Analyze_Access_Attribute): Use new flag
937         Has_Pragma_Inline_Always instead of obsolete function Is_Always_Inlined
938         (Analyze_Access_Attribute,Attribute_Address): Remove checks for
939         violations of the No_Implicit_Dynamic_Code restriction.
940         (Resolve_Attribute, case 'Access): If designated type of context is a
941         limited view, use non-limited view when available. If the non-limited
942         view is an unconstrained array, this enforces consistency requirements
943         in 3.10.2 (27).
944         (Layout_Type): For an access type whose designated type is a limited
945         view, examine its declaration to determine if it is an unconstrained
946         array, and size the access type accordingly.
947
948 2007-12-13  Vincent Celier  <celier@adacore.com>
949
950         * gnatcmd.adb (GNATCmd): Do not issue -d= switch to gnatmetric when
951         object directory of main project does not exist.
952         On VMS, correctly set then environment variable for the source
953         directories.
954
955 2007-12-13  Vasiliy Fofanov  <fofanov@adacore.com>
956
957         * g-regist.ads, g-regist.adb (Set_Value): new parameter Expand; when
958         set to True this procedure will create the value of type REG_EXPAND_SZ.
959         It was only possible to create REG_SZ values before.
960
961 2007-12-13  Robert Dewar  <dewar@adacore.com>
962
963         * g-spchge.ads, g-spchge.adb, g-u3spch.adb, g-u3spch.ads,
964         g-wispch.adb, g-wispch.ads, g-zspche.adb, g-zspche.ads,
965         namet-sp.adb, namet-sp.ads: New files.
966
967         * g-speche.adb: Use generic routine in g-spchge
968
969         * s-wchcnv.ads, s-wchcnv.adb: 
970         Minor code cleanup (make formal type consistent with spec)
971
972         * namet.adb: Update comments.
973
974         * par-endh.adb (Evaluate_End_Entry): Use new
975         Namet.Sp.Is_Bad_Spelling_Of function
976
977         * par-load.adb (Load): Use new Namet.Sp.Is_Bad_Spelling_Of function
978
979         * sem_aggr.adb (Resolve_Record_Aggregate): If a component of an
980         ancestor is an access type initialized with a box, set its type
981         explicitly, for use in subsequent expansion.
982         (Check_Misspelled_Component): Use new Namet.Sp.Is_Bad_Spelling_Of
983         function
984
985 2007-12-13  Robert Dewar  <dewar@adacore.com>
986
987         * g-spipat.adb (Break): Fix accessibility error (vsn taking not null
988         access Vstring)
989
990 2007-12-13  Robert Dewar  <dewar@adacore.com>
991
992         * inline.adb (Back_End_Cannot_Inline): Use new flag
993         Has_Pragma_Inline_Always instead of obsolete function Is_Always_Inlined
994
995         * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Body): Use new flag
996         Has_Pragma_Inline_Always instead.
997         of obsolete function Is_Always_Inlined
998         (Build_Body_To_Inline): Same change
999         (Cannot_Inline): Same change
1000         Do not give warning on exception raise in No_Return function
1001
1002         * sem_ch13.adb (Analyze_Record_Representation_Clause): If an inherited
1003         component has two inconsistent component clauses in the same record
1004         representation clause, favor the message that complains about
1005         duplication rather than inconsistency.
1006         Update comments.
1007         (Record_Representation_Clause): Do not warn on missing component
1008         clauses for inherited components of a type extension.
1009         (Rep_Item_Too_Late): Do not attempt to link pragma into rep chain for
1010         an overloadable item if it is a pragma that can apply to multiple
1011         overloadable entities (e.g. Inline) because a pragma cannot be on
1012         more than one chain at a time.
1013         (Validate_Unchecked_Conversion): Add code to warn on unchecked
1014         conversion where one of the operands is Ada.Calendar.Time.
1015         (Analyze_Attribute_Definition_Clause): Fix typo in error message.
1016         For now, ignore Component_Size clause on VM targets, as done for
1017         pragma Pack.
1018
1019 2007-12-13  Emmanuel Briot  <briot@adacore.com>
1020             Vincent Celier  <celier@adacore.com>
1021
1022         * prj.ads, prj.adb (Is_A_Language): Now takes a Name_Id instead of a
1023         string
1024         (Must_Check_Configuration, Default_Language_Is_Ada): new flags in
1025         prj.ads
1026         (Hash): Move instantiation of System.HTable.Hash from spec to body
1027         (prj-nmsc.adb): Optimize calls to Name_Find when on case sensitive
1028         systems, since we do not need to recompute the Name_Id for the canonical
1029         file name.
1030         (Body_Suffix_Id_Of, Spec_Suffix_Id_Of): new version that takes a name_id
1031         as a parameter. This parameter is in fact always "ada" in all calls, and
1032         we were doing 160560 extra calls to Name_Find to convert it to Name_Ada
1033         while loading a project with 40000 files
1034
1035         * prj-attr.adb: Fix name of attribute Dependency_Driver
1036         Change the kind of indexing for attribute Root
1037
1038         * prj-dect.adb (Parse_Declarative_Items): Allow redeclarations of
1039         variables already declared, in case constructions.
1040
1041         * prj-env.adb (Initialize): Reset Current_Source_Path_File and
1042         Current_Object_Path_File to No_Path.
1043
1044         * prj-ext.adb (Initialize_Project_Path): In multi language mode, use
1045         ADA_PROJECT_PATH if value of GPR_PROJECT_PATH is empty.
1046
1047         * prj-makr.adb: new parameter Current_Dir
1048
1049         * prj-nmsc.ads, prj-nmsc.adb (Find_Explicit_Sources): Do not look for
1050         Ada sources when language is not Ada.
1051         Change Opt.Follow_Links to Opt.Follow_Links_For_Files.
1052         (Find_Excluded_Sources, Find_Explicit_Sources): new subprograms
1053         (Must_Check_Configuration, Default_Language_Is_Ada): new flags.
1054         (Locate_Directory): Always resolve links when computing Canonical_Path
1055         (Look_For_Sources): Make sure that Name_Buffer contains the file name
1056         in Source_Files before checking for the presence of a directory
1057         separator.
1058         Optimize calls to Name_Find when on case sensitive systems.
1059         (Body_Suffix_Id_Of, Spec_Suffix_Id_Of): new version that takes a name_id
1060         as a parameter.
1061         (Prj.Nmsc.Check): new parameter Current_Dir
1062         (Check_Ada_Naming_Schemes): Restrictions on suffixes are relaxed. They
1063         cannot be empty and the spec suffix cannot be the same as the body or
1064         separate suffix.
1065         (Get_Unit): When a file name can be of several unit kinds (spec, body or
1066         subunit), always consider the longest suffix.
1067         (Check_Configuration): Do not issue an error if there is no compiler
1068         for a language. Just issue a warning and ignore the sources for the
1069         language.
1070         (Check_Library_Attributes): Only check Library_Dir if Library_Name is
1071         not empty.
1072         (Check_Naming_Schemes.Maked_Unit): Only output message if high verbosity
1073         (Unit_Exceptions): New hash table
1074         (Check_Naming_Schemes): Check if a file that could be a unit because of
1075         the naming scheme is not in fact a source because there is an exception
1076         for the unit.
1077         (Look_For_Sources): Put the unit exceptions in hash table
1078         Unit_Exceptions
1079         (Get_Unit_Exceptions): Give initial value No_Source to local variable
1080         Other_Part to avoid exception when code is compiled with validity
1081         checking.
1082         (Get_Sources_From_File): Check that there is no directory information
1083         in the file names.
1084         (Look_For_Sources): Check that there is no directory information in the
1085         list of file names in Source_Files.
1086         (Look_For_Sources): In multi-language mode, do not allow exception file
1087         names that are excluded.
1088         (Excluded_Sources_Htable): New hash table
1089         (Search_Directories.Check_File): New procedure to simplify
1090         Search_Directories.
1091         (Search_Directories): Do not consider excluded sources
1092         (Look_For_Sources): Populate Excluded_Sources_Htable before calling
1093         Search_Directories.
1094         (Get_Exceptions): Set component Lang_Kind of Source_Data
1095         (Get_Unit_Exceptions): Ditto
1096         (Search_Directories): Ditto
1097
1098         * prj-pars.adb: new parameter Current_Dir
1099
1100         * prj-part.ads, prj-part.adb: 
1101         Change Opt.Follow_Links to Opt.Follow_Links_For_Files.
1102         (Opt.Follow_Links_For_Dirs): New flag
1103         (Project_Path_Name_Of): Cache information returned by this routine as
1104         Locate_Regular_File is a costly routine. The code to output a log
1105         information and the effective call to Locate_Regular_File is now
1106         factorized into a routine (code clean-up).
1107         (Parse, Parse_Single_Project): new parameter Current_Dir
1108         When main project file cannot be found, indicate in the error
1109         message the project path that was used to do the search.
1110
1111         * prj-proc.ads, prj-proc.adb (Opt.Follow_Links_For_Dirs): New flag
1112         (Prj.Proc.Process*): new parameter Current_Dir
1113
1114         * switch-m.adb: Change Opt.Follow_Links to Opt.Follow_Links_For_Files
1115
1116 2007-12-13  Bob Duff  <duff@adacore.com>
1117
1118         * restrict.ads, restrict.adb (Check_Implicit_Dynamic_Code_Allowed): New
1119         procedure to be called from the back end to check the
1120         No_Implicit_Dynamic_Code restriction.
1121
1122 2007-12-13  Arnaud Charlet  <charlet@adacore.com>
1123
1124         * rtsfind.adb (Check_CRT): Take into account RTE_Available_Call
1125         Fixes another case where RTE_Available_Call was ignored instead of being
1126         taken into account.
1127         (Load_Fail): Ditto.
1128
1129         * rtsfind.ads: Add new entries.
1130
1131 2007-12-13  Robert Dewar  <dewar@adacore.com>
1132
1133         * g-byorma.adb, g-byorma.ads, g-decstr.adb, g-decstr.ads,
1134         g-deutst.ads, g-encstr.adb, g-encstr.ads, g-enutst.ads: New files.
1135
1136         * scn.adb: Implement BOM recognition
1137
1138 2007-12-13  Thomas Quinot  <quinot@adacore.com>
1139             Ed Schonberg  <schonberg@adacore.com>
1140
1141         * sem_ch10.adb (Check_Private_Child_Unit): A non-private library level
1142         subprogram body that acts as its own spec may not have a non-private
1143         WITH clause on a private sibling.
1144         (Build_Unit_Name): If the parent unit in the name in a with_clause on a
1145         child unit is a renaming, create an implicit with_clause on that
1146         parent, and not on the unit it renames, to prevent visibility errors
1147         in the current unit.
1148
1149 2007-12-13  Ed Schonberg  <schonberg@adacore.com>
1150
1151         * sem_ch12.adb (Instantiate_Formal_Subprogram): In the subprogram
1152         renaming declaration, use the Slocs of the formal parameters from the
1153         declaration of the formal subprogram when creating the formal parameter
1154         entities in the renaming declaration.
1155         (Analyze_Formal_Type_Declaration): Change the placement of the error
1156         message concerning illegal known discriminants. It is now posted on the
1157         type rather than on the first discriminant. This change ensures early
1158         error report.
1159         (Freeze_Subprogram_Body): If the generic subprogram is nested within
1160         the package body that contains the instance, do not generate an
1161         out-of-place freeze node for the enclosing package.
1162         (Collect_Previous_Instantiations): Ignore internal instantiations
1163         generated for formal packages.
1164         (Validate_Derived_Type_Instance): Add a check that when a formal
1165         derived type is Known_To_Have_Preelab_Init then the actual type must
1166         have preelaborable initialization, and issue an error when this
1167         condition is violated.
1168
1169 2007-12-13  Robert Dewar  <dewar@adacore.com>
1170
1171         * s-imenne.adb, s-imenne.ads: New files.
1172
1173         * s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads, s-imgdec.adb, 
1174         s-imgdec.ads, s-imgenu.ads, s-imgint.adb, s-imgint.ads, s-imglld.adb, 
1175         s-imglld.ads, s-imglli.adb, s-imglli.ads, s-imgllu.adb, s-imgllu.ads, 
1176         s-imgrea.adb, s-imgrea.ads, s-imguns.adb, s-imguns.ads, s-imgwch.adb, 
1177         s-imgwch.ads: New calling sequence for Image routines to avoid sec
1178         stack usage.
1179
1180 2007-12-13  Javier Miranda  <miranda@adacore.com>
1181             Ed Schonberg  <schonberg@adacore.com>
1182
1183         * sem_ch3.ads, sem_ch3.adb (Check_Abstract_Overriding): Avoid
1184         generation of spurious error if parent is an interface type; caused
1185         because predefined primitive bodies will be generated later by
1186         Freeze_Record_Type.
1187         (Process_Subtype): The subtype inherits the Known_To_Have_Preelab_Init
1188         flag.
1189         (Derive_Subprograms): Handle derivations of predefined primitives
1190         after all the user-defined primitives to ensure that they are
1191         found in proper order in instantiations.
1192         (Add_Interface_Tag_Components, Inherit_Components): Update occurrences
1193         of Related_Interface to Related_Type.
1194         (Record_Type_Declaration): Minor reordering of calls to decorate the
1195         Tag component because the entity must have set its Ekind attribute
1196         before setting its Is_Tag attribute.
1197         (Analyze_Subtype_Declaration): In the case of subtypes with
1198         Private_Kind, inherit Known_To_Have_Preelab_Init from the parent.
1199
1200 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
1201             Ed Schonberg  <schonberg@adacore.com>
1202
1203         * sem_ch4.adb (Analyze_Selected_Component): Include the requeue
1204         statement to the list of contexts where a selected component with a
1205         concurrent tagged type prefix should yield a primitive operation.
1206         (Find_Primitive_Operation): Handle case of class-wide types.
1207         (Analyze_Overloaded_Selected_Component): If type of prefix is
1208         class-wide, use visible components of base type.
1209         (Resolve_Selected_Component): Ditto.
1210         (Try_Primitive_Operation, Collect_Generic_Type_Ops): If the type is a
1211         formal of a generic subprogram. find candidate interpretations by
1212         scanning the list of generic formal declarations.:
1213         (Process_Implicit_Dereference_Prefix): If the prefix has an incomplete
1214         type from a limited_with_clause, and the full view is available, use it
1215         for subsequent semantic checks.
1216         (Check_Misspelled_Selector): Use Namet.Sp.Is_Bad_Spelling_Of function
1217         (Find_Primitive_Operation): New function.
1218         (Analyze_Overloaded_Selected_Component): insert explicit dereference
1219         only once if several interpretations of the prefix yield an access type.
1220         (Try_Object_Operation): Code and comment cleanup.
1221         (Analyze_Selected_Component): Reorder local variables. Minot comment and
1222         code reformatting. When the type of the prefix is tagged concurrent, a
1223         correct interpretation might be available in the primitive and
1224         class-wide operations of the type.
1225
1226 2007-12-13  Robert Dewar  <dewar@adacore.com>
1227             Ed Schonberg  <schonberg@adacore.com>
1228
1229         * sem_ch8.adb (Analyze_Subprogram_Renaming): Special error message for
1230         renaming entry as subprogram using rename-as-body if subprogram spec
1231         frozen.
1232         (Use_One_Type): The clause is legal on an access type whose designated
1233         type has a limited view.
1234         (Find_Direct_Name): Use Namet.Sp.Is_Bad_Spelling_Of function
1235         (Find_Expanded_Name): Use Namet.Sp.Is_Bad_Spelling_Of function
1236         (Analyze_Renamed_Primitive_Operation): new procedure to determine the
1237         operation denoted by a selected component.
1238         (Analyze_Renamed_Entry): Resolve the prefix of the entry name, because
1239         it can be an expression, possibly overloaded, that returns a task or
1240         an access to one.
1241
1242 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
1243             Gary Dismukes  <dismukes@adacore.com>
1244
1245         * sem_ch9.adb (Analyze_Requeue): Add a local flag to capture whether a
1246         requeue statement is dispatching. Do not emit an error when the name is
1247         not an entry and the context is a dispatching select. Add code to
1248         perform subtype conformance between the formals of the current entry
1249         and those of the target interface primitive.
1250         (Analyze_Asynchronous_Select, Analyze_Conditional_Entry_Call, Analyze_
1251         Timed_Entry_Call): Analyze the triggering statement as the first step of
1252         the processing. If this is a dispatching select, postpone the analysis
1253         of all select statements until the Expander transforms the select. This
1254         approach avoids generating duplicate identifiers after the Expander has
1255         replicated some of the select statements. In case the Expander is
1256         disabled, perform regular analysis.
1257         (Check_Triggering_Statement): New routine.
1258         (Analyze_Requeue): Exclude any interpretations that are not entries when
1259         checking overloaded names in a requeue. Also test type conformance for
1260         matching interpretations rather than requiring subtype conformance at
1261         that point to conform with the RM's resolution rule for requeues.
1262
1263 2007-12-13  Ed Schonberg  <schonberg@adacore.com>
1264
1265         * sem_disp.adb (Check_Dispatching_Call): If an actual in a call to an
1266         inherited operation is a defaulted tag-indeterminate call, and there is
1267         a statically tagged actual, use the static tag as a controlling actual
1268         for the defaulted actual.
1269
1270 2007-12-13  Geert Bosch  <bosch@adacore.com>
1271
1272         * sem_eval.adb (Eval_Real_Literal): N_Constant_Declaration is a static
1273         context, so do not call Check_Non_Static_Context.
1274
1275 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
1276
1277         * sem_type.adb (Function_Interp_Has_Abstract_Op): Add guard to check
1278         whether formal E is an entity which may have parameters.
1279
1280 2007-12-13  Bob Duff  <duff@adacore.com>
1281             Javier Miranda  <miranda@adacore.com>
1282             Robert Dewar  <dewar@adacore.com>
1283
1284         * sem_util.ads, sem_util.adb (Is_Concurrent_Interface): New routine.
1285         (Set_Convention): New procedure to set the Convention flag, and in
1286         addition make sure the Favor_Top_Level flag is kept in sync (all
1287         foreign-language conventions require Favor_Top_Level = True).
1288         (Collect_Abstract_Interfaces): Update occurrences of Related_Interface
1289         to Related_Type.
1290         (Collect_Interfaces_Info): Minor update to handle the two secondary
1291         dispatch tables. Update occurrence of Related_Interface to Related_Type.
1292         (Generate_Parent_Ref): Add parameter to specify entity to check
1293         (Is_Preelaborable_Expression): Allow the name of a discriminant to
1294         initialize a component of a type with preelaborable initialization.
1295         This includes the case of a discriminal used in such a context.
1296         (Is_Dependent_Component_Of_Mutable_Object): Take into account the
1297         latest Ada 2005 rules about renaming and 'Access of
1298         discriminant-dependent components.
1299         (Check_Nested_Access): Add handling when there are no enclosing
1300         subprograms (e.g. case of a package body).
1301         (Find_Parameter_Type): Factor routine from several other compiler files.
1302         Remove routine from Find_Overridden_Synchronized_Primitive.
1303
1304 2007-12-13  Thomas Quinot  <quinot@adacore.com>
1305
1306         * sinput.adb (Get_Source_File_Index): Add assertion to guard against
1307         an invalid access to an uninitialized slot in the
1308         Source_File_Index_Table.
1309
1310 2007-12-13  Thomas Quinot  <quinot@adacore.com>
1311
1312         * sinput-l.adb (Load_File): Disable style checks when preprocessing.
1313
1314 2007-12-13  Bob Duff  <duff@adacore.com>
1315
1316         * s-soflin.ads: Apply new pragma Favor_Top_Level to all
1317         access-to-subprogram types in this package.
1318
1319 2007-12-13  Olivier Hainque  <hainque@adacore.com>
1320
1321         * s-stausa.ads (Stack_Analyzer): Remove First_Is_Topmost, redundant
1322         with Stack_Grows_Down in System.Parameters. Rename Array_Address into
1323         Stack_Overlay_Address and document that we are using an internal
1324         abstraction.
1325         (Byte_Size, Unsigned_32_Size): Remove, now useless.
1326         (Pattern_Type, Bytes_Per_Pattern): New subtype and constant, to be used
1327         consistently throughout the various implementation pieces.
1328
1329         * s-stausa.adb (Stack_Slots): New type, abstraction for the stack
1330         overlay we are using to fill the stack area with patterns.
1331         (Top_Slot_Index_In, Bottom_Slot_Index_In): Operations on Stack_Slots.
1332         (Push_Index_Step_For, Pop_Index_Step_For): Likewise.
1333         (Fill_Stack, Compute_Result): Use the Stack_Slots abstraction.
1334
1335 2007-12-13  Robert Dewar  <dewar@adacore.com>
1336
1337         * s-stoele.adb ("mod"): mod negative value raises Constraint_Error
1338
1339 2007-12-13  Arnaud Charlet  <charlet@adacore.com>
1340
1341         * s-tassta.adb: 
1342         (Create_Task): Take into account tasks created by foreign threads.
1343         Code clean up: use constants instead of hard coded values.
1344
1345 2007-12-13  Robert Dewar  <dewar@adacore.com>
1346
1347         * styleg.adb (Check_Comment): More liberal rules for comment placement
1348
1349 2007-12-13  Olivier Hainque  <hainque@adacore.com>
1350
1351         * tb-alvms.c (struct tb_entry_t, __gnat_backtrace): Revert back to use
1352         of Procedure Value instead of Frame Pointer as the invocation
1353         identifier associated with the instruction pointer in each traceback
1354         entry.
1355
1356         * g-trasym-vms-alpha.adb (Traceback_Entry, PV_For, FP_For,
1357         TB_Entry_For): Revert back to use of Procedure Value instead of Frame
1358         Pointer as the invocation identifier passed to tbk$symbolize.
1359
1360         * s-traent-vms.ads, s-traent-vms.adb
1361         (Traceback_Entry, PV_For, FP_For, TB_Entry_For): Revert back to use of
1362         Procedure Value instead of Frame Pointer as the invocation identifier
1363         passed to tbk$symbolize.
1364
1365 2007-12-13  Robert Dewar  <dewar@adacore.com>
1366
1367         * tbuild.ads, tbuild.adb: 
1368         Fix location of flag for unrecognized pragma message
1369
1370 2007-12-13  Robert Dewar  <dewar@adacore.com>
1371
1372         * treepr.ads, treepr.adb: (pl): implement use of positive value
1373         shorthands
1374
1375 2007-12-13  Robert Dewar  <dewar@adacore.com>
1376
1377         * xeinfo.adb: Remove warnings
1378         * xnmake.adb: Remove warnings
1379         * xsinfo.adb: Remove warnings
1380         * xtreeprs.adb: Remove warnings
1381         * xsnames.adb: Remove warnings
1382
1383         * a-ngcoar.adb: Fix typo.
1384         * s-interr.adb: Minor reformatting
1385         * env.c: Minor reformatting.
1386         * g-bytswa.adb: Minor reformatting.
1387         * g-rannum.ads: Minor documentation improvements
1388         * s-tasinf-mingw.adb: Minor header fix
1389         * a-clrefi.adb: Minor reformatting
1390         * g-sttsne.ads: Minor documentation improvement
1391         * g-sttsne-locking.ads: Minor documentation improvement
1392         * g-soliop-solaris.ads: Minor documentation improvement
1393         * g-soliop-mingw.ads: Minor documentation improvement
1394         * g-soliop.ads: Minor documentation improvement
1395         * exp_aggr.ads: Minor reformatting
1396         * debug.adb: Add documentation for the gprbuild debug flags
1397         * exp_ch2.adb: Use Nkind_In to simplify code throughout
1398         * exp_pakd.adb: Minor reformatting
1399
1400         * g-altive.ads, g-alleve.adb: Remove assertions.
1401         Add comment about minor differences between targets regarding
1402         floating-point operations.
1403
1404         * g-thread.adb: Remove pragma unreferenced.
1405         * lib.ads: Minor reformatting
1406         * par-ch9.adb: Minor reformatting of error messages
1407         * sem_case.adb: Minor reformatting
1408         * s-fileio.adb: Minor reformattinng
1409         * s-vmexta.ads: Minor typo
1410         * vxaddr2line.adb: 
1411         Take into account 'Success' value as per new GNAT warning.
1412
1413 2007-12-13  Vincent Celier  <celier@adacore.com>
1414
1415         * a-direct.adb (Create_Path): Always take '/' as a directory separator,
1416         even on Windows
1417
1418 2007-12-13  Robert Dewar  <dewar@adacore.com>
1419             Bob Duff  <duff@adacore.com>
1420
1421         * gnat_ugn.texi: Dcoument new rules for style check comment alignment
1422         Document that suffixes may be terminations of each others
1423         Add doc for -gnatw.a and -gnatw.A
1424         Document gnatbind -Wx switch
1425         Document BOM recognition
1426         Document pragma Implemented_By_Entry.
1427         Document new units.
1428
1429         * gnat_rm.texi: (Favor_Top_Level): Document new pragma.
1430         Add doc for pragma Unreferenced suppressing no entities referenced msg
1431         Add documentation of GNAT.Directory_Operations.Iteration
1432         Add documentation of GNAT.Random_Numbers
1433         Add documentation for pragma Shared.
1434         Correct documentation for Bit_Order
1435         Add documentation for the Pool_Address attribute.
1436         Fix and improve documentation of pragma machine_attribute.
1437         New pragma Fast_Math
1438         Document BOM recognition
1439
1440         * vms_data.ads: Add entries for -gnatw.a -gnatw.A
1441         Add /Wide_Character_Encoding for binder
1442         Add qualifier for the new gnatpp option --no-separate-loop-then
1443
1444 2007-12-13  Matthew Heaney  <heaney@adacore.com>
1445
1446         * a-cohase.ads, a-cihama.ads, a-cihase.ads, a-cohama.ads: Document
1447         which generic formal operations are called for each operation.
1448
1449 2007-12-13  Olivier Hainque  <hainque@adacore.com>
1450
1451         * tb-gcc.c (uw_data_t, trace_callback): Only define if not GCC-SJLJ eh.
1452         (__gnat_backtrace): Early return 0 if using GCC-SJLJ eh.
1453
1454 2007-12-13  Emmanuel Briot  <briot@adacore.com>
1455
1456         * s-os_lib.ads, s-os_lib.adb (Normalize_Pathname): Do not compute
1457         Reference_Dir unless we actually need it.
1458
1459 2007-12-13  Vasiliy Fofanov  <fofanov@adacore.com>
1460             Tristan Gingold  <gingold@adacore.com>
1461
1462         * g-socthi-vms.ads (Fd_Set_Access): make it 32-bit.
1463
1464         * s-osprim-vms.adb,
1465         a-calend-vms.adb: Remove pragma warning off and add pragma
1466         unreferenced.
1467
1468 2007-12-13  Robert Dewar  <dewar@adacore.com>
1469
1470         * impunit.adb: Add entries for missing units
1471
1472         * Makefile.rtl: Add new run-time units.
1473
1474         * Make-lang.in:  Update dependencies.
1475
1476 2007-12-13  Bob Duff  <duff@adacore.com>
1477
1478         * itypes.ads, itypes.adb (Create_Itype): For access-to-subprogram
1479         types, set Can_Use_Internal_Rep appropriately, based on
1480         Always_Compatible_Rep_On_Target.
1481
1482 2007-12-13  Gary Dismukes  <dismukes@adacore.com>
1483             Arnaud Charlet  <charlet@adacore.com>
1484
1485         * make.adb (Scan_Make_Arg): Add test for -aamp_target switch, passing
1486         it to the front end and setting the aamp_target environment variable
1487         to the switch's argument to ensure that gnaampbind and gnaamplink will
1488         take the specified library into account.
1489         (Make): Only set Check_Object_Consistency to False for JVM, not for CIL
1490         target, since the CIL compiler supports an "object" file (.il files).
1491
1492 2007-12-13  Vincent Celier  <celier@adacore.com>
1493
1494         * symbols-processing-vms-ia64.adb (Process.Skip_Half): New procedure
1495         (Process.H): Remove variable. Replace Read_Half (H) with Skip_Half.
1496
1497 2007-12-13  Geert Bosch  <bosch@adacore.com>
1498
1499         * s-parame-vxworks.adb: 
1500         Update comments to reflect usage of this package by Nucleus.
1501
1502 2007-12-13  Arnaud Charlet  <charlet@adacore.com>
1503
1504         * i-vxwork.ads: Kill new warning on Convention C, since changing the
1505         spec would break code.
1506
1507         * i-forbla-unimplemented.ads, vx_stack_info.c: New files.
1508
1509         * system-vxworks-alpha.ads: Removed.
1510
1511 2007-12-10  Eric Botcazou  <ebotcazou@adacore.com>
1512
1513         * ada-tree.h (TYPE_RETURNS_BY_TARGET_PTR_P): Move around.
1514
1515 2007-12-09  Samuel Tardieu  <sam@rfc1149.net>
1516
1517         PR ada/34366
1518         * sem_ch3.adb (Designates_T): New function.
1519         (Mentions_T): Factor reusable part of the logic into Designates_T.
1520         Consider non-access parameters and access and non-access result.
1521         (Check_Anonymous_Access_Components): Set ekind of anonymous access to
1522         E_Subprogram_Type to E_Anonymous_Access_Subprogram_Type.
1523
1524         * einfo.ads: Update comment for E_Anonymous_Access_Subprogram_Type.
1525
1526 2007-12-07  Ludovic Brenta  <ludovic@ludovic-brenta.org>
1527
1528         PR ada/34361
1529         * mlib-tgt.adb, mlib-tgt.ads: Fix comments at the top to reflect
1530         the new implementation of target-specific calls.
1531
1532 2007-12-07  Olivier Hainque  <hainque@adacore.com>
1533
1534         * decl.c (gnat_to_gnu_entity) <case E_Access_Type>: When computing
1535         the designated full view, only follow a second level Full_View link
1536         for Non_Limited_Views of from_limited_with references.
1537         
1538 2007-12-07  Samuel Tardieu  <sam@rfc1149.net>
1539
1540         PR ada/15805
1541         * sem_ch6.adb (Process_Formals): Prevent an access type formal
1542         to be initialized with an access to constant object.
1543
1544         * sem_ch3.adb (Analyze_Object_Declaration): Signal an error
1545         when an access to constant is used to initialize an access
1546         value.
1547
1548         PR ada/21346
1549         * a-direct.adb (Compose): Containing_Directory can be an empty string.
1550
1551 2007-12-07  Olivier Hainque  <hainque@adacore.com>
1552
1553         PR ada/34173
1554         * decl.c (gnat_to_gnu_entity) <case E_Array_Type>: When setting
1555         the alignment on the GCC XUA array type, set TYPE_USER_ALIGN if
1556         this is from an alignment clause on the GNAT entity.
1557         * utils.c (create_field_decl): Rewrite the computation of DECL_ALIGN
1558         to distinguish the case where we set it from the type's alignment.
1559         When so, propagate TYPE_USER_ALIGN into DECL_USER_ALIGN to indicate
1560         whether this alignment was set from an explicit alignment clause.
1561
1562 2007-12-06  Eric Botcazou  <ebotcazou@adacore.com>
1563
1564         * decl.c (make_packable_type): Revert last change.
1565         (gnat_to_gnu_field): Avoid setting size and position multiple times.
1566         * utils.c (finish_record_type): Retrieve the real name of the type.
1567
1568 2007-12-05  Eric Botcazou  <ebotcazou@adacore.com>
1569
1570         * trans.c (lvalue_required_p): Take base node directly instead
1571         of its parent.  Rename second parameter to 'gnu_type'.
1572         <N_Indexed_Component>: Return 0 if the node isn't the prefix.
1573         <N_Slice>: Likewise.
1574         (Identifier_to_gnu): Rename parent_requires_lvalue to require_lvalue.
1575         Adjust calls to lvalue_required_p.
1576
1577 2007-12-05  Samuel Tardieu  <sam@rfc1149.net>
1578
1579         PR ada/21489
1580         * exp_ch9.adb (Build_Simple_Entry_Call): Initialize OUT access type
1581         parameters of an entry call.
1582
1583 2007-12-03  Robert Dewar <dewar@adacore.com>
1584             Samuel Tardieu  <sam@rfc1149.net>
1585
1586         PR ada/34287
1587         * sem_util.adb (Safe_To_Capture_Value): Do not capture values
1588         of variables declared in a library-level package.
1589     
1590 2007-12-02  Samuel Tardieu  <sam@rfc1149.net>
1591
1592         * clean.adb (Clean_Library_Directory): Use Empty_String'Access intead
1593         of Empty_String'Unchecked_Access.
1594
1595         * Makefile.in: Add support for sh4-linux.
1596
1597         * system-linux-sh4.ads: New file.
1598
1599 2007-12-01  Kostik Belousov  <kostikbel@ukr.net>
1600
1601         PR ada/33722
1602         * env.c (__gnat_setenv): FreeBSD 7 has a POSIX conformant putenv()
1603         and its argument must not be free()ed.
1604
1605 2007-11-29  Eric Botcazou  <ebotcazou@adacore.com>
1606
1607         * decl.c (make_packable_type): Retrieve the real name of the type.
1608         (maybe_pad_type): Simplify similar code.
1609
1610 2007-11-28  Samuel Tardieu  <sam@rfc1149.net>
1611
1612         PR ada/15804
1613         * par-ch3.adb (P_Variant_Part): Signal an error when anything other
1614         than an identifier is used after "case" in a variant_part.
1615
1616         PR ada/17318
1617         * par-ch4.adb (Is_Parameterless_Attribute): New map.
1618         (P_Name, Scan_Apostrophe block): Parse left parenthesis following
1619         attribute name or not depending on the new map.
1620
1621         * sem-attr.adb (Analyze_Attribute): Parameterless attributes
1622         returning a string or a type will not be called with improper
1623         arguments.
1624
1625         * sem-attr.ads (Attribute_Class_Array): Move to snames.ads.
1626
1627         * snames.ads (Attribute_Class_Array): Moved from sem-attr.ads.
1628
1629         PR ada/32792
1630         * sem_attr.adb (Analyze_Attribute, Attribute_Integer_Value clause):
1631         Signal an error when attribute argument is a fixed-point value of
1632         an unknown type.
1633
1634         PR ada/22559
1635         * sem_ch3.adb (Build_Derived_Numeric_Type): Do not set RM_Size on
1636         a derived ordinary fixed point type.
1637
1638         * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Recompute
1639         RM_Size when a Small clause is found.
1640
1641 2007-11-26  Andreas Krebbel  <krebbel1@de.ibm.com>
1642
1643         PR 34081/C++
1644         * trans.c (Subprogram_Body_to_gnu, Compilation_Unit_to_gnu):
1645         Pass 'false' for the new allocate_struct_function parameter.
1646         * utils.c (build_function_stub): Likewise.
1647
1648 2007-11-25  Richard Guenther  <rguenther@suse.de>
1649
1650         * utils.c (gnat_pushlevel): Use BLOCK_CHAIN.
1651         (gnat_poplevel): Likewise.
1652
1653 2007-11-25  Eric Botcazou  <ebotcazou@adacore.com>
1654
1655         * decl.c (gnat_to_gnu_entity) <E_Record_Type>: If the type has
1656         strict alignment, no alignment clause and a known static size, cap
1657         the type alignment to the greatest power of 2 factor of the size.
1658         (gnat_to_gnu_field): If the field has a component clause, is aliased
1659         or of a type with strict alignment, require that its size be equal to
1660         that of the type.
1661         (validate_size): Use the type size as the minimum size for a type with
1662         strict alignment.
1663
1664 2007-11-23  Samuel Tardieu  <sam@rfc1149.net>
1665
1666         * s-inmaop-posix.adb, s-intman-vxworks.adb, s-taprop-hpux-dce.adb,
1667         s-taprop-irix.adb, s-taprop-linux.adb, s-taprop-lynxos.adb,
1668         s-taprop-posix.adb, s-taprop-tru64.adb, s-taprop-vxworks.adb:
1669         Use 'Access instead of 'Unchecked_Access in second and third
1670         arguments of pthread_sigmask.
1671
1672 2007-11-23  Eric Botcazou  <ebotcazou@adacore.com>
1673
1674         * decl.c (ceil_alignment): New function.
1675         (gnat_to_gnu_entity): Use it to set the alignment on atomic types.
1676         (make_packable_type): Likewise.
1677
1678 2007-11-22  Olivier Hainque  <hainque@adacore.com>
1679
1680         * trans.c (gnat_to_gnu) <case N_Free_Statement>: Reformat lines
1681         to fit in 80 columns.
1682
1683 2007-11-21  Aurelien Jarno <aurelien@aurel32.net>
1684
1685         * s-osinte-kfreebsd-gnu.ads (To_Target_Priority): New function.
1686         * Makefile.in: Add EH_MECHANISM=-gcc to kfreebsd-gnu. Remove SYMLIB.
1687
1688 2007-11-19  Eric Botcazou  <ebotcazou@adacore.com>
1689
1690         PR ada/34098
1691         * misc.c (gnat_adjust_rli): Delete.
1692         (gnat_init): Do not initialize the translation code here.
1693         Do not call set_lang_adjust_rli.
1694         * trans.c (init_code_table): Make static.
1695         (gnat_init_stmt_group): Delete.
1696         (gigi): Initialize the translation code entirely here.
1697         Emit debug info for the common types here instead of...
1698         * utils.c (gnat_init_decl_processing): ...here.
1699         * gigi.h (init_code_table): Delete.
1700         (gnat_init_stmt_group): Likewise.
1701
1702 2007-11-16  Olivier Hainque  <hainque@adacore.com>
1703
1704         * utils2.c (build_call_alloc_dealloc) <if gnu_obj>: Move the code
1705         retrieving an allocator return value from a super-aligned address from
1706         here to ...
1707         * trans.c (gnat_to_gnu) <case N_Free_Statement>: ... here, and don't
1708         expect a super-aligned address for a fat or thin pointer.
1709         
1710 2007-11-14  Eric Botcazou  <ebotcazou@adacore.com>
1711
1712         * trans.c (call_to_gnu): Always set the source location on the call
1713         expression.  If the function returns-by-target, also set it on the
1714         address expression.
1715
1716 2007-11-14  Samuel Tardieu  <sam@rfc1149.net>
1717
1718         * adaint.c, init.c, initialize.c, link.c: Remove system-specific
1719         sections of non-supported Interix target.
1720
1721         * s-osinte-interix.ads: Removed.
1722
1723         * i-cstrin.ads (chars_ptr): Make it a C convention type.
1724
1725 2007-11-13  Samuel Tardieu  <sam@rfc1149.net>
1726
1727         * a-tasatt.adb: Add a comment at the beginning of the package
1728         explaining why in general 'Unchecked_Access must be used instead
1729         of 'Access.
1730
1731         * sem_prag.adb (Process_Convention): Move the test for the
1732         entity on which the Convention pragma applies down to also
1733         forbid pragma Convention on enumeration literals reached
1734         through renamings.
1735
1736 2007-11-10  Samuel Tardieu  <sam@rfc1149.net>
1737
1738         * a-tasatt.adb: Revert previous change for this file as it will
1739         generate an error when this package is instantiated from a
1740         local context.
1741
1742 2007-11-07  Samuel Tardieu  <sam@rfc1149.net>
1743
1744         * a-tasatt.adb: Type Wrapper should be declared in comment instead
1745         of already declared type Node_Access.
1746         Use 'Access instead of 'Unchecked_Access when applicable. Local
1747         lifetime is the one of the package.
1748         (Set_Value): W is allocated on the heap.
1749
1750         * g-socket.adb: Use 'Access instead of 'Unchecked_Access when
1751         applicable.
1752         (Get_Socket_Option): Optlen formal of C_Getsockopt is of an anonymous
1753         access type.
1754         (Receive_Socket): Fromlen formal of C_Recvfrom is of an anonymous
1755         access type.
1756
1757         * s-taasde.adb: Use 'Access instead of 'Unchecked_Access when
1758         applicable.
1759         (elaboration code): Timer_Queue lifetime is the one of the
1760         package.
1761
1762         * tracebak.c (i386 alternative): Remove useless comparaison
1763         which is always false; LOWEST_ADDRESS is 0 and is never greater
1764         than an unsigned integer.
1765
1766         * sem_attr.adb (Analyze_Attribute): Remove duplicate identical
1767         embedded check for "Ada_Version >= Ada_05".
1768
1769 2007-11-07  Olivier Hainque  <hainque@adacore.com>
1770
1771         * decl.c (make_aligning_type): Set the mode of the RECORD_TYPE we
1772         craft and expand comment.
1773
1774 2007-11-01  Eric Botcazou  <ebotcazou@adacore.com>
1775
1776         * lang-specs.h: Move translation of -fRTS= after -gnatez switch.
1777
1778 2007-10-23  Eric Botcazou  <ebotcazou@adacore.com>
1779
1780         * misc.c (gnat_handle_option): Replace call to abort with
1781         call to gcc_unreachable.
1782         (gnat_init): Likewise.
1783         (gnat_expand_expr): Likewise.
1784         (fp_prec_to_size): Likewise.
1785         (fp_size_to_prec): Likewise.
1786
1787 2007-10-23  Richard Guenther  <rguenther@suse.de>
1788
1789         PR bootstrap/33608
1790         * tracebak.c: #undef abort after including system.h.
1791
1792 2007-10-20  Danny Smith <dannysmith@users.sourceforge.net>
1793
1794         * Makefile.in (LIBGNAT_TARGET_PAIRS) Add s-tasinf-mingw.adb,
1795         s-tasinf-mingw.ads, a-exetim-mingw.adb, a-exetim-mingw.ads
1796         for win32 targets.
1797         (EXTRA_GNATRTL_TASKING_OBJS): Add a-exetim.o for win32 targets.
1798
1799 2007-10-15  Eric Botcazou  <ebotcazou@adacore.com>
1800
1801         * s-osinte-tru64.adb: (Hide_Yellow_Zone): Add On parameter.
1802         Set the protection status of the guard page based on the value of On.
1803
1804         * s-osinte-tru64.ads: (Hide_Yellow_Zone): Add On parameter.
1805
1806         * s-taprop-tru64.adb: (Enter_Task): Pass True to Hide_Yellow_Zone.
1807         (Exit_Task): Pass False to Hide_Yellow_Zone.
1808
1809 2007-10-15  Robert Dewar  <dewar@adacore.com>
1810
1811         * s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb, 
1812         s-taprop-vxworks.adb, s-taprop-posix.adb, a-calend-vms.adb,
1813         a-calend.adb, a-nuflra.adb, a-tigeau.adb, a-wtgeau.adb, 
1814         checks.adb, bindgen.adb, eval_fat.adb, exp_fixd.adb, fmap.adb, 
1815         freeze.adb, g-awk.adb, g-calend.adb, g-diopit.adb, g-expect.adb, 
1816         gnatchop.adb, gnatlink.adb, g-spipat.adb, g-thread.adb, make.adb, 
1817         mdll.adb, mlib.adb, mlib-prj.adb, osint.adb, par-ch3.adb, prj.adb, 
1818         prj-makr.adb, sem_prag.adb, sem_type.adb, s-fatgen.adb, s-fileio.adb, 
1819         sinfo.ads, sinput-d.adb, s-taasde.adb, s-tasdeb.ads, s-tasren.adb, 
1820         s-tassta.adb, s-tpobop.adb, s-tposen.adb, stylesw.adb, types.ads,
1821         uintp.adb, validsw.adb, makegpr.adb, a-rbtgso.adb, a-crbtgo.adb, 
1822         a-coorse.adb, a-convec.adb, a-coinve.adb, a-cohama.adb, a-ciorse.adb, 
1823         a-cihama.adb, a-cidlli.adb, a-chtgop.adb, a-cdlili.adb, a-cdlili.adb, 
1824         a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cohase.adb, a-ciorma.adb, 
1825         a-coorma.adb, a-ztgeau.adb, symbols-vms.adb, a-crdlli.adb, 
1826         a-calari.adb, a-calfor.adb, s-os_lib.adb, s-regpat.adb, a-ngrear.adb:
1827         Minor reformatting.
1828         Add Unreferenced and Warnings (Off) pragmas for cases of
1829         variables modified calls where they are IN OUT or OUT parameters and
1830         the resulting values are not subsequently referenced. In a few cases,
1831         we also remove redundant code found by the new warnings.
1832
1833         * ug_words, vms_data.ads, usage.adb, sem_util.adb, sem_util.ads, 
1834         sem_warn.adb, sem_warn.ads, sem_res.adb, sem_ch7.adb, sem_ch8.adb,
1835         sem_ch5.adb, opt.ads, lib-xref.adb, lib-xref.ads, exp_smem.adb,
1836         sem_ch11.adb, exp_ch6.adb, einfo.ads, einfo.adb: implement a new
1837         warning controlled by -gnatw.o that warns on cases of out parameter
1838         values being ignored.
1839
1840 2007-10-15  Geert Bosch  <bosch@adacore.com>
1841
1842         * adaint.c, socket.c, cal.c: Initial port to arm-mentor-nucleus.
1843
1844         * expect.c: Initial port to arm-mentor-nucleus.
1845         Use kill for __gnat_kill() on VMS.
1846
1847 2007-10-15  Emmanuel Briot  <briot@adacore.com>
1848
1849         * ali.ads, ali.adb (Scan_ALI): Initialize XE.Tref to a known default
1850         value.
1851         (Xref_Record): Change type for Line, since in the case of a reference to
1852         a predefined entity (as happens for array index types), the line is set
1853         to 0.
1854         Add support for parsing multiple array index types info, or
1855         multiple inherited interfaces info. This information cannot be stored
1856         in Xref_Entity_Record, which only supports a single instance of Tref_*,
1857         and is therefore stored in the list of references instead. It has a
1858         special treatement later on in tools that use this information.
1859
1860 2007-10-15  Tristan Gingold  <gingold@adacore.com>
1861
1862         * debug.adb: Document use of -gnatd.a and -gnatd.I
1863
1864         * layout.adb: On OpenVMS -gnatd.a disables alignment optimization.
1865
1866 2007-10-15  Javier Miranda  <miranda@adacore.com>
1867
1868         * exp_attr.adb (Expand_N_Attribute_Reference): Case Access,
1869         Unchecked_Access, and Unrestricted_Access. Cleanup code that takes
1870         care of access to class-wide interface types plus removal of bizarre
1871         conversion of tagged object to access type (reported by Gary
1872         Dismukes). After this patch there is no need to perform any
1873         additional management on these nodes in Expand_Interface_Actuals.
1874
1875         * exp_disp.adb (Expand_Interface_Actuals): Code cleanup. Remove code
1876         that handles use of 'Access and 'Unchecked_Access applied to
1877         actuals covering interface types. Such code is now
1878         centralized in Expand_N_Attribute_Reference.
1879
1880 2007-10-15  Ed Schonberg  <schonberg@adacore.com>
1881
1882         * exp_ch3.adb (Build_Init_Procedure): Keep separate the initialization
1883         of tagged types whose ultimate ancestor is a CPP type.
1884         (Freeze_Array_Type): For a packed array type, generate an initialization
1885         procedure if the type is public, to handle properly a client that
1886         specifies Normalize_Scalars.
1887
1888 2007-10-15  Hristian Kirtchev  <kirtchev@adacore.com>
1889
1890         * exp_ch9.adb (Actual_Index_Expression): When the expansion occurs
1891         inside a generic body, retrieve the full view of the entry family
1892         discrete subtype if available.
1893
1894 2007-10-15  Thomas Quinot  <quinot@adacore.com>
1895
1896         * exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): Do not
1897         attempt to generate stubs for hidden primitive operations.
1898
1899 2007-10-15  Vincent Celier  <celier@adacore.com>
1900
1901         * mlib-tgt-specific.adb (Support_For_Libraries): New function,
1902         returning None, used when there is no platform specific body for
1903         MLib.Tgt.Specific.
1904
1905 2007-10-15  Bob Duff  <duff@adacore.com>
1906
1907         * sem_case.adb, sem_ch13.adb, lib-sort.adb: Replace use of Heap_Sort_A
1908         (passing'Unrestricted_Access of nested subprograms to Sort) with use of
1909         the generic Heap_Sort_G, in order to avoid trampolines.
1910
1911 2007-10-15  Vasiliy Fofanov  <fofanov@adacore.com>
1912             Jose Ruiz  <ruiz@adacore.com>
1913
1914         * vx_stack_info.c: New file.
1915
1916         * i-forbla-unimplemented.ads: New file.
1917
1918         * Makefile.in: i-forbla-unimplemented.ads: a variant of i-forbla.ads
1919         for unsupported configurations; use it on VMS targets instead of the
1920         real one.
1921         (EXTRA_LIBGNAT_SRCS,EXTRA_LIBGNAT_OBJS for VxWorks): Include
1922         vx_stack_info.{c,o} that contains the routine __gnat_get_stack_info
1923         used by VxWorks targets to have access to task-specific data and be
1924         able to extract the stack boundaries for stack checking.
1925         Use system-vms-ia64.ads on ivms.
1926
1927         * Make-lang.in: Update dependencies.
1928
1929         * sysdep.c (__gnat_get_stack_info): Move to a standalone file
1930         (vx_stack_info.c).
1931
1932 2007-10-15  Vincent Celier  <celier@adacore.com>
1933
1934         * snames.adb, snames.ads: Add new standard name runtime_library_dir
1935
1936         * prj.ads (Language_Config): Add new component Runtime_Library_Dir
1937
1938         * prj-attr.adb: Add project level attribute Runtime_Library_Dir
1939
1940         * prj-env.adb (Create_Mapping_File): Do not put an entry if the path of
1941         the source is unknown.
1942
1943         * prj-ext.adb: Spelling error fix
1944
1945         * prj-nmsc.adb (Check_Ada_Name): Reject any unit that includes an Ada
1946         95 reserved word in its name.
1947         (Process_Project_Level_Array_Attributes): Process new attribute
1948         Runtime_Library_Dir.
1949
1950         * prj-part.adb (Parse_Single_Project): Do not check the name of the
1951         config project against the user project names.
1952
1953         * prj-proc.adb (Expression): In multi-language mode, indexes that do
1954         not include a dot are always case insensitive.
1955         (Process_Declarative_Items): Ditto
1956         (Process_Project_Tree_Phase_1): Set Success to False in case an error is
1957         detected.
1958
1959         * prj-util.adb (Value_Of (In_Array)): When Force_Lower_Case_Index is
1960         True, compare both indexes in lower case.
1961
1962 2007-10-15  Robert Dewar  <dewar@adacore.com>
1963
1964         * rtsfind.adb: (Load_RTU): Turn off style checks for Load call
1965
1966 2007-10-15  Gary Dismukes  <dismukes@adacore.com>
1967
1968         * sem_aggr.adb (Resolve_Record_Aggregate): In the case of a box
1969         association for an access component, add an association with null as
1970         the expression. Remove testing for array subtypes and the setting in
1971         that case of Ctyp to the array component type, which prevented proper
1972         inclusion of an association for null-initialized arrays. Collapse
1973         condition that tests for array subtypes into just a test of
1974         Is_Partially_Initialized_Type (which already covers arrays anyway).
1975
1976 2007-10-15  Hristian Kirtchev  <kirtchev@adacore.com>
1977
1978         * sem_ch12.adb: Minor code reformatting.
1979         (Check_Generic_Child_Unit): Iterate over the homonym chain in order to
1980         find the parent package which may have been hidden by local
1981         declarations.
1982
1983 2007-10-15  Gary Dismukes  <dismukes@adacore.com>
1984
1985         * sem_ch3.adb (Build_Derived_Concurrent_Type): Set the Is_Constrained
1986         flag of derived concurrent types, taking into account the flag setting
1987         on the parent subtype and any new set of discriminants.
1988
1989 2007-10-15  Hristian Kirtchev  <kirtchev@adacore.com>
1990
1991         * sem_ch4.adb: Minor code and comment reformatting.
1992         (Analyze_Allocator): When the designated type of an unconstrained
1993         allocator is a record with unknown discriminants or an array with
1994         unknown range bounds, emit a detailed error message depending on the
1995         compilation mode and whether the designated type is limited.
1996
1997 2007-10-15  Tristan Gingold  <gingold@adacore.com>
1998
1999         * system-vms-ia64.ads: New file.
2000
2001         * system-vms_64.ads: Minor comment fix.
2002
2003 2007-10-15  Ed Schonberg  <schonberg@adacore.com>
2004
2005         * sem_ch6.adb (Find_Corresponding_Spec): If the previous entity is a
2006         body generated for a function with a controlling result that is a null
2007         extension, discard the generated body in favor of the current explicit
2008         one.
2009
2010 2007-10-15  Ed Schonberg  <schonberg@adacore.com>
2011
2012         * sem_disp.adb (Find_Controlling_Arg): Examine the call node before
2013         examining its original form, to handle properly operator calls that
2014         have been rewritten.
2015
2016 2007-10-15  Olivier Hainque  <hainque@adacore.com>
2017
2018         * tb-alvms.c (tb_entry_t, __gnat_backtrace): Store a frame pointer
2019         instead of a procedure value in each traceback entry.
2020
2021         * g-trasym-vms-alpha.adb (Symbolic_Traceback): Pass frame pointer
2022         instead of procedure value to TBK$SYMBOLIZE.
2023
2024         * s-traent-vms.adb (PV_For): Rename as FP_For and access the proper
2025         field.
2026         (TB_Entry_For): Account for the PV/FP renaming.
2027
2028         * s-traent-vms.ads (Traceback_Entry): Rename PV component into FP and
2029         add comment.
2030         (Null_TB_Entry): Account for change of component name.
2031         (PV_For): Rename as FP_For.
2032
2033 2007-10-15  Tristan Gingold  <gingold@adacore.com>
2034
2035         * trans.c (gnat_to_gnu): Remove the padding structure more often.
2036         This optimize assignment to over-aligned record.
2037
2038 2007-10-15  Emmanuel Briot  <briot@adacore.com>
2039
2040         * xref_lib.adb (Get_Full_Type): Add support for the 'h' entity type, ie
2041         interfaces.
2042
2043         * xr_tabls.adb (Add_Reference): Add support for the new 'R' reference
2044         type, for dispatching calls.
2045
2046 2007-10-15  Vincent Celier  <celier@adacore.com>
2047             Robert Dewar  <dewar@adacore.com>
2048
2049         * gnat_ugn.texi: Add documentation for switches --version and --help
2050         for the GNAT tools gnatbind, gnatlink, gnatmake, gnatchop, gnatname,
2051         gnatxref, gnatfind, gnatls, and gnatclean.
2052         Document -gnatw.o.
2053         Mention attribute Excluded_Source_Dirs
2054         Replace obsolescent attribute Locally_Removed_Files with attribute
2055         Excluded_Source_Files.
2056         Improve documentation of -u (gnatbind)
2057         Document how to do reliable stack checking for the environmental task
2058         on iVMS.
2059
2060         * gnat_rm.texi: Rewrite section about No_Implicit_Dynamic_Code.
2061         Document attribute Excluded_Source_Files and indicate that attribute
2062         Locally_Removed_Files is obsolescent.
2063
2064 2007-10-15  Thomas Quinot  <quinot@adacore.com>
2065
2066         * g-soccon-vms.ads: Fix value of MSG_WAITALL.
2067
2068         * gen-soccon.c: 
2069         Update documentation to note that OpenVMS 8.3 or later must be used
2070         to generate g-soccon-vms.ads.
2071
2072         * atree.adb: Add ??? comment
2073
2074         * exp_util.adb: Minor reformatting.
2075         Add ??? comment in Kill_Dead_Code.
2076
2077 2007-10-15  Robert Dewar  <dewar@adacore.com>
2078
2079         * errout.ads: Comment clarification
2080
2081         * exp_ch4.adb (Expand_N_Allocator): Code cleanup.
2082         (Expand_N_Op_Eq): Improve handling of array equality with -gnatVa
2083
2084         * lib.ads: Comment update
2085
2086         * init.c: Minor reformatting.
2087
2088         * sem_attr.adb: Minor formatting
2089
2090         * osint-b.ads: Minor reformatting
2091
2092         * sem_ch9.adb: Implement -gnatd.I switch
2093
2094         * g-comlin.adb: (Start): Fix handling of empty command line.
2095
2096         * gnatcmd.adb (GNATCmd): Do not put the -rules in the -cargs section,
2097         even when -rules follows the -cargs section.
2098
2099 2007-10-08  Ollie Wild  <aaw@google.com>
2100
2101         * misc.c (LANG_HOOKS_PUSHDECL): Replaced lhd_return_tree with
2102         gnat_return_tree.
2103         (gnat_init_gcc_eh): Replaced gnat_eh_runtime_type with
2104         gnat_return_tree.
2105         (gnat_eh_runtime_type): Removed.
2106         (gnat_return_tree): New function.
2107
2108 2007-10-08  Ben Elliston  <bje@au.ibm.com>
2109
2110         PR ada/33454
2111         Revert:
2112         2007-08-31  Ben Elliston  <bje@au.ibm.com>
2113
2114         * Makefile.in (LIBGNAT_TARGET_PAIRS): Use system-linux-ppc64.ads
2115         when compiling for powerpc64-*-linux.
2116         * system-linux-ppc64.ads: New file.
2117
2118 2007-09-27  Eric Botcazou  <ebotcazou@adacore.com>
2119
2120         Mapped location support
2121         * back_end.adb (Call_Back_End): Pass information about source
2122         files instead of units to gigi.
2123         * gigi.h (struct File_Info_Type): New.
2124         (gigi): Rename and change type of number_units parameter, change
2125         type of file_info_ptr parameter.
2126         * trans.c (number_files): New global variable.
2127         (gigi): Rename and change type of number_units parameter, change
2128         type of file_info_ptr parameter.
2129         If mapped location support is enabled, create the isomorphic mapping
2130         between source files and line maps.
2131         (Sloc_to_locus): If mapped location support is enabled, translate
2132         source location into mapped location.
2133         (annotate_with_node): Rename into set_expr_location_from_node.
2134         Call set_expr_location instead of annotate_with_locus.
2135         (Pragma_to_gnu): Adjust for above change.
2136         (Loop_Statement_to_gnu): Likewise.
2137         (call_to_gnu): Likewise.
2138         (Handled_Sequence_Of_Statements_to_gnu): Likewise.
2139         (gnat_to_gnu): Likewise.
2140         (add_stmt_with_node): Likewise.
2141         (add_cleanup): Likewise.
2142         * utils.c (gnat_init_decl_processing): Do not set input_line.
2143
2144 2007-09-26  Hristian Kirtchev  <kirtchev@adacore.com>
2145
2146         * sem_ch8.adb (Analyze_Use_Type): Code cleanup.
2147         (Applicable_Use): Emit a warning when a package tries to use itself.
2148         (Use_One_Type): Add variable Is_Known_Used. Emit a warning when a type
2149         is already in use or the package where it is declared is in use or is
2150         declared in the current package.
2151         (Spec_Reloaded_For_Body): New subsidiary routine for Use_One_Type.
2152
2153         * a-tasatt.adb, s-osprim-vxworks.adb, g-socthi-mingw.adb,
2154         s-intman-vms.adb, g-socket.adb, g-thread.adb, s-tarest.adb,
2155         s-tassta.adb, s-tporft.adb: Remove redundant 'use type' clause.
2156
2157 2007-09-26  Hristian Kirtchev  <kirtchev@adacore.com>
2158
2159         * a-calend-vms.adb, a-calend.adb: 
2160         Add a section on leap seconds control along with two entities used to
2161         enable and disable leap seconds support. The array Leap_Second_Times is
2162         now constant and contains hard time values pre-generated. Remove
2163         all elaboration code used to populate the table of leap seconds.
2164
2165         * bindgen.adb: 
2166         Add entity Leap_Seconds_Support to the list of global run-time variables
2167         along with a comment on its usage and values.
2168         (Gen_Adainit_Ada): Add code to generate the declaration and import of
2169         Integer variable Leap_Seconds_Support. Set its value to zero (disabled)
2170         or one (enabled) depending on the presence of binder switch "-y".
2171         (Gen_Adainit_C): Add code to generate the declaration of external int
2172         __gl_leap_seconds_support. Set is value to zero (disabled) or one
2173         (enabled) depending on the presence of binder switch "-y".
2174
2175         * init.c: Add __gl_leap_seconds_support to the list of global values
2176         computed by the binder.
2177
2178 2007-09-26  Jerome Guitton  <guitton@adacore.com>
2179
2180         * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
2181         s-taprop-hpux-dce.adb, s-taprop-linux.adb, s-taprop-dummy.adb,
2182          s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb,
2183         s-taprop-posix.adb (Stop_Task): New function, dummy implementation.
2184
2185         * s-taprop.ads, s-taprop-vxworks.adb (Stop_Task): New function.
2186
2187         * s-tasdeb.adb (Stop_All_Tasks): New function, implementing a run-time
2188         function which can be called by the debugger to interrupt the tasks of
2189         an Ada application asynchronously, as needed on VxWorks.
2190         (Stop_All_Tasks_Handler): Renamed from Stop_All_Tasks.
2191
2192         * s-tasdeb.ads (Stop_All_Tasks_Handler): New function declaration,
2193         renamed from Stop_All_Tasks. Update comments.
2194         (Stop_All_tasks): New function declaration.
2195
2196 2007-09-26  Olivier Hainque  <hainque@adacore.com>
2197
2198         * adaint.c (if defined (__Lynx__)): Wrap #def/#undef VMOS_DEV around
2199         #include <utime.h> and #define GCC_RESOURCE_H before
2200         #include <sys/wait.h>.
2201         Add more protections in __gnat_translate_vms.
2202
2203         * expect.c (if defined (__Lynx__)): #define GCC_RESOURCE_H before
2204         #include <sys/wait.h>.
2205
2206 2007-09-26  Thomas Quinot  <quinot@adacore.com>
2207             Sergey Rybin  <rybin@adacore.com>
2208
2209         * gnatvsn.ads (PCS_Version_Number, ASIS_Version_Number): Removed.
2210
2211         * exp_dist.ads (PCS_Version_Number): Move from Gnatvsn to Exp_Dist,
2212         where it belongs.
2213
2214         * opt.ads: Move ASIS_Version_Number from Gnatvsn into Tree_IO.
2215
2216         * rtsfind.adb (PCS_Version_Number): Move from Gnatvsn to Exp_Dist,
2217         where it belongs.
2218
2219         * sem_dist.ads: Minor comment fix
2220
2221         * tree_io.ads: Move ASIS_Version_Number from Gnatvsn into Tree_IO.
2222
2223 2007-09-26  Javier Miranda  <miranda@adacore.com>
2224             Eric Botcazou  <ebotcazou@adacore.com>
2225
2226         * a-tags.adb: 
2227         (Get_HT_Link/Set_HT_Link): Updated to handle the additional level of
2228          indirection added to the HT_Link component of the TSD. This is required
2229          to statically allocate the TSD.
2230
2231         * a-tags.ads: 
2232         Minor reordering of the declarations in the private part. Required to
2233         add a level of indirection to the contents of the TSD component HT_Link.
2234         This is required to statically allocate the TSD.
2235
2236         * decl.c (gnat_to_gnu_entity) <object>: Do not exclude objects with
2237         Is_Statically_Allocated set from constant objects.
2238         Do not make exported constants created by the compiler volatile.
2239         (gnat_to_gnu_param): Do not treat an IN parameter whose address is taken
2240         as read-only.
2241
2242         * trans.c (Identifier_to_gnu): For constants, unshare initializers
2243         before returning them.
2244
2245         * exp_disp.ads, exp_disp.adb (Building_Static_DT): Spec moved to the
2246         public part of the package.
2247         (Make_DT): Move HT_Link component out of the TSD record. For this
2248         purpose Make_DT now declares a separate object that stores the
2249         HT_Link value, and initializes the TSD component with the address
2250         of this new object. The addition of this level of indirection is
2251         required to statically allocate the TSD because the TSD cannot
2252         have variable components.
2253         (Expand_Interface_Conversion): Improve the expanded code.
2254         (Expand_Interface_Thunk): Set Is_Thunk in the thunk entity.
2255
2256         * sem_disp.adb (Check_Dispatching_Operation): In case of a body
2257         declaring a primitive operation ---allowed by RM 3.9.2 (13.e/2)---,
2258         if we are building static dispatch tables then we must not generate
2259         extra code to register the primitive because the dispatch table will
2260         be built at the end of the library package; otherwise we notify that
2261         we cannot build the static dispatch table.
2262
2263 2007-09-26  Robert Dewar  <dewar@adacore.com>
2264
2265         * checks.adb, gnat1drv.adb, sem_util.ads: Improve warnings for address
2266         overlays.
2267
2268         * sem_ch13.ads, sem_ch13.adb: Improve warnings for address overlays
2269         (Analyze_Record_Representation_Clause): Suppress junk warning for
2270         missing component clause.
2271         (Analyze_Attribute_Definition_Clause, case Address): Apply the special
2272         tests for controlled type overlay to composites with controlled
2273         components.
2274         (Analyze_Record_Representation_Clause): Add reference for component name
2275
2276 2007-09-26  Javier Miranda  <miranda@adacore.com>
2277             Gary Dismukes  <dismukes@adacore.com>
2278
2279         * einfo.adb (Is_Thunk): New attribute applicable to subprograms. True
2280         for thunks associated with interface types.
2281
2282         * einfo.ads: Improve documentatation of Is_Internal
2283         (Is_Thunk): New attribute applicable to subprograms. True for thunks
2284         associated with interface types.
2285         Extensive comment fixes regarding flags that appear in all entities. The
2286         documentation is now consistent for all such flags (there were a number
2287         of errors in the documentation in this regard).
2288
2289         * exp_attr.adb (Expand_N_Attribute_Reference): Minor code cleanup.
2290
2291         * exp_ch6.adb (Make_Build_In_Place_Call_*): Return immediately if any
2292         of these procedures are passed a function call that already has
2293         build-in-place actuals (testing new flag
2294         Is_Expanded_Build_In_Place_Call). Set the flag on the function call in
2295         the case where processing continues.
2296         (Expand_Call): If the call is generated from a thunk body then we
2297         propagate the extra actuals associated with the accessibility
2298         level of the access type actuals.
2299
2300         * sem_ch6.adb (Analyze_Subprogram_Body): Set the Protected_Formal field
2301         of each extra formal of a protected operation to reference the
2302         corresponding extra formal of the subprogram denoted by the
2303         operation's Protected_Body_Subprogram.
2304         
2305         * sinfo.ads, sinfo.adb (Is_Expanded_Build_In_Place_Call): New flag on
2306         N_Function_Call nodes.
2307
2308 2007-09-26  Robert Dewar  <dewar@adacore.com>
2309
2310         * exp_ch5.adb: Activate memmove type processing if debug flag d.s is set
2311
2312         * debug.adb: Add d.s flag.
2313
2314 2007-09-26  Gary Dismukes  <dismukes@adacore.com>
2315
2316         * exp_dbug.adb (Debug_Renaming_Declaration): Set Is_Internal on the
2317         debug variable so that it won't be initialized when pragma
2318         Initialize_Scalars is in effect.
2319
2320 2007-09-26  Gary Dismukes  <dismukes@adacore.com>
2321
2322         * freeze.adb (Freeze_Entity): Remove check for preelaborable
2323         initialization of a full view. This is moved to
2324         Analyze_Package_Specification.
2325
2326         * sem_ch7.adb (Analyze_Package_Specification): Add check for
2327         preelaborable initialization of a full view in entity loop.
2328         (Uninstall_Declarations): If entity is a use-visible compilation unit,
2329         its child units are use-visible only if they are visible child units.
2330
2331         * sem_util.adb (Is_Preelaborable_Expression): New function to determine
2332         whether an expression can be used within a type declaration that
2333         requires preelaborable init.
2334         (Check_Components): Replace inline code that does partial checking for
2335         preelaborable default expressions with call to
2336         Is_Preelaborable_Expression.
2337         (Has_Preelaborable_Initialization): In the case of a generic actual
2338         subtype, (that is, Is_Generic_Actual is True), return the result of
2339         applying Has_Preelaborable_Initialization to the generic actual's base
2340         type.
2341
2342 2007-09-26  Hristian Kirtchev  <kirtchev@adacore.com>
2343
2344         * g-calend.adb (Has_53_Weeks): Rename to Last_Year_Has_53_Weeks. Add a
2345         call to Jan_1_Day _Of_Week to optimize its performance.
2346         (Is_Leap): Move the routine to the scope of Week_In_Year.
2347         (Jan_1_Day_Of_Week): New routine in Week_In_Year which calculates the
2348         weekday on which January 1 falls of Year - 1 and Year + 1. This function
2349         avoids calling Time_Of and Split, thus making it more efficent.
2350         (Week_In_Year): Reimplemented in oder to follow ISO 8601.
2351
2352         * g-calend.ads (Week_In_Year): Change comment to reflect new
2353         implementation.
2354
2355 2007-09-26  Emmanuel Briot  <briot@adacore.com>
2356
2357         * g-comlin.ads, g-comlin.adb (Command_Line_Configuration,
2358         Command_Line): New types
2359         (Define_Alias, Define_Prefix, Free): New subprograms. These provide
2360         support for defining how switches can be grouped on a command line (as
2361         is the case for -gnatw... for GNAT), and how simple switches can be
2362         used as aliases for more complex switches (-gnatwa is same as
2363         -gnatwbcef...)
2364         (Set_Command_Line, Add_Switch, Remove_Switch): New subprogram
2365         (Start, Current_*): New subprograms
2366         Added support for parsing an array of strings in addition to the real
2367         command line.
2368         (Opt_Parser, Opt_Parser_Data): New type. As a result, some types had to
2369          be moved from the body to the private part of the spec.
2370         (*): All subprograms now have an extra parameter with default value to
2371         specify which parser should be used. For backward compatibility, it
2372         defaults to parsing the command line of the application. They were also
2373         modified to properly handle cases where each of the argument does not
2374         start at index 1 (which is always true for Ada.Command_Line, but not
2375         when processing any Argument_List).
2376         (Free): New subprogram
2377         (Internal_Initialize_Option_Scan, Find_Longuest_Matching_Switch,
2378         Argument): New subprograms
2379         (Switch_Parameter_Type): New enum, which clarifies the code. The extra
2380         special characters like ':', '=',... are now handled in a single place,
2381         which makes the code more extensible eventually.
2382         (Getopt, Full_Switch): When the switch was returned as part of the
2383         special character '*', make sure it is prepended by the switch character
2384         ('-' in general), so that the application knows whether "foo" or "-foo"
2385         was specified on the command line.
2386
2387 2007-09-26  Florian Villoing  <villoing@adacore.com>
2388
2389         * g-dirope.adb (Remove_Dir): In case we are removing directories
2390         recursively, make sure that if an exception is raised during the
2391         processing, the current working directory is reset to its initial
2392         value before propagating the exception.
2393
2394 2007-09-26  Vincent Celier  <celier@adacore.com>
2395
2396         * gnatbind.adb: If there are several ALI files specified and there is
2397         a main program to bind, the first ALI is expected to contain the main
2398         subprogram and the names of the binder generated files will be derived
2399         from the first ALI file name.
2400         (Gnatbind): Fix insertion character in invocation of Error_Msg
2401
2402 2007-09-26  Vincent Celier  <celier@adacore.com>
2403
2404         * gnatcmd.adb (Check_Files): Do not include sources that have been
2405         removed by attributes Exclude_Source_Files or Locally_Removed_Files.
2406
2407 2007-09-26  Ed Schonberg  <schonberg@adacore.com>
2408
2409         * lib-xref.ads, lib-xref.adb: The entry for array types now carries
2410         information about each of its index types, following the type
2411         reference for its component type.
2412
2413 2007-09-26  Vincent Celier  <celier@adacore.com>
2414
2415         * make.adb: (Kill): New procedure (__gnat_kill imported)
2416         (Running_Compile, Outstanding_Compiles): Global variables that
2417         were previously local to procedure Compile_Sources.
2418         (Sigint_Intercepted): Send signal SIGINT to all outstanding
2419         compilation processes.
2420
2421         (Gnatmake): If project files are used, create the mapping of all the
2422         sources, so that the correct paths will be found.
2423
2424         * prj-env.ads, prj-env.adb (Create_Mapping): New procedure
2425
2426 2007-09-26  Vincent Celier  <celier@adacore.com>
2427
2428         * makeutl.ads (Main_Config_Project): Moved to gpr_util.ads
2429
2430         * prj.ads, prj.adb (Default_Language): Remove function, no longer used
2431         Replace components Compiler_Min_Options and Binder_Min_Options with
2432         Compiler_Required_Switches and Binder_Required_Switches in record
2433         Language_Config.
2434         Remove components Default_Language and Config in Project_Tree_Data,
2435         no longer used.
2436
2437         * prj-attr.adb: New attributes Required_Switches (<language>) in
2438         packages Compiler and Binder.
2439
2440         * prj-nmsc.adb: Major rewrite of the processing of configuration
2441         attributes for gprbuild. No impact on GNAT tools.
2442
2443         * prj-proc.ads, prj-proc.adb (Process_Project_Tree_Phase_2): No longer
2444         process configuration attributes: this is done in Prj.Nmsc.Check.
2445         (Recursive_Process): Make a full copy of packages inherited from project
2446         being extended, instead of a shallow copy.
2447         (Process_Project_Tree_Phase_1): New procedure
2448         (Process_Project_Tree_Phase_1): New procedure
2449         (Process): Implementation now uses the two new procedures
2450
2451         * prj-util.adb (Executable_Of): Get the suffix and the default suffix
2452         from the project config, not the tree config that no longer exists.
2453
2454 2007-09-26  Vincent Celier  <celier@adacore.com>
2455
2456         * Make-lang.in: Update dependencies..
2457
2458 2007-09-26  Vincent Celier  <celier@adacore.com>
2459
2460         * osint.adb, osint.ads: Minor reformatting
2461
2462         * osint-b.adb, osint-b.ads (Set_Current_File_Name_Index): New procedure
2463
2464 2007-09-26  Gary Dismukes  <dismukes@adacore.com>
2465
2466         * par-ch4.adb (P_Record_Or_Array_Component_Association): Change Ada 95
2467         message to cite use of <> in aggregate component associations rather
2468         than wrongly indicating use of limited aggregates.
2469
2470 2007-09-26  Robert Dewar  <dewar@adacore.com>
2471
2472         * sem_attr.adb (Analyze_Access_Attribute): Fix missing set of
2473         Address_Taken.
2474
2475 2007-09-26  Ed Schonberg  <schonberg@adacore.com>
2476
2477         * sem_ch3.adb (Derive_Subprograms): If the interface parent is a direct
2478         ancestor of the derived type, the operations are inherited from the
2479         primary dispatch table of the parent.
2480         (OK_For_Limited_Init_In_05): Remove old comment. Reject in-place calls
2481         when the context is an explicit type conversion.
2482
2483 2007-09-26  Ed Schonberg  <schonberg@adacore.com>
2484
2485         * sem_ch4.adb (Analyze_Qualified_Expression): Apply name resolution
2486         rule for qualified expressions properly, to detect improper conversions
2487         and resolve some cases of overloading.
2488
2489 2007-09-26  Ed Schonberg  <schonberg@adacore.com>
2490
2491         * sem_res.adb (Resolve_Call): If the call is dispatching, generate the
2492         proper kind of reference to the primitive operation, for better source
2493         navigation.
2494         (Valid_Conversion): A tagged conversion is legal if both operands are
2495         tagged.
2496
2497 2007-09-26  Robert Dewar  <dewar@adacore.com>
2498
2499         * sem_warn.adb (Check_References): Catch more cases of unreferenced
2500         packages.
2501
2502 2007-09-26  Vincent Celier  <celier@adacore.com>
2503
2504         * snames.adb, snames.ads: Change Include_Option to Include_Switches
2505
2506 2007-09-26  Robert Dewar  <dewar@adacore.com>
2507
2508         * s-wchstw.adb: provide messages for run time unit exceptions
2509
2510         * a-witeio.adb: Minor reformatting
2511
2512         * exp_ch13.adb: Minor reformatting
2513
2514 2007-09-26  Sergey Rybin  <rybin@adacore.com>
2515
2516         * vms_data.ads: Revise gnatmetric qualifiers.
2517         Add qualified for the new gnatbind option '-y'
2518
2519         * gnat_ugn.texi: Revise the gnatmetric section.
2520         Add entry for new gnatbind option '-y'.
2521
2522         * gnat_rm.texi: Minor spelling correction.
2523         Document restriction on overlaying controlled types
2524
2525 2007-09-26  Vincent Celier  <celier@adacore.com>
2526
2527         * makegpr.adb (Link_Executables): Do not fail when the root project has
2528         no sources, but is an extending project.
2529
2530 2007-09-25  Eric Botcazou  <ebotcazou@adacore.com>
2531
2532         * trans.c: Fix misplaced #define.
2533
2534 2007-09-22  Eric Botcazou  <ebotcazou@adacore.com>
2535
2536         * utils2.c (build_unary_op) <ADDR_EXPR> [INDIRECT_REF]: Propagate
2537         the TYPE_REF_CAN_ALIAS_ALL flag to the result.
2538
2539 2007-09-21  Olivier Hainque  <hainque@adacore.com>
2540
2541         * utils.c (type_for_nonaliased_component_p): Return false for
2542         all AGGREGATE_TYPEs.
2543
2544 2007-09-17  Eric Botcazou  <ebotcazou@adacore.com>
2545
2546         * decl.c (gnat_to_gnu_entity) <object>: Make again the type of an
2547         object covered by 13.3(19) volatile.
2548
2549 2007-09-12  Eric Botcazou  <ebotcazou@adacore.com>
2550
2551         PR ada/26797
2552         PR ada/32407
2553         * utils.c (unchecked_convert): Use a subtype as the intermediate type
2554         in the special VIEW_CONVERT_EXPR case.
2555
2556 2007-09-12  Robert Dewar  <dewar@adacore.com>
2557
2558         * types.ads, a-charac.ads, freeze.adb: Minor reformatting.
2559
2560         * a-except.adb, g-hesora.adb, g-speche.adb, lib.adb, lib.ads,
2561         lib-load.adb, lib-writ.adb, s-assert.adb, s-carun8.adb,
2562         s-casuti.adb, s-crc32.adb, s-exctab.adb, s-htable.adb, s-imgenu.adb,
2563         s-mastop.adb, s-memory.adb, s-memory.ads, s-secsta.adb, s-soflin.adb,
2564         s-sopco3.adb, s-sopco4.adb, s-sopco5.adb, s-stache.adb, s-stalib.adb,
2565         s-stoele.adb, s-strcom.adb, s-strops.adb, s-traceb.adb, s-traent.adb,
2566         s-wchcnv.adb, s-wchcon.adb, s-wchjis.adb, s-addope.adb, s-except.adb,
2567         s-os_lib.adb, s-string.adb, s-utf_32.adb, a-elchha.adb,
2568         a-chlat1.ads, a-elchha.ads, a-except.ads, g-hesora.ads, g-htable.ads, 
2569         g-speche.ads, par-prag.adb, restrict.adb, restrict.ads, s-assert.ads, 
2570         s-carun8.ads, s-casuti.ads, s-crc32.ads, sem_ch11.adb, sem_prag.adb, 
2571         s-exctab.ads, s-htable.ads, s-imgenu.ads, s-mastop.ads, snames.adb, 
2572         snames.ads, snames.h, s-purexc.ads, s-secsta.ads, s-soflin.ads, 
2573         s-sopco3.ads, s-sopco4.ads, s-sopco5.ads, s-stache.ads, s-stalib.ads, 
2574         s-stoele.ads, s-strcom.ads, s-strops.ads, s-traceb.ads, s-traent.ads, 
2575         s-unstyp.ads, s-wchcnv.ads, s-wchcon.ads, s-wchjis.ads, s-addope.ads, 
2576         s-except.ads, s-os_lib.ads, s-string.ads, s-utf_32.ads: Implement
2577         pragma Compiler_Unit and adds it to relevant library units.
2578
2579 2007-09-12  Ed Schonberg  <schonberg@adacore.com>
2580
2581         * sem_aggr.adb (Resolve_Record_Aggregate): An others association with
2582         a box need not correspond to any component.
2583
2584 2007-09-12  Robert Dewar  <dewar@adacore.com>
2585
2586         * g-thread.ads: Document use of "with GNAT.Threads" to ensure loading
2587         the tasking version of the Ada run time when foreign threads are
2588         present and there are no explicit Ada tasks or tasking constructs.
2589
2590         * gnat_rm.texi: Clarify documentation of GNAT.Threads.
2591
2592 2007-09-12  Hristian Kirtchev  <kirtchev@adacore.com>
2593
2594         * bindusg.adb (Display): Correct comment for switch -X. Add a line for
2595         the usage of switch -y.
2596
2597         * switch-b.adb (Scan_Binder_Switches): Set flag Leap_Seconds_Support
2598         when switch -y is present.
2599
2600         * opt.ads: Add binder flag Leap_Seconds_Support used to enable/disable
2601         leap seconds in Ada.Calendar and its children.
2602
2603 2007-09-12  Jose Ruiz  <ruiz@adacore.com>
2604
2605         * a-extiti.ads (Timer): The discriminant is a "not null access
2606         constant" in the Reference Manual.
2607         (Cancel_Handler): Cancelled is an out parameter in the Reference Manual.
2608
2609 2007-09-12  Robert Dewar  <dewar@adacore.com>
2610
2611         * a-swuwha.adb: Remove junk RM header
2612
2613 2007-09-12  Vincent Celier  <celier@adacore.com>
2614
2615         * g-bytswa-x86.adb (Swap2, Swap4, Swap8): Remove explicit "in" mode
2616         indicator
2617
2618         * g-bytswa.ads: Minor reformatting
2619
2620 2007-09-12  Thomas Quinot  <quinot@adacore.com>
2621
2622         * g-soccon-solaris-64.ads, g-soccon-hpux-ia64.ads: 
2623         Add new constant Thread_Blocking_IO, always True by default, set False
2624         on a per-runtime basis.
2625         (Need_Netdb_Buffer): New constant.
2626
2627 2007-09-12  Arnaud Charlet  <charlet@adacore.com>
2628
2629         * s-dsaser.ads (Get_Local_Partition_Id, Get_Passive_Partition_Id):
2630         Added renames for corresponding functions in System.Partition_Interface.
2631
2632 2007-09-12  Doug Rupp  <rupp@adacore.com>
2633
2634         * Makefile.in: Remove VMS specific System.CRTL packages which are no
2635         longer needed.
2636
2637         * s-crtl-vms64.ads: Removed.
2638
2639 2007-09-12  Olivier Hainque  <hainque@adacore.com>
2640
2641         * decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: For a subtype
2642         with discriminant constraints, generalize the code for BIT_FIELDs
2643         to PACKED fields of constant size and propagate DECL_PACKED.
2644
2645 2007-09-11  Eric Botcazou  <ebotcazou@adacore.com>
2646
2647         * decl.c (array_type_has_nonaliased_component): New predicate.
2648         (gnat_to_gnu_field) <E_Array_Type>: Invoke the above predicate to
2649         set the TYPE_NONALIASED_COMPONENT flag on the type.
2650         <E_Array_Subtype>: Likewise.
2651         * gigi.h (type_for_nonaliased_component_p): Declare.
2652         * utils.c (type_for_nonaliased_component_p): New predicate.
2653         (create_field_decl): Invoke the above predicate to set the
2654         DECL_NONADDRESSABLE_P flag on the field.
2655
2656 2007-09-11  Javier Miranda  <miranda@adacore.com>
2657
2658         * einfo.ads, einfo.adb (Dispatch_Table_Wrapper): New attribute. Present
2659         in library level record type entities if we are generating statically
2660         allocated dispatch tables.
2661
2662         * exp_disp.adb (Make_Tags/Make_DT): Replace previous code
2663         importing/exporting the _tag declaration by new code
2664         importing/exporting the dispatch table wrapper. This change allows us
2665         to statically allocate of the TSD.
2666         (Make_DT.Export_DT): New procedure.
2667         (Build_Static_DT): New function.
2668         (Has_DT): New function.
2669
2670         * freeze.adb (Freeze_Static_Object): Code cleanup: Do not reset flags
2671         True_Constant and Current_Value. Required to statically
2672         allocate the dispatch tables.
2673         (Check_Allocator): Make function iterative instead of recursive.
2674         Also return inner allocator node, when present, so that we do not have
2675         to look for that node again in the caller.
2676
2677 2007-09-11  Jan Hubicka <jh@suse.cz>
2678
2679         * misc.c (gnat_expand_body): Kill.
2680         (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Kill.
2681
2682 2007-09-10  Robert Dewar  <dewar@adacore.com>
2683
2684         * exp_atag.ads, exp_atag.adb, mlib-tgt-tru64.adb, mlib-tgt-aix.adb,
2685         mlib-tgt-irix.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
2686         mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
2687         mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb, ali.adb, ali.ads,
2688         ali-util.adb, ali-util.ads, atree.h, back_end.adb, back_end.ads,
2689         bcheck.adb, bcheck.ads, binde.adb, binde.ads, binderr.adb, binderr.ads,
2690         bindgen.adb, bindgen.ads, bindusg.adb, bindusg.ads, butil.adb,
2691         butil.ads, checks.adb, checks.ads, clean.adb, clean.ads, comperr.adb,
2692         comperr.ads, cstand.adb, cstand.ads, debug_a.adb, debug_a.ads,
2693         elists.h, errout.adb, erroutc.ads, errutil.adb, errutil.ads,
2694         err_vars.ads, eval_fat.adb, eval_fat.ads, exp_sel.ads, exp_sel.adb,
2695         exp_aggr.adb, exp_aggr.ads, expander.adb, expander.ads, exp_attr.ads,
2696         exp_ch10.ads, exp_ch11.adb, exp_ch12.adb, exp_ch12.ads, exp_ch13.adb,
2697         exp_ch13.ads, exp_ch2.adb, exp_ch2.ads, exp_ch3.ads, exp_ch4.adb,
2698         exp_ch4.ads, exp_ch5.adb, exp_ch5.ads, exp_ch6.adb, exp_ch6.ads,
2699         exp_ch7.adb, exp_ch7.ads, exp_ch8.adb, exp_ch8.ads, exp_ch9.adb,
2700         exp_ch9.ads, exp_code.adb, exp_code.ads, exp_dbug.adb, exp_dbug.ads,
2701         exp_disp.ads, exp_dist.adb, exp_dist.ads, exp_fixd.adb, exp_fixd.ads,
2702         exp_imgv.adb, exp_imgv.ads, exp_intr.adb, exp_intr.ads, exp_pakd.adb,
2703         exp_pakd.ads, exp_prag.adb, exp_prag.ads, exp_smem.adb, exp_strm.adb,
2704         exp_strm.ads, exp_tss.adb, exp_tss.ads, exp_util.adb, exp_util.ads,
2705         exp_vfpt.adb, exp_vfpt.ads, fmap.adb, fmap.ads, fname-sf.adb,
2706         fname-sf.ads, fname-uf.adb, fname-uf.ads, frontend.adb, frontend.ads,
2707         get_targ.adb, get_targ.ads, gnat1drv.adb, gnat1drv.ads, gnatbind.adb,
2708         gnatbind.ads, gnatbl.c, gnatchop.adb, gnatclean.adb, gnatcmd.adb,
2709         gnatcmd.ads, gnatdll.adb, gnatfind.adb, gnatkr.adb, gnatkr.ads,
2710         gnatlbr.adb, gnatlink.adb, gnatlink.ads, gnatls.adb, gnatls.ads,
2711         gnatmake.adb, gnatmake.ads, gnatmem.adb, gnatname.adb, gnatname.ads,
2712         gnatprep.adb, gnatprep.ads, gnatsym.adb, gnatxref.adb,
2713         gprep.adb, gprep.ads, hlo.adb, hlo.ads, impunit.adb, impunit.ads,
2714         inline.adb, inline.ads, itypes.adb, itypes.ads, layout.adb, layout.ads,
2715         lib-load.adb, lib-load.ads, lib-util.adb, lib-util.ads, lib-writ.adb,
2716         lib-writ.ads, lib-xref.adb, lib-xref.ads, live.adb, live.ads,
2717         make.adb, make.ads, makeutl.ads, makeutl.adb, makeusg.adb, makeusg.ads,
2718         mdll.adb, mdll.ads, mdll-fil.adb, mdll-fil.ads, mdll-utl.adb,
2719         mdll-utl.ads, memroot.adb, memroot.ads, mlib.adb, mlib.ads,
2720         mlib-fil.adb, mlib-fil.ads, mlib-prj.adb, mlib-prj.ads, mlib-tgt.adb,
2721         mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads, namet.h, nmake.adt,
2722         osint.adb, osint.ads, osint-b.adb, osint-b.ads, osint-c.adb,
2723         osint-c.ads, osint-l.adb, osint-l.ads, osint-m.adb, osint-m.ads,
2724         par.adb, par.ads, par-ch10.adb, par-ch11.adb, par-ch12.adb,
2725         par-ch13.adb, par-ch2.adb, par-ch3.adb, par-ch4.adb, par-ch5.adb,
2726         par-ch6.adb, par-ch7.adb, par-ch8.adb, par-ch9.adb, par-endh.adb,
2727         par-labl.adb, par-load.adb, par-prag.adb, par-sync.adb, par-tchk.adb,
2728         par-util.adb, prep.adb, prep.ads, prepcomp.adb, prepcomp.ads,
2729         prj.adb, prj.ads, prj-attr.adb, prj-attr.ads, prj-com.ads,
2730         prj-dect.adb, prj-dect.ads, prj-err.adb, prj-err.ads, prj-ext.adb,
2731         prj-ext.ads, prj-makr.adb, prj-makr.ads, prj-nmsc.adb, prj-nmsc.ads,
2732         prj-pars.adb, prj-pars.ads, prj-part.adb, prj-part.ads,
2733         prj-pp.adb, prj-pp.ads, prj-proc.adb, prj-proc.ads,
2734         prj-strt.adb, prj-strt.ads, prj-tree.adb, prj-tree.ads,
2735         prj-util.adb, prj-util.ads, restrict.adb, restrict.ads,
2736         rtsfind.adb, rtsfind.ads, scn.adb, scn.ads,
2737         scng.adb, scng.ads, sdefault.ads, sem.ads, sem_aggr.ads, sem_attr.adb,
2738         sem_case.adb, sem_case.ads, sem_cat.adb, sem_cat.ads, sem_ch10.adb,
2739         sem_ch10.ads, sem_ch11.adb, sem_ch11.ads, sem_ch12.ads, sem_ch13.adb,
2740         sem_ch13.ads, sem_ch2.adb, sem_ch2.ads, sem_ch3.adb, sem_ch3.ads,
2741         sem_ch4.ads, sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
2742         sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads, sem_ch9.adb,
2743         sem_ch9.ads, sem_disp.adb, sem_disp.ads, sem_dist.adb, sem_dist.ads,
2744         sem_elab.adb, sem_elab.ads, sem_elim.adb, sem_elim.ads, sem_eval.adb,
2745         sem_eval.ads, sem_intr.adb, sem_intr.ads, sem_maps.adb, sem_maps.ads,
2746         sem_mech.adb, sem_mech.ads, sem_prag.adb, sem_prag.ads, sem_res.adb,
2747         sem_res.ads, sem_smem.adb, sem_smem.ads, sem_type.adb, sem_type.ads,
2748         sem_util.adb, sem_util.ads, sem_vfpt.adb, sem_vfpt.ads, sem_warn.adb,
2749         sem_warn.ads, sfn_scan.ads, sinfo-cn.adb, sinfo-cn.ads, sinput-c.adb,
2750         sinput-c.ads, sinput-d.adb, sinput-d.ads, sinput-l.adb, sinput-l.ads,
2751         sinput-p.adb, sinput-p.ads, snames.h, sprint.adb, sprint.ads,
2752         stringt.h, style.ads, styleg.adb, styleg.ads, styleg-c.adb,
2753         styleg-c.ads, stylesw.adb, stylesw.ads, switch.adb, switch.ads,
2754         switch-b.adb, switch-b.ads, switch-c.adb, switch-c.ads, switch-m.adb,
2755         switch-m.ads, symbols.adb, symbols.ads, targparm.adb, tbuild.adb,
2756         tbuild.ads, tempdir.adb, tempdir.ads, tree_gen.adb, tree_gen.ads,
2757         treepr.adb, treepr.ads, treeprs.adt, ttypef.ads, ttypes.ads,
2758         types.h, uintp.h, urealp.h, usage.adb, usage.ads,
2759         validsw.adb, validsw.ads, vxaddr2line.adb, xeinfo.adb, xnmake.adb,
2760         xref_lib.adb, xref_lib.ads, xr_tabls.adb, xr_tabls.ads, xsinfo.adb,
2761         xtreeprs.adb, xsnames.adb, vms_conv.ads, vms_conv.adb, xgnatugn.adb,
2762         gprmake.adb, makegpr.ads, makegpr.adb, prj-attr-pm.ads, prj-attr-pm.adb,
2763         mlib-tgt-lynxos.adb, mlib-tgt-darwin.adb, symbols-vms.adb,
2764         symbols-processing-vms-alpha.adb, symbols-processing-vms-ia64.adb,
2765         mlib-tgt-specific.adb, mlib-tgt-specific.ads, mlib-tgt-vms.adb,
2766         mlib-tgt-vms.ads: Replace headers with GPL v3 headers.
2767
2768 2007-09-10  Emmanuel Briot  <briot@adacore.com>
2769
2770         * s-regpat.adb (Parse_Character_Class): Fix handling of empty character
2771         classes ("[]").
2772
2773 2007-09-10  Vasiliy Fofanov  <fofanov@adacore.com>
2774
2775         * adaint.c (__gnat_translate_vms): new function.
2776
2777 2007-09-10  Gary Dismukes  <dismukes@adacore.com>
2778             Thomas Quinot  <quinot@adacore.com>
2779
2780         * exp_ch3.adb (Predef_Spec_Or_Body): When the type is abstract, only
2781         create an abstract subprogram in the case of 'Input. For 'Output we now
2782         create a real spec/body when the type is abstract, since it can
2783         potentially be called.
2784         (Predefined_Primitive_Bodies): Now allow the creation of a predefined
2785         body for 'Output when the type is abstract (only the creation of the
2786         body for 'Input is excluded when the type is abstract).
2787         (Stream_Operation_OK): Add an additional condition in the return
2788         statement, so that False will be returned for TTS_Stream_Input if the
2789         associated tagged type is an abstract extension. Add comments for
2790         return statement.
2791         (Expand_N_Object_Declaration): For the case of a shared passive
2792         variable, insert init proc call only after the shared variable
2793         procedures have been processed, because the IP call needs to undergo
2794         shared passive variable reference expansion, which requires these
2795         procedures to be available (and elaborated).
2796
2797 2007-09-10  Vincent Celier  <celier@adacore.com>
2798
2799         * prj-env.ads, prj-env.adb (Create_Mapping_File (Language)): Remove
2800         parameter Runtime_Project.
2801
2802 2007-09-10  Ed Schonberg  <schonberg@adacore.com>
2803
2804         * sem_aggr.adb (Build_Record_Aggr_Code): If an aggregate component is
2805         given a box association, the type of the component is discriminated,
2806         and the value of the discriminant is the discriminant of the enclosing
2807         type, retrieve its value from the aggregate itself, where it must have
2808         been supplied.
2809
2810         * sem_ch4.adb (Analyze_One_Call): Further refinement to previous fix,
2811         to remove other spurious ambiguities on arithmetic operations involving
2812         literals and addresses, on systems where Address is a visible integer
2813         type, when the operator is called in functional notation.
2814         (Try_Primitive_Operation): Within an instance, a call in prefixed form
2815         is legal when the types match, even if the operation is currently
2816         hidden.
2817
2818 2007-09-10  Ed Schonberg  <schonberg@adacore.com>
2819
2820         * sem_ch12.adb (Build_Local_Package): A formal package with no
2821         associations is legal if all formals have defaults. It is not
2822         equivalent to a formal declared with a box.
2823
2824 2007-09-10  Sergey Rybin  <rybin@adacore.com>
2825
2826         * vms_data.ads: Add qualifier for the new gnatmetric '-lratio' option
2827
2828 2007-09-10  Sergey Rybin  <rybin@adacore.com>
2829
2830         * gnat_ugn.texi: Add description of the new '-lratio' option
2831         Update 7.3.1 section about availability of the feature.
2832
2833 2007-09-10  Thomas Quinot  <quinot@adacore.com>
2834
2835         * exp_smem.ads, exp_smem.adb (Make_Shared_Var_Procs): Return last
2836         inserted node.
2837
2838 2007-09-10  Olivier Hainque  <hainque@adacore.com>
2839
2840         * Makefile.in: (mips-irix section): Activate build of libgmem.
2841
2842 2007-09-10  Eric Botcazou  <ebotcazou@adacore.com>
2843
2844         * a-numaux-x86.adb (Logarithmic_Pow): Do not silently clobber
2845         x87 registers.
2846
2847 2007-09-10  Eric Botcazou  <ebotcazou@adacore.com>
2848
2849         * decl.c (gnat_to_gnu_entity) <object>: Deal with variable built for
2850         a debug renaming declaration specially.
2851
2852 2007-09-08  Eric Botcazou  <ebotcazou@adacore.com>
2853
2854         * decl.c (gnat_to_gnu_entity) <Object>: Simplify the condition under
2855         which a constant renaming is treated as a normal object declaration.
2856         * trans.c (lvalue_required_p) <N_Slice>: New case, extracted from
2857         the N_Indexed_Component case.
2858         <N_Indexed_Component>: Fall through to above case.
2859         <N_Object_Renaming_Declaration>: Return true for all composite types.
2860
2861 2007-09-08  Eric Botcazou  <ebotcazou@adacore.com>
2862
2863         * decl.c (make_packable_type): If the new type has been given BLKmode,
2864         try again to get an integral mode for it.
2865
2866 2007-09-07  Eric Botcazou  <ebotcazou@adacore.com>
2867
2868         Re-apply accidentally reverted change:
2869
2870         2007-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
2871
2872         * raise-gcc.c (get_region_description_for, get_call_site_action_for,
2873         get_action_description_for): Replace _Unwind_Word with _uleb128_t 
2874         and _Unwind_SWord with _sleb128_t.
2875
2876 2007-09-06  Eric Botcazou  <ebotcazou@adacore.com>
2877
2878         * trans.c (convert_with_check): Update call to real_2expN.
2879
2880 2007-09-05  Sandra Loosemore  <sandra@codesourcery.com>
2881
2882         * trans.c (Compilation_unit_to_gnu): Use set_cfun.
2883         * utils.c (end_subprog_body): Likewise.
2884
2885 2007-09-03  Nick Clifton  <nickc@redhat.com>
2886
2887         * Make-lang.in: Change copyright header to refer to version 3 of
2888         the GNU General Public License and to point readers at the
2889         COPYING3 file and the FSF's license web page.
2890         * ada-tree.def, nmake.adt, nlists.h, snames.h, utils.c,
2891         Makefile.rtl, Makefile.in, config-lang.in, uintp.h, urealp.h,
2892         namet.h, decl.c, utils2.c, lang.opt, elists.h, atree.h, types.h,
2893         treeprs.adt, lang-specs.h, cuintp.c, stringt.h, gnatbl.c:
2894         Likewise.
2895
2896 2007-08-31  Vincent Celier  <celier@adacore.com>
2897
2898         PR ada/4720
2899
2900         * gnatchop.adb, gnatfind.adb, gnatlink.adb, gnatls.adb, 
2901         gnatname.adb, gnatxref.adb, gprep.adb, clean.adb gnatbind.adb
2902         (Check_Version_And_Help): New procedure in package Switch to process
2903         switches --version and --help.
2904         Use Check_Version_And_Help in GNAT tools
2905
2906         * make.adb:  Ditto.
2907         (Compile_Sources): Make sure that sources that are "excluded" are not
2908         compiled.
2909         (Gnatmake): Do not issue -aO. to gnatbind and only issue -I- if a
2910         project file is used.
2911         (Version_Switch): Remove, moved to Switch
2912         (Help_Switch): Remove, moved to Switch
2913         (Display_Version): Remove, moved to Switch
2914
2915         * switch.ads, switch.adb (Check_Version_And_Help): New procedure in
2916         package Switch to process switches --version and --help.
2917         (Display_Version): New procedure
2918
2919         * gnatvsn.ads, gnatvsn.adb (Copyright_Holder): New function.
2920
2921 2007-08-31  Javier Miranda  <miranda@adacore.com>
2922
2923         * a-tags.adb (Internal_Tag): Protect the run-time against wrong
2924         internal tags.
2925
2926 2007-08-31  Hristian Kirtchev  <kirtchev@adacore.com>
2927
2928         * checks.adb (In_Declarative_Region_Of_Subprogram_Body): New routine.
2929         (Mark_Non_Null): If the node for which we just generated an access check
2930         is a reference to an *in* parameter and the reference appears in the
2931         declarative part of a subprogram body, mark the node as known non null.
2932
2933 2007-08-31  Hristian Kirtchev  <kirtchev@adacore.com>
2934
2935         * einfo.ads, einfo.adb: New flag Is_Raised (Flag224). Update the
2936         structure of E_Exception to reflect the new flag.
2937         (Is_Raised, Set_Is_Raised): New inlined routines.
2938         Update the usage of available flag to reflect the addition of Is_Raised.
2939         (Is_Raised, Set_Is_Raised): Bodies of new routines.
2940         (Write_Entity_Flags): Write the status of flag Is_Raised.
2941         (Is_Descendent_Of_Address): New entity flag, to simplify handling of
2942         spurious ambiguities when integer literals appear in the context of an
2943         address type that is a visible integer type.
2944
2945         * sem_ch11.adb (Analyze_Exception_Handler): Add code to warn on local
2946         exceptions never being raised.
2947         (Analyze_Raise_Statement): When analyzing an exception, mark it as being
2948         explicitly raised.
2949
2950 2007-08-31  Javier Miranda  <miranda@adacore.com>
2951
2952         * exp_ch11.adb (Expand_At_End_Handler): Avoid generation of raise
2953         statement when compiling under restriction No_Exceptions_Proparation.
2954
2955 2007-08-31  Ed Schonberg  <schonberg@adacore.com>
2956
2957         * exp_ch3.adb (Build_Record_Init_Proc): If there is a static
2958         initialization aggregate for the type, generate itype references for
2959         thetypes of its (sub)components, to prevent out-of-scope errors in gigi.
2960
2961 2007-08-31  Gary Dismukes  <dismukes@adacore.com>
2962
2963         * exp_ch8.adb (Expand_N_Package_Renaming_Declaration): In the case of a
2964         library-level package renaming, pass the declaration associated with
2965         the renaming's special debug variable to Qualify_Entity_Names to ensure
2966         that its encoded name is properly qualified.
2967
2968         * exp_dbug.adb (Qualify_All_Entity_Names): Check for a variable entity
2969         occurring in the list of entities to qualify, and do not attempt to
2970         traverse an entity list in that case. Variables associated with
2971 `       library-level package renamings can now occur in the table.
2972
2973         * exp_dbug.ads: Revise documentation of the encoding for renaming
2974         declarations.
2975
2976 2007-08-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2977
2978         * layout.adb (Layout_Type): Use Underlying_Type to determine whether an
2979         access type points to an unconstrained array.
2980
2981 2007-08-31  Hristian Kirtchev  <kirtchev@adacore.com>
2982
2983         * restrict.adb, namet.adb, par-util.adb: Remove redundant type
2984         conversion.
2985
2986         * sem_res.adb (Resolve_Qualified_Expression): Add machinery to detect
2987         simple redundant qualifications. The check is performed whenever the
2988         expression is a non-overloaded identifier.
2989         (Resolve_Type_Conversion): Enchance the redundant type conversion check
2990         to include loop parameters.
2991         (Valid_Conversion): Avoid generation of spurious error message.
2992
2993 2007-08-31  Bob Duff  <duff@adacore.com>
2994
2995         * par-ch4.adb (P_Simple_Expression): Fold long sequences of
2996         concatenations of string literals into a single literal, in order to
2997         avoid very deep recursion in the front end, which was causing stack
2998         overflow.
2999
3000         * sem_eval.adb (Eval_Concatenation): If the left operand is the empty
3001         string, and the right operand is a string literal (the case of "" &
3002         "..."), optimize by avoiding copying the right operand -- just use the
3003         value of the right operand directly.
3004
3005         * stringt.adb (Store_String_Chars): Optimize by growing the
3006         String_Chars table all at once, rather than appending characters one by
3007         one.
3008         (Write_String_Table_Entry): If the string to be printed is very long,
3009         just print the first few characters, followed by the length. Otherwise,
3010         doing "pn(n)" in the debugger can take an extremely long time.
3011
3012         * sem_prag.adb (Process_Interface_Name): Replace loop doing
3013         Store_String_Char with Store_String_Chars.
3014
3015 2007-08-31  Vincent Celier  <celier@adacore.com>
3016
3017         * prj-attr.adb: Add new attribute Excluded_Source_Files
3018
3019         * prj-nmsc.adb: Use attribute Excluded_Source_Files before
3020         Locally_Removed_Files.
3021
3022         * snames.ads, snames.adb: New standard name Excluded_Source_Files
3023
3024 2007-08-31  Ed Schonberg  <schonberg@adacore.com>
3025
3026         * sem_ch10.adb (Analyze_Subunit_Context): When analyzing context
3027         clauses of subunits, ignore limited_with_clauses that are illegal and
3028         have not been fully analyzed.
3029
3030 2007-08-31  Ed Schonberg  <schonberg@adacore.com>
3031
3032         * sem_ch3.adb: The predicate Is_Descendent_Of_Address is now an entity
3033         flag, for effiency. It is called when analyzing arithmetic operators
3034         and also for actuals in calls that are universal_integers. The flag is
3035         set for the predefined type address, and for any type or subtype
3036         derived from it.
3037
3038         * sem_ch4.adb (Analyze_One_Call): Reject an actual that is a
3039         Universal_Integer, when the formal is a descendent of address and the
3040         call appears in user code.
3041         (Analyze_Selected_Component): if the prefix is a private extension, the
3042         tag component is visible.
3043
3044         * sem_util.ads, sem_util.adb: Remove Is_Descendent_Of_Address, now an
3045         entity flag.
3046
3047 2007-08-31  Robert Dewar  <dewar@adacore.com>
3048
3049         * s-fileio.adb (Open): Normalize file name to lower case in non-case
3050         sensitive file name systems to avoid unexpected mismatch in Vista.
3051
3052 2007-08-31  Vincent Celier  <celier@adacore.com>
3053
3054         * tempdir.adb: On VMS, take into account GNUTMPDIR before TMPDIR
3055
3056 2007-08-31  Vincent Celier  <celier@adacore.com>
3057
3058         * symbols-vms.adb (Initialize): Read symbol files with continuation
3059         lines
3060         (Finalize): If symbol is long, split the line
3061
3062 2007-08-31  Vincent Celier  <celier@adacore.com>
3063
3064         * fmap.ads: Minor comment updates
3065
3066 2007-08-31  GNAT Script  <nobody@adacore.com>
3067
3068         * Make-lang.in: Makefile automatically updated
3069
3070 2007-08-31  Bob Duff  <duff@adacore.com>
3071
3072         * sinfo.ads: Minor comment fix.
3073
3074 2007-08-31  Thomas Quinot  <quinot@adacore.com>
3075
3076         * stand.ads: (Standard_Debug_Renaming_Type): Make comment consistent
3077         with implementation.
3078         Documentation cleanup only.
3079
3080 2007-08-31  Sergey Rybin  <rybin@adacore.com>
3081
3082         * vms_data.ads: Add new qualifier /STMT_NAME_ON_NEW_LINE for the new
3083         gnatpp '--separate-stmt-name' option.
3084         Add new qualifier /USE_ON_NEW_LIN for the new gnatpp '--use-on-new-line'
3085         option.
3086
3087         * gnat_ugn.texi: Add description for the new gnatpp
3088         '--separate-stmt-name' and '--use-on-new-line' options.
3089
3090 2007-08-31  Ben Elliston  <bje@au.ibm.com>
3091
3092         * Makefile.in (LIBGNAT_TARGET_PAIRS): Use system-linux-ppc64.ads
3093         when compiling for powerpc64-*-linux.
3094         * system-linux-ppc64.ads: New file.
3095
3096 2007-08-22  Krister Walfridsson  <cato@df.lth.se>
3097
3098         * env.c ( __gnat_clearenv): Use the __gnat_unsetenv mechanism for
3099         NetBSD.
3100
3101 2007-08-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3102
3103         * misc.c (gnat_type_max_size): Constify.
3104
3105 2007-08-16  Gary Dismukes  <dismukes@adacore.com>
3106
3107         * cstand.adb (Create_Standard): Create an entity for a zero-sized type
3108         associated with Standard_Debug_Renaming_Type, to be used as the type of
3109         the special variables whose names provide debugger encodings for
3110         renaming declarations.
3111
3112         * einfo.ads, einfo.adb (Debug_Renaming_Link): Change to return Node25.
3113         (Set_Debug_Renaming_Link): Change to set Node25.
3114         (Write_Field13_Name): Remove case for E_Enumeration_Literal.
3115         (Write_Field25_Name): Add case for E_Variable to output
3116         "Debug_Renaming_Link".
3117         (Write_Field23_Name): Correct the output string for "Limited_View".
3118
3119         * exp_dbug.adb: Add with and use of Tbuild.
3120         (Debug_Renaming_Declaration): Replace creation of an enumeration type
3121         and literal with creation of a variable of type
3122         Standard_Debug_Renaming_Type whose name encodes both the renamed object
3123         and the entity of the renaming declaration.
3124         (Qualify_Entity_Name): Add the delayed qualification of the entity name
3125         part of the name of a variable that has a Debug_Renaming_Link.
3126
3127         * stand.ads (Standard_Debug_Renaming_Type): New Entity_Id denoting a
3128         special type to be associated with variables that provide debugger
3129         encodings for renaming declarations.
3130
3131 2007-08-16  Gary Dismukes  <dismukes@adacore.com>
3132             Ed Schonberg  <schonberg@adacore.com>
3133             Javier Miranda  <miranda@adacore.com>
3134
3135         * exp_aggr.adb (Build_Record_Aggr_Code): Extend the test for an
3136         ancestor part given by an aggregate to test for an unchecked conversion,
3137         since this can occur in some cases when the ancestor part is a function
3138         call, and we don't want to fall into the recursive call to this
3139         procedure in that case.
3140
3141         * exp_ch3.adb (Stream_Operation_OK): Revise tests for availability of
3142         stream attributes on limited types to account for user-specified
3143         attributes as well as whether Input (resp. Output) becomes available
3144         due to Read (resp. Write) being available for the type. Change Boolean
3145         variable to the more accurate name
3146         Has_Predefined_Or_Specified_Stream_Attribute. Change convoluted
3147         double-"not" predicate at beginning of return statement to more
3148         understandable form.
3149
3150         * exp_ch5.adb (Expand_N_Extended_Return_Statement): If the extended
3151         return has an associated N_Handled_Sequence_Of_Statements, then wrap it
3152         in a block statement and use that as the first statement of the
3153         expanded return rather than incorrectly using the handled sequence as
3154         the first statement.
3155
3156         * exp_ch6.adb (Expand_N_Subprogram_Declaration): If this is a protected
3157         operation, generate an explicit freeze node for it rather than
3158         generating extra formals, to ensure that gigi has the proper order of
3159         elaboration for anonymous subtypes in the signature of the subprograms.
3160         (Build_In_Place_Formal): Move assertion to beginning of loop.
3161         (Is_Build_In_Place_Function_Call): Allow for an unchecked conversion
3162         applied to a function call (occurs for some cases of 'Input).
3163         (Make_Build_In_Place_Call_In_*): Allow for an unchecked conversion
3164         applied to a function call (occurs for some cases of 'Input).
3165
3166         * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): For Ada
3167         2005, generate an extended return statement enclosing the result object
3168         and 'Read call.
3169
3170         * freeze.adb (Freeze_Record_Type): Extend the current management of
3171         components that are access type with an allocator as default value: add
3172         missing support to the use of qualified expressions of the
3173         allocator (which also cause freezing of the designated type!)
3174         (Freeze_Entity): Call Freeze_Subprogram in the case of a predefined
3175         dispatching operation, since extra formals may be needed by calls to
3176         build-in-place functions (such as stream 'Input).
3177
3178         * sem_ch6.adb (Create_Extra_Formals): Skip creation of the extra
3179         formals for 'Constrained and accessibility level in the case of a
3180         predefined dispatching operation.
3181
3182         * exp_util.adb (Insert_Actions): A protected body is a valid insertion
3183         point, no need to find the parent node.
3184
3185 2007-08-16  Javier Miranda  <miranda@adacore.com>
3186
3187         * exp_attr.adb (Attribute_Priority): Add missing support for entries
3188         and entry barriers.
3189
3190 2007-08-16  Javier Miranda  <miranda@adacore.com>
3191
3192         * exp_ch9.adb (Build_Protected_Entry): Undo previous change because it
3193         is not really required and can introduce regression with the debugger.
3194         The original problem is fixed with the patch written for checks.adb.
3195
3196 2007-08-16  Thomas Quinot  <quinot@adacore.com>
3197
3198         * g-dyntab.adb, g-table.adb, table.adb: (Set_Item): Suppress
3199         Range_Check on Allocated_Table.
3200
3201 2007-08-16  Vincent Celier  <celier@adacore.com>
3202
3203         * make.adb (Collect_Arguments): Call Test_If_Relative_Path with
3204         Including_Non_Switch set to False.
3205         (Gnatmake): For the compiler, call Test_If_Relative_Path with
3206         Including_Non_Switch set to False.
3207
3208         * makeutl.adb, makeutl.ads (Test_If_Relative_Path): New Boolean
3209         parameter Including_Non_Switch, defaulted to True. When
3210         Including_Non_Switch is False, options that are not switches and
3211         appear as relative path are not converted to absolute paths.
3212
3213 2007-08-16  Nicolas Roche  <roche@adacore.com>
3214
3215         * Makefile.in (gnatlib): Propagate FORCE_DEBUG_ADAFLAGS value to sub
3216         makefiles
3217
3218         * Make-lang.in: Update dependencies
3219
3220 2007-08-16  Hristian Kirtchev  <kirtchev@adacore.com>
3221
3222         * sem_ch10.adb (Has_With_Clause): If the name of the with clause
3223         currently inspected is a selected component, retrieve the entity of
3224         its selector.
3225         (Install_Limited_Withed_Unit): Call Has_Limited_With_Clause starting
3226         from the immediate ancestor of Main_Unit_Entity.
3227         (Install_Limited_Withed_Unit): Do not install the limited view of
3228         package P if P is reachable through an ancestor chain from package C
3229         and C also has a with clause for P in its body.
3230         (Has_Limited_With_Clause): New routine.
3231         (Has_With_Clause): New routine.
3232
3233 2007-08-16  Ed Schonberg  <schonberg@adacore.com>
3234
3235         * sem_ch12.adb (Copy_Generic_Node): A reference to a child unit of the
3236         generic for an enclosing instance is a global reference, even though
3237         its scope is the enclosing instance.
3238
3239 2007-08-16  Gary Dismukes  <dismukes@adacore.com>
3240             Javier Miranda  <miranda@adacore.com>
3241
3242         * sem_ch3.adb (OK_For_Limited_Init_In_05): Allow calls to 'Input to
3243         initialize a limited object.
3244         (Build_Derived_Record_Type): Add missing check of rules ARM 3.9.4
3245         13/2 and 14/2.
3246         Make sure Has_Complex_Representation is inherited by derived type.
3247
3248 2007-08-16  Robert Dewar  <dewar@adacore.com>
3249
3250         * sem_ch5.adb (Analyze_Assignment): Make sure we still note update in
3251         exception case
3252
3253 2007-08-16  Ed Schonberg  <schonberg@adacore.com>
3254
3255         * sem_disp.adb (Check_Dispatching_Operation): If the operation
3256         implements an operation inherited from a progenitor interface, verify
3257         that they are subtype-conformant.
3258
3259 2007-08-16  Hristian Kirtchev  <kirtchev@adacore.com>
3260             Bob Duff  <duff@adacore.com>
3261             Nicolas Setton  <setton@adacore.com>
3262
3263         * sem_res.adb (Comes_From_Predefined_Lib_Unit): New.
3264         (Resolve): Alphabetize local variables. Add new variable From_Lib. When
3265         the statement which is being resolved comes from a predefined library
3266         unit, all non-predefined library interpretations are skipped.
3267         (Resolve_Op_Concat): If string concatenation was folded in the parser,
3268         but the "&" is user defined, give an error, because the folding would
3269         be wrong.
3270
3271         * sinfo.ads, sinfo.adb (Is_Folded_In_Parser): New flag to indicate that
3272         the parser has folded a long sequence of concatenations of string
3273         literals.
3274
3275         * trans.c (Handled_Sequence_Of_Statements_to_gnu): Mark "JMPBUF_SAVE"
3276         and "JMP_BUF" variables as artificial.
3277         (N_String_Literal): Do not use alloca for very long string literals. Use
3278         xmalloc/free instead. Otherwise the stack might overflow.
3279
3280         * utils.c (init_gigi_decls): Mark "JMPBUF_T" type as created by the
3281         compiler.
3282
3283 2007-08-16  Vincent Celier  <celier@adacore.com>
3284
3285         * vms_conv.adb (Process_Argument): Ensure that project related options
3286         are not put in the -cargs section when using GNAT COMPILE.
3287
3288 2007-08-16  Robert Dewar  <dewar@adacore.com>
3289
3290         * gnat_ugn.texi: Add note on preprocessing (output file not written)
3291
3292 2007-08-16  Thomas Quinot  <quinot@adacore.com>
3293
3294         * a-tags.adb: Minor reformatting.
3295
3296 2007-08-16  Bob Duff  <duff@adacore.com>
3297
3298         * sem_type.ads, sem_ch4.adb: Minor reformatting.
3299
3300 2007-08-14  Thomas Quinot  <quinot@adacore.com>
3301
3302         * g-soccon-interix.ads, a-excpol-interix.adb, a-intnam-interix.ads, 
3303         s-osinte-interix.ads, system-interix.ads: Removed.
3304
3305 2007-08-14  Hristian Kirtchev  <kirtchev@adacore.com>
3306
3307         * a-calend-vms.adb, a-calend.adb ("+", "-", Add, Subtract): Remove
3308         calls to Check_Within_Time_Bounds.
3309         ("+", "-", Add, Subtract): Remove calls to Check_Within_Time_Bounds.
3310         (Difference): Account for possible rounding of the resulting difference
3311
3312 2007-08-14  Robert Dewar  <dewar@adacore.com>
3313
3314         * uintp.adb, a-ztedit.adb, s-wchcon.adb, xnmake.adb, s-wchcon.adb,
3315         par-ch5.adb, par-ch10.adb, get_targ.adb, a-wtedit.adb, a-teioed.adb,
3316         s-osinte-solaris.adb, s-osinte-solaris.ads,
3317         s-osinte-freebsd.ads, s-osinte-freebsd.adb: Minor reformatting.
3318
3319         * styleg.adb, styleg.ads, stylesw.adb, stylesw.ads: implement style
3320         switch -gnatyS. Enable -gnatyS in GNAT style check mode
3321
3322 2007-08-14  Robert Dewar  <dewar@adacore.com>
3323             Ed Schonberg  <schonberg@adacore.com>
3324
3325         * inline.adb, types.ads, inline.ads, frontend.adb, alloc.ads: 
3326         Suppress unmodified in-out parameter warning in some cases
3327         This patch is a also fairly significant change to the way suppressible
3328         checks are handled.
3329
3330         * checks.ads, checks.adb (Install_Null_Excluding_Check): No check
3331         needed for access to concurrent record types generated by the expander.
3332         (Generate_Range_Check): When generating a temporary to capture the
3333         value of a conversion that requires a range check, set the type of the
3334         temporary before rewriting the node, so that the type is always
3335         properly placed for back-end use.
3336         (Apply_Float_Conversion_Check): Handle case where the conversion is
3337         truncating.
3338         (Get_Discriminal): Code reformatting. Climb the scope stack looking
3339         for a protected type in order to examine its discriminants.
3340
3341 2007-08-14  Robert Dewar  <dewar@adacore.com>
3342             Gary Dismukes  <dismukes@adacore.com>
3343             Ed Schonberg  <schonberg@adacore.com>
3344             Thomas Quinot  <quinot@adacore.com>
3345
3346         * a-stzsup.adb, nlists.adb, lib-util.adb, treepr.adb, 
3347         a-stwisu.adb, a-strsup.adb: Fix warnings for range
3348         tests optimized out.
3349
3350         * exp_ch4.adb (Expand_N_In): Add warnings for range tests optimized out.
3351         (Get_Allocator_Final_List): For the case of an anonymous access type
3352         that has a specified Associated_Final_Chain, do not go up to the
3353         enclosing scope.
3354         (Expand_N_Type_Conversion): Test for the case of renamings of access
3355         parameters when deciding whether to apply a run-time accessibility
3356         check.
3357         (Convert_Aggr_In_Allocator): Use Insert_Actions to place expanded
3358         aggregate code before allocator, and ahead of declaration for
3359         temporary, to prevent access before elaboration when the allocator is
3360         an actual for an access parameter.
3361         (Expand_N_Type_Conversion): On an access type conversion involving an
3362         access parameter, do not apply an accessibility check when the
3363         operand's original node was an attribute other than 'Access. We now
3364         create access conversions for the expansion of 'Unchecked_Access and
3365         'Unrestricted_Access in certain cases and clearly accessibility should
3366         not be checked for those.
3367
3368         * exp_ch6.ads, exp_ch6.adb (Add_Call_By_Copy_Code): For an actual that
3369         includes a type conversion of a packed component that has been expanded,
3370         recover the original expression for the object, and use this expression
3371         in the post-call assignment statement, so that the assignment is made
3372         to the object and not to a back-end temporary.
3373         (Freeze_Subprogram): In case of primitives of tagged types not defined
3374         at the library level force generation of code to register the primitive
3375         in the dispatch table. In addition some code reorganization has been
3376         done to leave the implementation clear.
3377         (Expand_Call): When expanding an inherited implicit conversion,
3378         preserve the type of the inherited function after the intrinsic
3379         operation has been expanded.
3380
3381         * exp_ch2.ads, exp_ch2.adb
3382         (Expand_Entry_Parameter.In_Assignment_Context): An implicit dereference
3383         of an entry formal appearing in an assignment statement does not assign
3384         to the formal.
3385         (Expand_Current_Value): Instead of calling a routine to determine
3386         whether the prefix of an attribute reference should be optimized or
3387         not, prevent the optimization of such prefixes all together.
3388
3389         * lib-xref.adb (Generate_Reference.Is_On_LHS): An indexed or selected
3390         component whose prefix is known to be of an access type is an implicit
3391         dereference and does not assign to the prefix.
3392
3393 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
3394             Robert Dewar  <dewar@adacore.com>
3395
3396         * atree.ads, atree.adb (New_Copy_Tree): If hash table is being used and
3397         itype is visited, make an entry into table to link associated node and
3398         new itype.
3399         Add comments and correct harmless error in Build_NCT_Hash_Tables
3400         (Array_Aggr_Subtype): Associate each itype created for an index type to
3401         the corresponding range construct, and not to the aggregate itself. to
3402         maintain a one-to-one correspondence between itype and its associated
3403         node, to prevent errors when complex expression is copied.
3404         Fix mishandling of multiple levels of parens
3405
3406         * sem_aggr.adb: Create a limited view of an incomplete type, to make
3407         treatment of limited views uniform for all visible declarations in a
3408         limited_withed package.
3409         (New_Copy_Tree): If hash table is being used and itype is visited,
3410         make an entry into table to link associated node and new itype.
3411         (Resolve_Record_Aggregate): Do not add an others box association for a
3412         discriminated record component that has only discriminants, when there
3413         is a box association for the component itself.
3414
3415         * par-ch4.adb: Fix mishandling of multiple levels of parens
3416
3417 2007-08-14  Robert Dewar  <dewar@adacore.com>
3418
3419         * comperr.adb: Fix problem with suppressing warning messages from gigi
3420
3421         * erroutc.ads, erroutc.adb, errout.ads, 
3422         errout.adb (Write_Eol): Remove trailing spaces before writing the line
3423         (Write_Eol_Keep_Blanks): New procedure to write a line, including
3424         possible trailing spaces.
3425         (Output_Source_Line): Call Write_Eol_Keep_Blanks to output a source line
3426         Fix problem with suppressing warning messages from back end
3427         Improve handling of deleted warnings
3428
3429         * gnat1drv.adb: 
3430         Fix problem with suppressing warning messages from back end
3431         Handle setting of Static_Dispatch_Tables flag.
3432
3433         * prepcomp.adb: 
3434         Fix problem with suppressing warning messages from back end
3435
3436         * exp_intr.adb: Improve handling of deleted warnings
3437
3438 2007-08-14  Robert Dewar  <dewar@adacore.com>
3439
3440         * debug.adb: Improve -gnatdI to cover all cases of serialization
3441         Add documentation of dZ, d.t
3442
3443         * sprint.ads, sprint.adb: Improve -gnatdI to cover all cases of
3444         serialization.
3445         (Sprint_Node_Actual): Generate new output associated with implicit
3446         importation and implicit exportation of object declarations.
3447
3448 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
3449             Robert Dewar  <dewar@adacore.com>
3450             Javier Miranda  <miranda@adacore.com>
3451             Gary Dismukes  <dismukes@adacore.com>
3452
3453         * einfo.ads, einfo.adb: Create a limited view of an incomplete type,
3454         to make treatment of limited views uniform for all visible declarations
3455         in a limited_withed package.
3456         Improve warnings for in out parameters
3457         (Set_Related_Interaface/Related_Interface): Allow the use of this
3458         attribute with constants.
3459         (Write_Field26_Name): Handle attribute Related_Interface in constants.
3460         Warn on duplicate pragma Preelaborable_Initialialization
3461
3462         * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Body): Force the
3463         generation of a freezing node to ensure proper management of null
3464         excluding access types in the backend.
3465         (Create_Extra_Formals): Test base type of the formal when checking for
3466         the need to add an extra accessibility-level formal. Pass the entity E
3467         on all calls to Add_Extra_Formal (rather than Scope (Formal) as was
3468         originally being done in a couple of cases), to ensure that the
3469         Extra_Formals list gets set on the entity E when the first entity is
3470         added.
3471         (Conforming_Types): Add missing calls to Base_Type to the code that
3472         handles anonymous access types. This is required to handle the
3473         general case because Process_Formals builds internal subtype entities
3474         to handle null-excluding access types.
3475         (Make_Controlling_Function_Wrappers): Create wrappers for constructor
3476         functions that need it, even when not marked Requires_Overriding.
3477         Improve warnings for in out parameters
3478         (Analyze_Function_Return): Warn for disallowed null return
3479         Warn on return from procedure with unset out parameter
3480         Ensure consistent use of # in error messages
3481         (Check_Overriding_Indicator): Add in parameter Is_Primitive.
3482         (Analyze_Function_Return): Move call to Apply_Constraint_Check before
3483         the implicit conversion of the expression done for anonymous access
3484         types. This is required to generate the code of the null excluding
3485         check (if required).
3486
3487         * sem_warn.ads, sem_warn.adb (Check_References.Publicly_Referenceable):
3488         A formal parameter is never publicly referenceable outside of its body.
3489         (Check_References): For an unreferenced formal parameter in an accept
3490         statement, use the same warning circuitry as for subprogram formal
3491         parameters.
3492         (Warn_On_Unreferenced_Entity): New subprogram, taken from
3493         Output_Unreferenced_Messages, containing the part of that routine that
3494         is now reused for entry formals as described above.
3495         (Goto_Spec_Entity): New function
3496         (Check_References): Do not give IN OUT warning for dispatching operation
3497         Improve warnings for in out parameters
3498         (Test_Ref): Check that the entity is not undefinite before calling
3499         Scope_Within, in order to avoid infinite loops.
3500         Warn on return from procedure with unset out parameter
3501         Improved warnings for unused variables
3502
3503 2007-08-14  Robert Dewar  <dewar@adacore.com>
3504             Javier Miranda  <miranda@adacore.com>
3505             Gary Dismukes  <dismukes@adacore.com>
3506
3507         * exp_attr.adb (Expand_N_Attribute_Reference): Handle case of child unit
3508         (Expand_N_Attribute_Reference): Further unify the handling of the
3509         three forms of access attributes, using common code now for all three
3510         cases. Add a test for the case of applying an access attribute to
3511         an explicit dereference when the context is an access-to-interface
3512         type. In that case we need to apply the conversion to the prefix
3513         of the explicit dereference rather than the prefix of the attribute.
3514         (Attribute_Version, UET_Address): Set entity as internal to ensure
3515         proper dg output of implicit importation.
3516         (Expand_Access_To_Type): Removed.
3517         (Expand_N_Attribute_Reference): Merge the code from the three cases
3518         of access attributes, since the processing is largely identical for
3519         these cases. The substantive fix here is to process the case of a
3520         type name prefix (current instance case) before handling the case
3521         of interface prefixes.
3522
3523 2007-08-14  Thomas Quinot  <quinot@adacore.com>
3524             Ed Schonberg  <schonberg@adacore.com>
3525             Javier Miranda  <miranda@adacore.com>
3526             Robert Dewar  <dewar@adacore.com>
3527
3528         * exp_ch3.ads, exp_ch3.adb (Add_Final_Chain): New subprogram.
3529         (Freeze_Array_Type, Freeze_Record_Type): For the case of a component
3530         type that is an anonymous access to controlled object, establish
3531         an associated finalization chain to avoid corrupting the global
3532         finalization list when a dynamically allocated object designated
3533         by such a component is deallocated.
3534         (Make_Controlling_Function_Wrappers): Create wrappers for constructor
3535         functions that need it, even when not marked Requires_Overriding.
3536         (Initialize_Tag): Replace call to has_discriminants by call to
3537         Is_Variable_Size_Record in the circuitry that handles the
3538         initialization of secondary tags.
3539         (Is_Variable_Size_Record): New implementation.
3540         (Expand_N_Object_Declaration): Suppress call to init proc if there is a
3541         Suppress_Initialization pragma for a derived type.
3542         (Is_Variable_Size_Record): New subprogram.
3543         (Build_Offset_To_Top_Functions): New implementation that simplifies the
3544         initial version of this routine and also fixes problems causing
3545         incomplete initialization of the table of interfaces.
3546         (Build_Init_Procedure): Improve the generation of code to initialize the
3547         the tag components of secondary dispatch tables.
3548         (Init_Secondary_Tags): New implementation that simplifies the previous
3549         version of this routine.
3550         (Make_DT): Add parameter to indicate when type has been frozen by an
3551         object declaration, for diagnostic purposes.
3552         (Check_Premature_Freezing): New subsidiary procedure of Make_DT, to
3553         diagnose attemps to freeze a subprogram when some untagged type of its
3554         profile is a private type whose full view has not been analyzed yet.
3555         (Freeze_Array_Type): Generate init proc for packed array if either
3556         Initialize or Normalize_Scalars is set.
3557         (Make_Controlling_Function_Wrappers, Make_Null_Procedure_Specs): when
3558         constructing the new profile, copy the null_exclusion indicator for each
3559         parameter, to ensure full conformance of the new body with the spec.
3560
3561         * sem_type.ads, sem_type.adb (Make_Controlling_Function_Wrappers):
3562         Create wrappers for constructor functions that need it, even when not
3563         marked Requires_Overriding.
3564         (Covers): Handle properly designated types of anonymous access types,
3565         whose non-limited views are themselves incomplete types.
3566         (Add_Entry): Use an entity to store the abstract operation which hides
3567         an interpretation.
3568         (Binary_Op_May_Be_Hidden): Rename to Binary_Op_Interp_Has_Abstract_Op.
3569         (Collect_Interps): Use Empty as an actual for Abstract_Op in the
3570         initialization aggregate.
3571         (Function_Interp_May_Be_Hidden): Rename to
3572         Function_Interp_Has_Abstract_Op.
3573         (Has_Compatible_Type): Remove machinery that skips interpretations if
3574         they are labeled as potentially hidden by an abstract operator.
3575         (Has_Hidden_Interp): Rename to Has_Abstract_Op.
3576         (Set_May_Be_Hidden): Rename to Set_Abstract_Op.
3577         (Write_Overloads): Output the abstract operator if present.
3578         (Add_Entry): Before inserting a new entry into the interpretation table
3579         for a node, determine whether the entry will be disabled by an abstract
3580         operator.
3581         (Binary_Op_Interp_May_Be_Hidden): New routine.
3582         (Collect_Interps): Add value for flag May_Be_Hidden in initialization
3583         aggregate.
3584         (Function_Interp_May_Be_Hidden): New routine.
3585         (Has_Compatible_Type): Do not consider interpretations hidden by
3586         abstract operators when trying to determine whether two types are
3587         compatible.
3588         (Has_Hidden_Interp): New routine.
3589         (Set_May_Be_Hidden_Interp): New routine.
3590         (Write_Overloads): Write the status of flag May_Be_Hidden.
3591
3592 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
3593             Javier Miranda  <miranda@adacore.com>
3594
3595         * exp_disp.ads, exp_disp.adb (Build_Dispatch_Tables): Handle tagged
3596         types declared in the declarative part of a nested package body or in
3597         the proper body of a stub.
3598         (Set_All_DT_Position): Add missing check to avoid wrong assignation
3599         of the same dispatch table slot to renamed primitives.
3600         (Make_Select_Specific_Data_Table): Handle private types.
3601         (Tagged_Kind): Handle private types.
3602         (Make_Tags, Make_DT): Set tag entity as internal to ensure proper dg
3603         output of implicit importation and exportation.
3604         (Expand_Interface_Thunk): Fix bug in the expansion assuming that the
3605         first formal of the thunk is always associated with the controlling
3606         type. In addition perform the following code cleanup: remove formal
3607         Thunk_Alias which is no longer required, cleanup evaluation of the
3608         the controlling type, and update the documentation.
3609         Replace occurrence of Default_Prim_Op_Count by
3610         Max_Predef_Prims. Addition of compile-time check to verify
3611         that the value of Max_Predef_Prims is correct.
3612         (Check_Premature_Freezing): Apply check in Ada95 mode as well.
3613         (Make_DT): Add parameter to indicate when type has been frozen by an
3614         object declaration, for diagnostic purposes.
3615         (Build_Static_Dispatch_Tables): New subprogram that takes care of the
3616         construction of statically allocated dispatch tables.
3617         (Make_DT): In case of library-level tagged types export the declaration
3618         of the primary tag. Remove generation of tags (now done by Make_Tags).
3619         Additional modifications to handle non-static generation of dispatch
3620         tables. Take care of building tables for asynchronous interface types
3621         (Make_Tags): New subprogram that generates the entities associated with
3622         the primary and secondary tags of Typ and fills the contents of Access_
3623         Disp_Table. In case of library-level tagged types imports the forward
3624         declaration of the primary tag that will be declared later by Make_DT.
3625         (Expand_Interface_Conversion): In case of access types to interfaces
3626         replace an itype declaration by an explicit type declaration to avoid
3627         problems associated with the scope of such itype in transient blocks.
3628
3629 2007-08-14  Robert Dewar  <dewar@adacore.com>
3630             Ed Schonberg  <schonberg@adacore.com>
3631             Javier Miranda  <miranda@adacore.com>
3632
3633         * exp_util.ads, exp_util.adb: 
3634         This patch replaces a number of occurrences of explicit tests for N_Null
3635         with calls to Known_Null. This improves tracking of null values, since
3636         Known_Null also catches null constants, and variables currently known to
3637         be null, so we get better tracking.
3638         (Ensure_Defined): create an itype reference only in the scope of the
3639         itype.
3640         (Side_Effect_Free): A selected component of an access type that
3641         denotes a component with a rep clause must be treated as not
3642         side-effect free, because if it is part of a linked structure its
3643         value may be affected by a renaming.
3644         (Expand_Subtype_From_Expr): For limited objects initialized with build
3645         in place function calls, do nothing; otherwise we prematurely introduce
3646         an N_Reference node in the expression initializing the object, which
3647         breaks the circuitry that detects and adds the additional arguments to
3648         the called function. Bug found working in the new patch for statically
3649         allocated dispatch tables.
3650         (Is_Library_Level_Tagged_Type): New subprogram.
3651         (Remove_Side_Effects): If the expression of an elementary type is an
3652         operator treat as a function call.
3653         (Make_Literal_Range): If the index type of the array is not integer, use
3654         attributes properly to compute the constraint on the resulting aggregate
3655         which is a string.
3656
3657         * freeze.ads, freeze.adb (Freeze_Entity): If the entity is a
3658         class-wide type whose base type is an incomplete private type, leave
3659         class-wide type unfrozen so that freeze nodes can be generated
3660         properly at a later point.
3661         (Freeze_Entity, array case): Handle case of pragma Pack and component
3662         size attributre clause for same array.
3663
3664 2007-08-14  Vincent Celier  <celier@adacore.com>
3665
3666         * prj.ads, prj.adb: Update Project Manager to new attribute names for
3667         gprbuild.
3668         Allow all valid declarations in configuration project files
3669         (Reset): Initialize all tables and hash tables in the project tree data
3670         Major update of the Project Manager and of the project aware tools,
3671         including gprmake, so that the same sources in the GNAT repository
3672         can be used by gprbuild.
3673         (Slash_Id): Change type to be Path_Name_Type
3674         (Slash): Return a Path_Name_Type instead of a File_Name_Type
3675
3676         * prj-attr.ads, prj-attr.adb: Remove attributes no longer used by
3677         gprbuild.
3678         Update Project Manager to new attribute names for ghprbuild
3679         Allow all valid declarations in configuration project files
3680         Major update of the Project Manager and of the project aware tools,
3681         including gprmake, so that the same sources in the GNAT repository
3682         can be used by gprbuild.
3683
3684         * prj-com.ads: 
3685         Major update of the Project Manager and of the project aware tools,
3686         including gprmake, so that the same sources in the GNAT repository
3687         can be used by gprbuild.
3688
3689         * prj-dect.adb (Prj.Strt.Attribute_Reference): Set correctly the case
3690         insensitive flag for attributes with optional index.
3691         (Prj.Dect.Parse_Attribute_Declaration): For case insensitive associative
3692         array attribute, put the index in lower case.
3693         Update Project Manager to new attribute names for ghprbuild
3694         Allow all valid declarations in configuration project files
3695         Major update of the Project Manager and of the project aware tools,
3696         including gprmake, so that the same sources in the GNAT repository
3697         can be used by gprbuild.
3698
3699         * prj-env.ads, prj-env.adb: 
3700         Major update of the Project Manager and of the project aware tools,
3701         including gprmake, so that the same sources in the GNAT repository
3702         can be used by gprbuild.
3703         (Get_Reference): Change type of parameter Path to Path_Name_Type
3704
3705         * prj-ext.ads, prj-ext.adb (Initialize_Project_Path): Make sure, after
3706         removing '-' from the path to start with the first character of the
3707         next directory.
3708         Major update of the Project Manager and of the project aware tools,
3709         including gprmake, so that the same sources in the GNAT repository
3710         can be used by gprbuild.
3711         Major update of the Project Manager and of the project aware tools,
3712         including gprmake, so that the same sources in the GNAT repository
3713         can be used by gprbuild.
3714
3715         * prj-nmsc.ads, prj-nmsc.adb: 
3716         Update Project Manager to new attribute names for ghprbuild
3717         Allow all valid declarations in configuration project files
3718         (Search_Directories): Detect subunits that are specified with an
3719         attribute Body in package Naming. Do not replace a source/unit in the
3720         same project when the order of the source dirs are known. Detect
3721         duplicate sources/units in the same project when the order of the
3722         source dirs are not known.
3723         (Check_Ada_Name): Allow all identifiers that are not reserved words
3724         in Ada 95.
3725         Major update of the Project Manager and of the project aware tools,
3726         including gprmake, so that the same sources in the GNAT repository
3727         can be used by gprbuild.
3728         (Look_For_Sources): If the list of sources is empty, set the object
3729         directory of non extending project to nil.
3730         Change type of path name variables to be Path_Name_Type
3731         (Locate_Directory): Make sure that on Windows '/' is converted to '\',
3732         otherwise creating missing directories will fail.
3733
3734         * prj-attr-pm.adb, prj-tree.ads, prj-proc.ads, prj-proc.adb, 
3735         prj-part.ads, prj-part.adb:
3736         Major update of the Project Manager and of the project aware tools,
3737         including gprmake, so that the same sources in the GNAT repository
3738         can be used by gprbuild.
3739
3740         * prj-strt.adb (Prj.Strt.Attribute_Reference): Set correctly the case
3741         insensitive flag for attributes with optional index.
3742         (Prj.Dect.Parse_Attribute_Declaration): For case insensitive associative
3743         array attribute, put the index in lower case.
3744         (Parse_Variable_Reference): Allow the current project name to be used in
3745         the prefix of an attribute reference.
3746
3747         * prj-util.ads, prj-util.adb
3748         (Value_Of (for arrays)): New Boolean parameter Force_Lower_Case_Index,
3749         defaulted to False. When True, always check against indexes in lower
3750         case.
3751
3752         * snames.ads, snames.h, snames.adb: 
3753         Update Project Manager to new attribute names for gprbuild
3754         Allow all valid declarations in configuration project files
3755
3756 2007-08-14  Robert Dewar  <dewar@adacore.com>
3757             Ed Schonberg  <schonberg@adacore.com>
3758
3759         * opt.ads: Warning for non-local exception propagation now off by
3760         default
3761         New switch -gnatI to disable representation clauses
3762         Implement new pragma Implicit_Packing
3763
3764         * usage.adb: 
3765         Warning for non-local exception propagation now off by default
3766         Add warning for unchecked conversion of pointers wi different
3767         conventions.
3768         New switch -gnatI to disable representation clauses
3769
3770         * usage.adb: new switch -gnatyS
3771
3772         * gnat_ugn.texi: For the gnatcheck Non_Qualified_Aggregates rule add a
3773         note that aggregates of anonymous array types are not flagged.
3774         -gnatwc now includes membership tests optimized away
3775         -gnatw.x warnings are now off by default
3776         Added conditional compilation Appendix
3777         Add documentation of -gnatI
3778         Add documentation for new -gnatyS style check
3779         Update documentation about SAL and auto-init on Windows.
3780
3781         * gnat_rm.texi: 
3782         Add documentation for pragma Check_Name and 'Enabled attribute
3783         Document that Eliminate on dispatching operation is ignored
3784         Document IDE attributes VCS_Repository_Root and VCS_Patch_Root.
3785         Document pragma Main
3786         Document pragma Implicit_Packing
3787
3788         * sem_ch13.adb: Add warning for unchecked conversion of pointers wi
3789         different conventions
3790         New switch -gnatI to disable representation clauses
3791
3792         * switch-c.adb (Scan_Front_End_Switches): When a -gnat switch is not
3793         recognized, report the invalid characters including "-gnat" instead of
3794         just the first character in the switch.
3795         New switch -gnatI to disable representation clauses
3796         Set Warn_On_Object_Renames_Function true for -gnatg
3797
3798         * vms_data.ads: Add doc for /IGNORE_REP_CLAUSES
3799         Add STATEMENTS_AFTER_THEN_ELSE as synonym for -gnatyS
3800         Add qualifier /ADD_PROJECT_SEARCH_DIR= for different tools, equivalent
3801         to switch -aP (add directory to project search dir).
3802
3803         * par-prag.adb: Implement new pragma Implicit_Packing
3804
3805         * sem_prag.adb (Analyze_Pragma, case Complex_Representation): Mark the
3806         type as having a non-standard representation, to force expansion on
3807         conversion to related types.
3808         (Analyze_Pragma): Warn on misspelled pragma
3809         (Analyze_Pragma, case Convention_Identifier): Fix checking of second arg
3810         Ensure consistent use of # in error messages
3811         Implement pragma Implicit_Packing
3812
3813 2007-08-14  Olivier Hainque  <hainque@adacore.com>
3814             Eric Botcazou  <ebotcazou@adacore.com>
3815
3816         * targtyps.c (get_target_maximum_default_alignment): New function.
3817         Maximum alignment
3818         that the compiler might choose by default for a type or object.
3819         (get_target_default_allocator_alignment): New function. Alignment known
3820         to be honored by the target default allocator.
3821         (get_target_maximum_allowed_alignment): New function. Maximum alignment
3822         we might accept for any type or object on the target.
3823         (get_target_maximum_alignment): Now synonym of maximum_default_alignment
3824
3825         * gigi.h (get_target_maximum_default_alignment): Declare new function.
3826         (get_target_default_allocator_alignment): Likewise.
3827         (get_target_maximum_allowed_alignment): Likewise.
3828
3829         PR ada/19037
3830         * decl.c (gnat_to_gnu_entity) <object>: Except for the renaming of the
3831         result of a function call, first try to use a stabilized reference for
3832         a constant renaming too.
3833         (validate_alignment): Use target_maximum_allowed_alignment instead of
3834         MAX_OFILE_ALIGNMENT as the upper bound to what we accept.
3835         (gnat_to_gnu_entity): Use common nodes directly.
3836         (gnat_to_gnu_entity) <object>: Pick the values of the type to annotate
3837         alignment and size for the object.
3838         (lvalue_required_p): Handle N_Parameter_Association like N_Function_Call
3839         and N_Procedure_Call_Statement.
3840         (takes_address): Rename to lvalue_required_p, add third parameter
3841         'aliased' and adjust recursive calls.
3842         <N_Indexed_Component>: Update 'aliased' from the array type.
3843         <N_Selected_Component>: New case.
3844         <N_Object_Renaming_Declaration>: New Likewise.
3845         (Identifier_to_gnu): Adjust for above changes.
3846         (maybe_stabilize_reference) <CONST_DECL>: New case.
3847
3848         * utils2.c (build_binary_op) <ARRAY_RANGE_REF>: Look through conversion
3849         between type variants.
3850         (build_simple_component_ref): Likewise.
3851         (build_call_alloc_dealloc): Use target_default_allocator_alignment
3852         instead of BIGGEST_ALIGNMENT as the threshold to trigger the super
3853         aligning type circuitry for allocations from the default storage pool.
3854         (build_allocator): Likewise.
3855         (build_simple_component_ref): Manually fold the reference for a
3856         constructor if the record type contains a template.
3857
3858         * utils.c (value_zerop): Delete.
3859         (gnat_init_decl_processing): Emit debug info for common types.
3860         (rest_of_record_type_compilation): If a union contains a field
3861         with a non-constant qualifier, treat it as variable-sized.
3862         (finish_record_type): Give the stub TYPE_DECL a name.
3863         (rest_of_record_type_compilation): Likewise.
3864         (convert) <CONSTRUCTOR>: New case.  Build a new constructor if
3865         types are equivalent array types.
3866         (create_field_decl): Claim fields of any ARRAY_TYPE are addressable,
3867         even if the type is not passed by reference.
3868         (static_ctors, static_dtors): Delete.
3869         (end_subprog_body): Do not record constructors and destructors.
3870         (build_global_cdtor): Delete.
3871         (gnat_write_global_declarations): Do not call build_global_cdtor.
3872
3873         * lang-spARGET_VXWORKS_RTP is defined, append -mrtp when
3874         -fRTS=rtp is specified.
3875         If CONFIG_DUAL_EXCEPTIONS is 1, append -fsjlj when -fRTS=sjlj is
3876         specified.
3877
3878         * misc.c (gnat_init_gcc_eh): Use __gnat_eh_personality_sj for the name
3879         of the personality function with SJLJ exceptions.
3880
3881         * raise-gcc.c (PERSONALITY_FUNCTION): Use __gnat_eh_personality_sj for
3882         the name of the personality function with SJLJ exceptions.
3883
3884 2007-08-14  Robert Dewar  <dewar@adacore.com>
3885             Ed Schonberg  <schonberg@adacore.com>
3886
3887         * par.ads, par.adb: Improve handling of extra right parens.
3888         (Par): Remove flag From_Limited_With_Clause.
3889
3890         * par-util.adb, par-ch3.adb: Improve error recovery for bad constraint
3891         Improve handling of extra right parens.
3892
3893 2007-08-14  Robert Dewar  <dewar@adacore.com>
3894
3895         * par-tchk.adb (TF_Semicolon): Improve error recovery
3896
3897 2007-08-14  Robert Dewar  <dewar@adacore.com>
3898             Ed Schonberg  <schonberg@adacore.com>
3899
3900         * sem_attr.ads, sem_attr.adb (Analyze_Attribute, case Value): For
3901         enumeration type, mark all literals as referenced.
3902         (Eval_Attribute, case 'Image): If the argument is an enumeration
3903         literal and names are available, constant-fold but mark nevertheless as
3904         non-static.
3905         Clean up function names.
3906         (Name_Modifies_Prefix): Rename to Name_Implies_Lvalue_Prefix. Clarify
3907         comment.
3908         (Requires_Simple_Name_Prefix): Removed.
3909
3910 2007-08-14  Robert Dewar  <dewar@adacore.com>
3911             Ed Schonberg  <schonberg@adacore.com>
3912
3913         * sem_ch11.adb: Improved warnings for unused variables
3914
3915         * sem_ch3.ads, sem_ch3.adb (Build_Derived_Record_Type): If the ancestor
3916         is a synchronized interface, the derived type is limited.
3917         (Analyze_Object_Declaration): Mark the potential coextensions in the
3918         definition and expression of an object declaration node.
3919         (Build_Derived_Type): For the completion of a private type declaration
3920         with a derived type declaration, chain the parent type's representation
3921         items to the last representation item of the derived type (not the
3922         first one) if they are not present already.
3923         (Analyze_Object_Declaration, Constant_Redeclaration): Allow incomplete
3924         object declaration of forward references to tags.
3925         (Access_Subprogram_Declaration): In Ada2005, anonymous access to
3926         subprogram types can appear as access discriminants of synchronized
3927         types.
3928         (OK_For_Limited_Init_In_05): The initialization is legal is it is a call
3929         given in prefixed form as a selected component.
3930         (Process_Discriminants): If not all discriminants have defaults, place
3931         error message on a default that is present.
3932         (Analyze_Private_Extension_Declaration): Diagnose properly an attempt to
3933         extend a synchronized tagged type.
3934         Improved warnings for unused variables
3935         (Is_Visible_Component): Fix a visibility hole on a component inherited
3936         by a private extension when parent is itself declared as a private
3937         extension, and the derivation is in a child unit.
3938         (Find_Hidden_Interface): Move spec from the package body.
3939
3940 2007-08-14  Robert Dewar  <dewar@adacore.com>
3941             Ed Schonberg  <schonberg@adacore.com>
3942
3943         * sem_ch5.adb: Improve warnings on redundant assignments
3944
3945         * sem_util.ads, sem_util.adb: (Is_Variable): Add defense against junk
3946         parameter
3947         (Is_Synchronized_Tagged_Type): New subprogram that returns true
3948         in case of synchronized tagged types (AARM 3.9.4 (6/2)).
3949         (Safe_To_Capture_Value): Can now return True for constants, even if Cond
3950         is set to False. Improves handling of Known_[Not_]Null.
3951         (Wrong_Type): Special case address arithmetic attempt
3952         (Collect_Abstract_Interfaces): Add new formal to allow collecting
3953         abstract interfaces just using the partial view of private types.
3954         (Has_Abstract_Interfaces): Add new formal to allow checking types
3955         covering interfaces using the partial view of private types.
3956         (Is_Fully_Initialized_Type): Special VM case for uTag component. This
3957         component still needs to be defined in this case, but is never
3958         initialized as VMs are using other dispatching mechanisms.
3959         (Abstract_Interface_List): For a protected type, use base type to get
3960         proper declaration.
3961         Improve warnings on redundant assignments
3962         (Is_Variable): Handle properly an implicit dereference of a prefixed
3963         function call.
3964         (Build_Actual_Subtype): If this is an actual subtype for an
3965         unconstrained formal parameter, use the sloc of the body for the new
3966         declaration, to prevent anomalises in the debugger.
3967
3968 2007-08-14  Robert Dewar  <dewar@adacore.com>
3969
3970         * sem_elim.adb (Set_Eliminated): Ignore pragma Eliminate for
3971         dispatching operation
3972
3973 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
3974             Gary Dismukes  <dismukes@adacore.com>
3975
3976         * exp_aggr.ads, 
3977         exp_aggr.adb (Convert_Aggr_In_Allocator): Use Insert_Actions to place
3978         expanded aggregate code before allocator, and ahead of declaration for
3979         temporary, to prevent access before elaboration when the allocator is
3980         an actual for an access parameter.
3981         (Is_Static_Dispatch_Table_Aggregate): Handle aggregates initializing
3982         the TSD and the table of interfaces.
3983         (Convert_To_Assignments): Augment the test for delaying aggregate
3984         expansion for limited return statements to include the case of extended
3985         returns, to prevent creation of an unwanted transient scope.
3986         (Is_Static_Dispatch_Table_Aggregate): New subprogram.
3987         (Expand_Array_Aggregate): Handle aggregates associated with
3988         statically allocated dispatch tables.
3989         (Expand_Record_Aggregate): Handle aggregates associated with
3990         statically allocated dispatch tables.
3991         (Gen_Ctrl_Actions_For_Aggr): Generate a finalization list for allocators
3992         of anonymous access type.
3993
3994 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
3995
3996         * exp_ch5.adb (Expand_Assign_Array): If source or target of assignment
3997         is a variable that renames a slice, use the variable itself in the
3998         expannsion when the renamed expression itself may be modified between
3999         the declaration of the renaming and the array assignment.
4000
4001 2007-08-14  Jerome Guitton  <guitton@adacore.com>
4002
4003         * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb, 
4004         s-taprop-hpux-dce.adb, s-taprop-dummy.adb, s-taprop-solaris.adb, 
4005         s-taprop-vms.adb, s-taprop-posix.adb (Continue_Task, Stop_All_Tasks):
4006         New functions; dummy implementations.
4007
4008         * s-osinte-vxworks.ads (Task_Stop, Task_Cont, Int_Lock, Int_Unlock): New
4009         functions, used to implement the multi-tasks mode routines on VxWorks.
4010
4011         * s-osinte-vxworks.adb, s-osinte-vxworks6.adb (Task_Cont, Task_Stop):
4012         New functions, thin
4013         binding to the VxWorks routines which have changed between VxWorks 5
4014         and 6.
4015         (Int_Lock, Int_Unlock): New function, thin binding to kernel routines
4016         which are not callable from a RTP.
4017
4018         * s-taprop-vxworks.adb (Stop_All_Tasks, Continue_Task): New functions,
4019         implemented for the multi-tasks mode on VxWorks 5 and 6.
4020
4021         * s-taprop.ads (Stop_All_Tasks, Continue_Task): New functions.
4022
4023         * s-tasdeb.ads, s-tasdeb.adb (Continue_All_Tasks, Stop_All_Tasks): New
4024         functions.
4025
4026 2007-08-14  Vincent Celier  <celier@adacore.com>
4027
4028         * clean.adb, fmap.adb, sinput-p.adb, sinput-p.ads, gnatcmd.adb, 
4029         gnatname.adb, makeutl.ads, makeutl.adb, makegpr.adb, mlib-tgt-vms.adb
4030         mlib-tgt-darwin.adb, mlib-tgt-lynxos.adb, mlib-prj.adb, mlib-tgt.adb, 
4031         mlib-tgt.ads, mlib-tgt-irix.adb mlib-tgt-hpux.adb, mlib-tgt-linux.adb, 
4032         mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, 
4033         mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb, mlib-tgt-aix.adb,
4034         mlib-tgt-tru64.adb, mlib.ads, mlib.adb (Create_Sym_Links): New
4035         procedure.
4036         (Major_Id_Name): New function.
4037         mlib-tgt.ads/mlib.tgt.adb:
4038         (Library_Major_Minor_Id_Supported): New function, default returns True
4039         Most mlib-tgt-*.adb that support shared libraries and symbolic links:
4040         (Build_Dynamic_Library): Add support for major/minor ids for shared libs
4041         Other mlib-tgt-*.adb (aix, mingw, vms, vxworks, xi):
4042         Implementation of Library_Major_Minor_Id_Supported returns False
4043         clean.adb:
4044         (Clean_Library_Directory): If major/minor ids are supported, clean all
4045         library files.
4046         Major update of the Project Manager and of the project aware tools,
4047         including gprmake, so that the same sources in the GNAT repository
4048         can be used by gprbuild.
4049
4050 2007-08-14  Olivier Hainque  <hainque@adacore.com>
4051
4052         * system-solaris-x86.ads (ZCX_By_Default): Switch to True.
4053         (GCC_ZCX_Support): Switch to True.
4054         
4055         * s-intman-solaris.adb (Notify_Exception): Call
4056         Adjust_Context_For_Raise before raising, as expected for signal
4057         handlers in general.
4058         
4059         * s-intman-posix.adb (Notify_Exception): Remove declaration of
4060         Adjust_Context_For_Raise, moved to the spec of this unit to be visible
4061         to other implementation bodies.
4062         
4063         * s-intman.ads (Adjust_Context_For_Raise): Declare and import here, to
4064         be visible by multiple implementation bodies.
4065         
4066         * init.c [VMS section] (__gnat_handle_vms_condition): Adjust context
4067         only for conditions coming from hardware.
4068         [alpha-tru64 section] (__gnat_adjust_context_for_raise): Implement,
4069         adjustments to signal context prior to exception raise from signal
4070         handler.
4071         (__gnat_map_signal for VxWorks): Map SIGSEGV to Storage_Error in RTP
4072         mode.
4073         Solaris section: (__gnat_adjust_context_for_raise): New function.
4074         Implementation of the machine context adjustments to perform prior to
4075         raise from a signal handler. Version for both sparc and x86.
4076         (HAVE_GNAT_ADJUST_CONTEXT_FOR_RAISE): Define.
4077         (__gnat_error_handler): Expect a third argument, ucontext_t *. Adjust it
4078         prior to raising as expected for any handler, before possible nested
4079         faults to make sure all the contexts in a chain have been adjusted by
4080         the time we propagate.
4081
4082 2007-08-14  Pascal Obry  <obry@adacore.com>
4083
4084         * s-osinte-mingw.ads: Add support for Ada.Execution_Time on Windows.
4085         (SYSTEM_INFO): New record.
4086         (SetThreadIdealProcessor): New imported routine needed for supporting
4087         task_info pragma on Windows.
4088
4089         * s-taprop-mingw.adb (Enter_Task): Check if CPU number given in task
4090         info can be applied to the current host.
4091         (Create_Task): Set the ideal processor if information is present.
4092
4093         * s-tasinf-mingw.adb, s-tasinf-mingw.ads,
4094         a-exetim-mingw.adb, a-exetim-mingw.ads: New files.
4095
4096 2007-08-14  Olivier Hainque  <hainque@adacore.com>
4097
4098         * s-taprop-linux.adb (Get_Stack_Attributes): New subprogram. Fetch the
4099         stack size and initial stack pointer value for a given task.
4100         (Enter_Task): Get the stack attributes of the task we are entering and
4101         let the stack checking engine know about them.
4102
4103         * s-stchop.adb, s-stchop.ads (Notify_Stack_Attributes): New subprogram.
4104         Let the stack-checking engine know about the initial sp value and stack
4105         size associated with the current task.
4106         (Set_Stack_Info): If a stack base has been notified for the current
4107         task, honor it. Fallback to the previous less accurate method otherwise.
4108
4109         * s-stchop-vxworks.adb (Notify_Stack_Attributes): Dummy body.
4110
4111 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
4112
4113         * sem_ch10.adb: Create a limited view of an incomplete type, to make
4114         treatment of limited views uniform for all visible declarations in a
4115         limited_withed package.
4116         Set flag indicating that a subprogram body for a child unit has a
4117         generated spec.
4118         (Analyze_Compilation_Unit): If unit is a subprogram body that has no
4119         separate declaration, remove the unit name from visibility after
4120         compilation, so that environment is clean for subsequent compilations.
4121         (Install_Limited_Context_Clauses): Do not install a
4122         limited_private_with_clause unless the current unit is a body or a
4123         private child unit.
4124         (Analyze_Subunit, Install_Parents): Treat generic and non-generic units
4125         in the same fashion.
4126         (Install_Limited_Withed_Unit): Do not install a limited with clause if
4127         it applies to the declaration of the current package body.
4128         (Remove_Private_With_Clauses): If there is a regular with_clause for
4129         the unit, delete Private_With_Clause from context, to prevent improper
4130         hiding when processing subsequent nested packages and instantiations.
4131
4132 2007-08-14  Jose Ruiz  <ruiz@adacore.com>
4133
4134         * adaint.c (__gnat_is_absolute_path): For VxWorks systems we accept
4135         dir/file, device:/dir/file, and device:drive_letter:/dir/file as
4136         representing absolute path names.
4137         __gnat_set_file_time_name [VMS]: Fix some 64/32 bit issues.
4138
4139         * cstreams.c (__gnat_full_name for VxWorks): Use
4140         __gnat_is_absolute_path to detect whether we need to add the current
4141         directory to normalize the path.
4142
4143 2007-08-14  Javier Miranda  <miranda@adacore.com>
4144
4145         * a-tags.ads, 
4146         a-tags.adb (Displace): Associate a message with the raised CE
4147         exception.
4148         (To_Addr_Ptr, To_Address, To_Dispatch_Table_Ptr,
4149         To_Object_Specific_Data_Ptr To_Predef_Prims_Ptr,
4150         To_Tag_Ptr, To_Type_Specific_Data_Ptr): Moved here from the package
4151         spec.
4152         (Default_Prim_Op_Count): Removed.
4153         (IW_Membership, Get_Entry_Index, Get_Offset_Index, Get_Prim_Op_Kind,
4154         Register_Tag, Set_Entry_Index, Set_Offset_To_Top, Set_Prim_Op_Kind):
4155         Remove pragma Inline_Always.
4156
4157         * rtsfind.ads (Default_Prim_Op_Count): Removed
4158         (Max_Predef_Prims): New entity
4159         (RE_Expanded_Name): Removed
4160         (RE_HT_Link): Removed
4161         (RE_Iface_Tag): Remmoved
4162         (RE_Ifaces_Table): Removed
4163         (RE_Interfaces_Array): Removed
4164         (RE_Interface_Data_Element): Removed
4165         (RE_Nb_Ifaces): Removed
4166         (RE_RC_Offset): Removed
4167         (RE_Static_Offset_To_Top): Removed
4168
4169         * exp_atag.ads, exp_atag.adb (Build_Inherit_Prims): Addition of a new
4170         formal.
4171         (Build_Inherit_Predefined_Prims): Replace occurrences of Default_
4172         Prim_Op_Count by Max_Predef_Prims.
4173
4174 2007-08-14  Thomas Quinot  <quinot@adacore.com>
4175             Vincent Celier  <celier@adacore.com>
4176
4177         * binde.adb (Elab_All_Links): Remove unnecessary call to
4178         Generic_Separately_Compiled (if a unit satisfies this predicate, there
4179         won't be an associated Afile).
4180         (Elab_All_Links): Fail if a referenced unit cannot be found
4181
4182         * bindgen.adb: 
4183         Fix comments in bindgen regarding consistency checks done in Bcheck:
4184         the checks are made across units within a partition, not across several
4185         partitions.
4186         Fix generation of C binder file for VxWorks.
4187
4188         * lib.ads, lib.adb (Generic_Separately_Compiled): Rename to
4189         Generic_May_Lack_ALI, more descriptive of the current use of the
4190         predicate, and update documentation.
4191
4192         * lib-writ.ads, lib-writ.adb (Write_With_Lines): Minor code
4193         reorganization and documentation update for the case of predefined
4194         library generics (for which we do not reference an Afile).
4195
4196 2007-08-14  Robert Dewar  <dewar@adacore.com>
4197
4198         * s-intman-irix.adb, s-osinte-irix.adb, s-osinte-irix.ads,
4199         s-proinf-irix-athread.ads, s-osinte-hpux-dce.adb, s-osinte-hpux-dce.ads,
4200         s-parame-hpux.ads, s-intman-dummy.adb, s-tasinf-solaris.adb,
4201         s-tasinf-solaris.ads, s-asthan-vms-alpha.adb, s-inmaop-vms.adb,
4202         s-intman-vms.adb, s-intman-vms.ads, s-osprim-mingw.adb,
4203         s-parame-vms-restrict.ads, s-parame-ae653.ads, s-intman-vxworks.ads,
4204         s-intman-vxworks.ads, s-intman-vxworks.adb, s-parame-vxworks.ads,
4205         s-tfsetr-vxworks.adb, s-interr.adb, s-interr.ads, a-tasatt.adb,
4206         exp_ch13.adb, s-htable.ads, s-imgboo.ads, s-imglli.ads, s-imgllu.ads,
4207         s-imguns.ads, g-eacodu.adb, par-ch12.adb, s-stache.ads, s-stausa.adb,
4208         s-poosiz.adb, s-parame.ads, s-mastop.ads, s-osinte-darwin.ads,
4209         a-chtgke.adb, s-asthan-vms-alpha.adb, s-parame-vms-alpha.ads,
4210         s-parame-vms-ia64.ads, s-parame-vxworks.adb, s-except.ads,
4211         g-altcon.adb: Minor reformatting
4212
4213         ada-tree.h: Delete empty line.
4214
4215         ali.ads: Minor reformatting
4216         Clarification of comments.
4217         Minor spelling correction
4218
4219         * exp_dbug.adb: Add Warnings Off to suppress new warning
4220
4221         * a-witeio.adb (Write): Add Warnings (Off) for unneeded IN OUT mode
4222         formal
4223
4224         * a-strunb.adb (Set_Unbounded_String): Avoid memory leak by freeing old
4225         value
4226
4227         * a-textio.adb (Write): Remove an unnecessary IN OUT mode from
4228
4229         * a-textio.ads: Reorder the standard input/output/error declarations
4230         for consistency.
4231
4232         * g-dirope.adb, g-dirope.ads: Change Dir to mode IN for Open call
4233
4234         * par-ch2.adb: Recognize RM specially in errout
4235         Change 'R'M to RM in all error messages
4236
4237         * scng.adb: Recognize RM specially in errout
4238
4239         * sem.ads, sem.adb, exp_strm.adb, exp_ch5.ads, expander.adb: Rename
4240         N_Return node to be N_Simple_Return, to reflect Ada 2005 terminology.
4241
4242         * s-direio.adb: Add missing routine header box.
4243
4244         * sem_attr.ads: Add ??? comments
4245
4246         * sem_eval.adb: Recognize RM specially in errout
4247         Change 'R'M to RM in all error messages
4248
4249         * sem_maps.adb, sem_maps.ads: Remove some unnecessary IN OUT modes
4250
4251         * s-tasinf.ads: Fix minor comment typo.
4252
4253         * a-cihama.adb: Minor comment addition
4254
4255         * a-ztexio.adb (Write): Add Warnings (Off) for unneeded IN OUT mode
4256         formal
4257
4258         * s-tasinf-tru64.ads: Fix minor comment typo.
4259
4260         * itypes.ads: Comment update.
4261
4262         * ali-util.adb: Remove Generic_Separately_Compiled guard, not needed
4263         anymore.
4264
4265         * argv.c: Added protection against null gnat_argv and gnat_envp.
4266
4267         * bcheck.adb (Check_Consistency): Use correct markup character ({) in
4268         warning message when Tolerate_Consistency_Errors is True.
4269
4270         * cstand.adb (Create_Standard): Do not call Init_Size_Alignment for
4271         Any_Id, as this subprogram is only applicable to *type* entities (it
4272         sets RM_Size). Instead initialize just Esize and Alignment.
4273
4274 2007-08-14  Bob Duff  <duff@adacore.com>
4275
4276         * a-cihama.ads, a-cidlli.ads, a-chtgop.ads, a-chtgop.adb, a-cdlili.ads, 
4277         a-cihase.adb, a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads, 
4278         a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-ciorse.ads, a-cohama.ads, 
4279         a-cohata.ads, a-convec.adb, a-coinve.ads, a-coinve.adb, a-convec.ads,
4280         a-coorse.ads (Next): Applied pragma Inline.
4281         Make all Containers packages Remote_Types (unless they are already
4282         Pure).
4283         (Previous): applied pragma Inline
4284         (Elements_Type): is now a record instead of an array
4285
4286 2007-08-14  Thomas Quinot  <quinot@adacore.com>
4287
4288         * table.adb, g-table.adb, g-dyntab.adb (Append): Reimplement in terms
4289         of Set_Item.
4290         (Set_Item): When the new item is an element of the currently allocated
4291         table passed by reference, save a copy on the stack if we're going
4292         to reallocate. Also, in Table.Set_Item, make sure we test the proper
4293         variable to determine whether to call Set_Last.
4294
4295         * sinput-d.adb, sinput-l.adb, stringt.adb, switch-m.adb,
4296         symbols-vms.adb, symbols-processing-vms-alpha.adb,
4297         symbols-processing-vms-ia64.adb, sem_elab.adb, repinfo.adb: Replace
4298         some occurrences of the pattern
4299            T.Increment_Last;
4300            T.Table (T.Last) := Value;
4301         with a cleaner call to
4302            T.Append (Value);
4303
4304 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
4305             Gary Dismukes  <dismukes@adacore.com>
4306             Thomas Quinot  <quinot@adacore.com>
4307
4308         * sem_ch12.ads, sem_ch12.adb (Instantiate_Type): If the formal is a
4309         derived type with interface progenitors use the analyzed formal as the
4310         parent of the actual, to create renamings for all the inherited
4311         operations in Derive_Subprograms.
4312         (Collect_Previous_Instances): new procedure within of
4313         Load_Parent_Of_Generic, to instantiate all bodies in the compilation
4314         unit being loaded, to ensure that the generation of global symbols is
4315         consistent in different compilation modes.
4316         (Is_Tagged_Ancestor): New function testing the ancestor relation that
4317         takes progenitor types into account.
4318         (Validate_Derived_Type_Instance): Enforce the rule of 3.9.3(9) by
4319         traversing over the primitives of the formal and actual types to locate
4320         any abstract subprograms of the actual type that correspond to a
4321         nonabstract subprogram of the formal type's ancestor type(s), and issue
4322         an error if such is found.
4323         (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation,
4324         Instantiate_Package_Body, Instantiate_Subprogram_Body):
4325         Remove bogus guard around calls to Inherit_Context.
4326         (Reset_Entity): If the entity is the selector of a selected component
4327         that denotes a named number, propagate constant-folding to the generic
4328         template only if the named number is global to the generic unit.
4329         (Set_Instance_Env): Only reset the compilation switches when compiling
4330         a predefined or internal unit.
4331
4332 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
4333
4334         * sem_ch4.adb (Try_Class_Wide_Operation): use base type of first
4335         parameter to determine whether operation applies to the prefix.
4336         (Complete_Object_Operation): If actual has an access type and
4337         controlling formal is not an in_parameter, reject the actual if it is
4338         an access_to_constant type.
4339         (Try_Primitive_Operation): If the type of the prefix is a formal tagged
4340         type, the candidate operations are found in the scope of declaration of
4341         the type, because the type has no primitive subprograms.
4342         (Analyze_Selected_Component): If prefix is class-wide, and root type is
4343         a private extension, only examine visible components before trying to
4344         analyze as a prefixed call.
4345         Change Entity_List to Type_To_Use, for better readability.
4346         (Has_Fixed_Op): Use base type when checking whether the type of an
4347         operator has a user-defined multiplication/division
4348         (Check_Arithmetic_Pair): Use Ada 2005 rules to remove ambiguities when
4349         user-defined operators are available for fixed-point types.
4350
4351 2007-08-14  Thomas Quinot  <quinot@adacore.com>
4352             Ed Schonberg  <schonberg@adacore.com>
4353
4354         * sem_cat.ads, sem_cat.adb (Has_Stream_Attribute_Definition): New
4355         formal At_Any_Place indicating, when True, that we want to test for
4356         availability of the stream attribute at any place (as opposed to the
4357         current visibility context only).
4358         (Missing_Read_Write_Attributes): A stream attribute is missing for the
4359         purpose of enforcing E.2.2(8) only if it is not available at any place.
4360         Take into account the Ada2005 pragma Has_Preelaborable_Initialization
4361         when checking the legality of an extension aggregate in a preelaborable
4362         package. Treat the literal null as a valid default expression in a
4363         component declaration for a type with preelaborable initialization.
4364         A limited interface is a legal progenitor for the designated type of a
4365         remote access to class-wide type.
4366
4367 2007-08-14  Thomas Quinot  <quinot@adacore.com>
4368             Ed Schonberg  <schonberg@adacore.com>
4369
4370         * sem_ch8.ads, sem_ch8.adb (Find_Type, case of a 'Base attribute
4371         reference): Use correct entity as denoted entity for the selector of
4372         the rewritten node.
4373         (Find_Direct_Name): Add comment about Generate_Reference incorrectly
4374         setting the Referenced_As_LHS flag for entities that are implicitly
4375         dereferenced.
4376         (Find_Type): If the type is an internally generated incomplete type,
4377         mark the full view as referenced, to prevent spurious warnings.
4378         (Find_Selected_Component, Has_Components): Handle properly non-limited
4379         views that are themselves incomplete types.
4380         Handle interfaces visible through limited-with clauses.
4381         (Analyze_Subprogram_Renaming): Disambiguate and set the entity of a
4382         subprogram generic actual for which we have generated a renaming.
4383         Warn when the renaming introduces a homonym of
4384         the renamed entity, and the renamed entity is directly visible.
4385
4386 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
4387             Hristian Kirtchev  <kirtchev@adacore.com>
4388
4389         * sem_res.adb (Resolve_Allocator): Propagate any coextensions that
4390         appear in the subtree to the current allocator if it is not a static
4391         coextension.
4392         (Resolve_Allocator): Perform cleanup if resolution has determined that
4393         the allocator is not a coextension.
4394         (Resolve): Skip an interpretation hidden by an abstract operator only
4395         when the type of the interpretation matches that of the context.
4396         (Resolve): When looping through all possible interpretations of a node,
4397         do not consider those that are hidden by abstract operators.
4398         (Resolve_Actuals): When verifying that an access to class-wide object
4399         is an actual  for a controlling formal, ignore anonymous access to
4400         subprograms whose return type is an access to class_wide type.
4401         (Resolve_Slice): If the prefix of the slice is a selected component
4402         whose type depends on discriminants, build its actual subtype before
4403         applying range checks on the bounds of the slice.
4404         (Valid_Conversion): In an instance or inlined body, compare root types,
4405         to prevent anomalies between private and public views.
4406         (Resolve): Improve error message for ambiguous fixed multiplication
4407         expressions that involve universal_fixed multiplying operations.
4408
4409 2007-08-14  Javier Miranda  <miranda@adacore.com>
4410             Hristian Kirtchev  <kirtchev@adacore.com>
4411
4412         * exp_ch9.adb (Build_Protected_Entry): Propagate the original source
4413         location to allow the correct generation of errors in case of
4414         restrictions applied to the expanded code.
4415         (Expand_Entry_Barrier): Remove all generated renamings for a barrier
4416         function if the condition does not reference them.
4417         (Expand_Entry_Body_Declarations): Mark the index constant as having a
4418         valid value.
4419
4420 2007-08-14  Thomas Quinot  <quinot@adacore.com>
4421
4422         * exp_dist.adb (PolyORB_Support.Build_TypeCode_Function): When creating
4423         typecode parameters for a union (in a variant record), remove
4424         extraneous layer of Any wrapping for member label.
4425         (Expand_Receiving_Stubs_Bodies): For an RCI package body that has
4426         elabration statements, register the package with the name server
4427         at the beginning, not at the end, of the elaboration statements so
4428         that they can create remote access to subprogram values that designate
4429         remote subprograms from the package.
4430
4431 2007-08-14  Hristian Kirtchev  <kirtchev@adacore.com>
4432
4433         * g-catiio.adb (Image): For the case of %s, use Ada.Calendar.Time
4434         values to compute the number of seconds since the Unix Epoc in order to
4435         account for Daylight Savings Time. Perform special processing for dates
4436         that are earlier than the Unix Epoc to obtain a negative number.
4437
4438 2007-08-14  Emmanuel Briot  <briot@adacore.com>
4439
4440         * g-comlin.adb (Getopt): Fix handling of "*" switch when not collapsing
4441         switches.
4442
4443 2007-08-14  Eric Botcazou  <ebotcazou@adacore.com>
4444
4445         * gnatlink.adb (Gnatlink): Pass switches to the linker even if the
4446         binder-generated file is not in Ada.
4447         Pass -mrtp to the linker if it is GCC and --RTS=rtp has been
4448         recorded in the ALI file.
4449         Pass -fsjlj to the linker if it is GCC and --RTS=sjlj has been recorded.
4450
4451 2007-08-14  Vincent Celier  <celier@adacore.com>
4452
4453         * gnatls.adb: (Corresponding_Sdep_Entry): Always return a value
4454         (Output_Source): Do nothing if parameter is No_Sdep_Id
4455
4456         * make.adb (Gnatmake): Do not rebuild an archive simply because a
4457         shared library it imports has a later time stamp.
4458         (Check): Resolve the symbolic links in the path name of the object
4459         directory.
4460         Check that the ALI file is in the correct object directory
4461         Check if a file name does not correspond to the mapping of units
4462         to file names.
4463         (Display_Version): New procedure
4464         (Initialize): Process switches --version and --help
4465         Use type Path_Name_Type for path name
4466
4467 2007-08-14  Paul Hilfinger  <hilfinger@adacore.com>
4468
4469         * impunit.adb: Re-organize System.Random_Numbers and
4470         GNAT.Random_Numbers and add to builds.
4471
4472         * Makefile.rtl: Add s-rannum.ad* and g-rannum.ad*, a-assert*
4473
4474         * s-rannum.ads, s-rannum.adb, g-rannum.ads, g-rannum.adb: New files.
4475
4476         * a-assert.ads, a-assert.adb: New files.
4477
4478 2007-08-14  Gary Dismukes  <dismukes@adacore.com>
4479
4480         * layout.adb (Layout_Type): In the case of access-to-subprogram types,
4481         if AAMP_On_Target is True, then the size of the type encompasses two
4482         addresses (a static link and a subprogram address), except in the case
4483         of library-level access types.
4484
4485 2007-08-14  Vincent Celier  <celier@adacore.com>
4486
4487         * output.ads, output.adb (Write_Eol): Remove trailing spaces before
4488         writing the line.
4489         (Write_Eol_Keep_Blanks): New procedure to write a line, including
4490         possible trailing spaces.
4491         (Output_Source_Line): Call Write_Eol_Keep_Blanks to output a source line
4492
4493 2007-08-14  Javier Miranda  <miranda@adacore.com>
4494
4495         * par-ch6.adb (P_Formal_Part): Fix wrong error message associated with
4496         null-excluding access types.
4497
4498 2007-08-14  Javier Miranda  <miranda@adacore.com>
4499
4500         * sem_ch9.adb (Check_Interfaces): New subprogram that factorizes code
4501         that is common to Analyze_Protected_Type and Analyze_Task_Type. In case
4502         of private types add missing check on matching interfaces in the
4503         partial and full declarations.
4504         (Analyze_Protected_Type): Code cleanup.
4505         (Analyze_Task_Type): Code cleanup.
4506
4507 2007-08-14  Javier Miranda  <miranda@adacore.com>
4508
4509         * sem_disp.adb (Check_Dispatching_Operation): Do not emit warning on a
4510         generated interface thunk.
4511
4512 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
4513
4514         * s-ficobl.ads: Declare AFCB as a tagged incomplete type, to prevent
4515         obsolescent warning on application of 'Class to an incomplete type.
4516
4517         * s-finroo.ads: Declare Root_Controlled as a tagged incomplete type, to
4518         prevent obsolescent warning on application of 'Class to an incomplete
4519         type.
4520
4521 2007-08-14  Pascal Obry  <obry@adacore.com>
4522
4523         * s-fileio.adb (Is_Open): Add check for usability of the underlying
4524         file stream.
4525
4526 2007-08-14  Cyrille Comar  <comar@adacore.com>
4527
4528         * s-finimp.adb (Detach_From_Final_List): make this procedure idempotent
4529         since it is potentially used in cases implying double finalization of
4530         the same object.
4531
4532 2007-08-14  Jose Ruiz  <ruiz@adacore.com>
4533
4534         * s-tasini.adb (Get_Stack_Info): Move this function to
4535         System.Soft_Links.Tasking because it is common to the full and the
4536         restricted run times.
4537         (Init_RTS): Do not set the Get_Stack_Info soft link because it is done
4538         in SSL.Tasking.Init_Tasking_Soft_Links.
4539
4540         * s-solita.adb (Get_Stack_Info): Function moved from
4541         System.Tasking.Initialization because it is common to the full and the
4542         restricted run times.
4543         (Init_Tasking_Soft_Links): Set the tasking soft link for Get_Stack_Info.
4544
4545 2007-08-14  Arnaud Charlet  <charlet@adacore.com>
4546
4547         * s-tpobop.ads, s-tpobop.adb, s-tasren.ads, s-tasren.adb,
4548         s-taskin.ads (Requeue_With_Abort): Rename field With_Abort.
4549         (PO_Do_Or_Queue, Task_Do_Or_Queue, Requeue_Call): Remove With_Abort
4550         parameter.
4551
4552         * s-tassta.adb (Task_Wrapper): Increased value of the small overflow
4553         guard to 12K.
4554
4555 2007-08-14  Gary Dismukes  <dismukes@adacore.com>
4556
4557         * s-veboop.adb (SU): New named number initialized to
4558         System.Storage_Unit.
4559         (True_Val): The initialization expression is revised to use SU (=
4560         Storage_Unit) rather than assuming 8 for the component size of an
4561         unpacked Boolean array.
4562
4563 2007-08-14  Tristan Gingold  <gingold@adacore.com>
4564
4565         * tracebak.c: Use tb-ivms.c on OpenVMS Itanium.
4566
4567         * tb-ivms.c: New file.
4568
4569         * g-trasym-vms-ia64.adb: Fixed for OpenVMS version 8.2
4570
4571 2007-08-14  Geert Bosch  <bosch@adacore.com>
4572
4573         * i-forbla.ads, i-forbla.adb, a-ngcoar.adb, a-ngcoar.ads, i-forlap.ads,
4574         s-gearop.adb, s-gecobl.adb, s-gecobl.ads, s-gerela.adb, s-gerela.ads:
4575         Add required linker pragmas for automatically linking with the gnalasup
4576         linear algebra support library, and the systems math library.
4577         Rename cdot to cdotu and zdot to zdotu.
4578         Update header comment to describe purpose of package.
4579
4580 2007-08-14  Thomas Quinot  <quinot@adacore.com>
4581
4582         * exp_ch7.adb (Find_Final_List): For an anonymous access type that has
4583         an explicitly specified Associated_Final_Chain, use that list.
4584         (Expand_N_Package_Body): Build dispatch tables of library level tagged
4585         types.
4586         (Expand_N_Package_Declaration): Build dispatch tables of library level
4587         tagged types. Minor code cleanup.
4588
4589 2007-08-14  Vincent Celier  <celier@adacore.com>
4590
4591         * gnatchop.adb (Terminate_Program): Remove exception and use
4592         Types.Terminate_Program instead.
4593
4594         * osint.ads, osint.adb (Current_Exit_Status): New global variable
4595         (Find_Program_Name): Added protection against empty name.
4596         (OS_Exit_Through_Exception): New procedure
4597
4598         * s-os_lib.ads, s-os_lib.adb (OS_Exit): New procedure body
4599         (OS_Exit_Default): New procedure that contains the previous
4600         implementation of procedure OS_Exit.
4601         (Final_Value): Remove obsolete Interix stuff.
4602
4603 2007-08-14  Thomas Quinot  <quinot@adacore.com>
4604
4605         * g-socket.ads: Reorganize example code so that it also works on
4606         Windows XP.
4607
4608 2007-08-14  Tristan Gingold  <gingold@adacore.com>
4609
4610         * g-trasym.ads: AIX now supports symbolic backtraces.
4611
4612 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
4613
4614         * lib-load.adb (From_Limited_With_Chain): Always scan the stack of
4615         units being loaded to detect circularities. A circularity may be
4616         present even if the current chain of pending units to load starts from
4617         a limited_with_clause.
4618
4619         * lib-load.ads: Change profile of Load_Unit to use a with_clause
4620         rather than a boolean flag, in order to detect circularities in
4621         with_clauses.
4622
4623         * par-load.adb: Use current with_clause in calls to Load_Unit, rather
4624         than propagating the From_Limited_With flag, in order to handle
4625         properly circularities involving with_clauses.
4626
4627 2007-08-14  Nicolas Setton  <setton@adacore.com>
4628
4629         * link.c (FreeBSD): Add "const" keyword where needed, to eliminate
4630         warnings.
4631
4632 2007-08-14  Arnaud Charlet  <charlet@adacore.com>
4633
4634         * Makefile.in: GNATRTL_LINEARALGEBRA_OBJS: New variable holding objects
4635         to build for libgnala.
4636         libgnat: Add rules to build libgnala.a
4637         (LIBGNAT_TARGET_PAIRS for VxWorks): Remove s-osinte-vxworks.adb from
4638         target pairs of the VxWorks 6 kernel runtime, use it only for VxWorks 5.
4639         Add s-osinte-vxworks-kernel.adb to the target pairs of the
4640         kernel run-time lib for VxWorks 6, which would provide a different
4641         implementation for Task_Cont and Task_Stop than the VxWorks 5 version.
4642         x86-solaris section (EH_MECHANISM): Set to -gcc, as this port is now
4643         running ZCX by default.
4644         Add g-sttsne-locking to LynxOS version.
4645         Remove g-sttsne-vxworks.ads; use g-sttsne-locking.ads instead.
4646         On x86/darwin, use a-numaux-x86.ad? and system-darwin-x86.ads.
4647
4648         * system-darwin-x86.ads: New file.
4649
4650         * Make-lang.in: Delete files before copying onto them, so if they are
4651         read-only, the copy won't fail.
4652         Update dependencies
4653
4654 2007-08-14  Pascal Obry  <obry@adacore.com>
4655
4656         * mdll-fil.adb, * mdll.adb: Implement a more consistent libraries
4657         naming scheme.
4658
4659 2007-08-14  Vincent Celier  <celier@adacore.com>
4660
4661         * mlib-utl.adb (Gcc_Name): Change from constant String to String_Access
4662         (Gcc): Initialize Gcc_Name at the first call
4663
4664 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
4665
4666         * sem_ch7.adb (Analyze_Package_Specification): Do not install private
4667         with_clauses of the enclosing unit when analyzing the package
4668         specification of a nested instance.
4669
4670 2007-08-14  Hristian Kirtchev  <kirtchev@adacore.com>
4671
4672         * sinfo.ads, sinfo.adb (Is_Coextension, Set_Is_Coextension): Removed.
4673         (Is_Dynamic_Coextension, Set_Is_Dynamic_Coextension): New routines.
4674         Remove flag Is_Coextension. Add flag Is_Dynamic_Coextension. Update the
4675         layout of N_Allocator.
4676
4677 2007-08-14  Thomas Quinot  <quinot@adacore.com>
4678
4679         * rtsfind.adb (Check_RPC): Add PCS version check.
4680
4681         * gnatvsn.ads, gnatvsn.adb: Add PCS version.
4682         (Gnat_Free_Software): New function.
4683
4684         * sem_dist.ads, sem_dist.adb (Get_PCS_Version): New subprogram. Returns
4685         the PCS_Version value from s-parint, used to check that it is consistent
4686         with what exp_dist expects.
4687
4688         * s-parint.ads (PCS_Version): New entity for checking consistency
4689         between exp_dist and PCS.
4690
4691         * gen-soccon.c: (SO_REUSEPORT): New constant.
4692
4693 2007-08-14  Hristian Kirtchev  <kirtchev@adacore.com>
4694
4695         * a-calfor.adb (Image (Duration; Boolean)): Change type of local
4696         variable Sub_Second to Duration in order to accomodate a larger range
4697         of arithmetic operations.
4698
4699 2007-08-14  Bob Duff  <duff@adacore.com>
4700
4701         * g-sttsne-locking.ads: Move comments from spec to body.
4702         * g-sttsne-locking.adb: Move comments from spec to body.
4703         * g-sttsne-vxworks.ads: Removed.
4704         * g-sttsne-vxworks.adb: Removed.
4705
4706 2007-08-11  Ian Lance Taylor  <iant@google.com>
4707
4708         * misc.c (gnat_get_alias_set): Change return type to
4709         alias_set_type.
4710
4711 2007-08-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4712
4713         * decl.c, utils2.c: Fix whitespace in last change.
4714
4715 2007-08-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4716
4717         * decl.c (compare_field_bitpos): Constify.
4718         * utils2.c (compare_elmt_bitpos): Likewise.
4719
4720 2007-07-27  Aurelien Jarno  <aurelien@aurel32.net>
4721
4722         * s-osinte-kfreebsd-gnu.ads ((sigset_t_ptr): Removed, replaced by 
4723         anonymous access type.
4724         (pthread_sigmask): Now take an access sigset_t.
4725
4726 2007-07-05  Joel Sherrill <joel.sherrill@oarcorp.com>
4727
4728         * s-osinte-rtems.ads: Correct prototype of pthread_sigmask.
4729         
4730 2007-06-21  Eric Botcazou  <ebotcazou@adacore.com>
4731
4732         PR tree-optimization/25737
4733         * misc.c (gnat_post_options): Do not force flag_tree_salias to 0.
4734
4735 2007-06-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4736
4737         * trans.c (Attribute_to_gnu): When subtracting an
4738         offset from a pointer, use POINTER_PLUS_EXPR with
4739         NEGATE_EXPR instead of MINUS_EXPR.
4740         (gnat_to_gnu): Likewise.
4741         * utils.c (convert): When converting between
4742         thin pointers, use POINTER_PLUS_EXPR and sizetype
4743         for the offset.
4744         * utils2.c (known_alignment): POINTER_PLUS_EXPR
4745         have the same semantics as PLUS_EXPR for alignment.
4746         (build_binary_op): Add support for the semantics of
4747         POINTER_PLUS_EXPR's operands.
4748         When adding an offset to a pointer, use POINTER_PLUS_EXPR.
4749
4750 2007-06-11  Rafael Avila de Espindola  <espindola@google.com>
4751
4752         * trans.c (Attribute_to_gnu): Use signed_or_unsigned_type_for instead
4753         of get_signed_or_unsigned_type.
4754         * misc.c (LANG_HOOKS_SIGNED_TYPE): Remove.
4755
4756 2007-06-11  Bob Duff  <duff@adacore.com>
4757             Thomas Quinot  <quinot@adacore.com>
4758
4759         * g-stsifd-sockets.adb (Create): Work around strange behavior of
4760         'bind' on windows that causes 'connect' to fail intermittently, by
4761         retrying the 'bind'.
4762         (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
4763
4764 2007-06-10  Duncan Sands  <baldrick@free.fr>
4765
4766         * decl.c (gnat_to_gnu_entity): Use pointers to dummy nodes, rather
4767         than to void, for the fields when making a new fat pointer type.
4768         (gnat_substitute_in_type): Now substitute_in_type.
4769         * gigi.h (gnat_substitute_in_type): Likewise.  Adjust recursive calls.
4770         * trans.c (gnat_gimplify_expr): Remove COMPONENT_REF kludge.
4771         * utils.c (update_pointer_to): Update fat pointers by updating the
4772         dummy node pointers used for the fields.
4773
4774 2007-06-06  Thomas Quinot  <quinot@adacore.com>
4775             Bob Duff  <duff@adacore.com>
4776
4777         * g-soccon-freebsd.ads, g-soccon-vxworks.ads:,
4778         g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads, 
4779         g-soccon-solaris.ads, g-soccon-vms.ads, g-soccon-tru64.ads:  Add new
4780         constant Thread_Blocking_IO, always True by default, set False
4781         on a per-runtime basis.
4782         (Need_Netdb_Buffer): New constant.
4783
4784         * g-stheme.adb, g-sttsne.ads, g-sttsne-locking.ads,
4785         g-sttsne-locking.adb, g-sttsne-vxworks.ads, g-sttsne-vxworks.adb: New
4786         files.
4787
4788         * g-socthi-vxworks.ads, g-socthi-vxworks.adb,
4789         g-socthi-vms.ads, g-socthi-vms.adb (Safe_Gethostbyname,
4790         Safe_Gethostbyaddr, Safe_Getservbyname, Safe_Getservbyport): Use new
4791         child package Task_Safe_NetDB
4792         (Host_Error_Messages): Add stub body.
4793         (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
4794
4795         * g-soccon-mingw.ads: Add Windows-specific constants.
4796         (Need_Netdb_Buffer): New constant.
4797         (GNAT.Sockets.Thin.C_Inet_Addr, Windows version): Remove useless Ada
4798         wrapper and import inet_addr(3) from the standard sockets library
4799         directly instead.
4800         (In_Addr): Add alignment clause.
4801         (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
4802
4803 2007-06-06  Robert Dewar  <dewar@adacore.com>
4804
4805         * a-taster.adb, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
4806         s-osinte-irix.ads, s-interr-sigaction.adb, s-mastop-irix.adb,
4807         s-osinte-hpux-dce.ads, s-osinte-interix.ads, s-osinte-solaris.ads,
4808         s-taspri-solaris.ads, s-inmaop-vms.adb, s-interr-vms.adb,
4809         s-mastop-vms.adb, s-osinte-vms.ads, s-tpopde-vms.adb,
4810         s-osinte-mingw.ads, s-interr-vxworks.adb, i-cstrea-vms.adb,
4811         a-diocst.adb, a-direio.adb, a-interr.adb, a-sequio.adb, a-siocst.adb,
4812         a-ssicst.adb, a-storio.adb, a-ststio.adb, a-stwima.adb, a-tasatt.adb,
4813         a-taside.adb, a-tiocst.adb, a-witeio.adb, a-wtcstr.adb, g-crc32.adb,
4814         g-dirope.adb, g-dyntab.adb, g-memdum.adb, g-regexp.adb, g-spipat.adb,
4815         g-spitbo.adb, g-string.adb, g-string.ads, g-table.adb, g-thread.adb,
4816         i-cobol.adb, i-cpoint.adb, i-cstrea.adb, i-cstrin.adb, i-pacdec.adb,
4817         s-addima.adb, s-arit64.adb, s-auxdec.adb, s-auxdec.ads,
4818         s-auxdec-vms_64.ads, s-carsi8.adb, s-carun8.adb, s-casi16.adb,
4819         s-casi32.adb, s-casi64.adb, s-caun16.adb, s-caun32.adb, s-caun64.adb,
4820         s-direio.adb, s-fileio.adb, s-finimp.ads, s-geveop.adb, s-imgenu.adb,
4821         s-pack03.adb, s-pack05.adb, s-pack06.adb, s-pack07.adb, s-pack09.adb,
4822         s-pack10.adb, s-pack11.adb, s-pack12.adb, s-pack13.adb, s-pack14.adb,
4823         s-pack15.adb, s-pack17.adb, s-pack18.adb, s-pack19.adb, s-pack20.adb,
4824         s-pack21.adb, s-pack22.adb, s-pack23.adb, s-pack24.adb, s-pack25.adb,
4825         s-pack26.adb, s-pack27.adb, s-pack28.adb, s-pack29.adb, s-pack30.adb,
4826         s-pack31.adb, s-pack33.adb, s-pack34.adb, s-pack35.adb, s-pack36.adb,
4827         s-pack37.adb, s-pack38.adb, s-pack39.adb, s-pack40.adb, s-pack41.adb,
4828         s-pack42.adb, s-pack43.adb, s-pack44.adb, s-pack45.adb, s-pack46.adb,
4829         s-pack47.adb, s-pack48.adb, s-pack49.adb, s-pack50.adb, s-pack51.adb,
4830         s-pack52.adb, s-pack53.adb, s-pack54.adb, s-pack55.adb, s-pack56.adb,
4831         s-pack57.adb, s-pack58.adb, s-pack59.adb, s-pack60.adb, s-pack61.adb,
4832         s-pack62.adb, s-pack63.adb, s-pooloc.adb, s-poosiz.adb, s-scaval.adb,
4833         s-sequio.adb, s-shasto.adb, s-stalib.ads, s-stratt.adb, s-strcom.adb,
4834         s-taasde.adb, s-tasdeb.adb, s-tasuti.ads, s-tataat.ads, s-tpoben.ads,
4835         s-valenu.adb, s-widenu.adb, s-wwdenu.adb, s-addope.adb, a-stzmap.adb,
4836         a-ztcstr.adb, a-ztexio.adb, s-osinte-linux-hppa.ads: Replace
4837         Unchecked_* by Ada.Unchecked_*
4838
4839 2007-06-06  Robert Dewar  <dewar@adacore.com>
4840
4841         * g-string.adb, s-proinf-irix-athread.adb, s-gloloc-mingw.adb,
4842         s-tfsetr-default.adb, gnatfind.adb, gnatxref.adb, gprep.adb,
4843         g-regexp.adb, g-regexp.ads, g-regpat.ads, g-tasloc.adb, g-tasloc.ads,
4844         output.adb, switch-m.ads, tree_in.ads, tree_io.ads, indepsw.ads,
4845         g-utf_32.adb, g-utf_32.ads, a-wichun.adb, a-wichun.ads, a-zchuni.adb,
4846         a-zchuni.ads: Replace GNAT.xxx by System.xxx when appropriate.
4847
4848         * s-utf_32.adb, s-utf_32.ads, s-os_lib.adb, s-os_lib.ads, s-regexp.adb,
4849         s-regexp.ads, s-regpat.adb, s-regpat.ads, s-string.adb, s-string.ads,
4850         s-tasloc.adb, s-tasloc.ads: New files.
4851
4852 2007-06-06  Bob Duff  <duff@adacore.com>
4853
4854         * g-expect-vms.adb: 
4855         (Send_Signal, Close): Raise Invalid_Process if the process id is invalid.
4856         * g-expect.ads, g-expect.adb (Send): Avoid useless copy of the string.
4857         (Send_Signal, Close): Raise Invalid_Process if the process id is
4858         invalid.
4859         (Pattern_Matcher_Access): Is now a general access type to be able to
4860         use aliased string.
4861
4862 2007-06-06  Thomas Quinot  <quinot@adacore.com>
4863             Arnaud Charlet  <charlet@adacore.com>
4864
4865         * a-intnam-aix.ads: Adjust comment to account for SIGADAABORT change
4866         (SIGEMT is now used instead of SIGTERM on AIX).
4867
4868         * s-osinte-aix.ads (Linker_Options): Use -pthread instead of -lpthreads.
4869         (Time_Slice_Supported): Set to True.
4870         Use SIGEMT instead of SIGTERM as SIGADAABORT.
4871
4872 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
4873
4874         * a-calend.ads, a-calend.adb, a-calend-vms.ads, a-calend-vms.adb ("-"
4875         (Time, Time)): Use To_Relative_Time rather than manual calculation to
4876         express the bounds of Duration as Time. Raise Time_Error when the
4877         result is greater or equal to the higher bound of Duration (on the
4878         margin case).
4879         ("+" (Time, Duration)): Reorder code. Remove the declaration of constant
4880         Ada_High_And_Leaps.
4881         ("-" (Time, Duration)): Reorder code. Remove the declaration of constant
4882         Ada_High_And_Leaps.
4883         ("-" (Time, Time)): Reorder code.
4884         (All_Leap_Seconds): Removed.
4885         (Arithmetic_Operations.Add): Remove sign related kludge.
4886         (Arithmetic_Operations.Difference): Control the leaps seconds processing
4887         with flag Leap_Support.
4888         (Arithmetic_Operations.Subtract): Remove sign related kludge.
4889         (Check_Within_Time_Bounds): New procedure.
4890         (Clock): Control the leap seconds processing with flag Leap_Support.
4891         (Cumulative_Leap_Seconds): Assert that the target supports leap seconds.
4892         (Formatting_Operations.Split): Control the leap seconds processing with
4893         flag Leap_Support.
4894         (Formatting_Operations.Time_Of): Control the leaps seconds processing
4895         with flag Leap_Support. Adjust the year, month and day (if applicable)
4896         when the value of day seconds designates a new day.
4897         (Split): Use parameter associations for better readability. Integrate
4898         flag Is_Ada_05.
4899         (Time_Of): Use parameter associations for better readability. Integrate
4900         flag Is_Ada_05.
4901
4902         * a-calfor.adb (Split): Use parameter associations for better
4903         readability. Integrate flag Is_Ada_05.
4904         (Time_Of): Remove flag Leap_Checks. Use parameter associations for
4905         better readability. Integrate flag Is_Ada_05.
4906
4907 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
4908
4909         * s-taprop-vms.adb, s-taprop-hpux-dce.adb, s-taprop-vxworks.adb, 
4910         s-osprim-posix.adb, s-taprop-posix.adb, s-osprim-vxworks.adb, 
4911         s-taprop-solaris.adb, s-osprim-solaris.adb, s-taprop-dummy.adb, 
4912         s-osprim-unix.adb, s-osinte-freebsd.adb, s-osinte-freebsd.ads, 
4913         s-osinte-lynxos.adb, s-osinte-lynxos.ads, s-taprop-tru64.adb, 
4914         s-taprop-lynxos.adb, s-taprop-irix.adb, s-osinte-tru64.adb, 
4915         s-osinte-tru64.ads, s-taprop-linux.adb, s-parame.ads, 
4916         s-parame-vms-alpha.ads, s-parame-vms-ia64.ads, s-parame-hpux.ads, 
4917         s-parame-vms-restrict.ads, s-parame-ae653.ads, s-parame-vxworks.ads, 
4918         s-taprop-mingw.adb, s-osinte-lynxos-3.ads, s-osinte-lynxos-3.adb,
4919         s-osprim-mingw.adb (Timed_Delay, Timed_Sleep): Register the base
4920         time when entering this routine to detect a backward clock setting
4921         (manual setting or DST adjustment), to avoid waiting for a longer delay
4922         than needed.
4923         (Time_Duration, To_Timeval, struct_timeval): Removed when not relevant.
4924         Remove handling of deferred priority change, and replace by setting the
4925         task priority directly, as required by AI-188.
4926         Update comments.
4927         (Max_Task_Image_Length): New constant.
4928         Replace Warnings (Off) by Unreferenced pragma, cleaner.
4929         (Dynamic_Priority_Support): Removed, no longer needed.
4930         (Poll_Base_Priority_Change): Ditto.
4931         (Set_Ceiling): Add this procedure to change the ceiling priority
4932         associated to a lock. This is a dummy implementation because dynamic
4933         priority ceilings are not supported by the underlying system.
4934
4935         * a-dynpri.adb (Set_Priority): Take into account case where Target is
4936         accepting a RV with its priority boosted.
4937         Remove handling of deferred priority change, and replace by setting the
4938         task priority directly, as required by AI-188.
4939
4940         * s-taenca.adb (Try_To_Cancel_Entry_Call): Remove special case for
4941         Succeeded = True.
4942         Remove handling of deferred priority change, and replace by setting the
4943         task priority directly, as required by AI-188.
4944         (Wait_For_Completion, Wait_For_Call, Timed_Selective_Wait): Change state
4945         of Self_Id earlier.
4946
4947         * s-tasini.ads, s-tasini.adb (Wakeup_Entry_Caller): Relax assertion.
4948         (Poll_Base_Priority_Change): Removed.
4949         Code clean up: use SSL.Current_Target_Exception.
4950
4951         * s-tasren.adb (Task_Count): Call Yield to let a chance to other tasks
4952         to run as this is a potentially dispatching point.
4953         (Call_Synchronous): Use Local_Defer_Abort.
4954         (Callable): Relax assertion.
4955         (Selective_Wait): Relax assertion in case abort is not allowed.
4956         Remove handling of deferred priority change, and replace by setting the
4957         task priority directly, as required by AI-188.
4958
4959         * s-tasuti.adb (Make_Passive): Adjust assertions.
4960         Remove handling of deferred priority change, and replace by setting the
4961         task priority directly, as required by AI-188.
4962
4963 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
4964
4965         * system-vxworks-sparcv9.ads, system-solaris-x86.ads, 
4966         system-irix-o32.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads, 
4967         system-lynxos-x86.ads, system-vxworks-m68k.ads, system-linux-x86.ads, 
4968         system-vxworks-mips.ads, system-vxworks-alpha.ads, 
4969         system-vxworks-x86.ads, system-linux-ppc.ads, system-mingw.ads, 
4970         system-vms-zcx.ads, system-darwin-ppc.ads, system-vxworks-ppc.ads, 
4971         system-interix.ads, system-linux-hppa.ads, system-tru64.ads, 
4972         system-hpux.ads, system-irix-n32.ads, system-solaris-sparc.ads, 
4973         system-solaris-sparcv9.ads, system-vms.ads, system.ads,
4974         system-vms_64.ads, system-hpux-ia64.ads, system-linux-x86_64.ads,
4975         system-linux-ia64.ads: Document mapping between Ada and OS priorities.
4976         This patch changes the largest non-binary modulus from 2**31-1 to
4977         2**32-1.
4978         (Compiler_System_Version): Removed, no longer used.
4979         Clean up system files by removing flags only used on a single target.
4980         Also remove obsolete flags, only used during bootstrap from system.ads
4981         (Address): Add a pragma Preelaborable_Initialization.
4982
4983         * system-aix.ads:  Ditto.
4984         (GCC_ZCX_Support): Set to true.
4985         Update priority range on AIX and map Ada priorities to target
4986         priorities appropriately for different scheduling policies.
4987
4988         * ttypes.ads: set largest non-binary modulus from 2**31-1 to 2**32-1
4989
4990 2007-06-06  Vincent Celier  <celier@adacore.com>
4991
4992         * mlib-tgt-specific.adb, mlib-tgt-specific.ads,
4993         mlib-tgt-vms.adb, mlib-tgt-vms.ads: New files.
4994
4995         * mlib-tgt.adb, mlib-tgt.ads, mlib-tgt-darwin.adb, 
4996         mlib-tgt-vxworks.adb, mlib-tgt-mingw.adb, mlib-tgt-lynxos.adb, 
4997         mlib-tgt-linux.adb, mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, 
4998         mlib-tgt-vms-ia64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb, 
4999         mlib-tgt-hpux.adb, mlib-tgt-tru64.adb: Make a common body for package
5000         MLib.Tgt, containing the default versions of the exported subprograms.
5001         For each platform, create a specific version of the body of new child
5002         package MLib.Tgt.Specific that contains only the body of subprograms
5003         that are different from the default.
5004         (Archive_Builder_Append_Options): New function.
5005
5006 2007-06-06  Matthew Gingell  <gingell@adacore.com>
5007
5008         * s-osinte-aix.adb: Map Ada priorities to target priorities
5009         appropriately for different scheduling policies.
5010
5011 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
5012
5013         * s-osinte-linux.ads (sigset_t): Bump alignment to match more closely
5014         its C counterpart.
5015         Remove references to Unchecked_Conversion, and use Ada.xxx instead.
5016         Replace Unchecked_Conversion by Ada.Unchecked_Conversion. 
5017
5018 2007-06-06  Vasiliy Fofanov  <fofanov@adacore.com>
5019
5020         * s-osprim-vms.ads, s-osprim-vms.adb (Initialize): New procedure.
5021         Noop on VMS, added for interface commonality.
5022
5023 2007-06-06  Eric Botcazou  <ebotcazou@adacore.com>
5024             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5025             Olivier Hainque  <hainque@adacore.com>
5026
5027         * decl.c (gnat_to_gnu_entity) <object>: Manually mark the top of the
5028         renamed expression of a full renaming at toplevel.
5029         (gnat_to_gnu_entity, case object): If not defining, do not look inside
5030         the values the constant is initialized to if it is an N_Allocator.
5031         (gnat_to_gnu_entity) <E_Array_Subtype>: Manually mark the top of the
5032         TYPE_SIZE_UNIT of inner types after the stride is elaborated.
5033         (make_aligning_type): Accept an extra ROOM argument for storage to be
5034         made available before the aligned field, and an extra BASE_ALIGN
5035         argument for callers to pass the alignment guaranteed to be honored for
5036         the whole aligning object. Avoid call to finish_record_type, which only
5037         interferes with the sizes we want to set.
5038         (gnat_to_gnu_entity) <E_Variable>: Pass the required extra arguments to
5039         make_aligning_type for super-aligned objects on stack.
5040         (components_to_record): Pass the adjusted size of the type when creating
5041         fields in the qualified union for the variant part.
5042         (gnat_substitute_in_type): Copy TYPE_USER_ALIGN.
5043         (gnat_to_gnu_entity, case E_Signed_Integer_Subtype): Likewise for
5044         packed array type.
5045         (maybe_pad_type): Set TYPE_USER_ALIGN.
5046         (make_aligning_type): Likewise.
5047         ALIGN argument is unsigned int.
5048         (gnat_to_gnu_entity, case E_Function): Back annotate return mechanism.
5049         (gnat_to_gnu_param): Likewise, for parameters.
5050         (gnat_to_gnu_entity) <object>: Always instantiate the renaming object
5051         if it is constant and stems from a function call.
5052         (gnat_to_gnu_entity) <E_Record_Type>: Set packed to -2 if the alignment
5053         of the record is specified.  Adjust accordingly.
5054         (adjust_packed): New static function.
5055         (gnat_to_gnu_field): Use it to adjust the packedness setting.
5056         (components_to_record): Likewise.
5057         (gnat_to_gnu_entity) <object>: Do not test the renamed expression for
5058         side-effects if the object is deemed constant.
5059         (gnat_to_gnu_entity) <E_Array_Type>: Create a name for the fat pointer
5060         type instead of merely finalizing it.  Tidy.
5061         <E_Access_Subprogram_Type>: Retrieve the type from the TYPE_DECL.
5062         <E_Access_Type>: Likewise.
5063         (defer_debug_incomplete_list): Rename to defer_finalize_list.
5064         (defer_debug_level): Delete.
5065         (gnat_to_gnu_entity) <debug_deferred>: Likewise
5066         <E_Array_Type>: Call rest_of_record_type_compilation on the fat pointer
5067         type.
5068         <E_Record_Type>: Do not explicitly defer finalizing the type.
5069         Adjust for write_record_type_debug_info renaming.
5070         <E_Subprogram_Type>: Likewise.
5071         Finalize deferred types right after deferred incomplete types are
5072         expanded.
5073         (rest_of_type_decl_compilation): New global function.
5074         (components_to_record): Rename defer_debug parameter to do_not_finalize.
5075         (components_to_record): Propagate the packedness to the fields of the
5076         qualified union type if there is a variant part.
5077         (gnat_to_gnu_entity) <E_Array_Type>: Use new function
5078         instead of inline code to adjust the XUT field offsets.
5079         (gnat_to_gnu_entity): Adjust for new prototype of finish_record_type.
5080         <E_Record_Subtype>: Do not let finish_record_type compute the sizes
5081         and write the debug info if the type derives from a discriminated one.
5082         (gnat_to_gnu_entity) <E_Array_Type>: Adjust call to create_index_type.
5083         <E_Array_Subtype>: Likewise.
5084         <E_String_Literal_Subtype>: Likewise.
5085         (gnat_to_gnu_entity): Set TYPE_USER_ALIGN on types only if they have
5086         an alignment clause.
5087         (maybe_pad_type): Update ORIG_SIZE to the minimum required to meet ALIGN
5088         before giving warning.
5089         (prepend_one_attribute_to): New function, helper to prepend an attribute
5090         to an attribute list.
5091         (gnat_to_gnu_entity) <E_Procedure>: Use it.
5092         (prepend_attributes): Likewise.
5093         (gnat_to_gnu_entity) <E_Variable>: Use constants of the proper type.
5094         <E_Array_Type>: Declare the padding type for the element type, if any.
5095         <E_Array_Subtype>: Likewise.
5096         (defer_limited_with): New variable.
5097         (Gigi_Equivalent_Type): New function.
5098         (gnat_to_gnu_entity): Use it at start and use result throughout.
5099         (gnat_to_gnu_entity, case E_Access_Type): Rework to use
5100         Gigi_Equivalent_Type, support Limited_With, allow two levels of
5101         indirection, precompute if unconstrained array to simplify logic, and
5102         use defer_limited_with to defer elaboration of some types from limited
5103         with.
5104         (finalize_from_with_types): New function.
5105
5106 2007-06-06  Gary Dismukes  <dismukes@adacore.com>
5107             Eric Botcazou  <ebotcazou@adacore.com>
5108             Tristan Gingold  <gingold@adacore.com>
5109             Olivier Hainque  <hainque@adacore.com>
5110
5111         * trans.c (Identifier_to_gnu): Change test for deferred constant by
5112         adding guard that the entity is an E_Constant before testing presence
5113         of Full_view (and remove unnecessary test that entity is not a type).
5114         For a CONST_DECL used by reference, manually retrieve
5115         the DECL_INITIAL.  Do not invoke fold in the other DECL_P cases either.
5116         (struct language_function): Move from utils.c to here.
5117         (struct parm_attr): New structure.
5118         (parm_attr, parm_attr vector, parm_attr GC vector): New types.
5119         (f_parm_attr_cache): New macro.
5120         (Attribute_to_gnu) <Attr_Length>: When not optimizing, cache the
5121         expressions for the 'First, 'Last and 'Length attributes of the
5122         unconstrained array IN parameters.
5123         (Subprogram_Body_to_gnu): Use gnu_subprog_decl throughout.
5124         Allocate the information structure for the function earlier, as well
5125         as the language-specific part.
5126         If the parameter attributes cache has been populated, evaluate the
5127         cached expressions on entry.
5128         (takes_address): Add OPERAND_TYPE parameter.  Handle N_Function_Call,
5129         N_Procedure_Call_Statement and N_Indexed_Component.
5130         (Pragma_to_gnu): Translate inspection_point to an asm statement
5131         containaing a comment and a reference to the object (either its address
5132         for BLKmode or its value).
5133         (Identifier_to_gnu): Use TREE_CONSTANT instead of CONST_DECL to decide
5134         to go to DECL_INITIAL. Together with the size constraint relaxation
5135         in create_var_decl, enlarges the set of situations in which an
5136         identifier may be used as an initializer without implying elaboration
5137         code.
5138         (Subprogram_Body_to_gnu): Do not fiddle with the debug interface but set
5139         DECL_IGNORED_P on the function if Needs_Debug_Info is not set on the
5140         node.
5141         (maybe_stabilize_reference): Remove lvalues_only parameter.
5142         (gnat_stabilize_reference): Adjust for above change.
5143         (gnat_to_gnu): Do not set location information on the result
5144         if it is a reference.
5145         (add_cleanup): Add gnat_node parameter and set the location of the
5146         cleanup to it.
5147         (Handled_Sequence_Of_Statements_to_gnu): Adjust calls to add_cleanup.
5148         (Exception_Handler_to_gnu_zcx): Likewise.
5149         (gigi): Remove the cgraph node if the elaboration procedure is empty.
5150         (Subprogram_Body_to_gnu): If a stub is attached to the subprogram, emit
5151         the former right after the latter.
5152         (start_stmt_group): Make global.
5153         (end_stmt_group): Likewise.
5154         (gnu_constraint_error_label_stack, gnu_storage_error_label_stack): New
5155         vars.
5156         (gnu_program_error_label_stack): Likewise.
5157         (gigi): Initialize them.
5158         (call_to_gnu, gnat_to_gnu, emit_check): Add new arg to build_call_raise.
5159         (gnat_to_gnu, N_{Push,Pop}_{Constraint,Storage,Program}_Error_Label):
5160         New cases.
5161         (push_exception_label_stack): New function.
5162         (takes_address): New function.
5163
5164         * utils.c (struct language_function): Move to trans.c from here.
5165         (unchecked_convert): Do not wrap up integer constants in
5166         VIEW_CONVERT_EXPRs.
5167         (create_var_decl_1): Decouple TREE_CONSTANT from CONST_DECL. Prevent
5168         the latter for aggregate types, unexpected by later passes, and relax an
5169         arbitrary size constraint on the former.
5170         (create_field_decl): Use tree_int_cst_equal instead of operand_equal_p
5171         to compare the sizes.
5172         (convert_vms_descriptor): When converting to a fat pointer type, be
5173         prepared for a S descriptor at runtime in spite of a SB specification.
5174         (shift_unc_components_for_thin_pointers): New function.
5175         (write_record_type_debug_info): For variable-sized fields, cap the
5176         alignment of the pointer to the computed alignment.
5177         (finish_record_type): Change HAS_REP parameter into REP_LEVEL.
5178         If REP_LEVEL is 2, do not compute the sizes.
5179         (build_vms_descriptor): Adjust for new prototype of finish_record_type.
5180         (build_unc_object_type): Likewise.
5181         (declare_debug_type): New function.
5182
5183         * ada-tree.def: USE_STMT: removed (not emitted anymore).
5184
5185         * misc.c (gnat_expand_expr): Call to gnat_expand_stmt removed because
5186         no statement is expandable anymore.
5187         (gnat_init_gcc_eh): Do not initialize the DWARF-2 CFI machinery twice.
5188         (gnat_handle_option): Only allow flag_eliminate_debug_types to be set
5189         when the user requested it explicitely.
5190         (gnat_post_options): By default, set flag_eliminate_unused_debug_types
5191         to 0 for Ada.
5192         (get_alias_set): Return alias set 0 for a type if
5193         TYPE_UNIVERSAL_ALIASING_P is set on its main variant.
5194
5195         * ada-tree.h: (TYPE_UNIVERSAL_ALIASING_P): New macro.
5196         (DECL_FUNCTION_STUB): New accessor macro.
5197         (SET_DECL_FUNCTION_STUB): New setter macro.
5198
5199         * lang.opt (feliminate-unused-debug-types): Intercept this flag for Ada.
5200
5201         * fe.h (Get_Local_Raise_Call_Entity, Get_RT_Exception_Entity): New
5202         declarations.
5203
5204 2007-06-06  Jose Ruiz  <ruiz@adacore.com>
5205
5206         * s-intman-vxworks.ads, s-intman-vxworks.adb (Abort_Task_Signal):
5207         Rename to Abort_Task_Interrupt to be able to keep the same interface
5208         as the rest of the targets.
5209
5210         * s-osinte-vxworks.ads s-osinte-vxworks.adb
5211         (To_VxWorks_Priority): Remove explicit "in" mode indicator
5212
5213         * s-osinte-vxworks6.ads, s-vxwork-arm.ads, system-vxworks-arm.ads:
5214         New files.
5215
5216 2007-06-06  Robert Dewar  <dewar@adacore.com>
5217
5218         * a-chahan.ads: Remove obsolescent pragmas
5219
5220         * a-chlat1.ads: Minor reformatting
5221
5222 2007-06-06  Robert Dewar  <dewar@adacore.com>
5223
5224         * comperr.adb (Compiler_Abort): New Finalize/Output_Messages interface
5225         for Errout
5226
5227         * errout.adb: New Finalize/Compilation_Errors/Output_Messages
5228         implementation
5229
5230         * errout.ads (Finalize): Changed interface
5231         (Output_Messages): New procedure
5232         (Compilation_Errors): New Interface
5233
5234         * prepcomp.ads, prepcomp.adb (Parse_Preprocessing_Data_File): New
5235         Finalize/Output_Messages interface for Errout
5236         (Prepare_To_Preprocess): New Finalize/Output_Messages interface for
5237         Errout.
5238
5239 2007-06-06  Thomas Quinot  <quinot@adacore.com>
5240             Olivier Hainque  <hainque@adacore.com>
5241             Robert Dewar  <dewar@adacore.com>
5242
5243         * a-except.ads, a-except.adb: (Rmsg_28): Fix description for E.4(18)
5244         check.
5245         (Raise_Current_Excep): Call Debug_Raise_Exception just before
5246         propagation starts, to let debuggers know about the event in a reliable
5247         fashion.
5248         (Local_Raise): Moved to System.Exceptions
5249         More convenient to have this as a separate unit
5250
5251         * s-except.adb, s-except.ads: New files.
5252
5253         * a-exextr.adb (Unhandled_Exception): Delete - replaced by
5254         Debug_Unhandled_Exception in System.Exceptions where it belongs
5255         together with a couple of other debug helpers.
5256         (Notify_Unhandled_Exception): Use Debug_Unhandled_Exception instead of
5257         the former Unhandled_Exception.
5258
5259         * exp_ch11.ads, exp_ch11.adb: (Possible_Local_Raise): New procedure
5260         (Warn_No_Exception_Propagation): New procedure
5261         (Warn_If_No_Propagation): Rewritten for new warning generation
5262         (Expand_Exception_Handlers): New warning generation
5263         (Expand_N_Raise_xxx_Error): Rewritten for new warnings
5264         (Add_Exception_Label): Use Special_Exception_Package_Used for test
5265         instead of Most_Recent_Exception_Used (accomodates Exception_Traces)
5266         (Expand_Local_Exception_Handlers): Unconditionally add extra block wrap
5267         even if restriction is set (makes life easier in Check_Returns)
5268         (Expand_Local_Exception_Handlers): Follow renamed entity chain when
5269         checking exception identities.
5270         (Expand_Local_Exception_Handlers): Do not optimize when all others case
5271         (Expand_Local_Exception_Handlers): Set Exception_Junk flag on generated
5272         block for handler (used by Check_Returns)
5273         (Expand_Local_Exception_Handlers): Local_Raise now takes an address
5274         (Expand_N_Handled_Sequence_Of_Statements): Properly handle -gnatd.x to
5275         remove all exception handlers when optimizing local raise statements.
5276         (Find_Local_Handler): Use Get_Renamed_Entity
5277         (Expand_N_Handled_Sequence_Of_Statements): If the handled sequence is
5278         marked analyzed after expanding exception handlers, do not generate
5279         redundant cleanup actions, because they have been constructed already.
5280
5281 2007-06-06  Thomas Quinot  <quinot@adacore.com>
5282
5283         * a-finali.ads (Ada.Finalization): Add missing pragma Remote_Types. The
5284         presence of this categorization pragma is mandated by the language.
5285         (Limited_Controlled): Add missing pragma Preelaborable_Initialization
5286         for this type.
5287
5288 2007-06-06  Vincent Celier  <celier@adacore.com>
5289             Robert Dewar  <dewar@adacore.com>
5290
5291         * bcheck.adb, binde.adb, binderr.adb, binderr.ads, butil.adb, 
5292         butil.ads, erroutc.adb, erroutc.ads, errutil.adb, errutil.ads, 
5293         err_vars.ads, exp_tss.adb, exp_tss.ads, fmap.adb, fmap.ads, 
5294         fname.adb, fname.ads, fname-sf.adb, fname-uf.adb, fname-uf.ads, 
5295         lib-sort.adb, lib-util.adb, lib-util.ads, lib-xref.adb, makeutl.ads, 
5296         makeutl.adb, nmake.adt, osint.adb, osint.ads, osint-b.adb, 
5297         par-load.adb, prj-attr.adb, prj-dect.adb, prj-err.adb, prj-makr.adb, 
5298         prj-part.adb, prj-pp.adb, prj-proc.adb, prj-tree.adb, prj-tree.ads, 
5299         prj-util.adb, prj-util.ads, scans.adb, scans.ads, sem_ch2.adb, 
5300         sinput-c.adb, styleg-c.adb, tempdir.adb, tempdir.ads, uname.adb, 
5301         uname.ads, atree.h, atree.ads, atree.adb, ali-util.ads, ali-util.adb,
5302         ali.ads, ali.adb: 
5303         Move Name_Id, File_Name_Type and Unit_Name_Type from package Types to
5304         package Namet. Make File_Name_Type and Unit_Name_Type types derived from
5305         Mame_Id. Add new type Path_Name_Type, also derived from Name_Id.
5306         Use variables of types File_Name_Type and Unit_Name_Type in error
5307         messages.
5308         (Get_Name): Add parameter Ignore_Special, and set it reading file name
5309         (New_Copy): When debugging the compiler, call New_Node_Debugging_Output
5310         here.
5311         Define flags Flag217-Flag230 with associated subprograms
5312         (Flag_Word5): New record type.
5313         (Flag_Word5_Ptr): New access type.
5314         (To_Flag_Word5): New unchecked conversion.
5315         (To_Flag_Word5_Ptr): Likewise.
5316         (Flag216): New function.
5317         (Set_Flag216): New procedure.
5318
5319 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
5320
5321         * a-stzunb.adb, a-stwiun.adb, a-strunb.adb: (Insert): Use 'Length
5322         instead of 'Size.
5323
5324         * a-stwifi.ads, a-stzfix.ads: Minor reformatting
5325
5326 2007-06-06  Javier Miranda  <miranda@adacore.com>
5327
5328         * a-tags.ads, a-tags.adb (Tag_Size): This constant is now internal to
5329         the package.
5330         (Object_Specific_Data_Array): This is now internal to the package.
5331         (Object_Specific_Data): This is now internal to the package.
5332         (Select_Specific_Data_Element): This is now internal to the package.
5333         (Select_Specific_Data_Array): This is now internal to the package.
5334         (Select_Specific_Data): This is now internal to the package.
5335         (Offset_To_Top_Function_Ptr): This is now public.
5336         (To_Offset_To_Top_Function_Ptr): Removed.
5337         (Storage_Offset_Ptr,To_Storage_Offset_Ptr): These declarations are now
5338          local to subprogram Offset_To_Top.
5339         (Predefined_DT): Removed.
5340         (Typeinfo_Ptr): Removed.
5341         (OSD): This function is now internal to this package.
5342         (SSD): This function is now internal to this package.
5343         (DT): New function that displaces the pointer to the table of primitives
5344          to get access to the enclosing wrapper record.
5345         (IW_Membership): Code cleanup.
5346         (Offset_To_Top): Code cleanup.
5347         (Predefined_DT): Removed.
5348         (Register_Interface_Tag): Removed.
5349         (Set_Interface_Table): Removed.
5350         (Set_Offset_Index): Removed.
5351         (Set_Offset_To_Top): Code cleanup.
5352         (Set_OSD): Removed.
5353         (Set_Signature): Removed.
5354         (Set_SSD): Removed.
5355         (Set_Tagged_Kind): Removed.
5356         (Typeinfo_Ptr): Removed.
5357         (TSD): Removed.
5358         (Displace): Add missing check on null actual.
5359
5360         * exp_disp.ads, exp_disp.adb
5361         (Select_Expansion_Utilities): Removed.
5362         (Build_Common_Dispatching_Select_Statements): Moved to exp_atags.
5363         (Expand_Dispatching_Call): Update calls to Get_Prim_Op_Address because
5364         the interface requires a new parameter.
5365         (Make_Disp_Asynchronous_Select_Spec, Make_Disp_Conditional_Select_Spec,
5366         Make_Disp_Get_Prim_Op_Kind_Spec, Make_Disp_Timed_Select_Spec): Replace
5367         calls to subprograms Build_T, Build_S, etc. by the corresponding code.
5368         Done to remove package Select_Expansion_Utilities.
5369         (Make_DT): New implementation for statically allocated dispatch tables.
5370         (Make_Secondary_DT): Moved to the scope of Make_DT.
5371         (Register_Primitive): Code cleanup plus incoporate the use of the new
5372         function DT_Address_Attribute.
5373         (Expand_Interface_Thunk): The profile of this subprogram has been
5374         changed to return the Thunk_Id and the corresponding code.
5375         (Fill_DT_Entry): Removed. Its functionality is now provided by
5376         subprogram Register_Primitive.
5377         (Fill_Secondary_DT_Entry): Removed. Its functionality is now provided by
5378         subprogram Register_Primitive.
5379         (Register_Primitive): New subprogram that incorporates the previous
5380         functionalities of Fill_DT_Entry and Fill_Secondary_DT_Entry.
5381         (Build_Common_Dispatching_Select_Statements): Remove formal Typ. This
5382         was only required to call Make_DT_Access_Action, which is now removed.
5383         (Ada_Actions): Removed
5384         (Action_Is_Proc): Removed
5385         (Action_Nb_Arg): Removed
5386         Replace all the calls to Make_DT_Access_Action by direct calls to
5387         Make_Procedure_Call_Statement or Make_Function_Call.
5388         (Set_DTC_Entity_Value): New subprogram.
5389         (Set_All_DT_Position): Add call to new subprogram Set_DTC_Entity_Value.
5390         (Expand_Interface_Thunk): Add missing support for primitives that are
5391         functions with a controlling result (case in which there is no need
5392         to generate the thunk).
5393
5394         * exp_atag.ads, exp_atag.adb
5395         (Build_DT): New subprogram that displaces the pointer to reference the
5396         base of the wrapper record.
5397         (Build_Typeinfo_Offset): Removed.
5398         (RTE_Tag_Node): Removed.
5399         (Build_Common_Dispatching_Select_Statements): Moved here from exp_disp
5400         (Build_Get_RC_Offset): Removed.
5401         (Build_Inherit_Predefined_Prims): Removed.
5402         (Build_Inherit_TSD: Removed.
5403         (Build_New_TSD): Removed.
5404         (Build_Set_External_Tag): Removed.
5405         (Build_Set_Predefined_Prim_Op_Address): Add documentation.
5406         (Build_Set_Prim_Op_Address): Add documentation.
5407         (Build_Set_TSD): Removed.
5408
5409         * rtsfind.ads, rtsfind.adb
5410         (Load_Fail): If load fails and we are not in configurable run-time
5411         mode, then raise Unrecoverable_Error.
5412         (Text_IO_Kludge): Generate an error message if a run-time library is
5413         not available in a given run-time (ie. zfp run-time).
5414         (RTE_Record_Component): Add code to check that the component we search
5415         for is not found in two records in the given run-time package.
5416         (RE_DT_Offset_To_Top_Size, RE_DT_Predef_Prims_Size): Removed
5417         (RE_DT_Predef_Prims_Offset): New entity
5418         (RE_Static_Offset_To_Top): New entity
5419         (RE_HT_Link): New entity.
5420         (System_Address_Image): Addition of this run-time package.
5421         (RE_Address_Image): New entity.
5422         (RE_Abstract_Interface): Removed.
5423         (RE_Default_Prim_Op_Count): Removed.
5424         (RE_DT_Entry_Size): Removed.
5425         (RE_DT_Min_Prologue_Size): Removed.
5426         (RE_DT_Prologue_Size): Removed.
5427         (RE_Ifaces_Table_Ptr): Removed.
5428         (RE_Interface_Data_Ptr): Removed.
5429         (RE_Type_Specific_Data): Removed.
5430         (RE_Primary_DT): Removed.
5431         (RE_Register_Interface_Tag): Removed.
5432         (RE_Set_Offset_Index): Removed.
5433         (RE_Set_OSD): Removed.
5434         (RE_Set_SSD): Removed.
5435         (RE_Set_Signature): Removed.
5436         (RE_Set_Tagged_Kind): Removed.
5437         (RE_Address_Array): New entity.
5438         (RE_DT): New entity.
5439         (RE_Iface_Tag): New entity.
5440         (RE_Interfaces_Table): New entity.
5441         (RE_No_Dispatch_Table): New entity.
5442         (RE_NDT_Prims_Ptr): New entity.
5443         (RE_NDT_TSD): New entity.
5444         (RE_Num_Prims): New entity.
5445         (RE_Offset_To_Top_Function_Ptr): New entity.
5446         (RE_OSD_Table): New entity.
5447         (RE_OSD_Num_Prims): New entity.
5448         (RE_Predef_Prims): New entity
5449         (RE_Predef_Prims_Table_Ptr): New entity.
5450         (RE_Primary_DT): New entity.
5451         (RE_Signature): New entity.
5452         (RE_SSD): New entity.
5453         (RE_TSD): New entity.
5454         (RE_Type_Specific_Data): New entity.
5455         (RE_Tag_Kind): New entity.
5456
5457 2007-06-06  Thomas Quinot  <quinot@adacore.com>
5458
5459         * a-textio.ads, a-textio.adb (Write): Add explicit size clause for the
5460         C imported variable.
5461         (Skip_Line): Do not reset Before_LM_PM immediately when Before_LM is set
5462         on entry.
5463
5464 2007-06-06  Robert Dewar  <dewar@adacore.com>
5465
5466         * a-tienio.adb (Get): Adjust buffer size to accomodate one extra
5467         character
5468
5469 2007-06-06  Vincent Celier  <celier@adacore.com>
5470
5471         * a-tifiio.adb (Put, internal): For negative numbers, check that there
5472         is room for at least one digit and the minus sign.
5473         (Put.Put_Character): Never put a character outside of the range of
5474         string To.
5475
5476 2007-06-06  Olivier Hainque  <hainque@adacore.com>
5477             Eric Botcazou  <ebotcazou@adacore.com>
5478
5479         * utils2.c (build_allocator): Provide the extra arguments to
5480         make_aligning_type for super-aligned objects allocated from the default
5481         pool. Leave enough room for a pointer before the aligning field, and
5482         store the system's allocator return value there.
5483         (build_call_alloc_dealloc): When releasing a super-aligned object,
5484         retrieve the system's allocator return value from where build_allocator
5485         has stored it, just ahead of the adjusted address we are passed.
5486         (build_call_raise): Handle properly the generation of line numbers when
5487         the node is marked No_Location.
5488         (compare_elmt_bitpos): Use tree_int_cst_compare.  Stabilize the sort
5489         by using DECL_UID on ties.
5490         (build_binary_op) <EQ_EXPR>: Accept fat pointer types with the same
5491         main variant.
5492         (build_call_raise): Handle converting exception into goto; support new
5493         argument KIND.
5494         (build_component_ref): Add new arg to build_call_raise.
5495
5496 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
5497
5498         * a-ztflau.adb, a-wtflau.adb, a-tiflau.adb (Load_Real): Do not parse
5499         "." in the case of nnn.xxx when nnn terminates with an underscore.
5500         Parse the remaining "#" or ":" in the case of nnn#.xxx#
5501
5502 2007-06-06  Robert Dewar  <dewar@adacore.com>
5503
5504         * a-tigeau.ads, a-tigeau.adb: (Store_Char): Change Buf to IN OUT
5505
5506 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
5507             Vincent Celier  <celier@adacore.com>
5508             Robert Dewar  <dewar@adacore.com>
5509
5510         * bindgen.adb (Gen_Output_File_Ada): Generate pragma No_Run_Time when
5511         needed.
5512         (Gen_Output_File_Ada, Gen_Output_File_C): Never use __attribute
5513         ((destructor)) for adafinal, even when switch -a is used.
5514         Do not issue pragma Linker_Destructor for adafinal when switch -a is
5515         used.
5516         (Gen_Object_Files_Options): Add formatting of Linker Options, when
5517         Output_Linker_Option_List is set. Suppress this formatting when
5518         Zero_Formatting is set.
5519         Add case for CLI_Target.
5520         (System_Restrictions_Used): New flag, used to avoid generating with of
5521         System_Restrictions and initialization of the data unless there is
5522         some use of System.Restrictions in the partition.
5523         (Check_System_Restrictions_Used): New procedure
5524
5525         * s-stalib.adb: Remove with of System.Restrictions. No longer needed
5526         since we only with this unit in the binder file if it is used elsewhere
5527         in the partition.
5528
5529 2007-06-06  Vincent Celier  <celier@adacore.com>
5530
5531         * bindusg.adb: Add line for @<response file>
5532         Add lines for new switches -R and -Z
5533
5534         * gnatbind.adb (Gnatbind): Do not include sources from the GNAT
5535         hierarchy in the list of files of the closure when -R is used
5536         (Gnatbind): Accept arguments starting with '@' to indicate response
5537         files and take the arguments from the response files.
5538         If List_Closure is set, display the referenced files
5539
5540 2007-06-06  Javier Miranda  <miranda@adacore.com>
5541             Robert Dewar  <dewar@adacore.com>
5542             Ed Schonberg  <schonberg@adacore.com>
5543
5544         * checks.ads, checks.adb (Apply_Address_Clause_Check): Handle case in
5545         which the address-clause is applied to in-mode actuals (allowed by
5546         13.1(22)).
5547         (Apply_Discriminant_Check): Do not generate a check if the type is
5548         constrained by a current instance.
5549         (Activate_Division_Check): New procedure
5550         (Activate_Overflow_Check): New procedure
5551         (Activate_Range_Check): New procedure
5552         Call these new Activate procedures instead of setting flags directly
5553         (Apply_Array_Size_Check): Removed, no longer needed.
5554         Code clean up: remove obsolete code related to GCC 2.
5555         (Get_E_Length): Protect against bomb in case scope is standard
5556         (Selected_Range_Checks): If the node to be checked is a conversion to
5557         an unconstrained array type, and the expression is a slice, use the
5558         bounds of the slice to construct the required constraint checks.
5559         Improve NOT NULL error messages
5560         (Apply_Constraint_Check): If the context is a null-excluding access
5561         type, diagnose properly the literal null.
5562
5563 2007-06-06  Pascal Obry  <obry@adacore.com>
5564
5565         * clean.adb (Clean_Archive): Use untouched casing for the archive name
5566         and the corresponding .deps file.
5567         (Clean_Interface_Copy_Directory): Use untouched casing for the library
5568         src directory. Minor code-clean-up. Use untouched casing for files
5569         read into the library src dir.
5570         (Clean_Library_Directory): Idem.
5571         (Parse_Cmd_Line): Accept new switch -aP
5572
5573 2007-06-06  Javier Miranda  <miranda@adacore.com>
5574             Ed Schonberg  <schonberg@adacore.com>
5575             Robert Dewar  <dewar@adacore.com>
5576             Eric Botcazou  <ebotcazou@adacore.com>
5577             Arnaud Charlet  <charlet@adacore.com>
5578
5579         * einfo.ads, einfo.adb (Available_View): New synthesized attribute
5580         applicable to types that have the With_Type flag set. Returns the
5581         non-limited view of the type, if available, otherwise the type itself.
5582         For class-wide types, there is no direct link in the tree, so we have
5583         to retrieve the class-wide type of the non-limited view of the Etype.
5584         New attributes Static_Initialization and Static_Elaboration_Desired.
5585         Remove the pragma Thread_Body, and the associated flag
5586         Is_Thread_Body in entities, and all related code.
5587         (Suppress_Value_Tracking_On_Call): New flag
5588         E_Exception has Esize and Alignment fields
5589         (Universal_Aliasing): New function.
5590         (Set_Universal_Aliasing): New procedure.
5591         (Write_Entity_Flags): Deal with Universal_Aliasing flag.
5592         (Check_Nested_Access): New procedure.
5593         (Has_Up_Level_Access, Set_Has_Up_Level_Access): New procedures.
5594         (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
5595         (Related_Interface): New attribute. Present in dispatch table pointer
5596         components of records. Set to point to the entity of the corresponding
5597         interface type.
5598         (Is_By_Reference_Type): Recurse on the full view of an incomplete type.
5599         (Original_Access_Type): Remove, not needed.
5600         (Root_Type): Handle properly subtypes of class-wide-types.
5601         Update comments.
5602
5603         * sem_ch4.adb (Analyze_Explicit_Dereference): Add support for
5604         class-wide types visible through limited-with clauses.
5605         (Try_Primitive_Operation): When examining all primitive operations of a
5606         tagged type, do not consider subprograms labeled as hidden unless they
5607         belong to a private generic type with a tagged parent.
5608         (Try_Object_Operation): Extensive rewriting, to handle properly various
5609         overloading cases, when several ancestors may have class-wide operations
5610         that are possible candidates, and when the overloaded functions return
5611         array types and have defaulted parameters so that the call may be
5612         interpreted as an indexing.
5613         (Analyze_Allocator): Remove Mark_Allocator and its invocation.
5614         (Process_Function_Call): use Next, rather than Next_Actual, to analyze
5615         successive actuals before analyzing the call itself.
5616         (Try_Primitive_Operation): A primitive operation is compatible with the
5617         prefix if the prefix has a synchronized type and the type of the formal
5618         is its corresponding record, as can be the case when the primitive
5619         operation is declared outside of the body of the type.
5620         (Traverse_Homonyms): New subprocedure of Try_Class_Wide_Operation, to
5621         perform homonym traversal, looking for class-wide operation matches
5622         (formerly done in statements of Try_Class_Wide_Operation). Matches on
5623         access parameters are now restricted to anonymous access types.
5624         (Mark_Allocator): An allocator with a discriminant association parent is
5625         a coextension.
5626         (Try_One_Prefix_Interpretation): If the type of the object is
5627         incomplete, as can be happen when it is a limited view obtained through
5628         a limited_with_clause, the selected component is not part of a prefixed
5629         call.
5630         (Complete_Object_Operation): Diagnose properly an object that is not
5631         aliased when the corresponding controlling formal is an access
5632         parameter.
5633         (Try_Primitive_Operation, Try_Class_Wide_Operation): Diagnose properly
5634         ambiguous calls in prefixed notation, where two primitives differ only
5635         in that the controlling argument of one is an access parameter.
5636
5637         * sem_ch6.adb (Has_Single_Return): Add guard in code that determines
5638         whether a function that returns an unconstrained type can be inlined.
5639         (Process_Formals): Diagnose properly the illegal use of an incomplete
5640         type in the profile of an access_to_subprogram declaration.
5641         (Check_Synchronized_Overriding): Nothing check for concurrent types, the
5642         operations are attached to the corresponding record.
5643         (Analyze_Subprogram_Specification): Add variables Formal and Formal_Typ.
5644         When processing a primitive of a concurrent type which implements an
5645         interface change the type of all controlling formals to that of the
5646         corresponding record type.
5647         (Check_Synchronized_Overriding): Relax the conditional logic when trying
5648         to determine the tagged type to which a primitive belongs.
5649         (Check_Conventions): Capture condition to ignore a primitive operation
5650         (which is shared between the loop in Check_Conventions and the one in
5651         Check_Convention) in a new local function Skip_Check.
5652         (Check_Convention): Rename Prim_Op to Second_Prim_Op to avoid possible
5653         confusion with Check_Conventions' own Prim_Op local variable.
5654         (Create_Extra_Formals): Test for a tagged result type rather than a
5655         controlling result when determining whether to add a BIP_Alloc_Form
5656         formal and a BIP_Final_List formal to the function.
5657         (Check_Conformance); For parameters that are anonymous access types,
5658         subtype conformance requires that the not null and the constant
5659         indicators must match
5660         (Check_Synchronized_Overriding): New parameter Formal_Typ. Add machinery
5661         to retrieve the appropriate type when processing a concurrent type
5662         declared within a generic. Minor comment reformatting. Change invocation
5663         of Overrides_Synchronized_Primitive to Find_Overridden_Synchronized_Pri-
5664         mitive.
5665         (Analyze_Subprogram_Body): If the return type of a function is an
5666         anonymous access to the limited view of a class-wide type, and the
5667         non-limited view of the type is available, update the type of the
5668         function so that code can be generated.
5669         (Process_Formals): In case of access-subtype itype whose designated
5670         type is also an itype (situation that happens now with access to
5671         subprograms) we mark the access-type itype with the Has_Delayed_Freeze
5672         attribute to avoid backend problems.
5673         (Check_Return_Subtype_Indication): Replace R_Type with R_Stm_Type in
5674         init of R_Stm_Type_Is_Anon_Access. Also check that base types of the
5675         anonymous types' designated types are same before testing
5676         Subtypes_Statically_Match.
5677         (Create_Extra_Formals): Test for a named access parameter that is a
5678         controlling formal as an additional condition for adding an
5679         accessibility level formal. This can occur in the subp type created for
5680         dispatching calls in Expand_Dispatching_Call, and allows calling
5681         Create_Extra_Formals from that procedure rather than special-casing the
5682         extra formals there.
5683         (Create_Extra_Formals): Add BIP_Alloc_Form and BIP_Final_List formals
5684         when the function has a controlling result.
5685         (Check_Returns): Add much more knowledge of the optimization of local
5686         raise statements to gotos, to retain proper warnings in this case.
5687         (Check_Statement_Sequence): Ignore N_Push_xxx_Label and N_Pop_xxx_Label
5688         nodes when looking for last statement.
5689
5690         * sem_type.ads, sem_type.adb (Specific_Type): Add support for
5691         class-wide types visible through limited with clauses.
5692         (Add_One_Interp): If the operands are anonymous access types, the
5693         predefined operator on universal_access is immediately visibles
5694         (Find_Unique_Type): Handle anonymous access to subprogram types just as
5695         other anonymous access types.
5696         (Disambiguate): Take into account CIL convention.
5697         (Interface_Present_In_Ancestor): Add support for class-wide interfaces.
5698
5699 2007-06-06  Robert Dewar  <dewar@adacore.com>
5700
5701         * sinput.ads, sinput.adb, uintp.ads, urealp.adb, stringt.adb,
5702         sem_elim.adb, prj-strt.adb, repinfo.ads, repinfo.adb, namet.ads,
5703         elists.ads, elists.adb, lib.ads, lib.adb (Unlock): New procedure.
5704         Fix lower bound of tables.
5705         Add rep clauses.
5706
5707         * nlists.adb: Ditto.
5708         (Prev_Node, Next_Node): Change index type to Int so that it properly
5709         covers the range First_Node_Id - 1 up.
5710
5711 2007-06-06  Javier Miranda  <miranda@adacore.com>
5712             Ed Schonberg  <schonberg@adacore.com>
5713             Bob Duff  <duff@adacore.com>
5714             Hristian Kirtchev  <kirtchev@adacore.com>
5715
5716         * exp_aggr.ads, exp_aggr.adb: 
5717         (Build_Record_Aggr_Code): Add missing initialization of secondary tags
5718         in extension aggregates.
5719         (Flatten): Other conditions being met, an aggregate is static if the
5720         low bound given by component associations is different from the low
5721         bound of the base index type.
5722         (Packed_Array_Aggregate_Handled): If the component type is itself a
5723         packed array or record, the front-end must expand into assignments.
5724         (Gen_Ctrl_Actions_For_Aggr): In call to Init_Controller, pass False to
5725         Init_Pr, instead of Ancestor_Is_Expression.
5726         (Gen_Ctrl_Actions_For_Aggr): When processing an aggregate of a
5727         coextension chain root, either generate a list controller or use the
5728         already existing one.
5729         (Static_Array_Aggregate): New procedure to construct a positional
5730         aggregate that can be handled by the backend, when all bounds and
5731         components are compile-time known constants.
5732         (Expand_Record_Aggregate): Force conversion of aggregates of tagged
5733         types covering interface types into assignments.
5734         (Replace_Type): move to Build_Record_Aggr_Code.
5735         (Expand_Record_Aggr_Code): if the target of the aggregate is an
5736         interface type, convert to the definite type of the aggregate itself,
5737         so that needed components are visible.
5738         (Convert_Aggr_In_Object_Decl): If the aggregate has controlled
5739         components and the context is an extended return statement do not
5740         create a transient block for it, to prevent premature finalization
5741         before the return is executed.
5742         (Gen_Assign): Do not generate a call to deep adjust routine if the
5743         component type is itself an array of controlled (sub)-components
5744         initialized with an inner aggregate.
5745         (Component_Check): New name for Static_Check. This name is now more
5746         appropriate, and documentation is added which was missing.
5747         (Component_Check): Add test for bit aligned component value
5748         (Component_Not_OK_For_Backend): Renames Has_Delayed_Nested_Aggregate_Or_
5749         Tagged_Comps, name is more appropriate given added function below.
5750         (Component_Not_OK_For_Backend): Check for bit aligned component ref.
5751
5752 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
5753             Javier Miranda  <miranda@adacore.com>
5754             Robert Dewar  <dewar@adacore.com>
5755
5756         * exp_attr.adb (Expand_N_Attribute_Reference): Case Callable and
5757         Terminated: Add unchecked type conversion from System.Address to
5758         System.Tasking.Task_Id when calling the predefined primitive
5759         _disp_get_task_id.
5760         Disable new Ada 05 accessibility check for JVM.NET targets, which
5761         cannot be implemented in a practical way.
5762         (Expand_N_Attribute_Reference: case Attribute_Tag): The use of 'Tag in
5763         the sources always references the tag of the actual object. Therefore,
5764         if 'Tag is applied in the sources to class-wide interface objects we
5765         generate code that displaces "this" to reference the base of the object.
5766         (Expand_N_Attribute_Reference, case Size): Return specified size if
5767         known to front end.
5768         (Expand_N_Attribute_Reference): The expansion of the 'Address attribute
5769         has code that displaces the pointer of the object to manage interface
5770         types. However this code must not be executed when the prefix is a
5771         subprogram. This bug caused the wrong expansion of the internally
5772         generated assignment that fills the dispatch table when the primitive
5773         is a function returning a class-wide interface type.
5774         (Expand_N_Attribute_Reference:Attribute_Valid): Remove incorrect call to
5775         Set_Attribute_Name for Name_Unaligned_Valid.
5776
5777 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
5778             Gary Dismukes  <dismukes@adacore.com>
5779
5780         * exp_ch13.adb (Expand_N_Attribute_Definition_Clause, case 'Address):
5781         If the initialization is the equivalent aggregate of the initialization
5782         procedure of the type, do not remove it.
5783         (Expand_N_Attribute_Definition_Clause): Exclude access variables
5784         initialized to null from having their expression reset to empty and
5785         note this exception in the comment.
5786
5787 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
5788             Robert Dewar  <dewar@adacore.com>
5789             Ed Schonberg  <schonberg@adacore.com>
5790             Gary Dismukes  <dismukes@adacore.com>
5791
5792         * exp_ch2.adb: Remove "with" and "use" clauses for Namet and Snames.
5793         Add "with" and "use" clauses for Sem_Attr.
5794         (Expand_Current_Value): Do not replace occurences of attribute
5795         references where the prefix must be a simple name.
5796
5797         * sem_attr.ads, sem_attr.adb: Remove "with" and "use" clauses for
5798         Namet. Add new arrays Attribute_Name_Modifies_Prefix and
5799         Attribute_Requires_Simple_Name_Prefix.
5800         (Name_Modifies_Prefix): Body of new function.
5801         (Requires_Simple_Name_Prefix): Body of new function.
5802         (Resolve_Attribute, case Access): Improve error message for case of
5803         mismatched conventions.
5804         (Analyze_Attribute, case 'Tag): The prefix the attribute cannot be of an
5805         incomplete type.
5806         (Analyze_Attribute, case 'Access): If the type of the prefix is a
5807         constrained subtype for a nominal unconstrained type, use its base type
5808         to check for conformance with the context.
5809         (Resolve_Attribute): Remove test of the access type being associated
5810         with a return statement from condition for performing accessibility
5811         checks on access attributes, since this case is now captured by
5812         Is_Local_Anonymous_Access.
5813         (Analyze_Access_Attribute): Set Address_Taken on entity
5814         (Analyze_Attribute, case Address): Set Address_Taken on entity
5815         (OK_Self_Reference): Traverse tree to locate enclosing aggregate when
5816         validating an access attribute whose prefix is a current instance.
5817         (Resolve_Attribute): In case of attributes 'Code_Address and 'Address
5818         applied to dispatching operations, if freezing is required then we set
5819         the attribute Has_Delayed_Freeze in the prefix's entity.
5820         (Check_Local_Access): Set flag Suppress_Value_Tracking_On_Call in
5821         current scope if access of local subprogram taken
5822         (Analyze_Access_Attribute): Check legality of self-reference even if the
5823         expression comes from source, as when a single component association in
5824         an aggregate has a box association.
5825         (Resolve_Attribute, case 'Access): Do not apply accessibility checks to
5826         the prefix if it is a protected operation and the attribute is
5827         Unrestricted_Access.
5828         (Resolve_Attribute, case 'Access): Set the Etype of the attribute
5829         reference to the base type of the context, to force a constraint check
5830         when the context is an access subtype with an explicit constraint.
5831         (Analyze_Attribute, case 'Class): If the prefix is an interface and the
5832         node is rewritten as an interface conversion. leave unanalyzed after
5833         resolution, to ensure that type checking against the context will take
5834         place.
5835
5836 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
5837             Javier Miranda  <miranda@adacore.com>
5838             Robert Dewar  <dewar@adacore.com>
5839
5840         * exp_ch3.adb (Make_Controlling_Function_Wrappers): generate wrapper a
5841         wrapper when the full view of the controlling type of an inherited
5842         function that dispatches on result implements interfaces.
5843         (Expand_N_Object_Declaration): In cases where the type of the
5844         declaration is anonymous access, create finalization list for it.
5845         (Expand_N_Object_Declaration): Generate a persistent_bss directive only
5846         if the object has no explicit initialization, to match description of
5847         functionality of pragam Persistent_BSS.
5848         (Build_Equivalent_Array_Aggregate, Build_Equivalent_Record_Aggregate):
5849         new function to build static aggregates, to replace initialization call
5850         when static initialization is desired.
5851         (Freeze_Type): Generate a list controller for an access type whenever
5852         its designated type has controlled anonymous access discriminants.
5853         (Build_Equivalent_Aggregate): New procedure to compute a static
5854         aggregate to be used as default initialization for composite types,
5855         instead of a generating a call to the initialization procedure for the
5856         type.
5857         (Build_Initialization_Call): When available, replace a call to the
5858         initialization procedure with a copy of the equivalent static aggregate
5859         for the type.
5860         (Expand_N_Object_Declaration):  Use New_Occurrence_Of in generated
5861         declarations for objects of a class-wide interface type, rather than
5862         just identifiers, to prevent visibility problems.
5863         (Expand_N_Object_Declaration): When expanding the declaration for an
5864         object of a class-wide interface type, preserve the homonym chain of
5865         the original entity before exchanging it with that of the generated
5866         renaming declaration.
5867         (Freeze_Enumeration_Type): Don't raise CE if No_Exception_Propagation
5868         active, because there is no way to handle the exception.
5869         (Freeze_Record_Type): In case of CPP_Class types add a call to Make_DT
5870         to do a minimum decoration of the Access_Disp_Table list.
5871         (Expand_Record_Controller): Avoid the addition of the controller between
5872         the component containing the tag of a secondary dispatch table and its
5873         adjacent component that stores the offset to the base of the object.
5874         This latter component is only generated when the parent type has
5875         discriminants ---documented in Add_Interface_Tag_Components).
5876         (Apply_Array_Size_Check): Removed, no longer needed.
5877         (Expand_N_Full_Type_Declaration): If the type has anonymous access
5878         components, create a Master_Entity for it only if it contains tasks.
5879         (Build_Init_Procedure): Suppress the tag assignment compiling under
5880         no run-time mode.
5881         (Freeze_Record_Type): Remove code associated with creation of dispatch
5882         table.
5883         (Init_Secondary_Tags): Update type of actuals when generating calls to
5884         Ada.Tags.Set_Offset_To_Top
5885         (Stream_Operation_OK): Disable use of streams compiling under no
5886         run-time mode
5887         (Expand_N_Object_Declaration): Don't do Initialize_Scalars initalization
5888         if Has_Init_Expression set.
5889         (Build_Init_Procedure): Replace call to Fill_DT_Entry by call to
5890         Register_Primitive, which provides the same functionality.
5891         (Requires_Init_Proc): Return false in case of interface types.
5892         (Add_Secondary_Tables): Use the new attribute Related_Interface to
5893         cleanup the code.
5894         (Predefined_Primitive_Freeze): Do not assume that an internal entity
5895         is always associated with a predefined primitive because the internal
5896         entities associated with interface types are not predefined primitives.
5897         Therefore, the call to Is_Internal is replaced by a call to the
5898         function Is_Predefined_Dispatching_Operation.
5899         (Make_Eq_If): When generating the list of comparisons for the
5900         components of a given variant, omit the controller component that is
5901         present if the variant has controlled components.
5902
5903 2007-06-06  Javier Miranda  <miranda@adacore.com>
5904             Hristian Kirtchev  <kirtchev@adacore.com>
5905             Bob Duff  <duff@adacore.com>
5906
5907         * exp_ch4.adb (Complete_Coextension_Finalization): Add machinery to
5908         handle the creation of finalization lists and calls for nested
5909         coextensions when the root of the chains is part of a return statement.
5910         (Inside_A_Return_Statement): New function inside Complete_Coextension_
5911         Finalization.
5912         (Expand_Record_Equality): Skip components that are interface types.
5913         (Displace_Allocator_Pointer): Add missing support for interface subtypes
5914         (Expand_N_Allocator): Replace invocation of Is_Local_Access_Discriminant
5915         with Rewrite_Coextension. Change the condition for detecting coextension
5916         root nodes.
5917         (Is_Local_Access_Discriminant): Removed.
5918         (Rewrite_Coextension): New routine which rewrites a static coextension
5919         as a temporary and uses its unrestricted access in the construction of
5920         the outer object.
5921         (Complete_Coextension_Finalization): New routine. Generate finalization
5922         attachment calls to all delayed coextensions.
5923         (Expand_N_Allocator): Call Complete_Coextension_Finalization whenever
5924         the allocator is not a coextension itself and has delayed coextensions.
5925         If the current allocator is controlled, but also a coextension, delay
5926         the generation of the finalization attachment call.
5927         Rename local variable "Node" to "Nod" in order to avoid confusion with
5928         "Elists.Node".
5929         (Expand_Allocator_Expression): Call Adjust for initialized allocators of
5930         limited types that are not inherently limited. Such an allocator is
5931         illegal, but is generated by the expander for a return statement, to
5932         copy the result onto the secondary stack. This is the only case where a
5933         limited object can be copied. Generate code to displace the pointer
5934         to the object if the qualified expression is a class-wide interface
5935         object. Such displacement was missing and hence the copy of the object
5936         was wrong.
5937         (Apply_Accessibility_Check): Handle allocated objects initialized in
5938         place.
5939         (Displace_Allocator_Pointer): Subsidiary procedure to Expand_N_Allocator
5940         and Expand_Allocator_Expression. Allocating class-wide interface objects
5941         this routine displaces the pointer to the allocated object to reference
5942         the component referencing the corresponding secondary dispatch table.
5943         Expand_Allocator_Expression): Add missing support to allocate class-wide
5944         interface objects initialized with a qualified expression.
5945         (Get_Allocator_Final_List): Test for an anonymous access type that is a
5946         function result type, and use the finalization list associated with the
5947         function scope in that case (such an anonymous type should not be
5948         treated like an access parameter's type).
5949
5950 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
5951             Gary Dismukes  <dismukes@adacore.com>
5952             Javier Miranda  <miranda@adacore.com>
5953
5954         * exp_ch5.adb (Expand_N_Assignment_Statement): For the assignment of a
5955         controlled type, use Make_Handler_For_Ctrl_Operation to construct the
5956         required exception handler.
5957         (Expand_Simple_Function_Return, Expand_N_Return_Statement): Handle
5958         properly the case of a function whose return type is a limited
5959         class-wide interface type. Modify the code of the accessibility
5960         check to handle class-wide interface objects. In this case we need to
5961         displace "this" to reference the primary dispatch table to get access
5962         to the TSD of the object (to evaluate its accessibility level).
5963         (Expand_N_Extended_Return_Statement): Test for a tagged result type
5964         rather than a controlling result as one of the conditions for
5965         generating tests of the implicit BIP_Alloc_Form formal. The
5966         initialization assignment is also handled according to whether the
5967         result is tagged instead of controlling.
5968         In the case where the init assignment is inserted in the "then" part of
5969         the allocation conditional, rewrite the target to be a dereference of
5970         the implicit BIP_Object_Access formal.
5971         If the returned value is unconstrained and created on the secondary
5972         stack, mark the enclosing block and function so that the secondary
5973         stack is not reclaimed on return.
5974         Treat returns from functions with controlling results similarly to
5975         returns from functions with unconstrained result subtypes.
5976         If the object returned is unconstrained, and an allocator must be
5977         created for it, analyze the allocator once the block for the extended
5978         return is installed, to ensure that finalizable components
5979         of the expression use the proper finalization list. Guard the call to
5980         Move_Final_List with a check that there is something to finalize.
5981         (Make_Tag_Ctrl_Assignment): Use "old" handling
5982         of controlled type assignment for virtual machines, since new code uses
5983         unsupported features (such as direct access to bytes in memory).
5984
5985 2007-06-06  Gary Dismukes  <dismukes@adacore.com>
5986             Ed Schonberg  <schonberg@adacore.com>
5987
5988         * exp_ch6.ads, exp_ch6.adb (Expand_Call): When adding an extra
5989         accessibility actual, check for the case of an aliased object that has
5990         been rewritten as an Access attribute, and assign Prev to Prev_Orig so
5991         we fall into processing for the attribute rather than the name of the
5992         object.
5993         (Expand_Inline_Call): If an actual is a literal, and the corresponding
5994         formal has its address taken in the body, create a temporary to capture
5995         value.  If the return type is a limited interface, do not treat the
5996         return value as Controlled.
5997         (Is_In_Place_Function):  If the return type is a limited interface,
5998         treat as returning in place. The actual returned object may not always
5999         be limited, but the caller has to assume that it is returned in place.
6000         (Add_Final_List_Actual_To_Build_In_Place_Call): If the call is the
6001         context of an allocator, use the correct finalization chain (that is,
6002         the chain belonging to the access type, rather than the chain belonging
6003         to the current scope).
6004         (Add_Alloc_Form_Actual_To_Build_In_Place_Call): Test for a tagged
6005         result type rather than a controlling result as a precondition for
6006         adding an allocation form actual to a build-in-place call.
6007         (Add_Final_List_Actual_To_Build_In_Place_Call): Ditto.
6008         (Freeze_Subprogram): Code cleanup. Remove all the code that register the
6009         primitive in the dispatch tables. This work is now done by Make_DT when
6010         the type is frozen.
6011         (Register_Predefined_DT_Entry): Removed.
6012         (Add_Return): If end label is not present, use sloc of last statement
6013         for generated return statement in procedure, for better gdb behavior
6014         on expanded code.
6015         (Add_Access_Actual_To_Build_In_Place_Call): Set parent fields of the
6016         object address nodes to ensure proper processing by routines like
6017         Insert_After*.
6018         (Expand_Call): Fix generation of validity check for parameter
6019         (Add_Alloc_Form_Actual_To_Build_In_Place_Call): Return without passing
6020         the allocation form parameter if the result subtype is constrained,
6021         except when the function has a controlling result.
6022         (Add_Final_List_Actual_To_Build_In_Place_Call): Test Controlled_Type
6023         rather than Is_Controlled and Has_Controlled_Component, since we want to
6024         include class-wide result types in this treatment. Also test for a
6025         controlling result, since that also requires passing a finalization
6026         list.
6027         (Make_Build_In_Place_Call_In_Allocator): Call Add_Alloc_Form_Actual_*
6028         even when the result subtype is constrained, to handle calls involving
6029         controlling results.
6030         (Make_Build_In_Place_Call_In_Anonymous_Context): Add_Alloc_Form_Actual_*
6031         is now called even when the result subtype is constrained, to handle
6032         calls involving controlling results.
6033         (Make_Build_In_Place_Call_In_Assignment): Remove test for Is_Constrained
6034         on call to Add_Alloc_Form_Actual_To_Build_In_Place_Call (that procedure
6035         now performs the test).
6036         (Make_Build_In_Place_Call_In_Object_Declaration):
6037         Add_Alloc_Form_Actual_* is now called even when the result subtype is
6038         constrained, to handle calls involving controlling results.
6039         (Add_Return): Accomodate rewritten pattern from local raise to goto
6040         transformation, so that we still recognize an transfer statement
6041         and do the right thing here in that case.
6042         (Expand_N_Subprogram_Body): Add dummy Push/Pop_xxx_Label nodes at start
6043         and end of subprogram code.
6044         (Register_Interface_DT_Entry, Register_Predefined_DT_Entry): Add missing
6045         support for primitives that are functions (without formals) with a
6046         controlling result.
6047         (Inherited_From_Formal): If the actual subtype has not generic parent
6048         type, it is not an actual for a formal derived type, and there is no
6049         operation to inherit from the formal.
6050
6051 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
6052             Thomas Quinot  <quinot@adacore.com>
6053
6054         * exp_ch7.ads, exp_ch7.adb (Expand_Cleanup_Actions): Set Sloc of
6055         inserted cleanup code appropriately for GDB use.
6056         (Make_Deep_Proc): Use Make_Handler_For_Ctrl_Operation to create
6057         exception handler for Deep_Adjust or Deep_Finalize.
6058         (Make_Handler_For_Ctrl_Operation): New subprogram. When runtime entity
6059         Raise_From_Controlled_Operation is available, use a call to that
6060         subprogram instead of a plain "raise Program_Error" node to raise
6061         Program_Error if an exception is propagated from an Adjust or Finalize
6062         operation.
6063         (Insert_Actions_In_Scope_Around): If the statement to be wrapped
6064         appears in the optional statement list of a triggering alternative, the
6065         scope actions can be inserted directly there, and not in the list that
6066         includes the asynchronous select itself.
6067
6068 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
6069             Robert Dewar  <dewar@adacore.com>
6070             Hristian Kirtchev  <kirtchev@adacore.com>
6071
6072         * exp_ch9.ads, exp_ch9.adb (Build_Protected_Entry): Set sloc of
6073         generated exception handler appropriately when debugging generated code.
6074         Deal properly with No_Exception_Propagation restriction mode.
6075         (Expand_N_Abort_Statement): Add an unchecked type conversion from
6076         System.Address to System.Tasking.Task_Id when processing the result of
6077         the predefined primitive _disp_get_task_id.
6078         (Expand_N_Asynchronous_Select): Clarify comment.
6079         (Expand_N_Protected_Type_Declaration): Minor code cleanup.
6080         (Find_Parameter_Type): New routine inside Type_Conformant_Parameters.
6081         (Type_Conformant_Parameters): New parameter Prim_Op_Typ. Code cleanup.
6082         (Add_Private_Declarations, Build_Protected_Body): Use proper slocs for
6083         privals and for generated call to Complete_Entry_Body, for better gdb
6084         behavior.
6085         (Copy_Result_Type): Utility to construct a parameter and result profile
6086         for protected functions whose return type is an anonymous access to
6087         subprogram.
6088         (Build_Protected_Sub_Spec and Expand_Access_Protected_Subprogram_Type):
6089         call the above.
6090         (Build_Task_Activation_Call): Insert Activate_Tasks call at proper
6091         point when the local-raise-to-goto transformation has taken place.
6092
6093 2007-06-06  Javier Miranda  <miranda@adacore.com>
6094             Nicolas Setton  <setton@adacore.com>
6095
6096         * exp_dbug.adb (Get_Encoded_Name): Modified to continue providing its
6097         functionality when the backend is generating code.
6098         Otherwise any serious error
6099         reported by the backend calling the frontend routine Error_Msg
6100         changes the Compilation_Mode to Check_Semantics, disables the
6101         functionality of this routine and causes the generation of
6102         spureous additional errors.
6103
6104         * exp_dbug.ads (Pointers to Unconstrained Arrays): Document the
6105         debugging information now generated by the compiler for fat-pointer
6106         types.
6107         Document the contents of DW_AT_producer in the GNAT Vendor extensions to
6108         DWARF2/3.
6109         Document GNAT Vendor extensions to DWARF 2/3 and the "-gdwarf+" switch.
6110
6111 2007-06-06  Thomas Quinot  <quinot@adacore.com>
6112
6113         * exp_dist.ads, exp_dist.adb (Make_Transportable_Check): New subprogram
6114         (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
6115         PolyORB_Support.Build_Subprogram_Receiving_Stubs):
6116         For a remote call to a function with a classwide return type, apply an
6117         E.4(18) check to the returned value.
6118         (Add_RACW_Primitive_Declarations_And_Bodies): Do not generate stubs for
6119         stream attributes of the designated type of an RACW, as they are not
6120         dispatching primitive operations.
6121
6122 2007-06-06  Geert Bosch  <bosch@adacore.com>
6123
6124         * exp_fixd.adb (Integer_Literal): Add optional argument to construct a
6125         negative literal
6126         (Do_Divide_Fixed_Fixed): Add comments to indicate Frac is always
6127         positive
6128         (Do_Divide_Fixed_Universal): Handle case of negative Frac.
6129         (Do_Multiply_Fixed_Fixed): Add coments to indicate Frac is always
6130         positive
6131         (Do_Multiply_Fixed_Universal): Handle case of negative Frac.
6132
6133 2007-06-06  Javier Miranda  <miranda@adacore.com>
6134
6135         * exp_imgv.adb (Expand_Value_Attribute): Disable compilation of this
6136         attribute compiling package Ada.Tags under No_Run_Time_Mode.
6137
6138 2007-06-06  Javier Miranda  <miranda@adacore.com>
6139
6140         * exp_intr.adb (Expand_Unc_Deallocation): Add missing support for
6141         deallocation of class-wide interface objects.
6142         (Expand_Dispatching_Constructor_Call): Take into account that if the
6143         result of the dispatching constructor is an interface type, the
6144         function returns a class-wide interface type; otherwise the returned
6145         object would be actual. The frontend previously accepted returning
6146         interface types because Expand_Interface_Actuals silently performed
6147         the management of the returned type "as if" it were a class-wide
6148         interface type.
6149         (Expand_Dispatching_Constructor_Call): Replace call to
6150         Make_DT_Access_Action by direct call to Make_Function_Call.
6151
6152 2007-06-06  Robert Dewar  <dewar@adacore.com>
6153             Ed Schonberg  <schonberg@adacore.com>
6154
6155         * exp_pakd.adb (Expand_Packed_Not): Use RM_Size rather than ESize to
6156         compute masking constant, since we now set Esize properly to the
6157         underlying size.
6158         (Create_Packed_Array_Type): Set proper Esize value adjusted as required
6159         to match the alignment.
6160         (Create_Packed_Array_Type): Use Short_Short_Unsigned as base type for
6161         packed arrays of 8 bits or less.
6162
6163         * freeze.adb (Freeze_Entity): When freezing the formals of a
6164         subprogram, freeze the designated type of a parameter of an access type
6165         only if it is an access parameter.
6166         Increase size of C convention enumeration object
6167         (Freeze_Entity, array type case): Make sure Esize value is properly
6168         adjusted for the alignment if it is known.
6169         (Freeze_Entity, array type case): When checking bit packed arrays for
6170         the size being incorrect, check RM_Size, not Esize.
6171         (Freeze_Record_Type): Check for bad discriminated record convention
6172         (In_Exp_Body): Return true if the body is generated for a subprogram
6173         renaming, either an attribute renaming or a renaming as body.
6174         (Check_Itype): If the designated type of an anonymous access component
6175         is a non-protected subprogram type, indicate that it is frozen, to
6176         prevent out-of-scope freeze node at some subsequent call.
6177         (Freeze_Subprogram): On OpenVMS, reject descriptor passing mechanism
6178         only if the subprogram is neither imported nor exported, as well as the
6179         NCA descriptor class if the subprogram is exported.
6180
6181 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
6182             Arnaud Charlet  <charlet@adacore.com>
6183             Robert Dewar  <dewar@adacore.com>
6184             Gary Dismukes  <dismukes@adacore.com>
6185
6186         * exp_prag.adb (Expand_Pragma_Import_Or_Interface): Remove properly a
6187         default initialization on an imported object, when there is no
6188         initialization call generated for it.
6189         (Expand_Pragma_Assert): Add handling of No_Exception_Propagation
6190         restriction
6191
6192         * snames.h, snames.ads, snames.adb, par-prag.adb: New pragma
6193         Static_Elaboration_Desired.
6194         Remove pragma Thread_Body.
6195         Implement a new pragma No_Body
6196         Removes the Explicit_Overriding pragma
6197         Remove Optional_Overriding pragma
6198         (Prag): Deal with Universal_Aliasing.
6199         (Name_CIL, Name_CIL_Constructor, Convention_CIL,
6200         Pragma_CIL_Constructor): New names.
6201
6202         * sem_cat.adb (Validate_Object_Declaration): An initialization that
6203         uses the equivalent aggregate of a type must be treated as an implicit
6204         initialization.
6205         (Get_Categorization): Check a unit for pragma Preelaborate only if it
6206         has none of the other categories.
6207         (Process_Import_Or_Interface_Pragma): Report an error for an attempt
6208         to apply Import to an object renaming declaration.
6209
6210         * sem_prag.adb (Process_Import_Or_Interface): Warn that a type imported
6211         from a C++ class should be declared as limited and that it will be
6212         considererd limited.
6213         (Analyze_Pragma): Warn that a type specified with pragma CPP_Class
6214         should be declared as limited and that it will be considererd limited.
6215         (Ada_2005_Pragma): New procedure, used to deal with Ada 2005 pragmas
6216         (Analyze_Pragma, case Export): Diagnose export of enumeration literal
6217         (Analyze_Pragma): Deal with Universal_Aliasing.
6218         (Sig_Flags): Likewise.
6219         (Set_Encoded_Interface_Name): Suppress encoding when compiling for AAMP.
6220         (Overflow_Checks_Unsuppressed): New flag.
6221         (Process_Suppress_Unsuppress): Set Overflow_Checks_Unsuppressed.
6222         (Analyze_Pragma [case Pack]): Ignore pragma Pack and post warning in
6223         case of JVM or .NET targets, and compiling user code.
6224         Add debugging convenience routine rv
6225
6226 2007-06-06  Robert Dewar  <dewar@adacore.com>
6227
6228         * exp_strm.adb (Make_Field_Attributes): Avoid _Parent components that
6229         are interface type.
6230         (Build_Elementary_Input_Call): For floating-point use right type in the
6231         absence of strange size or stream size clauses.
6232         (Build_Elementary_Write_Call): Same fix
6233         (Has_Stream_Standard_Rep): Returns False if Stream_Size attribute
6234         set to value that does not match base type size.
6235
6236 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
6237
6238         * exp_util.ads, exp_util.adb (Expand_Subtype_From_Expr): In Ada2005, an
6239         object of a limited type can be initialized with a call to a function
6240         that returns in place. If the limited type has unknown discriminants,
6241         and the underlying type is a constrained composite type, build an actual
6242         subtype from the function call, as is done for private types.
6243         (Side_Effect_Free): An expression that is the renaming of an object or
6244         whose prefix is the renaming of a object, is not side-effect free
6245         because it may be assigned through the renaming and its value must be
6246         captured in a temporary.
6247         (Has_Controlled_Coextensions): New routine.
6248         (Expand_Subtype_From_Expr): Do nothing if type is a limited interface,
6249         as is done for other limited types.
6250         (Non_Limited_Designated_Type): new predicate.
6251         (Make_CW_Equivalent_Type): Modified to handle class-wide interface
6252         objects.
6253         Remove all handling of with_type clauses.
6254
6255         * par-ch10.adb: Remove all handling of with_type clauses.
6256
6257         * lib-load.ads, lib-load.adb (Load_Main_Source): Do not get the
6258         checksum if the main source could not be parsed.
6259         (Loat_Unit): When processing a child unit, determine properly whether
6260         the parent unit is a renaming when the parent is itself a child unit.
6261         Remove handling of with_type clauses.
6262
6263         * sinfo.ads, sinfo.adb (Is_Static_Coextension): New function.
6264         (Set_Is_Static_Coextension): New procedure.
6265         (Has_Local_Raise): New function
6266         (Set_Has_Local_Raise): New procedure
6267         (Renaming_Exception): New field
6268         (Has_Init_Expression): New flag
6269         (Delay_Finalize_Attach): Remove because flag is obsolete.
6270         (Set_Delay_Finalize_Attach): Remove because flag is obsolete.
6271         Remove all handling of with_type clauses.
6272         (Exception_Junk): Can now be set in N_Block_Statement
6273
6274 2007-06-06  Vincent Celier  <celier@adacore.com>
6275             Robert Dewar  <dewar@adacore.com>
6276
6277         * frontend.adb (Frontend): Return immediately if the main source could
6278         not be parsed, because of preprocessing errors.
6279
6280         * gnat1drv.adb (gnat1drv): Handle RE_Not_Available gracefully.
6281         (Gnat1drv): Exit with errors if the main source could not be parsed,
6282         because of preprocessing errors.
6283         (Check_Rep_Info): New procedure
6284
6285 2007-06-06  Robert Dewar  <dewar@adacore.com>
6286
6287         * g-hesorg.ads, g-heasor.ads,
6288         g-busorg.ads, g-bubsor.ads: Update documentation
6289         GNAT.Heap/Bubble_Sort_G is now pure
6290
6291 2007-06-06  Robert Dewar  <dewar@adacore.com>
6292
6293         * g-catiio.ads, g-catiio.adb (Image): Check for null picture string
6294
6295 2007-06-06  Robert Dewar  <dewar@adacore.com>
6296             Ed Schonberg  <schonberg@adacore.com>
6297
6298         * g-comlin.ads, g-comlin.adb: 
6299         Add new warning for renaming of function return objects
6300
6301         * opt.adb (Tree_Write, Tree_Read): Use proper expressions for size
6302         (Tree_Read): Use size of object instead of type'object_size, since the
6303         latter is incorrect for packed array types.
6304         (Tree_Write): Same fix
6305
6306         * opt.ads: Add new warning for renaming of function return objects
6307         (Generating_Code): New boolean variable used to indicate that the
6308         frontend as finished its work and has called the backend to process
6309         the tree and generate the object file.
6310         (GCC_Version): Is now private
6311         (Static_Dispatch_Tables): New constant declaration.
6312         (Overflow_Checks_Unsuppressed): New flag.
6313         (Process_Suppress_Unsuppress): Set Overflow_Checks_Unsuppressed.
6314         (List_Closure): New flag for gnatbind (-R)
6315         Zero_Formatting: New flag for gnatbind (-Z)
6316         (Special_Exception_Package_Used): New flag.
6317         (Warn_On_Unrepped_Components): New flag.
6318
6319         * sem_ch8.adb (Check_Library_Unit_Renaming): Check that the renamed
6320         unit is a compilation unit, rather than relying on its scope, so that
6321         Standard can be renamed.
6322         (Analyze_Object_Renaming): Add new warning for renaming of function
6323         return objects.
6324         Also reject attempt to rename function return object in Ada 83 mode.
6325         (Attribute_Renaming): In case of tagged types, add the body of the
6326         generated function to the freezing actions of the type.
6327         (Find_Type): A protected type is visible right after the reserved word
6328         "is" is encountered in its type declaration. Set the entity and type
6329         rather than emitting an error message.
6330         (New_Scope): Properly propagate Discard_Names to inner scopes
6331         (Check_Nested_Access): New procedure.
6332         (Has_Nested_Access, Set_Has_Nested_Access): New procedures.
6333         (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
6334
6335         * sem_warn.ads, sem_warn.adb: Improvements to infinite loop warning
6336         Add new warning for renaming of function return objects
6337         (Check_References): Suppress warnings for objects whose type or
6338         base type has Warnings suppressed.
6339         (Set_Dot_Warning_Switch): Add processing for -gnatw.c/C
6340         (Set_Warning_Switch): Include new -gnatwc in -gnatwa
6341
6342 2007-06-06  Vincent Celier  <celier@adacore.com>
6343             Emmanuel Briot  <briot@adacore.com>
6344             Olivier Hainque  <hainque@adacore.com>
6345
6346         * g-debpoo.ads, g-debpoo.adb (Free_Physically.Free_Blocks): Use the
6347         absolute value of Header.Block_Size when displaying the freed physical
6348         memory in traces.
6349         (Allocate): Compute Storage_Address using Integer_Address, not
6350         Storage_Offset, because the range of Storage_Offset may not be large
6351         enough.
6352         (Configure): New parameter Low_Level_Traces
6353         (Allocate, Deallocation, Free_Physically): Added low-level traces
6354         (Configure): new parameter Errors_To_Stdout.
6355         (Output_File): new subprogram
6356         (Deallocate, Dereference): Send error messages to the proper stream
6357         (Print_Pool, Print_Info_Stdout): Make sure the output goes to stdout, as
6358         documented. Previous code would send it to the current output file
6359         defined in GNAT.IO, which might not be stdout
6360         (Is_Valid): Adjust comment to mention that a positive reply means that
6361         Header_Of may be used to retrieve the allocation header associated with
6362         the subprogram Storage address argument. Return False early if this
6363         address argument is misaligned.
6364
6365 2007-06-06  Vincent Celier  <celier@adacore.com>
6366
6367         * gnatcmd.adb (GNATCmd): Accept switch -aP for commands that accept
6368         switch -P
6369         (ASIS_Main): New global variable
6370         (Get_Closure): New procedure
6371         (GNATCmd): Set ASIS_Main when -P and -U with a main is used for gnat
6372         check, metric or pretty. Call Get_Closure in this case.
6373         (Check_Files): For GNAT LIST, check all sources of all projects when
6374         All_Projects is True.
6375         (GNATCmd): Accept -U for GNAT LIST
6376
6377 2007-06-06  Vincent Celier  <celier@adacore.com>
6378
6379         * gnatlink.adb (Gnatlink): Do not specify -static-libgcc when --LINK=
6380         has been specified
6381         Correct error message when invocation of the linker fails
6382         Add explicit size clause for the C imported variables
6383         Object_List_File_Supported and Using_GNU_Linker to emphasize that
6384         we expect char size.
6385         Read target parameters earlier, since this is needed to set
6386         Target_VM properly. Also do not use -static/shared-libgcc for non GCC
6387         targets.
6388
6389 2007-06-06  Vincent Celier  <celier@adacore.com>
6390
6391         * gnatls.adb: 
6392         Add 3 spaces before the default project directory when displaying
6393         the project search path.
6394         Add new command line switch '-l' to display license information.
6395
6396 2007-06-06  Vasiliy Fofanov  <fofanov@adacore.com>
6397
6398         * gmem.c: Add support for timestamps on memory operations.
6399
6400         * memtrack.adb, gnatmem.adb: Add support for timestamps on memory
6401         operations (not used currently, just foundation for future
6402         enhancements). Add possibility to perform full dump of gmem.out file.
6403         (Print_Back_Traces): Declare accesses to root arrays constants since
6404         they aren't modified.
6405         (Print_Back_Traces): allocate root arrays on the heap rather than stack.
6406
6407 2007-06-06  Vincent Celier  <celier@adacore.com>
6408
6409         * gnatsym.adb: Update Copyright notice
6410         (Parse_Cmd_Line): Accept new switch -D
6411         (Gnatsym): In Direct policy (switch -D) copy reference file to symbol
6412          file.
6413
6414         * prj.ads (Policy): New policy Direct
6415         (Yes_No_Unknown): New enumeration type
6416         (Project_Data): New component Libgnarl_Needed
6417
6418         * prj-nmsc.adb (Check_For_Source): When recording a source file make
6419         use the untouched pathname casing.
6420         (Get_Directories): Ensure that the Display_Exec_Directory is using the
6421         proper casing on non case-sensitive platforms like Windows.
6422         (Get_Unit): Accept file names x__... and x~... (where x = a, g, i or s)
6423         on all platforms, as it is not possible to know which one is allowed
6424         before processing the project files.
6425         (Check_Stand_Alone_Library): Check that Library_Reference_Symbol_File is
6426         specified when symbol policy is Direct. Check that when there is a
6427         symbol file defined (either by default or with attribute
6428         Library_Symbol_File) it is not the same as the reference symbol file.
6429         (Check_Stand_Alone_Library): Recognize new symbol policy Direct.
6430         (Look_For_Sources): Allow Locally_Removed_Files to be declare in non
6431         extending projects.
6432         (Record_Ada_Source): Record a source that has been locally removed in an
6433         imported project.
6434
6435         * symbols.ads (Policy): New policy Direct
6436
6437         * symbols-vms.adb (Initialize): Take new policy Direct in case
6438         statement
6439
6440 2007-06-06  Vincent Celier  <celier@adacore.com>
6441
6442         * g-os_lib.ads, g-os_lib.adb (Normalize_Pathname.Get_Directory):
6443         Correct obvious bug (return Dir; instead of return Directory;).
6444         (Normalize_Pathname): Use Reference_Dir'Length, not Reference_Dir'Last
6445
6446 2007-06-06  Thomas Quinot  <quinot@adacore.com>
6447
6448         * g-pehage.adb (Produce): Open output files in Binary mode, so that
6449         they have UNIX line endings (LF only) even on Windows, and thus pass
6450         all GNAT style checks.
6451
6452 2007-06-06  Emmanuel Briot  <briot@adacore.com>
6453
6454         * g-regpat.adb (Quote): Fix improper quoting of '.'
6455
6456 2007-06-06  Thomas Quinot  <quinot@adacore.com>
6457
6458         * g-soccon.ads: Add new constant Thread_Blocking_IO, always True by
6459         default, set False on a per-runtime basis.
6460         (Need_Netdb_Buffer): New constant.
6461
6462         * g-socket.ads, g-socket.adb: Import new package
6463         GNAT.Sockets.Thin.Task_Safe_NetDB.
6464         (Raise_Host_Error): Use Host_Error_Message from platform-specific thin
6465         binding to obtain proper message.
6466         (Close_Selector): Use GNAT.Sockets.Thin.Signalling_Fds.Close.
6467         Replace various occurrences of Arry (Arry'First)'Address with the
6468         equivalent Arry'Address (GNAT always follows implementation advice from
6469         13.3(14)).
6470         (Get_Host_By_Address, Get_Host_By_Name,
6471         Get_Service_By_Name, Get_Service_By_Port): Do not use GNAT.Task_Lock;
6472         instead, rely on platform-specific task safe netdb operations provided
6473         by g-socthi.
6474
6475         * g-socthi.ads, g-socthi.adb (Initialize): Remove obsolete formal
6476         parameter Process_Blocking_IO.
6477         (Host_Error_Messages): Add stub body.
6478         (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
6479         (Safe_Gethostbyname, Safe_Gethostbyaddr, Safe_Getservbyname,
6480         Safe_Getservbyport): Move functions into new child package
6481         Task_Safe_NetDB.
6482         (Nonreentrant_Gethostbyname, Nonreentrant_Gethostbyaddr,
6483         Nonreentrant_Getservbyname, Nonreentrant_Getservbyport): New routines.
6484         (In_Addr): Add alignment clause.
6485
6486 2007-06-06  Robert Dewar  <dewar@adacore.com>
6487
6488         * g-trasym.ads, g-traceb.ads: Update list of supported targets
6489         Add note about symbolic traceback
6490
6491 2007-06-06  Pascal Obry  <obry@adacore.com>
6492
6493         * hostparm.ads (Normalized_CWD): Use the host directory separator
6494         instead of the hardcoded forward slash which is not the proper
6495         character on Windows for example.
6496         (Java_VM): Removed.
6497
6498 2007-06-06  Vincent Celier  <celier@adacore.com>
6499             Arnaud Charlet  <charlet@adacore.com>
6500
6501         * a-clrefi.adb, a-clrefi.ads: New files
6502
6503         * impunit.adb: Add s-os_lib in the list of user visible units.
6504         (Non_Imp_File_Names_95): Add a-clrefi to this list
6505         Remove obsolete run-time entries.
6506         (Non_Imp_File_Names_05): Add Ada 2005 entries for:
6507          "a-exetim" -- Ada.Execution_Time
6508          "a-extiti" -- Ada.Execution_Time.Timers
6509
6510         * mlib-prj.ads, mlib-prj.adb
6511         (Build_Library): Use untouched object dir and library dir. At the
6512         same time makes sure that the checks are done using the canonical
6513         form. Removes hard-coded directory separator and use the proper host
6514         one instead.
6515         (Process_Project): Do not look in object directory to check if libgnarl
6516         is needed for a library, if there is no object directory.
6517         (Build_Library): Scan the ALI files to decide if libgnarl is needed for
6518         linking.
6519         (Build_Library): When invoking gnatbind, use a response file if the
6520         total size of the arguments is too large.
6521
6522         * Makefile.rtl: (g-sttsne): New object file.
6523         Add entry for a-clrefi, s-utf_32, System.Exceptions
6524
6525         * Make-lang.in: Remove bogus dependency of s-memory.o on memtrack.o.
6526         (GNAT_ADA_OBJS, GNATBIND_OBJS): Add s-except.o.
6527         (GNATBIND_OBJS): Add new objects a-clrefi.o and a-comlin.o
6528         Change g-string to s-string, g-os_lib to s-os_lib
6529         Change all g-utf_32 references to s-utf_32
6530
6531 2007-06-06  Tristan Gingold  <gingold@adacore.com>
6532             Olivier Hainque  <hainque@adacore.com>
6533
6534         * init.c: Do not adjust IP of an imported VMS exception of ia64.
6535         LIB$STOP is called to raise an exception and the IP of the exception
6536         is the instruction right after the call.
6537         (__gnat_adjust_context_for_raise, AIX): Implement.
6538         (__gnat_error_handler, AIX): Accept SIGINFO related arguments and call
6539          adjust_context_for_raise before Raise_From_Signal_Hanler.
6540         (__gnat_install_handler, AIX): Add SA_SIGINFO to the sa_flags, to ensure
6541         siginfo is passed to the handler, necessary to let the zcx propagation
6542         engine unwind past it.
6543
6544 2007-06-06  Olivier Hainque  <hainque@adacore.com>
6545
6546         * initialize.c (__gnat_initialize for vxworks):  Update documentation
6547         on the ZCX support, using different sets of crtstuff objects than with
6548         GCC 3.4.
6549
6550 2007-06-06  Robert Dewar  <dewar@adacore.com>
6551
6552         * layout.ads, layout.adb (Adjust_Esize_Alignment): Move spec to package
6553         spec from body
6554         (Layout_Type): Fix recomputation of size from alignment.
6555
6556 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
6557             Javier Miranda  <miranda@adacore.com>
6558
6559         * sem_ch12.adb (Analyze_Associations): Diagnose use of an others
6560         association in an instance.
6561         (Copy_Generic_Node): If the node is a string literal, no need to copy
6562         its descendants.
6563         (Is_Generic_Formal): For a formal subprogram, the declaration is the
6564         grandparent of the entity.
6565         (Analyze_Formal_Interface_Type): Transform into a full type declaration,
6566         to simplify handling of formal interfaces that derive from other formal
6567         interfaces.
6568         (Instantiate_Subprogram_Body): The defining unit name of the body of
6569         the instance should be a defining identifier.
6570         (Install_Formal_Packages): make global to the package, for use in
6571         instantiations of child units.
6572         (Analyze_Package_Instantiation): Do not attempt to set information on an
6573         enclosing master of an entry when expansion is disabled.
6574         (Instantiate_Type): If the actual is a tagged synchronized type and the
6575         generic ancestor is an interface, create a generic actual for the
6576         corresponding record.
6577         (Analyze_Formal_Derived_Interface_Type): Rewrite as a derived type
6578         declaration, to ensure that the interface list is processed correctly.
6579         (Inline_Instance_Body): If enclosing scope is an instance body, remove
6580         its entities from visibiility as well.
6581         (Pre_Analyze_Actuals): if the actual is an allocator with  constraints
6582         given with a named association, analyze the expression only, not the
6583         discriminant association itself.
6584         (Reset_Entity): If the analysis of a selected component is transformed
6585         into an expanded name in the prefix of a call with parameters, do not
6586         transform the original node into an expanded name, to prevent visibility
6587         errors in the case of nested generics.
6588         (Check_Private_View): For an array type, check whether the index types
6589         may need exchanging.
6590
6591 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
6592             Vincent Celier  <celier@adacore.com>
6593
6594         * lib-writ.adb: Handle Convention_CIL in addition to Convention_Java,
6595         since both are separated.
6596         Add support for imported CIL packages.
6597         Add further special handling of "value_type" for CIL.
6598         Add special handling of pragma Import for CIL.
6599
6600         * make.ads, make.adb: When switch -eS is used, direct all outputs to
6601         standard output instead of standard error, except errors.
6602         (Absolute_Path): Use untouched casing for the parent directory.
6603         (Add_Library_Search_Dir): Use the untouched directory name.
6604         (Add_Source_Search_Dir): Idem.
6605         (Change_To_Object_Directory): Update output to use proper casing.
6606         (Create_Binder_Mapping_File): Use the untouched filename to set
6607         ALI_Name.
6608         (Gnatmake): Use untouched library and executable directory names.
6609         (Insert_Project_Sources): Use untouched filename for spec and body.
6610         (Is_In_Object_Directory): Use untouched object directory.
6611         (Mark_Directory): Idem.
6612         (Collect_Arguments_And_Compile): Ensure that Full_Source_File always
6613         contains the non-canonical filename in all cases.
6614         (Change_To_Object_Directory): In verbose mode, display the name of the
6615         object directory we're changing to.
6616         (Compile_Sources): Make sure, when a project file is used, to compile
6617         the body of the unit, when there is one, even when only the spec is
6618         recorded in an ALI file.
6619         (Gcc_Switches, Binder_Switches, Linker_Switches): Tables moved from the
6620         spec to the body.
6621         (Report_Compilation_Failed): New procedure
6622         (Bind, Display_Commands, Compile_Sources, Initialize, Scan_Make_Arg):
6623         procedures moved from the spec to the body.
6624         (Extract_Failure): Removed, not used
6625         Replace explicit raises of exception Bind_Failed and Link_Failed with
6626         calls to Make_Failed with the proper message.
6627         Replace explicit raises of exception Compilation_Failed with calls to
6628         procedure Report_Compilation_Failed.
6629         (Initialize): Create mapping files unconditionally when using project
6630         files.
6631
6632         * sem_mech.adb: (Name_CIL, Name_CIL_Constructor, Convention_CIL,
6633         Pragma_CIL_Constructor): New names.
6634
6635         * targparm.ads, targparm.adb
6636         (Compiler_System_Version): Removed, no longer used.
6637         (Get_Target_Parameters): Relax checks on system.ads validity. Add
6638         handling of two new system flags: JVM and CLI.
6639
6640 2007-06-06  Jose Ruiz  <ruiz@adacore.com>
6641             Arnaud Charlet  <charlet@adacore.com>
6642
6643         * Makefile.in (LIBGNAT_TARGET_PAIRS for VxWorks 6): For the RTP run
6644         time, use the default s-interr body that provides interrupt support
6645         based on signals.
6646         (LIBGNAT_TARGET_PAIRS for x86-linux): Use specialized versions of
6647         a-exetim.ad{s,b}, a-extiti.ad{s,b}, a-rttiev.ad{s,b}, s-osinte.ad{s,b},
6648         g-soccon.ads, and s-taprop.adb for the marte run time.
6649         (EXTRA_GNATRTL_TASKING_OBJS for x86-linux): Execution time clocks and
6650         timers are supported on marte.
6651         (EH_MECHANISM for marte): Do not use ZCX.
6652         (THREADSLIB for marte): Use -lmarte.
6653         Add mlib-tgt-vms.o to the list of objects for gnatmake for VMS
6654         Add mlib-tgt-specific.o to gnatmake objects
6655         mlib-tgt-<platforms>.adb is now the body of MLib.Tgt.Specific, no
6656         longer of MLib.Tgt.
6657         (LIBGNAT_TARGET_PAIRS for vxworks): When building a run time for VxWorks
6658         6, either kernel or rtp, use a specialized version of s-osinte.ads.
6659
6660 2007-06-06  Pascal Obry  <obry@adacore.com>
6661
6662         * mkdir.c (__gnat_mkdir): Add support for UTF-8.
6663
6664 2007-06-06  Vincent Celier  <celier@adacore.com>
6665
6666         * mlib.ads, mlib.adb (Build_Library): Do not use hard-coded directory
6667         separator, use instead the proper host directory separator.
6668         (Copy_ALI_Files): Make sure that an already existing ALI file in the
6669         ALI copy dir is writable, before doing the copy.
6670
6671         * mlib-utl.ads, mlib-utl.adb: 
6672         (Gcc): If length of command line is too long, put the list of object
6673         files in a response file, if this is supported by the platform.
6674         (Ar): If invocation of the archive builder is allowed to be done in
6675         chunks and building it in one shot would go above an OS dependent
6676         limit on the number of characters on the command line, build the archive
6677         in chunks.
6678
6679 2007-06-06  Vincent Celier  <celier@adacore.com>
6680
6681         * osinte-c.ads, osint-c.adb (Set_Library_Info_Name): Fail if base name
6682         of specified object file is not equal to base name of source.
6683
6684 2007-06-06  Javier Miranda  <miranda@adacore.com>
6685             Hristian Kirtchev  <kirtchev@adacore.com>
6686             Ed Schonberg  <schonberg@adacore.com>
6687
6688         * sem_ch3.adb (Process_Full_View): Propagate the CPP_Class attribute to
6689         the full type declaration.
6690         (Analyze_Component_Declaration): Add local variable E to capture the
6691         initialization expression of the declaration. Replace the occurences of
6692         Expression (N) with E.
6693         (OK_For_Limited_Init_In_05): Allow initialization of class-wide
6694         limited interface object with a function call.
6695         (Array_Type_Declaration): If the declaration lacks subtype marks for
6696         indices, create a simple index list to prevent cascaded errors.
6697         (Is_Null_Extension): Ignore internal components created for secondary
6698         tags when checking whether a record extension is a null extension.
6699         (Check_Abstract_Interfaces): Add missing support for interface subtypes
6700         and generic formals.
6701         (Derived_Type_Declaration): Add missing support for interface subtypes
6702         and generic formals.
6703         (Analyze_Object_Declaration): If an initialization expression is
6704         present, traverse its subtree and mark all allocators as static
6705         coextensions.
6706         (Add_Interface_Tag_Component): When looking for components that may be
6707         secondary tags, ignore pragmas that can appear within a record
6708         declaration.
6709         (Check_Abstract_Overriding): an inherited function that dispatches on
6710         result does not need to be overriden if the controlling type is a null
6711         extension.
6712         (Mentions_T): Handle properly a 'class attribute in an anonymous access
6713         component declaration, when the prefix is an expanded name.
6714         (Inherit_Component): If the derivation is for a private extension,
6715         inherited components remain visible and their ekind should not be set
6716         to Void.
6717         (Find_Type_Of_Object): In the case of an access definition, always set
6718         Is_Local_Anonymous_Access. We were previously not marking the anonymous
6719         access type of a return object as a local anonymous type.
6720         (Make_Index): Use Ambiguous_Character to report ambiguity on a discrete
6721         range with character literal bounds.
6722         (Constrain_Array): Initialize the Packed_Array_Type field to Empty.
6723         (Access_Subprogram_Declaration): Indicate that the type declaration
6724         depends on an incomplete type only if the incomplete type is declared
6725         in an open scope.
6726         (Analyze_Subtype_Declaration): Handle properly subtypes of
6727         synchronized types that are tagged, and that may appear as generic
6728         actuals.
6729         (Access_Subprogram_Declaration): An anonymous access to subprogram can
6730         appear as an access discriminant in a private type declaration.
6731         (Add_Interface_Tag_Components): Complete decoration of the component
6732         containing the tag of a secondary dispatch table and the component
6733         containing the offset to the base of the object (this latter component
6734         is only generated when the parent type has discriminants --as documented
6735         in this routine).
6736         (Inherit_Components): Use the new decoration of the tag components to
6737         improve the condition that avoids inheriting the components associated
6738         with secondary tags of the parent.
6739         (Build_Discriminanted_Subtype): Indicate to the backend that the
6740         size of record types associated with dispatch tables is known at
6741         compile time.
6742         (Analyze_Subtype_Declaration): Propagate Is_Interface flag when needed.
6743         (Analyze_Interface_Declaration): Change setting of Is_Limited_Interface
6744         to include task, protected, and synchronized interfaces as limited
6745         interfaces.
6746         (Process_Discriminants): Remove the setting of
6747         Is_Local_Anonymous_Access on the type of (anonymous) access
6748         discriminants of nonlimited types.
6749         (Analyze_Interface_Type_Declaration): Complete the decoration of the
6750         class-wide entity it is is already present. This situation occurs if
6751         the limited-view has been previously built.
6752         (Enumeration_Type_Declaration): Initialize properly the Enum_Pos_To_Rep
6753         field.
6754         (Add_Interface_Tag_Components.Add_Tag): Set the value of the attribute
6755         Related_Interface.
6756
6757 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
6758
6759         * sem_aggr.adb (Resolve_Record_Aggregate): Ignore internal components
6760         of the type that specify the position of interface tags when the type
6761         inherits discriminated array components from the parent type.
6762         If a component is initialized with a box, check for the presence of a
6763         default expression in its declaration before using its default
6764         initialization procedure.
6765         (Resolve_Record_Aggregate): If a component is box-initialized, and the
6766         component type has a discriminants, create a partial aggregate for it
6767         by copying the discriminants of the component subtype.
6768         Reject attempt to initialize a discriminant with a box.
6769         (Array_Aggr_Subtype): Indicate to the backend that the size of arrays
6770         associated with dispatch tables is known at compile time.
6771         (Get_Value): If an association in a record aggregate has a box
6772         association, and the corresponding record component has a default
6773         expression, always copy the default expression, even when the
6774         association has a single choice, in order to create a proper
6775         association for the expanded aggregate.
6776
6777 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
6778             Robert Dewar  <dewar@adacore.com>
6779
6780         * par-ch12.adb (P_Generic_Associations): The source position of an
6781         Others association is that of the others keyword, not that of the token
6782         that follows the box.
6783         (P_Formal_Type_Definition): Handle formal access types that carry a
6784         not null indicator.
6785
6786         * par-ch3.adb (P_Known_Discriminant_Part_Opt, P_Component_Items): If
6787         multiple identifier are present, save Scan_State before scanning the
6788         colon, to ensure that separate trees are constructed for each
6789         declaration.
6790         (P_Identifier_Declarations): For object declaration, set new flag
6791         Has_Init_Expression if initialization expression present.
6792         (P_Null_Exclusion): Properly diagnose NOT NULL coming before NULL
6793         Improve NOT NULL error messages
6794
6795 2007-06-06  Robert Dewar  <dewar@adacore.com>
6796
6797         * par-ch4.adb: (P_Name): Recover from literal used as name
6798
6799 2007-06-06  Vincent Celier  <celier@adacore.com>
6800
6801         * prep.ads, prep.adb (Expression): New Boolean parameter Complemented,
6802         defaulted to False.
6803         In the "not" case, recursive call with Complemented set to True.
6804         Do not allow "or" or "and" operators when Complemented is True.
6805
6806 2007-06-06  Vincent Celier  <celier@adacore.com>
6807
6808         * prj.adb (Project_Empty): Gives default value for new component
6809         Libgnarl_Needed
6810
6811         * prj-attr.ads: Minor reformatting
6812
6813         * prj-env.ads, prj-env.adb (For_All_Object_Dirs): Register object
6814         directory using the untouched casing.
6815         (For_All_Source_Dirs): Idem.
6816
6817         * prj-ext.ads, prj-ext.adb (Search_Directories): New table to record
6818         directories specified with switches -aP.
6819         (Add_Search_Project_Directory): New procedure
6820         (Initialize_Project_Path): Put the directories in table
6821         Search_Directories in the project search path.
6822         (Initialize_Project_Path): For VMS, transform into canonical form the
6823         project path.
6824
6825 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
6826
6827         * restrict.ads, restrict.adb (No_Exception_Handlers_Set): Only return
6828         true if configurable run-time or No_Run_Time is set.
6829         (Set_Restriction): Avoid setting restriction No_Elaboration_Code when
6830         processing an unit which is not the one being compiled.
6831
6832 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
6833
6834         * s-arit64.adb: Replace System.Pure_Exceptions by Ada 05 syntax.
6835         Replace UC by Ada.UC
6836
6837         * s-bitops.adb: Get rid of System.Pure_Exceptions.
6838         Replace UC by Ada.UC
6839
6840 2007-06-06  Robert Dewar  <dewar@adacore.com>
6841
6842         * scng.adb: (Check_End_Of_Line): Deal with very long lines
6843
6844 2007-06-06  Robert Dewar  <dewar@adacore.com>
6845
6846         * sem.ads, sem.adb (Semantics): Save and restore Global_Discard_Names
6847         Remove no longer used nodes.
6848
6849 2007-06-06  Javier Miranda  <miranda@adacore.com>
6850             Ed Schonberg  <schonberg@adacore.com>
6851             Robert Dewar  <dewar@adacore.com>
6852
6853         * sem_ch10.ads, sem_ch10.adb (Analyze_Compilation_Unit): Disable check
6854         on obsolescent withed unit in case of limited-withed units.
6855         (Analyze_Compilation_Unit): Add guard to code that removed an
6856         instantiation from visibility, to prevent compiler aborts when
6857         instantiation is abandoned early on.
6858         (Install_Limited_Withed_Unit): Recognize a limited-with clause on the
6859         current unit being analyzed, and Distinguish local incomplete types
6860         from limited views of types declared elsewhere.
6861         (Build_Limited_Views.Decorate_Tagged_Type): Add documentation
6862         to state that the class-wide entity is shared by the limited-view
6863         and the full-view.
6864         (Analyze_With_Clause): Improve placement of flag for case of
6865         unimplemented unit.
6866         (Analyze_With_Clause): Recognize use of GNAT.Exception_Traces in a
6867         manner similar to GNAT.Current_Exception. This is a violation of
6868         restriction (No_Exception_Propagation), and also inhibits the
6869         optimization of local raise to goto.
6870         (Analyze_With_Clause): Check for Most_Recent_Exception being with'ed,
6871         and if so set Most_Recent_Exception_Used flag in Opt, and also check
6872         for violation of restriction No_Exception_Propagation.
6873
6874 2007-06-06  Javier Miranda  <miranda@adacore.com>
6875             Hristian Kirtchev  <kirtchev@adacore.com>
6876             Gary Dismukes  <dismukes@adacore.com>
6877
6878         * sem_ch11.adb (Analyze_Exception_Handlers): Add barrier to avoid the
6879         use of entity Exception_Occurrence if it is not available in the
6880         target run-time.
6881
6882         * sem_ch9.adb (Analyze_Protected_Type, Analyze_Task_Type): When
6883         concurrent types are declared within an Ada 2005 generic, build their
6884         corresponding record types since they are needed for overriding-related
6885         semantic checks.
6886         (Analyze_Protected_Type): Rearrange and simplify code for testing that a
6887         protected type does not implement a task interface or a nonlimited
6888         interface.
6889         (Analyze_Task_Type): Rearrange and simplify code for testing that a task
6890         type does not implement a protected interface or a nonlimited interface.
6891         (Single_Task_Declaration, Single_Protected_Declaration): use original
6892         entity for variable declaration, to ensure that debugging information
6893         is correcty generated.
6894         (Analyze_Protected_Type, Analyze_Task_Type): Do not call expander
6895         routines if the expander is not active.
6896         (Analyze_Task_Body): Mark all handlers to stop optimization of local
6897         raise, since special things happen for task exception handlers.
6898
6899         * sem_disp.adb (Check_Controlling_Formals): Add type retrieval for
6900         concurrent types declared within a generic.
6901         (Check_Dispatching_Operation): Do not emit warning about late interface
6902         operations in the context of an instance.
6903         (Check_Dispatching_Call): Remove restriction against calling a
6904         dispatching operation with a limited controlling result.
6905         (Check_Dispatching_Operation): Replace calls to Fill_DT_Entry and
6906         Register_Interface_DT_Entry by calls to Register_Primitive.
6907         (Check_Dispatching_Formals): Handle properly a function with a
6908         controlling access result.
6909
6910 2007-06-06  Robert Dewar  <dewar@adacore.com>
6911             Arnaud Charlet  <charlet@adacore.com>
6912
6913         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Stream_Size):
6914         Check for restriction No_Implementation_Attributes if in Ada 95 mode.
6915         (Storage_Pool): Do not crash when RE_Stack_Bounded_Pool is not available
6916         (Analyze_Attribute_Definition_Clause [External_Tag]): Generate error
6917         message when using a VM, since this attribute is not supported.
6918         (Analyze_Record_Representation_Clause): Give unrepped component warnings
6919
6920         * usage.adb: Add new warning for renaming of function return objects
6921         Indicate that -gnatwp and -gnatwP concern front-end inlining
6922         Add line for -gnatyg
6923         Add usage information for -gnatw.c/C
6924
6925 2007-06-06  Robert Dewar  <dewar@adacore.com>
6926             Ed Schonberg  <schonberg@adacore.com>
6927
6928         * sem_ch5.adb
6929         (Find_Var): Do not consider function call in test for infinite loop
6930         warning if warnings set off for function entity.
6931         (One_Bound): Do not create a temporary for a loop bound if it is a
6932         character literal.
6933         (Analyze_Assignment): Traverse the right hand side of an assignment and
6934         mark all allocators as static coextensions.
6935         (Analyze_Assignment): Exempt assignments involving a dispatching call
6936         to a function with a controlling access result from the check requiring
6937         the target to be class-wide.
6938
6939 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
6940             Ed Schonberg  <schonberg@adacore.com>
6941             Robert Dewar  <dewar@adacore.com>
6942             Javier Miranda  <miranda@adacore.com>
6943
6944         * sem_res.ads, sem_res.adb (Process_Allocator): Do not propagate the
6945         chain of coextensions when an allocator serves as the root of such a
6946         chain.
6947         (Propagate_Coextensions): Remove the test for the root being an
6948         allocator.
6949         (Resolve_Allocator): Add condition to ensure that all future decoration
6950         occurs on an allocator node. Add processing and cleanup for static
6951         coextensions.
6952         (Valid_Conversion): If the operand type is the limited view of a
6953         class-wide type, use the non-limited view is available to determine
6954         legality of operation.
6955         (Ambiguous_Character): move to spec, for use elsewhere.
6956         (Ambiguous_Character): Handle Wide_Wide_Character in Ada 2005 mode
6957         (Resolve_Range): Diagnose properly an ambiguous range whose bounds are
6958         character literals.
6959         (Resolve_Arithmetic_Op): Call Activate_Division_Check instead of setting
6960         Do_Division_Check flag explicitly.
6961         (Resolve_Actuals): If the actual is of a synchronized type, and the
6962         formal is of the corresponding record type, this is a call to a
6963         primitive operation of the type, that is declared outside of the type;
6964         the actual must be unchecked-converted to the type of the actual
6965         (Resolve_Call): Kill all current values for any subprogram call if
6966         flag Suppress_Value_Tracking_On_Call is set.
6967         (Resolve_Type_Conversion): Generate error message the the operand
6968         or target of interface conversions come from a limited view.
6969         (Check_Infinite_Recursion): Ignore generated calls
6970         (Check_Allocator_Discrim_Accessibility): New procedure for checking
6971         that an expression that constrains an access discriminant in an
6972         allocator does not denote an object with a deeper level than the
6973         allocator's access type.
6974         (Resolve_Allocator): In the case of an allocator initialized by an
6975         aggregate of a discriminated type, check that associations for any
6976         access discriminants satisfy accessibility requirements by calling
6977         Check_Allocator_Discrim_Accessibility.
6978         (Resolve_Equality_Op): Handle comparisons of anonymous access to
6979         subprogram types in the same fashion as other anonymous access types.
6980         (Resolve_Concatenation_Arg): Remove initial character '\' in an error
6981         message that is not a continuation message.
6982         (Resolve_Type_Conversion): Add missing support for conversion to
6983         interface type.
6984         (Resolve_Actuals): Introduce a transient scope around the call if an
6985         actual is a call to a function returning a limited type, because the
6986         resulting value must be finalized after the call.
6987         (Resolve_Actuals): If the call was given in prefix notations, check
6988         whether an implicit 'Access reference or implicit dereference must be
6989         added to make the actual conform to the controlling formal.
6990
6991 2007-06-06  Robert Dewar  <dewar@adacore.com>
6992             Javier Miranda  <miranda@adacore.com>
6993
6994         * sem_ch7.adb (Check_Anonymous_Access_Types): Fix error for null body
6995         (Derive_Inherited_Private_Subprogram): Code cleanup. In case of explicit
6996         overriding of an inherited private subprogram now there is no need to
6997         inherit its dispatching slot and reduce the size of the dispatch table.
6998         Set_All_DT_Position now ensures that the same slot is now assigned to
6999         both entities. This is required to statically build the dispatch table.
7000         (Declare_Inherited_Private_Subprograms): Rewriten to avoid the need
7001         of calling Set_All_DT_Position to re-evaluate the position of the
7002         entries in the dispatch table. Such reevaluation is not desired if
7003         the tagged type is already frozen.
7004
7005 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
7006             Gary Dismukes  <dismukes@adacore.com>
7007             Robert Dewar  <dewar@adacore.com>
7008             Javier Miranda  <miranda@adacore.com>
7009
7010         * sem_util.ads, sem_util.adb (May_Be_Lvalue): A prefix of an attribute
7011         reference acts as an lvalue when the attribute name modifies the prefix
7012         (Is_Coextension_Root): New routine.
7013         (Mark_Static_Coextensions): New routine.
7014         (Type_Access_Level): Revise code for checking the level of the
7015         anonymous access type of a return object.
7016         (Safe_To_Capture_Value): Not safe to capture if Address_Taken
7017         (Matches_Prefixed_View_Profile): Remove the no longer necessary
7018         retrieval of the corresponding controlling record type.
7019         (Find_Overridden_Synchronized_Primitive): Code cleanup. Add handling of
7020         concurrent types declared within a generic as well as class wide types.
7021         Emit a mode incompatibility error whenever a protected entry or routine
7022         override an interface routine whose first parameter is not of mode
7023         "out", "in out" or access to variable.
7024         (Overrides_Synchronized_Primitive): Rename to
7025         Find_Overridden_Synchronized_Primitive.
7026         (Collect_Interface_Components): New subprogram that collects all the
7027         components of a tagged record containing tags of secondary dispatch
7028         tables.
7029         (Add_Global_Declaration): New procedure
7030         (Abstract_Interface_List): Handle properly the case of a subtype of a
7031         private extension.
7032         (Type_Access_Level): In the case of a type whose parent scope is a
7033         return statement, call Type_Access_Level recursively on the enclosing
7034         function's result type to determine the level of the return object's
7035         type.
7036         (Build_Elaboration_Entity): Build name of elaboration entity from the
7037         scope chain of the entity, rather than the unit name of the file name.
7038         (Check_Nested_Access): New procedure.
7039         (Has_Up_Level_Access, Set_Has_Up_Level_Access): New procedures.
7040         (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
7041         (Get_Renamed_Entity): Utility routine for performing common operation
7042         of chasing the Renamed_Entity field of an entity.
7043
7044 2007-06-06  Robert Dewar  <dewar@adacore.com>
7045
7046         * sem_elab.adb (Check_A_Call): Specialize elaboration warnings on
7047         elaboration model
7048         (Check_A_Call): Add check for entry call which was causing blowup
7049
7050 2007-06-06  Olivier Hainque  <hainque@adacore.com>
7051
7052         * raise-gcc.c (__gnat_eh_personality): Tweak the signature and add
7053         special code on ia64-vms to handle major incompatibilities between the
7054         GCC unwinding ABI and the VMS Condition Handling Facility, both calling
7055         this routine with a very different set of arguments and expectations on
7056         the return value.
7057
7058 2007-06-06  Thomas Quinot  <quinot@adacore.com>
7059
7060         * socket.c (__gnat_close_signalling_fd): New function.
7061         (__gnat_safe_gethostbyaddr, __gnat_safe_gethostbyname,
7062         __gnat_safe_getservbyname, __gnat_safe_getservbyport):
7063         New supporting functions for task safe Netdb operations.
7064
7065 2007-06-06  Thomas Quinot  <quinot@adacore.com>
7066             Olivier Hainque  <hainque@adacore.com>
7067
7068         * a-except-2005.ads, a-except-2005.adb
7069         (Raise_From_Controlled_Operation): New procedure in
7070         (private part of) Ada.Exceptions (standard runtime version). Used to
7071         provide informational exception message when Program_Error is raised as
7072         a result of an Adjust or Finalize operation propagating an exception.
7073         (Rmsg_28): Fix description for E.4(18) check.
7074         (Raise_Current_Excep): Call Debug_Raise_Exception just before
7075         propagation starts, to let debuggers know about the event in a reliable
7076         fashion.
7077         Take the address of E and dereference to make sure it is homed on stack
7078         and prevent the stores from being deleted, necessary for proper
7079         debugger behavior on "break exception" hits.
7080         (Local_Raise): Moved to System.Exceptions
7081
7082         * s-finimp.adb (Raise_From_Finalize): Code to construct an appropriate
7083         exception message from the current occurrence and raise Program_Error
7084         has been moved to Ada.Exceptions.Raise_From_Controlled_Operation.
7085
7086 2007-06-06  Jose Ruiz  <ruiz@adacore.com>
7087             Arnaud Charlet  <charlet@adacore.com>
7088
7089         * s-taprob.adb (Unlock): Change the ceiling priority of the underlying
7090         lock, if needed.
7091
7092         * s-taprop.ads (Set_Ceiling): Add this procedure to change the ceiling
7093         priority associated to a lock.
7094
7095         * s-tpoben.adb ([Vulnerable_]Complete_Task, Lock_Entries): Relax
7096         assertion to take into account case of no abort restriction.
7097         (Initialize_Protection_Entries): Add initialization for the field
7098         New_Ceiling associated to the protected object.
7099         (Unlock_Entries): Change the ceiling priority of the underlying lock, if
7100         needed.
7101
7102         * s-solita.adb (Get_Current_Excep): Moved back to s-tasini/s-tarest,
7103         since this function needs to be set consistently with Update_Exception.
7104
7105         * s-tarest.adb (Get_Current_Excep): Moved back to s-tasini/s-tarest,
7106         since this function needs to be set consistently with Update_Exception.
7107
7108         * s-taskin.ads: Update comments on
7109         Interrupt_Server_Blocked_On_Event_Flag.
7110         (Unbind_Handler): Fix handling of server_task wakeup
7111         (Server_Task): Set self's state so that Unbind_Handler can take
7112         appropriate actions.
7113         (Common_ATCB): Now use a constant from System.Parameters to determine
7114         the max size of the Task_Image field.
7115
7116         * s-tassta.adb (Task_Wrapper): Now pass the overflow guard to the
7117         Initialize_Analyzer function.
7118         ([Vulnerable_]Complete_Task, Lock_Entries): Relax assertion to
7119         take into account case of no abort restriction.
7120         ([Vulnerable_]Complete_Master): Modify assertion.
7121
7122         * s-tataat.adb (Finalize): Use the nestable versions of
7123         Defer/Undefer_Abort.
7124
7125         * s-tpobop.adb (Protected_Entry_Call): Relax assertion.
7126
7127         * s-tpobop.ads: Update comments.
7128
7129         * s-tposen.adb (Protected_Single_Entry_Call): Call Lock_Entry instead
7130         of locking the object manually, to avoid inconsistencies between
7131         Lock/Unlock_Entry assertions.
7132
7133         * s-interr.ads, s-interr.adb (Server_Task): Fix race condition when
7134         terminating
7135         application and System.Parameters.No_Abort is True.
7136         Update comments on Interrupt_Server_Blocked_On_Event_Flag.
7137         (Unbind_Handler): Fix handling of server_task wakeup
7138         (Server_Task): Set self's state so that Unbind_Handler can take
7139         appropriate actions.
7140
7141 2007-06-06  Thomas Quinot  <quinot@adacore.com>
7142
7143         * s-finroo.ads, s-finroo.adb (Read, Write): Use null procedure
7144         declarations instead of an explicit null body, for conciseness.
7145
7146 2007-06-06  Robert Dewar  <dewar@adacore.com>
7147
7148         * sem_eval.adb (Eval_Relational_Op): nothing to do if an operand is an
7149         illegal aggregate and the type is still Any_Composite.
7150         (Subtypes_Statically_Match): Fix problem of empty discriminant list
7151
7152 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
7153
7154         * sem_smem.adb (Check_Shared_Var): Check explicitly for as task object,
7155         to prevent subsequent expansion.
7156
7157 2007-06-06  Robert Dewar  <dewar@adacore.com>
7158
7159         * sinput-l.ads, sinput-l.adb: implement a new pragma No_Body
7160
7161 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
7162             Robert Dewar  <dewar@adacore.com>
7163
7164         * sprint.ads, sprint.adb (Sprint_Node_Actual): Output aggregate for
7165         exceptions.
7166         (Write_Itype): Handle case of string literal subtype, which
7167         comes up in this context.
7168         (Update_Itype): when debugging expanded code, update sloc of itypes
7169         associated with defining_identifiers and ranges, for gdb use.
7170         (Sprint_Node_Actual): Add static keyword to object or exception
7171         declaration output if Is_Statically_Allocated is True.
7172         (Sprint_End_Label): Set entity of end marker for a subprogram, package,
7173         or task body, so that the tree carries the proper Sloc information for
7174         debugging use.
7175         (Write_Indent): In Dump_Source_Text mode, ignore implicit label nodes
7176
7177 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
7178
7179         * s-secsta.adb (Chunk): Ensure this object has a static size known at
7180         compile time, to avoid dynamic memory allocation
7181         (Elaboration code): Only use dynamic memory allocation when needed.
7182
7183 2007-06-06  Quentin Ochem  <ochem@adacore.com>
7184
7185         * s-stausa.ads, s-stausa.adb (Initialize_Analyzer): Added parameter
7186         "Overflow_Guard".
7187         (Stack_Analyzer): Added field "Overflow_Guard"
7188         (Task_Result): Added field "Overflow_Guard".
7189         (Index_Str): New constant.
7190         (Task_Name_Str): New constant.
7191         (Actual_Size_Str): New constant.
7192         (Pattern_Array_Element_Size): New constant.
7193         (Get_Usage_Range): New subprogram.
7194         (Output_Result): Added parameter Max_Size_Len and Max_Actual_Use_Len.
7195         Now align the output.
7196         Added comments.
7197         (Initialize): Added value for Overflow_Guard.
7198         (Fill_Stack): Use constant Pattern_Array_Elem_Size when relevant.
7199         Update the value of the overflow guard according to the actual
7200         beginning of the pattern array.
7201         (Initialize_Analyzer): Added parameter Overflow_Guard.
7202         Take this parameter into accound when computing the max size.
7203         (Compute_Result): Use constant Pattern_Array_Elem_Size when relevant.
7204         (Report_Result): Removed extra useless procedure.
7205         Updated call to Output_Result.
7206         Moved full computation of the Task_Result here.
7207
7208 2007-06-06  Thomas Quinot  <quinot@adacore.com>
7209
7210         * g-soccon-darwin.ads, gen-soccon.c: Add new constant
7211         Thread_Blocking_IO, always True by default, set False on a per-runtime
7212         basis.
7213         Add Windows-specific constants
7214         Add new constant Need_Netdb_Buffer.
7215         Add new macros to indicate whether getXXXbyYYY is thread safe and, if
7216         not, whether to use getXXXbyYYY_r.
7217
7218         * gsocket.h: Add new constant Need_Netdb_Buffer.
7219         Add new macros to indicate whether getXXXbyYYY is thread safe and, if
7220         not, whether to use getXXXbyYYY_r.
7221
7222 2007-06-06  Eric Botcazou  <ebotcazou@adacore.com>
7223
7224         * s-stoele.ads, s-stoele.adb: Move inline_always subprograms earlier
7225         than their first call.
7226         Add type Dummy_Communication_Block used in the generation of the pre-
7227         defined dispatching primitive _disp_asynchronous_select.
7228         (Storage_Element): Put Pragma Universal_Aliasing on it.
7229
7230 2007-06-06  Vincent Celier  <celier@adacore.com>
7231
7232         * a-dirval-vms.adb, a-dirval.ads, a-dirval.adb (Windows): New Boolean
7233         function.
7234
7235         * a-dirval-mingw.adb (Is_Valid_Path_Name): Forbid a path with a drive
7236         letter if it is not followed by a '/' or a '\'.
7237         (Windows): New Boolean function
7238
7239         * a-direct.ads, a-direct.adb: Remove unnecessary and misplaced pragma
7240         Ada 2005.
7241         (Containing_Directory): On Windows, keep at least one '/' or '\' after a
7242         drive letter.
7243         (Containing_Directory): Raise Use_Error when the directory is a root
7244         directory.
7245         (Extension): When returning the result, use a conversion to Result_Type,
7246         not a qualification.
7247
7248 2007-06-06  Robert Dewar  <dewar@adacore.com>
7249
7250         * stylesw.ads, stylesw.adb (Set_GNAT_Style_Check): New procedure
7251         (Set_Style_Check_Options): Recognize new -gnatyg style switch
7252
7253         * switch-c.adb (Scan_Front_End_Switches, case -gnatg): Set
7254         Warn_On_Non_Local_Exception to False, to turn off warnings for
7255         No_Exception_Propagation in ZFP runtime.
7256         (Scan_Front_End_Switches): Fix handling of --RTS switch for non GCC
7257         back-ends.
7258         (Scan_Front_End_Switches): For 'g', call Set_GNAT_Style_Checks
7259
7260 2007-06-06  Vincent Celier  <celier@adacore.com>
7261
7262         * switch-b.adb (Scan_Binder_Switches): Add processing for new
7263         switches -R and -Z
7264
7265         * switch-m.adb (Normalize_Compiler_Switches): Do not record switch -E
7266         (Scan_Make_Switches): Recognize new switch -aP
7267
7268 2007-06-06  Matthew Gingell  <gingell@adacore.com>
7269             Jose Ruiz  <ruiz@adacore.com>
7270
7271         * s-stchop-vxworks.adb (Set_Stack_Info): Instead of trying to map the
7272         VxWorks task descriptor in the Ada run time, call a C subprogram
7273         (__gnat_get_stack_info) that extracts the required information.
7274
7275         * sysdep.c: Back out temporary lynxos workaround.
7276         (__gnat_get_stack_info): Add this procedure that passes to the Ada run
7277         time the stack information associated to the currently executing task.
7278         Only VxWorks systems require this function.
7279
7280 2007-06-06  Eric Botcazou  <ebotcazou@adacore.com>
7281
7282         * tracebak.c (FRAME_OFFSET): Add parameter FP. On SPARC/Solaris, do not
7283         add the stack bias if the offset is computed from a frame address.
7284         (__gnat_backtrace): Adjust for above change.
7285
7286 2007-06-06  Thomas Quinot  <quinot@adacore.com>
7287
7288         * types.h, types.ads: Rename PE_Illegal_CW_Actual_E_4_18 to
7289         PE_Non_Transportable_Actual.
7290         (By_Descriptor_Last): New constant.
7291         (By_Copy_Return): Likewise.
7292
7293 2007-06-06  Vincent Celier  <celier@adacore.com>
7294
7295         * vms_conv.adb (Process_Argument): Keep arguments starting with '+' as
7296         is.
7297
7298         * vms_data.ads: Add entries for -gnatw.x and -gnatw.X
7299         /STYLE_CHECKS=GNAT: Change meaning to -gnatyg
7300         /GNAT_INTERNAL: New compiler qualifier corresponding to -gnatg
7301         Add missing comment for /OPTIMIZE=SPACE
7302         Add entry for OPTIMIZE=SPACE
7303         Add new qualifier /ALL_PROJECTS (= -U) for GNAT LIST
7304         Add documentation for new qualifiers corresponding to -gnatw.c/.C
7305
7306 2007-06-06  Vincent Celier  <celier@adacore.com>
7307             Robert Dewar  <dewar@adacore.com>
7308
7309         * xgnatugn.adb: Allow dots to be used in ug_words (-gnatw.c and
7310         -gnatw.C)
7311
7312         * gnat_ugn.texi: Fix ordering of -g switch for gnatmake
7313         Document gnatbind switch -a
7314         (case Constructions): Document that variables declarations are allowed
7315         for previously declared variables.
7316         Fix external lib project example
7317         -gnatg: Indicate new VMS qualifier /GNAT_INTERNAL
7318         Indicate that "#if not X or Y then" is not allowed in input files to
7319         gnatprep.
7320         Document gnatw.x and gnatw.X warning flags
7321         Mention -Winline switch to activate warnings when back-end inlining is
7322         ineffective.
7323         Add gnatcheck rule descriptions
7324         Describe how to use the GNAT driver to call a tool on a closure.
7325         Describe how to run project-wide checks or metrics.
7326         Document gnatbind's -R option
7327         Updated to account for Ada 2005 support
7328
7329         * gnat_rm.texi (Case Construction): Allow variable declarations for
7330         previously declared variables.
7331         (Representation Clauses and Pragmas): Lift restriction on alignment
7332         clauses for record types.
7333         (Ada.Characters.*): Fix typo in reference to A.3.3(27).
7334         Document No_Exception_Propagation restriction
7335         Document No_Body pragma
7336         Updated to account for Ada 2005 support; corrected some typos
7337         (Implementation Defined Pragmas): Document pragma Universal_Aliasing.
7338
7339         * gnat-style.texi: Make it clear that we never use mode IN for
7340         procedures or functions
7341
7342         * ug_words: Add entries for -gnatw.x and -gnatw.X
7343         Add entries for -gnatw.c/.C
7344
7345 2007-06-06  Pascal Obry  <obry@adacore.com>
7346             Vincent Celier  <celier@adacore.com>
7347
7348         * makegpr.adb (Add_Archive_Path): Use untouched object and library
7349         dirs and library name.
7350         (Build_Global_Archive): Idem. Minor code clean-up. Removes duplicate
7351         comments.
7352         (Build_Library): Idem.
7353         (Compile_Individual_Sources): Idem.
7354         (Compile_Link_With_Gnatmake): Idem.
7355         (Compile_Sources): Idem.
7356         (Get_Imported_Directories): Idem.
7357         (Link_Executables): Idem. Same change for the executable dir.
7358         (Check_Compilation_Needed): C_Source_Path new variable containing
7359         the canonical form of Source_Path to check against the source names
7360         in the dependency file.
7361         (Build_Global_Archive, Compile_Individual_Sources, Compile_Sources): In
7362         verbose mode, display the name of the object directory we're changing
7363         to.
7364         (Saved_Switches): New name of table X_Switches
7365         (Scan_Arg): Recognize new switch -aP and save in table Saved_Switches
7366         (Usage): New line for switch -aP
7367         (Get_Imported_Directories.Add): Make sure that Add_Arg is True before
7368         testing if a directory should be added to the search path.
7369
7370 2007-06-06  Javier Miranda  <miranda@adacore.com>
7371
7372         * a-cidlli.ads, a-cdlili.ads, a-cohama.ads, a-coinve.ads, 
7373         a-convec.ads (Empty_Vector, Empty_Map, Empty_List): Move this object
7374         declaration after freezing point of all its associated tagged types;
7375         otherwise such types are frozen too early.
7376
7377 2007-06-06  Robert Dewar  <dewar@adacore.com>
7378
7379         * a-reatim.adb: Documentation addition
7380
7381         * g-cgideb.adb: Minor code reorganization
7382
7383         * tree_io.adb, treepr.adb, cstand.adb, krunch.adb, par.adb,
7384         mdll-utl.adb, par-ch5.adb, par-tchk.adb, s-exctab.ads, s-memory.ads,
7385         s-osprim.ads, s-restri.ads, s-soflin.ads: Minor reformatting.
7386
7387         * debug.ads, debug.adb (Get_Debug_Flag_K): Remove unused obsolete
7388         function.  Change name New_Scope to Push_Scope
7389         (Get_Debug_Flag_K): Remove unused obsolete function.
7390
7391         * exp_ch8.adb, inline.adb, sem_ch8.ads: Change name New_Scope to
7392         Push_Scope.
7393
7394         * makeusg.adb: Update Copyright notice
7395         Add line for switch -aP
7396
7397         * makeusg.adb: Fix wording of some usage messages
7398
7399         * s-assert.adb (Raise_Assert_Failure): Add call to
7400         Debug_Raise_Assert_Failure.
7401
7402         * s-unstyp.ads (type Packed_Bytes2): Change alignment to use 'Min
7403         (2, Standard'Alignment) for compatibility with AAMP (where alignment
7404         is restricted to 1).
7405
7406         * s-wchjis.adb: Remove use of System.Pure_Exceptions
7407
7408         * tbuild.ads, tbuild.adb (Make_Implicit_Exception_Handler): Set the
7409         node location to No_Location when we're not debugging the expanded
7410         code.
7411
7412 2007-05-22  Alexandre Oliva  <aoliva@redhat.com>
7413
7414         * misc.c (enumerate_modes): Consider log2_b to always be one.
7415
7416 2007-05-14  Rafael Avila de Espindola  <espindola@google.com>
7417
7418         * misc.c (LANG_HOOKS_UNSIGNED_TYPE): Remove.
7419
7420 2007-05-02  Pascal Obry  <obry@adacore.com>
7421
7422         * gnatchop.adb (Write_Source_Reference_Pragma): Change implementation
7423         to use Stream_IO.File_Type. This is needed to make use of the UTF-8
7424         encoding support of Stream_IO.
7425         (Write_Unit): Idem.
7426
7427         * adaint.h, adaint.c (__gnat_os_filename): New routine. Returns the
7428         filename and corresponding encoding to match the OS requirement.
7429         (__gnat_file_exists): Do not call __gnat_stat() on Windows as this
7430         routine will fail on specific devices like CON: AUX: ...
7431
7432         PR ada/29856: Add missing braces
7433
7434 2007-04-22  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7435
7436         PR ada/31660
7437         * ada-tree.h (lang_tree_node): Fix typo in chain_next.
7438
7439 2007-04-21  Jan Hubicka  <jh@suse.cz>
7440
7441         * misc.c (gnat_expand_body): Don't call target for destructors,
7442         avoid redundant check on syntax errors.
7443
7444 2007-04-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7445
7446         * ada-tree.h (lang_tree_node): Use GENERIC_NEXT
7447         instead of checking GIMPLE_STMT_P in chain_next.
7448
7449 2007-04-17  Andreas Krebbel  <krebbel1@de.ibm.com>
7450
7451         PR ada/31576
7452         * system-linux-alpha.ads: Disable constant condition warning for the
7453         Default_Bit_Order variable.
7454         * system-linux-s390.ads: Likewise.
7455         * system-linux-s390x.ads: Likewise.
7456         * system-linux-sparc.ads: Likewise.
7457
7458 2007-04-06  Javier Miranda  <miranda@adacore.com>
7459             Matt Heaney  <heaney@adacore.com>
7460             Robert Dewar  <dewar@adacore.com>
7461
7462         a-coprnu.ads, a-cohata.ads, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads,
7463         a-cgarso.ads, a-secain.ads, a-slcain.ads, a-shcain.ads, a-chtgke.ads,
7464         a-chtgke.ads, a-coprnu.ads, a-contai.ads, a-chtgke.ads, a-chtgke.adb,
7465         a-stwiha.ads, a-strhas.ads, a-lfztio.ads, a-liztio.ads, a-llfzti.ads,
7466         a-llizti.ads, a-sfztio.ads, a-siztio.ads, a-ssizti.ads, a-stzfix.ads,
7467         a-stzhas.ads, a-szuzha.ads, a-tiunio.ads, a-wwunio.ads, a-ztcoio.ads,
7468         a-ztinio.ads, a-zttest.ads, a-zzunio.ads, a-astaco.ads, a-charac.ads,
7469         a-chlat1.ads, ada.ads, a-dynpri.ads, a-flteio.ads, a-fwteio.ads,
7470         a-inteio.ads, a-intnam.ads, a-ioexce.ads, a-iwteio.ads, a-lfteio.ads,
7471         a-lfwtio.ads, a-liteio.ads, a-liwtio.ads, a-llftio.ads, a-llfwti.ads,
7472         a-llitio.ads, a-lliwti.ads, a-ncelfu.ads, a-ngcefu.ads, a-ngelfu.ads,
7473         a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads, a-nllcty.ads,
7474         a-nllefu.ads, a-nscefu.ads, a-nscoty.ads, a-nselfu.ads, a-nucoty.ads,
7475         a-nuelfu.ads, a-numeri.ads, a-sfteio.ads, a-sfwtio.ads, a-siteio.ads,
7476         a-siwtio.ads, a-ssitio.ads, a-ssiwti.ads, a-storio.ads, a-strfix.ads,
7477         a-string.ads, a-stwifi.ads, a-titest.ads, a-unccon.ads, a-uncdea.ads,
7478         a-wtcoio.ads, a-wtinio.ads, a-wttest.ads, calendar.ads, directio.ads,
7479         i-c.ads, ioexcept.ads, machcode.ads, sequenio.ads, text_io.ads,
7480         unchconv.ads, unchdeal.ads, a-widcha.ads, a-zchara.ads, a-stboha.ads,
7481         a-stfiha.ads, a-coteio.ads, a-envvar.ads, a-lcteio.ads, a-llctio.ads,
7482         a-scteio.ads, a-swbwha.ads, a-swfwha.ads, a-szbzha.ads, a-szfzha.ads,
7483         a-tiboio.ads, a-wwboio.ads, a-zzboio.ads, a-dispat.ads, a-tgdico.ads,
7484         expander.adb, g-socket.ads, par-labl.adb, sinput-c.adb, s-tarest.ads,
7485         s-stchop.ads, g-expect-vms.adb, s-taprop-lynxos.adb,
7486         s-taprop-tru64.adb, s-taprop-irix.adb,
7487         s-taprop-hpux-dce.adb, s-traceb-hpux.adb,
7488         s-taprop-linux.adb, s-taprop-dummy.adb, s-osprim-unix.adb,
7489         s-osprim-solaris.adb, s-taprop-solaris.adb, s-taprop-vms.adb,
7490         s-osprim-mingw.adb, s-taprop-mingw.adb, s-osprim-posix.adb, 
7491         s-taprop-posix.adb, a-exexpr-gcc.adb, a-ststio.adb, a-ststio.ads, 
7492         a-textio.adb, a-textio.ads, a-tideau.adb, a-tideau.ads, a-witeio.adb, 
7493         a-witeio.ads, a-wtdeau.adb, a-wtdeau.ads, g-calend.adb, g-calend.ads, 
7494         g-dirope.adb, g-expect.ads, gnatchop.adb, g-spipat.adb, g-spipat.ads, 
7495         s-direio.adb, s-direio.ads, s-fatgen.adb, s-fatgen.ads, s-parint.adb, 
7496         s-sequio.adb, s-sequio.ads, s-taprop.ads, s-valdec.adb, s-valdec.ads, 
7497         s-valint.adb, s-valint.ads, s-vallld.adb, s-vallld.ads, s-vallli.adb, 
7498         s-vallli.ads, s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads, 
7499         s-valuns.adb, s-valuns.ads, s-valuti.adb, s-valuti.ads, xref_lib.adb, 
7500         s-stchop.adb, i-vxwork-x86.ads, a-crbtgo.ads, a-crbtgo.adb, 
7501         a-coorse.ads, a-coorse.adb, a-cohama.ads, a-cohama.adb, a-ciorse.ads, 
7502         a-ciorse.adb, a-cihama.ads, a-cihama.adb, a-chtgop.ads, a-chtgop.ads, 
7503         a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cihase.ads, a-cohase.adb, 
7504         a-cohase.ads, a-swuwha.ads, a-ciormu.ads, a-coormu.ads, a-rbtgso.ads,
7505         a-stunha.ads, a-ciorma.adb, a-coorma.adb, a-ztdeau.adb, a-ztdeau.ads, 
7506         a-ztexio.adb, a-ztexio.ads: Addition of null-exclusion to anonymous
7507         access types.
7508         Update documentation.
7509         Minor rewording.
7510
7511 2007-04-06  Robert Dewar  <dewar@adacore.com>
7512
7513         * system-linux-ia64.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads,
7514         system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
7515         system-vxworks-sparcv9.ads, system-solaris-x86.ads, system-irix-o32.ads,
7516         system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
7517         system-linux-x86.ads, system-vxworks-mips.ads, system-interix.ads,
7518         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
7519         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
7520         system-vxworks-alpha.ads, system-vms_64.ads, system-darwin-ppc.ads,
7521         system-vxworks-x86.ads, system-linux-ppc.ads, system-linux-hppa.ads,
7522         system-hpux-ia64.ads, targparm.adb,
7523         targparm.ads (Functions_Return_By_DSP_On_Target): Removed
7524
7525         * system.ads: Move Functions_Return_By_DSP to obsolete section,
7526         kept for bootstrap purposes only.
7527
7528 2007-04-06  Arnaud Charlet  <charlet@adacore.com>
7529
7530         * s-osinte-lynxos-3.ads, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
7531         s-osinte-freebsd.ads, s-osinte-aix.ads, s-osinte-darwin.ads,
7532         s-taprop-posix.adb (Create_Task): Fix handling of Task_Info.
7533         (PTHREAD_SCOPE_PROCESS, PTHREAD_SCOPE_SYSTEM): New constants.
7534
7535 2007-04-06  Robert Dewar  <dewar@adacore.com>
7536
7537         * a-except.adb, a-except.ads, a-except-2005.ads, a-except-2005.adb
7538         (Local_Raise): New dummy procedure called when a raise is converted
7539         to a local goto. Used for debugger to detect that the exception
7540         is raised.
7541
7542         * debug.adb: Document new d.g flag (expand local raise statements to
7543         gotos even if pragma Restriction (No_Exception_Propagation) is not set)
7544
7545         * exp_sel.adb: Use Make_Implicit_Exception_Handler
7546
7547         * exp_ch11.adb (Expand_Exception_Handlers): Use new flag -gnatw.x to
7548         suppress warnings for unused handlers.
7549         (Warn_If_No_Propagation):  Use new flag -gnatw.x to suppress
7550         warnings for raise statements not handled locally.
7551         (Get_RT_Exception_Entity): New function
7552         (Get_Local_Call_Entity): New function
7553         (Find_Local_Handler): New function
7554         (Warn_If_No_Propagation): New procedure
7555         (Expand_At_End_Handler): Call Make_Implicit_Handler
7556         (Expand_Exception_Handlers): Major additions to deal with local handlers
7557         (Expand_N_Raise_Constraint_Error, Expand_N_Raise_Program_Error,
7558         Expand_N_Raise_Storage_Error, (Expand_N_Raise_Statement): Add handling
7559         for local raise
7560
7561         * exp_ch11.ads (Get_RT_Exception_Entity): New function
7562         (Get_Local_Call_Entity): New function
7563
7564         * gnatbind.adb (Restriction_List): Add No_Exception_Propagation to list
7565         of restrictions that the binder will never suggest adding.
7566
7567         * par-ch11.adb (P_Exception_Handler): Set Local_Raise_Statements field
7568         to No_Elist.
7569
7570         * restrict.adb (Check_Restricted_Unit): GNAT.Current_Exception may not
7571         be with'ed in the presence of pragma Restriction
7572         (No_Exception_Propagation).
7573
7574         * sem.adb (Analyze): Add entries for N_Push and N_Pop nodes
7575
7576         * sem_ch11.adb (Analyze_Exception_Handler): If there is a choice
7577         parameter, then the handler is not a suitable target for a local raise,
7578         and this is a violation of restriction No_Exception_Propagation.
7579         (Analyze_Handled_Statements): Analyze choice parameters in exception
7580         handlers before analyzing statement sequence (needed for proper
7581         detection of local raise statements).
7582         (Analyze_Raise_Statement): Reraise statement is a violation of the
7583         No_Exception_Propagation restriction.
7584
7585         * s-rident.ads: Add new restriction No_Exception_Propagation
7586
7587         * tbuild.ads, tbuild.adb (Make_Implicit_Exception_Handler): New
7588         function, like Make_Exception_Handler but sets Local_Raise_Statements
7589         to No_List.
7590         (Add_Unique_Serial_Number): Deal with case where this is called during
7591         processing of configuration pragmas.
7592
7593 2007-04-06  Thomas Quinot  <quinot@adacore.com>
7594             Pat Rogers  <rogers@adacore.com>
7595             Pascal Obry  <obry@adacore.com>
7596
7597         * g-stsifd-sockets.adb: New file.
7598
7599         * g-socthi.ads, g-socket.adb, g-socthi-vxworks.adb,
7600         g-socthi-vxworks.ads, g-socthi-mingw.ads, g-socthi-vms.ads,
7601         g-socthi-vms.adb: Move signalling
7602         fd management to a nested package, so that they can conveniently be
7603         moved to a subunit that is shared across Windows, VMS, and VxWorks
7604         (Ada implementation) or completed with imported bodies from socket.c
7605         (UNIX case).
7606         (Read_Signalling_Fd, Write_Signalling_Fd, Create_Signalling_Fds): New
7607         subprograms.
7608         (Check_Selector): Use Read_Signalling_Fd to read and discard data from
7609         the signalling file descriptor.
7610         (Abort_Selector): Use Write_Signalling_Fd to write dummy data to the
7611         signalling file descriptor.
7612         (Create_Selector): Use new C-imported subprogram Create_Signalling_Fds
7613         instead of creating a pair of sockets for signalling here.
7614
7615         * g-socthi.adb: Ditto.
7616         Set the runtime process to ignore SIGPIPEs on platforms that support
7617         neither SO_NOSIGPIPE nor MSG_NOSIGNAL functionality.
7618
7619         * g-socthi-mingw.adb: Ditto.
7620         (WS_Version): Use Windows 2.2.
7621         Use Winsock 2.2 (instead of 1.1) for the GNAT.Socket API.
7622
7623         * g-soliop-mingw.ads: Link with ws2_32 for Windows 2.x support.
7624         Use Winsock 2.2 (instead of 1.1) for the GNAT.Socket API.
7625
7626         * Makefile.in: New libgnat pair g-stsifd.adb<g-stsifd-sockets.adb.
7627         added GNAT byte swapping facility
7628         Update FreeBSD THREADSLIB from -lc_r to -lpthread, for FreeBSD 6.
7629
7630         * g-bytswa.adb, g-bytswa-x86.adb, g-bytswa.ads: New files.
7631
7632         * socket.c (__gnat_read_signalling_fd, __gnat_write_controlling_fd):
7633         New subprograms.
7634         (__gnat_create_signalling_fds): New subprogram.
7635         Set the runtime process to ignore SIGPIPEs on platforms that support
7636         neither SO_NOSIGPIPE nor MSG_NOSIGNAL functionality.
7637
7638 2007-04-06  Hristian Kirtchev  <kirtchev@adacore.com>
7639             Vincent Celier  <celier@adacore.com>
7640
7641         * a-calend-vms.ads, a-calend.ads, a-calend.adb, a-calend-vms.adb:
7642         New version of Ada.Calendar which supports the new upper bound of Ada
7643         time (2399-12-31 86_399.999999999).
7644         The following modifications have been made to the package:
7645          - New representation of time as count of nanoseconds since the start of
7646            Ada time (1901-1-1 0.0).
7647          - Target independent Split and Time_Of routines which service both
7648            Ada 95 and Ada 2005 code.
7649          - Target independent interface to the Ada 2005 children of Calendar.
7650          - Integrated leap seconds into Ada 95 and Ada 2005 mode.
7651          - Handling of non-leap centenial years.
7652          - Updated clock function.
7653          - Updated arithmetic and comparison operators.
7654
7655         * a-caldel.adb (To_Duration): Add call to target independent routine in
7656         Ada.Calendar to handle the conversion of time to duration.
7657
7658         * sysdep.c (__gnat_localtime_tzoff): Test timezone before setting off
7659         (UTC Offset).
7660         If timezone is obviously incorrect (outside of -14 hours .. 14 hours),
7661         set off to 0.
7662         (__gnat_localtime_tzoff for Lynx and VxWorks): Even though these
7663         targets do not have a natural time zone, GMT is used as a default.
7664         (__gnat_get_task_options): New.
7665
7666         * a-direct.adb (Modification_Time): Add with and use clauses for
7667         Ada.Calendar and Ada.
7668         Calendar.Formatting. Remove with clause for Ada.Unchecked_Conversion
7669         since it is no longer needed.
7670         (Duration_To_Time): Removed.
7671         (OS_Time_To_Long_Integer): Removed.
7672         (Modification_Time): Rewritten to use Ada.Calendar and Ada.Calendar.
7673         Formatting Time_Of routines which automatically handle time zones,
7674         buffer periods and leap seconds.
7675
7676         * a-calari.ads, a-calari.adb ("+", "-", Difference): Add calls to
7677         target independent routines in Ada.Calendar.
7678
7679         * a-calfor.ads, a-calfor.adb: 
7680         Code cleanup and addition of validity checks in various routines.
7681         (Day_Of_Week, Split, Time_Of): Add call to target independent routine in
7682         Ada.Calendar.
7683
7684         * a-catizo.ads, a-catizo.adb (UTC_Time_Offset): Add call to target
7685         independent routine in Ada.Calendar.
7686
7687 2007-04-06  Olivier Hainque  <hainque@adacore.com>
7688
7689         * adaint.c: 
7690         (convert_addresses): Adjust prototype and dummy definition to expect an
7691          extra file_name argument.
7692
7693         * gmem.c (__gnat_convert_addresses): Wrapper to convert_addresses,
7694         filling the now expected file_name argument with the appropriate
7695         argv[0] expansion.
7696         (__gnat_gmem_a2l_initialize, __gnat_gmem_read_next_frame): Use it.
7697         (tracebk): Array of void * instead of char *, corresponding to what
7698          convert_addresses expects.
7699         (exename): New static global, to hold the executable file name to be
7700         used in all convert_addresses invocations.
7701         (gmem_read_backtrace, __gnat_gmem_symbolic): Account for tracebk type
7702         change.
7703         (__gnat_gmem_a2l_initialize): Resolve exename.
7704         (__gnat_convert_addresses): Use exename as the convert_addresses
7705         file_name argument.
7706
7707         * g-trasym.adb (Symbolic_Traceback): Adjust signature of imported
7708         "convert_addresses", now expecting a filename argument. Import the
7709         necessary entities to compute the filename to use and pass it to
7710         convert_addresses.
7711
7712 2007-04-06  Matt Gingell  <gingell@adacore.com>
7713
7714         * system-aix.ads: Back out previous change.
7715         (Functions_Return_By_DSP): Removed
7716
7717 2007-04-06  Pascal Obry  <obry@adacore.com>
7718
7719         * s-osprim-mingw.adb (Timed_Delay): Use the right clock (standard one
7720         or the monotonic used by Ada.Real_Time) to compute the sleep duration
7721         on Windows.
7722
7723 2007-04-06  Jose Ruiz  <ruiz@adacore.com>
7724
7725         * s-osinte-vxworks.ads, s-osinte-vxworks.adb (VX_FP_TASK): Remove this
7726         function. Its value changes in different VxWorks versions, and it is
7727         now handled by the function __gnat_get_task_options.
7728
7729         * s-taprop-vxworks.adb (Create_Task): Call the function
7730         __gnat_get_task_options to get the required options for creating a task.
7731
7732 2007-04-06  Pascal Obry  <obry@adacore.com>
7733             Thomas Quinot  <quinot@adacore.com>
7734
7735         * adaint.c: Replace all occurences of S2WS to S2WSU (Unicode) when
7736         dealing with filename.
7737         (__gnat_fopen): Call the proper macro (8bits or UTF8) to convert the
7738         filename from a standard string to a wide-string depending on the
7739         encoding value.
7740         (__gnat_freopen): Idem.
7741         (__gnat_current_time): New function (wrapper for time(3) standard C
7742         function).
7743
7744         * g-os_lib.ads (Current_Time): New function. Returns the current
7745         system time as an OS_Time value.
7746
7747         * s-osprim.ads (Clock): Add more precise definition of UNIX epoch.
7748         (Monotonic_Clock): Same.
7749
7750 2007-04-06  Quentin Ochem  <ochem@adacore.com>
7751
7752         * ali.ads, ali.adb (Get_Nat): Raise an exception if the file cursor is
7753         not on a natural.
7754         (Scan_ALI): Cancel the xref line if there has been a reading ALI error.
7755
7756 2007-04-06  Jose Ruiz  <ruiz@adacore.com>
7757
7758         * a-retide.adb: Add elaboration code to ensure that the tasking run
7759         time is initialized when using delay operations even when no task is
7760         created.
7761
7762 2007-04-06  Javier Miranda  <miranda@adacore.com>
7763
7764         * a-tags.ads, a-tags.adb (Object_Specific_Data): Remove
7765         component Num_Prim_Ops.
7766         (Set_Num_Prim_Ops): Removed.
7767         Remove all the assertions because all the routines of this
7768         package are inline always.
7769         (Get_Offset_Index): Add support to primary dispatch tables.
7770         Move the documentation about the dispatch table to a-tags.ads
7771         (Set_External_Tag): Removed
7772         (Inherit_TSD): Removed.
7773         (Interface_Data_Element, Interfaces_Array, Interface_Data): Declarations
7774         moved to a-tags.ads
7775         (Displace, IW_Membership, Inherit_TSD, Interface_Ancestor_Tags,
7776         Register_Interface_Tag, Set_Offset_To_Top): Update all the occurrences
7777         of the TSD field "Table" because this field has been renamed to
7778         "Ifaces_Table".
7779         (Inherit_CPP_DT): Removed.
7780         (K_Typeinfo, K_Offset_To_Top, K_Tagged_Kind, K_Signature,
7781         Cstring, Tag_Table, Type_Specific_Data, Dispatch_Table): These
7782         declarations have been moved to a-tags.ads
7783         (Check_Size): Removed.
7784         (Expanded_Name): Updated to get access to the new field of TSD
7785         containing the address of the expanded name.
7786         (Get_Access_Level/Set_Access_Level): Removed.
7787         (Get_Predefined_Prim_Op_Address): Removed.
7788         (Set_Predefined_Prim_Op_Address): Removed.
7789         (Get_Prim_Op_Address/Set_Prim_Op_Address): Removed.
7790         (Get_Remotely_Callable/Set_Remotely_Callable): Removed.
7791         (Set_Expanded_Name): Removed.
7792         (Inherit_DT): Removed.
7793         (Inherit_CPP_DT): Removed.
7794         (Set_RC_Offset): Removed.
7795         (Set_TSD): Removed.
7796         (Base_Address): New function that displaces "this" to point to the base
7797         of the object (that is, to point to the primary tag of the object).
7798
7799 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
7800             Javier Miranda  <miranda@adacore.com>
7801
7802         * exp_ch3.ads, exp_ch3.adb (Analyze_N_Full_Type_Declaration): For an
7803         anonymous access component, do not create a master_id if type already
7804         has one, as may happen if the type is a subcomponent of a packed array
7805         type.
7806         (Build_Init_Procedure, Component_Needs_Simple_Initialization,
7807         Initialize_Tag): Remove code associated with the old CPP pragmas.
7808         CPP_Virtual and CPP_Vtable are no longer supported.
7809         (Build_Offset_To_Top_Internal): Add support for concurrent record types
7810         (Build_Offset_To_Top_Functions): Add support for concurrent record types
7811         (Freeze_Record_Type): Remove call to
7812         Init_Predefined_Interface_Primitives.
7813         (Init_Secondary_Tags.Initialize_Tag): New subprogram containing all the
7814         code required to initialize the tags of the secondary dispatch tables.
7815         This leaves the algoritm more clear.
7816         (Init_Secondary_Tags): Add support for concurrent record types
7817         (Make_Predefined_Primitive_Specs): Code cleanup.
7818         (Predefined_Primitive_Bodies): Code cleanup.
7819         (Build_Master_Renaming): New local subprogram.
7820         (Expand_N_Full_Type_Declaration): Build the master_id associated with
7821         anonymous access to task type components.
7822         (Expand_N_Subtype_Indication): The bounds of a range constraint in a
7823         subtype indication are resolved during analysis, and must not be done
7824         here.
7825         (Stream_Operation_OK): Check Restriction_Active before RTE_Available.
7826
7827 2007-04-06  Geert Bosch  <bosch@adacore.com>
7828             Ed Schonberg  <schonberg@adacore.com>
7829             Javier Miranda  <miranda@adacore.com>
7830             Bob Duff  <duff@adacore.com>
7831
7832         * exp_ch4.adb (Expand_N_Type_Conversion): Remove special processing
7833         for conversion of a Float_Type'Truncation to integer.
7834
7835         * exp_attr.adb (Is_Inline_Floating_Point_Attribute): New function to
7836         check if a node is an attribute that can be handled directly by the
7837         back end.
7838         (Expand_N_Attribute_Reference): Suppress expansion of floating-point
7839         attributes that can be handled directly by the back end.
7840         (Expand_N_Attribute_Reference, case 'Access and 'Unchecked_Access):
7841         use new predicate Is_Access_Protected_Subprogram_Type.
7842         (Expand_N_Attribute_Reference, case 'Write): The reference is legal for
7843         and Unchecked_Union if it is generated as part of the default  Output
7844         procedure for a type with default discriminants.
7845         (Expand_N_Attribute_Reference): Avoid the expansion of dispatching calls
7846         if we are compiling under restriction No_Dispatching_Calls.
7847         (Constrained): Use Underlying_Type, in case the type is private without
7848         discriminants, but the full type has discriminants.
7849         (Expand_N_Attribute_Reference): Replace call to Get_Access_Level by
7850         call to Build_Get_Access_Level.
7851         (Expand_N_Attribute_Reference): The use of 'Address with class-wide
7852         interface objects requires a call to the run-time subprogram that
7853         returns the base address of the object.
7854         (Valid_Conversion): Improve error message on illegal attempt to store
7855         an anonymous access to subprogram value into a record component.
7856
7857         * sem_res.adb (Resolve_Equality_Op): Detect ambiguity for "X'Access =
7858         null".
7859         (Simplify_Type_Conversion): New procedure that performs simplification
7860         of Int_Type (Float_Type'Truncation (X)).
7861         (Resolve_Type_Conversion): Call above procedure after resolving operand
7862         and before performing checks. This replaces the existing ineffective
7863         code in Exp_Ch4.
7864         (Set_String_Literal_Subtype): When creating the internal static lower
7865         bound subtype for a string literal, use a newly created copy of the
7866         subtree representing the lower bound.
7867         (Resolve_Call): Exclude build-in-place function calls from transient
7868         scope treatment. Update comments to describe this exception.
7869         (Resolve_Equality_Op): In case of dispatching call check violation of
7870         restriction No_Dispatching_Calls.
7871         (Resolve_Call): If the call returns an array, the context imposes the
7872         component type of the array, and the function has one non-defaulted
7873         parameter, rewrite the call as the indexing of a call with a single
7874         parameter, to handle an Ada 2005 syntactic ambiguity for calls written
7875         in prefix form.
7876         (Resolve_Actuals): If an actual is an allocator for an access parameter,
7877         the master of the created object is the innermost enclosing statement.
7878         (Remove_Conversions): For a binary operator, check if type of second
7879         formal is numeric, to check if an abstract interpretation is present
7880         in the case of exponentiation as well.
7881
7882 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
7883             Bob Duff  <duff@adacore.com>
7884
7885         * atree.h, atree.ads, atree.adb (Copy_Node_With_Replacement): When
7886         copying a parameter list in a call, set properly the First_Named_Formal
7887         and Next_Named_Formal fields in the new list and in the enclosing call.
7888         (Watch_Node,New_Node_Breakpoint,New_Node_Debugging_Output): Shorten
7889         names, to ease typing in the debugger. Improve comments.
7890         (Watch_Node): New variable, intended to be set in the debugger.
7891         (New_Node_Breakpoint): New do-nothing procedure to set a breakpoint on,
7892         called when the watched node is created.
7893         (New_Node_Debugging_Output): Combined version of local procedures
7894         New_Node_Debugging_Output and New_Entity_Debugging_Output, now global,
7895         with a parameter so that conditional breakpoints like "if Node = 12345"
7896         work.
7897         (New_Node, New_Entity): Call the global New_Node_Debugging_Output.
7898         Add Elist1 function
7899
7900 2007-04-06  Thomas Quinot  <quinot@adacore.com>
7901             Ed Schonberg  <schonberg@adacore.com>
7902             Gary Dismukes  <dismukes@adacore.com>
7903
7904         * checks.ads, checks.adb (Selected_Range_Checks): No range check is
7905         required for a conversion between two access-to-unconstrained-array
7906         types.
7907         (Expr_Known_Valid): Validity checks do not apply to discriminants, but
7908         to discriminant constraints on discriminant objects. This rule must
7909         apply as well to discriminants of protected types in private components.
7910         (Null_Exclusion_Static_Checks): If No_Initialization is set on an
7911         object of a null-excluding access type then don't require the
7912         the object declaration to have an expression and don't emit a
7913         run-time check.
7914
7915 2007-04-06  Arnaud Charlet  <charlet@adacore.com>
7916             Eric Botcazou <botcazou@adacore.com>
7917
7918         * gnatvsn.ads, comperr.adb (Get_Gnat_build_Type): Renamed Build_Type
7919         and made constant.
7920
7921         * comperr.ads, comperr.adb (Compiler_Abort): Add third parameter
7922         Fallback_Loc. Use it as the sloc info when Current_Error_Node doesn't
7923         carry any.
7924
7925         * fe.h (Compiler_Abort): Add third parameter.
7926
7927         * misc.c (internal_error_function): Build third argument from current
7928         input location and pass it to Compiler_Abort.
7929
7930 2007-04-06  Gary Dismukes  <dismukes@adacore.com>
7931
7932         * cstand.adb (Create_Standard): When the target's storage unit size is
7933         greater than a byte, set Has_Non_Standard_Rep and Has_Pragma_Pack on
7934         Standard_String.
7935
7936 2007-04-06  Nicolas Roche  <roche@adacore.com>
7937
7938         * cstreams.c (__gnat_full_name): Fix issues on VxWorks 6.x for which
7939         absolute path can have the following form: device:/a/b. In this case
7940         '/' should be inserted between the path and the filename.
7941
7942 2007-04-06  Olivier Hainque  <hainque@adacore.com>
7943             Eric Botcazou <botcazou@adacore.com>
7944
7945         * decl.c (gnat_to_gnu_entity) <E_Constant>: Associate an external
7946         VAR_DECL to a CONST_DECL we make for a public constant when we know the
7947         corresponding definition has created the so made visible variable.
7948         Handle anonymous access to protected subprogram.
7949         (gnat_to_gnu_entity) <E_Variable>: Do not make the underlying type of an
7950         object with an address clause volatile.  Re-enable original fix.
7951         <E_Subprogram_Type>: Set TYPE_REF_CAN_ALIAS_ALL on the reference type
7952         too.
7953         (gnat_to_gnu_entity) <E_Class_Wide_Type>: Retrieve the TYPE_DECL
7954         associated with either the Equivalent or Root type, instead of the
7955         naked type node.
7956         (gnat_to_gnu_entity): Manually mark the top of the DECL_FIELD_OFFSET
7957         subtree for every field of a global record type.
7958         (gnat_to_gnu_entity) <E_Record_Subtype>: If the subtype has
7959         discriminants, invoke again variable_size on its newly computed sizes.
7960
7961 2007-04-06  Robert Dewar  <dewar@adacore.com>
7962             Thomas Quinot  <quinot@adacore.com>
7963             Ed Schonberg  <schonberg@adacore.com>
7964             Bob Duff  <duff@adacore.com>
7965
7966         * einfo.ads, einfo.adb: (First_Component_Or_Discriminant): New function
7967         (Next_Component_Or_Discriminant): New function and procedure
7968         (First_Index, First_Literal, Master_Id,
7969         Set_First_Index, Set_First_Literal, Set_Master_Id):
7970         Add missing Ekind assertions.
7971         (Is_Access_Protected_Subprogram_Type): New predicate.
7972         (Has_RACW): New entity flag, set on package entities to indicate that
7973         the package contains the declaration of a remote accecss-to-classwide
7974         type.
7975         (E_Return_Statement): This node type has the Finalization_Chain_Entity
7976         attribute, in case the result type has controlled parts.
7977         (Requires_Overriding): Add this new flag, because "requires
7978         overriding" is subtly different from "is abstract" (see AI-228).
7979         (Is_Abstract): Split Is_Abstract flag into Is_Abstract_Subprogram and
7980         Is_Abstract_Type. Make sure these are called only when appropriate.
7981         (Has_Pragma_Unreferenced_Objects): New flag
7982
7983         * exp_ch5.adb (Expand_N_Assignment_Statement): If the left-hand side is
7984         class-wide, the tag of the right-hand side must be an exact match, not
7985         an ancestor of that of the object on left-hand side.
7986         (Move_Activation_Chain): New procedure to create the call to
7987         System.Tasking.Stages.Move_Activation_Chain.
7988         (Expand_N_Extended_Return_Statement): Generate code to call
7989         System.Finalization_Implementation.Move_Final_List at the end of a
7990         return statement if the function's result type has controlled parts.
7991         Move asserts to Build_In_Place_Formal.
7992         (Move_Final_List): New function to create the call statement.
7993         (Expand_N_Assignment_Statement): In case of assignment to a class-wide
7994         tagged type, replace generation of call to the run-time subprogram
7995         CW_Membership by call to Build_CW_Membership.
7996         (Expand_N_Return_Statement): Replace generation of call to the run-time
7997         subprogram Get_Access_Level by call to Build_Get_Access_Level.
7998         (Expand_N_Simple_Function_Return): Replace generation of call to the
7999         run-time subprogram Get_Access_Level by call to Build_Get_Access_Level.
8000
8001         * exp_ch6.ads, exp_ch6.adb (Expand_Call): Use new predicate
8002         Is_Access_Protected_Subprogram_Type, to handle both named and anonymous
8003         access to protected operations.
8004         (Add_Task_Actuals_To_Build_In_Place_Call): New procedure to add the
8005         master and chain actual parameters to a build-in-place function call
8006         involving tasks.
8007         (BIP_Formal_Suffix): Add new enumeration literals to complete the case
8008         statement.
8009         (Make_Build_In_Place_Call_In_Allocator,
8010         Make_Build_In_Place_Call_In_Anonymous_Context,
8011         Make_Build_In_Place_Call_In_Assignment,
8012         Make_Build_In_Place_Call_In_Object_Declaration): Call
8013         Add_Task_Actuals_To_Build_In_Place_Call with the appropriate master.
8014         (Expand_Inlined_Call): If the subprogram is a null procedure, or a
8015         stubbed procedure with a null body, replace the call with a null
8016         statement without using the full inlining machinery, for efficiency
8017         and to avoid invalid values in source file table entries.
8018
8019         * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Add support for
8020         renamings of calls to build-in-place functions.
8021
8022         * rtsfind.adb (RTE_Record_Component_Available): New subprogram that
8023         provides the functionality of RTE_Available to record components.
8024         (RTU_Entity): The function Entity has been renamed to RTU_Entity
8025         to avoid undesired overloading.
8026         (Entity): New subprogram that returns the entity for the referened
8027         unit. If this unit has not been loaded, it returns Empty.
8028         (RE_Activation_Chain_Access, RE_Move_Activation_Chain): New entities.
8029         Remove no longer used entities.
8030         (RE_Finalizable_Ptr_Ptr, RE_Move_Final_List): New entities.
8031         (RE_Type_Specific_Data): New entity.
8032         (RE_Move_Any_Value): New entity.
8033         (RE_TA_A, RE_Get_Any_Type): New entities.
8034         (RE_Access_Level, RE_Dispatch_Table, E_Default_Prim_Op_Count,
8035          RE_Prims_Ptr, RE_RC_Offset, RE_Remotely_Callable,
8036          RE_DT_Typeinfo_Ptr_Size, RE_Cstring_Ptr, RE_DT_Expanded_Name): Added.
8037         (Entity): New subprogram that returns the entity for the referened
8038         unit. If this unit has not been loaded, it returns Empty.
8039         (RTE): Addition of a new formal that extends the search to the scopes
8040         of the record types found in the chain of the package.
8041
8042         * sem_ch6.ads, sem_ch6.adb (Check_Overriding_Indicator): Print
8043         "abstract subprograms must be visible" message, whether or not the type
8044         is an interface; that is, remove the special case for interface types.
8045         (Analyze_Function_Return): Remove error message "return of task objects
8046         is not yet implemented" because this is now implemented.
8047         (Create_Extra_Formals): Add the extra master and activation chain
8048         formals in case the result type has tasks.
8049         Remove error message "return of limited controlled objects is not yet
8050         implemented".
8051         (Create_Extra_Formals): Add the extra caller's finalization list formal
8052         in case the result type has controlled parts.
8053         (Process_Formals): In case of access formal types there is no need
8054         to continue with the analysis of the formals if we already notified
8055         errors.
8056         (Check_Overriding_Indicator): Add code to check overriding of predefined
8057         operators.
8058         (Create_Extra_Formals): Prevent creation of useless Extra_Constrained
8059         flags for formals that do not require them,.
8060         (Enter_Overloaded_Entity): Do not give -gnatwh warning message unless
8061         hidden entity is use visible or directly visible.
8062         (Analyze_Abstract_Subprogram_Declaration,Analyze_Subprogram_Body,
8063         Analyze_Subprogram_Declaration,Analyze_Subprogram_Specification,
8064         Check_Conventions,Check_Delayed_Subprogram,Make_Inequality_Operator,
8065         New_Overloaded_Entity): Split Is_Abstract flag into
8066         Is_Abstract_Subprogram and Is_Abstract_Type.
8067
8068         * s-finimp.ads, s-finimp.adb (Move_Final_List): New procedure to move
8069         a return statement's finalization list to the caller's list, used for
8070         build-in-place functions with result type with controlled parts.
8071         Remove no longer used entities.
8072
8073         * s-taskin.ads (Activation_Chain): Remove pragma Volatile. It is no
8074         longer needed, because the full type is now limited, and therefore a
8075         pass-by-reference type.
8076         (Foreign_Task_Level): New constant.
8077
8078         * s-tassta.ads, s-tassta.adb (Move_Activation_Chain): New procedure to
8079         move tasks from the activation chain belonging to a return statement to
8080         the one passed in by the caller, and update the master to the one
8081         passed in by the caller.
8082         (Vulnerable_Complete_Master, Check_Unactivated_Tasks): Check the master
8083         of unactivated tasks, so we don't kill the ones that are being returned
8084         by a build-in-place function.
8085         (Create_Task): Ignore AI-280 for foreign threads.
8086
8087 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
8088             Robert Dewar  <dewar@adacore.com>
8089             Bob Duff  <duff@adacore.com>
8090             Gary Dismukes  <dismukes@adacore.com>
8091
8092         * errout.adb (Unwind_Internal_Type): Use predicate
8093         Is_Access__Protected_Subprogram_Type.
8094
8095         * freeze.adb (Size_Known): Use First/Next_Component_Or_Discriminant
8096         (Freeze_Entity, packed array case): Do not override explicitly set
8097         alignment and size clauses.
8098         (Freeze_Entity):  An entity declared in an outer scope can be frozen if
8099         the enclosing subprogram is a child unit body that acts as a spec.
8100         (Freeze_Entity): Use new predicate Is_Access_Protected_Subprogram_Type.
8101         (Freeze_Record_Type): New Ada 2005 processing for reverse bit order
8102         Remove all code for DSP option
8103
8104         * layout.adb (Layout_Record_Type): Use First/
8105         Next_Component_Or_Discriminant
8106         (Layout_Type): Use new predicate Is_Access_Protected_Subprogram_Type,
8107         to handle properly the anonymous access case.
8108
8109         * sem_attr.adb (Build_Access_Object_Type): Use E_Access_Attribute_Type
8110         for all access attributes, because overload resolution should work the
8111         same for 'Access, 'Unchecked_Access, and 'Unrestricted_Access. This
8112         causes the error message for the ambiguous "X'Access = Y'Access" and
8113         "X'Unrestricted_Access = Y'Access" and so forth to match.
8114         (Resolve_Attribute, case 'Access): Remove use of Original_Access_Type,
8115         now that anonymous access to protected operations have their own kind.
8116         (Resolve_Attribute): In case of dispatching call check the violation of
8117         restriction No_Dispatching_Calls.
8118         (Check_Array_Type): Check new -gnatyA array index style option
8119
8120         * sem_ch3.ads, sem_ch3.adb (Derived_Type_Declaration): Reject an
8121         attempt to derive from a synchronized tagged type.
8122         (Analyze_Type_Declaration): If there is a incomplete tagged view of the
8123         type, inherit the class-wide type already created, because it may
8124         already have been used in a self-referential anonymous access component.
8125         (Mentions_T): Recognize self-referential anonymous access components
8126         that use (a subtype of) the class-wide type of the enclosing type.
8127         (Build_Derived_Record_Type): Add earlier setting of Is_Tagged_Type. Pass
8128         Derived_Type for Prev formal on call to
8129         Check_Anonymous_Access_Components rather than Empty.
8130         (Make_Incomplete_Type_Declaration): Add test for case where the type has
8131         a record extension in deciding whether to create a class-wide type,
8132         rather than just checking Tagged_Present.
8133         (Replace_Anonymous_Access_To_Protected_Subprogram): Procedure applies
8134         to stand-alone object declarations as well as component declarations.
8135         (Array_Type_Declaration): Initialize Packed_Array_Type to Empty, to
8136         prevent accidental overwriting when enclosing package appears in
8137         a limited_with_clause.
8138         (Array_Type_Declaration): If the component type is an anonymous access,
8139         the associated_node for the itype is the type declaration itself.
8140         (Add_Interface_Tag_Components): Modified to support concurrent
8141         types with abstract interfaces.
8142         (Check_Abstract_Interfaces): New subprogram that verifies the ARM
8143         rules 3.9.4 (15/2), 9.1 (9.d/2) and 9.4 (11.d/2).
8144         (Build_Derived_Record_Type): Add call to Analyze_Interface_Declaration
8145         to complete the decoration of synchronized interface types. Add also
8146         a call to Check_Abstract_Interfaces to verify the ARM rules.
8147         (Derive_Interface_Subprograms): Modified to support concurrent types
8148         with abstract interfaces.
8149         (Analyze_Subtype_Indication): Resolve the range with the given subtype
8150         mark, rather than delaying the full resolution depending on context.
8151         (Analyze_Component_Declaration,Analyze_Interface_Declaration,
8152         Analyze_Object_Declaration,Analyze_Subtype_Declaration,
8153         Array_Type_Declaration,Build_Derived_Record_Type,
8154         Build_Discriminated_Subtype,Check_Abstract_Overriding,Check_Completion,
8155         Derive_Interface_Subprograms,Derive_Subprogram,Make_Class_Wide_Type,
8156         Process_Full_View,Record_Type_Declaration): Split Is_Abstract flag into
8157         Is_Abstract_Subprogram and Is_Abstract_Type. Make sure these are
8158         called only when appropriate.
8159         (Copy_And_Swap): Copy Has_Unreferenced_Objects flag from full type
8160         to private type.
8161         (Analyze_Subtype_Declaration): For an access subtype declaration, create
8162         an itype reference for the anonymous designated subtype, to prevent
8163         scope anonmalies in gigi.
8164         (Build_Itype_Reference): New utility, to simplify construction of such
8165         references.
8166
8167 2007-04-06  Vincent Celier  <celier@adacore.com>
8168
8169         * errutil.adb (Initialize): Initialize warnings table, if all warnings
8170         are suppressed, supply an initial dummy entry covering all possible
8171         source locations.
8172
8173         * make.adb (Scan_Make_Arg): Reject options that should start with "--"
8174         and start with only one, such as "-RTS=none".
8175         (Collect_Arguments): Do not check for sources outside of projects.
8176         Do not collect arguments if project is externally built.
8177         (Compile_Sources): Do nothing, not even check if the source is up to
8178         date, if its project is externally built.
8179         (Compile): When compiling a predefined source, add -gnatpg
8180         as the second switch, after -c.
8181         (Compile_Sources): Allow compilation of Annex J renames without -a
8182         (Is_In_Object_Directory): Check if the ALI file is in the object
8183         even if there is no project extension.
8184         (Create_Binder_Mapping_File): Only put a unit in the mapping file for
8185         gnatbind if the ALI file effectively exists.
8186         (Initialize): Add the directory where gnatmake is invoked in front of
8187         the path if it is invoked from a bin directory, even without directory
8188         information, so that the correct GNAT tools will be used when spawned
8189         without directory information.
8190
8191         * makeusg.adb: Change switch -S to -eS
8192         Add lines for new switches -we, -wn and -ws
8193         Add line for new switch -p
8194
8195         * prj-proc.adb (Process): Set Success to False when Warning_Mode is
8196         Treat_As_Error and there are warnings.
8197
8198         * switch-m.ads, switch-m.adb (Normalize_Compiler_Switches): Do not skip
8199         -gnatww Change gnatmake switch -S to -eS
8200         (Scan_Make_Switches): Code reorganisation. Process separately multi
8201         character switches and single character switches.
8202         (Scan_Make_Switches): New Boolean out parameter Success. Set Success to
8203         False when switch is not recognized by gnatmake.
8204         (Scan_Make_Switches): Set Setup_Projects True when -p or
8205         --create-missing-dirs is specified.
8206
8207         * fname.adb (Is_Predefined_File_Name): Return True for annex J
8208         renamings Calendar, Machine_Code, Unchecked_Conversion and
8209         Unchecked_Deallocation only when Renamings_Included is True.
8210
8211         * par.adb: Allow library units Calendar, Machine_Code,
8212         Unchecked_Conversion and Unchecked_Deallocation to be recompiled even
8213         when -gnatg is not specified.
8214         (P_Interface_Type_Definition): Remove the formal Is_Synchronized because
8215         there is no need to generate always a record_definition_node in case
8216         of synchronized interface types.
8217         (SIS_Entry_Active): Initialize global variable to False
8218         (P_Null_Exclusion): For AI-447: Add parameter Allow_Anonymous_In_95 to
8219         indicate cases where AI-447 says "not null" is legal.
8220
8221         * makeutl.ads, makeutil.adb (Executable_Prefix_Path): New function
8222
8223         * makegpr.adb (Check_Compilation_Needed): Take into account dependency
8224         files with with several lines starting with the object fileb name.
8225         (Scan_Arg): Set Setup_Projects True when -p or --create-missing-dirs
8226         is specified.
8227         (Initialize): Add the directory where gprmake is invoked in front of the
8228         path, if it is invoked from a bin directory or with directory
8229         information, so that the correct GNAT tools will be used when invoked
8230         directly.
8231         (Check_Compilation_Needed): Process correctly backslashes on Windows.
8232
8233         * vms_data.ads: Update switches/qualifiers
8234
8235 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
8236             Thomas Quinot  <quinot@adacore.com>
8237
8238         * exp_aggr.adb:
8239         If the array component is a discriminated record, the array aggregate
8240         is non-static even if the component is given by an aggregate with
8241         static components.
8242         (Expand_Record_Aggregate): Use First/Next_Component_Or_Discriminant
8243         (Convert_Aggr_In_Allocator): If the allocator is for an access
8244         discriminant and the type is controlled. do not place on a finalization
8245         list at this point. The proper list will be determined from the
8246         enclosing object.
8247         (Build_Record_Aggr_Code): If aggregate has box-initialized components,
8248         initialize record controller if needed, before the components, to ensure
8249         that they are properly finalized.
8250         (Build_Record_Aggr_Code): For the case of an array component that has a
8251         corresponding array aggregate in the record aggregate, perform sliding
8252         if required.
8253
8254 2007-04-06  Javier Miranda  <miranda@adacore.com>
8255             Gary Dismukes  <dismukes@adacore.com>
8256             Ed Schonberg  <schonberg@adacore.com>
8257
8258         * exp_ch13.adb (Expand_External_Tag_Definition): Replace call to the
8259         run-time subprogram Set_External_Tag by call to Build_Set_External_Tag.
8260
8261         * exp_ch4.adb (Expand_Allocator_Expression): Don't perform a run-time
8262         accessibility on class-wide allocators if the allocator occurs at the
8263         same scope level as the allocator's type. The check is guaranteed to
8264         succeed in that case, even when the expression originates from a
8265         parameter of the containing subprogram.
8266         (Expand_N_Op_Eq): Do nothing in case of dispatching call if compiling
8267         under No_Dispatching_Calls restriction. During the semantic analysis
8268         we already notified such violation.
8269         (Tagged_Membership): Constant folding. There is no need to check
8270         the tag at run-time if the type of the right operand is non
8271         class-wide abstract.
8272         Replace call to Is_Ancestor by call to Is_Parent
8273         to support concurrent types with interface types.
8274         (Expand_N_Allocator): Add an assertion associated with the generation
8275         of the master_id.
8276         (Expand_N_Slice): Do not enable range check to nodes associated
8277         with the frontend expansion of the dispatch table.
8278         (Is_Local_Access_Discriminant): Subsidiary function to
8279         Expand_N_Allocator.
8280         (Tagged_Membership): Replace generation of call to the run-time
8281         subprogram CW_Membership by call to Build_CW_Membership.
8282         (Expand_Allocator_Expression): Replace generation of call to the
8283         run-time subprogram Get_Access_Level by call to Build_Get_Access_Level.
8284
8285         * exp_disp.ads, exp_disp.adb (Make_DT): Code reorganization to
8286         initialize most the TSD components by means of an aggregate.
8287         Modify the declaration of the object containing the TSD
8288         because we now expand code that has a higher level of abstraction.
8289         The TSD has a discriminant containing the Inheritance Depth Level,
8290         value that is used in the membership test but also to fix the size
8291         of the table of ancestors.
8292         (Expand_Interface_Conversion): Insert function body at the closest place
8293         to the conversion expression, to prevent access-before-elaboration
8294         errors in the backend.
8295         Code improved to reduce the size of the dispatch table if
8296         compiling under restriction No_Dispatching_Calls plus code cleanup.
8297         Code reorganization plus removal of calls to Set_Num_Prim_Ops
8298         (Make_Secondary_DT): Remove call to Set_Num_Prim_Ops.
8299         (Expand_Dispatching_Call): Minor code reorganization plus addition of
8300         code to return immediately if compiling under No_Dispatching_Calls
8301         restriction.
8302         (Set_All_DT_Position): Remove code associated with the old CPP pragmas.
8303         CPP_Virtual and CPP_Vtable are no longer supported.
8304         (Expand_Interface_Conversion): Add missing support for interface type
8305         derivations.
8306         (Expand_Interface_Actuals): Replace calls to Is_Ancestor by calls to
8307         Is_Parent to support concurrent types with interfaces.
8308         (Init_Predefined_Interface_Primitives): Removed.
8309         (Make_Secondary_DT): Modified to support concurrent record types.
8310         (Set_All_DT_Position): Modified to support concurrent record types.
8311         (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entries associated
8312         with Get_External_Tag, Inherit_TSD, Set_External_Tag.
8313         (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entry associated
8314         with CW_Membership.
8315         (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entries associated
8316         with Get_Access_Level, Get_Predefined_Prim_Op_Address,
8317         Get_Prim_Op_Address Get_RC_Offset, Get_Remotely_Callable, Inherit_DT,
8318         Set_Access_Level, Set_Expanded_Name, Set_Predefined_Prim_Op_Address,
8319         Set_Prim_Op_Address, Set_RC_Offset, Set_Remotely_Callable, Set_TSD.
8320         (Expand_Dispatching_Call): Replace generation of call to the run-time
8321         subprograms Get_Predefined_Prim_Op_Address and Get_Prim_Op_Address by
8322         calls to Build_Get_Predefined_Prim_Op_Address, and Build_Get_Prim_Op_
8323         Address.
8324         (Fill_DT_Entry, Fill_Secondary_DT_Entry): Replace generation of call to
8325         the run-time subprograms Set_Predefined_Prim_Op_Address and Set_Prim_
8326         Op_Address by calls to Build_Set_Predefined_Prim_Op_Address, and
8327         Build_Set_Prim_Op_Address.
8328         (Get_Remotely_Callable): Subprogram removed.
8329         (Init_Predefined_Interface_Primitives): Replace generation of call to
8330         the run-time subprograms Inherit_DT by call to Build_Inherit_Predefined_
8331         Prims.
8332
8333         * sem_elab.adb (Set_Elaboration_Constraint): Replace the call to
8334         First (Parameter_Associations ()) with the call to First_Actual that
8335         returns an actual parameter expression for both named and positional
8336         associations.
8337
8338         * sem_disp.adb (Check_Dispatching_Call): In case of dispatching call
8339         check violation of restriction No_Dispatching_Calls.
8340         (Check_Controlling_Type): A formal of a tagged incomplete type is a
8341         controlling argument.
8342
8343         * exp_util.ads, exp_util.adb (Type_May_Have_Bit_Aligned_Components): Use
8344         First/Next_Component_Or_Discriminant
8345         (Insert_Actions): Add entries for new N_Push and N_Pop nodes
8346         (Find_Implemented_Interface): Removed. All the calls to this subprogram
8347         specify Any_Limited_Interface, and this functionality is already
8348         provided by the function Has_Abstract_Interfaces.
8349         (Find_Interface, Find_Interface_Tag, Find_Interface_ADT): Modified to
8350         support concurrent types implementing interfaces.
8351         (Find_Implemented_Interface): Removed. All the calls to this subprogram
8352         specify kind Any_Limited_Interface, and this functionality is already
8353         provided by the function Has_Abstract_Interfaces.
8354         (Remove_Side_Effects): replace Controlled_Type by
8355         CW_Or_Controlled_Type whenever the issue is related to
8356         using or not the secondary stack.
8357
8358         * par-ch12.adb (P_Formal_Type_Definition): Update calls to
8359         P_Interface_Type_Definition to fulfill the new interface (the formal
8360         Is_Synchronized is no longer required).
8361
8362         * Make-lang.in (GNAT_ADA_OBJS): Addition of exp_atag.o
8363         Update dependencies.
8364
8365         * exp_atag.ads, exp_atag.adb: New file
8366
8367 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
8368             Bob Duff  <duff@adacore.com>
8369             Cyrille Comar  <comar@adacore.com>
8370
8371         * exp_ch7.ads, exp_ch7.adb (Find_Final_List): If the access type is
8372         anonymous, use finalization list of enclosing dynamic scope.
8373         (Expand_N_Package_Declaration): For a library package declaration
8374         without a corresponding body, generate RACW subprogram bodies in the
8375         spec (just as we do for the task activation call).
8376         (Convert_View): Split Is_Abstract flag into Is_Abstract_Subprogram and
8377         Is_Abstract_Type. Make sure these are called only when appropriate.
8378         Remove all code for DSP option
8379         (CW_Or_Controlled_Type): new subprogram.
8380
8381 2007-04-06  Eric Botcazou <botcazou@adacore.com>
8382             Ed Schonberg  <schonberg@adacore.com>
8383             Gary Dismukes  <dismukes@adacore.com>
8384
8385         * exp_ch9.ads, exp_ch9.adb (Family_Offset): Add new 'Cap' boolean
8386         parameter. If it is set to true, return a result capped according to
8387         the global upper bound for the index of an entry family.
8388         (Family_Size): Add new 'Cap' boolean parameter. Pass it to Family_Offset
8389         (Build_Find_Body_Index): Adjust for above change.
8390         (Entry_Index_Expression): Likewise.
8391         (Is_Potentially_Large_Family): New function extracted from...
8392         (Collect_Entry_Families): ...here. Call it to detect whether the family
8393         is potentially large.
8394         (Build_Entry_Count_Expression): If the family is potentially large, call
8395         Family_Size with 'Cap' set to true.
8396         (Expand_N_Protected_Type_Declaration, Expand_N_Protected_Body): Generate
8397         a protected version of an operation declared in the private part of
8398         a protected object, because they may be invoked through a callback.
8399         (Set_Privals): If the type of a private component is an anonymous access
8400         type, do not create a new itype for each protected body.
8401         If the body of a protected operation creates
8402         controlled types (including allocators for class-widetypes), the
8403         body of the corresponding protected subprogram must include a
8404         finalization list.
8405         (Build_Activation_Chain_Entity): Build the chain entity for extended
8406         return statements.
8407         (Type_Conformant_Parameters): Use common predicate Conforming_Types
8408         to determine whether operation overrides an inherited primitive.
8409         (Build_Wrapper_Spec): Add code to examine the parents while looking
8410         for a possible overriding candidate.
8411         (Build_Simple_Entry_Call): Set No_Initialization on the object used to
8412         hold an actual parameter value since its initialization is separated
8413         from the the declaration. Prevents errors on null-excluding access
8414         formals.
8415
8416 2007-04-06  Thomas Quinot  <quinot@adacore.com>
8417
8418         * exp_dist.ads, exp_dist.adb (Build_To_Any_Call, Build_From_Any_Call):
8419         Do an Unchecked_Conversion to handle the passage from the Underlying
8420         Type to the Base Type when calling Build_To_Any_Call and
8421         Build_From_Any_Call.
8422         (Build_Actual_Object_Declaration): Set Object's Ekind to E_Variable or
8423         E_Constant, depending upon Variable formal.
8424         (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
8425         PolyORB_Support.Build_Subprogram_Receiving_Stubs): For a formal
8426         parameter that requires an extra constrained parameter, declare
8427         temporary for actual as a variable, not a constant.
8428         (Add_RACW_Primitive_Declarations_And_Bodies): Generate bodies only when
8429         the unit being compiled is the one that contains the stub type.
8430         Change primitive operation name for the RACW associated with a RAS
8431         from Call to _Call so it cannot clash with any legal identifier.
8432         (PolyORB_Support.Add_RACW_Write_Attribute): Remove unused constant
8433         Is_RAS.
8434         (Append_RACW_Bodies): New subprogram.
8435         (Expand_Receiving_Stubs_Bodies): Pass a 'Stmts' list to
8436         Add_Receiving_Stubs_To_Declarations functions.
8437         When expanding a package body, this list correspond to the
8438         statements in the HSS at the end of the pacakge.
8439         When expanding a package spec, this list correspond to the
8440         spec declarations.
8441         (Add_Receiving_Stubs_To_Declarations): Append the function
8442         registering the receiving stubs at the end of the 'Stmts' list.
8443         (RCI_Package_Locator): Pass the new Version generic formal when
8444         instantiating a RCI_Locator package.
8445         (Build_From_Any_Function): To compute the High bound for an
8446         unconstrained array actual, we add the Low bound with the length.
8447         Thus we must convert the low bound and the length to an appropriate
8448         type before doing the sum.
8449         (Build_Subprogram_Receiving_Stubs, PolyORB):
8450          * Retrieve the extra formals parameters at the
8451            end of the parameter stream.
8452          * Use Move_Any_Value to write back out parameters
8453            after executing the request as it is more efficient
8454            than Copy_Any_Value.
8455          * Build the any containing Extra Formals with the
8456            appropriate typecode.
8457         (PolyORB_Support.Helpers.Append_Record_Traversal): Nothing to do for an
8458         empty Component_List.
8459         (Build_Actual_Object_Declaration): New subprogram. Build and insert into
8460         the tree the declaration for an object that serves as actual parameter
8461         in server-side stubs.
8462         (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
8463         PolyORB_Support.Build_Subprogram_Receiving_Stubs):
8464         Use Build_Actual_Object_Declaration to prepare the actuals.
8465         (Add_Parameter_To_NVList): Set the parameter mode to In for
8466         Extra Constrained Parameters.
8467         (Build_General_Calling_Stubs): Set the parameter type to boolean for
8468         Extra Constrained parameters.
8469         (Build_To_Any_Function, Build_From_Any_Function,
8470         Built_TypeCode_Function): When Typ is implicit, call the correct
8471         function with the first not implicit parent type.
8472         (TC_Rec_Add_Process_Element, FA_Rec_Add_Process_Element,
8473         (FA_Ary_Add_Process_Element): When Datum is an Any, we cannot infer the
8474         typecode from the Etype. Therefore we retrieve the correct typecode
8475         with a call to Get_Any_Type.
8476         (Copy_Specification): Do controlling formal type substitution based on
8477         Is_Controlling_Formal flag, instead of caller-provided object type.
8478         (Build_Subprogram_Calling_Stubs): When retrieveing the original spec for
8479         a RACW primitive operation, we might get a subprogram declaration for an
8480         ancestor of the RACW designated type (not for the designated type
8481         itself), in the case where this operation is inherited. In this case we
8482         have no easy means of determining the original tagged type for which
8483         the primitive was declared, so instead we now rely on
8484         Copy_Specification to use the Is_Controlling_Formal flag to determine
8485         which formals require type substitution.
8486
8487 2007-04-06  Robert Dewar  <dewar@adacore.com>
8488             Ed Schonberg  <schonberg@adacore.com>
8489
8490         * exp_intr.adb (Expand_Exception_Call): Calls to subprograms in
8491         GNAT.Current_Exception are not allowed if pragma Restrictions
8492         (No_Exception_Propagation) is set and in any case make the associated
8493         handler unsuitable as a target for a local raise statement.
8494         (Expand_Dispatching_Constructor_Call): Replace generation of call to the
8495         run-time subprogram CW_Membership by call to Build_CW_Membership.
8496         (Expand_Dispatching_Constructor_Call): If the dispatching tag is given
8497         by a function call, a temporary must be created before expanding the
8498         Constructor_Call itself, to prevent out-of-order elaboration in the
8499         back-end when stack checking is enabled..
8500
8501 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
8502
8503         * exp_pakd.adb (Expand_Packed_Boolean_Operator): The bounds of the
8504         result are the bounds of the left operand, not the right.
8505
8506 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
8507
8508         * exp_strm.adb
8509         (Build_Mutable_Record_Write_Procedure): For an Unchecked_Union type, use
8510          discriminant defaults.
8511         (Build_Record_Or_Elementary_Output_Procedure): Ditto.
8512         (Make_Component_List_Attributes): Ditto.
8513
8514 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
8515             Bob Duff  <duff@adacore.com>
8516
8517         * sem_aggr.adb (Resolve_Record_Aggregate): In semantics-only mode treat
8518         an association with a box as providing a value even though the
8519         initialization procedure for the type is not available.
8520         (Resolve_Record_Aggregate): Check that a choice of an association with a
8521         box corresponds to a component of the type.
8522         (Resolve_Record_Aggregate): Split Is_Abstract flag into
8523         Is_Abstract_Subprogram and Is_Abstract_Type.
8524
8525         * exp_tss.adb (Base_Init_Proc): Use Is_Type instead of Type_Kind for
8526         assert.
8527
8528         * inline.adb (Add_Inlined_Body): Split Is_Abstract flag into
8529         Is_Abstract_Subprogram and Is_Abstract_Type. Make sure these are
8530         called only when appropriate.
8531
8532 2007-04-06  Olivier Hainque  <hainque@adacore.com>
8533
8534         * g-alleve.ads (Low Level Vector type definitions): Map each to the
8535         associated vector view instead of all to the unsigned char view.
8536
8537         * g-altcon.adb (Generic_Conversions): New internal generic package,
8538         offering facilities for all the Vector/View conversion routines
8539         implemented by this unit.
8540         (To_View/To_Vector - all versions): Reimplemented in a systematic
8541         manner, using the internal Generic_Conversions facilities.
8542
8543 2007-04-06  Pascal Obry  <obry@adacore.com>
8544
8545         * g-arrspl.adb (Free) [Element_Access]: New routine to free the source
8546         string.
8547         (Create): Free the source string before storing the new one.
8548
8549 2007-04-06  Vincent Celier  <celier@adacore.com>
8550
8551         * g-debpoo.adb (Validity): New package with a complete new
8552         implementation of subprograms Is_Valid and Set_Valid.
8553         (Is_Valid): Move to local package Validity
8554         (Set_Valid): Move to local package Validity
8555
8556 2007-04-06  Arnaud Charlet  <charlet@adacore.com>
8557
8558         * g-expect.adb (Get_Command_Output): When expanding the output buffer
8559         we must ensure that there is enough place for the new data we are going
8560         to copy in.
8561
8562 2007-04-06  Thomas Quinot  <quinot@adacore.com>
8563
8564         * g-md5.ads, g-md5.adb (Digest): Fix off-by-one error in padding
8565         computation.
8566
8567 2007-04-06  Jose Ruiz  <ruiz@adacore.com>
8568             Vincent Celier  <celier@adacore.com>
8569
8570         * gnatcmd.adb (B_Start): Add prefix of binder generated file.
8571         (Stack_String): Add this String that contains the name of the Stack
8572         package in the project file.
8573         (Packages_To_Check_By_Stack): Add this list that contains the packages
8574         to be checked by gnatstack, which are the naming and the stack packages.
8575         (Check_Files): If no .ci files were specified for gnatstack we add all
8576         the .ci files belonging to the projects, including binder generated
8577         files.
8578         (Non_VMS_Usage): Document that gnatstack accept project file switches.
8579         (GNATCmd): Update the B_Start variable if we are in a VMS environment.
8580         Add gnatstack to the list of commands that use project file related
8581         switches, and get the single attribute Switches from the stack package
8582         in a project file when calling gnatstack. Parse the -U flag for
8583         processing files belonging to all projects in the project tree.
8584         Remove all processing for command Setup
8585
8586         * prj-attr.adb: Add new package Stack with single attribute Switches
8587
8588         * vms_conv.ads (Command_Type): Add command Stack.
8589         Move to body declarations that are only used in the body: types Item_Id,
8590         Translation_Type, Item_Ptr, Item and its subtypes.
8591
8592         * vms_conv.adb: (Initialize): Add data for new command Stack.
8593         Add declarations moved from the spec: types Item_Id, Translation_Type,
8594         Item_Ptr, Item and its subtypes.
8595         (Cargs_Buffer): New table
8596         (Cargs): New Boolean global variable
8597         (Process_Buffer): New procedure to create arguments
8598         (Place): Put character in table Buffer or Cargs_Buffer depending on the
8599          value of Cargs.
8600         (Process_Argument): Set Cargs when processing qualifiers for GNAT
8601         COMPILE
8602         (VMS_Conversion): Call Process_Buffer for table Buffer and, if it is not
8603         empty, for table Cargs_Buffer.
8604         (Initialize): Remove component Setup in Command_List
8605
8606 2007-04-06  Vincent Celier  <celier@adacore.com>
8607
8608         * gprep.adb (Process_Files.Process_One_File): Use full file name when
8609         issuing pragma Source_Reference.
8610
8611 2007-04-06  Emmanuel Briot  <briot@adacore.com>
8612
8613         * g-regpat.adb (Parse_Posix_Character_Class): Fix handling of
8614         [[:xdigit:]] character class.
8615         Also raise an exception when an invalid character class is used.
8616
8617 2007-04-06  Pascal Obry  <obry@adacore.com>
8618
8619         * i-cstrea.ads: (fopen): Add encoding parameter.
8620         (freopen): Idem.
8621         Change reference from a-sysdep.c to sysdep.c in comment.
8622         Update copyright notice.
8623         This set of patch add support for the encoding form parameter.
8624
8625         * mingw32.h (S2WSU): New macro to convert from a string to a
8626         wide-string using the UTF-8 encoding. The S2WS macro supports now only
8627         standard 8bits encoding.
8628         (WS2SU): As above but converting from wide-sring to string.
8629         This is needed as it is necessary to have access to both versions in the
8630         runtime for the form parameter encoding support.
8631         This set of patch add support for the encoding form parameter.
8632         (S2WS): Improve implementation to handle cases where the filename is not
8633         UTF-8 encoded. In this case we default to using the current code page
8634         for the conversion.
8635
8636         * s-crtl-vms64.ads, s-crtl.ads (Filename_Encoding): New enumeration
8637         type (UTF8, ASCII_8bits). This enumeration has a rep clause to match
8638         the constants defined in adaint.h.
8639         (fopen): Add encoding parameter.
8640         (freopen): Idem.
8641
8642         * s-ficobl.ads (AFCB): Add Encoding field to record the filename
8643         encoding. This is needed for the Reset routine (freopen low level-call).
8644
8645         * s-fileio.adb (Open): Decode encoding form parameter and set the
8646         corresponding encoding value into AFCB structure.
8647         (Reset): Pass the encoding value to freopen.
8648         (Close): Move the call to Lock_Task to the beginning of the procedure.
8649
8650 2007-04-06  Geert Bosch  <bosch@adacore.com>
8651             Robert Dewar  <dewar@adacore.com>
8652
8653         * i-fortra.ads: Add Double_Complex type.
8654
8655         * impunit.adb: (Is_Known_Unit): New function
8656         Add Gnat.Byte_Swapping
8657         Add GNAT.SHA1
8658         Add new Ada 2005 units
8659         Ada.Numerics.Generic_Complex_Arrays, Ada.Numerics.Generic_Real_Arrays,
8660         Ada.Numerics.Complex_Arrays, Ada.Numerics.Real_Arrays,
8661         Ada.Numerics.Long_Complex_Arrays, Ada.Numerics.Long_Long_Complex_Arrays,
8662         Ada.Numerics.Long_Long_Real_Arrays and Ada.Numerics.Long_Real_Arrays
8663
8664         * impunit.ads (Is_Known_Unit): New function
8665
8666         * a-ngcoar.adb, a-ngcoar.ads, a-ngrear.adb,
8667         a-ngrear.ads, a-nlcoar.ads, a-nllcar.ads, a-nllrar.ads, a-nlrear.ads,
8668         a-nucoar.ads, a-nurear.ads, g-bytswa.adb, g-bytswa-x86.adb,
8669         g-bytswa.ads, g-sha1.adb, g-sha1.ads, i-forbla.ads, i-forlap.ads,
8670         s-gearop.adb, s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb,
8671         s-gecola.ads, s-gerebl.adb, s-gerebl.ads, s-gerela.adb, s-gerela.ads:
8672         New files.
8673
8674         * Makefile.rtl: Add g-bytswa, g-sha1, a-fzteio and a-izteio
8675
8676         * a-fzteio.ads, a-izteio.ads: New Ada 2005 run-time units.
8677
8678 2007-04-06  Eric Botcazou <botcazou@adacore.com>
8679             Arnaud Charlet  <charlet@adacore.com>
8680
8681         * init.c: Reuse PA/HP-UX code for IA-64/HP-UX, except
8682         __gnat_adjust_context_for_raise.
8683         (__gnat_init_float): on x86 vxworks 5.x and 6.x, we use the same
8684         implementation of floating point operations as native x86 targets.
8685         So the FPU should be initialized in the same way using finit. Fix
8686         floating point operations accuracy issues.
8687         (__gnat_install_handler, case FreeBSD): Use proper type for sa_sigaction
8688         member in struct sigaction, so as to avoid warning for incompatible
8689         pointer types.
8690
8691 2007-04-06 Serguei Rybin <rybin@adacore.com>
8692
8693         * lib.ads, lib.adb (Tree_Read): Release the memory occupied by the
8694         switches from previously loaded tree
8695
8696 2007-04-06  Thomas Quinot  <quinot@adacore.com>
8697
8698         * lib-writ.adb (Write_With_Lines): Factor duplicated code between the
8699         cases where a given dependency has a body or not.
8700         (Write_With_File_Names): New subprogram, common code for the two cases
8701         above.
8702
8703 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
8704             Javier Miranda  <miranda@adacore.com>
8705
8706         * lib-xref.ads, lib-xref.adb: 
8707         Modify the loop that collects type references, to include interface
8708         types that the type implements. List each of these interfaces when
8709         building the entry for the type.
8710         (Generate_Definition): Initialize component Def and Typ of new entry
8711         in table Xrefs, to avoid to have these components unitialized.
8712         (Output_References): Split Is_Abstract flag into
8713         Is_Abstract_Subprogram and Is_Abstract_Type.
8714         (Generate_Reference): Add barrier to do not generate the warning
8715         associated with Ada 2005 entities with entities generated by the
8716         expander.
8717
8718 2007-04-06  Robert Dewar  <dewar@adacore.com>
8719             Arnaud Charlet  <charlet@adacore.com>
8720             Vincent Celier  <celier@adacore.com>
8721
8722         * gnat_rm.texi, gnat_ugn.texi: Add -gnatyl documentation
8723         Update 'Exception Handling Control' chapter which was outdated.
8724         Minor fix to documentation of -gnatwq
8725         Remove section "Adapting the Run Time to a New C++ Compiler" because
8726         it is now obsolete.
8727         Add passage on need of -nostart-files in some non-ada-main cases.
8728         Document new switch -eS (/STANDARD_OUTPUT_FOR_COMMANDS) for gnatmake
8729         Update documentation about Interfacing with C++
8730         Add documentation for new gnatmake switch -p
8731         Add missing protocol part in URLs.
8732         Document -gnatyA
8733         Document pragma Compile_Time_Error
8734         Add documentation for Object_Size indicating that stand alone
8735         objects can have a larger size in some cases.
8736         Add node for GNAT.Byte_Swapping, GNAT.SHA1
8737         Update reference to the Ravenscar profile.
8738         Document pragma Unreferenced_Objects
8739
8740         * gnat-style.texi: Fix typo
8741
8742 2007-04-06  Vincent Celier  <celier@adacore.com>
8743
8744         * mlib.adb (Building_Library): Only output "building a library..." in
8745         verbose mode
8746
8747         * mlib-prj.adb (Build_Library): Only output lists of object and ALI
8748         files in verbose mode.
8749
8750         * mlib-utl.adb (Ar): Only output the first object files when not in
8751         verbose mode.
8752         (Gcc): Do not display all the object files if not in verbose mode, only
8753         the first one.
8754
8755 2007-04-06  Robert Dewar  <dewar@adacore.com>
8756
8757         * namet.ads, namet.adb (wn): Improve this debugging routine. Calling
8758         it no longer destroys the contents of Name_Buffer or Name_Len and
8759         non-standard and invalid names are handled better.
8760         (Get_Decoded_Name_String): Improve performance by using
8761         Name_Has_No_Encodings flag in the name table.
8762         (Is_Valid_Name): New function to determine whether a Name_Id is valid.
8763         Used for debugging printouts.
8764
8765 2007-04-06  Robert Dewar  <dewar@adacore.com>
8766             Javier Miranda  <miranda@adacore.com>
8767             Bob Duff  <duff@adacore.com>
8768
8769         * par-ch3.adb: (P_Type_Declaration): Set Type_Token_Location
8770         (P_Interface_Type_Definition): Remove the formal Is_Synchronized because
8771         there is no need to generate always a record_definition_node in case
8772         of synchronized interface types.
8773         (P_Type_Declaration): Update calls to P_Interface_Type_Definition.
8774         (P_Null_Exclusion): For AI-447: Remove warnings about "not null" being
8775         illegal in Ada 95, in cases where it is legal. Change the warnings to
8776         errors in other cases. Don't give the error unless the "not null"
8777         parses properly. Correct the source position at which the error occurs.
8778         (P_Known_Discriminant_Part_Opt): Pass Allow_Anonymous_In_95 => True to
8779         P_Null_Exclusion, to suppress "not null" warnings.
8780         (P_Identifier_Declarations): Code cleanup. Removed unrequired label and
8781         associated goto statements.
8782
8783         * par-endh.adb (Pop_End_Context): Allow more flexibility in placement
8784         of END RECORD
8785
8786         * scans.ads (Type_Token_Location): New flag
8787
8788         * par-ch6.adb (P_Mode): Check specifically for case of IN ACCESS
8789         (P_Formal_Part): Pass Allow_Anonymous_In_95 => True to
8790         P_Null_Exclusion, to suppress "not null" warnings.
8791
8792 2007-04-06  Robert Dewar  <dewar@adacore.com>
8793             Javier Miranda  <miranda@adacore.com>
8794             Bob Duff  <duff@adacore.com>
8795             Vincent Celier  <celier@adacore.com>
8796
8797         * par-prag.adb (Prag): Add dummy entry for pragma Compile_Time_Error
8798         (Extensions_Allowed): No longer sets Ada_Version
8799         Entry for pragma Unreferenced_Objects
8800
8801         * sem_prag.adb (Analyze_Pragma, case Priority): Force with of
8802         system.tasking if pragma priority used in a procedure
8803         (Analyze_Pragma, case Warning): Handle dot warning switches
8804         (Process_Compile_Time_Warning_Or_Error): New procedure
8805         (Analyze_Pragma): Add processing for Compile_Time_Error
8806         Add support for extra arguments External_Name and Link_Name.
8807         Remove code associated with pragmas CPP_Virtual and CPP_Vtable.
8808         (Process_Import_Or_Interface): Add support for the use of pragma Import
8809         with tagged types.
8810         (Extensions_Allowed): No longer affects Ada_Version
8811         (Analyze_Pragma): Split Is_Abstract flag into Is_Abstract_Subprogram and
8812         Is_Abstract_Type. Make sure these are called only when appropriate.
8813         Add processing for pragma Unreferenced_Objects
8814
8815         * snames.h, snames.ads, snames.adb: Add entry for pragma
8816         Compile_Time_Error
8817         Add new standard name Minimum_Binder_Options for new gprmake
8818         Add new standard names for gprmake: Archive_Suffix,
8819         Library_Auto_Init_Supported, Library_Major_Minor_Id_Supported,
8820         Library_Support, Library_Version_Options,
8821         Shared_Library_Minimum_Options,
8822         Shared_Library_Prefix, Shared_Library_Suffix, Symbolic_Link_Supported.
8823         Change Name_Call to Name_uCall so that it cannot clash with a legal
8824         subprogram name.
8825         Add new standard names Mapping_Spec_Suffix and Mapping_Body_Suffix
8826         Append C_Plus_Plus to convention identifiers as synonym for CPP
8827         Add new standard names Stack and Builder_Switches
8828         Add new standard names: Compiler_Minimum_Options, Global_Config_File,
8829         Library_Builder, Local_Config_File, Objects_Path, Objects_Path_File,
8830         Run_Path_Option, Toolchain_Version.
8831         Entry for pragma Unreferenced_Objects
8832
8833         * switch-c.adb (Scan_Front_End_Switches): Store correct -gnateD
8834         switches, without repetition of "eD". Make sure that last character of
8835         -gnatep= switch is not taken as -gnat switch character.
8836         Complete rewrite of circuit for handling saving compilation options
8837         Occasioned by need to support dot switchs for -gnatw, but cleans up
8838         things in general.
8839         -gnatX does not affect Ada_Version
8840         Include -gnatyA in -gnatg style switches
8841
8842         * sem_warn.ads, sem_warn.adb (Output_Unreferenced_Messages): Exclude
8843         warnings on return objects.
8844         (Warn_On_Useless_Assignment): Exclude warnings on return objects
8845         (Set_Dot_Warning_Switch): New procedure
8846         (Check_References): Add missing case of test for
8847         Has_Pragma_Unreferenced_Objects
8848         (Output_Unreferenced_Messages): Implement effect of new pragma
8849         Unreferenced_Objects, remove special casing of limited controlled
8850         variables.
8851
8852 2007-04-06  Vincent Celier  <celier@adacore.com>
8853
8854         * prj-ext.adb (Initialize_Project_Path): New procedure that initialize
8855         the default project path, initially done during elaboration of the
8856         package.
8857         If the prefix returned by Sdefault is null, get the prefix from a call
8858         to Executable_Prefix_Path.
8859         (Project_Path): Call Initialize_Project_Path if Current_Project_Path is
8860         null.
8861
8862         * prj-nmsc.adb (Get_Path_Names_And_Record_Sources): Use the non
8863         canonical directory name to open the directory from which files are
8864         retrieved.
8865         (Record_Other_Sources): Idem.
8866         (Locate_Directory): Add the possibility to create automatically missing
8867         directories when Setup_Projects is True.
8868         Call Locate_Directory so that the directory will be created when
8869         Setup_Projects is True, for object dir, library dir, library ALI dir,
8870         library source copy dir and exec dir.
8871
8872         * prj-pp.adb (Max_Line_Length): Set to 255 for compatibility with older
8873         versions of GNAT.
8874
8875 2007-04-06  Robert Dewar  <dewar@adacore.com>
8876
8877         * sem_ch13.ads, sem_ch13.adb (Adjust_Record_For_Reverse_Bit_Order):
8878         Use First/Next_Component_Or_Discriminant
8879         (Analyze_Record_Representation_Clause):
8880         Use First/Next_Component_Or_Discriminant
8881         (Check_Component_Overlap): Use First/Next_Component_Or_Discriminant
8882         (Analyze_Attribute_Definition_Clause, case Value_Size): Reject
8883         definition if type is unconstrained.
8884         (Adjust_Record_For_Reverse_Bit_Order): New procedure
8885         (Analyze_Attribute_Definition_Clause): Split Is_Abstract flag into
8886         Is_Abstract_Subprogram and Is_Abstract_Type.
8887         (Adjust_Record_For_Reverse_Bit_Order): New procedure
8888
8889         * repinfo.adb (List_Record_Info): Use First/
8890         Next_Component_Or_Discriminant.
8891
8892         * style.ads, styleg-c.adb, styleg-c.ads (Check_Array_Attribute_Index):
8893         New procedure.
8894
8895         * stylesw.ads, stylesw.adb: Recognize new -gnatyA style switch
8896         Include -gnatyA in default switches
8897
8898         * opt.ads: (Warn_On_Non_Local_Exception): New flag
8899         (Warn_On_Reverse_Bit_Order): New flag
8900         (Extensions_Allowed): Update the documentation.
8901         (Warn_On_Questionable_Missing_Parens): Now on by default
8902
8903         * usage.adb: Add documentation of -gnatw.x/X switches
8904         Document new -gnatyA style switch
8905         -gnatq warnings are on by default
8906
8907 2007-04-06  Ed Falis  <falis@adacore.com>
8908
8909         * s-carun8.adb, s-carsi8.adb (Compare_Array_?8): modify so that last
8910         full word is no longer compared twice.
8911
8912 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
8913
8914         * sem_ch10.adb (Install_Limited_Context_Clauses.
8915         Expand_Limited_With_Clause): Use a new copy of selector name in the
8916         call to Make_With_Clause. This fixes the tree structure for ASIS
8917         purposes. Nothing is changed in the compiler behaviour.
8918         (Process_Body_Clauses): Handle properly use clauses whose prefix is
8919         a package renaming.
8920         (Install_Limited_With_Clauses): Do not install non-limited view when it
8921         is still incomplete.
8922
8923 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
8924             Gary Dismukes  <dismukes@adacore.com>
8925
8926         * sem_ch12.adb (Check_Generic_Actuals): Use first subtype of actual
8927         when capturing size information, instead of base type, which for a
8928         formal array type will be the unconstrained type.
8929         (Analyze_Formal_Object_Declaration): Add check for illegal default
8930         expressions for a formal in object of a limited type.
8931         (Instantiate_Object): Ditto.
8932         (Check_Formal_Package_Instance): Skip entities that are formal objects,
8933         because they were defaulted in the formal package and no check applies
8934         to them.
8935         (Check_Formal_Package_Instance): Extend conformance check to other
8936         discrete types beyond Integer.
8937         (Process_Default): Copy directly the unmatched formal. A generic copy
8938         has already been performed in Analyze_Formal_Package.
8939         (Analyze_Associations): If a formal subprogram has no match, check for
8940         partial parametrization before looking for a default, to prevent
8941         spurious errors.
8942         (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation): Do
8943         not set the instantiation environment before analyzing the actuals.
8944         Fixes regression on 8515-003 with implementation of AI-133.
8945         Set_Instance_Env checks whether the generic unit is a predefined
8946         unit, in which case the instance must be analyzed with the latest Ada
8947         mode. This setting must take place after analysis of the actuals,
8948         because the actuals must be analyzed and frozen in the Ada mode extant
8949         outside of the current instantiation.
8950         (Save_Env, Restore_Env): Preserve and restore the configuration
8951         parameters so that predefined units can be compiled in the proper Ada
8952         mode.
8953         (Analyze_Formal_Object_Declaration,Analyze_Formal_Subprogram,
8954         Instantiate_Type): Split Is_Abstract flag into Is_Abstract_Subprogram
8955         and Is_Abstract_Type.
8956         (Analyze_Formal_Package): For better error recovery, Add exception
8957         handler to catch Instantion_Error, which can be raised in
8958         Analyze_Associations
8959
8960 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
8961             Bob Duff  <duff@adacore.com>
8962             Gary Dismukes  <dismukes@adacore.com>
8963
8964         * sem_ch4.adb (Try_Primitive_Operation): The call is legal if the
8965         prefix type is a discriminated subtype of the type of the formal.
8966         (Analyze_Allocator): Collect all coextensions regardless of the context.
8967         Whether they can be allocated statically is determined in exp_ch4.
8968         (Analyze_Selected_Component): If the prefix is a limited view and the
8969         non-limited view is available, use the non-limited one.
8970         (Operator_Check): For "X'Access = Y'Access" (which is ambiguous, and
8971         therefore illegal), suggest a qualified expression rather than a type
8972         conversion, because a type conversion would be illegal in this context.
8973         (Anayze_Allocator): Trace recursively all nested allocators so that all
8974         coextensions are on the corresponding list for the root. Do no mark
8975         coextensions if the root allocator is within a declaration for a stack-
8976         allocated object, because the access discriminants will be allocated on
8977         the stack as well.
8978         (Analyze_Call): Remove restriction on calls to limited functions for the
8979         cases of generic actuals for formal objects, defaults for formal objects
8980         and defaults for record components.
8981         (Analyze_Allocator): Before analysis, chain coextensions on the proper
8982         element list. Their expansion is delayed until the enclosing allocator
8983         is processed and its finalization list constructed.
8984         (Try_Primitive_Operation): If the prefix is a concurrent type, looks
8985         for an operation with the given name among the primitive operations of
8986         the corresponding record type.
8987         (Analyze_Selected_Component): If the prefix is a task type that
8988         implements an interface, and there is no entry with the given name,
8989         check whether there is another primitive operation (e.g. a function)
8990         with that name.
8991         (Try_Object_Operation, Analyze_One_Call, Try_Indexed_Call): Handle
8992         properly the indexing of a function call written in prefix form, where
8993         the function returns an array type, and all parameters of the function
8994         except the first have defaults.
8995         (Analyze_Equality_Op): If this is a call to an implicit inequality, keep
8996         the original operands, rather than relocating them, for efficiency and
8997         to work properly when an operand is overloaded.
8998         (Analyze_Allocator,Operator_Check,Remove_Abstract_Operations): Split
8999         Is_Abstract flag into Is_Abstract_Subprogram and Is_Abstract_Type.
9000         (Analyze_Selected_Component): If the prefix is a private extension, only
9001         scan the visible components, not those of the full view.
9002         (Try_Primitive_Operation): If the operation is a procedure, collect all
9003         possible interpretations, as for a function, because in the presence of
9004         classwide parameters several primitive operations of the type can match
9005         the given arguments.
9006
9007 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
9008             Robert Dewar  <dewar@adacore.com>
9009
9010         * sem_ch5.adb (Analyze_Assignment): Reject a right-hand side that is a
9011         tag-indeterminate call to an abstract function, when the left-hand side
9012         is not classwide.
9013         (Analyze_Loop_Statement): Improve detection of infinite loops
9014
9015 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
9016             Thomas Quinot  <quinot@adacore.com>
9017
9018         * sem_ch7.ads, sem_ch7.adb (Inspect_Deferred_Constant_Completion): Move
9019         out of Analyze_Package_Declaration, because processing must be applied
9020         to package bodies as well, for deferred constants completed by pragmas.
9021         (Analyze_Package_Declaration): When the package declaration being
9022         analyzed does not require an explicit body, call Check_Completion.
9023         (May_Need_Implicit_Body): An implicit body is required when a package
9024         spec contains the declaration of a remote access-to-classwide type.
9025         (Analyze_Package_Body): If the package contains RACWs, append the
9026         pending subprogram bodies generated by exp_dist at the end of the body.
9027         (New_Private_Type,Unit_Requires_Body): Split Is_Abstract flag into
9028         Is_Abstract_Subprogram and Is_Abstract_Type.
9029         (Preserve_Full_Attributes): The full entity list is not an attribute
9030         that must be preserved from full to partial view.
9031
9032         * sem_dist.adb (Add_RAS_Dereference_TSS):
9033         Change primitive name to _Call so it cannot clash with any legal
9034         identifier, and be special-cased in Check_Completion.
9035         Mark the full view of the designated type for the RACW associated with
9036         a RAS as Comes_From_Source to get proper view switching when installing
9037         private declarations.
9038         Provite a placeholder nested package body along with the nested spec
9039         to have a place for Append_RACW_Bodies to generate the calling stubs
9040         and stream attributes.
9041
9042 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
9043             Robert Dewar  <dewar@adacore.com>
9044
9045         * sem_ch8.adb (Has_Components): If the argument is an incomplete type
9046         that is a limited view, check the non-limited view if available.
9047         (Undefined): Refine error message for missing with of Text_IO
9048         (Find_Expanded_Name): Use Is_Known_Unit for more accurate error message
9049         to distinguish real missing with cases.
9050         Fix format of all missing with messages
9051         (Analyze_Subprogram_Renaming): Emit proper error message on illegal
9052         renaming as body when renamed entity is abstract.
9053
9054 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
9055             Javier Miranda  <miranda@adacore.com>
9056
9057         * sem_type.ads, sem_type.adb (Has_Abstract_Interpretation): Make
9058         predicate recursive, to handle complex expressions on literals whose
9059         spurious ambiguity comes from the abstract interpretation of some
9060         subexpression.
9061         (Interface_Present_In_Ancestor): Add support to concurrent record
9062         types.
9063         (Add_One_Interp,Disambiguate): Split Is_Abstract flag into
9064         Is_Abstract_Subprogram and Is_Abstract_Type.
9065
9066 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
9067             Javier Miranda  <miranda@adacore.com>
9068
9069         * sem_util.ads, sem_util.adb (Object_Access_Level): If the object is a
9070         dereference of a local object R created as a reference to another
9071         object O, use the access level of O.
9072         (Matches_Prefixed_View_Profile): Use common predicate Conforming_Types,
9073         rather than local Same_Formal_Type, to check whether protected operation
9074         overrides an inherited one.
9075         (Same_Formal_Type): New predicate, used when matching signatures of
9076         overriding synchronized operations, to handle the case when a formal
9077         has a type that is a generic actual.
9078         (Is_Aliased_View): Replace check on E_Task_Type and E_Protected_Type by
9079         predicate Is_Concurrent_Type. This ensures supportin case of subtypes.
9080         (Needs_One_Actual): New predicate, for Ada 2005 use, to resolve
9081         syntactic ambiguities involving indexing of function calls that return
9082         arrays.
9083         (Abstract_Interface_List): New subprogram that returns the list of
9084         abstract interfaces associated with a concurrent type or a
9085         concurrent record type.
9086         (Interface_Present_In_Parent): New subprogram used to check if a
9087         given type or some of its parents implement a given interface.
9088         (Collect_Abstract_Interfaces): Add support for concurrent types
9089         with interface types.
9090         (Has_Abstract_Interfaces): Add support for concurrent types with
9091         interface types.
9092         (Is_Parent): New subprogram that determines whether E1 is a parent
9093         of E2. For a concurrent type its parent is the first element of its
9094         list of interface types; for other types this function provides the
9095         same result than Is_Ancestor.
9096         (Enclosing_Subprogram): Add test for N_Extended_Return_Statement.
9097         (Collect_Synchronized_Interfaces): Removed because the subprogram
9098         Collect_Abstract_Interfaces provides this functionality.
9099         (Collect_Abstract_Interfaces): Minor update to give support to
9100         concurrent types and thus avoid undesired code duplication.
9101         (Get_Subprogram_Entity): Handle entry calls.
9102         (May_Be_Lvalue): Include actuals that appear as in-out parameters in
9103         entry calls.
9104         (Enter_Name): Do not give -gnatwh hiding warning for record component
9105         entities, they never result in hiding.
9106
9107 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
9108             Robert Dewar  <dewar@adacore.com>
9109
9110         * sinfo.ads, sinfo.adb (Coextensions): New element list for allocators,
9111         to chain nested components that are allocators for access discriminants
9112         of the enclosing object.
9113         Add N_Push and N_Pop nodes
9114         New field Exception_Label added
9115         (Local_Raise_Statements): New field in N_Exception_Handler_Node
9116         (Local_Raise_Not_OK): New flag in N_Exception_Handler_Node
9117         (Is_Coextension): New flag for allocators, to mark allocators that
9118         correspond to access discriminants of dynamically allocated objects.
9119         (N_Block_Statement): Document the fact that the corresponding entity
9120         can be an E_Return_Statement.
9121         (Is_Coextension): New flag for allocators.
9122         Remove all code for DSP option
9123
9124         * sprint.ads, sprint.adb: Display basic information for class_wide
9125         subtypes. Add handling of N_Push and N_Pop nodes
9126
9127 2007-04-06  Arnaud Charlet  <charlet@adacore.com>
9128
9129         * s-tpobop.adb (Exceptional_Complete_Entry_Body): Undefer abortion
9130         before propagating exception.
9131
9132 2007-04-06  Olivier Hainque  <hainque@adacore.com>
9133
9134         * tracebak.c (PC_ADJUST - ia64): -4 instead of -16, expected to yield
9135         an address always within the call instruction from a return address.
9136
9137 2007-04-06  Olivier Hainque  <hainque@adacore.com>
9138             Eric Botcazou <botcazou@adacore.com>
9139
9140         * trans.c (call_to_gnu) <TYPE_RETURNS_BY_TARGET_PTR_P>: Return an
9141         expression with a COMPOUND_EXPR including the call instead of emitting
9142         the call directly here.
9143         (gnat_to_gnu) <N_Slice>: Do not return a non-constant low bound if the
9144         high bound is constant and the slice is empty.  Tidy.
9145         (tree_transform, case N_Op_Not): Handle properly the case where the
9146         operation applies to a private type whose full view is a modular type.
9147         (Case_Statement_To_gnu): If an alternative is an E_Constant with an
9148         Address_Clause, use the associated Expression as the GNAT tree
9149         representing the choice value to ensure the corresponding GCC tree is
9150         of the proper kind.
9151         (maybe_stabilize_reference): Stabilize COMPOUND_EXPRs as a whole
9152         instead of just the operands, as the base GCC stabilize_reference does.
9153         <CALL_EXPR>: New case. Directly stabilize the call if an lvalue is not
9154         requested; otherwise fail.
9155         (addressable_p) <COMPONENT_REF>: Do not test DECL_NONADDRESSABLE_P.
9156
9157 2007-04-06  Thomas Quinot  <quinot@adacore.com>
9158
9159         * uintp.ads, uintp.adb (UI_Div_Rem): New subprogram, extending previous
9160         implementation of UI_Div.
9161         (UI_Div): Reimplement as a call to UI_Div_Rem.
9162         (UI_Rem): Take advantage of the fact that UI_Div_Rem provides the
9163         remainder, avoiding the cost of a multiplication and a subtraction.
9164         (UI_Modular_Inverse): Take advantage of the fact that UI_Div_Rem
9165         provides both quotient and remainder in a single computation.
9166         (UI_Modular_Exponentiation, UI_Modular_Inverse): New modular arithmetic
9167         functions for uint.
9168         (UI_Modular_Inverse): Add a note that the behaviour of this subprogram
9169         is undefined if the given n is not inversible.
9170
9171 2007-04-06  Olivier Hainque  <hainque@adacore.com>
9172
9173         * utils2.c (known_alignment): Handle COMPOUND_EXPR, COND_EXPR and
9174         BIT_AND_EXPR. Handle also VIEW_CONVERT_EXPR, as the other conversion
9175         opcodes.
9176
9177 2007-04-06  Eric Botcazou <botcazou@adacore.com>
9178             Olivier Hainque  <hainque@adacore.com>
9179
9180         * utils.c (update_pointer_to): Make a copy of the couple of FIELD_DECLs
9181         when updating the contents of the old pointer to an unconstrained array.
9182         (end_subprog_body): Set error_gnat_node to Empty.
9183         (write_record_type_debug_info): Do not be unduly sparing with our bytes.
9184         (unchecked_convert): For subtype to base type conversions, require that
9185         the source be a subtype if it is an integer type.
9186         (builtin_decls): New global, vector of available builtin functions.
9187         (gnat_pushdecl): Add global builtin function declaration nodes to the
9188         builtin_decls list.
9189         (gnat_install_builtins): Adjust comments.
9190         (builtin_function): Set DECL_BUILTIN_CLASS and DECL_FUNCTION_CODE before
9191         calling gnat_pushdecl, so that it knows when it handed a builtin
9192         function declaration node.
9193         (builtin_decl_for): Search the builtin_decls list.
9194
9195 2007-04-06  Eric Botcazou <botcazou@adacore.com>
9196
9197         * s-stchop-vxworks.adb: 
9198         (Stack_Check): Raise Storage_Error if the argument has wrapped around.
9199
9200 2007-04-06  Robert Dewar  <dewar@adacore.com>
9201             Arnaud Charlet  <charlet@adacore.com>
9202
9203         * a-diroro.ads: Inserted the pragma Unimplemented_Unit
9204
9205         * bindgen.adb (Gen_Output_File_Ada): Generate pragma Ada_95 at start
9206         of files
9207         Add mention of -Sev (set initialize_scalars option from environment
9208         variable at run time) in gnatbind usage message.
9209
9210         * elists.ads, elists.adb: (Append_Unique_Elmt): New procedure
9211
9212         * fname-uf.ads: Minor comment fix
9213
9214         * osint.ads: Change pragma Elaborate to Elaborate_All
9215
9216         * par-load.adb: Add documentation.
9217
9218         * sem_cat.ads, sem_cat.adb: Minor code reorganization
9219
9220         * s-parint.ads (RCI_Locator) : Add 'Version' generic formal
9221
9222         * s-secsta.ads: Extra comments
9223
9224         * s-soflin.ads: Minor comment fixes
9225
9226         * s-stratt.ads (Block_Stream_Ops_OK): Removed.
9227
9228         * s-wchcon.ads: Minor comment addition
9229
9230         * treepr.adb: Minor change in message
9231         (Print_Name,Print_Node): Make these debug printouts more robust: print
9232         "no such..." instead of crashing on bad input.
9233
9234 2007-03-30  Rafael Avila de Espindola  <espindola@google.com>
9235
9236         * trans.c (Attribute_to_gnu): Use get_signed_or_unsigned_type
9237         instead of gnat_signed_or_unsigned_type.
9238         * utils.c (gnat_signed_or_unsigned_type): Remove.
9239         * misc.c (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove
9240         * gigi.h (gnat_signed_or_unsigned_type): Remove
9241
9242 2007-03-09  Roger Sayle  <roger@eyesopen.com>
9243
9244         * cuintp.c (UI_To_gnu): Use fold_buildN calls instead of calling
9245         fold with the result of buildN.
9246         * decl.c (gnat_to_gnu_entity): Likewise.
9247         * trans.c (Attribute_to_gnu, gnat_to_gnu, emit_check): Likewise.
9248         * utils.c (finish_record_type, merge_sizes, max_size, convert):
9249         Likewise.
9250         * utils2.c (gnat_truthvalue_conversion, compare_arrays,
9251         nonbinary_modular_operation, build_binary_op, build_unary_op,
9252         build_cond_expr): Likewise.
9253
9254         * utils.c (convert): Use fold_build1 when casting values to void.
9255         * utils2.c (gnat_truthvalue_conversion): Use build_int_cst and
9256         fold_convert instead of convert when appropriate.
9257
9258 2007-03-01  Brooks Moses  <brooks.moses@codesourcery.com>
9259
9260         * Make-lang.in: Add install-pdf target as copied from
9261         automake v1.10 rules.
9262
9263 2007-02-28  Andreas Schwab  <schwab@suse.de>
9264
9265         * Make-lang.in (doc/gnat_ugn_unw.texi): Depend on
9266         $(gcc_docdir)/include/gcc-common.texi and gcc-vers.texi.
9267         (doc/gnat-style.info): Likewise.
9268
9269 2007-02-26  Brooks Moses  <brooks.moses@codesourcery.com>
9270
9271         * gnat-style.texi: Standardize title page.
9272         * gnat_rm.texi: Likewise.
9273         * gnat_ugn.texi: Likewise.
9274
9275 2007-02-25  Mark Mitchell  <mark@codesourcery.com>
9276
9277         * decl.c (annotate_value): Adjust for refactoring of tree_map
9278         hierarchy.
9279
9280 2007-02-24  Mark Mitchell  <mark@codesourcery.com>
9281
9282         * decl.c (annotate_value): Adjust for refactoring of tree_map
9283         hierarchy.
9284
9285 2007-02-21  Ed Schonberg  <schonberg@adacore.com>
9286
9287         PR ada/18819
9288         * sem_ch3.adb (Create_Constrained_Components): for a subtype of an
9289         untagged derived type, add hidden components to keep discriminant
9290         layout consistent, when a given discriminant of the derived type
9291         constraints several discriminants of the parent type.
9292
9293 2007-02-16  Eric Botcazou  <ebotcazou@adacore.com>
9294             Sandra Loosemore  <sandra@codesourcery.com>
9295
9296         * trans.c (call_to_gnu):  Use build_call_list instead of build3 to
9297         build the call expression.
9298         (gnat_stabilize_reference_1): Handle tcc_vl_exp.
9299         * utils.c (max_size) <tcc_exceptional>: Delete.
9300         <tcc_vl_exp>: New case.
9301         <tcc_expression>: Delete CALL_EXPR subcase.
9302         (build_global_cdtor): Use build_call_nary instead of build3.
9303         * utils2.c (build_call_1_expr): Likewise.
9304         (build_call_2_expr): Likewise.
9305         (build_call_0_expr): Likewise.
9306         (build_call_alloc_dealloc): Likewise.
9307
9308 2007-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
9309
9310         * raise-gcc.c (get_region_description_for, get_call_site_action_for,
9311         get_action_description_for): Replace _Unwind_Word with _uleb128_t 
9312         and _Unwind_SWord with _sleb128_t.
9313
9314 2007-02-06  Paolo Bonzini  <bonzini@gnu.org>
9315
9316         * Make-lang.in (ada/decl.o): Add gt-ada-decl.h dependency.
9317         * decl.c: Include gt-ada-decl.h.
9318         (annotate_value_cache): New.
9319         (annotate_value): Use it instead of TREE_COMPLEXITY.
9320
9321 2007-02-03  Kazu Hirata  <kazu@codesourcery.com>
9322
9323         * misc.c, utils2.c: Fix comment typos.
9324
9325 2007-01-24  Roger Sayle  <roger@eyesopen.com>
9326
9327         * decl.c (gnat_to_gnu_entity): Use TREE_OVERFLOW instead of
9328         TREE_CONSTANT_OVERFLOW.
9329         (allocatable_size_p, annotate_value): Likewise.
9330         * trans.c (gnat_to_gnu): Likewise.
9331         * utils.c (unchecked_convert): Likewise.
9332         * utils2.c (build_simple_component_ref): Likewise.
9333
9334 2007-01-23  Richard Guenther  <rguenther@suse.de>
9335
9336         PR bootstrap/30541
9337         * Make-lang.in: Replace invocations of gnatmake with $(GNATMAKE).
9338         (gnatboot2): Pass staged GNATMAKE instead of STAGE_PREFIX.
9339         (gnatboot3): Likewise.
9340         (GNATBIND): Do not define.
9341         * Makefile.in (GNATBIND): Do not define.
9342
9343 2007-01-08  Richard Guenther  <rguenther@suse.de>
9344
9345         * cuintp.c (build_cst_from_int): Use built_int_cst_type.
9346         * trans.c (gnat_to_gnu): Likewise.
9347
9348 2006-12-07  Geoffrey Keating  <geoffk@apple.com>
9349
9350         * Makefile.in: Replace CROSS_COMPILE with CROSS_DIRECTORY_STRUCTURE.
9351         * adaint.c: Likewise.
9352
9353 2006-12-05  Aldy Hernandez  <aldyh@redhat.com>
9354
9355         Merge from gimple-tuples-branch:
9356         2006-11-02  Aldy Hernandez  <aldyh@redhat.com>
9357
9358         * ada-tree.h (lang_tree_node): Handle gimple tuples.
9359         * trans.c (gnat_gimplify_expr): Replace MODIFY_EXPR with
9360         GIMPLE_MODIFY_STMT.
9361
9362 2006-12-02  Kazu Hirata  <kazu@codesourcery.com>
9363
9364         * Makefile.in, mingw32.h, trans.c: Fix comment typos.
9365         * gnat_rm.texi, gnat_ugn.texi: Follow spelling conventions.
9366         Fix typos.
9367
9368 2006-11-17  Eric Botcazou  <ebotcazou@adacore.com>
9369
9370         PR ada/27936
9371         * trans.c (add_decl_expr): Do not dynamically elaborate padded objects
9372         if the initializer takes into account the padding.
9373
9374 2006-11-11  Richard Guenther  <rguenther@suse.de>
9375
9376         * trans.c (maybe_stabilize_reference): Remove handling of
9377         FIX_CEIL_EXPR, FIX_FLOOR_EXPR and FIX_ROUND_EXPR.
9378
9379 2006-11-05  Arnaud Charlet  <charlet@adacore.com>
9380
9381         PR ada/29707
9382         * s-osinte-linux-alpha.ads, s-osinte-linux-hppa.ads
9383         (To_Target_Priority): New function.
9384
9385 2006-10-31  Robert Dewar  <dewar@adacore.com>
9386
9387         * a-taster.adb, s-traent-vms.adb, a-elchha.ads, a-elchha.adb,
9388         a-exctra.adb, ali-util.adb, exp_disp.ads, s-stalib.ads, s-traent.adb,
9389         s-addope.ads, s-addope.adb, a-rbtgso.adb, a-crbltr.ads, a-coprnu.adb,
9390         a-cgcaso.adb, a-cgarso.adb, a-cgaaso.adb, a-coormu.adb, a-ciormu.adb,
9391         a-rbtgso.ads, a-stunha.adb, a-stunha.adb, a-ciorma.adb, a-coorma.adb,
9392         a-secain.adb, a-slcain.adb, a-shcain.adb, a-stwiha.adb, a-stwiha.adb,
9393         a-strhas.adb, a-strhas.adb, a-stzhas.adb, a-stzhas.adb, a-szuzha.adb,
9394         a-chacon.adb, a-chacon.adb, a-chacon.ads, a-stboha.adb, a-swbwha.adb,
9395         a-szbzha.adb: Minor reformatting. Fix header.
9396
9397         * a-numaux-x86.adb: Add parentheses for use of unary minus
9398         * a-ngcefu.adb: Supply missing parentheses for unary minus
9399         * a-ngcoty.adb: Add parens for use of unary minus
9400         * a-ngelfu.adb: Add missing parens for unary minus
9401         * a-tifiio.adb: Add parentheses for uses of unary minus
9402
9403 2006-10-31  Robert Dewar  <dewar@adacore.com>
9404             Bob Duff  <duff@adacore.com>
9405             Ed Schonberg  <schonberg@adacore.com>
9406
9407         * sem_res.adb (Resolve_Unary_Op): Add warning for use of unary minus
9408         with multiplying operator.
9409         (Expected_Type_Is_Any_Real): New function to determine from the Parent
9410         pointer whether the context expects "any real type".
9411         (Resolve_Arithmetic_Op): Do not give an error on calls to the
9412         universal_fixed "*" and "/" operators when they are used in a context
9413         that expects any real type. Also set the type of the node to
9414         Universal_Real in this case, because downstream processing requires it
9415         (mainly static expression evaluation).
9416         Reword some continuation messages
9417         Add some \\ sequences to continuation messages
9418         (Resolve_Call): Refine infinite recursion case. The test has been
9419         sharpened to eliminate some false positives.
9420         Check for Current_Task usage now includes entry barrier, and is now a
9421         warning, not an error.
9422         (Resolve): If the call is ambiguous, indicate whether an interpretation
9423         is an inherited operation.
9424         (Check_Aggr): When resolving aggregates, skip associations with a box,
9425         which are priori correct, and will be replaced by an actual default
9426         expression in the course of expansion.
9427         (Resolve_Type_Conversion): Add missing support for conversion from
9428         a class-wide interface to a tagged type. Minor code cleanup.
9429         (Valid_Tagged_Converion): Add support for abstact interface type
9430         conversions.
9431         (Resolve_Selected_Component): Call Generate_Reference here rather than
9432         during analysis, and use May_Be_Lvalue to distinguish read/write.
9433         (Valid_Array_Conversion): New procedure, abstracted from
9434         Valid_Conversion, to incorporate accessibility checks for arrays of
9435         anonymous access types.
9436         (Valid_Conversion): For a conversion to a numeric type occurring in an
9437         instance or inlined body, no need to check that the operand type is
9438         numeric, since this has been checked during analysis of the template.
9439         Remove legacy test for scope name Unchecked_Conversion.
9440
9441         * sem_res.ads: Minor reformatting
9442
9443         * a-except.adb, a-except-2005.adb: Turn off subprogram ordering
9444         (PE_Current_Task_In_Entry_Body): New exception code
9445         (SE_Restriction_Violation): Removed, not used
9446
9447         * a-except.ads:  Update comments.
9448
9449         * types.h, types.ads: Add definition for Validity_Check
9450         (PE_Current_Task_In_Entry_Body): New exception code
9451         (SE_Restriction_Violation): Removed, not used
9452
9453 2006-10-31  Thomas Quinot  <quinot@adacore.com>
9454
9455         * g-socthi-vxworks.adb (C_Gethostbyname): Fix wrong test for returned
9456         error status.
9457
9458 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
9459             Jose Ruiz  <ruiz@adacore.com>
9460
9461         * a-calend-vms.adb (Leap_Sec_Ops): Temp body for package in private
9462         part of Ada.Calendar: all subprogram raise Unimplemented.
9463         (Split_W_Offset): Temp function body, raising Unimplemented
9464
9465         * a-calend.ads, a-calend-vms.ads: 
9466         Add imported variable Invalid_TZ_Offset used to designate targets unable
9467         to support time zones.
9468         (Unimplemented): Temporary function raised by the body of new
9469         subprograms below.
9470         (Leap_Sec_Ops): New package in the private part of Ada.Calendar. This
9471         unit provides handling of leap seconds and is used by the new Ada 2005
9472         packages Ada.Calendar.Arithmetic and Ada.Calendar.Formatting.
9473         (Split_W_Offset): Identical spec to that of Ada.Calendar.Split. This
9474         version returns an extra value which is the offset to UTC.
9475
9476         * a-calend.adb (Split_W_Offset): Add call to localtime_tzoff.
9477         (Leap_Sec_Ops): New body for package in private part of Ada.Calendar.
9478         (Split_W_Offset): New function body.
9479         (Time_Of): When a date is close to UNIX epoch, compute the time for
9480         that date plus one day (that amount is later substracted after
9481         executing mktime) so there are no problems with time zone adjustments.
9482
9483         * a-calend-mingw.adb: Remove Windows specific version no longer needed.
9484
9485         * a-calari.ads, a-calari.adb, a-calfor.ads, a-calfor.adb,
9486         a-catizo.ads, a-catizo.adb: New files.
9487
9488         * impunit.adb: Add new Ada 2005 entries
9489
9490         * sysdep.c: Add external variable __gnat_invalid_tz_offset.
9491         Rename all occurences of "__gnat_localtime_r" to
9492         "__gnat_localtime_tzoff".
9493         (__gnat_localtime_tzoff for Windows): Add logic to retrieve the time
9494         zone data and calculate the GMT offset.
9495         (__gnat_localtime_tzoff for Darwin, Free BSD, Linux, Lynx and Tru64):
9496         Use the field "tm_gmtoff" to extract the GMT offset.
9497         (__gnat_localtime_tzoff for AIX, HPUX, SGI Irix and Sun Solaris): Use
9498         the external variable "timezone" to calculate the GMT offset.
9499
9500 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
9501             Jose Ruiz  <ruiz@adacore.com>
9502
9503         * s-osinte-posix.adb, s-osinte-linux.ads, s-osinte-freebsd.adb, 
9504         s-osinte-freebsd.ads, s-osinte-solaris-posix.ads, s-osinte-hpux.ads, 
9505         s-osinte-darwin.adb, s-osinte-darwin.ads, s-osinte-lynxos-3.ads,
9506         s-osinte-lynxos-3.adb (To_Target_Priority): New function maps from
9507         System.Any_Priority to a POSIX priority on the target.
9508
9509         * system-linux-ia64.ads: 
9510         Extend range of Priority types on Linux to use the whole range made
9511         available by the system.
9512
9513         * s-osinte-aix.adb, s-osinte-aix.ads (To_Target_Priority): New
9514         function maps from System.Any_Priority to a POSIX priority on the
9515         target.
9516         (PTHREAD_PRIO_PROTECT): Set real value.
9517         (PTHREAD_PRIO_INHERIT): Now a function.
9518         (SIGCPUFAIL): New signal.
9519         (Reserved): Add SIGALRM1, SIGWAITING, SIGCPUFAIL, since these signals
9520         are documented as reserved by the OS.
9521
9522         * system-aix.ads: Use the full range of priorities provided by the
9523         system on AIX.
9524
9525         * s-taprop-posix.adb: Call new function To_Target_Priority.
9526         (Set_Priority): Take into account Task_Dispatching_Policy and
9527         Priority_Specific_Dispatching pragmas when determining if Round Robin
9528         must be used for scheduling the task.
9529
9530         * system-linux-x86_64.ads, system-linux-x86.ads, 
9531         system-linux-ppc.ads: Extend range of Priority types on Linux to use
9532         the whole range made available by the system.
9533
9534         * s-taprop-vms.adb, s-taprop-mingw.adb, s-taprop-irix.adb, 
9535         s-taprop-tru64.adb, s-taprop-linux.adb, s-taprop-hpux-dce.adb, 
9536         s-taprop-lynxos.adb (Finalize_TCB): invalidate the stack-check cache
9537         when deallocating the TCB in order to avoid potential references to
9538         deallocated data.
9539         (Set_Priority): Take into account Task_Dispatching_Policy and
9540         Priority_Specific_Dispatching pragmas when determining if Round Robin
9541         or FIFO within priorities must be used for scheduling the task.
9542
9543         * s-taprop-vxworks.adb (Enter_Task): Store the user-level task id in
9544         the Thread field (to be used internally by the run-time system) and the
9545         kernel-level task id in the LWP field (to be used by the debugger).
9546         (Create_Task): Reorganize to unify the calls to taskSpawn into a single
9547         instance, and propagate the current task options to the spawned task.
9548         (Set_Priority): Take into account Priority_Specific_Dispatching pragmas.
9549         (Initialize): Set Round Robin dispatching when the corresponding pragma
9550         is in effect.
9551
9552 2006-10-31  Robert Dewar  <dewar@adacore.com>
9553
9554         * system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads, 
9555         system-linux-hppa.ads, system-hpux-ia64.ads, 
9556         system-lynxos-ppc.ads, system-lynxos-x86.ads, system-tru64.ads, 
9557         system-vxworks-sparcv9.ads, system-solaris-x86.ads, 
9558         system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads, 
9559         system-vxworks-m68k.ads, system-vxworks-mips.ads, system-interix.ads, 
9560         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads, 
9561         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads, 
9562         system-vxworks-alpha.ads, system.ads: Add pragma Warnings(Off,
9563         Default_Bit_Order) to kill constant condition warnings for references
9564         to this switch.
9565
9566 2006-10-31  Vincent Celier  <celier@adacore.com>
9567             Eric Botcazou  <ebotcazou@adacore.com>
9568
9569         * mlib-tgt-lynxos.adb, mlib-tgt-mingw.adb, mlib-tgt-tru64.adb,
9570         mlib-tgt-aix.adb, mlib-tgt-irix.adb, mlib-tgt-hpux.adb,
9571         mlib-tgt-linux.adb, mlib-tgt-solaris.adb: Use Append_To, instead of
9572         Ext_To, when building the library file name
9573
9574         * mlib-tgt-vxworks.adb: ditto.
9575         (Get_Target_Suffix): Add support for x86 targets.
9576
9577         * mlib-fil.ads, mlib-fil.adb: (Append_To): New function
9578
9579         * mlib-tgt-darwin.adb: 
9580         Use Append_To, instead of Ext_To, when building the library file name
9581         (Flat_Namespace): New global variable.
9582         (No_Shared_Libgcc_Switch): Rename to No_Shared_Libgcc_Options.
9583         (Shared_Libgcc_Switch): Rename to With_Shared_Libgcc_Options.
9584         (Link_Shared_Libgcc): Delete.
9585         (Build_Dynamic_Library): Adjust for above changes.
9586         Use Opt package.
9587         (Build_Dynamic_Library): Pass -shared-libgcc if GCC 4 or later.
9588
9589 2006-10-31  Eric Botcazou  <ebotcazou@adacore.com>
9590
9591         * s-taprop-solaris.adb: (Time_Slice_Val): Change type to Integer.
9592         (Initialize): Add type conversions required by above change.
9593
9594 2006-10-31  Jose Ruiz  <ruiz@adacore.com>
9595
9596         * s-osinte-vxworks.ads, s-osinte-vxworks.adb: 
9597         (getpid): New body for this function that uses the underlying taskIdSelf
9598         function for VxWorks 5 and VxWorks 6 in kernel mode.
9599         (unsigned_int): New type, modular to allow logical bit operations.
9600         (taskOptionsGet): New imported function.
9601
9602         * s-taspri-vxworks.ads (Private_Data): Change the type for the LWP
9603         field to be compliant with the type used by the corresponding operating
9604         system primitive.
9605
9606 2006-10-31  Pascal Obry  <obry@adacore.com>
9607             Eric Botcazou  <ebotcazou@adacore.com>
9608             Vincent Celier  <celier@adacore.com>
9609
9610         * adaint.c (__gnat_get_libraries_from_registry): Call explicitly the
9611         ASCII version of the registry API. This is needed as the GNAT runtime
9612         is now UNICODE by default.
9613         Include version.h.
9614         (get_gcc_version): Do not hardcode the return value.
9615         (__gnat_file_time_name): On Windows properly set the default returned
9616         value to -1 which corresponds to Invalid_Time.
9617         (__gnat_fopen): New routine. A simple wrapper on all plateforms
9618          except on Windows where it does conversion for unicode support.
9619         (__gnat_freopen): Idem.
9620         (__gnat_locate_exec_on_path): If environment variable PATH does not
9621         exist, return a NULL pointer
9622
9623         * adaint.h: (__gnat_fopen): Declare.
9624         (__gnat_freopen): Likewise.
9625
9626         * mingw32.h (_tfreopen): Define this macro here for older MingW
9627         version.
9628         Activate the unicode support on platforms using a MingW runtime
9629         version 3.9 or newer.
9630
9631         * s-crtl.ads (fopen): Is now an import to the wrapper __gnat_freopen.
9632         This is needed for proper unicode support on Windows.
9633         (freopen): Idem.
9634
9635 2006-10-31  Eric Botcazou  <ebotcazou@adacore.com>
9636             Nicolas Setton  <setton@adacore.com>
9637             Olivier Hainque  <hainque@adacore.com>
9638             Gary Dismukes  <dismukes@adacore.com>
9639
9640         * gigi.h: (tree_code_for_record_type): Declare.
9641         (add_global_renaming_pointer): Rename to record_global_renaming_pointer.
9642         (get_global_renaming_pointers): Rename to
9643         invalidate_global_renaming_pointers.
9644         (static_ctors): Delete.
9645         (static_dtors): Likewise.
9646         (gnat_write_global_declarations): Declare.
9647         (create_var_decl): Adjust descriptive comment to indicate that the
9648         subprogram may return a CONST_DECL node.
9649         (create_true_var_decl): Declare new function, similar to
9650         create_var_decl but forcing the creation of a VAR_DECL node.
9651         (get_global_renaming_pointers): Declare.
9652         (add_global_renaming_pointer): Likewise.
9653
9654         * ada-tree.h (DECL_READONLY_ONCE_ELAB): New macro.
9655
9656         * decl.c (gnat_to_gnu_entity) <case E_Function>: Don't copy the type
9657         tree before setting TREE_ADDRESSABLE for by-reference return mechanism
9658         processing.
9659         (gnat_to_gnu_entity): Remove From_With_Type from computation for
9660         imported_p.
9661         <E_Access_Type>: Use the Non_Limited_View as the full view of the
9662         designated type if the pointer comes from a limited_with clause.  Make
9663         incomplete designated type if it is in the main unit and has a freeze
9664         node.
9665         <E_Incomplete_Type>: Rework to treat Non_Limited_View, Full_View, and
9666         Underlying_Full_View similarly.  Return earlier if the full view already
9667         has an associated tree.
9668         (gnat_to_gnu_entity) <E_Record_Type>: Restore comment.
9669         (gnat_to_gnu_entity) <E_Record_Type>: Do not use a dummy type.
9670         (gnat_to_gnu_entity) <E_Variable>: Set TYPE_REF_CAN_ALIAS_ALL on the
9671         reference type built for objects with an address clause.
9672         Use create_true_var_decl with const_flag set for
9673         DECL_CONST_CORRESPONDING_VARs, ensuring a VAR_DECL is created with
9674         TREE_READONLY set.
9675         (gnat_to_gnu_entity, case E_Enumeration_Type): Set TYPE_NAME
9676         for Character and Wide_Character types. This info is read by the
9677         dwarf-2 writer, and is needed to be able to use the command "ptype
9678         character" in the debugger.
9679         (gnat_to_gnu_entity): When generating a type representing
9680         a Character or Wide_Character type, set the flag TYPE_STRING_FLAG,
9681         so that debug writers can distinguish it from ordinary integers.
9682         (elaborate_expression_1): Test the DECL_READONLY_ONCE_ELAB flag in
9683         addition to TREE_READONLY to assert the constantness of variables for
9684         elaboration purposes.
9685         (gnat_to_gnu_entity, subprogram cases): Change loops on formal
9686         parameters to call new Einfo function First_Formal_With_Extras.
9687         (gnat_to_gnu_entity): In type_annotate mode, replace a discriminant of a
9688         protected type with its corresponding discriminant, to obtain a usable
9689         declaration
9690         (gnat_to_gnu_entity) <E_Access_Protected_Subprogram_Type>: Be prepared
9691         for a multiple elaboration of the "equivalent" type.
9692         (gnat_to_gnu_entity): Adjust for renaming of add_global_renaming_pointer
9693         into record_global_renaming_pointer.
9694         (gnat_to_gnu_entity) <E_Array_Type>: Do not force
9695         TYPE_NONALIASED_COMPONENT to 0 if the element type is an aggregate.
9696         <E_Array_Subtype>: Likewise.
9697         (gnat_to_gnu_entity) <E_Incomplete_Subtype>: Add support for regular
9698         incomplete subtypes and incomplete subtypes of incomplete types visible
9699         through a limited with clause.
9700         (gnat_to_gnu_entity) <E_Array_Subtype>: Take into account the bounds of
9701         the base index type for the maximum size of the array only if they are
9702         constant.
9703         (gnat_to_gnu_entity, renaming object case): Do not wrap up the
9704         expression into a SAVE_EXPR if stabilization failed.
9705
9706         * utils.c (create_subprog_decl): Turn TREE_ADDRESSABLE on the type of
9707         a result decl into DECL_BY_REFERENCE on this decl, now what is expected
9708         by lower level compilation passes.
9709         (gnat_genericize): New function, lowering a function body to GENERIC.
9710         Turn the type of RESULT_DECL into a real reference type if the decl
9711         has been marked DECL_BY_REFERENCE, and adjust references to the latter
9712         accordingly.
9713         (gnat_genericize_r): New function. Tree walking callback for
9714         gnat_genericize.
9715         (convert_from_reference, is_byref_result): New functions. Helpers for
9716         gnat_genericize_r.
9717         (create_type_decl): Call gnat_pushdecl before calling
9718         rest_of_decl_compilation, to make sure that field TYPE_NAME of
9719         type_decl is properly set before calling the debug information writers.
9720         (write_record_type_debug_info): The heuristics which compute the
9721         alignment of a field in a variant record might not be accurate. Add a
9722         safety test to make sure no alignment is set to a smaller value than
9723         the alignment of the field type.
9724         (make_dummy_type): Use the Non_Limited_View as the underlying type if
9725         the type comes from a limited_with clause. Do not loop on the full view.
9726         (GET_GNU_TREE, SET_GNU_TREE, PRESENT_GNU_TREE): New macros.
9727         (dummy_node_table): New global variable, moved from decl.c.
9728         (GET_DUMMY_NODE, SET_DUMMY_NODE, PRESENT_DUMMY_NODE): New macros.
9729         (save_gnu_tree): Use above macros.
9730         (get_gnu_tree): Likewise.
9731         (present_gnu_tree): Likewise.
9732         (init_dummy_type): New function, moved from decl.c. Use above macros.
9733         (make_dummy_type): Likewise.
9734         (tree_code_for_record_type): New function extracted from make_dummy_type
9735         (init_gigi_decls): Set DECL_IS_MALLOC on gnat_malloc.
9736         (static_ctors): Change it to a vector, make static.
9737         (static_dtors): Likewise.
9738         (end_subprog_body): Adjust for above change.
9739         (build_global_cdtor): Moved from trans.c.
9740         (gnat_write_global_declarations): Emit global constructor and
9741         destructor, and call cgraph_optimize before emitting debug info for
9742         global declarations.
9743         (global_decls): New global variable.
9744         (gnat_pushdecl): Store the global declarations in global_decls, for
9745         later use.
9746         (gnat_write_global_declarations): Emit debug information for global
9747          declarations.
9748         (create_var_decl_1): Former create_var_decl, with an extra argument to
9749          state whether the creation of a CONST_DECL is allowed.
9750         (create_var_decl): Behavior unchanged. Now a wrapper around
9751         create_var_decl_1 allowing CONST_DECL creation.
9752         (create_true_var_decl): New function, similar to create_var_decl but
9753         forcing the creation of a VAR_DECL node (CONST_DECL not allowed).
9754         (create_field_decl): Do not always mark the field as addressable
9755         if its type is an aggregate.
9756         (global_renaming_pointers): New static variable.
9757         (add_global_renaming_pointer): New function.
9758         (get_global_renaming_pointers): Likewise.
9759
9760         * misc.c (gnat_dwarf_name): New function.
9761         (LANG_HOOKS_DWARF_NAME): Define to gnat_dwarf_name.
9762         (gnat_post_options): Add comment about structural alias analysis.
9763         (gnat_parse_file): Do not call cgraph_optimize here.
9764         (LANG_HOOKS_WRITE_GLOBALS): Define to gnat_write_global_declarations.
9765
9766         * trans.c (process_freeze_entity): Don't abort if we already have a
9767         non dummy GCC tree for a Concurrent_Record_Type, as it might
9768         legitimately have been elaborated while processing the associated
9769         Concurrent_Type prior to this explicit freeze node.
9770         (Identifier_to_gnu): Do not make a variable referenced in a SJLJ
9771         exception handler volatile if it is of variable size.
9772         (process_type): Remove bypass for types coming from a limited_with
9773         clause.
9774         (call_to_gnu): When processing the copy-out of a N_Type_Conversion GNAT
9775         actual, convert the corresponding gnu_actual to the real destination
9776         type when necessary.
9777         (add_decl_expr): Set the DECL_READONLY_ONCE_ELAB flag on variables
9778         originally TREE_READONLY but whose elaboration cannot be performed
9779         statically.
9780         Part of fix for F504-021.
9781         (tree_transform, subprogram cases): Change loops on formal parameters to
9782         call new Einfo function First_Formal_With_Extras.
9783         (gnat_to_gnu) <N_Op_Shift_Right_Arithmetic>: Ignore constant overflow
9784         stemming from type conversion for the lhs.
9785         (Attribute_to_gnu) <Attr_Alignment>: Also divide the alignment by the
9786         number of bits per unit for components of records.
9787         (gnat_to_gnu) <N_Code_Statement>: Mark operands addressable if needed.
9788         (Handled_Sequence_Of_Statements_to_gnu): Register the cleanup associated
9789         with At_End_Proc after the SJLJ EH cleanup.
9790         (Compilation_Unit_to_gnu): Call elaborate_all_entities only on the main
9791         compilation unit.
9792         (elaborate_all_entities): Do not retest type_annotate_only.
9793         (tree_transform) <N_Abstract_Subprogram_Declaration>: Process the
9794         result type of an abstract subprogram, which may be an itype associated
9795         with an anonymous access result (related to AI-318-02).
9796         (build_global_cdtor): Move to utils.c.
9797         (Case_Statement_to_gnu): Avoid adding the choice of a when statement if
9798         this choice is not a null tree nor an integer constant.
9799         (gigi): Run unshare_save_expr via walk_tree_without_duplicates
9800         on the body of elaboration routines instead of mark_unvisited.
9801         (add_stmt): Do not mark the tree.
9802         (add_decl_expr): Tweak comment.
9803         (mark_unvisited): Delete.
9804         (unshare_save_expr): New static function.
9805         (call_to_gnu): Issue an error when making a temporary around a
9806         procedure call because of non-addressable actual parameter if the
9807         type of the formal is by_reference.
9808         (Compilation_Unit_to_gnu): Invalidate the global renaming pointers
9809         after building the elaboration routine.
9810
9811 2006-10-31  Bob Duff  <duff@adacore.com>
9812
9813         * a-filico.adb (Finalize(List_Controller)): Mark the finalization list
9814         as finalization-started, so we can raise Program_Error on 'new'.
9815
9816         * s-finimp.adb: Raise Program_Error on 'new' if finalization of the
9817         collection has already started.
9818
9819         * s-finimp.ads (Collection_Finalization_Started): Added new special
9820         flag value for indicating that a collection's finalization has started.
9821
9822         * s-tassta.adb (Create_Task): Raise Program_Error on an attempt to
9823         create a task whose master has already waited for dependent tasks.
9824
9825 2006-10-31  Robert Dewar  <dewar@adacore.com>
9826
9827         * lib.adb, lib.ads: (In_Predefined_Unit): New functions
9828
9829         * a-finali.ads, a-ngcoty.ads, a-strbou.ads, a-stream.ads, a-strmap.ads, 
9830         a-strunb.ads, a-stwibo.ads, a-stwima.ads, a-stwiun.ads, a-taside.ads, 
9831         a-coorse.ads, a-convec.ads, a-coinve.ads, a-cohama.ads, a-ciorse.ads, 
9832         a-cihama.ads, a-cihase.ads, a-cohase.ads, a-ciorma.ads, a-coorma.ads, 
9833         a-ciormu.ads, a-coormu.ads, a-stzbou.ads, a-stzmap.ads, a-stzunb.ads, 
9834         a-except-2005.ads: Add pragma Preelaborable_Warning
9835
9836 2006-10-31  Robert Dewar  <dewar@adacore.com>
9837             Jose Ruiz  <ruiz@adacore.com>
9838
9839         * a-dispat.ads, a-dispat.adb, a-diroro.ads, a-diroro.adb: New files.
9840
9841         * ali.adb (Get_Name): Properly handle scanning of wide character names
9842         encoded with brackets notation.
9843         (Known_ALI_Lines): Add S lines to this list.
9844         (Scan_ALI): Acquire S (priority specific dispatching) lines.
9845         New flag Elaborate_All_Desirable in unit table
9846
9847         * ali.ads (Priority_Specific_Dispatching): Add this range of
9848         identifiers to be used for Priority_Specific_Dispatching table entries.
9849         (ALIs_Record): Add First_Specific_Dispatching and
9850         Last_Specific_Dispatching that point to the first and last entries
9851         respectively in the priority specific dispatching table for this unit.
9852         (Specific_Dispatching): Add this table for storing each S (priority
9853         specific dispatching) line encountered in the input ALI file.
9854         New flag Elaborate_All_Desirable in unit table
9855
9856         * bcheck.adb: (Check_Configuration_Consistency): Add call to
9857         Check_Consistent_Dispatching_Policy.
9858         (Check_Consistent_Dispatching_Policy): Add this procedure in charge of
9859         verifying that the use of Priority_Specific_Dispatching,
9860         Task_Dispatching_Policy, and Locking_Policy is consistent across the
9861         partition.
9862
9863         * bindgen.adb: (Public_Version_Warning): function removed.
9864         (Set_PSD_Pragma_Table): Add this procedure in charge of getting the
9865         required information from ALI files in order to initialize the table
9866         containing the specific dispatching policy.
9867         (Gen_Adainit_Ada): Generate the variables required for priority specific
9868         dispatching entries (__gl_priority_specific_dispatching and
9869         __gl_num_specific_dispatching).
9870         (Gen_Adainit_C): Generate the variables required for priority specific
9871         dispatching entries (__gl_priority_specific_dispatching and
9872         __gl_num_specific_dispatching).
9873         (Gen_Output_File): Acquire settings for Priority_Specific_Dispatching
9874         pragma entries.
9875         (Gen_Restrictions_String_1, Gen_Restrictions_String_2): Removed.
9876         (Gen_Restrictions_Ada, Gen_Restrictions_C, Set_Boolean): New procedures.
9877         (Tab_To): Removed.
9878         (Gen_Output_File_Ada/_C): Set directly __gl_xxx variables instead of
9879         a call to gnat_set_globals.
9880         Generate a string containing settings from
9881         Priority_Specific_Dispatching pragma entries.
9882         (Gen_Object_Files_Options): Do not include the runtime libraries when
9883         pragma No_Run_Time is specified.
9884
9885         * init.c (__gnat_install_handler, case FreeBSD): Use SA_SIGINFO, for
9886         consistency with s-intman-posix.adb.
9887         (__gnat_error_handler, case FreeBSD): Account for the fact that the
9888         handler is installed with SA_SIGINFO.
9889         (__gnat_adjust_context_for_raise, FreeBSD case): New function for
9890         FreeBSD ZCX support, copied from Linux version.
9891         Add MaRTE-specific definitions for the linux target. Redefine sigaction,
9892         sigfillset, and sigemptyset so the routines defined by MaRTE.
9893         (__gl_priority_specific_dispatching): Add this variable that stores the
9894         string containing priority specific dispatching policies in the
9895         partition.
9896         (__gl_num_specific_dispatching): Add this variable that indicates the
9897         highest priority for which a priority specific dispatching pragma
9898         applies.
9899         (__gnat_get_specific_dispatching): Add this routine that returns the
9900         priority specific dispatching policy, as set by a
9901         Priority_Specific_Dispatching pragma appearing anywhere in the current
9902         partition. The input argument is the priority number, and the result
9903         is the upper case first character of the policy name.
9904         (__gnat_set_globals): Now a dummy function.
9905         (__gnat_handle_vms_condition): Feed adjust_context_for_raise with
9906         mechargs instead of sigargs, as the latter can be retrieved from the
9907         former and sigargs is not what we want on ia64.
9908         (__gnat_adjust_context_for_raise, alpha-vms): Fetch sigargs from the
9909         mechargs argument.
9910         (__gnat_adjust_context_for_raise, ia64-vms): New function.
9911         (tasking_error): Remove unused symbol.
9912         (_abort_signal): Move this symbol to the IRIX specific part since this
9913         is the only target that uses this definition.
9914         (Check_Abort_Status): Move this symbol to the IRIX specific part since
9915         this is the only target that uses this definition.
9916         (Lock_Task): Remove unused symbol.
9917         (Unlock_Task): Remove unused symbol.
9918
9919         * lib-writ.adb (Write_ALI): Output new S lines for
9920         Priority_Specific_Dispatching pragmas.
9921         Implement new flag BD for elaborate body desirable
9922
9923         * lib-writ.ads: Document S lines for Priority Specific Dispatching.
9924         (Specific_Dispatching): Add this table for storing the entries
9925         corresponding to Priority_Specific_Dispatching pragmas.
9926         Document new BD flag for elaborate body desirable
9927
9928         * par-prag.adb (Prag): Add Priority_Specific_Dispatching to the list
9929         of known pragmas.
9930
9931 2006-10-31  Javier Miranda  <miranda@adacore.com>
9932
9933         * a-tags.ads, a-tags.adb: 
9934         (Predefined_DT): New function that improves readability of the code.
9935         (Get_Predefined_Prim_Op_Address, Set_Predefined_Prim_Op_Address,
9936         Inherit_DT): Use the new function Predefined_DT to improve code
9937         readability.
9938         (Register_Interface_Tag): Update assertion.
9939         (Set_Interface_Table): Update assertion.
9940         (Interface_Ancestor_Tags): New subprogram required to implement AI-405:
9941         determining progenitor interfaces in Tags.
9942         (Inherit_CPP_DT): New subprogram.
9943
9944         * exp_disp.adb (Expand_Interface_Thunk): Suppress checks during the
9945         analysis of the thunk code.
9946         (Expand_Interface_Conversion): Handle run-time conversion of
9947         access to class wide types.
9948         (Expand_Dispatching_Call): When generating the profile for the
9949         subprogram itype for a dispatching operation, properly terminate the
9950         formal parameters chaind list (set the Next_Entity of the last formal
9951         to Empty).
9952         (Collect_All_Interfaces): Removed. This routine has been moved to
9953         sem_util and renamed as Collect_All_Abstract_Interfaces.
9954         (Set_All_DT_Position): Hidden entities associated with abstract
9955         interface primitives are not taken into account in the check for
9956         3.9.3(10); this check is done with the aliased entity.
9957         (Make_DT, Set_All_DT_Position): Enable full ABI compatibility for
9958         interfacing with CPP by default.
9959         (Expand_Interface_Conversion): Add missing support for static conversion
9960         from an interface to a tagged type.
9961         (Collect_All_Interfaces): Add new out formal containing the list of
9962         abstract interface types to cleanup the subprogram Make_DT.
9963         (Make_DT): Update the code to generate the table of interfaces in case
9964         of abstract interface types.
9965         (Is_Predefined_Dispatching_Alias): New function that returns true if
9966         a primitive is not a predefined dispatching primitive but it is an
9967         alias of a predefined dispatching primitive.
9968         (Make_DT): If the ancestor of the type is a CPP_Class and we are
9969         compiling under full ABI compatibility mode we avoid the generation of
9970         calls to run-time services that fill the dispatch tables because under
9971         this mode we currently inherit the dispatch tables in the IP subprogram.
9972         (Write_DT): Emit an "is null" indication for a null procedure primitive.
9973         (Expand_Interface_Conversion): Use an address as the type of the formal
9974         of the internally built function that handles the case in which the
9975         target type is an access type.
9976
9977 2006-10-31  Robert Dewar  <dewar@adacore.com>
9978
9979         * binde.adb (Better_Choice, Worse_Choice): Implement new preferences.
9980
9981 2006-10-31  Robert Dewar  <dewar@adacore.com>
9982
9983         * bindusg.ads, bindusg.adb:
9984         Change to package and rename procedure as Display, which
9985         now ensures that it only outputs usage information once.
9986
9987 2006-10-31  Jose Ruiz  <ruiz@adacore.com>
9988
9989         * cal.c: Use the header sys/time.h for VxWorks 6.2 or greater when
9990         using RTPs.
9991
9992         * mkdir.c: Use a different version of mkdir for VxWorks 6.2 or greater
9993         when using RTPs.
9994
9995 2006-10-31  Robert Dewar  <dewar@adacore.com>
9996             Ed Schonberg  <schonberg@adacore.com>
9997
9998         * treepr.adb: Use new subtype N_Membership_Test
9999
10000         * checks.ads, checks.adb: Add definition for Validity_Check
10001         (Range_Or_Validity_Checks_Suppressed): New function
10002         (Ensure_Valid): Test Validity_Check suppressed
10003         (Insert_Valid_Check): Test Validity_Check suppressed
10004         (Insert_Valid_Check): Preserve Do_Range_Check flag
10005         (Validity_Check_Range): New procedure
10006         (Expr_Known_Valid): Result of membership test is always valid
10007         (Selected_Range_Checks): Range checks cannot be applied to discriminants
10008         by themselves. Disabling those checks must also be done for task types,
10009         where discriminants may be used for the bounds of entry families.
10010         (Apply_Address_Clause_Check): Remove side-effects if address expression
10011         is non-static and is not the name of a declared constant.
10012         (Null_Exclusion_Static_Checks): Extend to handle Function_Specification.
10013         Code cleanup and new error messages.
10014         (Enable_Range_Check): Test for some cases of suppressed checks
10015         (Generate_Index_Checks): Suppress index checks if index checks are
10016         suppressed for array object or array type.
10017         (Apply_Selected_Length_Checks): Give warning for compile-time detected
10018         length check failure, even if checks are off.
10019         (Ensure_Valid): Do not generate a check on an indexed component whose
10020         prefix is a packed boolean array.
10021         * checks.adb: (Alignment_Checks_Suppressed): New function
10022         (Apply_Address_Clause_Check): New procedure, this is a completely
10023         rewritten replacement for Apply_Alignment_Check
10024         (Get_E_Length/Get_E_First_Or_Last): Add missing barrier to ensure that
10025         we request a discriminal value only in case of discriminants.
10026         (Apply_Discriminant_Check): For Ada_05, only call Get_Actual_Subtype for
10027         assignments where the target subtype is unconstrained and the target
10028         object is a parameter or dereference (other aliased cases are known
10029         to be unconstrained).
10030
10031 2006-10-31  Robert Dewar  <dewar@adacore.com>
10032
10033         * clean.adb, gnatname.adb, gnatsym.adb, prep.adb, prep.ads,
10034         prepcomp.adb, prj.ads, prj-strt.adb, sem_maps.ads,
10035         vms_conv.adb: Fix bad table increment values (much too small)
10036
10037         * table.adb (Realloc): Make sure we get at least some new elements
10038         Defends against silly small values for table increment
10039
10040 2006-10-31  Robert Dewar  <dewar@adacore.com>
10041             Ed Schonberg  <schonberg@adacore.com>
10042             Bob Duff  <duff@adacore.com>
10043
10044         * einfo.ads, einfo.adb (Obsolescent_Warning): Now defined on all
10045         entities. Move other fields around to make this possible
10046         (Is_Derived_Type): Add missing call to Is_Type.
10047         (Extra_Formals): New function for subprograms, entries, subprogram
10048         types.
10049         (Set_Extra_Formals): New procedure for subprograms, entries, subp types.
10050         (First_Formal_With_Extras): New function for subprogs, entries, subp
10051         types.
10052         (Write_Field28_Name): New procedure for node display of "Extra_Formals".
10053         Add node information for E_Return_Statement.
10054         (Elaborate_Body_Desirable): New flag
10055         (Is_Return_By_Reference_Type): Rename Is_Return_By_Reference_Type
10056         to be Is_Inherently_Limited_Type, because return-by-reference has
10057         no meaning in Ada 2005.
10058         (E_Return_Statement): New entity kind.
10059         (Return_Applies_To): Field of E_Return_Statement.
10060         (Is_Return_Object): New flag in object entities.
10061         (Is_Dynamic_Scope): Make it True for E_Return_Statement.
10062         (Must_Have_Preelab_Init): New flag
10063         (Known_To_Have_Preelab_Init): New flag
10064         (Is_Formal_Object): Move from Sem_Ch8 body to Einfo
10065         (Is_Visible_Formal): New flag on entities in formal packages.
10066         (Low_Bound_Known): New flag
10067         (Non_Limited_View, Set_Non_Limited_View): Add membership test agains
10068         Incomplete_Kind.
10069         (Write_Field17_Name): Correct spelling of Non_Limited_View. Add name
10070         output when Id is an incomplete subtype.
10071
10072 2006-10-31  Robert Dewar  <dewar@adacore.com>
10073
10074         * errout.ads, errout.adb (Finalize): Implement switch -gnatd.m
10075         Avoid abbreviation Creat
10076         (Finalize): List all sources in extended mail source if -gnatl
10077         switch is active.
10078         Suppress copyright notice to file in -gnatl=f mode if -gnatd7 set
10079         (Finalize): Implement new -gnatl=xxx switch to output listing to file
10080         (Set_Specific_Warning_On): New procedure
10081         (Set_Specific_Warning_Off): New procedure
10082         Add implementation of new insertion \\
10083         (Error_Msg_Internal): Add handling for Error_Msg_Line_Length
10084         (Unwind_Internal_Type): Improve report on anonymous access_to_subprogram
10085         types.
10086         (Error_Msg_Internal): Make sure that we set Last_Killed to
10087         True when a message from another package is suppressed.
10088         Implement insertion character ~ (insert string)
10089         (First_Node): Minor adjustments to get better placement.
10090
10091         * frontend.adb: 
10092         Implement new -gnatl=xxx switch to output listing to file
10093
10094         * gnat1drv.adb: 
10095         Implement new -gnatl=xxx switch to output listing to file
10096
10097         * opt.ads: (Warn_On_Questionable_Missing_Paren): New switch
10098         (Commands_To_Stdout): New flag
10099         Implement new -gnatl=xxx switch to output listing to file
10100         New switch Dump_Source_Text
10101         (Warn_On_Deleted_Code): New warning flag for -gnatwt
10102         Define Error_Msg_Line_Length
10103         (Warn_On_Assumed_Low_Bound): New switch
10104
10105         * osint.ads, osint.adb
10106         (Normalize_Directory_Name): Fix bug.
10107         Implement new -gnatl=xxx switch to output listing to file
10108         (Concat): Removed, replaced by real concatenation
10109         Make use of concatenation now allowed in compiler
10110         (Executable_Prefix.Get_Install_Dir): First get the full path, so that
10111         we find the 'lib' or 'bin' directory even when the tool has been
10112         invoked with a relative path.
10113         (Executable_Name): New function taking string parameters.
10114
10115         * osint-c.ads, osint-c.adb: 
10116         Implement new -gnatl=xxx switch to output listing to file
10117
10118         * sinput-d.adb: Change name Creat_Debug_File to Create_Debug_File
10119
10120         * switch-c.adb: 
10121         Implement new -gnatl=xxx switch to output listing to file
10122         Recognize new -gnatL switch
10123         (no longer keep in old warning about old style usage)
10124         Use concatenation to simplify code
10125         Recognize -gnatjnn switch
10126         (Scan_Front_End_Switches): Clean up handling of -gnatW
10127         (Scan_Front_End_Switches): Include Warn_On_Assumed_Low_Bound for -gnatg
10128
10129 2006-10-31  Robert Dewar  <dewar@adacore.com>
10130
10131         * erroutc.ads, erroutc.adb (Set_Specific_Warning_On): New procedure
10132         (Set_Specific_Warning_Off): New procedure
10133         (Warning_Specifically_Suppressed): New function
10134         (Validate_Specific_Warnings): New procedure
10135         (Output_Msg_Text): Complete rewrite to support -gnatjnn
10136
10137         * err_vars.ads: Implement insertion character ~ (insert string)
10138
10139 2006-10-31  Bob Duff  <duff@adacore.com>
10140             Ed Schonberg  <schonberg@adacore.com>
10141
10142         * exp_aggr.adb (Build_Record_Aggr_Code): For extension aggregates, if
10143         the parent part is a build-in-place function call, generate assignments.
10144         (Expand_Record_Aggregate): Call Convert_To_Assignments if any components
10145         are build-in-place function calls.
10146         (Replace_Self_Reference): New subsidiary of
10147         Make_OK_Assignment_Statement, to replace an access attribute that is a
10148         self-reference into an access to the appropriate component of the
10149         target object. Generalizes previous mechanism to handle self-references
10150         nested at any level.
10151         (Is_Self_Referential_Init): Remove, not needed.
10152         (Is_Self_Referential_Init): New predicate to simplify handling of self
10153         referential components in record aggregates.
10154         (Has_Default_Init_Comps, Make_OK_Assignment_Statement): Add guard to
10155         check for presence of entity before checking for self-reference.
10156         (Has_Default_Init_Comps): Return True if a component association is a
10157         self-reference to the enclosing type, which can only come from a
10158         default initialization.
10159         (Make_OK_Assignment_Statement): If the expression is of the form
10160         Typ'Acc, where Acc is an access attribute, the expression comes from a
10161         default initialized self-referential component.
10162         (Build_Record_Aggr_Code): If the type of the aggregate is a tagged type
10163         that has been derived from several abstract interfaces we must also
10164         initialize the tags of the secondary dispatch tables.
10165
10166 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
10167             Thomas Quinot  <quinot@adacore.com>
10168             Javier Miranda  <miranda@adacore.com>
10169             Robert Dewar  <dewar@adacore.com>
10170
10171         * exp_attr.adb: 
10172         (Expand_Access_To_Protected_Op): If the context indicates that an access
10173         to a local operation may be transfered outside of the object, create an
10174         access to the wrapper operation that must be used in an external call.
10175         (Expand_N_Attribute_Reference, case Attribute_Valid): For the AAMP
10176         target, pass the Valid attribute applied to a floating-point prefix on
10177         to the back end without expansion.
10178         (Storage_Size): Use the new run-time function Storage_Size to retrieve
10179         the allocated storage when it is specified by a per-object expression.
10180         (Expand_N_Attribute_Reference): Add case for Attribute_Stub_Type.
10181         Nothing to do here, the attribute has been rewritten during semantic
10182         analysis.
10183         (Expand_Attribute_Reference): Handle expansion of the new Priority
10184         attribute
10185         (Find_Fat_Info): Handle case of universal real
10186         (Expand_Access_To_Protected_Op): Fix use of access to protected
10187         subprogram from inside the body of a protected entry.
10188         (Expand_Access_To_Protected_Op): Common procedure for the expansion of
10189         'Access and 'Unrestricted_Access, to transform the attribute reference
10190         into a fat pointer.
10191         (Is_Constrained_Aliased_View): New predicate to help determine whether a
10192         subcomponent's enclosing variable is aliased with a constrained subtype.
10193         (Expand_N_Attribute_Reference, case Attribute_Constrained): For Ada_05,
10194         test Is_Constrained_Aliased_View rather than Is_Aliased_View, because
10195         an aliased prefix must be known to be constrained in order to use True
10196         for the attribute value, and now it's possible for some aliased views
10197         to be unconstrained.
10198
10199 2006-10-31  Robert Dewar  <dewar@adacore.com>
10200
10201         * exp_ch2.adb: Change Is_Lvalue to May_Be_Lvalue
10202         (Expand_Entity_Reference): Correct error of not handling subprogram
10203         formals in current_value processing.
10204
10205 2006-10-31  Javier Miranda  <miranda@adacore.com>
10206             Robert Dewar  <dewar@adacore.com>
10207             Ed Schonberg  <schonberg@adacore.com>
10208             Gary Dismukes  <dismukes@adacore.com>
10209
10210         * exp_ch3.ads, exp_ch3.adb (Expand_N_Object_Declaration): Do not
10211         register in the final list objects containing class-wide interfaces;
10212         otherwise we incorrectly register the tag of the interface in the final
10213         list.
10214         (Make_Controlling_Function_Wrappers): Add missing barrier to do not
10215         generate the wrapper if the parent primitive is abstract. This is
10216         required to report the correct error message.
10217         (Expand_N_Subtype_Indication): Do validity checks on range
10218         (Clean_Task_Names): If an initialization procedure includes a call to
10219         initialize a task (sub)component, indicate that the procedure will use
10220         the secondary stack.
10221         (Build_Init_Procedure, Init_Secondary_Tags): Enable full ABI
10222         compatibility for interfacing with CPP by default.
10223         (Expand_N_Object_Declaration): Only build an Adjust call when the
10224         object's type is a nonlimited controlled type.
10225         * exp_ch3.adb: Add with and use of Exp_Ch6.
10226         (Expand_N_Object_Declaration): Check for object initialization that is a
10227         call to build-in-place function and apply Make_Build_In_Place_Call_In_
10228         Object_Declaration to the call.
10229         (Freeze_Type): When the designated type of an RACW was not frozen at the
10230         point where the RACW was declared, validate the primitive operations
10231         with respect to E.2.2(14) when it finally is frozen.
10232         (Build_Initialization_Call,Expand_Record_Controller): Rename
10233         Is_Return_By_Reference_Type to be Is_Inherently_Limited_Type, because
10234         return-by-reference has no meaning in Ada 2005.
10235         (Init_Secondary_Tags): Add missing call to Set_Offset_To_Top
10236         to register tag of the immediate ancestor interfaces in the
10237         run-time structure.
10238         (Init_Secondary_Tags): Moved to the specification to allow the
10239         initialization of extension aggregates with abstract interfaces.
10240         (Build_Master_Renaming): Make public, for use by function declarations
10241         whose return type is an anonymous access type.
10242         (Freeze_Record_Type): Replace call to Insert_List_Before by call to
10243         Insert_List_Before_And_Analyze after the generation of the specs
10244         associated with null procedures.
10245         (Expand_Tagged_Root): Update documentation in its specification.
10246         (Init_Secondary_Tags): Update documentation.
10247         (Build_Init_Procedure): If we are compiling under CPP full ABI compa-
10248         tibility mode and the immediate ancestor is a CPP_Pragma tagged type
10249         then generate code to inherit the contents of the dispatch table
10250         directly from the ancestor.
10251         (Expand_Record_Controller): Insert controller component after tags of
10252         implemented interfaces.
10253         (Freeze_Record_Type): Call new procedure Make_Null_Procedure_Specs to
10254         create null procedure overridings when null procedures are inherited
10255         from interfaces.
10256         (Make_Null_Procedure_Specs): New procedure to generate null procedure
10257         declarations for overriding null primitives inherited from interfaces.
10258         (Is_Null_Interface_Procedure): New function in
10259         Make_Null_Procedure_Specs.
10260         (Make_Predefined_Primitive_Specs/Predefined_Primitive_Bodies): If the
10261         immediate ancestor of a tagged type is an abstract interface type we
10262         must generate the specification of the predefined primitives associated
10263         with controlled types (because the dispatch table of the ancestor is
10264         null and hence these entries cannot be inherited). This is required to
10265         elaborate well the dispatch table.
10266
10267 2006-10-31  Javier Miranda  <miranda@adacore.com>
10268             Ed Schonberg  <schonberg@adacore.com>
10269             Bob Duff  <duff@adacore.com>
10270             Gary Dismukes  <dismukes@adacore.com>
10271             Robert Dewar  <dewar@adacore.com>
10272
10273         * exp_ch4.adb (Expand_N_Type_Conversion): Handle missing interface type
10274         conversion.
10275         (Expand_N_In): Do validity checks on range
10276         (Expand_Selected_Component): Use updated for of Denotes_Discriminant.
10277         (Expand_N_Allocator): For "new T", if the object is constrained by
10278         discriminant defaults, allocate the right amount of memory, rather than
10279         the maximum for type T.
10280         (Expand_Allocator_Expression): Suppress the call to Remove_Side_Effects
10281         when the allocator is initialized by a build-in-place call, since the
10282         allocator is already rewritten as a reference to the function result,
10283         and this prevents an unwanted duplication of the function call.
10284         Add with and use of Exp_Ch6.
10285         (Expand_Allocator_Expresssion): Check for an allocator whose expression
10286         is a call to build-in-place function and apply
10287         Make_Build_In_Place_Call_In_Allocator to the call (for both tagged and
10288         untagged designated types).
10289         (Expand_N_Unchecked_Type_Conversion): Do not do integer literal
10290         optimization if source or target is biased.
10291         (Expand_N_Allocator): Add comments for case of an allocator within a
10292         function that returns an anonymous access type designating tasks.
10293         (Expand_N_Allocator): apply discriminant checks for access
10294         discriminants of anonymous access types (AI-402, AI-416)
10295
10296 2006-10-31  Bob Duff  <duff@adacore.com>
10297             Robert Dewar  <dewar@adacore.com>
10298             Gary Dismukes  <dismukes@adacore.com>
10299             Ed Schonberg  <schonberg@adacore.com>
10300
10301         * exp_ch5.ads (Expand_N_Extended_Return_Statement): New procedure.
10302
10303         * exp_ch5.adb (Expand_N_Loop_Statement): Do validity checks on range
10304         (Expand_N_Assignment_Statement): Call
10305         Make_Build_In_Place_Call_In_Assignment if the right-hand side is a
10306         build-in-place function call. Currently, this can happen only for
10307         assignments that come from aggregates.
10308         Add -gnatd.l --Use Ada 95 semantics for limited function returns,
10309         in order to alleviate the upward compatibility introduced by AI-318.
10310         (Expand_N_Extended_Return_Statement): Add support for handling the
10311         return object as a build-in-place result.
10312         (Expand_Non_Function_Return): Implement simple return statements nested
10313         within an extended return.
10314         (Enable_New_Return_Processing): Turn on the new processing of return
10315         statements.
10316         (Expand_Non_Function_Return): For a return within an extended return,
10317         don't raise Program_Error, because Sem_Ch6 now gives a warning.
10318         (Expand_N_Extended_Return_Statement): Implement AI-318
10319         (Expand_Simple_Function_Return): Ditto.
10320         (Expand_N_If_Statement): Handle new -gnatwt warning
10321         (Expand_N_Case_Statement): Handle new -gnatwt warning
10322         (Expand_N_Assignment): Handle assignment to the Priority attribute of
10323         a protected object.
10324         (Expand_N_Assignment_Statement): Implement -gnatVe/E to control
10325         validity checking of assignments to elementary record components.
10326         (Expand_N_Return_Statement): return Class Wide types on the secondary
10327         stack independantly of their controlled status since with HIE runtimes,
10328         class wide types are not potentially controlled anymore.
10329
10330         * expander.adb (Expand): Add case for new N_Extended_Return_Statement
10331         node kind.
10332
10333         * exp_ch11.adb (Expand_N_Handled_Sequence_Of_Statements): Avoid
10334         Expand_Cleanup_Actions in case of N_Extended_Return_Statement, because
10335         it expects a block, procedure, or task. The return statement will get
10336         turned into a block, and Expand_Cleanup_Actions will happen then.
10337
10338 2006-10-31  Robert Dewar  <dewar@adacore.com>
10339             Ed Schonberg  <schonberg@adacore.com>
10340             Bob Duff  <duff@adacore.com>
10341             Gary Dismukes  <dismukes@adacore.com>
10342
10343         * exp_ch6.ads, exp_ch6.adb: Use new Validity_Check suppression
10344         capability.
10345         (Expand_Inlined_Call): Tagged types are by-reference types, and
10346         therefore should be replaced by a renaming declaration in the expanded
10347         body, as is done for limited types.
10348         (Expand_Call): If this is a call to a function with dispatching access
10349         result, propagate tag from context.
10350         (Freeze_Subprogram): Enable full ABI compatibility for interfacing with
10351         CPP by default.
10352         (Make_Build_In_Place_Call_In_Assignment): New procedure to do
10353         build-in-place when the right-hand side of an assignment is a
10354         build-in-place function call.
10355         (Make_Build_In_Place_Call_In_Allocator): Apply an unchecked conversion
10356         of the explicit dereference of the allocator to the result subtype of
10357         the build-in-place function. This is needed to satisfy type checking
10358         in cases where the caller's return object is created by an allocator for
10359         a class-wide access type and the type named in the allocator is a
10360         specific type.
10361         (Make_Build_In_Place_Call_In_Object_Declaration): Apply an unchecked
10362         conversion of the reference to the declared object to the result subtype
10363         of the build-in-place function. This is needed to satisfy type checking
10364         in cases where the declared object has a class-wide type. Also, in the
10365         class-wide case, change the type of the object entity to the specific
10366         result subtype of the function, to avoid passing a class-wide object
10367         without explicit initialization to the back end.
10368         (Register_Interface_DT_Entry): Moved outside the body of
10369         Freeze_Subprogram because this routine is now public; it is called from
10370         Check_Dispatching_Overriding to handle late overriding of abstract
10371         interface primitives.
10372         (Add_Access_Actual_To_Build_In_Place_Call): New utility procedure for
10373         adding an implicit access actual on a call to a build-in-place function.
10374         (Expand_Actuals): Test for an actual parameter that is a call to a
10375         build-in-place function and apply
10376         Make_Build_In_Place_Call_In_Anonymous_Context to the call.
10377         (Is_Build_In_Place_Function): New function to determine whether an
10378         entity is a function whose calls should be handled as build-in-place.
10379         (Is_Build_In_Place_Function_Call): New function to determine whether an
10380         expression is a function call that should handled as build-in-place.
10381         (Make_Build_In_Place_Call_In_Allocator): New procedure for handling
10382         calls to build-in-place functions as the initialization of an allocator.
10383         (Make_Build_In_Place_Call_In_Anonymous_Context): New procedure for
10384         handling calls to build-in-place functions in contexts that do not
10385         involve init of a separate object (for example, actuals of subprogram
10386         calls).
10387         (Make_Build_In_Place_Call_In_Object_Declaration): New procedure for
10388         handling calls to build-in-place functions as the initialization of an
10389         object declaration.
10390         (Detect_Infinite_Recursion): Add explicit parameter Process to
10391         instantiation of Traverse_Body to avoid unreferenced warning.
10392         (Check_Overriding_Inherited_Interfaces): Removed.
10393         (Register_Interface_DT_Entry): Code cleanup.
10394         (Register_Predefined_DT_Entry): Code cleanup.
10395         (Expand_Inlined_Call.Rewrite_Procedure_Call): Do not omit block around
10396         inlined statements if within a transient scope.
10397         (Expand_Inlined_Call.Process_Formals): When replacing occurrences of
10398         formal parameters with occurrences of actuals in inlined body, establish
10399         visibility on the proper view of the actual's subtype for the body's
10400         context.
10401         (Freeze_Subprogram): Do nothing if we are compiling under full ABI
10402         compatibility mode and we have an imported CPP subprogram because
10403         for now we assume that imported CPP primitives correspond with
10404         objects whose constructor is in the CPP side (and therefore we
10405         don't need to generate code to register them in the dispatch table).
10406         (Expand_Actuals): Introduce copy of actual, only if it might be a bit-
10407         aligned selected component.
10408         (Add_Call_By_Copy_Node): Add missing code to handle the case in which
10409         the actual of an in-mode parameter is a type conversion.
10410         (Expand_Actuals): If the call does not come from source and the actual
10411         is potentially misaligned, let gigi handle it rather than rejecting the
10412         (Expand_N_Subprogram_Body, Freeze_Subprogram): set subprograms returning
10413         Class Wide types as returning by reference independantly of their
10414         controlled status since with HIE runtimes class wide types are not
10415         potentially controlled anymore.
10416
10417 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
10418
10419         * exp_ch9.adb (Update_Prival_Types): Simplify code for entity
10420         references that are private components of the protected object.
10421         (Build_Barrier_Function): Set flag Is_Entry_Barrier_Function
10422         (Update_Prival_Subtypes): Add explicit Process argument to Traverse_Proc
10423         instantiation to deal with warnings.
10424         (Initialize_Protection): If expression for priority is non-static, use
10425         System_Priority as its expected type, in case the expression has not
10426         been analyzed yet.
10427
10428 2006-10-31  Robert Dewar  <dewar@adacore.com>
10429
10430         * exp_dbug.ads, exp_dbug.adb (Get_External_Name): Add missing
10431         initialization of Homonym_Len.
10432         (Fully_Qualify_Name): Remove kludge to eliminate anonymous block
10433         names from fully qualified name. Fixes problem of duplicate
10434         external names differing only in the presence of such a block name.
10435
10436 2006-10-31  Thomas Quinot  <quinot@adacore.com>
10437             Pablo Oliveira  <oliveira@adacore.com>
10438
10439         * exp_dist.adb (Get_Subprogram_Ids): This function will no more assign
10440         subprogram Ids, even if they are not yet assigned.
10441         (Build_Subprogram_Id): It is now this function that will take care of
10442         calling Assign_Subprogram_Ids if necessary.
10443         (Add_Receiving_Stubs_To_Declarations): Checking the subprograms ids
10444         should be done only once they are assigned.
10445         (Build_From_Any_Function, case of tagged types): Add missing call to
10446         Allocate_Buffer.
10447         (Corresponding_Stub_Type): New subprogram. Returns the associated stub
10448         type for an RACW type.
10449         (Add_RACW_Features): When processing an RACW declaration for which the
10450         designated type is already frozen, enforce E.2.2(14) rules immediately.
10451         (GARLIC_Support.Build_Subprogram_Receiving_Stubs): Do not perform any
10452         special reordering of controlling formals.
10453
10454         * exp_dist.ads (Corresponding_Stub_Type): New subprogram. Returns the
10455         associated stub type for an RACW type.
10456
10457 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
10458
10459         * exp_fixd.adb (Rounded_Result_Set): For multiplication and division of
10460         fixed-point operations in an integer context, i.e. as operands of a
10461         conversion to an integer type, indicate that result must be rounded.
10462
10463 2006-10-31  Robert Dewar  <dewar@adacore.com>
10464
10465         * exp_imgv.adb (Expand_Image_Attribute): For Wide_[Wide_]Character
10466         cases, pass the encoding method, since it is now required by the run
10467         time.
10468
10469         * s-valwch.ads, s-valwch.adb (Value_Wide_Wide_Character): Avoid
10470         assumption that Str'First = 1.
10471         (Value_Wide_Character): Takes EM (encoding method) parameter and passes
10472         it on to the Value_Wide_Wide_Character call.
10473         (Value_Wide_Wide_Character): Takes EM (encoding method) parameter and
10474         properly handles a string of the form quote-encoded_wide_char-quote.
10475
10476         * s-wchcnv.adb: Minor reformatting
10477
10478 2006-10-31  Javier Miranda  <miranda@adacore.com>
10479
10480         * exp_intr.adb (Expand_Dispatching_Constructor_Call): Add missing
10481         run-time membership test to ensure that the constructed object
10482         implements the target abstract interface.
10483
10484 2006-10-31  Robert Dewar  <dewar@adacore.com>
10485
10486         * exp_prag.adb (Expand_Pragma_Common_Object): Use a single
10487         Machine_Attribute pragma internally to implement the user pragma.
10488         Add processing for pragma Interface so that it is now completely
10489         equivalent to pragma Import.
10490
10491         * sem_prag.adb (Analyze_Pragma, case Obsolescent): Extend this pragma
10492         so that it can be applied to all entities, including record components
10493         and enumeration literals.
10494         (Analyze_Pragma, case Priority_Specific_Dispatching): Check whether
10495         priority ranges are correct, verify compatibility against task
10496         dispatching and locking policies, and if everything is correct an entry
10497         is added to the table containing priority specific dispatching entries
10498         for this compilation unit.
10499         (Delay_Config_Pragma_Analyze): Delay processing
10500         Priority_Specific_Dispatching pragmas because when processing the
10501         pragma we need to access run-time data, such as the range of
10502         System.Any_Priority.
10503         (Sig_Flags): Add Pragma_Priority_Specific_Dispatching.
10504         Allow pragma Unreferenced as a context item
10505         Add pragma Preelaborable_Initialization
10506         (Analyze_Pragma, case Interface): Interface is extended so that it is
10507         now syntactically and semantically equivalent to Import.
10508         (Analyze_Pragma, case Compile_Time_Warning): Fix error of blowups on
10509         insertion characters.
10510         Add handling for Pragma_Wide_Character_Encoding
10511         (Process_Restrictions_Restriction_Warnings): Ensure that a warning
10512         never supercedes a real restriction, and that a real restriction
10513         always supercedes a warning.
10514         (Analyze_Pragma, case Assert): Set Low_Bound_Known if assert is of
10515         appropriate form.
10516
10517 2006-10-31  Bob Duff  <duff@adacore.com>
10518             Ed Schonberg  <schonberg@adacore.com>
10519             Robert Dewar  <dewar@adacore.com>
10520
10521         * exp_ch7.adb (Build_Array_Deep_Procs, Build_Record_Deep_Procs,
10522         Make_Deep_Record_Body): Rename Is_Return_By_Reference_Type to be
10523         Is_Inherently_Limited_Type, because return-by-reference has no meaning
10524         in Ada 2005.
10525         (Find_Node_To_Be_Wrapped): Use new method of determining the result
10526         type of the function containing a return statement, because the
10527         Return_Type field was removed. We now use the Return_Applies_To field.
10528
10529         * exp_util.ads, exp_util.adb: Use new subtype N_Membership_Test
10530         (Build_Task_Image_Decl): If procedure is not called from an
10531         initialization procedure, indicate that function that builds task name
10532         uses the sec. stack. Otherwise the enclosing initialization procedure
10533         will carry the indication.
10534         (Insert_Actions): Remove N_Return_Object_Declaration. We now use
10535         N_Object_Declaration instead.
10536         (Kill_Dead_Code): New interface to implement -gnatwt warning for
10537         conditional dead code killed, and change implementation accordingly.
10538         (Insert_Actions): Add N_Return_Object_Declaration case.
10539         Correct comment to mention N_Extension_Aggregate node.
10540         (Set_Current_Value_Condition): Call Safe_To_Capture_Value to avoid bad
10541         attempts to save information for global variables which cannot be
10542         safely tracked.
10543         (Get_Current_Value_Condition): Handle conditions the other way round
10544         (constant on left). Also handle right operand of AND and AND THEN
10545         (Set_Current_Value_Condition): Corresponding changes
10546         (Append_Freeze_Action): Remove unnecessary initialization of Fnode.
10547         (Get_Current_Value_Condition): Handle simple boolean operands
10548         (Get_Current_Value_Condition): Handle left operand of AND or AND THEN
10549         (Get_Current_Value_Condition): If the variable reference is within an
10550         if-statement, does not appear in the list of then_statments, and does
10551         not come from source, treat it as being at unknown location.
10552         (Get_Current_Value_Condition): Enhance to allow while statements to be
10553         processed as well as if statements.
10554         (New_Class_Wide_Subtype): The entity for a class-wide subtype does not
10555         come from source.
10556         (OK_To_Do_Constant_Replacement): Allow constant replacement within body
10557         of loop. This is safe now that we fixed Kill_Current_Values.
10558         (OK_To_Do_Constant_Replacement): Check whether current scope is
10559         Standard, before examining outer scopes.
10560
10561 2006-10-31  Vincent Celier  <celier@adacore.com>
10562
10563         * krunch.ads, krunch.adb (Krunch): New Boolean parameter VMS_On_Target.
10564         When True, apply VMS treatment to children of packages A, G, I and S.
10565         For F320-016
10566
10567         * fname-uf.adb (Get_File_Name): Call Krunch with OpenVMS_On_Target
10568
10569 2006-10-31  Robert Dewar  <dewar@adacore.com>
10570             Ed Schonberg  <schonberg@adacore.com>
10571
10572         * freeze.adb: Add handling of Last_Assignment field
10573         (Warn_Overlay): Supply missing continuation marks in error msgs
10574         (Freeze_Entity): Add check for Preelaborable_Initialization
10575
10576         * g-comlin.adb: Add Warnings (Off) to prevent new warning
10577
10578         * g-expect.adb: Add Warnings (Off) to prevent new warning
10579
10580         * lib-xref.adb: Add handling of Last_Assignment field
10581         (Generate_Reference): Centralize handling of pragma Obsolescent here
10582         (Generate_Reference): Accept an implicit reference generated for a
10583         default in an instance.
10584         (Generate_Reference): Accept a reference for a node that is not in the
10585         main unit, if it is the generic body corresponding to an subprogram
10586         instantiation.
10587
10588         * xref_lib.adb: Add pragma Warnings (Off) to avoid new warnings
10589
10590         * sem_warn.ads, sem_warn.adb (Set_Warning_Switch): Add processing for
10591         -gnatwq/Q.
10592         (Warn_On_Useless_Assignment): Suppress warning if enclosing inner
10593         exception handler.
10594         (Output_Obsolescent_Entity_Warnings): Rewrite to avoid any messages on
10595         use clauses, to avoid messages on packages used to qualify, and also
10596         to avoid messages from obsolescent units.
10597         (Warn_On_Useless_Assignments): Don't generate messages for imported
10598         and exported variables.
10599         (Warn_On_Useless_Assignments): New procedure
10600         (Output_Obsolescent_Entity_Warnings): New procedure
10601         (Check_Code_Statement): New procedure
10602
10603         * einfo.ads, einfo.adb (Has_Static_Discriminants): New flag
10604         Change name Is_Ada_2005 to Is_Ada_2005_Only
10605         (Last_Assignment): New field for useless assignment warning
10606
10607 2006-10-31  Olivier Hainque  <hainque@adacore.com>
10608
10609         * g-alleve.adb (lvx, stvx): Ceil-Round the Effective Address to the
10610         closest multiple of VECTOR_ALIGNMENT and not the closest multiple of 16.
10611
10612 2006-10-31  Bob Duff  <duff@adacore.com>
10613             Robert Dewar  <dewar@adacore.com>
10614             Ed Schonberg  <schonberg@adacore.com>
10615
10616         * g-awk.adb (Default_Session, Current_Session): Compile this file in
10617         Ada 95 mode, because it violates the new rules for AI-318.
10618
10619         * g-awk.ads: Use overloaded subprograms in every case where we used to
10620         have a default of Current_Session. This makes the code closer to be
10621         correct for both Ada 95 and 2005.
10622
10623         * g-moreex.adb (Occurrence): Turn off warnings for illegal-in-Ada-2005
10624         code, relying on the fact that the compiler generates a warning
10625         instead of an error in -gnatg mode.
10626
10627         * lib-xref.ads (Xref_Entity_Letters): Add entry for new
10628         E_Return_Statement entity kind.
10629         Add an entry for E_Incomplete_Subtype in Xref_Entity_Letters.
10630
10631         * par.adb (P_Interface_Type_Definition): Addition of one formal to
10632         report an error if the reserved word abstract has been previously found.
10633         (SS_End_Type): Add E_Return for new extended_return_statement syntax.
10634
10635         * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Improve message for
10636         parenthesized range attribute usage
10637         (P_Expression_No_Right_Paren): Add missing comment about error recovery.
10638
10639         * par-ch6.adb (P_Return_Object_Declaration): AI-318: Allow "constant"
10640         in the syntax for extended_return_statement. This is not in the latest
10641         RM, but the ARG is expected to issue an AI allowing this.
10642         (P_Return_Subtype_Indication,P_Return_Subtype_Indication): Remove
10643         N_Return_Object_Declaration. We now use N_Object_Declaration instead.
10644         (P_Return_Object_Declaration, P_Return_Subtype_Indication,
10645         P_Return_Statement): Parse the new syntax for extended_return_statement.
10646
10647         * par-endh.adb (Check_End, Output_End_Deleted, Output_End_Expected,
10648         Output_End_Missing): Add error-recovery code for the new
10649         extended_return_statement syntax; that is, the new E_Return entry on
10650         the scope stack.
10651
10652         * s-auxdec-vms_64.ads, s-auxdec.ads (AST_Handler): Change type from
10653         limited to nonlimited, because otherwise we violate the new Ada 2005
10654         rules about returning limited types in function Create_AST_Handler in
10655         s-asthan.adb.
10656
10657         * sem.adb (Analyze): Add cases for new node kinds
10658         N_Extended_Return_Statement and N_Return_Object_Declaration.
10659
10660         * sem_aggr.adb (Aggregate_Constraint_Checks): Verify that component
10661         type is in the same category as type of context before applying check,
10662         to prevent anomalies in instantiations.
10663         (Resolve_Aggregate): Remove test for limited components in aggregates.
10664         It's unnecessary in Ada 95, because if it has limited components, then
10665         it must be limited. It's wrong in Ada 2005, because limited aggregates
10666         are now allowed.
10667         (Resolve_Record_Aggregate): Move check for limited types later, because
10668         OK_For_Limited_Init requires its argument to have been resolved.
10669         (Get_Value): When copying the component default expression for a
10670         defaulted association in an aggregate, use the sloc of the aggregate
10671         and not that of the original expression, to prevent spurious
10672         elaboration errors, when the expression includes function calls.
10673         (Check_Non_Limited_Type): Correct code for AI-287, extension aggregates
10674         were missing. We also didn't handle qualified expressions. Now also
10675         allow function calls. Use new common routine OK_For_Limited_Init.
10676         (Resolve_Extension_Aggregate): Minor fix to bad error message (started
10677         with space can upper case letter).
10678
10679         * sem_ch3.ads, sem_ch3.adb (Create_Constrained_Components): Set
10680         Has_Static_Discriminants flag
10681         (Record_Type_Declaration): Diagnose an attempt to declare an interface
10682         type with discriminants.
10683         (Process_Range_Expr_In_Decl): Do validity checks on range
10684         (Build_Discriminant_Constraints): Use updated form of
10685         Denotes_Discriminant.
10686         (Process_Subtype): If the subtype is a private subtype whose full view
10687         is a concurrent subtype, introduce an itype reference to prevent scope
10688         anomalies in gigi.
10689         (Build_Derived_Record_Type, Collect_Interface_Primitives,
10690         Record_Type_Declaration):  The functionality of the subprograms
10691         Collect_Abstract_Interfaces and Collect_All_Abstract_Interfaces
10692         is now performed by a single routine.
10693         (Build_Derived_Record_Type): If the type definition includes an explicit
10694         indication of limitedness, then the type must be marked as limited here
10695         to ensure that any access discriminants will not be treated as having
10696         a local anonymous access type.
10697         (Check_Abstract_Overriding): Issue a detailed error message when an
10698         abstract subprogram was not overridden due to incorrect mode of its
10699         first parameter.
10700         (Analyze_Private_Extension_Declaration): Add support for the analysis of
10701         synchronized private extension declarations. Verify that the ancestor is
10702         a limited or synchronized interface or in the generic case, the ancestor
10703         is a tagged limited type or synchronized interface and all progenitors
10704         are either limited or synchronized interfaces.
10705         Derived_Type_Declaration): Check for presence of private extension when
10706         dealing with synchronized formal derived types.
10707         Process_Full_View): Enchance the check done on the usage of "limited" by
10708         testing whether the private view is synchronized.
10709         Verify that a synchronized private view is completed by a protected or
10710         task type.
10711         (OK_For_Limited_Init_In_05): New function.
10712         (Analyze_Object_Declaration): Move check for limited types later,
10713         because OK_For_Limited_Init requires its argument to have been resolved.
10714         Add -gnatd.l --Use Ada 95 semantics for limited function returns,
10715         in order to alleviate the upward compatibility introduced by AI-318.
10716         (Constrain_Corresponding_Record): If the constraint is for a component
10717         subtype, mark the itype as frozen, to avoid out-of-scope references to
10718         discriminants in the back-end.
10719         (Collect_Implemented_Interfaces): Protect the recursive algorithm of
10720         this subprogram against wrong sources.
10721         (Get_Discr_Value, Is_Discriminant): Handle properly references to a
10722         discriminant of limited type completed with a protected type, when the
10723         discriminant is used to constrain a private component of the type, and
10724         expansion is disabled.
10725         (Find_Type_Of_Object): Do not treat a return subtype that is an
10726         anonymous subtype as a local_anonymous_type, because its accessibility
10727         level is the return type of the enclosing function.
10728         (Check_Initialization): In -gnatg mode, turn the error "cannot
10729         initialize entities of limited type" into a warning.
10730         (OK_For_Limited_Init): Return true for generated nodes, since it
10731         sometimes violates the legality rules.
10732         (Make_Incomplete_Declaration): If the type for which an incomplete
10733         declaration is created happens to be the currently visible entity,
10734         preserve the homonym chain when removing it from visibility.
10735         (Check_Conventions): Add support for Ada 2005 (AI-430): Conventions of
10736         inherited subprograms.
10737         (Access_Definition): If this is an access to function that is the return
10738         type of an access_to_function definition, context is a type declaration
10739         and the scope of the anonymous type is the current one.
10740         (Analyze_Subtype_Declaration): Add the defining identifier of a regular
10741         incomplete subtype to the set of private dependents of the original
10742         incomplete type.
10743         (Constrain_Discriminated_Type): Emit an error message whenever an
10744         incomplete subtype is being constrained.
10745         (Process_Incomplete_Dependents): Transform an incomplete subtype into a
10746         corresponding subtype of the full view of the original incomplete type.
10747         (Check_Incomplete): Properly detect invalid usage of incomplete types
10748         and subtypes.
10749
10750 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
10751
10752         * g-catiio.ads, g-catiio.adb (Value): New function.
10753         Given an input String, try and parse a valid Time value.
10754
10755 2006-10-31  Vincent Celier  <celier@adacore.com>
10756
10757         * g-debpoo.adb (Is_Valid): Correctly compute Offset using
10758         Integer_Address arithmetic, as in Set_Valid.
10759
10760 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
10761             Robert Dewar  <dewar@adacore.com>
10762
10763         * gnatcmd.adb (Process_Link): Use Osint.Executable_Name instead of
10764         handling executable extension manually and duplicating code.
10765
10766         * make.adb: Implement new -S switch
10767         (Gnatmake): Use new function Osint.Executable_Name instead
10768         of handling executable extension manually.
10769
10770         * prj-util.adb (Executable_Of): Make sure that if an Executable_Suffix
10771         is specified, the executable name ends with this suffix.
10772         Take advantage of Osint.Executable_Name instead of duplicating code.
10773
10774         * switch-m.adb: Recognize new gnatmake -S switch
10775
10776         * targparm.ads, targparm.adb (Executable_Extension_On_Target): New
10777         variable.
10778         (Get_Target_Parameters): Set Executable_Extension_On_Target if
10779         available.
10780
10781         * makeusg.adb: Add line for gnatmake -S switch
10782
10783 2006-10-31  Vincent Celier  <celier@adacore.com>
10784
10785         * gnatlink.adb (Gnatlink): If gcc is not called with -shared-libgcc,
10786         call it with -static-libgcc, as there are some platforms, such as
10787         Darwin, where one of these two switches is compulsory to link.
10788
10789 2006-10-31  Vincent Celier  <celier@adacore.com>
10790
10791         * gnatls.adb: Take into account GPR_PROJECT_PATH, when it is defined,
10792         instead of ADA_PROJECT_PATH, for the project path.
10793         (Gnatls): When displaying the project path directories, use host dir
10794         specs.
10795
10796         * prj-ext.adb (Prj.Ext elaboration): On VMS, only expand relative path
10797         names in the project path, as absolute paths may correspond to
10798         multi-valued VMS logical names.
10799
10800 2006-10-31  Vincent Celier  <celier@adacore.com>
10801
10802         * g-os_lib.ads, g-os_lib.adb (Locate_Exec_On_Path): Always return an
10803         absolute path name.
10804         (Locate_Regular_File): Ditto
10805         (Change_Dir): Remove, no longer used
10806         (Normalize_Pathname): Do not use Change_Dir to get the drive letter
10807         on Windows. Get it calling Get_Current_Dir.
10808         (OpenVMS): Remove imported boolean, no longer needed.
10809         (Normalize_Pathname)[VMS]: Do not resolve directory names.
10810         (Pid_To_Integer): New function to convert a Process_Id to  Integer
10811
10812 2006-10-31  Thomas Quinot  <quinot@adacore.com>
10813
10814         * g-socket.ads, g-socket.adb (Close_Selector): Once the signalling
10815         sockets are closed, reset the R_Sig_Socket and W_Sig_Socket components
10816         to No_Socket.
10817         (Selector_Type): Add default value of No_Socket for R_Sig_Socket and
10818         W_Sig_Socket.
10819
10820 2006-10-31  Robert Dewar  <dewar@adacore.com>
10821
10822         * g-speche.ads, g-speche.adb: Add special case to recognize misspelling
10823         initial letter o as a zero.
10824
10825 2006-10-31  Robert Dewar  <dewar@adacore.com>
10826
10827         * g-spipat.adb (S_To_PE): Remove incorrect use of 0 instead of Str'First
10828
10829 2006-10-31  Robert Dewar  <dewar@adacore.com>
10830
10831         * layout.adb (Layout_Record_Type): Deal with non-static subtypes of
10832         variant records
10833         (Layout_Variant_Record): Retrieve the discriminants from the entity
10834         rather than from the type definition, because in the case of a full
10835         type for a private type we need to take the discriminants from the
10836         partial view.
10837         (Layout_Component_List): When applying the Max operator to variants with
10838         a nonstatic size, check whether either operand is static and scale that
10839         operand from bits to storage units before applying Max.
10840         (Layout_Type): In VMS, if a C-convention access type has no explicit
10841         size clause (and does not inherit one in the case of a derived type),
10842         then the size is reset to 32 from 64.
10843
10844 2006-10-31  Vincent Celier  <celier@adacore.com>
10845
10846         * lib-load.adb (Load_Unit): Skip the test for a unit not found when
10847         its file has already been loaded, according to the unit being loaded,
10848         not to the current value of Multiple_Unit_Index.
10849
10850 2006-10-31  Thomas Quinot  <quinot@adacore.com>
10851             Eric Botcazou  <ebotcazou@adacore.com>
10852             Arnaud Charlet  <charlet@adacore.com>
10853
10854         * Makefile.in: Set EH mechanism to ZCX for FreeBSD.
10855         (NO_REORDER_ADAFLAGS): New var defined to -fno-toplevel-reorder if
10856         possible.
10857         (a-except.o): Pass it to the compiler.
10858         (gnatlib-shared-vms): Removed -nostartfiles switch in link step.
10859         (LIBGNAT_TARGET_PAIRS for Windows): Avoid the use of the specific
10860         a-calend-mingw.adb version.
10861
10862         * Makefile.rtl: Added s-dsaser.
10863         Add object entries for Ada.Calendar.[Arithmetic/Formatting/Time_Zones]
10864         (GNATRTL_TASKING_OBJS): Add Ada.Dispatching and
10865         Ada.Dispatching.Round_Robin.
10866         Added new unit Ada.Containers.Restricted_Bounded_Doubly_Linked_Lists
10867
10868         * Make-lang.in: Remove all references to gt-ada-decl.h.
10869         Add concatenation (s-strops/s-sopco3/s-sopco4/s-sopco5) to compiler
10870         sources.
10871         Add dependency on ada/s-restri.o for GNAT1 and GNATBIND objects.
10872         Update dependencies.
10873
10874         * system-freebsd-x86.ads: Make ZCX the default EH mechanism for FreeBSD
10875
10876 2006-10-31  Vincent Celier  <celier@adacore.com>
10877
10878         * mlib-utl.adb (Initialized): Remove, no longer used
10879         (Initialize): Remove, no longer used
10880         (Ar): If Ar_Exec is null, get the location of the archive builder and,
10881         if there is one, the archive indexer. Fail if the archive builder cannot
10882         be found.
10883         (Gcc): If the driver path is unknown, get it. Fail if the driver cannot
10884         be found.
10885
10886 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
10887
10888         * sem_ch10.ads, sem_ch10.adb (Check_Redundant_Withs,
10889         Process_Body_Clauses): If the context of a body includes a use clause
10890         for P.Q then a with_clause for P in the same body is not redundant,
10891         even if the spec also has a with_clause on P.
10892         Add missing continuation mark to error msg
10893         (Build_Limited_Views): A limited view of a type is tagged if its
10894         declaration includes a record extension.
10895         (Analyze_Proper_Body): Set Corresponding_Stub field in N_Subunit
10896         node, even if the subunit has errors. This avoids malfunction by
10897         Lib.Check_Same_Extended_Unit in the presence of syntax errors.
10898         (Analyze_Compilation_Unit): Add circuit to make sure we get proper
10899         generation of obsolescent messages for with statements (cannot do
10900         this too early, or we cannot implement avoiding the messages in the
10901         case of obsolescent units withing obsolescent units).
10902         (Install_Siblings): If the with_clause is on a remote descendant of
10903         an ancestor of the current compilation unit, find whether there is
10904         a sibling child unit that is immediately visible.
10905         (Remove_Private_With_Clauses): New procedure, invoked after completing
10906         the analysis of the private part of a nested package, to remove from
10907         visibility the private with_clauses of the enclosing package
10908         declaration.
10909         (Analyze_With_Clause): Remove Check_Obsolescent call, this checking is
10910         now centralized in Generate_Reference.
10911         (Install_Limited_Context_Clauses): Remove superfluous error
10912         message associated with unlimited view visible through use
10913         and renamings. In addition, at the point in which the error
10914         is reported, we add the backslash to the text of the error
10915         to ensure that it is reported as a single error message.
10916         Use new // insertion for some continuation messages
10917         (Expand_Limited_With_Clause): Use copy of name rather than name itself,
10918         to create implicit with_clause for parent unit mentioned in original
10919         limited_with_clause.
10920         (Install_Limited_With_Unit): Set entity of parent identifiers if the
10921         unit is a child unit. For ASIS queries.
10922         (Analyze_Subunit): If the subunit appears within a child unit, make all
10923         ancestor child units directly visible again.
10924
10925 2006-10-31  Robert Dewar  <dewar@adacore.com>
10926
10927         * par-ch10.adb (P_Context_Clause): Minor error message fix
10928
10929 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
10930             Javier Miranda  <miranda@adacore.com>
10931
10932         * par-ch12.adb: Grammar update and cleanup.
10933         (P_Formal_Type_Definition, P_Formal_Derived_Type_Definition): Add
10934         support for synchronized derived type definitions.
10935         Add the new actual Abstract_Present to every call to
10936         P_Interface_Type_Definition.
10937         (P_Formal_Object_Declarations): Update grammar rules. Handle parsing of
10938         a formal object declaration with an access definition or a subtype mark
10939         with a null exclusion.
10940         (P_Generic_Association): Handle association with box, and others_choice
10941         with box, to support Ada 2005 partially parametrized formal packages.
10942
10943 2006-10-31  Robert Dewar  <dewar@adacore.com>
10944             Javier Miranda  <miranda@adacore.com>
10945
10946         * par-ch3.adb (P_Range_Or_Subtype_Mark): Check for bad parentheses
10947         (P_Type_Declaration): Remove barrier against the reserved word "limited"
10948         after "abstract" to give support to the new syntax of AARM 3.4 (2/2).
10949         (P_Type_Declaration): Minor code cleanup. Add support for synchronized
10950         private extensions.
10951         (P_Type_Declaration): Add the new actual Abstract_Present to every call
10952         to P_Interface_Type_Definition.
10953         (P_Interface_Type_Definition): Addition of one formal to report an error
10954         if the reserved word abstract has been previously found.
10955         (P_Identifier_Declarations): Update grammar rules. Handle parsing of an
10956         object renaming declaration with an access definition or subtype mark
10957         with a possible null exclusion.
10958
10959         * par-ch9.adb: Minor error msg fix
10960
10961         * par-load.adb: Add missing continuation mark to error msg
10962
10963         * par-tchk.adb: (Wrong_Token): Code cleanup, use concatenation
10964
10965 2006-10-31  Vincent Celier  <celier@adacore.com>
10966
10967         * prj-dect.adb (Parse_Attribute_Declaration): Do not issue warning for
10968         unknown attribute in unknown package or in package that does not need
10969         to be checked.
10970         (Parse_Package_Declaration): Do not issue warning for unknown package in
10971         quiet output.
10972
10973 2006-10-31  Vincent Celier  <celier@adacore.com>
10974
10975         * prj-makr.adb (Packages_To_Check_By_Gnatname): New global constant
10976         (Make): Call Parse with Packages_To_Check_By_Gnatname for parameter
10977         Packages_To_Check.
10978
10979 2006-10-31  Vincent Celier  <celier@adacore.com>
10980
10981         * prj-nmsc.adb (Check_Ada_Name): For children of package A, G, I and S
10982         on VMS, change "__" to '.' before checking the name.
10983         (Record_Ada_Source): Always add the source file name in the list of
10984         of sources, even if it is not the first time, as it is for another
10985         source index.
10986         (Get_Unit): Replace both '_' (after 'a', 'g', 'i' or 's') with a single
10987         dot, instead of replacing only the first '_'.
10988
10989         * prj-part.adb (Parse): Convert project file path to canonical form
10990
10991         * prj-proc.adb (Recursive_Process): Make sure that, when a project is
10992         extended, the project id of the project extending it is recorded in its
10993         data, even when it has already been processed as an imported project.
10994
10995 2006-10-31  Robert Dewar  <dewar@adacore.com>
10996
10997         * repinfo.adb (List_Entities): Don't list entities from renaming
10998         declarations.
10999
11000 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
11001             Robert Dewar  <dewar@adacore.com>
11002
11003         * restrict.ads, restrict.adb (Restriction_Active): Now returns False if
11004         only a restriction warning is active for the given restriction. This is
11005         desirable because we do not want to modify code in the case where only
11006         a warning is set.
11007         (Set_Profile_Restrictions): Make sure that a Profile_Warnings never
11008         causes overriding of real restrictions.
11009         Take advantage of new No_Restrictions constant.
11010
11011         * raise.h: (__gnat_set_globals): Change profile.
11012
11013 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
11014
11015         * rtsfind.adb: Remove s-polint from comment as it exists no more.
11016
11017         * rtsfind.ads: 
11018         Move entity RE_Get_Active_Partition_Id to package System.DSA_Services.
11019         Move all the entities in obsolete package System.PolyORB_Interface to
11020         System.Partition_Interface.
11021         (RE_Storage_Size): New function in System.Tasking.
11022         (RE_Get_Ceiling): New entity.
11023         (RE_Set_Ceiling): New entity.
11024         (RO_PE_Get_Ceiling): New entity.
11025         (RO_RE_Set_Ceiling): New entity.
11026         (Inherit_CPP_DT): New entity
11027
11028 2006-10-31  Robert Dewar  <dewar@adacore.com>
11029
11030         * scng.adb (Scan, case of numeric literal): Better msg for identifier
11031         starting with a digit.
11032
11033 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
11034             Thomas Quinot  <quinot@adacore.com>
11035             Javier Miranda  <miranda@adacore.com>
11036             Gary Dismukes  <dismukes@adacore.com>
11037
11038         * sem_attr.ads, sem_attr.adb (Analyze_Access_Attribute): Diagnose
11039         properly an attempt to apply Unchecked_Access to a protected operation.
11040         (OK_Self_Reference): New subprogram to check the legality of an access
11041         attribute whose prefix is the type of an enclosing aggregate.
11042         Generalizes previous mechanism to handle attribute references nested
11043         arbitrarily deep within the aggregate.
11044         (Analyze_Access_Attribute): An access attribute whose prefix is a type
11045         can appear in an aggregate if this is a default-initialized aggregate
11046         for a self-referential type.
11047         (Resolve_Attribute, case Access): Ditto.
11048         Add support for new implementation defined attribute Stub_Type.
11049         (Eval_Attribute, case Attribute_Stub_Type): New case.
11050         (Analyze_Attribute, case Attribute_Stub_Type): New case.
11051         (Stream_Attribute_Available): Implement using new subprogram from
11052         sem_cat, Has_Stream_Attribute_Definition, instead of incorrect
11053         Has_Specified_Stream_Attribute flag.
11054         Disallow Storage_Size and Storage_Pool for access to subprogram
11055         (Resolve_Attribute, case 'Access et al): Take into account anonymous
11056         access types of return subtypes in extended return statements. Remove
11057         accessibility checks on anonymous access types when Unchecked_Access is
11058         used.
11059         (Analyze_Attribute): Add support for the use of 'Class to convert
11060         a class-wide interface to a tagged type.
11061         Add support for the attribute Priority.
11062         (Resolve_Attribute, case Attribute_Access): For Ada_05, add test for
11063         whether the designated type is discriminated with a constrained partial
11064         view and require static matching in that case.
11065         Add local variable Des_Btyp. The Designated_Type
11066         of an access to incomplete subtype is either its non-limited view if
11067         coming from a limited with or its etype if regular incomplete subtype.
11068
11069         * sem_cat.ads, sem_cat.adb (Validate_Remote_Access_To_Class_Wide_Type):
11070         Fix predicate to identify and allow cases of (expander-generated)
11071         references to tag of designated object of a RACW.
11072         (Validate_Static_Object_Name): In Ada 2005, a formal object is
11073         non-static, and therefore cannot appear as a primary in a preelaborable
11074         package.
11075         (Has_Stream_Attribute_Definition): New subprogram, abstracted from
11076         Has_Read_Write_Attributes.
11077         (Has_Read_Write_Attributes): Reimplement in termes of
11078         Has_Stream_Attribute_Definition.
11079         (Missing_Read_Write_Attributes): When checking component types in a
11080         record, unconditionally call Missing_Read_Write_Attributes recursively
11081         (remove guard checking for Is_Record_Type / Is_Access_Type).
11082
11083 2006-10-31  Robert Dewar  <dewar@adacore.com>
11084
11085         * sem_ch11.adb (Analyze_Handled_Statements): Move final test for
11086         useless assignments here and conditionalize it on absence of exception
11087         handlers.
11088         (Analyze_Exception_Handlers): Small code reorganization of error
11089         detection code, for new handling of formal packages.
11090
11091 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
11092             Hristian Kirtchev  <kirtchev@adacore.com>
11093
11094         * sem_ch12.ads, sem_ch12.adb (Save_References): If node is an operator
11095         that has been constant-folded, preserve information of original tree,
11096         for ASIS uses.
11097         (Analyze_Formal_Derived_Type): Set the limited present flag of the newly
11098         generated private extension declaration if the formal derived type is
11099         synchronized. Carry synchronized present over to the generated private
11100         extension.
11101         (Validate_Derived_Type_Instance): Ensure that the actual of a
11102         synchronized formal derived type is a synchronized tagged type.
11103         (Instantiate_Formal_Package): When creating the instantiation used to
11104         validate the actual package of a formal declared without a box, check
11105         whether the formal itself depends on a prior actual.
11106         (Instantiate_Formal_Subprogram): Create new entities for the defining
11107         identifiers of the formals in the renaming declaration, for ASIS use.
11108         (Instantiate_Formal_Subprogram, Instantiate_Formal_Type): When creating
11109         a renaming declaration or a subtype declaration for an actual in an
11110         instance, capture location information of declaration in generic, for
11111         ASIS use.
11112         (Instantiate_Formal_Package): Add comments on needed additional tests.
11113         AI-317 (partial parametrization) is fully implemented.
11114         (Validate_Private_Type_Instance): Add check for actual which
11115         must have preelaborable initialization
11116         Use new // insertion for some continuation messages
11117         (Analyze_Formal_Object_Declaration): Change usage of Expression to
11118         Default_Expression. Add type retrieval when the declaration has an
11119         access definition. Update premature usage of incomplete type check.
11120         (Check_Access_Definition): New subsidiary routine. Check whether the
11121         current compilation version is Ada 05 and the supplied node has an
11122         access definition.
11123         (Instantiate object): Alphabetize local variables. Handle the creation
11124         of new renaming declarations with respect to the kind of definition
11125         used - either an access definition or a subtype mark. Guard against
11126         unnecessary error message in the context of anonymous access types after
11127         they have been resolved. Add check for required null exclusion in a
11128         formal object declaration.
11129         (Switch_View): A private subtype of a non-private type needs to be
11130         switched (the base type can have been switched without its private
11131         dependents because of the last branch of Check_Private_View.
11132         (Check_Private_View): Do not recompute Base_Type (T), instead use cached
11133         value from BT.
11134         (Instantiate_Type): Emit an error message whenever a class-wide type of
11135         a tagged incomplete type is used as a generic actual.
11136         (Find_Actual_Type): Extend routine to handle a component type in a child
11137         unit that is imported from a formal package in a parent.
11138         (Validate_Derived_Type_Instance): Check that analyzed formal and actual
11139         agree on constrainedness, rather than checking against ultimate ancestor
11140         (Instantiate_Subprogram_Body): Create a cross-reference link to the
11141         generic body, for navigation purposes.
11142
11143 2006-10-31  Robert Dewar  <dewar@adacore.com>
11144             Thomas Quinot  <quinot@adacore.com>
11145
11146         * sem_ch13.adb: Storage pool cannot be given for access to subprogram
11147         type.
11148         (New_Stream_Subprogram): When processing an attribute definition clause
11149         for a stream-oriented subprogram, record an entity node occurring at
11150         the point of clause to use for checking the visibility of the clause,
11151         as defined by 8.3(23) as amended by AI-195.
11152         (New_Stream_Subprogram): New procedure, factoring behaviour from both
11153          New_Stream_Function and New_Stream_Procedure.
11154         (New_Stream_Function, New_Stream_Procedure): Removed.
11155         (Analyze_Attribute_Definition_Clause, case Address): Check new
11156         Alignment_Check check
11157
11158 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
11159             Javier Miranda  <miranda@adacore.com>
11160             Robert Dewar  <dewar@adacore.com>
11161
11162         * sem_ch4.adb (Try_Primitive_Operation): Code cleanup to ensure that we
11163         generate the same errors compiling under -gnatc.
11164         (Try_Object_Operation): If no candidate interpretation succeeds, but
11165         there is at least one primitive operation with the right name, report
11166         error in call rather than on a malformed selected component.
11167         (Analyze_Selected_Component): If the prefix is an incomplete type from
11168         a limited view, and the full view is available, use the full view to
11169         determine whether this is a prefixed call to a primitive operation.
11170         (Operator_Check): Verify that a candidate interpretation is a binary
11171         operation before checking the type of its second formal.
11172         (Analyze_Call): Add additional warnings for function call contexts not
11173         yet supported.
11174         (Analyze_Allocator): Move the check for "initialization not allowed for
11175         limited types" after analyzing the expression. This is necessary,
11176         because OK_For_Limited_Init looks at the structure of the expression.
11177         Before analysis, we don't necessarily know what sort of expression it
11178         is. For example, we don't know whether F(X) is a function call or an
11179         indexed component; the former is legal in Ada 2005; the latter is not.
11180         (Analyze_Allocator): Correct code for AI-287 -- extension aggregates
11181         were missing. We also didn't handle qualified expressions. Now also
11182         allow function calls. Use new common routine OK_For_Limited_Init.
11183         (Analyze_Type_Conversion): Do not perform some legality checks in an
11184         instance, because the error message will be redundant or spurious.
11185         (Analyze_Overloaded_Selected_Component): Do not do style check when
11186         setting an entity, since we do not know it is the right entity yet.
11187         (Analyze_Selected_Component): Move Generate_Reference call to Sem_Res
11188         (Analyze_Overloaded_Selected_Component): Same change
11189         (Analyze_Selected_Component): Remove unnecessary prefix type retrieval
11190         since regular incomplete subtypes are transformed into corresponding
11191         subtypes of their full views.
11192         (Complete_Object_Operation): Treat name of transformed subprogram call
11193         as coming from source, for browsing purposes.
11194         (Try_Primitive_Operation): If formal is an access parameter, compare
11195         with base type of object to determine whether it is a primitive
11196         operation.
11197         (Operator_Check): If no interpretation of the operator matches, check
11198         whether a use clause on any candidate might make the operation legal.
11199         (Try_Class_Wide_Operation): Check whether the first parameter is an
11200         access type whose designated type is class-wide.
11201
11202 2006-10-31  Robert Dewar  <dewar@adacore.com>
11203             Ed Schonberg  <schonberg@adacore.com>
11204             Gary Dismukes  <dismukes@adacore.com>
11205
11206         * sem_ch5.ads, sem_ch5.adb (Analyze_Loop_Statement): Add circuit to
11207         warn on infinite loops.
11208         Add \\ to some continuation messages
11209         (Analyze_Assignment_Statement): Call Warn_On_Useless_Assignment
11210         (Process_Bounds): If the bounds are integer literals that result from
11211         constant-folding, and they carry a user-defined type, preserve that type
11212         rather than treating this as an integer range.
11213         (Analyze_Exit_Statement): Test for E_Return_Statement in legality check.
11214         (Analyze_Goto_Statement): Test for E_Return_Stateemnt in legality check.
11215         (Analyze_Assignment_Statement): Add call to Check_Elab_Assign for
11216         left hand side of assignment.
11217         (Analyze_Assignment): Add suport to manage assigments to the attribute
11218         priority of a protected object.
11219         (Check_Possible_Current_Value_Condition): Allow fully qualified names
11220         not just identifiers.
11221         (Check_Possible_Current_Value_Condition): Acquire left operand of AND
11222         or AND THEN for possible tracking.
11223         (Analyze_Iteration_Scheme): Check for setting Current_Value for the
11224         case of while loops so we can track values in the loop body.
11225
11226 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
11227             Hristian Kirtchev  <kirtchev@adacore.com>
11228             Bob Duff  <duff@adacore.com>
11229
11230         * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Declaration): A null
11231         procedure cannot be a protected operation (it is a basic_declaration,
11232         not a subprogram_declaration).
11233         (Check_Overriding_Indicator): Rename formal Does_Override to Overridden_
11234         Subp. Add logic for entry processing.
11235         (Check_Synchronized_Overriding): New procedure in New_Overloaded_Entity.
11236         Determine whether an entry or subprogram of a protected or task type
11237         override an inherited primitive of an implemented interface.
11238         (New_Overloaded_Entity): Add calls to Check_Synchronized_Overriding.
11239         Update the actual used in calls to Check_Overriding_Indicator.
11240         (Analyze_Generic_Subprogram_Body): If the subprogram is a child unit,
11241         generate the proper reference to the parent unit, for cross-reference.
11242         (Analyze_Subprogram_Declaration): Protect Is_Controlling_Formal with
11243         Is_Formal.
11244         Add -gnatd.l --Use Ada 95 semantics for limited function returns,
11245         (Add_Extra_Formal): Revise procedure to allow passing in associated
11246         entity, scope, and name suffix, and handle setting of the new
11247         Extra_Formals field.
11248         (Create_Extra_Formals): Change existing calls to Add_Extra_Formal to
11249         pass new parameters. Add support for adding the new extra access formal
11250         for functions whose calls are treated as build-in-place.
11251         (Analyze_A_Return_Statement): Correct casing in error message.
11252         Move Pop_Scope to after Analyze_Function_Return, because an extended
11253         return statement really is a full-fledged scope. Otherwise, visibility
11254         doesn't work right. Correct use of "\" for continuation messages.
11255         (Analyze_Function_Return): Call Analyze on the Obj_Decl, rather than
11256         evilly trying to call Analyze_Object_Declaration directly. Otherwise,
11257         the node doesn't get properly marked as analyzed.
11258         (Analyze_Subprogram_Body): If subprogram is a function that returns
11259         an anonymous access type that denotes a task, build a Master Entity
11260         for it.
11261         (Analyze_Return_Type): Add call to Null_Exclusion_Static_Checks. Verify
11262         proper usage of null exclusion in a result definition.
11263         (Process_Formals): Code cleanup and new error message.
11264         (Process_Formals): Detect incorrect application of null exclusion to
11265         non-access types.
11266         (Conforming_Types): Handle conformance between [sub]types and itypes
11267          generated for entities that have null exclusions applied to them.
11268         (Maybe_Primitive_Operation): Add an additional type retrieval when the
11269          base type is an access subtype. This case arrises with null exclusions.
11270         (New_Overloaded_Entity): Do not remove the overriden entity from the
11271         homonym chain if it corresponds with an abstract interface primitive.
11272         (Process_Formals): Replace membership test agains Incomplete_Kind with a
11273         call to the synthesized predicate Is_Incomplete_Type.
11274         (Analyze_Subprogram_Body): Check wrong placement of abstract interface
11275         primitives.
11276         (Analyze_Subprogram_Declaration): Check that abstract interface
11277         primitives are abstract or null.
11278         (Analyze_Subprogram_Specification): Remove previous check for abstract
11279         interfaces because it was not complete.
11280         (Has_Interface_Formals): Removed.
11281
11282 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
11283             Javier Miranda  <miranda@adacore.com>
11284
11285         * sem_ch7.adb (Check_Anonymous_Access_Types): New procedure, subsidiary
11286         of Analyze_Package_Body, to create Itype references for anonymous
11287         access types created in the package declaration, whose designated types
11288         may have only a limited view.
11289         (Analyze_Package_Specification): For the private part of a nested
11290         package, install private_with_clauses of enclosing compilation unit if
11291         we are in its visible part.
11292         (Declare_Inherited_Private_Subprograms): Complete barrier
11293         to ensure that the primitive operation has an alias to some parent
11294         primitive. This is now required because, after the changes done for the
11295         implementation of abstract interfaces, the contents of the list of
11296         primitives has entities whose alias attribute references entities of
11297         such list of primitives.
11298         (Analyze_Package_Specification): Simplify code that handles parent units
11299         of instances and formal packages.
11300         (Uninstall_Declarations): Check the convention consistency among
11301         primitive overriding operations of a tagged record type.
11302
11303 2006-10-31  Robert Dewar  <dewar@adacore.com>
11304             Hristian Kirtchev  <kirtchev@adacore.com>
11305             Javier Miranda  <miranda@adacore.com>
11306             Ed Schonberg  <schonberg@adacore.com>
11307
11308         * sem_ch8.adb: Minor error msg rewording
11309         (Undefined): When checking for misspellings, invert arguments (to get
11310         expected and found set right)
11311         (Analyze_Subprogram_Renaming): Propagate Is_Pure, Is_Preelaborated
11312         (Analyze_Generic_Renaming): Same fix
11313         (Use_One_Package): Do not take into account the internal entities of
11314         abstract interfaces during the analysis of entities that are marked
11315         as potentially use-visible.
11316         (Find_Type): Handle the case of an attribute reference for
11317         implementation defined attribute Stub_Type (simply let the analysis of
11318         the attribute reference rewrite it).
11319         (Use_One_Type, End_Use_Type): Reject a reference to a limited view of a
11320         type that appears in a Use_Type clause.
11321         (Analyze_Object_Renaming): Add support for renaming of the Priority
11322         attribute.
11323         (Find_Type): In Ada 2005, a task type can be used within its own body,
11324         when it appears in an access definition.
11325         (Analyze_Object_Renaming): Remove warning on null_exclusion.
11326         (Analyze_Object_Renaming): Introduce checks for required null exclusion
11327          in a formal object declaration or in a subtype declaration.
11328         (Analyze_Subprogram_Renaming): Add call to Check_Null_Exclusion.
11329         (Check_Null_Exclusion): New local routine to
11330         Analyze_Subprogram_Renaming. Check whether the formals and return
11331         profile of a renamed subprogram have required null exclusions when
11332         their counterparts of the renaming already impose them.
11333         (In_Generic_Scope): New local routine to Analyze_Object_Renaming.
11334         Determine whether an entity is inside a generic scope.
11335         (In_Open_Scope): First pass of documentation update.
11336         (Find_Expanded_Name): Add support for shadow entities associated with
11337         limited withed packages. This is required to handle nested packages.
11338         (Analyze_Package_Renaming): Remove the restriction imposed by AI-217
11339         that makes a renaming of a limited withed package illegal.
11340
11341 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
11342             Ed Schonberg  <schonberg@adacore.com>
11343
11344         * sem_ch9.adb (Analyze_Protected_Definition): Remove call to
11345         Check_Overriding_Indicator.
11346         (Analyze_Task_Definition): Ditto.
11347         (Analyze_Protected_Type, Analyze_Task_Type): Code cleanup.
11348         (Check_Overriding_Indicator): To find overridden interface operation,
11349         examine only homonyms that have an explicit subprogram declaration, not
11350         inherited operations created by an unrelated type derivation.
11351         (Check_Overriding_Indicator): When checking for the presence of "null"
11352         in a procedure, ensure that the queried node is a procedure
11353         specification.
11354         (Matches_Prefixed_View_Profile): Add mechanism to retrieve the parameter
11355         type when the formal is an access to variable.
11356         (Analyze_Protected_Type): Add check for Preelaborable_Initialization
11357         (Analyze_Task_Type): Same addition
11358         (Analyze_Entry_Declaration): Call Generate_Reference_To_Formals, to
11359         provide navigation capabilities for entries.
11360
11361 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
11362             Ed Schonberg  <schonberg@adacore.com>
11363             Javier Miranda  <miranda@adacore.com>
11364             Gary Dismukes  <dismukes@adacore.com>
11365
11366         * sem_disp.adb (Check_Dispatching_Operation): Do not flag subprograms
11367         inherited from an interface ancestor by another interface in the
11368         context of an instance as 'late'.
11369         (Is_Tag_Indeterminate, Propagate_Tag): Handle properly the dereference
11370         of a call to a function that dispatches on access result.
11371         (Check_Dispatching_Operation): In case of late overriding of a primitive
11372         that covers abstract interface subprograms we register it in all the
11373         secondary dispatch tables associated with abstract interfaces.
11374         (Check_Dispatching_Call): Add check that a dispatching call is not made
11375         to a function with a controlling result of a limited type. This is a
11376         current implementation restriction.
11377         (Check_Controlling_Formal): Remove bogus checks for E.2.2(14).
11378         (Check_Dispatching_Operation): Do no emit a warning if the controlling
11379         argument is an interface type that is a generic formal.
11380         (Is_Interface_Subprogram): Removed.
11381         (Check_Dispatching_Operation): If the subprogram is not a dispatching
11382         operation, check the formals to handle the case in which it is
11383         associated with an abstract interface type.
11384
11385 2006-10-31  Robert Dewar  <dewar@adacore.com>
11386             Ed Schonberg  <schonberg@adacore.com>
11387
11388         * sem_elab.ads, sem_elab.adb (Check_Elab_Assign): New procedure
11389         Add new calls to this procedure during traversal
11390         (Activate_Elaborate_All_Desirable): Do not set elaboration flag on
11391         another unit if expansion is disabled.
11392
11393 2006-10-31  Robert Dewar  <dewar@adacore.com>
11394
11395         * sem_eval.adb (Compile_Time_Compare): Make use of information from
11396         Current_Value in the conditional case, to evaluate additional
11397         comparisons at compile time.
11398
11399 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
11400             Hristian Kirtchev  <kirtchev@adacore.com>
11401             Javier Miranda  <miranda@adacore.com>
11402
11403         * sem_type.adb (Add_One_Interp): If node is an indirect call, preserve
11404         subprogram type to provide better diagnostics in case of ambiguity.
11405         (Covers): Handle coverage of formal and actual anonymous access types in
11406         the context of generic instantiation.
11407         (Covers/Interface_Present_In_Ancestors): Use the base type to manage
11408         abstract interface types; this is required to handle concurrent types
11409         with discriminants and abstract interface types.
11410         (Covers): Include type coverage of both regular incomplete subtypes and
11411         incomplete subtypes of incomplete type visibles through a limited with
11412         clause.
11413
11414 2006-10-31  Robert Dewar  <dewar@adacore.com>
11415             Hristian Kirtchev  <kirtchev@adacore.com>
11416             Ed Schonberg  <schonberg@adacore.com>
11417
11418         * sem_util.ads, sem_util.adb (Enter_Name): Exclude -gnatwh warning
11419         messages for entities in packages which are not used.
11420         (Collect_Synchronized_Interfaces): New procedure.
11421         (Overrides_Synchronized_Primitive): New function.
11422         (Denotes_Discriminant): Extend predicate to apply to task types.
11423         Add missing continuation marks in error msgs
11424         (Unqualify): New function for removing zero or more levels of
11425         qualification from an expression. There are numerous places where this
11426         ought to be used, but we currently only deal properly with zero or one
11427         level.
11428         (In_Instance); The analysis of the actuals in the instantiation of a
11429         child unit is not within an instantiation, even though the parent
11430         instance is on the scope stack.
11431         (Safe_To_Capture_Value): Exclude the case of variables that are
11432         renamings.
11433         (Check_Obsolescent): Removed
11434         (Is_Aliased_View): A reference to an enclosing instance in an aggregate
11435         is an aliased view, even when rewritten as a reference to the target
11436         object in an assignment.
11437         (Get_Subprogram_Entity): New function
11438         (Known_To_Be_Assigned): New function
11439         (Type_Access_Level): Compute properly the access level of a return
11440         subtype that is an anonymous access type.
11441         (Explain_Limited_Type): Correct use of "\" for continuation messages.
11442         (Is_Transfer): The new extended_return_statement causes a transfer of
11443         control.
11444         (Has_Preelaborable_Initialization): New function
11445         (Has_Null_Exclusion): New function. Given a node N, determine whether it
11446         has a null exclusion depending on its Nkind.
11447         Change Is_Lvalue to May_Be_Lvalue
11448         (May_Be_Lvalue): Extensive additional code to deal with subprogram
11449         arguments (IN parameters are not Lvalues, IN OUT parameters are).
11450         (Safe_To_Capture_Value): Extend functionality so it can be used for
11451         the current value condition case.
11452         (Has_Compatible_Alignment): New function
11453         (Is_Dependent_Component_Of_Mutable_Object): Revise the tests for mutable
11454         objects to handle the Ada 2005 case, where aliasedness no longer implies
11455         that the object is constrained. In particular, for dereferenced names,
11456         the designated object must be assumed to be unconstrained.
11457         (Kill_Current_Values): Properly deal with the case where we encounter
11458         a loop in the scope chain.
11459         (Safe_To_Capture_Value): Do not let a loop stop us from capturing
11460         a value.
11461         (Compile_Time_Constraint_Error): Improve error message in error case
11462
11463         * exp_ch13.adb (Expand_N_Freeze_Entity): Remove the freezing node
11464         associated with entities of abstract interface primitives.
11465         Call Apply_Address_Clause_Check instead of Apply_Alignment_Check
11466
11467 2006-10-31  Robert Dewar  <dewar@adacore.com>
11468
11469         * s-osinte-tru64.adb: 
11470         Mark Asm statements Volatile to prevent warnings (seems a
11471         reasonable change anyway)
11472         Fixes new warnings
11473
11474         * s-mastop-irix.adb: Add Volatile to Asm statements
11475         Suppresses warning, and seems appropriate in any case
11476
11477         * s-osinte-vms.adb: Add Volatile to Asm statement
11478
11479         * s-vaflop-vms-alpha.adb: Add Volatile to Asm statements
11480
11481         * exp_code.ads, exp_code.adb (Asm_Input_Value): Note that Error can be
11482         returned.
11483         Add call to Check_Code_Statement
11484
11485 2006-10-31  Robert Dewar  <dewar@adacore.com>
11486             Ed Schonberg  <schonberg@adacore.com>
11487             Bob Duff  <duff@adacore.com>
11488
11489         * sinfo.ads, sinfo.adb (Set_Synchronized_Present,
11490         Synchronized_Present): Add Formal_Derived_Type_Definition and
11491         Private_Extension_Declaration to the list of assertions.
11492         (Is_Entry_Barrier_Function): New flag
11493         (Has_Self_Reference): New flag on aggregates, to indicate that they
11494         contain a reference to the enclosing type, inserted through a default
11495         initialization.
11496         (Next_Rep_Item): Move from Node4 to Node5.
11497         (Entity): Add this field for N_Attribute_Definition_Clause.
11498         (Comes_From_Extended_Return_Statement): New flag on N_Return_Statement
11499         (N_Return_Object_Declaration): Remove this node kind. We now use
11500         N_Object_Declaration instead.
11501         (Actual_Designated_Subtype): Move to a different place to make room in
11502         N_Extended_Return_Statement.
11503         (Procedure_To_Call): Move to a different place to make room in
11504         N_Extended_Return_Statement.
11505         (Return_Type): Removed this field to make room in return statements
11506         (both kinds).
11507         (Return_Statement_Entity): New field in return statements, in part to
11508         replace Return_Type, and in part to support the fact that return
11509         statements are now pushed on the scope stack during semantic analysis.
11510         (Return_Object_Declarations): New field to support extended return
11511         statements.
11512         (N_Extended_Return_Statement): New node for extended_return_statement
11513         nonterminal.
11514         (N_Return_Object_Declaration): New node for part of
11515         extended_return_statement nonterminal. Needed because all the necessary
11516         fields won't fit in N_Extended_Return_Statement.
11517         Generic_associations now carry the Box_Present flag, to indicate a
11518         default for an actual in a partially parametrized formal package.
11519
11520         * snames.h, snames.ads, snames.adb: Add definition for Validity_Check
11521         (Preset_Names): Add entries for Priority_Specific_Dispatching pragma
11522         and for the new predefined dispatching policies: EDF_Across_Priorities,
11523         Non_Preemptive_Within_Priorities, and Round_Robin_Within_Priorities.
11524         Introduce new name Stub_Type for implementation defined attribute.
11525         Add pragma Preelaborable_Initialization
11526         Add entry for Priority attribute.
11527         Add Pragma_Wide_Character_Encoding
11528         (Get_Convention_Name): Given a convention id, this function returns the
11529         corresponding name id from the names table.
11530
11531 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
11532             Robert Dewar  <dewar@adacore.com>
11533             Bob Duff  <duff@adacore.com>
11534
11535         * sprint.adb (Sprint_Node_Actual, case Parameter_Specification): Do not
11536         print null exclusion twice in the case of an access definition,
11537         Implement new -gnatL switch
11538         Remove N_Return_Object_Declaration. We now use
11539         N_Object_Declaration instead. Implement the case for
11540         N_Extended_Return_Statement. Alphabetize the cases.
11541         Add cases for new nodes N_Extended_Return_Statement and
11542         N_Return_Object_Declaration. The code is not yet written.
11543         Update the output for N_Formal_Object_Declaration
11544         and N_Object_Renaming_Declaration.
11545         (Write_Itype): Account for the case of a modular integer subtype whose
11546         base type is private.
11547
11548 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
11549
11550         * s-restri.ads, s-restri.adb: Mark this package as Preelaborate.
11551         Remove elaboration code, now done in the binder.
11552
11553         * s-rident.ads: Make this unit Preelaborate.
11554         (No_Restrictions): New constant used to clean up code and follow
11555         preelaborate constraints.
11556
11557         * s-stalib.adb: 
11558         Add System.Restrictions dependence, referenced directly from the
11559         binder generated file.
11560
11561 2006-10-31  Gary Dismukes  <dismukes@adacore.com>
11562
11563         * s-scaval.adb (Initialize): Add new Boolean flag AFloat that is set
11564         True when AAMP extended floating-point is in use (48-bit). Change type
11565         ByteLF to ByteLLF, add new array type ByteLF and condition the size of
11566         the two byte array types on AFloat. Change type of IV_Ilf overlay
11567         variable from Byte8 to ByteLF. Add appropriate initializations of
11568         floating-point overlays for AAMP cases.
11569
11570 2006-10-31  Javier Miranda  <miranda@adacore.com>
11571
11572         * s-tpoben.ads, s-tpoben.adb, s-taprob.ads, s-taprob.adb
11573         (Get_Ceiling): New subprogram that returns
11574         the ceiling priority of the protected object.
11575         (Set_Ceiling): New subprogram that sets the new ceiling priority of
11576         the protected object.
11577
11578         * s-tarest.adb: (Create_Restricted_Task): Fix potential CE.
11579
11580         * s-taskin.ads, s-taskin.adb: (Storage_Size): New function.
11581
11582 2006-10-31  Jose Ruiz  <ruiz@adacore.com>
11583
11584         * s-tpobop.adb (Requeue_Call): Introduce a dispatching point when
11585         requeuing to the same protected object to give higher priority tasks
11586         the opportunity to execute.
11587
11588 2006-10-31  Robert Dewar  <dewar@adacore.com>
11589
11590         * widechar.adb (Is_Start_Of_Wide_Char): In case of brackets encoding,
11591         add more precise check for the character sequence that follows '[' to
11592         avoid possible confusion in case if '[' is the last character of a
11593         string literals.
11594         (Scan_Wide): Always allow brackets encoding
11595
11596 2006-10-31  Olivier Hainque  <hainque@adacore.com>
11597
11598         * s-stchop.ads: make this unit preelaborate. This is desirable in
11599         general and made mandatory by the use of this unit by s-taprop which
11600         is itself preelaborate.
11601
11602         * s-stchop-vxworks.adb (Set_Stack_Info, Task_Descriptor type): Add
11603         Td_Events component.
11604
11605 2006-10-31  Vincent Celier  <celier@adacore.com>
11606
11607         * a-dirval-vms.adb (Invalid_Character): Specify that digits are allowed
11608         in file names.
11609
11610 2006-10-31  Vincent Celier  <celier@adacore.com>
11611
11612         * a-direct.ads, a-direct.adb (Search): New procedure in Ada 2005
11613
11614 2006-10-31  Vincent Celier  <celier@adacore.com>
11615
11616         * makegpr.adb (Check_Compilation_Needed): Take into account path names
11617         with spaces.
11618         (Check_Compilation_Needed): When checking a C or C++ source, do not
11619         resolve symbolic links.
11620         (Display_Command): New Boolean parameter Ellipse, defaulted to False.
11621         When not in verbose mode and Ellipse is True, display "..." for the
11622         first argument with Display set to False.
11623         (Build_Global_Archive): Always set Display True for the first object
11624         file. Call Display_Command with Ellipse set to True.
11625
11626 2006-10-31  Matt Heaney  <heaney@adacore.com>
11627
11628         * a-crbtgo.ads: Commented each subprogram
11629
11630         * a-crbtgo.adb: Added reference to book from which algorithms were
11631         adapted.
11632
11633         * a-crbtgk.ads, a-crbtgk.adb (Generic_Insert_Post): pass flag to
11634         indicate which child.
11635         (Generic_Conditional_Insert): changed parameter name from "Success" to
11636         "Inserted".
11637         (Generic_Unconditional_Insert_With_Hint): improved algorithm
11638
11639         * a-coorse.adb (Replace_Element): changed parameter name in call to
11640         conditional insert operation.
11641
11642         * a-convec.adb, a-coinve.adb (Insert): removed obsolete comment
11643
11644         * a-cohama.adb (Iterate): manipulate busy-bit here, instead of in
11645         Generic_Iteration
11646
11647         * a-ciorse.adb (Replace_Element): changed parameter name in call to
11648         conditional insert operation.
11649
11650         * a-cihama.adb (Iterate): manipulate busy-bit here, instead of in
11651         Generic_Iteration.
11652
11653         * a-cidlli.ads, a-cidlli.adb (Splice): Position param is now mode in
11654         instead of mode inout.
11655
11656         * a-chtgop.adb (Adjust): modified comments to reflect current AI-302
11657         draft
11658         (Generic_Read): preserve existing buckets array if possible
11659         (Generic_Write): don't send buckets array length anymore
11660
11661         * a-cdlili.ads, a-cdlili.adb (Splice): Position param is now mode in
11662         instead of mode inout.
11663
11664         * a-cihase.adb (Difference): iterate over smaller of Tgt and Src sets
11665         (Iterate): manipulate busy-bit here, instead of in Generic_Iteration
11666
11667         * a-cohase.adb (Difference): iterate over smaller of Tgt and Src sets
11668         (Iterate): manipulate busy-bit here, instead of in Generic_Iteration
11669         (Replace_Element): local operation is now an instantiation
11670
11671         * a-chtgke.ads, a-chtgke.adb (Generic_Conditional_Insert): manually
11672         check current length.
11673         (Generic_Replace_Element): new operation
11674
11675 2006-10-31  Doug Rupp  <rupp@adacore.com>
11676
11677         * g-trasym-vms-alpha.adb: Dummy_User_Act_Proc: New function.
11678         Call TBK$SYMBOLIZE without omitting parameters.
11679
11680 2006-10-31  Vincent Celier  <celier@adacore.com>
11681
11682         * symbols-processing-vms-ia64.adb,
11683         symbols-processing-vms-alpha.adb (Process): Do not include symbols
11684         that come from generic instantiations in bodies.
11685
11686 2006-10-31  Pat Rogers  <rogers@adacore.com>
11687
11688         * a-rttiev.ads, a-rttiev.adb: 
11689         This is a significant redesign primarily for the sake of automatic
11690         timer task termination but also to fix a design flaw.
11691         Therefore we are now using an RTS lock, instead of a protected
11692         object, to provide mutual exclusion to the queue of pending events
11693         and the type Timing_Event is no longer a protected type.
11694
11695 2006-10-31  Robert Dewar  <dewar@adacore.com>
11696             Cyrille Comar  <comar@adacore.com>
11697             Ben Brosgol  <brosgol@adacore.com>
11698
11699         * debug.adb:  Update flags documentation
11700
11701         * gnat_ugn.texi: Add documentation for new -gnatwq switch
11702         Clean up documentation for several other warning switches
11703         Clarify how task stack size can be specified with various
11704         versions of Windows.
11705         Add note that -gnatVo includes ranges including loops
11706         Add documentation for -gnatL switch
11707         Add note on elaboration warning for initializing variables
11708         Add documentation for new -gnatwt warning switch
11709         Document new form of pragma Warnings (On|Off, string)
11710         Add comment on use of pragma Warnings to control warnings
11711         Add documentation for -gnatjnn switch
11712         Modify section on interfacing with C for VMS 64-bit.
11713         Add doc for -gnatVe/E
11714         Add documentation of new warning flags -gnatww/-gnatwW
11715         Add warnings about address clause overlays to list of warnings
11716         (Exception Handling Control): Document that the option --RTS must be
11717         used consistently for gcc and gnatbind.
11718         Clarify that inlining is not always possible
11719         Update documentation on pragma Unchecked_Union.
11720
11721         * gnat_rm.texi: 
11722         Add documentation for new extended version of pragma Obsolescent
11723         Add documentation for implementation defined attribute 'Stub_Type.
11724         Add note on use of Volatile in asm statements
11725         Add documentation on use of pragma Unreferenced in context clause
11726         Document new form of pragma Warnings (On|Off, pattern)
11727         Document pragma Wide_Character_Encoding
11728         Add note that pragma Restrictions (No_Elaboration_Code) is only fully
11729         enforced if code generation is active.
11730         Add section on pragma Suppress to document GNAT specific check
11731         Alignment_Check
11732         Clarify difference between No_Dispatching_Calls & No_Dispatch.
11733         Add documentation for pragma Restrictions (No_Elaboration_Code)
11734
11735         * gnat-style.texi: 
11736         Add comments on layout of subprogram local variables in the
11737         presence of nested subprograms.
11738
11739         * ug_words: Resync.
11740
11741         * elists.ads: Minor reformatting
11742         Node returns Node_Or_Entity_Id (doc change only)
11743
11744         * xgnatugn.adb: Replace ACADEMICEDITION with GPLEDITION
11745
11746         * g-arrspl.ads (Create): Update comments.
11747
11748         * sem.ads: Add details on the handling of the scope stack.
11749
11750         * usage.adb: Update documentation.
11751
11752         * validsw.ads, validsw.adb: 
11753         Add definition of Validity_Check_Components and implement -gnatVe/E
11754
11755         * vms_data.ads: Add missing VMS qualifiers.
11756
11757         * s-addope.ads: Add documentation on overflow and divide by zero
11758
11759 2006-10-31  Robert Dewar  <dewar@adacore.com>
11760             Thomas Quinot  <quinot@adacore.com>
11761             Arnaud Charlet  <charlet@adacore.com>
11762
11763         * fmap.adb: Put routines in alpha order
11764
11765         * g-boumai.ads: Remove redundant 'in' keywords
11766
11767         * g-cgi.adb: Minor reformatting
11768
11769         * g-cgi.ads: Remove redundant 'in' keywords
11770
11771         * get_targ.adb: Put routines in alpha order
11772
11773         * prj-attr.ads: Minor reformatting
11774
11775         * s-atacco.ads: Minor reformatting
11776
11777         * scn.adb: Put routines in alpha order
11778
11779         * sinput-l.adb: Minor comment fix
11780
11781         * sinput-p.adb: Minor comment fix
11782
11783         * s-maccod.ads: Minor reformatting
11784
11785         * s-memory.adb: Minor reformatting
11786
11787         * s-htable.adb: Fix typo in comment.
11788
11789         * s-secsta.adb: Minor comment update.
11790
11791         * s-soflin.adb: Minor reformatting
11792
11793         * s-stoele.ads: 
11794         Add comment about odd qualification in Storage_Offset declaration
11795
11796         * s-strxdr.adb: 
11797         Remove unnecessary 'in' keywords for formal parameters.
11798
11799         * treeprs.adt: Minor reformatting
11800
11801         * urealp.adb: Put routines in alpha order
11802
11803         * s-wchcon.ads, s-wchcon.adb (Get_WC_Encoding_Method): New version
11804         taking string.
11805
11806         * s-asthan-vms-alpha.adb: Remove redundant 'in' keywords
11807
11808         * g-trasym-vms-ia64.adb: Remove redundant 'in' keywords
11809
11810         * env.c (__gnat_unsetenv): Unsetenv is unavailable on LynxOS, so
11811         workaround as on other platforms.
11812
11813         * g-eacodu-vms.adb: Remove redundant 'in' keywords
11814         * g-expect-vms.adb: Remove redundant 'in' keywords
11815
11816         * gnatdll.adb (Add_Files_From_List): Handle Name_Error and report a
11817         clear error message if the list-of-files file cannot be opened.
11818
11819         * g-thread.adb (Unregister_Thread_Id): Add use type Thread_Id so the
11820         equality operator is always visible.
11821
11822         * lang.opt: Woverlength-strings: New option.
11823
11824         * nmake.adt: 
11825         Update copyright, since nmake.ads and nmake.adb have changed.
11826
11827         * osint-b.ads, osint-b.adb (Time_From_Last_Bind): removed function .
11828         (Binder_Output_Time_Stamps_Set): removed.
11829         (Old_Binder_Output_Time_Stamp): idem.
11830         (New_Binder_Output_Time_Stamp): idem.
11831         (Recording_Time_From_Last_Bind): idem.
11832         (Recording_Time_From_Last_Bind): Make constant.
11833
11834         * output.ads, output.adb (Write_Str): Allow LF characters
11835         (Write_Spaces): New procedure
11836
11837         * prepcomp.adb (Preproc_Data_Table): Change Increment from 5% to 100%
11838
11839         * inline.adb: Minor reformatting
11840
11841         * s-asthan-vms-alpha.adb: Remove redundant 'in' keywords
11842
11843         * s-mastop-vms.adb: Remove redundant 'in' keywords
11844
11845         * s-osprim-vms.adb: Remove redundant 'in' keywords
11846
11847         * s-trafor-default.adb: Remove redundant 'in' keywords
11848
11849         * 9drpc.adb: Remove redundant 'in' keywords
11850
11851         * s-osinte-mingw.ads: Minor reformatting
11852
11853         * s-inmaop-posix.adb: Minor reformatting
11854
11855         * a-direio.ads: Remove quotes from Compile_Time_Warning message
11856
11857         * a-exexda.adb: Minor code reorganization
11858
11859         * a-filico.adb: Minor reformatting
11860
11861         * a-finali.adb: Minor reformatting
11862
11863         * a-nudira.ads: Remove quote from Compile_Time_Warning message
11864
11865         * a-numeri.ads: Minor reformatting
11866
11867         * a-sequio.ads: Remove quotes from Compile_Time_Warning message
11868
11869         * exp_pakd.ads: Fix obsolete comment
11870
11871         * a-ztenau.adb, a-ztenio.adb, a-wtenau.adb, a-tienau.adb,
11872         a-wtenio.adb (Put): Avoid assuming low bound of string is 1.
11873         Probably not a bug, but certainly neater and more efficient.
11874
11875         * a-tienio.adb: Minor reformatting
11876
11877         * comperr.adb (Compiler_Abort): Call Cancel_Special_Output at start
11878         Avoid assuming low bound of string is 1.
11879
11880         * gnatbind.adb: Change Bindusg to package and rename procedure as
11881         Display, which now ensures that it only outputs usage information once.
11882         (Scan_Bind_Arg): Avoid assuming low bound of string is 1.
11883
11884         * g-pehage.adb (Build_Identical_Keysets): Replace use of 1 by
11885         Table'First.
11886
11887         * g-regpat.adb (Insert_Operator): Add pragma Warnings (Off) to kill
11888         warning.
11889         (Match): Add pragma Assert to ensure that Matches'First is zero
11890
11891         * g-regpat.ads (Match): Document that Matches lower bound must be zero
11892
11893         * makeutl.adb (Is_External_Assignment): Add pragma Assert's to check
11894         documented preconditions (also kills warnings about bad indexes).
11895
11896         * mdll.adb (Build_Dynamic_Library): Avoid assumption that Afiles'First
11897         is 1.
11898         (Build_Import_Library): Ditto;
11899
11900         * mdll-utl.adb: (Gnatbind): Avoid assumption that Alis'First = 1
11901
11902         * rtsfind.adb (RTE_Error_Msg): Avoid assuming low bound of string is 1.
11903
11904         * sem_case.adb (Analyze_Choices): Add pragma Assert to check that
11905         lower bound of choice table is 1.
11906
11907         * sem_case.ads (Analyze_Choices): Document that lower bound of
11908         Choice_Table is 1.
11909
11910         * s-imgdec.adb (Set_Decimal_Digits): Avoid assuming low bound of
11911         string is 1.
11912
11913         * uintp.adb (Init_Operand): Document that low bound of Vec is always 1,
11914         and add appropriate Assert pragma to suppress warnings.
11915
11916         * atree.h, atree.ads, atree.adb
11917         Change Elist24 to Elist25
11918         Add definitions of Field28 and Node28
11919         (Traverse_Field): Use new syntactic parent table in sinfo.
11920
11921         * cstand.adb: Change name Is_Ada_2005 to Is_Ada_2005_Only
11922
11923         * itypes.adb: Change name Is_Ada_2005 to Is_Ada_2005_Only
11924
11925         * exp_tss.adb: Put routines in alpha order
11926
11927         * fe.h: Remove redundant declarations.
11928
11929 2006-10-23 Rafael Avila de Espindola  <rafael.espindola@gmail.com>
11930
11931         * utils.c (builtin_function): Rename to gnat_builtin_function.
11932         Move common code to add_builtin_function.
11933         * misc.c (LANG_HOOKS_BUILTIN_FUNCTION): Define as
11934         gnat_builtin_function.
11935         * gigi.h (builtin_function): Rename to gnat_builtin_function.
11936         Change the signature.
11937
11938 2006-10-16  Brooks Moses  <bmoses@stanford.edu>
11939
11940         * Makefile.in: Add TEXI2PDF definition.
11941         * Make-lang.in: Add "ada.pdf" target.
11942
11943 2006-10-03  Kazu Hirata  <kazu@codesourcery.com>
11944
11945         * decl.c, utils.c: Fix comment typos.
11946         * utils.c: Fix a typo.
11947
11948 2006-09-28  Eric Botcazou  <ebotcazou@adacore.com>
11949
11950         * decl.c (gnat_to_gnu_entity) <E_Procedure>: Do not set "const" flag
11951         on "pure" Ada subprograms if SJLJ exceptions are used.
11952         * trans.c (Handled_Sequence_Of_Statements_to_gnu): Set TREE_NO_WARNING
11953         on the declaration node of JMPBUF_SAVE.
11954         * utils.c (init_gigi_decls): Set DECL_IS_PURE on the declaration nodes
11955         of Get_Jmpbuf_Address_Soft and Get_GNAT_Exception.
11956         * utils2.c (build_call_0_expr): Do not set TREE_SIDE_EFFECTS.
11957
11958 2006-08-20  Laurent GUERBY  <laurent@guerby.net>
11959
11960         PR ada/28716
11961         g-socket.adb (Bind_Socket): Call Set_Address.
11962
11963 2006-09-15  Eric Botcazou  <ebotcazou@adacore.com>
11964
11965         PR ada/15802
11966         * decl.c (same_discriminant_p): New static function.
11967         (gnat_to_gnu_entity) <E_Record_Type>: When there is a parent
11968         subtype and we have discriminants, fix up the COMPONENT_REFs
11969         for the discriminants to make them reference the corresponding
11970         fields of the parent subtype after it has been built.
11971
11972 2006-09-15  Roger Sayle  <roger@eyesopen.com>
11973
11974         PR ada/18817
11975         * utils.c (max_size): Perform constant folding of (A ? B : C) - D
11976         into A ? B - D : C - D when calculating the size of a MINUS_EXPR.
11977
11978 2006-09-13  Olivier Hainque  <hainque@adacore.com>
11979
11980         PR ada/29025
11981         * trans.c (gnat_gimplify_expr) <ADDR_EXPR>: When taking the address
11982         of a SAVE_EXPR, just make the operand addressable/not-readonly and
11983         let the common gimplifier code make and propagate a temporary copy.
11984         (call_to_gnu): Clarify the use of SAVE_EXPR for not addressable
11985         out/in-out actuals and defer setting the addressable/readonly bits
11986         to the gimplifier.
11987
11988 2006-09-13  Eric Botcazou  <ebotcazou@adacore.com>
11989
11990         PR ada/28591
11991         * decl.c (components_to_record): Defer emitting debug info for the
11992         record type associated with the variant until after we are sure to
11993         actually use it.
11994
11995 2006-09-13  Eric Botcazou  <ebotcazou@adacore.com>
11996
11997         PR ada/21952
11998         * gigi.h (gnat_internal_attribute_table): Declare.
11999         * misc.c (LANG_HOOKS_ATTRIBUTE_TABLE): Define to above.
12000         * utils.c (gnat_internal_attribute_table): New global variable.
12001         (builtin_function): Always call decl_attributes on the builtin.
12002         (handle_const_attribute): New static function.
12003         (handle_nothrow_attribute): Likewise.
12004
12005 2006-07-28  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
12006
12007         * Make-lang.in: Use $(HEADER_H) instead of header.h in dependencies.
12008
12009 2006-06-23  Olivier Hainque  <hainque@adacore.com>
12010
12011         * misc.c (gnat_type_max_size): Look at TYPE_ADA_SIZE if we have
12012         not been able to get a constant upper bound from TYPE_SIZE_UNIT.
12013
12014 2006-06-20  James A. Morrison  <phython@gcc.gnu.org>
12015             Eric Botcazou  <ebotcazou@adacore.com>
12016
12017         PR ada/18692
12018         * Make-lang.in: Add check-gnat to lang_checks.  Rename existing
12019         check-gnat into check-acats.
12020
12021 2006-06-17  Karl Berry  <karl@gnu.org>
12022
12023         * gnat-style.texi (@dircategory): Use "Software development"
12024         instead of "Programming", following the Free Software Directory.
12025
12026 2006-06-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12027
12028         PR ada/27944
12029         * s-taprop-hpux-dce.adb: Delete redundant 'with System.Parameters'.
12030
12031 2006-06-06  Laurent GUERBY  <laurent@guerby.net>
12032
12033         PR ada/27769
12034         mlib-utl.adb: Use Program_Name.
12035
12036 2006-05-28  Kazu Hirata  <kazu@codesourcery.com>
12037
12038         * decl.c, env.c, gigi.h, init.c, initialize.c, raise-gcc.c,
12039         sem_ch13.adb, sysdep.c, targtyps.c, tb-alvxw.c, tracebak.c,
12040         trans.c, utils.c: Fix comment typos.  Follow spelling
12041         conventions.
12042         * gnat_rm.texi, gnat_ugn.texi, : Fix typos.  Follow spelling
12043         conventions.
12044
12045 2006-05-19  Nicolas Setton  <setton@adacore.com>
12046
12047         * misc.c (gnat_dwarf_name): New function.
12048         (LANG_HOOKS_DWARF_NAME): Define to it.
12049
12050 2006-05-14  H.J. Lu  <hongjiu.lu@intel.com>
12051
12052         * Make-lang.in (ada/decl.o): Replace target.h with $(TARGET_H).
12053         (ada/misc.o): Likewise.
12054         (ada/utils.o): Likewise.
12055
12056 2006-04-08  Aurelien Jarno  <aurel32@debian.org>
12057
12058         * Makefile.in: Add Ada support for GNU/kFreeBSD.
12059         * s-osinte-kfreebsd-gnu.ads: New file.
12060
12061 2006-03-29  Carlos O'Donell  <carlos@codesourcery.com>
12062
12063         * Make-lang.in: Rename docdir to gcc_docdir.
12064
12065 2006-03-04  Eric Botcazou  <ebotcazou@adacore.com>
12066
12067         * gigi.h (get_ada_base_type): Delete.
12068         * utils2.c (get_ada_base_type): Likewise.
12069         * trans.c (convert_with_check): Operate in the real base type.
12070
12071 2006-03-03  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12072
12073         * uintp.adb (Num_Bits): Handle Uint_Int_First specially.
12074
12075 2006-03-02  Richard Sandiford  <richard@codesourcery.com>
12076
12077         * utils.c (create_var_decl): Use have_global_bss_p when deciding
12078         whether to make the decl common.
12079
12080 2006-02-20  Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
12081
12082         * Make-lang.in (Ada): Remove.
12083         (.PHONY): Remove Ada
12084
12085 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
12086
12087         * sem_ch4.adb (Find_Boolean_Types): If one of the operands is an
12088         aggregate, check the interpretations of the other operand to find one
12089         that may be a boolean array.
12090
12091         (Analyze_Selected_Component): Fix flow-of-control typo in case where
12092         the prefix is a private extension.
12093
12094 2006-02-17  Eric Botcazou  <botcazou@adacore.com>
12095
12096         PR ada/26315
12097         * utils2.c (find_common_type): If both input types are BLKmode and
12098         have the same constant size, keep using the first one.
12099
12100         * bindgen.adb: (Gen_Versions_Ada): Revert previous workaround.
12101
12102         * decl.c (gnat_to_gnu_entity): Only check TREE_OVERFLOW for a constant.
12103
12104         * misc.c (gnat_handle_option): New case for -Woverlength-strings.
12105
12106 2006-02-17  Jose Ruiz  <ruiz@adacore.com>
12107
12108         * s-taprop-irix.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb, 
12109         s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb, 
12110         s-taprop-posix.adb, s-taprop-vxworks.adb, s-taprop-lynxos.adb, 
12111         s-taprop-tru64.adb (Set_False, Set_True, Suspend_Until_True): Add
12112         Abort_Defer/Undefer pairs to avoid the possibility of a task being
12113         aborted while owning a lock.
12114
12115 2006-02-17  Javier Miranda  <miranda@adacore.com>
12116             Robert Dewar  <dewar@adacore.com>
12117
12118         * exp_ch4.adb (Expand_N_Allocator): If the allocated object is accessed
12119         through an access to class-wide interface we force the displacement of
12120         the pointer to the allocated object to reference the corresponding
12121         secondary dispatch table.
12122         (Expand_N_Op_Divide): Allow 64 bit divisions by small power of 2,
12123         if Long_Shifts are supported on the target, even if 64 bit divides
12124         are not supported (configurable run time mode).
12125         (Expand_N_Type_Conversion): Do validity check if validity checks on
12126         operands are enabled.
12127         (Expand_N_Qualified_Expression): Do validity check if validity checks
12128         on operands are enabled.
12129
12130 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
12131
12132         * exp_dbug.adb (Debug_Renaming_Declaration): Indicate that the entity
12133         must be materialized when the renamed expression is an explicit
12134         dereference.
12135
12136 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
12137
12138         * freeze.adb (Statically_Discriminated_Components): Return false if
12139         the bounds of the type of the discriminant are not static expressions.
12140
12141         * sem_aggr.adb (Check_Static_Discriminated_Subtype): Return false if
12142         the bounds of the discriminant type are not static.
12143
12144 2006-02-17  Robert Dewar  <dewar@adacore.com>
12145
12146         * g-os_lib.adb (Copy_File): Make sure that if From has an Invalid_FD,
12147         then we close To if it is valid.
12148
12149 2006-02-17  Vasiliy Fofanov  <fofanov@adacore.com>
12150
12151         * init.c (facility_resignal_table): new array
12152         (__gnat_default_resignal_p): enhance default predicate to resignal if
12153         VMS condition has one of the predefined facility codes.
12154
12155 2006-02-17  Vasiliy Fofanov  <fofanov@adacore.com>
12156
12157         * Makefile.in: Use VMS64 specialized versions of several units in
12158         Interfaces.C hierarchy to be compatible with HP C default size choices.
12159         Use the default version of Ada.Synchronous_Task_Control for VxWorks 653.
12160
12161 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
12162
12163         * sem_ch10.adb (Analyze_With_Clause): If the unit is a subprogram
12164         instantiation, the corresponding entity is the related_instance of the
12165         wrapper package created for the instance.
12166
12167 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
12168
12169         * sem_ch12.adb (Analyze_Package_Instantiation): Inline_Now is false if
12170         the current instance is nested within another instance in a child unit.
12171
12172 2006-02-17  Javier Miranda  <miranda@adacore.com>
12173             Ed Schonberg  <schonberg@adacore.com>
12174
12175         * sem_ch3.adb (Build_Discriminated_Subtype): In case of concurrent
12176         type we cannot inherit the primitive operations; we inherit the
12177         Corresponding_Record_Type (which has the list of primitive operations).
12178         (Check_Anonymous_Access_Types): When creating anonymous access types for
12179         access components, use Rewrite in order to preserve the tree structure,
12180         for ASIS use.
12181         (Analyze_Object_Declaration): For limited types with access
12182         discriminants with defaults initialized by an aggregate, obtain
12183         subtype from aggregate as for other mutable types.
12184         (Derived_Type_Declaration): If the derived type is a limited interface,
12185         set the corresponding flag (Is_Limited_Record is not sufficient).
12186
12187 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
12188
12189         * sem_ch6.adb (Build_Body_To_Inline): Enforce the rule that in order
12190         to inline a function that returns an unconstrained type, the return
12191         expression must be the first variable declared in the body of the
12192         function.
12193
12194 2006-02-17  Javier Miranda  <miranda@adacore.com>
12195
12196         * sem_res.adb (Resolve_Type_Conversion): In case of conversion to an
12197         abstract interface type, the static analysis is not enough to know if
12198         the interface is implemented or not by the source tagged type. Hence
12199         we must pass the work to the expander to generate the required code to
12200         evaluate the conversion at run-time.
12201         (Resolve_Equality_Op): Do not apply previous
12202         transformation if expansion is disasbled, to prevent anomalies when
12203         locating global references in a generic unit.
12204
12205 2006-02-17  Vincent Celier  <celier@adacore.com>
12206
12207         * snames.ads, snames.adb: New standard names for new project attributes:
12208         archive_builder, archive_indexer, compiler_pic_option,
12209         config_body_file_name, config_body_file_name_pattern,
12210         config_file_switches, config_file_unique, config_spec_file_name,
12211         config_spec_file_name_pattern, default_builder_switches,
12212         default_global_compiler_switches, default_language,
12213         dependency_file_kind, global_compiler_switches, include_path,
12214         include_path_file, language_kind, linker_executable_option,
12215         linker_lib_dir_option, linker_lib_name_option, mapping_file_switches,
12216         roots, runtime_project.
12217
12218 2006-02-17  Matthew Heaney  <heaney@adacore.com>
12219
12220         * a-convec.ads, a-convec.adb: 
12221         (operator "&"): handle potential overflow for large index types
12222         (Insert): removed Contraint_Error when using large index types
12223         (Insert_Space): removed Constraint_Error for large index types
12224         (Length): moved constraint check from Length to Insert
12225
12226         * a-coinve.ads, a-coinve.adb: Stream attribute procedures are declared
12227         as not null access.
12228         Explicit raise statements now include an exception message.
12229         (operator "&"): handle potential overflow for large index types
12230         (Insert): removed Contraint_Error when using large index types
12231         (Insert_Space): removed Constraint_Error for large index types
12232         (Length): moved constraint check from Length to Insert
12233
12234 2006-02-17  Robert Dewar  <dewar@adacore.com>
12235
12236         * s-wchcnv.adb: Document handling of [ on output (we do not change
12237         this to ["5B"] and the new comments say why not.
12238
12239         * gnat_ugn.texi: 
12240         Add note for -gnatVo that this now includes the cases of type
12241         conversions and qualified expressions.
12242         Add comments on handling of brackets encoding for Text_IO
12243
12244 2006-02-17  Ramon Fernandez  <fernandez@adacore.com>
12245             Thomas Quinot  <quinot@adacore.com>
12246             Robert Dewar  <dewar@adacore.com>
12247             Javier Miranda  <miranda@adacore.com>
12248
12249         * expander.adb: Fix typo in comment
12250
12251         * exp_pakd.adb: Fix typo
12252         Minor comment reformatting.
12253
12254         * g-dyntab.adb: Minor reformatting
12255
12256         * exp_ch6.adb (Register_Interface_DT_Entry): Traverse the list of
12257         aliased subprograms to look for the abstract interface subprogram.
12258
12259 2006-02-16  Eric Botcazou  <ebotcazou@adacore.com>
12260
12261         * env.c (__gnat_setenv): Use size_t.
12262         (__gnat_unsetenv): Likewise.
12263         (__gnat_clearenv): Likewise.
12264
12265 2006-02-16  Arnaud Charlet  <charlet@adacore.com>
12266
12267         * opt.ads (Ada_Version_Default): Set to Ada 2005 by default.
12268
12269 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
12270
12271         * a-intnam-os2.ads, a-intnam-unixware.ads, g-soccon-unixware.ads,
12272         g-soliop-unixware.ads, i-os2err.ads, i-os2lib.adb, i-os2lib.ads,
12273         i-os2syn.ads, i-os2thr.ads, s-intman-irix-athread.adb,
12274         s-osinte-aix-fsu.ads, s-osinte-fsu.adb, s-parame-os2.adb,
12275         s-osinte-irix-athread.ads, s-osinte-linux-fsu.ads, s-osinte-os2.adb,
12276         s-osinte-os2.ads, s-osinte-solaris-fsu.ads, s-osinte-unixware.adb,
12277         s-osinte-unixware.ads, s-osprim-os2.adb, s-taprop-irix-athread.adb,
12278         s-taprop-os2.adb, s-tasinf-irix-athread.adb, s-tasinf-irix-athread.ads,
12279         s-taspri-os2.ads, system-os2.ads, system-unixware.ads: Removed,
12280         no longer used.
12281
12282 2006-02-13  Jose Ruiz  <ruiz@adacore.com>
12283
12284         * a-taster.adb (Current_Task_Fallback_Handler): Document why explicit
12285         protection against race conditions is not needed.
12286         (Set_Dependents_Fallback_Handler): Add mutual exclusive access to the
12287         fallback handler.
12288         (Set_Specific_Handler): Add mutual exclusive access to the specific
12289         handler.
12290         (Specific_Handler): Add mutual exclusive access for retrieving the
12291         specific handler.
12292
12293         * s-tarest.adb (Task_Wrapper): Add mutual exclusive access to the fall
12294         back handler.
12295
12296         * s-taskin.ads (Common_ATCB): Remove pragma Atomic for
12297         Fall_Back_Handler and Specific_Handler.
12298
12299         * s-tassta.adb (Task_Wrapper): Add mutual exclusive access to the task
12300         termination handlers.
12301         Set two different owerflow depending on the maximal stack size.
12302
12303         * s-solita.adb (Task_Termination_Handler_T): Document why explicit
12304         protection against race conditions is not needed when executing the
12305         task termination handler.
12306
12307 2006-02-13  Robert Dewar  <dewar@adacore.com>
12308
12309         * s-gloloc-mingw.adb, a-cgaaso.ads, a-stzmap.adb, a-stzmap.adb,
12310         a-stzmap.ads, a-ztcoio.adb, a-ztedit.adb, a-ztedit.ads, a-ztenau.adb,
12311         a-ztenau.ads, a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
12312         a-comlin.adb, a-decima.adb, a-decima.ads, a-direio.adb, a-direio.adb,
12313         a-direio.adb, a-direio.ads, a-ngcoty.adb, a-ngcoty.ads, a-nuflra.adb,
12314         a-nuflra.ads, a-sequio.adb, a-sequio.ads, a-sequio.ads, a-storio.ads,
12315         a-stream.ads, a-ststio.adb, a-ststio.adb, a-ststio.ads, a-ststio.ads,
12316         a-stwima.adb, a-stwima.adb, a-stwima.ads, a-stwise.adb, a-teioed.adb,
12317         a-teioed.ads, a-ticoau.adb, a-ticoau.ads, a-ticoio.adb, a-tasatt.ads,
12318         a-tideau.adb, a-tideau.ads, a-tideio.adb, a-tideio.ads, a-tienau.adb,
12319         a-tienau.ads, a-tienio.adb, a-tienio.ads, a-tifiio.ads, a-tiflau.adb,
12320         a-tiflau.ads, a-tiflio.adb, a-tiflio.adb, a-tiflio.ads, a-tigeau.ads,
12321         a-tiinau.adb, a-tiinau.ads, a-tiinio.adb, a-tiinio.ads, a-timoio.adb,
12322         a-timoio.ads, a-titest.adb, a-titest.ads, a-wtcoio.adb, a-wtdeau.adb,
12323         a-wtdeau.ads, a-wtdeio.adb, a-wtdeio.ads, a-wtedit.adb, a-wtedit.adb,
12324         a-wtedit.ads, a-wtenau.adb, a-wtenau.ads, a-wtenau.ads, a-wtenio.adb,
12325         a-wtenio.ads, a-wtfiio.adb, a-wtfiio.ads, a-wtflau.adb, a-wtflau.ads,
12326         a-wtflio.adb, a-wtflio.adb, a-wtflio.ads, a-wtgeau.ads, a-wtinau.adb,
12327         a-wtinau.ads, a-wtinio.adb, a-wtinio.ads, a-wtmoau.adb, a-wtmoau.ads,
12328         a-wtmoio.adb, a-wtmoio.ads, xref_lib.adb, xref_lib.ads, xr_tabls.adb,
12329         g-boubuf.adb, g-boubuf.ads, g-cgideb.adb, g-io.adb, gnatdll.adb,
12330         g-pehage.adb, i-c.ads, g-spitbo.adb, g-spitbo.ads, mdll.adb,
12331         mlib-fil.adb, mlib-utl.adb, mlib-utl.ads, prj-env.adb, prj-tree.adb,
12332         prj-tree.ads, prj-util.adb, s-arit64.adb, s-asthan.ads, s-auxdec.adb,
12333         s-auxdec.ads, s-chepoo.ads, s-direio.adb, s-direio.ads, s-errrep.adb,
12334         s-errrep.ads, s-fileio.adb, s-fileio.ads, s-finroo.adb, s-finroo.ads,
12335         s-gloloc.adb, s-gloloc.ads, s-io.adb, s-io.ads, s-rpc.adb,
12336         s-rpc.ads, s-shasto.ads, s-sequio.adb, s-stopoo.ads, s-stratt.adb,
12337         s-stratt.ads, s-taasde.adb, s-taasde.ads, s-tadert.adb, s-sequio.ads,
12338         s-taskin.adb, s-tasque.adb, s-tasque.ads, s-wchjis.ads, makegpr.adb,
12339         a-coinve.adb, a-cidlli.adb, eval_fat.adb, exp_dist.ads, exp_smem.adb,
12340         fmap.adb, g-dyntab.ads, g-expect.adb, lib-xref.ads, osint.adb,
12341         par-load.adb, restrict.adb, sinput-c.ads, a-cdlili.adb,
12342         system-vms.ads, system-vms-zcx.ads, system-vms_64.ads: Minor
12343         reformatting.
12344
12345 2006-02-13  Hristian Kirtchev  <kirtchev@adacore.com>
12346
12347         * a-tasatt.adb, s-osinte-lynxos-3.adb, s-osinte-lynxos.adb,
12348         s-osinte-aix.adb, s-interr-sigaction.adb, s-asthan-vms-alpha.adb,
12349         s-interr-vms.adb, s-intman-vms.adb, s-interr-vxworks.adb,
12350         s-intman-vxworks.adb, s-asthan-vms-alpha.adb, a-ztexio.adb,
12351         a-reatim.adb, a-taside.adb, a-textio.adb, a-witeio.adb, prj-attr.adb,
12352         s-intman-irix.adb, s-intman-solaris.adb, s-intman-posix.adb,
12353         a-dynpri.adb, a-interr.adb, g-dynhta.adb, s-asthan.adb, s-interr.adb,
12354         s-pooglo.adb, s-pooloc.adb, s-poosiz.adb, s-tasren.adb, s-tasuti.adb,
12355         s-tataat.adb, s-tpobop.adb: Remove redundant with clauses.
12356
12357 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
12358
12359         * s-osinte-darwin.adb, s-osinte-darwin.ads, s-osinte-vxworks.ads, 
12360         s-osinte-solaris.ads, s-osinte-linux.ads, s-osinte-freebsd.ads, 
12361         s-osinte-solaris-posix.ads, s-osinte-lynxos-3.ads, s-osinte-lynxos.ads, 
12362         s-osinte-tru64.ads, s-osinte-aix.ads, s-osinte-irix.ads, 
12363         s-osinte-hpux-dce.ads, s-osinte-linux-hppa.ads, 
12364         s-osinte-linux-alpha.ads, s-inmaop-posix.adb (sigset_t_ptr): Removed,
12365         replaced by anonymous access type.
12366         (pthread_sigmask): Now take an access sigset_t
12367
12368         * s-osinte-hpux.ads:  Ditto.
12369         (pthread_mutex_t, pthread_cond_t): Update definitions to support
12370         properly 32 and 64 bit ABIs.
12371
12372 2006-02-13  Pascal Obry  <obry@adacore.com>
12373
12374         * s-taprop-posix.adb, s-taprop-vxworks.adb, s-taprop-tru64.adb, 
12375         s-taprop-lynxos.adb, s-taprop-irix.adb, s-taprop-hpux-dce.adb, 
12376         s-taprop-linux.adb, s-taprop-solaris.adb,
12377         s-taprop-vms.adb (Create_Task): Remove task adjustment code. This
12378         adjustement is already done when calling this routine.
12379
12380 2006-02-13  Pascal Obry  <obry@adacore.com>
12381
12382         * system-mingw.ads (Underlying_Priorities): Update the priority mapping
12383         table to take advantage of the 16 priority levels available on Windows
12384         2000 and XP. On NT4 there are only 7 priority levels, this is properly
12385         supported by this new mapping.
12386
12387 2006-02-13  Nicolas Setton  <setton@adacore.com>
12388
12389         * adadecode.h, adadecode.c: (__gnat_decode): Improve support of types.
12390         (get_encoding): New subprogram. Extracts the encodings from an encoded
12391         Ada name.
12392
12393 2006-02-13  Pascal Obry  <obry@adacore.com>
12394             Nicolas Roche  <roche@adacore.com>
12395             Arnaud Charlet  <charlet@adacore.com>
12396
12397         * adaint.h, adaint.c (DIR_SEPARATOR): Use _T() macro for Unicode
12398         support.
12399         (__gnat_try_lock): Add unicode support by using a specific section on
12400         Windows.
12401         (__gnat_get_current_dir): Idem.
12402         (__gnat_open_read): Idem.
12403         (__gnat_open_rw): Idem.
12404         (__gnat_open_create): Idem.
12405         (__gnat_create_output_file): Idem.
12406         (__gnat_open_append): Idem.
12407         (__gnat_open_new): Idem.
12408         (__gnat_file_time_name): Idem.
12409         (__gnat_set_file_time_name): Idem.
12410         (__gnat_stat): Idem.
12411         (win32_no_block_spawn): Idem.
12412         (__gnat_locate_exec_on_path): Idem.
12413         (__gnat_opendir): New routine.
12414         (__gnat_closedir): Idem.
12415         (__gnat_readdir): Add new parameter length (pointer to int). Update
12416         implementation to use it and add specific Win32 code for Unicode
12417         support.
12418         (__gnat_get_env_value_ptr): Remove. Replaced by __gnat_getenv in env.c
12419         (__gnat_set_env_value): Remove. Replaced by __gnat_setenv in env.c
12420         (convert_addresses): Do not define this dummy routine on VMS.
12421
12422         * mingw32.h (GNAT_UNICODE_SUPPORT): New definition, if set the GNAT
12423         runtime Unicode support will be activated.
12424         (S2WS): String to Wide-String conversion. This version just copy a
12425         string in non Unicode version.
12426         (WS2S): Wide-String to String conversion. This version just copy a
12427         string in non Unicode version.
12428
12429         * g-dirope.adb: (Close): Now import __gnat_closedir from adaint.c.
12430         (Open): Now import __gnat_opendir from adaint.c.
12431         (Read): Change the implementation to support unicode characters. It is
12432         not possible to use strlen() on Windows as this version supports only
12433         standard ASCII characters. So the length of the directory entry is now
12434         returned from the imported __gnat_readdir routine.
12435         Update copyright notice.
12436
12437         * s-crtl-vms64.ads, s-crtl.ads: (closedir): Moved to adaint.c.
12438         (opendir): Moved to adaint.c.
12439
12440         * g-os_lib.adb (Copy_Time_Stamp): Fix off-by-one range computation.
12441         (Get_Directory): Fix wrong indexing.
12442         (Getenv): replace __gnat_get_env_value_ptr from adaint.c by
12443         __gnat_getenv from env.c
12444         (Setenv): replace __gnat_set_env_value from adaint.c by __gnat_setenv
12445         from env.c
12446
12447         * env.h, env.c: New file.
12448
12449         * s-scaval.adb (Initialize): Replace __gnat_get_env_value_ptr from
12450         adaint.c by __gnat_getenv from env.c
12451
12452         * s-shasto.adb (Initialize): replace __gnat_get_env_value_ptr from
12453         adaint.c by __gnat_getenv from env.c
12454
12455         * Make-lang.in: Add env.o in the list of C object needed by gnat1
12456         and gnatbind.
12457         Update dependencies.
12458
12459 2006-02-13  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12460             Olivier Hainque  <hainque@adacore.com>
12461             Eric Botcazou  <ebotcazou@adacore.com>
12462
12463         * ada-tree.h: (TYPE_UNCHECKED_UNION_P): Deleted.
12464         
12465         * gigi.h (value_factor_p): Add prototype and description, now public.
12466
12467         * decl.c (gnat_to_gnu_field): Don't attempt BLKmode to integral type
12468         promotion for field with rep clause if the associated size was proven
12469         to be in error.
12470         Expand comments describing attempts to use a packable type.
12471         (gnat_to_gnu_entity) <E_Signed_Integer_Subtype,
12472         E_Floating_Point_Subtype>: Inherit alias set of what we are making a
12473         subtype of to ensure conflicts amongst all subtypes in a hierarchy,
12474         necessary since these are not different types and pointers may
12475         actually designate any subtype in this hierarchy.
12476         (gnat_to_gnu_entity, case E_Record_Type): Always make fields for
12477         discriminants but put them into record only if not Unchecked_Union;
12478         pass flag to components_to_record showing Unchecked_Union.
12479         (make_dummy_type): Use UNION_TYPE only if Unchecked_Union and no
12480         components before variants; don't set TYPE_UNCHECKED_UNION_P.
12481         (components_to_record): New argument UNCHECKED_UNION.
12482         Remove special case code for Unchecked_Union and instead use main code
12483         with small changes.
12484
12485         PR ada/26096
12486         (gnat_to_gnu_entity) <E_Variable>: Do not initialize the aligning
12487         variable with the expression being built, only its inner field.
12488
12489         * trans.c (Handled_Sequence_Of_Statements_to_gnu): Remove call to
12490         emit_sequence_entry_statements.
12491         (emit_sequence_entry_statements, body_with_handlers_p): Delete.
12492         (establish_gnat_vms_condition_handler): Move before
12493         Subprogram_Body_to_gnu.
12494         (Subprogram_Body_to_gnu): On VMS, establish_gnat_vms_condition_handler
12495         for a subprogram if it has a foreign convention or is exported.
12496         (Identifier_to_gnu): Manually unshare the DECL_INITIAL tree when it is
12497         substituted for a CONST_DECL.
12498         (tree_transform, case N_Aggregate): Remove code for UNION_TYPE and pass
12499         Etype to assoc_to_constructor.
12500         (assoc_to_constructor): New argument, GNAT_ENTITY; use it to ignore
12501         discriminants of Unchecked_Union.
12502         (TARGET_ABI_OPEN_VMS): Define to 0 if not defined, so that later uses
12503         don't need cluttering preprocessor directives.
12504         (establish_gnat_vms_condition_handler): New function. Establish the GNAT
12505         condition handler as current in the compiled function.
12506         (body_with_handlers_p): New function. Tell whether a given sequence of
12507         statements node is attached to a package or subprogram body and involves
12508         exception handlers possibly nested within inner block statements.
12509         (emit_sequence_entry_statements): New function, to emit special
12510         statements on entry of sequences when necessary. Establish GNAT
12511         condition handler in the proper cases for VMS.
12512         (Handled_Sequence_Of_Statements_to_gnu): Start block code with
12513         emit_sequence_entry_statements.
12514
12515         * utils2.c (find_common_type): If both input types are BLKmode and
12516         have a constant size, use the smaller one.
12517         (build_simple_component_ref): Also match if FIELD and NEW_FIELD are
12518         the same.
12519
12520         * utils.c (value_factor_p): Make public, to allow uses from other gigi
12521         units.
12522         (create_type_decl): Do not set the flag DECL_IGNORED_P for dummy types.
12523         (convert, case UNION_TYPE): Remove special treatment for unchecked
12524         unions.
12525
12526         PR ada/18659
12527         (update_pointer_to): Update variants of pointer types to unconstrained
12528         arrays by attaching the list of fields of the main variant.
12529
12530 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
12531             Robert Dewar  <dewar@adacore.com>
12532
12533         * a-exexpr.adb, a-exexpr-gcc.adb
12534         (Process_Raise_Exception): Removed, merged with Propagate_Exception.
12535         (Propagate_Exception): Now take extra From_Signal_Handler parameter.
12536         Remove code unused for exception propagation for the compiler itself
12537         from a-except.adb and update to still share separate packages.
12538
12539         * a-except.ads, a-except.adb: Ditto.
12540         Add comments that this version is now used only by the compiler and
12541         other basic tools. The full version that includes the Ada 2005 stuff
12542         is in separate files a-except-2005.ads/adb. The reason is that we do
12543         not want to cause bootstrap problems with compilers not recognizing
12544         Wide_Wide_String.
12545         Add exception reason code PE_Implicit_Return
12546         Add new exception reason code (Null Exception_Id)
12547
12548         * a-except-2005.adb, a-except-2005.ads: New files.
12549
12550         * s-wchcon.ads: (Get_WC_Encoding_Method): New function.
12551
12552         * s-wchcon.adb: New file.
12553
12554         * Makefile.in (LIBGNAT_SRCS): Add tb-gcc.c.
12555         (traceback.o deps): Likewise.
12556         (SPARC/Solaris): Accept sparc[64|v9]-sun-solaris.
12557         Activate build of GMEM instrumentation library on VMS targets.
12558         (gnatlib-sjlj, gnatlib-zcx): Pass EH_MECHANISM to make gnatlib.
12559         Use a-except-2005.ads/adb for all run-time library builds unless
12560         specified otherwise.
12561         [VMS] (LIBGNAT_TARGET_PAIRS_AUX1,2): Rename s-parame-vms.ads to
12562         s-parame-vms-alpha.ads and add s-parame-vms-ia64.ads.
12563         Use s-parame.adb on all native platforms.
12564         Use s-parame-vxworks.adb on all vxworks platforms.
12565         Add env.c env.h in LIBGNAT_SRCS
12566         Add env.o in LIBGNAT_OBJS
12567         (GNATMAKE_OBJS): Remove ctrl_c.o object.
12568         (LIBGNAT_TARGET_PAIRS for x86-vxworks): Use an specialized version of
12569         s-osinte.adb, s-tpopsp.adb, and system.ads for the run time that
12570         supports VxWorks 6 RTPs.
12571         (EXTRA_GNATRTL_NONTASKING_OBJS for x86-vxworks): Remove the use of
12572         i-vxworks and i-vxwoio from the run time that supports VxWorks 6 RTPs.
12573
12574         * types.h, types.ads (Terminate_Program): New exception
12575         Add comment on modifying multiple versions of a-except.adb when the
12576         table of exception reasons is modified.
12577         Add exception reason code PE_Implicit_Return
12578         Add new exception reason code (Null Exception_Id)
12579
12580         * clean.adb (Initialize): Get the target parameters before checking
12581         if target is OpenVMS. Move the OpenVMS specific code here from package
12582         body elaboration code.
12583
12584 2006-02-13  Thomas Quinot  <quinot@adacore.com>
12585             Vincent Celier  <celier@adacore.com>
12586             Robert Dewar  <dewar@adacore.com>
12587
12588         * ali-util.adb (Get_File_Checksum): Update to account for change in
12589         profile of Initialize_Scanner.
12590
12591         * gprep.adb (Gnatprep): Update to account for change in profile of
12592         Initialize_Scanner.
12593         (Process_One_File): Same.
12594
12595         * lib.adb (Get_Code_Or_Source_Unit): New subprogram factoring the
12596         common code between Get_Code_Unit and Get_Source_Unit. Reimplement
12597         that behaviour using the new Unit information recorded in the source
12598         files table, rather than going through all units every time.
12599         (Get_Code_Unit): Reimplement in terms of Get_Code_Or_Source_Unit.
12600         (Get_Source_Unit): Same.
12601
12602         * prepcomp.adb (Parse_Preprocessing_Data_File): Update to account for
12603         change in profile of Initialize_Scanner.
12604         (Prepare_To_Preprocess): Same.
12605
12606         * lib.ads: Fix typo in comment (templace -> template).
12607
12608         * prj-part.adb (Parse_Single_Project): Update to account for change in
12609         profile of Initialize_Scanner.
12610
12611         * scn.adb (Initialize_Scanner): Account for change in profile of
12612         Scng.Initialize_Scanner: set Current_Source_Unit in Scn instead of Scng.
12613         Also record the association of the given Source_File_Index to the
12614         corresponding Unit_Number_Type.
12615
12616         * scng.ads, scng.adb (Initialize_Scanner.Set_Reserved): Remove
12617         procedure.
12618         (Initialize_Scanner): Call Scans.Initialize_Ada_Keywords.
12619         Remove Unit formal for generic scanner: this formal
12620         is only relevant to Scn (the scanner instance used to parse Ada source
12621         files), not to other instances. Update comment accordingly.
12622         (Scan): Use new function Snames.Is_Keyword_Name.
12623
12624         * sinfo-cn.adb: Fix typo in comment.
12625
12626         * sinput.adb (Unit, Set_Unit): Accessors for new source file attribute
12627         Unit.
12628
12629         * sinput.ads (Source_File_Record): New component Unit, used to capture
12630         the unit identifier (if any) associated to a source file.
12631
12632         * sinput-c.adb, sinput-l.adb (Load_File): Initialize new component
12633         Unit in Source_File_Record.
12634
12635         * sinput-p.adb (Source_File_Is_Subunit): Update to account for change
12636         in profile of Initialize_Scanner.
12637
12638         * scans.adb (Initialize_Ada_Keywords): New procedure
12639
12640         * scans.ads (Initialize_Ada_Keywords): New procedure to initialize the
12641         Ada keywords in the Namet table, without the need to call
12642         Initialize_Scanner.
12643
12644         * snames.adb: Add pragma Ada_2005 (synonym for Ada_05)
12645         (Is_Keyword_Name): New function
12646
12647         * snames.ads: Add subtype Configuration_Pragma_Names
12648         Add pragma Ada_2005 (synonym for Ada_05)
12649         (Is_Keyword_Name): New function
12650
12651         * snames.h: Add pragma Ada_2005 (synonym for Ada_05)
12652
12653 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
12654
12655         * a-stwisu.adb, a-strsup.adb, a-stzsup.adb (Super_Slice): Fix slice
12656         index.
12657
12658         * a-stwima.adb (To_Set): Add extra check when N = 0.
12659
12660         * g-regpat.adb: (Match_Simple_Operator): Avoid possible overflow.
12661
12662 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
12663
12664         * s-parame-mingw.adb, s-parame-linux.adb,
12665         s-parame-solaris.adb: Removed, replaced by s-parame.adb
12666
12667         * s-parame-vxworks.ads: Fix typo.
12668
12669         * s-parame-vxworks.adb: New file.
12670
12671         * s-parame.adb: Version now used by all native platforms.
12672         (Default_Stack_Size): Use 2 megs for default stack size and use
12673         __gl_default_stack_size when available.
12674         (Minimum_Stack_Size): Use 12K.
12675
12676         * s-taprop-mingw.adb: Set default stack size linker switch to 2megs.
12677         (Create_Task): Refine implementation taking advantage of the XP stack
12678         size support. On XP, we now create the thread using the flag
12679         STACK_SIZE_PARAM_IS_A_RESERVATION.
12680
12681         * s-osinte-mingw.ads (Stack_Size_Param_Is_A_Reservation): New constant.
12682
12683         * sysdep.c (__gnat_is_windows_xp): New routine, returns 1 on Windows
12684         XP and 0 on older Windows versions.
12685
12686         * interfac-vms.ads: Removed, no longer used.
12687
12688 2006-02-13  Matthew Heaney  <heaney@adacore.com>
12689
12690         * a-rbtgso.adb, a-crbtgo.adb, a-crbtgk.adb, a-coorse.adb, 
12691         a-cohama.adb, a-ciorse.adb, a-cihama.adb, a-cihase.adb, 
12692         a-cohase.adb: All explicit raise statements now include an exception
12693         message.
12694
12695         * a-ciormu.ads, a-ciormu.adb, a-coormu.ads, a-coormu.adb
12696         (Update_Element_Preserving_Key): renamed op to just Update_Element.
12697         Explicit raise statements now include an exception message
12698
12699         * a-cihase.ads, a-cohase.ads: Removed comment.
12700
12701         * a-stboha.ads, a-stboha.adb, a-stfiha.ads, a-envvar.adb,
12702         a-envvar.ads, a-swbwha.ads, a-swbwha.adb, a-swfwha.ads, a-szbzha.ads,
12703         a-szbzha.adb, a-szfzha.ads: New files.
12704
12705 2006-02-13  Matthew Heaney  <heaney@adacore.com>
12706
12707         * a-cgcaso.adb, a-cgaaso.adb: Implemented using heapsort instead of
12708         quicksort.
12709
12710 2006-02-13  Eric Botcazou  <ebotcazou@adacore.com>
12711
12712         * lang.opt: Wvariadic-macros: New option.
12713         Wold-style-definition: Likewise.
12714         Wmissing-format-attribute: Likewise.
12715
12716         * misc.c (gnat_handle_option): New cases for -Wvariadic-macros,
12717         -Wold-style-definition and -Wmissing-format-attribute.
12718
12719 2006-02-13  Robert Dewar  <dewar@adacore.com>
12720
12721         * a-ticoio.ads, a-ticoio.adb: Add use clause (moved here from spec)
12722
12723         * a-coteio.ads, a-lcteio.ads, a-llctio.ads, a-scteio.ads: New files.
12724
12725 2006-02-13  Nicolas Roche  <roche@adacore.com>
12726
12727         * a-envvar.adb, a-envvar.ads: New files.
12728
12729 2006-02-13  Douglas Rupp  <rupp@adacore.com>
12730
12731         * s-parame-vms.ads: Renamed to s-parame-vms-alpha.ads
12732
12733         * s-parame-vms-alpha.ads, s-parame-vms-ia64.ads: New files.
12734
12735 2006-02-13  Pat Rogers  <rogers@adacore.com>
12736
12737         * a-rttiev.adb, a-rttiev.ads: New files.
12738
12739 2006-02-13  Hristian Kirtchev  <kirtchev@adacore.com>
12740
12741         * a-tiboio.adb, a-tiboio.ads, a-wwboio.adb,
12742         a-wwboio.ads, a-zzboio.adb, a-zzboio.ads:  New files.
12743
12744         * impunit.adb, Makefile.rtl: Added new Ada 2005 units.
12745
12746 2006-02-13  Robert Dewar  <dewar@adacore.com>
12747
12748         * rtsfind.adb, exp_prag.adb, lib-writ.adb, par-labl.adb, 
12749         sem_case.adb: Minor code reorganization (not Present should be No)
12750
12751 2006-02-13  Geert Bosch  <bosch@adacore.com>
12752             Gary Dismukes  <dismukes@adacore.com>
12753
12754         * a-tifiio.adb (Put_Digits): Test Last against To'First - 1 instead of
12755         0, since the lower bound of the actual string may be greater than one.
12756
12757         PR ada/20753
12758         * a-tifiio.adb (Put): Fix condition to raise Layout_Error when invalid
12759         layout is requested.
12760
12761 2006-02-13  Vincent Celier  <celier@adacore.com>
12762
12763         * back_end.adb (Scan_Compiler_Arguments): Check if
12764         Search_Directory_Present is True and, if it is, add the argument in
12765         the source search directory path.
12766
12767         * switch-c.adb (Scan_Front_End_Switches): Accept switch "-I". Set
12768         Search_Directory_Present to True.
12769
12770 2006-02-13  Joel Brobecker  <brobecke@adacore.com>
12771
12772         * bindgen.adb (Gen_Main_C): declare the ensure_reference variable as
12773         volatile, to tell the compiler to preserve this variable at any level
12774         of optimization.
12775         (Gen_Versions_Ada): Temporarily work around codegen bug.
12776
12777 2006-02-13  Vincent Celier  <celier@adacore.com>
12778
12779         * gnatlink.adb (Process_Binder_File): If -shared is specified, invoke
12780         gcc to link with option -shared-libgcc.
12781         (Gnatlink): Remove duplicate switches -shared-libgcc
12782
12783 2006-02-13  Robert Dewar  <dewar@adacore.com>
12784
12785         * gnatvsn.ads (Current_Year): New constant, used to easily update
12786         copyright on all GNAT tools.
12787
12788         * gnatls.adb, gnatname.adb, vms_conv.adb: Add 2006 to displayed
12789         copyright notice.
12790
12791 2006-02-13  Robert Dewar  <dewar@adacore.com>
12792
12793         * erroutc.ads, erroutc.adb (Set_Message_Blank): Don't insert space
12794         after hyphen (small aesthetic change useful for a range of numbers
12795         using ^-^.
12796         Suppress range checks for a couple of assignments which otherwise
12797         cause validity checks with validity checking turned on.
12798
12799         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Size):
12800         Improvement in error message for object.
12801         (Rep_Item_Too_Late): Remove '!' in warning message.
12802
12803 2006-02-13  Robert Dewar  <dewar@adacore.com>
12804             Eric Botcazou  <ebotcazou@adacore.com>
12805
12806         * err_vars.ads: Suppress range checks for a couple of assignments
12807         which otherwise cause validity checks with validity checking turned on.
12808         Update comments.
12809
12810         * errout.adb (Error_Msg_Internal): Do not suppress warning messages.
12811         Make message unconditional if it is a warning.
12812         (Error_Msg_NEL): Always output warning messages.
12813         Suppress range checks for a couple of assignments which otherwise
12814         cause validity checks with validity checking turned on.
12815
12816         * errout.ads (Message Insertion Characters): Document that '!' is
12817         implied by '?' in error messages.
12818
12819         * gnat1drv.adb: (Bad_Body): Remove '!' in warning message.
12820         (Gnat1drv): Use a goto to end of main subprogram instead of
12821         Exit_Program (E_Success) so that finalization can occur normally.
12822
12823 2006-02-13  Eric Botcazou  <ebotcazou@adacore.com>
12824
12825         * s-stchop.adb (Stack_Check): Raise Storage_Error if the argument has
12826         wrapped around.
12827
12828 2006-02-13  Vincent Celier  <celier@adacore.com>
12829
12830         * a-direct.adb (Duration_To_Time, OS_Time_To_Long_Integer): New
12831         Unchecked_Conversion functions.
12832         (Modification_Time): Use direct conversion of OS_Time to Calendar time
12833         when OpenVMS returns False.
12834
12835         * a-dirval-mingw.adb, a-dirval-vms.adb, a-dirval.ads,
12836         a-dirval.adb (OpenVMS): New Boolean function
12837
12838 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
12839             Thomas Quinot  <quinot@adacore.com>
12840
12841         * checks.adb (Build_Discriminant_Checks): If the expression being
12842         checks is an aggregate retrieve the values of its discriminants to
12843         generate the check, rather than creating a temporary and a reference
12844         to it.
12845         (Apply_Access_Check): Rewritten to handle new Is_Known_Null flag
12846         (Install_Null_Excluding_Check): Ditto
12847         (Selected_Length_Checks): Build actual subtype for the original Ck_Node,
12848         not for the renamed object, so that the actual itype is attached in the
12849         proper context.
12850
12851 2006-02-13  Robert Dewar  <dewar@adacore.com>
12852             Vincent Celier  <celier@adacore.com>
12853
12854         * debug.adb: Eliminate numeric switches for binder/gnatmake
12855
12856         * switch-m.adb (Normalize_Compiler_Switches): Record numeric debug
12857         switches for the compiler.
12858         (Scan_Make_Switches): Do not allow numeric debug switches for gnatmake
12859         (Scan_Make_Switches): When failing with an illegal switch, output an
12860         error message with the full switch.
12861         Eliminate numeric switches for binder/gnatmake
12862
12863         * switch.ads, switch.adb (Bad_Switch): New procedure
12864
12865         * switch-b.adb (Scan_Binder_Switches): Do not accept combined switches.
12866         Remove 0-9 as debug flag character possibilities
12867         -d is now controlling the primary stack size when its value is a
12868         positive. Also add checks against invalid values, and support for kb,
12869         mb. Ditto for -D switch.
12870
12871 2006-02-13  Robert Dewar  <dewar@adacore.com>
12872             Serguei Rybin  <rybin@adacore.com>
12873
12874         * opt.ads opt.adb: Add Ada_Version_Explicit_Config along with
12875         save/restore routines.
12876         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
12877         were not always properly handled previously.
12878         Since we are changing the tree format anyway, also get rid of the
12879         junk obsolete Immediate_Errors flag.
12880         (Tree_Read): Change the way of reading Tree_Version_String - now we
12881         read the version string from the tree even if its length is not the
12882         same as the length of the version string computed from Gnatvsn.
12883         (Search_Directory_Present): New Boolean flag for the compiler.
12884         Define Tree_Version_String as a dynamic string.
12885         (Default_Stack_Size): new variable, used to handle switch -d.
12886
12887         * par-prag.adb: 
12888         For pragma Ada_2005, remove stuff about setting Ada_Version_Explicit
12889         only for main unit.
12890         Add pragma Ada_2005 (synonym for Ada_05)
12891         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
12892         were not always properly handled previously.
12893
12894         * directio.ads, ioexcept.ads, sequenio.ads, text_io.ads: Change
12895         explicit Ada_95 to Ada_2005.
12896
12897 2006-02-13  Javier Miranda  <miranda@adacore.com>
12898             Robert Dewar  <dewar@adacore.com>
12899             Ed Schonberg  <schonberg@adacore.com>
12900
12901         * einfo.ads, einfo.adb (First_Tag_Component): Protect the frontend
12902         against errors in the source program: a private types for which the
12903         corresponding full type declaration is missing and pragma CPP_Virtual
12904         is used.
12905         (Is_Unchecked_Union): Check flag on Implementation_Base_Type.
12906         (Is_Known_Null): New flag
12907         (Has_Pragma_Pure): New flag
12908         (No_Return): Present in all entities, set only for procedures
12909         (Is_Limited_Type): A type whose ancestor is an interface is limited if
12910         explicitly declared limited.
12911         (DT_Offset_To_Top_Func): New attribute that is present in E_Component
12912         entities. Only used for component marked Is_Tag. If present it stores
12913         the Offset_To_Top function used to provide this value in tagged types
12914         whose ancestor has discriminants.
12915
12916         * exp_ch2.adb: Update status of new Is_Known_Null flag
12917
12918         * sem_ch7.adb: Maintain status of new Is_Known_Null flag
12919
12920         * sem_cat.adb (Get_Categorization): Don't treat function as Pure in
12921         the categorization sense if Is_Pure was set by pragma Pure_Function.
12922
12923 2006-02-13  Quentin Ochem  <ochem@adacore.com>
12924             Olivier Hainque  <hainque@adacore.com>
12925
12926         * bindusg.adb: Updated documentation for -d and -D switches.
12927
12928         * raise.h (__gnat_set_globals): added new parameter for
12929         Default_Stack_Size.
12930
12931         * init.c (__gnat_adjust_context_for_raise) <alpha-vms case>: Implement.
12932         (__gnat_handle_vms_condition): Adjust context before raise.
12933         (__gnat_install_handler): Restore the global vector setup for GCC
12934         versions before 3.4, as the frame based circtuitry is not available
12935         in this case.
12936         (__gnat_set_globals): added a parameter default_stack_size
12937         (__gl_default_stack_size): new variable.
12938
12939 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
12940
12941         * exp_aggr.adb (Build_Array_Aggr_Code): Rename variable
12942         "Others_Mbox_Present" to "Others_Box_Present" because the mbox concept
12943         does not exist in the Ada RM.
12944         (Compatible_Int_Bounds): Determine whether two integer range bounds
12945         are of equal length and have the same start and end values.
12946         (Is_Int_Range_Bounds): Determine whether a node is an integer range.
12947         (Build_Record_Aggr_Code): Perform proper sliding of a nested array
12948         aggregate when it is part of an object declaration.
12949         (Build_Record_Aggr_Code)  If the aggregate ttype is a derived type that
12950         constrains discriminants of its parent, add explicitly the discriminant
12951         constraints of the ancestor by retrieving them from the
12952         stored_constraint of the parent.
12953
12954 2006-02-13  Robert Dewar  <dewar@adacore.com>
12955
12956         * exp_attr.adb (Expand_N_Attribute_Reference, case Mechanism_Code): If
12957         attribute Mechanism_Code is applied to renamed subprogram, modify
12958         prefix to point to base subprogram.
12959         Max/Min attributes now violate Restriction No_Implicit_Conditionals
12960
12961         * sinfo.ads: Document that Mechanism_Code cannot be applied to
12962         renamed subprograms so that the front-end must replace the prefix
12963         appropriately.
12964
12965 2006-02-13  Javier Miranda  <miranda@adacore.com>
12966             Gary Dismukes  <dismukes@adacore.com>
12967
12968         * exp_ch3.adb (Component_Needs_Simple_Initialization): Add check for
12969         availability of RE_Interface_Tag.
12970         (Build_Initialization_Call): Fix wrong access to the discriminant value.
12971         (Freeze_Record_Type): Do not generate the tables associated with
12972         timed and conditional dispatching calls through synchronized
12973         interfaces if compiling under No_Dispatching_Calls restriction.
12974         When compiling for Ada 2005, for a nonabstract
12975         type with a null extension, call Make_Controlling_Function_Wrappers
12976         and insert the wrapper function declarations and bodies (the latter
12977         being appended as freeze actions).
12978         (Predefined_Primitive_Bodies): Do not generate the bodies of the
12979         predefined primitives associated with timed and conditional
12980         dispatching calls through synchronized interfaces if we are
12981         compiling under No_Dispatching_Calls.
12982         (Build_Init_Procedure):  Use RTE_Available to check if a run-time
12983         service is available before generating a call.
12984         (Make_Controlling_Function_Wrappers): New procedure.
12985         (Expand_N_Full_Type_Declaration): Create a class-wide master for
12986         access-to-limited-interfaces because they can be used to reference
12987         tasks that implement such limited interface.
12988         (Build_Offset_To_Top_Functions): Build the tree corresponding to the
12989         procedure spec and body of the Offset_To_Top function that is generated
12990         when the parent of a type with discriminants has secondary dispatch
12991         tables.
12992         (Init_Secondary_Tags): Handle the case in which the parent of the type
12993         containing secondary dispatch tables has discriminants to generate the
12994         correct arguments to call Set_Offset_To_Top.
12995         (Build_Record_Init_Proc): Add call to Build_Offset_To_Top_Functions.
12996
12997         * a-tags.ads, a-tags.adb: (Check_Index): Removed.
12998         Add Wide_[Wide_]Expanded_Name.
12999         (Get_Predefined_Prim_Op_Address): New subprogram that provides exactly
13000         the same functionality of Get_Prim_Op_Address but applied to predefined
13001         primitive operations because the pointers to the predefined primitives
13002         are now saved in a separate table.
13003         (Parent_Size): Modified to get access to the separate table of primitive
13004         operations or the parent type.
13005         (Set_Predefined_Prim_Op_Address): New subprogram that provides the same
13006         functionality of Set_Prim_Op_Address but applied to predefined primitive
13007         operations.
13008         (Set_Signature): New subprogram used to store the signature of a DT.
13009         (Displace): If the Offset_To_Top value is not static then call the
13010         function generated by the expander to get such value; otherwise use
13011         the value stored in the table of interfaces.
13012         (Offset_To_Top): The type of the actual has been changed to Address to
13013         give the correct support to tagged types with discriminants. In this
13014         case this value is stored just immediately after the tag field.
13015         (Set_Offset_To_Top): Two new formals have been added to indicate if the
13016         offset_to_top value is static and hence pass this value to the run-time
13017         to store it in the table of interfaces, or else if this value is dynamic
13018         and then pass to the run-time the address of a function that is
13019         generated by the expander to provide this value for each object of the
13020         type.
13021
13022         * rtsfind.ads (Default_Prin_Op_Count): Removed.
13023         (Default_Prim_Op_Count): New entity
13024         (Get_Predefined_Prim_Op_Address): New entity
13025         (Set_Predefined_Prim_Op_Address): New entity
13026         (RE_Set_Signature): New entity
13027
13028 2006-02-13  Thomas Quinot  <quinot@adacore.com>
13029             Ed Schonberg  <schonberg@adacore.com>
13030
13031         * exp_ch4.adb (Expand_Allocator_Expression): Pass Allocator => True to
13032         Make_Adjust_Call done for a newly-allocated object.
13033
13034         * exp_ch7.ads, exp_ch7.adb (Expand_Cleanup_Actions): If the statements
13035         in a subprogram are wrapped in a cleanup block, indicate that the
13036         subprogram contains an inner block with an exception handler.
13037         (Make_Adjust_Call): New Boolean formal Allocator indicating whether the
13038         Adjust call is for a newly-allocated object. In that case we must not
13039         assume that the finalization list chain pointers are correct (since they
13040         come from a bit-for-bit copy of the original object's pointers) so if
13041         the attach level would otherwise be zero (no change), we set it to 4
13042         instead to cause the pointers to be reset to null.
13043
13044         * s-finimp.adb (Attach_To_Final_List): New attach level: 4, meaning
13045         reset chain pointers to null.
13046
13047 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
13048
13049         * exp_ch5.adb (Expand_Assign_Array): If the right-hand side is a
13050         string, and the context requires a loop for the assignment (e.g.
13051         because the left-hand side is packed), generate a unique name for the
13052         temporary that holds the string, to prevent spurious name clashes.
13053
13054 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
13055             Javier Miranda  <miranda@adacore.com>
13056             Robert Dewar  <dewar@adacore.com>
13057             Gary Dismukes  <dismukes@adacore.com>
13058
13059         * exp_ch6.adb (Expand_Inlined_Call): Handle calls to functions that
13060         return unconstrained arrays.
13061         Update comments.
13062         (Expand_Call):  An indirect call through an access parameter of a
13063         protected operation is not a protected call.
13064         Add circuit to raise CE in Ada 2005 mode following call
13065         to Raise_Exception.
13066         (Register_DT_Entry): Do nothing if
13067         the run-time does not give support to abstract interfaces.
13068         (Freeze_Subprogram): In case of dispatching operations, do not generate
13069         code to register the operation in the dispatch table if the source
13070         is compiled with No_Dispatching_Calls.
13071         (Register_Predefined_DT_Entry): Generate code that calls the new
13072         run-time subprogram Set_Predefined_Prim_Op_Address instead of
13073         Set_Prim_Op_Address.
13074
13075         * sem_ch5.adb (Analyze_Assignment_Statement): Do not apply length checks
13076         on array assignments if the right-hand side is a function call that has
13077         been inlined. Check is performed on the assignment in the block.
13078         (Process_Bounds): If bounds and range are overloaded, apply preference
13079         rule for root operations to disambiguate, and diagnose true ambiguity.
13080         (Analyze_Assignment): Propagate the tag for a class-wide assignment with
13081         a tag-indeterminate right-hand side even when Expander_Active is True.
13082         Needed to ensure that dispatching calls to T'Input are allowed and
13083         get the tag of the target class-wide object.
13084
13085         * sem_ch6.adb (New_Overloaded_Entity): Handle entities that override
13086         an inherited primitive operation that already overrides several
13087         abstract interface primitives. For transitivity, the new entity must
13088         also override all the abstract interface primitives covered by the
13089         inherited overriden primitive.
13090         Emit warning if new entity differs from homograph in same scope only in
13091         that one has an access parameter and the other one has a parameter of
13092         a general access type with the same designated type, at the same
13093         position in the signature.
13094         (Make_Inequality_Operator): Use source locations of parameters and
13095         subtype marks from corresponding equality operator when creating the
13096         tree structure for the implicit declaration of "/=". This does not
13097         change anything in behaviour except that the decoration of the
13098         components of the subtree created for "/=" allows ASIS to get the
13099         string images of the corresponding identifiers.
13100         (Analyze_Return_Statement): Remove '!' in warning message.
13101         (Check_Statement_Sequence): Likewise.
13102         (Analyze_Subprogram_Body): For an access parameter whose designated type
13103         is an incomplete type imported through a limited_with clause, use the
13104         type of the corresponding formal in the body.
13105         (Check_Returns): Implicit return in No_Return procedure now raises
13106         Program_Error with a compile time warning, instead of beging illegal.
13107         (Has_Single_Return):  Function returning unconstrained type cannot be
13108         inlined if expression in unique return statement is not an identifier.
13109         (Build_Body_To_Inline): It is possible to inline a function call that
13110         returns an unconstrained type if all return statements in the function
13111         return the same local variable. Subsidiary procedure Has_Single_Return
13112         verifies that the body conforms to this restriction.
13113
13114         * sem_res.adb (Resolve_Equality_Op): If the operands do not have the
13115         same type, and  one of them is of an anonymous access type, convert
13116         the other operand to it, so that this is a valid binary operation for
13117         gigi.
13118         (Resolve_Type_Conversion): Handle subtypes of protected types and
13119         task types when accessing to the corresponding record type.
13120         (Resolve_Allocator): Add '\' in 2-line warning message.
13121         Remove '!' in warning message.
13122         (Resolve_Call): Add '\' in 2-line warning message.
13123         (Valid_Conversion): Likewise.
13124         (Resolve_Overloaded_Selected_Component): If disambiguation succeeds, the
13125         resulting type may be an access type with an implicit dereference.
13126         Obtain the proper component from the designated type.
13127         (Make_Call_Into_Operator): Handle properly a call to predefined equality
13128         given by an expanded name with prefix Standard, when the operands are
13129         of an anonymous access type.
13130         (Check_Fully_Declared_Prefix): New procedure, subsidiary of Resolve_
13131         Explicit_Dereference and Resolve_Selected_Component, to verify that the
13132         prefix of the expression is not of an incomplete type. Allows full
13133         diagnoses of all semantic errors.
13134         (Resolve_Actuals): If the actual is an allocator whose directly
13135         designated type is a class-wide interface we build an anonymous
13136         access type to use it as the type of the allocator. Later, when
13137         the subprogram call is expanded, if the interface has a secondary
13138         dispatch table the expander will add a type conversion to force
13139         the displacement of the pointer.
13140         (Resolve_Call): If a function that returns an unconstrained type is
13141         marked Inlined_Always and inlined, the call will be inlined and does
13142         not require the creation of a transient scope.
13143         (Check_Direct_Boolean_Op): Removed
13144         (Resolve_Comparison_Op): Remove call to above
13145         (Resolve_Equality_Op): Remove call to above
13146         (Resolve_Logical_Op): Inline above, since this is only call.
13147         (Valid_Conversion): Handle properly conversions between arrays of
13148         convertible anonymous access types.
13149
13150         PR ada/25885
13151         (Set_Literal_String_Subtype): If the lower bound is not static, wrap
13152         the literal in an unchecked conversion, because GCC 4.x needs a static
13153         value for a string bound.
13154
13155 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
13156             Hristian Kirtchev  <kirtchev@adacore.com>
13157
13158         * exp_ch9.adb (Expand_N_Protected_Type_Declaration): When creating the
13159         components of the corresponding record, take into account component
13160         definitions that are access definitions.
13161         (Expand_N_Asynchronous_Select): A delay unit statement rewritten as a
13162         procedure is not considered a dispatching call and will be expanded
13163         properly.
13164
13165 2006-02-13  Javier Miranda  <miranda@adacore.com>
13166
13167         * exp_disp.ads, exp_disp.adb (Expand_Dispatching_Call): If the
13168         controlling argument of the dispatching call is an abstract interface
13169         class-wide type then we use it directly.
13170         Check No_Dispatching_Calls restriction.
13171         (Default_Prim_Op_Position): Remove the code that looks for the last
13172         entity in the list of aliased subprograms. This code was wrong in
13173         case of renamings.
13174         (Fill_DT_Entry): Add assertion to avoid the use of this subprogram
13175         when the source is compiled with the No_Dispatching_Calls restriction.
13176         (Init_Predefined_Interface_Primitives): No need to inherit primitives
13177         if we are compiling with restriction No_Dispatching_Calls.
13178         (Make_Disp_XXX): Addition of assertion to avoid the use of all these
13179         subprograms if we are compiling under No_Dispatching_Calls restriction.
13180         (Make_DT): Generate a dispatch table with a single dummy entry if
13181         we are compiling with the No_Dispatching_Calls restriction. In
13182         addition, in this case we don't generate code that calls to the
13183         following run-time subprograms: Set_Type_Kind, Inherit_DT.
13184         (Make_Select_Specific_Data_Table): Add assertion to avoid the use
13185         of this subprogram if compiling with the No_Dispatching_Calls
13186         restriction.
13187         (Expand_Type_Conversion): Instead of using the actual parameter,
13188         the argument passed as parameter to the conversion function was
13189         erroneously referenced by the expander.
13190         (Ada_Actions): Addition of Get_Predefined_Prim_Op_Address,
13191         Set_Predefined_Primitive_Op_Address and Set_Signature.
13192         (Expand_Dispatching_Call): Generate call to
13193         Get_Predefined_Prim_Op_Address for predefined primitives.
13194         (Fill_DT_Entry): Generate call to Set_Predefined_Prim_Op_Address for
13195         predefined primitives.
13196         (Make_DT, Make_Secondary_DT): If the tagged type has no user defined
13197         primitives we reserve one dummy entry to ensure that the tag does not
13198         point to some memory that is associated with some other object. In
13199         addition, remove all the old code that generated the assignments
13200         associated with the signature of the dispatch table and replace them
13201         by a call to the new subprogram Set_Signature.
13202         (Set_All_DT_Position): Change the algorithm because now we have a
13203         separate dispatch table associated with predefined primitive operations.
13204         (Expand_Interface_Conversion): In case of non-static offset_to_top
13205         add explicit dereference to get access to the object after the call
13206         to displace the pointer to the object.
13207         (Expand_Interface_Thunk): Modify the generation of the actual used
13208         in the calls to the run-time function Offset_To_Top to fulfil its
13209         new interface.
13210         (Make_DT): Add the new actuals required to call Set_Offset_To_Top.
13211
13212 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
13213
13214         * exp_dist.adb (Copy_Specification): For access parameters, copy
13215         Null_Exclusion flag, which will have been set for stream subprograms
13216         in Ada2005 mode.
13217
13218 2006-02-13  Pascal Obry  <obry@adacore.com>
13219
13220         * expect.c (__gnat_expect_portable_execvp): New implementation. The
13221         previous implementation was using the C runtime spawnve routine but
13222         the corresponding wait was using directly the Win32 API. This was
13223         causing some times a lock when waiting for an event using
13224         WaitForSingleObject in __gnat_waitpid. This new implementation uses
13225         the Win32 CreateProcess routine. Avoiding mixing C runtime and Win32
13226         API fixes this problem.
13227
13228 2006-02-13  Robert Dewar  <dewar@adacore.com>
13229
13230         * exp_intr.adb (Expand_Unc_Deallocation): Correct error of bad analyze
13231         call.
13232
13233 2006-02-13  Thomas Quinot  <quinot@adacore.com>
13234
13235         * exp_pakd.ads: Fix typos in comments.
13236
13237         * exp_pakd.adb (Convert_To_PAT_Type): For the case of a bit packed
13238         array reference that is an explicit dereference, mark the converted
13239         (packed) array reference as analyzed to prevent a forthcoming
13240         reanalysis from resetting its type to the original (non-packed) array
13241         type.
13242
13243 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
13244             Javier Miranda  <miranda@adacore.com>
13245             Eric Botcazou  <ebotcazou@adacore.com>
13246
13247         * exp_util.ads, exp_util.adb (Find_Prim_Op,
13248         Is_Predefined_Primitive_Operation): When
13249         searching for the predefined equality operator, verify that operands
13250         have the same type.
13251         (Is_Predefined_Dispatching_Operation): Remove the code that looks
13252         for the last entity in the list of aliased subprograms. This code
13253         was wrong in case of renamings.
13254         (Set_Renamed_Subprogram): New procedure
13255         (Remove_Side_Effects): Replace calls to Etype (Exp) with use of the
13256         Exp_Type constant computed when entering this subprogram.
13257         (Known_Null): New function
13258         (OK_To_Do_Constant_Replacement): New function
13259         (Known_Non_Null): Check scope before believing Is_Known_Non_Null flag
13260         (Side_Effect_Free): An attribute reference 'Input is not free of
13261         side effect, unlike other attributes that are functions. (from code
13262         reading).
13263         (Remove_Side_Effects): Expressions that involve packed arrays or records
13264         are copied at the point of reference, and therefore must be marked as
13265         renamings of objects.
13266         (Is_Predefined_Dispatching_Operation): Return false if the operation is
13267         not a dispatching operation.
13268
13269         PR ada/18819
13270         (Remove_Side_Effects): Lift enclosing type conversion nodes for
13271         elementary types in all cases.
13272
13273 2006-02-13  Javier Miranda  <miranda@adacore.com>
13274
13275         * freeze.adb (Freeze_Entity): Handle subtypes of protected types and
13276         task types when accessing to the corresponding record type.
13277         Remove '!' in warning message.
13278
13279 2006-02-13  Olivier Hainque  <hainque@adacore.com>
13280
13281         * g-altive.ads (VECTOR_ALIGNMENT): Set to Min (16, Max_Alignment),
13282         to avoid useless and space inefficient overalignments on targets where
13283         Max_Alignment is larger than 16.
13284
13285 2006-02-13  Pascal Obry  <obry@adacore.com>
13286
13287         * g-catiio.adb (Sec_Number): New type used to compute the number of
13288         seconds since 1-1-1970.
13289         (Image) [Natural]: The parameter was an Integer, as we can't deal with
13290         negative numbers (years, months...) it is better to have a Natural here.
13291         Code clean-up.
13292         (Image) [Number]: Change parameter from Long_Integer to Number.
13293         (Image): Use Number type to compute the seconds since 1-1-1970 to fix an
13294         overflow for dates past year 2038.
13295
13296 2006-02-13  Matthew Heaney  <heaney@adacore.com>
13297
13298         *  g-dyntab.adb (Index_Of): conversion from Natural can no longer raise
13299         Constraint_Error.
13300
13301 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
13302
13303         * gnatbind.adb (Scan_Bind_Arg): Replace error by warning on -M and
13304         native platforms.
13305         (Gnatbind): Do not call Exit_Program (E_Success) at the end, so that
13306         finalization can occur normally.
13307
13308 2006-02-13  Vincent Celier  <celier@adacore.com>
13309
13310         * gnatcmd.adb (Rules_Switches): New table
13311         (Add_To_Rules_Switches): New procedure
13312         (GNATCmd): For command CHECK, put all options following "-rules" in the
13313         Rules_Switches table. Append these -rules switches after the -cargs
13314         switches.
13315
13316 2006-02-13  Robert Dewar  <dewar@adacore.com>
13317
13318         * g-spipat.adb (Image, case PC_Assign_Imm and case PC_Assign_OnM):
13319         These two cases were generating incorrect output, and if this unit
13320         was built with checks on, generated a discriminant mismatch constraint
13321         error.
13322
13323 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
13324             Robert Dewar  <dewar@adacore.com>
13325
13326         * lib-xref.adb (Get_Type_Reference): For a private type whose full
13327         view is an array type, indicate the component type as well, for
13328         navigation purposes.
13329         (Generate_Reference): Don't consider array ref on LHS to be a case
13330         of violating pragma Unreferenced.
13331         Do not give Ada 2005 warning except on real reference.
13332
13333 2006-02-13  Vincent Celier  <celier@adacore.com>
13334
13335         * make.adb (Collect_Arguments_And_Compile): For VMS, when compiling the
13336         main source, add switch -mdebug-main=_ada_ so that the executable can
13337         be debugged by the standard VMS debugger.
13338         (Gnatmake): Set No_Main_Subprogram to True when there is no main
13339         subprogram, to avoid issuing -mdebug-main=_ada_ for VMS uselessly.
13340         Exit the Multi_Main_Loop when Unique_Compile is True after compilation
13341         of the last source, as the binding and linking phases are never
13342         performed.
13343         Set all executable obsolete when rebuilding a library.
13344
13345         * makeutl.adb (Linker_Options_Switches): Do not process empty linker
13346         options.
13347
13348 2006-02-13  Javier Miranda  <miranda@adacore.com>
13349
13350         PR ada/23973
13351         * par-ch3.adb (P_Derived_Type_Def_Or_Private_Ext_Decl): Reorganize the
13352         code to improve the error message reported when the program has
13353         declarations of abstract interface types and it is not compiled with
13354         the -gnat05 switch.
13355         (P_Access_Definition): Reorganize the code to improve the error
13356         message reported when the new Ada 2005 syntax for anonymous
13357         access types is used and the program is not compiled with the
13358         -gnat05 switch.
13359
13360 2006-02-13  Robert Dewar  <dewar@adacore.com>
13361
13362         * par-ch6.adb, style.ads, styleg.adb, styleg.ads, stylesw.adb,
13363         stylesw.ads, usage.adb, vms_data.ads: Implement -gnatyI switch
13364         (MODE_IN)
13365
13366 2006-02-13  Javier Miranda  <miranda@adacore.com>
13367
13368         * par-endh.adb (Explicit_Start_Label): Add code to protect the parser
13369         against source containing syntax errors.
13370
13371 2006-02-13  Vincent Celier  <celier@adacore.com>
13372
13373         * prj.adb (Reset): Initialize the first element of table Namings with
13374         the standard naming data.
13375
13376 2006-02-13  Vincent Celier  <celier@adacore.com>
13377
13378         * prj.ads (Error_Warning): New enumeration type
13379
13380         * prj-nmsc.ads, prj-nmsc.adb (Error_Msg): If location parameter is
13381         unknown, use the location of the project to report the error.
13382         (When_No_Sources): New global variable
13383         (Report_No_Ada_Sources): New procedure
13384         (Check): New parameter When_No_Sources. Set value of global variable
13385         When_No_Sources,
13386         (Find_Sources): Call Report_No_Ada_Sources when appropriate
13387         (Get_Sources_From_File): Ditto
13388         (Warn_If_Not_Sources): Better warning messages indicating the unit name
13389         and the file name.
13390
13391         * prj-pars.ads, prj-pars.adb (Parse): New parameter When_No_Sources.
13392         Call Prj.Proc.Process with parameter When_No_Sources.
13393
13394         * prj-proc.ads, prj-proc.adb (Check): New parameter When_No_Sources.
13395         Call Recursive_Check with parameter When_No_Sources.
13396         (Recursive_Check): New parameter When_No_Sources. Call itself and
13397         Prj.Nmsc.Check with parameter When_No_Sources.
13398         (Process): New parameter When_No_Sources. Call Check with parameter
13399         When_No_Sources.
13400         (Copy_Package_Declarations): New procedure to copy renamed parameters
13401         and setting the location of the declared attributes to the location
13402         of the renamed package.
13403         (Process_Declarative_Items): Call Copy_Package_Declarations for renamed
13404         packages.
13405
13406 2006-02-13  Vincent Celier  <celier@adacore.com>
13407
13408         * prj-makr.adb (Make): Preserve the comments from the original project
13409         file.
13410         When removing nodes (attributes Source_Dirs, Source_Files,
13411         Source_List_File and package Naming), save the comments and attach the
13412         saved comments to the newly created nodes.
13413         Do not add a with clause for the naming package if one already exists.
13414
13415 2006-02-13  Javier Miranda  <miranda@adacore.com>
13416             Gary Dismukes  <dismukes@adacore.com>
13417             Robert Dewar  <dewar@adacore.com>
13418
13419         * restrict.ads (No_Dispatching_Calls): New GNAT restriction.
13420
13421         * sem_disp.adb (Override_Dispatching_Operation): Traverse the list of
13422         aliased entities to look for the overriden abstract interface
13423         subprogram.
13424         (Is_Interface_Subprogram): Complete documentation.
13425         (Check_Dispatching_Operation): Do not generate code to register the
13426         operation in the dispatch table if the source is compiled with
13427         restriction No_Dispatching_Calls.
13428         (Override_Dispatching_Operation): Check for illegal attempt to override
13429         No_Return procedure with procedure that is not No_Return
13430         (Check_Dispatching_Call): Suppress the check for an abstract operation
13431         when the original node of an actual is a tag-indeterminate attribute
13432         call, since the attribute, which must be 'Input, can never be abstract.
13433         (Is_Tag_Indeterminate): Handle checking of tag indeterminacy of a
13434         call to the Input attribute (even when rewritten).
13435         (Propagate_Tag): Augment comment to indicate the possibility of a call
13436         to an Input attribute.
13437
13438         * sem_disp.ads (Override_Dispatching_Operation): Moved to spec to allow
13439         calling it from Exp_Ch3.Make_Controlling_Function_Wrappers.
13440
13441         * s-rident.ads: (No_Dispatching_Calls): New GNAT restriction.
13442         No_Wide_Characters is no longer partition-wide
13443         No_Implementation_Attributes/Pragmas are now Ada 2005 (AI-257)
13444         rather than GNAT
13445
13446 2006-02-13  Douglas Rupp  <rupp@adacore.com>
13447
13448         * s-auxdec-vms_64.ads (Short_Address): Wrap it in a type.
13449
13450 2006-02-13  Javier Miranda  <miranda@adacore.com>
13451
13452         * sem_aggr.adb (Resolve_Record_Aggregate): Restructure the code that
13453         handles default-initialized components to keep separate the management
13454         of this feature but also avoid the unrequired resolution and
13455         expansion of components that do not have partially initialized
13456         values.
13457         (Collect_Aggr_Bounds): Add '\' in 2-line warning message.
13458         (Check_Bounds): Likewise.
13459         (Check_Length): Likewise.
13460
13461 2006-02-13  Javier Miranda  <miranda@adacore.com>
13462             Ed Schonberg  <schonberg@adacore.com>
13463
13464         * sem_attr.adb (Analyze_Attribute): In case of 'Class applied to an
13465         abstract interface type call analyze_and_resolve to expand the type
13466         conversion into the corresponding displacement of the
13467         reference to the base of the object.
13468         (Eval_Attribute, case Width): For systems where IEEE extended precision
13469         is supported, the maximum exponent occupies 4 decimal digits.
13470         (Accessibility_Message): Add '\' in 2-line warning message.
13471         (Resolve_Attribute): Likewise.
13472         (case Attribute_Access): Significantly revise checks
13473         for illegal access-to-subprogram Access attributes to properly enforce
13474         the rules of 3.10.2(32/2).
13475         Diagnose use of current instance with an illegal attribute.
13476
13477         * sem_util.ads, sem_util.adb (Enclosing_Generic_Body): Change formal
13478         to a Node_Id.
13479         (Enclosing_Generic_Unit): New function to return a node's innermost
13480         enclosing generic declaration node.
13481         (Compile_Time_Constraint_Error): Remove '!' in warning messages.
13482         (Type_Access_Level): The accessibility level of anonymous acccess types
13483         associated with discriminants is that of the current instance of the
13484         type, and that's deeper than the type itself (AARM 3.10.2 (12.3.21)).
13485         (Compile_Time_Constraint_Error): Handle case of conditional expression.
13486         (Kill_Current_Values_For_Entity): New function
13487         (Enter_Name): Change formal type to Entity_Id
13488
13489 2006-02-13  Hristian Kirtchev  <kirtchev@adacore.com>
13490             Ed Schonberg  <schonberg@adacore.com>
13491             Gary Dismukes  <dismukes@adacore.com>
13492
13493         * sem_ch10.adb (Check_Redundant_Withs): New procedure in
13494         Analyze_Compilation_Unit.
13495         Detect and warn on redundant with clauses detected in a package spec
13496         and/or body when -gnatwr is used.
13497         (Analyze_Context): Analyze config pragmas before other items
13498         (Install_Context_Items): Don't analyze config pragmas here
13499         (Install_Limited_Withed_Unit): Set limited entity of package in
13500         with_clause so that cross-reference information or warning messages on
13501         unused packages can be properly generated
13502         (Is_Visible_Through_Renamings): Return false if the limited_with_clause
13503         has Error_Posted set. Prevent infinite loops in illegal programs.
13504         (Check_Private_Child_Unit): Move test for a nonprivate with clause down
13505         to the point of the error test requiring the current unit to be private.
13506         This ensures that private with clauses are not exempted from the basic
13507         checking for being a descendant of the same library unit parent as a
13508         withed private descendant unit.
13509         (Check_Private_Limited_Withed_Unit): Revise the checking algorithm to
13510         handle private with clauses properly, as well as to account for cases
13511         where the withed unit is a public descendant of a private ancestor
13512         (in which case the current unit must be a descendant of the private
13513         ancestor's parent). The spec comments were updated accordingly. Also,
13514         the old error message in this subprogram was replaced with error
13515         messages that mirror the errors tested and reported by
13516         Check_Private_Child_Unit.
13517         Parameter and variable names improved for readability.
13518         (Install_Limited_Context_Clauses): Remove test for a withed unit being
13519         private as the precondition for calling
13520         Check_Private_Limited_Withed_Unit since that subprogram has been
13521         revised to test public units as well as private units.
13522
13523 2006-02-13  Thomas Quinot  <quinot@adacore.com>
13524             Robert Dewar  <dewar@adacore.com>
13525             Ed Schonberg  <schonberg@adacore.com>
13526             Javier Miranda  <miranda@adacore.com>
13527
13528         * sem_ch12.adb (Inline_Instance_Body): Remove erroneous assumption
13529         that Scope_Stack.First = 1.
13530         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
13531         were not always properly handled previously.
13532         (Formal_Entity): Complete rewrite, to handle properly some complex case
13533         with multiple levels of parametrization by formal packages.
13534         (Analyze_Formal_Derived_Type): Propagate Ada 2005 "limited" indicator
13535         to the corresponding derived type declaration for proper semantics.
13536
13537         * sem_prag.adb (Analyze_Pragma): Remove '!' in warning message.
13538         (Check_Component): Enforce restriction on components of
13539         unchecked_unions: a component in a variant cannot contain tasks or
13540         controlled types.
13541         (Unchecked_Union): Allow nested variants and multiple discriminants, to
13542         conform to AI-216.
13543         Add pragma Ada_2005 (synonym for Ada_05)
13544         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
13545         were not always properly handled previously.
13546         Document that pragma Propagate_Exceptions has no effect
13547         (Analyze_Pragma, case Pure): Set new flag Has_Pragma_Pure
13548         (Set_Convention_From_Pragma): Check that if a convention is
13549         specified for a dispatching operation, then it must be
13550         consistent with the existing convention for the operation.
13551         (CPP_Class): Because of the C++ ABI compatibility, the programmer is no
13552         longer required to specify an vtable-ptr component in the record. For
13553         compatibility reasons we leave the support for the previous definition.
13554         (Analyze_Pragma, case No_Return): Allow multiple arguments
13555
13556         * sem_ch3.ads, sem_ch3.adb (Check_Abstract_Overriding): Flag a
13557         non-overrideen inherited operation with a controlling result as
13558         illegal only its implicit declaration comes from the derived type
13559         declaration of its result's type.
13560         (Check_Possible_Deferred_Completion): Relocate the object definition
13561         node of the subtype indication of a deferred constant completion rather
13562         than directly analyzing it. The analysis of the generated subtype will
13563         correctly decorate the GNAT tree.
13564         (Record_Type_Declaration): Check whether this is a declaration for a
13565         limited derived record before analyzing components.
13566         (Analyze_Component_Declaration): Diagnose record types  not explicitly
13567         declared limited when a component has a limited type.
13568         (Build_Derived_Record_Type): Code reorganization to check if some of
13569         the inherited subprograms of a tagged type cover interface primitives.
13570         This check was missing in case of a full-type associated with a private
13571         type declaration.
13572         (Constant_Redeclaration): Check that the subtypes of the partial and the
13573         full view of a constrained deferred constant statically match.
13574         (Mentions_T): A reference to the current type in an anonymous access
13575         component declaration  must be an entity name.
13576         (Make_Incomplete_Type_Declaration): If type is tagged, set type of
13577         class_wide type to refer to full type, not to the incomplete one.
13578         (Add_Interface_Tag_Components): Do nothing if RE_Interface_Tag is not
13579         available. Required to give support to the certified run-time.
13580         (Analyze_Component_Declaration): In case of anonymous access components
13581         perform missing checks for AARM 3.9.2(9) and 3.10.2 (12.2).
13582         (Process_Discriminants): For an access discriminant, use the
13583         discriminant specification as the associated_node_for_itype, to
13584         simplify accessibility checks.
13585
13586 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
13587             Javier Miranda  <miranda@adacore.com>
13588
13589         * sem_ch4.adb (Remove_Abstract_Interpretations): Even if there are no
13590         abstract interpretations on an operator, remove interpretations that
13591         yield Address or a type derived from it, if one of the operands is an
13592         integer literal.
13593         (Try_Object_Operation.Try_Primitive_Operation,
13594         Try_Object_Operation.Try_Class_Wide_Operation): Set proper source
13595         location when creating the new reference to a primitive or class-wide
13596         operation as a part of rewriting a subprogram call.
13597         (Try_Primitive_Operations): If context requires a function, collect all
13598         interpretations after the first match, because there may be primitive
13599         operations of the same type with the same profile and different return
13600         types. From code reading.
13601         (Try_Primitive_Operation): Use the node kind to choose the proper
13602         operation when a function and a procedure have the same parameter
13603         profile.
13604         (Complete_Object_Operation): If formal is an access parameter and prefix
13605         is an object, rewrite as an Access reference, to match signature of
13606         primitive operation.
13607         (Find_Equality_Type, Find_One_Interp): Handle properly equality given
13608         by an expanded name with prefix Standard, when the operands are of an
13609         anonymous access type.
13610         (Remove_Abstract_Operations): If the operation is abstract because it is
13611         inherited by a user-defined type derived from Address, remove it as
13612         well from the set of candidate interpretations of an overloaded node.
13613         (Analyze_Membership_Op): Membership test not applicable to cpp-class
13614         types.
13615
13616 2006-02-13  Bob Duff  <duff@adacore.com>
13617
13618         * sem_ch8.adb (Note_Redundant_Use): Suppress unhelpful warning about
13619         redundant use clauses.
13620         In particular, if the scope of two use clauses overlaps, but one is not
13621         entirely included in the other, we should not warn.  This can happen
13622         with nested packages.
13623         (Analyze_Subprogram_Renaming): Protect the compiler against previously
13624         reported errors. The bug was reported when the compiler was built
13625         with assertions enabled.
13626         (Find_Type): If the node is a 'Class reference and the prefix is a
13627         synchronized type without a corresponding record, return the type
13628         itself.
13629
13630 2006-02-13  Javier Miranda  <miranda@adacore.com>
13631
13632         * sem_ch9.adb (Analyze_Protected_Type, Analyze_Task_Type): Check that
13633         if this is the full-declaration associated with a private declaration
13634         that implement interfaces, then the private type declaration must be
13635         limited.
13636         (Analyze_Single_Protected, Analyze_Single_Task): Do not mark the object
13637         as aliased. The use of the 'access attribute is not available for such
13638         object (for this purpose the object should be explicitly marked as
13639         aliased, but being an anonymous type this is not possible).
13640
13641 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
13642             Robert Dewar  <dewar@adacore.com>
13643
13644         * sem_elab.adb (Same_Elaboration_Scope): A package that is a
13645         compilation unit is an elaboration scope.
13646         (Add_Task_Proc): Add '\' in 2-line warning message.
13647         (Activate_All_Desirable): Deal with case of unit with'ed by parent
13648
13649 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
13650             Javier Miranda  <miranda@adacore.com>
13651
13652         * sem_type.adb (Write_Overloads): Improve display of candidate
13653         interpretations.
13654         (Add_One_Interp): Do not add to the list of interpretations aliased
13655         entities corresponding with an abstract interface type that is an
13656         immediate ancestor of a tagged type; otherwise we have a dummy
13657         conflict between this entity and the aliased entity.
13658         (Disambiguate): The predefined equality on universal_access is not
13659         usable if there is a user-defined equality with the proper signature,
13660         declared in the same declarative part as the designated type.
13661         (Find_Unique_Type): The universal_access equality operator defined under
13662         AI-230 does not cover pool specific access types.
13663         (Covers): If one of the types is a generic actual subtype, check whether
13664         it matches the partial view of the other type.
13665
13666 2006-02-13  Thomas Quinot  <quinot@adacore.com>
13667
13668         * sinput-d.adb (Write_Line): Update the Source_Index_Table after each
13669         line. This is necessary to allow In_Extended_Main_Unit to provide
13670         correct results for itypes while writing out expanded source.
13671         (Close_File): No need to update the source_index_table here since it's
13672         now done for each line.
13673
13674 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
13675             Robert Dewar  <dewar@adacore.com>
13676
13677         * sprint.adb (Write_Itype): Preserve Sloc of declaration, if any, to
13678         preserve the source unit where the itype is declared, and prevent a
13679         backend abort.
13680         (Note_Implicit_Run_Time_Call): New procedure
13681         (Write_Itype): Handle missing cases (E_Class_Wide_Type and
13682         E_Subprogram_Type)
13683
13684         * sprint.ads: Document use of $ for implicit run time routine call
13685
13686 2006-02-13  Quentin Ochem  <ochem@adacore.com>
13687
13688         * s-stausa.adb (Initialize_Analyzer): fixed error in assignment of
13689         task name.
13690
13691 2006-02-13  Bob Duff  <duff@adacore.com>
13692
13693         * s-valint.adb (Scan_Integer): Call Scan_Raw_Unsigned instead of
13694         Scan_Unsigned, so we do not scan leading blanks and sign twice.
13695         Integer'Value("- 5") and Integer'Value("-+5") now correctly
13696         raise Constraint_Error.
13697
13698         * s-vallli.adb (Scan_Long_Long_Integer): Call
13699         Scan_Raw_Long_Long_Unsigned instead of Scan_Long_Long_Unsigned, so we
13700         do not scan leading blanks and sign twice.
13701         Integer'Value("- 5") and Integer'Value("-+5") now correctly
13702         raise Constraint_Error.
13703
13704         * s-valllu.ads, s-valllu.adb (Scan_Raw_Long_Long_Unsigned,
13705         Scan_Long_Long_Unsigned): Split out most of the processing from
13706         Scan_Long_Long_Unsigned out into
13707         Scan_Raw_Long_Long_Unsigned, so that Val_LLI can call the Raw_ version.
13708         This prevents scanning leading blanks and sign twice.
13709         Also fixed a bug: Modular'Value("-0") should raise Constraint_Error
13710         See RM-3.5(44).
13711
13712         * s-valuns.ads, s-valuns.adb (Scan_Raw_Unsigned, Scan_Unsigned): Split
13713         out most of the processing from Scan_Unsigned out into
13714         Scan_Raw_Unsigned, so that Val_LLI can call the Raw_ version.
13715         This prevents scanning leading blanks and sign twice.
13716
13717         * s-valuti.ads, s-valuti.adb (Scan_Plus_Sign): Add Scan_Plus_Sign, for
13718         use with Modular'Value attribute.
13719         (Scan_Plus_Sign): Add Scan_Plus_Sign, for use with Modular'Value
13720         attribute.
13721
13722 2006-02-13  Robert Dewar  <dewar@adacore.com>
13723
13724         * s-wchjis.adb (JIS_To_EUC): Raise Constraint_Error for invalid value
13725
13726 2006-02-13  Eric Botcazou  <ebotcazou@adacore.com>
13727
13728         * tracebak.c (PPC AIX/Darwin): Define FORCE_CALL to 1.
13729         (PPC VxWorks): Likewise.
13730         (Generic unwinder): Define FORCE_CALL to 0 if not already defined.
13731         (forced_callee): Make non-inlinable and non-pure.
13732         (__gnat_backtrace): Call forced_callee if FORCE_CALL is set to 1.
13733
13734 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
13735             Ben Brosgol  <brosgol@adacore.com>
13736             Robert Dewar  <dewar@adacore.com>
13737
13738         * gnat_rm.texi, gnat_ugn.texi: Remove limitations with sparc m64
13739         support.
13740         Document that gnatbind -M option is for cross environments only.
13741         Added description of using gnatmem to trace gnat rtl allocs and deallocs
13742         Add note on use of $ to label implicit run time calls
13743         Add documentation for -gnatyI (check mode IN)
13744         Updated chapter on compatibility with HP Ada
13745         VMS-oriented edits.
13746         Ran spell and corrected errors
13747         Add documentation for gnatbind -d and rework documentation of -D
13748         at the same time.
13749         Add subprogram/data elimination section.
13750         Minor editing of annex A.
13751         Add section for gnatcheck.
13752         Add documentation for restriction No_Dispatching_Calls
13753         Add documentation for pragma Ada_2005
13754         Remove mention of obsolete pragma Propagate_Exceptions
13755         Document that pragma Unreferenced can appear after DO in ACCEPT
13756         Clarify Pure_Function for library level units
13757         Mention Max/Min in connection with No_Implicit_Conditionals
13758         No_Wide_Characters restriction is no longer partition-wide
13759         Add a nice example for Universal_Literal_String attribute
13760         Document that pragma No_Return can take multiple arguments
13761
13762         * ug_words: Added entry for gnatcheck
13763
13764         * g-ctrl_c.ads (Install_Handler): Enhance comments
13765
13766         * g-os_lib.ads: Add comments to OS_Exit that it is abrupt termination
13767
13768         * g-trasym.ads: Add documentation on how to do off line symbolic
13769         traceback computation.
13770
13771         * s-fatgen.adb: Add comments for Unaligned_Valid
13772
13773         * stand.ads: Fix typo in comment
13774
13775 2006-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13776
13777         * Make-lang.in (check-gnat): Run run_acats with $(SHELL).
13778
13779 2006-02-06  Roger Sayle  <roger@eyesopen.com>
13780
13781         * decl.c (gnat_substitute_in_type): Don't handle CHAR_TYPE.
13782
13783 2006-02-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13784
13785         PR target/25926
13786         * initialize.c (__gnat_initialize): Provide HP-UX 10 host and target
13787         implementation that calls __main.
13788
13789 2006-01-25  Peter O'Gorman  <peter@pogma.com>
13790
13791         PR bootstrap/25859
13792         * Makefile.in (GCC_LINK): Remove quotes.
13793         (tools targets): Link with either $(GNATLINK) --GCC="$(GCC_LINK)"
13794         or $(GCC_LINK).
13795
13796         (powerpc-darwin): Pass -shared-libgcc when building shared library.
13797
13798 2006-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13799
13800         PR ada/24533
13801         * s-osinte-linux-hppa.ads: Reduce alignment of atomic_lock_t to 8.
13802
13803 2005-12-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13804
13805         * s-osinte-linux-hppa.ads: Correct alignment of atomic_lock_t.
13806
13807 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
13808
13809         * Makefile.in: Remove dummy setting of GCC_FOR_TARGET, no longer
13810         needed.
13811
13812 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
13813
13814         * Make-lang.in: Update dependencies
13815
13816 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
13817
13818         * Make-lang.in: Add rule for ada/exp_sel.o
13819
13820 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
13821
13822         * Makefile.in (mingw section): Remove EH_MECHANISM setting.
13823
13824 2005-12-09  Arnaud Charlet  <charlet@adacore.com>
13825
13826         * gnatvsn.ads (Library_Version): Bump to version 4.2
13827         (ASIS_Version_Number): Bumped.
13828
13829 2005-12-09  Doug Rupp  <rupp@adacore.com>
13830
13831         * mlib-tgt-vms-ia64.adb, mlib-tgt-vms-alpha.adb (Is_Interface): Change
13832         Ada bind file prefix on VMS from b$ to b__.
13833         (Build_Dynamic_Library): Change Init file suffix on VMS from $init to
13834         __init.
13835
13836         * prj-nmsc.adb: Change some Hostparm.OpenVMS checks to
13837         Targparm.OpenVMS_On_Target.
13838         (Object_Suffix): Initialize with target object suffix.
13839         (Get_Unit): Change Ada bind file prefix on VMS from b$ to b__.
13840
13841         * butil.adb: Change some Hostparm.OpenVMS checks to
13842         Targparm.OpenVMS_On_Target.
13843
13844         * clean.adb: Change some Hostparm.OpenVMS checks to
13845         Targparm.OpenVMS_On_Target.
13846         (Object_Suffix): Initialize with call to Get_Target_Object_Suffix.
13847         ({declaraction},Delete_Binder_Generated_Files,{initialization}): Change
13848         Ada bind file prefix on VMS from b$ to b__.
13849
13850         * gnatlink.adb (Process_Args): Call Add_Src_Search_Dir for -I in
13851         --GCC so that Get_Target_Parameters can find system.ads.
13852         (Gnatlink): Call Get_Target_Parameters in mainline.
13853         Initialize standard packages for Targparm.
13854         Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target.
13855         (Process_Args): Also Check for object files with target object
13856         extension.
13857         (Make_Binder_File_Names): Create with target object extension.
13858         (Make_Binder_File_Names): Change Ada bind file prefix on VMS from b$
13859         to b__.
13860
13861         * mlib-prj.adb: Change some Hostparm.OpenVMS checks to
13862         Targparm.OpenVMS_On_Target.
13863         ({declaration},Build_Library,Check_Library): Change Ada bind file
13864         prefix on VMS from b$ to b__.
13865
13866         * osint-b.adb: Change some Hostparm.OpenVMS checks to
13867         Targparm.OpenVMS_On_Target.
13868         (Create_Binder_Output): Change Ada bind file prefix on VMS from b$ to
13869         b__.
13870
13871         * targext.c: New file.
13872
13873         * Makefile.in: add support for vxworks653 builds
13874         (../../vxaddr2line): gnatlink with targext.o.
13875         (TOOLS_LIBS): Move targext.o to precede libgnat.
13876         (init.o, initialize.o): Minor clean up in dependencies.
13877         (GNATLINK_OBJS): Add targparm.o, snames.o
13878         Add rules fo building targext.o and linking it explicitly with all
13879         tools.
13880         Also add targext.o to gnatlib.
13881
13882         * Make-lang.in: Add rules for building targext.o and linking it in
13883         with gnat1 and gnatbind.
13884         Add entry for exp_sel.o.
13885
13886         * osint.adb Change some Hostparm.OpenVMS checks to
13887         Targparm.OpenVMS_On_Target.
13888         (Object_File_Name): Use target object suffix.
13889
13890         * osint.ads (Object_Suffix): Remove, no longer used.
13891         (Target_Object_Suffix): Initialize with target object suffix.
13892
13893         * rident.ads: Add special exception to license.
13894
13895         * targparm.adb (Get_Target_Parameters): Set the value of
13896         Multi_Unit_Index_Character after OpenVMS_On_Target gets its definitive
13897         value.
13898         (Get_Target_Parameters): Set OpenVMS_On_Target if openvms.
13899         
13900         * targparm.ads: Add special exception to license.
13901
13902         * g-os_lib.ads, g-os_lib.adb (Get_Target_Debuggable_Suffix): New
13903         function.
13904         (Copy_File): Make sure from file is closed if error on to file
13905         (Get_Target_Executable_Suffix, Get_Target_Object_Suffix): New functions.
13906
13907         * make.adb (Object_Suffix): Intialize with Get_Target_Object_Suffix.
13908         (Executable_Suffix): Intialize with Get_Target_Executable_Suffix.
13909
13910         * osint-c.adb (Set_Output_Object_File_Name): Initialize extension with
13911         target object suffix.
13912
13913 2005-12-09  Jose Ruiz  <ruiz@adacore.com>
13914             Quentin Ochem  <ochem@adacore.com>
13915             Florian Villoing  <villoing@adacore.com>
13916
13917         * a-taster.ads, a-taster.adb: New files.
13918
13919         * a-elchha.adb (Last_Chance_Handler): Change the task termination soft
13920         link to the version that does nothing. This way the task termination
13921         routine is not executed twice for the environment task when finishing
13922         because of an unhandled exception.
13923
13924         * a-exextr.adb (Notify_Unhandled_Exception): Call the task termination
13925         handler because of an unhandled exception.
13926
13927         * a-taside.adb (Abort_Tasks): Call the Abort_Tasks procedure from
13928         System.Tasking.Utilities instead of that in System.Tasking.Stages.
13929
13930         * s-finimp.adb (initialization code): Modify the soft link for the
13931         finalization of the global list instead of Adafinal.
13932
13933         * s-soflin.ads, s-soflin.adb (Task_Termination_NT): Add this
13934         non-tasking version of the soft link for task termination. We do
13935         nothing since if we are using the non-tasking version it
13936         means that the task termination functionality is not used.
13937         (Null_Finalize_Global_List): Add this null version for the procedure
13938         in charge of finalizing the global list for controlled objects.
13939         (Null_Adafinal): Remove this procedure. Adafinal_NT has been created
13940         instead for handling run-time termination in a more flexible way.
13941         (Adafinal_NT): This new procedure will take care of finalizing the
13942         global list for controlled objects if needed, but no tasking
13943         finalization.
13944
13945         * s-tarest.adb (Task_Lock): Do not try to lock again the
13946         Global_Task_Lock if we already own it. Otherwise, we get blocked in
13947         some run-time operations.
13948         (Task_Unlock): Do not try to actually unlock the Global_Task_Lock
13949         until all nested locks have been released.
13950         (Task_Wrapper): Call the fall-back task termination handler. It
13951         applies to all tasks but the environment task.
13952         (Finalize_Global_Tasks): Add the call for the task termination
13953         procedure for the environment task.
13954         (Task_Wrapper): suppress warnings around declaration of
13955         Secondary_Stack_Address.
13956
13957         * s-tasini.adb (Final_Task_Unlock): Global_Task_Lock_Nesting has been
13958         moved to the Common_ATCB record.
13959         (Task_Lock): Global_Task_Lock_Nesting has been moved to the
13960         Common_ATCB record.
13961         (Task_Unlock): Global_Task_Lock_Nesting has been moved to the
13962         Common_ATCB record.
13963
13964         * s-taskin.adb (Initialize_ATCB): Initialize Global_Task_Lock_Nesting,
13965         Fall_Back_Handler, and Specific_Handler.
13966
13967         * s-taskin.ads (Cause_Of_Termination): Redefine this type here, already
13968         defined in Ada.Task_Termination, to avoid circular dependencies.
13969         (Termination_Handler): Redefine this type here, alredy defined in
13970         Ada.Task_Termination, for avoiding circular dependencies.
13971         (Common_ATCB): Add the Fall_Back_Handler and Specific_Handler required
13972         for storing task termination handlers. In addition,
13973         Global_Task_Lock_Nesting has been moved from Ada_Task_Control_Block to
13974         Common_ATCB because it is used by both the regular and the restricted
13975         run times.
13976         (Ada_Task_Control_Block): Move Global_Task_Lock_Nesting from here to
13977         Common_ATCB because it is used by both the regular and the restricted
13978         run times.
13979         (Common_ATCB): Added a dynamic task analyzer field.
13980
13981         * s-tassta.adb (Abort_Tasks): Move the code in charge of checking
13982         potentially blocking operations to System.Tasking.Utilities.Abort_Tasks.
13983         (Task_Wrapper): Call the task termination handler. It applies to all
13984         tasks but the environment task.
13985         (Finalize_Global_Tasks): Call the task termination procedure for the
13986         environment task. The call to Finalize_Global_List is now performed
13987         using the soft links mechanism.
13988         (Task_Wrapper): added dynamic stack analysis.
13989
13990         * s-tasuti.adb (Abort_Tasks): The code in charge of checking
13991         potentially blocking operations has been moved from
13992         System.Tasking.Stages.Abort_Tasks to this procedure. There can be
13993         direct calls to System.Tasking.Utilities.Abort_Tasks that do not pass
13994         through System.Tasking.Stages.Abort_Tasks, and we do not want to miss
13995         this run-time check.
13996
13997         * s-solita.adb (Task_Termination_Handler_T): Add this task-safe version
13998         of task termination procedure.
13999         (Init_Tasking_Soft_Links): Install the task-safe version of the soft
14000         link for the task termination procedure.
14001
14002         * bindusg.adb: (Bindusg): Added documentation for -u option.
14003
14004         * bindgen.adb (Get_Main_Ada) Added handling of dynamic stack analysis.
14005         (Get_Main_C): Add handling of dynamic stack analysis.
14006         (Gen_Output_File_C): Add external functions for dynamic stack analysis.
14007
14008         * Makefile.rtl: Add entry for a-taster (Ada.Task_Termination).
14009         (GNATRTL_NONTASKING_OBJS) Added entries for dynamic stack analysis
14010         (GNATRTL_NONTASKING_OBJS): Add AltiVec files.
14011
14012         * opt.ads: Added flags used by dynamic stack measurement.
14013         (Max_Line_Length): Remove (not used anymore)
14014
14015         * s-io.ads, s-io.adb (Standard_Error): new subprogram
14016         (Standart_Output): new subprogram
14017         (Set_Output): new subprogram
14018         (Put): now uses the value of Current_Out to know if the output has to be
14019         send to stderr or stdout.
14020         
14021         * s-stausa.ads: Complete implementation.
14022
14023         * switch-b.adb: Added handling of -u switch for dynamic stack analysis.
14024         
14025         * impunit.adb (Non_Imp_File_Names_05): Add Ada.Task_Termination to the
14026         list of Ada 05 files.
14027         (GNAT Library Units): Add AltiVec files.
14028
14029         * g-allein.ads, g-alleve.adb, g-alleve.ads, g-altcon.adb,
14030         g-altcon.ads, g-altive.ads, g-alveop.adb, g-alveop.ads
14031         g-alvety.ads, g-alvevi.ads: New files providing altivec API.
14032
14033 2005-12-09  Nicolas Setton  <setton@adacore.com>
14034
14035         * adaint.c (__gnat_locate_regular_file): Return immediately if
14036         file_name is empty.
14037
14038 2005-12-09  Javier Miranda  <miranda@adacore.com>
14039             Hristian Kirtchev  <kirtchev@adacore.com>
14040
14041         * a-tags.ads, a-tags.adb (Offset_To_Top): Moved from the package body
14042         to the specification because the frontend generates code that uses this
14043         subprogram.
14044         (Set_Interface_Table): Add missing assertion.
14045         Update documentation describing the run-time structure.
14046         (Displace): New subprogram that displaces the pointer to the object
14047         to reference one of its secondary dispatch tables.
14048         (IW_Membership): Modified to use the new table of interfaces.
14049         (Inherit_TSD): Modified to use the new table of interfaces.
14050         (Register_Interface_Tag): Use the additional formal to fill the
14051         contents of the new table of interfaces.
14052         (Set_Interface_Table): New subprogram that stores in the TSD the
14053         pointer to the table of interfaces.
14054         (Set_Offset_To_Top): Use the additional formal to save copy of
14055         the offset value in the table of interfaces.
14056         Update structure of GNAT Primary and Secondary dispatch table diagram.
14057         Add comment section on GNAT dispatch table prologue.
14058         (Offset_To_Signature): Update the constant value of the Signature field.
14059         (Dispatch_Table): Update comment on hidden fields in the prologue.
14060         (Get_Entry_Index, Get_Prim_Op_Kind, Get_Offset_Index, OSD,
14061         Set_Entry_Index, Set_Offset_Index, Set_Prim_Op_Kind, SSD, TSD): Change
14062         the type of formal parameter T to Tag, introduce additional assertions.
14063         (Get_Num_Prim_Ops, Set_Num_Prim_Ops): Remove an unnecessary type
14064         conversion.
14065         (Get_Tagged_Kind, Set_Tagged_Kind): New bodies.
14066
14067         * exp_ch6.adb (Register_Interface_DT_Entry): Remove the Thunk_Id actual
14068         in all the calls to Expand_Interface_Thunk. Instead of referencing the
14069         record component containing the tag of the secondary dispatch table we
14070         have to use the Offset_To_Top run-time function to get this information;
14071         otherwise if the pointer to the base of the object has been displace
14072         we get a wrong value if we use the 'position attribute.
14073
14074         * exp_disp.adb (Expand_Interface_Thunk): Remove the Thunk_Id actual in
14075         all the calls to Expand_Interface_Thunk.
14076         (Make_Secondary_DT): Secondary dispatch tables do not have a table of
14077         interfaces; hence the call to Set_Interface_Table was clearly wrong.
14078         (Collect_All_Interfaces): Modify the internal subprogram Collect to
14079         ensure that the interfaces implemented by the ancestors are placed
14080         at the header of the generated list.
14081         (Expand_Interface_Conversion): Handle the case in which the displacement
14082         associated with the interface conversion is not statically known. In
14083         this case we generate a call to the new run-time subprogram Displace.
14084         (Make_DT): Generate and fill the new table of interfaces.
14085         (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Add entries for
14086         Get_Tagged_Kind and Set_Tagged_Kind.
14087         (Tagged_Kind): New function that determines the tagged kind of a type
14088         with respect to limitedness and concurrency and returns a reference to
14089         RE_Tagged_Kind.
14090         (Make_Disp_Asynchronous_Select_Body, Make_Disp_Conditional_Select_Body,
14091         Make_Disp_Timed_Select_Body): Correctly retrieve the pointer to the
14092         primary dispatch table for a type.
14093         (Make_DT, Make_Secondary_DT): Set the tagged kind in the primary and
14094         secondary dispatch table respectively of a tagged type.
14095
14096         * exp_disp.ads (Expand_Interface_Thunk): Remove Thunk_Id formal.
14097         (Expand_Interface_Conversion): New subprogram to indicate if the
14098         displacement of the type conversion is statically known.
14099         (DT_Access_Action): Add values Get_Tagged_Kind and Set_Tagged_Kind.
14100
14101         * rtsfind.ads (RE_Offset_To_Top): New entity
14102         (RTU_Id): Add Ada_Task_Termination to the list so that it is made
14103         accessible to users.
14104         (Re_Displace): New entity
14105         (RE_Interface_Data): New entity
14106         (RE_Set_Interface_Data): New_Entity
14107         (RE_Id, RE_Unit_Table): Add entry for RE_Get_Tagged_Kind,
14108         Set_Tagged_Kind, RE_Tagged_Kind, RE_TK_Abstract_Limited_Tagged,
14109         RE_TK_Abstract_Tagged, RE_TK_Limited_Tagged, RE_TK_Protected,
14110         RE_TK_Tagged, RE_TK_Task.
14111
14112         * exp_ch3.adb (Init_Secondary_Tags): Modify the subprogram
14113         Init_Secondary_Tags_Internal to allow its use with interface types and
14114         also to generate the code for the new additional actual required
14115         by Set_Offset_To_Top.
14116         (Build_Init_Statements): In case of components associated with abstract
14117         interface types there is no need to generate a call to its IP.
14118         (Freeze_Record_Type): Generate Select Specific Data tables only for
14119         concurrent types.
14120         (Make_Predefined_Primitive_Specs, Predefined_Primitive_Bodies): Generate
14121         the bodies and specifications of the predefined primitive operations
14122         dealing with dispatching selects and abort, 'Callable, 'Terminated only
14123         for concurrent types.
14124
14125         * exp_sel.ads, exp_sel.adb: New files.
14126
14127         * exp_ch9.adb (Build_Protected_Entry, Expand_N_Protected_Body,
14128         Expand_N_Protected_Type_Declaration, Make_Initialize_Protection): Handle
14129         properly protected objects and attach handler in the case of the
14130         restricted profile.
14131         Move embeded package Select_Expansion_Utilities into a separate external
14132         package.
14133         (Expand_N_Asynchronous_Select, Expand_N_Conditional_Select,
14134         Expand_N_Timed_Entry_Call): Correct calls external package Exp_Sel.
14135         (Build_K, Build_S_Assignment): New subprograms, part of the select
14136         expansion utilities.
14137         (Expand_N_Asynchronous_Select, Expand_N_Conditional_Entry_Call,
14138         Expand_N_Timed_Entry_Call): Optimize expansion of select statements
14139         where the trigger is a dispatching procedure of a limited tagged type.
14140
14141 2005-12-09  Olivier Hainque  <hainque@adacore.com>
14142
14143         * decl.c (gnat_to_gnu_entity, renaming object case): Don't early expand
14144         pointer initialization values. Make a SAVE_EXPR instead. Add comments
14145         about the use and expansion of SAVE_EXPRs in the various possible
14146         renaming handling cases.
14147         (components_to_record, compare_field_bitpos): Sort by DECL_UID, not by
14148         abusing DECL_FCONTEXT.
14149
14150 2005-12-09  Matthew Heaney  <heaney@adacore.com>
14151
14152         * a-convec.adb (Merge): Added assertions to check whether vector params
14153         are sorted.
14154
14155         * a-coinve.adb (Merge): Added assertions to check whether vector params
14156         are sorted.
14157
14158         * a-cohama.ads (Cursor'Write): raises Program_Error per latest AI-302
14159         draft.
14160         (Cursor'Read): raises PE
14161
14162         * a-cohama.adb (Insert.New_Node): Uses box-style syntax to init elem
14163         to its default value.
14164
14165         * a-cihama.adb: Manually check whether cursor's key and elem are
14166         non-null
14167
14168         * a-cidlli.ads, a-cidlli.adb (Splice): Changed param name and param mode
14169         (Merge): Assert that target and source lists are in order
14170         (Swap): Declare non-const temporaries, to pass to Splice
14171
14172         * a-cdlili.ads: (Splice): Changed param name and param mode
14173
14174         * a-cdlili.adb: (Splice): Changed param name and param mode
14175         (Merge): Assert that target and source lists are in order
14176         (Swap): Declare non-const temporaries, to pass to Splice
14177
14178         * a-ciorma.ads, a-coorma.ads: (Read): declare Stream param as not null
14179         (Write): declare Stream param as not null
14180
14181         * a-ciorma.adb, a-coorma.adb: All explicit raise statements now include
14182         an exception message.
14183
14184 2005-12-09  Thomas Quinot  <quinot@adacore.com>
14185             Robert Dewar  <dewar@adacore.com>
14186
14187         * hostparm.ads (Max_Line_Length): Set to Types.Column_Number'Last - 1,
14188         which is the absolute maximum length we can support.
14189
14190         * frontend.adb: For the processing of configuration pragma files,
14191         remove references to Opt.Max_Line_Length, which is not checked anymore.
14192
14193         * namet.ads (Name_Buffer): Adjust size to reflect increase on max line
14194         length.
14195
14196         * scn.adb, scng.adb: 
14197         Always check line length against the absolute supported maximum,
14198         Hostparm.Max_Line_Length.
14199
14200         * stylesw.adb (Set_Style_Check_Options, case M): The maximum supported
14201         value for the maximum line length is Max_Line_Length (not
14202         Column_Number'Last).
14203         Minor error msg update
14204         (Set_Style_Check_Options): New interface returning error msg
14205         Minor code reorganization (processing for 'M' was out of alpha order)
14206
14207         * switch-c.adb: New interface for Set_Style_Check_Options
14208
14209         * stylesw.ads (Set_Style_Check_Options): New interface returning error
14210         msg.
14211
14212 2005-12-09  Javier Miranda  <miranda@adacore.com>
14213
14214         * exp_aggr.adb (Build_Record_Aggr_Code): Default-initialialized records
14215         with IP subprogram were only supported if there were limited types.
14216
14217         * sem_aggr.adb (Resolve_Record_Aggregate): Default-initialialized
14218         records with IP subprogram were only supported if there were limited
14219         types.
14220
14221 2005-12-09  Olivier Hainque  <hainque@adacore.com>
14222             Eric Botcazou  <ebotcazou@adacore.com>
14223
14224         * trans.c (tree_transform, emit_check): Adjust calls to
14225         build_call_raise, passing the now expected GNAT_NODE argument.
14226
14227         * gigi.h (build_call_raise): Add a GNAT_NODE argument to convey better
14228         source line information than what the current global locus indicates
14229         when appropriate.
14230
14231         * utils2.c (build_simple_component_ref): Return 0 if the offset of the
14232         field has overflowed.
14233         (build_call_raise): Add a GNAT_NODE argument to convey better source
14234         line information than what the current global locus indicates when
14235         appropriate.
14236         (build_component_ref): Adjust call to build_call_raise.
14237
14238 2005-12-09  Pascal Obry  <obry@adacore.com>
14239
14240         * g-diopit.adb (Find): Fix test to exit the iterator and make sure that
14241         the iterator is quitting iteration on parent directory.
14242
14243 2005-12-09  Javier Miranda  <miranda@adacore.com>
14244
14245         * exp_ch5.adb (Expand_N_Assignment_Statement): In case of tagged types
14246         and the assignment to a class-wide object, before the assignment we
14247         generate a run-time check to ensure that the tag of the Target is
14248         covered by the tag of the source.
14249
14250 2005-12-09  Robert Dewar  <dewar@adacore.com>
14251
14252         * exp_imgv.adb (Expand_Image_Attribute): Generate extra boolean
14253         parameter in call to Image_Wide_Character.
14254
14255         * s-imgwch.ads, s-imgwch.adb (Image_Wide_Character): Add boolean
14256         parameter Ada_2005 to deal with annoying FFFE/FFFF inconsistency.
14257         (Image_Wide_Character): Add boolean parameter Ada_2005 to deal with
14258         annoying FFFE/FFFF inconsistency.
14259
14260 2005-12-09  Robert Dewar  <dewar@adacore.com>
14261             Javier Miranda  <miranda@adacore.com>
14262             Ed Schonberg  <schonberg@adacore.com>
14263
14264         * exp_util.ads, exp_util.adb (Is_Ref_To_Bit_Packed_Slice): Handle case
14265         of type conversion.
14266         (Find_Interface): New subprogram that given a tagged type and one of its
14267         component associated with the secondary table of an abstract interface
14268         type, return the entity associated with such abstract interface type.
14269         (Make_Subtype_From_Expr): If type has unknown discriminants, always use
14270         base type to create anonymous subtype, because entity may be a locally
14271         declared subtype or generic actual.
14272         (Find_Interface): New subprogram that given a tagged type and one of its
14273         component associated with the secondary table of an abstract interface
14274         type, return the entity associated with such abstract interface type.
14275
14276         * sem_res.adb (Resolve_Type_Conversion): Handle the case in which the
14277         conversion cannot be handled at compile time. In this case we pass this
14278         information to the expander to generate the appropriate code.
14279
14280 2005-12-09  Robert Dewar  <dewar@adacore.com>
14281             Ed Schonberg  <schonberg@adacore.com>
14282             Gary Dismukes  <dismukes@adacore.com>
14283             Javier Miranda  <miranda@adacore.com>
14284             Hristian Kirtchev  <kirtchev@adacore.com>
14285
14286         * einfo.adb (Itype_Printed): New flag
14287         (Is_Limited_Type): Derived types do not inherit limitedness from
14288         interface progenitors.
14289         (Is_Return_By_Reference_Type): Predicate does not apply to limited
14290         interfaces.
14291
14292         * einfo.ads (Itype_Printed): New flag
14293         Move Is_Wrapper_Package to proper section
14294         Add missing Inline for Is_Volatile
14295
14296         * output.ads, output.adb (Write_Erase_Char): New procedure
14297         (Save/Restore_Output_Buffer): New procedures
14298         (Save/Restore_Output_Buffer): New procedures
14299
14300         * sprint.ads, sprint.adb (Write_Itype): Handle case of record itypes
14301         Add missing support for anonymous access type
14302         (Write_Id): Insert calls to Write_Itype
14303         (Write_Itype): New procedure to output itypes
14304
14305         * par-ch12.adb (P_Formal_Derived_Type_Definition): In Ada 2005, handle
14306         use of "limited" in declaration.
14307
14308         * sinfo.ads, sinfo.adb: 
14309         Formal derived types can carry an explicit "limited" indication.
14310
14311         * sem_ch3.adb: Add with and use of Targparm.
14312         (Create_Component): If Frontend_Layout_On_Target is True and the
14313         copied component does not have a known static Esize, then reset
14314         the size and positional fields of the new component.
14315         (Analyze_Component_Declaration): A limited component is
14316         legal within a protected type that implements an interface.
14317         (Collect_Interfaces): Do not add to the list the interfaces that
14318         are implemented by the ancestors.
14319         (Derived_Type_Declaration): If the parent of the full-view is an
14320         interface perform a transformation of the tree to ensure that it has
14321         the same parent than the partial-view. This simplifies the job of the
14322         expander in order to generate the correct object layout, and it is
14323         needed because the list of interfaces of the full-view can be given in
14324         any order.
14325         (Process_Full_View): The parent of the full-view does not need to be
14326         a descendant of the parent of the partial view if both parents are
14327         interfaces.
14328         (Analyze_Private_Extension_Declaration): If declaration has an explicit
14329         "limited" the parent must be a limited type.
14330         (Build_Derived_Record_Type): A derived type that is explicitly limited
14331         must have limited ancestor and progenitors.
14332         (Build_Derived_Type): Ditto.
14333         (Process_Full_View): Verify that explicit uses of "limited" in partial
14334         and full declarations are consistent.
14335         (Find_Ancestor_Interface): Remove function.
14336         (Collect_Implemented_Interfaces): New procedure used to gather all
14337         implemented interfaces by a type.
14338         (Contain_Interface): New function used to check whether an interface is
14339         present in a list.
14340         (Find_Hidden_Interface): New function used to determine whether two
14341         lists of interfaces constitute a set equality. If not, the first
14342         differing interface is returned.
14343         (Process_Full_View): Improve the check for the "no hidden interface"
14344         rule as defined by AI-396.
14345
14346 2005-12-09  Robert Dewar  <dewar@adacore.com>
14347
14348         * freeze.adb (Freeze_Record_Type): Only test for useless pack on record
14349         types, not on record subtypes.
14350         (Freeze_Entity): Code cleanup. Add barrier to the loop
14351         that generates the references for primitive operations. This allows to
14352         remove an unnecessary exception handler.
14353         Code reformatting and comment clean ups.
14354
14355 2005-12-09  Vincent Celier  <celier@adacore.com>
14356
14357         * gnatcmd.adb (GNATCmd): GNAT CHECK accepts switch -U
14358         If GNAT CHECK is called with a project file, but with no
14359         source on the command line, call gnatcheck with all the compilable
14360         sources of the project.
14361         Take into account the new command Check, for gnatcheck. Treat as for
14362         other ASIS tools: take into account project, specific package Check and
14363         Compiler switches.
14364         For ASIS tools, add the switches in package Compiler for
14365         the invocation of the compiler.
14366
14367         * prj-attr.adb: Add package Check and its attributes
14368
14369         * vms_conv.ads (Command_Type): New command Check, for gnatcheck
14370
14371         * vms_conv.adb (Initialize): Change Params of command Check to
14372         unlimited files.
14373         Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target.
14374         Add data for new command Check
14375
14376         * vms_data.ads: Add project related qualifiers for GNAT CHECK and GNAT
14377         ELIM.
14378         Add qualifiers for Check command options
14379         (Command_Type): New command Check
14380
14381 2005-12-09  Thomas Quinot  <quinot@adacore.com>
14382
14383         * mlib-utl.adb (Ar): Use Output.Buffer_Max to determine whether a
14384         command line switch overruns the output buffer.
14385
14386 2005-12-09  Robert Dewar  <dewar@adacore.com>
14387
14388         * sem_prag.adb: Processing for new pragma Complete_Representation
14389         (Analyze_Pragma, case Debug): Implement two argument form.
14390
14391         * par-prag.adb: Entry for new pragma Complete_Representation
14392         (Prag, case Debug): Recognize two argument form of pragma Debug
14393         New interface for Set_Style_Check_Options.
14394
14395         * sem_ch13.adb: Implement new pragma Complete_Representation.
14396
14397         * snames.adb, snames.ads, snames.h: Entry for new pragma
14398         Complete_Representation.
14399
14400 2005-12-09  Gary Dismukes  <dismukes@adacore.com>
14401
14402         * sem_cat.adb (Validate_RCI_Subprogram_Declaration): Revise test for
14403         available user-specified stream attributes on limited parameters to
14404         also test the type directly rather than only its underlying type (for
14405         Ada 95) and, in the case of Ada 2005, to check that the user-specified
14406         attributes are visible at the point of the subprogram declaration.
14407         For Ada 2005, the error message is modified to indicate that the
14408         type's stream attributes must be visible (again, only for -gnat05).
14409
14410 2005-12-09  Ed Schonberg  <schonberg@adacore.com>
14411
14412         * sem_ch12.adb (Subtypes_Match): Handle properly Ada05 arrays of
14413         anonymous access types.
14414
14415         * sem_eval.adb (Subtypes_Statically_Match): Implement new rules for
14416         matching of anonymous access types and anonymous access to subprogram
14417         types. 'R'M 4.9.1 (2/2).
14418
14419 2005-12-09  Ed Schonberg  <schonberg@adacore.com>
14420
14421         * sem_ch4.adb (Remove_Abstract_Operations): Do not apply preference
14422         rule prematurely when operands are universal, remaining ambiguities
14423         will be removed during resolution.
14424         Code cleanup.
14425
14426         * sem_type.adb (Disambiguate): In Ada95 mode, discard interpretations
14427         that are Ada 2005 functions.
14428         (Has_Abstract_Interpretation): Subsidiary to
14429         Remove_Conversions, to remove ambiguities caused by abstract operations
14430         on numeric types when operands are universal.
14431
14432 2005-12-09  Robert Dewar  <dewar@adacore.com>
14433
14434         * sem_ch6.adb (Analyze_Subprogram_Body): Properly check categorization
14435         for case where spec is categorized.
14436
14437 2005-12-09  Javier Miranda  <miranda@adacore.com>
14438
14439         * sem_ch8.adb (Find_Type): In case of tagged types that are concurrent
14440         types use the corresponding record type. This was not needed before
14441         the implementation of Ada 2005 synchronized types because
14442         concurrent types were never tagged types in Ada 95.
14443
14444 2005-12-09  Ed Schonberg  <schonberg@adacore.com>
14445
14446         * sem_ch9.adb (Analyze_Delay_Alternative, Analyze_Delay_Until): Use the
14447         first subtype of the type of the expression to verify that it is a
14448         legal Time type.
14449
14450 2005-12-09  Robert Dewar  <dewar@adacore.com>
14451
14452         * sem_util.ads, sem_util.adb (Full_Qualified_Name): Now provides
14453         decoded names.
14454
14455 2005-12-09  Quentin Ochem  <ochem@adacore.com>
14456             Robert Dewar  <dewar@adacore.com>
14457             Ed Falis  <falis@adacore.com>
14458             Florian Villoing  <villoing@adacore.com>
14459             Thomas Quinot  <quinot@adacore.com>
14460             Arnaud Charlet  <charlet@adacore.com>
14461
14462         * gnat_ugn.texi: Created section "Stack Related Tools"
14463         Moved "Stack Overflow Checking" subsection from "Switches for gcc" to
14464         "Stack Related Tools"
14465         Added subsection "Static Stack Usage Analysis"
14466         Added subsection "Dynamic Stack Usage Analysis"
14467         Include documentation of itypes in sprint listing (-gnatG)
14468         Documented gnatbind -D switch (default sec stack size for fixed sec
14469         stacks).
14470         Added Interrupt_State and Persistent_BSS to list of configuration
14471         pragmas.
14472         Add missing doc for maximum value of nnn in -gnatyMnnn
14473
14474         * gnat_rm.texi: Document the AltiVec binding.
14475         Add documentation for pragma Complete_Representation
14476         Shortened an overly long line (> 79 chars)
14477         Clarify documentation of unchecked conversion in implementation
14478         defined cases.
14479         Document two argument form of pragma Debug
14480
14481         * types.ads (Column_Number): Update documentation.
14482
14483         * exp_ch7.ads (Make_Adjust_Call): Document the special processing for
14484         library level Finalize_Storage_Only objects (these are not attached to
14485         any finalization list).
14486
14487         * system-mingw.ads: (Underlying_Priorities): Update comment.
14488
14489 2005-12-09  Robert Dewar  <dewar@adacore.com>
14490
14491         * i-c.adb, i-cexten.ads, i-cobol.adb, i-cobol.ads, i-cpoint.ads,
14492         i-cpp.adb, i-cpp.ads, i-cstrea.ads, i-cstrin.adb, i-cstrin.ads,
14493         inline.adb, interfac.ads, i-os2err.ads, i-os2lib.ads, i-os2syn.ads,
14494         i-os2thr.ads, itypes.adb, itypes.adb, itypes.ads, krunch.ads,
14495         krunch.adb, lib.adb, lib.ads, lib-list.adb, lib-load.adb,
14496         lib-load.ads, lib-sort.adb, live.adb, make.ads, i-cstrea-vms.adb,
14497         interfac-vms.ads, makegpr.adb, indepsw-gnu.adb, indepsw.ads,
14498         s-wchcon.ads, sdefault.ads, sem_ch10.adb, sem_eval.ads: Minor
14499         reformatting.
14500
14501 2005-12-09  Robert Dewar  <dewar@adacore.com>
14502
14503         * s-vaflop-vms-alpha.adb: (Ne_F): New function
14504         (Ne_G): New function
14505
14506         * exp_ch4.adb (Expand_Allocator_Expression): Factor duplicated code
14507         for tag assignment.
14508         (Rewrite_Comparison): Handle case where operation is not a comparison
14509         and ignore, and also handle type conversion case.
14510
14511 2005-12-09  Thomas Quinot  <quinot@adacore.com>
14512
14513         * exp_aggr.ads: Fix typo in comment.
14514         ???-mark Convert_Aggr_In_Assignment as needing documentation.
14515
14516 2005-12-09  Gary Dismukes  <dismukes@adacore.com>
14517
14518         * layout.adb: Replace various uses of byte by storage unit throughout.
14519         (Get_Max_SU_Size): Name changed from Get_Max_Size. In the case of a
14520         static size, convert to storage units before returning, to conform to
14521         spec.
14522
14523 2005-12-09  Matthew Gingell  <gingell@adacore.com>
14524
14525         * g-exctra.ads: Fix typo in comment.
14526
14527 2005-12-09  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14528
14529         * utils.c: Minor reformatting.
14530
14531 2005-12-09  Robert Dewar  <dewar@adacore.com>
14532
14533         * g-soccon.ads: 
14534         Further comment fixes to make the status of the default file clear
14535
14536         * s-bitops.adb: Clarify comment for Bits_Array
14537
14538 2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
14539
14540         * Make-lang.in (ada.install-normal): Remove.
14541
14542 2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
14543
14544         * Make-lang.in: Remove all dependencies on s-gtype.
14545
14546 2005-12-05  Richard Guenther  <rguenther@suse.de>
14547
14548         * utils.c (convert): Use fold_convert where appropriate.
14549
14550 2005-12-05  Paolo Bonzini  <bonzini@gnu.org>
14551
14552         * Makefile.in (gnatlib): Fix regex, using \. instead of . when
14553         a period is meant.
14554
14555 2005-12-02  Richard Guenther  <rguenther@suse.de>
14556
14557         * trans.c (gnat_gimplify_expr): Use buildN instead of build.
14558
14559 2005-12-01  Roger Sayle  <roger@eyesopen.com>
14560
14561         * utils.c (max_size): Only test for TREE_OVERFLOW on INTEGER_CST
14562         nodes.
14563
14564 2005-11-23  Laurent GUERBY  <laurent@guerby.net>
14565
14566         * mlib-prj.adb (Build_Library): Initialize Delete.
14567
14568 2005-11-21  Joel Sherrill <joel.sherrill@oarcorp.com>
14569
14570         * socket.c: Add extern int h_errno for rtems since networking header
14571         files are not available at this point in a tool bootstrap. Newlib
14572         only has basic C library header files.
14573
14574 2005-11-19  Richard Guenther  <rguenther@suse.de>
14575         Roger Sayle  <roger@eyesopen.com>
14576
14577         PR ada/23717
14578         * misc.c (internal_error_function): Don't use vsprintf to format
14579         the error message text, instead use pp_format_text and the new
14580         pretty printer APIs.  This allows handling of %qs, %w, etc.
14581
14582 2005-11-18  Laurent GUERBY  <laurent@guerby.net>
14583
14584         PR ada/24857
14585         * Makefile.in: Use s-auxdec-empty for RTEMS.
14586
14587 2005-11-17  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14588
14589         PR ada/22333
14590         * trans.c (gnat_gimplify_expr, case ADDR_EXPR): Always make
14591         a temporary if taking the address of something that is neither
14592         reference, declaration, or constant, since the gimplifier
14593         can't handle that case.
14594
14595 2005-11-17  Laurent GUERBY  <laurent@guerby.net>
14596
14597         PR ada/24857
14598         * s-auxdec-empty.ads, s-auxdec-empty.adb: New files.
14599
14600 2005-11-16  Richard Guenther  <rguenther@suse.de>
14601
14602         * Makefile.in: Add EH_MECHANISM=-gcc to s390(x) linux.
14603
14604 2005-11-16  Joel Sherrill <joel.sherrill@oarcorp.com>
14605
14606         PR ada/24855
14607         * raise-gcc.c: Add missing stdarg.h include.
14608  
14609 2005-11-16  Richard Guenther  <rguenther@suse.de>
14610
14611         * Make-lang.in (ada/decl.o): Add $(EXPR_H) dependency.
14612         (ada/misc.o): Likewise.
14613
14614 2005-11-14  Thomas Quinot  <quinot@adacore.com>
14615
14616         * g-soccon.ads: Minor reformatting. Update comments.
14617
14618         * gsocket.h: Include <sys/times.h> in the VxWorks case, in order to
14619         gain visibility on the declaration of struct timeval.
14620
14621         * g-soccon-freebsd.ads,
14622         g-soccon-darwin.ads,
14623         g-soccon-tru64.ads,
14624         g-soccon-aix.ads,
14625         g-soccon-irix.ads,
14626         g-soccon-hpux.ads,
14627         g-soccon-solaris.ads,
14628         g-soccon-vms.ads,
14629         g-soccon-mingw.ads,
14630         g-soccon-vxworks.ads (SIZEOF_tv_sec, SIZEOF_tv_usec): New constants.
14631
14632         * g-soccon-hpux-ia64.ads, g-soccon-linux-ppc.ads,
14633         g-soccon-solaris-64.ads, g-soccon-linux-64.ads,
14634         g-soccon-linux-x86.ads: New files.
14635
14636         * g-socthi-mingw.adb: 
14637         (Socket_Error_Message): Remove redundant use of GNAT.Sockets.Constants
14638
14639         * g-socthi-vxworks.ads, g-socthi-vms.ads, g-socthi-mingw.ads
14640         (time_t, suseconds_t): New types constructed to match the tv_sec
14641         and tv_usec fields of C struct timeval.
14642         (Timeval): Construct structure in terms of the new types.
14643         (Host_Errno): New function (imported from socket.c), returns last hosts
14644         database error.
14645
14646         * g-socthi-vxworks.adb:  Add error handling circuitry.
14647
14648         * g-socket.ads, g-socket.adb (To_Timeval): Reflect change of type for
14649         components of struct timeval.
14650         (Get_Host_By_Name, Get_Host_By_Address): Fix error reporting circuitry.
14651         (Check_Selector): In error conditions, clear internal socket sets to
14652         avoid a memory leak.
14653         (Get_Socket_Option, Set_Socket_Option): Support for Multicast_If,
14654         Send_Timeout, Receive_Timeout.
14655
14656         * g-socthi.ads (time_t, suseconds_t): New types constructed to match
14657         the tv_sec and tv_usec fields of C struct timeval.
14658         (Timeval): Construct structure in terms of the new types.
14659         (Host_Errno): New function (imported from socket.c), returns last hosts
14660         database error.
14661
14662         * socket.c (__gnat_get_h_errno): New function to retrieve h_errno, the
14663         hosts database last error code.
14664
14665         * gen-soccon.c: Complete value expansion should not be performed on
14666         TARGET, as it has the form of a math expression, and some components
14667         may be platform-defined macros.
14668         For VxWorks, generate the OK and ERROR values.
14669         New constants giving the sizes of the components of C struct timeval.
14670
14671 2005-11-14  Robert Dewar  <dewar@adacore.com>
14672             Ed Schonberg  <schonberg@adacore.com>
14673
14674         PR ada/18434
14675         * types.ads: Include All_Checks in Suppress_Array
14676
14677         * checks.adb (Check_Needed): Remove kludge for a/=b rewritten as
14678         not(a=b), since we no longer do this rewriting, and hence it is not
14679         needed.
14680         (Elaboration_Checks_Suppressed): Add special casing to
14681         deal with different cases of static and dynamic elaboration checks (all
14682         checks does not count in the first case, but does in the second).
14683         (Expr_Known_Valid): Do not assume that the result of any arbitrary
14684         function call is valid, since this is not the case.
14685         (Ensure_Valid): Do not apply validity check to a real literal
14686         in a universal or fixed context
14687
14688         * exp_ch4.adb (Expand_N_Op_Ne): Don't expand a/=b to not(a=b) for
14689         elementary types using the operator in standard. It is cleaner not to
14690         modify the programmers intent, especially in the case of floating-point.
14691         (Rewrite_Comparison): Fix handling of /= (this was always wrong, but
14692         it did not matter because we always rewrote a/=b to not(a=b).
14693         (Expand_Allocator_Expression): For an allocator expression whose nominal
14694         subtype is an unconstrained packed type, convert the expression to its
14695         actual constrained subtype.
14696         Implement warning for <= or >= where < or > not possible
14697         Fix to Vax_Float tests (too early in many routines, causing premature
14698         Vax_Float expansions.
14699
14700         * sem_prag.adb (Analyze_Pragma, case Obsolescent): Allow this pragma
14701         to be used with packages and generic packages as well as with
14702         subprograms.
14703         (Suppress): Set All_Checks, but not Elaboration_Check, for case
14704         of pragma Suppress (All_Checks)
14705         (Analyze_Pragma, case Warnings): Implement first argument allowed to be
14706         a string literal for precise control over warnings.
14707         Avoid raise of pragma in case of unrecognized pragma and just return
14708         instead.
14709
14710         * sem_prag.ads: Minor reformatting
14711
14712         * switch-c.adb (Scan_Front_End_Switches): Replace "raise Bad_Switch;"
14713         with call to new procedure Bad_Switch. Call Scan_Pos with new parameter
14714         Switch. Do not handle any exception.
14715         Include -gnatwx as part of -gnatg (warn on redundant parens)
14716         Allow optional = after -gnatm
14717         (Scan_Front_End_Switches): The -gnatp switch sets All_Checks, but no
14718         longer sets Elaboration_Checks.
14719         Code to set warning mode moved to Sem_Warn
14720         so that it can be shared by pragma processing.
14721
14722         * s-mastop-tru64.adb (Pop_Frame): Remove redundant parentheses in if
14723         statement.
14724
14725         * s-taprop-solaris.adb: 
14726         Change some <= to =, to avoid new warning
14727
14728         * a-exexda.adb, prj-proc.adb: 
14729         Fix obvious typo (Num_Tracebacks compared <= 0 instead of < 0)
14730         Fix obvious typo (Total_Errors_Detected <= 0 should be = 0)
14731
14732 2005-11-14  Robert Dewar  <dewar@adacore.com>
14733
14734         * exp_vfpt.adb: Handle /= case
14735         (Expand_Vax_Conversion): Properly recognize Conversion_OK flag
14736         so that we do not get duplicate scaling for fixed point conversions.
14737
14738         * s-vaflop.ads, s-vaflop.adb: (Ne_F): New function
14739
14740 2005-11-14  Matthew Gingell  <gingell@adacore.com>
14741
14742         * system-lynxos-ppc.ads, system-lynxos-x86.ads: 
14743         Increase default priority on Lynx from 15 to 17, and meet the Ada
14744         requirement that Default_Priority be ((Priority'First +
14745         Priority'Last) / 2) by increasing the range of Interrupt_Priority.
14746
14747 2005-11-14  Vincent Celier  <celier@adacore.com>
14748
14749         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
14750         mlib-tgt-hpux.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
14751         mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-alpha.adb,
14752         mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb,
14753         mlib-tgt-darwin.adb, mlib-tgt.adb, mlib-tgt.ads,
14754         mlib-tgt-lynxos.adb (DLL_Prefix): New function
14755
14756 2005-11-14  Doug Rupp  <rupp@adacore.com>
14757
14758         * system-vms.ads, system-vms_64.ads: ADA$GNAT: New exported object in
14759         private part.
14760
14761 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
14762
14763         * s-traces-default.adb, s-trafor-default.ads,
14764         s-tratas-default.adb: Fix compilation errors.
14765
14766 2005-11-14  Jose Ruiz  <ruiz@adacore.com>
14767
14768         * s-taprop-posix.adb (Initialize_Lock): Destroy mutex attribute before
14769         raising the exception so the memory used is freed.
14770
14771 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
14772
14773         * adaint.h, adaint.c (__gnat_is_cross_compiler): New constant.
14774         (Gnat_Install_Locks, __gnatlib_install_locks): Removed, no longer used.
14775         (convert_address): Update comments and list of platforms using this.
14776
14777         * s-tasini.adb (Gnat_Install_Locks, __gnatlib_install_locks): Removed,
14778         no longer used.
14779
14780 2005-11-14  Pascal Obry  <obry@adacore.com>
14781             Vincent Celier  <celier@adacore.com>
14782
14783         * gnatdll.adb (Parse_Command_Line): Remove redundant use of
14784         GNAT.Command_Line.
14785
14786         * memroot.adb: Remove redundant with/use clause on
14787         System.Storage_Elements.
14788
14789 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
14790
14791         * a-except.adb (Zero_Cost_Exceptions): Removed, no longer used.
14792         (builtin_longjmp, Process_Raise_Exceeption): Move setjmp/longjmp
14793         related code to a-exexpr.adb
14794         (Save_Occurrence_And_Private): Move GCC EH related code to
14795         a-exexpr-gcc.adb
14796         (Raise_Current_Excep): Add new variable Id with pragma
14797         volatile, to ensure that the variable lives on stack.
14798
14799         * a-exexpr-gcc.adb, raise-gcc.c: New file.
14800
14801         * a-exexpr.adb (builtin_longjmp, Propagate_Exception): Moved here code
14802         from a-except.adb.
14803         Move GCC EH related code to a-exexpr-gcc.adb
14804
14805         * Makefile.in: Add or update g-soccon LIBGNAT pairs for Linux/PPC and
14806         64-bit Solaris
14807         Split the Linux version of g-soccon into separate variants for 32 and 64
14808         bit platforms.
14809         (gnatlib): Use $(AR_FOR_TARGET) and $(RANLIB_FOR_TARGET)
14810         vice $(AR) and $(RANLIB). Remove use of host variable $(RANLIB_FLAGS).
14811         install-gnatlib: Use $(RANLIB_FOR_TARGET) vice $(RANLIB). Remove use
14812         of host variable $(RANLIB_FLAGS).
14813         (alpha64-dec-*vms*): Fix translations for 64 bit compiler.
14814         Code clean up: remove unused/obsolete targets.
14815         (EH_MECHANISM): New variable introduced to differenciate between the
14816         two EH mechanisms statically.
14817         (gnatlib-zcx, gnatlib-sjlj): Force EH_MECHANISM manually.
14818         (LIBGNAT_OBJS): Add raise-gcc.o
14819         (LIBGNAT_TARGET_PAIRS for ppc-vxworks): Use an specialized version of
14820         s-osinte.adb, s-tpopsp.adb, and system.ads for the run time that
14821         supports VxWorks 6 RTPs.
14822         (EXTRA_GNATRTL_NONTASKING_OBJS for ppc-vxworks): Remove the use of
14823         i-vxworks and i-vxwoio from the run time that supports VxWorks 6 RTPs.
14824
14825         * raise.c: Move all GCC EH-related routines to raise-gcc.c
14826
14827 2005-11-14  Jose Ruiz  <ruiz@adacore.com>
14828
14829         * s-tassta.adb (Create_Task): Move the code in charge of resetting the
14830         deferral level, when abort is not allowed, to a later stage (the
14831         Task_Wrapper).
14832         (Task_Wrapper): If Abort is not allowed, reset the deferral level since
14833         it will not get changed by the generated code. It was previously done
14834         in Create_Task.
14835
14836 2005-11-14  Thomas Quinot  <quinot@adacore.com>
14837             Olivier Hainque  <hainque@adacore.com>
14838             Eric Botcazou  <ebotcazou@adacore.com>
14839
14840         * decl.c:
14841         Factor common code to build a storage type for an unconstrained object
14842         from a fat or thin pointer type and a constrained object type.
14843         (annotate_value): Handle BIT_AND_EXPR.
14844         (annotate_rep): Don't restrict the back annotation of inherited
14845         components to the type_annotate_only case.
14846         (gnat_to_gnu_entity) <E_Array_Type>: Do not invoke create_type_decl if
14847         we are not defining the type.
14848         <E_Record_Type>: Likewise.
14849         (gnat_to_gnu_entity) <object, renaming>: Adjust comments and structure
14850         to get advantage of the new maybe_stabilize_reference interface, to
14851         ensure that what we reference is indeed stabilized instead of relying
14852         on assumptions on what the stabilizer does.
14853         (gnat_to_gnu_entity) <E_Incomplete_Type>: If the entity is an incomplete
14854         type imported through a limited_with clause, use its non-limited view.
14855         (Has_Stdcall_Convention): New macro, to centralize the Windows vs others
14856         differentiation.
14857         (gnat_to_gnu_entity): Use Has_Stdcall_Convention instead of a spread mix
14858         of #if sections + explicit comparisons of convention identifiers.
14859         (gnat_to_gnu_entity) <E_Variable>: Decrement force_global if necessary
14860         before early-returning for certain types when code generation is
14861         disabled.
14862         (gnat_to_gnu_entity) <object>: Adjust comment attached to the
14863         nullification of gnu_expr we do for objects with address clause and
14864         that we are not defining.
14865         (elaborate_expression_1): Do not create constants when creating
14866         variables needed by the debug info: the dwarf2 writer considers that
14867         CONST_DECLs is used only to represent enumeration constants, and emits
14868         nothing for them.
14869         (gnat_to_gnu_entity) <object>: When turning a non-definition of an
14870         object with an address clause into an indirect reference, drop the
14871         initializing expression.
14872         Include "expr.h".
14873         (STACK_CHECK_BUILTIN): Delete.
14874         (STACK_CHECK_PROBE_INTERVAL): Likewise.
14875         (STACK_CHECK_MAX_FRAME_SIZE): Likewise.
14876         (STACK_CHECK_MAX_VAR_SIZE): Likewise.
14877         (gnat_to_gnu_entity): If gnat_entity is a renaming, do not mark the tree
14878         corresponding to the renamed object as ignored for debugging purposes.
14879
14880         * trans.c (tree_transform, case N_Attribute_Reference, case Attr_Size &
14881         related): For a prefix that is a dereference of a fat or thin pointer,
14882         if there is an actual subtype provided by the front-end, use that
14883         subtype to build an actual type with bounds template.
14884         (tree_transform, case N_Free_Statement): If an Actual_Designated_Subtype
14885         is provided by the front-end, use that subtype to compute the size of
14886         the deallocated object.
14887         (gnat_to_gnu): When adding a statement into an elaboration procedure,
14888         check for a potential violation of a No_Elaboration_Code restriction.
14889         (maybe_stabilize_reference): New function, like gnat_stabilize_reference
14890         with extra arguments to control whether to recurse through non-values
14891         and to let the caller know if the stabilization has succeeded.
14892         (gnat_stabilize_reference): Now a simple wrapper around
14893         maybe_stabilize, for common uses without restriction on lvalues and
14894         without need to check for the success indication.
14895         (gnat_to_gnu, call_to_gnu): Adjust calls to gnat_stabilize_reference, to
14896         pass false instead of 0 as the FORCE argument which is a bool.
14897         (Identifier_to_gnu): Remove checks ensuring that an renamed object
14898         attached to a renaming pointer has been properly stabilized, as no such
14899         object is attached otherwise.
14900         (call_to_gnu): Invoke create_var_decl to create the temporary when the
14901         function uses the "target pointer" return mechanism.
14902         Reinstate conversion of the actual to the type of the formal
14903         parameter before any other specific treatment based on the passing
14904         mechanism. This turns out to be necessary in order for PLACEHOLDER
14905         substitution to work properly when the latter type is unconstrained.
14906
14907         * gigi.h (build_unc_object_type_from_ptr): New subprogram, factoring a
14908         common pattern.
14909         (maybe_stabilize_reference): New function, like gnat_stabilize_reference
14910         with extra arguments to control whether to recurse through non-values
14911         and to let the caller know if the stabilization has succeeded.
14912
14913         * utils2.c (gnat_build_constructor): Only sort the fields for possible
14914         static output of record constructor if all the components are constant.
14915         (gnat_build_constructor): For a record type, sort the list of field
14916         initializers in increasing bit position order.
14917         Factor common code to build a storage type for an unconstrained object
14918         from a fat or thin pointer type and a constrained object type.
14919         (build_unary_op) <ADDR_EXPR>: Always recurse down conversions between
14920         types variants, and process special cases of VIEW_CONVERT expressions
14921         as their NOP_EXPR counterpart to ensure we get to the
14922         CORRESPONDING_VARs associated with CONST_DECls.
14923         (build_binary_op) <MODIFY_EXPR>: Do not strip VIEW_CONVERT_EXPRs
14924         on the right-hand side.
14925
14926         * utils.c (build_unc_object_type_from_ptr): New subprogram, factoring
14927         a common pattern.
14928         (convert) <VIEW_CONVERT_EXPR>: Return the inner operand directly if we
14929         are converting back to its original type.
14930         (convert) <JM input>: Fallthrough regular conversion code instead of
14931         extracting the object if converting to a type variant.
14932         (create_var_decl): When a variable has an initializer requiring code
14933         generation and we are at the top level, check for a potential violation
14934         of a No_Elaboration_Code restriction.
14935         (create_var_decl): call expand_decl for CONST_DECLs, to set MODE, ALIGN
14936         SIZE and SIZE_UNIT which we need for later back-annotations.
14937         * utils.c: (convert) <STRING_CST>: Remove obsolete code.
14938         <VIEW_CONVERT_EXPR>: Do not lift the conversion if the target type
14939         is an unchecked union.
14940         (pushdecl): Set DECL_NO_STATIC_CHAIN on imported nested functions.
14941         (convert) <VIEW_CONVERT_EXPR>: When the types have the same
14942         main variant, just replace the VIEW_CONVERT_EXPR.
14943         <UNION_TYPE>: Revert 2005-03-02 change.
14944
14945         * repinfo.h, repinfo.ads: Add tcode for BIT_AND_EXPR.
14946
14947         * repinfo.adb (Print_Expr, Rep_Value): Handle Bit_And_Expressions.
14948
14949 2005-11-14  Matthew Heaney  <heaney@adacore.com>
14950
14951         * a-crbtgo.ads, a-crbtgo.adb, a-coorse.ads, a-coorse.adb, a-convec.ads, 
14952         a-convec.adb, a-coinve.ads, a-coinve.adb, a-cohama.ads, a-cohama.adb, 
14953         a-ciorse.ads, a-ciorse.adb, a-cihama.ads, a-cihama.adb, a-cidlli.ads, 
14954         a-cidlli.adb, a-cdlili.ads, a-cdlili.adb, a-coormu.adb, a-ciormu.adb, 
14955         a-cihase.adb, a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads, 
14956         a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-ciorma.adb, a-coorma.adb: 
14957         Compiles against the spec for ordered maps described in sections
14958         A.18.6 of the most recent (August 2005) AI-302 draft.
14959
14960 2005-11-14  Olivier Hainque  <hainque@adacore.com>
14961
14962         * cuintp.c (UI_To_gnu): Use a proper type for intermediate computations
14963         to ensure bias adjustments take place when need be and to prevent
14964         occurrences of intermediate overflows.
14965
14966 2005-11-14  Matthew Gingell  <gingell@adacore.com>
14967             Olivier Hainque  <hainque@adacore.com>
14968
14969         * tb-gcc.c (trace_callback): Work around problem with _Unwind_GetIP on
14970         ia64 HP-UX.
14971
14972         * tracebak.c (ia64 configuration): Enable _Unwind_Backtrace driven
14973         tracebacks on ia64 HP-UX and provide explanatory comment.
14974         Enable backtraces on ia64 GNU/Linux.
14975         (x86 configuration): Bump FRAME_LEVEL to 1 to ensure we retrieve a real
14976         base pointer from builtin_frame_address. Adjust BASE_SKIP accordingly.
14977
14978 2005-11-14  Hristian Kirtchev  <kirtchev@adacore.com>
14979             Javier Miranda  <miranda@adacore.com>
14980
14981         * rtsfind.ads, exp_util.adb, exp_util.ads, exp_disp.adb, exp_disp.ads,
14982         exp_ch7.adb, sem_ch9.adb, snames.adb, snames.ads,
14983         exp_ch9.adb, exp_ch9.ads, exp_ch6.adb, exp_ch3.adb, exp_ch3.ads,
14984         einfo.ads, einfo.adb: Complete support for Ada 2005 interfaces.
14985
14986         * a-tags.ads, a-tags.adb: Major rewrite and additions to implement
14987         properly new Ada 2005 interfaces (AI-345) and add run-time checks (via
14988         assertions).
14989
14990         * exp_dbug.ads, exp_dbug.adb (Get_Secondary_DT_External_Name): New
14991         subprogram that generates the external name associated with a
14992         secondary dispatch table.
14993         (Get_Secondary_DT_External_Name): New subprogram that generates the
14994         external name associated with a secondary dispatch table.
14995
14996 2005-11-14  Emmanuel Briot  <briot@adacore.com>
14997
14998         * xref_lib.adb (Parse_Identifier_Info): It is possible for an entity
14999         line in the ALI file to include both an instantiation reference, and a
15000         returned value.
15001
15002 2005-11-14  Vincent Celier  <celier@adacore.com>
15003
15004         * clean.adb (Check_Project): Look for Ada code in extending project,
15005         even if Ada is not specified as a language.
15006         Use new function DLL_Prefix for DLL_Name
15007         (Clean_Interface_Copy_Directory): New procedure
15008         (Clean_Library_Directory): New procedure
15009         (Clean_Directory): Remove procedure, no longer used
15010         (Clean_Project): Do not delete any file in an externally built project
15011
15012         * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Add the object
15013         directory of an extending project, even when there are no Ada source
15014         present.
15015         (Ada_Objects_Path.Add): Add Library_ALI_Dir, not Library_Dir to the path
15016         (Set_Ada_Paths.Add.Recursive_Add): Ditto
15017
15018         * mlib-prj.adb (Check_Library): For all library projects, get the
15019         library file timestamp.
15020         (Build_Library): Copy ALI files in Library_ALI_Dir, not in Library_Dir
15021         (Build_Library): Use new function DLL_Prefix for the DLL_Name
15022         (Clean): Remove procedure, no longer used
15023         (Ultimate_Extension_Of): New function
15024         (Build_Library): When cleaning the library directory, only remove an
15025         existing library file and any ALI file of a source of the project.
15026         When cleaning the interface copy directory, remove any source that
15027         could be a source of the project.
15028
15029         * prj.ads, prj.adb (Project_Empty): Add values of new components
15030         Library_TS and All_Imported_Projects.
15031         (Project_Empty): Add values for new components of Project_Data:
15032         Library_ALI_Dir and Display_Library_ALI_Dir
15033
15034         * prj-attr.adb: New project level attribute name Library_ALI_Dir
15035
15036         * prj-nmsc.adb (Check_Library_Attributes): Take into account new
15037         attribute Library_ALI_Dir.
15038         (Check_Library_Attributes): The library directory cannot be the same as
15039         any source directory of the project tree.
15040         (Check_Stand_Alone_Library): The interface copy directory cannot be
15041         the same as any source directory of the project tree.
15042
15043         * mlib.adb: Use Prj.Com.Fail, instead of Osint.Fail directly, to delete
15044         all temporary files.
15045
15046 2005-11-14  Robert Dewar  <dewar@adacore.com>
15047             Ed Schonberg  <schonberg@adacore.com>
15048
15049         * sem_elab.adb: Change name Is_Package to Is_Package_Or_Generic_Package
15050         (Check_Elab_Call): A call within a protected body is never an
15051         elaboration call, and does not require checking.
15052         (Same_Elaboration_Scope): Take into account protected types for both
15053         entities.
15054         (Activate_Elaborate_All_Desirable): New procedure
15055
15056         * ali.ads, ali.adb: Implement new AD/ED for Elaborate_All/Elaborate
15057         desirable
15058
15059         * binde.adb: Implement new AD/ED for Elaborate_All/Elaborate desirable
15060         (Elab_Error_Msg): Use -da to include internal unit links, not -de.
15061
15062         * lib-writ.ads, lib-writ.adb: 
15063         Implement new AD/ED for Elaborate_All/Elaborate desirable
15064         Use new Elaborate_All_Desirable flag in N_With_Clause node
15065
15066         * sinfo.ads, sinfo.adb (Actual_Designated_Subtype): New attribute for
15067         N_Free_Statement nodes.
15068         Define new class N_Subprogram_Instantiation
15069         Add Elaborate_Desirable flag to N_With_Clause node
15070         Add N_Delay_Statement (covering two kinds of delay)
15071
15072         * debug.adb: Introduce d.f flag for compiler
15073         Add -da switch for binder
15074
15075 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
15076             Cyrille Comar  <comar@adacore.com>
15077
15078         * exp_aggr.adb (Build_Record_Aggr_Code): Do not create master entity
15079         for task component, in the case of a limited aggregate. The enclosed
15080         object declaration will create it earlier. Otherwise, in the case of a
15081         nested aggregate, the object may appear in the wrong scope.
15082         (Convert_Aggr_In_Object_Decl): Create a transient scope when needed.
15083         (Gen_Assign): If the component being assigned is an array type and the
15084         expression is itself an aggregate, wrap the assignment in a block to
15085         force finalization actions on the temporary created for each row of the
15086         enclosing object.
15087         (Build_Record_Aggr_Code): Significant rewrite insuring that ctrl
15088         structures are initialized after all discriminants are set so that
15089         they can be accessed even when their offset is dynamic.
15090
15091 2005-11-14  Robert Dewar  <dewar@adacore.com>
15092             Hristian Kirtchev  <kirtchev@adacore.com>
15093
15094         * sem_attr.adb: Implement Machine_Rounding attribute
15095         (Analyze_Access_Attribute): The access attribute may appear within an
15096         aggregate that has been expanded into a loop.
15097         (Check_Task_Prefix): Add semantic check for attribute 'Callable and
15098         'Terminated whenever the prefix is of a task interface class-wide type.
15099         (Analyze_Attribute): Add semantic check for attribute 'Identity whenever
15100         the prefix is of a task interface class-wide type.
15101
15102         * s-vaflop-vms-alpha.adb: Valid_D, Valid_F, Valid_G: Make Val constant
15103         to avoid warnings.
15104
15105         * s-fatgen.ads, s-fatgen.adb (Machine_Rounding): New function
15106         Remove pragma Inline for [Unaligned_]Valid.
15107         Add comments that Valid routines do not work for Vax_Float
15108
15109         * exp_attr.adb: Implement Machine_Rounding attribute
15110
15111         * snames.h: Add entry for Machine_Rounding attribute
15112
15113 2005-11-14  Javier Miranda  <miranda@adacore.com>
15114             Robert Dewar  <dewar@adacore.com>
15115             Hristian Kirtchev  <kirtchev@adacore.com>
15116
15117         * exp_attr.adb (Expand_N_Attribute_Reference, cases of Attribute_Size
15118         and related): For a prefix that is an explicit dereference of an
15119         access to unconstrained packed array type, annotate the dereference
15120         with an actual subtype so GIGI can make a correct size computation.
15121         (Expand_N_Attribute_Reference): In case of 'Unchecked_Access and
15122         'Unrestricted_Access, if the designated type is an interface we
15123         add a type conversion to force the displacement of the pointer
15124         to the secondary dispatch table.
15125         Use Universal_Real instead of Long_Long_Float when we need a high
15126         precision float type for the generated code (prevents gratuitous
15127         Vax_Float stuff when pragma Float_Representation (Vax_Float) used)
15128         (Expand_N_Attribute_Reference): Add support for attribute 'Callable and
15129         'Terminated for task interface class-wide objects. Generate a call to
15130         the predefined dispatching routine used to retrieve the _task_id from
15131         a task corresponding record.
15132         (Expand_Fpt_Attribute): Major change to properly handle Vax_Float
15133
15134         * sem_disp.adb: Change name Is_Package to Is_Package_Or_Generic_Package
15135         (Check_Dispatching_Operation): Protect the frontend againts
15136         previously detected errors.
15137
15138         * Makefile.rtl: Add new instantiations of system.fat_gen
15139
15140         * s-fatflt.ads, s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads: 
15141         Change name of instantiated package for better consistency
15142         with newly added system.fat_gen instantiations.
15143
15144         * s-filofl.ads, s-fishfl.ads, s-fvadfl.ads, s-fvaffl.ads,
15145         s-fvagfl.ads: New files.
15146
15147 2005-11-14  Cyrille Comar  <comar@adacore.com>
15148             Thomas Quinot  <quinot@adacore.com>
15149
15150         * exp_ch5.adb (Expand_N_Assignment_Statement, Tagged_Case): For an
15151         assignment of a value of a tagged type that has been rewritten to a
15152         block statement, it is known by construction that no checks are
15153         necessary for the statements within the block: analyze it with checks
15154         suppressed.
15155         (Expand_N_If_Statement): When killing a dead then-branch in an
15156         if-statement that has elsif_parts, recompute the Current_Value node
15157         for any entity whose value is known from the condition of the first
15158         elsif_part.
15159         (Expand_N_Return_Statement): When returning a mutable record, convert
15160         the return value into its actual subtype in order to help the backend
15161         to return the actual size instead of the maximum. This is another
15162         aftermath of not returning mutable records on the sec-stack anymore.
15163
15164         * sem_ch5.ads, sem_ch5.adb (Analyze_Iteration_Scheme): Minor change to
15165         handling of error msg for suspicious reverse range iteration.
15166         (Check_Possible_Current_Value_Condition): Move declaration from body to
15167         spec, to allow this subprogram to be called from exp_ch5.
15168
15169 2005-11-14  Thomas Quinot  <quinot@adacore.com>
15170
15171         * exp_dist.adb (Append_Array_Traversal): Modify constrained case to
15172         generate a set of nested array aggregates instead of a single flat
15173         aggregate for multi-dimensional arrays.
15174
15175 2005-11-14  Pascal Obry  <obry@adacore.com>
15176
15177         * expect.c (__gnat_kill) [Win32]: Fix implementation, the pid returned
15178         by spawnve is a process handle, no need to convert. Add a parameter
15179         close to control wether the process handle must be closed.
15180         (__gnat_waitpid): Fix implementation, the pid returned by spawnve is
15181         a process handle, not need to convert.
15182         (__gnat_kill) [*]: Add dummy parameter close to match the Win32 spec.
15183
15184         * g-expect.adb: (Kill): Document the new close parameter.
15185         (Close): Do not release the process handle in the kill there as
15186         waitpid() is using it.
15187         (Send_Signal): Release the process handle.
15188
15189 2005-11-14  Robert Dewar  <dewar@adacore.com>
15190
15191         * exp_fixd.adb: Use Universal_Real instead of Long_Long_Float when we
15192         need a high precision float type for the generated code (prevents
15193         gratuitous Vax_Float stuff when pragma Float_Representation (Vax_Float)
15194         used).
15195
15196         * exp_imgv.adb: Use Universal_Real instead of Long_Long_Float when we
15197         need a high precision float type for the generated code (prevents
15198         gratuitous Vax_Float stuff when pragma Float_Representation (Vax_Float)
15199         used).
15200         (Expand_Width_Attribute): In configurable run-time, the attribute is not
15201         allowed on non-static enumeration subtypes. Force a load error to emit
15202         the correct diagnostic.
15203
15204 2005-11-14  Thomas Quinot  <quinot@adacore.com>
15205             Robert Dewar  <dewar@adacore.com>
15206             Ed Schonberg  <schonberg@adacore.com>
15207
15208         * exp_intr.adb (Expand_Unc_Deallocation): If GIGI needs an actual
15209         subtype to compute the size of the designated object at run-time,
15210         create such a subtype and store it in the Actual_Designated_Subtype
15211         attribute of the N_Free_Statement.
15212         Generate itype for classwide designated object in both cases of
15213         user-specified storage pool: specific and class-wide, not only in the
15214         specific case.
15215         Raise CE when trying to set a not null access type object to null.
15216         (Expand_Dispatching_Constructor_Call): Retrieve subprogram actual with
15217         an explicit loop, because freeze nodes make its position variable.
15218
15219         * sem_intr.adb (Check_Intrinsic_Call): Given warning for freeing not
15220         null object.
15221
15222 2005-11-14  Javier Miranda  <miranda@adacore.com>
15223
15224         * exp_strm.adb (Build_Stream_Attr_Profile, Build_Stream_Function,
15225         Build_Stream_Procedure): Add the null-excluding attribute to the first
15226         formal.
15227         This has no semantic meaning under Ada95 mode but it is a
15228         requirement under Ada05 mode.
15229
15230         * par-ch3.adb (P_Access_Definition): Addition of warning message if
15231         the null exclusion is used under Ada95 mode
15232         (P_Null_Exclusion): The qualifier has no semantic meaning in Ada 95.
15233         (P_Access_Definition): Remove assertion that forbids the use of
15234         the null-exclusion feature in Ada95.
15235
15236 2005-11-14  Robert Dewar  <dewar@adacore.com>
15237
15238         * impunit.adb: Exclude container helper units not intended for use by
15239         users.
15240
15241 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
15242
15243         * freeze.adb (Freeze_Entity): For an access formal that is an access
15244         to subprogram, freeze the anonymous subprogram type at the same time,
15245         to prevent later freezing in the wrong scope, such as the enclosing
15246         subprogram body.
15247         (Freeze_Entity): Freeze the equivalent_type of an access_to_protected_
15248         subprogram whenever available.
15249
15250 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
15251
15252         PR ada/23732
15253         * gnatvsn.ads (Library_Version): Bump to 4.1
15254
15255 2005-11-14  Robert Dewar  <dewar@adacore.com>
15256
15257         * g-debpoo.adb (Set_Valid): Use Integer_Address instead of
15258         Storage_Offset to avoid wrap around causing invalid results.
15259
15260 2005-11-14  Pascal Obry  <obry@adacore.com>
15261
15262         * gnatbind.adb (Is_Cross_Compiler): New function returning True for
15263         cross-compiler.
15264         (Scan_Bind_Arg): Fail with an error message if -M option is used
15265         on a native compiler.
15266
15267 2005-11-14  Robert Dewar  <dewar@adacore.com>
15268             Vincent Celier  <celier@adacore.com>
15269
15270         * gprep.adb: Implement -C switch to scan comments
15271
15272         * scng.adb: Scan comment symbol separately if Replace_In_Comments set
15273
15274         * scans.ads: Comment updates (including new use of Tok_Comment in
15275         preprocessing)
15276
15277         * opt.ads: Add documentation for flags that are used by gprmake,
15278         currently and in the next version of gprmake.
15279         (Verbosity_Level): New variable
15280         Add Replace_In_Comments switch
15281
15282         * vms_data.ads: Add VMS equivalent for new gnatmake switches -vl, -vm
15283         and -vm.
15284         Add /REPLACE_IN_COMMENTS for gnatprep -C switch
15285
15286 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
15287
15288         * g-regpat.adb (Fail): raise Expression_Error including the diagnostic
15289         message, friendlier.
15290
15291 2005-11-14  Robert Dewar  <dewar@adacore.com>
15292
15293         * g-spitbo.adb: (Hash): Rotate by 3 instead of 1
15294
15295 2005-11-14  Doug Rupp  <rupp@adacore.com>
15296
15297         * init.c [VMS]: Don't install __gnat_error_handler if DBG$TDBG defined.
15298
15299 2005-11-14  Robert Dewar  <dewar@adacore.com>
15300
15301         * interfac.ads: Change declarations of IEEE float types so that we no
15302         longer need a separate version of this package for VMS.
15303
15304 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
15305
15306         * lib-xref.adb (Generate_Definition, Generate_Reference): Treat the
15307         internal entity created for the declaration of a child subprogram body
15308         with no spec as coming from source, to generate proper cross-reference
15309         information.
15310
15311 2005-11-14  Vincent Celier  <celier@adacore.com>
15312
15313         * make.adb (Compile_Sources): Change verbose message to minimum
15314         verbosity level High for "is in an Ada library", "is a read-only
15315         library" and "is an internal library",
15316         (Create_Binder_Mapping_File): Path name of ALI file for library project
15317         must include the library directory, not the object directory.
15318         (Scan_Make_Arg): Make sure that Switch.M.Scan_Make_Switches is called
15319         for new switches -vl, -vm and -vh.
15320         (Verbose_Msg): Add new defaulted parameter Minimum_Verbosity
15321         (Check): Use minimum verbosity Medium for some Verbose_Msg calls
15322         (Compile_Sources): Do not attempt to compile if an ALI file is missing
15323         in a project that is externally built.
15324         (Compute_All_Imported_Projects): New procedure
15325         (Gnatmake): Check if importing libraries should be regenerated because
15326         at least an imported library is more recent.
15327         (Initialize): For each project compute the list of the projects it
15328         imports directly or indirectly.
15329         (Add_Library_Search_Dir): New procedure, used in place of
15330         Add_Lib_Search_Dir in procedure Scan_Make_Arg so that absolute paths are
15331         put in the search paths.
15332         (Add_Source_Search_Dir): New procedure, used in place of
15333         Add_Src_Search_Dir in procedure Scan_Make_Arg so that absolute paths are
15334         put in the search paths.
15335         (Mark_Directory): Resolve the absolute path the directory before marking
15336         it.
15337
15338         * switch-m.adb (Scan_Make_Switches): Replace "raise Bad_Switch;" with
15339         call to new procedure Bad_Switch. Call Scan_Pos with new parameter
15340         Switch. Do not handle any exception.
15341         (Scan_Make_Switches): Increment Ptr for new switches -vl, -vm and -vh
15342         so that the switch is recognized as valid.
15343         (Scan_Make_Switches): Implement new switches -vl, -vm and -vh.
15344
15345 2005-11-14  GNAT Script  <nobody@adacore.com>
15346
15347         * Make-lang.in: Makefile automatically updated
15348
15349 2005-11-14  Pascal Obry  <obry@adacore.com>
15350
15351         * mdll.adb (Build_Reloc_DLL): Fix parameter handling when a map file is
15352         used.
15353         (Ada_Build_Reloc_DLL): Fix parameter handling when a map file is used.
15354         In both cases the last argument was dropped.
15355
15356 2005-11-14  Eric Botcazou  <ebotcazou@adacore.com>
15357
15358         * namet.h: (Column_Numbe): New type.
15359         (Get_Column_Number): Define to sinput__get_column_number.
15360         (Instantiation): Define to sinput__instantiation.
15361         (Get_Column_Number): Declare.
15362         (Instantiation): Likewise.
15363
15364 2005-11-14  Robert Dewar  <dewar@adacore.com>
15365
15366         * par-ch10.adb (P_Compilation_Unit): Add defenses against junk unit
15367         syntax, which could cause compiler hangs.
15368
15369 2005-11-14  Vincent Celier  <celier@adacore.com>
15370
15371         * prj-ext.adb: Take into account new environment variable
15372         GPR_PROJECT_PATH. Warn if both GPR_PROJECT_PATH and ADA_PROJECT_PATH
15373         are defined.
15374         (Prj.Ext elaboration): For each directory in the ADA_PROJECT_PATH,
15375         normalize its path name, making it absolute and resolving symbolic
15376         links, and replace the original if resolved path is different.
15377
15378 2005-11-14  Vincent Celier  <celier@adacore.com>
15379
15380         * prj-part.adb (Create_Virtual_Extending_Project): Put virtual project
15381         into Prj.Tree.Tree_Private_Part.Projects_Htable for GPS.
15382
15383 2005-11-14  Emmanuel Briot  <briot@adacore.com>
15384
15385         * prj-pp.adb (Print): Do not output the with statement if the
15386         associated name is empty, which happens for virtual extending projects.
15387         (Print): Preserve the "extends all" attribute when printing the project.
15388
15389         * prj-tree.ads (String_Value_Of): Add comment about returned value for
15390         a virtual extending project.
15391
15392 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
15393
15394         * sem_aggr.adb (Resolve_Aggregate): An others choice is legal on the
15395         rhs of an assignment even if the type is unconstrained, when the
15396         context is non-expanding.
15397         In an inlined body, if the context type is private,
15398         resolve with its full view, which must be a composite type.
15399
15400 2005-11-14  Robert Dewar  <dewar@adacore.com>
15401             Ed Schonberg  <schonberg@adacore.com>
15402
15403         * sem_ch10.adb: Change name Is_Package to Is_Package_Or_Generic_Package
15404         Do not give obsolescent warning on with of subprogram (since we
15405         diagnose calls)
15406         (Analyze_With_Clause): Add test for obsolescent package
15407         (Install_Context_Clauses): If the unit is the body of a child unit, do
15408         not install twice the private declarations of the parents, to prevent
15409         circular lists of Use_Clauses in a parent.
15410         (Implicit_With_On_Parent): Do add duplicate with_clause on parent when
15411         compiling body of child unit.
15412         Use new class N_Subprogram_Instantiation
15413         (Expand_With_Clause): If this is a private with_clause for a child unit,
15414         appearing in the context of a package declaration, then the implicit
15415         with_clauses generated for parent units are private as well.
15416         (License_Check): Do not generate message if with'ed unit is internal
15417
15418 2005-11-14  Gary Dismukes  <dismukes@adacore.com>
15419             Ed Schonberg  <schonberg@adacore.com>
15420             Thomas Quinot  <quinot@adacore.com>
15421
15422         * sem_ch12.ads, sem_ch12.adb (Map_Entities): Exclude entities whose
15423         names are internal, because they will not have a corresponding partner
15424         in the actual package.
15425         (Analyze_Formal_Package): Move the setting of the formal package spec's
15426         Generic_Parent field so that it occurs prior to analyzing the package,
15427         to allow proper operation of Install_Parent_Private_Declarations.
15428         (Analyze_Package_Instantiation): Set the instantiated package entity's
15429         Package_Instantiation field.
15430         (Get_Package_Instantiation_Node): Move declaration to package spec.
15431         Retrieve the N_Package_Instantiation node when the Package_Instantiation
15432         field is present.
15433         (Check_Generic_Child_Unit): Within an inlined call, the only possible
15434         instantiation is Unchecked_Conversion, for which no parents are needed.
15435         (Inline_Instance_Body): Deinstall and record the use_clauses for all
15436         parent scopes of a scope being removed prior to inlining an instance
15437         body.
15438         (Analyze_Package_Instantiation): Do not perform front-end inlining when
15439         the current context is itself an instance within a non-instance child
15440         unit, to prevent scope stack errors.
15441         (Save_References): If the node is an aggregate that is an actual in a
15442         call, rewrite as a qualified expression to preserve some type
15443         information, to resolve possible ambiguities in the instance.
15444         (Instance_Parent_Unit): New global variable to record the ultimate
15445         parent unit associated with a generic child unit instance (associated
15446         with the existing Parent_Unit_Visible flag).
15447         (type Instance_Env): New component Instance_Parent_Unit for stacking
15448         parents recorded in the global Instance_Parent_Unit.
15449         (Init_Env): Save value of Instance_Parent_Unit in the Instance_Env
15450         stack.
15451         (Install_Spec): Save the parent unit entity in Instance_Parent_Unit when
15452         it's not a top-level unit, and only do this if Instance_Parent_Unit is
15453         not already set. Replace test of Is_Child_Unit with test of parent's
15454         scope against package Standard. Add comments and a ??? comment.
15455         (Remove_Parent): Revise condition for resetting Is_Immediately_Visible
15456         on a child instance parent to test that the parent equals
15457         Instance_Parent rather than simply checking that the unit is not a
15458         child unit.
15459         (Restore_Env): Restore value of Instance_Parent_Unit from Instance_Env.
15460         (Validate_Derived_Interface_Type_Instance): Verify that all ancestors of
15461         a formal interface are ancestors of the corresponding actual.
15462         (Validate_Formal_Interface_Type): Additional legality checks.
15463         (Analyze_Formal_Derived_Interface_Type): New procedure to handle formal
15464         interface types with ancestors.
15465         (Analyze_Formal_Package): If formal is a renaming, use renamed entity
15466         to diagnose attempts to use generic within its own declaration.
15467
15468 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
15469             Javier Miranda  <miranda@adacore.com>
15470
15471         * sem_ch3.ads, sem_ch3.adb (Build_Discriminal): Add link to original
15472         discriminant.
15473         (Build_Private_Derived_Type): The entity of the created full view of the
15474         derived type does not come from source. If after installing the private
15475         declarations of the parent scope the parent is still private, use its
15476         full view to construct the full declaration of the derived type.
15477         (Build_Derived_Record_Type): Relax the condition that controls the
15478         execution of the check that verifies that the partial view and
15479         the full view agree in the set of implemented interfaces. In
15480         addition, this test now only takes into account the progenitors.
15481         (Derive_Interface_Subprograms): No need to derive subprograms
15482         of ancestors that are interfaces.
15483         (Derive_Subprograms): Remove formal No_Predefined_Prims and the
15484         associated code.
15485         Change name Is_Package to Is_Package_Or_Generic_Package
15486         (Complete_Subprograms_Derivation): Handle the case in which the full
15487         view is a transitive derivation of the ancestor of the partial view.
15488         (Process_Full_View): Rename local subprogram Find_Interface_In_
15489         Descendant to Find_Ancestor_Interface to leave the code more clear.
15490         Remove wrong code that avoids the generation of an error message
15491         when the immediate ancestor of the partial view is an interface.
15492         In addition some minor reorganization of the code has been done to
15493         leave it more clear.
15494         (Analyze_Type_Declaration): If type has previous incomplete tagged
15495         partial view, inherit properly its primitive operations.
15496         (Collect_Interfaces): Make public, for analysis of formal
15497         interfaces.
15498         (Analyze_Interface_Declaration): New procedure for use for regular and
15499         formal interface declarations.
15500         (Build_Derived_Record_Type): Add support for private types to the code
15501         that checks if a tagged type implements abstract interfaces.
15502         (Check_Aliased_Component_Type): The test applies in the spec of an
15503         instance as well.
15504         (Access_Type_Declaration): Clean up declaration of malformed type
15505         declared as an access to its own classwide type, to prevent cascaded
15506         crash.
15507         (Collect_Interfaces): For private extensions and for derived task types
15508         and derived protected types, the parent may be an interface that must
15509         be included in the interface list.
15510         (Access_Definition): If the designated type is an interface that may
15511         contain tasks, create Master_Id for it before analyzing the expression
15512         of the declaration, which may be an allocator.
15513         (Record_Type_Declaration): Set properly the interface kind, for use
15514         in allocators, the creation of master id's for task interfaces, etc.
15515
15516 2005-11-14  Javier Miranda  <miranda@adacore.com>
15517             Ed Schonberg  <schonberg@adacore.com>
15518
15519         * sem_ch6.adb (Check_Conformance): The null-exclusion feature can be
15520         omitted in case of stream attribute subprograms.
15521         (Check_Inline_Pragma): Handle Inline and Inline_Always pragmas that
15522         appear immediately after a subprogram body, when there is no previous
15523         subprogram declaration.
15524         Change name Is_Package to Is_Package_Or_Generic_Package
15525         (Process_Formals): A non null qualifier on a non null named access
15526         type is not an error, and is a warning only if Redundant_Constructs
15527         are flagged.
15528
15529 2005-11-14  Gary Dismukes  <dismukes@adacore.com>
15530             Ed Schonberg  <schonberg@adacore.com>
15531
15532         * sem_ch7.adb (Install_Parent_Private_Declarations): New procedure
15533         nested within Analyze_Package_Specification to install the private
15534         declarations and use clauses within each of the parent units of a
15535         package instance of a generic child package.
15536         (Analyze_Package_Specification): When entering a private part of a
15537         package associated with a generic instance or formal package, the
15538         private declarations of the parent must be installed (by calling new
15539         procedure Install_Parent_Private_Declarations).
15540         Change name Is_Package to Is_Package_Or_Generic_Package
15541         (Preserve_Full_Attributes): For a synchronized type, the corresponding
15542         record is absent in a generic context, which does not indicate a
15543         compiler error.
15544
15545 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
15546
15547         * sem_ch8.adb (Analyze_Subprogram_Renaming): In a generic context, do
15548         not try to rewrite a renamed stream attribute, because the operations
15549         on the type may not have been generated.
15550         Handle properly a renaming_as_body generated for a stream operation
15551         whose default is abstract because the object type itself is abstract.
15552         (Find_Type): If the type is incomplete and appears as the prefix of a
15553         'Class reference, it is tagged, and its list of primitive operations
15554         must be initialized properly.
15555         (Chain_Use_Clauses): When chaining the use clauses that appear in the
15556         private declaration of a parent unit, prior to compiling the private
15557         part of a child unit, find on the scope stack the proper parent entity
15558         on which to link the use clause.
15559         (Note_Redundant_Use): Emit a warning when a redundant use clause is
15560         detected.
15561         (Analyze_Object_Renaming): An attribute reference is not a legal object
15562         if it is not a function call.
15563
15564 2005-11-14  Robert Dewar  <dewar@adacore.com>
15565             Ed Schonberg  <schonberg@adacore.com>
15566
15567         * sem_eval.adb: Implement d.f flag
15568         (Subtype_Statically_Match): A generic actual type has unknown
15569         discriminants when the corresponding actual has a similar partial view.
15570         If the routine is called to validate the signature of an inherited
15571         operation in a child instance, the generic actual matches the full view,
15572
15573 2005-11-14  Hristian Kirtchev  <kirtchev@adacore.com>
15574             Ed Schonberg  <schonberg@adacore.com>
15575             Robert Dewar  <dewar@adacore.com>
15576             Thomas Quinot  <quinot@adacore.com>
15577
15578         * sem_res.adb (Resolve_Call): Provide a better error message whenever
15579         a procedure call is used as a select statement trigger and is not an
15580         entry renaming or a primitive of a limited interface.
15581         (Valid_Conversion): If the operand has a single interpretation do not
15582         remove address operations.
15583         (Check_Infinite_Recursion): Skip freeze nodes when looking for a raise
15584         statement to inhibit warning.
15585         (Resolve_Unary_Op): Do not produce a warning when
15586         processing an expression of the form -(A mod B)
15587         Use Universal_Real instead of Long_Long_Float when we need a high
15588         precision float type for the generated code (prevents gratuitous
15589         Vax_Float stuff when pragma Float_Representation (Vax_Float) used)
15590         (Resolve_Concatenation_Arg): Improve error message when argument is an
15591         ambiguous call to a function that returns an array.
15592         (Make_Call_Into_Operator, Operand_Type_In_Scope): Do not check that
15593         there is an implicit operator in the given scope if we are within an
15594         instance: legality check has been performed on the generic.
15595         (Resolve_Unary_Op): Apply warnings checks on argument of Abs operator
15596         after resolving operand, to avoid false warnings on overloaded calls.
15597
15598 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
15599             Javier Miranda  <miranda@adacore.com>
15600
15601         PR ada/15604
15602         * sem_type.adb (Covers): In an inlined body, a composite type matches
15603         a private type whose full view is a composite type.
15604         (Interface_Present_In_Ancestor): Protect the frontend against
15605         previously detected errors to ensure that its compilation
15606         with assertions enabled gives the same output that its
15607         compilation without assertions.
15608         (Interface_Present_In_Ancestor): Add support for private types.
15609         Change name In_Actual to In_Generic_Actual (clean up)
15610         (Disambiguate): New predicate In_Actual, to recognize expressions that
15611         appear in the renaming declaration generated for generic actuals, and
15612         which must be resolved in the outer context.
15613
15614 2005-11-14  Robert Dewar  <dewar@adacore.com>
15615             Thomas Quinot  <quinot@adacore.com>
15616             Hristian Kirtchev  <kirtchev@adacore.com>
15617             Ed Schonberg  <schonberg@adacore.com>
15618
15619         * sem_util.ads, sem_util.adb: Change name Is_Package to
15620         Is_Package_Or_Generic_Package.
15621         (Check_Obsolescent): New procedure.
15622         (Set_Is_Public): Remove obsolete junk test.
15623         (Set_Public_Status): Do not set Is_Public on an object whose declaration
15624         occurs within a handled_sequence_of_statemets.
15625         (Is_Controlling_Limited_Procedure): Factor some of the logic, account
15626         for a parameterless procedure.
15627         (Enter_Name): Recognize renaming declarations created for private
15628         component of a protected type within protected operations, so that
15629         the source name of the component can be used in the debugger.
15630
15631 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
15632             Robert Dewar  <dewar@adacore.com>
15633
15634         * sem_warn.ads, sem_warn.adb (Publicly_Referenceable): Generic formals
15635         of a generic subprogram are not visible outside the body.
15636         (Set_Warning_Switch): New procedure (code to set warning mode moved
15637         here from Switch.C so that it can be shared by pragma processing.
15638         (Check_References): Special case warning for non-modified non-imported
15639         volatile objects.
15640         * par-prag.adb: Modify processing of pragma Warnings to accomodate new
15641         form with a string literal argument
15642
15643 2005-11-14  Javier Miranda  <miranda@adacore.com>
15644
15645         * s-finroo.ads, s-finroo.adb (Read): Addition of "not null" to the
15646         anonymous access.
15647         (Write): Addition of "not null" to the anonymous access.
15648         (Read): Addition of "not null" to the anonymous access.
15649         (Write): Addition of "not null" to the anonymous access.
15650
15651         * s-strxdr.adb, s-stratt.ads, s-stratt.adb (I_AD, I_AS, I_B, I_C, I_F,
15652         I_I, I_LF, I_LI, I_LLF, I_LLI, I_LLU, I_LU, I_SF, I_SI, I_SSI, I_SSU,
15653         I_SU, I_U, I_WC): Addition of "not null" to the anonymous access.
15654         (W_AD, W_AS, W_B, W_C, W_F, W_I, W_LF, W_LI, W_LLF, W_LLI, W_LLU,
15655         W_LU, W_SF, W_SI, W_SSI, W_SSU, W_SU, W_U, W_WC): Addition of
15656         "not null" to the anonymous access.
15657
15658 2005-11-14  Robert Dewar  <dewar@adacore.com>
15659
15660         * s-stoele.adb: Fix code for Address mod Storage_Offset for negative
15661         offset values
15662
15663 2005-11-14  Vincent Celier  <celier@adacore.com>
15664
15665         * switch.adb (Bad_Switch): New procedure
15666         (Scan_Nat, Scan_Pos): Directly call Osint.Fail with the appropriate
15667         message when in error.
15668
15669         * switch.ads (Bad_Switch, Bad_Switch_Value, Missing_Switch_Value,
15670         Too_Many_Output_Files): Remove declarations, no longer used.
15671         (Scan_Nat): New parameter Switch
15672         (Scan_Pos): Ditto
15673         (Bad_Switch): New procedure
15674
15675         * switch-b.adb (Scan_Binder_Switches): Replace "raise Bad_Switch;"
15676         with call to new procedure Bad_Switch. Call Scan_Pos and Scan_Natwith
15677         new parameter Switch. Replace "raise Too_Many_Output_Files;" with call
15678         to Osint.Fail. Do not handle any exception.
15679
15680 2005-11-14  Vincent Celier  <celier@adacore.com>
15681
15682         * tempdir.adb (Tempdir): Do not use environment variable TMPDIR if it
15683         designates a non existent directory.
15684
15685 2005-11-14  Robert Dewar  <dewar@adacore.com>
15686
15687         * xgnatugn.adb: Replace invalid membership test by 'Valid
15688
15689 2005-11-14  Vincent Celier  <celier@adacore.com>
15690
15691         * makegpr.adb (Gprmake): Do not attempt to build the global archive if
15692         there is no object directory.
15693
15694 2005-11-14  Robert Dewar  <dewar@adacore.com>
15695
15696         * usage.adb: Minor adjustment to output format, use nn instead of nnn
15697         (so that -gnateInnn does not run into next column)
15698
15699 2005-11-14  Ed Falis  <falis@adacore.com>
15700
15701         * s-bitops.adb (Bits_Array): corrected comment: "unconstrained" =>
15702         "constrained"
15703
15704 2005-11-14  Cyrille Comar  <comar@adacore.com>
15705
15706         * s-chepoo.ads: Add comments on Dereference.
15707         Remove unnecessary inherited abstract primitives.
15708         Cosmetic cleanup.
15709
15710 2005-11-14  Robert Dewar  <dewar@adacore.com>
15711
15712         * sem_cat.ads (Validate_Access_Type_Declaration): Remove declaration
15713         node parameter, not needed, since it is available as Declaration_Node.
15714
15715 2005-11-14  Geert Bosch  <bosch@adacore.com>
15716
15717         * s-exnllf.adb (Exn_LLF): Fix comment to be more precise and
15718         grammatically correct.
15719
15720 2005-11-14  Vincent Celier  <celier@adacore.com>
15721
15722         * s-fileio.ads: Correct spelling error in comment
15723
15724 2005-11-14  Cyrille Comar  <comar@adacore.com>
15725             Robert Dewar  <dewar@adacore.com>
15726             Vincent Celier  <celier@adacore.com>
15727             Ben Brosgol  <brosgol@adacore.com>
15728             Jose Ruiz  <ruiz@adacore.com>
15729             Pascal Obry  <obry@adacore.com>
15730
15731         * gnat_ugn.texi: 
15732         Document that -fstack-check is needed for strict compliance with the
15733         Ada 95 Reference Manual.
15734         Correct reference to VAX systems to meet HP guidelines
15735         Add documentation for new gnatmake switches -vl, -vm and -vh
15736         Replace DEC Ada by HP Ada
15737         Replace DIGITAL by HP
15738         Remove empty section on tools in compatibility section
15739         Clarify the Windows convention semantics.
15740         Document the Win32 calling convention.
15741         The Stdcall, Win32 and DLL convention are synonyms.
15742         Add a note in -gnatR description about zero size record components
15743         Note on new >= and <= warnings for -gnatwc
15744         Document that equal sign after -gnatm is optional.
15745         Note that strip is working fine on DLL built with a Library
15746         Project. The restriction apply only to DLL built with gnatdll.
15747         Update section about the way to debug a DLL.
15748         Update information about the DLL convention.
15749         Document -C switch for gnatprep
15750         Document new attribute Library_ALI_Dir
15751         Update elaboration doc to include implicit Elaborate pragmas now
15752         generated for subprogram instantiations.
15753         Document limitation on executable names that include spaces for --GCC,
15754         --GNATBIND, and --GNATLINK switches.
15755         Document that -w causes -gnatws to be added at start of gcc switches
15756
15757         * gnat_rm.texi: Document that -mieee is needed for generating infinite
15758         and NaN values in case of overflow on machines that are not fully
15759         compliant with the IEEE floating-point standard.
15760         Create a section describing the set of compiler options needed for
15761         strict compliance with the Ada 95 Reference Manual.
15762         Add documentation for pragma Obsolescent applied to a package
15763         Clarify potential issues of mixed language programs related to the
15764         I/O buffering enabling in the elaboration of the GNAT runtime.
15765         Add extra documentation for pragma Restrictions (No_Elaboration_Code)
15766         This documentation only patch adds extra documentsion for pragma
15767         Restrictions (No_Elaboration_Code), explaining why it is not possible
15768         to document this restriction in terms of allowed source constructs.
15769         Document string literal form of pragma Warnings
15770         Document new attribute Library_ALI_Dir
15771         Add documentation on stable attributes in project files that was missing
15772
15773         * gnat-style.texi: Indicate that paragraphs within a single comment
15774         should be separated by empty comment lines
15775
15776         * ug_words: Added replacements for -gnat95 and -gnat05 (/95 and
15777         /05 respectively)
15778
15779         * bindusg.adb: Minor cleanup, put -m before -M for consistency
15780
15781 2005-11-14  Robert Dewar  <dewar@adacore.com>
15782
15783         * a-secain.adb, a-slcain.adb, a-shcain.adb, a-chtgke.ads, a-chtgke.adb,
15784         a-stwiha.adb, a-strhas.adb, a-chzla1.ads, a-chzla9.ads, a-stzbou.adb,
15785         a-stzbou.ads, a-stzfix.adb, a-stzhas.adb, a-stzmap.adb, a-stzmap.ads,
15786         a-stzsea.adb, a-stzsea.ads, a-stzsup.adb, a-stzsup.ads, a-stzunb.adb,
15787         a-stzunb.ads, a-szuzha.adb, a-szuzha.ads, a-szuzti.adb, a-szuzti.ads,
15788         a-ztcoau.adb, a-ztcoau.ads, a-ztcoio.adb, a-ztcstr.adb, a-ztcstr.ads,
15789         a-ztdeau.adb, a-ztdeau.ads, a-ztdeio.adb, a-ztdeio.ads, a-ztedit.adb,
15790         a-ztedit.ads, a-ztenau.ads, a-ztenio.adb, a-ztenio.ads, a-ztexio.adb,
15791         a-ztexio.ads, a-ztfiio.adb, a-ztfiio.ads, a-ztflau.adb, a-ztflau.ads,
15792         a-ztflio.adb, a-ztflio.ads, a-ztgeau.adb, a-ztgeau.ads, a-ztinau.adb,
15793         a-ztinau.ads, a-ztinio.adb, a-ztmoau.ads, a-ztmoio.adb, a-ztmoio.ads,
15794         a-zttest.adb, g-enblsp-vms-alpha.adb, g-enblsp-vms-alpha.adb,
15795         g-enblsp-vms-ia64.adb, g-enblsp-vms-ia64.adb, system-linux-hppa.ads,
15796         a-chacon.adb, a-chacon.ads, a-wichun.adb, a-wichun.ads, a-zchuni.adb,
15797         a-zchuni.ads, g-trasym-vms-alpha.adb, g-trasym-vms-ia64.adb,
15798         system-hpux-ia64.ads, g-soccon-unixware.ads, g-soliop-unixware.ads,
15799         g-soccon-interix.ads, g-soliop-solaris.ads, g-eacodu-vms.adb,
15800         g-expect-vms.adb, g-socthi-vms.adb, g-soliop-mingw.ads,
15801         a-intnam-unixware.ads, a-intnam-lynxos.ads, a-intnam-tru64.ads,
15802         a-intnam-aix.ads, a-intnam-linux.ads, a-intnam-linux.ads,
15803         a-intnam-dummy.ads, a-numaux-libc-x86.ads, a-intnam-interix.ads,
15804         a-intnam-solaris.ads, a-calend-vms.adb, a-calend-vms.ads,
15805         a-intnam-vms.ads, a-calend-mingw.adb, a-intnam-mingw.ads,
15806         a-intnam-vxworks.ads, a-numaux-vxworks.ads, system-unixware.ads,
15807         system-linux-ia64.ads, a-intnam-freebsd.ads, system-freebsd-x86.ads,
15808         system-lynxos-ppc.ads, system-linux-x86_64.ads, a-stunha.adb,
15809         a-cgaaso.ads, a-cgaaso.adb, a-chtgop.adb, a-cgcaso.adb, a-cgarso.adb,
15810         a-cohata.ads, a-crbtgk.adb, a-crbltr.ads, a-coprnu.adb, a-rbtgso.adb,
15811         a-intnam-darwin.ads, system-darwin-ppc.ads, gprmake.adb, makegpr.ads,
15812         system-tru64.ads, system-aix.ads, system-solaris-x86.ads,
15813         system-irix-o32.ads, s-interr-sigaction.adb, system-irix-n32.ads,
15814         s-parame-mingw.adb, system-hpux.ads, s-traceb-hpux.adb,
15815         system-linux-x86.ads, s-inmaop-dummy.adb, system-os2.ads,
15816         system-interix.ads, system-solaris-sparc.ads,
15817         system-solaris-sparcv9.ads, s-inmaop-vms.adb,
15818         s-mastop-vms.adb, expander.adb, expander.ads, s-gloloc-mingw.adb,
15819         system-mingw.ads, system-vms-zcx.ads, s-osinte-fsu.adb,
15820         s-traceb-mastop.adb, a-exextr.adb, a-exstat.adb, a-filico.ads,
15821         a-finali.ads, a-interr.ads, a-intsig.adb, a-intsig.ads,
15822         a-except.ads, a-numaux-x86.ads, a-astaco.adb, a-calend.adb,
15823         a-calend.ads, a-chahan.adb, a-chahan.ads, a-chlat9.ads,
15824         a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
15825         a-comlin.adb, a-comlin.ads, a-cwila1.ads, a-cwila9.ads,
15826         a-elchha.adb, a-decima.adb, a-decima.ads, a-diocst.ads,
15827         a-direio.adb, a-direio.ads, a-excach.adb, a-excach.adb,
15828         a-exctra.ads, ali-util.adb, a-ngcefu.adb, a-ngcoty.adb,
15829         a-ngcoty.ads, a-nudira.adb, a-nudira.ads, a-nuflra.adb,
15830         a-numaux.ads, a-reatim.ads, a-sequio.adb, a-sequio.ads,
15831         a-siocst.ads, a-ssicst.ads, a-stmaco.ads, a-storio.adb,
15832         a-strbou.adb, a-strbou.ads, a-stream.ads, a-strfix.adb,
15833         a-strmap.adb, a-strmap.ads, a-strsea.adb, a-strsea.ads,
15834         a-strsup.adb, a-strsup.ads, a-strunb.adb, a-strunb.ads,
15835         a-stwibo.adb, a-stwibo.ads, a-stwifi.adb, a-stwima.adb,
15836         a-stwima.ads, a-stwise.adb, a-stwise.ads, a-stwisu.adb,
15837         a-stwisu.ads, a-stwiun.adb, a-stwiun.ads, a-suteio.adb,
15838         a-suteio.ads, a-swmwco.ads, a-swuwti.adb, a-swuwti.ads,
15839         a-sytaco.adb, a-sytaco.ads, a-tasatt.adb, a-taside.adb,
15840         a-taside.ads, a-teioed.adb, a-textio.adb, a-textio.ads,
15841         a-ticoau.adb, a-ticoau.ads, a-ticoio.adb, a-tideau.adb,
15842         a-tideio.adb, a-tienau.adb, a-tienio.adb, a-tifiio.adb,
15843         a-tiflio.adb, a-tigeau.adb, a-tigeau.ads, a-tiinau.adb,
15844         a-tiinio.adb, a-timoau.adb, a-timoio.adb, a-timoio.ads,
15845         a-tiocst.ads, a-titest.adb, atree.adb, a-witeio.adb,
15846         a-witeio.ads, a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb,
15847         a-wtcstr.ads, a-wtdeau.adb, a-wtdeio.adb, a-wtedit.adb,
15848         a-wtedit.ads, a-wtenau.adb, a-wtenio.adb, a-wtfiio.adb,
15849         a-wtflio.adb, a-wtgeau.adb, a-wtinau.adb, a-wtinio.adb,
15850         a-wtmoau.adb, a-wtmoio.adb, a-wttest.adb, back_end.adb,
15851         bindgen.adb, butil.adb, butil.ads, checks.ads, cio.c, comperr.adb,
15852         csets.ads, cstand.adb, debug.ads, elists.ads, errno.c, errout.adb,
15853         errout.ads, erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
15854         errutil.ads, err_vars.ads, eval_fat.adb, exp_ch11.adb, exp_ch11.ads,
15855         exp_ch2.adb, exp_ch7.ads, exp_imgv.ads, exp_pakd.adb, exp_prag.adb,
15856         exp_prag.ads, exp_tss.adb, exp_tss.ads, exp_vfpt.ads, fe.h, fmap.adb,
15857         freeze.ads, frontend.adb, frontend.ads, g-arrspl.adb, g-arrspl.ads,
15858         g-awk.adb, g-awk.ads, g-boumai.ads, g-calend.adb, g-calend.ads,
15859         g-catiio.adb, g-comlin.adb, g-comlin.ads, g-comlin.ads, g-comlin.ads,
15860         g-comver.adb, g-crc32.adb, g-crc32.ads, g-ctrl_c.ads, g-curexc.ads,
15861         g-debpoo.ads, g-debuti.adb, g-diopit.adb, g-diopit.ads, g-dirope.adb,
15862         g-dirope.ads, g-dyntab.adb, g-dyntab.ads, g-excact.adb, g-excact.ads,
15863         g-except.ads, g-exctra.adb, g-exctra.ads, g-expect.ads, g-flocon.ads,
15864         g-hesorg.ads, g-io.adb, g-locfil.ads, g-md5.adb, g-md5.ads, g-md5.ads,
15865         g-moreex.adb, g-signal.ads, g-signal.adb, gnatbind.ads, gnatchop.adb,
15866         gnatcmd.adb, gnatfind.adb, gnatlbr.adb, gnatmake.ads, gnatmem.adb,
15867         gnatprep.adb, gnatprep.ads, gnatsym.adb, gnatxref.adb, g-os_lib.adb,
15868         g-os_lib.ads, g-pehage.adb, g-pehage.ads, gprep.ads, g-regexp.adb,
15869         g-regexp.ads, g-regist.adb, g-regist.ads, g-regpat.ads, g-semaph.adb,
15870         g-socthi.adb, g-soliop.ads, g-spipat.adb, g-spipat.ads, g-sptabo.ads,
15871         g-sptain.ads, g-sptavs.ads, g-string.ads, g-tasloc.adb, g-tasloc.ads,
15872         g-trasym.adb, g-trasym.ads, i-fortra.adb, i-fortra.ads, inline.adb,
15873         layout.adb, live.adb, make.ads, makeutl.ads, makeutl.adb, mdll-fil.adb,
15874         mdll-fil.ads, mdll-utl.ads, memroot.ads, memtrack.adb, mlib.ads,
15875         mlib-fil.adb, mlib-fil.ads, mlib-prj.ads, mlib-utl.adb, mlib-utl.ads,
15876         nlists.adb, nlists.ads, osint.adb, osint.ads, osint-c.adb, osint-l.adb,
15877         osint-l.ads, osint-m.ads, output.adb, par.adb, par.adb, par.ads,
15878         par-ch11.adb, par-ch12.adb, par-ch2.adb, par-ch4.adb, par-ch5.adb,
15879         par-ch6.adb, par-ch9.adb, par-endh.adb, par-labl.adb, par-load.adb,
15880         par-tchk.adb, prep.adb, prepcomp.adb, prepcomp.ads, prj-attr.ads,
15881         prj-com.ads, prj-dect.adb, prj-dect.ads, prj-env.ads, prj-err.ads,
15882         prj-ext.ads, prj-makr.adb, prj-makr.ads, prj-nmsc.ads, prj-pars.adb,
15883         prj-pars.ads, prj-part.ads, prj-pp.ads, prj-proc.ads, prj-strt.adb,
15884         prj-strt.ads, prj-tree.adb, prj-util.adb, prj-util.ads, rtsfind.adb,
15885         sem.adb, sem.ads, sem_case.adb, sem_case.ads, sem_ch11.adb,
15886         sem_ch4.adb, sem_ch6.ads, sem_ch7.ads, sem_dist.ads, sem_elab.ads,
15887         sem_elim.ads, sem_eval.ads, sem_intr.ads, sem_maps.adb, sem_maps.ads,
15888         sem_maps.ads, sem_res.ads, sem_type.ads, sfn_scan.adb, sfn_scan.ads,
15889         s-imgwch.ads, s-imgwiu.adb, s-imgwiu.ads, s-inmaop.ads, sinput.adb,
15890         sinput.ads, s-pack03.adb, s-pack03.ads, s-pack05.adb, s-pack05.ads,
15891         s-pack06.adb, s-pack06.ads, s-pack07.adb, s-pack07.ads, s-pack09.adb,
15892         s-pack09.ads, s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads,
15893         s-pack12.adb, s-pack12.ads, s-pack13.adb, s-pack13.ads, s-pack14.adb,
15894         s-pack14.ads, s-pack15.adb, s-pack15.ads, s-pack17.adb, s-pack17.ads,
15895         s-pack18.adb, s-pack18.ads, s-pack19.adb, s-pack19.ads, s-pack20.adb,
15896         s-pack20.ads, s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads,
15897         s-pack23.adb, s-pack23.ads, s-pack24.adb, s-pack24.ads, s-pack25.adb,
15898         s-pack25.ads, s-pack26.adb, s-pack26.ads, s-pack27.adb, s-pack27.ads,
15899         s-pack28.adb, s-pack28.ads, s-pack29.adb, s-pack29.ads, s-pack30.adb,
15900         s-pack30.ads, s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads,
15901         s-pack34.adb, s-pack34.ads, s-pack35.adb, s-pack35.ads, s-pack36.adb,
15902         s-pack36.ads, s-pack37.adb, s-pack37.ads, s-pack38.adb, s-pack38.ads,
15903         s-pack39.adb, s-pack39.ads, s-pack40.adb, s-pack40.ads, s-pack41.adb,
15904         s-pack41.ads, s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads,
15905         s-pack44.adb, s-pack44.ads, s-pack45.adb, s-pack45.ads, s-pack46.adb,
15906         s-pack46.ads, s-pack47.adb, s-pack47.ads, s-pack48.adb, s-pack48.ads,
15907         s-pack49.adb, s-pack49.ads, s-pack50.adb, s-pack50.ads, s-pack51.adb,
15908         s-pack51.ads, s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads,
15909         s-pack54.adb, s-pack54.ads, s-pack55.adb, s-pack55.ads, s-pack56.adb,
15910         s-pack56.ads, s-pack57.adb, s-pack57.ads, s-pack58.adb, s-pack58.ads,
15911         s-pack59.adb, s-pack59.ads, s-pack60.adb, s-pack60.adb, s-pack60.ads,
15912         s-pack61.adb, s-pack61.ads, s-pack62.adb, s-pack62.ads, s-pack63.adb,
15913         s-pack63.ads, s-parint.adb, s-parint.adb, s-parint.ads, sprint.ads,
15914         s-purexc.ads, s-restri.ads, s-restri.adb, s-scaval.adb, s-scaval.ads,
15915         s-secsta.adb, s-secsta.ads, s-sequio.adb, s-sequio.ads, stand.ads,
15916         s-tasuti.adb, s-traceb.adb, s-traceb.ads, stringt.adb, stringt.ads,
15917         styleg.ads, s-valboo.adb, s-valboo.ads, s-valcha.adb, s-valcha.ads,
15918         s-valdec.adb, s-valdec.ads, s-valint.adb, s-valint.ads, s-valint.ads,
15919         s-vallld.adb, s-vallld.ads, s-vallli.adb, s-vallli.ads, s-valllu.adb,
15920         s-valllu.ads, s-valrea.adb, s-valrea.ads, s-valuns.adb, s-valuns.ads,
15921         s-valuti.adb, s-valuti.ads, s-valwch.ads, s-veboop.adb, s-veboop.ads,
15922         s-vercon.adb, s-vercon.ads, s-wchcnv.adb, s-wchcnv.ads, s-wchcon.ads,
15923         s-wchjis.adb, s-wchjis.ads, s-wchstw.adb, s-wchstw.adb, s-wchstw.ads,
15924         s-wchwts.adb, s-wchwts.ads, s-widboo.adb, s-widboo.ads, s-widcha.adb,
15925         s-widcha.ads, s-widenu.adb, s-widenu.ads, s-widlli.adb, s-widlli.ads,
15926         s-widllu.adb, s-widllu.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb,
15927         s-wwdcha.ads, s-wwdenu.adb, s-wwdenu.ads, symbols.adb, symbols.ads,
15928         table.ads, targparm.adb, targparm.ads, tb-alvms.c, tb-alvxw.c,
15929         tbuild.adb, tree_io.ads, treepr.adb, treeprs.adt, ttypef.ads,
15930         ttypes.ads, types.adb, uintp.adb, uintp.ads, uname.ads, urealp.ads,
15931         usage.ads, validsw.ads, vxaddr2line.adb, widechar.adb, widechar.ads,
15932         xeinfo.adb, xnmake.adb, xref_lib.ads, xr_tabls.adb, xr_tabls.ads,
15933         xsinfo.adb, xtreeprs.adb, xsnames.adb, vms_conv.ads, vms_conv.adb,
15934         a-dirval.ads, a-dirval.adb, a-dirval-mingw.adb, a-direct.ads,
15935         a-direct.adb, indepsw.ads, prj-attr-pm.ads, system-linux-ppc.ads,
15936         a-numaux-darwin.ads, a-numaux-darwin.adb,
15937         a-swuwha.ads, a-stunha.ads: Minor reformatting
15938
15939 2005-11-14  Robert Dewar  <dewar@adacore.com>
15940
15941         PR ada/18434
15942         * osint-m.adb: Add pragma Elaborate_All for Osint
15943
15944 2005-11-10  Eric Botcazou  <ebotcazou@adacore.com>
15945
15946         PR ada/23995
15947         * trans.c (call_to_gnu): Restore statement lost in translation.
15948
15949 2005-11-08  Eric Botcazou  <ebotcazou@adacore.com>
15950
15951         * init.c: Use the Linux-specific section for the IA-64/Linux target.
15952         (__gnat_adjust_context_for_raise): Add conditional code so that the
15953         IA-64 is also supported.
15954
15955 2005-11-03  James E Wilson  <wilson@specifix.com>
15956
15957         PR ada/23427
15958         * trans.c (gnat_to_gnu): Use TYPE_SIZE_UNIT not TYPE_SIZE in
15959         TREE_OVERFLOW check.
15960
15961 2005-09-21  Olivier Hainque  <hainque@adacore.com>
15962
15963         PR ada/22418
15964         * decl.c (maybe_pad_type): Use proper bitsizetype for XVZ objects,
15965         as we create them to store a size in bits.
15966
15967 2005-10-21  Eric Botcazou  <ebotcazou@adacore.com>
15968
15969         PR ada/21937
15970         PR ada/22328
15971         PR ada/22381
15972         PR ada/22383
15973         PR ada/22419
15974         PR ada/22420
15975         * utils2.c (build_return_expr): New helper function.
15976         * gigi.h (build_return_expr): Declare it.
15977         * trans.c (Subprogram_Body_to_gnu): Use build_return_expr instead
15978         of manually building the RETURN_EXPR tree.
15979         (call_to_gnu): Pass MODIFY_EXPR through build_binary_op.
15980         (gnat_to_gnu) <N_Return_Statement>: Pass MODIFY_EXPR through
15981         build_binary_op for the "target pointer" case.  Use build_return_expr
15982         instead of manually building the RETURN_EXPR tree.
15983
15984 2005-09-16  Laurent GUERBY  <laurent@guerby.net>
15985
15986         PR ada/23788
15987         * s-tpinop.ads: Make this unit Preelaborate.
15988
15989 2005-09-16  Andreas Jaeger  <aj@suse.de>
15990
15991         * socket.c: Add string.h for memcpy.
15992
15993 2005-09-05  Arnaud Charlet  <charlet@adacore.com>
15994
15995         * dec-io.ads, dec-io.adb: Removed, no longer used.
15996
15997 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
15998
15999         * a-calend-mingw.adb: Add call to OS_Primitives.Initialize;
16000
16001         * s-taprop-mingw.adb, s-taprop-vms.adb, s-taprop-solaris.adb,
16002         s-taprop-os2.adb, s-taprop-irix-athread.adb, s-taprop-linux.adb,
16003         s-taprop-hpux-dce.adb, s-taprop-irix.adb, s-taprop-tru64.adb,
16004         s-taprop-lynxos.adb: Move with clauses outside Warnings Off now that
16005         dependent units are Preelaborate.
16006         (Initialize): Call Interrupt_Managemeent.Initialize and
16007         OS_Primitives.Initialize to ensure proper initialization of this unit.
16008         Remove use of System.Soft_Links
16009         Make this unit Preelaborate.
16010
16011         * s-stache.ads, s-taspri-vxworks.ads, s-taspri-mingw.ads,
16012         s-taspri-vms.ads, s-tasinf-solaris.ads, s-taspri-os2.ads,
16013         s-taspri-lynxos.ads, s-taspri-hpux-dce.ads, s-taspri-tru64.ads,
16014         s-tasinf-tru64.ads, s-tasinf-irix.ads, s-tasinf-irix-athread.ads,
16015         s-proinf-irix-athread.adb, s-proinf-irix-athread.ads,
16016         s-tratas.ads, s-tasinf.ads: Minor reformatting.
16017         Add pragma Preelaborate, since these packages are suitable for this
16018         categorization.
16019         Update comments.
16020
16021         * s-traent-vms.ads, s-intman-dummy.adb,
16022         s-taprop-dummy.adb: Make this unit Preelaborate.
16023
16024         * s-osprim-vxworks.adb, s-osprim-vms.adb, s-osprim-vms.ads,
16025         s-osprim-mingw.adb, s-intman-vxworks.ads, s-intman-vxworks.adb,
16026         s-intman-vms.adb, s-intman-mingw.adb, s-intman-vms.ads,
16027         s-osprim-unix.adb, s-osprim-os2.adb, s-osprim-solaris.adb,
16028         s-intman-solaris.adb, s-intman-irix-athread.adb,
16029         s-intman-irix.adb: Mark this unit Preelaborate.
16030         (Initialize): New procedure.
16031         Update comments.
16032
16033         * s-taspri-linux.ads: Removed.
16034
16035         * s-tpopsp-solaris.adb (Initialize): Create the key in this procedure,
16036         as done by other implementations (e.g. posix).
16037
16038         * s-taprop.ads (Timed_Delay): Update spec since the caller now is
16039         responsible for deferring abort.
16040         Mark this unit Preelaborate.
16041
16042         * s-taprob.adb, s-tarest.adb: Call System.Tasking.Initialize to ensure
16043         proper initialization of the tasking run-time.
16044
16045         * s-tasdeb.ads: Mark this unit Preelaborate.
16046         (Known_Tasks): Add explicit default value to avoid elaboration code.
16047
16048         * s-inmaop-vms.adb (Elaboration code): Add call to
16049         Interrupt_Management.Initialize since the elaboration code depends on
16050         proper initialization of this package.
16051
16052         * s-intman.ads, s-inmaop-posix.adb, s-intman-posix.adb,
16053         s-osprim.ads, s-taprop-posix.adb, s-taspri-posix.ads,
16054         s-osprim-posix.adb: Make this unit Preelaborate.
16055
16056         * a-calend.adb: Add call to OS_Primitives.Initialize
16057
16058         * a-elchha.adb: Update use of Except.Id.Full_Name.
16059         Minor reformatting.
16060         Remove use of Ada.Exceptions.Traceback when possible, cleaner.
16061
16062         * a-dynpri.adb, a-sytaco.adb, a-sytaco.ads:
16063         Move with clauses outside Warnings Off now that dependent units are
16064         Preelaborate.
16065         Use raise xxx with "..."; Ada 2005 form.
16066
16067         * a-taside.ads, a-taside.adb:
16068         Remove some dependencies, to make it easier to make this unit truly
16069         Preelaborate.
16070         Rewrite some code to be conformant with Preelaborate rules.
16071
16072         * g-os_lib.adb: Remove non-preelaborate code so that this unit can be
16073         marked Preelaborate in the future.
16074
16075         * s-proinf.ads, g-string.ads, s-auxdec.ads, s-auxdec-vms_64.ads: Make
16076         these units Preelaborate.
16077
16078         * s-exctab.adb: Update use of Except.Id.Full_Name.
16079
16080         * s-soflin.ads, s-soflin.adb: Mark this unit Preelaborate_05.
16081         (Set_Exc_Stack_Addr_Soft, Get_Exc_Stack_Addr_NT, Set_Exc_Stack_Addr_NT,
16082         Set_Exc_Stack_Addr): Removed, no longer used.
16083         Remove reference to *Machine_State_Addr*, no longer needed.
16084
16085         * s-stalib.ads: Mark this unit as Preelaborate[_05].
16086         (Exception_Data): Full_Name is now a System.Address so that this unit
16087         can be made Preelaborate.
16088         Clean up/simplify code thanks to Full_Name being a System.Address.
16089         Remove obsolete pragma Suppress (All_Checks), no longer needed.
16090
16091         * s-taskin.ads, s-taskin.adb:
16092         Move with clauses outside Warnings Off now that dependent units are
16093         Preelaborate.
16094         Make this unit Preelaborate.
16095         (Initialize): New proceduure, replace elaboration code and makes the
16096         set up of the tasking run-time cleaner.
16097         (Detect_Blocking): Now a function instead of a deferred boolean, to
16098         obey Preelaborate rules.
16099
16100         * s-tassta.adb (Finalize_Global_Tasks): Remove Get/Set_Exc_Stack_Addr
16101         soft links, no longer used.
16102
16103         * s-traces.ads, s-traent.ads: Add pragma Preelaborate, since these
16104         packages are suitable for this categorization.
16105
16106         * s-solita.adb: Replace use of Ada.Exception by raise xxx with "..."
16107         since we compile run-time sources in Ada 2005 mode.
16108         (Timed_Delay_T): Call Abort_Defer/Undefer around Timed_Delay, to
16109         avoid having s-taprop*.adb depend on s-soflin and to avoid code
16110         duplication.
16111         Remove reference to *Machine_State_Addr*, no longer needed.
16112
16113 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
16114
16115         * s-mastop-tru64.adb, s-mastop-irix.adb, s-mastop-vms.adb
16116         (Enter_Handler, Set_Signal_Machine_State): Removed, no longer used.
16117         Remove reference to System.Exceptions.
16118
16119         * s-mastop-x86.adb: Removed, no longer used.
16120
16121         * s-traceb-mastop.adb: Adjust calls to Pop_Frame.
16122
16123         * a-excach.adb: Minor reformatting.
16124
16125         * a-except.ads, a-except.adb: Remove global Warnings (Off) pragma, and
16126         instead fix new warnings that were hidden by this change.
16127         (AAA, ZZZ): Removed, replaced by...
16128         (Code_Address_For_AAA, Code_Address_For_ZZZ): ... these functions, who
16129         are used instead of constants, to help make Ada.Exception truly
16130         preelaborate.
16131         (Rcheck_*, Raise_Constraint_Error, Raise_Program_Error,
16132         Raise_Storage_Error): File is now a System.Address, to simplify code.
16133         (Elab code): Removed, no longer used.
16134         (Null_Occurrence): Remove Warnings Off and make this construct
16135         preelaborate.
16136         Remove code related to front-end zero cost exception handling, since
16137         it is no longer used.
16138         Remove -gnatL/-gnatZ switches.
16139
16140         * a-exexda.adb (Append_Info_Exception_Name, Set_Exception_C_Msg):
16141         Update use of Except.Msg.
16142
16143         * gnat1drv.adb, inline.adb, bindgen.adb, debug.adb, exp_ch11.ads,
16144         freeze.adb, frontend.adb, lib.adb, exp_ch11.adb: Remove code related
16145         to front-end zero cost exception handling, since it is no longer used.
16146         Remove -gnatL/-gnatZ switches.
16147
16148         * lib-writ.ads: Minor reformatting
16149         Remove doc of UX
16150
16151         * Makefile.rtl: Remove references to s-except*, s-mastop-x86*
16152
16153         * Make-lang.in: Remove references to s-except.ads
16154
16155         * s-except.ads: Removed, no longer used.
16156
16157         * s-mastop.ads, s-mastop.adb:
16158         (Enter_Handler, Set_Signal_Machine_State): Removed, no longer used.
16159         Remove reference to System.Exceptions.
16160
16161         * raise.h, usage.adb, targparm.adb, targparm.ads, switch-m.adb,
16162         switch-b.adb: Remove code related to front-end zero cost exception
16163         handling, since it is no longer used.
16164         Remove -gnatL/-gnatZ switches.
16165
16166 2005-09-01  Robert Dewar  <dewar@adacore.com>
16167             Gary Dismukes  <dismukes@adacore.com>
16168             Javier Miranda  <miranda@adacore.com>
16169
16170         * exp_ch4.adb (Expand_N_In): Replace test of expression in its own
16171         type by valid test and generate warning.
16172         (Tagged_Membership): Generate call to the run-time
16173         subprogram IW_Membership in case of "Iface_CW_Typ in Typ'Class"
16174         Change formal name Subtype_Mark to Result_Definition in several calls to
16175         Make_Function_Specification.
16176         (Expand_Allocator_Expression): Add tests for suppression of the AI-344
16177         check for proper accessibility of the operand of a class-wide allocator.
16178         The check can be left out if checks are suppressed or if the expression
16179         has a specific tagged type whose level is known to be safe.
16180
16181         * exp_ch5.adb (Expand_N_Assignment_Statement): Simplify the code that
16182         generates the run-time check associated with null-excluding entities.
16183         (Expand_N_Return_Statement): Add tests to determine if the accessibility
16184         check on the level of the return expression of a class-wide function
16185         can be elided. The check usually isn't needed if the expression has a
16186         specific type (unless it's a conversion or a formal parameter). Also
16187         add a test for whether accessibility checks are suppressed. Augment
16188         the comments to describe the conditions for performing the check.
16189
16190 2005-09-01  Hristian Kirtchev  <kirtchev@adacore.com>
16191             Javier Miranda  <miranda@adacore.com>
16192             Gary Dismukes  <dismukes@adacore.com>
16193             Ed Schonberg  <schonberg@adacore.com>
16194
16195         * a-tags.adb (IW_Membership): Give support to
16196         "Iface_CW_Typ in T'Class". For this purpose the functionality of this
16197         subprogram has been extended to look for the tag in the ancestors tag
16198         table.
16199         Update the structure of the GNAT Dispatch Table to reflect the
16200         additional two tables used in dispatching selects.
16201         Introduce appropriate array types and record components in
16202         Type_Specific_Data to reflect the two tables.
16203         (Get_Entry_Index, Set_Entry_Index): Retrieve and set the entry index in
16204         the TSD of a tag, indexed by position.
16205         (Get_Prim_Op_Kind, Set_Prim_Op_Kind): Retrieve and set the primitive
16206         operation kind in the TSD of a tag, indexed by position.
16207
16208         * a-tags.ads: Introduce an enumeration type to capture different
16209         primitive operation kinds. Define a constant reflecting the number of
16210         predefined primitive operations.
16211         (Get_Entry_Index, Set_Entry_Index): Set and retrieve the entry index
16212         of an entry wrapper.
16213         (Get_Prim_Op_Kind, Set_Prim_Op_Kind): Set and retrieve the kind of
16214         callable entity of a primitive operation.
16215
16216         * exp_ch3.adb (Freeze_Record_Type): Generate the declarations of the
16217         primitive operations used in dispatching selects for limited
16218         interfaces, limited tagged, task and protected types what implement a
16219         limited interface.
16220         (Freeze_Type): Generate the bodies of the primitive operations used in
16221         dispatching selects for limited tagged, task and protected types that
16222         implement a limited interface. Generate statements to populate the two
16223         auxiliary tables used for dispatching in select statements.
16224         (Freeze_Record_Type): Add call to initialize the dispatch table entries
16225         associated with predefined interface primitive operations.
16226         (Build_Dcheck_Function): Change Set_Subtype_Mark to
16227         Set_Result_Definition.
16228         (Build_Variant_Record_Equality): Change Subtype_Mark to
16229         Result_Definition.
16230         (Freeze_Enumeration_Type): Change Subtype_Mark to Result_Definition.
16231         (Predef_Spec_Or_Body): Change Subtype_Mark to Result_Definition.
16232         (Build_Assignment): Simplify the code that adds the run-time-check.
16233         (Expand_N_Object_Declaration): Code cleanup.
16234
16235         * exp_ch7.adb (Make_Clean): Select the appropriate type for locking
16236         entries when there is a protected type that implements a limited
16237         interface.
16238
16239         * exp_ch9.adb: Add package Select_Expansion_Utilities that contains
16240         common routines used in expansion of dispatching selects.
16241         (Add_Private_Declarations): Select the appropriate protection type when
16242         there is a protected type that implements a limited interface.
16243         (Build_Parameter_Block): Generate a wrapped parameter block.
16244         (Build_Protected_Subprogram_Body): Select the appropriate type for
16245         locking entries when there is a protected type that implements a
16246         limited interface.
16247         (Build_Wrapper_Spec): Set the flag and wrapped entity for procedures
16248         classified as entry wrappers.
16249         (Expand_N_Asynchronous_Select): Add support for expansion of dispatching
16250         asynchronous selects.
16251         (Expand_N_Conditional_Entry_Call): Add support for expansion of
16252         dispatching conditional selects.
16253         (Expand_N_Protected_Type_Declaration): Select the appropriate type for
16254         protection when there is a protected type that implements limited
16255         interfaces.
16256         (Expand_N_Timed_Entry_Call): Add support for expansion of dispatching
16257         timed selects.
16258         (Extract_Dispatching_Call): Extract the entity of the name of a
16259         dispatching call, the object parameter, actual parameters and
16260         corresponding formals.
16261         (Make_Initialize_Protection): Correct logic of protection initialization
16262         when there is a protected type that implements a limited interface.
16263         (Parameter_Block_Pack): Populate a wrapped parameter block with the
16264         values of actual parameters.
16265         (Parameter_Block_Unpack): Retrieve the values from a wrapped parameter
16266         block and assign them to the original actual parameters.
16267
16268         * exp_ch9.ads (Subprogram_Protection_Mode): New type.
16269         (Build_Protected_Sub_Specification): Change the type and name of the
16270         last formal to account for the increased variety of protection modes.
16271
16272         * einfo.ads, einfo.adb (Was_Hidden): New attribute. Present in all
16273         entities. Used to save the value of the Is_Hidden attribute when the
16274         limited-view is installed.
16275         (Is_Primitive_Wrapper, Set_Is_Primitive_Wrapper): Retrieve and change
16276         the attribute of procedures classified as entry wrappers.
16277         (Wrapped_Entity, Set_Wrapped_Entity): Retrieve and change the wrapped
16278         entity of a primitive wrapper.
16279         (Write_Entity_Flags): Output the name and value of the
16280         Is_Primitive_Wrapper attribute.
16281         (Write_Field27_Name): Output the name and entity of the field Wrapped_
16282         Entity.
16283         (Underlying_Type): If we have an incomplete entity that comes from
16284         the limited view then we return the Underlying_Type of its non-limited
16285         view if it is already available.
16286         (Abstract_Interface_Alias): Flag applies to all subrogram kinds,
16287         including operators.
16288         (Write_Field26_Name): Add entry for Overridden_Operation
16289         (Overridden_Operation): New attribute of functions and procedures.
16290
16291         * exp_disp.ads, exp_disp.adb (Default_Prim_Op_Position): Return a
16292         predefined position in the dispatch table for the primitive operations
16293         used in dispatching selects.
16294         (Init_Predefined_Interface_Primitives): Remove the hardcoded number of
16295         predefined primitive operations and replace it with
16296         Default_Prim_Op_Count.
16297         (Make_Disp_Asynchronous_Select_Spec, Make_Disp_Conditional_Select_Spec,
16298         Make_Disp_Get_Prim_Op_Kind_Spec, Make_Disp_Timed_Select_Spec): Update
16299         the names of the generated primitive operations used in dispatching
16300         selects.
16301         (Init_Predefined_Interface_Primitives): No need to inherit primitives in
16302         case of abstract interface types. They will be inherit by the objects
16303         implementing the interface.
16304         (Make_DT): There is no need to inherit the dispatch table of the
16305         ancestor interface for the elaboration of abstract interface types.
16306         The dispatch table will be inherited by the object implementing the
16307         interface.
16308         (Copy_Secondary_DTs): Add documentation.
16309         (Validate_Position): Improve this static check in case of
16310         aliased subprograms because aliased subprograms must have
16311         the same position.
16312         (Init_Predefined_Interface_Primitives): New subprogram that initializes
16313         the entries associated with predefined primitives of all the secondary
16314         dispatch tables.
16315         (Build_Anonymous_Access_Type): Removed.
16316         (Expand_Interface_Actuals): With the previous cleanup there is no need
16317         to build an anonymous access type. This allows further cleanup in the
16318         code generated by the expander.
16319         (Expand_Interface_Conversion): If the actual is an access type then
16320         build an internal function to handle the displacement. If the actual
16321         is null this function returns null because no displacement is
16322         required; otherwise performs a type conversion that will be
16323         expanded in the code that returns the value of the displaced actual.
16324         (Expand_Interface_Actuals): Avoid the generation of unnecessary type
16325         conversions that have no effect in the generated code because no
16326         displacement is required. Code cleanup; use local variables to
16327         avoid repeated calls to the subprogram directly_designated_type().
16328
16329         * exp_util.ads, exp_util.adb (Is_Predefined_Dispatching_Operation):
16330         Classify the primitive operations used in dispatching selects as
16331         predefined.
16332         (Implements_Limited_Interface): Determine whether some type either
16333         directly implements a limited interface or extends a type that
16334         implements a limited interface.
16335         (Build_Task_Image_Function): Change Subtype_Mark to Result_Definition.
16336         (Expand_Subtype_From_Expr): Do not build actual subtype if the
16337         expression is limited.
16338         (Find_Interface_Tag): Add code to handle class-wide types and
16339         entities from the limited-view.
16340
16341         * rtsfind.ads: Add entries in RE_Id and RE_Unit_Table for
16342         Get_Entry_Index, Get_Prim_Op_Kind, POK_Function, POK_Procedure,
16343         POK_Protected_Entry, POK_Protected_Function, POK_Protected_Procedure,
16344         POK_Task_Entry, POK_Task_Procedure, Prim_Op_Kind, Set_Entry_Index,
16345         Set_Prim_Op_Kind.
16346
16347         * sem_ch9.adb (Analyze_Triggering_Alternative): Check for legal type
16348         of procedure name or prefix that appears as a trigger in a triggering
16349         alternative.
16350
16351         * uintp.ads: Introduce constants Uint_11 and Uint_13.
16352
16353 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
16354
16355         * s-tataat.adb, a-tasatt.adb:
16356         Replace calls to Defer/Undefer_Abortion by Defer/Undefer_Abort.
16357
16358         * s-tasini.ads, s-tasini.adb (Defer_Abortion, Undefer_Abortion): Moved
16359         these procedures to body, and renamed Abort_Defer, Abort_Undefer.
16360         (Get_Exc_Stack_Addr, Set_Exc_Stack_Addr): Removed, no
16361         longer used.
16362
16363 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
16364             Jose Ruiz  <ruiz@adacore.com>
16365
16366         * s-taprop-vxworks.adb:
16367         Move with clauses outside Warnings Off now that dependent units are
16368         Preelaborate.
16369         (Initialize): Call Interrupt_Managemeent.Initialize to ensure proper
16370         initialization of this unit.
16371         (Specific): Add new procedures Initialize and Delete so that this
16372         package can be used for VxWorks 5.x and 6.x
16373         (ATCB_Key, ATCB_Key_Address): Moved to Specific package body to hide
16374         differences between VxWorks 5.x and 6.x
16375         Minor reformatting.
16376         (Timed_Delay): Remove calls to Defer/Undefer_Abort, now performed by
16377         caller.
16378         Use only Preelaborate-compatible constructs.
16379
16380         * s-tpopsp-vxworks.adb (ATBC_Key, ATCB_Key_Addr): Moved from
16381         Primitives.Operations.
16382         (Delete, Initialize): New procedures.
16383
16384         * s-osinte-vxworks.adb: Body used to handle differences between
16385         VxWorks 5.x and 6.x
16386         (kill, Set_Time_Slice, VX_FP_TASK): New functions.
16387
16388         * s-osinte-vxworks.ads: Minor reformatting.
16389         Add VxWworks 6.x specific functions (only called from VxWorks 6 files).
16390         (VX_FP_TASK): Now a function, to handle differences between VxWorks 5
16391         and 6.
16392         (Set_Time_Slice): New function, replacing kerneltimeSlice to share code
16393         between Vxworks 5 and 6.
16394         (taskLock, taskUnlock): Removeed, no longer used.
16395
16396         * adaint.c: The wait.h header is not located in the sys directory on
16397         VxWorks when using RTPs.
16398         (__gnat_set_env_value): Use setenv instead of putenv on VxWorks when
16399         using RTPs.
16400         (__gnat_dup): dup is available on Vxworks when using RTPs.
16401         (__gnat_dup2): dup2 is available on Vxworks when using RTPs.
16402
16403         * cal.c: Use the header time.h for Vxworks 6.0 when using RTPs.
16404
16405         * expect.c: The wait.h header is not located in the sys directory on
16406         VxWorks when using RTPs.
16407
16408 2005-09-01  Thomas Quinot  <quinot@adacore.com>
16409
16410         * g-soccon-vms.adb: Renamed to g-soccon-vms.ads
16411
16412         * g-soccon-vms.ads: Renamed from g-soccon-vms.adb
16413
16414         * g-soccon.ads, g-soccon-tru64.ads, g-soccon-aix.ads,
16415         g-soccon-darwin.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
16416         g-soccon-solaris.ads, g-soccon-mingw.ads, g-soccon-vxworks.ads,
16417         g-soccon-freebsd.ads: Add new constants:
16418          IP_MULTICAST_IF
16419          SO_RCVTIMEO/SO_SNDTIMEO
16420          IOV_MAX
16421
16422         * gen-soccon.c:
16423         Move all target-specific file inclusions and macro definitions to
16424         gsocket.h, in order to ensure that any C code in socket.c will see a
16425         set of constants that is consistent with the contents of g-soccon.ads.
16426
16427         * gsocket.h: Code imported from gen-soccon.c:
16428         Move all target-specific file inclusions and macro definitions to
16429         gsocket.h, in order to ensure that any C code in socket.c will see a set
16430         of constants that is consistent with the contents of g-soccon.ads.
16431         This change also makes gen-soccon self-contained (removing dependencies
16432         upon GCC internal headers).
16433
16434         * g-socket.adb (Send_Vector): Make calls to Writev at most IOV_MAX
16435         iovecs at a time.
16436         (To_Inet_Addr): Now a procedure instead of a function, more efficient.
16437
16438         * socket.c: Minor reformatting.
16439
16440 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
16441             Thomas Quinot  <quinot@adacore.com>
16442
16443         * fname-sf.adb, mlib-tgt.ads,
16444         back_end.adb, casing.adb, g-debpoo.adb, g-excact.adb, g-spipat.adb,
16445         g-spipat.ads, g-thread.adb, lib-list.adb, makeutl.adb, mlib.adb,
16446         osint.adb, par-ch10.adb, par-load.adb, prep.adb, prj.adb, prj-attr.ads,
16447         prj-env.ads, prj-err.adb, prj-err.ads, prj-ext.adb, prj-ext.ads,
16448         prj-makr.adb, prj-makr.ads, prj-pars.ads, prj-part.adb, prj-strt.adb,
16449         prj-tree.ads, prj-util.ads, sem_dist.adb, sinput-c.ads, sinput-l.ads,
16450         sinput-p.ads, styleg-c.ads, xr_tabls.adb, prj-attr-pm.ads,
16451         makegpr.adb: Remove redundant use_clauses.
16452
16453 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
16454
16455         * s-stoele.ads, s-stopoo.ads, s-stratt.ads, s-strops.ads, s-unstyp.ads,
16456         s-valboo.ads, s-valcha.ads, s-valdec.ads, s-valenu.ads, s-valint.ads,
16457         s-vallld.ads, s-vallli.ads, s-valllu.ads, s-valrea.ads, s-valuns.ads,
16458         s-valuti.ads, s-valwch.ads, s-veboop.ads, s-vector.ads, s-vercon.ads,
16459         s-wchcnv.ads, s-wchcon.ads, s-wchjis.ads, s-wchstw.ads, s-wchwts.ads,
16460         s-widboo.ads, s-widcha.ads, s-widenu.ads, s-widlli.ads, s-widllu.ads,
16461         s-widwch.ads, s-wwdcha.ads, s-wwdenu.ads, s-wwdwch.ads, system.ads,
16462         table.ads, types.ads, system-vms_64.ads, s-crtl-vms64.ads,
16463         s-addope.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
16464         s-vxwork-x86.ads, system-linux-ppc.ads, i-vxwork-x86.ads,
16465         a-numaux-darwin.ads, a-crbtgo.ads, a-crbtgk.ads, a-crbltr.ads,
16466         a-coprnu.ads, a-convec.ads, a-contai.ads, a-coinve.ads, a-cohata.ads,
16467         a-cohama.ads, a-cihama.ads, a-cidlli.ads, a-cdlili.ads,
16468         a-numaux-libc-x86.ads, a-numaux-vxworks.ads, system-linux-ia64.ads,
16469         system-freebsd-x86.ads, system-unixware.ads, system-lynxos-ppc.ads,
16470         system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
16471         s-vxwork-alpha.ads, system-aix.ads, system-vxworks-sparcv9.ads,
16472         system-solaris-x86.ads, system-irix-o32.ads, system-irix-n32.ads,
16473         s-parame-hpux.ads, system-hpux.ads, system-vxworks-m68k.ads,
16474         s-vxwork-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads,
16475         s-vxwork-mips.ads, system-os2.ads, system-interix.ads,
16476         s-vxwork-ppc.ads, system-solaris-sparc.ads, s-vxwork-sparcv9.ads,
16477         system-solaris-sparcv9.ads, s-parame-vms.ads, system-vms.ads,
16478         s-osinte-mingw.ads, system-mingw.ads, s-parame-vms-restrict.ads,
16479         system-vms-zcx.ads, s-parame-ae653.ads, system-vxworks-ppc.ads,
16480         s-parame-vxworks.ads, system-vxworks-alpha.ads, interfac-vms.ads,
16481         a-numaux-x86.ads, a-astaco.ads, a-chahan.ads, a-charac.ads,
16482         a-chlat1.ads, a-chlat9.ads, a-colire.adb, a-colire.ads, a-comlin.ads,
16483         a-cwila1.ads, a-cwila9.ads, ada.ads, a-decima.ads, a-exextr.adb,
16484         a-filico.ads, a-finali.ads, a-interr.ads, a-ioexce.ads, a-dynpri.ads,
16485         a-ngcefu.ads, a-ngcefu.adb, a-ngcoty.adb, a-ngcoty.ads, a-ngelfu.ads,
16486         a-nudira.adb, a-nudira.ads, a-nuflra.adb, a-numaux.ads, a-numeri.ads,
16487         a-reatim.adb, a-stmaco.ads, a-storio.ads, a-strbou.ads, a-stream.ads,
16488         a-strfix.ads, a-string.ads, a-strmap.ads, a-strsea.ads, a-strsup.ads,
16489         a-strunb.ads, a-stunau.ads, a-stwibo.ads, a-stwifi.ads, a-stwima.ads,
16490         a-stwise.ads, a-stwisu.ads, a-stwiun.ads, a-swmwco.ads, a-textio.ads,
16491         csets.ads, debug.ads, dec.ads, g-curexc.ads, get_targ.ads,
16492         g-except.ads, system-linux-hppa.ads, a-chacon.ads, a-widcha.ads,
16493         a-zchara.ads, system-hpux-ia64.ads, a-ciorma.ads, a-coorma.ads,
16494         a-ciormu.ads, a-coormu.ads, a-rbtgso.ads, a-chzla1.ads, a-chzla9.ads,
16495         a-stzbou.ads, a-stzfix.ads, a-stzmap.ads, a-stzsea.ads, a-stzsup.ads,
16496         a-stzunb.ads, a-swunau.ads, a-szunau.ads, gnat.ads, g-regpat.ads,
16497         g-speche.ads, g-spitbo.ads, g-table.ads, g-tasloc.ads, g-trasym.ads,
16498         i-c.ads, i-cpoint.ads, i-cpp.ads, i-cstrin.ads, i-fortra.ads,
16499         interfac.ads, i-os2err.ads, i-os2lib.ads, i-os2syn.ads, i-os2thr.ads,
16500         i-vxwork.ads, output.ads, s-arit64.ads, s-atacco.ads, s-boarop.ads,
16501         s-casuti.ads, s-crtl.ads, s-exctab.ads, s-exnint.ads, s-exnllf.ads,
16502         s-exnlli.ads, s-expint.ads, s-explli.ads, s-expllu.ads, s-expmod.ads,
16503         s-expuns.ads, s-fatflt.ads, s-fatgen.ads, s-fatlfl.ads, s-fatllf.ads,
16504         s-fatsfl.ads, s-finimp.ads, s-finroo.ads, s-fore.ads, s-geveop.ads,
16505         s-htable.ads, s-imgbiu.ads, s-imgboo.ads, s-imgcha.ads, s-imgdec.ads,
16506         s-imgenu.ads, s-imgint.ads, s-imgllb.ads, s-imglld.ads, s-imglli.ads,
16507         s-imgllu.ads, s-imgllw.ads, s-imgrea.ads, s-imguns.ads, s-imgwch.ads,
16508         s-imgwiu.ads, s-io.ads, s-maccod.ads, s-mantis.ads, s-memcop.ads,
16509         s-pack03.ads, s-pack05.ads, s-pack06.ads, s-pack07.ads, s-pack09.ads,
16510         s-pack10.ads, s-pack11.ads, s-pack12.ads, s-pack13.ads, s-pack14.ads,
16511         s-pack15.ads, s-pack17.ads, s-pack18.ads, s-pack19.ads, s-pack20.ads,
16512         s-pack21.ads, s-pack22.ads, s-pack23.ads, s-pack24.ads, s-pack25.ads,
16513         s-pack26.ads, s-pack27.ads, s-pack28.ads, s-pack29.ads, s-pack30.ads,
16514         s-pack31.ads, s-pack33.ads, s-pack34.ads, s-pack35.ads, s-pack36.ads,
16515         s-pack37.ads, s-pack38.ads, s-pack39.ads, s-pack40.ads, s-pack41.ads,
16516         s-pack42.ads, s-pack43.ads, s-pack44.ads, s-pack45.ads, s-pack46.ads,
16517         s-pack47.ads, s-pack48.ads, s-pack49.ads, s-pack50.ads, s-pack51.ads,
16518         s-pack52.ads, s-pack53.ads, s-pack54.ads, s-pack55.ads, s-pack56.ads,
16519         s-pack57.ads, s-pack58.ads, s-pack59.ads, s-pack60.ads, s-pack61.ads,
16520         s-pack62.ads, s-pack63.ads, s-parame.ads, s-pooglo.ads, s-pooloc.ads,
16521         s-poosiz.ads, s-powtab.ads, s-purexc.ads, s-sopco3.ads, s-sopco4.ads,
16522         s-sopco5.ads: Minor reformatting: reindent pragma Pure/Preelaborate
16523         and always use the no parameter form for consistency.
16524
16525         * gnat-style.texi: Document rules about Preelaborate/Pure pragmas.
16526
16527 2005-09-01  Robert Dewar  <dewar@adacore.com>
16528
16529         * binde.adb: Minor reformatting
16530         (Find_Elab_Order): Output warning if -p used with static elab order
16531
16532 2005-09-01  Robert Dewar  <dewar@adacore.com>
16533
16534         * checks.adb (Check_Needed): New procedure, deals with removing checks
16535         based on analysis of short-circuited forms. Also generates warnings for
16536         improper use of non-short-circuited forms.
16537         Code clean ups.
16538
16539 2005-09-01  Robert Dewar  <dewar@adacore.com>
16540
16541         * a-ztexio.adb, a-textio.adb, a-witeio.adb: Replace bad range checks
16542         with 'Valid tests.
16543
16544 2005-09-01  Robert Dewar  <dewar@adacore.com>
16545
16546         * errout.ads, errout.adb (Fix Error_Msg_F): Fix implementation to meet
16547         spec.
16548         Implement new insertion char < (conditional warning)
16549         * errutil.adb, erroutc.adb: Implement new insertion char <
16550         (conditional warning).
16551         * sem_elab.adb, prj-dect.adb, erroutc.ads, err_vars.ads
16552         (Error_Msg_Warn): New variable for < insertion char.
16553         * prj-nmsc.adb: Implement new errout insertion char < (conditional
16554         warning).
16555         (Check_For_Source): Change value of Source_Id only after the current
16556         source has been dealt with.
16557
16558 2005-09-01  Robert Dewar  <dewar@adacore.com>
16559             Doug Rupp  <rupp@adacore.com>
16560
16561         * exp_attr.adb: Handle vax fpt for 'Valid attribute
16562         * exp_vfpt.ads, exp_vfpt.adb: (Expand_Vax_Valid): New procedure
16563         * s-vaflop-vms-alpha.adb, s-vaflop.ads, s-vaflop.adb
16564         (Valid_D, Valid_F, Valid_G): New functions
16565
16566 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
16567             Hristian Kirtchev  <kirtchev@adacore.com>
16568             Javier Miranda  <miranda@adacore.com>
16569
16570         * exp_ch6.adb (Expand_Call): If an actual is a function call rewritten
16571         from object notation, the original node is unanalyzed and carries no
16572         semantic information, so that accessiblity checks must be performed on
16573         the type of the actual itself.
16574         (Expand_N_Subprogram_Declaration): Change last actual parameter for
16575         compatibility with Build_Protected_Sub_Specification.
16576         (Check_Overriding_Inherited_Interfaces): Add suport to handle
16577         overloaded primitives.
16578         (Register_Interface_DT_Entry): Use the new name of the formal
16579         the the calls to Expand_Interface_Thunk
16580
16581         * exp_dbug.ads: Augment comments on encoding of protected types to
16582         include the generation of dispatching subprograms when the type
16583         implements at least one interface.
16584
16585         * lib.ads: Extend information in Load_Stack to include whether a given
16586         load comes from a Limited_With_Clause.
16587
16588         * lib-load.adb (From_Limited_With_Chain): New predicate to determine
16589         whether a potential circularity is harmless, because it includes units
16590         loaded through a limited_with clause. Extends previous treatment which
16591         did not handle properly arbitrary combinations of limited and
16592         non-limited clauses.
16593
16594 2005-09-01  Nicolas Setton  <setton@adacore.com>
16595
16596         * exp_dbug.adb (Get_Encoded_Name): Fixed bug that caused biaised types
16597         to be encoded as typ___XBLU_lowerbound__upperbound instead of
16598         typ___XB_lowerbound__upperbound.
16599
16600 2005-09-01  Thomas Quinot  <quinot@adacore.com>
16601
16602         * exp_dist.adb (Add_RACW_TypeCode, Add_RAS_TypeCode): Do not generate
16603         dummy access formal for RACW/RAS TypeCode TSS.
16604         (Build_TypeCode_Call): Do not generate dummy null access actual for
16605         calls to the TypeCode TSS.
16606
16607 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
16608
16609         * exp_intr.adb (Expand_Source_Name): For Enclosing_Entity, generate
16610         fully qualified name, to distinguish instances with the same local name.
16611
16612         * g-souinf.ads (Enclosing_Entity): Document that entity name is now
16613         fully qualified.
16614
16615 2005-09-01  Robert Dewar  <dewar@adacore.com>
16616
16617         * exp_pakd.adb (Create_Packed_Array_Type): Properly handle very large
16618         packed arrays.
16619
16620 2005-09-01  Jerome Lambourg  <lambourg@adacore.com>
16621
16622         * g-expect.adb (Non_Blocking_Spawn): Initialize the filters field to
16623         (Free): New deallocation procedure for filter elements
16624         (Close): Deallocate any existing filter for the concerned connection
16625
16626 2005-09-01  Laurent Pautet  <pautet@adacore.com>
16627
16628         * g-pehage.ads, g-pehage.adb (Select_Char_Position): When no character
16629         position set is provided, we compute one in order to reduce the maximum
16630         length of the keys.  This computation first selects a character
16631         position between 1 and the minimum length of the keys in order to
16632         avoid reducing one of the keys to an empty string.
16633         (Initialize, Compute): When the ratio V to K is too low, the algorithm
16634         does not converge. The initialization procedure now comes with a
16635         maximum number of iterations such that when exceeded, an exception is
16636         raised in Compute. The user can initialize this ratio to another value
16637         and try again
16638         Reformating and updated headers.
16639
16640 2005-09-01  Javier Miranda  <miranda@adacore.com>
16641
16642         * itypes.ads, itypes.adb (Create_Null_Excluding_Itype): New subprogram
16643         that given an entity T creates and returns an Itype that duplicates the
16644         contents of T. The returned Itype has the null-exclusion
16645         attribute set to True, and its Etype attribute references T
16646         to keep the association between the two entities.
16647         Update copyright notice
16648
16649         * sem_aggr.adb (Check_Can_Never_Be_Null,
16650         Aggregate_Constraint_Checks, Resolve_Aggregate,
16651         Resolve_Array_Aggregate, Resolve_Record_Aggregate): Code cleanup.
16652
16653         * sem_ch5.adb (Analyze_Assignment): Code cleanup.
16654
16655 2005-09-01  Gary Dismukes  <dismukes@adacore.com>
16656             Robert Dewar  <dewar@adacore.com>
16657             Hristian Kirtchev  <kirtchev@adacore.com>
16658
16659         * layout.adb (SO_Ref_From_Expr): Change Subtype_Mark to
16660         Result_Definition.
16661
16662         * par-ch6.adb (P_Subprogram): Handle parsing of Access_Definitions in
16663         function specs.
16664         Call Set_Result_Definition instead of Set_Subtype_Mark.
16665         (P_Subprogram_Specification): Add parsing of anonymous access result
16666         plus null exclusions. Call Set_Result_Definition instead of
16667         Set_Subtype_Mark.
16668
16669         * par-ch3.adb: Add support for LIMITED NEW for Ada 2005 AI-419
16670         (P_Access_Type_Definition): Add parsing for an anonymous access result
16671         subtype, plus parsing for null exclusions. Call Set_Result_Definition
16672         instead of Set_Subtype_Mark.
16673
16674         * sinfo.adb: Add support for LIMITED NEW for Ada 2005 AI-419
16675         (Null_Exclusion_Present): Allow this flag for N_Function_Specification.
16676         (Result_Definition): New function for N_Function_Specifications.
16677         (Subtype_Mark): No longer allowed for N_Access_Function_Definition and
16678         N_Function_Specification.
16679         (Set_Null_Exclusion_Present): Allow this flag for
16680         N_Function_Specification.
16681         (Set_Result_Definition): New procedure for N_Function_Specifications.
16682         (Set_Subtype_Mark): No longer allowed for N_Access_Function_Definition
16683         and N_Function_Specification.
16684
16685         * sinfo.ads: Update grammar rules for 9.7.2: Entry_Call_Alternative,
16686         Procedure_Or_Entry_Call; 9.7.4: Triggering_Statement.
16687         Add support for LIMITED NEW for Ada 2005 AI-419
16688         Update the syntax of PARAMETER_AND_RESULT_PROFILE to reflect the new
16689         syntax for anonymous access results.
16690         Replace Subtype_Mark field by Result_Definition in
16691         N_Function_Specification and N_Access_Definition specs.
16692         Add Null_Exclusion_Present to spec of N_Function_Specification.
16693         (Result_Definition): New function for N_Function_Specification and
16694         N_Access_Function_Definition.
16695         (Set_Result_Definition): New procedure for N_Function_Specification and
16696         N_Access_Function_Definition.
16697
16698         * sprint.adb (S_Print_Node_Actual): Change Subtype_Mark calls to
16699         Result_Definition for cases of N_Access_Function_Definition and
16700         N_Function_Specification.
16701         Print "not null" if Null_Exclusion_Present on N_Function_Specification.
16702
16703 2005-09-01  Vincent Celier  <celier@adacore.com>
16704
16705         * lib-writ.adb: Update Copyright notice
16706         (Write_With_Lines): On platforms where file names are case-insensitive,
16707         record the file names in lower case.
16708         (Write_ALI): For D lines, on platforms where file names are
16709         case-insensitive, record the file names in lower case.
16710
16711 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
16712             Emmanuel Briot  <briot@adacore.com>
16713
16714         * lib-xref.adb (Output_Overridden_Op): Display information on
16715         overridden operation.
16716
16717         * lib-xref.ads: Add documentation on overridden operations.
16718
16719         * ali.ads (Xref_Entity_Record): Add support for storing the overriding
16720         information.
16721
16722         * ali.adb (Get_Typeref): New subprogram. Adds support for parsing the
16723         overriding entity information.
16724
16725 2005-09-01  Vincent Celier  <celier@adacore.com>
16726
16727         * mlib-prj.adb (Copy_Interface_Sources): Copy all interface sources,
16728         including those that are inherited.
16729
16730 2005-09-01  Robert Dewar  <dewar@adacore.com>
16731
16732         * opt.ads, opt.adb: Add new switches Debug_Pragmas_Enabled[_Config]
16733
16734         * par-prag.adb: Implement new pragma Debug_Policy
16735
16736         * sem_prag.adb Implement new pragma Debug_Policy
16737         (Analyze_Pragma, case Pack): do not let pragma Pack override an explicit
16738         Component_Size attribute specification. Give warning for ignored pragma
16739         Pack.
16740
16741         * snames.h, snames.ads, snames.adb: Introduce entries in
16742         Preset_Names for Name_Disp_Asynchronous_Select,
16743         Name_Disp_Conditional_Select, Name_Disp_Get_Prim_Op_Kind,
16744         Name_Disp_Timed_Select.
16745         New pragma Debug_Policy
16746
16747         * switch-c.adb (Scan_Front_End_Switches): Set Ada 2005 mode
16748         explicitly.
16749         Switch -gnata also sets Debug_Pragmas_Enabled
16750
16751         * sem.adb, par.adb (Set_Opt_Config_Switch): Add parameter Main_Unit to
16752         handle an explicit -gnata when compiling predefined files.
16753
16754 2005-09-01  Vincent Celier  <celier@adacore.com>
16755
16756         * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Do not add the object
16757         directories of projects that have no Ada sources.
16758
16759 2005-09-01  Robert Dewar  <dewar@adacore.com>
16760
16761         * scng.adb (Check_End_Of_Line): Count characters, rather than bytes
16762         (makes a difference for wide characters)
16763
16764         * widechar.adb, widechar.ads:
16765         Add Wide_Char_Byte_Count feature to count chars vs bytes
16766
16767 2005-09-01  Thomas Quinot  <quinot@adacore.com>
16768             Ed Schonberg  <schonberg@adacore.com>
16769             Robert Dewar  <dewar@adacore.com>
16770
16771         * sem_attr.adb (Resolve_Attribute, case 'Address): For an illegal
16772         'Address attribute reference with an overloaded prefix, use the
16773         location of the prefix (not the location of the attribute reference) as
16774         the error location.
16775         (Analyze_Attribute, case 'Size): The name of an enumeration literal, or
16776         a function renaming thereof, is a valid prefix for 'Size (where it is
16777         intepreted as a function call).
16778         (Statically_Denotes_Entity): New predicate to determine whether the
16779         prefix of an array attribute can be considered static.
16780
16781         PR ada/9087
16782         (Eval_Attr): Fix failure to evaluate Component_Size for
16783         unconstrained arrays (resulted in wrong value in packed case, since
16784         back end cannot handle this case)
16785
16786 2005-09-01  Robert Dewar  <dewar@adacore.com>
16787
16788         * sem_cat.adb (Check_Categorization_Dependencies): Add more detail to
16789         error msgs for most common cases.
16790         Use new errout insertion char < (conditional warning)
16791
16792 2005-09-01  Javier Miranda  <miranda@adacore.com>
16793             Ed Schonberg  <schonberg@adacore.com>
16794
16795         * sem_ch10.adb (In_Chain): Moved from the scope of a subprogram to
16796         become local to the whole package.
16797         (Install_Limited_Withed_Unit): Instead of unchaining real entities if
16798         the package was already analyzed the new algorithm "replaces" the
16799         real entities by the shadow ones. This is required to ensure that
16800         the order of these entities in the homonym chains does not change;
16801         otherwise we can have undefined references at linking time because
16802         in case of conflicts the external name of the entities will have
16803         a suffix that depends on the order of the entities in the chain.
16804         (Remove_Limited_With_Clause): Complementary code that completes the
16805         new algorithm and replaces the shadow entities by the real ones.
16806         (Install_Limited_Withed_Unit): When unchaining entities before the
16807         installation of the shadow entities, only regular entities of the
16808         public part must be taken into account. This is required to
16809         keep this routine in synch with the work done by Remove_Limited_
16810         With_Clause
16811         (Install_Limited_With_Clause): Introduce implicit limited_with_clause
16812         even if unit is analyzed, because the analysis of the unit is
16813         idempotent in any case, and the limited view of the unit may have to
16814         be installed for proper visibility.
16815         (Expand_Limited_With_Clause): Even if the unit in the implicit
16816         with_clause has been analyzed already, a limited view of the package
16817         must be built for the current context, if it does not exist yet.
16818
16819 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
16820             Javier Miranda  <miranda@adacore.com>
16821             Gary Dismukes  <dismukes@adacore.com>
16822
16823         * sem_ch12.adb (Instantiate_Subprogram_Body): When creating the
16824         defining entity for the instance body, make a new defining identifier
16825         rather than copying the entity of the spec, to prevent accidental
16826         sharing of the entity list.
16827         (Check_Private_View): When exchanging views of private types, build the
16828         list of exchanged views as a stack, to ensure that on exit the exchanges
16829         are undone in the proper order.
16830         (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation):
16831         Restore the compilation environment in case of instantiation_error.
16832         (Analyze_Generic_Subprogram_Declaration): Handle creation of type entity
16833         for an anonymous access result.
16834         (Instantiate_Generic_Subprogram): Subtype_Mark => Result_Definition
16835         (Formal_Entity): Handle properly the case of a formal package that
16836         denotes a generic package renaming.
16837
16838 2005-09-01  Thomas Quinot  <quinot@adacore.com>
16839
16840         * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Reject the
16841         clause if the array aggregate is surrounded by parentheses.
16842
16843 2005-09-01  Cyrille Comar  <comar@adacore.com>
16844             Gary Dismukes  <dismukes@adacore.com>
16845             Ed Schonberg  <schonberg@adacore.com>
16846             Javier Miranda  <miranda@adacore.com>
16847
16848         * sem_ch3.ads, sem_ch3.adb (Analyze_Object_Declaration): Go to the
16849         underlying type
16850         to check if a type is Constrained in cases related to code generation
16851         (rather than semantic checking) since otherwise we do not generate
16852         similar code for mutable private types depending if their
16853         discriminants are visible or not.
16854         (Check_Abstract_Overriding): Do not complain about failure to override
16855         the primitive operations used in dispatching selects since they will
16856         always be overriden at the freeze point of the type.
16857         (Access_Definition): Separate out handling for resetting the scope
16858         of an anonymous access function result type. Retrieve the scope
16859         of the associated function rather than using Current_Scope, which
16860         does not have a consistent value (depends on whether we're in the
16861         middle of analyzing formal parameters). Add ??? comment about
16862         finding a cleaner way to handle the special cases of scope setting.
16863         (Process_Incomplete_Dependents): A protected operation is never a
16864         dispatching operation (only its wrapper may be).
16865         (Build_Derived_Record_Type): In case of tagged private types that
16866         implement interfaces add derivation of predefined primitive
16867         operations.
16868         (Derive_Subprograms): Replace the Is_Interface_Derivation parameter
16869         by two parameters that are used in case of derivation from abstract
16870         interface types: No_Predefined_Prims is used to avoid the derivation
16871         of predefined primitives from the interface, and Predefined
16872         Prims_Only is used to complete the derivation predefined primitives
16873         in case of private tagged types implementing interfaces.
16874         Fix typo in comments
16875         (Find_Interface_In_Descendant): Protect the frontend against
16876         wrong code with large circularity chains.
16877         (Is_Private_Overriding): Add support for entities overriding interface
16878         subprograms. The test failed because Entities associated with overriden
16879         interface subprograms are always marked as hidden (and used to build
16880         the secondary dispatch table); in this case the overriden entity is
16881         available through the field abstract_interface_alias (cf. override_
16882         dispatching_operation)
16883         (Access_Definition): Set the scope of the type to Current_Scope for the
16884         case of a function with an anonymous access result type.
16885         (Access_Subprogram_Declaration): Handle creation of the type entity for
16886         an access-to-function type with an anonymous access result.
16887         (Check_Anonymous_Access_Types): Change Subtype_Mark to Result_Definition
16888         in handling for N_Access_Function_Definition.
16889         (Analyze_Subtype_Declaration): Modify the text of error message.
16890         (Derived_Type_Declaration): Modify the text of error message.
16891         (Process_Subtype): Modify the text of error message plus cleanup
16892         of one redundant error message.
16893         (Analyze_Component_Declaration): Code cleanup.
16894         (Analyze_Object_Declaration): Code cleanup.
16895         (Analyze_Subtype_Declaration): Propagate the null-exclusion
16896         attribute in case of access types. Code cleanup.
16897         (Array_Type_Declaration): Code cleanup.
16898         (Process_Discriminants): Create the new null-excluding itype
16899         if required. Code cleanup.
16900         (Process_Subtype): Create the new null-excluding itype if
16901         required. Code cleanup.
16902         (Build_Derived_Record_Type): Code cleanup to avoid calling
16903         twice the subprogram derive_subprograms in case of private
16904         types that implement interfaces. In this particular case the
16905         subprogram Complete_Subprograms_Derivation already does the
16906         job associated with the second call.
16907
16908         * exp_strm.adb (Build_Elementary_Input_Call): Add an explicit
16909         conversion to the full view when generating an operation for a
16910         discriminant whose type may currently be private.
16911
16912 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
16913             Javier Miranda  <miranda@adacore.com>
16914
16915         * sem_ch4.adb (Transform_Object_Operation): In a context off the form
16916         V (Obj.F), the rewriting does not involve the indexed component, but
16917         only the selected component itself.
16918         Do not apply the transformation if the analyzed node is an actual of a
16919         call to another subprogram.
16920         (Complete_Object_Operation): Retain the entity of the
16921         dispatching operation in the selector of the rewritten node. The
16922         entity will be used in the expansion of dispatching selects.
16923         (Analyze_One_Call): Improve location of the error message associated
16924         with interface.
16925         (Analyze_Selected_Component): No need to resolve prefix when it is a
16926         function call, resolution is done when parent node is resolved, as
16927         usual.
16928         (Analyze_One_Call): Add a flag to suppress analysis of the first actual,
16929         when attempting to resolve a call transformed from its object notation.
16930         (Try_Object_Operation, Transform_Object_Operastion): Avoid makind copies
16931         of the argument list for each interpretation of the operation.
16932         (Try_Object_Operation): The designated type of an access parameter may
16933         be an incomplete type obtained through a limited_with clause, in which
16934         case the primitive operations of the type are retrieved from its full
16935         view.
16936         (Analyze_Call): If this is an indirect call, and the return type of the
16937         access_to_subprogram is incomplete, use its full view if available.
16938
16939 2005-09-01  Javier Miranda  <miranda@adacore.com>
16940             Gary Dismukes  <dismukes@adacore.com>
16941
16942         * sem_ch6.ads, sem_ch6.adb (Check_Conformance): In case of anonymous
16943         access types the null-exclusion and access-to-constant attributes must
16944         also match.
16945         (Analyze_Return_Statement): When the result type is an anonymous access
16946         type, apply a conversion of the return expression to the access type
16947         to ensure that appropriate accessibility checks are performed.
16948         (Analyze_Return_Type): For the case of an anonymous access result type,
16949         generate the Itype and set Is_Local_Anonymous_Access on the type.
16950         Add ??? placeholder for check to disallow returning a limited object
16951         in Ada 2005 unless it's an aggregate or a result of a function call.
16952         Change calls from Subtype_Mark to Result_Definition.
16953         (Analyze_Subprogram_Body): Change formal Subtype_Mark to
16954         Result_Definition in call to Make_Function_Specification.
16955         (Build_Body_To_Inline): Change Set_Subtype_Mark to
16956         Set_Result_Definition.
16957         (Make_Inequality_Operator): Change formal Subtype_Mark to
16958         Result_Definition in call to Make_Function_Specification.
16959         (Process_Formals): Create the new null-excluding itype if required.
16960         (New_Overloaded_Entity): For an entity overriding an interface primitive
16961         check if the entity also covers other abstract subprograms in the same
16962         scope. This is required to handle the general case, that is, overriding
16963         other interface primitives and overriding abstract subprograms inherited
16964         from some abstract ancestor type.
16965         (New_Overloaded_Entity): For an overriding entity that comes from
16966         source, note the operation that it overrides.
16967         (Check_Conformance, Type_Conformant): Addition of one new formal
16968         to skip controlling formals in the analysis. This is used to
16969         handle overloading of abstract interfaces.
16970         (Base_Types_Match): Add missing case for types imported from
16971         limited-with clauses
16972         (New_Overloaded_Entity): Add barrier to protect the use of
16973         the "alias" attribute.
16974
16975 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
16976
16977         * sem_ch8.adb (Analyze_Renamed_Entry): For a renaming_as_declaration,
16978         verify that the procedure and the entry are mode conformant.
16979         (Analyze_Subprogram_Renaming): Emit a warning if an operator is renamed
16980         as a different operator, which is often a cut-and-paste error.
16981
16982 2005-09-01  Javier Miranda  <miranda@adacore.com>
16983             Ed Schonberg  <schonberg@adacore.com>
16984
16985         * sem_disp.adb (Check_Controlling_Formals): Anonymous access types
16986         used in controlling parameters exclude null because it is necessary to
16987         read the tag to dispatch, and null has no tag.
16988         (Override_Dispatching_Operation): If the previous operation is inherited
16989         from an interface, it becomes hidden  and does not participate in later
16990         name resolution.
16991
16992 2005-09-01  Javier Miranda  <miranda@adacore.com>
16993             Ed Schonberg  <schonberg@adacore.com>
16994             Gary Dismukes  <dismukes@adacore.com>
16995
16996         * sem_res.adb (Resolve_Membership_Op): In case of the membership test
16997         "Iface_CW_Typ in T'Class" we have nothing else to do in the frontend;
16998         the expander will generate the corresponding run-time check to evaluate
16999         the expression.
17000         (Resolve_Call): Check for legal type of procedure name or prefix that
17001         appears as a trigger in a triggering alternative.
17002         (Valid_Conversion): If expression is ambiguous and the context involves
17003         an extension of System, remove System.Address interpretations.
17004         (Resolve_Qualified_Expression): Reject the case of a specific-type
17005         qualification applied to a class-wide argument. Enhance comment
17006         to explain checking of Original_Node.
17007         (Resolve_Type_Conversion): The location of the error message was not
17008         general enough to handle the general case and hence it has been removed.
17009         In addition, this patch improves the text of the message.
17010         (Resolve_Type_Conversion): Add missing support for access to interface
17011         types.
17012         (Resolve_Type_Conversion): If the target is a class-wide interface type,
17013         do not expand if the expression is the actual in a call, because proper
17014         expansion will take place when the call itself is expanded.
17015         (Resolve_Allocator): If the context is an unchecked conversion, the
17016         allocator inherits its storage pool, if any, from the target type of
17017         the conversion.
17018
17019 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
17020             Javier Miranda  <miranda@adacore.com>
17021
17022         * sem_type.adb (Add_One_Interp): If a candidate operation is an
17023         inherited interface operation that has an implementation, use the
17024         implementation to avoid spurious ambiguities.
17025         (Interface_Present_In_Ancestor): In case of concurrent types we can't
17026         use the Corresponding_Record_Typ attribute to look for the interface
17027         because it is set by the expander (and hence it is not always
17028         available). For this reason we traverse the list of interfaces
17029         (available in the parent of the concurrent type).
17030         (Interface_Present_In_Ancestor): Handle entities from the limited view
17031
17032 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
17033
17034         * sem_util.ads, sem_util.adb (Gather_Components): Omit interface tags
17035         from the list of required components.
17036         (Is_Controlling_Limited_Procedure): Determine whether an entity is a
17037         primitive procedure of a limited interface with a controlling first
17038         parameter.
17039         (Is_Renamed_Entry): Determine whether an entry is a procedure renaming
17040         of an entry.
17041         (Safe_To_Capture_Value): A value (such as non_null) is not safe to
17042         capture if it is generated in the second operand of a short-circuit
17043         operation.
17044         Do not capture values for variables with address clauses.
17045         (Is_Object_Reference): Treat a function call as an object reference only
17046         if its type is not Standard_Void_Type.
17047
17048 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
17049
17050         * sem_warn.adb (Warn_On_Known_Condition): Refine warning when applied
17051         to a variable that is statically known to be constant.
17052
17053 2005-09-01  Geert Bosch  <bosch@adacore.com>
17054             Robert Dewar  <dewar@adacore.com>
17055
17056         * ttypef.ads (VAXDF_Safe_First): Use correct value for constant.
17057         (VAXGF_Safe_First): Idem.
17058
17059 2005-09-01  Robert Dewar  <dewar@adacore.com>
17060             Arnaud Charlet  <charlet@adacore.com>
17061
17062         * g-dirope.ads: Minor reformatting
17063         Document that bounds of result of Base_Name match the input index
17064         positions.
17065         Add documentation on environment variable syntax for Expand_Path
17066
17067         * gnat_ugn.texi: Update documentation to include mention of -m switches
17068         Document new treatment of wide characters in max line length
17069         style check.
17070         Remove -gnatL/-gnatZ switches, no longer used.
17071         Add note on pragmas Assertion_Policy and Debug_Policy in discussion
17072         of -gnata switch.
17073
17074         * gnat_rm.texi: Add doc for two argument form of pragma
17075         Float_Representation.
17076         Add documentation for pragma No_Strict_Aliasing
17077         Add note that explicit component clause overrides pragma Pack.
17078         Add documentation of pragma Debug_Policy
17079
17080 2005-09-01  Matthew Heaney  <heaney@adacore.com>
17081
17082         * a-cihase.adb, a-coorse.ads, a-coorse.adb, a-cohama.adb,
17083         a-ciorse.ads, a-ciorse.adb, a-cihama.adb, a-cdlili.adb,
17084         a-cidlli.adb, a-chtgop.adb, a-cihase.adb, a-cihase.ads,
17085         a-cohase.adb, a-cohase.adb, a-cohase.ads: Synchronized with latest
17086         draft (Draft 13, August 2005) of Ada Amendment 1.
17087
17088 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
17089
17090         * Makefile.in: Adjust the libgnat target pairs for Xscale to ARM.
17091         Note that the platform-specific version of g-soccon.ads for VMS is now
17092         named g-soccon-vms.ads (it was previously g-soccon-vms.adb, although it
17093         really is a package spec).
17094         Replace s-taspri-linux.ads by s-taspri-posix.ads
17095         Remove references to s-mastop-x86.adb
17096
17097         * system-vxworks-xscale.ads: Removed, no longer used.
17098         * s-vxwork-xscale.ads: Removed, no longer used.
17099
17100 2005-09-01  Robert Dewar  <dewar@adacore.com>
17101
17102         * a-dirval-mingw.adb, a-direct.adb, a-coinve.adb,
17103         g-dynhta.adb, g-dynhta.ads, cstand.adb, exp_smem.adb, g-debuti.ads,
17104         g-dirope.adb, g-table.adb, lib-sort.adb, sem_maps.adb,
17105         exp_fixd.adb, exp_aggr.adb, a-intnam-mingw.ads, a-intnam-vxworks.ads,
17106         g-arrspl.adb, g-arrspl.ads, g-awk.adb, g-awk.ads, g-boubuf.ads,
17107         g-boubuf.ads, g-boubuf.ads, g-bubsor.ads, g-bubsor.adb, g-busora.adb,
17108         g-busora.ads, g-busorg.adb, g-busorg.ads, g-calend.adb, g-calend.ads,
17109         g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads, g-cgi.adb,
17110         g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads, g-cgideb.adb, g-cgideb.ads,
17111         g-comlin.adb, g-comver.ads, g-semaph.ads, g-socthi.ads,
17112         sem_ch7.adb, a-direio.adb, a-caldel.ads, i-cstrea-vms.adb,
17113         a-ztedit.adb, a-ztenau.adb, g-socthi-vms.adb, g-socthi-vms.ads,
17114         g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vxworks.ads,
17115         a-intnam-irix.ads, a-intnam-irix.ads, a-intnam-hpux.ads,
17116         a-intnam-os2.ads, a-intnam-os2.ads, a-caldel-vms.adb, a-calend-vms.adb,
17117         a-calend-vms.ads, g-heasor.adb, g-heasor.ads, g-hesora.adb,
17118         g-hesora.ads, g-hesorg.adb, g-hesorg.ads, g-htable.adb, g-htable.ads,
17119         g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads, g-locfil.ads,
17120         g-memdum.adb, g-memdum.ads, g-traceb.adb, g-traceb.ads, i-cobol.adb,
17121         i-cobol.ads, i-cstrea.ads, i-cstrin.adb, a-wtedit.adb, a-tifiio.adb,
17122         a-wtenau.adb, a-wtenau.adb, a-teioed.adb: Minor reformatting
17123
17124 2005-08-29  Arnaud Charlet  <charlet@adacore.com>
17125
17126         PR ada/23187
17127         * adaint.c
17128         (GNAT_MAXPATH_LEN): Use default value if MAXPATHLEN is undefined.
17129
17130 2005-08-29  Arnaud Charlet  <charlet@adacore.com>
17131             Doug Rupp  <rupp@adacore.com>
17132
17133         * s-stalib.adb: Add missing pragma Warnings (On) to reenable Warnings
17134         when needed.
17135         (Inside_Elab_Final_Code): Moved to init.c to avoid having to keep
17136         this code in the GNAT run-time.
17137
17138         * decl.c, fe.h: Replace GCC_ZCX by Back_End_Exceptions.
17139
17140         PR ada/21053
17141         * init.c (__gnat_error_handler [many]): Mark "msg" as const
17142         (__gnat_error_handler [HPUX]): Mark siginfo parameter as unused
17143
17144         (__gnat_inside_elab_final_code): Moved here from
17145         Standard_Library and only defined for the compiler.
17146         __gnat_error_handler [VMS]: Adjust sigargs to account for PC & PSL.
17147         (__gnat_inum_to_ivec): Do not define this function on VxWorks when
17148         using RTPs because directly vectored Interrupt routines are not
17149         supported on this configuration.
17150         (getpid): Do not redefine this function on VxWorks when using RTPs
17151         because this primitive is well supported by the RTP libraries.
17152         (copy_msg): Correct the code that checks for buffer overflow.
17153         Discovered during code reading.
17154
17155 2005-08-29  Olivier Hainque  <hainque@adacore.com>
17156
17157         * decl.c (gnat_to_gnu_entity) <E_Variable>: When allocating storage for
17158         a library level mutable variable with an initializer, tell
17159         build_allocator to ignore the initializer's size. It may not be large
17160         enough for all the values that might be assigned to the variable later
17161         on.
17162
17163 2005-08-29  Arnaud Charlet  <charlet@adacore.com>
17164             Eric Botcazou  <ebotcazou@adacore.com>
17165
17166         * trans.c: Protect < in error msg with quote
17167         Replace GCC_ZCX by Back_End_Exceptions.
17168         (addressable_p) <COMPONENT_REF>: Also return 1 if the field
17169         has been sufficiently aligned in the record.
17170
17171 2005-08-15  James E. Wilson  <wilson@specifix.com>
17172
17173         * system-linux-alpha.ads: Change ia64 to alpha.
17174
17175 2005-08-01  Kazu Hirata  <kazu@codesourcery.com>
17176
17177         * decl.c, utils.c: Fix comment typos.
17178
17179 2005-07-29  Kazu Hirata  <kazu@codesourcery.com>
17180
17181         * decl.c, init.c, initialize.c: Fix comment typos.
17182
17183 2005-07-20  Giovanni Bajo  <giovannibajo@libero.it>
17184
17185         Make CONSTRUCTOR use VEC to store initializers.
17186         * decl.c (gnat_to_gnu_entity): Update to cope with VEC in
17187         CONSTRUCTOR_ELTS.
17188         * trans.c (extract_values): Likewise.
17189         * utils.c (convert, remove_conversions): Likewise.
17190         * utils2.c (contains_save_expr_p, build_binary_op, build_unary_op,
17191         gnat_build_constructor): Likewise.
17192
17193 2005-07-09  Andrew Pinski  <pinskia@physics.uc.edu>
17194
17195         * decl.c (components_to_record): Use DECL_FCONTEXT instead of
17196         DECL_SECTION_NAME.
17197         (compare_field_bitpos): Likewise.
17198
17199 2005-07-09  Andrew Pinski  <pinskia@physics.uc.edu>
17200
17201         * utils.c (create_var_decl): Only set DECL_COMMON on
17202         VAR_DECLs. Only set SET_DECL_ASSEMBLER_NAME on
17203         VAR_OR_FUNCTION_DECL_P.
17204
17205 2005-07-08  Daniel Berlin  <dberlin@dberlin.org>
17206
17207         * utils.c (create_param_decl): DECL_ARG_TYPE_AS_WRITTEN is
17208         removed.
17209
17210 2005-07-07  Pascal Obry  <obry@adacore.com>
17211
17212         * g-socthi-mingw.adb (C_Inet_Addr): New body used to convert the
17213         returned type on Windows.
17214
17215         * g-socthi-mingw.ads (C_Inet_Addr): Remove pragma Import for this
17216         routine.
17217
17218         * g-socket.adb (Inet_Addr): Check for empty Image and raises an
17219         exception in this case.
17220         Simplify the code as "Image (Image'Range)" = "Image".
17221
17222 2005-07-07  Vincent Celier  <celier@adacore.com>
17223
17224         * bindgen.adb (Gen_Output_File_C): When switch -a was specified, put
17225         the destructor/constructor attributes for <lib>final/<lib>init.
17226
17227         * gnatbind.adb (Gnatbind): Allow -a to be used in conjunction with -C
17228
17229 2005-07-07  Eric Botcazou  <ebotcazou@adacore.com>
17230
17231         * decl.c (gnat_to_gnu_entity) <E_Procedure>: Do not strip the padding
17232         type if the parameter is not passed by copy but reference by default.
17233
17234 2005-07-07  Javier Miranda  <miranda@adacore.com>
17235
17236         * exp_ch3.adb (Build_Record_Init_Proc/Freeze_Record_Type):
17237         Reimplementation of the support for abstract interface types in order
17238         to leave the code more clear and easy to maintain.
17239
17240         * exp_ch6.adb (Freeze_Subprogram): Reimplementation of the support for
17241         abstract interface types in order to leave the code clearer and easier
17242         to maintain.
17243
17244         * exp_disp.ads, exp_disp.adb (Fill_DT_Entry): Part of its functionality
17245         is now implemented by the new subprogram Fill_Secondary_DT_Entry.
17246         (Fill_Secondary_DT_Entry): Generate the code necessary to fill the
17247         appropriate entry of the secondary dispatch table.
17248         (Make_DT): Add code to inherit the secondary dispatch tables of
17249         the ancestors.
17250
17251         * exp_util.adb (Find_Interface_Tag/Find_Interface_ADT): Instead of
17252         implementing both functionalities by means of a common routine, each
17253         routine has its own code.
17254
17255 2005-07-07  Javier Miranda  <miranda@adacore.com>
17256
17257         * freeze.adb (Freeze_Entity): Check wrong uses of tag incomplete types.
17258
17259         * par-ch3.adb (P_Type_Declaration): Give support to tagged incomplete
17260         types:
17261         --
17262           type DEFINING_IDENTIFIER [DISCRIMINANT_PART] [IS TAGGED];
17263         --
17264
17265         * sem_attr.adb (Check_Not_Incomplete_Type): Additional checks for wrong
17266         use of tag incomplete types.
17267
17268         * sem_ch3.adb (Analyze_Incomplete_Type): Add mininum decoration to
17269         give support to tagged incomplete types.
17270
17271         * sem_ch5.adb (Analyze_Case_Statement): In generated code, if the
17272         expression is a discriminant reference and its type is private, as can
17273         happen within a stream operation for a mutable record, use the full
17274         view of the type to resolve the case alternatives.
17275         (Analyze_Assignment): Check wrong dereference of incomplete types.
17276
17277         * sem_ch6.adb (Process_Formals): Allow the use of tagged incomplete
17278         types.
17279
17280         * sem_res.adb (Resolve_Explicit_Dereference): Allow the use of tagged
17281         incomplete types.
17282
17283         * sinfo.adb (Taggged_Present/Set_Taggged_Present): Applicable to
17284         N_Incomplete_Type_Declaration nodes.
17285
17286         * sinfo.ads (N_Incomplete_Type_Declaration): Addition of attribute
17287         Tag_Present to give support to tagged incomplete types:
17288         --
17289           type DEFINING_IDENTIFIER [DISCRIMINANT_PART] [IS TAGGED];
17290         --
17291
17292 2005-07-07  Olivier Hainque  <hainque@adacore.com>
17293
17294         PR ada/22301
17295         * raise.c: Only include unwind.h if IN_RTS, and provide dummy type
17296         definitions for the Unwind wrappers in the compiler case.
17297
17298 2005-07-07  Ed Schonberg  <schonberg@adacore.com>
17299             Javier Miranda  <miranda@adacore.com>
17300
17301         * par-load.adb (Load): If a child unit is loaded through a limited_with
17302         clause, each parent must be loaded as a limited unit as well.
17303
17304         * sem_ch10.adb (Previous_Withed_Unit): Better name for
17305         Check_Withed_Unit. Return true if there is a previous with_clause for
17306         this unit, whether limited or not.
17307         (Expand_Limited_With_Clause): Do not generate a limited_with_clause on
17308         the current unit.
17309         (Is_Visible_Through_Renamings): New local subprogram of install_limited
17310         _withed_unit that checks if some package installed through normal with
17311         clauses has a renaming declaration of package whose limited-view is
17312         ready to be installed. This enforces the check of the rule 10.1.2 (21/2)
17313         of the current Draft document for Ada 2005.
17314         (Analyze_Context): Complete the list of compilation units that
17315         are allowed to contain limited-with clauses. It also contains
17316         checks that were previously done by Install_Limited_Context_Clauses.
17317         This makes the code more clear and easy to maintain.
17318         (Expand_Limited_With_Clause) It is now a local subprogram of
17319         Install_Limited_Context_Clauses, and contains the code that adds
17320         the implicit limited-with clauses for parents of child units.
17321         This functionality was prevously done by Analyze_Context.
17322
17323         * sem_ch4.adb (Analyze_Selected_Component): Check wrong use of
17324         incomplete type.
17325
17326         * sem_ch7.adb (Analyze_Package_Declaration): Check if the package has
17327         been erroneously named in a limited-with clause of its own context.
17328         In this case the error has been previously notified by Analyze_Context.
17329
17330 2005-07-07  Ed Schonberg  <schonberg@adacore.com>
17331
17332         * sem_ch8.adb (Find_Direct_Name): Handle properly the case of a
17333         generic package that contains local declarations with the same name.
17334         (Analyze_Object_Renaming): Check wrong renaming of incomplete type.
17335
17336 2005-07-07  Bernard Banner  <banner@adacore.com>
17337
17338         * tracebak.c: Refine tracebacks to use Unwind_Backtrace scheme on
17339         ia64 platform only on platforms that you the GCC unwind library
17340         rather than the system unwind library.
17341
17342 2005-07-07  Thomas Quinot  <quinot@adacore.com>
17343
17344         * expect.c: Minor reformatting
17345
17346 2005-07-07  Sergey Rybin  <rybin@adacore.com>
17347
17348         * vms_data.ads: Add VMS qualifiers for new gnatpp switch
17349         --no-separate-is
17350
17351         * gnat_ugn.texi: Add description for new gnatpp option
17352         (--no-separate-is)
17353
17354 2005-07-04  Thomas Quinot  <quinot@adacore.com>
17355
17356         * g-expect-vms.adb, g-expect.ads, g-expect.adb
17357         (Get_Command_Output): New subprogram to launch a process and get its
17358         standard output as a string.
17359
17360 2005-07-04  Eric Botcazou  <ebotcazou@adacore.com>
17361             Olivier Hainque  <hainque@adacore.com>
17362
17363         * s-mastop-tru64.adb (Pop_Frame): Use exc_lookup_function_entry to
17364         fetch a code-range descriptor associated with the machine state. On
17365         failure set the machine state's PC to 0; on success, pass the
17366         descriptor to exc_virtual_unwind.
17367
17368         * init.c (Tru64 section): New function __gnat_set_code_loc.
17369
17370 2005-07-04  Vincent Celier  <celier@adacore.com>
17371
17372         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
17373         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
17374         mlib-tgt-mingw.adb, mlib-tgt-darwin.adb (Build_Dynamic_Library):
17375         Remove all auto-initialization code, as this is now done through the
17376         constructor mechanism.
17377
17378         * adaint.h, adaint.c (__gnat_binder_supports_auto_init,
17379         __gnat_sals_init_using_constructors): New functions.
17380
17381         * bindgen.adb (Gen_Output_File_Ada): Generate pragmas
17382         Linker_Constructor and Linker_Destructor when switch -a is used.
17383
17384         * bindusg.adb: Add line for new switch -a
17385
17386         * gnatbind.adb (Gnatbind_Supports_Auto_Init): New Boolean function
17387         (Gnatbind): When switch -a is used, check if it is allowed
17388
17389         * switch-b.adb (Scan_Binder_Switches): Process new switch -a
17390
17391 2005-07-04  Joel Brobecker  <brobecker@adacore.com>
17392
17393         * a-tags.adb (Type_Specific_Data): Define Tags_Table as a small array.
17394         This prevents us from hitting a limitation during the debug info
17395         generation when using stabs.
17396         (Prims_Ptr): Likewise.
17397
17398 2005-07-04  Gary Dismukes  <dismukes@adacore.com>
17399             Ed Schonberg  <schonberg@adacore.com>
17400             Javier Miranda  <miranda@adacore.com>
17401
17402         * checks.adb (Null_Exclusion_Static_Checks): In the case of
17403         N_Object_Declaration, only perform the checks if the Object_Definition
17404         is not an Access_Definition.
17405
17406         * sem_ch3.adb (Access_Subprogram_Declaration): Add test for the case
17407         where the parent of an the access definition is an N_Object_Declaration
17408         when determining the Associated_Node_For_Itype and scope of an
17409         anonymous access-to-subprogram type.
17410
17411         * exp_ch6.adb (Expand_N_Subprogram_Declaration): Set the
17412         Corresponding_Spec on the body created for a null procedure. Add ???
17413         comment. Remove New_Copy_Tree call on body argument to
17414         Set_Body_To_Inline.
17415
17416         * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): For an out parameter with
17417         discriminants, use the type of the actual as well, because the
17418         discriminants may be read by the called subprogram.
17419
17420         * sem_ch3.adb (Access_Type_Declaration): If the designated type is an
17421         access type we do not need to handle non-limited views.
17422         (Build_Derived_Record_Type): Additional check to check that in case of
17423         private types, interfaces are only allowed in private extensions.
17424
17425 2005-07-04  Eric Botcazou  <ebotcazou@adacore.com>
17426
17427         * decl.c (prepend_attributes) <Pragma_Linker_Constructor>: New case.
17428         <Pragma_Linker_Destructor>: Likewise.
17429
17430         * einfo.ads (Has_Gigi_Rep_Item): Document Pragma_Linker_Constructor and
17431         Pragma_Linker_Destructor.
17432
17433         * gigi.h (attr_type): Add ATTR_LINK_CONSTRUCTOR and
17434         ATTR_LINK_DESTRUCTOR.
17435         (static_ctors, static_dtors): New variables.
17436
17437         * misc.c (gnat_expand_body): Output current function as constructor
17438         and destructor if requested.
17439
17440         * par-prag.adb: Add processing for pragma Linker_Constructor and
17441         Linker_Destructor.
17442
17443         * sem_prag.adb (Find_Unique_Parameterless_Procedure): New function
17444         extracted from Check_Interrupt_Or_Attach_Handler.
17445         (Check_Interrupt_Or_Attach_Handler): Invoke it.
17446         Implement pragma Linker_Constructor and Linker_Destructor with the
17447         help of Find_Unique_Parameterless_Procedure.
17448         Replace Name_Alias with Name_Target for pragma Linker_Alias.
17449
17450         * snames.h, snames.ads, snames.adb:
17451         Add Name_Linker_Constructor and Name_Linker_Destructor.
17452         Add Pragma_Linker_Constructor and Pragma_Linker_Destructor.
17453         * snames.adb: Remove Name_Alias.
17454
17455         * trans.c: Include cgraph.h.
17456         (build_global_cdtor): New function.
17457         (Compilation_Unit_to_gnu): Build global constructor and destructor if
17458         needed.
17459         (tree_transform) <N_Identifier>: Substitute renaming of view-conversions
17460         of objects too.
17461         (addressable_p) <COMPONENT_REF>: Unconditionally test
17462         DECL_NONADDRESSABLE_P on STRICT_ALIGNMENT platforms.
17463
17464         * utils.c (process_attributes) <ATTR_LINK_ALIAS>: Do not assemble the
17465         variable if it is external.
17466
17467         (static_ctors, static_dtors): New global variables.
17468         (process_attributes) <ATTR_LINK_CONSTRUCTOR>: New case.
17469         <ATTR_LINK_DESTRUCTOR>: Likewise.
17470         (end_subprog_body): Chain function as constructor and destructor
17471         if requested.
17472
17473         * exp_util.adb (Force_Evaluation): Unconditionally invoke
17474         Remove_Side_Effects with Variable_Ref set to true.
17475         (Remove_Side_Effects): Handle scalar types first. Use a renaming
17476         for non-scalar types even if Variable_Ref is true and for class-wide
17477         expressions.
17478
17479 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
17480
17481         * exp_attr.adb (Mod): Evaluate condition expression with checks off,
17482         to prevent spurious warnings.
17483
17484 2005-07-04  Thomas Quinot  <quinot@adacore.com>
17485
17486         * exp_dist.adb (Build_TypeCode_Call): Remove incorrect processing for
17487         Itypes. Itypes are really unexpected there.
17488         (Build_TypeCode_Function): Generalise special processing for Itypes to
17489         handle the case of numeric implicit base types as well as enumerated
17490         ones.
17491
17492 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
17493
17494         * exp_intr.adb (Expand_Unc_Deallocation): If the designated type is
17495         controlled, indicate the expected type of the dereference that is
17496         created for the call to Deep_Finalize, to prevent spurious errors when
17497         the designated type is private and completed with a derivation from
17498         another private type.
17499
17500 2005-07-04  Vincent Celier  <celier@adacore.com>
17501
17502         * make.adb (Change_To_Object_Directory): When unable to change the
17503         current dir to the object directory, output the full path of the
17504         directory.
17505
17506 2005-07-04  Matthew Gingell  <gingell@adacore.com>
17507
17508         * Makefile.in: Replace indepsw-linux.adb by indepsw-gnu.adb
17509
17510         * indepsw-linux.adb: Replace by...
17511
17512         * indepsw-gnu.adb: ...this new file
17513
17514 2005-07-04  Vincent Celier  <celier@adacore.com>
17515
17516         * mlib-prj.adb (Auto_Initialize): New constant String
17517         (SALs_Use_Constructors): New Boolean function
17518         (Build_Library): Call gnatbind with Auto_Initialize switch when
17519         SALs_Use_Constructors returns True.
17520
17521         * mlib-tgt.ads: Minor reformatting
17522
17523         * mlib-utl.ads: Minor reformatting
17524
17525         * opt.ads: (Use_Pragma_Linker_Constructor): New Boolean flag
17526
17527 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
17528
17529         * par-ch9.adb (P_Task, P_Protected): Indicate that single task and
17530         single protected declarations can have an interface list.
17531         (P_Entry_Declaration): Add handler for Error_Resync, which can be raised
17532         with seriously malformed entry declarations, and lead to compilation
17533         abandoned messages.
17534
17535 2005-07-04  Javier Miranda  <miranda@adacore.com>
17536
17537         * par-load.adb: Load the context items in two rounds.
17538
17539 2005-07-04  Robert Dewar  <dewar@adacore.com>
17540
17541         * scng.adb: Do not consider Mod used as an attribute to be a keyword
17542
17543 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
17544             Javier Miranda  <miranda@adacore.com>
17545
17546         * sem_ch10.adb (Build_Limited_Views): A type declared with a private
17547         type extension needs a limited view.
17548         Remove previous restriction on private types available through the
17549         limited-view (only tagged private types were previously allowed).
17550         (Install_Withed_Unit): In the code that implements the
17551         legality rule given in AI-377, exclude a child unit with the name
17552         Standard, because it is a homonym of the Standard environment package.
17553
17554 2005-07-04  Thomas Quinot  <quinot@adacore.com>
17555
17556         * sem_ch4.adb (Transform_Object_Operation): For an actual that is an
17557         overloaded function call, carry interpretations from the original tree
17558         to the copy.
17559
17560 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
17561
17562         * sem_ch6.adb (Conforming_Types): If the types are anonymous access
17563         types check whether some designated type is a limited view, and use
17564         the non-limited view if available.
17565
17566 2005-07-04  Gary Dismukes  <dismukes@adacore.com>
17567
17568         * sem_eval.adb (Subtypes_Statically_Match): Use the discriminant
17569         constraint of full view of a private view T1 if present, when T2 is a
17570         discriminated full view.
17571
17572 2005-07-04  Thomas Quinot  <quinot@adacore.com>
17573
17574         * sem_res.adb (Resolve_Actuals): Do not resolve the expression of an
17575         actual that is a view conversion of a bit packed array reference.
17576
17577 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
17578
17579         * sem_type.adb (Covers): Verify that Corresponding_Record_Type is
17580         present before checking whether an interface type covers a synchronized
17581         type.
17582
17583 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
17584
17585         * sem_util.adb (Is_Object_Reference): An indexed or selected component
17586         whose prefix is an implicit dereference is an object reference. Removes
17587         spurious errors when compiling with -gnatc.
17588
17589 2005-07-04  Robert Dewar  <dewar@adacore.com>
17590
17591         PR ada/22039
17592         * s-sopco3.ads, s-sopco4.ads, s-sopco5.ads: Minor documentation fix
17593
17594 2005-07-04  Matthew Gingell  <gingell@adacore.com>
17595
17596         * tracebak.c: Enable tracebacks on ia64 platforms
17597
17598 2005-07-04  Vincent Celier  <celier@adacore.com>
17599
17600         * vms_conv.adb (Initialize): Allow multiple ALI files to be given to
17601         the GNAT BIND command, as gnatbind accepts multiples ALI files with
17602         the -L or -n switches.
17603
17604 2005-07-04  Vincent Celier  <celier@adacore.com>
17605
17606         * makegpr.adb (Build_Global_Archive): Make sure the list of sources is
17607         correctly computed and the main project data is not modified while
17608         doing so.
17609         (Add_C_Plus_Plus_Link_For_Gnatmake): Always link with the C++ compiler
17610         (Choose_C_Plus_Plus_Link_Process): Do not generate shell script
17611         c++linker as this does not work on some platforms.
17612
17613 2005-07-04  Matthew Heaney  <heaney@adacore.com>
17614
17615         * a-convec.ads, a-coinve.ads: Declaration of subtype Extended_Index
17616         was changed.
17617         * a-coinve.adb: Perform constraint checks explicitly.
17618
17619 2005-07-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17620             Thomas Quinot  <quinot@adacore.com>
17621
17622         * Make-lang.in: (ada/targtyps.o): Add missing TREE_H dependency.
17623         new target gen-soccon.
17624
17625 2005-07-04  Robert Dewar  <dewar@adacore.com>
17626
17627         * s-mastop-irix.adb, s-mastop-vms.adb: Minor reformatting
17628
17629 2005-07-04  Thomas Quinot  <quinot@adacore.com>
17630
17631         * g-socket.ads (Check_Selector): Minor rewording of comment.
17632
17633 2005-07-04  Vincent Celier  <celier@adacore.com>
17634
17635         * vms_data.ads: Add VMS qualifiers for new gnatpp switch --eol=
17636
17637 2005-07-04  Thomas Quinot  <quinot@adacore.com>
17638
17639         * gen-soccon.c: Add constants SO_SNDTIMEO and SO_RCVTIMEO.
17640
17641 2005-07-04  Sergey Rybin  <rybin@adacore.com>
17642
17643         * gnat_ugn.texi: Add description of --eol gnatpp option
17644
17645 2005-07-04  Eric Botcazou  <ebotcazou@adacore.com>
17646             Thomas Quinot  <quinot@adacore.com>
17647
17648         * gnat_rm.texi: Add a note that pragma Unreferenced is not appropriate
17649         if the user wants all calls of a subprogram to be flagged,
17650         independently of whether they are made from within the same unit or
17651         another unit.
17652         Mention restriction for pragma Linker_Alias on some platforms.
17653         Document pragma Linker_Constructor and Linker_Destructor.
17654         Rewrite documentation of Weak_External, Linker_Section and
17655         Linker_Alias pragmas.
17656
17657 2005-07-04  Arnaud Charlet  <charlet@adacore.com>
17658
17659         * s-stausa.ads, s-stausa.adb: New files.
17660
17661 2005-06-30  Kelley Cook
17662
17663         * all files:  Update FSF address in copyright headers.
17664         * gen-soccon.co (main): Output new FSF address in generated files.
17665
17666 2005-06-28  Paul Brook  <paul@codesourcery.com>
17667
17668         * misc.c (gnat_init_gcc_eh): Call default_init_unwind_resume_libfunc.
17669
17670 2005-06-14  Olivier Hainque  <hainque@adacore.com>
17671             Eric Botcazou  <ebotcazou@adacore.com>
17672
17673         * s-mastop-irix.adb (Pop_Frame): Revert shorcuts avoiding calls to
17674         exc_unwind, now that we are generating proper .debug_frame output for
17675         that target.
17676
17677         * tracebak.c: Remove the mips-irix section, as we are now using the
17678         s-mastop based unwinder again.
17679         Under SPARC/Solaris, take into account the stack bias to compute the
17680         frame offset.  The stack bias is 0 for the V8 ABI and 2047 for the V9
17681         ABI.
17682
17683 2005-06-14  Doug Rupp  <rupp@adacore.com>
17684
17685         * g-trasym-vms.adb: renamed g-trasym-vms-alpha.adb
17686
17687         * g-trasym-vms-alpha.adb, g-trasym-vms-ia64.adb: New files
17688
17689 2005-06-14  Pascal Obry  <obry@adacore.com>
17690
17691         * a-strhas.ads, a-secain.adb, a-secain.ads, a-rbtgso.ads, a-cgaaso.adb,
17692         a-cgaaso.ads, a-cgarso.adb, a-cgcaso.adb, a-cgarso.ads, a-cgcaso.ads,
17693         a-contai.ads, a-coprnu.ads, a-coprnu.adb: Fix header style (spaces in
17694         package name).
17695
17696         * a-intnam-lynxos.ads, a-intnam-unixware.ads, a-intnam-tru64.ads,
17697         a-intnam-aix.ads, a-intnam-irix.ads, a-excpol-interix.adb,
17698         a-intnam-hpux.ads, a-intnam-linux.ads, a-intnam-dummy.ads,
17699         a-intnam-os2.ads, a-numaux-libc-x86.ads, a-intnam-interix.ads,
17700         a-intnam-solaris.ads, a-caldel-vms.adb, a-calend-vms.ads,
17701         a-intnam-vms.ads, a-excpol-abort.adb, a-intnam-mingw.ads,
17702         a-intnam-vxworks.ads, a-numaux-vxworks.ads, s-osinte-unixware.adb,
17703         s-osinte-unixware.ads, s-osinte-lynxos-3.adb, s-osinte-lynxos-3.ads,
17704         s-osinte-hpux.ads, s-osinte-solaris-posix.ads, a-intnam-freebsd.ads,
17705         s-osinte-freebsd.adb, s-osinte-freebsd.ads, s-osinte-lynxos.adb,
17706         s-osinte-lynxos.ads, s-tpopsp-lynxos.adb, s-osinte-tru64.adb,
17707         s-osinte-tru64.ads, s-tpopsp-posix-foreign.adb, s-vxwork-alpha.ads,
17708         s-osinte-aix.adb, s-osinte-aix.ads, s-osinte-aix-fsu.ads,
17709         s-osinte-irix.adb, s-osinte-irix.ads, s-interr-sigaction.adb,
17710         s-osinte-irix-athread.ads, s-osinte-hpux-dce.adb,
17711         s-osinte-hpux-dce.ads, s-osinte-posix.adb, s-osinte-linux.ads,
17712         s-vxwork-m68k.ads, s-osinte-linux-fsu.ads, s-vxwork-mips.ads,
17713         s-osinte-dummy.ads, s-interr-dummy.adb, s-osinte-os2.adb,
17714         s-osinte-os2.ads, s-osprim-os2.adb, s-osinte-interix.ads,
17715         s-osprim-unix.adb, s-vxwork-ppc.ads, s-osinte-solaris.adb,
17716         s-osinte-solaris.ads, s-osprim-solaris.adb, s-tpopsp-solaris.adb,
17717         s-vxwork-sparcv9.ads, s-osinte-solaris-fsu.ads, s-interr-vms.adb,
17718         s-osinte-vms.adb, s-osinte-vms.ads, s-osprim-vms.adb,
17719         s-osprim-vms.ads, s-tpopde-vms.adb, s-tpopde-vms.ads,
17720         s-osprim-mingw.adb, s-vxwork-xscale.ads, s-interr-vxworks.adb,
17721         s-osinte-vxworks.adb, s-osinte-vxworks.ads, s-osprim-vxworks.adb,
17722         s-tfsetr-vxworks.adb, s-tpopsp-vxworks.adb, s-intman-posix.adb,
17723         s-osinte-fsu.adb, s-osprim-posix.adb, s-tfsetr-default.adb,
17724         s-tpopsp-posix.adb, s-traces-default.adb, s-trafor-default.adb,
17725         s-trafor-default.ads, s-tratas-default.adb, a-numaux-x86.adb,
17726         a-numaux-x86.ads, a-astaco.adb, a-astaco.ads, a-caldel.adb,
17727         a-caldel.ads, a-charac.ads, a-chlat1.ads, a-chlat9.ads, a-colien.adb,
17728         a-colien.ads, a-colire.adb, a-colire.ads, a-comlin.adb, a-cwila1.ads,
17729         a-cwila9.ads, ada.ads, a-decima.adb, a-diocst.ads, a-direio.adb,
17730         a-dynpri.adb, a-dynpri.ads, a-excpol.adb, a-flteio.ads, a-fwteio.ads,
17731         a-inteio.ads, a-interr.adb, a-intnam.ads, a-intsig.adb, a-intsig.ads,
17732         a-ioexce.ads, a-iwteio.ads, a-lfteio.ads, a-lfwtio.ads, a-liteio.ads,
17733         a-liwtio.ads, a-llftio.ads, a-llfwti.ads, a-llitio.ads, a-lliwti.ads,
17734         a-ncelfu.ads, a-ngcefu.adb, a-ngcefu.ads, a-ngcoty.adb, a-ngelfu.adb,
17735         a-ngelfu.ads, a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads,
17736         a-nllcty.ads, a-nllefu.ads, a-nscefu.ads, a-nscoty.ads, a-nselfu.ads,
17737         a-nucoty.ads, a-nudira.adb, a-nuelfu.ads, a-nuflra.adb, a-numaux.ads,
17738         a-numeri.ads, a-reatim.adb, a-retide.adb, a-retide.ads, a-sequio.adb,
17739         a-sequio.ads, a-sfteio.ads, a-sfwtio.ads, a-siocst.ads, a-siteio.ads,
17740         a-siwtio.ads, a-ssicst.ads, a-ssitio.ads, a-ssiwti.ads, a-stmaco.ads,
17741         a-storio.adb, a-strbou.adb, a-strfix.adb, a-string.ads, a-strmap.adb,
17742         a-strsea.adb, a-strsup.adb, a-strunb.ads, a-ststio.adb, a-stunau.adb,
17743         a-stunau.ads, a-stwibo.adb, a-stwifi.adb, a-stwifi.ads, a-stwima.adb,
17744         a-stwise.adb, a-stwisu.adb, a-suteio.adb, a-suteio.ads, a-swuwti.adb,
17745         a-swuwti.ads, a-teioed.adb, a-ticoau.adb, a-ticoau.ads, a-ticoio.adb,
17746         a-tideau.adb, a-tideio.adb, a-tienau.adb, a-tienio.adb, a-tifiio.adb,
17747         a-tiflio.adb, a-tigeau.adb, a-tigeau.ads, a-tiinio.adb, a-timoau.adb,
17748         a-timoio.adb, a-timoio.ads, a-tiocst.ads, a-titest.adb, a-titest.ads,
17749         a-witeio.adb, a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads,
17750         a-wtcstr.ads, a-wtdeau.adb, a-wtdeio.adb, a-wtenau.adb, a-wtenio.adb,
17751         a-wtfiio.adb, a-wtflio.adb, a-wtgeau.adb, a-wtinau.adb, a-wtinio.adb,
17752         a-wtinio.ads, a-wtmoau.adb, a-wtmoio.adb, a-wttest.adb, calendar.ads,
17753         dec.ads, dec-io.adb, dec-io.ads, directio.ads, errno.c, g-bubsor.adb,
17754         g-bubsor.ads, g-busora.adb, g-busora.ads, g-busorg.adb, g-busorg.ads,
17755         g-casuti.adb, g-casuti.ads, g-debuti.ads, g-heasor.adb, g-heasor.ads,
17756         g-hesora.adb, g-hesora.ads, g-hesorg.adb, g-hesorg.ads, g-htable.adb,
17757         g-htable.ads, g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads,
17758         g-memdum.adb, g-memdum.ads, g-sestin.ads, g-signal.ads, g-signal.adb,
17759         gnat.ads, g-souinf.ads, g-speche.adb, g-speche.ads, g-table.adb,
17760         g-table.ads, g-thread.adb, g-thread.ads, ioexcept.ads, i-vxwoio.adb,
17761         i-vxwoio.ads, math_lib.adb, s-assert.adb, s-assert.ads, s-asthan.ads,
17762         s-bitops.adb, s-bitops.ads, s-boarop.ads, s-carsi8.adb, s-carsi8.ads,
17763         s-carun8.adb, s-carun8.ads, s-casi16.adb, s-casi16.ads, s-casi32.adb,
17764         s-casi32.ads, s-casi64.adb, s-casi64.ads, s-casuti.adb, s-casuti.ads,
17765         s-caun16.adb, s-caun16.ads, s-caun32.adb, s-caun32.ads, s-caun64.adb,
17766         s-caun64.ads, s-direio.adb, s-direio.ads, sequenio.ads, s-errrep.adb,
17767         s-errrep.ads, s-exnint.adb, s-exnint.ads, s-exnllf.adb, s-exnllf.ads,
17768         s-exnlli.adb, s-exnlli.ads, s-expint.adb, s-expint.ads, s-explli.adb,
17769         s-explli.ads, s-expllu.adb, s-expllu.ads, s-expmod.adb, s-expmod.ads,
17770         s-expuns.adb, s-expuns.ads, s-fore.adb, s-fore.ads, s-geveop.adb,
17771         s-geveop.ads, s-htable.adb, s-htable.ads, s-imgbiu.adb, s-imgbiu.ads,
17772         s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads, s-imgdec.adb,
17773         s-imgdec.ads, s-imgenu.adb, s-imgenu.ads, s-imgint.adb, s-imgint.ads,
17774         s-imgllb.adb, s-imgllb.ads, s-imglld.adb, s-imglld.ads, s-imglli.adb,
17775         s-imglli.ads, s-imgllu.adb, s-imgllu.ads, s-imgllw.adb, s-imgllw.ads,
17776         s-imgrea.ads, s-imguns.adb, s-imguns.ads, s-imgwiu.adb, s-imgwiu.ads
17777         s-interr.ads, s-io.adb, s-mantis.adb, s-mantis.ads, s-osprim.ads,
17778         s-pack03.adb, s-pack03.ads, s-pack05.adb, s-pack05.ads, s-pack06.adb,
17779         s-pack06.ads, s-pack07.adb, s-pack07.ads, s-pack09.adb, s-pack09.ads,
17780         s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads, s-pack12.adb,
17781         s-pack12.ads, s-pack13.adb, s-pack13.ads, s-pack14.adb, s-pack14.ads,
17782         s-pack15.adb, s-pack15.ads, s-pack17.adb, s-pack17.ads, s-pack18.adb,
17783         s-pack18.ads, s-pack19.adb, s-pack19.ads, s-pack20.adb, s-pack20.ads,
17784         s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads, s-pack23.adb,
17785         s-pack23.ads, s-pack24.adb, s-pack24.ads, s-pack25.adb, s-pack25.ads,
17786         s-pack26.adb, s-pack26.ads, s-pack27.adb, s-pack27.ads, s-pack28.adb,
17787         s-pack28.ads, s-pack29.adb, s-pack29.ads, s-pack30.adb, s-pack30.ads,
17788         s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads, s-pack34.adb,
17789         s-pack34.ads, s-pack35.adb, s-pack35.ads, s-pack36.adb, s-pack36.ads,
17790         s-pack37.adb, s-pack37.ads, s-pack38.adb, s-pack38.ads, s-pack39.adb,
17791         s-pack39.ads, s-pack40.adb, s-pack40.ads, s-pack41.adb, s-pack41.ads,
17792         s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads, s-pack44.adb,
17793         s-pack44.ads, s-pack45.adb, s-pack45.ads, s-pack46.adb, s-pack46.ads,
17794         s-pack47.adb, s-pack47.ads, s-pack48.adb, s-pack48.ads, s-pack49.adb,
17795         s-pack49.ads, s-pack50.adb, s-pack50.ads, s-pack51.adb, s-pack51.ads,
17796         s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads, s-pack54.adb,
17797         s-pack54.ads, s-pack55.adb, s-pack55.ads, s-pack56.adb, s-pack56.ads,
17798         s-pack57.adb, s-pack57.ads, s-pack58.adb, s-pack58.ads, s-pack59.adb,
17799         s-pack59.ads, s-pack60.adb, s-pack60.ads, s-pack61.adb, s-pack61.ads,
17800         s-pack62.adb, s-pack62.ads, s-pack63.adb, s-pack63.ads, s-scaval.adb,
17801         s-scaval.ads, s-sequio.adb, s-sequio.ads, s-stache.adb, s-stache.ads,
17802         s-stratt.adb, s-stratt.ads, s-strcom.adb, s-strcom.ads, s-strops.adb,
17803         s-strops.ads, s-taasde.ads, s-tadeca.adb, s-tadeca.ads, s-tadert.adb,
17804         s-tadert.ads, s-taenca.adb, s-taenca.ads, s-taprob.adb, s-taprob.ads,
17805         s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads, s-tasini.adb,
17806         s-tasini.ads, s-taskin.adb, s-taskin.ads, s-tasque.adb, s-tasque.ads,
17807         s-tasren.ads, s-tasres.ads, s-tassta.adb, s-tassta.ads, s-tasuti.adb,
17808         s-tasuti.ads, s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
17809         s-tpoben.adb, s-tpoben.ads, s-tpobop.ads, s-tporft.adb, s-tposen.ads,
17810         s-traces.adb, s-traces.ads, s-tratas.adb, s-tratas.ads, s-valint.ads,
17811         s-unstyp.ads, s-veboop.adb, s-veboop.ads, s-vector.ads, s-vercon.adb,
17812         s-vercon.ads, s-wchcnv.adb, s-wchcnv.ads, s-wchjis.adb, s-wchjis.ads,
17813         s-wchstw.adb, s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, s-widboo.adb,
17814         s-widboo.ads, s-widcha.adb, s-widcha.ads, s-widenu.adb, s-widenu.ads,
17815         s-widlli.adb, s-widlli.ads, s-widllu.adb, s-widllu.ads, s-wwdcha.ads,
17816         s-wwdenu.adb, s-wwdwch.ads, text_io.ads, s-stchop.ads, s-stchop.adb,
17817         s-stchop-vxworks.adb, a-intnam-darwin.ads, s-osinte-darwin.adb,
17818         s-osinte-darwin.ads, s-vxwork-x86.ads, a-numaux-darwin.ads,
17819         a-numaux-darwin.adb, a-chzla1.ads, a-chzla9.ads, a-lfztio.ads,
17820         a-liztio.ads, a-llfzti.ads, a-llizti.ads, a-sfztio.ads, a-siztio.ads,
17821         a-ssizti.ads, a-stzbou.adb, a-stzfix.adb, a-stzfix.ads, a-stzmap.adb,
17822         a-stzsea.adb, a-stzsup.adb, a-swunau.adb, a-swunau.ads, a-szuzti.adb,
17823         a-szuzti.ads, a-tiunio.ads, a-wwunio.ads, a-ztcoau.adb, a-ztcoau.ads,
17824         a-ztcoio.adb, a-ztcoio.ads, a-ztcstr.ads, a-ztdeau.adb, a-ztdeio.adb,
17825         a-ztenio.adb, a-ztexio.adb, a-ztfiio.adb, a-ztflio.adb, a-ztgeau.adb,
17826         a-ztinau.adb, a-ztinio.adb, a-ztinio.ads, a-ztmoau.adb, a-ztmoio.adb,
17827         a-zttest.adb, a-zzunio.ads, g-utf_32.adb: Fix header style.
17828         "GNU Ada" to GNAT, use proper casing for RUN-TIME.
17829
17830 2005-06-14  Jose Ruiz  <ruiz@adacore.com>
17831             Arnaud Charlet  <charlet@adacore.com>
17832
17833         * a-sytaco.ads, a-sytaco.adb (Suspension_Object): These objects are no
17834         longer protected objects. They have been replaced by lower-level
17835         suspension objects made up by a mutex and a condition variable (or
17836         their equivalent given a particular OS) plus some internal data to
17837         reflect the state of the suspension object.
17838         (Initialize, Finalize): Add this initialization procedure for
17839         Suspension_Object, which is a controlled type.
17840         (Finalize): Add the finalization procedure for Suspension_Object,
17841         which is a controlled type.
17842
17843         * a-sytaco-vxworks.ads, a-sytaco-vxworks.adb: Remove this version of
17844         Ada.Synchronous_Task_Control because there is no longer a need for a
17845         VxWorks specific version of this package. Target dependencies
17846         has been moved to System.Task_Primitives.Operations.
17847
17848         * s-osinte-mingw.ads (pCRITICAL_SECTION): Remove this type which is no
17849         longer needed.
17850         (InitializeCriticalSection, EnterCriticalSection,
17851         LeaveCriticalSection, DeleteCriticalSection): Replace the type
17852         pCriticalSection by an anonymous access type so that we avoid problems
17853         of accessibility to local objects.
17854
17855         * s-taprop.ads, s-taprop-posix.adb, s-taprop-vxworks.adb,
17856         s-taprop-mingw.adb, s-taprop-vms.adb, s-taprop-solaris.adb,
17857         s-taprop-os2.adb, s-taprop-dummy.adb, s-taprop-hpux-dce.adb,
17858         s-taprop-linux.adb, s-taprop-irix.adb, s-taprop-irix-athread.adb,
17859         s-taprop-tru64.adb, s-taprop-lynxos.adb (Elaboration Code): No longer
17860         set the environment task mask here.
17861         (Current_State): Add this function that returns the state of the
17862         suspension object.
17863         (Set_False): Add this procedure that sets the state of the suspension
17864         object to False.
17865         (Set_True): Add this procedure that sets the state of the suspension
17866         object to True, releasing the task that was suspended, if any.
17867         (Suspend_Until_True): Add this procedure that blocks the calling task
17868         until the state of the object is True. Program_Error is raised if
17869         another task is already waiting on that suspension object.
17870         (Initialize): Add this procedure for initializing the suspension
17871         object. It initializes the mutex and the condition variable which are
17872         used for synchronization and queuing, and it sets the internal state
17873         to False.
17874         (Finalize): Add this procedure for finalizing the suspension object,
17875         destroying the mutex and the condition variable.
17876
17877         * s-taspri-posix.ads, s-taspri-vxworks.ads, s-taspri-mingw.ads,
17878         s-taspri-vms.ads, s-taspri-solaris.ads, s-taspri-os2.ads,
17879         s-taspri-dummy.ads, s-taspri-hpux-dce.ads, s-taspri-linux.ads,
17880         s-taspri-tru64.ads, s-taspri-lynxos.ads (Suspension_Object): New object
17881         which provides a low-level abstraction (using operating system
17882         primitives) for Ada.Synchronous_Task_Control.
17883         This object is made up by a mutex (for ensuring mutual exclusion), a
17884         condition variable (for queuing threads until the condition is
17885         signaled), a Boolean (State) indicating whether the object is open,
17886         and a Boolean (Waiting) reflecting whether there is a task already
17887         suspended on this object.
17888
17889         * s-intman.ads, s-intman-irix.adb, s-intman-irix-athread.adb,
17890         s-intman-dummy.adb, s-intman-solaris.adb, s-intman-vms.adb,
17891         s-intman-vms.ads, s-intman-mingw.adb,
17892         (Initialize_Interrupts): Removed, no longer used.
17893
17894         * s-inmaop-posix.adb, s-inmaop-vms.adb, s-inmaop-dummy.adb,
17895         (Setup_Interrupt_Mask): New procedure.
17896
17897         * s-intman-vxworks.ads, s-intman-vxworks.adb:  Update comments.
17898
17899         * s-inmaop.ads (Setup_Interrupt_Mask): New procedure
17900
17901         * s-interr.adb: Add explicit call to Setup_Interrupt_Mask now that
17902         this is no longer done in the body of s-taprop
17903         (Server_Task): Explicitely test for Pending_Action in case
17904         System.Parameters.No_Abort is True.
17905
17906         * s-taasde.adb: Add explicit call to Setup_Interrupt_Mask now that this
17907         is no longer done in the body of s-taprop
17908
17909 2005-06-14  Robert Dewar  <dewar@adacore.com>
17910
17911         * system-unixware.ads, system-linux-ia64.ads, system-freebsd-x86.ads,
17912         system-lynxos-ppc.ads, system-lynxos-x86.ads, system-linux-x86_64.ads,
17913         system-tru64.ads, system-aix.ads, system-vxworks-sparcv9.ads,
17914         system-vxworks-xscale.ads, system-solaris-x86.ads, system-irix-o32.ads,
17915         system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
17916         system-linux-x86.ads, system-vxworks-mips.ads, system-vxworks-mips.ads,
17917         system-os2.ads, system-interix.ads, system-solaris-sparc.ads,
17918         system-solaris-sparcv9.ads, system-vms.ads, system-mingw.ads,
17919         system-vms-zcx.ads, system-vxworks-ppc.ads, system.ads,
17920         system-darwin-ppc.ads, system-vxworks-x86.ads, system-linux-ppc.ads,
17921         system-linux-hppa.ads, system-vms_64.ads,
17922         system-vxworks-alpha.ads: Minor comment update for
17923         AI-362 (unit is Pure).
17924
17925         * a-chahan.ads, a-chahan.adb: Move Wide_Wide functions to Conversions
17926         Add pragma Pure_05 for AI-362
17927         Make remaining conversion functions obsolescent in Ada 95
17928
17929         * impunit.adb: Change a-swunha to a-swuwha and a-szunha to a-szuzha
17930         Make Ada.Wide_Characters[.Unicode] available in Ada 95 mode
17931         Add entries for a-wichun and a-zchuni
17932         Add a-widcha a-zchara for AI-395
17933         Add a-chacon (Ada.Characters.Conversions) to list of Ada 2005 routines
17934
17935         * Makefile.rtl: Change a-swunha to a-swuwha and a-szunha to a-szuzha
17936         Add entries for a-wichun.o and a-zchuni.o
17937         Entries for a-widcha.o and a-zchara.o
17938         Add entry for a-chacon.o
17939
17940         * a-ztenau.adb: Add with of Ada.Characters.Conversions
17941
17942         * a-chacon.ads, a-chacon.adb: New files.
17943
17944         * a-taside.adb, a-exstat.adb, a-excach.adb: Add warnings off to allow
17945         categorization violations.
17946
17947         * a-strmap.ads: Add pragma Pure_05 for AI-362
17948         * a-strmap.ads: Add note on implicit categorization for AI-362
17949
17950         * a-tgdico.ads, a-taside.ads: Add pragma Preelaborate_05 for AI-362
17951
17952         * par-prag.adb: Dummy entry for pragma Persistent_BSS
17953         Set Ada_Version_Explicit, for implementation of AI-362
17954         Add processing for pragma Pure_05 and Preelaborate_05
17955         Add entry for Assertion_Policy pragma
17956
17957         * sem.adb: Make sure predefined units are compiled with GNAT_Mode true
17958         when needed for proper processing of categorization stuff
17959
17960         * sem_cat.adb:
17961         For several cases, make errors in preealborate units warnings,
17962         instead of errors, if GNAT_Mode is set. For AI-362.
17963
17964         * sem_elab.adb (Check_Elab_Call): Call to non-static subprogram in
17965         preelaborate unit is now warning if in GNAT mode
17966
17967         * s-stoele.ads: Document AI-362 for pragma preelaborate
17968
17969 2005-06-14  Doug Rupp  <rupp@adacore.com>
17970
17971         * s-parame-vms.ads, s-parame-hpux.ads, s-parame-vms-restrict.ads,
17972         s-parame-ae653.ads, s-parame.ads, s-parame-vxworks.ads:
17973         Default_Exception_Msg_Max_Length: new parameter.
17974
17975         * a-except.ads: (Exception_Msg_Max_Length): Set to
17976         System.Parameters.Default_Exception_Msg_Max_Length
17977         Add pragma Preelaborate_05 for AI-362
17978         Add warnings off to allow categorization violations for AI-362
17979
17980 2005-06-14  Vincent Celier  <celier@adacore.com>
17981
17982         * gnatsym.adb: Adapt to modification of package Symbols: procedure
17983         Process is now in package Processing.
17984
17985         * symbols.ads, symbols.adb:
17986         (Processing): New package, containing procedure Process
17987
17988         * symbols-vms-alpha.adb:
17989         Replaced by symbols-vms.adb and symbols-processing-vms-alpha.adb
17990
17991         * symbols-vms.adb, symbols-processing-vms-alpha.adb,
17992         symbols-processing-vms-ia64.adb: New files.
17993
17994 2005-06-14  Pascal Obry  <obry@adacore.com>
17995
17996         * mlib-tgt-mingw.adb (Build_Dynamic_Library): Replace the previous
17997         implementation. This new version generates the proper DllMain routine
17998         to initialize the SAL. The DllMain is generated in Ada and compiled
17999         before being added as option to the library build command.
18000
18001 2005-06-14  Doug Rupp  <rupp@adacore.com>
18002             Pascal Obry  <obry@adacore.com>
18003
18004         * adaint.c (__gnat_to_canonical_file_spec): Check for error returns in
18005         call to decc$translate_vms.
18006         (__gnat_locate_regular_file): Check if the path_val contains quotes. We
18007         need to remove those quotes before catenating the filename.
18008         (__gnat_locate_exec_on_path): improvements to the Win32 section:
18009         * avoid allocating the memory twice for better efficiency;
18010         * allocate 32K buffer for environment expansion as suggested by MSDN;
18011         * prepend ".;" to the path so that current directory is searched too.
18012
18013 2005-06-14  Robert Dewar  <dewar@adacore.com>
18014
18015         * a-except.adb (Exception_Identity): return Null_Id for null occurrence
18016         instead of raising CE (AI-241)
18017         Add warnings off to allow categorization violations for AI-362
18018
18019 2005-06-14  Robert Dewar  <dewar@adacore.com>
18020
18021         * ali-util.adb, gnatbind.adb: Remove references to
18022         Force_RM_Elaboration_Order.
18023
18024         * switch-b.adb: Remove recognition of -f switch
18025
18026 2005-06-14  Pascal Obry  <obry@adacore.com>
18027
18028         * a-stzunb.adb, a-stwiun.adb, a-strunb.adb (Realloc_For_Chunk): New
18029         implementation which is slightly more efficient.
18030
18031 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
18032             Javier Miranda  <miranda@adacore.com>
18033             Ed Schonberg  <schonberg@adacore.com>
18034             Hristian Kirtchev  <kirtchev@adacore.com>
18035
18036         * exp_ch4.adb (Expand_Allocator_Expression): When an initialized
18037         allocator's designated type is a class-wide type, and compiling for
18038         Ada 2005, emit a run-time check that the accessibility level of the
18039         type given in the allocator's expression is not deeper than the level
18040         of the allocator's access type.
18041
18042         (Tagged_Membership): Modified to gives support to abstract interface
18043         types.
18044
18045         * a-tags.ads, a-tags.adb (type Type_Specific_Data): Add component
18046         Access_Level.
18047         (Descendant_Tag): New predefined function
18048         (Is_Descendant_At_Same_Level): New predefined function
18049         (Get_Access_Level): New private function
18050         (Set_Access_Level): New private procedure
18051         (IW_Membership): New function. Given the tag of an object and the tag
18052         associated with an interface, evaluate if the object implements the
18053         interface.
18054         (Register_Interface_Tag): New procedure used to initialize the table of
18055         interfaces used by the IW_Membership function.
18056         (Set_Offset_To_Top): Initialize the Offset_To_Top field in the prologue
18057         of the dispatch table.
18058         (Inherit_TSD): Modified to copy the table of ancestor tags plus the
18059         table of interfaces of the parent.
18060         (Expanded_Name): Raise Tag_Error if the passed tag equals No_Tag.
18061         (External_Tag): Raise Tag_Error if the passed tag equals No_Tag.
18062         (Parent_Tag): Return No_Tag in the case of a root-level tagged type,
18063         and raise Tag_Error if the passed tag equalis No_Tag, to conform with
18064         Ada 2005 semantics for the new predefined function.
18065
18066         * exp_attr.adb (Expand_N_Attribute, case Attribute_Input): Generate
18067         call to Descendant_Tag rather than Internal_Tag.
18068         (Expand_N_Attribute, case Attribute_Output): Emit a check to ensure that
18069         the accessibility level of the attribute's Item parameter is not deeper
18070         than the level of the attribute's prefix type. Tag_Error is raised if
18071         the check fails. The check is only emitted for Ada_05.
18072         (Find_Stream_Subprogram): If a TSS exists on the type itself for the
18073         requested stream attribute, use it.
18074         (Expand_N_Attribute_Reference): If the designated type is an interface
18075         then rewrite the referenced object as a conversion to force the
18076         displacement of the pointer to the secondary dispatch table.
18077         (Expand_N_Attribute_Reference, case 'Constrained): Return false if this
18078         is a dereference of an object with a constrained partial view.
18079
18080         * exp_ch5.adb (Expand_N_Return_Statement): When a function's result
18081         type is a class-wide type, emit a run-time check that the accessibility
18082         level of the returned object is not deeper than the level of the
18083         function's master (only when compiling for Ada 2005).
18084
18085         * exp_disp.ads, exp_disp.adb (Ada_Actions, Action_Is_Proc,
18086         Action_Nb_Arg): Add entries for new Get_Access_Level and
18087         Set_Access_Level routines in these tables.
18088         (Make_DT): Generate a call to set the accessibility level of the
18089         tagged type in its TSD.
18090         (Make_DT): Code cleanup. The functionality of generating all the
18091         secondary dispatch tables has been moved to freeze_record_type.
18092         (Make_Abstract_Interface_DT): Minor code cleanup.
18093         (Set_All_DT_Position): Code cleanup. As part of the code cleanup
18094         this subprogram implements a new algorithm that provides the
18095         same functionality and it is more clear in case of primitives
18096         associated with abstract interfaces.
18097         (Set_All_Interfaces_DTC_Entity): Removed. As part of the code
18098         clean up, the functionality of this subprogram is now provided
18099         by Set_All_DT_Position.
18100         (Write_DT): New subprogram: a debugging procedure designed to be called
18101         within gdb to display the dispatch tables associated with a tagged
18102         type.
18103         (Collect_All_Interfaces): New subprogram that collects the whole list
18104         of interfaces that are directly or indirectly implemented by a tagged
18105         type.
18106         (Default_Prim_Op_Position): New subprogram that returns the fixed
18107         position in the dispatch table of the default primitive operations.
18108         (Expand_Interface_Actuals): New subprogram to generate code that
18109         displaces all the actuals corresponding to class-wide interfaces to
18110         reference the interface tag of the actual object.
18111         (Expand_Interface_Conversion): New subprogram. Reference the base of
18112         the object to give access to the interface tag associated with the
18113         secondary dispatch table.
18114         (Expand_Interface_Thunk): New subprogram that generates the code of the
18115         thunk. This is required for compatibility with the C+ ABI.
18116         (Make_Abstract_Interface_DT): New subprogram that generate the
18117         declarations for the secondary dispatch tables associated with an
18118         abstract interface.
18119         (Set_All_Interfaces_DTC_Entity): New subprogram that sets the DTC_Entity
18120         attribute for each primitive operation covering interface subprograms
18121         (Expand_Dispatching_Call, Fill_DT_Entry, Make_DT, Set_All_DT_Position):
18122         These subprograms were upgraded to give support to abstract interfaces
18123
18124         * rtsfind.ads (type RE_Id): Add RE_Descendant_Tag,
18125         RE_Is_Descendant_At_Same_Level, RE_Get_Access_Level, and
18126         RE_Set_Access_Level.
18127         (RE_Unit_Table): Add entries for new Ada.Tags operations.
18128         Add support to call the followig new run-time subprograms:
18129         IW_Membership, Register_Interface_Tag, and Set_Offset_To_Top
18130
18131         * sem_ch3.adb (Constant_Redeclaration): Allow a deferred constant to
18132         match its full declaration when both have an access definition with
18133         statically matching designated subtypes.
18134         (Analyze_Component_Declaration): Delete commented out code that was
18135         incorrectly setting the scope of an anonymous access component's type.
18136         (Process_Discriminants): Set Is_Local_Anonymous_Access for the type of
18137         an access discriminant when the containing type is nonlimited.
18138         (Make_Incomplete_Type_Declaration): Create an incomplete type
18139         declaration for a record type that includes self-referential access
18140         components.
18141         (Check_Anonymous_Access_Types): Before full analysis of a record type
18142         declaration, create anonymous access types for each self-referential
18143         access component.
18144         (Analyze_Component_Declaration, Array_Type_Declaration): Indicate that
18145         an access component in this context is a Local_Anonymous_Access, for
18146         proper accessibility checks.
18147         (Access_Definition): Set properly the scope of the anonymous access type
18148         created for a stand-alone access object.
18149         (Find_Type_Of_Object): An object declaration may be given with an access
18150         definition.
18151         (Complete_Subprograms_Derivation): New subprogram used to complete
18152         type derivation of private tagged types implementing interfaces.
18153         In this case some interface primitives may have been overriden
18154         with the partial-view and, instead of re-calculating them, they
18155         are included in the list of primitive operations of the full-view.
18156         (Build_Derived_Record_Type): Modified to give support to private
18157         types implemening interfaces.
18158         (Access_Definition): Reject ALL on anonymous access types.
18159         (Build_Derived_Record_Type): In the case of Ada 2005, allow a tagged
18160         type derivation to occur at a deeper accessibility level than the
18161         parent type.
18162         For the case of derivation within a generic body however, disallow the
18163         derivation if the derived type has an ancestor that is a formal type
18164         declared in the formal part of an enclosing generic.
18165         (Analyze_Object_Declaration): For protected objects, remove the check
18166         that they cannot contain interrupt handlers if not declared at library
18167         level.
18168         (Add_Interface_Tag_Components): New subprogram to add the tag components
18169         corresponding to all the abstract interface types implemented by a
18170         record type or a derived record type.
18171         (Analyze_Private_Extension_Declaration, Build_Derived_Record_Type,
18172         Derived_Type_Declaration, Find_Type_Name, Inherit_Components,
18173         Process_Full_View, Record_Type_Declaration): Modified to give
18174         support to abstract interface types
18175         (Collect_Interfaces): New subprogram that collects the list of
18176         interfaces that are not already implemented by the ancestors
18177         (Process_Full_View): Set flag Has_Partial_Constrained_View appropriately
18178         when partial view has no discriminants and full view has defaults.
18179         (Constrain_Access): Reject a constraint on a general access type
18180         if the discriminants of the designated type have defaults.
18181         (Access_Subprogram_Declaration): Associate the Itype node with the inner
18182         full-type declaration or subprogram spec. This is required to handle
18183         nested anonymous declarations.
18184         (Analyze_Private_Extension_Declaration, Build_Derived_Record_Type,
18185         Derived_Type_Declaration, Find_Type_Name, Inherit_Components,
18186         Process_Full_View, Record_Type_Declaration): Modified to give
18187         support to abstract interface types
18188         (Derive_Subprograms): Addition of a new formal to indicate if
18189         we are in the case of an abstact-interface derivation
18190         (Find_Type_Of_Subtype_Indic): Moved from the body of the package
18191         to the specification because it is requied to analyze all the
18192         identifiers found in a list of interfaces
18193
18194         * debug.adb: Complete documentation of flag "-gnatdZ"
18195
18196         * exp_ch3.adb: Implement config version of persistent_bss pragma
18197         (Check_Stream_Attributes): Use Stream_Attribute_Available instead of
18198         testing for TSS presence to properly enforce visibility rules.
18199         (Freeze_Record_Type): Code cleanup. Modified to call the subprogram
18200         Make_Abstract_Interfaces_DT to generate the secondary tables
18201         associated with abstract interfaces.
18202         (Build_Init_Procedure): Modified to initialize all the tags
18203         corresponding.
18204         (Component_Needs_Simple_Initialization): Similar to other tags,
18205         interface tags do not need initialization.
18206         (Freeze_Record_Type): Modified to give support to abstract interface
18207         types.
18208         (Expand_N_Object_Declaration): Do not generate an initialization for
18209         a scalar temporary marked as internal.
18210
18211         * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): Handle properly an
18212         in-out parameter that is a component in an initialization procedure,
18213         whose constraint might depend on discriminants, and that may be
18214         misaligned because of packing or representation clauses.
18215         (Is_Legal_Copy): New predicate to determine whether a possibly
18216         misaligned in-out actual can actually be passed by copy/return. This
18217         is an error in case the type is by_reference, and a warning if this is
18218         the consequence of a DEC import pragma on the subprogram.
18219         (Expand_Call, Freeze_Subprogram): Modified to give support to abstract
18220         interface types
18221         (Expand_Inlined_Call): Mark temporary generated for the return value as
18222         internal, so that no useless scalar normalization is generated for it.
18223         (Expand_N_Subprogram_Declaration): Save unanalyzed body so calls to
18224         null procedure can always be inlined.
18225         (Expand_N_Subprogram_Declaration): If this is the declaration of a null
18226         procedure, generate an explicit empty body for it.
18227
18228         * exp_util.ads, exp_util.adb (Find_Interface_ADT): New subprogram.
18229         Given a type implementing an interface, returns the corresponding
18230         access_disp_table value.
18231         (Find_Interface_Tag): New subprogram. Given a type implementing an
18232         interface, returns the record component containing the tag of the
18233         interface.
18234         (Find_Interface_Tag): New overloaded subprogram. Subsidiary to the
18235         previous ones that return the corresponding tag and access_disp_table
18236         entities.
18237         (Is_Predefined_Dispatching_Operation): Determines if a subprogram
18238         is a predefined primitive operation.
18239         (Expand_Subtype_From_Expr): If the expression is a selected component
18240         within an initialization procedure, compute its actual subtype, because
18241         the component may depend on the discriminants of the enclosing record.
18242
18243         * i-cpp.ads, i-cpp.adb:
18244         This package has been left available for compatibility with previous
18245         versions of the frontend. As part of the new layout this is now a
18246         dummy package that uses declarations available at a-tags.ads
18247
18248         * par-ch3.adb (P_Identifier_Declarations): Give an error for use of
18249         "constant access" and "aliased [constant] access" when not compiling
18250         with -gnat05.
18251         Suppress Ada 2005 keyword warning if -gnatwY used
18252         (P_Identifier_Declarations): Add support for object declarations with
18253         access definitions.
18254         (Private_Extension_Declaration): Complete the documentation
18255         (P_Derived_Type_Def_Or_Private_Ext_Decl): Fill the inteface_list
18256         attribute in case of private extension declaration
18257         (P_Type_Declaration): Mark as "abstract" the type declarations
18258         corresponding with protected, synchronized and task interfaces
18259         (P_Declarative_Items): "not" and "overriding" are overriding indicators
18260         for a subprogram or instance declaration.
18261
18262         * sem_ch12.adb (Analyze_Subprogram_Instantiation): Verify that an
18263         instantiation that is a dispatching operation has controlling access
18264         parameters that are null excluding.
18265         Save and restore Ada_Version_Explicit, for implementation of AI-362
18266         (Validate_Derived_Type_Instance): Add check for abstract interface
18267         types.
18268         (Analyze_Formal_Package): Establish Instantiation source for the copy of
18269         the generic that is created to represent the formal package.
18270         (Analyze_Package_Instantiation): Instantiate body immediately if the
18271         package is a predefined unit that contains inlined subprograms, and
18272         we are compiling for a Configurable_Run_Time.
18273         (Instantiate_Formal_Subprogram): Indicate that null default subprogram
18274         If the program has a null default, generate an empty body for it.
18275
18276         * sem_ch6.adb, sem_ch9.adb (Analyze_Subprograms_Declaration): Update
18277         error message condition, null procedures are correctly detected now.
18278         (New_Overloaded_Entity): Bypass trivial overriding indicator check
18279         for subprograms in the context of protected types. Instead, the
18280         indicator is examined in Sem_Ch9 while analysing the subprogram
18281         declaration.
18282         (Check_Overriding_Indicator): Check consistency of overriding indicator
18283         on subprogram stubs as well.
18284         (Analyze_Subprogram_Declaration): Diagnose null procedures declared at
18285         the library level.
18286         (Analize_Subprogram_Specification): When analyzing a subprogram in which
18287         the type of the first formal is a concurrent type, replace this type
18288         by the corresponding record type.
18289         (Analyze_Subprogram_Body): Undo the previous work.
18290         (Analyze_Procedure_Call): If the call has the form Object.Op, the
18291         analysis of the prefix ends up analyzing the call itself, after which
18292         we are done.
18293         (Has_Interface_Formals): New subprogram subsidiary to analyze
18294         subprogram_specification that returns true if some non
18295         class-wide interface subprogram is found
18296         (New_Overloaded_Entity): Modified to give support to abstract
18297         interface types
18298         (Conforming_Types): In Ada 2005 mode, conformance checking of anonymous
18299         access to subprograms must be recursive.
18300         (Is_Unchecked_Conversion): Improve the test that recognizes
18301         instantiations of Unchecked_Conversion, and allows them in bodies that
18302         are to be inlined by the front-end. When the body comes from an
18303         instantiation, a reference to Unchecked_Conversion will be an
18304         Expanded_Name, even though the body has not been analyzed yet.
18305         Replace Is_Overriding and Not_Overriding in subprogram_indication with
18306         Must_Override and Must_Not_Override, to better express intent of AI.
18307         (Analyze_Subprogram_Body): If an overriding indicator is given, check
18308         that it is consistent with the overrinding status of the subprogram
18309         at this point.
18310         (Analyze_Subprogram_Declaration): Indicate that a null procedure is
18311         always inlined.
18312         If the subprogram is a null procedure, indicate that it does not need
18313         a completion.
18314
18315         * sem_disp.adb (Check_Controlling_Type): Give support to entities
18316         available through limited-with clauses.
18317         (Check_Dispatching_Operation): A stub acts like a body, and therefore is
18318         allowed as the last primitive of a tagged type if it has no previous
18319         spec.
18320         (Override_Dispatching_Operation, Check_Dispatching_Operation): Modified
18321         to give support to abstract interface types
18322
18323         * sem_res.adb (Valid_Conversion): Perform an accessibility level check
18324         in the case where the target type is an anonymous access type of an
18325         object or component (that is, when Is_Local_Anonymous_Access is true).
18326         Prevent the special checks for conversions of access discriminants in
18327         the case where the discriminant belongs to a nonlimited type, since
18328         such discriminants have their accessibility level defined in the same
18329         way as a normal component of an anonymous access type.
18330         (Resolve_Allocator): When an allocator's designated type is a class-wide
18331         type, check that the accessibility level of type given in the
18332         allocator's expression or subtype indication is not statically deeper
18333         than the level of the allocator's access type.
18334         (Check_Discriminant_Use): Diagnose discriminant given by an expanded
18335         name in a discriminant constraint of a record component.
18336         (Resolve_Explicit_Dereference): Do not check whether the type is
18337         incomplete when the dereference is a use of an access discriminant in
18338         an initialization procedure.
18339         (Resolve_Type_Conversion): Handle conversions to abstract interface
18340         types.
18341         (Valid_Tagged_Conversion): The conversion of a tagged type to an
18342         abstract interface type is always valid.
18343         (Valid_Conversion): Modified to give support to abstract interface types
18344         (Resolve_Actuals): Enable full error reporting on view conversions
18345         between unrelated by_reference array types.
18346         The rule for view conversions of arrays with aliased components is
18347         weakened in Ada 2005.
18348         Call to obsolescent subprogram is now considered to be a violation of
18349         pragma Restrictions (No_Obsolescent_Features).
18350         (Check_Direct_Boolean_Operator): If the boolean operation has been
18351         constant-folded, there is nothing to check.
18352         (Resolve_Comparison_Op, Resolve_Equality_Op, Resolve_Boolean_Op): Defer
18353         check on possible violation of restriction No_Direct_Boolean_Operators
18354         until after expansion of operands, to prevent spurious errors when
18355         operation is constant-folded.
18356
18357         * sem_type.ads, sem_type.adb (Covers, Intersect_Types, Specific_Type,
18358         Has_Compatible_Type): Modified to give support to abstract interface
18359         types.
18360         (Interface_Present_In_Ancestor): New function to theck if some ancestor
18361         of a given type implements a given interface
18362
18363         * sem_ch4.adb (Analyze_Call): Handle properly an indirect call whose
18364         prefix is a parameterless function that returns an access_to_procedure.
18365         (Transform_Object_Operation): Handle properly function calls of the
18366         form Obj.Op (X), which prior to analysis appear as indexed components.
18367         (Analyze_One_Call): Complete the error notification to help new Ada
18368         2005 users.
18369         (Analyze_Allocator): For an allocator without an initial value, where
18370         the designated type has a constrained partial view, a discriminant
18371         constraint is illegal.
18372
18373 2005-06-14  Robert Dewar  <dewar@adacore.com>
18374
18375         * a-textio.adb (Set_Col): Fix two errors noticed recently, having to
18376         do with treatment of Set_Col when positioned at end of line character.
18377
18378 2005-06-14  Robert Dewar  <dewar@adacore.com>
18379
18380         * atree.adb: (Elist*): Protect against uninitialized field
18381
18382 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
18383
18384         * checks.adb (Install_Null_Excluding_Check): Do not generate checks
18385         for an attribute reference that returns an access type.
18386         (Apply_Discriminant_Check): No need for check if (designated) type has
18387         constrained partial view.
18388
18389         (Apply_Float_Conversion_Check): Generate a short-circuit expression for
18390         both bound checks, rather than a conjunction.
18391         (Insert_Valid_Check): If the expression is an actual that is an indexed
18392         component of a bit-packed array, force expansion of the packed element
18393         reference, because it is specifically inhibited elsewhere.
18394
18395 2005-06-14  Vincent Celier  <celier@adacore.com>
18396
18397         * clean.adb (Clean_Project): Correctly delete executable specified as
18398         absolute path names.
18399
18400         * make.adb (Gnatmake): Allow relative executable path names with
18401         directory information even when project files are used.
18402         (Change_To_Object_Directory): Fail gracefully when unable to change
18403         current working directory to object directory of a project.
18404         (Gnatmake): Remove exception handler that could no longer be exercized
18405         (Compile_Sources.Compile): Use deep copies of arguments, as some of them
18406         may be deallocated by Normalize_Arguments.
18407         (Collect_Arguments): Eliminate empty arguments
18408
18409         * gnatcmd.adb (All_Projects): New Boolean flag, initialized to False,
18410         and set to True when -U is used for GNAT PRETTY or GNAT METRIC.
18411         (Check_Project): Return False when Project is No_Project. Return True
18412         when All_Projects is True.
18413         (GNATCmd): Recognize switch -U for GNAT PRETTY and GNAT METRIC and set
18414         All_Projects to True.
18415         Minor reformatting
18416
18417 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
18418             Javier Miranda  <miranda@adacore.com>
18419             Thomas Quinot  <quinot@adacore.com>
18420             Robert Dewar  <dewar@adacore.com>
18421             Hristian Kirtchev  <kirtchev@adacore.com>
18422             Gary Dismukes  <dismukes@adacore.com>
18423
18424         * einfo.ads, einfo.adb (Is_Local_Anonymous_Access): New flag on
18425         anonymous access types, to indicate that the accessibility level of
18426         the type is determined by that of the enclosing declaration.
18427         (Has_Persistent_BSS): New flag
18428         (Set_Is_Primitive_Wrapper): Upgrade the barrier to allow the usage
18429         of this attribute with functions.
18430         (Is_Primitive_Wrapper): Remove the barrier.
18431         (Has_Specified_Stream_Input, Has_Specified_Stream_Output,
18432         Has_Specified_Stream_Read, Has_Specified_Stream_Write):
18433         New subprograms.
18434         (Set_Has_Specified_Stream_Input, Set_Has_Specified_Stream_Output,
18435         Set_Has_Specified_Stream_Read, Set_Has_Specified_Stream_Write):
18436         New subprograms.
18437         (Is_Pure_Unit_Access_Type): New flag
18438         (Abstract_Interfaces): Complete the assertion to cover all usages.
18439         (Set_Is_Interface): Complete the assertion to cover all usages.
18440         (Is_Primitive_Wrapper): New attribute.
18441         (Is_Obsolescent): Now applies to all entities (though it is only set
18442         for subprograms currently)
18443         New flag:  Has_Constrained_Partial_View, to implemente Ada 2005 AI-363,
18444         which solves various problems concerning access subtypes.
18445         (Has_Persistent_BSS): New flag
18446         (Is_Primitive_Wrapper, Set_Primitive_Wrapper): Code cleanup.
18447         Remove these subprograms because this attribute is currently
18448         not used.
18449         New entity flags:
18450         Has_Specified_Stream_Input (Flag190)
18451         Has_Specified_Stream_Output (Flag191)
18452         Has_Specified_Stream_Read (Flag192)
18453         Has_Specified_Stream_Write (Flag193)
18454         Present in all type and subtype entities. Set for a given view if the
18455         corresponding stream-oriented attribute has been defined by an
18456         attribute definition clause. When such a clause occurs, a TSS is set
18457         on the underlying full view; the flags are used to track visibility of
18458         the attribute definition clause for partial or incomplete views.
18459         (Is_Pure_Unit_Access_Type): New flag
18460         Clarify use of Is_Internal.
18461         (Is_Primitive_Wrapper): New attribute present in primitive subprograms
18462         internally generated to wrap the invocation of tasks and protected
18463         types that implement interfaces.
18464         (Implementation_Base_Type): Documentation correction
18465         (Is_Obsolescent): Now applies to all entities (though it is only set
18466         for subprograms currently)
18467         New flag:  Has_Constrained_Partial_View, to implement Ada 2005 AI-363,
18468         which solves various problems concerning access subtypes.
18469
18470         * exp_ch9.adb (Type_Conformant_Parameters): Introduce mode conformance
18471         for examined parameters. Identify unequal parameter list lengths as
18472         non-conformant parameters.
18473         (Overriding_Possible): Do not check for "All" qualifier in declaration
18474         of controlling access parameter, following prescription of AI-404.
18475         (Build_Entry_Wrapper_Spec, Build_Entry_Wrapper_Body): New subprograms
18476         that build the procedure body that wraps an entry invocation
18477         (Build_Corresponding_Record, Build_Protected_Sub_Specification,
18478         Expand_N_Protected_Body, Expand_N_Protected_Type_Declaration,
18479         Expand_N_Task_Body, Expand_N_Task_Type_Declaration): Modified to
18480         give support to abstract interface types
18481
18482         * freeze.adb (Freeze_Entity): Issue error message if
18483         Is_Pure_Unit_Access_Type set, unless we are in Ada 2005 mode and the
18484         type has no storage pool (Ada 2005) AI-366.
18485         Also modified to give support to abstract interface types
18486         (Freeze_Subprogram): Issue an error for a dispatching subprogram with an
18487         Inline_Always pragma.
18488
18489         * par-ch9.adb (P_Task_Items): Reserved words "not" or "overriding" may
18490         now begin an entry declaration.
18491         (P_Entry_Or_Subprogram_With_Indicator): New procedure in
18492         P_Protected_Operation_Declaration_Opt. Parse an entry declaration or
18493         a subprogram declaration preceded by an overriding indicator.
18494         (P_Protected_Operation_Declaration_Opt): Add case for parsing entry
18495         declarations or subprogram declarations preceded by reserved words
18496         "not" or "overriding".
18497         (P_Entry_Declaration): Update comment. Parse and check overriding
18498         indicator, set semantic flags of entry declarations.
18499         (P_Task): New error message in case of private applied
18500         to a task type declaration.
18501         (P_Protected): New error message in case of private applied
18502         to a task type declaration.
18503
18504         * sem_ch7.adb (Preserve_Full_Attributes): Modified to handle the case
18505         in which the full view of a type implementing an interface is a
18506         concurrent type.
18507         (Has_Overriding_Pragma): Remove obsolete implementation of AI-218.
18508         Declare_Inherited_Private_Subprograms): If an explicit operation
18509         overrides an operation that is inherited in the private part, mark the
18510         explicit one as overriding, to enable overriding indicator checks.
18511         (Preserve_Full_Attributes): Propagate Is_Unchecked_Union attribute from
18512         full view to partial view, to simplify handling in back-end.
18513
18514         * sprint.adb: Print interface lists where needed: derived types,
18515         protected types, task types.
18516         output "is null" for null procedures. Part of implementation of
18517
18518         * sem_cat.adb (Validate_Access_Type_Declaration): Implement AI-366
18519         relaxation of rules for access types in pure, shared passive partitions.
18520
18521         * exp_strm.adb (Build_Mutable_Record_Read_Procedure): Reorganize to
18522         first read discriminants into temporary objects, performing checks on
18523         the read values, then possibly performing discriminant checks on the
18524         actual (if it is constrained), and only finally reading the components
18525         into a constrained temporary object.
18526         (Build_Elementary_Input_Call): Adjust the specific circuitry for the
18527         case of reading discriminants of a mutable record type to recognize
18528         the new form of the code generated by
18529         Build_Mutable_Record_Read_Procedure.
18530
18531         * exp_tss.ads, exp_tss.adb (Make_Init_Proc_Name): Reimplement in terms
18532         of a simple call to Make_TSS_Name.
18533         (Make_TSS_Name_Local): Add the TSS name as the last thing in the name
18534         buffer, in order for Is_TSS to work correctly on local TSS names.
18535
18536         * sem_attr.ads, sem_attr.adb (Resolve_Attribute, case 'Access): Use flag
18537         Is_Local_Anonymous_Access to check legaliy of attributes in the
18538         context of  access components and stand-alone access objects.
18539         (Stream_Attribute_Available): In Ada 95 mode, a stream attribute is
18540         treated as available for a limited private type if there is an
18541         attribute_definition_clause that applies to its full view, but not in
18542         other cases where the attribute is available for the full view
18543         (specifically, the sole fact that the full view is non-limited does not
18544         make the attribute available for the partial view).
18545         (Build_Access_Subprogram_Type): Diagnose attempt to apply 'access to a
18546         non-overloaded intrinsic subprogram.
18547         (Check_Stream_Attribute): Reject an attribute reference for an
18548         unavailable stream attribute even if the prefix is not a limited type
18549         (case of a 'Input attribute reference for an abstract, non-classwide
18550         type)
18551         (Stream_Attribute_Available): New function to determine whether a stream
18552         attribute is available at a place.
18553         (Check_Attribute): Use Stream_Attribute_Available instead of just
18554         testing for TSS presence on the implementation base type.
18555         (Analyze_Attribute): Modified to give support to task interfaces.
18556         (Analyze_Access_Attribute): Add error check for use of an Access (or
18557         Unrestricted_Access) attribute with a subprogram marked as
18558         Inline_Always.
18559         (Analyze_Attribute, case Attribute_Address): Add error check for use of
18560         an Address attribute with a subprogram marked as Inline_Always.
18561         Update Eval_Attribute to handle new value of Width from AI-395
18562
18563         * sem_ch13.adb (Analyze_Stream_TSS_Definition): New subprogram.
18564         (Analyze_Attribute_Definition_Clause, cases Input, Output, Read, Write):
18565         Factor common code across the stream-oriented attribute circcuits into
18566         a new subprogram, Analyze_Stream_TSS_Definition. The new uniform
18567         processing is functionally identical to the previous duplicated one,
18568         except that an expression that denotes an abstract subprogram will now
18569         be rejected, as mandated by AI-195 item 5.
18570
18571         * sem_util.ads, sem_util.adb (Type_Access_Level): Use flag
18572         Is_Local_Anonymous_Access to apply accessibility checks to access
18573         components and stand-alone access objects.
18574         (Has_Discriminant_Dependent_Constraint): Moved to spec for use
18575         elsewhere.
18576         (Is_Potentially_Persistent_Type): New function
18577         (Is_Dependent_Component_Of_Mutable_Object): If the enclosing object is
18578         a heap-object whose type has a constrained partial view, the object is
18579         unconstrained and the component may depend on a discriminant, making its
18580         renaming illegal.
18581
18582         * sinfo.ads, sinfo.adb
18583         (Must_Not_Override): Flag applicable to N_Entry_Declaration.
18584         (Must_Override): Flag applicable to N_Entry_Declaration.
18585         Indicate that interface_list can appear in single task and single
18586         protected declarations.
18587         Replace Is_Overriding and Not_Overriding with Must_Override and
18588         Must_Not_Override, to better express intent of AI.
18589         Is_Overriding, Not_Overriding: Ada2005 flags that indicate the presence
18590         of an overriding indicator in a subprogram or instance.
18591         Ada 2005 (AI-248) Null_Present can appear in a procedure specification.
18592         Add the overriding indicator [[not] overriding] construct to the
18593         following grammar productions:
18594          ENTRY_DECLARATION
18595          GENERIC_INSTANTIATION
18596          SUBPROGRAM_SPECIFICATION
18597
18598         * par-ch10.adb (P_Compilation_Unit): Subprogram declaration or body
18599         can start with an overriding indicator.
18600
18601         * par-ch6.adb (P_Subprogram): Recognize overriding indicator, and set
18602         flags accordingly on subrogram specifications or instances.
18603
18604         * sem_ch8.adb:
18605         (Analyze_Subprogram_Renaming): For a renaming_as_body, verify that the
18606         overriding_indicator, if present, is consistent with status of spec.
18607         Improve error message for null-excluding checks on controlling access
18608         parameters.
18609         (Check_In_Previous_With_Clause): Protect the frontend against
18610         previously reported critical errors in the context clauses.
18611         Save and restore Ada_Version_Explicit, for implementation of AI-362
18612         (Analyze_Subprogram_Renaming): If the new entity is a dispatching
18613         operation verify that controlling formals of the renamed entity that
18614         are access parameters are explicitly non-null.
18615         (Find_Expanded_Name): Improve error message when prefix is an illegal
18616         reference to a private child unit.
18617
18618         * exp_imgv.adb, s-imgwch.ads, s-imgwch.adb, s-valwch.adb,
18619         s-valwch.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb, s-wwdwch.adb:
18620         Rewrite to correspond to new wide character names in AI-395
18621
18622         * par-ch12.adb (P_Formal_Subprogram_Declaration): Recognize null
18623         default procedures.
18624
18625 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
18626             Robert Dewar  <dewar@adacore.com>
18627
18628         * errout.ads, errout.adb (Error_Msg_NW): Only emit warning on user
18629         code, not on the bodies of predefined operations, to cut down on
18630         spurious noise.
18631
18632 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
18633
18634         * exp_aggr.adb (Aggr_Size_OK): An array with no components can always
18635         be expanded in place. The size computation does not require a
18636         subtraction, which would raise an exception on a compiler built with
18637         assertions when the upper bound is Integer'first.
18638         (Flatten): For an array of composite components, take into account the
18639         size of the components to determine whether it is safe to expand the
18640         array into a purely positional representation.
18641
18642 2005-06-14  Thomas Quinot  <quinot@adacore.com>
18643
18644         * exp_ch2.adb (Param_Entity): Take the case of an expanded_name
18645         denoting a formal parameter into account.
18646
18647 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
18648
18649         * exp_ch7.adb (Find_Node_To_Be_Wrapped): If the node appears within
18650         the entry_call alternative of a conditional entry call, wrap the
18651         conditional entry call itself.
18652
18653 2005-06-14  Nicolas Setton  <setton@adacore.com>
18654             Ed Schonberg  <schonberg@adacore.com>
18655
18656         * exp_dbug.ads, exp_dbug.adb (Get_Variant_Part): Fix the encoding of
18657         the "simple_choice" member in a variant record, in accordance with the
18658         description in the package spec: the information output for a constant
18659         should be "S number", not "SS number".
18660         (Get_Encoded_Name): Return at once if not generating code. Avoids name
18661         overflow problem when compiling with -gnatct, for ASIS/gnatmetrics.
18662
18663 2005-06-14  Thomas Quinot  <quinot@adacore.com>
18664
18665         * exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): For an
18666         RACW without any primitives, do not generate the if statement for
18667         dispatching by name in the PolyORB/DSA case, as it would be malformed
18668         (it would have an Elsif_Parts list that is not No_List, but with a
18669         length of 0).
18670
18671 2005-06-14  Robert Dewar  <dewar@adacore.com>
18672
18673         * exp_intr.adb, par-ch5.adb: Minor fix to error message text
18674
18675 2005-06-14  Jose Ruiz  <ruiz@adacore.com>
18676
18677         * fe.h: Add entry for Opt.Exception_Locations_Suppressed so that gigi
18678         can determine whether pragma Suppress_Exception_Locations is in effect.
18679
18680         * utils2.c (build_call_raise): Do not pass the file name to the
18681         exception handler if pragma Suppress_Exception_Locations is in effect.
18682         (build_allocator): Add and process arg IGNORE_INIT_TYPE.
18683
18684 2005-06-14  Emmanuel Briot  <briot@adacore.com>
18685
18686         * g-debpoo.adb (Deallocate, Dereference): Improve output.
18687
18688 2005-06-14  Nicolas Roche  <roche@adacore.com>
18689
18690         * g-diopit.adb (Wildcard_Iterator): Return directly if Path is equal
18691         to ""
18692         (Next_Level): Fix minor bug in handling of ../dir case
18693         (Read): Add dir separator to Directory name so that "" is understood as
18694          "/"
18695
18696 2005-06-14  Pascal Obry  <obry@adacore.com>
18697
18698         * g-dynhta.ads, g-dynhta.adb (Reset): Free the table itself after
18699         releasing the items.
18700
18701 2005-06-14  Vincent Celier  <celier@adacore.com>
18702             Cyrille Comar  <comar@adacore.com>
18703
18704         * g-os_lib.ads, g-os_lib.adb (Non_Blocking_Spawn): Two new versions
18705         with output file descriptor and with output file name.
18706         (Dup, Dup2): Now global procedures as they are used by two subprograms
18707         (Copy): Allocate the 200K buffer on the heap rather than on the stack.
18708
18709 2005-06-14  Thomas Quinot  <quinot@adacore.com>
18710
18711         PR ada/6717
18712         * g-socket.ads, g-socket.adb (Inet_Addr): Special case the all-ones
18713         broadcast address.
18714         (Create_Selector): Bind listening socket used to create the signalling
18715         socket pair to 127.0.0.1 to limit the scope for 'theft' of connection.
18716         Set listen backlog to 1 to ensure that we detect socket theft by a
18717         failure of our own connect(2) call.
18718         (Check_Selector): Improve documentation of the selector mechanism.
18719         (Broadcast_Inet_Addr): New constant.
18720
18721 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
18722
18723         * layout.adb (Discrimify): Remove resetting of Vtype to the underlying
18724         type which turns out to be an incomplete and incorrect fix.
18725         (Layout_Array_Type): Use Underlying_Type when checking whether the scope
18726         of the type is declared in a record (for determination of insertion
18727         type).
18728         (SO_Ref_From_Expr): Test whether Vtype denotes a partial or full view of
18729         a private type and ensure that the primary entity is used for the type
18730         of the newly created function's V formal by taking the Etype of the
18731         view.
18732
18733 2005-06-14  Javier Miranda  <miranda@adacore.com>
18734             Jose Ruiz  <ruiz@adacore.com>
18735             Robert Dewar  <dewar@adacore.com>
18736             Ed Schonberg  <schonberg@adacore.com>
18737
18738         * lib-load.ads, lib-load.adb (Load_Unit): Addition of a new parameter
18739         that indicates if we are parsing a compilation unit found in a
18740         limited-with clause.
18741         It is use to avoid the circularity check.
18742
18743         * par.ads, par.adb (Par): Addition of a new parameter to indicate if
18744         we are parsing a compilation unit found in a limited-with clause. This
18745         is use to avoid the circularity check.
18746
18747         * par-load.adb (Load): Indicate Lib.Load_Unit if we are loading the
18748         unit as a consequence of parsing a limited-with clause. This is used
18749         to avoid the circularity check.
18750
18751         * sem_ch10.adb: Suppress Ada 2005 unit warning if -gnatwY used
18752         (Analyze_Context): Limited-with clauses are now allowed
18753         in more compilation units.
18754         (Analyze_Subunit_Context, Check_Parent): Protect the frontend
18755         againts previously reported critical errors in context clauses
18756         (Install_Limited_Withed_Unit): Code cleanup plus static detection
18757         of two further errors: renamed subprograms and renamed packages
18758         are not allowed in limited with clauses.
18759         (Install_Siblings): Do not install private_with_clauses on the package
18760         declaration for a non-private child unit.
18761         (Re_Install_Parents): When a parent of the subunit is reinstalled,
18762         reset visibility of child units properly.
18763         (Install_Withed_Unit): When a child unit appears in a with_clause of its
18764         parent, it is immediately visible.
18765
18766 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
18767             Emmanuel Briot  <briot@adacore.com>
18768
18769         * lib-xref.ads, lib-xref.adb (Generate_Definition): Treat any entity
18770         declared within an inlined body as referenced, to prevent spurious
18771         warnings.
18772         (Output_One_Ref): If an entity renames an array component, indicate in
18773         the ALI file that this aliases (renames) the array. Capture as well
18774         function renamings that rename predefined operations.
18775         Add information about generic parent for package and subprogram
18776         instances.
18777         (Get_Type_Reference): For a subtype that is the renaming of an actual in
18778         an instantiation, use the first_subtype to ensure that we don't generate
18779         cross-reference information for internal types.
18780         For objects and parameters of a generic private type, retain the '*'
18781         indicator to distinguish such an entity from its type.
18782
18783         * ali.ads (Xref_Entity_Record): New fields Iref_File_Num and Iref_Line,
18784         to store information about instantiated entities.
18785
18786         * ali.adb (Scan_ALI): Add support for parsing the reference to the
18787         generic parent
18788
18789         * xref_lib.adb (Skip_To_Matching_Closing_Bracket): New subprogram
18790         (Parse_Identifier_Info, Parse_Token): Add support for the generic parent
18791         information.
18792
18793 2005-06-10  Doug Rupp  <rupp@adacore.com>
18794             Arnaud Charlet  <charlet@adacore.com>
18795             Olivier Hainque  <hainque@adacore.com>
18796             Jose Ruiz  <ruiz@adacore.com>
18797
18798         * Make-lang.in: Add initialize.o when needed.
18799         Remove obsolete references to RT_FLAGS.
18800         Add missing dependencies for sdefault.o
18801
18802         * initialize.c: New file.
18803
18804         * init.c [VMS] Declare ADA$ externs weak to fix build problem in IVMS.
18805         [VMS] cond_signal_table: Fix problem in declaration.
18806         [VMS] __gnat_error_handler: rewrite.
18807         Move all __gnat_initialize() routines to initialize.c
18808         Specialize the former "hpux" section to "hppa hpux", as this is what the
18809         section really is here for and we now have other hpux ports that need
18810         different contents.
18811         (__gnat_adjust_context_for_raise) i386-linux: First version of this
18812         function for this target. Adjust PC by one in the machine context. This
18813         adjustment was previously done in the MD_FALLBACK_FRAME_STATE_FOR, but
18814         it is more reliable to do that in the signal handler itself.
18815         (__gnat_install_handler) i386-linux: Set SA_SIGINFO in the sigaction
18816         flags, so that the handler is passed the context structure to adjust
18817         prior to the raise.
18818         (__gnat_error_handler) i386-linux: Adjust the signature to match what a
18819         SA_SIGINFO sigaction should look like. Call
18820         __gnat_adjust_context_for_raise before actually raising. Cleanup unused
18821         Machine_State_Operations stuff.
18822         Add conditional code so that the x86_64 is also supported.
18823
18824 2005-06-14  Pascal Obry  <obry@adacore.com>
18825
18826         * mdll.adb (Get_Dll_Name): New routine that returns the DLL name given
18827         the library name.
18828
18829 2005-06-14  Robert Dewar  <dewar@adacore.com>
18830
18831         * opt.ads, opt.adb: New flags for persistent_bss mode
18832         Add Ada_Version_Explicit, for implementation of AI-362
18833         Add Assertions_Enabled_Config and associated handling
18834         Needed since setting can be changed with Assertion_Policy pragma
18835         Add new flag Warn_On_Ada_2005_Compatibility
18836
18837         * switch-c.adb: Recognize -gnatwy/Y
18838         Set Ada_Version_Explicit, for implementation of AI-362
18839         The -gnatg switch now includes -gnatyu
18840
18841         * usage.adb: Add -gnatwy/Y
18842         Remove wrong asterisk on -gnatwX line
18843         Add line for -gnatyu switch
18844
18845 2005-06-14  Vincent Celier  <celier@adacore.com>
18846
18847         * osint.adb (Add_Default_Search_Dirs): Put source and object
18848         directories of project files before directories coming from
18849         ADA_INCLUDE_PATH and ADA_OBJECTS_PATH.
18850
18851 2005-06-14  Robert Dewar  <dewar@adacore.com>
18852
18853         PR ada/15613
18854         * par-ch2.adb (Scan_Pragma_Argument): New procedure
18855         (P_Pragma): Implement RM 2.8(4) check for no pos args after named args
18856
18857 2005-06-14  Vincent Celier  <celier@adacore.com>
18858
18859         * prep.adb (Preprocess): Ignore error when scanning the first token of
18860         a line.
18861
18862 2005-06-14  Vincent Celier  <celier@adacore.com>
18863
18864         * prj-nmsc.adb (Suffix_For): Change default suffix for C++ to ".cpp"
18865         (Check_Stand_Alone_Library): If the specified reference symbol file does
18866         not exist, only issue a warning when the symbol policy is not
18867         Controlled. And, when symbol policy is Compliant, set the symbol
18868         policy to Autonomous.
18869
18870 2005-06-14  Vincent Celier  <celier@adacore.com>
18871
18872         * prj-part.adb (Pre_Parse_Context_Clause): Call Set_Is_Not_Last_In_List
18873         when the project file in a with clause is not the last one, that is the
18874         project file name is followed by a comma.
18875         * prj-pp.adb: (First_With_In_List): New Boolean global variable
18876         (Print): Issue list of project files separated by commas in with clauses
18877         according to the values returned by Is_Not_Last_In_List.
18878         * prj-tree.ads, prj-tree.adb: (Is_Not_Last_In_List): New function
18879         (Set_Is_Not_Last_In_List): New procedure
18880
18881 2005-06-14  Eric Botcazou  <ebotcazou@adacore.com>
18882
18883         * s-atacco.ads: Put a pragma No_Strict_Aliasing on Object_Pointer.
18884
18885 2005-06-14  Robert Dewar  <dewar@adacore.com>
18886
18887         * scng.adb: Add call to new Check_EOF routine
18888         (Accumulate_Checksum): Properly handle wide wide char >= 2 ** 24
18889         Add some comments regarding wide character handling
18890
18891         * style.ads, styleg.ads, styleg.adb: Implement new style switch -gnatyu
18892
18893         * stylesw.ads, stylesw.adb: Implement new style switch -gnatyu
18894
18895         * g-utf_32.ads, g-utf_32.adb (Is_UTF_32_Non_Graphic): Other_Format
18896         characters are now considered graphic characters and hence yield false
18897         in this call.
18898
18899         * nmake.adt: Modify header so that xnmake does not generate output
18900         files with multiple blank lines.
18901
18902         * treeprs.adt: Remove a blank line so that output from xtreeprs does
18903         not have an extra blank line
18904
18905 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
18906
18907         * sem_aggr.adb (Aggregate_Constraint_Checks): Apply a conversion to the
18908         expression when the component type is an anonymous access type to
18909         ensure that appropriate accessibility checks are done.
18910
18911         * sem_ch5.adb (Analyze_Assignment): Apply a implicit conversion to the
18912         expression of an assignment when the target object is of an anonymous
18913         access type. This ensures that required accessibility checks are done.
18914         (One_Bound): Move the check for type Universal_Integer to
18915         Process_Bounds.
18916         (Process_Bounds): Check whether the type of the preanalyzed range is
18917         Universal_Integer, and in that case set Typ to Integer_Type prior
18918         to setting the type of the original range and the calls to One_Bound.
18919
18920 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
18921
18922         * sem_case.adb (Expand_Others_Choice): Improve warning.
18923
18924 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
18925
18926         * sem_eval.adb (Subtypes_Statically_Match): Use discriminant
18927         constraint of full view if present, when other type is discriminated.
18928         (Eval_Relational_Op): Recognize tests of pointer values against Null,
18929         when the pointer is known to be non-null, and emit appropriate warning.
18930
18931 2005-06-14  Robert Dewar  <dewar@adacore.com>
18932             Ed Schonberg  <schonberg@adacore.com>
18933
18934         PR ada/10671
18935         * sem_prag.adb: Implement pragma Persistent_BSS
18936         Remove obsolete pragma Persistent_Data, Persistent_Object
18937         Set Ada_Version_Explicit, for implementation of AI-362
18938         Test Ada_Version_Explicit for Preelaborate_05 and Pure_05
18939         Add processing for pragma Pure_05 and Preelaborate_05
18940         Add processing for Assertion_Policy pragma
18941         Add pragma identifiers for Assert
18942         (Analyze_Pragma, case Assert): Check number of arguments
18943         (Process_Inline): Additional guard against an illegal program, where the
18944         argument of the pragma is undefined, and warnings on redundant
18945         constructs are enabled.
18946         (Analyze_Pragma, case Obsolescent): Allow an optional second argument
18947         Ada_05 to this pragma, specifying that the pragma is only active in
18948         Ada_05 mode.
18949         (Check_Arg_Order): New procedure
18950         Add appropriate calls to this procedure throughout
18951         Also throughout, check entity name before doing any other checks
18952
18953         * snames.h snames.ads, snames.adb: Add pragma Persistent_BSS
18954         Remove obsolete pragma Persistent_Data, Persistent_Object
18955         Add entries for pragma Pure_05 and Preelaborate_05
18956         Add entries for Assertion_Policy pragma and associated names
18957         Add some names for pragma argument processing
18958
18959         * tbuild.ads, tbuild.adb: (Make_Linker_Section_Pragma): New function
18960
18961 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
18962
18963         * sem_warn.adb (Warn_On_Known_Condition): If the constant expression
18964         appears within a negation (either from source or as a rewriting of
18965         inequality) adjust text of warning accordingly.
18966
18967 2005-06-14  Thomas Quinot  <quinot@adacore.com>
18968
18969         * s-strxdr.adb: Follow AI95-00132
18970
18971 2005-06-14  Arnaud Charlet  <charlet@adacore.com>
18972
18973         * s-tasren.adb (Exceptional_Complete_Rendezvous): Fix race condition.
18974
18975 2005-06-14  Arnaud Charlet  <charlet@adacore.com>
18976             Jose Ruiz  <ruiz@adacore.com>
18977
18978         * s-tposen.adb, s-tpobop.adb
18979         (Exceptional_Complete_Rendezvous): Save the occurrence and not only
18980         the exception id.
18981         (PO_Do_Or_Queue): Before queuing a task on an entry queue we check that
18982         there is no violation of the Max_Entry_Queue_Length restriction (if it
18983         has been set); Program_Error is raised otherwise.
18984         (Requeue_Call): Before requeuing the task on the target entry queue we
18985         check that there is no violation of the Max_Entry_Queue_Length
18986         restriction (if it has been set); Program_Error is raised otherwise.
18987
18988 2005-06-14  Robert Dewar  <dewar@adacore.com>
18989
18990         * styleg.adb: Fix several remaining problems in -gnatyu switch
18991         Blank line count not reset at start
18992         Scanning outside source buffer in some cases
18993         Confusing message for blanks at end of file
18994         Non-empty blank lines not recognized
18995
18996         * nmake.adt: Modify header so that xnmake does not generate output
18997         files with multiple blank lines.
18998
18999         * treeprs.adt: Remove a blank line so that output from xtreeprs does
19000         not have an extra blank line
19001
19002 2005-06-14  Sergey Rybin  <rybin@adacore.com>
19003
19004         * styleg-c.adb (Body_With_No_Spec): Remove ':' from warning message.
19005
19006 2005-06-14  Doug Rupp  <rupp@adacore.com>
19007             Vincent Celier  <celier@adacore.com>
19008
19009         * vms_conv.ads, vms_conv.adb: Remove "Library" command.
19010         Update copyright.
19011
19012         * vms_data.ads: Add entry for -gnaty/Y [NO]ADA_2005_COMPATIBILITY
19013         Remove "Library" command.
19014         Change keyword for style check -gnatyd from NOCRLF to
19015         DOS_LINE_ENDINGS.
19016         Remove useless second style check keyword NONE
19017         Remove help documentation for inexistent style check keyword
19018         RM_COLUMN_LAYOUT.
19019         Add help documentation for style check keywords DOS_LINE_ENDINGS,
19020         UNNECESSARY_BLANK_LINES and XTRA_PARENS
19021         Add UNNECESSARY_BLANK_LINES for -gnatyu
19022         Add qualifiers /ALL_PROJECTS (-U) for GNAT PRETTY and GNAT METRIC
19023
19024         * ug_words: Add entry for -gnaty/Y [NO]ADA_2005_COMPATIBILITY
19025
19026 2005-06-14  Vincent Celier  <celier@adacore.com>
19027
19028         * makegpr.adb (Compile_Link_With_Gnatmake): Invoke gnatmake with -d if
19029         gprmake was invoked with -d.
19030         (Compile_Sources): If -d was used, output the "completed ..." message
19031         for each compilation.
19032         (Scan_Arg): Recognize new switch -d
19033         When -c and at least one main is specified, set
19034         Unique_Compile to True to guarantee that no other sources will be
19035         compiled.
19036
19037 2005-06-14  Matthew Heaney  <heaney@adacore.com>
19038
19039         * a-swunha.ads, a-swunha.adb: Removed. Replaced by a-swuwha.ad[sb]
19040         * a-swuwha.ads, a-swuwha.adb: New files
19041
19042         * a-szunha.ads, a-szunha.adb: Removed, replaced by a-szuzha.ad[sb]
19043         * a-szuzha.ads, a-szuzha.adb: New files.
19044
19045         * a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb, a-crbtgk.ads,
19046         a-crbtgk.adb, a-crbltr.ads, a-coorse.ads, a-coorse.adb, a-convec.ads,
19047         a-convec.adb, a-coinve.ads, a-coinve.adb, a-cohata.ads, a-cohama.ads,
19048         a-cohama.adb, a-ciorse.ads, a-ciorse.adb, a-cihama.ads, a-cihama.adb,
19049         a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cdlili.ads,
19050         a-cdlili.adb, a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cohase.adb,
19051         a-cohase.ads, a-ciorma.ads, a-coorma.ads, a-ciormu.ads, a-coormu.ads,
19052         a-swunha.adb, a-stunha.adb, a-ciorma.adb, a-coorma.adb, a-shcain.ads,
19053         a-shcain.adb, a-chtgke.ads, a-chtgke.adb, a-stwiha.ads, a-stwiha.adb,
19054         a-strhas.adb, a-stzhas.adb: synchronized to the latest version of the
19055         Ada 2005 RM.
19056
19057 2005-06-10  Eric Botcazou  <ebotcazou@adacore.com>
19058             Olivier Hainque  <hainque@adacore.com>
19059             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19060             Pascal Obry  <obry@adacore.com>
19061
19062         * gigi.h: (build_allocator): Add arg IGNORE_INIT_TYPE.
19063
19064         * trans.c (call_to_gnu): Issue a warning for users of Starlet when
19065         making a temporary around a procedure call because of non-addressable
19066         actual parameter.
19067         (process_freeze_entity): If entity is a private type, capture size
19068         information that may have been computed for the full view.
19069         (tree_transform, case N_Allocator): If have initializing expression,
19070         check type for Has_Constrained_Partial_View and pass that to
19071         build_allocator.
19072         (tree_transform, case N_Return_Statement): Pass extra arg to
19073         build_allocator.
19074
19075         * decl.c (annotate_value): Remove early return if -gnatR is not
19076         specified.
19077         (gnat_to_gnu_field): Don't make a packable type for a component clause
19078         if the position is byte aligned, the field is aliased, and the clause
19079         size isn't a multiple of the packable alignment. It serves no useful
19080         purpose packing-wise and would be rejected later on.
19081         (gnat_to_gnu_entity, case object): Pass extra arg to build_allocator.
19082
19083         PR ada/20515
19084         (gnat_to_gnu_entity): Remove use of macro _WIN32 which is wrong in the
19085         context of cross compilers. We use TARGET_DLLIMPORT_DECL_ATTRIBUTES
19086         instead.
19087         (create_concat_name): Idem.
19088
19089 2005-06-10  Robert Dewar  <dewar@adacore.com>
19090             Eric Botcazou  <ebotcazou@adacore.com>
19091             Ben Brosgol  <brosgol@adacore.com>
19092             Cyrille Comar  <comar@adacore.com>
19093             Sergey Rybin  <rybin@adacore.com>
19094             Pascal Obry  <obry@adacore.com>
19095
19096         * gnat_rm.texi: Add documentation for pragma Persistent_BSS
19097         Document second argument (Ada_05) of pragma Obsolescent
19098         Add note that call to subprogram marked with pragma Obsolescent
19099         is now considered to be a violation of program Restrictions
19100         (No_Obsolescent_Features).
19101         (Implementation Defined Pragmas) <Machine_Attribute>: Make it clear
19102         that only machine-dependent attributes are supported.
19103
19104         * gnat_ugn.texi:
19105         Commented out menu lines and empty section for gnatclean examples
19106         Document -gnatwy/Y
19107         Fix some over long lines
19108         Clarify and enhance documentation of ADA_PROJECT_PATH.
19109         Rework section 2.11.2(3) about linking with a non-GNU compiler.
19110         Mention new switch -fcallgraph-info.
19111         Mention new switch -fstack-usage.
19112         For gnatpp, replace '-notab' with '-N' and add this option to Index
19113         Corrected VMS example.
19114         VMS keyword for style check -gnatyd is DOS_LINE_ENDINGS, no NOCRLF
19115         Minor reformatting
19116         Add documentation for -gnatyu switch (unnecessary blank lines)
19117         Document new switch -U for GNAT PRETTY and GNAT METRIC
19118         Add note about Stdcall being handled as C convention on non Windows OS.
19119         Remove some junk typo in description of gnatbind -S switch
19120         Remove reference to Extensions_Allowed pragma
19121         Document the new order of the directories to be searched (source and
19122         object directories of project files before directories in ADA_*_PATH
19123         environment variables.
19124
19125         * g-trasym.ads: Document that IRIX is supported
19126
19127 2005-06-10  Arnaud Charlet  <charlet@adacore.com>
19128
19129         * Makefile.in: Add initialize.o when needed.
19130         Adapt to new VMS package body Symbols and subunits
19131         No specialized version of a-sytaco is needed for VxWorks.
19132
19133         * a-wichun.ads, a-wichun.adb, a-zchuni.ads, a-zchuni.adb: New files.
19134         * a-zchara.ads, a-widcha.ads: New files.
19135
19136         * system-hpux-ia64.ads: New file.
19137
19138         * i-vxwork-x86.ads, i-vxwork.ads (intContext): Add this function which
19139         is imported from the VxWorks kernel.
19140
19141 2005-06-14  Robert Dewar  <dewar@adacore.com>
19142
19143         * g-soliop-mingw.ads, g-soccon-vms.adb, a-swmwco.ads, exp_smem.adb,
19144         fmap.adb, a-szmzco.ads, s-traent-vms.adb, s-traent-vms.ads,
19145         a-direio.ads, a-exctra.ads, a-exexda.adb, a-exextr.adb, a-stream.ads,
19146         s-restri.ads, s-restri.adb, s-traent.adb, s-traent.ads, a-slcain.adb,
19147         a-stzhas.ads, a-tiinau.adb, comperr.adb, exp_ch11.adb, g-boubuf.adb,
19148         g-calend.adb, g-debpoo.ads, g-moreex.ads, gprep.adb, g-regpat.ads,
19149         i-cexten.ads, i-os2thr.ads, makeutl.ads, memroot.adb, mlib-prj.adb,
19150         namet.adb, namet.ads, prj-makr.adb, prj-proc.adb, sem_dist.adb,
19151         sem_elim.ads, s-valint.adb, s-vallli.adb, s-vallli.adb, s-vallli.ads,
19152         s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads, scn.adb,
19153         s-tasinf.adb, targparm.adb, uname.adb, uname.ads, xnmake.adb,
19154         xsinfo.adb, a-direct.ads: Remove extra blank lines. Minor reformatting.
19155
19156 2005-06-14  Thomas Quinot  <quinot@adacore.com>
19157
19158         * xeinfo.adb: Fix typo in comment
19159
19160 2005-06-14  Javier Miranda  <miranda@adacore.com>
19161
19162         * repinfo.ads: Fix typo in comment
19163
19164 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
19165
19166         * s-finimp.adb (Parent_Tag): Delete this imported function (function
19167         Parent_Tag is now in the visible part of Ada.Tags).
19168         (Get_Deep_Controller): Call Ada.Tags.Parent_Tag directly instead of
19169         using imported function.
19170
19171 2005-06-14  Bernard Banner  <banner@adacore.com>
19172
19173         * vxaddr2line.adb: Add support for Windows hosted x86 vxworks. Should
19174         also apply for handling support for VxSim 653.
19175
19176 2005-06-14  Eric Botcazou  <ebotcazou@adacore.com>
19177
19178         * xsnames.adb: Add automatic generation of snames.h.
19179
19180 2005-06-14  Thomas Quinot  <quinot@adacore.com>
19181
19182         * gen-soccon.c: Add IP_MULTICAST_IF constant
19183         Minor reformatting and adjustments to prevent warnings.
19184
19185 2005-06-14  Pascal Obry  <obry@adacore.com>
19186
19187         * seh_init.c: Do not include <sys/stat.h>. This is not needed.
19188
19189 2005-06-03  Andrew Pinski  <pinskia@physics.uc.edu>
19190
19191         * trans.c (gnat_gimplify_expr): Call
19192         recompute_tree_invarant_for_addr_expr when we change
19193         the operand of the ADDR_EXPR.
19194
19195 2005-05-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19196
19197         * misc.c: Don't include errors.h.
19198
19199 2005-05-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19200
19201         * raise.c (db): Add ATTRIBUTE_PRINTF_2.
19202
19203 2005-05-29  Kazu Hirata  <kazu@cs.umass.edu>
19204
19205         * cal.c, decl.c, init.c, raise.c, trans.c, utils2.c: Fix
19206         comment typos.
19207         * gnat_rm.texi, gnat_ugn.texi: Fix typos.
19208
19209 2005-05-16  Nathanael Nerode <neroden@gcc.gnu.org>
19210
19211         PR ada/20270
19212         * Makefile.in: Make TGT_LIB behave correctly.
19213
19214 2005-04-23  DJ Delorie  <dj@redhat.com>
19215
19216         * misc.c: Adjust warning() callers.
19217
19218 2005-04-16  Laurent GUERBY  <laurent@guerby.net>
19219
19220         PR ada/18847
19221         * a-nudira.adb (Value): Check for valid string.
19222         * a-nuflra.adb (Value): Likewise.
19223
19224 2005-04-11  Richard Sandiford  <rsandifo@redhat.com>
19225
19226         * lang.opt: Refer to the GCC internals documentation instead of c.opt.
19227
19228 2005-04-10  Kazu Hirata  <kazu@cs.umass.edu>
19229
19230         * adaint.c, init.c, tracebak.c: Fix comment typos.
19231         * gnat-style.texi, gnat_rm.texi, gnat_ugn.texi: Fix typos.
19232
19233 2005-04-07  Laurent GUERBY  <laurent@guerby.net>
19234             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19235
19236         * Makefile.in: Add make ifeq define for hppa linux tasking support.
19237         * system-hpux.ads: Define Signed_Zeros to be True.
19238         * system-linux-hppa.ads, s-osinte-linux-hppa.ads: New files.
19239
19240 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
19241
19242         * adaint.c, cal.c, decl.c, gigi.h, gmem.c, init.c, link.c,
19243         raise.c, tracebak.c, trans.c, utils2.c, utils.c: Fix comment
19244         typos.
19245
19246 2005-03-30  Tom Tromey  <tromey@redhat.com>
19247
19248         * decl.c (gnat_substitute_in_type): Don't handle FILE_TYPE.
19249
19250 2005-03-30  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
19251
19252         * adaint.c (_gnat_set_close_on_exec): Mark parameters unused.
19253
19254 2005-03-29  Robert Dewar  <dewar@adacore.com>
19255
19256         * sem_res.adb (Resolve_Real_Literal): Generate warning if static
19257         fixed-point expression has value that is not a multiple of the Small
19258         value.
19259
19260         * opt.ads (Warn_On_Bad_Fixed_Value): New flag
19261
19262         * s-taprop-tru64.adb (RT_Resolution): Return an integer number of
19263         nanoseconds.
19264
19265         * ug_words: Add entry for [NO_]BAD_FIXED_VALUES for -gnatwb/-gnatwB
19266
19267 2005-03-29  Vincent Celier  <celier@adacore.com>
19268
19269         * mlib-tgt-vms-ia64.adb, mlib-tgt-vms-alpha.adb
19270         (Build_Dynamic_Library.Version_String): Return the empty string when
19271         Lib_Version is empty or when the symbol policy is not Autonomous.
19272
19273         * symbols-vms-alpha.adb (Finalize): For symbol policy Compliant, when
19274         a symbol is not in the reference symbol file, increase the Major ID
19275         and set the Minor ID to 0.
19276         Use gsmatch=lequal instead of gsmatch=equal
19277
19278 2005-03-29  Doug Rupp  <rupp@adacore.com>
19279
19280         * adaint.c (__gnat_to_canonical_file_spec [VMS]): Check for logical
19281         name and translate.
19282
19283 2005-03-29  Javier Miranda  <miranda@adacore.com>
19284
19285         * a-tags.ads, a-tags.adb (Get_TSD): Subprogram removed.
19286         (Inherit_DT): The first formal has been redefined as a Tag.
19287         This allows us the removal of the subprogram Get_TSD.
19288         (TSD): Replace the call to Get_TSD by the actual code.
19289
19290         * exp_disp.ads, exp_disp.adb: Remove support to call Get_TSD.
19291         (Make_DT): Upgrade the call to Inherit_TSD according to the
19292         new interface: the first formal is now a Tag.
19293
19294         * i-cpp.ads, i-cpp.adb (CPP_Inherit_DT): The first formal has been
19295         redefined as a Tag.
19296         This change allows us to remove the subprogram Get_TSD.
19297         (CPP_Get_TSD): Subprogram removed.
19298         (TSD): Replace the call to CPP_Get_TSD by the actual code.
19299
19300         * rtsfind.ads: Remove support to call the run-time
19301         subprogram Get_TSD
19302
19303 2005-03-29  Robert Dewar  <dewar@adacore.com>
19304
19305         * errutil.adb, errout.adb:
19306         Minor comment updates on Line_Terminator references
19307
19308         * par-ch10.adb: Add ??? comment about line terminator
19309
19310         * styleg.adb (Check_Line_Terminator): Add check for new switch -gnatyd
19311         (check dos line terminator).
19312         (Check_Line_Max_Length): New procedure, split off from the existing
19313         Check_Line_Terminator routine. Separating this out allows -gnatyf to
19314         be properly recognized.
19315
19316         * styleg.adb: Add ??? comment for line terminator reference
19317
19318         * scng.adb (Check_End_Of_Line): Fix bug of -gnatyf being ignored
19319         (Check_End_Of_Line): Add -gnatyd handling (check dos line terminators)
19320
19321         * styleg.ads (Check_Line_Terminator): Add check for new switch -gnatyd
19322         (check dos line terminator).
19323         (Check_Line_Max_Length): New procedure, split off from the existing
19324         Check_Line_Terminator routine. Separating this out allows -gnatyf to
19325         be properly recognized.
19326
19327         * stylesw.ads, stylesw.adb:
19328         Add handling for new -gnatyd switch (check dos line terminator)
19329
19330         * switch-c.adb: Recognize new -gnatyd switch (check dos line terminator)
19331         Recognize -gnatwb/-gnatwB switches
19332         Include Warn_On_Bad_Fixed_Value for -gnatg
19333
19334         * usage.adb:
19335         Add line for new -gnatyd switch (check dos line terminator)
19336
19337         * usage.adb: Add lines for -gnatwb/-gnatwB
19338
19339         * vms_data.ads: Add entry for NOCRLF (-gnatyd)
19340
19341         * vms_data.ads: [NO_]BAD_FIXED_VALUES synonym for -gnatwb/-gnatwB
19342
19343         * gnat_ugn.texi: Fix overlong lines
19344         Document new -gnatyd switch
19345         Document new -gnatwb/-gnatwB switches
19346
19347 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
19348
19349         * exp_ch4.adb (Has_Unconstrained_UU_Component): Use the base type in
19350         order to retrieve the component list of the type, before examining
19351         individual components.
19352
19353         * sem_type.adb (Covers): Types are compatible if one is the base type
19354         of the other, even though their base types might differ when private
19355         views are involved.
19356
19357 2005-03-29  Thomas Quinot  <quinot@adacore.com>
19358
19359         * exp_dist.adb (Add_RAST_Features, PolyORB version): Set the From_Any,
19360         To_Any and TypeCode TSSs on RAS types directly using Set_TSS, instead
19361         of using Set_Renaming_TSS. This ensures that the TSS bodies are not
19362         analyzed if expansion is disabled (which could otherwise cause spurious
19363         error messages if expansion has been disabled due to previous
19364         (unrelated) errors).
19365
19366         * sem_prag.adb (Analyze_Pragma, case Asynchronous): If RAS expansion
19367         is disabled, the entity denoted by the argument is the access type
19368         itself, not an underlying record type, so there is no need to go back
19369         to the Corresponding_Remote_Type.
19370
19371 2005-03-29  Gary Dismukes  <dismukes@adacore.com>
19372             Robert Dewar  <dewar@adacore.com>
19373
19374         * exp_intr.adb (Expand_Dispatching_Constructor_Call): New procedure to
19375         expand a call to an instance of
19376         Ada.Tags.Generic_Dispatching_Constructor into a dispatching call to the
19377         Constructor actual of the instance. A class-wide membership
19378         check is also generated, to ensure that the tag passed to the instance
19379         denotes a type in the class.
19380         (Expand_Intrinsic_Call): Call Expand_Dispatching_Constructor in the case
19381         of Name_Generic_Dispatching_Constructor.
19382
19383         * Makefile.rtl: Add a-tgdico.ads to the list of library units (new Ada
19384         05 unit for AI-260-02).
19385
19386         * a-tgdico.ads: New file.
19387
19388         * impunit.adb (Non_Imp_File_Names_05): Add entry "a-tgdico" for new
19389         predefined Ada 05 generic unit Ada.Tags.Generic_Dispatching_Constructor.
19390
19391         * snames.ads, snames.adb (Preset_Names): Add entry for
19392         Generic_Dispatching_Constructor.
19393
19394         PR ada/20300
19395         * sem_ch8.adb (Find_Direct_Name): Go to root type for check of
19396         character type cases.
19397         (Analyze_Subprogram_Renaming): Add special handling for
19398         the case of renaming of stream attributes when the renaming denotes a
19399         generic formal subprogram association for an abstract formal subprogram.
19400         Check that the attribute is a primitive stream attribute (and not
19401         a class-wide stream attribute) and then rewrite the attribute name
19402         as the name of the appropriate compiler-generated stream primitive.
19403
19404 2005-03-29  Robert Dewar  <dewar@adacore.com>
19405
19406         * exp_util.adb (Remove_Side_Effects): Properly propagate arguments to
19407         recursive calls.
19408         (Is_Possibly_Unaligned_Object): Correct typo that
19409         resulted in inaccurate result for unaligned scalars within records.
19410
19411 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
19412
19413         * freeze.adb (Freeze_Record_Type): If the type of the component is an
19414         itype whose parent is controlled and not yet frozen, do not create a
19415         freeze node for the itype if expansion is disabled.
19416
19417 2005-03-29  Vincent Celier  <celier@adacore.com>
19418
19419         * make.adb (Gnatmake): Don't fail if the main project file is declared
19420         as having no Ada sources. Do not display message "no sources to
19421         compile" in quiet output.
19422
19423 2005-03-29  Doug Rupp  <rupp@adacore.com>
19424
19425         * Makefile.in [VMS] (EXTRA_GNATTOOLS): Add vms_help and gnat.hlp as
19426         extra tools.
19427
19428 2005-03-29  Robert Dewar  <dewar@adacore.com>
19429
19430         * par-ch12.adb (P_Generic): Give better msg for illegal private generic
19431         child.
19432
19433 2005-03-29  Robert Dewar  <dewar@adacore.com>
19434
19435         * par-ch3.adb (P_Type_Declaration): Fix bad error recovery after
19436         missing TYPE Improve the error message generated when compiling a
19437         limited interface in Ada83 or Ada95 mode.
19438
19439 2005-03-29  Robert Dewar  <dewar@adacore.com>
19440
19441         * par-ch4.adb (P_Name): When a bad attribute is returned, return error,
19442         rather than proceed ahead using a junk attribute name.
19443
19444 2005-03-29  Vincent Celier  <celier@adacore.com>
19445
19446         * prj.ads, prj.adb: (Project_Data): Add new component Display_Name
19447
19448         * prj-part.adb (Parse_Single_Project): Set the location of a project
19449         on its defining identifier, rather than on the reserved word "project".
19450
19451         * prj-proc.adb (Expression): Adapt to the fact that default of external
19452         references may be string expressions, not always literal strings.
19453         (Recursive_Process): Set Display_Name equal to Name
19454         when Location is No_Location, that is when there is no actual file.
19455         Get the Display_Name of the project from the source, when it is not a
19456         virtual project.
19457         (Process): Use the Display_Name in error messages
19458
19459         * prj-strt.adb (External_Reference): Allow default to be string
19460         expressions, not only literal strings.
19461
19462 2005-03-29  Vincent Celier  <celier@adacore.com>
19463
19464         * prj-nmsc.adb (Check_Stand_Alone_Library): Do not forbid the symbol
19465         file and the reference symbol file to be the same file.
19466
19467 2005-03-29  Thomas Quinot  <quinot@adacore.com>
19468
19469         * sem_cat.adb (Validate_Remote_Types_Type_Conversion): Perform check to
19470         forbid conversion of a local access-to-subprogram type to a remote one.
19471
19472         * sem_util.adb (Wrong_Type): For a record type that is the expanded
19473         equivalent type for a remote access-to-subprogram type, go back to the
19474         original RAS entity when displaying an error message, so the casing is
19475         the original source casing.
19476
19477 2005-03-29  Robert Dewar  <dewar@adacore.com>
19478
19479         * sem_ch11.adb (Analyze_Raise_Statement): Change message for warning
19480         on param update.
19481
19482 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
19483
19484         * sem_ch4.adb (Analyze_Selected_Component): Do not generate an actual
19485         subtype if code is being pre-analyzed, to prevent un-expanded
19486         references to protected formals, among others.
19487         (Analyze_Explicit_Dereference): If the overloaded prefix includes some
19488         interpretation that can be a call, include the result of the call as a
19489         possible interpretation of the dereference.
19490
19491         * sem_ch5.adb (Process_Bounds): Determine type of range by
19492         pre-analyzing a copy of the original range, and then analyze the range
19493         with the expected type.
19494
19495         * sem_res.adb (Check_Parameterless_Call): For an explicit dereference
19496         with an overloaded prefix where not all interpretations yield an
19497         access to subprogram, do not rewrite node as a call.
19498         (Resolve_Explicit_Dereference): Recognize the previous case and rewrite
19499         the node as a call once the context identifies the interpretation of
19500         the prefix whose call yields the context type.
19501         (Valid_Conversion): For the case of a conversion between
19502         local access-to-subprogram types, check subtype conformance using
19503         Check_Subtype_Conformant instead of Subtype_Conformant, to have a more
19504         detailed error message.
19505
19506 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
19507
19508         * sem_ch6.adb (Set_Formal_Mode): If the subtype has a non_null
19509         indicator, indicate that the formal can never be null.
19510         (Process_Formals): If a formal has a non_null indicator, insert the
19511         resulting subtype immediately before the enclosing subprogram decl,
19512         and not at the beginning of the corresponding declarative part, to
19513         prevent access before elaboration (Ada2005).
19514
19515 2005-03-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19516
19517         PR ada/19956
19518         * utils.c (finish_record_type): Use variable_size when setting sizes.
19519
19520 2005-03-29  Robert Dewar  <dewar@adacore.com>
19521
19522         * xtreeprs.adb, xnmake.adb: Use Stream_IO instead of Text_IO to
19523         guarantee Unix style line terminators for the output files, even when
19524         running on windows.
19525
19526 2005-03-29  Robert Dewar  <dewar@adacore.com>
19527
19528         * a-direct.ads, a-direct.adb (Start_Search): Free allocated search
19529         buffer if an exception is raised.
19530
19531 2005-03-29  Ed Falis  <falis@adacore.com>
19532
19533         * cio.c: Undefine putchar and getchar for VTHREADS: incompatible with
19534         VxWorks 653 1.4
19535
19536 2005-03-29  Robert Dewar  <dewar@adacore.com>
19537
19538         * sem_util.ads: Minor reformatting
19539         * gnat_rm.texi: Minor editing.
19540
19541 2005-03-29  Eric Botcazou  <ebotcazou@adacore.com>
19542
19543         * decl.c (gnat_to_gnu_entity) <E_Variable>: Rework comment.
19544         * trans.c (tree_transform) <N_Identifier>: Use correct predicates.
19545
19546 2005-03-24  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
19547
19548         * adaint.c (__gnat_portable_spawn): Adjust cast.
19549
19550 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
19551
19552         * misc.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
19553
19554 2005-03-17  Pascal Obry  <obry@adacore.com>
19555
19556         * adaint.h, adaint.c (__gnat_waitpid): Moved to expect.c where it is
19557         used.
19558
19559         * expect.c (__gnat_waitpid): Moved here from adaint.c.
19560         Reimplement under Win32 using Win32 API.
19561
19562         (__gnat_kill) [Win32]: Properly close the process handle before leaving
19563         this routine.
19564
19565 2005-03-17  Eric Botcazou  <ebotcazou@adacore.com>
19566
19567         * ada-tree.h: (DECL_RENAMING_GLOBAL_P): New predicate.
19568         (DECL_RENAMED_OBJECT): New accessor macro.
19569         (SET_DECL_RENAMED_OBJECT): New setter macro.
19570
19571         * decl.c (gnat_to_gnu_entity) <E_Variable>: Stabilize the renamed
19572         object in all cases.  Attach the renamed object to the VAR_DECL.
19573         (gnat_to_gnu_field): Do not lift the record wrapper if the size of the
19574         field is not prescribed.
19575
19576         * misc.c (gnat_handle_option): Handle -gnatO separately.
19577         (gnat_print_decl) <VAR_DECL>: New case.
19578         Print the DECL_RENAMED_OBJECT node.
19579
19580         * lang.opt:  Declare separate -gnatO option.
19581
19582         * trans.c (tree_transform) <N_Identifier>: If the object is a renaming
19583         pointer, replace it with the renamed object.
19584         <N_Validate_Unchecked_Conversion>: Warn for a conversion to a fat
19585         pointer type if the source is not a fat pointer type whose underlying
19586         array has the same non-zero alias set as that of the destination array.
19587
19588 2005-03-17  Javier Miranda  <miranda@adacore.com>
19589
19590         * a-tags.ads, a-tags.adb (Get_Expanded_Name): Removed.
19591         (Get_Inheritance_Depth): Removed.
19592         (Set_Inheritance_Depth): Removed.
19593
19594         * rtsfind.ads, exp_disp.ads, exp_disp.adb: Remove support to call the
19595         subprogram Get_Expanded_Name because it is not referenced by the
19596         frontend.
19597
19598         * i-cpp.ads, i-cpp.adb (CPP_Get_Expanded_Name): Removed.
19599         (CPP_Get_Inheritance_Depth): Removed.
19600         (CPP_Set_Inheritance_Depth): Removed.
19601
19602         * tbuild.ads, tbuild.adb (Make_DT_Component): Removed.
19603
19604 2005-03-17  Robert Dewar  <dewar@adacore.com>
19605
19606         * checks.adb (Apply_Array_Size_Check): Completely remove this for GCC
19607         3, since we now expect GCC 3 to do all the work.
19608
19609 2005-03-17  Javier Miranda  <miranda@adacore.com>
19610
19611         * einfo.adb (First_Private_Entity, Set_First_Private_Entity): Addition
19612         of one barrier to avoid wrong usage of this attribute.
19613
19614         * sem_ch12.adb (Formal_Entity): Fix erroneous usage of the attribute
19615         First_Private_Entity.
19616
19617         * sem_ch7.adb (Install_Visible_Declarations): Add a barrier to protect
19618         the subprogram against wrong usage.
19619         Adapt the code to traverse the entities in the
19620         scope of a record_type because in addition to its usage regarding
19621         packages, this subprogram is also called by Expand_N_Freeze_Entity
19622         to install the visible declarations of the enclosing scope of a
19623         record_type_with_private to establish the proper visibility before
19624         freezing the entity and related subprograms.
19625
19626 2005-03-17  Ed Schonberg  <schonberg@adacore.com>
19627
19628         * exp_ch2.adb (In_Assignment_Context): Recognize slice assignments to
19629         entry formals.
19630
19631 2005-03-17  Thomas Quinot  <quinot@adacore.com>
19632
19633         * exp_ch3.adb (Check_Attr): New subprogram.
19634         (Check_Stream_Attribute): Move the code for 13.13.2(9/1) enforcement
19635         into a new Check_Attr subprogram, in order to provide a more
19636         explanatory error message (including the name of the missing attribute).
19637         (Stream_Operation_OK): Renamed from Stream_Operations_OK. This
19638         subprogram determines whether a default implementation exists for a
19639         given stream attribute.
19640         (Make_Predefined_Primitive_Specs, Predefined_Primitive_Bodies):
19641         Determine whether to generate a default implementation for each stream
19642         attribute separately, as this depends on the specific attribute.
19643
19644         * exp_strm.adb (Make_Field_Attribute): For the case of an illegal
19645         limited extension where a stream attribute is missing for a limited
19646         component (which will have been flagged in Exp_Ch3.Sem_Attr), do not
19647         generate a bogus reference to the missing attribute to prevent
19648         cascaded errors. Instead, generate a null statement.
19649
19650         * sem_attr.adb (Check_Stream_Attribute): A stream attribute is
19651         available for a limited type if it has been specified for an ancestor
19652         of the type.
19653
19654 2005-03-17  Ed Schonberg  <schonberg@adacore.com>
19655
19656         * exp_ch6.adb (Expand_Inlined_Call): handle the case when the renamed
19657         entity is an operator.
19658
19659 2005-03-17  Thomas Quinot  <quinot@adacore.com>
19660
19661         * exp_dist.adb (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist
19662         spec, to make this predicate available to other units.
19663
19664         * rtsfind.adb (Check_RPC): Use Sem_Dist.Get_PCS_Name instead of
19665         reimplementing it.
19666
19667         * sem_ch8.adb: Disable expansion of remote access-to-subprogram types
19668         when no distribution runtime library is available.
19669
19670         * sem_res.adb, sem_dist.adb: Disable expansion of remote
19671         access-to-subprogram types when no distribution runtime library is
19672         available.
19673         (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist spec, to make this
19674         predicate available to other units.
19675
19676         * sem_dist.ads (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist
19677         spec, to make this predicate available to other units.
19678
19679 2005-03-17  Vincent Celier  <celier@adacore.com>
19680
19681         * make.adb (Insert_Project_Sources): Make sure the Q is always
19682         initialized.
19683
19684         * prj-nmsc.adb (Check_Ada_Naming_Scheme_Validity): Check Naming against
19685         the default for the tree, not the global default naming.
19686
19687         * prj-proc.adb (Recursive_Process): No need to put the default naming
19688         in the project data, it's already there.
19689
19690 2005-03-17  Doug Rupp  <rupp@adacore.com>
19691
19692         * Makefile.in: (ia64-hp-*vms*): Use s-crtl-vms64.ads.
19693
19694         * 5xcrtl.ads: Renamed to...
19695         * s-crtl-vms64.ads: ...this new file
19696
19697 2005-03-17  Robert Dewar  <dewar@adacore.com>
19698
19699         PR ada/19519
19700         * namet.adb (Copy_One_Character): Set proper wide character encoding
19701         for upper half character if we have upper half encoding.
19702
19703 2005-03-17  Robert Dewar  <dewar@adacore.com>
19704
19705         * par.adb (Par): Improved msg for attempt to recompile predefined unit
19706
19707 2005-03-17  Thomas Quinot  <quinot@adacore.com>
19708
19709         * sem_ch13.adb (New_Stream_Function, New_Stream_Procedure): For a
19710         tagged limited type, the TSS is a newly built renaming declaration:
19711         insert it using Set_TSS, not Copy_TSS.
19712
19713 2005-03-17  Javier Miranda  <miranda@adacore.com>
19714
19715         * sem_ch4.adb (Try_Primitive_Operation, Class_Wide_Operation and
19716         Try_Object_Operation): Analyze the object that is accessible
19717         through the prefix of the subprogram call before we apply
19718         the transformation of the object-operation notation.
19719
19720 2005-03-17  Jose Ruiz  <ruiz@adacore.com>
19721
19722         * s-taprob.adb (Initialize_Protection): Initialize the protected
19723         object's owner to Null_Task.
19724         (Lock): If pragma Detect_Blocking is in effect and the caller of this
19725         procedure is already the protected object's owner then Program_Error
19726         is raised. In addition the protected object's owner is updated.
19727         (Lock_Read_Only): If pragma Detect_Blocking is in effect and the caller
19728         of this procedure is already the protected object's owner then
19729         Program_Error is raised.
19730         In addition the protected object's owner is updated.
19731         (Unlock): Remove the ownership of the protected object.
19732
19733         * s-taprob.ads (Protection): Add the field Owner, used to store the
19734         protected object's owner.
19735         This component is needed for detecting one type of potentially blocking
19736         operations (external calls on a protected subprogram with the same
19737         target object as that of the protected action). Document the rest of
19738         the components.
19739
19740         * s-tposen.adb, s-tpoben.adb (Initialize_Protection_Entries):
19741         Initialize the protected object's owner to Null_Task.
19742         (Lock_Read_Only_Entries): If pragma Detect_Blocking is in effect and the
19743         caller of this procedure is already the protected object's owner then
19744         Program_Error is raised.
19745         Do not raise Program_Error when this procedure is called from a
19746         protected action.
19747         (Unlock_Entries): Remove the ownership of the protected object.
19748         (Lock_Entries): If pragma Detect_Blocking is in effect and the caller
19749         of this procedure is already the protected object's owner then
19750         Program_Error is raised.
19751         Do not raise Program_Error when this procedure is called from
19752         a protected action.
19753
19754         * s-tposen.ads, s-tpoben.ads (Protection_Entries): Add the field Owner,
19755         used to store the protected object's owner.
19756
19757         * s-tpobop.adb (Protected_Entry_Call): If pragma Detect_Blocking is in
19758         effect and this procedure (a potentially blocking operation) is called
19759         from whithin a protected action, Program_Error is raised.
19760         (Timed_Protected_Entry_Call): If pragma Detect_Blocking is in effect
19761         and this procedure (a potentially blocking operation) is called from
19762         whithin a protected action, Program_Error is raised.
19763
19764 2005-03-17  Vincent Celier  <celier@adacore.com>
19765             Nicolas Setton  <setton@adacore.com>
19766
19767         * mlib-tgt-darwin.adb (Build_Dynamic_Library): Remove the "-fini"
19768         switch, not supported by the linker on Darwin. Add '_' before
19769         <library>init, as this character is added unconditionally by the
19770         compiler.
19771         (Is_Archive_Ext): Replace the wrong library extension ".dyld" by the
19772         correct one ".dylib". This fixes detection of the archive files when
19773         building library projects.
19774
19775 2005-03-17  Vincent Celier  <celier@adacore.com>
19776
19777         * switch-m.adb (Normalize_Compiler_Switches): Recognize switches
19778         -gnat83, -gnat95 and -gnat05.
19779
19780 2005-03-17  Vasiliy Fofanov  <fofanov@adacore.com>
19781
19782         * gnat_ugn.texi: Document gnatmem restriction
19783
19784 2005-03-17  Thomas Quinot  <quinot@adacore.com>
19785
19786         * snames.adb: Document new TSS names introduced by exp_dist/exp_tss
19787         cleanup
19788
19789 2005-03-17  Robert Dewar  <dewar@adacore.com>
19790
19791         * s-interr.ads, s-interr.adb, sem_ch3.adb, prj.ads, prj.adb,
19792         a-interr.adb, a-interr.ads, s-interr-sigaction.adb, s-interr-dummy.adb,
19793         s-interr-vms.adb, s-interr-vxworks.adb: Minor reformatting
19794
19795         * casing.adb: Comment improvements
19796
19797 2005-03-17  Pascal Obry  <obry@adacore.com>
19798
19799         * g-expect.adb: Minor reformatting.
19800
19801 2005-03-15  Zack Weinberg  <zack@codesourcery.com>
19802
19803         * Make-lang.in (doc/gnat_ugn_unw.info, doc/gnat_rm.info)
19804         (doc/gnat_ugn_unw.dvi, doc/gnat_rm.dvi): Add gcc-vers.texi
19805         to dependencies.
19806
19807 2005-03-15  Vincent Celier  <celier@adacore.com>
19808
19809         * mlib-tgt-darwin.adb (Library_Exist_For, Library_File_Name_For):
19810         Add new parameter In_Tree to specify the project tree: needed
19811         by the project manager. Adapt to changes in project manager
19812         using new parameter In_Tree.
19813
19814 2005-03-15  Jakub Jelinek  <jakub@redhat.com>
19815
19816         * Make-lang.in (ada/treeprs.ads, ada/einfo.h, ada/sinfo.h,
19817         ada/nmake.adb, ada/nmake.ads): Use unique subdirectories of
19818         ada/bldtools to avoid make -jN failures.
19819
19820 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
19821
19822         * trans.c (gnat_to_gnu) <N_Return_Statement>: Set gnu_result
19823         to NULL_TREE on entry.
19824
19825 2005-03-15  Robert Dewar  <dewar@adacore.com>
19826
19827         * system-unixware.ads, system-linux-ia64.ads, system-freebsd-x86.ads,
19828         system-lynxos-ppc.ads, system-lynxos-x86.ads, system-linux-x86_64.ads,
19829         system-tru64.ads, system-aix.ads, system-vxworks-sparcv9.ads,
19830         system-vxworks-xscale.ads, system-solaris-x86.ads, system-irix-o32.ads,
19831         system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
19832         system-linux-x86.ads, system-vxworks-mips.ads, system-os2.ads,
19833         system-interix.ads, system-solaris-sparc.ads,
19834         system-solaris-sparcv9.ads, system-vms.ads, system-mingw.ads,
19835         system-vms-zcx.ads, system-vxworks-ppc.ads, system-vxworks-alpha.ads,
19836         system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
19837         system-linux-ppc.ads, system-linux-alpha.ads, system-linux-sparc.ads,
19838         system-linux-s390.ads, system-linux-s390x.ads: Add line defining
19839         Compiler_System_Version to be False.
19840
19841         * opt.ads: Add new flag Opt.Address_Is_Private
19842
19843         * targparm.ads, targparm.adb: Set new flag Opt.Address_Is_Private
19844         Add new parameter Compiler_System_Version to avoid checking for
19845         completeness of parameters when compiler is compiling itself.
19846         Allows old versions of GNAT to be compiled with new compiler.
19847
19848 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
19849
19850         * s-osinte-tru64.ads, s-osinte-tru64.adb (Get_Stack_Base): New function
19851         (Hide_Yellow_Zone): New procedure to hide the Yellow Zone of the
19852         calling thread.
19853         (Stack_Base_Available): New flag.
19854         (Get_Page_Size): New overloaded functions imported from C.
19855         (PROT_NONE, PROT_READ, PROT_WRITE, PROT_EXEC, PROT_ALL,
19856         PROT_ON, PROT_OFF): New constants.
19857         (mprotect): New function imported from C.
19858         (pthread_teb_t): New record type.
19859
19860         * s-taprop-tru64.adb: (Enter_Task): Invoke Hide_Yellow_Zone.
19861         (Create_Task): Account for the Yellow Zone and the guard page.
19862
19863 2005-03-15  Vincent Celier  <celier@adacore.com>
19864
19865         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
19866         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
19867         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb,
19868         mlib-tgt-vxworks.adb, mlib-tgt-lynxos.adb (Library_Exist_For,
19869         Library_File_Name_For): Add new parameter In_Tree
19870         to specify the project tree: needed by the project manager.
19871         Adapt to changes in project manager using new parameter In_Tree.
19872         Remove local imports, use functions in System.CRTL.
19873
19874         * make.adb, clean.adb, gnatcmd.adb (Project_Tree): New constant needed
19875         to use the project manager.
19876
19877         * makeutl.ads, makeutl.adb (Linker_Options_Switches): New parameter
19878         In_Tree to designate the project tree. Adapt to changes in the project
19879         manager, using In_Tree.
19880
19881         * mlib-prj.ads, mlib-prj.adb (Build_Library, Check_Library,
19882         Copy_Interface_Sources): Add new parameter In_Tree to specify the
19883         project tree: needed by the project manager.
19884         (Build_Library): Check that Arg'Length >= 6 before checking if it
19885         contains "--RTS=...".
19886
19887         * mlib-tgt.ads, mlib-tgt.adb (Library_Exist_For,
19888         Library_File_Name_For): Add new parameter In_Tree to specify the
19889         project tree: needed by the project manager.
19890
19891         * prj.ads, prj.adb: Major modifications to allow several project trees
19892         in memory at the same time.
19893         Change tables to dynamic tables and hash tables to dynamic hash
19894         tables. Move tables and hash tables from Prj.Com (in the visible part)
19895         and Prj.Env (in the private part). Move some constants from the visible
19896         part to the private part. Make other constants deferred.
19897         (Project_Empty): Make it a variable, not a function
19898         (Empty_Project): Add parameter Tree. Returns the data with the default
19899         naming data of the project tree Tree.
19900         (Initialize): After updating Std_Naming_Data, copy its value to the
19901         component Naming of Project Empty.
19902         (Register_Default_Naming_Scheme): Use and update the default naming
19903         component of the project tree, instead of the global variable
19904         Std_Naming_Data.
19905         (Standard_Naming_Data): Add defaulted parameter Tree. If project tree
19906         Tree is not defaulted, return the default naming data of the Tree.
19907         (Initial_Buffer_Size): Constant moved from private part
19908         (Default_Ada_Spec_Suffix_Id, Default_Ada_Body_Suffix_Id, Slash_Id); new
19909         variables initialized in procedure Initialize.
19910         (Add_To_Buffer): Add two in out parameters to replace global variables
19911         Buffer and Buffer_Last.
19912         (Default_Ada_Spec_Suffix, Default_Body_Spec_Suffix, Slash): New
19913         functions.
19914         Adapt to changes to use new type Project_Tree_Ref and dynamic tables and
19915         hash tables.
19916         (Initialize, Reset, register-Default_Namng-Scheme): Add a new parameter
19917         for the project tree.
19918         (Project_Tree_Data, Project_Tree_Ref, No_Project): Declare types and
19919         constant at the beginning of the package spec, so that they cane be used
19920         in subprograms before their full declarations.
19921         (Standard_Naming_Data): Add defaulted parameter of type Project_Node_Ref
19922         (Empty_Project): Add parameter of type Project_Node_Ref
19923         (Private_Project_Tree_Data): Add component Default_Naming of type
19924         Naming_Data.
19925         (Buffer, Buffer_Last): remove global variables
19926         (Add_To_Buffer): Add two in out parameters to replace global variables
19927         Buffer and Buffer_Last.
19928         (Current_Packages_To_Check): Remove global variable
19929         (Empty_Name): Move to private part
19930         (No-Symbols): Make it a constant
19931         (Private_Project_Tree_Data): New type for the private part of the
19932         project tree data.
19933         (Project_Tree_Data): New type for the data of a project tree
19934         (Project_Tree_Ref): New type to designate a project tree
19935         (Initialize, Reset, register-Default_Namng-Scheme): Add a new parameter
19936         for the project tree.
19937
19938         * prj-attr.ads: Add with Table; needed, as package Prj no longer
19939         imports package Table.
19940
19941         * prj-com.adb: Remove empty, no longer needed body
19942
19943         * prj-com.ads: Move most of the content of this package to package Prj.
19944
19945         * prj-dect.ads, prj-dect.adb (Parse): New parameters In_Tree to
19946         designate the project node tree and Packages_To_Check to replace
19947         global variable Current_Packages_To_Check.
19948         Add new parameters In_Tree and Packages_To_Check to local subprograms,
19949         when needed. Adapt to changes in project manager with project node tree
19950         In_Tree.
19951
19952         * prj-env.ads, prj-env.adb: Add new parameter In_Tree to designate the
19953         project tree to most subprograms. Move tables and hash tables to
19954         private part of package Prj.
19955         Adapt to changes in project manager using project tree In_Tree.
19956
19957         * prj-makr.adb (Tree): New constant to designate the project node tree
19958         Adapt to change in project manager using project node tree Tree
19959
19960         * prj-nmsc.ads, prj-nmsc.adb (Check_Stand_Alone_Library): Correctly
19961         display the Library_Src_Dir and the Library_Dir.
19962         Add new parameter In_Tree to designate the project node tree to most
19963         subprograms. Adapt to changes in the project manager, using project tree
19964         In_Tree.
19965         (Check_Naming_Scheme): Do not alter the casing on platforms where
19966         the casing of file names is not significant.
19967         (Check): Add new parameter In_Tree to designate the
19968
19969         * prj-pars.ads, prj-pars.adb (Parse): Add new parameter In_Tree to
19970         designate the project tree.
19971         Declare a project node tree to call Prj.Part.Parse and Prj.Proc.Process
19972
19973         * prj-part.ads, prj-part.adb (Buffer, Buffer_Last): Global variables,
19974         to replace those that were in the private part of package Prj.
19975         Add new parameter In__Tree to designate the project node tree to most
19976         subprograms. Adapt to change in Prj.Tree with project node tree In_Tree.
19977         (Post_Parse_Context_Clause): When specifying the project node of a with
19978         clause, indicate that it is a limited with only if there is "limited"
19979         in the with clause, not necessarily when In_Limited is True.
19980         (Parse): Add new parameter In_Tree to designate the project node tree
19981
19982         * prj-pp.ads, prj-pp.adb (Pretty_Print): Add new parameter In_Tree to
19983         designate the project node tree. Adapt to change in Prj.Tree with
19984         project node tree In_Tree.
19985
19986         * prj-proc.ads, prj-proc.adb (Recursive_Process): Specify the project
19987         tree In_Tree in the call to function Empty_Process to give its initial
19988         value to the project data Processed_Data.
19989         Add new parameters In_Tree to designate the project tree and
19990         From_Project_Node_Tree to designate the project node tree to several
19991         subprograms. Adapt to change in project manager with project tree
19992         In_Tree and project node tree From_Project_Node_Tree.
19993
19994         * prj-strt.ads, prj-strt.adb (Buffer, Buffer_Last): Global variables,
19995         to replace those that were in the private part of package Prj.
19996         Add new parameter In_Tree to designate the project node tree to most
19997         subprograms. Adapt to change in Prj.Tree with project node tree In_Tree.
19998
19999         * prj-tree.ads, prj-tree.adb: Add new parameter of type
20000         Project_Node_Tree_Ref to most subprograms.
20001         Use this new parameter to store project nodes in the designated project
20002         node tree.
20003         (Project_Node_Tree_Ref): New type to designate a project node tree
20004         (Tree_Private_Part): Change table to dynamic table and hash tables to
20005         dynamic hash tables.
20006
20007         * prj-util.ads, prj-util.adb: Add new parameter In_Tree to designate
20008         the project tree to most subprograms. Adapt to changes in project
20009         manager using project tree In_Tree.
20010
20011         * makegpr.adb (Project_Tree): New constant needed to use project
20012         manager.
20013
20014 2005-03-15  Olivier Hainque  <hainque@adacore.com>
20015
20016         * s-intman-posix.adb (Notify_Exception): Adjust signature, as handler
20017         for sigactions with SA_SIGINFO set. Call
20018         __gnat_adjust_context_for_raise before raising, to perform the
20019         potentially required adjustments to the machine context for the GCC
20020         unwinder.
20021
20022         * raise.h (__gnat_adjust_context_for_raise): New prototype.
20023
20024         * init.c (__gnat_adjust_context_for_raise) HPUX: Initial revision.
20025         Adjust PC by one in the provided machine context.
20026         (__gnat_install_handler) HPUX: Set SA_SIGINFO in the sigaction flags,
20027         so that the handler is passed the context structure to adjust prior to
20028         the raise.
20029         (__gnat_error_handler) HPUX: Adjust the signature to match what an
20030         SA_SIGINFO sigaction should look like. Call
20031         __gnat_adjust_context_for_raise before actually raising.
20032         (__gnat_adjust_context_for_raise): Default noop to help PC
20033         adjustments before raise from signal handlers.
20034         (__gnat_error_handler): Indirectly call a predicate function to
20035         determine if a condition should be resignaled or not.
20036         (__gnat_set_resignal_predicate): User interface to modify the predicate.
20037         (__gnat_default_resignal_p): Default GNAT predicate.
20038
20039 2005-03-15  Doug Rupp  <rupp@adacore.com>
20040
20041         * adaint.c: Prefix #include of VMS system header files with vms/
20042         [VMS] (HOST_EXECUTABLE_SUFFIX, HOST_OBJECT_SUFFIX): Define for VMS.
20043         Do not define a dummy function "convert_addresses" under Darwin,
20044         not needed.
20045
20046         * tb-alvms.c, expect.c: Prefix #include of VMS system header files
20047         with vms/
20048
20049 2005-03-15  Nicolas Setton  <setton@adacore.com>
20050
20051         * tracebak.c: Under Darwin, use the same unwinding mechanisms as under
20052         PPC/AIX.
20053
20054 2005-03-15  Robert Dewar  <dewar@adacore.com>
20055
20056         * a-reatim.ads, a-reatim.adb: Add functions Minutes and Seconds for
20057         AI-386.
20058
20059         * a-retide.ads: Minor comment changes
20060
20061 2005-03-15  Robert Dewar  <dewar@adacore.com>
20062
20063         * a-stzunb.adb, a-stzunb.adb a-stzunb.ads, a-stzunb.ads,
20064         a-stwiun.ads, a-stwiun.adb, a-strunb.ads, a-strunb.adb: Move
20065         Realloc_For_Chunk to private part of package.
20066         New subprograms for AI-301
20067
20068         * a-szuzti.adb, a-suteio.adb, a-swuwti.adb: Improve efficiency of
20069         Get_Line procedure.
20070         Avoid unnecessary use of Get/Set_Wide_String
20071
20072 2005-03-15  Robert Dewar  <dewar@adacore.com>
20073
20074         PR ada/13470
20075         * a-stunau.ads, a-stunau.adb:
20076         Change interface to allow efficient (and correct) implementation
20077         The previous changes to allow extra space in unbounded strings had
20078         left this interface a bit broken.
20079
20080         * a-suteio.adb: Avoid unnecessary use of Get/Set_String
20081
20082         * g-spipat.ads, g-spipat.adb: New interface for Get_String
20083         Minor reformatting (function specs)
20084
20085         * g-spitbo.adb: New interface for Get_String
20086
20087         * g-spitbo.ads: Minor reformatting
20088
20089         * a-swunau.ads, a-swunau.adb: New interface for Get_Wide_String
20090
20091         * a-szunau.ads, a-szunau.adb: New interface for Get_Wide_Wide_String
20092
20093 2005-03-15  Javier Miranda  <miranda@adacore.com>
20094             Robert Dewar  <dewar@adacore.com>
20095             Thomas Quinot  <quinot@adacore.com>
20096             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20097
20098         * atree.ads, atree.adb: Add support for Elist24 field
20099
20100         * atree.h: Fix wrong definition of Field27
20101         Add support for Elist16 field
20102         Add support for Elist24 field
20103
20104         * einfo.ads, einfo.adb (Abstract_Interfaces,
20105         Set_Abstract_Interfaces): New subprograms.
20106         (Abstract_Interface_Alias, Set_Abstract_Interface_Alias): New
20107         subprograms.
20108         (Access_Disp_Table, Set_Access_Disp_Table): Modified to handle a list of
20109         entities rather than a single node.
20110         (Is_Interface, Set_Is_Interface): New subprogram
20111         (First_Tag_Component): New syntesized attribute
20112         (Next_Tag_Component): New synthesized attribute
20113         (Write_Entity_Flags): Upgraded to write Is_Interface
20114         (Write_Field24_Name): Upgraded to write Abstract_Interfaces
20115         (Write_Field25_Name): Upgraded to write Abstract_Interface_Alias
20116         (Task_Body_Procedure): New subprogram to read this attribute.
20117         (Set_Task_Body_Procedure): New subprogram to set this attribute.
20118         (Has_Controlled_Component): Now applies to all entities.
20119         This is only a documentation change, since it always worked to apply
20120         this to other than composite types (yielding false), but now this is
20121         official.
20122         Update documentation on Must_Be_Byte_Aligned for new spec
20123
20124         * tbuild.adb, exp_dist.adb, exp_disp.adb, exp_ch3.ads, exp_ch3.adb,
20125         exp_attr.adb, exp_aggr.adb, exp_ch4.adb, exp_ch5.adb: Upgrade all the
20126         uses of the Access_Disp_Table attribute to reference the first dispatch
20127         table associated with a tagged type. As
20128         part of the implementation of abstract interface types,
20129         Access_Disp_Table has been redefined to contain a list of dispatch
20130         tables (rather than a single dispatch table).
20131         Similarly, upgrade all the references to Tag_Component by the
20132         new attribute First_Tag_Component.
20133         (Find_Inherited_TSS): Moved to exp_tss.
20134         Clean up test in Expand_N_Object_Declaration for cases
20135         where we need to do a separate assignment of the initial value.
20136         (Expand_N_Object_Declaration): If the expression in the
20137         declaration of a tagged type is an aggregate, no need to generate an
20138         additional tag assignment.
20139         (Freeze_Type): Now a function that returns True if the N_Freeze_Entity
20140         is to be deleted.
20141         Bit packed array ops are only called if operands are known to be
20142         aligned.
20143         (Component_Equality): When returning an N_Raise_Program_Error statement,
20144         ensure that its Etype is set to Empty to avoid confusing GIGI (which
20145         expects that only expressions have a bona fide type).
20146         (Make_Tag_Ctrl_Assignment): Use Build_Actual_Subtype to correctly
20147         determine the amount of data to be copied.
20148
20149         * par.adb (P_Interface_Type_Definition): New subprogram that parses the
20150         new syntax rule of Ada 2005 interfaces (for AI-251 and AI-345):
20151             INTERFACE_TYPE_DEFINITION ::=
20152               [limited | task | protected | synchronized] interface
20153                 [AND interface_list]
20154
20155         * par-ch3.adb (P_Type_Declaration): Modified to give support to
20156         interfaces.
20157         (P_Derived_Type_Def_Or_Private_Ext_Decl): Modified to give support to
20158         interfaces.
20159         (P_Interface_Type_Definition): New subprogram that parses the new
20160         syntax rule of Ada 2005 interfaces
20161         (P_Identifier_Declarations): fix two occurrences of 'RENAMES' in error
20162         messages by the correct RENAMES (quotes removed).
20163
20164         * sem_prag.adb: Upgrade all the references to Tag_Component by the new
20165         attribute First_Tag_Component.
20166
20167         * sinfo.ads, sinfo.adb: Remove OK_For_Stream flag, not used, not needed
20168         (Interface_List, Set_Interface_List): New subprograms.
20169         (Interface_Present, Set_Interface_Present): New subprograms.
20170         (Limited_Present, Set_Limited_Present): Available also in derived
20171         type definition nodes.
20172         (Protected_Present, Set_Protected_Present): Available also in
20173         record type definition and
20174         derived type definition nodes.
20175         (Synchronized_Present, Set_Synchronized_Present): New subprograms.
20176         (Task_Present, Set_Task_Present): New subprogram.
20177         (Task_Body_Procedure): Removed.
20178         (Set_Task_Body_Procedure): Removed.
20179         These subprogram have been removed because the attribute
20180         Task_Body_Procedure has been moved to the corresponding task type
20181         or task subtype entity to leave a field free to store the list
20182         of interfaces implemented by a task (for AI-345)
20183         Add Expression field to N_Raise_Statement node for Ada 2005 AI-361
20184         (Null_Exclusion_Present): Change to Flag11, to avoid conflict with
20185         expression flag Do_Range_Check
20186         (Exception_Junk): Change to Flag7 to accomodate above change
20187         (Box_Present, Default_Name, Specification, Set_Box_Present,
20188         Set_Default_Name, Set_Specification): Expand the expression
20189         "X in N_Formal_Subprogram_Declaration" into the corresponding
20190         two comparisons. Required to use the csinfo tool.
20191
20192         * exp_ch11.adb (Expand_N_Raise_Statement): Deal with case where
20193         "with string" given.
20194
20195         * sem_ch11.adb (Analyze_Raise_Statement): Handle case where string
20196         expression given.
20197
20198         * par-ch11.adb (P_Raise_Statement): Recognize with string expression
20199         in 2005 mode
20200
20201         * exp_ch9.adb (Build_Task_Proc_Specification): Modified to use entity
20202         attribute Task_Body_Procedure rather than the old semantic field that
20203         was available in the task_type_declaration node.
20204
20205         * par-ch12.adb (P_Formal_Type_Definition): Modified to handle formal
20206         interface type definitions.
20207         (P_Formal_Derived_Type_Definition): Modified to handle the list of
20208         interfaces.
20209
20210         * par-ch9.adb (P_Task): Modified to handle the list of interfaces in a
20211         task type declaration.
20212         (P_Protected): Modified to handle the list of interfaces in a
20213         protected type declaration.
20214
20215 2005-03-15  Doug Rupp  <rupp@adacore.com>
20216             Vincent Celier  <celier@adacore.com>
20217
20218         * bindgen.adb (Gen_Main_C): Change WBI __posix_exit to decc$posix_exit
20219         (Gen_Output_File_C): Likewise.
20220         (Gen_Main_C): Issue #include <stdlib.h> to avoid warning
20221
20222 2005-03-15  Thomas Quinot  <quinot@adacore.com>
20223
20224         * checks.adb (Get_E_First_Or_Last): When the expression being retrieved
20225         is an N_Raise_Constraint_Error node, create a new copy of it without
20226         going through a call to Duplicate_Subexpr.
20227
20228 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
20229             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20230             Nicolas Setton  <setton@adacore.com>
20231             Ed Schonberg  <schonberg@adacore.com>
20232
20233         PR ada/19900
20234         PR ada/19408
20235         PR ada/19140
20236         PR ada/20255
20237         * decl.c (gnat_to_gnu_field): Reject aliased components with a
20238         representation clause that prescribes a size not equal to the rounded
20239         size of their types.
20240         (gnat_to_gnu_entity, case E_Component): Always look at
20241         Original_Record_Component if Present and not the entity.
20242         (gnat_to_gnu_entity, case E_Record_Subtype): Rework handling of subtypes
20243         of tagged extension types by not making field for components that are
20244         inside the parent.
20245         (gnat_to_gnu_entity) <E_Record_Type>: Fix typo in the alignment formula
20246         (gnat_to_gnu_entity) <E_Variable>: Do not convert again the
20247         expression to the type of the object when the object is constant.
20248         Reverse defer_debug_incomplete_list before traversing it, so that trees
20249         are processed in the order at which they were added to the list. This
20250         order is important when using the stabs debug format.
20251         If we are deferring the output of debug information, also defer this
20252         output for a function return type.
20253         When adding fields to a record, prevent emitting debug information
20254         for incomplete records, emit the information only when the record is
20255         complete.
20256         (components_to_record): New parameter defer_debug.
20257         (gnat_to_gnu_entity, case E_Array_Subtype): Call copy_alias_set.
20258         (gnat_to_gnu_field_decl): New function.
20259         (substitution_list, annotate_rep): Call it.
20260         (gnat_to_gnu_entity, case E_Record_Subtype): Likewise.
20261         (gnat_to_gnu_entity, case E_Record_Type): Likewise.
20262         No longer update discriminants to not be a COMPONENT_REF.
20263         (copy_alias_set): Strip padding from input type; also handle
20264         unconstrained arrays properly.
20265
20266         * gigi.h (write_record_type_debug_info): New function.
20267         Convert to use ANSI-style prototypes. Remove unused
20268         declarations for emit_stack_check, elab_all_gnat and
20269         set_second_error_entity.
20270         (gnat_to_gnu_field_decl): New decl.
20271
20272         * utils.c (write_record_type_debug_info): New function.
20273         (finish_record_type): Delegate generation of debug information to
20274         write_record_type_debug_info.
20275         (update_pointer_to): Remove unneeded calls to rest_of_decl_compilation.
20276         (update_pointer_to): Fix pasto.
20277         (convert) <UNION_TYPE>: Accept slight type variations when
20278         converting to an unchecked union type.
20279
20280         * exp_ch13.adb (Expand_N_Freeze_Entity): If Freeze_Type returns True,
20281         replace the N_Freeze_Entity with a null statement.
20282
20283         * freeze.adb (Freeze_Expression): If the freeze nodes are generated
20284         within a constrained subcomponent of an enclosing record, place the
20285         freeze nodes in the scope stack entry for the enclosing record.
20286         (Undelay_Type): New Subprogram.
20287         (Set_Small_Size): Pass T, the type to modify; all callers changed.
20288         (Freeze_Entity, Freeze_Record_Type): Change the way we handle types
20289         within records; allow them to have freeze nodes if their base types
20290         aren't frozen yet.
20291
20292         * exp_util.adb (Remove_Side_Effects): Properly test for
20293         Expansion_Delayed and handle case when it's inside an
20294         N_Qualified_Expression.
20295
20296         * sem_ch3.adb (Derived_Type_Declaration): New predicate
20297         Comes_From_Generic, to recognize accurately that the parent type in a
20298         derived type declaration can be traced back to a formal type, because
20299         it is one or is derived from one, or because its completion is derived
20300         from one.
20301         (Constrain_Component_Type): If component comes from source and has no
20302         explicit constraint, no need to constrain in in a subtype of the
20303         enclosing record.
20304         (Constrain_Access, Constrain_Array): Allow itypes to be delayed.
20305         Minor change to propagate Is_Ada_2005 flag
20306
20307         * trans.c (gnat_to_gnu, case N_Aggregate): Verify that
20308         Expansion_Delayed is False.
20309         (assoc_to_constructor): Ignore fields that have a
20310         Corresponding_Discriminant.
20311         (gnat_to_gnu) <N_Return_Statement>: Restructure. If the
20312         function returns "by target", dereference the target pointer using the
20313         type of the actual return value.
20314         <all>: Be prepared for a null gnu_result.
20315         (processed_inline_subprograms): Check flag_really_no_inline
20316         instead of flag_no_inline.
20317         (set_second_error_entity): Remove unused function.
20318         (gnat_to_gnu, case N_Selected_Component): Call
20319         gnat_to_gnu_field_decl.
20320         (assoc_to_constructor): Likewise.
20321
20322 2005-03-15  Robert Dewar  <dewar@adacore.com>
20323             Ed Schonberg  <schonberg@adacore.com>
20324             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20325
20326         * exp_pakd.adb (Create_Packed_Array_Type): Do not set
20327         Must_Be_Byte_Aligned for cases where we do not need to use a
20328         System.Pack_nn unit.
20329
20330         * exp_ch6.adb (Expand_Call): Call Expand_Actuals for functions as well
20331         as procedures.
20332         Needed now that we do some processing for IN parameters as well. This
20333         may well fix some unrelated errors.
20334         (Expand_Call): Handle case of unaligned objects (in particular those
20335         that come from packed arrays).
20336         (Expand_Inlined_Call): If the subprogram is a renaming as body, and the
20337         renamed entity is an inherited operation, re-expand the call using the
20338         original operation, which is the one to call.
20339         Detect attempt to inline parameterless recursive subprogram.
20340         (Represented_As_Scalar): Fix to work properly with private types
20341         (Is_Possibly_Unaligned_Object): Major rewrite to get a much more
20342         accurate estimate. Yields True in far fewer cases than before,
20343         improving the quality of code that depends on this test.
20344
20345         * exp_util.adb (Kill_Dead_Code): For a package declaration, iterate
20346         over both visible and private declarations to remove them from tree,
20347         and mark subprograms declared in package as eliminated, to prevent
20348         spurious use in subsequent compilation of generic units in the context.
20349
20350         * exp_util.ads: Minor cleanup in variable names
20351
20352         * sem_eval.ads, sem_eval.adb: Minor reformatting
20353         (Compile_Time_Known_Bounds): New function
20354
20355 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
20356
20357         * exp_ch7.adb (Convert_View): Use base types of underlying types when
20358         determining whether an unchecked conversion is needed for the argument
20359         of an initialization call.
20360
20361 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
20362
20363         * exp_intr.adb (Expand_Unc_Conversion): As a target type, use the type
20364         that appears in the instantiation rather than the internal subtype
20365         generated in the wrapper package, to avoid anomalies in gigi when the
20366         target is derived from a private type whose full view is an access type.
20367
20368 2005-03-15  Robert Dewar  <dewar@adacore.com>
20369
20370         * exp_smem.adb, sem_attr.adb: Remove OK_For_Stream flag, not used,
20371         not needed.
20372         Add documentation to replace the use of this flag
20373         Fix kludge for Maximum_Alignment on x86 so that it does not apply to
20374         the x86_64.
20375
20376 2005-03-15  Thomas Quinot  <quinot@adacore.com>
20377
20378         * exp_tss.ads, exp_tss.adb (Find_Inherited_TSS): New subprogram, moved
20379         here from exp_attr so it can be shared between exp_attr and exp_dist.
20380         (TSS_Names): Renamed from OK_TSS_Names. This array contains the list of
20381         all TSS names, not a subset thereof, and the previous name introduced
20382         an unnecessarily confusion that a distinction might exist between
20383         "OK" TSS names and some "not OK" TSS names.
20384
20385 2005-03-15  Doug Rupp  <rupp@adacore.com>
20386
20387         * gnatchop.adb (Locate_Executable): Normalize the possibly VMS style
20388         Command_Name.
20389
20390 2005-03-15  Pascal Obry  <obry@adacore.com>
20391             Eric Botcazou  <ebotcazou@adacore.com>
20392
20393         PR ada/20226
20394         PR ada/20344
20395         * init.c (__gnat_initialize): Do not call __gnat_install_SEH_handler()
20396         when IN_RTS. This is to work around a bootstrap path problem.
20397
20398         * misc.c (gnat_parse_file): Create a SEH (Structured Exception Handler)
20399         table and pass it to __gnat_install_SEH_handler().
20400         (gnat_handle_option): Accept OPT_fRTS_, not OPT_fRTS.
20401
20402         * lang.opt: Fix specification of -fRTS=.
20403
20404 2005-03-15  Doug Rupp  <rupp@adacore.com>
20405             Bernard Banner  <banner@adacore.com>
20406             Vincent Celier  <celier@adacore.com>
20407             Arnaud Charlet  <charlet@adacore.com>
20408
20409         PR ada/6852
20410         This change works fine when gnatlib is built from the gcc directory,
20411         but does not work when using the libada Makefile, since GCC_FOR_TARGET
20412         is not passed to ada/Makefile.in, so more work is needed by a
20413         Makefile/configure expert.
20414
20415         * Makefile.in(gnatlib): Use $(GCC_FOR_TARGET) for compiling library.
20416         set GMEM_LIB on ia64 linux to add optional support for gnatmem.
20417         Setup gnatlink switch -M for x86_64 linux, as it is already setup
20418         for Linux x86.
20419         (gnatlib-shared-default): Use GNATLIBCFLAGS as well.
20420         Run ranlib on libgccprefix.a
20421         Define PREFIX_OBJS for Darwin, to build libgccprefix.
20422         (ADA_INCLUDE_SRCS): Split Ada packages.
20423
20424 2005-03-15  Robert Dewar  <dewar@adacore.com>
20425
20426         * Make-lang.in: Add g-utf_32 unit for gnat and gnatbind
20427
20428         * impunit.adb: Add GNAT.UTF_32
20429
20430         * scng.adb: Use gnat.utf_32 instead of widechar for utf_32 stuff
20431
20432         * widechar.ads, widechar.adb: Remove redundant UTF-32 tables (scng
20433         now uses GNAT.UTF_32).
20434
20435         * g-utf_32.ads, g-utf_32.adb: This is a new unit with full
20436         capabilities for categorizing characters using Unicode categories
20437
20438 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
20439
20440         * sem_ch10.adb (Build_Ancestor_Name): If the ancestor is an
20441         instantiation that has been rewritten as a package body, retrieve spec
20442         to generate proper name for implicit_with_clause.
20443         (Install_Parents): Recognize a parent that is an instantiation but has
20444         been rewritten as a package declaration during analysis.
20445
20446 2005-03-15  Javier Miranda  <miranda@adacore.com>
20447             Ed Schonberg  <schonberg@adacore.com>
20448
20449         * sem_ch12.adb (Instantiate_Object): If the analysis of the actual
20450         parameter reported some error we immediately return. This improves the
20451         behaviour of the frontend in case of errors.
20452         (Install_Parent, Remove_Parent): Introduce new flag
20453         Parent_Unit_Visible, to preserve the proper visibility of the ultimate
20454         ancestor of a generic child unit, when the child is being instantiated.
20455         (Inline_Instance_Body): If we are compiling the private
20456         part or the body of a child unit, restore the proper visibility of the
20457         parents after compiling the instance body.
20458
20459 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
20460             Javier Miranda  <miranda@adacore.com>
20461
20462         PR ada/15608
20463         * sem_util.adb (Get_Task_Body_Procedure): Type may be the completion
20464         of a private type, in which case it is underlying_type that denotes
20465         the proper task. Also modified to use the new entity attribute
20466         that is directly available in the task type and task subtype entities
20467         (Build_Actual_Subtype_Of_Component): Handle properly multidimensional
20468         arrays when other dimensions than the first are constrained by
20469         discriminants of an enclosing record.
20470         (Insert_Explicit_Dereference): If the prefix is an indexed component or
20471         a combination of indexed and selected components, find ultimate entity
20472         and generate the appropriate reference for it, to suppress spurious
20473         warnings.
20474         (Note_Possible_Modification): If an entity name has no entity, return.
20475         (Is_Variable): A function call never denotes a variable.
20476         (Requires_Transient_Scope): For record types, recurse only on
20477         components, not on internal subtypes that may have been generated for
20478         constrained components.
20479
20480 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
20481
20482         * sem_ch4.adb (Analyze_Concatenation): Do not consider operators marked
20483         Eliminated as candidates for resolution. Both efficient, and avoids
20484         anomalies with operators declared in deleted code.
20485         (Process_Implicit_Dereference_Prefix): Use this procedure whenever
20486         expansion is disabled (as when compiling a generic) to prevent spurious
20487         warnings on prefixes of selected components.
20488
20489 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
20490
20491         * sem_ch6.adb (Is_Private_Declaration): Verify that the declaration is
20492         attached to a list before checking whether it appears in the private
20493         declarations of the current package.
20494         (Make_Inequality_Operator): Insert declaration in proper declarative
20495         list rather than just setting the Parent field, so that
20496         Is_Private_Declaration can handle it properly.
20497
20498 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
20499
20500         * sem_ch8.adb (Analyze_Subprogram_Renaming): In a generic, if this is
20501         a renaming a body, check that the renamed subprogram in not intrinsic.
20502         (Find_Direct_Name): If several use_visible entities hide
20503         each other, and the context is a predefined file compiled through
20504         rtsfind, keep only the entity that comes from a predefined file.
20505
20506 2005-03-15  Geert Bosch  <bosch@adacore.com>
20507
20508         * s-fatgen.adb (Valid): Extend special exceptions to account for long
20509         long float padding to also cover AMD64 and IA64.
20510
20511 2005-03-15  Gary Dismukes  <dismukes@adacore.com>
20512
20513         * s-imgwch.adb: Add with and use of Interfaces.
20514         (Img_Wide_Character): Change type of Val to Unsigned_16.
20515         (Img_Wide_Wide_Character): Change type of Val to Unsigned_32.
20516
20517 2005-03-15  Matthew Gingell  <gingell@adacore.com>
20518
20519         * sysdep.c: Implement __gnat_localtime_r as call to localtime_r on AIX.
20520
20521 2005-03-15  Robert Dewar  <dewar@adacore.com>
20522
20523         * usage.adb: Add missing lines for -gnat95 and -gnat05 switches
20524
20525         * sem_ch7.adb: Minor change to propagate Is_Ada_2005 flag
20526
20527         * i-c.adb: Clarify that AI-258 behavior is also intended in Ada 95
20528
20529 2005-03-15  Robert Dewar  <dewar@adacore.com>
20530
20531         * s-bitops.adb, s-bitops.ads,
20532         s-taprop-os2.adb, s-intman-vms.ads, s-intman-vxworks.ads,
20533         s-taprop-vxworks.adb, a-caldel.ads, a-calend.adb, a-tasatt.adb,
20534         tbuild.ads, s-finimp.adb, s-imgwch.adb, s-intman.ads, s-intman.ads,
20535         s-memory.adb, s-soflin.ads, s-taasde.ads, s-taprob.adb, s-taprop.ads,
20536         s-taprop.ads, s-tasini.adb, s-tasini.ads, s-tasini.ads, s-tasini.ads,
20537         s-taskin.ads, s-tasren.adb, s-tassta.adb, s-tassta.ads, s-tassta.ads,
20538         s-tasuti.ads, s-tataat.ads, s-tataat.ads, s-tataat.ads, s-tataat.ads,
20539         s-tpoben.adb, s-tpoben.adb, s-tpobop.ads: Update comments. Minor
20540         reformatting.
20541
20542 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
20543
20544         * utils2.c (build_binary_op): Fix typo.
20545
20546 2005-03-15  Doug Rupp  <rupp@adacore.com>
20547
20548         * s-crtl.ads (popen,pclose): New imports.
20549
20550 2005-03-15  Cyrille Comar  <comar@adacore.com>
20551
20552         * comperr.adb (Compiler_Abort): remove references to obsolete
20553         procedures in the bug boxes for various GNAT builds.
20554
20555 2005-03-15  Vincent Celier  <celier@adacore.com>
20556
20557         * snames.ads, snames.adb: Save as Unix text file, not as DOS text file
20558
20559 2005-03-15  Geert Bosch  <bosch@adacore.com>
20560             Arnaud Charlet  <charlet@adacore.com>
20561             Robert Dewar  <dewar@adacore.com>
20562             Cyrille Comar  <comar@adacore.com>
20563             Sergey Rybin  <rybin@adacore.com>
20564
20565         * gnat_ugn.texi: Remove extended inline assembly example, as it was far
20566         too specific and long-winded to be appropriate for the GNAT User's
20567         Guide.
20568         Warn about use of GCC switches not documented in the GNAT User's Guide,
20569         as these may cause generated code to not conform to Ada semantics.
20570         Remove mention of -gdwarf-2 for sparc64, since this is now the default.
20571         Add documentation for -gnat95 and -gnat05 switches
20572         Remove paragraph documenting obsolete way to refer to third party
20573         libraries.
20574         Add a few references to Ada_05 that were missing.
20575         Update documentation on -gnatZ/-gnatL.
20576         Document limitation when using -m64 under Solaris.
20577         Change the "Name Casing" subsection of the pretty-printer section
20578         according to the changes in the dictionary processing.
20579
20580         * gnat_rm.texi: Document the Ada_05 pragma.
20581         Section on record representation clauses describes the new more
20582         relaxed rules about placement of large packed bit array components.
20583         Add documentation of GNAT.UTF_32
20584
20585 2005-03-12  Daniel Berlin <dberlin@dberlin.org>
20586
20587         * misc.c (gnat_post_options): Turn off structural
20588         aliasing for now.
20589
20590 2005-03-08  Laurent Guerby <laurent@guerby.net>
20591
20592         * system-linux-sparc.ads: Fix typo in previous commit.
20593
20594 2005-03-07  James A. Morrison <phython@gcc.gnu.org>
20595             Laurent Guerby <laurent@guerby.net>
20596
20597         PR ada/20035
20598         * system-linux-sparc.ads: New.
20599         * Makefile.in: Add sparc linux entry.
20600
20601 2005-02-27  Danny Smith  <dannysmith@users.sourceforge.net>
20602
20603         * seh_init.c (__gnat_SEH_error_handler): Mark third and fourth
20604         parameters as unused.
20605
20606 2005-02-26  Nathanael Nerode  <neroden@gcc.gnu.org>
20607         Partial merge from libada-gnattools-branch:
20608
20609         2004-12-02  Nathanael Nerode  <neroden@gcc.gnu.org>
20610         * Makefile.in: Move gnattools{1,1re,2,3,4} and corresponding flags
20611         into code in gnattools/Makefile.in.  Remove direct dependencies on
20612         stamp-tools by tools clauses.
20613         2004-12-02  Nathanael Nerode  <neroden@gcc.gnu.org>
20614         * config-lang.in: Add gnattools to $lang_dirs.
20615
20616 2005-02-13  Andrew Pinski  <pinskia@physics.uc.edu>
20617
20618         PR ada/19942
20619         * utils.c (gnat_type_for_mode): Return null instead of ICE because
20620         we asked for an unknown mode.
20621
20622 2005-02-12  Richard Henderson  <rth@redhat.com>
20623
20624         * utils.c (gnat_type_for_mode): Return NULL for COMPLEX modes;
20625         validate SCALAR_INT_MODE_P before calling gnat_type_for_size.
20626
20627 2005-02-10  Andreas Jaeger  <aj@suse.de>
20628
20629         * init.c (__gnat_initialize): Mark parameter as unused.
20630
20631 2005-02-09  Doug Rupp  <rupp@adacore.com>
20632
20633         * g-expect-vms.adb (Non_Blocking_Spawn): Separate out.
20634         * g-enblsp-vms-alpha.adb g-enblsp-vms-ia64.adb: New subunits.
20635
20636 2005-02-09  Doug Rupp  <rupp@adacore.com>
20637
20638         * gnatchop.adb (dup, dup2),
20639         g-dirope.adb (closedir, opendir, rmdir): Reference via System.CRTL.
20640
20641         * gnatlbr.adb (mkdir),
20642         mlib-tgt-vms-ia64.adb (popen, plose):  Import with decc$ prefix.
20643
20644         * s-crtl.ads (closdir, dup, dup2, opendir, rmdir): Import.
20645
20646 2005-02-09  Doug Rupp  <rupp@adacore.com>
20647
20648         * s-tpopde-vms.adb: Add pragma Warnings (Off) for Task_Id conversions.
20649
20650 2005-02-09  Robert Dewar  <dewar@adacore.com>
20651             Thomas Quinot  <quinot@adacore.com>
20652             Javier Miranda  <miranda@adacore.com>
20653             Pascal Obry  <obry@adacore.com>
20654             Ed Schonberg  <schonberg@adacore.com>
20655             Doug Rupp  <rupp@adacore.com>
20656             Gary Dismukes  <dismukes@adacore.com>
20657             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20658
20659         * g-zstspl.ads: New file.
20660
20661         * a-chahan.ads, a-chahan.adb: Add declarations from AI-285
20662
20663         * a-string.ads: Add pragma Ada_05 for wide_wide_space to get warning in
20664         Ada 95 mode
20665         Add definition of Wide_Wide_Space for AI-285
20666
20667         * impunit.ads, impunit.adb, sem_ch10.adb: Complete rewrite and new
20668         interface (to support Ada 95 and Ada 2005 units).
20669         Add Unbounded_IO files
20670         Add entries for Wide_Wide packages for AI-285
20671         Add list of containers packages to Ada 2005 unit list
20672
20673         * a-swuwti.ads, a-swuwti.adb, a-suteio.ads, a-suteio.adb: Updates to
20674         support new Unbounded_IO package cleanly.
20675
20676         * g-utf_32.ads, g-utf_32.adb: New files.
20677
20678         * Makefile.rtl: Add entry for g-utf_32
20679         Add new files for Unbounded_IO
20680         Adjust make file for new AI-285 wide wide packages
20681         Add AI-302 containers to the run time.
20682
20683         * a-stwibo.adb, a-stwibo.ads, a-stwisu.adb, a-stwisu.ads,
20684         a-strbou.ads, a-strbou.adb, a-strsup.ads, a-strsup.adb: New
20685         subprograms for AI-301.
20686
20687         * a-stwiun.adb, a-stwiun.ads: Minor reformatting.
20688
20689         * a-stunau.ads: Minor comment correction
20690
20691         * rtsfind.ads, rtsfind.adb: Add definitions for Wide_Wide attributes
20692         etc.
20693         Also extend Text_IO_Kludge to support Wide_Wide_Text_IO
20694         (Check_RPC): Update to match changes in expanded code.
20695         Clean up unused entity.
20696
20697         * exp_ch3.ads, exp_ch3.adb: Fix various places where Wide_Wide_String
20698         was not taken into account.
20699         This includes proper initialization with Normalize_Scalars.
20700         (Get_Simple_Init_Val): Major rewrite for initialize scalars and
20701         normalize scalars cases (particularly the latter) to do a better job
20702         of finding invalid representations.
20703
20704         * s-scaval.ads, s-scaval.adb: Add values for zero invalid values
20705
20706         * s-strops.ads, s-strops.adb: Remove string normalize routines, never
20707         used
20708
20709         * exp_dist.adb: Add support for wide wide character type
20710         (Expand_Receiving_Stubs_Bodies): For a package declaration that has a
20711         private part, generate stub bodies at the end of the private part,
20712         not the visible part.
20713         (Add_RACW_Primitive_Operations_And_Bodies): Add last missing code for
20714         PolyORB support.
20715         (Add_Obj_RPC_Receiver_Completion): Add PCS-specific subprograms and
20716         generic wrapper to execute final processing after completing the
20717         expansion of the RPC receiver for an RACW.
20718
20719         * snames.h, snames.ads, snames.adb: Add definitions for wide_wide
20720         packages and attributes.
20721         (Preset_Names): Addition of the new reserved words of Ada 2005,
20722         that is interface, overriding and synchronized.
20723         (Get_Pragma_Id): Give support to the use of the new reserved word
20724         "interface" as a pragma name.
20725         (Is_Pragma_Name): Give support to the use of the new reserved word
20726         "interface" as a pragma name.
20727         (Preset_Names): Add stream_size string for the Stream_Size Ada2005
20728         attribute implementation.
20729
20730         * exp_attr.adb (Expand_Attribute_Reference): Do not apply validity
20731         checks to entities that are output parameters of Asm operations.
20732         Handle the Stream_Size attribute.
20733         Add implementation of Wide_Wide_Value, Wide_Wide_Image, Wide_Wide_Width
20734
20735         * exp_imgv.ads, exp_imgv.adb: Add support for wide wide character type
20736
20737         * sem_attr.adb (Eval_Attribute): Raise compile-time constraint error
20738         for second parameter being 0.0.
20739         Add support for wide wide character type.
20740         (Analyze_Attribute, Eval_Attribute): Handle the Stream_Size attribute.
20741
20742         * s-valwch.adb, s-valwch.ads, s-imgwch.ads, s-imgwch.adb,
20743         s-wchstw.ads, s-wchstw.adb, s-wchwts.adb, s-wchwts.ads,
20744         s-widwch.adb, s-widwch.ads, s-wwdcha.adb, s-wwdcha.ads,
20745         s-wwdenu.adb, s-wwdenu.ads, s-wwdwch.adb, s-wwdwch.ads: Add support
20746         for wide wide character cases.
20747
20748         * cstand.adb: Create entities for Wide_Wide_Character and
20749         Wide_Wide_String.
20750
20751         * i-c.ads, i-c.adb: Fix not raising CE for null wide strings in
20752         accordance with AI-258.
20753         Add new declarations for 16/32 bit C character types (Part of AI285)
20754
20755         * einfo.ads, einfo.adb (Is_Obsolescent, Is_Ada_2005): New flag
20756         (Obsolescent_Warning): New field
20757         (Rep_Clause): New local subprogram used to share code. Returns the rep
20758         clause for which the name is given in parameter.
20759         (Has_Stream_Size_Clause): New routine.
20760         (Stream_Size_Clause): Idem. Implementation is based on Rep_Clause.
20761         (Address_Clause): Implementation is now using Rep_Clause.
20762         (Alignment_Clause): Idem.
20763         (Size_Clause): Idem.
20764
20765         * lib-xref.adb (Generate_Reference): Test for reference to Ada 2005
20766         entity in non-Ada 2005 mode and generate warning.
20767
20768         * par-prag.adb: Add handling of one argument form for pragma Ada_05.
20769         (Prag): Code cleanup. Remove old gnat pragma "overriding"
20770
20771         * sem_prag.adb: Add handling of one argument form for pragma Ada_05
20772         (Analyze_Pragma, case Elaborate, Elaborate_All): Do not disable warnings
20773         on the named unit if the pragma is not in the current compilation unit,
20774         so that elaboration calls in the current unit can set up an elaboration
20775         dependency on the named unit, as needed.
20776         (Analyze_Pragma, case Obsolescent): Allow pragma to be used for library
20777         subprogram as well as for subprograms declared within a package.
20778         (Analyze_Pragma, Sig_Flags): Code cleanup. Remove support for the GNAT
20779         pragma overriding.
20780
20781         * krunch.ads, krunch.adb: Add special handling of Wide_Wide (krunched
20782         to z) to avoid some instances of duplication for Wide_Wide packages.
20783
20784         * namet.ads, namet.adb: Implement encoding (WWhhhhhhhh) for wide wide
20785         characters.
20786
20787         * scn.adb: Char_Literal_Value field is now a Uint
20788
20789         * scng.adb: Significant rewrite to handle new Ada 2005 features
20790         allowing wide and wide wide characters in program text, e.g. for
20791         identifiers, as described in AI-285.
20792         (Set_Reserved): New procedure, makes setting up keywords cleaner.
20793         (Initialize_Scanner): Register the new reserved words of Ada 2005.
20794         (Scan): Give support to the new reserved words.
20795
20796         * par-ch2.adb (P_Identifier): Compiling in Ada95 mode, generate a
20797         warning notifying that interface, overriding, and synchronized are
20798         new reserved words.
20799         (P_Pragma): Allow the use of the new reserved word "interface" as
20800         a pragma name.
20801
20802         * gnatls.adb, gnatbind.adb,
20803         ali-util.adb, binde.adb, ali.ads, ali.adb: Code cleanup. Rename
20804         identifiers named "interface" to "SAL_Interface".
20805
20806         * bindgen.adb (Gen_Main_Ada): Add support for the new SEH
20807         (Structured Exception handling).
20808         (Gen_Main_C): Idem.
20809
20810         * bindgen.adb:
20811         (Gen_Main_Ada): Set the default exit code if specified.
20812         (Gen_Main_C): Likewise.
20813         Part of *DC20-006.
20814         (Gen_Output_File_C): Remove redundant output of gnat_exit_status.
20815         Code cleanup. Rename identifiers named "interface" to "SAL_Interface"
20816
20817         * switch-b.adb, bindusg.adb, opt.ads, vms_data.ads: Add handling of
20818         new -Xnnn switch.
20819
20820         * mlib-prj.adb, mlib.adb: Code cleanup. Rename one identifier that
20821         has a collision with the new Ada 2005 "interface" reserved word.
20822
20823         * par-ch3.adb (P_Defining_Identifier): Compiling in Ada95 mode,
20824         generate a warning notifying that interface, overriding, and
20825         synchronized are new reserved words.
20826
20827         * scans.ads (Token_Type): Addition of the tokens corresponding to the
20828         new reserved words of Ada 2005: Tok_Interface, Tok_Overriding
20829         and Tok_Synchronized.
20830
20831         * sem_res.adb (Resolve_Actuals): Change error messages to refer to
20832         "dispatching" rather than "primitive" operations, since dispatching
20833         calls are now allowed to abstract formal subprograms (which are not
20834         primitive).
20835         Char_Literal_Value field is now a Uint
20836         (Resolve_Slice): If the prefix is an access to an unconstrained array,
20837         compute the actual subtype of the designated object to impose the proper
20838         index constraints.
20839         (Resolve_Selected_Component): Do not insert an access check if the
20840         prefix is an access type: such a node is expanded into an explicit
20841         dereference, on which the access check is performed anyway. Removes
20842         expensive duplicate checks.
20843         (Resolve_Call): Use new flag Is_Obsolescent and field
20844         Obsolescent_Warning so that pragma Obsolescent works on library
20845         subprograms.
20846         Add support for wide wide character type
20847         (Resolve_Allocator): Replace the error message on wrong null-exclusion
20848         value by a warning message.
20849         (Resolve_Type_Conversion): If the mixed-mode expression is interpreted
20850         as fixed-point, and one of the operands is non-static and universal, it
20851         can only be an illegal exponentiation operation, in which case there is
20852         no real value to retrieve.
20853
20854         * exp_strm.adb: Add support for wide wide character type
20855         (Build_Elementary_Input_Call): Compute the size of the stream element by
20856         querying the rep chain to find the Stream_Attribute attribute value.
20857         (Build_Elementary_Write_Call): Ditto.
20858
20859         * sem_aggr.adb: Char_Literal_Value field is now a Uint
20860         Add support for wide wide character type
20861         Replace the error messages on wrong null-exclusion value by warnings
20862         as described in Ada 2005.
20863         (Resolve_Extension_Aggregate): Document the fact that the error
20864         message on class-wide expressions in extensions aggregates.
20865
20866         * sem_case.adb: Add support for wide wide character type
20867
20868         * sem_ch13.adb: Add support for wide wide character type
20869         (Analyze_Attribute_Definition_Clause): Handle the Stream_Size attribute.
20870
20871         * sem_ch3.adb: Add support for wide wide character type
20872         (Process_Subtype): If constraint is illegal for the type, set Ekind of
20873         now-useless Itype, to prevent cascaded errors on a compiler built
20874         without -gnatp.
20875
20876         * sem_ch8.adb: Add with and use of Sem_Disp.
20877         (Analyze_Subprogram_Renaming): Replace unclean uses of
20878         Corresponding_Spec with Corresponding_Formal_Spec (and delete setting
20879         of Corresponding_Spec to Empty).
20880         (Attribute_Renaming): Replace use of Corresponding_Spec with
20881         Corresponding_ Formal_Spec and simplify condition.
20882         (Use_One_Package): Check that scope of homonym of identifier is defined,
20883         before checking whether it is a wrapper package.
20884         Add support for wide wide character type
20885
20886         * sem_eval.adb: Add support for wide wide character type.
20887         (Eval_Arithmetic_Op): Check for compile time known signed integer
20888         overflow in the non-static case.
20889         (Subtypes_Statically_Match): A formal scalar type and its base type do
20890         not statically match.
20891
20892         * sem_util.adb (Collect_Primitive_Operations): Minor change of "/=" to
20893         "not in" for test of N_Formal_Subprogram_Declaration (which is now a
20894         subtype).
20895         (Unit_Declaration_Node): Ditto.
20896         (Is_Variable_Prefix):  For the case of an indexed component whose prefix
20897         has a packed array type, the prefix has been rewritten into a type
20898         conversion. Determine variable-ness from the converted expression.
20899         Handle wide wide character cases.
20900
20901         * stand.ads: Add types Wide_Wide_Character and Wide_Wide_String
20902
20903         * stringt.ads, stringt.adb: Handle full UTF-32 range.
20904         Remove ["0A"] from comment, since it can look like a line terminator.
20905         Currently we don't permit this, but this is under discussion by the
20906         ARG, and it is easy enough to use a different example.
20907
20908         * s-wchcon.ads, s-wchcnv.ads, s-wchcnv.adb: Add new subprograms for
20909         handling UTF-32 encoding for wide wide character.
20910         Implement new brackets coding ["hhhhhhhh"]
20911         Add UTF-8 encodings for full UTF-32 range
20912
20913         * ttypes.ads: Add definition of Standard_Wide_Wide_Character_Size
20914
20915         * types.h, types.ads, types.adb: Wide_Wide_Character now has full 31
20916         bit range Add full UTF-32 support.
20917         (RT_Exception_Code): Addition of CE_Null_Not_Allowed; used to
20918         notify that constraint error will be raised at run-time
20919         because a null value is assigned to a null-excluding object.
20920         Remove some obsolete declarations and make Char_Code
20921         unsigned.
20922
20923         * a-except.adb (Rcheck_30): New subprogram. Addition of the message
20924         corresponding to CE_Null_Not_Allowed, and adjust the output of all the
20925         Rcheck subprograms.
20926
20927         * checks.adb (Check_Null_Not_Allowed): Replace the error message on
20928         wrong null-exclusion value by a warning message.
20929         (Enable_Range_Check): Do range check if the prefix is an
20930         explicit dereference whose designated object is an unconstrained array.
20931         Current algorithm for removing duplicate checks is over-eager in this
20932         case.
20933
20934         * sem_ch5.adb (Analyze_Assignment): Replace the error messages on wrong
20935         null-exclusion value by a warning message
20936
20937         * atree.h, atree.ads, atree.adb: Remove Char_Code field support
20938         completely. Add support for Uint2 field
20939
20940         sem_ch2.adb, exp_ch11.adb, exp_dbug.adb,
20941         exp_prag.adb: Char_Literal_Value field is now a Uint.
20942
20943         * exp_util.adb (Insert_Actions): Replace
20944         N_Formal_Subprogram_Declaration by
20945         N_Formal_{Abstract|Concrete}_Subprogram_Declaration.
20946         Char_Literal_Value field is now a Uint.
20947
20948         * sinfo.ads, sinfo.adb (Corresponding_Formal_Spec): New function
20949         defined for subprogram renaming declarations. When set, the field
20950         indicates the defining entity of a corresponding formal subprogram
20951         when the renaming corresponds to a formal subprogram association in an
20952         instantiation.
20953         (Set_Corresponding_Formal_Spec): New procedure to return
20954         Corresponding_Formal_Spec field.
20955         Minor changes of "=" to "in" in tests of N_Formal_Subprogram_Declaration
20956         (which is now a subtype).
20957         Char_Literal_Value field is now a Uint
20958
20959         * exp_disp.ads, exp_disp.adb (Make_DT): Generate code that moves the
20960         pointer to the base of the dispatch table.
20961         Minor changes to comments.
20962         (Controlling_Type): New function for determining the tagged type
20963         associated with a tagged primitive subprogram.
20964         (Expand_Dispatching_Call): Add support for a controlling actual that is
20965         directly a value of type Ada.Tag rather than a tagged object.
20966
20967         * i-cpp.ads, i-cpp.adb, a-tags.ads, a-tags.adb: Update documentation
20968         describing the new layout.
20969         (Dispatch_Table): The expander computes the actual array size, allocates
20970         the Dispatch_Table record accordingly, and generates code that displaces
20971         the base of the record after the Typeinfo_Ptr component. The access to
20972         these components is done by means of local functions.
20973         (Offset_To_Top): New function.
20974         (Typeinfo_Ptr): New function.
20975         (Get_TSD): Modified to access the new position of the TSD.
20976         (Set_TSD): Modified to save the TSD in its new position.
20977
20978         * par-ch12.adb (P_Formal_Subprogram_Declaration): Add parsing for the
20979         case of formal abstract subprograms. Add check and message for -gnat05.
20980         Update comments.
20981
20982         * sem_ch12.adb: Add with and use for Sem_Disp.
20983         (Analyze_Associations): Minor change from "=" to "in" for use of
20984         N_Formal_Subtype_Declaration (which is now a subtype).
20985         (Set_Analyzed_Formal): Minor changes from "=" to "in" for uses of
20986         N_Formal_Subtype_Declaration (which is now a subtype).
20987         (Analyze_Formal_Subprogram): Add handling for
20988         N_Formal_Abstract_Subprogram, marking the formal as abstract and
20989         dispatching, setting the controlling status of the formal parameters
20990         and result, and issuing an error if there is no controlling type for
20991         the formal subprogram.
20992         (Instantiate_Formal_Subprogram): Rather than setting Corresponding_Spec,
20993         which is an unclean use of that field, we set the new field
20994         Corresponding_Formal_Spec to make the formal subprogram available to
20995         processing in Analyze_Subprogram_Declaration.
20996         (Analyze_Formal_{Discrete, Decimal_Fixed_Point, Fixed_Point,
20997         Floating_Point, Modular_Integer, Signed_Integer}_Type: Make formal type
20998         Constrained, so that it is is does not statically match its anonymous
20999         base type.
21000
21001         * sem_ch6.adb (Analyze_Subprogram_Specification): Include test for
21002         abstract formal subprograms in error check for functions returning
21003         abstract types. Set scope of new designator for
21004         a parameterless subprogram, so that it is available when checking the
21005         body for nested subprograms, before full analysis of said body.
21006         (Analyze_Subprogram_Body): Warn on inlining bodies with nested
21007         subprogram only if inner one comes from source.
21008         (Analyze_Function_Call): If the call is given in object notation, the
21009         analysis of the name rewrites the node and analyzes it with the proper
21010         argument list. After analyzing the name, if the call has been rewritten
21011         and the result type is set, no further analysis is needed.
21012         (Analyze_Return_Type): Subsidiary to Process_Formals: analyze subtype
21013         mark in function specification, in a context where the formals are
21014         visible and hide outer homographs.
21015
21016         * sem_disp.adb (Check_Controlling_Type): Relax the check for same scope
21017         as the tagged type for the cases of abstract formal subprograms and
21018         renamings of those.  Clean up spec comments.
21019         (Check_Dispatching_Context): Add error message to indicate "abstract
21020         procedure", covering the case of a call to a formal abstract procedure
21021         that has statically tagged operands.
21022         (Check_Dispatching_Call): Check for the case of an actual given by
21023         a tag-indeterminate function call whose type is an ancestor of the
21024         containing call's associated tagged type. This situation can occur
21025         for inherited primitives with function defaults. In this case we
21026         use the tagged type's tag directly as the controlling argument for
21027         the calls.
21028         (Expand_Call): Name change on call to Expand_Dispatch_Call.
21029
21030         * sprint.adb (Sprint_Node_Actual): Split
21031         N_Formal_Subprogram_Declaration into two alternatives for the new
21032         cases N_Formal_Abstract_Subprogram_Declaration and
21033         N_Formal_Concrete_Subprogram_Declaration.
21034         Char_Literal_Value field is now a Uint.
21035
21036         * trans.c: Get rid of junk Uint2 reference.
21037         Char_Literal_Value field is now a Uint.
21038         (gnat_to_gnu, case N_Aggregate): Check TYPE_UNCHECKED_UNION_P.
21039         (gigi): Correct third arg to gimplify_body.
21040
21041         * ada-tree.h: (TYPE_UNCHECKED_UNION_P): New flag.
21042         (TYPE_LANG_FLAG_0): Check for record or union.
21043
21044         * treepr.adb: Char_Literal_Value field is now a Uint
21045
21046         * uintp.h, uintp.ads, uintp.adb: Add new routines UI_To_CC and
21047         UI_From_CC.
21048
21049         * widechar.ads, widechar.adb (Is_UTF_32_Non_Graphic): New function
21050         Add full UTF-32 support
21051         Char_Code is now 32 bits
21052
21053         * sinput.ads, sinput.adb (Skip_Line_Terminators): Extend to deal with
21054         wide character UTF_32 line terminators.
21055         Initialize Main_Source_File to avoid error when no main
21056         source is loaded.
21057
21058         * errout.adb (Finalize): Do not check Num_SRef_Pragmas
21059         (Main_Source_File) when no main source has been loaded, to avoid
21060         potential crash.
21061
21062 2005-02-09  Robert Dewar  <dewar@adacore.com>
21063
21064         * a-strunb.ads, a-strunb.adb: Add missing pragma Ada_05 statements
21065         Fix name of Set routine
21066
21067         * a-strfix.ads, a-strfix.adb: Add new index functions from AI-301 to
21068         fixed packages.
21069
21070         * a-stwise.ads, a-stwise.adb, a-stwifi.ads, a-stwifi.adb,
21071         a-strsea.ads, a-strsea.adb: Add new index functions from AI-301 to
21072         fixed packages
21073
21074         * a-witeio.ads, a-witeio.adb, a-textio.ads, a-textio.adb: New function
21075         forms of Get_Line subprograms for AI-301.
21076
21077         * a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads,
21078         a-wtedit.adb, a-wtedit.adb, a-wtedit.ads, a-wttest.adb,
21079         a-wttest.ads, a-strmap.ads, a-strmap.adb, a-stwima.adb,
21080         a-stwima.ads: Minor reformatting.
21081
21082 2005-02-09  Doug Rupp  <rupp@adacore.com>
21083             Thomas Quinot  <quinot@adacore.com>
21084
21085         * adaint.c, adaint.h
21086         [VMS] (to_ptr32): New function.
21087         (MAYBE_TO_PTR32): New macro.
21088         (__gnat_portable_spawn,__gnat_portable_no_block_spawn): Adjust argv
21089         for pointer size.
21090         [VMS] (descriptor_s, ile_s): Use __char_ptr32 for adr field.
21091         [VMS] (#define fork()): Remove since unneccessary.
21092         (__gnat_set_close_on_exec): New routine to support
21093         GNAT.OS_Lib.Set_Close_On_Exec.
21094
21095         * g-expect.adb (Set_Up_Communications): Mark the pipe descriptors for
21096         the parent side as close-on-exec so that they are not inherited by the
21097         child.
21098
21099         * g-os_lib.ads, g-os_lib.adb (Set_Close_On_Exec): New subprogram to
21100         set or clear the FD_CLOEXEC flag on a file descriptor.
21101
21102 2005-02-09  Eric Botcazou  <ebotcazou@adacore.com>
21103             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
21104
21105         PR ada/19386
21106         * decl.c:
21107         (gnat_to_gnu_field): Do not necessarily invoke make_packable_type
21108         on the field if Pragma Component_Alignment (Storage_Unit).
21109         (gnat_to_gnu_entity, case object): Do not treat a renaming that has
21110         side-effects as if it were a constant; also make SAVE_EXPR to protect
21111         side-effects.
21112         (gnat_to_gnu_entity, case E_Record_Subtype): If have _Parent, make a
21113         UNION_TYPE.
21114         (make_dummy_type): Set TYPE_UNCHECKED_UNION_P.
21115         (components_to_record): Test it.
21116         Fix improper usage of REFERENCE_CLASS_P.
21117
21118         * utils2.c (build_binary_op, case MODIFY_EXPRP): Treat UNION_TYPE as
21119         RECORD_TYPE.
21120
21121         * utils2.c: Minor reformatting.
21122
21123         * utils.c (convert, case UNION_TYPE): Check TYPE_UNCHECKED_UNION;
21124         handle other cases like RECORD_TYPE.
21125
21126         * utils.c (gnat_pushdecl): Set TREE_NO_WARNING.
21127
21128 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
21129
21130         * exp_aggr.adb (Gen_Assign): If the expression is an aggregate for a
21131         component of an array of arrays in an assignment context, and the
21132         aggregate has component associations that require sliding on
21133         assignment, force reanalysis of the aggregate to generate a temporary
21134         before the assignment.
21135         (Must_Slide): Make global to the package, for use in Gen_Assign.
21136
21137 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
21138
21139         * exp_ch4.adb (Expand_Composite_Equality): If a component is an
21140         unchecked union with no inferable discriminants, return a
21141         Raise_Program_Error node, rather than inserting it at the point the
21142         type is frozen.
21143         (Expand_Record_Equality, Component_Equality): Handle properly the case
21144         where some subcomponent is an unchecked union whose generated equality
21145         code raises program error.
21146
21147 2005-02-09  Doug Rupp  <rupp@adacore.com>
21148
21149         * gnatbl.c: [VMS] (_POSIX_EXIT): Define.
21150         [VMS] (#define exit hack): Remove.
21151
21152 2005-02-09  Pascal Obry  <obry@adacore.com>
21153             Arnaud Charlet <charlet@adacore.com>
21154
21155         * init.c (__gnat_initialize): Add a new parameter eh which contains the
21156         address of the exception registration. The Win32 version of this
21157         routine calls __gnat_install_SEH_handler() to initialize the SEH
21158         (Structured Exception Handling) handler.
21159         (__gnat_error_handler) [Win32]: Removed. Not needed as we use
21160         SEH (Structured Exception Handling) now.
21161         (__gnat_install_handler) [Win32]: Nothing to do now as we use SEH.
21162         (__gnat_initialize for ppc-vxworks): Adjust comments and the
21163         preprocessor condition protecting the call to the extra eh setup
21164         subprogram, which is only available for the ppc target.
21165         (__gnat_clear_exception_count): replaced reference to
21166         variable taskIdCurrent by call to taskIdSelf(), cleaner.
21167
21168         * seh_init.c: New file.
21169
21170         * Make-lang.in: (GNAT_ADA_OBJS): Add seh_init.o.
21171         (GNATBIND_OBJS): Idem.
21172
21173         * misc.c (gnat_parse_file): Update call to __gnat_initialize. This
21174         routine takes a new parameter (a pointer to the exception registration
21175         for the SEH (Structured Exception Handling) support.
21176
21177         * raise.h: (__gnat_install_SEH_handler): New prototype.
21178         Update copyright notice.
21179
21180         * s-tassta.adb (Task_Wrapper): Declare the exception registration
21181         record and initialize it by calling __gnat_install_SEH_handler.
21182
21183 2005-02-09  Vincent Celier  <celier@adacore.com>
21184
21185         * make.adb (Gnatmake): Do not fail when the main project has no object
21186         directory.
21187
21188 2005-02-09  Doug Rupp  <rupp@adacore.com>
21189
21190         * Makefile.in [VMS] (LN,LN_S): Define as cp -p
21191         Rename s-asthan-vms.adb to s-asthan-vms-alpha.adb.
21192         [VMS]: Add translations for g-enblsp.adb.
21193
21194         * s-asthan-vms.adb: Removed.
21195         * s-asthan-vms-alpha.adb: Added.
21196
21197 2005-02-09  Pascal Obry  <obry@adacore.com>
21198
21199         * Makefile.in (LIBGNAT_SRCS): Add seh_init.c.
21200         (LIBGNAT_OBJS): Add seh_init.o.
21201
21202 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
21203
21204         PR ada/16592
21205         * Makefile.in: Link all gnat tools with -static-libgcc, since
21206         -shared-libgcc is now used by default on some systems (e.g. linux with
21207         recent binutils).
21208         Remove references to Makefile.prolog/generic, no longer used.
21209
21210 2005-02-09  Vincent Celier  <celier@adacore.com>
21211
21212         * prj-makr.adb (Process_Directory): Put file name in canonical case
21213         before matching against the patterns.
21214         If gnatname has been invoked as <prefix>-gnatname
21215         then invoke the compiler as <prefix>-gcc, not just "gcc".
21216
21217 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
21218
21219         * sem_ch4.adb (Analyze_Selected_Component): Create Actual_Subtype even
21220         with expansion disabled. The actual subtype is needed among other
21221         places when the selected component appears in the context of a loop
21222         bound, and denotes a packed array.
21223         (Operator_Check): Always use the first subtype in the
21224         error message, to avoid the appearance of internal base types.
21225         (Transform_Object_Operation): Copy each actual in full
21226         to the parameter associations of the constructed call, rather than
21227         using the shallow copy mechanism of New_Copy_List. This ensures that
21228         the chaining of named associations is done properly.
21229         (Complete_Object_Operation): Rewrite node, rather than
21230         replacing it, so that we can trace back to the original selected
21231         component.
21232
21233         * sem_elab.adb (Set_Elaboration_Constraint): For initialization calls,
21234         and calls that use object notation, if the called function is not
21235         declared  in a withed unit, place the elaboration constraint on the
21236         unit in the context that makes the function accessible.
21237         (Check_Elab_Subtype_Declaration): Check whether a subtype declaration
21238         imposes an elaboration constraint between two packages.
21239
21240 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
21241
21242         * sem_ch7.adb (Uninstall_Declarations): Exchange full and private
21243         views of a private type after handling its private dependents, to
21244         maintain proper stack discipline between entry and exit from the
21245         package.
21246
21247 2005-02-09  Cyrille Comar  <comar@adacore.com>
21248
21249         * s-finimp.adb: (Finalize_List): Optimize in the no-abort case.
21250         Minor reformatting.
21251
21252 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
21253
21254         * s-tporft.adb (Register_Foreign_Thread): Initialize Task_Image[_Len]
21255         fields for foreign threads.
21256
21257 2005-02-09  Doug Rupp  <rupp@adacore.com>
21258
21259         * s-vaflop.adb: Add pragma Warnings (Off) to eliminate infinite
21260         recursion warnings when compiled with -gnatdm.
21261
21262 2005-02-09  Robert Dewar  <dewar@adacore.com>
21263
21264         * usage.adb: Add line for switch -gnat05 (allow Ada 2005 extensions)
21265         Slight fix to documentation of -gnaty with no parameters
21266
21267         * xr_tabls.ads: Add ??? comment for missing overall comment
21268
21269         * xsinfo.adb: Make default file name be sinfo.h, since this is what
21270         we now use by default.
21271
21272         * xsnames.adb: Adjust end of file test to look for five space followed
21273         by '#' instead of six spaces. The format of xsnames.adb was modified
21274         in the last update.
21275
21276         * a-numeri.ads: Add reference to AI-388 for greek letter pi
21277         identifier.
21278
21279         * clean.adb: Minor reformatting.
21280
21281         * gnat1drv.adb, gnatfind.adb, gnatlink.adb, gnatmem.adb,
21282         gnatname.adb: Minor reformatting
21283         Add 2005 to copyright output when utility is run
21284
21285         * csets.adb: Eliminate obsolete comment
21286
21287         * debug.adb, g-socket.ads, i-cobol.adb: Minor reformatting throughout
21288         Update comments.
21289
21290         * sem_eval.ads (Eval_Integer_Literal): Do not inline this, not useful.
21291
21292 2005-02-09  Sergey Rybin  <rybin@adacore.com>
21293
21294         * gnat_ugn.texi: Add to the gnatpp section the paragraph describing
21295         the difference between compact and incompact layout and add the record
21296         representation clause to the example illustrating different layouts.
21297         Add the description of '-A5' gnatpp option ("align 'AT' keywords in
21298         component clauses").
21299
21300 2005-02-09  Florian Villoing  <villoing@adacore.com>
21301
21302         * gnat_ugn.texi: Fix typos.
21303         Use @command to display 'gcc', 'gnatbind', etc. insted of @code or
21304         @file.
21305         Make proper use of @ref, @xref and @pxref to avoid duplication of "see"
21306         in the generated documentation.
21307
21308 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
21309
21310         * gnat_ugn.texi: Remove all mentions of FSU threads, which are no
21311         longer supported.
21312         Update linker wrapper when linking with non GNU C++.
21313
21314 2005-02-09  Pascal Obry  <obry@adacore.com>
21315
21316         * gnat_ugn.texi:
21317         Document the procedure to debug the DllMain routine on Windows.
21318         Add note about -funwind-tables and mixed Ada and C/C++ programming in
21319         ZCX mode.
21320         Document new BIND qualifer /RETURN_CODES=VMS.
21321
21322 2005-02-09  Ben Brosgol  <brosgol@adacore.com>
21323
21324         * gnat_ugn.texi: Wordsmithing of "GNAT and Libraries" chapter
21325         Edited gnatmetric chapter
21326
21327 2005-02-09  Robert Dewar  <dewar@adacore.com>
21328
21329         * gnat_rm.texi:
21330         Changes to document new wide wide character support
21331         For AI-285
21332         Update documentation on Normalize_Scalars and Initialize_Scalars
21333
21334 2005-02-09  Pascal Obry  <obry@adacore.com>
21335
21336         * s-taprop-mingw.adb, s-soflin.ads: Minor reformatting.
21337
21338 2005-02-09  Jose Ruiz  <ruiz@adacore.com>
21339
21340         * s-osinte-vxworks.ads (taskPriorityGet): Add this function (imported
21341         from the VxWorks kernel) that is needed for getting the active
21342         priority of the different tasks.
21343
21344         * s-atacco.ads, s-atacco.adb (Nothing): Remove this dummy procedure.
21345         Use a pragma Elaborate_Body in the spec file instead.
21346         Noticed by code reading.
21347
21348 2005-02-09  Thomas Quinot  <quinot@adacore.com>
21349
21350         * exp_util.ads: Minor correction in comment.
21351
21352 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
21353
21354         * s-taprop.ads (Initialize): Update comments. Remove pragma Inline,
21355         since this procedure is now too complex to be worth inlining.
21356
21357 2005-02-09  Richard Henderson  <rth@redhat.com>
21358
21359         * utils.c (gnat_define_builtin): Remove.
21360         (gnat_install_builtins): Use build_common_builtin_nodes.
21361
21362 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
21363
21364         * a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb, a-crbtgk.ads,
21365         a-crbtgk.adb, a-crbltr.ads, a-coprnu.ads, a-coprnu.adb,
21366         a-coorse.ads, a-coorse.adb, a-convec.ads, a-convec.adb,
21367         a-contai.ads, a-coinve.ads, a-coinve.adb, a-cohata.ads,
21368         a-cohama.ads, a-cohama.adb, a-ciorse.ads, a-ciorse.adb,
21369         a-cihama.ads, a-cihama.adb, a-cidlli.ads, a-cidlli.adb,
21370         a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads, a-cgcaso.adb,
21371         a-cgarso.ads, a-cgarso.adb, a-cdlili.ads, a-cdlili.adb,
21372         a-cgaaso.adb, a-coormu.adb, a-ciormu.adb, a-cihase.adb,
21373         a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads,
21374         a-coorma.ads, a-swunha.ads, a-stunha.ads, a-ciormu.ads,
21375         a-coormu.ads, a-rbtgso.ads, a-swunha.adb, a-stunha.adb,
21376         a-cgaaso.ads, a-ciorma.adb, a-coorma.adb, a-secain.adb,
21377         a-secain.ads, a-slcain.ads, a-slcain.adb, a-shcain.ads,
21378         a-shcain.adb, a-chtgke.ads, a-chtgke.adb, a-stwiha.ads,
21379         a-stwiha.adb, a-strhas.ads, a-strhas.adb, a-chzla1.ads,
21380         a-chzla9.ads, a-lfztio.ads, a-liztio.ads, a-llfzti.ads,
21381         a-llizti.ads, a-sfztio.ads, a-siztio.ads, a-ssizti.ads,
21382         a-stzbou.adb, a-stzbou.ads, a-stzfix.adb, a-stzfix.ads,
21383         a-stzhas.adb, a-stzhas.ads, a-stzmap.adb, a-stzmap.ads,
21384         a-stzsea.adb, a-stzsea.ads, a-stzsup.adb, a-stzsup.ads,
21385         a-stzunb.adb, a-stzunb.ads, a-swunau.adb, a-swunau.ads,
21386         a-szmzco.ads, a-szunau.adb, a-szunau.ads, a-szunha.adb,
21387         a-szunha.ads, a-szuzti.adb, a-szuzti.ads, a-tiunio.ads,
21388         a-wwunio.ads, a-ztcoau.adb, a-ztcoau.ads, a-ztcoio.adb,
21389         a-ztcoio.ads, a-ztcstr.adb, a-ztcstr.ads, a-ztdeau.adb,
21390         a-ztdeau.ads, a-ztdeio.adb, a-ztdeio.ads, a-ztedit.adb,
21391         a-ztedit.ads, a-ztenau.adb, a-ztenau.ads, a-ztenio.adb,
21392         a-ztenio.ads, a-ztexio.adb, a-ztexio.ads, a-ztfiio.adb,
21393         a-ztfiio.ads, a-ztflau.adb, a-ztflau.ads, a-ztflio.adb,
21394         a-ztflio.ads, a-ztgeau.adb, a-ztgeau.ads, a-ztinau.adb,
21395         a-ztinau.ads, a-ztinio.adb, a-ztinio.ads, a-ztmoau.adb,
21396         a-ztmoau.ads, a-ztmoio.adb, a-ztmoio.ads, a-zttest.adb,
21397         a-zttest.ads, a-zzunio.ads: New files. Part of new Ada 2005
21398         library.
21399
21400 2005-01-27  Laurent GUERBY <laurent@guerby.net>
21401
21402         * Makefile.in: Fix a-intnam.ads from previous commit,
21403         add 2005 to copyright.
21404         * a-intman-rtems.ads: Renamed to...
21405         * a-intnam-rtems.ads:
21406
21407 2005-01-27  Laurent GUERBY <laurent@guerby.net>
21408
21409         * Makefile.in: Rename GNAT RTEMS specific files.
21410         * 5rtpopsp.adb, 4rintnam.ads, 5rosinte.adb,
21411         5rosinte.ads, 5rparame.adb: Replaced by files below.
21412         * s-tpopsp-rtems.adb, a-intman-rtems.ads, s-osinte-rtems.adb,
21413         s-osinte-rtems.ads, s-parame-rtems.adb: Replace files above.
21414
21415 2005-01-27  Joel Sherrill <joel.sherrill@oarcorp.com>
21416             Laurent GUERBY <laurent@guerby.net>
21417
21418         PR ada/19488
21419         * 5rosinte.ads: Add No_Key constant.
21420         * 5rtpopsp.adb: Initialize ATCB_Key with No_Key and fix style.
21421         * gsocket.h: Do not include <sys/socket.h> with RTEMS either.
21422
21423 2005-01-26  Laurent GUERBY <laurent@guerby.net>
21424
21425         PR ada/19414
21426         * i-cobol.adb (Valid_Numeric): Handle zero length case.
21427
21428 2005-01-20  Richard Henderson  <rth@redhat.com>
21429
21430         * Makefile.in (alpha-linux, LIBGNAT_TARGET_PAIRS): Use
21431         a-intnam-linux.ads and system-linux-alpha.ads.
21432         * a-intnam-linux-alpha.ads: Remove file.
21433         * s-osinte-linux-alpha.ads (SIGUNUSED, SIGSTKFLT, SIGLOST): New.
21434         * system-linux-alpha.ads: New file.
21435
21436 2005-01-18  Jakub Jelinek  <jakub@redhat.com>
21437
21438         PR ada/13470
21439         * a-stunau.adb (Get_String): Don't return U.Reference, but Ret that is
21440         set to the new string.
21441
21442 2005-01-18  Toon Moene  <toon@moene.indiv.nluug.nl>
21443
21444         * system-linux-ppc.ads: Set ZCX_By_Default and GCC_ZCX_Support
21445         to True.
21446
21447 2005-01-18  Richard Henderson  <rth@redhat.com>
21448
21449         * Makefile.in (LIBGNAT_TARGET_PAIRS, TOOLS_TARGET_PAIRS, MISCLIB,
21450         THREADSLIB, GNATLIB_SHARED, PREFIX_OBJS, LIBRARY_VERSION): Specialize
21451         for alpha-linux.
21452         * s-osinte-linux-alpha.ads, a-intnam-linux-alpha.ads: New files.
21453
21454 2005-01-14  Andrew Pinski  <pinskia@physics.uc.edu>
21455
21456         * system-darwin-ppc.ads (ZCX_By_Default): Change to True.
21457         (GCC_ZCX_Support): Likewise.
21458
21459 2005-01-11  Bastian Blank  <waldi@debian.org>
21460
21461         * system-linux-s390.ads: Define Preallocated_Stacks.
21462         * system-linux-s390x.ads: Likewise.
21463
21464 2005-01-04  Arnaud Charlet  <charlet@adacore.com>
21465
21466         * gnat_ugn.texi: Fix texi errors with null variables.
21467
21468 2005-01-03  Thomas Quinot  <quinot@adacore.com>
21469
21470         * gen-soccon.c: New utility program to generate g-soccon.ads
21471         automatically.
21472
21473         * socket.c, gsocket.h: Split inclusion of system header files into a
21474         gsocket.h file separated from socket.c, to allow reuse in gen-soccon.c.
21475
21476         * g-soccon.ads, g-soccon-unixware.ads, g-soccon-tru64.ads,
21477         g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
21478         g-soccon-interix.ads, g-soccon-solaris.ads, g-soccon-mingw.ads,
21479         g-soccon-vxworks.ads, g-soccon-freebsd.ads: Note that these files
21480         should not be edited by hand anymore, but should be regenerated using
21481         gen-soccon.
21482
21483 2005-01-03  Robert Dewar  <dewar@adacore.com>
21484             Ed Schonberg  <schonberg@adacore.com>
21485             Vincent Celier  <celier@adacore.com>
21486
21487         * s-atacco.ads, a-direio.adb: Protect use of 'Constrained by warnings
21488         on/off, since this is an obsolescent feature, for which we now generate
21489         a warning.
21490
21491         * sem_attr.adb (Analyze_Attribute, case Constrained): Issue warning if
21492         warning mode is set and obsolescent usage of this attribute occurs.
21493         (Resolve_Access, case 'Access): Note that GNAT uses the context type to
21494         disambiguate overloaded prefixes, in accordance with AI-235. GNAT code
21495         predates, and partly motivates, the adoption of the AI.
21496         Implement new Ada 2005 attribute Mod
21497
21498         * exp_attr.adb (Expand_N_Attribute_Reference): Implement Ada 2005
21499         attribute Mod.
21500
21501         * par-ch4.adb (P_Name): In Ada 2005 mode, recognize new attribute Mod
21502
21503         * snames.h, snames.ads, snames.adb: Add entry for No_Dependence for
21504         pragma restrictions.
21505         New entry for Ada 2005 attribute Mod.
21506
21507         * par-prag.adb:
21508         Add recognition of new pragma Restrictions No_Dependence
21509         Recognize restriction No_Obsolescent_Features at parse time
21510
21511         * bcheck.adb: Add circuitry for checking for consistency of
21512         No_Dependence restrictions.
21513
21514         * lib-writ.ads, lib-writ.adb: Output new R lines for No_Dependence
21515         restrictions.
21516
21517         * restrict.ads, restrict.adb: Add subprograms to deal with
21518         No_Dependence restrictions.
21519
21520         * rtsfind.adb: Check that implicit with's do not violate No_Dependence
21521         restrictions.
21522
21523         * sem_ch3.adb, sem_ch11.adb, sem_ch13.adb, lib-xref.adb,
21524         sem_attr.adb: Add check for new restriction No_Obsolescent_Features
21525
21526         * scn.ads, prj-err.ads, prj-err.adb, ali-util.adb, gprep.adb: Add new
21527         dummy parameter to scng instantiation.
21528         Needed for new restriction No_Obsolescent_Features
21529
21530         * scn.adb: (Obsolescent_Check): New procedure
21531         Needed for new restriction No_Obsolescent_Features
21532
21533         * scng.ads, scng.adb: Always allow wide characters in Ada 2005 mode, as
21534         specified by AI-285, needed for implementation of AI-388 (adding greek
21535         pi to Ada.Numerics).
21536         Add new generic formal to scng, needed for new restriction
21537         No_Obsolescent_Features.
21538
21539         * s-rident.ads: Add new restriction No_Obsolescent_Features.
21540
21541         * ali.ads, ali.adb: Adjustments for reading new No_Dependence
21542         restrictions lines.
21543         (Scan_ALI): When finding an unexpected character on an R line, raise
21544         exception Bad_R_Line, instead of calling Fatal_Error, so that, when
21545         Ignore_Errors is True, default restrictions are set and scanning of the
21546         ALI file continues with the next line. Also, when Bad_R_Line is raised
21547         and Ignore_Errors is True, skip to the end of le line.
21548
21549         * sem_ch10.adb: Check that explicit with's do not violate
21550         No_Dependence restrictions.
21551         (Install_Withed_Unit): Add code to implement AI-377 and diagnose
21552         illegal context clauses containing child units of instance.
21553
21554         * sem_prag.adb: Processing and checking for new No_Dependence
21555         restrictions.
21556         (Analyze_Pragma, case Psect_Object): Call Check_Arg_Is_External_Name to
21557         analyze and check the External argument.
21558
21559         * a-numeri.ads: Add greek letter pi as alternative spelling of Pi
21560
21561 2005-01-03  Robert Dewar  <dewar@adacore.com>
21562
21563         * atree.adb: Add a fifth component to entities
21564         This allows us to add 32 flags and four new fields
21565
21566         * atree.ads: Add a fifth component to entities
21567         This allows us to add 32 flags and four new fields
21568
21569         * einfo.ads, einfo.adb: Document new fields and new flags now available
21570         Add routines for printing new fields
21571
21572         * treepr.adb: Call routines to print out additional fields if present
21573
21574 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
21575
21576         * bld.ads, bld.adb, bld-io.ads, bld-io.adb, gprcmd.adb,
21577         gpr2make.ads, gpr2make.adb: Remove gpr2make, replaced by gprmake.
21578
21579         * Makefile.in: Add support to build shared Ada libraries on solaris x86
21580         Remove gpr2make, replaced by gprmake.
21581         Remove references to gnatmem and libaddr2line.
21582         Add indepsw.adb<indepsw-linux.adb to TOOLS_TARGET_PAIRS for IA64 linux.
21583         (gnatlib-shared-darwin): Add "-fno-common" to GNATLIBCFLAGS.
21584         Add support for specialized version of Ada.Numerics.Aux for Darwin: use
21585         a-numaux-darwin.ads and a-numaux-darwin.adb
21586         Enable mlib-tgt-lynxos.adb on lynxos.
21587
21588         * Make-lang.in: Remove rules for gpr2make.
21589         When generating sdefault.adb, do not call Relocate_Path
21590         on S3 for function Target_Name, as it is not a path.
21591         Remove references to gnatmem and libaddr2line.
21592
21593         * a-numaux-darwin.ads, a-numaux-darwin.adb, g-soccon-darwin.ads: New
21594         files.
21595
21596 2005-01-03  Samuel Tardieu  <tardieu@adacore.com>
21597
21598         * checks.adb (Apply_Alignment_Check): Generate a warning if an object
21599         address is incompatible with its base type alignment constraints when
21600         this can be decided statically.
21601
21602 2005-01-03  Olivier Hainque  <hainque@adacore.com>
21603
21604         * decl.c (compatible_signatures_p): New function. The intended purpose
21605         is to check if two function signatures for a call-site and a callee are
21606         compatible enough for the call to be valid. The underlying purpose is
21607         to check if a call to a mapped builtin is using the right interface.
21608         The current code actually does not check antyhing - this a placeholder
21609         for future refinements.
21610         (gnat_to_gnu_entity) <E_Subprogram_Call>: Add preliminary bits to handle
21611         builtin calls for convention Intrinsic.
21612
21613         * gigi.h (builtin_decl_for): Declare (new function).
21614
21615         * utils.c (gnat_install_builtins): Install the target specific builtins.
21616         (builtin_decl_for): New function, provide a dummy body for now.
21617
21618 2005-01-03  Geert Bosch  <bosch@adacore.com>
21619
21620         * eval_fat.adb: (Eps_Model,Eps_Denorm): Remove, no longer used.
21621         (Succ): Re-implement using Scaling, Exponent and Ceiling attributes.
21622         (Pred): Implement in terms of Succ.
21623
21624         * trans.c (convert_with_check): Reimplement conversion of float to
21625         integer.
21626
21627 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
21628             Vincent Celier  <celier@adacore.com>
21629
21630         * exp_aggr.adb (Packed_Array_Aggregate_Handled): The values of the
21631         bounds can be negative, and must be declared Int, not Nat.
21632
21633         * sem_elim.adb (Line_Num_Match): Correct wrong code when index in an
21634         array is checked after using the index in the array.
21635
21636         * makegpr.adb (Add_Switches): Check if there is a package for the
21637         processor. If there is no package, do not look for switches.
21638
21639 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
21640
21641         * exp_ch3.adb (Stream_Operations_OK): Predicate to determine when the
21642         generation of predefined stream operations (specs and bodies) should
21643         proceed. Under various restrictions these subprograms must not be
21644         generated.
21645
21646 2005-01-03  Thomas Quinot  <quinot@adacore.com>
21647
21648         * exp_dist.adb:
21649         Declare subprogram index in Build_RPC_Receiver_Body, to reduce the
21650         amount of PCS-specific code in RACW stubs generation.
21651         (Copy_Specification): Set Etype on copied formal parameter entities, as
21652         this information is needed for PolyORB stubs generation.
21653         (PolyORB_Support.Build_Subprogram_Receiving_Stubs): Remove unused
21654         variable Dynamic_Async.
21655         (Build_Subprogram_Receiving_Stubs): Make PCS-specific
21656         (Build_RPC_Receiver_Specification): Make generic again, as recent
21657         changes have allowed RPC receivers to have the same profile for both
21658         variants of the PCS.
21659         Reorganise RPC receiver generation to reduce differences between the
21660         structure of GARLIC and PolyORB RPC receivers.
21661         (Add_Receiving_Stubs_To_Declarations): Make this subprogram
21662         PCS-specific.
21663         Simplify elaboration code for RCI packages.
21664
21665         * s-parint.ads, s-parint.adb, rtsfind.ads: Reorganise RPC receiver
21666         generation to reduce differences between the structure of GARLIC and
21667         PolyORB RPC receivers.
21668
21669         * s-stratt.adb: Fix typo in comment.
21670
21671 2005-01-03  Thomas Quinot  <quinot@adacore.com>
21672
21673         * exp_ch7.ads (Make_Final_Call): Rewrite comment (was incorrectly
21674         copied from Make_Init_Call).
21675
21676         * exp_strm.adb (Build_Mutable_Record_Read_Procedure): Do component
21677         reads and assignments on a temporary variable declared with appropriate
21678         discriminants.
21679
21680 2005-01-03  Robert Dewar  <dewar@adacore.com>
21681
21682         * i-c.adb (To_C): Raise CE if string is null and Append_Null
21683
21684 2005-01-03  Robert Dewar  <dewar@adacore.com>
21685
21686         * i-cstrin.adb (Update): Do not append a null in form called with a
21687         String. This avoids unintended behavior.
21688
21689 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
21690
21691         PR ada/17527
21692         * init.c: Fix warnings on Free BSD section.
21693
21694 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
21695
21696         PR ada/16949
21697         * sinfo.ads: Fix obsolete reference to xsinfo.spt (replaced by
21698         xsinfo.adb).
21699
21700 2005-01-03  Vincent Celier  <celier@adacore.com>
21701
21702         * make.adb (Collect_Arguments_And_Compile): Do not attempt to build
21703         libraries when Unique_Compile is True (-u switch).
21704         (Gnatmake): ditto.
21705
21706 2005-01-03  Robert Dewar  <dewar@adacore.com>
21707
21708         * namet.adb (Get_Decoded_Name_With_Brackets): Fix case of not allowing
21709         upper case letter or underscore after W, as allowed by spec.
21710
21711 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
21712
21713         * s-osinte-darwin.ads, s-osinte-darwin.adb: Clean up
21714         darwin port by using proper type definitions from header files.
21715         Use SIGTERM instead of SIGABRT for SIGADAABORT.
21716
21717 2005-01-03  Robert Dewar  <dewar@adacore.com>
21718
21719         * par.adb: Enhance error message handling for configuration file
21720         pragmas.
21721
21722 2005-01-03  Robert Dewar  <dewar@adacore.com>
21723
21724         * s-arit64.adb (Double_Divide): Put back changes that got accidentally
21725         removed during the previous update (test properly for case of dividing
21726         largest negative number by -1, which generates overflow).
21727
21728 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
21729             Sergey Rybin  <rybin@adacore.com>
21730
21731         * sem_ch12.adb (Analyze_Package_Instantiation): Create a separate node
21732         to use as the defining identifier for a formal package.
21733         (Remove_Parent): If the instance takes place within (an instance of)
21734         a sibling, preserve private declarations of common parent.
21735
21736 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
21737
21738         * sem_ch4.adb (Has_Fixed_Op): New predicate in Check_Arithmetic_Pair,
21739         to determine whether one of the operands is a fixed-point type for
21740         which a user-defined multiplication or division operation might be
21741         defined.
21742
21743         * sem_res.adb (Valid_Conversion): The legality rules for conversions
21744         of access types are symmetric in Ada 2005: either designated type can
21745         be unconstrained.
21746
21747 2005-01-03  Vincent Celier  <celier@adacore.com>
21748
21749         * s-fileio.adb (Temp_File_Record): Change length of string component
21750         Name from L_tmpnam + 1 to max_path_len + 1.
21751
21752 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
21753
21754         * s-tasini.ads, s-tasini.adb (Undefer_Abortion): Handle case of
21755         Self_Id.Deferral_Level = 0.
21756         (Do_Pending_Action): Move this function to the spec.
21757
21758         * s-tasren.adb (Selective_Wait [Terminate_Selected]): Call
21759         Do_Pending_Action explicitely when needed, in case we're using
21760         No_Abort restrictions.
21761
21762         * s-tassta.adb (Create_Task): If Abort is not allowed, reset the
21763         deferral level since it will not get changed by the generated code.
21764         Keeping a default value of 1 would prevent some operations (e.g.
21765         select or delay) to proceed successfully.
21766
21767 2005-01-03  Ben Brosgol  <brosgol@adacore.com>
21768             Robert Dewar  <dewar@adacore.com>
21769             Cyrille Comar  <comar@adacore.com>
21770
21771         * ug_words, gnat_ugn.texi: Added alpha-ivms transitioning section to
21772         porting guide chapter (vms version).
21773         Revised doc title (removed "for native platforms") and subtitle.
21774         Add discussion on warning flag for obsolescent features. First we
21775         note that it applies to obsolete GNAT features, which was previously
21776         omitted. Second we contrast the behavior with that of the new
21777         Ada 2005 AI-368 restriction No_Obsolescent_Features.
21778         Preliminary rewriting of GNAT & libraries chapter in order to take
21779         into account default project locations & new project manager
21780         capabilities.
21781
21782 2005-01-03  Robert Dewar  <dewar@adacore.com>
21783
21784         * cstand.adb (Create_Operators): Clean up format and documentation of
21785         unary and binary operator result tables. No change in code, just
21786         reformatting and addition of comments.
21787
21788         * errout.ads, gnatfind.adb, s-maccod.ads, sem.adb,
21789         sem_ch2.adb: Minor reformatting
21790
21791         * atree.ads, elists.ads, lib.ads, namet.ads, nlists.ads, repinfo.ads,
21792         sinput.ads, stringt.ads, uintp.ads, urealp.ads: Minor clarification to
21793         comments for Tree_Read and Tree_Write.
21794
21795 2005-01-03  Pascal Obry  <obry@adacore.com>
21796
21797         * exp_attr.ads: Minor reformatting.
21798
21799 2005-01-03  Romain Berrendonner  <berrendo@adacore.com>
21800
21801         * comperr.adb (Compiler_Abort): Add specialized message for GAP
21802         versions.
21803
21804 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
21805
21806         * exp_pakd.adb (Create_Packed_Array_Type): Add a guard to check
21807         whether the ancestor type is private, as may be the case with nested
21808         instantiations.
21809
21810 2004-12-30  Sohail Somani <sohail@sohailsomani.com>
21811
21812         PR ada/19128
21813         * trans.c (gnat_to_gnu): Fix typo: Use correct return variable.
21814
21815 2004-12-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
21816
21817         * trans.c (Attribute_to_gnu): Adjust call to get_inner_reference.
21818         * utils2.c (build_unary_op): Likewise.
21819
21820 2004-12-22  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
21821
21822         * trans.c (mark_visited): Set TYPE_SIZES_GIMPLIFIED.
21823
21824 2004-12-19  Richard Henderson  <rth@redhat.com>
21825
21826         * trans.c (gigi): Update gimplify_body call.
21827
21828 2004-12-09  Nathan Sidwell  <nathan@codesourcery.com>
21829
21830         * decl.c (gnat_substitute_in_type): Remove SET_TYPE case.
21831
21832 2004-12-07  Ed Falis  <falis@adacore.com>
21833
21834         * s-intman-vxworks.adb (Notify_Exception): removed useless check for
21835         current task being suspended.
21836
21837         * init.c (__gnat_clear_exception): added to reset VxWorks exception
21838         count.
21839         (__gnat_map_signal): removed test for current task being suspended.
21840
21841 2004-12-07  Gary Dismukes  <dismukes@adacore.com>
21842
21843         * a-exexpr.adb (Others_Value, All_Others_Value): Change initial values
21844         from 16#BEEF# to 16#7FFF# to avoid exceeding Integer'Last on 16-bit
21845         targets (such as AAMP).
21846
21847 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
21848
21849         * atree.adb (Visit_Itype): Create a new name for the generated itype,
21850         because the back-end may otherwise treat it as a redefinition of the
21851         old symbol.
21852
21853 2004-12-07  Eric Botcazou  <ebotcazou@adacore.com>
21854
21855         * back_end.adb (Scan_Back_End_Switches): Accept --param.
21856
21857         * lang-specs.h: Accept --param.
21858
21859 2004-12-07  Vincent Celier  <celier@adacore.com>
21860
21861         * make.adb (Check_Mains, Switches_Of): Adapt to name changes in
21862         package Prj (Current_Spec_Suffix => Ada_Spec_Suffix,
21863         Current_Body_Suffix => Ada_Body_Suffix).
21864         Take into account Externally_Built attribute.
21865
21866         * clean.adb (In_Extension_Chain): Always return False when one of the
21867         parameter is No_Project.
21868         (Clean_Project): Adapt to changes in package Prj (Lang_Ada =>
21869         Ada_Language_Index).
21870         (Gnatclean): Adapt to change in package Prj.Pars (no parameter
21871         Process_Languages for procedure Parse).
21872
21873         * gnatcmd.adb (Carg_Switches): New table.
21874         (GNATCmd): Put all switches following -cargs in the Carg_Switches table.
21875         Adapt to name changes in package Prj (Current_Spec_Suffix =>
21876         Ada_Spec_Suffix, Current_Body_Suffix => Ada_Body_Suffix).
21877
21878         * mlib-prj.adb: Adapt to changes in packages Prj and Prj.Com: type
21879         Header_Num and function Hash are now declared in package Prj,
21880         not Prj.Com.
21881
21882         * prj.adb (Suffix_Of): New function.
21883         (Set (Suffix)): New procedure.
21884         (Hash): One function moved from Prj.Com
21885         (Is_Present, Language_Processing_Data_Of): New functions
21886         (Set): Two new procedures
21887         (Add_Language_Name, Display_Language_Name): New procedures
21888
21889         * prj.ads: (Suffix_Of): New function
21890         (Set (Suffix)): New procedure
21891         Add several types and tables for multi-language support.
21892         (Header_Num): Type moved from Prj.Com
21893         (Hash): Two functions moved from Prj.Com
21894         (Is_Present, Language_Processing_Data_Of): New functions
21895         (Set): Two new procedures
21896         (Add_Language_Name, Display_Language_Name): New procedures
21897         (Naming): Component name changes:
21898         Current_Spec_Suffix => Ada_Spec_Suffix,
21899         Current_Body_Suffix => Ada_Body_Suffix. Add new components:
21900         Impl_Suffixes, Supp_Suffixes.
21901         (Project_Data): New components: Externally_Built, Supp_Languages,
21902         First_Language_Processing, Supp_Language_Processing, Default_Linker,
21903         Default_Linker_Path.
21904
21905         * prj-attr.adb: Add new attributes Ada_Roots and Externally_Built and
21906         new package Language_Processing with its attributes (Compiler_Driver,
21907         Compiler_Kind, Dependency_Option, Compute_Dependency, Include_Option,
21908         Binder_Driver, Default_Linker).
21909
21910         * prj-com.ads, prj-com.adb (Hash): Function moved to package Prj.
21911         (Header_Num): Type moved to package Prj
21912
21913         * prj-env.adb: Adapt to name changes in package Prj
21914         (Current_Spec_Suffix => Ada_Spec_Suffix,
21915         Current_Body_Suffix => Ada_Body_Suffix).
21916
21917         * prj-ext.adb: Add the default project dir (<prefix>/log/gnat) by
21918         default to the project path, except the "-" is one of the directories
21919         in env var ADA_PROJECT_PATH.
21920         (Current_Project_Path): Global variable, replacing Project_Path
21921         that was in the body of Prj.Part.
21922         (Project_Path): New function
21923         (Set_Project_Path): New procedure
21924         Initialize Current_Project_Path during elaboration of the package
21925         Remove dependency on Prj.Com, no longer needed
21926
21927         * prj-ext.ads (Project_Path): New function
21928         (Set_Project_Path): New procedure
21929
21930         * prj-nmsc.adb (Body_Suffix_Of): New function. Returns .<lang> when no
21931         suffix is defined for language <lang>.
21932         (Find_Sources, Record_Other_Sources): Use Body_Suffix_Of, instead of
21933         accessing directly the components of Naming.
21934         (Look_For_Sources): Use Set (Suffix) to set the suffix of a language.
21935         Reorganise of this package.
21936         Break procedure Check in several procedures.
21937
21938         * prj-nmsc.ads: Replace all procedures (Ada_Check,
21939         Other_Languages_Check and Language_Independent_Check) with a single
21940         procedure Check.
21941
21942         * prj-pars.ads, prj-pars.adb (Parse): Remove parameter
21943         Process_Languages, no longer needed.
21944
21945         * prj-part.adb (Project_Path): Move to the body of Prj.Ext as
21946         Current_Project_Path.
21947         Remove elaboration code, moved to the body of Prj.Ext
21948         Use new function Prj.Ext.Project_Path instead of old variable
21949         Project_Path.
21950         (Post_Parse_Context_Clause): Get Resolved_Path as a case-sensitive path.
21951         When comparing with project paths on the stack, first put the resolved
21952         path in canonical case.
21953         (Parse_Single_Project): Set the path name of the project file in the
21954         tree to the normalized path.
21955
21956         * prj-proc.ads, prj-proc.adb (Check, Recursive_Check, Process): Remove
21957         parameter Process_Languages, no longer needed.
21958         (Recursive_Check): Call Prj.Nmsc.Check, instead of Ada_Check and
21959         Other_Languages_Check.
21960
21961         * prj-tree.ads (Project_Name_And_Node): New component Canonical_Path
21962         to store the resolved canonical path of the project file.
21963         Remove dependency to Prj.Com, no longer needed
21964
21965         * prj-util.adb: Adapt to name changes in package Prj
21966         (Current_Spec_Suffix => Ada_Spec_Suffix, Current_Body_Suffix =>
21967         Ada_Body_Suffix).
21968
21969         * snames.ads, snames.adb: New standard names: Ada_Roots, Binder_Driver,
21970         Compiler_Driver, Compiler_Kind, Compute_Dependency, Default_Linker,
21971         Externally_Built, Include_Option, Language_Processing.
21972
21973         * makegpr.adb: Numerous changes due to changes in packages
21974         Prj and Prj.Nmsc.
21975
21976         * gnatls.adb: Add the default project dir (<prefix>/log/gnat) by
21977         default to the project path, except whe "-" is one of the directories
21978         in env var ADA_PROJECT_PATH.
21979         (Gnatls): In verbose mode, add the new section "Project Search Path:"
21980
21981 2004-12-07  Robert Dewar  <dewar@adacore.com>
21982
21983         * debug.adb: Document that -gnatdA automatically sets -gnatR3m
21984
21985         * gnat1drv.adb (Gnat1drv): If debug flag A set, then automatically
21986         set -gnatR3m mode.
21987
21988         * repinfo.adb (List_Rep_Info): Remove special handling of -gnatdA
21989         flag. No longer needed now that we handle this in gnat1drv.adb.
21990
21991         * repinfo.ads: Minor reformatting
21992
21993 2004-12-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
21994             Olivier Hainque  <hainque@adacore.com>
21995             Eric Botcazou  <ebotcazou@adacore.com>
21996
21997         * decl.c (maybe_pad_type): Use TYPE_SIZE_UNIT of the input type for
21998         TYPE_SIZE_UNIT of result type if SIZE is not specified.
21999         (make_aligning_type): Pass -1 as ADDRESSABLE to prevent the creation
22000         of a bitfield, which we know is useless and causes trouble because of
22001         alignment implications.
22002
22003         * utils.c (create_var_decl): Set DECL_COMMON again on targets without
22004         BSS sections.
22005         (process_attributes): Clear DECL_COMMON again when a section attribute
22006         is present.
22007         (finish_record_type): Independently track if RECORD_TYPE has SIZE and/or
22008         SIZE_UNIT already set and use to compute final SIZE and SIZE_UNIT.
22009         (create_field_decl): Special case ADDRESSABLE negative to mean
22010         "no bitfield creation", to be used by make_aligning_type. Don't
22011         restrict bitfield creation to !ADDRESSABLE any more, as some BLKmode
22012         fields claimed addressable still have to be bitfields. Use
22013         value_factor_p instead of a raw binop construction to check for the
22014         position's alignment.
22015
22016 2004-12-07  Geert Bosch  <bosch@adacore.com>
22017
22018         * eval_fat.adb: Revert previous change.
22019
22020 2004-12-07  Thomas Quinot  <quinot@adacore.com>
22021             Ed Schonberg  <schonberg@adacore.com>
22022
22023         * exp_ch4.adb (Expand_N_Indexed_Component): For an indexed component
22024         with an implicit dereference as its prefix, use
22025         Insert_Explicit_Dereference instead of merely rewriting the prefix into
22026         an explicit dereference. This ensures that a reference to the original
22027         prefix is generated, if appropriate.
22028
22029         * sem_util.adb (Insert_Explicit_Dereference): When an implicit
22030         dereference is rewritten to an explicit one, generate a reference to
22031         the entity denoted by its prefix using the original prefix node, so
22032         the dereference can be properly recorded as a read of the denoted
22033         access value, if appropriate.
22034
22035         * sem_warn.adb (Output_Unreferenced_Messages): Do not abstain from
22036         emitting 'assigned but never read' warning on a variable on the basis
22037         that it has an access type.
22038         (Check_References): Emit unreferenced warning when the scope is a
22039         subprogram body.
22040
22041 2004-12-07  Robert Dewar  <dewar@adacore.com>
22042             Ed Schonberg  <schonberg@adacore.com>
22043
22044         * exp_ch6.adb (Expand_Call): Add comment on handling of back end
22045         intrinsic
22046
22047         * exp_intr.adb (Expand_Intrinsic_Call): Ignore unrecognized intrinsic,
22048         leaving call unchanged.
22049         This deals with the case where the pragma Import specified
22050         an external name, to be handled by the back end.
22051
22052         * sem_prag.adb (Process_Import_Or_Interface): Do not check validity of
22053         subprogram which is Imported with convention Intrinsic if an
22054         External_Name argument is specified.
22055         (Process_Import_Or_Interface): Properly diagnose link name argument.
22056         (Inlining_Not_Possible): New name for Cannot_Inline, to avoid confusion
22057         with Sem_Ch6.Cannot_Inline.
22058         (Process_Inline): Provide separate warning for inapplicable inline
22059         pragma.
22060         (Cannot_Inline): Reject subprograms that have an at_end handler, so that
22061         treatment is uniform on different targets.
22062
22063 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
22064
22065         * exp_ch7.adb (Expand_Cleanup_Actions): If statement sequence of
22066         construct is rewritten, preserve end label to permit source navigation.
22067
22068 2004-12-07  Thomas Quinot  <quinot@adacore.com>
22069
22070         * exp_dist.adb (Specific_Build_General_Calling_Stubs,
22071         Specific_Build_Stub_Target): New subprograms.
22072         (Build_Subprogram_Calling_Stubs): Make this procedure independent from
22073         the PCS implementation used, using the above PCS-customized subprograms.
22074         Minor reformatting.
22075         (PolyORB_Support.Helpers): New subunit containing supporting subprograms
22076         for generation of DSA code targeted to the PolyORB PCS.
22077         (Add_Stub_Type): Rewrite to isolate the parts that are specific to one
22078         implementation of the partition communication subsystem in ancillary
22079         subprograms.
22080         (Specific_Build_Stub_Type, GARLIC_Support.Build_Stub_Type,
22081         PolyORB_Support.Build_Stub_Type): New subrograms containing the
22082         PCS-specific part of Add_Stub_Type.
22083         (Insert_Partition_Check): Use runtime library function to perform
22084         E.4(19) check.
22085
22086         * rtsfind.ads: New entity System.PolyORB_Interface.Make_Ref
22087         (RE_Same_Partition): New entity, from s-parint.
22088
22089         * s-parint.ads, s-parint.adb (Same_Partition): New subprogram.
22090
22091 2004-12-07  Gary Dismukes  <dismukes@adacore.com>
22092
22093         * gnatmem.adb, gnatname.adb, gnatsym.adb, gprcmd.adb, vms_conv.adb:
22094         Output the copyright message on a separate line from the version
22095         message.
22096
22097 2004-12-07  Joel Brobecker  <brobecker@adacore.com>
22098
22099         * g-os_lib.adb (Spawn): Explicitly initialize Saved_Error to avoid a
22100         compile-time warning.
22101
22102 2004-12-07  Robert Dewar  <dewar@adacore.com>
22103
22104         * g-regpat.adb: (Match): Change a misuse of or to or else
22105
22106 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
22107
22108         * lib-xref.adb:
22109         (Generate_Reference): Handle properly a reference to an entry formal,
22110          when an accept statement has a pragma Unreferenced for it.
22111
22112         * sem_ch9.adb (Analyze_Accept_Statement): Reset the Is_Referenced flag
22113         and the Has_Pragma_Unreferenced flag for each formal before analyzing
22114         the body, to ensure that warnings are properly emitted for each accept
22115         statement of a given task entry.
22116
22117 2004-12-07  Vasiliy Fofanov  <fofanov@adacore.com>
22118
22119         * Makefile.in: Add support for foreign threads on VMS.
22120
22121 2004-12-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
22122
22123         * misc.c (gnat_types_compatible_p, LANG_HOOKS_TYPES_COMPATIBLE_P):
22124         Remove.
22125         (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): New.
22126
22127         * adaint.h: (__gnat_dup, __gnat_dup2): Add missing decls.
22128
22129         * trans.c (Exception_Handler_to_gnu_sjlj): Also handle renamed
22130         exception.
22131         (call_to_gnu): Convert to actual DECL_ARG_TYPE, not variant of it.
22132
22133 2004-12-07  Robert Dewar  <dewar@adacore.com>
22134
22135         * nlists.adb (Prepend_Debug): Remove parameters and nest within
22136         Prepend.
22137         (Remove_Next_Debug): Same fix
22138
22139         * nlists.ads: Correct bad comments for Prev and Prev_Non_Pragma (we do
22140         maintain back pointers now, though we did not used to, and comments
22141         were out of date).
22142         (Prepend): Remove pragma Inline.
22143         (Remove_Next): Same cleanup
22144
22145 2004-12-07  Thomas Quinot  <quinot@adacore.com>
22146
22147         * sem_ch4.adb (Process_Implicit_Dereference_Prefix): New subprogram
22148         used to record an implicit dereference as a read operation on its
22149         prefix when operating under -gnatc. Necessary to avoid spurious
22150         'variable assigned but never read' warnings in that mode.
22151         (Process_Indexed_Component, Analyze_Selected_Component): When the prefix
22152         is a non-overloaded implicit dereference, call the above subprogram to
22153         ensure proper recording of references.
22154
22155 2004-12-07  Gary Dismukes  <dismukes@adacore.com>
22156
22157         * sem_ch5.adb (One_Bound): Remove call to Resolve, as the bound needs
22158         to be resolved later as part of Analyze_Iteration_Scheme's call to
22159         Make_Index.
22160
22161 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
22162
22163         * sem_ch8.adb (Find_Type): If node is a reference to 'Base and the
22164         prefix is not a scalar type, place error message on prefix, not on
22165         type entity.
22166
22167 2004-12-07  Bernard Banner  <banner@adacore.com>
22168
22169         * vxaddr2line.adb: Add support for x86 vxworks
22170
22171 2004-12-07  Thomas Quinot  <quinot@adacore.com>
22172
22173         * g-socket.ads (Get_Host_By_Address, Get_Host_By_Name): Clarify
22174         documentation of the behaviour of these functions when passed an IP
22175         address that has no record in the system hosts database and no reverse
22176         record in the DNS.
22177
22178         * cstand.adb, a-tags.ads: Fix typos in comment.
22179
22180 2004-12-07  Robert Dewar  <dewar@adacore.com>
22181
22182         * exp_ch2.adb, exp_ch3.adb, exp_ch5.adb, exp_ch8.adb,
22183         exp_ch9.adb, exp_pakd.adb, interfac.ads, sem_ch6.adb,
22184         sem_ch7.adb, sem_ch10.adb, sem_ch13.adb, sem_ch3.adb,
22185         s-poosiz.ads: Minor reformatting
22186
22187         * make.adb: Minor reformatting
22188         Add some ??? comments asking for more comments
22189
22190         * s-poosiz.adb: Minor reformatting
22191         Add comments on alignment requirement
22192
22193         * sinfo.ads: Remove obsolete comment and fix typo.
22194
22195 2004-12-07  Vincent Celier  <celier@adacore.com>
22196             Sergey Rybin  <rybin@adacore.com>
22197
22198         * gnat_ugn.texi: Update the section "The GNAT Driver and Project
22199         Files" with the new tool and package names.
22200         Reformatting to suppress most of the warnings for line too long
22201         Document the new section "Project Search Path:" in the output of
22202         gnatls -v.
22203         Add gnatmetric section
22204
22205 2004-12-07  Vincent Celier  <celier@adacore.com>
22206
22207         * vms_data.ads: Correct GNAT METRIC qualifiers: -I-, -Idir and
22208         -gnatec= are not direct switches of gnatmetric. Changed -eis to -eps
22209         and -eit to -ept. Added qualifier
22210         /ELEMENT_METRICS=CONSTRUCT_NESTING_MAX for new switch -ec.
22211
22212 2004-11-27  Andreas Schwab  <schwab@suse.de>
22213
22214         * Make-lang.in (ada/trans.o): Depend on $(EXPR_H).
22215
22216 2004-11-25  Arnaud Charlet  <charlet@adacore.com>
22217
22218         * g-socthi-mingw.ads, g-socthi-vms.ads: Remove C_Read and C_Write from
22219         internal implementation unit GNAT.Sockets.Thin,
22220         as their usage for sockets is non-portable (using the read and write
22221         functions from the system runtime library is fine on UNIX but won't
22222         work under Windows).
22223
22224         * mingw32.h: Update copyright notice.
22225
22226 2004-11-25  Arnaud Charlet  <charlet@adacore.com>
22227
22228         * ada-tree.h: Minor reformatting of previous change to avoid lines
22229         longer than 79 characters.
22230
22231 2004-11-25  Olivier Hainque  <hainque@adacore.com>
22232
22233         * tb-gcc.c: GCC infrastructure based implementation of
22234         __gnat_backtrace.
22235
22236 2004-11-24  Steven Bosscher  <stevenb@suse.de>
22237
22238         * misc.c (gnat_post_options): Don't clear
22239         flag_inline_functions.
22240
22241 2004-11-22  Andrew Pinski  <pinskia@physics.uc.edu>
22242
22243         PR ada/17986
22244         * ada-tree.h (lang_tree_node): Set chain_next to be the chain of the
22245         tree.
22246
22247 2004-11-21  Andreas Jaeger  <aj@suse.de>
22248
22249         * stylesw.adb: Change Style_Check_Subprogram_Order to
22250         Style_Check_Order_Subprograms.
22251
22252 2004-11-18  Arnaud Charlet  <charlet@adacore.com>
22253
22254         * adaint.h, adaint.c
22255         (__gnat_portable_spawn): Fix cast of spawnvp third parameter
22256         to avoid warnings.
22257         Add also a cast to kill another warning.
22258         (win32_no_block_spawn): Initialize CreateProcess's dwCreationFlags
22259         parameter with the priority class of the parent process instead of
22260         always using the NORMAL_PRIORITY_CLASS.
22261         (__gnat_dup): New function.
22262         (__gnat_dup2): New function.
22263         (__gnat_is_symbolic_link): Enable the effective body of this
22264         function when __APPLE__ is defined.
22265
22266         * g-os_lib.ads, g-os_lib.adb (Spawn): Two new procedures.
22267         Update comments.
22268
22269 2004-11-18  Olivier Hainque  <hainque@adacore.com>
22270
22271         * a-exexpr.adb (Others_Value, All_Others_Value): New variables, the
22272         address of which may be used to represent "others" and "all others"
22273         choices in exception tables, instead of the current harcoded
22274         (void *)0 and (void *)1.
22275         (Setup_Exception): Do nothing in the GNAT SJLJ case.
22276
22277         * gigi.h (others_decl, all_others_decl): New decls representing the
22278         new Others_Value and All_Others_Value objects.
22279         (struct attrib): Rename "arg" component as "args", since GCC expects a
22280         list of arguments in there.
22281
22282         * raise.c (GNAT_OTHERS, GNAT_ALL_OTHERS): Are now the address of the
22283         corresponding objects exported by a-exexpr, instead of hardcoded dummy
22284         addresses.
22285
22286         * trans.c (Exception_Handler_to_gnu_zcx): Use the address of
22287         others_decl and all_others_decl instead of hardcoded dummy addresses
22288         to represent "others" and "all others" choices, which is cleaner and
22289         more flexible with respect to the possible eh pointer encoding policies.
22290
22291         * utils.c (init_gigi_decls): Initialize others_decl and all_others_decl.
22292         (process_attributes): Account for the naming change of the "args"
22293         attribute list entry component.
22294
22295         * decl.c (build_attr_list): Rename into prepend_attributes to allow
22296         cumulating attributes for different entities into a single list.
22297         (gnat_to_gnu_entity): Use prepend_attributes to build the list of
22298         attributes for the current entity and propagate first subtype
22299         attributes to other subtypes.
22300         <E_Procedure>: Attribute arguments are attr->args and not
22301         attr->arg any more.
22302         (build_attr_list): Ditto. Make attr->args a TREE_LIST when there is an
22303         argument provided, as this is what GCC expects. Use NULL_TREE instead
22304         of 0 for trees.
22305
22306 2004-11-18  Robert Dewar  <dewar@adacore.com>
22307
22308         * a-stmaco.ads, exp_util.ads, exp_util.adb, i-cpp.ads, i-cpp.adb:
22309         Minor reformatting througout (including new function specs)
22310         Add ??? comments asking for clarification.
22311
22312 2004-11-18  Thomas Quinot  <quinot@adacore.com>
22313
22314         * butil.ads, butil.adb, bindgen.adb (Get_Unit_Name_String): Remove
22315         incomplete duplicate implementation of this subprogram from butil.
22316
22317 2004-11-18  Thomas Quinot  <quinot@adacore.com>
22318
22319         * exp_dist.adb (Build_RPC_Receiver_Body): New subprogram. This
22320         procedures factors the common processing for building an RPC receiver
22321         for an RCI package or an RACW type.
22322         Stylistic cleanup: change '/= Empty' to 'Present ()'; move body of
22323         Build_Remote_Subprogram_Proxy_Type into proper alphabetical order.
22324         (Get_PCS_Name): New subprogram. Returns the name of the PCS currently
22325         in use.
22326         (Specific_Add_RACW_Features): New subprogram. PCS-specific part of
22327         Add_RACW_Features.
22328         (Specific_Add_RAST_Features): New subprogram. PCS-specific part of
22329         Add_RAST_Features.
22330         (Assign_Subprogram_Identifier): New subprogram. Provision for assigning
22331         distribution subprogram identifiers that are either subprogram numbers
22332         or strings.
22333         (Get_Subprogram_Ids): New subprogram. Retrieve both the numeric and
22334         string distribution identifiers assigned to a given subprogram.
22335         (Get_Subprogram_Id): Reimplement in terms of Get_Subprogram_Ids.
22336         (Add_RAS_Dereference_TSS): Add comments.
22337         (Build_General_Calling_Stubs): Note that the RACW_Type formal parameter
22338         is not referenced yet because it will be used by the PolyORB DSA
22339         implementation.
22340         (Insert_Partition_Check): Remove fossile code.
22341         (First_RCI_Subprogram_Id): Document this constant.
22342         (Add_RAS_Access_TSS): Correct the setting of the Etype of the
22343         RAS_Access TSS.
22344         (Get_Pkg_Name_String): Remove subprogram. Usage occurrences are
22345         replaced with calls to Get_Library_Unit_Name_String. Previously there
22346         were several instances of the same code in different locations in the
22347         compiler; this checkin completes the replacement of all of these
22348         instances with calls to a common subprogram.
22349         Minor reformatting.
22350
22351         * sem_dist.adb: Remove comment noting that RPC receiver generation
22352         should be disabled for RACWs that implement RASs.
22353         (Process_Partition_Id): Use new subprogram Get_Library_Unit_Name_String.
22354
22355         * sem_util.ads, sem_util.adb (Has_Stream): New function
22356         (Get_Library_Unit_Name_String): New subprogram to retrieve the fully
22357         qualified name of a library unit into the name buffer.
22358         (Note_Possible_Modification): Generate a reference only
22359         if the context comes from source.
22360
22361         * snames.ads (PCS_Names): New subtype corresponding to names of
22362         supported implementations of the Partition Communication Subsystem
22363         (PCS) (i.e. the runtime library support modules for the distributed
22364         systems annex).
22365
22366 2004-11-18  Robert Dewar  <dewar@adacore.com>
22367             Ed Schonberg  <schonberg@adacore.com>
22368
22369         * einfo.ads, einfo.adb: Remove Is_Psected flag, no longer used
22370         (Has_Rep_Pragma): New function
22371         (Has_Attribute_Definition_Clause): New function
22372         (Record_Rep_Pragma): Moved here from sem_ch13.adb
22373         (Get_Rep_Pragma): Remove junk kludge for Stream_Convert pragma
22374
22375         * sem_ch13.ads, sem_ch13.adb (Record_Rep_Pragma): Moved to einfo.adb
22376
22377         * exp_prag.adb: (Expand_Pragma_Common_Object): New procedure
22378         (Expand_Pragma_Psect_Object): New procedure
22379         These procedures contain the revised and cleaned up processing for
22380         these two pragmas. This processing was formerly in Sem_Prag, but
22381         is more appropriately moved here. The cleanup involves making sure
22382         that the pragmas are properly attached to the tree, and that no
22383         nodes are improperly shared.
22384
22385         * sem_prag.adb: Move expansion of Common_Object and Psect_Object
22386         pragmas to Exp_Prag, which is more appropriate.
22387         Attach these two pragmas to the Rep_Item chain Use Rep_Item chain to
22388         check for duplicates Remove use of Is_Psected flag, no longer needed.
22389         Use new Make_String_Literal function with string.
22390
22391         * exp_attr.adb (Expand_Fpt_Attribute): The floating-point attributes
22392         that are functions return universal values, that have to be converted
22393         to the context type.
22394         Use new Make_String_Literal function with string.
22395         (Get_Stream_Convert_Pragma): New function, replaces the use of
22396         Get_Rep_Pragma, which had to be kludged to work in this case.
22397
22398         * freeze.adb: Use new Has_Rep_Pragma function
22399
22400         * exp_intr.adb, exp_ch3.adb, sem_attr.adb: Use new Make_String_Literal
22401         function with string.
22402         Use new Has_Rep_Pragma function.
22403
22404         * tbuild.ads, tbuild.adb (Make_String_Literal): New function, takes
22405         string argument.
22406
22407 2004-11-18  Robert Dewar  <dewar@adacore.com>
22408
22409         * errout.ads, errout.adb: (First_Sloc): New function
22410
22411         * par-ch5.adb (P_Condition): Check for redundant parens is now a style
22412         check (-gnatyx) instead of being included as a redundant construct
22413         warning.
22414
22415         * sem_ch6.adb: Change name Style_Check_Subprogram_Order to
22416         Style_Check_Order_Subprograms.
22417
22418         * style.ads, styleg.ads, styleg.adb, styleg-c.adb, stylesw.ads,
22419         stylesw.adb: Add Style_Check_Xtra_Parens
22420
22421         * usage.adb: Add line for -gnatyx (check extra parens)
22422
22423         * vms_data.ads: Add entry for STYLE_CHECKS=XTRA_PARENS => -gnatyx
22424
22425 2004-11-18  Ed Schonberg  <schonberg@adacore.com>
22426             Robert Dewar  <dewar@adacore.com>
22427
22428         * exp_ch4.adb (Expand_N_Selected_Component): If the component is the
22429         discriminant of a constrained subtype, analyze the copy of the
22430         corresponding constraint, because in some cases it may be only
22431         partially analyzed.
22432         Removes long-lived ??? comments.
22433
22434         * exp_ch7.adb (Establish_Transient_Scope): Remove complex code that
22435         handled controlled or secondary-stack expressions within the
22436         iteration_scheme of a loop.
22437
22438         * sem_ch5.adb (Analyze_Iteration_Scheme): Build a block to evaluate
22439         bounds that may contain functions calls, to prevent memory leaks when
22440         the bound contains a call to a function that uses the secondary stack.
22441         (Check_Complex_Bounds): Subsidiary of Analyze_Iteration_Scheme, to
22442         generate temporaries for loop bounds that might contain function calls
22443         that require secondary stack and/or finalization actions.
22444
22445         * sem_ch4.adb (Analyze_Indexed_Component_Form): If the prefix is a
22446         selected component and the selector is overloadable (not just a
22447         function) treat as function call, Analyze_Call will disambiguate if
22448         necessary.
22449         (Analyze_Selected_Component): Do not generate an actual subtype for the
22450         selected component if expansion is disabled. The actual subtype is only
22451         needed for constraint checks.
22452         (Analyze_Allocator): If restriction No_Streams is set, then do
22453         not permit objects to be declared of a stream type, or of a
22454         composite type containing a stream.
22455
22456         * restrict.ads: Remove the a-stream entry from Unit_Array, since
22457         No_Streams no longer prohibits with'ing this package.
22458
22459         * sem_ch3.adb (Build_Derived_Record_Type): If the parent type has
22460         discriminants, but the parent base has unknown discriminants, there is
22461         no discriminant constraint to inherit. Such a discrepancy can arise
22462         when the actual for a formal type with unknown discriminants is a
22463         similar private type whose full view has discriminants.
22464         (Analyze_Object_Declaration): If restriction No_Streams is set, then
22465         do not permit objects to be declared of a stream type, or of a
22466         composite type containing a stream.
22467
22468 2004-11-18  Ed Schonberg  <schonberg@adacore.com>
22469
22470         * exp_dbug.ads: Update documentation to reflect simpler encoding for
22471         protected operations.
22472
22473         * exp_ch9.adb (Build_Selected_Name): Do not include "PT" suffix in
22474         generated name, it complicates decoding in gdb and hinders debugging
22475         of protected operations.
22476         (Build_Barrier_Function_Specification): Set the Needs_Debug_Info
22477         flag for the protected entry barrier function.
22478         (Build_Protected_Entry_Specification): Set the Needs_Debug_Info
22479         flag for the protected entry function.
22480
22481 2004-11-18  Nicolas Setton  <setton@adacore.com>
22482
22483         * expect.c: Define __unix__ when __APPLE__ is defined.
22484
22485         * Makefile.in: Inform the value of the variable GMEM_LIB in the
22486         Darwin-specific section.
22487
22488         * lang-specs.h: Change the placement of the %1 marker.
22489         Works around the fact that gcc adds -fPIC by default under Darwin.
22490
22491 2004-11-18  Ed Schonberg  <schonberg@adacore.com>
22492
22493         * exp_pakd.adb (Convert_To_PAT_Type): After replacing the original
22494         type of the object with the packed array type, set the Analyzed flag
22495         on the object if it is an entity or simple indexed component, to avoid
22496         spurious type errors.
22497
22498 2004-11-18  Gary Dismukes  <dismukes@adacore.com>
22499
22500         * gnat1drv.adb, gnatbind.adb, gnatchop.adb, gnatfind.adb, gnatlink.adb,
22501         gnatls.adb, gnatxref.adb, gprep.adb: Output the copyright message on a
22502         separate line from the version message.
22503
22504 2004-11-18  Ed Falis  <falis@adacore.com>
22505
22506         * init.c (__gnat_map_signal): map SIGSEGV to Storage_Error for AE653
22507         vthreads.
22508         (init_float): Eliminate initialization of floating point status for
22509         AE653. The instructions have no effect for vThreads.
22510
22511 2004-11-18  Vincent Celier  <celier@adacore.com>
22512
22513         * make.adb (Gnatmake): Invoke gnatlink with -shared-libgcc when
22514         gnatbind is invoked with -shared.
22515
22516 2004-11-18  Jose Ruiz  <ruiz@adacore.com>
22517
22518         * s-tposen.adb (Lock_Entry): Remove the code for raising Program_Error
22519         for Detect_Blocking which is redundant with the check done within the
22520         procedure Protected_Single_Entry_Call.
22521         (Lock_Read_Only_Entry): Remove the code for raising Program_Error for
22522         Detect_Blocking which is redundant with the check done within the
22523         procedure Protected_Single_Entry_Call.
22524
22525 2004-11-18  Vincent Celier  <celier@adacore.com>
22526
22527         * makegpr.adb (Compile): Put the compiling switches (in package
22528         Compiler and on the command line) immediately after "-c", instead of
22529         at the end of the command line invocation of the compiler, when
22530         compiling a non-Ada file.
22531         (Build_Global_Archive): When there is no need to rebuild the archive,
22532         set Global_Archive_Exists, so that the archive is passed to the linker
22533         if one is needed.
22534
22535 2004-11-18  Robert Dewar  <dewar@adacore.com>
22536             Sergey Rybin  <rybin@adacore.com>
22537
22538         * gnat_ugn.texi:
22539         Remove extra paren check from list of checks for redundant constructs
22540         Add documentation of new -gnatyx style check (check extra parens)
22541         Remove paragraph about gnatelim debug options.
22542
22543         * gnat_rm.texi: Document that Ada.Streams now forbids creating stream
22544         objects rather than forbidding dependencies on the package Ada.Streams.
22545
22546         * sinfo.ads: Add ??? note that we should document pragmas passed to
22547         back end.
22548
22549         * g-expect.ads: Fix a few typos in the comments.
22550
22551 2004-11-09  Joseph S. Myers  <joseph@codesourcery.com>
22552
22553         * misc.c (gnat_handle_option): Use %< and %> for quoting in
22554         warning message.
22555
22556 2004-11-08  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
22557
22558         * a-numaux-x86.adb (Tan): Fix fdivp syntax.
22559
22560 2004-11-07  Andreas Schwab  <schwab@suse.de>
22561
22562         * Makefile.in (install-gnatlib): Remove spurious hyphen.
22563
22564 2004-11-02  Andrew Pinski  <pinskia@physics.uc.edu>
22565
22566         PR ada/18228
22567         * Makefile.in (darwin): Set soext to .dylib.
22568
22569 2004-10-26  Vincent Celier  <celier@gnat.com>
22570             Thomas Quinot   <quinot@act-europe.fr>
22571
22572         * g-socthi-vms.adb, g-socthi-mingw.adb, g-socthi-vxworks.ads:
22573         (C_Writev): Change MSG_Forced_Flags to Constants.MSG_Forced_Flags as
22574         there is no use of GNAT.Sockets.Constants.
22575         Remove remaining pragma Import for C_Write
22576         Remove C_Read and C_Write from internal implementation unit
22577         GNAT.Sockets.Thin, as their usage for sockets is non-portable (using
22578         the read and write functions from the system runtime library is fine
22579         on UNIX but won't work under Windows).
22580
22581         * g-socket.adb: (Abort_Selector): Use C_Send instead of C_Write.
22582         (Check_Selector): Use C_Recv instead of C_Read.
22583         Selectors are the GNAT.Sockets abstraction to perform a select()
22584         call on a set of descriptors. To allow abortion of an ongoing
22585         select operation, some data is written to a dedicated socket that
22586         is always monitored.
22587         Under Windows, the write and read library functions cannot operate
22588         on sockets, so we need to use send and recv instead, which is portable
22589         across all supported platforms.
22590
22591         * g-socthi.ads: Remove C_Read and C_Write from internal implementation
22592         unit GNAT.Sockets.Thin, as their usage for sockets is non-portable
22593         (using the read and write functions from the system runtime library is
22594         fine on UNIX but won't work under Windows).
22595
22596 2004-10-26  Nicolas Setton  <setton@act-europe.fr>
22597
22598         * mlib-tgt-darwin.adb: New file.
22599
22600         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
22601         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
22602         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
22603         mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb (Archive_Indexer_Options): New
22604         subprogram body.
22605
22606         * Makefile.in: Add support for building shared libraries under Darwin.
22607         (EXTRA_GNATRTL_NONTASKING_OBJS, ppc-vxworks): Add s-vxwexc.o, containing
22608         the low level EH init subprogram to be called from __gnat_initialize.
22609
22610         * mlib-tgt.ads, mlib-tgt.adb (Archive_Indexer_Options): New subprogram,
22611         indicates which options to pass to the archive indexer.
22612
22613         * mlib-utl.adb: Add support for calling ranlib with additional
22614         options. This is needed for instance under Mac OS X.
22615         (Ranlib_Options): New global variable, used to store the potential
22616         options to pass to ranlib.
22617         (Ar): Use Ranlib_Options when spawning ranlib.
22618         (Initialize): Set the value of ranlib option.
22619
22620 2004-10-26  Olivier Hainque  <hainque@act-europe.fr>
22621
22622         * s-parame-linux.adb (Minimum_Stack_Size): Adjust to return 12K
22623         instead of 8K, to reflect the real potential needs for stack-checking
22624         in the ZCX case.
22625
22626 2004-10-26  Pascal Obry  <obry@gnat.com>
22627
22628         * s-parame-mingw.adb (Default_Stack_Size): Add some comments.
22629
22630         * s-taprop-mingw.adb (Create_Task): Set initial stack size to 1024. On
22631         Windows only the initial thread stack size can be set so it is good to
22632         start we a low stack size.
22633         The OS will adjust the size as needed.
22634
22635 2004-10-26  Olivier Hainque  <hainque@act-europe.fr>
22636             Nicolas Setton  <setton@act-europe.fr>
22637
22638         * expect.c, adaint.c, link.c, sysdep.c (unix sections): Guard with
22639         "__unix__" instead of "unix".
22640         The latter is implicitly defined by gcc3.2 but not by gcc >= 3.4, so the
22641         sections were just mistakenly ignored. The former is
22642         implicitely defined by gcc2.8, gcc3.2 and gcc3.4.
22643         Update #ifdef preprocessor macro to detect the symbol __hpux__ instead
22644         of hpux. This prevents an unwanted definition of the symbol
22645         convert_addresses in adaint.o.
22646
22647 2004-10-26  Gary Dismukes  <dismukes@gnat.com>
22648
22649         * a-exexpr.adb (Setup_Key): Change initial value to 16#DEAD#, for
22650         compatibility with type Unwind_Word on 16-bit targets such as AAMP.
22651
22652 2004-10-26  Cyrille Comar  <comar@act-europe.fr>
22653
22654         * a-filico.ads, a-filico.adb: fix incorrect header.
22655
22656 2004-10-26  Javier Miranda  <miranda@gnat.com>
22657
22658         * a-ststio.ads: Fix typo in identifier
22659
22660 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
22661
22662         * sem_ch4.adb: Minor reformatting.
22663
22664 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
22665
22666         * checks.adb (Expr_Known_Valid): If floating-point validity checks are
22667         enabled, check the result of unary and binary operations when the
22668         expression is the right-hand side of an assignment.
22669
22670 2004-10-26  Vincent Celier  <celier@gnat.com>
22671
22672         * clean.adb (Delete): Do not output warnings when in quiet output and
22673         not in verbose mode.
22674         (Force_Deletions): New Boolean flag, defaulted to False
22675         (Delete): Only delete a file if it is writable, and when
22676         Force_Deletions is True.
22677         (Parse_Cmd_Line): New switch -f: set Force_Deletions to True
22678         (Usage): Line for new switch -f
22679         (Clean_Directory): Use GNAT.OS_Lib.Set_Writable instead of rolling our
22680         own.
22681
22682 2004-10-26  Eric Botcazou  <ebotcazou@act-europe.fr>
22683
22684         * decl.c (gnat_to_gnu_field): Use the type of the inner object for a
22685         JM type only if its size matches that of the wrapper.  When a size is
22686         prescribed and the field is not aliased, remove the wrapper of a JM
22687         type only if the size is not greater than that of the packed array.
22688         (gnat_to_gnu_entity): Change the extension of packed array wrappers
22689         from LJM to JM.
22690
22691 2004-10-26  Geert Bosch  <bosch@gnat.com>
22692
22693         * eval_fat.adb (Eps_Model,Eps_Denorm): Remove, no longer used.
22694         (Succ): Re-implement using Scaling, Exponent and Ceiling attributes.
22695         (Pred): Implement in terms of Succ.
22696
22697 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
22698
22699         * exp_aggr.adb (Safe_Component): An aggregate component that is an
22700         unchecked conversion is safe for in-place use if the expression of the
22701         conversion is safe.
22702         (Expand_Array_Aggregate): An aggregate that initializes an allocator may
22703         be expandable in place even if the aggregate does not come from source.
22704         (Convert_Array_Aggr_In_Allocator): New procedure to initialize the
22705         designated object of an allocator in place, rather than building it
22706         first on the stack. The previous scheme forces a full copy of the array,
22707         and may be altogether unsusable if the size of the array is too large
22708         for stack allocation.
22709
22710 2004-10-26  Robert Dewar  <dewar@gnat.com>
22711
22712         * exp_ch4.adb (Expand_N_Op_Eq): Make sure we expand a loop for array
22713         compares if the component is atomic.
22714
22715         * exp_ch5.adb (Expand_Assign_Array): Make sure we expand a loop for
22716         array assignment if the component type is atomic.
22717
22718 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
22719             Eric Botcazou  <ebotcazou@act-europe.fr>
22720
22721         * exp_ch6.adb (Expand_Actuals): If the actual for an in-out parameter
22722         is aliased and is a by_reference type, do not pass by copy.
22723         (Expand_N_Function_Call) <Rhs_Of_Assign_Or_Decl>: New function to
22724         detect whether the call is in the right side of an assignment or
22725         the expression of an object declaration.  Recurse on component
22726         association within aggregates.
22727         Call it in the condition that determines whether the temporary is
22728         necessary for correct stack-checking.
22729
22730 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
22731
22732         * exp_dist.adb (Build_General_Calling_Stubs): New formal parameter
22733         RACW_Type, used in the PolyORB version.
22734         Rename RCI_Info to RCI_Locator, for consistency between the PolyORB
22735         version and the GARLIC version.
22736
22737         * snames.ads, snames.adb, s-parint.ads, s-parint.adb:
22738         Rename RCI_Info to RCI_Locator for better consistency between the
22739         GARLIC and PolyORB versions of the distributed systems annex.
22740         (DSA_Implementation_Name): This enumeration lists the possible
22741         implementations of the Partition Communication Subsystem for the
22742         Distributed Systems Annex (DSA). The three available implementations
22743         are the dummy stub implementation (No_DSA), and two versions based on
22744         two different distribution runtime libraries: GARLIC and PolyORB. Both
22745         the GARLIC PCS and the PolyORB PCS are part of the GLADE distribution
22746         technology.
22747         Change the literal GLADE_DSA to GARLIC_DSA to accurately describe
22748         that organization.
22749
22750         * rtsfind.ads: Rename RCI_Info to RCI_Locator for better consistency
22751         between the GARLIC and PolyORB versions of the distributed systems
22752         annex.
22753         Remove RE_Unbounded_Reclaim_Pool since it is unused.
22754
22755 2004-10-26  Gary Dismukes  <dismukes@gnat.com>
22756
22757         * gnat1drv.adb: Suppress calling the back end when
22758         Frontend_Layout_On_Target is true.
22759
22760 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
22761
22762         * g-os_lib.ads, g-os_lib.adb (Set_Executable, Set_Writable,
22763         Set_Read_Only): New subprograms.
22764         These new routines allow the user to set or unset the Owner execute
22765         and Owner write permission flags on a file.
22766
22767         * makegpr.adb, mlib.adb, mlib-prj.adb: Use
22768         GNAT.OS_Lib.Set_Executable instead of rolling our own.
22769
22770 2004-10-26  Matthew Gingell  <gingell@gnat.com>
22771
22772         * i-cpp.ads, i-cpp.adb: Change layout of VTable for new C++ ABI.
22773
22774 2004-10-26  Pascal Obry  <obry@gnat.com>
22775
22776         * init.c (__gnat_error_handler) [Win32]: Instead of trying to read the
22777         memory before the faulting page we properly test the process read
22778         access for this address using appropriate Win32 routine.
22779         (HPUX sections): guard with "__hpux__" instead of "hpux".
22780
22781 2004-10-26  Robert Dewar  <dewar@gnat.com>
22782
22783         * lib-xref.adb (Generate_Reference): Don't complain about reference to
22784         entry parameter if pragma Unreferenced set, since we do not properly
22785         handle the case of multiple parameters.
22786
22787 2004-10-26  Vincent Celier  <celier@gnat.com>
22788
22789         * prj-env.adb: (Contains_ALI_Files): New Boolean function
22790         (Ada_Objects_Path.Add): For a library project, add to the object path
22791         the library directory only if there is no object directory or if the
22792         library directory contains ALI files.
22793         (Set_Ada_Paths.Add.Recursive_Add): Ditto
22794
22795 2004-10-26  Vincent Celier  <celier@gnat.com>
22796
22797         * prj-nmsc.adb (Language_Independent_Check): Do not forbid virtual
22798         extension of library projects.
22799
22800         * prj-part.adb: If env var ADA_PROJECT_PATH is not defined, project
22801         path defaults to ".:<prefix>/lib/gnat".
22802         (Parse): For an extending all project, allow direct import of a project
22803         that is virtually extended.
22804
22805         * prj-proc.adb (Imported_Or_Extended_Project_From): If a project with
22806         the specified name is directly imported, return its ID. Otherwise, if
22807         an extension of this project is imported, return the ID of the
22808         extension.
22809
22810 2004-10-26  Robert Dewar  <dewar@gnat.com>
22811
22812         * s-arit64.adb: (Le3): New function, used by Scaled_Divide
22813         (Sub3): New procedure, used by Scaled_Divide
22814         (Scaled_Divide): Substantial rewrite, avoid duplicated code, and also
22815         correct more than one instance of failure to propagate carries
22816         correctly.
22817         (Double_Divide): Handle overflow case of largest negative number
22818         divided by minus one.
22819
22820         * s-arit64.ads (Double_Divide): Document that overflow can occur in
22821         the case of a quotient value out of range.
22822         Fix comments.
22823
22824 2004-10-26  Robert Dewar  <dewar@gnat.com>
22825
22826         * s-bitops.adb (Bit_Eq): Remove redundant check.
22827
22828         * s-bitops.ads: Minor comment updates
22829         Change some occurrences of Address to System.Address
22830
22831         * s-carsi8.ads: Fix minor cut-and-paste error in comments
22832
22833 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
22834
22835         * sem_attr.adb (Resolve_Attribute, case 'Access): Apply proper
22836         accessibility check to prefix that is a protected operation.
22837
22838 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
22839
22840         * sem_ch10.adb (Optional_Subunit): If file of expected subunit is
22841         empty, post message on stub.
22842
22843 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
22844             Javier Miranda  <miranda@gnat.com>
22845
22846         * sem_ch12.adb (In_Main_Context): Predicate to determine whether the
22847         current instance appears within a unit that is directly in the context
22848         of the main unit.
22849         Used to determine whether the body of the instance should be analyzed
22850         immediately after its spec, to make its subprogram bodies available
22851         for front-end inlining.
22852         (Analyze_Formal_Array_Type): Cleanup condition that checks that range
22853         constraint is not allowed on the component type (AARM 12.5.3(3))
22854
22855 2004-10-26  Cyrille Comar  <comar@act-europe.fr>
22856
22857         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case
22858         'Storage_Pool): enhance, document & limit detection of non-sharable
22859         internal pools.
22860
22861         * impunit.adb: Make System.Pool_Global and System.Pool_Local visible.
22862
22863         * s-pooglo.ads: Add more documentation now that this pool is properly
22864         documented.
22865
22866 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
22867
22868         * sem_ch3.adb (Complete_Private_Subtype): If the full view is a task
22869         or protected type with discriminants, do not constrain the
22870         corresponding record type if the subtype declaration has no
22871         discriminant constraints. This can be the case in source code, or in
22872         the subtype declaration created to rename an actual type within an
22873         instantiation.
22874
22875 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
22876
22877         * sem_ch6.adb (Analyze_Subprogram_Body): If body is a subunit for a
22878         different kind of stub (possibly wrong name for file), do not check
22879         for conformance.
22880         (Uses_Secondary_Stack): New subsidiary to Build_Body_To_Inline. If body
22881         includes call to some function that returns an unconstrained type, do
22882         not inline.
22883
22884 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
22885
22886         * sem_elab.adb (Check_Elab_Call): Do not check a call that does not
22887         appear in the code for the main unit. Dependencies among units in the
22888         context of the main unit are established when those other units are
22889         compiled. Otherwise spurious elaboration constraints can generate
22890         incorrect elaboration circularities.
22891
22892 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
22893             Ed Schonberg   <schonberg@gnat.com>
22894
22895         * sem_util.adb (Is_Aliased_View): Defend against the case where this
22896         subprogram is called with a parameter that is not an object name. This
22897         situation arises for some cases of illegal code, which is diagnosed
22898         later, and in this case it is wrong to call Is_Aliased, as that might
22899         cause a compiler crash.
22900         (Explain_Limited_Type): Refine previous fix to include
22901         inherited components of derived types, to provide complete information.
22902
22903         * exp_ch9.adb (Set_Privals): Set the Ekind of the actual object that
22904         is the prival for a protected object.
22905         It is necessary to mark this entity as a variable, in addition to
22906         flagging it as Aliased, because Sem_Util.Is_Aliased_View has been
22907         modified to avoid checking the Aliased flag on entities that are not
22908         objects. (Checking that flag for non-objects is erroneous and could
22909         lead to a compiler crash).
22910
22911 2004-10-26  Robert Dewar  <dewar@gnat.com>
22912
22913         * s-fatgen.adb (Pred): Fix redundant test for X > 0.0, since if
22914         X_Frac = 0.5, then we know that the number X must be positive.
22915         (Succ): Remove the same redundant test, and also fix the primary test
22916         to test for X_Frac = -0.5 (used to be 0.5) which is clearly wrong.
22917         Minor reformatting
22918         (Decompose): Add fuller comments to spec
22919
22920 2004-10-26  Pascal Obry  <obry@gnat.com>
22921
22922         * tracebak.c (IS_BAD_PTR): Use IsBadCodePtr on Win32 to check for ptr
22923         validity (process must have read access). Set to 0 in all other cases.
22924         (STOP_FRAME): Now check for ptr validity to avoid a segmentation
22925         violation on Win32.
22926         (VALID_STACK_FRAME): Check for ptr validity on Win32 to avoid a
22927         segmentation violation.
22928
22929 2004-10-26  Eric Botcazou  <ebotcazou@act-europe.fr>
22930
22931         * trans.c (call_to_gnu): For an (in-)out parameter passed by reference
22932         whose type is a constructed subtype of an aliased object with an
22933         unconstrained nominal subtype, convert the actual to the constructed
22934         subtype before taking its address.
22935
22936 2004-10-26  Vincent Celier  <celier@gnat.com>
22937
22938         * a-dirval.ads, a-dirval.adb, a-dirval-vms.adb, a-dirval-mingw.adb
22939         (Is_Path_Name_Case_Sensitive): New function
22940
22941         * a-direct.adb (To_Lower_If_Case_Insensitive): New procedure
22942         (Base_Name, Simple_Name, Current_Directory, Compose,
22943         Containing_Directory, Full_Name): Call To_Lower_If_Case_Insensitive on
22944         the result.
22945
22946 2004-10-26  Cyrille Comar    <comar@act-europe.fr>
22947             Vasiliy Fofanov  <fofanov@act-europe.fr>
22948             Vincent Celier   <celier@gnat.com>
22949
22950         * gnat_ugn.texi: Generalize "finding memory problems" section into a
22951         "memory management issues" section and document some of the useful
22952         memory pools provided as part of the GNAT library.
22953         Remove "virtual" from declaration of A::method2 in
22954         the simple example of Ada/C++ mixed system.
22955         Library Projects may be virtually extended: their virtual extensions
22956         are not Library Projects.
22957         Added section on extending project hierarchies.
22958
22959 2004-10-19  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
22960
22961         * adaint.c (__gnat_get_libraries_from_registry): Cast value
22962         to LPBYTE.
22963         (__gnat_portable_spawn): Remove const.
22964
22965         * mingw32.h (MAXPATHLEN): Check for previous definition.
22966
22967 2004-10-17  Matthias Klose  <doko@debian.org>
22968
22969         * gnatvsn.ads: Set gnat library version to 4.0.
22970
22971 2004-10-05  Vincent Celier  <celier@gnat.com>
22972
22973         * mlib-tgt.ads: (Build_Dynamic_Library): New parameter Options_2
22974
22975 2004-10-04  Laurent GUERBY <laurent@guerby.net>
22976
22977         PR ada/15156
22978         * Makefile.in: Define and use RANLIB_FLAGS.
22979
22980 2004-10-04  Pascal Obry  <obry@gnat.com>
22981
22982         * tracebak.c: Always set LOWEST_ADDR to 0 on Win32 (as done on all
22983         other x86 platforms).
22984
22985 2004-10-04  Olivier Hainque  <hainque@act-europe.fr>
22986
22987         * s-tassta.adb (Task_Wrapper): Make it Convention C, which makes sense
22988         in general and triggers stack alignment adjustment for thread entry
22989         points on targets where this is necessary.
22990
22991 2004-10-04  Bernard Banner  <banner@gnat.com>
22992
22993         PR ada/13897
22994         * Makefile.in: Add section for powerpc linux
22995         Add variant i-vxwork-x86.ads
22996
22997         * i-vxwork-x86.ads, system-linux-ppc.ads: New files.
22998
22999 2004-10-04  Olivier Hainque  <hainque@act-europe.fr>
23000
23001         * init.c (__gnat_initialize): Call an Ada subprogram to perform the
23002         table registration calls when need be. Ensures no reference to the crt
23003         ctors symbol are issued in the SJLJ case, which avoids possible
23004         undefined symbol errors in the case of modules to be statically linked
23005         with the kernel.
23006
23007 2004-10-04  Javier Miranda  <miranda@gnat.com>
23008
23009         * sem_ch4.adb (Try_Object_Operation): Reformat the code to expand
23010         in-line the code corresponding to subprogram Analyze_Actuals. In
23011         addition, analyze the actuals only in case of subprogram call.
23012
23013 2004-10-04  Ed Falis  <falis@gnat.com>
23014
23015         * s-vxwork-x86.ads: (FP_CONTEXT): Defined to be correct size
23016
23017 2004-10-04  Sergey Rybin  <rybin@act-europe.fr>
23018
23019         * g-dirope.ads (Base_Name): Clarify the meaning of the Suffix parameter
23020         in the documentation.
23021
23022 2004-10-04  Robert Dewar  <dewar@gnat.com>
23023
23024         * sem_ch5.adb (Unblocked_Exit_Count): Now used for blocks as well as
23025         IF and CASE.
23026         (Analyze_Block_Statement): Add circuitry to detect following dead code
23027         (Check_Unreachable_Code): Handle case of block exit
23028
23029 2004-10-04  Robert Dewar  <dewar@gnat.com>
23030
23031         * g-spipat.adb: (XMatch): Avoid warning for Logic_Error call
23032         (XMatchD): Avoid warning for Logic_Error call
23033
23034 2004-10-04  Robert Dewar  <dewar@gnat.com>
23035
23036         * exp_ch4.adb (Is_Procedure_Actual): Correct so that this does not
23037         consider expressions buried within a procedure actual to be an actual.
23038         This caused some blowups with uses of packed slices within a procedure
23039         actual.
23040
23041 2004-10-04  Robert Dewar  <dewar@gnat.com>
23042
23043         * exp_ch3.adb (Needs_Simple_Initialization): Modular packed arrays no
23044         longer need to be initialized to zero.
23045         (Get_Simple_Init_Val): Modular packed arrays no longer need to be
23046         initialized to zero.
23047
23048         * checks.adb (Expr_Known_Valid): Packed arrays are now always
23049         considered valid, even if the representation is modular. That's correct
23050         now that we no longer initialize packed modular arrays to zero.
23051
23052         * exp_dbug.ads: Clarify documentation on handling of PAD and JM
23053         suffixes. These are now documented as the only cases in which the
23054         debugger ignores outer records.
23055         Previously, the spec allowed arbitrary suffixes for this purpose.
23056         Change name of LJM to JM for packed array pad records
23057         Create separate section on packed array handling, and add a whole new
23058         set of comments to this section describing the situation with packed
23059         modular types and justification requirements depending on endianness.
23060
23061 2004-10-04  Robert Dewar  <dewar@gnat.com>
23062
23063         * a-except.adb: Add a comment for last change
23064
23065         * einfo.ads: Minor spelling correction in comment
23066
23067         * exp_pakd.adb, gnatdll.adb, prj-attr.ads: Minor reformatting
23068
23069         * sem_ch11.adb: Fix a case of using | instead of \ for continuation
23070         messages.
23071
23072         * sem_util.ads: Minor comment update
23073
23074 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
23075
23076         * sem_ch6.adb (Analyze_Subprogram_Body): Do not treat Inline as
23077         Inline_Always when in Configurable_Run_Time mode.
23078
23079         * sem_prag.adb (Process_Convention): If entity is an inherited
23080         subprogram, apply convention to parent subprogram if in same scope.
23081         (Analyze_Pragma, case Inline): Do not treat Inline as Inline_Always
23082         when in Configurable_Run_Time mode.
23083
23084 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
23085
23086         * sem_ch3.adb (Build_Derived_Record_Type): Set First/Last entity of
23087         class_wide type after component list has been inherited.
23088
23089 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
23090
23091         * sem_ch12.adb (Check_Generic_Actuals): New predicate
23092         Denotes_Previous_Actual, to handle properly the case of a private
23093         actual that is also the component type of a subsequent array actual.
23094         The visibility status of the first actual is not affected when the
23095         second is installed.
23096         (Process_Nested_Formal): Subsidiary of Instantiate_Formal_Package, to
23097         make fully recursive the treatment of formals of packages declared
23098         with a box.
23099         (Restore_Nested_Formal): Subsidiary of Restore_Private_Views, to undo
23100         the above on exit from an instantiation.
23101         (Denotes_Formal_Package): When called from Restore_Private_Views, ignore
23102         current instantiation which is now complete.
23103         (Analyze_Package_Instantiation): No instantiated body is needed if the
23104         main unit is generic. Efficient, and avoid anomalies when a instance
23105         appears in a package accessed through rtsfind.
23106
23107 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
23108
23109         * exp_ch6.adb (Expand_N_Function_Call): If stack checking is enabled,
23110         do not generate a declaration for a temporary if the call is part of a
23111         library-level instantiation.
23112
23113 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
23114
23115         * sem_util.adb (Explain_Limited_Type): Ignore internal components when
23116         searching for a limited component to flag.
23117
23118         * exp_attr.adb (Freeze_Stream_Subprogram): Subsidiary procedure to
23119         expansion of Input, to account for the fact that the implicit call
23120         generated by the attribute reference must freeze the user-defined
23121         stream subprogram. This is only relevant to 'Input, because it can
23122         appear in an object declaration, prior to the body of the subprogram.
23123
23124         * sem_ch13.adb (Rep_Item_Too_Late): Make the error non-serious, so that
23125         expansion can proceed and further errors uncovered.
23126         (Minor clean up): Fix cases of using | instead of \ for continuation
23127         messages.
23128
23129 2004-10-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
23130
23131         * cuintp.c, decl.c, utils2.c: Use gcc_assert and gcc_unreachable.
23132
23133         * trans.c (assoc_to_constructor): Fix unused var warning if no checking.
23134         (gnat_gimplify_expr, case ADDR_EXPR): Fix error in last change.
23135         Use gcc_assert and gcc_unreachable.
23136
23137         * decl.c (gnat_to_gnu_entity, case object): Check and process a
23138         specified alignment before validating size.
23139         (gnat_to_gnu_entity) <E_Modular_Integer_Subtype>: Create a
23140         stripped-down declaration for the type of the inner field when making
23141         a JM type.
23142
23143         * utils.c (finish_record_type): Do not compute the size in units
23144         incrementally. Instead compute it once for the rep clause case.
23145         Use gcc_assert and gcc_unreachable.
23146
23147 2004-10-04  Vincent Celier  <celier@gnat.com>
23148
23149         * a-dirval-mingw.adb (Invalid_Character): Add '\' as invalid character
23150         in file name.
23151         (Is_Valid_Path_Name): Take '/' as a directory separator.
23152
23153 2004-10-04  Vincent Celier  <celier@gnat.com>
23154
23155         * prj-part.adb (Parse_Single_Project): Call Is_Extending_All
23156         (Extended_Project) only if Extended_Project is defined, to avoid
23157         assertion error.
23158         (Post_Parse_Context_Clause): Always call Set_Path_Name_Of with a
23159         resolved path.
23160         (Parse_Single_Project): Ditto.
23161
23162         * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Do not call
23163         Add_To_Project_Path for virtual projects.
23164
23165 2004-10-04  Vincent Celier  <celier@gnat.com>
23166
23167         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
23168         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
23169         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb,
23170         mlib-tgt-vxworks.adb, mlib-tgt.adb (Build_Dynamic_Library): New
23171         parameter Options_2.
23172
23173         * mlib-prj.ads, mlib-prj.adb (Build_Library): Call
23174         Build_Dynamic_Library with an empty Options_2.
23175
23176         * mlib-utl.ads, mlib-utl.adb (Gcc): Parameter Options_2 has no
23177         default anymore.
23178
23179         * makegpr.adb (Get_Imported_Directories.add): Remove trailing
23180         directory separator, if any.
23181         (Gprmake): Do not allow mains on the command line for library projects.
23182         Do not attempt to link when the project is a library project.
23183         (Library_Opts): New table to store Library_Options.
23184         (Build_Library): If Library_Options is specified, pass these options
23185         when building a shared library.
23186
23187 2004-10-04  Jose Ruiz  <ruiz@act-europe.fr>
23188
23189         * s-tposen.adb (Service_Entry): The object must be always unlocked at
23190         the end of this procedure now that the unlock operation was inserted
23191         by the expander.
23192
23193 2004-10-04  Jose Ruiz  <ruiz@act-europe.fr>
23194
23195         * targparm.ads, targparm.adb (Targparm_Tags): Add PAS value
23196         corresponding to the Preallocated_Stacks flags in System.
23197         (Get_Target_Parameters): Including the processing for
23198         Preallocated_Stacks.
23199
23200         * system.ads, system-vxworks-x86.ads, system-darwin-ppc.ads,
23201         system-vms_64.ads, system-unixware.ads, system-linux-ia64.ads,
23202         system-freebsd-x86.ads, system-lynxos-ppc.ads, system-lynxos-x86.ads,
23203         system-linux-x86_64.ads, system-tru64.ads, system-aix.ads,
23204         system-vxworks-sparcv9.ads, system-vxworks-xscale.ads,
23205         system-solaris-x86.ads, system-irix-o32.ads, system-irix-n32.ads,
23206         system-hpux.ads, system-vxworks-m68k.ads, system-linux-x86.ads,
23207         system-vxworks-mips.ads, system-os2.ads, system-interix.ads,
23208         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
23209         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
23210         system-vxworks-alpha.ads: Add the flag Preallocated_Stacks, that is
23211         used to signal whether the compiler creates the required stacks and
23212         descriptors for the different tasks (when True) or it is done by the
23213         underlying operating system at run time (when False).
23214         It is initially set to False in all targets.
23215
23216         * exp_ch9.adb (Expand_N_Task_Type_Declaration): Create the task stack
23217         if it is supported by the target.
23218         (Make_Task_Create_Call): Pass the stack address if it has been
23219         previously created. Otherwise pass a Null_Address.
23220
23221         * snames.adb: Add _stack.
23222
23223         * snames.ads: Add Name_uStack. Required to allow the expander to
23224         statically allocated task stacks.
23225
23226         * s-tarest.ads, s-tarest.adb (Create_Restricted_Task): Add
23227         Stack_Address argument.
23228         Check that its value is equal to Null_Address because this target does
23229         not support the static stack allocation.
23230
23231 2004-10-04  Thomas Quinot  <quinot@act-europe.fr>
23232
23233         * usage.adb: Change "pragma inline" to "pragma Inline" in information
23234         and error messages
23235
23236 2004-10-04  Thomas Quinot  <quinot@act-europe.fr>
23237
23238         * exp_dist.adb: Split declaration of asynchronous flag out of
23239         Add_RACW_Read_Attribute.
23240         Minor reformatting for better alignment with PolyORB version.
23241         Store the entity for the asynchronous flag of an RACW, rather than the
23242         expression, in the asynchronous flags table. This will allow this flag
23243         to be used in other subprograms beside Add_RACW_Read_Attribute.
23244
23245 2004-10-04  Thomas Quinot  <quinot@act-europe.fr>
23246
23247         * g-socket.ads, g-socket.adb, g-socthi.adb, socket.c,
23248         g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
23249         g-soccon-interix.ads, g-soccon-solaris.ads, g-soccon-vms.adb,
23250         g-soccon-mingw.ads, g-soccon-vxworks.ads, g-soccon-freebsd.ads,
23251         g-soccon.ads, g-soccon-unixware.ads, g-soccon-tru64.ads:  Add new
23252         sockets constant MSG_NOSIGNAL (Linux-specific).
23253         Add new sockets constant MSG_Forced_Flags, list of flags to be set on
23254         all Send operations.
23255         For Linux, set MSG_NOSIGNAL on all send operations to prevent them
23256         from trigerring SIGPIPE.
23257         Rename components to avoid clash with Ada 2005 possible reserved
23258         word 'interface'.
23259         (Check_Selector): When the select system call returns with an error
23260         condition, propagate Socket_Error to the caller.
23261
23262 2004-10-01  Jan Hubicka  <jh@suse.cz>
23263
23264         * misc.c (gnat_expand_body): Update call of tree_rest_of_compilation.
23265
23266 2004-09-23  Robert Dewar  <dewar@gnat.com>
23267
23268         PR ada/17540
23269         * sem_prag.adb (Process_Import_Or_Interface): Don't set Is_Public here,
23270         instead do this at freeze time (we won't do it if there is an address
23271         clause).
23272         Change "pragma inline" to "pragma Inline" in information and error
23273         messages.
23274         Minor reformatting.
23275
23276         * freeze.adb (Check_Address_Clause): Remove previous change, not the
23277         right way of doing things after all.
23278         (Freeze_Entity): For object, set Is_Public for imported entities
23279         unless there is an address clause present.
23280
23281 2004-09-21  Olivier Hainque  <hainque@act-europe.fr>
23282
23283         * decl.c (gnat_to_gnu_entity) <E_General_Access_Type>: Check for a
23284         dummy designated type via TYPE_MODE instead of COMPLETE_TYPE_P. This
23285         ensures proper handling of types with rep clauses, which might have
23286         their TYPE_SIZE set already.
23287
23288 2004-09-21  Robert Dewar  <dewar@gnat.com>
23289
23290         * decl.c (gnat_to_gnu_type, case E_Modular_Integer_Type): Wrap modular
23291         packed array types in both little- and big-endian cases. This change
23292         ensures that we no longer count on the unused bits being initialized
23293         for such types (and in particular ensures that equality testing will
23294         only read the relevant bits).
23295         Change name TYPE_LEFT_JUSTIFIED_MODULAR_P to TYPE_JUSTIFIED_MODULAR_P
23296         These changes mean that we no longer need to initialize small packed
23297         arrays.
23298         (gnat_to_gnu_entity) <E_Record_Subtype>: Apply the same
23299         optimization to an LJM field as to its parent field.
23300
23301         * ada-tree.h, trans.c, utils.c, utils2.c:
23302         Change name TYPE_LEFT_JUSTIFIED_MODULAR_P to TYPE_JUSTIFIED_MODULAR_P
23303
23304 2004-09-20  Jan Hubicka  <jh@suse.cz>
23305
23306         * utils.c (gnat_finalize): Remove.
23307         (end_subprog_body): Directly call cgraph_finalize_function;
23308         do not lower the nested functions.
23309
23310 2004-09-20  Robert Dewar  <dewar@gnat.com>
23311
23312         PR ada/17540
23313         * freeze.adb (Check_Address_Clause): Reset Is_Imported and Is_Public
23314         if an address clause is present, since that means that the Import
23315         should be ignored.
23316
23317 2004-09-20  Arnaud Charlet  <charlet@act-europe.fr>
23318
23319         * 5tsystem.ads: Removed, no longer used.
23320
23321 2004-09-17  Jeffrey D. Oldham  <oldham@codesourcery.com>
23322             Zack Weinberg  <zack@codesourcery.com>
23323
23324         * ada-tree.def: Use tree_code_class enumeration constants
23325         instead of code letters.
23326         * ada-tree.h, decl.c, misc.c, trans.c, utils.c, utils2.c:
23327         Update for new tree-class enumeration constants.
23328
23329 2004-09-17  Vincent Celier  <celier@gnat.com>
23330
23331         * prj-attr-pm.ads, prj-attr-pm.adb: New files, to split some private
23332         capabilities of the general project manager.
23333
23334 2004-09-09  Vincent Celier  <celier@gnat.com>
23335
23336         * a-direct.ads: Add pragma Ada_05
23337         (Directory_Entry_Type): Give default value to component Kind to avoid
23338         not initialized warnings.
23339
23340         * a-direct.adb (Current_Directory): Remove directory separator at the
23341         end.
23342         (Delete_Directory, Delete_Tree): Raise Name_Error if Directory is not
23343         an existing directory.
23344         (Fetch_Next_Entry): Give default value to variable Kind to avoid warning
23345         (Size (String)): Function C_Size returns Long_Integer, not File_Size.
23346         Convert the result to File_Size.
23347
23348         * prj.ads: (Project_Error): New exception
23349
23350         * prj-attr.adb: Except in procedure Initialize, Fail comes from
23351         Prj.Com, not from Osint.
23352         (Attrs, Package_Attributes): Tables moved to private part of spec
23353         (Add_Attribute, Add_Unknown_Package): Moved to new child package
23354         Prj.Attr.PM.
23355         (Register_New_Package (Name, Attributes), Register_New_Attribute): Raise
23356         Prj.Project_Error after call to Fail.
23357         (Register_New_Package (Name, Id)): Set Id to Empty_Package after calling
23358         Fail. Check that package name is not already in use.
23359
23360         * prj-attr.ads: Comment updates to indicate that all subprograms may be
23361         used by tools, not only by the project manager, and to indicate that
23362         exception Prj.Prj_Error may be raised in case of problem.
23363         (Add_Unknown_Package, Add_Attribute): Moved to new child package
23364         Prj.Attr.PM.
23365         (Attrs, Package_Attributes): Table instantiations moved from the body to
23366         the private part to be accessible from Prj.Attr.PM body.
23367
23368         * prj-dect.adb (Parse_Package_Declaration): Call Add_Unknown_Package
23369         from new package Prj.Attr.PM.
23370         (Parse_Attribute_Declaration): Call Add_Attribute from new package
23371         Prj.Attr.PM.
23372
23373         * Makefile.in: Add prj-attr-pm.o to gnatmake object list
23374
23375         * gnatbind.adb (Gnatbind): Correct warning message (Elaboration_Check
23376         instead of Elaboration_Checks).
23377
23378         * a-calend.adb: Minor reformatting
23379
23380 2004-09-09  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
23381
23382         * gigi.h (maybe_pad_type): New declaration.
23383         (create_subprog_type): New arg RETURNS_BY_TARGET_PTR.
23384
23385         * ada-tree.h: (TYPE_RETURNS_BY_TARGET_PTR_P): New macro.
23386
23387         * cuintp.c: Convert to use buildN.
23388
23389         * decl.c (maybe_pad_type): No longer static.
23390         (gnat_to_gnu_entity, case E_Function): Handle case of returning by
23391         target pointer.
23392         Convert to use buildN.
23393
23394         * trans.c (call_to_gnu): Add arg GNU_TARGET; support
23395         TYPE_RETURNS_BY_TARGET_PTR_P.  All callers changed.
23396         (gnat_to_gnu, case N_Assignment_Statement): Call call_to_gnu if call on
23397         RHS.
23398         (gnat_to_gnu, case N_Return): Handle TYPE_RETURN_BY_TARGET_PTR_P.
23399         (gnat_gimplify_expr, case ADDR_EXPR): New case.
23400         Convert to use buildN.
23401
23402         * utils2.c (gnat_build_constructor): Also set TREE_INVARIANT and
23403         TREE_READONLY for const.
23404         Convert to use buildN.
23405
23406         * utils.c (create_subprog_type): New operand RETURNS_BY_TARGET_PTR.
23407         (create_var_decl): Refine when TREE_STATIC is set.
23408         Convert to use buildN.
23409
23410 2004-09-09  Gary Dismukes  <dismukes@gnat.com>
23411
23412         * gnat_ugn.texi: Delete text relating to checking of ali and object
23413         consistency.
23414
23415         * a-except.adb (Rcheck_*): Add pragmas No_Return for each of these
23416         routines.
23417
23418 2004-09-09  Jose Ruiz  <ruiz@act-europe.fr>
23419
23420         * gnat_ugn.texi: Add Detect_Blocking to the list of configuration
23421         pragmas recognized by GNAT.
23422
23423         * gnat_rm.texi: Document pragma Detect_Blocking.
23424
23425         * s-solita.adb (Timed_Delay_T): When pragma Detect_Blocking is active,
23426         raise Program_Error if called from a protected operation.
23427
23428         * s-taprob.adb (Lock): When pragma Detect_Blocking is active increase
23429         the protected action nesting level.
23430         (Lock_Read_Only): When pragma Detect_Blocking is active increase the
23431         protected action nesting level.
23432         (Unlock): When pragma Detect_Blocking is active decrease the protected
23433         action nesting level.
23434
23435         * s-taskin.adb (Initialize_ATCB): Initialize to 0 the
23436         Protected_Action_Nesting.
23437
23438         * s-taskin.ads: Adding the field Protected_Action_Nesting to the
23439         Common_ATCB record. It contains the dynamic level of protected action
23440         nesting for each task. It is needed for checking whether potentially
23441         blocking operations are called from protected operations.
23442         (Detect_Blocking): Adding a Boolean constant reflecting whether pragma
23443         Detect_Blocking is active or not in the partition.
23444
23445         * s-tasren.adb (Call_Simple): When pragma Detect_Blocking is active,
23446         raise Program_Error if called from a protected operation.
23447         (Task_Entry_Call): When pragma Detect_Blocking is active, raise
23448         Program_Error if called from a protected operation.
23449         (Timed_Task_Entry_Call): When pragma Detect_Blocking is active, raise
23450         Program_Error if called from a protected operation.
23451
23452         * s-tassta.adb (Abort_Tasks): When pragma Detect_Blocking is active,
23453         raise Program_Error if called from a protected operation.
23454
23455         * s-tpoben.adb (Lock_Entries): When pragma Detect_Blocking is active,
23456         raise Program_Error if called from a protected operation, and increase
23457         the protected action nesting level.
23458         (Lock_Read_Only_Entries): When pragma Detect_Blocking is active, raise
23459         Program_Error if called from a protected operation, and increase the
23460         protected action nesting level.
23461         (Unlock_Entries): When pragma Detect_Blocking is active decrease the
23462         protected action nesting level.
23463
23464         * s-tposen.adb (Lock_Entry): When pragma Detect_Blocking is active,
23465         raise Program_Error if called from a protected operation, and increase
23466         the protected action nesting level.
23467         (Lock_Read_Only_Entry): When pragma Detect_Blocking is active, raise
23468         Program_Error if called from a protected operation, and increase the
23469         protected action nesting level.
23470         (Protected_Single_Entry_Call): When pragma Detect_Blocking is active,
23471         raise Program_Error if called from a protected operation.
23472         (Timed_Protected_Single_Entry_Call): When pragma Detect_Blocking is
23473         active, raise Program_Error if called from a protected operation.
23474         (Unlock_Entry): When pragma Detect_Blocking is active decrease the
23475         protected action nesting level.
23476
23477         * sem_util.adb (Check_Potentially_Blocking_Operation): Remove the
23478         insertion of the statement raising Program_Error. The run time
23479         contains the required machinery for handling that.
23480
23481         * sem_util.ads: Change comment associated to procedure
23482         Check_Potentially_Blocking_Operation.
23483         This procedure does not insert a call for raising the exception because
23484         that is currently done by the run time.
23485
23486         * raise.h (__gnat_set_globals): Pass the detect_blocking parameter.
23487
23488         * init.c: Add the global variable __gl_detect_blocking that indicates
23489         whether pragma Detect_Blocking is active (1) or not (0). Needed for
23490         making the pragma available at run time.
23491         (__gnat_set_globals): Pass and update the detect_blocking parameter.
23492
23493         * lib-writ.adb (Write_ALI): Set the DB flag in the ali file if
23494         pragma Detect_Blocking is active.
23495
23496         * lib-writ.ads: Document the Detect_Blocking flag (DB) in ali files.
23497
23498         * ali.adb (Scan_ALI): Set the Detect_Blocking value to true if the flag
23499         DB is found in the ali file. Any unit compiled with pragma
23500         Detect_Blocking active forces its effect in the whole partition.
23501
23502         * a-retide.adb (Delay_Until): Raise Program_Error if pragma
23503         Detect_Blocking is active and delay is called from a protected
23504         operation.
23505
23506         * bindgen.adb (Gen_Adainit_Ada): When generating the call to
23507         __gnat_set_globals, pass 1 as Detect_Blocking parameter if pragma
23508         Detect_Blocking is active (0 otherwise).
23509         (Gen_Adainit_C): When generating the call to __gnat_set_globals, pass 1
23510         as Detect_Blocking parameter if pragma Detect_Blocking is active (0
23511         otherwise).
23512
23513 2004-09-09  Thomas Quinot  <quinot@act-europe.fr>
23514
23515         * gnat_rm.texi: Rename GNAT.Perfect_Hash.Generators to
23516         GNAT.Perfect_Hash_Generators, and remove the empty GNAT.Perfect_Hash
23517         package.
23518
23519         * s-parint.ads, s-parint.adb (Get_RAS_Info): New subprogram.
23520         (Register_Receiving_Stub): Add Subp_Info formal parameter.
23521         Update API in placeholder implemetation of s-parint to reflect changes
23522         in distribution runtime library.
23523
23524         * sem_ch3.adb (Expand_Derived_Record): Rename to
23525         Expand_Record_Extension.
23526
23527         * sem_disp.adb (Check_Controlling_Formals): Improve error message for
23528         primitive operations of potentially distributed object types that have
23529         non-controlling anonymous access formals.
23530
23531         * sem_dist.ads, sem_dist.adb (Build_RAS_Primitive_Specification): New
23532         subprogram.
23533         New implementation of expansion for remote access-to-subprogram types,
23534         based on the RACW infrastructure.
23535         This version of sem_dist is compatible with PolyORB/DSA as well as
23536         GLADE.
23537
23538         * sem_prag.adb (Analyze_Pragma, case Pragma_Asynchronous): For a pragma
23539         Asynchrronous that applies to a remote access-to-subprogram type, mark
23540         the underlying RACW type as asynchronous.
23541
23542         * link.c: FreeBSD uses GNU ld: set __gnat_objlist_file_supported and
23543          __gnat_using_gnu_linker to 1.
23544
23545         * Makefile.rtl, impunit.adb, g-perhas.ads, g-pehage.ads,
23546         g-pehage.adb: Rename GNAT.Perfect_Hash.Generators to
23547         GNAT.Perfect_Hash_Generators, and remove the empty
23548         GNAT.Perfect_Hash package.
23549
23550         * atree.adb: Minor reformatting
23551
23552         * exp_ch3.adb (Expand_Derived_Record): Rename to
23553         Expand_Record_Extension.
23554         (Build_Record_Init_Proc.Build_Assignment): The default expression in
23555         a component declaration must remain attached at that point in the
23556         tree so New_Copy_Tree copies it if the enclosing record type is derived.
23557         It is therefore necessary to take a copy of the expression when building
23558         the corresponding assignment statement in the init proc.
23559         As a side effect, in the case of a derived record type, we now see the
23560         original expression, without any rewriting that could have occurred
23561         during expansion of the ancestor type's init proc, and we do not need
23562         to go back to Original_Node.
23563
23564         * exp_ch3.ads (Expand_Derived_Record): Rename to
23565         Expand_Record_Extension.
23566
23567         * exp_dist.ads, exp_dist.adb (Underlying_RACW_Type): New subprogram.
23568         Returns the RACW type used to implement a remote access-to-subprogram
23569         type.
23570         (Add_RAS_Proxy_And_Analyze, Build_Remote_Subprogram_Proxy_Type):
23571         New subprograms. Used to create a proxy tagged object for a remote
23572         subprogram. The proxy object is used as the designated object
23573         for RAS values on the same partition (unless All_Calls_Remote applies).
23574         (Build_Get_Unique_RP_Call): New subprogram. Build a call to
23575         System.Partition_Interface.Get_Unique_Remote_Pointer.
23576         (Add_RAS_Access_TSS, Add_RAS_Dereference_TSS):
23577         Renamed from Add_RAS_*_Attribute.
23578         (Add_Receiving_Stubs_To_Declarations): Generate a table of local
23579         subprograms.
23580         New implementation of expansion for remote access-to-subprogram types,
23581         based on the RACW infrastructure.
23582
23583         * exp_dist.ads (Copy_Specification): Update comment to note that this
23584         function can copy the specification from either a subprogram
23585         specification or an access-to-subprogram type definition.
23586
23587 2004-09-09  Ed Schonberg  <schonberg@gnat.com>
23588
23589         * sem_type.adb (Disambiguate): Handle properly an accidental ambiguity
23590         in an instance, between an explicit subprogram an one inherited from a
23591         type derived from an actual.
23592
23593         * exp_ch6.adb (Expand_N_Subprogram_Body): If polling is enabled, do not
23594         add a polling call if the subprogram is to be inlined by the back-end,
23595         to avoid repeated calls with multiple inlinings.
23596
23597         * checks.adb (Apply_Alignment_Check): If the expression in the address
23598         clause is a call whose name is not a static entity (e.g. a dispatching
23599         call), treat as dynamic.
23600
23601 2004-09-09  Robert Dewar  <dewar@gnat.com>
23602
23603         * g-trasym.ads: Minor reformatting
23604
23605         * exp_ch3.adb (Component_Needs_Simple_Initialization): Don't except
23606         packed arrays, since unused bits are expected to be zero for a
23607         comparison.
23608
23609 2004-09-09  Eric Botcazou  <ebotcazou@act-europe.fr>
23610
23611         * exp_pakd.ads: Fix an inacurracy and a couple of typos in the head
23612         comment.
23613
23614 2004-09-09  Pascal Obry  <obry@gnat.com>
23615
23616         * mdll.ads, mdll.adb (Build_Dynamic_Library): New parameter Map_File to
23617         enable map file generation. Add the right option to generate the map
23618         file if Map_File is set to True.
23619
23620         * gnatdll.adb (Gen_Map_File): New variable.
23621         (Syntax): Add info about new -m (Map_File) option.
23622         (Parse_Command_Line): Add support for -m option.
23623         (gnatdll): Pass Gen_Map_File to Build_Dynamic_Library calls.
23624         Minor reformatting.
23625
23626 2004-09-09  Laurent Pautet  <pautet@act-europe.fr>
23627
23628         * gnatls.adb: Add a very verbose mode -V. Such mode is required by the
23629         new gnatdist implementation.
23630         Define a subpackage isolating the output routines specific to this
23631         verbose mode.
23632
23633 2004-09-09  Joel Brobecker  <brobecker@gnat.com>
23634
23635         * Makefile.rtl: (GNATRTL_NONTASKING_OBJS): Add g-dynhta.
23636
23637         * gnat_ugn.texi (Main Subprograms): Fix typo. Deduced, not deducted.
23638
23639 2004-09-09  Cyrille Comar  <comar@act-europe.fr>
23640
23641         * opt.adb (Set_Opt_Config_Switches): Use Ada_Version_Runtime to compile
23642         internal unit.
23643
23644         * opt.ads: Add Ada_Version_Runtime constant used to decide which
23645         version of the language is used to compile the run time.
23646
23647 2004-09-09  Arnaud Charlet  <charlet@act-europe.fr>
23648
23649         * sem_util.adb (Requires_Transient_Scope): Re-enable handling
23650         of variable length temporaries for function return now that the
23651         back-end and gigi support it.
23652
23653 2004-09-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
23654
23655         * misc.c (gnat_print_type): Use TYPE_RM_SIZE_NUM.
23656
23657         * trans.c (struct stmt_group): Delete field GLOBAL.
23658         (gnat_init_stmt_group): Do not initialize it.
23659         (call_to_gnu): Use save_expr, not protect_multiple_eval.
23660         (Exception_Handler_to_gnu_sjlj): Call build_int_cst, not build_int_2
23661         (gnat_to_gnu, case N_Character_Literal, N_String_Literal): Likewise.
23662         (gnat_to_gnu, case N_Compilation_Unit): Do not set GLOBAL in stmt group.
23663         (start_stmt_group): Likewise.
23664         (add_stmt, add_decl_expr): Rework handling of global DECL_EXPRs.
23665
23666         * utils2.c (ggc.h): Include.
23667         (build_call_raise): Call build_int_cst, not build_int_2.
23668
23669         * utils.c (gnat_init_decl_processing): Fix arg to
23670         build_common_tree_nodes.
23671         (create_subprog_type): Do not use SET_TYPE_CI_CO_LIST.
23672         (gnat_define_builtin): Set built_in_decls.
23673         (init_gigi_decls): Call build_int_cst, not build_int_2.
23674
23675         * ada-tree.h (struct lang_decl, struct lang_type): Field is type tree.
23676         (GET_TYPE_LANG_SPECIFIC, SET_TYPE_LANG_SPECIFIC): New macros.
23677         (GET_DECL_LANG_SPECIFIC, SET_DECL_LANG_SPECIFIC): Likewise.
23678         (TYPE_CI_CO_LIST, SET_TYPE_CI_CO_LIST, TYPE_MODULE,
23679         SET_TYPE_MODULE): Use them.
23680         (TYPE_INDEX_TYPE, SET_TYPE_INDEX_TYPE, TYPE_DIGITS_VALUE): Likewise.
23681         (SET_TYPE_DIGITS_VALUE, TYPE_UNCONSTRAINED_ARRAY): Likewise.
23682         (SET_TYPE_UNCONSTRAINED_ARRAY, TYPE_ADA_SIZE,
23683         SET_TYPE_ADA_SIZE): Likewise.
23684         (TYPE_ACTUAL_BOUNDS, SET_TYPE_ACTUAL_BOUNDS): Likewise.
23685         (DECL_CONST_CORRESPONDING_VAR,
23686         SET_DECL_CONST_CORRESPONDING_VAR): Likewise.
23687         (DECL_ORIGINAL_FIELD, SET_DECL_ORIGINAL_FIELD): Likewise.
23688         (TYPE_RM_SIZE_INT, TYPE_RM_SIZE_ENUM, SET_TYPE_RM_SIZE_ENUM): Deleted.
23689         (TYPE_RM_SIZE_NUM): New macro.
23690         (TYPE_RM_SIZE): Modified to use above.
23691
23692         * cuintp.c: (build_cst_from_int): New function.
23693         (UI_To_gnu): Use it.
23694
23695         * decl.c (gnat_to_gnu_entity): Use TYPE_RM_SIZE_NUM.
23696         (make_type_from_size): Avoid changing TYPE_UNSIGNED of a type.
23697         (gnat_substitute_in_type, case ARRAY_TYPE): If old had a
23698         MIN_EXPR for the size, copy it into new.
23699
23700 2004-09-01  Robert Dewar  <dewar@gnat.com>
23701
23702         * exp_ch6.adb (Expand_Call): Properly handle validity checks for
23703         packed indexed component where array is an IN OUT formal. This
23704         generated garbage code previously.
23705
23706         * gnat_ugn.texi: Document -fverbose-asm
23707
23708         * gnat-style.texi: Minor updates (note that boolean constants and
23709         variables are joined with AND/OR rather than short circuit forms).
23710
23711 2004-09-01  Ed Schonberg  <schonberg@gnat.com>
23712
23713         * exp_util.adb (Safe_Unchecked_Type_Conversion): Conversion is safe if
23714         it is an upward conversion of an untagged type with no representation
23715         change.
23716
23717 2004-09-01  Thomas Quinot  <quinot@act-europe.fr>
23718
23719         * rtsfind.ads: Move RCI_Subp_Info and RCI_Subp_Info_Array to
23720         System.Partition_Interface.
23721
23722         * checks.adb (Apply_Access_Checks): Do not generate checks when
23723         expander is not active (but check for unset reference to prefix of
23724         dereference).
23725
23726         * sem_prag.adb (Analyze_Pragma, case Pragma_Debug): Uniformly rewrite
23727         pragma Debug as an if statement with a constant condition, for
23728         consistent treatment of entity references contained within the
23729         enclosed procedure call.
23730
23731 2004-09-01  Vincent Celier  <celier@gnat.com>
23732
23733         * bindgen.adb: (Set_EA_Last): New procedure
23734         (Gen_Exception_Table_Ada, Gen_Exception_Table_C): Use new procedure
23735         Set_EA_Last.
23736         (Gen_Adafinal_Ada): If no finalization, adafinal does nothing
23737         (Gen_Output_File_Ada): Always call Gen_Adafinal_Ada, so that SAL can be
23738         linked without errors.
23739         (Gen_Exception_Table_Ada): Correct bugs when generating code for arrays
23740         ST and EA.
23741         (Gen_Exception_Table_C): Correct same bugs
23742
23743         * vms_data.ads: Add new qualifier /VERBOSE_ASM to GCC_Switches
23744
23745         * g-os_lib.adb (Normalize_Pathname.Get_Directory): When Dir is empty,
23746         on Windows, make sure that the drive letter is in upper case.
23747
23748         * g-os_lib.ads (Normalize_Pathname): Add a comment to indicate that on
23749         Windows, when the drive letter is added and Case_Sensitive is True, the
23750         drive letter is forced to upper case.
23751
23752         * mlib-tgt-irix.adb (Build_Dynamic_Library): Transfer all -lxxx options
23753         to Options_2 for the call to MLib.Utl.Gcc.
23754
23755         * bld.adb (Put_Include_Project): Use '/', not '\' on Windows as
23756         directory separator when defining BASE_DIR.
23757
23758 2004-09-01  Pascal Obry  <obry@gnat.com>
23759
23760         * gprcmd.adb (Extend): Do not output trailing directory separator. This
23761         is not needed and it confuses Windows GNU/make which does not report
23762         directory terminated by a slash as a directory.
23763         (gprcmd): Idem for "pwd" internal command.
23764
23765         * Makefile.generic: Use __GPRCOLON__ instead of pipe character in
23766         target names rewrite to fix regressions with recent version of
23767         GNU/make. Starting with GNU/make 3.80 the pipe character was not
23768         handled properly anymore.
23769
23770 2004-09-01  Andreas Schwab  <schwab@suse.de>
23771
23772         * Make-lang.in (EXTRA_GNATBIND_OBJS): Revert last change.
23773         * raise.c [!IN_RTS]: Undef abort.
23774
23775 2004-08-27  Nathan Sidwell  <nathan@codesourcery.com>
23776
23777         * utils2.c (build_allocator): Use ssize_int.
23778
23779         * utils.c (gnat_init_decl_processing): Ada has a signed sizetype.
23780
23781 2004-08-27  Andreas Schwab  <schwab@suse.de>
23782
23783         * Make-lang.in (EXTRA_GNATBIND_OBJS): Add errors.o.
23784
23785 2004-08-25  Nathan Sidwell  <nathan@codesourcery.com>
23786             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
23787
23788         * ada-tree.h (TYPE_RM_SIZE_INT): Use TYPE_LANG_SLOT_1.
23789
23790 2004-08-25  Nathan Sidwell  <nathan@codesourcery.com>
23791
23792         * cuintp.c (UI_To_gnu): Adjust build_int_cst calls.
23793         * trans.c (Exception_Handler_to_gnu_sjlj, gnat_to_gnu): Likewise.
23794         * utils.c (init_gigi_decls): Likewise.
23795         * utils2.c (build_call_raise, build_allocator): Likewise.
23796
23797 2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
23798
23799         * utils.c (gnat_init_decl_processing): Adjust
23800         build_common_tree_nodes call.
23801
23802 2004-08-20  Nathan Sidwell  <nathan@codesourcery.com>
23803
23804         * utils2.c (build_allocator): Use build_int_cst for negative
23805         size types.
23806
23807 2004-08-18  Richard Henderson  <rth@redhat.com>
23808
23809         * misc.c (LANG_HOOKS_HONOR_READONLY): Remove.
23810
23811 2004-08-16  Nathan Sidwell  <nathan@codesourcery.com>
23812
23813         * cuintp.c (UI_To_gnu): Be more conservative with build_int_cst
23814         call.s
23815         * trans.c (Exception_Handler_to_gnu_sjlj): Likewise.
23816         (gnat_to_gnu): Likewise.
23817
23818 2004-08-16  Pascal Obry  <obry@gnat.com>
23819
23820         * adaint.c (__gnat_prj_add_obj_files): Set to 0 only on Win32 for GCC
23821         backend prior to GCC 3.4. With GCC 3.4 we are using the GCC's shared
23822         option and not mdll anymore. Update comment.
23823
23824 2004-08-16  Pascal Obry  <obry@gnat.com>
23825
23826         * bld.adb (Put_Include_Project): Properly handle directory separators
23827         on Windows.
23828
23829 2004-08-16  Ed Schonberg  <schonberg@gnat.com>
23830
23831         * sem_ch4.adb (Try_Object_Operation): Restructure code. Optimize by
23832         decreasing the number of allocated junk nodes while searching for the
23833         appropriate subprogram.
23834
23835 2004-08-15  Nathan Sidwell  <nathan@codesourcery.com>
23836
23837         * cuintp.c (UI_To_gnu): Use build_int_cst..
23838         * trans.c (Exception_Handler_to_gnu_sjlj, gnat_to_gnu): Likewise.
23839         * utils.c (init_gigi_decls): Likewise.
23840         * utils2.c (build_call_raise): Likewise.
23841
23842 2004-08-13  Olivier Hainque  <hainque@act-europe.fr>
23843
23844         * decl.c (gnat_to_gnu_entity) <E_Variable>: When building an allocator
23845         for a global aliased object with a variable size and an unconstrained
23846         nominal subtype, pretend there is no initializer if the one we have is
23847         incomplete, and avoid referencing an inexistant component in there. The
23848         part we have will be rebuilt anyway and the reference may confuse
23849         further operations.
23850
23851 2004-08-13  Thomas Quinot  <quinot@act-europe.fr>
23852
23853         * einfo.ads: Minor reformatting
23854
23855         * lib-writ.adb (Output_Main_Program_Line): Do not set parameter
23856         restrictions in the ALI if we only want to warn about violations.
23857
23858 2004-08-13  Vincent Celier  <celier@gnat.com>
23859
23860         * ali.adb (Scan_ALI): Initialize component Body_Needed_For_SAL to False
23861         when creating a new Unit_Record in table Units.
23862
23863         * gnatls.adb (Output_Unit): In verbose mode, output the restrictions
23864         that are violated, if any.
23865
23866         * prj-nmsc.adb (Ada_Check.Get_Path_Names_And_Record_Sources): Do not
23867         add directory separator if path already ends with a directory separator.
23868
23869 2004-08-13  Ed Schonberg  <schonberg@gnat.com>
23870
23871         * rtsfind.adb (Entity_Not_Defined): If the error ocurrs in a predefined
23872         unit, this is an attempt to inline a construct that is not available in
23873         the current restricted mode, so abort rather than trying to continue.
23874
23875         * sem_ch3.adb (Build_Underlying_Full_View): If the new type has
23876         discriminants that rename those of the parent, recover names of
23877         original discriminants for the constraint on the full view of the
23878         parent.
23879         (Complete_Private_Subtype): Do not create a subtype declaration if the
23880         subtype is an itype.
23881
23882         * gnat_rm.texi: Added section on implementation of discriminated
23883         records with default values for discriminants.
23884
23885 2004-08-13  Ed Schonberg  <schonberg@gnat.com>
23886
23887         PR ada/15601
23888         * sem_res.adb (Make_Call_Into_Operator): Handle properly the case where
23889         the second operand is overloaded.
23890
23891 2004-08-10  Richard Henderson  <rth@redhat.com>
23892
23893         * utils.c (gnat_install_builtins): Remove __builtin_stack_alloc,
23894         add __builtin_alloca.
23895
23896 2004-08-10  Richard Henderson  <rth@redhat.com>
23897
23898         * config-lang.in (boot_language): Yes.
23899
23900 2004-08-09  Thomas Quinot  <quinot@act-europe.fr>
23901
23902         * g-socket.adb (Abort_Selector): Initialize Buf to prevent valgrind
23903         from complaining on potential uninitialized reference.
23904         Change calls to GNAT.Sockets.Thin.Is_Socket_In_Set to account for
23905         new specification and test explicitly for non-zero return value.
23906
23907         * g-socthi.ads (Is_Socket_In_Set): Declare imported function as
23908         returning C.int, to avoid using a derived boolean type.
23909
23910         * exp_ch5.adb (Make_Tag_Ctrl_Assignments): Use
23911         Duplicate_Subexpr_No_Checks in preference to direct use of
23912         Remove_Side_Effects and New_Copy_Tree.
23913         Clear Comes_From_Source on prefix of 'Size attribute reference.
23914
23915         * g-socthi.adb, g-socthi-vms.adb, g-socthi-mingw.adb,
23916         g-socthi-vxworks.adb: Change calls to
23917         GNAT.Sockets.Thin.Is_Socket_In_Set to account for new specification
23918         and test explicitly for non-zero return value.
23919
23920         * g-socthi-vms.ads, g-socthi-mingw.ads, g-socthi-vxworks.ads:
23921         (Is_Socket_In_Set): Declare imported function as returning C.int, to
23922         avoid using a derived boolean type.
23923
23924 2004-08-09  Albert Lee  <lee@gnat.com>
23925
23926         * system-irix-n32.ads: Refine tasking priority constants for IRIX.
23927
23928 2004-08-09  Pascal Obry  <obry@gnat.com>
23929
23930         * gnat_ugn.texi: Document new way to build DLLs on Windows using
23931         GCC's -shared option.
23932
23933         * mlib-tgt-mingw.adb (Build_Dynamic_Library): Pass GCC's options into
23934         Options_2 parameter (options put after object files).
23935
23936 2004-08-09  Olivier Hainque  <hainque@act-europe.fr>
23937
23938         * decl.c (gnat_to_gnu_entity) <E_Array_Subtype>: Adjust condition to
23939         ignore overflows on low and high bounds of an index to also account for
23940         differences in signedness between sizetype and gnu_index_subtype.
23941         These are as legitimate as the ones caused by a lower TYPE_PRECISION
23942         on sizetype.
23943
23944 2004-08-09  Robert Dewar  <dewar@gnat.com>
23945
23946         * s-solita.ads, s-solita.adb: Minor reformatting
23947
23948         * gnat_rm.texi: Add documentation for pragma Profile (Restricted)
23949         Move pragma Restricted_Run_Time, No_Run_Time, Ravenscar to new
23950         obsolescent section
23951         Add note that No_Implicit_Conditionals does not suppress
23952         run time constraint checks.
23953
23954         * vms_conv.ads: Minor reformatting
23955
23956         * s-secsta.adb: Use SS_Ptr instead of Mark_Id as stack pointer (cleanup
23957         and necessary for following change).
23958         (Mark): Return new format Mark_Id containing sec stack address
23959         (Release): Use sec stack address from Mark_Id avoiding Self call
23960
23961         * s-secsta.ads: Define SS_Ptr to be used instead of Mark_Id as stack
23962         pointer (cleanup and necessary for following change).
23963         Define Mark_Id as record containing address of secondary stack, that way
23964         Release does not need to find the stack again, decreasing the number of
23965         calls to Self and improving efficiency.
23966
23967         * sem_util.ads: Add a ??? comment for Is_Local_Variable_Reference
23968
23969         * sem_ch5.adb (Analyze_Case_Statement): Add circuitry to track value of
23970         case variable into the individual case branches when possible.
23971
23972         * sem_ch11.adb: Minor reformatting
23973
23974         * prj.ads: Correct spelling of suffixs
23975
23976         * prj-nmsc.adb: Minor reformatting
23977         Correct spelling suffixs throughout (also in identifiers)
23978
23979         * freeze.adb: Minor spelling correction
23980
23981         * exp_ch2.adb: Cleanups to handling of Current_Value
23982         (no functional effect).
23983
23984         * bld.adb: Correct spelling of suffixs
23985
23986         * einfo.adb (Enclosing_Dynamic_Scope): Defend against junk argument
23987
23988 2004-08-09  Ed Schonberg  <schonberg@gnat.com>
23989
23990         PR ada/15408
23991         * sem_ch7.adb (Install_Private_Declarations): In the body of the
23992         package or of a child, private entities are both immediately_visible
23993         and not hidden.
23994
23995 2004-08-09  Ed Schonberg  <schonberg@gnat.com>
23996
23997         * sem_eval.adb (Eval_Integer_Literal): If the context is Any_Integer,
23998         there are no range checks on the value of the literal.
23999
24000         * exp_ch7.adb (Insert_Actions_In_Scope_Around): If the node being
24001         wrapped is the triggering alternative of an asynchronous select, action
24002         statements mustbe inserted before the select itself.
24003
24004         * sem_attr.adb (Analyze_Attribute, case 'Size): Handle properly the
24005         case where the prefix is a protected function call.
24006         (Resolve_Attribute, case 'Access): The attribute reference on a
24007         subprogram is legal in a generic body if the subprogram is declared
24008         elsewhere.
24009
24010 2004-08-09  Vincent Celier  <celier@gnat.com>
24011
24012         * makegpr.adb (Build_Library): Link with g++ if C++ is one of the
24013         languages, otherwise building the library may fail with unresolved
24014         symbols.
24015         (Compile_Sources): Do not build libraries if -c switch is used
24016
24017         * gnatlink.adb (Process_Args): New switches -M and -Mmap
24018         (Write_Usage): If map file creation is supported, output new switches
24019         -M and -Mmap.
24020         (Gnatlink): When -M is specified, add the necessary switch(es) to the
24021         gcc call, when supported.
24022
24023         * Makefile.in: Added indepsw.o to the object list for gnatlink
24024         Specified the AIX, GNU/Linux and Windows versions of indepsw.adb
24025
24026         * indepsw-aix.adb, indepsw-linux.adb, indepsw-mingw.adb,
24027         indepsw.adb, indepsw.ads: New files.
24028
24029 2004-08-09  Bernard Banner  <banner@gnat.com>
24030
24031         * system-vxworks-x86.ads, s-vxwork-x86.ads: New files.
24032
24033         * Makefile.in: add section for vxworks x86
24034
24035 2004-08-09  Hristian Kirtchev  <kirtchev@gnat.com>
24036
24037         * exp_ch3.adb (Build_Init_Statements): Add extra condition to deal with
24038         per-object constrained components where the discriminant is of an
24039         Access type.
24040         (Build_Record_Init_Proc): Add condition to prevent the inheritance of
24041         the parent initialization procedure for derived Unchecked_Unions.
24042         Instead, derived Unchecked_Unions build their own initialization
24043         procedure.
24044         (Build_Variant_Record_Equality): Implement Unchecked_Union equality.
24045         Check the body of the subprogram for details.
24046         (Freeze_Record_Type): Prevent the inheritance of discriminant checking
24047         functions for derived Unchecked_Union types by introducing a condition.
24048         Allow the creation of TSS equality functions for Unchecked_Unions.
24049         (Make_Eq_Case): Rename formal parameter Node to E in function signature.
24050         Add formal parameter Discr to function signature. Discr is used to
24051         control the generated case statement for Unchecked_Union types.
24052         (Make_Eq_If): Rename formal parameter Node to E in function signature.
24053
24054         * exp_ch4.adb (Build_Equality_Call): Implement equality calls for
24055         Unchecked_Unions.
24056         Check the body of the subprogram for details.
24057         (Expand_Composite_Equality): Augment composite type equality to include
24058         correct handling of Unchecked_Union components.
24059         (Expand_N_In): Add condition to detect illegal membership tests when the
24060         subtype mark is a constrained Unchecked_Union and the expression lacks
24061         inferable discriminants, and build a Raise_Program_Error node.
24062         (Expand_N_Op_Eq): Add function Has_Unconstrained_UU_Component. Used
24063         to detect types that contain components of unconstrained Unchecked_Union
24064         subtype. Add condition to detect equality between types that have an
24065         unconstrained Unchecked_Union component, and build a Raise_Program_Error
24066         node. Add condition to detect equality between Unchecked_Union types
24067         that lack inferable discriminants, and build a Raise_Program_Error node.
24068         Otherwise build a TSS equality function call.
24069         (Expand_N_Type_Conversion): Add condition to detect illegal conversions
24070         from a derived Unchecked_Union to an unconstrained non-Unchecked_Union
24071         with the operand lacking inferable discriminants, and build a Raise_
24072         Program_Error node.
24073         (Expand_Record_Equality): Remove guard that prevents Unchecked_Union
24074         composite equality.
24075         (Has_Inferable_Discriminants): Implement new predicate for objects and
24076         expressions of Unchecked_Union type. Check the body of subprogram for
24077         details.
24078         (Has_Unconstrained_UU_Components): Add function
24079         Component_Is_Unconstrained_UU. It is used to detect whether a single
24080         component is of an unconstrained Unchecked_Union subtype. Add function
24081         Variant_Is_Unconstrained_UU. It is used to detect whether a single
24082         component inside a variant is of an unconstrained Unchecked_Union type.
24083
24084         * exp_ch5.adb (Expand_Assign_Record): Add condition to copy the
24085         inferred discriminant values. Add condition to generate a case
24086         statement with an inferred discriminant as the switch.
24087         (Make_Component_List_Assign): Introduce a Boolean flag that determines
24088         the behaviour of the subprogram in the presence of an Unchecked_Union.
24089         Add condition to trigger the usage of the inferred discriminant value
24090         as the generated case statement switch.
24091         (Make_Field_Assign): Introduce a Boolean flag that determines the
24092         behaviour of the subprogram in the presence of an Unchecked_Union. Add
24093         condition to trigger the usage of the inferred discriminant value as
24094         the right-hand side of the generated assignment.
24095
24096         * exp_ch6.adb (Expand_Call): Add condition to skip extra actual
24097         parameter generation when dealing with Unchecked_Unions.
24098
24099         * checks.adb (Apply_Discriminant_Check): Do not apply discriminant
24100         checks for Unchecked_Unions.
24101
24102         * einfo.ads: Update comment on usage of flag Has_Per_Object_Constraint
24103
24104         * exp_attr.adb (Expand_N_Attribute_Reference): Produce
24105         Raise_Program_Error nodes for the execution of Read and Write
24106         attributes of Unchecked_Union types and the execution of Input and
24107         Output attributes of Unchecked_Union types that lack default
24108         discriminant values.
24109
24110         * sem_prag.adb (Analyze_Pragma): Remodel the analysis of pragma
24111         Unchecked_Union. Add procedure Check_Component. It is used to inspect
24112         per-object constrained components of Unchecked_Unions for being
24113         Unchecked_Unions themselves. Add procedure Check_Variant. It is used to
24114         check individual components withing a variant.
24115
24116         * sem_res.adb (Resolve_Comparison_Op): Remove guard that prevents
24117         comparison of Unchecked_Unions.
24118         (Resolve_Equality_OP): Remove guard that prevents equality between
24119         Unchecked_Unions.
24120
24121         * sem_util.adb (Build_Component_Subtype): Add guard to prevent creation
24122         of component subtypes for Unchecked_Union components.
24123         (Get_Actual_Subtype): Add condition that returs the Unchecked_Union type
24124         since it is the actual subtype.
24125
24126         * sem_ch12.adb (Instantiate_Type): Add condition to detect the correct
24127         pass of Unchecked_Union subtypes as generic actuals to formal types
24128         that lack known_discriminant_parts or that are derived Unchecked_Union
24129         types, and do nothing. In any other case, produce an error message.
24130
24131         * sem_ch3.adb (Analyze_Component_Declaration): Add function
24132         Contains_POC. It determines whether a constraint uses the discriminant
24133         of an enclosing record type.
24134         Add condition to detect per-object constrained component and set the
24135         appropriate flag.
24136         (Derived_Type_Declaration): Remove guard that prevents derivation from
24137         Unchecked_Union types.
24138         (Process_Subtype): Remove quard that prevents the creation of Unchecked_
24139         Union subtypes.
24140
24141         * sem_ch4.adb (Analyze_Selected_Component): Correct the detection of
24142         references to Unchecked_Union discriminants.
24143
24144         * sem_ch6.adb (Create_Extra_Formals): Add condition to skip extra
24145         formal generation when dealing with Unchecked_Unions.
24146         (Set_Actual_Subtypes): Add condition to prevent generation of actual
24147         subtypes for Unchecked_Unions.
24148
24149         * sem_ch7.adb (Analyze_Package_Specification): Add procedure
24150         Inspect_Unchecked_Union_Completion. It is used to detect incorrect
24151         completions of discriminated partial views by Unchecked_Unions and
24152         produce an error message.
24153
24154 2004-08-09  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
24155
24156         * trans.c (struct stmt_group): New field, GLOBAL.
24157         (global_stmt_group, gnu_elab_proc_decl, build_unit_elab): Deleted.
24158         (struct elab_info): New struct.
24159         (elab_info_list, gnu_elab_proc_stack): New variables.
24160         (Compilation_Unit_to_gnu): New procedure.
24161         (gigi): Call it and also handle elaboration procs we've saved.
24162         (gnat_init_stmt_group): Don't set global_stmt_group; instead initialize
24163         global field from parent.
24164         (gnat_to_gnu): Get decl from gnu_elab_proc_stack.
24165         (gnat_to_gnu, case N_Compilation_Unit): Call Compilation_Unit_to_gnu.
24166         (start_stmt_group): Initialize global field from parent.
24167         (add_decl_expr): Set to global for current statement group.
24168         (gnat_gimplify_expr, case NULL_EXPR): Add operand 0 to pre list, not
24169         post.
24170
24171         * utils.c (global_bindings_p): True when no current_function_decl; no
24172         longer check current_binding_level.
24173
24174 2004-08-09  Ben Brosgol  <brosgol@gnat.com>
24175
24176         * xgnatugn.adb: Added logic to deal with @ifset/@ifclear for edition
24177         choice.
24178
24179         * gnat_rm.texi, gnat_ugn.texi: Added edition conditionalization logic.
24180
24181 2004-08-06  Andreas Schwab  <schwab@suse.de>
24182
24183         * utils.c (gnat_define_builtin): Remove second parameter of
24184         make_decl_rtl.
24185         (begin_subprog_body): Likewise.
24186
24187 2004-07-26  Arnaud Charlet  <charlet@act-europe.fr>
24188
24189         * sem_util.adb (Requires_Transient_Scope): Temporarily disable
24190         optimization, not supported by the tree-ssa back-end.
24191
24192 2004-07-26  Olivier Hainque  <hainque@act-europe.fr>
24193
24194         * s-mastop-irix.adb: Update comments.
24195
24196         * a-except.adb (Exception_Information): Raise Constraint_Error if
24197         exception Id is Null_Id.
24198         This is required behavior, which is more reliably and clearly checked
24199         at the top level interface level.
24200
24201 2004-07-26  Javier Miranda  <miranda@gnat.com>
24202
24203         * exp_aggr.adb (Build_Array_Aggr_Code): Do not build the initialization
24204         call if a component has no default_expression and the box is used.
24205
24206         * sem_aggr.adb (Resolve_Array_Aggregate): If a component has no
24207         default_expression and you use box, it behaves as if you had declared a
24208         stand-alone object.
24209         (Resolve_Record_Aggregate): If a component has no default_expression and
24210         you use box, it behaves as if you had declared a stand-alone object.
24211
24212         * sem_ch10.adb (Install_Siblings): Do not make visible the private
24213         entities of private-with siblings.
24214
24215 2004-07-26  Ed Schonberg  <schonberg@gnat.com>
24216
24217         * sem_ch3.adb (Build_Underlying_Full_View): If this is the full view
24218         for a component of an itype, set the parent pointer for analysis,
24219         there is no list in which to insert it.
24220
24221         * sem_res.adb (Resolve): Call Rewrite_Renamed_Operator only for
24222         bona-fide renamings, not for inherited operations.
24223
24224         * exp_ch4.adb (Expand_Allocator_Expression): If the allocator is an
24225         actual for a formal that is an access parameter, create local
24226         finalization list even if the expression is not an aggregate.
24227
24228 2004-07-26  Ed Schonberg  <schonberg@gnat.com>
24229
24230         PR ada/16213
24231         * sem_ch8.adb (Attribute_Renaming, Check_Library_Level_Renaming):
24232         Diagnose properly illegal subprogram renamings that are library units.
24233
24234 2004-07-26  Ed Schonberg  <schonberg@gnat.com>
24235
24236         PR ada/15588
24237         * sem_util.adb (Is_OK_Variable_For_Out_Formal): If actual is a type
24238         conversion rewritten as an unchecked conversion, check that original
24239         expression is a variable.
24240
24241         * exp_ch4.adb (Expand_N_Type_Conversion): If rewriting as an
24242         unchecked_conversion, create new node rather than rewriting in place,
24243         to preserve original construct.
24244
24245 2004-07-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
24246
24247         * gigi.h (gnat_expand_body): Deleted.
24248
24249         * Make-lang.in: (trans.o): Depends on function.h.
24250
24251         * misc.c: (gnat_expand_body): Moved to here.
24252
24253         * trans.c (gnat_expand_body_1): Deleted.
24254         (gnat_expand_body): Moved from here.
24255         (gnat_to_gnu): N_Implicit_Label_Declaration forces being in elab proc.
24256         (add_stmt): Check for marked visited with global_bindings_p.
24257         (gnat_gimplify_expr, case COMPONENT_REF): New case.
24258         (gnat_gimplify_expr, case NULL_EXPR): Set TREE_NO_WARNING for temp.
24259
24260         * utils2.c (build_binary_op, case MODIFY_EXPR): Put LHS in a
24261         VIEW_CONVERT_EXPR if not operation type.
24262
24263         * utils.c (update_pointer_to): Set DECL_ORIGINAL_FIELD for
24264         fat pointer.
24265
24266         * decl.c, cuintp.c, gigi.h, misc.c, trans.c, utils.c, utils2.c: Minor
24267         changes: reformatting of negation operators, removing unneeded
24268         inequality comparison with zero, converting equality comparisons with
24269         zero to negations, changing int/0/1 to bool/false/true, replace calls
24270         to gigi_abort with abort, and various other similar changes.
24271
24272 2004-07-26  Vincent Celier  <celier@gnat.com>
24273
24274         * gnatcmd.adb (GNATCmd): Add processing for new built-in command
24275         "setup".
24276
24277         * make.adb (Gnatmake): Fail when a library is not present and there is
24278         no object directory.
24279
24280         * mlib-prj.adb (Check_Library): No need to check if the library needs
24281         to be rebuilt if there is no object directory, hence no object files
24282         to build the library.
24283
24284         * opt.ads (Setup_Projects): New Boolean flag.
24285
24286         * prj-nmsc.adb (Locate_Directory): New parameter Project, Kind and
24287         Location.
24288         Create directory when Kind /= "" and in "gnat setup". Report error if
24289         directory cannot be created.
24290         (Ada_Check): Create library interface copy dir if it does not exist
24291         and we are in "gnat setup".
24292         (Find_Sources): No error if in "gnat setup" and no Ada sources were
24293         found.
24294         (Language_Independent_Check): Create object directory, exec directory
24295         and/or library directory if they do not exist and we are in
24296         "gnat setup".
24297
24298         * vms_conv.ads: (Command_Type): New command Setup.
24299
24300         * vms_conv.adb (Initialize): Add Setup component of Cammand_List.
24301
24302         * vms_data.ads: Add qualifiers/switches for new built-in command
24303         "setup".
24304
24305 2004-07-25  Richard Henderson  <rth@redhat.com>
24306
24307         * utils.c (create_subprog_decl): Set DECL_ARTIFICIAL and
24308         DECL_IGNORED_P on RESULT_DECL.
24309
24310 2004-07-20  Olivier Hainque  <hainque@act-europe.fr>
24311
24312         * a-elchha.adb (Last_Chance_Handler): Remove the bogus buffer dynamic
24313         allocation and potentially overflowing update with
24314         Tailored_Exception_Information. Use the sec-stack free procedural
24315         interface to output Exception_Information instead.
24316
24317         * a-except.adb (To_Stderr): New subprogram for character, and string
24318         version moved from a-exextr to be visible from other separate units.
24319         (Tailored_Exception_Information): Remove the procedural version,
24320         previously used by the default Last_Chance_Handler and not any more.
24321         Adjust various comments.
24322
24323         * a-exexda.adb: Generalize the exception information procedural
24324         interface, to minimize the use of secondary stack and the need for
24325         local buffers when the info is to be output to stderr:
24326         (Address_Image): Removed.
24327         (Append_Info_Character): New subprogram, checking for overflows and
24328         outputing to stderr if buffer to fill is of length 0.
24329         (Append_Info_String): Output to stderr if buffer to fill is of length 0.
24330         (Append_Info_Address, Append_Info_Exception_Name,
24331         Append_Info_Exception_Message, Append_Info_Basic_Exception_Information,
24332         Append_Info_Basic_Exception_Traceback,
24333         Append_Info_Exception_Information): New subprograms.
24334         (Append_Info_Nat, Append_Info_NL): Use Append_Info_Character.
24335         (Basic_Exception_Info_Maxlength, Basic_Exception_Tback_Maxlength,
24336         Exception_Info_Maxlength, Exception_Name_Length,
24337         Exception_Message_Length): New subprograms.
24338         (Exception_Information): Use Append_Info_Exception_Information.
24339         (Tailored_Exception_Information): Use
24340         Append_Info_Basic_Exception_Information.
24341         Export services for the default Last_Chance_Handler.
24342
24343         * a-exextr.adb (To_Stderr): Remove. Now in a-except to be usable by
24344         other separate units.
24345
24346 2004-07-20  Vincent Celier  <celier@gnat.com>
24347
24348         * clean.adb, mlib-utl.adb, osint.adb, makegpr.adb: Minor reformatting.
24349
24350 2004-07-20  Ed Schonberg  <schonberg@gnat.com>
24351
24352         * freeze.adb (Freeze_Entity): If entity is a discriminated record type,
24353         emit itype references for the designated types of component types that
24354         are declared outside of the full record declaration, and that may
24355         denote a partial view of that record type.
24356
24357 2004-07-20  Ed Schonberg  <schonberg@gnat.com>
24358
24359         PR ada/15607
24360         * sem_ch3.adb (Build_Discriminated_Subtype): Do not attach a subtype
24361         which is the designated type in an access component declaration, to the
24362         list of incomplete dependents of the parent type, to avoid elaboration
24363         issues with out-of-scope subtypes.
24364         (Complete_Private_Subtype): Recompute Has_Unknown_Discriminants from the
24365         full view of the parent.
24366
24367 2004-07-20  Ed Schonberg  <schonberg@gnat.com>
24368
24369         PR ada/15610
24370         * sem_ch8.adb (Find_Expanded_Name): If name is overloaded, reject
24371         entities that are hidden, such as references to generic actuals
24372         outside an instance.
24373
24374 2004-07-20  Javier Miranda  <miranda@gnat.com>
24375
24376         * sem_ch4.adb (Try_Object_Operation): New subprogram that gives
24377         support to the new notation.
24378         (Analyze_Selected_Component): Add call to Try_Object_Operation.
24379
24380 2004-07-20  Jose Ruiz  <ruiz@act-europe.fr>
24381
24382         * s-taprob.adb: Adding the elaboration code required for initializing
24383         the tasking soft links that are common to the full and the restricted
24384         run times.
24385
24386         * s-tarest.adb (Init_RTS): Tasking soft links that are shared with the
24387         restricted run time has been moved to the package
24388         System.Soft_Links.Tasking.
24389
24390         * s-tasini.adb (Init_RTS): Tasking soft links that are shared with the
24391         restricted run time has been moved to the package
24392         System.Soft_Links.Tasking.
24393
24394         * Makefile.rtl: Add entry for s-solita.o in run-time library list.
24395
24396         * s-solita.ads, s-solita.adb: New files.
24397
24398 2004-07-20  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
24399
24400         * trans.c (Identifier_to_gnu, Pragma_to_gnu, Attribute_to_gnu,
24401         Case_Statement_to_gnu): Split off from gnat_to_gnu.
24402         (Loop_Statement_to_gnu, Subprogram_Body_to_gnu, call_to_gnu,
24403         Handled_Sequence_Of_Statements_to_gnu, Exception_Handler_to_gnu_sjlj,
24404         Exception_Handler_to_gnu_zcx): Likewise.
24405
24406 2004-07-17  Joseph S. Myers  <jsm@polyomino.org.uk>
24407
24408         * gigi.h (builtin_function): Declare.
24409
24410 2004-07-15  Robert Dewar  <dewar@gnat.com>
24411
24412         * makegpr.adb, s-secsta.ads, sem_ch3.adb, sem_case.adb: Minor
24413         reformatting
24414
24415         * gnat_ugn.texi: Add instantiation of direct_io or sequential_io with
24416         access values as an example of a warning.
24417
24418         * gnat_rm.texi: Document new attribute Has_Access_Values
24419
24420         * gnat-style.texi: Document that box comments belong on nested
24421         subprograms
24422
24423         * sem_util.ads (Has_Access_Values): Improved documentation
24424
24425         * s-finimp.ads, s-finimp.adb: Fix spelling error in comment
24426
24427         * sem_prag.adb (Check_Duplicated_Export_Name): New procedure
24428         (Process_Interface_Name): Call to this new procedure
24429         (Set_Extended_Import_Export_External_Name): Call to this new procedure
24430
24431         * s-mastop-x86.adb, 9drpc.adb: Fix spelling error in comment
24432
24433         * a-direio.ads, a-sequio.ads: Warn if Element_Type has access values
24434
24435         * einfo.ads: Minor comment typo fixed
24436
24437 2004-07-15  Jose Ruiz  <ruiz@act-europe.fr>
24438
24439         * snames.adb: Add _atcb.
24440
24441         * snames.ads: Add Name_uATCB.
24442
24443         * s-tarest.adb (Create_Restricted_Task): ATCBs are always preallocated
24444         (in the expanded code) when using the restricted run time.
24445
24446         * s-tarest.ads (Create_Restricted_Task): Created_Task transformed into
24447         a in parameter in order to allow ATCBs to be preallocated (in the
24448         expanded code).
24449
24450         * s-taskin.adb (Initialize_ATCB): T converted into a in parameter in
24451         order to allow ATCBs to be preallocated. In case of error, the ATCB is
24452         deallocated in System.Tasking.Stages.
24453
24454         * s-taskin.ads (Initialize_ATCB): T converted into a in parameter in
24455         order to allow ATCBs to be preallocated.
24456
24457         * s-tassta.adb (Create_Task): In case of error the ATCB is deallocated
24458         here. It was previously done in Initialize_ATCB.
24459
24460         * rtsfind.ads: Make the Ada_Task_Control_Block visible.
24461
24462         * exp_ch9.adb: Preallocate the Ada_Task_Control_Block when using the
24463         Restricted run time.
24464
24465         * exp_ch3.adb: When using the Restricted run time, pass the
24466         preallocated Ada_Task_Control_Block when creating a task.
24467
24468 2004-07-15  Ed Schonberg  <schonberg@gnat.com>
24469
24470         * sem_util.adb (Normalize_Actuals): If there are no actuals on a
24471         function call that is itself an actual in an enclosing call, diagnose
24472         problem here rather than assuming that resolution will catch it.
24473
24474         * sem_ch7.adb (Analyze_Package_Specification): If the specification is
24475         the local copy of a generic unit for a formal package, and the generic
24476         is a child unit, install private part of ancestors before compiling
24477         private part of spec.
24478
24479         * sem_cat.adb (Validate_Categorization_Dependency): Simplify code to
24480         use scope entities rather than tree structures, to handle properly
24481         parent units that are instances rewritten as bodies for inlining
24482         purposes.
24483
24484         * sem_ch10.adb (Get_Parent_Entity, Implicit_With_On_Parent,
24485         Remove_Parents): Handle properly a parent unit that is an
24486         instantiation, when the unit has been rewritten as a body for inlining
24487         purposes.
24488
24489         * par.adb (Goto_List): Global variable to collect goto statements in a
24490         given unit, for use in detecting natural loops.
24491
24492         * par-ch5.adb (P_Goto_Statement): Add goto to global Goto_List, for
24493         use in detecting natural loops.
24494
24495         * par-labl.adb (Find_Natural_Loops): Recognize loops create by
24496         backwards goto's, and rewrite as a infinite loop, to improve locality
24497         of temporaries.
24498
24499         * exp_util.adb (Force_Evaluation): Recognize a left-hand side
24500         subcomponent that includes an indexed reference, to prevent the
24501         generation of copies that would miscompile the desired assignment
24502         statement.
24503         (Build_Task_Image_Decls): Add a numeric suffix to
24504         generated name for string variable, to avoid spurious conflicts with
24505         the name of the type of a single protected object.
24506
24507         * exp_ch4.adb (Expand_Array_Equality): If indices are distinct, use a
24508         loop with an explicit exit statement, to avoid generating an
24509         out-of-range value with 'Succ leading to spurious constraint_errors
24510         when compiling with -gnatVo.
24511
24512 2004-07-15  Thomas Quinot  <quinot@act-europe.fr>
24513
24514         * sem_ch4.adb (Analyze_Slice): Always call Analyze on the prefix: it
24515         might not be analyzed yet, even if its Etype is already set (case of an
24516         unchecked conversion built using Unchecked_Convert_To, for example).
24517         If the prefix has already been analyzed, this will be a nop anyway.
24518
24519         * exp_ch5.adb (Make_Tag_Ctrl_Assignment): For an assignment of a
24520         controller type, or an assignment of a record type with controlled
24521         components, copy only user data, and leave the finalization chain
24522         pointers untouched.
24523
24524 2004-07-15  Vincent Celier  <celier@gnat.com>
24525
24526         * make.adb (Collect_Arguments): Improve error message when attempting
24527         to compile a source not part of any project, when -x is not used.
24528
24529         * prj.ads: (Defined_Variable_Kind): New subtype
24530
24531         * prj-attr.adb (Register_New_Package): Two new procedures to register
24532         a package with or without its attributes.
24533         (Register_New_Attribute): Mew procedure to register a new attribute in a
24534         package.
24535         New attribute oriented subprograms: Attribute_Node_Id_Of,
24536         Attribute_Kind_Of, Set_Attribute_Kind_Of, Attribute_Name_Of,
24537         Variable_Kind_Of, Set_Variable_Kind_Of, Optional_Index_Of,
24538         Next_Attribute.
24539         New package oriented subprograms: Package_Node_Id_Of,
24540         Add_Unknown_Package, First_Attribute_Of, Add_Attribute.
24541
24542         * prj-attr.ads (Attribute_Node_Id): Now a private, self initialized
24543         type.
24544         (Package_Node_Id): Now a private, self initialized type
24545         (Register_New_Package): New procedure to register a package with its
24546         attributes.
24547         New attribute oriented subprograms: Attribute_Node_Id_Of,
24548         Attribute_Kind_Of, Set_Attribute_Kind_Of, Attribute_Name_Of,
24549         Variable_Kind_Of, Set_Variable_Kind_Of, Optional_Index_Of,
24550         Next_Attribute.
24551         New package oriented subprograms: Package_Node_Id_Of,
24552         Add_Unknown_Package, First_Attribute_Of, Add_Attribute.
24553
24554         * prj-dect.adb (Parse_Attribute_Declaration,
24555         Parse_Package_Declaration): Adapt to new spec of Prj.Attr.
24556
24557         * prj-makr.adb (Make): Parse existing project file before creating
24558         other files. Fail if there was an error during parsing.
24559
24560         * prj-proc.adb (Add_Attributes, Process_Declarative_Items): Adapt to
24561         new spec of Prj.Attr.
24562
24563         * prj-strt.adb (Attribute_Reference, Parse_Variable_Reference): Adapt
24564         to new spec of Prj.Attr.
24565
24566 2004-07-15  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
24567
24568         * utils2.c: Fix typo in comment.
24569
24570 2004-07-14  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
24571
24572         * trans.c (add_decl_expr): Clear TREE_READONLY if clear DECL_INITIAL.
24573         * utils.c (unchecked_convert): Don't do two VIEW_CONVERT_EXPRs.
24574
24575 2004-07-14  Andreas Schwab  <schwab@suse.de>
24576
24577         * trans.c (gnat_init_stmt_group): Remove duplicate definition.
24578
24579 2004-07-13  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
24580
24581         * decl.c: (gnat_to_gnu_entity, object case): Convert initializer to
24582         object type.
24583         (gnat_to_gnu_entity, case E_Record_Subtype): Properly set
24584         TYPE_STUB_DECL.
24585
24586         * misc.c (gnat_types_compatible_p): New function.
24587         (LANG_HOOKS_TYPES_COMPATIBLE_P): New hook, to use it.
24588         (LANG_HOOKS_TYPE_MAX_SIZE, gnat_type_max_size): New.
24589
24590         * trans.c (gigi): Move processing of main N_Compilation_Unit here.
24591         (gnat_to_gnu, case N_Compilation_Unit): Just handle nested case here.
24592         (add_stmt): Force walking of sizes and DECL_INITIAL for DECL_EXPR.
24593         (mark_visited): Don't mark dummy type.
24594         (tree_transform <N_Procedure_Call_Statement>): Unless this is an In
24595         parameter, we must remove any LJM building from GNU_NAME.
24596         (gnat_to_gnu, case N_String_Literal): Fill in indices in CONSTRUCTOR.
24597         (pos_to_constructor): Use int_const_binop.
24598         (gnat_to_gnu, case N_Identifier): Don't reference DECL_INITIAL of
24599         PARM_DECL.
24600
24601         * utils.c (gnat_init_decl_processing): Don't make two "void" decls.
24602         (gnat_pushlevel): Set TREE_USE on BLOCK node.
24603         (gnat_install_builtins): Add __builtin_memset.
24604
24605 2004-07-13  Olivier Hainque  <hainque@act-europe.fr>
24606
24607         * decl.c (gnat_to_gnu_entity <E_Variable>): If we are making a pointer
24608         for a renaming, stabilize the initialization expression if we are at a
24609         local level.  At the local level, uses of the renaming may be performed
24610         by a direct dereference of the initializing expression, and we don't
24611         want possible variables there to be evaluated for every use.
24612
24613         * trans.c (gnat_stabilize_reference, gnat_stabilize_reference_1):
24614         Propagate TREE_SIDE_EFFECTS and TREE_THIS_VOLATILE to avoid loosing
24615         them on the way.  Account for the fact that we may introduce side
24616         effects in the process.
24617
24618 2004-07-13  Richard Henderson  <rth@redhat.com>
24619
24620         * misc.c (default_pass_by_ref): Use pass_by_reference.
24621
24622 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
24623
24624         * misc.c (LANG_HOOKS_CLEAR_BINDING_STACK, LANG_HOOKS_PUSHLEVEL,
24625         LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
24626
24627 2004-07-08  Richard Henderson  <rth@redhat.com>
24628
24629         * trans.c (gnat_to_gnu <N_Handled_Sequence_Of_Statements>): Update
24630         commentary.
24631
24632 2004-07-06  Vincent Celier  <celier@gnat.com>
24633
24634         * vms_conv.ads: Minor reformatting.
24635         Alphabetical order for enumerated values of type Command_Type, to have
24636         the command in alphabetical order for the usage.
24637
24638         * vms_conv.adb (Process_Argument): Set Keep_Temporary_Files to True for
24639         the special qualifier /KEEP_TEMPORARY_FILES (minimum 6 characters).
24640
24641         * gnat_ugn.texi: Document new switch -dn for the GNAT driver.
24642
24643         * makegpr.adb (Global_Archive_Exists): New global Boolean variable
24644         (Add_Archive_Path): Only add the global archive if there is one.
24645         (Build_Global_Archive): Set Global_Archive_Exists depending if there is
24646         or not any object file to put in the global archive, and don't build
24647         a global archive if there is none.
24648         (X_Switches): New table
24649         (Compile_Link_With_Gnatmake): Pass to gnatmake the -X switches stored
24650         in the X_Switches table, if any.
24651         (Initialize): Make sure the X_Switches table is empty
24652         (Scan_Arg): Record -X switches in table X_Switches
24653
24654         * opt.ads (Keep_Temporary_Files): New Boolean flag, defaulted to False.
24655
24656         * make.adb: Minor comment fix
24657
24658         * gnatname.adb (Gnatname): When not on VMS, and gnatname has been
24659         invoked with directory information, add the directory in front of the
24660         path.
24661
24662         * gnatchop.adb (Gnatchop): When not on VMS, and gnatchop has been
24663         invoked with directory information, add the directory in front of the
24664         path.
24665
24666         * gnatcmd.adb (Delete_Temp_Config_Files): Only delete temporary files
24667         when Keep_Temporary_Files is False.
24668         (GNATCmd): When not on VMS, and the GNAT driver has been invoked with
24669         directory information, add the directory in front of the path.
24670         When not on VMS, handle new switch -dn before the command to set
24671         Keep_Temporary_Files to True.
24672         (Non_VMS_Usage): Use lower case for the non VMS usage: this is valid
24673         everywhere.
24674
24675         * gnatlink.adb (Gnatlink): When not on VMS, and gnatlink has been
24676         invoked with directory information, add the directory in front of the
24677         path.
24678
24679 2004-07-06  Thomas Quinot  <quinot@act-europe.fr>
24680
24681         * snames.ads, snames.adb (Name_Stub): New name for the distributed
24682         systems annex.
24683
24684         * rtsfind.ads: New RTE TC_Object, for DSA/PolyORB.
24685         New RTEs RAS_Proxy_Type and RAS_Proxy_Type_Access, for DSA.
24686
24687         * g-socket.adb (To_Timeval): Fix incorrect conversion of
24688         Selector_Duration to Timeval for the case of 0.0.
24689
24690         * exp_util.ads (Evolve_Or_Else): Fix overenthusiastic copy/paste of
24691         documentation from Evolve_And_Then.
24692
24693 2004-07-06  Jose Ruiz  <ruiz@act-europe.fr>
24694
24695         * s-taprop-tru64.adb, s-taprop-os2.adb,
24696         s-taprop-mingw.adb, s-taprop-posix.adb: Update comment.
24697
24698 2004-07-06  Robert Dewar  <dewar@gnat.com>
24699
24700         * s-osinte-hpux.ads, s-osinte-freebsd.ads,
24701         s-osinte-lynxos.ads, s-taprop-lynxos.adb, s-osinte-tru64.ads,
24702         s-osinte-aix.ads, s-osinte-irix.ads, s-taprop-irix.adb,
24703         s-interr-sigaction.adb, s-taprop-irix-athread.adb,
24704         s-osinte-hpux-dce.adb, s-taprop-hpux-dce.adb,
24705         s-taprop-linux.adb, s-taprop-dummy.adb, s-taprop-solaris.adb,
24706         s-interr-vms.adb, s-osinte-vms.ads, s-taprop-vms.adb,
24707         s-osinte-vxworks.ads, s-osprim-vxworks.adb, a-numaux-x86.adb,
24708         a-except.adb, a-exexpr.adb, a-intsig.adb, a-tags.adb,
24709         a-tags.ads, bindgen.ads, checks.adb, checks.adb,
24710         csets.ads, einfo.ads, einfo.ads, elists.adb, exp_ch4.adb,
24711         exp_ch7.adb, exp_dist.adb, exp_util.adb, freeze.adb,
24712         g-dynhta.adb, gnatmem.adb, g-regexp.adb, inline.adb,
24713         i-os2thr.ads, osint.adb, prj.adb, scng.adb, sem_cat.adb,
24714         sem_ch10.adb, sem_ch12.adb, sem_ch4.adb, sem_ch7.adb,
24715         sem_ch8.adb, sem_disp.adb, sem_prag.adb, sem_res.adb,
24716         sem_type.adb, sem_type.ads, sem_warn.adb, s-ficobl.ads,
24717         s-finimp.adb, s-htable.adb, sinfo.ads, sinput-l.ads,
24718         s-interr.adb, s-interr.ads, sprint.adb, s-tarest.adb,
24719         s-tasini.ads, s-taskin.ads, s-taskin.ads, uname.adb,
24720         vms_data.ads: Minor reformatting,
24721         Fix bad box comment format.
24722
24723         * gnat_rm.texi: Fix minor grammatical error
24724
24725         * sem_attr.adb, exp_attr.adb: New attribute Has_Access_Values
24726
24727         * sem_util.ads, sem_util.adb (Requires_Transient_Scope): Allow many
24728         more cases of discriminated records to be recognized as not needing a
24729         secondary stack.
24730         (Has_Access_Values): New function.
24731
24732         * snames.h, snames.adb, snames.ads: New attribute Has_Access_Values
24733
24734         * cstand.adb, layout.ads, layout.adb, sem_ch13.ads: Change name
24735         Set_Prim_Alignment to Set_Elem_Alignment (more accurate correspondence
24736         with LRM terminology).
24737         Change terminology in comments primitive type => elementary type.
24738
24739 2004-07-06  Ed Schonberg  <schonberg@gnat.com>
24740
24741         PR ada/15602
24742         * sem_ch7.adb (Unit_Requires_Body): For a generic package, the formal
24743         parameters do not impose any requirements on the presence of a body.
24744
24745 2004-07-06  Ed Schonberg  <schonberg@gnat.com>
24746
24747         PR ada/15593
24748         * sem_ch12.adb (Analyze_Package_Instantiation): If the generic is not a
24749         compilation unit and is in an open scope at the point of instantiation,
24750         assume that a body may be present later.
24751
24752 2004-07-06  Ed Schonberg  <schonberg@gnat.com>
24753
24754         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case 'Size):
24755         Improve error message when specified size is not supported.
24756
24757         * sem_ch6.adb (Maybe_Primitive_Operation): A library-level subprogram
24758         is never a primitive operation.
24759
24760 2004-07-05  Andreas Schwab  <schwab@suse.de>
24761
24762         * ada-tree.h (TYPE_LEFT_JUSTIFIED_MODULAR_P): Use
24763         RECORD_OR_UNION_CHECK.
24764         (TYPE_CONTAINS_TEMPLATE_P): Likewise.
24765
24766 2004-07-04  Kelley Cook  <kcook@gcc.gnu.org>
24767
24768         * Make-lang.in (doc/gnat_ugn_unw.texi): Eliminate explicit
24769         dependency on xgnatugn, instead build it via a submake.
24770         (ADA_INFOFILES): Add doc/gnat_ugn_unw.texi.
24771
24772 2004-07-04  Richard Henderson  <rth@redhat.com>
24773
24774         * utils2.c (gnat_mark_addressable): Don't put_var_into_stack.
24775
24776 2004-07-01  Richard Henderson  <rth@redhat.com>
24777
24778         * trans.c (gnat_stabilize_reference): Don't handle RTL_EXPR.
24779         * utils.c (max_size): Likewise.
24780
24781 2004-06-28  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
24782
24783         * decl.c: Remove calls to add_decl_expr, pushdecl, rest_of_compilation,
24784         and rest_of_type_compilation; add arg to create_*_decl.
24785         (annotate_decl_with_node): Deleted.
24786         (gnat_to_gnu_entity, case E_Array_Type): Set location of fields.
24787         * gigi.h (get_decls, block_has_vars, pushdecl): Deleted.
24788         (get_current_block_context, gnat_pushdecl): New declarations.
24789         (gnat_init_stmt_group): Likewise.
24790         (create_var_decl, create_type_decl, create_subprog_decl): Add new arg.
24791         * misc.c (LANG_HOOKS_CLEAR_BINDING_STACK): Deleted.
24792         (LANG_HOOKS_GETDECLS, LANG_HOOKS_PUSHDECL): Deleted.
24793         (gnat_init): Call gnat_init_stmt_group.
24794         * trans.c (global_stmt_group, gnu_elab_proc_decl): New variables.
24795         (gnu_pending_elaboration_list): Deleted.
24796         (mark_visited, mark_unvisited, gnat_init_stmt_group): New functions.
24797         (gigi): Rearrange initialization calls and move some to last above.
24798         (gnat_to_gnu): If statement and not in procedure, go into elab proc.
24799         Delete calls to add_decl_expr; add arg to create_*_decl.
24800         (gnat_to_gnu, case N_Loop): Recalculate side effects on COND_EXPR.
24801         (gnat_to_gnu, case N_Subprogram_Body): Move some code to
24802         begin_subprog_body and call it.
24803         Don't push and pop ggc context.
24804         (gnat_to_gnu, case N_Compilation_Unit): Rework to support elab proc.
24805         (add_stmt): Remove handling of DECL_EXPR from here.
24806         If not in function, mark visited.
24807         (add_decl_expr): Put global at top level.
24808         Check for cases of DECL_INITIAL we have to handle here.
24809         (process_type): Add extra arg to create_type_decl.
24810         (build_unit_elab): Rework to just gimplify.
24811         * utils.c (pending_elaborations, elist_stack, getdecls): Deleted.
24812         (block_has_vars, mark_visited, add_pending_elaborations): Likewise.
24813         (get_pending_elaborations, pending_elaborations_p): Likewise.
24814         (push_pending_elaborations, pop_pending_elaborations): Likewise.
24815         (get_elaboration_location, insert_elaboration_list): Likewise.
24816         (gnat_binding_level): Renamed from ada_binding_level.
24817         (init_gnat_to_gnu): Don't clear pending_elaborations.
24818         (global_bindings_p): Treat as global if no current_binding_level.
24819         (set_current_block_context): New function.
24820         (gnat_pushdecl): Renamed from pushdecl; major rework.
24821         All callers changed.
24822         (create_type_decl, create_var_decl, create_subprog_decl): Add new arg.
24823         (finish_record_type): Call call pushdecl for stub decl.
24824         (function_nesting_depth): Deleted.
24825         (begin_subprog_body): Delete obsolete code.
24826         * utils2.c (build_call_alloc_dealloc): Add new arg to create_var_decl.
24827
24828 2004-06-28  Robert Dewar  <dewar@gnat.com>
24829
24830         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
24831         mlib-tgt-irix.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
24832         mlib-tgt-linux.adb, mlib-tgt-solaris.adb, mlib-tgt-solaris.adb,
24833         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
24834         a-strmap.adb, a-strmap.ads, clean.adb: Minor reformatting
24835
24836         * exp_util.adb (Is_Possibly_Unaligned_Slice): Completely rewritten, to
24837         deal with problem of inefficient slices on machines with strict
24838         alignment, when the slice is a component of a composite.
24839
24840         * checks.adb (Apply_Array_Size_Check): Do not special case 64-bit
24841         machines, we need the check there as well.
24842
24843 2004-06-28  Ed Schonberg  <schonberg@gnat.com>
24844
24845         * exp_ch5.adb (Expand_Assign_Array): Use correct condition to
24846         determine safe copying direction for overlapping slice assignments
24847         when component is controlled.
24848
24849         * sem_ch12.adb (Instantiate_Formal_Package): Implicit operations of a
24850         formal derived type in the actual for a formal package are visible in
24851         the enclosing instance.
24852
24853 2004-06-28  Ed Schonberg  <schonberg@gnat.com>
24854
24855         PR ada/15600
24856         * sem_util.adb (Trace_Components): Diagnose properly an illegal
24857         circularity involving a private type whose completion includes a
24858         self-referential component.
24859         (Enter_Name): Use Is_Inherited_Operation to distinguish a source
24860         renaming or an instantiation from an implicit derived operation.
24861
24862 2004-06-28  Pascal Obry  <obry@gnat.com>
24863
24864         * mlib-tgt-mingw.adb: (Library_Exists_For): Remove "lib" prefix from
24865         DLL.
24866         (Library_File_Name_For): Idem.
24867
24868 2004-06-28  Matthew Gingell  <gingell@gnat.com>
24869
24870         * g-traceb.ads: Add explanatory note on the format of addresses
24871         expected by addr2line.
24872
24873 2004-06-28  Jerome Guitton  <guitton@act-europe.fr>
24874
24875         * Makefile.in: Force debugging information on s-tasdeb.adb,
24876         a-except.adb and s-assert.adb needed by the debugger.
24877
24878 2004-06-28  Vincent Celier  <celier@gnat.com>
24879
24880         * make.adb (Collect_Arguments_And_Compile): Change Flag1 to
24881         Need_To_Build_Lib.
24882         (Gnatmake): Ditto.
24883
24884         * mlib-prj.adb (Check_Library): Replace Flag1 with Need_To_Build_Lib
24885
24886         * prj.adb: Minor reformatting
24887         (Project_Empty): Change Flag1 to Need_To_Build_Lib. Remove Flag2.
24888
24889         * prj.ads: Comment updates
24890         Minor reformatting
24891         (Project_Data): Change Flag1 to Need_To_Build_Lib.
24892         Remove Flag2: not used.
24893
24894         * prj-dect.adb (Parse_Declarative_Items): Accept "null" as a
24895         declaration.
24896
24897         * gnat_ugn.texi: Put a "null;" declaration in one project file example
24898
24899         * gnat_rm.texi: Document Empty declarations "null;".
24900
24901         * makegpr.adb (Compile_Link_With_Gnatmake): Put the global archives in
24902         front of the linker options.
24903         (Link_Foreign): Put the global archives and the libraries in front of
24904         the linker options.
24905
24906 2004-06-28  Javier Miranda  <miranda@gnat.com>
24907
24908         * rtsfind.adb: (Get_Unit_Name): Fix typo in comment
24909         (RTU_Loaded): Code cleanup
24910         (Set_RTU_Loaded): New procedure to register as *loaded* explicitly
24911         withed predefined units.
24912
24913         * rtsfind.ads (Set_RTU_Loaded): New procedure to register as *loaded*
24914         explicitly withed predefined units.
24915         Fix typo in comment
24916
24917         * sem_ch10.adb (Analyze_Compilation_Unit): Register as *loaded*
24918         explicitly withed predefined units.
24919
24920 2004-06-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
24921
24922         * ada-tree.def (DECL_STMT): Deleted.
24923         * ada-tree.h (IS_ADA_STMT): Now test against STMT_STMT.
24924         (DECL_STMT_VAR): Deleted.
24925         * decl.c: add_decl_stmt now add_decl_expr.
24926         * gigi.h: Likewise.
24927         * trans.c: Likewise.
24928         (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Deleted.
24929         (gnat_to_gnu, case N_Subprogram_Body): Set cfun->function_end_locus.
24930         (add_stmt): Only handle padded type here.
24931         (add_stmt_with_node): Allow gnat_node to not be present.
24932         (gnat_gimplify_stmt, case USE_STMT): Set *STMT_P to null.
24933         (gnat_gimplify_stmt, case DECL_STMT): Deleted.
24934         (gnat_stabilize_reference_1): If COMPONENT_REF of fat pointer,
24935         make a SAVE_EXPR for the entire fat pointer.
24936         * utils.c (pushdecl): Walk a DECL_EXPR in global case.
24937         (create_index_type): Make a DECL_EXPR.
24938         (end_subprog_body): Don't call allocate_struct_function here but
24939         do clear cfun.
24940
24941 2004-06-25  Pascal Obry  <obry@gnat.com>
24942
24943         * makegpr.adb (Build_Library): Remove parameter Lib_Address and
24944         Relocatable from Build_Dynamic_Library call.
24945
24946         * gnat_ugn.texi: Change documentation about Library_Kind. Dynamic and
24947         Relocatable are now synonym.
24948
24949         * Makefile.in: Use s-parame-mingw.adb on MingW platform.
24950
24951         * mlib-prj.adb (Build_Library): Remove DLL_Address constant definition.
24952         Remove parameter Lib_Address and Relocatable from Build_Dynamic_Library
24953         call.
24954
24955         * mlib-tgt.ads, mlib-tgt.adb (Build_Dynamic_Library): Remove parameter
24956         Lib_Address and Relocatable.
24957         (Default_DLL_Address): Removed.
24958
24959         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
24960         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
24961         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-vxworks.adb:
24962         (Build_Dynamic_Library): Remove parameter Lib_Address and Relocatable.
24963         (Default_DLL_Address): Removed.
24964
24965         * mlib-tgt-mingw.adb: Ditto.
24966         (Build_Dynamic_Library): Do not add "lib" prefix to the DLL name.
24967
24968         * s-taprop-mingw.adb (Create_Task): Use Adjust_Storage_Size to compute
24969         the initial thread stack size.
24970
24971         * a-strmap.ads: Move package L to private part as it is not used in
24972         the spec. Found while reading code.
24973
24974 2004-06-25  Olivier Hainque  <hainque@act-europe.fr>
24975
24976         * tracebak.c: Introduce support for a GCC infrastructure based
24977         implementation of __gnat_backtrace.
24978
24979         * raise.c: Don't rely on a C mapping of the GNAT_GCC_Exception record
24980         any more. Use accessors instead. This eases maintenance and relaxes
24981         some alignment constraints.
24982         (_GNAT_Exception structure): Remove the Ada specific fields
24983         (EID_For, Adjust_N_Cleanups_For): New accessors, exported by
24984         a-exexpr.adb.
24985         (is_handled_by, __gnat_eh_personality): Replace component references to
24986         exception structure by use of the new accessors.
24987
24988         * init.c (__gnat_initialize): Adjust comments to match the just
24989         reverted meaning of the -static link-time option.
24990
24991         * adaint.c (convert_addresses): Arrange not to define a stub for
24992         mips-irix any more, as we now want to rely on a real version from a
24993         recent libaddr2line.
24994
24995         * a-exexpr.adb: Provide new accessors to a GNAT_GCC occurrence, so that
24996         the personality routine can use them and not have to rely on a C
24997         counterpart of the record anymore. This simplifies maintenance and
24998         relaxes the constraint of having Standard'Maximum_Alignment match
24999         BIGGEST_ALIGNMENT.
25000         Update comments, and add a section on the common header alignment issue.
25001
25002 2004-06-25  Geert Bosch  <bosch@gnat.com>
25003
25004         * a-ngelfu.adb (Tanh): Use full 20 digit precision for constants in
25005         polynomial approximation. Fixes inconsistency with Cody/Waite algorithm.
25006
25007 2004-06-25  Robert Dewar  <dewar@gnat.com>
25008
25009         * gnat_rm.texi: Fix section on component clauses to indicate that the
25010         restriction on byte boundary placement still applies for bit packed
25011         arrays.
25012         Add comment on stack usage from Initialize_Scalars
25013
25014         * gnat_ugn.texi: Add documentation for -gnatyLnnn
25015
25016         * stylesw.ads, stylesw.adb: Implement new -gnatyLnnn option for
25017         limiting nesting level.
25018
25019         * usage.adb: Add line for -gnatyLnnn switch
25020
25021         * g-debpoo.ads, xtreeprs.adb, sinput.ads, sem_ch13.ads,
25022         sem_ch13.adb, exp_aggr.adb: Minor reformatting
25023
25024         * sem_prag.adb (Process_Atomic_Shared_Volatile): Set Is_Atomic on base
25025         type as well as on the subtype. This corrects a problem in freeze in
25026         setting alignments of atomic types.
25027
25028         * sem_eval.ads: Minor comment typo fixed
25029
25030         * par-util.adb (Push_Scope_Stack): Check for violation of max nesting
25031         level.  Minor reformatting.
25032
25033         * fname.adb (Is_Predefined_File_Name): Require a letter after the
25034         minus sign. This means that file names like a--b.adb will not be
25035         considered predefined.
25036
25037         * freeze.adb: Propagate new flag Must_Be_On_Byte_Boundary to containing
25038         record Test new flag and give diagnostic for bad component clause.
25039         (Freeze_Entity): Set alignment of array from component alignment in
25040         cases where this is safe to do.
25041
25042         * exp_pakd.adb: Set new flag Must_Be_On_Byte_Boundary for large packed
25043         arrays.
25044
25045         * cstand.adb: (Create_Standard): Set alignment of String to 1
25046
25047         * einfo.ads, einfo.adb: Introduce new flag Must_Be_On_Byte_Boundary
25048
25049         * exp_ch4.adb (Expand_Array_Equality): Improve efficiency of generated
25050         code in the common constrained array cases.
25051
25052         * a-storio.adb: Change implementation to avoid possible alignment
25053         problems on machines requiring strict alignment (data should be moved
25054         as type Buffer, not type Elmt).
25055
25056         * checks.adb (Apply_Array_Size_Check): Improve these checks by
25057         killing the overflow checks which we really do not need (64-bits is
25058         enough).
25059
25060 2004-06-25  Vincent Celier  <celier@gnat.com>
25061
25062         * makegpr.adb (Is_Included_In_Global_Archive): New Boolean function
25063         (Add_Archives.Recursive_Add_Archives): Call Add_Archive_Path
25064         inconditionally for the main project.
25065         (Recursive_Add_Archives.Add_Archive_Path): New procedure
25066         (Link_Executables.Check_Time_Stamps): New procedure
25067         (Link_Executables.Link_Foreign): New procedure
25068         Changes made to reduce nesting level of this package
25069         (Check): New procedure
25070         (Add_Switches): When not in quiet output, check that a switch is not
25071         the concatenation of several valid switches. If it is, issue a warning.
25072         (Build_Global_Archive): If the global archive is rebuilt, linking need
25073         to be done.
25074         (Compile_Sources): Rebuilding a library archive does not imply
25075         rebuilding the global archive.
25076         (Build_Global_Archive): New procedure
25077         (Build_Library): New name for Build_Archive, now only for library
25078         project
25079         (Check_Archive_Builder): New procedure
25080         (Create_Global_Archive_Dependency_File): New procedure
25081         (Gprmake): Call Build_Global_Archive before linking
25082         * makegpr.adb: Use Other_Sources_Present instead of Sources_Present
25083         throughout.
25084         (Scan_Arg): Display the Copyright notice when -v is used
25085
25086         * gnat_ugn.texi: Document new switch -files= (VMS qualifier /FILES=)
25087         for gnatls.
25088
25089         * vms_data.ads: Add qualifier /MAX_NESTING=nnn (-gnatyLnnn) for GNAT
25090         COMPILE.
25091         Add new GNAT LIST qualifier /FILES=
25092         Added qualifier /DIRECTORY= to GNAT METRIC
25093         Added qualifier /FILES= to GNAT METRIC
25094         Added qualifier /FILES to GNAT PRETTY
25095
25096         * switch.adb (Is_Front_End_Switch): Refine the test for --RTS or -fRTS,
25097         to take into account both versions of the switch.
25098
25099         * switch-c.adb (Scan_Front_End_Switches): New switch -gnatez. Should
25100         always be the last switch to the gcc driver. Disable switch storing so
25101         that switches automatically added by the gcc driver are not put in the
25102         ALI file.
25103
25104         * prj.adb (Project_Empty): Take into account changes in components of
25105         Project_Data.
25106
25107         * prj.ads (Languages_Processed): New enumaration value All_Languages.
25108
25109         * prj.ads (Project_Data): Remove component Lib_Elaboration: never
25110         used. Split Boolean component Ada_Sources_Present in two Boolean
25111         components Ada_Sources_Present and Other_Sources_Present.
25112         Minor reformatting
25113
25114         * prj-env.adb (For_All_Source_Dirs.Add): Use Ada_Sources_Present
25115         instead of Sources_Present.
25116         (Set_Ada_Paths.Add.Recursive_Add): Ditto
25117
25118         * prj-nmsc.adb: Minor reformatting
25119         (Check_Ada_Naming_Scheme): New name of procedure Check_Naming_Scheme
25120         (Check_Ada_Naming_Scheme_Validity): New name of previous procedure
25121         Check_Ada_Naming_Scheme.
25122         Change Sources_Present to Ada_Sources_Present or Other_Sources_Present
25123         throughout.
25124
25125         * prj-part.adb (Post_Parse_Context_Clause): New Boolean parameter
25126         In_Limited.
25127         Make sure that all cycles where there is at least one "limited with"
25128         are detected.
25129         (Parse_Single_Project): New Boolean parameter In_Limited
25130
25131         * prj-proc.adb (Recursive_Check): When Process_Languages is
25132         All_Languages, call first Prj.Nmsc.Ada_Check, then
25133         Prj.Nmsc.Other_Languages_Check.
25134
25135         * prj-proc.adb (Process): Use Ada_Sources_Present or
25136         Other_Sources_Present (instead of Sources_Present) depending on
25137         Process_Languages.
25138
25139         * lang-specs.h: Keep -g and -m switches in the same order, and as the
25140         last switches.
25141
25142         * lib.adb (Switch_Storing_Enabled): New global Boolean flag
25143         (Disable_Switch_Storing): New procedure. Set Switch_Storing_Enabled to
25144         False.
25145         (Store_Compilation_Switch): Do nothing if Switch_Storing_Enabled is
25146         False.
25147
25148         * lib.ads (Disable_Switch_Storing): New procedure.
25149
25150         * make.adb: Modifications to reduce nesting level of this package.
25151         (Check_Standard_Library): New procedure
25152         (Gnatmake.Check_Mains): New procedure
25153         (Gnatmake.Create_Binder_Mapping_File): New procedure
25154         (Compile_Sources.Compile): Add switch -gnatez as the last option
25155         (Display): Never display -gnatez
25156
25157         * Makefile.generic:
25158         When using $(MAIN_OBJECT), always use $(OBJ_DIR)/$(MAIN_OBJECT)
25159
25160         * gnatcmd.adb (Check_Project): New function
25161         (Process_Link): New procedure to reduce nesting depth
25162         (Check_Files): New procedure to reduce the nesting depth.
25163         For GNAT METRIC, include the inherited sources in extending projects.
25164         (GNATCmd): When GNAT LS is invoked with a project file and no files,
25165         add the list of files from the sources of the project file. If this list
25166         is too long, put it in a temp text files and use switch -files=
25167         (Delete_Temp_Config_Files): Delete the temp text file that contains
25168         a list of source for gnatpp or gnatmetric, if one has been created.
25169         (GNATCmd): For GNAT METRIC and GNAT PRETTY, if the number of sources
25170         in the project file is too large, create a temporary text file that
25171         list them and pass it to the tool with "-files=<temp text file>".
25172         (GNATCmd): For GNAT METRIC add "-d=<abject dir>" as the first switch
25173
25174         * gnatlink.adb (Gnatlink): Do not compile with --RTS= when the
25175         generated file is in not in Ada.
25176
25177         * gnatls.adb: Remove all parameters And_Save that are no longer used.
25178         (Scan_Ls_Arg): Add processing for -files=
25179         (Usage): Add line for -files=
25180
25181         * g-os_lib.adb (On_Windows): New global constant Boolean flag
25182         (Normalize_Pathname): When on Windows and the path starts with a
25183         directory separator, make sure that the resulting path will start with
25184         a drive letter.
25185
25186         * clean.adb (Clean_Archive): New procedure
25187         (Clean_Project): When there is non-Ada code, delete the global archive,
25188         the archive dependency files, the object files and their dependency
25189         files, if they exist.
25190         (Gnatclean): Call Prj.Pars.Parse for All_Languages, not for Ada only.
25191
25192 2004-06-25  Thomas Quinot  <quinot@act-europe.fr>
25193
25194         * sinfo.ads: Fix typo in comment.
25195
25196         * sem_dist.adb (Process_Remote_AST_Attribute): Simplify code that uses
25197         the TSS for remote access-to-subprogram types, since these TSS are
25198         always present once the type has been analyzed.
25199         (RAS_E_Dereference): Same.
25200
25201         * sem_attr.adb (Analyze_Attribute): When analysis of an attribute
25202         reference raises Bad_Attribute, mark the reference as analyzed so the
25203         node (and any children resulting from rewrites that could have occurred
25204         during the analysis that ultimately failed) is not analyzed again.
25205
25206         * exp_ch7.ads (Find_Final_List): Fix misaligned comment.
25207
25208         * exp_dist.adb: Minor comment fix.
25209
25210         * exp_ch4.adb (Expand_N_Allocator): For an allocator whose expected
25211         type is an anonymous access type, no unchecked deallocation of the
25212         allocated object can occur. If the object is controlled, attach it with
25213         a count of 1. This allows attachment to the Global_Final_List, if
25214         no other relevant list is available.
25215         (Get_Allocator_Final_List): For an anonymous access type that is
25216         the type of a discriminant or record component, the corresponding
25217         finalisation list is the one of the scope of the type.
25218
25219 2004-06-25  Ed Schonberg  <schonberg@gnat.com>
25220
25221         * sem_ch3.adb (Replace_Type): When computing the signature of an
25222         inherited subprogram, use the first subtype if the derived type
25223         declaration has no constraint.
25224
25225         * exp_ch6.adb (Add_Call_By_Copy_Code): Check that formal is an array
25226         before applying previous optimization. Minor code cleanup.
25227
25228         * exp_util.adb (Is_Possibly_Unaligned_Slice): If the component is
25229         placed at the beginning of an unpacked record without explicit
25230         alignment, a slice of it will be aligned and does not need a copy when
25231         used as an actual.
25232
25233 2004-06-25  Ed Schonberg  <schonberg@gnat.com>
25234
25235         PR ada/15591
25236         PR ada/15592
25237         * sem_ch8.adb (Attribute_Renaming): Reject renaming if the attribute
25238         reference is written with expressions mimicking parameters.
25239
25240 2004-06-25  Hristian Kirtchev  <kirtchev@gnat.com>
25241
25242         PR ada/15589
25243         * sem_ch3.adb (Build_Derived_Record_Type): Add additional check to
25244         STEP 2a. The constraints of a full type declaration of a derived record
25245         type are checked for conformance with those declared in the
25246         corresponding private extension declaration. The message
25247         "not conformant with previous declaration" is emitted if an error is
25248         detected.
25249
25250 2004-06-25  Vasiliy Fofanov  <fofanov@act-europe.fr>
25251
25252         * g-traceb.ads: Document the need for -E binder switch in the spec.
25253
25254         * g-trasym.ads: Document the need for -E binder switch in the spec.
25255
25256 2004-06-25  Jose Ruiz  <ruiz@act-europe.fr>
25257
25258         * sem_prag.adb: Add handling of pragma Detect_Blocking.
25259
25260         * snames.h, snames.ads, snames.adb: Add entry for pragma
25261         Detect_Blocking.
25262
25263         * s-rident.ads: Change reference to pragma Detect_Blocking.
25264
25265         * targparm.ads, targparm.adb: Allow pragma Detect_Blocking in
25266         system.ads.
25267
25268         * opt.ads (Detect_Blocking): New Boolean variable (defaulted to False)
25269         to indicate whether pragma Detect_Blocking is active.
25270
25271         * par-prag.adb: Add entry for pragma Detect_Blocking.
25272
25273         * rtsfind.adb (RTU_Loaded): Fix the temporary kludge to get past bug
25274         of not handling WITH.
25275         Note that this replaces the previous update which was incorrect.
25276
25277 2004-06-25  Javier Miranda  <miranda@gnat.com>
25278
25279         * sem_ch10.adb (Re_Install_Use_Clauses): Force the installation of the
25280         use-clauses to have a clean environment.
25281
25282         * sem_ch8.adb (Install_Use_Clauses): Addition of a new formal to force
25283         the installation of the use-clauses to stablish a clean environment in
25284         case of compilation of a separate unit; otherwise the call to
25285         use_one_package is protected by the barrier Applicable_Use.
25286
25287         * sem_ch8.ads (Install_Use_Clauses): Addition of a new formal to force
25288         the installation of the use-clauses to stablish a clean environment in
25289         case of compilation of a separate unit.
25290         (End_Use_Clauses): Minor comment cleanup.
25291
25292 2004-06-25  Sergey Rybin  <rybin@act-europe.fr>
25293
25294         * gnat_ugn.texi: Add description of the gnatpp 'files' switch
25295
25296 2004-06-23  Richard Henderson  <rth@redhat.com>
25297
25298         * trans.c (gnat_gimplify_stmt): Update gimplify_type_sizes call.
25299
25300 2004-06-20  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
25301
25302         * decl.c (elaborate_expression, elaborate_expression_1): Arguments
25303         now bool instead of int.
25304         (gnat_to_gnu_entity, elaborate_expression_1): New arg to COMPONENT_REF.
25305         * trans.c (gnu_switch_label_stack): New function.
25306         (gnat_to_gnu, N_Object_Renaming_Declaration): Result is what the
25307         elaboration of renamed entity returns.
25308         (gnat_to_gnu, case N_Case_Statement): Add branches to end label.
25309         (add_decl_stmt): Don't add TYPE_DECL for UNCONSTRAINED_ARRAY_TYPE.
25310         (gnat_gimplify_stmt): Use alloc_stmt_list, not build_empty_stmt.
25311         (gnat_gimplify_stmt, case DECL_STMT): gimplify DECL_SIZE and
25312         DECL_SIZE_UNIT and simplify variable-sized case.
25313         (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Deleted.
25314         Callers changes to call gimplify_type_sizes and gimplify_one_sizepos.
25315         (gnat_stabilize_reference): Add arg to COMPONENT_REF.
25316         (build_unit_elab): Disable for now.
25317         * utils.c (mark_visited): New function.
25318         (pushdecl): Walk tree to call it for global decl.
25319         (update_pointer_to): Update all variants of pointer and ref types.
25320         Add arg to COMPONENT_REF.
25321         (convert): Likewise.
25322         Move check for converting between variants lower down.
25323         * utils2.c (build_simple_component_ref): Add arg to COMPONENT_REF.
25324         (build_allocator): Don't force type of MODIFY_EXPR.
25325         (gnat_mark_addressable, case VAR_DECL): Unconditionally call
25326         put_var_into_stack.
25327
25328 2004-06-14  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
25329
25330         * ada-tree.def (LOOP_STMT, EXIT_STMT): Update documentation.
25331         * ada-tree.h (EXIT_STMT_LABEL): Renamed from EXIT_STMT_LOOP.
25332         * decl.c (gnat_to_gnu_entity): Also set force_global for imported
25333         subprograms.
25334         * trans.c (gnu_loop_label_stack): Renamed from gnu_loop_stmt_stack;
25335         all callers changed.
25336         (gnat_to_gnu, case N_Loop_Statement, case N_Exit_Statement): Change
25337         the way that EXIT_STMT finds the loop label.
25338         (gnat_gimplify_stmt, case LOOP_STMT, EXIT_STMT): Likewise.
25339         (gnat_gimplify_stmt, case DECL_STMT): Handle variable-sized decls here.
25340         (add_stmt): Use annotate_with_locus insted of setting directly.
25341         (pos_to_construct): Set TREE_PURPOSE of each entry to index.
25342         (gnat_stabilize_reference, case ARRAY_RANGE_REF): Merge with ARRAY_REF.
25343         * utils.c (gnat_install_builtins): Install __builtin_memcmp.
25344         (build_vms_descriptor): Add extra args to ARRAY_REF.
25345         (convert): Use VIEW_CONVERT_EXPR between aggregate types.
25346         * utils2.c (gnat_truthvalue_conversion, case INTEGER_CST, REAL_CST):
25347         New cases.
25348         (build_binary_op): Don't make explicit CONVERT_EXPR.
25349         Add extra rgs to ARRAY_REF.
25350
25351 2004-06-14  Pascal Obry  <obry@gnat.com>
25352
25353         * gnat_ugn.texi: Document relocatable vs. dynamic Library_Kind on
25354         Windows.  Fix minor typo.
25355
25356         * mlib-tgt-mingw.adb: New implementation using the GCC -shared option
25357         which is now supported on Windows. With this implementation using the
25358         Library Project feature is no different on Windows than on UNIX.
25359
25360 2004-06-14  Vincent Celier  <celier@gnat.com>
25361
25362         * makegpr.adb (Compile_Sources): Nothing to do when there are no
25363         non-Ada sources.
25364
25365         * mlib-tgt-vxworks.adb (Library_Exists_For): Remove incorrect comment
25366
25367         * prj-part.adb (Parse_Single_Project): When a duplicate project name is
25368         found, show the project name and the path of the previously parsed
25369         project file.
25370
25371 2004-06-14  Ed Schonberg  <schonberg@gnat.com>
25372
25373         * exp_ch6.adb (Add_Call_By_Copy_Code): For an out-parameter that is an
25374         array, avoid copying the actual before the call.
25375
25376 2004-06-14  Thomas Quinot  <quinot@act-europe.fr>
25377
25378         * g-debpoo.adb: Remove alignment assumptions from GNAT.Debug_Pools.
25379         Instead, allocate memory on worst-case alignment assumptions, and then
25380         return an aligned address within the allocated zone.
25381
25382 2004-06-14  Robert Dewar  <dewar@gnat.com>
25383
25384         * bindgen.adb (Gen_Adainit_Ada): Do not generate external references to
25385         elab entities in predefined units in No_Run_Time_Mode.
25386         (Gen_Adainit_C): Same fix
25387         (Gen_Elab_Calls_Ada): Do not generate calls to elaborate predefined
25388         units in No_Run_Time_Mode
25389         (Gen_Elab_Calls_C): Same fix
25390
25391         * symbols-vms-alpha.adb: Minor reformatting
25392
25393         * g-debpoo.ads: Minor reformatting
25394
25395         * lib.adb (In_Same_Extended_Unit): Version working on node id's
25396
25397         * lib.ads (In_Same_Extended_Unit): Version working on node id's
25398
25399         * lib-xref.adb: Minor cleanup, use new version of In_Same_Extended_Unit
25400         working on nodes.
25401
25402         * make.adb: Minor reformatting
25403
25404         * par-ch12.adb: Minor reformatting
25405
25406         * par-prag.adb: Add dummy entry for pragma Profile_Warnings
25407
25408         * prj-strt.adb: Minor reformatting
25409
25410         * restrict.ads, restrict.adb: Redo handling of profile restrictions to
25411         be more general.
25412
25413         * sem_attr.adb: Minor reformatting
25414
25415         * sem_ch7.adb: Minor reformatting
25416
25417         * sem_elab.adb (Check_A_Call): Deal with problem of calling init proc
25418         for type in the same unit as the object declaration.
25419
25420         * sem_prag.adb (Check_Arg_Is_External_Name): New procedure, allows
25421         static string expressions and not just string literals.
25422         Minor reformatting
25423         (Set_Warning): Reset restriction warning flag for restriction pragma
25424         Implement pragma Profile_Warnings
25425         Implement pragma Profile (Restricted)
25426         Give obolescent messages for old restrictions and pragmas
25427
25428         * snames.h, snames.ads, snames.adb: Add new entry for pragma
25429         Profile_Warnings.
25430
25431         * s-rident.ads: Add declarations for restrictions required by profile
25432         Restricted and profile Ravenscar.
25433
25434         * targparm.ads, targparm.adb: Allow pragma Profile in system.ads
25435
25436         * gnat_ugn.texi: Correct some missing entries in the list of GNAT
25437         configuration pragmas.
25438
25439 2004-06-11  Vincent Celier  <celier@gnat.com>
25440
25441         * mlib-tgt-vms-alpha.adb (Build_Dynamic_Library): Issue switch -R to
25442         gnatsym, when symbol policy is Restricted.
25443
25444         * mlib-tgt-vms-ia64.adb (Build_Dynamic_Library): Issue switch -R to
25445         gnatsym, when symbol policy is Restricted.
25446
25447         * symbols-vms-alpha.adb (Initialize): When symbol policy is Restricted,
25448         read the symbol file.
25449         (Finalize): Fail in symbol policy Restricted if a symbol in the original
25450         symbol file is not in the object files. Do not create a new symbol file
25451         when symbol policy is Restricted.
25452
25453         * gnatbind.adb (Gnatbind): Initialize Snames, because Snames is used
25454         in Scng.
25455
25456         * gnatsym.adb (Parse_Vmd_Line): Process new switch -R for symbol policy
25457         Restricted.
25458         (Usage): Line for new switch -R
25459
25460         * make.adb (Initialize): When the platform is not VMS, add the
25461         directory where gnatmake is invoked in the front of the path, if
25462         gnatmake is invoked with directory information.  Change the Scan_Args
25463         while loop to a for loop.
25464         (Recursive_Compute_Depth): Remove parameter Visited. Improve efficiency:
25465         if Depth is equal or greater than the proposed depth, there is nothing
25466         to do.
25467         (Initialize): Call Recursive_Compute_Depth with initial Depth equal to 1
25468         instead of 0.
25469
25470         * prj.ads: Add new symbol policy Restricted.
25471
25472         * prj-dect.adb (Parse_Case_Construction): Call End_Case_Construction
25473         with the new parameters Check_All_Labels and Case_Location.
25474
25475         * prj-nmsc.adb (Ada_Check): Process new symbol policy Restricted
25476         (Library_Symbol_File needs to be defined).
25477
25478         * prj-strt.adb (End_Case_Construction): New parameters Check_All_Labels
25479         and Case_Location If Check_All_Labels is True, check that all values of
25480         the string type are used, and output warning(s) if they are not.
25481
25482         * prj-strt.ads (End_Case_Construction): New parameters Check_All_Labels
25483         and Case_Location.
25484
25485         * gnat_ugn.texi: Reorder subclauses in menus "Switches for gcc"
25486
25487         * gnat_ugn.texi: Update documentation about the library directory in
25488         Library Projects.
25489
25490         * makegpr.adb (Display_Command): In verbose mode, also display the
25491         value of the CPATH env var, when the compiler is gcc.
25492         (Initialize): Change the Scan_Args while loop to a for loop
25493         (Compile_Individual_Sources): Change directory to object directory
25494         before compilations.
25495
25496         * symbols.ads: New symbol policy Restricted.
25497
25498 2004-06-11  Olivier Hainque  <hainque@act-europe.fr>
25499
25500         * a-except.adb (Raise_After_Setup family): Remove. The responsibility
25501         is now taken care of internally in the Exception_Propagation package
25502         and does not require clients assistance any more.
25503
25504         * a-exexpr.adb (Is_Setup_And_Not_Propagated,
25505         Set_Setup_And_Not_Propagated, and Clear_Setup_And_Not_Propagated): New
25506         functions. Helpers to maintain a predicate required in the handling of
25507         occurrence transfer between tasks.
25508         This is now handled internally and does not require clients assistance
25509         for the setup/propagate separation anymore.
25510         (Setup_Exception, Propagate_Exception): Simplify the Private_Data
25511         allocation strategy, handle the Setup_And_Not_Propagated predicate and
25512         document.
25513
25514         * s-taenca.adb (Check_Exception): Use raise_with_msg instead of
25515         raise_after_setup, now that everything is handled internally within the
25516         setup/propagation engine.
25517
25518 2004-06-11  Hristian Kirtchev  <kirtchev@gnat.com>
25519
25520         * exp_ch6.adb (Expand_Inlined_Call): Add function Formal_Is_Used_Once.
25521         Add additional conditions for the case of an actual being a simple
25522         name or literal. Improve inlining by preventing the generation
25523         of temporaries with a short lifetime (one use).
25524
25525 2004-06-11  Hristian Kirtchev  <kirtchev@gnat.com>
25526
25527         PR ada/15587
25528         * einfo.ads: Minor comment updates for Has_Completion and
25529         E_Constant list of flags.
25530
25531         * sem_ch3.adb (Analyze_Object_Declaration): Full constant declarations
25532         and constant redeclarations now set the Has_Completion flag of their
25533         defining identifiers.
25534
25535         * sem_ch7.adb (Analyze_Package_Spec): Add procedure
25536         Inspect_Deferred_Constant_Completion.
25537         Used to detect private deferred constants that have not been completed
25538         either by a constant redeclaration or pragma Import. Emits error message
25539         "constant declaration requires initialization expression".
25540
25541         * sem_prag.adb (Process_Import_Or_Interface): An Import pragma now
25542         completes a deferred constant.
25543
25544 2004-06-11  Geert Bosch  <bosch@gnat.com>
25545
25546         * eval_fat.adb (Decompose_Int): Fix rounding of negative numbers.
25547
25548         * s-fatgen.adb (Gradual_Scaling): Correct off-by-one error in
25549         calculating exponent for scaling denormal numbers.
25550         (Leading_Part): Properly raise Constraint_Error for zero or negative
25551         Adjustment.
25552         (Remainder): Properly raise Constraint_Error for zero divisor.
25553
25554 2004-06-11  Thomas Quinot  <quinot@act-europe.fr>
25555
25556         * sem_util.adb: Minor reformatting.
25557
25558         * exp_ch2.adb (Expand_Entry_Parameter): Generate an explicit
25559         dereference when accessing the entry parameter record.
25560         (Check_Array_Type): Always check for possible implicit dereference.
25561         (maybe_implicit_dereference): Rename to check_no_implicit_derefence.
25562         Abort if a pointer is still present (denoting that an implicit
25563         dereference was left in the tree by the front-end).
25564
25565         * sem_attr.adb (Expand_Entry_Parameter): Generate an explicit
25566         dereference when accessing the entry parameter record.
25567         (Check_Array_Type): Always check for possible implicit dereference.
25568         (maybe_implicit_dereference): Rename to check_no_implicit_derefence.
25569         Abort if a pointer is still present (denoting that an implicit
25570         dereference was left in the tree by the front-end).
25571
25572 2004-06-11  Emmanuel Briot  <briot@act-europe.fr>
25573
25574         * g-debpoo.adb (Deallocate, Dereference): Add prefix "error:" to error
25575         message, like the compiler itself does. Easier to parse the output.
25576
25577         * g-debpoo.ads: (Allocate, Deallocate, Dereference): Add comments.
25578
25579         * gnat_ugn.texi (gnatxref, gnatfind): Clarify that source names should
25580         be base names, and not includes directories.
25581
25582 2004-06-11  Arnaud Charlet  <charlet@act-europe.fr>
25583
25584         * Makefile.generic ($(EXEC)): Depend on $(OBJECTS), not $(OBJ_FILES),
25585         so that dependencies are properly taken into account by make.
25586
25587 2004-06-11  Arnaud Charlet  <charlet@act-europe.fr>
25588
25589         PR ada/15622
25590         * s-unstyp.ads, s-maccod.ads, sem_ch8.adb, s-auxdec.ads,
25591         exp_intr.adb, s-auxdec-vms_64.ads: Fix typo: instrinsic -> intrinsic
25592
25593 2004-06-11  Jerome Guitton  <guitton@act-europe.fr>
25594
25595         * Makefile.in (install-gnatlib): install target-specific run-time files.
25596
25597         * Make-lang.in: Remove obsolete targets.
25598
25599 2004-06-11  Ed Schonberg  <schonberg@gnat.com>
25600
25601         * par-ch12.adb (P_Generic): Add scope before analyzing subprogram
25602         specification, to catch misuses of program unit names.
25603
25604         * sem_res.adb (Resolve_Type_Conversion): Do not emit warnings on
25605         superfluous conversions in an instance.
25606
25607 2004-06-11  Ed Schonberg  <schonberg@gnat.com>
25608
25609         PR ada/15403
25610         * sem_ch12.adb (Save_References): If operator node has been folded to
25611         enumeration literal, associated_node must be discarded.
25612
25613 2004-06-11  Jose Ruiz  <ruiz@act-europe.fr>
25614
25615         * s-stchop-vxworks.adb: Add required pragma Convention to
25616         Task_Descriptor because it is updated by a C function.
25617
25618 2004-06-08  Arnaud Charlet  <charlet@act-europe.fr>
25619
25620         PR ada/15568
25621         * Makefile.in: Remove target specific SO_OPT on IRIX
25622
25623 2004-06-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
25624
25625         * ada-tree.def (TRANSFORM_EXPR, ALLOCATE_EXPR, USE_EXPR): Deleted.
25626         (GNAT_NOP_EXPR, GNAT_LOOP_ID, EXPR_STMT, NULL_STMT): Likewise.
25627         (BLOCK_STMT, IF_STMT, GOTO_STMT, LABEL_STMT, RETURN_STMT): Likewise.
25628         (ASM_STMT, BREAK_STMT, REGION_STMT,HANDLER_STMT): Likewise.
25629         (STMT_STMT, USE_STMT): New statement codes.
25630         (LOOP_STMT, EXIT_STMT): Make slight semantic changes.
25631         * ada-tree.h: Reflect above changes.
25632         (struct tree_loop_id): Deleted.
25633         (union lang_tree_node, struct lang_decl, struct lang_type):
25634         Now just contains a tree node; update macros using TYPE_LANG_SPECIFIC
25635         and DECL_LANGUAGE_SPECIFIC to reflect these changes.
25636         (DECL_INIT_BY_ASSIGN_P, TRE_LOOP_NODE_ID, TREE_SLOC): Deleted.
25637         (IS_ADA_STMT): New macro.
25638         * decl.c (annotate_decl_with_node): New function.
25639         (gnat_to_gnu_entity): Use it and Sloc_to_locus instead of set_lineno.
25640         (gnat_to_gnu_entity, case object): Remove call to expand CONVERT_EXPR.
25641         Call add_stmt_with_node to do needed assignments.
25642         Add call to update setjmp buffer directly, not via EXPR_STMT.
25643         (maybe_variable): Argment GNAT_NODE deleted.
25644         * gigi.h (maybe_variable): Likewise.
25645         (make_transform, add_stmt_with_node, set_block_for_group): New.
25646         (gnat_gimplify_expr, gnat_expand_body, Sloc_to_locus): Likewise.
25647         (set_block_jmpbuf_decl, get_block_jmpbuf_decl): Likewise.
25648         (discard_file_names, gnu_block_stack, gnat_to_code): Deleted.
25649         (set_lineno, set_lineno_from_sloc): Likewise.
25650         (record_code_position, insert_code_for): Likewise.
25651         (gnat_poplevel): Now returns void.
25652         (end_subprog_body): Now takes argument.
25653         * misc.c (cgraph.h, tree-inline.h): New includes.
25654         (gnat_tree_size, LANG_HOOKS_TREE_SIZE): Deleted.
25655         (gnat_post_options, LANG_HOOKS_POST_OPTIONS): New.
25656         (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Likewise.
25657         (LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_GIMPLIFY_EXPR): Likewise.
25658         (gnat_parse_file): Don't set immediate_size_expand.
25659         Call cgraph functions.
25660         (gnat_expand_expr): Remove most cases.
25661         (record_code_position, insert_code_for): Remove from here.
25662         * trans.c (toplev.h, tree-gimple.h): Now included.
25663         (discard_file_names): Deleted.
25664         (gnu_block_stack, gnu_block_stmt_node, gnu_block_stmt_free_list): Del.
25665         (first_nondeleted_insn, make_expr_stmt_from_rtl): Likewise.
25666         (struct stmt_group, current_stmt_group, stmt_group_free_list): New.
25667         (gnu_stack_free_list, record_cost_position, insert_code_for): Likewise.
25668         (add_cleanup, push_stack, gnat_gimplify_stmt, add_cleanup): Likewise.
25669         (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Likewise.
25670         (gnat_expand_body_1, gnat_gimplify_expr, annotate_with_node): Likewise.
25671         (set_block_for_group, add_stmt_list): Likewise.
25672         (start_stmt_group): Renamed from start_block_stmt.
25673         (end_stmt_group): Likewise, from end_block_stmt.
25674         (build_stmt_group): Likewise, from build_block_stmt, also add arg.
25675         (gigi): Don't set discard_file_names or call set_lineno.
25676         Disallow front end ZCX; call gnat_to_gnu, not gnat_to_code.
25677         (tree_transform): Deleted, now renamed to be gnat_to_gnu.
25678         Numerous changes throughout to reflect new names and complete
25679         function-at-a-time implementation.
25680         (gnat_expand_stmt): Delete or comment out all cases.
25681         (process_inlined_subprograms): Use add_stmt.
25682         (process_decls): Use gnat_to_gnu, not gnat_to_code, and don't
25683         call set_lineno; also remove unneeded block handling.
25684         (process_type): Remove unneeded block handling.
25685         (build_unit_elab): Remove calls to deleted functions.
25686         * utils.c (cgraph.h, tree-inline.h, tree-gimple.h): Now include.
25687         (tree-dump.h): Likewise.
25688         (struct ada_binding_level): Add field jmpbuf_decl.
25689         (gnat_define_builtin, gnat_install_builtins): New.
25690         (gnat_gimplify_function, gnat_finalize): Likewise.
25691         (gnat_poplevel): No longer return BLOCK, set it instead.
25692         Remove code dealing with nested functions.
25693         (gnat_init_decl_processing): Also set size_type_node.
25694         Call gnat_install_builtins.
25695         (create_var_decl): Don't set DECL_INIT_BY_ASSIGN.
25696         (create_subprog_decl): Change handling of inline_flag; set TREE_STATIC.
25697         Remove special-case for "main".
25698         (end_subprog_body): Add arg and rework for tree-ssa.
25699         (convert): Don't use GNAT_NOP_EXPR or look for TRANSFORM_EXPR.
25700         Add case for BOOLEAN_TYPE.
25701         * utils2.c (rtl.h): Now include.
25702         (build_call_raise): Test Debug_Flag_NN directly.
25703         (build_call_alloc_dealloc): Don't use local stack allocation for now.
25704         (gnat_mark_addressable, case GNAT_NOP_EXPR): Deleted.
25705         (gnat_mark_addressable, case VAR_DECL): Handle both early & late cases.
25706
25707 2004-06-07  Robert Dewar  <dewar@gnat.com>
25708
25709         * a-direct.ads, einfo.ads: Minor comment updates
25710
25711         * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
25712         s-taprop-irix-athread.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
25713         s-taprop-dummy.adb, s-taprop-os2.adb, s-taprop-solaris.adb,
25714         s-taprop-vms.adb, s-taprop-mingw.adb, s-taprop-vxworks.adb,
25715         s-taprop-posix.adb, s-taprop.ads, exp_dbug.adb: Minor reformatting.
25716
25717         * s-interr-sigaction.adb: Remove unreferenced variable
25718         (Attached_Interrupts).  Minor reformatting.
25719         Avoid use of variable I (replace by J).
25720
25721         * par-ch10.adb: Fix text of one error message
25722
25723         * checks.adb, checks.ads, cstand.adb, vms_data.ads, errout.ads,
25724         exp_aggr.adb, exp_ch3.adb, exp_ch3.ads, exp_ch5.adb, exp_ch6.adb,
25725         exp_ch9.adb, exp_code.adb, gnat1drv.adb, lib-load.adb, lib-writ.adb,
25726         opt.adb, par.adb, opt.ads, par-ch11.adb, par-ch3.adb, par-ch4.adb,
25727         par-ch5.adb, par-ch6.adb, par-ch8.adb, par-ch9.adb, par-prag.adb,
25728         par-util.adb, scng.adb, sem_aggr.adb, sem_attr.adb, sem_cat.adb,
25729         sem_ch10.adb, sem_ch10.adb, sem_ch11.adb, sem_ch12.adb, sem_ch2.adb,
25730         sem_ch3.adb, sem_ch3.ads, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb,
25731         sem_ch7.adb, sem_ch8.adb, sem_ch9.adb, sem_eval.adb, sem_prag.adb,
25732         sem_res.adb, sem_type.adb, sem_util.adb, sinfo.ads, snames.adb,
25733         snames.ads, snames.h, sprint.adb, switch-c.adb: Modifications for Ada
25734         2005 support.
25735
25736 2004-06-07  Doug Rupp  <rupp@gnat.com>
25737
25738         * mlib-tgt-vms.adb: Rename mlib-tgt-vms.adb mlib-tgt-vms-alpha.adb
25739
25740         * s-vaflop-vms.adb: Rename s-vaflop-vms.adb to s-vaflop-vms-alpha.adb
25741
25742         * mlib-tgt-vms-ia64.adb: New file.
25743
25744         * Makefile.in: Rename mlib-tgt-vms.adb to mlib-tgt-vms-alpha.adb
25745         Add mlib-tgt-vms-ia64.adb
25746         Rename s-vaflop-vms.adb to s-vaflop-vms-alpha.adb.
25747         Move to alpha specific ifeq section.
25748         Add VMS specific versions of symbols.adb
25749         Renaming of 5q vms files.
25750
25751         * 5qsystem.ads renamed to system-vms_64.ads.
25752
25753 2004-06-07  Vincent Celier  <celier@gnat.com>
25754
25755         * a-calend.ads: Add a GNAT Note comment after function Time_Of to
25756         explain that when a time of day corresponding to the non existing hour
25757         on the day switching to DST is specified, Split may return a different
25758         value for Seconds.
25759
25760         * gnatcmd.adb: Add processing of GNAT METRIC (for gnatmetric), similar
25761         to GNAT PRETTY.
25762
25763         * g-os_lib.adb (OpenVMS): New Boolean value imported from System.
25764         (Normalize_Pathname): Only resolve VMS logical names when on VMS.
25765
25766         * mlib-prj.adb (Build_Library): New flag Gtrasymobj_Needed, initialize
25767         to False.
25768         If Gtrasymobj_Needed is True, add the full path of g-trasym.obj to
25769         the linking options.
25770         (Build_Library.Check_Libs): On VMS, if there is a dependency on
25771         g-trasym.ads, set Gtrasymobj_Needed to True.
25772
25773         * prj-attr.adb: Add new package Metrics for gnatmetric
25774
25775         * prj-nmsc.adb (Record_Other_Sources): Put source file names in
25776         canonical case to take into account files with upper case characters on
25777         Windows.
25778         (Ada_Check): Load the reference symbol file name in the name buffer to
25779         check it, not the symbol file name.
25780
25781         * snames.ads, snames.adb: Add standard name Metrics (name of project
25782         file package for gnatmetric).
25783
25784         * vms_conv.ads: Add Metric to Comment_Type
25785
25786         * vms_conv.adb (Initialize): Add component dor Metric in Command_List
25787
25788         * vms_data.ads: Add qualifiers for GNAT METRIC
25789
25790         * makegpr.adb (Link_Executables): Take into account the switches
25791         specified in package Linker of the main project.
25792
25793 2004-06-07  Thomas Quinot  <quinot@act-europe.fr>
25794
25795         * bindgen.adb (Set_Unit_Number): Units is an instance of Table, and so
25796         the index of the last element is Units.Last, not Units.Table'Last
25797         (which is usually not a valid index within the actually allocated
25798         storage for the table).
25799
25800         * exp_ch4.adb (Insert_Dereference_Action): Change predicate that
25801         determines whether to generate a call to a checked storage pool
25802         Dereference action.
25803         Generate such a call only for a dereference that either comes from
25804         source, or is the result of rewriting a dereference that comes from
25805         source.
25806
25807 2004-06-07  Romain Berrendonner  <berrendo@act-europe.fr>
25808
25809         * bindgen.adb (Gen_Output_File): Add support for GAP builds.
25810
25811 2004-06-07  Eric Botcazou  <ebotcazou@act-europe.fr>
25812
25813         (gnat_to_gnu_entity) <E_Array_Subtype>: For multi-dimensional arrays at
25814         file level, elaborate the stride for inner dimensions in alignment
25815         units, not bytes.
25816
25817         * exp_ch5.adb: Correct wrong reference to Component_May_Be_Bit_Aligned
25818         in a comment.
25819
25820 2004-06-07  Javier Miranda  <miranda@gnat.com>
25821
25822         * exp_ch6.adb: Correct wrong modification in previous patch
25823
25824 2004-06-07  Vasiliy Fofanov  <fofanov@act-europe.fr>
25825
25826         * g-trasym.ads: Corrected comment to properly reflect level of support
25827         on VMS.
25828
25829 2004-06-07  Hristian Kirtchev  <kirtchev@gnat.com>
25830
25831         * lib-xref.adb (Generate_Reference): Add nested function Is_On_LHS. It
25832         includes case of a variable referenced on the left hand side of an
25833         assignment, therefore remove redundant code. Variables and prefixes of
25834         indexed or selected components are now marked as referenced on left
25835         hand side. Warnings are now properly emitted when variables or prefixes
25836         are assigned but not read.
25837
25838         * sem_warn.adb (Output_Unreferenced_Messages): Add additional checks to
25839         left hand side referenced variables. Private access types do not
25840         produce the warning "variable ... is assigned but never read".
25841         Add also additional checks to left hand side referenced variables.
25842         Aliased, renamed objects and access types do not produce the warning
25843         "variable ... is assigned but never read" since other entities may read
25844         the memory location.
25845
25846 2004-06-07  Jerome Guitton  <guitton@act-europe.fr>
25847
25848         * Makefile.in: In the powerpc/vxworks-specific section, restore
25849         EXTRA_GNATRTL_NONTASKING_OBJS and EXTRA_GNATRTL_TASKING_OBJS (removed
25850         by mistake).
25851
25852 2004-06-07  Ed Schonberg  <schonberg@gnat.com>
25853
25854         * sem_ch4.adb (Remove_Abstract_Operations): Refine the removal of
25855         predefined operators.
25856         Removes spurious type errors from g-trasym-vms.adb.
25857
25858         * sem_res.adb (Rewrite_Renamed_Operator): If intrinsic operator is
25859         distinct from the operator appearing in the source, call appropriate
25860         routine to insert conversions when needed, and complete resolution of
25861         node.
25862         (Resolve_Intrinsic_Operator): Fix cut-and-paste bug on transfer of
25863         interpretations for rewritten right operand.
25864         (Set_Mixed_Mode_Operand): Handle properly a universal real operand when
25865         the other operand is overloaded and the context is a type conversion.
25866
25867 2004-06-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
25868
25869         * ada-tree.def (BLOCK_STMT): Now has two operands.
25870         (BREAK_STMT): New.
25871
25872         * ada-tree.h: (BLOCK_STMT_BLOCK): New macro.
25873
25874         * gigi.h: (gnat_poplevel): Now returns a tree.
25875
25876         * trans.c (end_block_stmt): Add arg; all callers changed.
25877         (tree_transform, case N_Case_Statement): Make a BLOCK_STMT for a WHEN.
25878         (start_block_stmt): Clear BLOCK_STMT_BLOCK.
25879         (add_stmt): Set TREE_TYPE.
25880         (gnat_expand_stmt, case BLOCK_STMT): Handle BLOCK_STMT_BLOCK.
25881         (gnat_expand_stmt, case BREAK_STMT): New case.
25882
25883         * utils.c (gnat_poplevel): Return a BLOCK, if we made one.
25884
25885 2004-06-07  Jose Ruiz  <ruiz@act-europe.fr>
25886
25887         * s-stchop.adsm s-stchop.adb, s-stchop-vxworks.adb: Remove the
25888         procedure Set_Stack_Size that is not needed.
25889
25890 2004-06-07  Sergey Rybin  <rybin@act-europe.fr>
25891
25892         * gnat_ugn.texi: Clarify the case when non-standard naming scheme is
25893         used for gnatpp input file and for the files upon which it depends
25894
25895 2004-06-07  Ben Brosgol  <brosgol@gnat.com>
25896
25897         * gnat_ugn.texi: Wordsmithing of "GNAT and Libraries" chapter
25898
25899 2004-06-07  Arnaud Charlet  <charlet@act-europe.fr>
25900
25901         * gnatvsn.ads: Bump version numbers appropriately.
25902         Add new build type.
25903
25904 2004-06-07  Pascal Obry  <obry@gnat.com>
25905
25906         * gnat_ugn.texi: Improve comments about imported names and link names
25907         on Windows. Add a note about the requirement to use -k gnatdll's option
25908         when working with a DLL which has stripped stdcall symbols (no @nn
25909         suffix).
25910
25911 2004-05-27  Vincent Celier  <celier@gnat.com>
25912
25913         * vms_data.ads: Add new GNAT PRETTY qualifiers /NO_BACKUP and
25914         COMMENTS_LAYOUT=UNTOUCHED
25915
25916         * symbols-vms.adb, symbols-vms-alpha.adb: Renamed symbols-vms.adb to
25917         symbols-vms-alpha.adb
25918
25919 2004-05-27  Thomas Quinot  <quinot@act-europe.fr>
25920
25921         * sem.ads: Clarify documentation on checks suppression.
25922
25923         * einfo.ads (Is_Known_Non_Null): Minor comment typo fix and rephrasing.
25924
25925 2004-05-27  Ed Schonberg  <schonberg@gnat.com>
25926
25927         * sem_util.adb (Is_Descendent_Of): Examine properly all ancestors in
25928         the case of multiple derivations.
25929         (Is_Object_Reference): For a selected component, verify that the prefix
25930         is itself an object and not a value.
25931
25932         * sem_ch12.adb (Same_Instantiated_Constant): New name for
25933         Same_Instantiated_Entity.
25934         (Same_Instantiated_Variable): Subsidiary to
25935         Check_Formal_Package_Instance, to recognize actuals for in-out generic
25936         formals that are obtained from a previous formal package.
25937         (Instantiate_Subprogram_Body): Emit proper error when
25938         generating code and the proper body of a stub is missing.
25939
25940         * sem_ch4.adb (Remove_Address_Interpretations): If the operation still
25941         has a universal interpretation, do the disambiguation here.
25942
25943         * exp_ch4.adb (Expand_N_Type_Conversion,
25944         Expand_N_Unchecked_Type_Conversion): Special handling when target type
25945         is Address, to avoid typing anomalies when Address is a visible integer
25946         type.
25947
25948         * exp_ch6.adb (Expand_N_Subprogram_Body): Use Is_Descendent_Of_Address
25949         to determine whether a subprogram should not be marked Pure, even when
25950         declared in a pure package.
25951
25952 2004-05-27  Jose Ruiz  <ruiz@act-europe.fr>
25953
25954         * gnat_ugn.texi: Replace pragma Ravenscar by pragma Profile.
25955
25956         * gnat_rm.texi: Replace Max_Entry_Queue_Depth by Max_Entry_Queue_Length
25957         Document No_Dynamic_Attachment, that supersedes No_Dynamic_Interrupts.
25958         Update the documentation about the Ravenscar profile, following the
25959         definition found in AI-249.
25960
25961         * sem_prag.adb: Use FIFO_Within_Priorities and Ceiling_Locking when
25962         setting the Profile (Ravenscar). This must be done in addition to
25963         setting the required restrictions.
25964
25965         * rtsfind.ads: Add the set of operations defined in package
25966         Ada.Interrupts.
25967
25968         * exp_ch6.adb: Check whether we are violating the No_Dynamic_Attachment
25969         restriction.
25970
25971 2004-05-27  Eric Botcazou  <ebotcazou@act-europe.fr>
25972
25973         lang-specs.h: Always require -c or -S and always redirect to /dev/null
25974         if -gnatc or -gnats is passed.
25975
25976 2004-05-27  Hristian Kirtchev  <kirtchev@gnat.com>
25977
25978         * sem_prag.adb (Sig_Flags): A Pragma_Unchecked_Union does not count as
25979         a significant reference. Warnings are now properly emitted when a
25980         discriminated type is not referenced.
25981
25982         * lib-xref.adb (Generate_Reference): A deferred constant completion,
25983         record representation clause or record type discriminant does not
25984         produce a reference to its corresponding entity. Warnings are now
25985         properly emitted when deferred constants and record types are not
25986         referenced.
25987
25988 2004-05-27  Geert Bosch  <bosch@gnat.com>
25989
25990         * Makefile.in: Use long version of libm routines on ia64 gnu/linux.
25991         Fixes ACATS Annex G tests.
25992
25993 2004-05-27  Robert Dewar  <dewar@gnat.com>
25994
25995         * rtsfind.adb (RTU_Loaded): Temporary kludge to get past bug of not
25996         handling WITH
25997
25998 2004-05-27  Arnaud Charlet  <charlet@act-europe.fr>
25999
26000         * s-interr.adb (Server_Task): Take into account case of early return
26001         from sigwait under e.g. linux.
26002
26003 2004-05-27  Sergey Rybin  <rybin@act-europe.fr>
26004
26005         * gnat_ugn.texi: Add description for the new gnatpp options:
26006          -rnb - replace the original source without creating its backup copy
26007          -c0 - do not format comments
26008
26009 2004-05-24  Geert Bosch  <bosch@gnat.com>
26010
26011         * a-numaux-x86.adb (Reduce): Reimplement using an approximation of Pi
26012         with 192 bits of precision, sufficient to reduce a double-extended
26013         arguments X with a maximum relative error of T'Machine_Epsilon, for X
26014         in -2.0**32 .. 2.0**32.
26015         (Cos, Sin):  Always reduce arguments of 1/4 Pi or larger, to prevent
26016         reduction by the processor, which only uses a 68-bit approximation of
26017         Pi.
26018         (Tan): Always reduce arguments and compute function either using
26019         the processor's fptan instruction, or by dividing sin and cos as needed.
26020
26021 2004-05-24  Doug Rupp  <rupp@gnat.com>
26022
26023         * adaint.c (__gnat_readdir): Cast CRTL function retun value to avoid
26024         gcc error on 32/64 bit VMS.
26025
26026 2004-05-24  Olivier Hainque  <hainque@act-europe.fr>
26027
26028         * init.c (__gnat_error_handler): Handle EEXIST as EACCES for SIGSEGVs,
26029         since this is what we get for stack overflows although not documented
26030         as such.
26031         Document the issues which may require adjustments to our signal
26032         handlers.
26033
26034 2004-05-24  Ed Schonberg  <schonberg@gnat.com>
26035
26036         * inline.adb (Add_Scope_To_Clean): Do not add cleanup actions to the
26037         enclosing dynamic scope if the instantiation is within a generic unit.
26038
26039 2004-05-24  Arnaud Charlet  <charlet@act-europe.fr>
26040
26041         * exp_dbug.ads: Fix typo.
26042
26043         * Makefile.in: s-osinte-linux-ia64.ads was misnamed.
26044         Rename it to its proper name: system-linux-ia64.ads
26045         (stamp-gnatlib1): Remove extra target specific run time files when
26046         setting up the rts directory.
26047
26048 2004-05-24  Javier Miranda  <miranda@gnat.com>
26049
26050         * einfo.ads, einfo.adb (Limited_Views): Removed.
26051         (Limited_View): New attribute that replaces the previous one. It is
26052         now a bona fide package with the limited-view list through the
26053         first_entity and first_private attributes.
26054
26055         * sem_ch10.adb (Install_Private_With_Clauses): Give support to
26056         limited-private-with clause.
26057         (Install_Limited_Withed_Unit): Install the private declarations of a
26058         limited-private-withed package. Update the installation of the shadow
26059         entities according to the new structure (see Build_Limited_Views)
26060         (Build_Limited_Views): Replace the previous implementation of the
26061         limited view by a package entity that references the first shadow
26062         entity plus the first shadow private entity (required for limited-
26063         private-with clause)
26064         (New_Internal_Shadow_Entity): Code cleanup.
26065         (Remove_Limited_With_Clause): Update the implementation to undo the
26066         new work carried out by Build_Limited_Views.
26067         (Build_Chain): Complete documentation.
26068         Replace Ada0Y by Ada 0Y in comments
26069         Minor reformating
26070
26071         * sem_ch3.adb (Array_Type_Declaration): In case of anonymous access
26072         types the level of accessibility depends on the enclosing type
26073         declaration.
26074
26075         * sem_ch8.adb (Find_Expanded_Name): Fix condition to detect shadow
26076         entities. Complete documentation of previous change.
26077
26078 2004-05-24  Robert Dewar  <dewar@gnat.com>
26079
26080         * namet.adb: Minor reformatting
26081         Avoid use of name I (replace by J)
26082         Minor code restructuring
26083
26084         * sem_ch6.adb: Minor reformatting
26085
26086         * lib-writ.adb: Do not set restriction as active if this is a
26087         Restriction_Warning case.
26088
26089         * sem_prag.adb: Reset restriction warning flag if real pragma
26090         restriction encountered.
26091
26092         * s-htable.adb: Minor reformatting
26093         Change rotate count to 3 in Hash (improves hash for small strings)
26094
26095         * 5qsystem.ads: Add comments for type Address (no literals allowed).
26096
26097         * gnat_ugn.texi: Add new section of documentation "Code Generation
26098         Control", which describes the use of -m switches.
26099
26100 2004-05-24  Eric Botcazou  <ebotcazou@act-europe.fr>
26101
26102         trans.c (tree_transform) <N_Identifier>: Do the dereference directly
26103         through the DECL_INITIAL for renamed variables.
26104
26105 2004-05-24  Arnaud Charlet  <charlet@act-europe.fr>
26106
26107         * s-osinte-linux-ia64.ads: Renamed system-linux-ia64.ads
26108
26109 2004-05-19  Joel Brobecker  <brobecker@gnat.com>
26110
26111         * exp_dbug.ads: Correct comments concerning handling of overloading,
26112         since we no longer use $ anymore.
26113
26114 2004-05-19  Sergey Rybin  <rybin@act-europe.fr>
26115
26116         * sem_ch10.adb (Optional_Subunit): When loading a subunit, do not
26117         ignore errors if ASIS_Mode is set. This prevents creating ASIS trees
26118         with illegal subunits.
26119
26120 2004-05-19  Ed Schonberg  <schonberg@gnat.com>
26121
26122         * sem_ch6.adb (Check_Following_Pragma): When compiling a subprogram
26123         body with front-end inlining enabled, check whether an inline pragma
26124         appears immediately after the body and applies to it.
26125
26126         * sem_prag.adb (Cannot_Inline): Emit warning if front-end inlining is
26127         enabled and the pragma appears after the body of the subprogram.
26128
26129 2004-05-17  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
26130
26131         Part of function-at-a-time conversion
26132
26133         * misc.c (adjust_decl_rtl): Deleted.
26134         (LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK):
26135         Define.
26136
26137         * gigi.h: (adjust_decl_rtl, kept_level_p, set_block): Deleted.
26138         (add_decl_stmt, add_stmt, block_has_vars): New functions.
26139         (gnat_pushlevel, gnat_poplevel): Renamed from pushlevel and poplevel.
26140
26141         * decl.c (elaborate_expression, maybe_pad_type): Call add_decl_stmt
26142         when making a decl.
26143         (gnat_to_gnu_entity): Likewise.
26144         Use add_stmt to update setjmp buffer.
26145         Set TREE_ADDRESSABLE instead of calling put_var_into_stack and
26146         flush_addressof.
26147         No longer call adjust_decl_rtl.
26148         (DECL_INIT_BY_ASSIGN_P): New macro.
26149         (DECL_STMT_VAR): Likewise.
26150
26151         * trans.c (gigi): Call start_block_stmt to make the outermost
26152         BLOCK_STMT.
26153         (gnat_to_code, gnu_to_gnu, tree_transform, process_decls, process_type):
26154         Call start_block_stmt and end_block_stmt temporarily.
26155         Use gnat_expand_stmt instead of expand_expr_stmt.
26156         (add_decl_stmt): New function.
26157         (tree_transform): Call it.
26158         (add_stmt): Also emit initializing assignment for DECL_STMT if needed.
26159         (end_block_stmt): Set type and NULL_STMT.
26160         (gnat_expand_stmt): Make recursize call instead of calling
26161         expand_expr_stmt.
26162         (gnat_expand_stmt, case DECL_STMT): New case.
26163         (set_lineno_from_sloc): Do nothing if global.
26164         (gnu_block_stmt_node, gnu_block_stmt_free_list): New variables.
26165         (start_block_stmt, add_stmt, end_block_stmt): New functions.
26166         (build_block_stmt): Call them.
26167         (gnat_to_code): Don't expand NULL_STMT.
26168         (build_unit_elab): Rename pushlevel and poplevel to gnat_* and change
26169         args.
26170         (tree_transform): Likewise.
26171         (tree_transform, case N_Null_Statement): Return NULL_STMT.
26172         (gnat_expand_stmt, case NULL_STMT): New case.
26173         (gnat_expand_stmt, case IF_STMT): Allow nested IF_STMT to have no
26174         IF_STMT_TRUE.
26175
26176         * utils2.c (gnat_mark_addressable, case VAR_DECL): Do not set
26177         TREE_ADDRESSABLE.
26178
26179         * utils.c (create_var_decl): Do not call expand_decl or
26180         expand_decl_init.
26181         Set TREE_ADDRESSABLE instead of calling gnat_mark_addressable.
26182         Set DECL_INIT_BY_ASSIGN_P when needed and do not generate MODIFY_EXPR
26183         here.
26184         (struct e_stack): Add chain_next to GTY.
26185         (struct binding_level): Deleted.
26186         (struct ada_binding_level): New struct.
26187         (free_block_chain): New.
26188         (global_binding_level, clear_binding_level): Deleted.
26189         (global_bindings_p): Rework to see if no chain.
26190         (kept_level_p, set_block): Deleted.
26191         (gnat_pushlevel): Renamed from pushlevel and extensive reworked to use
26192         new data structure and work directly on BLOCK node.
26193         (gnat_poplevel): Similarly.
26194         (get_decls): Look at BLOCK_VARS.
26195         (insert_block): Work directly on BLOCK node.
26196         (block_has_var): New function.
26197         (pushdecl): Rework for new binding structures.
26198         (gnat_init_decl_processing): Rename and rework calls to pushlevel and
26199         poplevel.
26200         (build_subprog_body): Likewise.
26201         (end_subprog_body): Likewise; also set up BLOCK in DECL_INITIAL.
26202
26203         * ada-tree.def (DECL_STMT, NULL_STMT): New codes.
26204
26205         * ada-tree.h: (DECL_INIT_BY_ASSIGN_P): New macro.
26206         (DECL_STMT_VAR): Likewise.
26207
26208 2004-05-17  Robert Dewar  <dewar@gnat.com>
26209
26210         * restrict.ads, restrict.adb (Process_Restriction_Synonym): New
26211         procedure
26212
26213         * sem_prag.adb (Analyze_Pragma, case Restrictions): Cleanup handling
26214         of restriction synonyums by using
26215         Restrict.Process_Restriction_Synonyms.
26216
26217         * snames.ads, snames.adb: Add entries for Process_Restriction_Synonym
26218
26219         * s-restri.ads (Tasking_Allowed): Correct missing comment
26220
26221         * s-rident.ads: Add entries for restriction synonyms
26222
26223         * ali.adb: Fix some problems with badly formatted ALI files that can
26224         result in infinite loops.
26225
26226         * s-taprop-lynxos.adb, s-tpopsp-lynxos.adb, s-taprop-tru64.adb,
26227         s-tpopsp-posix-foreign.adb, s-taprop-irix.adb, s-interr-sigaction.adb,
26228         s-taprop-irix-athread.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
26229         s-taprop-dummy.adb, s-interr-dummy.adb, s-taprop-os2.adb,
26230         s-taprop-solaris.adb, s-tpopsp-solaris.adb, s-asthan-vms.adb,
26231         s-inmaop-vms.adb, s-interr-vms.adb, s-taprop-vms.adb,
26232         s-tpopde-vms.adb, s-taprop-mingw.adb, s-interr-vxworks.adb,
26233         s-taprop-vxworks.adb, s-tpopsp-vxworks.adb, s-taprop-posix.adb,
26234         s-tpopsp-posix.adb, s-tratas-default.adb, a-dynpri.adb,
26235         a-tasatt.adb, a-taside.adb, a-taside.ads, exp_attr.adb,
26236         exp_ch9.adb, g-thread.adb, rtsfind.ads, sem_attr.adb,
26237         s-interr.adb, s-interr.ads, s-soflin.ads, s-taasde.adb,
26238         s-taasde.ads, s-taenca.adb, s-taenca.ads, s-taprop.ads,
26239         s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads,
26240         s-tasini.adb, s-tasini.ads, s-taskin.adb, s-taskin.ads,
26241         s-tasque.adb, s-tasque.ads, s-tasren.adb, s-tasren.ads,
26242         s-tassta.adb, s-tassta.ads, s-tasuti.adb, s-tasuti.ads,
26243         s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
26244         s-tpoben.adb, s-tpobop.adb, s-tpobop.ads, s-tporft.adb,
26245         s-tposen.adb, s-tposen.ads, s-tratas.adb, s-tratas.ads: Change Task_ID
26246         to Task_Id (minor cleanup).
26247
26248 2004-05-17  Vincent Celier  <celier@gnat.com>
26249
26250         * g-os_lib.adb (Normalize_Pathname.Final_Value): Remove trailing
26251         directory separator.
26252
26253         * prj-proc.adb (Recursive_Process): Inherit attribute Languages from
26254         project being extended, if Languages is not declared in extending
26255         project.
26256
26257 2004-05-17  Javier Miranda  <miranda@gnat.com>
26258
26259         * sem_ch10.adb (Install_Limited_Withed_Unit): Do not install the
26260         limited view of a visible sibling.
26261
26262 2004-05-14  Robert Dewar  <dewar@gnat.com>
26263
26264         * gnat_ugn.texi: Minor change to -gnatS documentation
26265
26266         * sprint.adb: Remove some instances of Assert (False) and for this
26267         purpose replace them by output of a ??? string.
26268
26269         * checks.adb, exp_aggr.adb, sem_elim.adb: Remove useless pragma
26270         Assert (False).
26271
26272         * lib-writ.adb, lib-load.adb, lib.ads, lib.adb: Remove Dependent_Unit
26273         flag processing. This was suppressing required dependencies in
26274         No_Run_Time mode and is not needed since the binder does not generate
26275         references for things in libgnat anyway.
26276
26277         * sem_ch3.adb (Access_Type_Declaration): Reorganize code to avoid GCC
26278         warning.
26279
26280 2004-05-14  Thomas Quinot  <quinot@act-europe.fr>
26281
26282         * gnat_ugn.texi: Document AIX-specific issue with initialization of
26283         resolver library.
26284
26285         * exp_ch4.adb (Insert_Dereference_Action): Do not generate dereference
26286         action for the case of an actual parameter in an init proc call.
26287
26288 2004-05-14  Ed Schonberg  <schonberg@gnat.com>
26289
26290         * sem_ch4.adb (Analyze_Selected_Component): If prefix is a protected
26291         subtype, check visible entities in base type.
26292
26293         * exp_ch7.adb (Clean_Simple_Protected_Objects): Do not generate cleanup
26294         actions if the object is a renaming.
26295
26296         * sem_ch12.adb (Same_Instantiated_Entity): Predicate for
26297         Check_Formal_Package_Instance, to determine more precisely when the
26298         formal and the actual denote the same entity.
26299
26300 2004-05-14  Javier Miranda  <miranda@gnat.com>
26301
26302         * par-ch10.adb (P_Context_Clause): Complete documentation on AI-262
26303
26304         * sem_ch10.adb (Analyze_With_Clause): After analyzed, the entity
26305         corresponding to a private_with must be removed from visibility; it
26306         will be made visible later, just before we analyze the private part of
26307         the package.
26308         (Check_Private_Child_Unit): Allow private_with clauses in public
26309         siblings.
26310         (Install_Siblings): Make visible the private entities of private-withed
26311         siblings.
26312         (Install_Withed_Unit): Do not install the private withed unit if we
26313         are compiling a package declaration and the Private_With_OK flag was
26314         not set by the caller. These declarations will be installed later,
26315         just before we analyze the private part of the package.
26316
26317         * sem_ch3.adb (Analyze_Object_Declaration): In case of errors detected
26318         during the evaluation of the expression that initializes the object,
26319         decorate it with the expected type to avoid cascade errors.
26320         Code cleanup.
26321
26322         * sem_ch6.adb (Analyze_Subprogram_Body): If we are compiling a library
26323         subprogram we have to install the private_with clauses after its
26324         specification has been analyzed (as documented in AI-262.TXT).
26325
26326         * sem_ch8.adb (Has_Private_With): New function. Determines if the
26327         current compilation unit has a private with on a given entity.
26328         (Find_Direct_Name): Detect the Beaujolais problem described in
26329         AI-262.TXT
26330
26331         * sem_utils.ads, sem_util.adb (Is_Ancestor_Package): New function. It
26332         provides the functionality of the function Is_Ancestor that was
26333         previously available in sem_ch10. It has been renamed to avoid
26334         overloading.
26335
26336         * sprint.adb (Sprint_Node_Actual): Print limited_with clauses
26337
26338 2004-05-14  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
26339
26340         * utils.c (build_vms_descriptor): Use SImode pointers.
26341
26342 2004-05-14  Vasiliy Fofanov  <fofanov@act-europe.fr>
26343
26344         * gnat_ugn.texi: Revised chapter "GNAT and Libraries".
26345
26346 2004-05-14  GNAT Script  <nobody@gnat.com>
26347
26348         * Make-lang.in: Makefile automatically updated
26349
26350 2004-05-14  Arnaud Charlet  <charlet@act-europe.fr>
26351
26352         Renaming of target specific files for clarity
26353
26354         * Makefile.in: Rename GNAT target specific files.
26355
26356         * 31soccon.ads, 31soliop.ads 35soccon.ads, 3asoccon.ads,
26357         3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3psoccon.ads,
26358         3ssoccon.ads, 3ssoliop.ads, 3veacodu.adb, 3vexpect.adb,
26359         3vsoccon.ads, 3vsocthi.adb, 3vsocthi.ads, 3vtrasym.adb,
26360         3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads, 3wsoliop.ads,
26361         3zsoccon.ads, 3zsocthi.adb, 3zsocthi.ads, 41intnam.ads,
26362         42intnam.ads, 45intnam.ads, 4aintnam.ads, 4cintnam.ads,
26363         4gintnam.ads, 4hexcpol.adb, 4hintnam.ads, 4lintnam.ads,
26364         4nintnam.ads, 4ointnam.ads, 4onumaux.ads, 4pintnam.ads,
26365         4sintnam.ads, 4vcaldel.adb, 4vcalend.adb, 4vcalend.ads,
26366         4vintnam.ads, 4wcalend.adb, 4wexcpol.adb, 4wintnam.ads,
26367         4zintnam.ads, 4znumaux.ads, 4zsytaco.adb, 4zsytaco.ads,
26368         51osinte.adb, 51osinte.ads, 51system.ads,
26369         52osinte.adb, 52osinte.ads, 53osinte.ads, 54osinte.ads,
26370         55osinte.adb, 55osinte.ads, 55system.ads, 56osinte.adb,
26371         56osinte.ads, 56system.ads, 56taprop.adb, 56taspri.ads,
26372         56tpopsp.adb, 57system.ads, 58system.ads,
26373         5amastop.adb, 5aml-tgt.adb, 5aosinte.adb, 5aosinte.ads,
26374         5asystem.ads, 5ataprop.adb, 5atasinf.ads, 5ataspri.ads,
26375         5atpopsp.adb, 5avxwork.ads, 5bml-tgt.adb, 5bosinte.adb,
26376         5bosinte.ads, 5bsystem.ads, 5cosinte.ads, 5csystem.ads,
26377         5dsystem.ads, 5esystem.ads, 5fintman.adb, 5fosinte.adb,
26378         5fosinte.ads, 5fsystem.ads, 5ftaprop.adb, 5ftasinf.ads,
26379         5ginterr.adb, 5gintman.adb, 5gmastop.adb, 5gml-tgt.adb,
26380         5gosinte.ads, 5gproinf.adb, 5gproinf.ads, 5gsystem.ads,
26381         5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads, 5gtpgetc.adb,
26382         5hml-tgt.adb, 5hosinte.adb, 5hosinte.ads, 5hparame.ads,
26383         5hsystem.ads, 5htaprop.adb, 5htaspri.ads, 5htraceb.adb,
26384         5iosinte.adb, 5iosinte.ads, 5itaprop.adb, 5itaspri.ads,
26385         5ksystem.ads, 5kvxwork.ads, 5lml-tgt.adb, 5losinte.ads,
26386         5lparame.adb, 5lsystem.ads, 5msystem.ads, 5mvxwork.ads,
26387         5ninmaop.adb, 5nintman.adb, 5nosinte.ads, 5nsystem.ads,
26388         5ntaprop.adb, 5ntaspri.ads, 5ointerr.adb, 5omastop.adb,
26389         5oosinte.adb, 5oosinte.ads, 5oosprim.adb, 5oparame.adb,
26390         5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5posinte.ads,
26391         5posprim.adb, 5psystem.ads, 5pvxwork.ads, 5sintman.adb,
26392         5sml-tgt.adb, 5sosinte.adb, 5sosinte.ads, 5sosprim.adb,
26393         5sparame.adb, 5ssystem.ads, 5staprop.adb, 5stasinf.adb,
26394         5stasinf.ads, 5staspri.ads, 5stpopsp.adb, 5svxwork.ads,
26395         5tosinte.ads, 5usystem.ads, 5vasthan.adb, 5vdirval.adb,
26396         5vinmaop.adb, 5vinterr.adb, 5vintman.adb, 5vintman.ads,
26397         5vmastop.adb, 5vml-tgt.adb, 5vosinte.adb, 5vosinte.ads,
26398         5vosprim.adb, 5vosprim.ads, 5vparame.ads, 5vsymbol.adb,
26399         5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads, 5vtpopde.adb,
26400         5vtpopde.ads, 5vtraent.adb, 5vtraent.ads, 5vvaflop.adb,
26401         5wdirval.adb, 5wgloloc.adb, 5wintman.adb, 5wmemory.adb,
26402         5wml-tgt.adb, 5wosinte.ads, 5wosprim.adb, 5wsystem.ads,
26403         5wtaprop.adb, 5wtaspri.ads, 5xparame.ads, 5xsystem.ads,
26404         5xvxwork.ads, 5yparame.ads, 5ysystem.ads, 5zinterr.adb,
26405         5zintman.adb, 5zintman.ads, 5zml-tgt.adb, 5zosinte.adb,
26406         5zosinte.ads, 5zosprim.adb, 5zparame.ads, 5zstchop.adb,
26407         5zsystem.ads, 5ztaprop.adb, 5ztaspri.ads, 5ztfsetr.adb,
26408         5ztpopsp.adb, 6vcpp.adb, 6vcstrea.adb, 6vinterf.ads,
26409         7sinmaop.adb, 7sintman.adb, 7sosinte.adb, 7sosprim.adb,
26410         7staprop.adb, 7staspri.ads, 7stfsetr.adb, 7stpopsp.adb,
26411         7straceb.adb, 7straces.adb, 7strafor.adb, 7strafor.ads,
26412         7stratas.adb, 86numaux.adb, 86numaux.ads: Replaced by files below.
26413
26414         * a-caldel-vms.adb, a-calend-mingw.adb, a-calend-vms.adb,
26415         a-calend-vms.ads, a-dirval-mingw.adb, a-dirval-vms.adb,
26416         a-excpol-abort.adb, a-excpol-interix.adb, a-intnam-aix.ads,
26417         a-intnam-dummy.ads, a-intnam-freebsd.ads, a-intnam-hpux.ads,
26418         a-intnam-interix.ads, a-intnam-irix.ads, a-intnam-linux.ads,
26419         a-intnam-lynxos.ads, a-intnam-mingw.ads, a-intnam-os2.ads,
26420         a-intnam-solaris.ads, a-intnam-tru64.ads, a-intnam-unixware.ads,
26421         a-intnam-vms.ads, a-intnam-vxworks.ads, a-numaux-libc-x86.ads,
26422         a-numaux-vxworks.ads, a-numaux-x86.adb, a-numaux-x86.ads,
26423         a-sytaco-vxworks.adb, a-sytaco-vxworks.ads, g-eacodu-vms.adb,
26424         g-expect-vms.adb, g-soccon-aix.ads, g-soccon-freebsd.ads,
26425         g-soccon-hpux.ads, g-soccon-interix.ads, g-soccon-irix.ads,
26426         g-soccon-mingw.ads, g-soccon-solaris.ads, g-soccon-tru64.ads,
26427         g-soccon-unixware.ads, g-soccon-vms.adb, g-soccon-vxworks.ads,
26428         g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vms.adb,
26429         g-socthi-vms.ads, g-socthi-vxworks.adb, g-socthi-vxworks.ads,
26430         g-soliop-mingw.ads, g-soliop-solaris.ads, g-soliop-unixware.ads,
26431         g-trasym-vms.adb, i-cpp-vms.adb, i-cstrea-vms.adb,
26432         interfac-vms.ads, mlib-tgt-aix.adb, mlib-tgt-hpux.adb,
26433         mlib-tgt-irix.adb, mlib-tgt-linux.adb, mlib-tgt-mingw.adb,
26434         mlib-tgt-solaris.adb, mlib-tgt-tru64.adb, mlib-tgt-vms.adb,
26435         mlib-tgt-vxworks.adb, s-asthan-vms.adb, s-gloloc-mingw.adb,
26436         s-inmaop-dummy.adb, s-inmaop-posix.adb, s-inmaop-vms.adb,
26437         s-interr-dummy.adb, s-interr-sigaction.adb, s-interr-vms.adb,
26438         s-interr-vxworks.adb, s-intman-dummy.adb, s-intman-irix.adb,
26439         s-intman-irix-athread.adb, s-intman-mingw.adb, s-intman-posix.adb,
26440         s-intman-solaris.adb, s-intman-vms.adb, s-intman-vms.ads,
26441         s-intman-vxworks.adb, s-intman-vxworks.ads, s-mastop-irix.adb,
26442         s-mastop-tru64.adb, s-mastop-vms.adb, s-mastop-x86.adb,
26443         s-memory-mingw.adb, s-osinte-aix.adb, s-osinte-aix.ads,
26444         s-osinte-aix-fsu.ads, s-osinte-dummy.ads, s-osinte-freebsd.adb,
26445         s-osinte-freebsd.ads, s-osinte-fsu.adb, s-osinte-hpux.ads,
26446         s-osinte-hpux-dce.adb, s-osinte-hpux-dce.ads, s-osinte-interix.ads,
26447         s-osinte-irix.adb, s-osinte-irix.ads, s-osinte-irix-athread.ads,
26448         s-osinte-linux.ads, s-osinte-linux-fsu.ads, s-osinte-linux-ia64.ads,
26449         s-osinte-lynxos-3.adb, s-osinte-lynxos-3.ads, s-osinte-lynxos.adb,
26450         s-osinte-lynxos.ads, s-osinte-mingw.ads, s-osinte-os2.adb,
26451         s-osinte-os2.ads, s-osinte-posix.adb, s-osinte-solaris.adb,
26452         s-osinte-solaris.ads, s-osinte-solaris-fsu.ads,
26453         s-osinte-solaris-posix.ads, s-osinte-tru64.adb, s-osinte-tru64.ads,
26454         s-osinte-unixware.adb, s-osinte-unixware.ads, s-osinte-vms.adb,
26455         s-osinte-vms.ads, s-osinte-vxworks.adb,
26456         s-osinte-vxworks.ads, s-osprim-mingw.adb,
26457         s-osprim-os2.adb, s-osprim-posix.adb, s-osprim-solaris.adb,
26458         s-osprim-unix.adb, s-osprim-vms.adb, s-osprim-vms.ads,
26459         s-osprim-vxworks.adb, s-parame-ae653.ads, s-parame-hpux.ads,
26460         s-parame-linux.adb, s-parame-os2.adb, s-parame-solaris.adb,
26461         s-parame-vms.ads, s-parame-vms-restrict.ads, s-parame-vxworks.ads,
26462         s-proinf-irix-athread.adb, s-proinf-irix-athread.ads,
26463         s-stchop-vxworks.adb, s-taprop-dummy.adb,
26464         s-taprop-hpux-dce.adb, s-taprop-irix.adb,
26465         s-taprop-irix-athread.adb, s-taprop-linux.adb, s-taprop-lynxos.adb,
26466         s-taprop-mingw.adb, s-taprop-os2.adb, s-taprop-posix.adb,
26467         s-taprop-solaris.adb, s-taprop-tru64.adb, s-taprop-vms.adb,
26468         s-taprop-vxworks.adb, s-tasinf-irix.ads, s-tasinf-irix-athread.adb,
26469         s-tasinf-irix-athread.ads, s-tasinf-solaris.adb, s-tasinf-solaris.ads,
26470         s-tasinf-tru64.ads, s-taspri-dummy.ads, s-taspri-hpux-dce.ads,
26471         s-taspri-linux.ads, s-taspri-lynxos.ads, s-taspri-mingw.ads,
26472         s-taspri-os2.ads, s-taspri-posix.ads, s-taspri-solaris.ads,
26473         s-taspri-tru64.ads, s-taspri-vms.ads, s-taspri-vxworks.ads,
26474         s-tfsetr-default.adb, s-tfsetr-vxworks.adb, s-tpopde-vms.adb,
26475         s-tpopde-vms.ads, s-tpopsp-lynxos.adb, s-tpopsp-posix.adb,
26476         s-tpopsp-posix-foreign.adb, s-tpopsp-solaris.adb, s-tpopsp-vxworks.adb,
26477         s-traceb-hpux.adb, s-traceb-mastop.adb, s-traces-default.adb,
26478         s-traent-vms.adb, s-traent-vms.ads, s-trafor-default.adb,
26479         s-trafor-default.ads, s-tratas-default.adb, s-vaflop-vms.adb,
26480         s-vxwork-alpha.ads, s-vxwork-m68k.ads, s-vxwork-mips.ads,
26481         s-vxwork-ppc.ads, s-vxwork-sparcv9.ads, s-vxwork-xscale.ads,
26482         symbols-vms.adb, system-aix.ads, system-freebsd-x86.ads,
26483         system-hpux.ads, system-interix.ads, system-irix-n32.ads,
26484         system-irix-o32.ads, system-linux-x86_64.ads,
26485         system-linux-x86.ads, system-lynxos-ppc.ads, system-lynxos-x86.ads,
26486         system-mingw.ads, system-os2.ads, system-solaris-sparc.ads,
26487         system-solaris-sparcv9.ads, system-solaris-x86.ads, system-tru64.ads,
26488         system-unixware.ads, system-vms.ads, system-vms-zcx.ads,
26489         system-vxworks-alpha.ads, system-vxworks-m68k.ads,
26490         system-vxworks-mips.ads, system-vxworks-ppc.ads,
26491         system-vxworks-sparcv9.ads, system-vxworks-xscale.ads: Replace files
26492         above.
26493
26494 2004-05-13  Zack Weinberg  <zack@codesourcery.com>
26495
26496         * trans.c (gnat_stabilize_reference_1): Remove case 'b'.
26497
26498 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
26499
26500         Merge from tree-ssa-20020619-branch.
26501
26502         * config-lang.in (boot_language, build_by_default): Set
26503         to no.
26504         * utils.c (unchecked_convert): Use OEP_ONLY_CONST.
26505         (max_size): Add static chain op for call_expr.
26506
26507 2004-05-12  Richard Sandiford  <rsandifo@redhat.com>
26508
26509         PR target/15331
26510         * 5gmastop.adb (Roff): Choose between '4' and '0', not '4' and ' '.
26511
26512 2004-05-11  Roger Sayle  <roger@eyesopen.com>
26513
26514         * utils.c (max_size): Use MIN_EXPR to find the minimum value of a
26515         COND_EXPR.
26516
26517 2004-05-10  Doug Rupp  <rupp@gnat.com>
26518
26519         * 5qsystem.ads: Remove Short_Address subtype declaration. Moved to
26520         system.aux_dec.
26521
26522         * s-auxdec.ads: Add Short_Address subtype (moved here from System).
26523
26524         * Makefile.in: [VMS]: Add translation for 5qauxdec.ads.
26525
26526         * init.c: [VMS] Macroize LIB$ calls for IA64 and Alpha.
26527         Fixes undefined symbols in IA64 gnatlib.
26528
26529         * 5vinmaop.adb: Reference s-auxdec for Short_Address.
26530
26531         * 5xsystem.ads, 5vsystem.ads: Back out last change (addition of subtype
26532         Short_Address). This will be moved to system.auxdec.
26533
26534 2004-05-10  Thomas Quinot  <quinot@act-europe.fr>
26535
26536         * sem_util.adb: Replace test for presence of a node that is always
26537         present with a call to Discard_Node.
26538
26539         * sem_ch10.adb (Analyze_Compilation_Unit): Remove superfluous call to
26540         Analyze on the library unit node after generation of distribution stub
26541         constructs.  The call was a no-op because Unit_Node has already been
26542         Analyzed, and the tree fragments for the distribution stubs are
26543         analyzed as they are inserted in Exp_Dist.
26544         Update comment regarding to distribution stubs to reflect that we
26545         do not generate stub in separate files anymore.
26546
26547         * einfo.ads: Clarify the fact that a tagged private type has the
26548         E_Record_Type_With_Private Ekind.
26549
26550         * erroutc.adb: Minor reformatting
26551
26552         * erroutc.ads (Max_Msg_Length): Increase to cover possible larger
26553         values if line length is increased using -gnatyM (noticed during code
26554         reading).
26555
26556         * eval_fat.adb: Minor reformatting
26557         Put spaces around exponentiation operator
26558
26559 2004-05-10  Ed Schonberg  <schonberg@gnat.com>
26560
26561         PR ada/15005
26562         * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): If prefix
26563         has been rewritten as an explicit dereference, retrieve type of
26564         original node to check for possibly unconstrained record type.
26565
26566 2004-05-10  Ed Schonberg  <schonberg@gnat.com>
26567
26568         * exp_ch7.adb (Check_Visibly_Controlled): If given operation is not
26569         overriding, use the operation of the parent unconditionally.
26570
26571         * sem_ch4.adb (Remove_Address_Interpretations): Remove address
26572         operation when either operand is a literal, to avoid further
26573         ambiguities.
26574
26575         * sem_ch6.adb (New_Overloaded_Entity): If new entity is inherited and
26576         overridden by a previous explicit declaration, mark the previous entity
26577         as overriding.
26578
26579         * sem_disp.adb (Check_Dispatching_Operation): New predicate
26580         Is_Visibly_Controlled, to determine whether a declaration of a
26581         primitive control operation for a derived type overrides an inherited
26582         one. Add warning if the explicit declaration does not override.
26583
26584 2004-05-10  Vincent Celier  <celier@gnat.com>
26585
26586         * gnatls.adb (Gnatls): Initialize Snames, to avoid assertion error in
26587         some cases when the sources are no longer present.
26588
26589         * make.adb (Collect_Arguments): Fail if an external source, not part
26590         of any project need to be compiled, when switch -x has not been
26591         specified.
26592
26593         * makeusg.adb: Document new switch -x
26594
26595         * opt.ads (External_Unit_Compilation_Allowed): New Boolean flag,
26596         defaulted to False.
26597
26598         * switch-m.adb (Scan_Make_Switches): New switch -x
26599
26600         * vms_data.ads: Add VMS qualifier /NON_PROJECT_UNIT_COMPILATION for
26601         gnatmake switch -x.
26602
26603         * gnat_ugn.texi: Document new gnatmake switch -x
26604
26605 2004-05-10  Eric Botcazou  <ebotcazou@act-europe.fr>
26606
26607         * misc.c (gnat_init_options): Set flag_zero_initialized_in_bss to 0.
26608
26609         * utils.c (create_var_decl): Do not modify the DECL_COMMON flag.
26610         (process_attributes): Likewise.
26611
26612 2004-05-10  Joel Brobecker  <brobecker@gnat.com>
26613
26614         * s-inmaop.ads: Fix spelling mistake in one of the comments.
26615
26616 2004-05-10  Robert Dewar  <dewar@gnat.com>
26617
26618         * gnat_ugn.texi: Document that for config pragma files, the maximum
26619         line length is always 32767.
26620
26621         * gnat_rm.texi: For pragma Eliminate, note that concatenation of string
26622         literals is now allowed.
26623
26624         * gnat-style.texi: Remove statement about splitting long lines before
26625         an operator rather than after, since we do not follow this rule at all.
26626         Clarify rule (really lack of rule) for spaces around exponentiation
26627
26628         * sem_elim.adb: Allow concatenation of string literals as well as a
26629         single string literal for pragma arguments.
26630
26631         * sem_prag.ads, sem_prag.adb: (Is_Config_Static_String): New function
26632
26633         * a-textio.adb (Terminate_Line): Do not add line feed if nothing
26634         written for append case.
26635
26636         * frontend.adb: Changes to avoid checking max line length in config
26637         pragma files.
26638
26639         * g-os_lib.ads: Minor reformatting
26640
26641         * mlib-utl.adb: Do not define Max_Line_Length locally (definition was
26642         wrong in any case. Instead use standard value. Noticed during code
26643         reading.
26644
26645         * opt.ads (Max_Line_Length): New field, used to implement removal of
26646         limitation on length of lines when scanning config pragma files.
26647
26648         * osint.ads, prj-dect.adb, prj-strt.adb, prj-tree.adb,
26649         makeutl.ads, makeutl.adb: Minor reformatting
26650
26651         * scn.adb: Do not check line length while scanning config pragma files
26652         Do not check line length while scanning out license information
26653
26654         * scng.adb: Changes to avoid line length checks while parsing config
26655         pragma files.
26656
26657 2004-05-10  GNAT Script  <nobody@gnat.com>
26658
26659         * Make-lang.in: Makefile automatically updated
26660
26661 2004-05-05  Arnaud Charlet  <charlet@act-europe.fr>
26662
26663         * osint.adb (Find_Program_Name): Fix handling of VMS version
26664         number.
26665
26666 2004-05-05  Emmanuel Briot  <briot@act-europe.fr>
26667
26668         * g-os_lib.ads (Invalid_Time): New constant
26669
26670         * adaint.h, adaint.c (__gnat_file_time_name, __gnat_file_time_fd): Now
26671         return OS_Time instead of time_t to match what is imported by Ada.
26672         Now return -1 if the file doesn't exist, instead of a random value
26673
26674 2004-05-05  Robert Dewar  <dewar@gnat.com>
26675
26676         * usage.adb: Add line for -gnatR?s switch
26677
26678         * sem_ch13.adb, exp_ch2.adb: Minor reformatting
26679
26680         * g-regpat.ads, g-regpat.adb: Add documentation on handling of Size
26681         and for Match (Data_First, Data_last)
26682
26683         * lib-writ.adb (Write_With_Lines): Ensure that correct index number is
26684         written when we are dealing with multi-unit files.
26685
26686 2004-05-05  Jerome Guitton  <guitton@act-europe.fr>
26687
26688         * Makefile.in: Remove unused targets and variables.
26689
26690 2004-05-05  Vincent Celier  <celier@gnat.com>
26691
26692         * switch-m.adb: New gnatmake switch -eI
26693
26694         * vms_data.ads: Add VMS equivalents of new gnatclean swith -innn and
26695         of new gnatmake switch -eInnn.
26696
26697         * makegpr.adb: Take into account new parameters Index and Src_Index in
26698         Prj.Util.
26699
26700         * clean.adb: Implement support for multi-unit sources, including new
26701         switch -i.
26702
26703         * gnatcmd.adb (GNATCmd): Call Prj.Util.Value_Of with new parameter
26704         Src_Index.
26705
26706         * make.ads, make.adb (Insert_Q): New parameter Index, defaulted to 0
26707         (Extract_From_Q): New out parameter Index
26708         (Mark, Is_Marked): Subprograms moved to Makeutl
26709         (Switches_Of): New parameter Source_Index
26710         (Add_Switch): New parameter Index
26711         (Check): New parameter Source_Index
26712         (Collect_Arguments): New parameter Source_Index
26713         (Collect_Arguments_And_Compile): New parameter Source_Index
26714         (Compile): New parameter Source_Index
26715         Put subprograms in alphabetical order
26716         Add support for multi-source sources, including in project files.
26717
26718         * makeutl.ads, makeutl.adb (Unit_Index_Of): New function
26719         (Mark, Is_Marked, Delete_All_Marks): New subprograms, moved from
26720         Make.
26721
26722         * makeusg.adb: New gnatmake switch -eInnn
26723
26724         * mlib-prj.adb (Build_Library): Add new parameter Src_Index to call to
26725         Prj.Util.Value_Of.
26726
26727         * opt.ads (Main_Index): New variable, defaulted to 0.
26728
26729         * osint.ads, osinte.adb (Add_File): New parameter Index
26730         (Current_Source_Index): New function
26731
26732         * prj.adb: Take into account new components Index and Src_Index
26733
26734         * prj.ads (String_Element): New component Index
26735         (Variable_Value): New component Index
26736         (Array_Element): New component Src_Index
26737
26738         * prj-attr.adb: Indicate that optional index may be specified for
26739         attributes Main, Executable, Spec, Body and some of Switches.
26740
26741         * prj-attr.ads (Attribute_Kind): New values for optional indexes
26742         (Attribute_Record): New component Optional_Index
26743
26744         * prj-com.ads (File_Name_Data): New component Index
26745
26746         * prj-dect.adb (Parse_Attribute_Declaration): Process optional index
26747
26748         * prj-env.adb (Put): Output optional index
26749
26750         * prj-makr.adb: Put indexes for multi-unit sources in SFN pragmas and
26751         attributes Spec and Body.
26752
26753         * prj-nmsc.adb: Process optional indexes
26754
26755         * prj-pp.adb: Ouput "at" for optional indexes
26756
26757         * prj-proc.adb: Take into account optional indexes
26758
26759         * prj-strt.ads, prj-strt.adb (Terms): New Boolean parameter
26760         Optional_Index. For string literal,
26761         process optional index when Optional_Index is True.
26762         (Parse_Expresion): New Boolean parameter Optional_Index
26763
26764         * prj-tree.ads, prj-tree.adb (Source_Index_Of): New function
26765         (Set_Source_Index_Of): New procedure
26766
26767         * prj-util.adb (Executable_Of, Value_Of): Take into account optional
26768         index.
26769
26770         * prj-util.ads (Executable_Of): New parameter Index
26771         (Value_Of (Name_Id, Array_Element_Id) returning Variable_Value):
26772         New parameter Src_Index, defaulted to 0.
26773
26774 2004-05-05  Ed Schonberg  <schonberg@gnat.com>
26775
26776         PR ada/15257
26777         * sem_ch3.adb (Access_Definition): If this is an access parameter
26778         whose designated type is imported through a limited_with clause, do
26779         not add the enclosing subprogram to the list of private dependents of
26780         the type.
26781
26782 2004-05-05  Ed Schonberg  <schonberg@gnat.com>
26783
26784         PR ada/15258
26785         * sem_ch6.adb (Base_Types_Match): True if one type is imported through
26786         a limited_with clause, and the other is its non-limited view.
26787
26788 2004-05-05  Thomas Quinot  <quinot@act-europe.fr>
26789
26790         * cstand.adb (Create_Standard): Initialize Stand.Boolean_Literals.
26791
26792         * exp_attr.adb, exp_ch5.adb, exp_ch9.adb, exp_disp.adb,
26793         exp_fixd.adb, sem_attr.adb, sem_dist.adb, sem_util.adb: Use
26794         Stand.Boolean_Literals to produce references to entities
26795         Standard_False and Standard_True from compile-time computed boolean
26796         values.
26797
26798         * stand.ads (Boolean_Literals): New variable, provides the entity
26799         values for False and True, for use by the expander.
26800
26801 2004-05-05  Doug Rupp  <rupp@gnat.com>
26802
26803         * 5vinmaop.adb, 5[vx]system.ads: Add Short_Address subtype
26804         5vinmaop.adb: Unchecked convert Short_Address vice Address
26805
26806         * adaint.c, raise.c: Caste CRTL function return value
26807         to avoid gcc error on 32/64 bit IVMS.
26808
26809         * Makefile.in [VMS]: Use iar archiver if host = Alpha/VMS and
26810         target = IA64/VMS.
26811
26812         * init.c[VMS]: Only call Alpha specific __gnat_error_prehandler IN_RTS.
26813
26814         * 5qsystem.ads (Address): Declare as Long_Integer
26815         (Short_Address): Declare as 32 bit subtype of Address
26816         Declare  abstract address operations to avoid gratuitous ambiguities.
26817
26818 2004-05-05  Jose Ruiz  <ruiz@act-europe.fr>
26819
26820         * gnat_rm.texi: Use the new restriction Simple_Barriers (AI-249)
26821         instead of the old Boolean_Entry_Barriers.
26822         Ditto for No_Task_Attributes_Package instead of No_Task_Attributes.
26823
26824 2004-05-05  GNAT Script  <nobody@gnat.com>
26825
26826         * Make-lang.in: Makefile automatically updated
26827
26828 2004-05-03  Arnaud Charlet  <charlet@act-europe.fr>
26829
26830         * 50system.ads, 59system.ads, s-thread.ads: Removed, no longer used.
26831
26832 2004-05-03  Olivier Hainque  <hainque@act-europe.fr>
26833
26834         PR ada/15152
26835         * exp_ch2.adb (Expand_Current_Value): Leave Machine_Code Asm arguments
26836         alone. Replacing object references by literals is inappropriate in a
26837         so low level context.
26838
26839 2004-05-03  Arnaud Charlet  <charlet@act-europe.fr>
26840
26841         * a-exexpr.adb: Add comments
26842
26843 2004-05-03  Joel Brobecker  <brobecker@gnat.com>
26844
26845         * a-tags.adb (Tag_Table): Add Index_Check pragma Suppress. Allows us to
26846         declare the Ancestor_Tags array in Type_Specific_Data with a small size
26847         without risking a bounds check error when accessing one of its
26848         components.
26849         (Type_Specific_Data): Define Ancestor_Tags as a small array.
26850         This prevents us from hitting a limitation during the debug info
26851         generation when using stabs.
26852
26853         * a-tags.adb (Dispatch_Table): Define the Prims_Ptr component as a
26854         small array.
26855         This prevents us from hitting a limitation during the debug info
26856         generation when using stabs.
26857
26858 2004-05-03  Eric Botcazou  <ebotcazou@act-europe.fr>
26859
26860         lang-specs.h: Remove -gnatz* from specs.
26861
26862 2004-05-03  Vincent Celier  <celier@gnat.com>
26863
26864         * gprmake.adb, makegpr.ads, makegpr.adb: New files.
26865
26866         * Make-lang.in, Makefile.in: Add gprmake
26867
26868 2004-05-03  Thomas Quinot  <quinot@act-europe.fr>
26869
26870         * sem_aggr.adb: Fix typo in comment.
26871
26872 2004-05-03  Robert Dewar  <dewar@gnat.com>
26873
26874         * make.adb: Minor reformatting
26875
26876         * rtsfind.ads, rtsfind.adb: (RTU_Loaded): New function
26877
26878         * sem_attr.adb (Eval_Attribute, case Type_Class): Fix check for address
26879         so that it works when address is not a private type.
26880
26881         * sem_ch13.adb (Check_Expr_Constants, case N_Integer_Literal): Deal
26882         properly with rewritten unchecked conversions. This prevents
26883         order-of-elaboration issues that can otherwise arise.
26884         (Minimum_Size): Don't check size of access types under VMS
26885
26886         * sem_ch4.adb (Remove_Address_Interpretation): New circuit to remove
26887         interpretations of integer literals as type System.Address.
26888
26889         * sem_util.ads, sem_util.adb (Is_Descendent_Of_Address): New function
26890         (Is_Descendent_Of): New function
26891
26892 2004-05-03  Jose Ruiz  <ruiz@act-europe.fr>
26893
26894         * sem_prag.adb: Boolean_Entry_Barriers is a synonym of Simple_Barriers.
26895         Max_Entry_Queue_Depth is a synonym of Max_Entry_Queue_Length.
26896         No_Dynamic_Interrupts is a synonym of No_Dynamic_Attachment.
26897
26898         * sem_res.adb: Use the new restriction Max_Entry_Queue_Length instead
26899         of the old Max_Entry_Queue_Depth.
26900
26901         * snames.adb: Boolean_Entry_Barriers is a synonym of Simple_Barriers.
26902         Max_Entry_Queue_Depth is a synonym of Max_Entry_Queue_Length
26903         No_Dynamic_Interrupts is a synonym of No_Dynamic_Attachment
26904
26905         * snames.ads: New entry for proper handling of Boolean_Entry_Barriers.
26906         New entry for proper handling of Max_Entry_Queue_Depth.
26907         New entry for proper handling of No_Dynamic_Interrupts.
26908
26909         * s-rident.ads: Adding restriction Simple_Barriers (AI-00249) that
26910         supersedes the GNAT specific restriction Boolean_Entry_Barriers.
26911         Adding restriction Max_Entry_Queue_Length (AI-00249) that supersedes
26912         the GNAT specific restriction Max_Entry_Queue_Depth.
26913         Adding restriction No_Dynamic_Attachment (AI-00249) that supersedes
26914         the GNAT specific restriction No_Dynamic_Interrupts.
26915
26916         * restrict.ads, restrict.adb: Use the new restriction Simple_Barriers
26917         instead of the old Boolean_Entry_Barriers.
26918         Use the new restriction No_Dynamic_Attachment instead of the old
26919         No_Dynamic_Interrupts.
26920
26921         * exp_ch9.adb: Check restriction Simple_Barriers (AI-00249) that
26922         supersedes the GNAT specific restriction Boolean_Entry_Barriers.
26923
26924         * gnatbind.adb: Use the new restriction Max_Entry_Queue_Length instead
26925         of the old Max_Entry_Queue_Depth.
26926
26927 2004-05-03  GNAT Script  <nobody@gnat.com>
26928
26929         * Make-lang.in: Makefile automatically updated
26930
26931 2004-04-29  Ed Schonberg  <schonberg@gnat.com>
26932
26933         * checks.adb (Enable_Range_Check): If the prefix of an index component
26934         is an access to an unconstrained array, perform check unconditionally.
26935
26936 2004-04-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
26937
26938         * decl.c (gnat_to_gnu_field): Also call make_packable_type if
26939         Component_Clause.
26940
26941 2004-04-29  Olivier Hainque  <hainque@act-europe.fr>
26942
26943         * init.c (__gnat_install_handler, __gnat_error_handler): Remove
26944         alternate stack setting. There was no support for the tasking cases
26945         and the changes eventually caused a number of side-effect failures in
26946         the non-tasking case too.
26947
26948 2004-04-29  Eric Botcazou  <ebotcazou@act-europe.fr>
26949
26950         lang-specs.h: Redirect output to /dev/null if -gnatc or -gnatz or
26951         -gnats is passed.
26952
26953 2004-04-29  Vincent Celier  <celier@gnat.com>
26954
26955         * make.adb (Gnatmake): Increase max size of argument array for
26956         gnatbind for the potential addition of -F.
26957         If there are Stand-Alone Library projects, invoke gnatbind with -F to
26958         be sure that elaboration flags will be checked.
26959
26960         * switch-c.adb: Correct call to Scan_Pos for -gnateI
26961
26962 2004-04-29  Thomas Quinot  <quinot@act-europe.fr>
26963
26964         * sem_warn.adb (Check_References): Move '<access-variable> may be
26965         null' warning out of under Warn_On_No_Value_Assigned.
26966
26967 2004-04-29  Ed Falis  <falis@gnat.com>
26968
26969         * gnat_ugn.texi: Fixed texi error
26970
26971 2004-04-29  Robert Dewar  <dewar@gnat.com>
26972
26973         * sem_ch4.adb (Remove_Abstract_Operations): Unconditionally remove
26974         abstract operations if they come from predefined files.
26975
26976         * gnat_rm.texi: Fix bad doc for pragma Elaboration_Checks (should be
26977         Dynamic, not RM).
26978
26979         * s-addope.adb: Correct obvious error in mod function
26980
26981 2004-04-28  Andrew W. Reynolds  <awreynolds@mac.com>
26982
26983         * Makefile.in: Add target pairs for powerpc darwin*
26984         tasking support.
26985
26986         * a-intnam-darwin.ads, s-osinte-darwin.adb,
26987         s-osinte-darwin.ads, system-darwin-ppc.ads: New files.
26988
26989 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
26990
26991         * Makefile.in: Add target macro definitions for s390*-linux*.
26992         * system-linux-s390.ads: New file.
26993         * system-linux-s390x.ads: New file.
26994
26995 2004-04-28  Joseph S. Myers  <jsm@polyomino.org.uk>
26996
26997         * gnat_ugn.texi: Correct argument to @setfilename.
26998
26999 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
27000
27001         * a-exexpr.adb (Unwind_Word): New data type.
27002         (Unwind_Exception): Use it as type of Private1 and Private2.
27003
27004         * raise.c (db_action_for): Fix debug printf.
27005
27006 2004-04-27  Ed Schonberg  <schonberg@gnat.com>
27007
27008         * a-wtmoio.ads: Formal type must be a modular type, not a signed
27009         integer type.
27010
27011 2004-04-27  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
27012
27013         * decl.c (gnat_to_gnu_entity, case object): Call
27014         __builtin_update_setjmp_buf.
27015
27016         * gigi.h (update_setjmp_buf): Deleted.
27017         (ADT_update_setjmp_buf_decl, update_setjmp_buf_decl): New.
27018
27019         * misc.c: (update_setjmp_buf): Deleted.
27020
27021         * trans.c (gnat_to_gnu): Call do_pending_stack_adjust and emit_queue
27022         around block of RTL.
27023
27024         * utils.c (init_gigi_decls): Initialize update_setjmp_buf.
27025
27026 2004-04-26  Thomas Quinot  <quinot@act-europe.fr>
27027
27028         * sem_dist.adb, exp_dist.adb: When constructing a RAS value for a local
27029         subprogram for which no pragma All_Calls_Remote applies, store the
27030         address of the real subprogram in the underlying record type, so local
27031         dereferences do not go through the PCS.
27032
27033 2004-04-26  Robert Dewar  <dewar@gnat.com>
27034
27035         * i-c.ads: Add some type qualifications to avoid ambiguities when
27036         compiling with s-auxdec.ads and a non-private address type.
27037
27038 2004-04-26  Arnaud Charlet  <charlet@act-europe.fr>
27039
27040         * Makefile.rtl: Fix error in previous check-in:
27041         Add s-addope.o to non tasking object list (rather than tasking object
27042         list).
27043
27044 2004-04-26  Javier Miranda  <miranda@gnat.com>
27045
27046         * sem_aggr.adb: Fix typo in comments
27047         (Resolve_Aggr_Expr): Propagate the type to the nested aggregate.
27048         Required to check the null-exclusion attribute.
27049
27050         * sem_attr.adb (Resolve_Attribute): Check the accessibility level in
27051         case of anonymous access types in record and array components. For a
27052         component definition the level is the same of the enclosing composite
27053         type.
27054
27055         * sem_ch3.adb (Analyze_Component_Declaration): In case of components
27056         that are anonymous access types the level of accessibility depends on
27057         the enclosing type declaration. In order to have this information, set
27058         the scope of the anonymous access type to the enclosing record type
27059         declaration.
27060         (Array_Type_Declaration): In case of components that are anonymous
27061         access types the level of accessibility depends on the enclosing type
27062         declaration. In order to have this information, set the scope of the
27063         anonymous access type to the enclosing array type declaration.
27064
27065         * sem_ch3.adb (Array_Type_Declaration): Set the scope of the anonymous
27066         access type.
27067
27068         * sem_ch8.adb (Analyze_Object_Renaming): Add check to verify that
27069         renaming of anonymous access-to-constant types allowed if and only if
27070         the renamed object is access-to-constant.
27071
27072         * sem_util.adb (Type_Access_Level): In case of anonymous access types
27073         that are component_definition or discriminants of a nonlimited type,
27074         the level is the same as that of the enclosing component type.
27075
27076 2004-04-26  Sergey Rybin  <rybin@act-europe.fr>
27077
27078         * sem_elim.adb: Some minor code reorganization from code reading. Fix
27079         misprint in the function name (File_Name_Match).
27080
27081 2004-04-23  Laurent GUERBY <laurent@guerby.net>
27082
27083         * Makefile.in: Remove RANLIB_TEST, use -$(RANLIB) including after
27084         install.
27085
27086 2004-04-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
27087
27088         * Make-lang.in (GNATBIND_OBJS): Add s-addope.o.
27089
27090 2004-04-23  Emmanuel Briot  <briot@act-europe.fr>
27091
27092         * adaint.c (__gnat_try_lock): No longer requires that the parent
27093         directory be writable, the directory itself is enough.
27094         (gnat_is_absolute_path): Change profile, so that the call from
27095         GNAT.OS_Lib can be made more efficient.
27096
27097         * adaint.h (gnat_is_absolute_path): Change profile, so that the call
27098         from GNAT.OS_Lib can be made more efficient.
27099
27100         * g-os_lib.adb (Is_Absolute_Path): More efficient implementation, avoid
27101         one copy of the file name. Found by code reading.
27102
27103 2004-04-23  Vincent Celier  <celier@gnat.com>
27104
27105         * gnat_ugn.texi: Add documentation for gnatmake switch -eL
27106         Correct documentation on gnatmake switches transmitted to the compiler
27107
27108         * ali.ads: Minor comment fix
27109
27110 2004-04-23  Javier Miranda  <miranda@gnat.com>
27111
27112         * sem_ch6.adb: (Confirming Types): Code cleanup
27113
27114         * decl.c (gnat_to_gnu_entity): Give support to anonymous access to
27115         subprogram types: E_Anonymous_Access_Subprogram_Type and
27116         E_Anonymous_Access_Protected_Subprogram_Type.
27117
27118 2004-04-23  Thomas Quinot  <quinot@act-europe.fr>
27119
27120         * sem_dist.adb: Add a new paramter to the RAS_Access TSS indicating
27121         whether a pragma All_Calls_Remote applies to the subprogram on which
27122         'Access is taken.
27123         No functional change is introduced by this revision; the new parameter
27124         will be used to allow calls to local RCI subprograms to be optimized
27125         to not use the PCS in the case where no pragma All_Calls_Remote applies,
27126         as is already done in the PolyORB implementation of the DSA.
27127
27128         * exp_dist.adb: Add a new paramter to the RAS_Access TSS indicating
27129         whether a pragma All_Calls_Remote applies to the subprogram on which
27130         'Access is taken.
27131         No functional change is introduced by this revision; the new parameter
27132         will be used to allow calls to local RCI subprograms to be optimized
27133         to not use the PCS in the case where no pragma All_Calls_Remote applies,
27134         as is already done in the PolyORB implementation of the DSA.
27135
27136 2004-04-23  Robert Dewar  <dewar@gnat.com>
27137
27138         * Makefile.rtl: Add entry for s-addope.o in run time library list
27139         * Make-lang.in: Add entry for s-addope.o to GNAT1 objects
27140         * s-addope.ads, s-addope.adb: New files.
27141
27142         * s-carsi8.adb, s-carun8.adb, s-casi16.adb, s-casi32.adb,
27143         s-casi64.adb, s-caun16.adb, s-caun32.adb, s-caun64.adb,
27144         s-finimp.adb, s-geveop.adb, s-stoele.adb: Modifications to allow
27145         System.Address to be non-private and signed.
27146
27147         * sem_elim.adb: Minor reformatting (fairly extensive)
27148         Some minor code reorganization from code reading
27149         Add a couple of ??? comments
27150
27151 2004-04-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
27152
27153         * trans.c (tree_transform, build_unit_elab): Don't call getdecls.
27154         (tree_transform, case N_If_Statement): Remove non-determinism.
27155
27156         * utils.c (begin_subprog_body): Just set DECL_CONTEXT in PARM_DECL.
27157
27158 2004-04-23  Sergey Rybin  <rybin@act-europe.fr>
27159
27160         * gnat_rm.texi: Small fixes in the changes made in the 'pragma
27161         Eliminate' section.
27162
27163         * snames.ads, snames.adb: Remove Name_Homonym_Number (Homonym_Number is
27164         no longer used as a parameter name for Eliminate pragma).
27165
27166 2004-04-22  Laurent GUERBY <laurent@guerby.net>
27167
27168         PR optimization/14984
27169         PR optimization/14985
27170         * trans.c (gigi): Fix non determinism leading to bootstrap
27171         comparison failures.
27172
27173 2004-04-21  Pascal Obry  <obry@gnat.com>
27174
27175         * adaint.c (__gnat_portable_spawn): Quote first argument (argv[0])
27176         passed to spawnvp() to properly handle program pathname with spaces on
27177         Win32.
27178
27179 2004-04-21  Emmanuel Briot  <briot@act-europe.fr>
27180
27181         * g-debpoo.adb (Print_Info): Avoid extra work if Display_Slots is False.
27182         (Allocate, Deallocate, Free_Physically): Make sure the tasks are
27183         unlocked in case of exceptions.
27184
27185 2004-04-21  Joel Brobecker  <brobecker@gnat.com>
27186
27187         * gigi.h (get_target_no_dollar_in_label): Remove extern declaration.
27188         This function does not exist anymore.
27189
27190 2004-04-21  Thomas Quinot  <quinot@act-europe.fr>
27191
27192         * gnatbind.adb, gnatlink.adb: Update name of imported C symbol.
27193
27194         * link.c: Move variables to the __gnat name space.
27195
27196         * Makefile.in: list link.o explicitly when needed.
27197
27198         * mlib.adb: Remove pragma Linker_Option for "link.o" from mlib.
27199
27200 2004-04-21  Javier Miranda  <miranda@gnat.com>
27201
27202         * einfo.adb (Original_Access_Type): New subprogram
27203         (Set_Original_Access_Type): New subprogram
27204         (Write_Field21_Name): Write the name of the new field
27205
27206         * einfo.ads (Original_Access_Type): New field present in access to
27207         subprogram types.
27208         Addition of two new entities: E_Anonymous_Access_Subprogram_Type, and
27209         E_Anonymous_Access_Protected_Subprogram_Type.
27210
27211         * lib-xref.adb (Output_One_Ref): Give support to anonymous access to
27212         subprogram types.
27213
27214         * lib-xref.ads (Xref_Entity_Letters): Initialize values corresponding
27215         to anonymous access to subprogram types.
27216
27217         * sem_attr.adb (Resolve_Attribute): Give support to anonymous access
27218         to subprogram types.
27219
27220         * sem_ch3.adb (Access_Definition): Complete decoration of entities
27221         corresponding to anonymous access to subprogram types.
27222         (Analyze_Component_Declaration): Add new actual to the call to
27223         subprogram replace_anonymous_access_to_protected_subprogram.
27224         (Array_Type_Declaration): Add new actual to the call to subprogram
27225         replace_anonymous_access_to_protected_subprogram.
27226         (Process_Discriminants): Add new actual to the call to subprogram
27227         replace_anonymous_access_to_protected_subprogram.
27228         (Replace_Anonymous_Access_To_Protected_Subprogram): New formal.
27229
27230         * sem_ch3.ads (Replace_Anonymous_Access_To_Protected_Subprogram): New
27231         formal.
27232
27233         * sem_ch6.adb, sem_type.adb, sem_res.adb: Give support to anonymous
27234         access to subprogram types.
27235
27236         * sem_util.adb (Has_Declarations): Addition of package_specification
27237         nodes.
27238
27239 2004-04-21  Ed Schonberg  <schonberg@gnat.com>
27240
27241         * sem_prag.adb (Make_Inline): If subprogram is a renaming, propagate
27242         inlined flags to renamed entity only if in current unit.
27243
27244 2004-04-21  Thomas Quinot  <quinot@act-europe.fr>
27245
27246         * s-parint.ads: Add DSA implementation marker.
27247
27248         * rtsfind.ads, rtsfind.adb, snames.ads, snames.adb, s-rpc.adb: Use the
27249         value of System.Partition_Interface.DSA_Implementation to determine
27250         what version of the distributed systems annex is available (no
27251         implementation, GLADE, or PolyORB).
27252
27253 2004-04-21  Joel Brobecker  <brobecker@gnat.com>
27254
27255         * targtyps.c (get_target_no_dollar_in_label): Remove, no longer used.
27256
27257 2004-04-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
27258
27259         * utils.c (convert, case CONSTRUCTOR, COMPONENT_REF): Do not make node
27260         with new type if alias sets differ.
27261         Fixes ACATS c41103b.
27262
27263 2004-04-21  Vincent Celier  <celier@gnat.com>
27264
27265         * prj.ads: Remove FORTRAN as an accepted language: not tested yet.
27266         Add array Lang_Args for the language specific compiling argument
27267         switches.
27268
27269         * gnat_ugn.texi: Explain in more details when a library is rebuilt.
27270
27271 2004-04-21  Sergey Rybin  <rybin@act-europe.fr>
27272
27273         * gnat_rm.texi: Update the descripton of the Eliminate pragma
27274         according to the recent changes in the format of the parameters of the
27275         pragma (replacing Homonym_Number with Source_Location).
27276
27277 2004-04-19  Arnaud Charlet  <charlet@act-europe.fr>
27278
27279         * 5isystem.ads: Removed, unused.
27280
27281         * gnat_rm.texi: Redo 1.13 change.
27282
27283 2004-04-19  Robert Dewar  <dewar@gnat.com>
27284
27285         * s-stoele.ads: Clean up definition of Storage_Offset (the new
27286         definition is cleaner, avoids the kludge of explicit Standard operator
27287         references, and also is consistent with a visible System.Address with
27288         no visible operations.
27289
27290         * s-geveop.adb: Add declarations to avoid assumption of visible
27291         operations on type System.Address (since these might not be available
27292         if Address is a non-private type for which the operations
27293         are made abstract).
27294
27295         * sem_eval.adb: Minor reformatting
27296
27297         * s-carsi8.ads, s-carun8.ads, s-casi16.ads, s-casi32.ads,
27298         s-casi64.ads, s-caun16.ads, s-caun32.ads, s-caun64.ads: Minor
27299         reformatting (new function spec format).
27300
27301         * s-auxdec.adb, s-carsi8.adb, s-carun8.adb, s-casi16.adb,
27302         s-casi32.adb, s-casi64.adb, s-caun16.adb, s-caun32.adb,
27303         s-caun64.adb: Add declarations to avoid assumption of visible
27304         operations on type System.Address (since these might not be available
27305         if Address is a non-private type for which the operations are made
27306         abstract).
27307
27308         * lib.ads, lib.adb (Synchronize_Serial_Number): New procedure.
27309
27310         * exp_intr.adb: Minor comment update
27311
27312         * exp_aggr.adb, exp_attr.adb, exp_ch13.adb: Minor reformatting.
27313
27314         * 5omastop.adb: Add declarations to avoid assumption of visible
27315         operations on type System.Address (since these might not be available
27316         if Address is a non-private type for which the operations
27317         are made abstract).
27318
27319 2004-04-19  Vincent Celier  <celier@gnat.com>
27320
27321         * switch-m.adb: (Scan_Make_Switches): Process new switch -eL
27322
27323         * prj-pars.ads (Parse): New Boolean parameter Process_Languages,
27324         defaulted to Ada.
27325
27326         * prj-proc.adb (Process): New Boolean parameter Process_Languages,
27327         defaulted to Ada.
27328         Call Check with Process_Languages.
27329         (Check): New Boolean parameter Process_Languages. Call Recursive_Check
27330         with Process_Languages.
27331         (Recursive_Check): New Boolean parameter Process_Languages. Call
27332         Nmsc.Ada_Check or Nmsc.Other_Languages_Check according to
27333         Process_Languages.
27334
27335         * prj-proc.ads (Process): New Boolean parameter Process_Languages,
27336
27337         * prj-util.ads, prj-util.adb (Executable_Of): New Boolean
27338         parameter Ada_Main, defaulted to True.
27339         Check for Ada specific characteristics only when Ada_Main is True.
27340
27341         * opt.ads: (Follow_Links): New Boolean flag for gnatmake
27342
27343         * prj.adb: (Project_Empty): Add new Project_Data components.
27344
27345         * prj.ads: New types and tables for non Ada languages.
27346         (Project_Data): New components Languages, Impl_Suffixes,
27347         First_Other_Source, Last_Other_Source, Imported_Directories_Switches,
27348         Include_Path, Include_Data_Set.
27349
27350         * prj-env.ads, prj-env.adb: Minor reformatting
27351
27352         * prj-nmsc.ads, prj-nmsc.adb: (Other_Languages_Check): New procedure
27353         Put subprograms in alphabetical order
27354
27355         * prj-pars.adb (Parse): New Boolean parameter Process_Languages,
27356         defaulted to Ada; Call Prj.Proc.Process with Process_Languages and
27357         Opt.Follow_Links.
27358
27359         * mlib-prj.adb: Back out modification in last version, as they are
27360         incorrect.
27361         (Build_Library.Check_Libs): Remove useless pragma Warnings (Off)
27362
27363         * make.adb: (Mains): Moved to package Makeutl
27364         (Linker_Opts): Moved to package Makeutl
27365         (Is_External_Assignment): Moved to package Makeutl
27366         (Test_If_Relative_Path): Moved to package Makeutl
27367         (Gnatmake): Move sorting of linker options to function
27368         Makeutl.Linker_Options_Switches.
27369
27370         * makeutl.ads, makeutl.adb: New files.
27371
27372         * Makefile.in: Add makeutl.o to the object files for gnatmake
27373
27374         * makeusg.adb: Add line for new switch -eL.
27375
27376         * gnatls.adb (Image): New function.
27377         (Output_Unit): If in verbose mode, output the list of restrictions
27378         specified by pragmas Restrictions.
27379
27380         * 5bml-tgt.adb, 5vml-tgt.adb (Build_Dynamic_Library): Do not use
27381         Text_IO.
27382
27383         * a-calend.adb (Split): Shift the date by multiple of 56 years, if
27384         needed, to put it in the range 1970 (included) - 2026 (excluded).
27385         (Time_Of): Do not shift Unix_Min_Year (1970).
27386         Shift the date by multiple of 56 years, if needed, to put it in the
27387         range 1970 (included) - 2026 (excluded).
27388
27389         * adaint.h, adaint.c (__gnat_set_executable): New function.
27390
27391 2004-04-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
27392
27393         * trans.c (tree_transform, case N_Subprogram_Body): Temporarily push
27394         and pop GC context.
27395         (tree_transform, case N_Procedure_Call): Fix typo in setting TREE_TYPE.
27396         (tree_transform, case N_Label): Don't set LABEL_STMT_FIRST_IN_EH.
27397         (tree_transform, case N_Procedure_Call_Statement): Build a tree.
27398         (tree_transform, case N_Code_Statement): Likewise.
27399         (gnat_expand_stmt, case LABEL_STMT): Don't look at
27400         LABEL_STMT_FIRST_IN_EH.
27401         (gnat_expand_stmt, case ASM_STMT): New case.
27402
27403         * utils2.c (build_unary_op): Properly set TREE_READONLY of
27404         UNCONSTRAINED_ARRAY_REF.
27405
27406         * utils.c (poplevel): Temporarily push/pop GC context around inline
27407         function expansion.
27408
27409         * decl.c (maybe_variable): Properly set TREE_READONLY of
27410         UNCONSTRAINED_ARRAY_REF.
27411         (make_packable_type): Only reference TYPE_IS_PADDING_P for RECORD_TYPE.
27412
27413         * ada-tree.def: (ASM_STMT): New.
27414
27415         * ada-tree.h: (LABEL_STMT_FIRST_IN_EH): Deleted.
27416         (ASM_STMT_TEMPLATE, ASM_STMT_OUTPUT, ASM_STMT_ORIG_OUT,
27417         ASM_STMT_INPUT): New.
27418         (ASM_STMT_CLOBBER): Likewise.
27419
27420 2004-04-19  Thomas Quinot  <quinot@act-europe.fr>
27421
27422         * a-except.adb, s-parint.ads, s-parint.adb, types.ads, types.h: Use
27423         general rcheck mechanism to raise Program_Error for E.4(18), instead
27424         of a custom raiser in System.Partition_Interface.
27425         Part of general cleanup work before PolyORB integration.
27426
27427         * snames.ads, snames.adb: Add new runtime library entities and names
27428         for PolyORB DSA.
27429
27430         * sem_dist.ads, sem_dist.adb (Get_Subprogram_Id): Move from sem_dist to
27431         exp_dist.
27432         (Build_Subprogram_Id): New subprogram provided by exp_dist
27433         Code reorganisation in preparation for PolyORB integration.
27434
27435         * exp_dist.ads, exp_dist.adb (Get_Subprogram_Id): Move from sem_dist to
27436         exp_dist.
27437         (Build_Subprogram_Id): New subprogram provided by exp_dist
27438
27439         * sem_ch4.adb (Analyze_One_Call): Fix error message for mismatch in
27440         actual parameter types for call to dereference of an
27441         access-to-subprogram type.
27442
27443         * rtsfind.ads: Add new runtime library entities and names for PolyORB
27444         DSA.
27445
27446         * gnatlink.adb (Value): Remove. Use Interfaces.C.Strings.Value
27447         instead, which has the same behaviour here since we never pass it a
27448         NULL pointer.
27449
27450         * link.c (run_path_option, Solaris case): Use -Wl, as for other
27451         platforms.
27452
27453         * Makefile.in: adjust object file lists for gnatlink and gnatmake
27454         to account for new dependency upon Interfaces.C.Strings + link.o
27455         For x86 FreeBSD, use 86numaux.
27456
27457         * make.adb, gnatcmd.adb: Linker_Library_Path_Option has been moved up
27458         from Mlib.Tgt to Mlib.
27459
27460         * mlib.ads, mlib.adb (Linker_Library_Path_Option): New subprogram, now
27461         target-independent.
27462
27463         * mlib-tgt.ads, mlib-tgt.adb (Linker_Library_Path_Option): Remove
27464         target-specific versions of this subprogram, now implemented as a
27465         target-independent function in Mlib.
27466
27467         * 5aml-tgt.adb, 5bml-tgt.adb, 5gml-tgt.adb, 5hml-tgt.adb, 5lml-tgt.adb,
27468         5sml-tgt.adb, 5vml-tgt.adb, 5zml-tgt.adb, 5wml-tgt.adb
27469         (Linker_Library_Path_Option): Remove target-specific versions of this
27470         subprogram, now implemented as a target-independent function in Mlib.
27471
27472         * atree.adb: (Allocate_Initialize_Node): New subprogram.
27473         Factors out node table slots allocation.
27474         (Fix_Parents): New subprogram.
27475         Encapsulate the pattern of fixing up parent pointers for syntactic
27476         children of a rewritten node.
27477         (New_Copy_Tree): Use New_Copy to copy non-entity nodes.
27478         (Rewrite): Use New_Copy when creating saved copy of original node.
27479         (Replace): Use Copy_Node to copy nodes.
27480
27481 2004-04-19  Javier Miranda  <miranda@gnat.com>
27482
27483         * sprint.adb (Sprint_Node_Actual): Give support to the new
27484         Access_To_Subprogram node available in Access_Definition nodes. In
27485         addition, give support to the AI-231 node fields: null-exclusion,
27486         all-present, constant-present.
27487
27488         * sem_util.ads, sem_util.adb: (Has_Declarations): New subprogram
27489
27490         * sinfo.ads, sinfo.adb:
27491         New field Access_To_Subprogram_Definition in Access_Definition nodes
27492
27493         * sem_ch6.adb (Process_Formals): Move here the code that creates and
27494         decorates internal subtype declaration corresponding to the
27495         null-excluding formal. This code was previously in Set_Actual_Subtypes.
27496         In addition, carry out some code cleanup on this code. In case of
27497         access to protected subprogram call
27498         Replace_Anonymous_Access_To_Protected_Subprogram.
27499         (Set_Actual_Subtypes): Code cleanup.
27500
27501         * sem_ch8.adb (Analyze_Object_Renaming): Remove un-necessary call to
27502         Find_Type in case of anonymous access renamings. Add warning in case of
27503         null-excluding attribute used in anonymous access renaming.
27504
27505         * sem_ch3.ads (Replace_Anonymous_Access_To_Protected_Subprogram): New
27506         subprogram
27507
27508         * sem_ch3.adb (Replace_Anonymous_Access_To_Protected_Subprogram): New
27509         subprogram.
27510         (Access_Definition): In case of anonymous access to subprograms call
27511         the corresponding semantic routine to decorate the node.
27512         (Access_Subprogram_Declaration): Addition of some comments indicating
27513         some code that probably should be added here. Detected by comparison
27514         with the access_definition subprogram.
27515         (Analyze_Component_Declaration): In case of access to protected
27516         subprogram call Replace_Anonymous_Access_To_Protected.
27517         (Array_Type_Declaration): In case of access to protected subprogram call
27518         Replace_Anonymous_Access_To_Protected_Subprogram.
27519         (Process_Discriminants): In case of access to protected subprogram call
27520         Replace_Anonymous_Access_To_Protected_Subprogram.
27521
27522         * par.adb (P_Access_Definition): New formal that indicates if the
27523         null-exclusion part was present.
27524         (P_Access_Type_Definition): New formal that indicates if the caller has
27525         already parsed the null-excluding part.
27526
27527         * par-ch3.adb (P_Subtype_Declaration): Code cleanup.
27528         (P_Identifier_Declarations): Code cleanup and give support to renamings
27529         of anonymous access to subprogram types.
27530         (P_Derived_Type_Def_Or_Private_Ext_Decl): Code cleanup.
27531         (P_Array_Type_Definition): Give support to AI-254.
27532         (P_Component_Items): Give support to AI-254.
27533         (P_Access_Definition): New formal that indicates if the header was
27534         already parsed by the caller.
27535         (P_Access_Type_Definition): New formal that indicates if the caller has
27536         already parsed the null-excluding part.
27537
27538         * par-ch6.adb (P_Formal_Part): Add the null-excluding parameter to the
27539         call to P_Access_Definition.
27540
27541 2004-04-19  Geert Bosch  <bosch@gnat.com>
27542
27543         * checks.adb (Apply_Float_Conversion_Check): New procedure to implement
27544         the delicate semantics of floating-point to integer conversion.
27545         (Apply_Type_Conversion_Checks): Use Apply_Float_Conversion_Check.
27546
27547         * eval_fat.adb (Machine_Mantissa): Moved to spec.
27548         (Machine_Radix): New function.
27549
27550         * eval_fat.ads (Machine_Mantissa): Moved from body for use in
27551         conversion checks.
27552         (Machine_Radix): New function also for use in conversion checks.
27553
27554 2004-04-19  Ed Schonberg  <schonberg@gnat.com>
27555
27556         * par-prag.adb (Source_File_Name_Project): Fix typo in error message.
27557
27558         * exp_ch9.adb (Expand_Access_Protected_Subprogram_Type): Call analyze
27559         to decorate the access-to-protected subprogram and the equivalent type.
27560
27561         * checks.adb (Null_Exclusion_Static_Checks): Code cleanup. Give support
27562         to anonymous access to subprogram types.
27563
27564         * exp_ch4.adb (Expand_N_In): Preserve Static flag before
27565         constant-folding, for legality checks in contexts that require an RM
27566         static expression.
27567
27568         * exp_ch6.adb (Expand_N_Function_Call): If call may generate large
27569         temporary but stack checking is not enabled, increment serial number
27570         to so that symbol generation is consistent with and without stack
27571         checking.
27572
27573         * exp_util.ads, exp_util.adb (May_Generate_Large_Temp): Predicate is
27574         independent on whether stack checking is enabled, caller must check
27575         the corresponding flag.
27576
27577         * sem_ch3.adb (Constrain_Index): Index bounds given by attributes need
27578         range checks.
27579         (Build_Derived_Concurrent_Type): Inherit Is_Constrained flag from
27580         parent if it has discriminants.
27581         (Build_Derived_Private_Type): Constructed full view does
27582         not come from source.
27583         (Process_Discriminants): Default discriminants on a tagged type are
27584         legal if this is the internal completion of a private untagged
27585         derivation.
27586
27587         * sem_ch6.adb (Set_Actual_Subtypes): The generated declaration needs
27588         no constraint checks, because it corresponds to an existing object.
27589
27590         * sem_prag.adb (Process_Convention): Pragma applies
27591         only to subprograms in the same declarative part, i.e. the same unit,
27592         not the same scope.
27593
27594         * sem_res.adb (Valid_Conversion): In an instance or inlined body,
27595         ignore type mismatch on a numeric conversion if expression comes from
27596         expansion.
27597
27598 2004-04-19  Sergey Rybin  <rybin@act-europe.fr>
27599
27600         * sem_elim.adb (Process_Eliminate_Pragma): Remove the processing for
27601         Homonym_Number parameter, add processing for Source_Location parameter
27602         corresponding.
27603         (Check_Eliminated): Remove the check for homonym numbers, add the check
27604         for source location traces.
27605
27606         * sem_elim.ads (Process_Eliminate_Pragma): Replace Arg_Homonym_Number
27607         with Arg_Source_Location corresponding to the changes in the format of
27608         the pragma.
27609
27610         * sem_prag.adb: (Analyze_Pragma): Changes in the processing of
27611         Eliminate pragma corresponding to the changes in the format of the
27612         pragma: Homonym_Number is replaced with Source_Location, two ways of
27613         distinguishing homonyms are mutially-exclusive.
27614
27615 2004-04-19  Joel Brobecker  <brobecker@gnat.com>
27616
27617         * get_targ.ads (Get_No_Dollar_In_Label): Remove.
27618
27619         * exp_dbug.adb (Output_Homonym_Numbers_Suffix): Remove use of
27620         No_Dollar_In_Label, no longer necessary, as it is always True.
27621         (Strip_Suffixes): Likewise.
27622
27623 2004-04-19  Gary Dismukes  <dismukes@gnat.com>
27624
27625         * s-stalib.ads (type Exception_Code): Use Integer'Size for exponent of
27626         modulus for compatibility with size clause on targets with 16-bit
27627         Integer.
27628
27629         * layout.adb (Discrimify): In the case of private types, set Vtyp to
27630         full type to fix type mismatches on calls to size functions for
27631         discriminant-dependent array components.
27632
27633 2004-04-19  Jerome Guitton  <guitton@act-europe.fr>
27634
27635         * Makefile.in (gnatlib-zcx): New target, for building a ZCX run-time
27636         lib.
27637
27638 2004-04-19  Pascal Obry  <obry@gnat.com>
27639
27640         * mdll-utl.adb (Locate): New version is idempotent.
27641
27642 2004-04-17  Laurent Guerby <laurent@guerby.net>
27643
27644         PR ada/14988 (partial)
27645         * impunit.adb: Fix typo.
27646
27647 2004-04-14  Nathanael Nerode  <neroden@gcc.gnu.org>
27648
27649         * Make-lang.in: Remove obsolete rts-none, rts-cert, install-rts-none,
27650         and install-rts-cert targets.  Remove all gnatlib and gnattools
27651         targets and all other rts-* targets (moved to libada).  Remove (now)
27652         unused Make variables CHMOD, CHMOD_AX_FLAGS, shext, THREAD_KIND,
27653         TRACE, GNATLIBFLAGS, GNATLIBCFLAGS.
27654
27655 2004-04-08  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
27656
27657         * trans.c (tree_transform): Shortcut returning error_mark_node for
27658         statements in annotate_only_mode.
27659         (tree_transform, case N_Label, case N_Return_Statement,
27660         N_Goto_Statement): Make statement tree instead of generating code.
27661         (tree_transform, case N_Assignment_Statement): No longer check
27662         type_annotate_only.
27663         (gnat_expand_stmt, case GOTO_STMT, case LABEL_STMT, case
27664         RETURN_STMT): New.
27665         (first_nondeleted_insn, build_block_stmt, make_expr_stmt_from_rtl):
27666         New fcns.
27667         (gnat_to_gnu): Collect any RTL generated and deal with it.
27668         (tree_transform, case N_And_Then): Refine when have non-null RTL_EXPR.
27669         (tree_transform case N_If_Statement): Rewrite to make IF_STMT.
27670         (gnat_expand_stmt, case BLOCK_STMT, IF_STMT): New cases.
27671
27672         * ada-tree.def (GOTO_STMT, LABEL_STMT, RETURN_STMT): New tree nodes.
27673
27674         * ada-tree.def (EXPR_STMT): Fix typo in name.
27675         (BLOCK_STMT, IF_STMT): New nodes.
27676
27677         * ada-tree.h (GOTO_STMT_LABEL, LABEL_STMT_LABEL,
27678         LABEL_STMT_FIRST_IN_EH): New macros.
27679         (RETURN_STMT_EXPR): Likewise.
27680
27681         * ada-tree.h: (BLOCK_STMT_LIST, IF_STMT_COND, IF_STMT_TRUE,
27682         IF_STMT_ELSEIF, IF_STMT_ELSE): New macros.
27683
27684 2004-04-08  Thomas Quinot  <quinot@act-europe.fr>
27685
27686         * atree.ads: Correct documentation on extended nodes.
27687
27688         * link.c: Set run_path_option for FreeBSD.
27689
27690 2004-04-08  Vincent Celier  <celier@gnat.com>
27691
27692         * mlib-prj.adb (Build_Library.Check_Libs): On OpenVMS, if dec.ali is
27693         one of the ALI file, do not link with DEC lib.
27694
27695         * par.adb Remove the last two characters ("%s" or "%b") when checking
27696         if a language defined unit may be recompiled.
27697
27698 2004-04-08  Ed Schonberg  <schonberg@gnat.com>
27699
27700         * sem_ch4.adb (Remove_Abstract_Operations): Improve error message when
27701         removal of abstract operation leaves no possible interpretation for
27702         expression.
27703
27704         * sem_eval.adb (Eval_Qualified_Expression): Use
27705         Set_Raises_Constraint_Error on node when needed, so that it does not
27706         get optimized away by subsequent optimizations.
27707
27708         * sem_res.adb (Resolve_Intrinsic_Operator): Save interpretations of
27709         operands even when they are not wrapped in a type conversion.
27710
27711 2004-04-08  Olivier Hainque  <hainque@act-europe.fr>
27712
27713         * sem_prag.adb (Set_Exported): Warn about making static as result of
27714         export only when the export is coming from source. This may be not
27715         be true e.g. on VMS where we expand export pragmas for exception codes
27716         together with imported or exported exceptions, and we don't want the
27717         user to be warned about something he didn't write.
27718
27719 2004-04-08  Thomas Quinot  <quinot@act-europe.fr>
27720
27721         * sem_util.adb (Note_Possible_Modification): Reorganize to remove code
27722         duplication between normal entities and those declared as renamings.
27723         No functional change.
27724
27725         * s-fileio.ads (Form): Remove pragma Inline, as we cannot currently
27726         inline functions returning an unconstrained result.
27727
27728 2004-04-08  Eric Botcazou  <ebotcazou@act-europe.fr>
27729
27730         * utils.c (type_for_mode): Handle BLKmode and VOIDmode properly, to
27731         conform to what other front-ends do.
27732
27733 2004-04-08  Doug Rupp  <rupp@gnat.com>
27734
27735         * 5vml-tgt.adb: Use Gas instead of VMS Macro to build auto init shared
27736         libraries.
27737
27738 2004-04-06  Pascal Obry  <obry@gnat.com>
27739
27740         * adaint.c (DIR_SEPARATOR): Properly set DIR_SEPARATOR on Win32.
27741
27742         * osint.adb (Program_Name): Do not look past a directory separator.
27743
27744 2004-04-06  Thomas Quinot  <quinot@act-europe.fr>
27745
27746         * atree.adb: Update comment (Rewrite_Substitute_Node no longer exists).
27747
27748         * exp_ch6.adb (Rewrite_Function_Call): Clarify documentation of
27749         requirement for preserving a copy of the original assignment node.
27750
27751         * sinfo.ads: Update comment (Original_Tree -> Original_Node).
27752
27753 2004-04-06  Olivier Hainque  <hainque@act-europe.fr>
27754
27755         (__gnat_initialize [Vxworks]): Enable references to the crtstuff bits
27756         when supported.
27757
27758 2004-04-06  Ed Schonberg  <schonberg@gnat.com>
27759
27760         * sem_ch4.adb (Remove_Abstract_Operations): Extend previous changes to
27761         operator calls in functional notation, and apply
27762         Universal_Interpretation to operands, not to their type.
27763
27764 2004-04-06  Robert Dewar  <dewar@gnat.com>
27765
27766         * 5wdirval.adb: Minor reformatting
27767
27768 2004-04-06  Ed Falis  <falis@gnat.com>
27769
27770         * gnat_rm.texi: Improve a reference to the GCC manual
27771
27772 2004-04-05  Vincent Celier  <celier@gnat.com>
27773
27774         * adaint.h, adaint.c: Add function __gnat_named_file_length
27775
27776         * impunit.adb: Add Ada.Directories to the list
27777
27778         * Makefile.in: Add VMS and Windows versions of
27779         Ada.Directories.Validity package body.
27780
27781         * Makefile.rtl: Add a-direct and a-dirval
27782
27783         * mlib-tgt.ads: Minor comment update.
27784
27785         * a-dirval.ads, a-dirval.adb, 5vdirval.adb, 5wdirval.adb,
27786         a-direct.ads, a-direct.adb: New files.
27787
27788 2004-04-05  Vincent Celier  <celier@gnat.com>
27789
27790         PR ada/13620
27791         * make.adb (Scan_Make_Arg): Pass any -fxxx switches to gnatlink, not
27792         just to the compiler.
27793
27794 2004-04-05  Robert Dewar  <dewar@gnat.com>
27795
27796         * a-except.adb (Exception_Name_Simple): Make sure lower bound of
27797         returned string is 1.
27798
27799         * ali-util.adb: Use proper specific form for Warnings (Off, entity)
27800
27801         * eval_fat.ads: Minor reformatting
27802
27803         * g-curexc.ads: Document that lower bound of returned string values
27804         is always one.
27805
27806         * gnatlink.adb: Add ??? comment for previous change
27807         (need to document why this is VMS specific)
27808
27809         * s-stoele.ads: Minor reformatting
27810
27811         * tbuild.ads: Minor reformatting throughout (new function specs)
27812
27813         * par-ch10.adb (P_Context_Clause): Handle comma instead of semicolon
27814         after WITH.
27815
27816         * scng.adb: Minor reformatting
27817
27818 2004-04-05  Geert Bosch  <bosch@gnat.com>
27819
27820         * eval_fat.adb (Machine): Remove unnecessary suppression of warning.
27821         (Leading_Part): Still perform truncation to machine number if the
27822         specified radix_digits is greater or equal to machine_mantissa.
27823
27824 2004-04-05  Javier Miranda  <miranda@gnat.com>
27825
27826         * par-ch3.adb: Complete documentation of previous change
27827         Correct wrong syntax documentation of the OBJECT_DECLARATION rule
27828         (aliased must appear before constant).
27829
27830         * par-ch4.adb: Complete documentation of previous change.
27831
27832         * par-ch6.adb: Complete documentation of previous change.
27833
27834         * sinfo.ads: Fix typo in commment.
27835
27836 2004-04-05  Ed Schonberg  <schonberg@gnat.com>
27837
27838         * sem_ch3.adb (Inherit_Components): If derived type is private and has
27839         stored discriminants, use its discriminants to constrain parent type,
27840         as is done for non-private derived record types.
27841
27842         * sem_ch4.adb (Remove_Abstract_Operations): New subprogram to implement
27843         Ada 2005 AI-310: an abstract non-dispatching operation is not a
27844         candidate interpretation in an overloaded call.
27845
27846         * tbuild.adb (Unchecked_Convert_To): Preserve conversion node if
27847         expression is Null and target type is not an access type (e.g. a
27848         non-private address type).
27849
27850 2004-04-05  Thomas Quinot  <quinot@act-europe.fr>
27851
27852         * exp_ch6.adb (Rewrite_Function_Call): When rewriting an assignment
27853         statement whose right-hand side is an inlined call, save a copy of the
27854         original assignment subtree to preserve enough consistency for
27855         Analyze_Assignment to proceed.
27856
27857         * sem_ch5.adb (Analyze_Assignment): Remove a costly copy of the
27858         complete assignment subtree which is now unnecessary, as the expansion
27859         of inlined call has been improved to preserve a consistent assignment
27860         tree.  Note_Possible_Modification must be called only
27861         after checks have been applied, or else unnecessary checks will
27862         be generated.
27863
27864         * sem_util.adb (Note_Possible_Modification): Reorganise the handling
27865         of explicit dereferences that do not Come_From_Source:
27866          - be selective on cases where we must go back to the dereferenced
27867            pointer (an assignment to an implicit dereference must not be
27868            recorded as modifying the pointer);
27869          - do not rely on Original_Node being present (Analyze_Assignment
27870            calls Note_Possible_Modification on a copied tree).
27871
27872         * sem_warn.adb (Check_References): When an unset reference to a pointer
27873         that is never assigned is encountered, prefer '<pointer> may be null'
27874         warning over '<pointer> is never assigned a value'.
27875
27876 2004-04-05  Ramon Fernandez  <fernandez@gnat.com>
27877
27878         * tracebak.c: Change STOP_FRAME in ppc vxworks to be compliant with
27879         the ABI.
27880
27881 2004-04-05  Olivier Hainque  <hainque@act-europe.fr>
27882
27883         * 5gmastop.adb (Pop_Frame): Comment out the pragma Linker_Option for
27884         libexc. We currently don't reference anything in this library and
27885         linking it in triggers linker warnings we don't want to see.
27886
27887         * init.c: Update comments.
27888
27889 2004-04-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
27890
27891         * decl.c (gnat_to_gnu_entity): Use TYPE_READONLY.
27892         * utils.c (create_field_decl): Likewise.
27893         * utils2.c (build_unary_op, gnat_build_constructor): Likewise.
27894
27895 2004-04-02  Arnaud Charlet  <charlet@act-europe.fr>
27896
27897         * gnat-style.texi, gnat_rm.texi, gnat_ugn.texi: Remove RCS tags.
27898         Replace ifinfo by ifnottex, to make makeinfo --html happy again.
27899         Add info directory entry and category.
27900
27901 2004-04-02  Jan Hubicka  <jh@suse.cz>
27902
27903         * utils.c: Include function.h
27904         (end_subprog_body): Clear DECL_STRUCT_FUNCTION.
27905
27906 2004-04-01  Arnaud Charlet  <charlet@act-europe.fr>
27907
27908         PR ada/14150
27909         * Make-lang.in: Clean up generation of documentation
27910
27911         * gnat-style.texi, gnat_rm.texi, ug_words: Resync with AdaCore version
27912
27913         * xgnatug.adb: Removed, replaced by xgnatugn.adb
27914
27915         * xgnatugn.adb: Replaces xgnatug.adb
27916
27917         * gnat_ug.texi: Removed, replaced by gnat_ugn.texi
27918
27919         * gnat_ugn.texi: Replaces gnat_ug.texi. Resync with AdaCore version
27920
27921         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
27922         gnat_ug_wnt.texi: Removed.
27923
27924 2004-04-01  Arnaud Charlet  <charlet@act-europe.fr>
27925
27926         * utils2.c: Update copyright notice.
27927
27928 2004-04-01  Robert Dewar  <dewar@gnat.com>
27929
27930         * checks.adb: Minor reformatting throughout
27931         Note that prev checkin added RM reference to alignment warning
27932
27933 2004-04-01  Ed Schonberg  <schonberg@gnat.com>
27934
27935         * exp_aggr.adb (Get_Component_Val): Treat a string literal as
27936         non-static when building aggregate for bit-packed array.
27937
27938         * exp_ch4.adb (Expand_N_Slice): If a packed slice is an actual of a
27939         function call that is itself the actual in a procedure call, build
27940         temporary for it.
27941
27942         * exp_pakd.adb (Expand_Bit_Packed_Element_Set): If right-hand side is
27943         a string literal, create a temporary for it, constant folding only
27944         handles scalars here.
27945
27946 2004-04-01  Vincent Celier  <celier@gnat.com>
27947
27948         * ali-util.adb (Post_Scan, Error_Msg, Error_Msg_S, Error_Msg_SC,
27949         Error_Msg_SP): New empty procedures to instantiate the Scanner.
27950         (Style, Scanner): Instantiations of Styleg and Scng to be able to scan
27951         tokens.
27952         (Accumulate_Checksum, Initialize_Checksum): Remove procedures.
27953         (Get_File_Checksum): Use the instantiated scanner to scan all the tokens
27954         and get the checksum.
27955
27956         * make.adb (Gnatmake): Do not insert into Q the Main_Source if it is
27957         already in the Q.
27958         Increase the Marking_Label at the end of the Multiple_Main_Loop,
27959         instead of at the beginning.
27960
27961         * osint.adb (Lib_File_Name): Use Multi_Unit_Index_Character, not '~'
27962         directly.
27963         (Osint package elaboration): Change Multi_Unit_Index_Character to '$' if
27964         on VMS.
27965
27966         * osint.ads (Multi_Unit_Index_Character): New Character global variable
27967
27968         * osint-c.adb (Set_Library_Info_Name): Use Multi_Unit_Index_Character,
27969         not '~' directly.
27970
27971         * par.adb: Remove test on file name to detect language defined units.
27972         Add test on unit name, after parsing, to detect language defined units
27973         that are not compiled with -gnatg (except System.RPC and its children)
27974
27975         * par-ch10.adb (P_Compilation_Unit): In multi-unit sources, scan the
27976         following units without style checking.
27977
27978         * switch-c.adb: Change -gnatC to -gnateI
27979
27980         * usage.adb: Document new switch -gnateInnn
27981
27982         * scng.adb (Accumulate_Token_Checksum): New procedure
27983         (Scan): Call Accumulate_Token_Checksum after each identifier, reserved
27984         word or literal number.
27985         (Scan.Nlit.Scan_Integer): Do not accumulate internal '_' in litteral
27986         numbers.
27987
27988 2004-04-01  Thomas Quinot  <quinot@act-europe.fr>
27989
27990         * a-tasatt.adb,
27991         g-comlin.adb, sinput-c.adb, s-secsta.adb, s-tpobop.adb,
27992         switch-m.adb, 56taprop.adb, 5ginterr.adb, 5gmastop.adb,
27993         5staprop.adb, 5vinterr.adb, 5vtaprop.adb, 5vtpopde.adb,
27994         5vtpopde.adb: Add missing 'constant' keywords.
27995
27996 2004-04-01  Javier Miranda  <miranda@gnat.com>
27997
27998         * par-ch4.adb: (P_Allocator): Code cleanup
27999
28000         * sem_ch3.adb (Access_Definition): Properly set the null-excluding
28001         attribute.
28002
28003         * sinfo.ads: Complete documentation of previous change
28004
28005 2004-04-01  Pascal Obry  <obry@gnat.com>
28006
28007         * gnatlink.adb (Process_Binder_File): Remove duplicate linker options
28008         only on VMS.  This special handling was done because an old GNU/ld bug
28009         on Windows which has been fixed.
28010
28011 2004-04-01  GNAT Script  <nobody@gnat.com>
28012
28013         * Make-lang.in: Makefile automatically updated
28014
28015 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
28016
28017         * decl.c (gnat_to_gnu_entity, make_type_from_size):
28018         Use TYPE_UNSIGNED, not TREE_UNSIGNED.
28019         * trans.c (tree_transform, convert_with_check): Likewise.
28020         * utils.c (gnat_signed_or_unsigned_type): Likewise.
28021         (build_vms_descriptor, unchecked_convert): Likewise.
28022         * utils2.c (nonbinary_modular_operation): Likewise.
28023
28024 2004-03-29  Javier Miranda  <miranda@gnat.com>
28025
28026         * checks.adb (Null_Exclusion_Static_Checks): New subprogram
28027         (Install_Null_Excluding_Check): Local subprogram that determines whether
28028         an access node requires a runtime access check and if so inserts the
28029         appropriate run-time check.
28030         (Apply_Access_Check): Call Install_Null_Excluding check if required
28031         (Apply_Constraint_Check): Call Install_Null_Excluding check if required
28032
28033         * checks.ads: (Null_Exclusion_Static_Checks): New subprogram
28034
28035         * einfo.ads: Fix typo in comment
28036
28037         * exp_ch3.adb (Build_Assignment): Generate conversion to the
28038         null-excluding type to force the corresponding run-time check.
28039         (Expand_N_Object_Declaration): Generate conversion to the null-excluding
28040         type to force the corresponding run-time check.
28041
28042         * exp_ch5.adb (Expand_N_Assignment_Statement): Generate conversion to
28043         the null-excluding type to force the corresponding run-time check.
28044
28045         * exp_ch6.adb (Expand_Call): Do not generate the run-time check in
28046         case of access types unless they have the null-excluding attribute.
28047
28048         * sprint.adb (Sprint_Node_Actual): Give support to the null-exclusing
28049         part.
28050
28051         * exp_util.ads: Fix typo in comment
28052
28053         * par.adb (P_Null_Exclusion): New subprogram
28054         (P_Subtype_Indication): New formal that indicates if the null-excluding
28055         part has been scanned-out and it was present
28056
28057         * par-ch3.adb, par-ch4.adb, par-ch6.adb: Give support to AI-231
28058
28059         * sem_aggr.adb: (Check_Can_Never_Be_Null): New subprogram
28060         (Aggregate_Constraint_Checks): Generate conversion to the null-excluding
28061         type to force the corresponding run-time check
28062         (Resolve_Aggregate): Propagate the null-excluding attribute to the array
28063         components
28064         (Resolve_Array_Aggregate): Carry out some static checks
28065         (Resolve_Record_Aggregate.Get_Value): Carry out some static check
28066
28067         * sem_ch3.adb (Access_Definition): In Ada 0Y the Can_Never_Be_Null
28068         attribute must be set only if specified by means of the null-excluding
28069         part. In addition, we must also propagate the access-constant attribute
28070         if present.
28071         (Access_Subprogram_Declaration, Access_Type_Declaration,
28072         Analyze_Component_Declaration, Analyze_Object_Declaration,
28073         Array_Type_Declaration, Process_Discriminants,
28074         Analyze_Subtype_Declaration): Propagate the null-excluding attribute
28075         and carry out some static checks.
28076         (Build_Derived_Access_Type): Set the null-excluding attribute
28077         (Derived_Type_Declaration, Process_Subtype): Carry out some static
28078         checks.
28079
28080         * sem_ch4.adb (Analyze_Allocator): Carry out some static checks
28081
28082         * sem_ch5.adb (Analyze_Assignment): Carry out some static checks
28083
28084         * sem_ch6.adb (Process_Formals): Carry out some static checks.
28085         (Set_Actual_Subtypes): Generate null-excluding subtype if the
28086         null-excluding part was present; it is not required to be done here in
28087         case of anonymous access types.
28088         (Set_Formal_Mode): Ada 0Y allows anonymous access to have the null
28089         value.
28090
28091         * sem_res.adb (Resolve_Actuals): Carry out some static check
28092         (Resolve_Null): Allow null in anonymous access
28093
28094         * sinfo.adb: New subprogram Null_Exclusion_Present
28095         All_Present and Constant_Present available on access_definition nodes
28096
28097         * sinfo.ads: New flag Null_Exclusion_Present on subtype_declaration,
28098         object_declaration, derived_type_definition, component_definition,
28099         discriminant_specification, access_to_object_definition,
28100         access_function_definition, allocator, access_procedure_definition,
28101         access_definition, parameter_specification, All_Present and
28102         Constant_Present flags available on access_definition nodes.
28103
28104 2004-03-29  Robert Dewar  <dewar@gnat.com>
28105
28106         * fname.adb, fname.ads, fname-sf.adb, fname-uf.adb, fname-uf.ads,
28107         gnat1drv.adb, lib.adb, lib.ads, lib-load.adb, lib-writ.adb,
28108         opt.ads, osint.adb, osint.ads, osint-c.adb, par.adb,
28109         par-ch10.adb, par-load.adb, par-prag.adb, sfn_scan.adb,
28110         sfn_scan.ads, sinput-l.adb, sinput-l.ads, switch-c.adb,
28111         sem_prag.adb: Updates to handle multiple units/file
28112
28113         * par.adb: Change test for s-rpc to s-rp for detecting rpc and children
28114
28115         * par.adb, memtrack.adb, prj-makr.adb, prj-part.adb,
28116         sem_util.adb: Minor reformatting
28117
28118         * sem_ch12.adb: Add comment for previous change
28119
28120 2004-03-29  Laurent Pautet  <pautet@act-europe.fr>
28121
28122         * osint.adb (Executable_Prefix): Set Exec_Name to the current
28123         executable name when not initialized. Otherwise, use its current value.
28124
28125         * osint.ads (Exec_Name): Move Exec_Name from body to spec in order to
28126         initialize it to another executable name than the current one. This
28127         allows to configure paths for an executable name (gnatmake) different
28128         from the current one (gnatdist).
28129
28130 2004-03-29  Ed Schonberg  <schonberg@gnat.com>
28131
28132         * exp_ch6.adb (Expand_Call): A call to a function declared in the
28133         current unit cannot be inlined if it appears in the body of a withed
28134         unit, to avoid order of elaboration problems in gigi.
28135
28136         * exp_ch9.adb (Build_Protected_Sub_Specification): Generate debugging
28137         information for protected (wrapper) operation as well, to simplify gdb
28138         use.
28139
28140         * sem_ch6.adb (Analyze_Subprogram_Body): For a private operation in a
28141         protected body, indicate that the entity for the generated spec comes
28142         from source, to ensure that references are properly generated for it.
28143         (Build_Body_To_Inline): Do not inline a function that returns a
28144         controlled type.
28145
28146         * sem_prag.adb (Process_Convention): If subprogram is overloaded, only
28147         apply convention to homonyms that are declared explicitly.
28148
28149         * sem_res.adb (Make_Call_Into_Operator): If the operation is a function
28150         that renames an equality operator and the operands are overloaded,
28151         resolve them with the declared formal types, before rewriting as an
28152         operator.
28153
28154 2004-03-29  GNAT Script  <nobody@gnat.com>
28155
28156         * Make-lang.in: Makefile automatically updated
28157
28158 2004-03-25  Vasiliy Fofanov  <fofanov@act-europe.fr>
28159
28160         * memtrack.adb: Log realloc calls, which are treated as free followed
28161         by alloc.
28162
28163 2004-03-25  Vincent Celier  <celier@gnat.com>
28164
28165         * prj-makr.adb (Process_Directories): Detect when a file contains
28166         several units. Do not include such files in the config pragmas or
28167         in the naming scheme.
28168
28169         * prj-nmsc.adb (Record_Source): New parameter Trusted_Mode.
28170         Resolve links only when not in Trusted_Mode.
28171         (Find_Sources, Recursive_Find_Dirs, Find_Source_Dirs, Locate_Directory):
28172         Do not resolve links for the display names.
28173
28174         * prj-part.adb (Parse_Single_Project, Project_Path_Name_Of): Do not
28175         resolve links when computing the display names.
28176
28177 2004-03-25  Thomas Quinot  <quinot@act-europe.fr>
28178
28179         * sem_attr.adb (Check_Dereference): When the prefix of a 'Tag
28180         attribute reference does not denote a subtype, it can be any
28181         expression that has a classwide type, potentially after an implicit
28182         dereference.  In particular, the prefix can be a view conversion for
28183         a classwide type (for which Is_Object_Reference holds), but it can
28184         also be a value conversion for an access-to-classwide type. In the
28185         latter case, there is an implicit dereference, and the original node
28186         for the prefix does not verify Is_Object_Reference.
28187
28188         * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): A view
28189         conversion of a discriminant-dependent component of a mutable object
28190         is one itself.
28191
28192 2004-03-25  Ed Schonberg  <schonberg@gnat.com>
28193
28194         * freeze.adb (Freeze_Entity): When an inherited subprogram is
28195         inherited, has convention C, and has unconstrained array parameters,
28196         place the corresponding warning on the derived type declaration rather
28197         than the original subprogram.
28198
28199         * sem_ch12.adb (Instantiate_Formal_Subprogram): Set From_Default
28200         indication on renaming declaration, if formal has a box and actual
28201         is absent.
28202
28203         * sem_ch8.adb (Analyze_Subprogram_Renaming): Use From_Default flag to
28204         determine whether to generate an implicit or explicit reference to
28205         the renamed entity.
28206
28207         * sinfo.ads, sinfo.adb: New flag From_Default, to indicate that a
28208         subprogram renaming comes from a defaulted formal subprogram in an
28209         instance.
28210
28211 2004-03-25  Gary Dismukes  <dismukes@gnat.com>
28212
28213         * sem_elab.adb (Check_Elab_Call): Refine loop that checks for default
28214         value expressions to ensure that calls within a component definition
28215         will be checked (since those are evaluated during the record type's
28216         elaboration).
28217
28218 2004-03-25  Arnaud Charlet  <charlet@act-europe.fr>
28219
28220         * s-tpobop.adb: Code clean up:
28221         (Requeue_Call): Extract from PO_Service_Entries to remove duplicated
28222         code.
28223         (PO_Do_Or_Queue): Remove duplicated code and use Requeue_Call.
28224
28225 2004-03-25  Jose Ruiz  <ruiz@act-europe.fr>
28226
28227         * Makefile.in: Clean up in the ravenscar run time.
28228
28229 2004-03-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
28230
28231         * decl.c (gnat_to_gnu_entity, case E_Access_Type): Pass value
28232         of No_Strict_Aliasing to build_pointer_type_for_mode.
28233         * utils.c (update_pointer_to): Walk pointer and ref chains.
28234
28235 2004-03-22  Cyrille Comar  <comar@act-europe.fr>
28236
28237         * ali.ads: Fix Comment about Dynamic_Elab.
28238
28239         * gnatls.adb (Output_Unit): Add output of many flags (Dynamic_Elab,
28240         Has_RACW, Is_Generic, etc.)
28241         (Output_Object, Gnatls): Take into account ALI files not attached to
28242         an object.
28243
28244 2004-03-22  Vincent Celier  <celier@gnat.com>
28245
28246         * gprep.adb: Change all String_Access to Name_Id
28247         (Is_ASCII_Letter): new function
28248         (Double_File_Name_Buffer): New procedure
28249         (Preprocess_Infile_Name): New procedure
28250         (Process_Files): New procedure
28251         (Gnatprep): Check if output and input are existing directories.
28252         Call Process_Files to do the real job.
28253
28254 2004-03-22  Robert Dewar  <dewar@gnat.com>
28255
28256         * prj-env.adb, prj-nmsc.ads, prj-proc.ads,
28257         s-stache.ads, s-stache.adb: Comment updates. Minor reformatting.
28258
28259 2004-03-22  Sergey Rybin  <rybin@act-europe.fr>
28260
28261         * scn.adb (Contains): Add check for EOF, is needed for a degenerated
28262         case when the source contains only comments.
28263
28264 2004-03-22  Ed Schonberg  <schonberg@gnat.com>
28265
28266         * sem_ch10.adb (Analyze_Compilation_Unit): When generating a
28267         declaration for a child subprogram body that acts as a spec, indicate
28268         that the entity in the declaration needs debugging information.
28269
28270         * sem_ch3.adb (Complete_Private_Subtype): Do not build an underlying
28271         full view if the subtype is created for a constrained record component;
28272         gigi has enough information to construct the record, and there is no
28273         place in the tree for the declaration.
28274
28275         * sem_ch6.adb (Build_Body_To_Inline): Use an internal name without
28276         serial number for the dummy body that is built for analysis, to avoid
28277         inconsistencies in the generation of internal names when compiling
28278         with -gnatN.
28279
28280 2004-03-22  Thomas Quinot  <quinot@act-europe.fr>
28281
28282         * sem_util.adb (Is_Object_Reference): A view conversion denotes an
28283         object.
28284
28285 2004-03-22  GNAT Script  <nobody@gnat.com>
28286
28287         * Make-lang.in: Makefile automatically updated
28288
28289 2004-03-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
28290
28291         * decl.c (gnat_to_gnu_entity): Use SUBSTITUTE_PLACEHOLDER_IN_EXPR.
28292         * trans.c (tree_transform, emit_index_check): Likewise.
28293         * utils.c (build_template): Likewise.
28294         (max_size, convert): Remove handling of WITH_RECORD_EXPR.
28295         (maybe_unconstrained_array, unchecked_convert): Likewise.
28296         * utils2.c (gnat_truthvalue_conversion, build_binary_op): Likewise.
28297         (build_unary_op): Likewise.
28298         (compare_arrays, build_allocator): Use SUBSTITUTE_PLACEHOLDER_IN_EXPR.
28299         (fill_vms_descriptor): Likewise.
28300         (build_call_alloc_dealloc): Likewise.
28301         ALIGN is unsigned.
28302         * gigi.h (build_call_alloc_dealloc): Alignment is unsigned.
28303
28304 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
28305
28306         PR other/14630
28307         * gnat_ug.texi: Add info directory category and entry.
28308         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
28309         gnat_ug_wnt.texi: Regenerate.
28310
28311 2004-03-19  Arnaud Charlet  <charlet@act-europe.fr>
28312
28313         * ada-tree.h: Update copyright notice.
28314         Minor reformatting.
28315
28316 2004-03-19  Olivier Hainque  <hainque@act-europe.fr>
28317
28318         * decl.c (gnat_to_gnu_entity, case E_Exception): Handle VMS exceptions
28319         as regular exception objects and not as mere integers representing the
28320         condition code.  The latter approach required some dynamics to mask off
28321         severity bits, which did not fit well into the GCC table based model.
28322         (gnat_to_gnu_entity, objects): Don't supply an external name for VMS
28323         exception data objects. We don't it and it would conflict with the other
28324         external symbol we have to generate for such exceptions.
28325
28326         * trans.c (tree_transform, case N_Exception_Handler): Remove part of
28327         the special code for VMS exceptions, since these are now represented
28328         as regular exceptions objects.
28329
28330 2004-03-19 Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
28331
28332         * decl.c (debug_no_type_hash): Remove.
28333         (gnat_to_gnu_entity, case E_Array_Type): Don't set and clear it.
28334         * misc.c (LANG_HOOK_HASH_TYPE): Redefine.
28335
28336 2004-03-19  Laurent Guerby <laurent@guerby.net>
28337
28338         * sem_prag.adb (Suppress_Unsuppress_Echeck): use loop instead of
28339         aggregate, allows bootstrap from 3.3 on powerpc-darwin.
28340
28341 2004-03-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
28342
28343         * ada-tree.h (TYPE_LEFT_JUSTIFIED_MODULAR_P): Add checking.
28344         (TYPE_CONTAINS_TEMPLATE_P, TYPE_OBJECT_RECORD_TYPE): Likewise.
28345         (TYPE_RM_SIZE_INT): Directly use type.values.
28346         (TREE_LOOP_ID): Clean up check.
28347         * decl.c (gnat_to_gnu_entity, case E_Enumeration_Type): Use
28348         TYPE_VALUES, not TYPE_FIELDS.
28349         * trans.c (convert_with_check): Delay access of bounds of basetype
28350         until sure is numeric.
28351
28352 2004-03-18  Arnaud Charlet  <charlet@act-europe.fr>
28353
28354         * 5atpopsp.adb: Remove RTEMS from list of platforms using this file.
28355
28356         Code clean up:
28357         * 5ataprop.adb, 5ftaprop.adb, 5htaprop.adb, 5itaprop.adb, 5staprop.adb,
28358         5vtaprop.adb, 5wtaprop.adb, 7staprop.adb (Finalize_TCB): Use
28359         Specific.Set instead of direct call to e.g pthread_setspecific.
28360
28361 2004-03-18  Thomas Quinot  <quinot@act-europe.fr>
28362
28363         * adaint.c: Update comments.
28364
28365         * Makefile.in: set PREFIX_OBJS, SYMLIB, THREADSLIB, and
28366         GNATLIB_SHARED for FreeBSD.
28367
28368 2004-03-18  Jose Ruiz  <ruiz@act-europe.fr>
28369
28370         * init.c [VxWorks]: Do not fix the stack size for the environment task.
28371         When needed (stack checking) the stack size is retrieved
28372         from the VxWorks kernel.
28373
28374         * Makefile.in: Flag -nostdinc is required when building the run time
28375         for avoiding looking for files in the base compiler.
28376         Add the VxWorks specific version of the package body for
28377         System.Stack_checking.Operations (5zstchop.adb).
28378
28379         * Make-lang.in: Add the object file for
28380         System.Stack_Checking.Operations.
28381
28382         * Makefile.rtl: Add object file for the package
28383         System.Stack_Checking.Operations.
28384
28385         * s-stchop.ads, s-stchop.adb, 5zstchop.adb: New files.
28386
28387         * s-stache.ads, s-stache.adb: Move the operations related to stack
28388         checking from this package to package System.Stack_Checking.Operations.
28389         This way, stack checking operations are only linked in the final
28390         executable when using the -fstack-check flag.
28391
28392 2004-03-18  Doug Rupp  <rupp@gnat.com>
28393
28394         * Makefile.in [VMS]: Handle 64 bit specs (5qsystem.ads, 5xcrtl.ads).
28395         Reorganize ifeq's.
28396
28397         * 5qsystem.ads, 5xcrtl.ads: New files.
28398
28399 2004-03-18  Vincent Celier  <celier@gnat.com>
28400
28401         * prj.adb (Reset): Reset hash table Files_Htable
28402
28403         * prj-env.adb (Source_Paths, Object_Paths): New tables.
28404         (Add_To_Source_Path, Add_To_Object_Path): New procedures, to replace
28405         the procedures Add_To_Path_File.
28406         (Set_Ada_Paths): Accumulate source and object dirs in the tables,
28407         making sure that each directory is present only once and, for object
28408         dirs, when a directory already present is added, the duplicate is
28409         removed and the directory is always put as the last in the table.
28410         Write the path files at the end of these accumulations.
28411
28412         * prj-nmsc.adb (Record_Source): Add source file name in hash table
28413         Files_Htable for all sources.
28414
28415         * prj-proc.adb (Process): Remove restrictions between not directly
28416         related extending projects.
28417
28418 2004-03-18  Emmanuel Briot  <briot@act-europe.fr>
28419
28420         * prj-nmsc.ads, prj-nmsc.adb (Ada_Check): New parameter Trusted_Mode.
28421         (Find_Sources): Minor speed optimization.
28422
28423         * prj-proc.ads, prj-proc.adb (Check, Recursive_Check, Process): New
28424         parameter Trusted_Mode.
28425
28426 2004-03-18  Sergey Rybin  <rybin@act-europe.fr>
28427
28428         * scn.adb (Determine_License): Take into account a degenerated case
28429         when the source contains only comments.
28430
28431 2004-03-18  Ed Schonberg  <schonberg@gnat.com>
28432
28433         * sem_warn.adb (Check_References): For a warning on a selected
28434         component that does not come from source, locate an uninitialized
28435         component of the record type to produce a more precise error message.
28436
28437 2004-03-15  Jerome Guitton  <guitton@act-europe.fr>
28438
28439         * 3zsoccon.ads: Fix multicast options.
28440
28441         * s-thread.ads: Move unchecked conversion from ATSD_Access to Address
28442         in the spec.
28443
28444 2004-03-15  Robert Dewar  <dewar@gnat.com>
28445
28446         * sem_prag.adb: Make sure No_Strict_Aliasing flag is set right when
28447         pragma used for a private type.
28448
28449         * lib-xref.adb (Generate_Reference): Do not generate warning if
28450         reference is in a different unit from the pragma Unreferenced.
28451
28452         * 5vtpopde.adb: Minor reformatting
28453         Fix casing of To_Task_ID
28454
28455         * sem_ch13.adb (Validate_Unchecked_Conversion): Set No_Strict_Aliasing
28456         flag if we have an unchecked conversion to an access type in the same
28457         unit.
28458
28459 2004-03-15  Geert Bosch  <bosch@gnat.com>
28460
28461         * a-ngcoty.adb (Modulus): In alternate formula for large real or
28462         imaginary parts, use Double precision throughout.
28463
28464         * a-tifiio.adb (Put_Scaled): Remove remaining pragma Debug. Not only
28465         we want to be able to compile run-time with -gnata for testing, but
28466         this may also be instantiated in user code that is compiled with -gnata.
28467
28468 2004-03-15  Olivier Hainque  <hainque@act-europe.fr>
28469
28470         * s-stalib.ads (Exception_Code): New type, to represent Import/Export
28471         codes. Having a separate type for this is useful to enforce consistency
28472         throughout the various run-time units.
28473         (Exception_Data): Use Exception_Code for Import_Code.
28474
28475         * s-vmextra.ads, s-vmexta.adb: Use Exception_Code instead of a mix of
28476         Natural and Integer in various places.
28477         (Register_VMS_Exception): Use Base_Code_In to compute the exception code
28478         with the severity bits masked off.
28479         (Register_VMS_Exception): Handle the additional exception data pointer
28480         argument.
28481
28482         * raise.c (_GNAT_Exception structure): Remove the handled_by_others
28483         component, now reflected by an exported accessor.
28484         (is_handled_by): New routine to compute whether the propagated
28485         occurrence matches some handler choice specification. Extracted out of
28486         get_action_description_for, and expanded to take care of the VMS
28487         specifities.
28488         (get_action_description_for): Use is_handled_by instead of an explicit
28489         complex condition to decide if the current choice at hand catches the
28490         propagated occurrence.
28491
28492         * raise.h (Exception_Code): New type for C.
28493
28494         * rtsfind.ads (RE_Id, RE_Unit_Table): Add
28495         System.Standard_Library.Exception_Code, to allow references from the
28496         pragma import/export expander.
28497
28498         * a-exexpr.adb (Is_Handled_By_Others, Language_For, Import_Code_For):
28499         New accessors to allow easy access to GNAT exception data
28500         characteristics.
28501         (GNAT_GCC_Exception record, Propagate_Exception): Get rid of the
28502         redundant Handled_By_Others component, helper for the personality
28503         routine which will now be able to call the appropriate exception data
28504         accessor instead.
28505
28506         * cstand.adb (Create_Standard): Adjust the type of the Import_Code
28507         component of Standard_Exception_Type to be the closest possible to
28508         Exception_Code in System.Standard_Library, that we cannot get at this
28509         point. Expand a ??? comment to notify that this type node should
28510         probably be rewritten later on.
28511
28512         * exp_prag.adb (Expand_Pragma_Import_Export_Exception): Adjust the
28513         registration call to include a pointer to the exception object in the
28514         arguments.
28515
28516         * init.c (__gnat_error_handler): Use Exception_Code and Base_Code_In
28517         instead of int and explicit bitmasks.
28518
28519 2004-03-15  Vincent Celier  <celier@gnat.com>
28520
28521         * vms_data.ads: Add new GNAT BIND qualifier /STATIC. Makes /NOSHARED
28522         equivalent to /STATIC and /NOSTATIC equivalent to /SHARED.
28523
28524         * a-tasatt.adb (To_Access_Code): Remove this UC instantiation, no
28525         longer needed now that it is in the spec of
28526         System.Tasking.Task_Attributes.
28527
28528         * adaint.h, adaint.c: (__gnat_create_output_file): New function
28529
28530         * gnatcmd.adb: Fix bug introduced in previous rev: /= instead of =
28531
28532         * g-os_lib.ads, g-os_lib.adb (Create_Output_Text_File): New function.
28533
28534         * make.adb (Gnatmake): Do not check the executable suffix; it is being
28535         taken care of in Scan_Make_Arg.
28536         (Scan_Make_Arg): Add the executable suffix only if the argument
28537         following -o, in canonical case, does not end with the executable
28538         suffix.  When in verbose mode and executable file name does not end
28539         with executable suffix, output the executable name, in canonical case.
28540
28541         * s-tataat.ads (Access_Dummy_Wrapper): Add pragma No_Strict_Aliasing
28542         to avoid warnings when instantiating Ada.Task_Attributes.
28543         Minor reformating.
28544
28545         * mlib-prj.adb (Process_Imported_Libraries): Get the imported libraries
28546         in the correct order.
28547
28548         * prj-makr.adb (Process_Directory): No longer use GNAT.Expect, but
28549         redirect standard output and error to a file for the invocation of the
28550         compiler, then read the file.
28551
28552         * prj-nmsc.adb (Find_Sources): Use the Display_Value for each
28553         directory, instead of the Value.
28554         (Find_Source_Dirs): Remove useless code & comments.
28555
28556 2004-03-15  Ed Schonberg  <schonberg@gnat.com>
28557
28558         * exp_ch3.adb (Freeze_Record_Type): If a primitive operation of a
28559         tagged type is inherited, and the parent operation is not frozen yet,
28560         force generation of a freeze node for the inherited operation, so the
28561         corresponding dispatch entry is properly initialized.
28562         (Make_Predefined_Primitive_Specs): Check that return type is Boolean
28563         when looking for user-defined equality operation.
28564
28565         * exp_ch4.adb (Expand_Composite_Equality): Check that return type is
28566         boolean when locating primitive equality of tagged component.
28567
28568         * exp_ch5.adb (Expand_Assign_Array): If the left-hand side is a
28569         bit-aligned field and the right-hand side a string literal, introduce
28570         a temporary before expanding assignment into a loop.
28571
28572         * exp_ch9.adb (Expand_N_Task_Type_Declaration): Copy expression for
28573         priority in full, to ensure that any expanded subepxressions of it are
28574         elaborated in the scope of the init_proc.
28575
28576         * exp_prag.adb (Expand_Pragma_Import): Search for initialization call
28577         after object declaration, skipping over code that may have been
28578         generated for validity checks.
28579
28580         * sem_ch12.adb (Validate_Private_Type_Instance): If type has unknown
28581         discriminants, ignore the known discriminants of its full view, if
28582         any, to check legality.
28583
28584         * sem_ch3.adb (Complete_Private_Subtype): Do not create constrained
28585         component if type has unknown discriminants.
28586         (Analyze_Private_Extension_Declaration): Discriminant constraint is
28587         null if type has unknown discriminants.
28588
28589         * sem_ch6.adb (Analyze_Generic_Subprogram_Body): Generate reference
28590         for end label when present.
28591
28592         * s-fileio.adb (Open): When called with a C_Stream, use given name for
28593         temporary file, rather than an empty string.
28594
28595 2004-03-15  Ed Falis  <falis@gnat.com>
28596
28597         * s-thread.adb: Removed, no longer used.
28598
28599 2004-03-15  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
28600
28601         * decl.c (target.h): Now include.
28602         (gnat_to_gnu_entity, case E_Access_Type): Use mode derived from ESIZE
28603         in new build_pointer_from_mode calls for non-fat/non-thin pointer.
28604         (validate_size): For POINTER_TYPE, get smallest size permitted on
28605         machine.
28606
28607         * fe.h: Sort Einfo decls and add Set_Mechanism.
28608
28609         * Makefile.in: (LIBGNAT_SRCS): Remove types.h.
28610         (ada/decl.o): Depends on target.h.
28611
28612         * trans.c (tree_transform, N_Unchecked_Type_Conversion): Do not use
28613         FUNCTION_BOUNDARY; always use TYPE_ALIGN.
28614
28615 2004-03-15  Thomas Quinot  <quinot@act-europe.fr>
28616
28617         * 5ztpopsp.adb, 56tpopsp.adb: Fix spelling of Task_ID.
28618
28619         * exp_ch4.adb (Expand_N_Indexed_Component): Do not call
28620         Insert_Dereference_Action when rewriting an implicit dereference into
28621         an explicit one, this will be taken care of during expansion of the
28622         explicit dereference.
28623         (Expand_N_Slice): Same. Always do the rewriting, even for the case
28624         of non-packed slices, since the dereference action generated by
28625         expansion of the explicit dereference is needed in any case.
28626         (Expand_N_Selected_Component): When rewriting an implicit dereference,
28627         analyze and resolve the rewritten explicit dereference so it is seen
28628         by the expander.
28629         (Insert_Dereference_Action): This procedure is now called only for the
28630         expansion of an N_Explcit_Dereference_Node. Do insert a check even for
28631         dereferences that do not come from source (including explicit
28632         dereferences resulting from rewriting implicit ones), but do not
28633         recursively insert a check for the dereference nodes contained within
28634         the check.
28635         (Insert_Dereference_Action): Clarify and correct comment.
28636
28637 2004-03-08  Paolo Bonzini  <bonzini@gnu.org>
28638
28639         PR ada/14131
28640         Move language detection to the top level.
28641         * config-lang.in: Build by default.
28642
28643 2004-03-05  Robert Dewar  <dewar@gnat.com>
28644
28645         * 56taprop.adb, 5ataprop.adb: Remove unneeded unchecked conversions
28646
28647         * a-tags.adb, a-tags.ads, s-finimp.adb, s-finroo.ads,
28648         i-cpoint.ads, i-cpoint.adb, i-cstrin.adb, i-cstrin.ads,
28649         5iosinte.ads, 5sosinte.ads, 5staspri.ads, 5itaprop.adb,
28650         5staprop.adb, 5wtaprop.adb, s-tataat.ads, s-tataat.adb: Move
28651         unchecked conversion to spec to avoid warnings.
28652
28653         * s-tasini.adb, s-taskin.ads, 5atpopsp.adb: Correct spelling Task_Id
28654         to Task_ID
28655
28656         * 7stpopsp.adb: Correct casing in To_Task_ID call
28657
28658         * a-strsea.ads, a-strsea.adb: Minor reformatting
28659
28660         * einfo.ads, einfo.adb: Define new flag No_Strict_Aliasing
28661
28662         * errout.ads: Switch for VMS is now NO_STRICT_ALIASING.
28663         Adjust Max_Msg_Length to be clearly large enough.
28664
28665         * fe.h: Define In_Same_Source_Unit
28666
28667         * osint.adb: Add pragma Warnings Off to suppress warnings
28668         * g-dyntab.adb, g-table.adb, g-thread.adb: Add Warnings (Off) to kill
28669         aliasing warnings.
28670
28671         * opt.ads: Put entries in alpha order. Add entry for No_Strict_Aliasing
28672
28673         * par-prag.adb: Add dummy entry for No_Strict_Aliasing pragma
28674
28675         * sem_ch13.adb: Generate validate unchecked conversion nodes for gcc.
28676
28677         * sem_ch3.adb: Set No_Strict_Aliasing flag if config pragma set.
28678
28679         * sem_prag.adb: Implement pragma No_Strict_Aliasing.
28680
28681         * sinfo.ads: Remove obsolete comment on validate unchecked conversion
28682         node. We now do generate them for gcc back end.
28683
28684         * table.adb, sinput.adb: Add pragma Warnings Off to suppress aliasing
28685         warning.
28686
28687         * sinput-c.adb: Fix bad name in header.
28688         Add pragma Warnings Off to suppress aliasing warning.
28689
28690         * sinput-l.adb: Add pragma Warnings Off to suppress aliasing warning.
28691
28692         * snames.h, snames.ads, snames.adb: Add entry for pragma
28693         No_Strict_Aliasing.
28694
28695 2004-03-05  Vincent Celier  <celier@gnat.com>
28696
28697         * prj-com.ads: Add hash table Files_Htable to check when a file name
28698         is already a source of another project.
28699
28700         * prj-nmsc.adb (Record_Source): Before recording a new source, check
28701         if its file name is not already a source of another project. Report an
28702         error if it is.
28703
28704         * gnatcmd.adb: When GNAT PRETTY is invoked with a project file and no
28705         source file name, call gnatpp with all the sources of the main project.
28706
28707         * vms_conv.adb (Initialize): GNAT PRETTY may be called with any number
28708         of file names.
28709
28710         * vms_data.ads: Correct documentation of new /OPTIMIZE keyword
28711         NO_STRICT_ALIASING. Add new qualifier for GNAT PRETTY:
28712         /RUNTIME_SYSTEM=, converted to --RTS=
28713         /NOTABS, converted to -notabs
28714
28715 2004-03-05  Pascal Obry  <obry@gnat.com>
28716
28717         * make.adb: Minor reformatting.
28718
28719 2004-03-05  Ed Schonberg  <schonberg@gnat.com>
28720
28721         Part of implemention of AI-262.
28722         * par-ch10.adb (P_Context_Clause): Recognize private with_clauses.
28723
28724         * sem_ch10.ads, sem_ch10.adb: (Install_Private_With_Clauses): New
28725         procedure.
28726
28727         * sem_ch3.adb (Analyze_Component_Declaration): Improve error message
28728         when component type is a partially constrained class-wide subtype.
28729         (Constrain_Discriminated_Type): If parent type has unknown
28730         discriminants, a constraint is illegal, even if full view has
28731         discriminants.
28732         (Build_Derived_Record_Type): Inherit discriminants when deriving a type
28733         with unknown discriminants whose full view is a discriminated record.
28734
28735         * sem_ch7.adb (Preserve_Full_Attributes): Preserve Has_Discriminants
28736         flag, to handle properly derivations of tagged types with unknown
28737         discriminants.
28738         (Analyze_Package_Spec, Analyze_Package_Body): Install
28739         Private_With_Clauses before analyzing private part or body.
28740
28741         * einfo.ads: Indicate that both Has_Unknown_Discriminants and
28742         Has_Discriminants can be true for a given type (documentation).
28743
28744 2004-03-05  Arnaud Charlet  <charlet@act-europe.fr>
28745
28746         * s-restri.ads: Fix license (GPL->GMGPL).
28747
28748         * s-tassta.adb: Minor reformatting.
28749
28750         * s-tasren.adb: Replace manual handling of Self_Id.ATC_Nesting_Level
28751         by calls to Exit_One_ATC_Level, since additional clean up is performed
28752         by this function.
28753
28754         * s-tpobop.adb: Replace manual handling of Self_Id.ATC_Nesting_Level
28755         by calls to Exit_One_ATC_Level, since additional clean up is performed
28756         by this function.
28757
28758 2004-03-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
28759
28760         * trans.c: Reflect GCC changes to fix bootstrap problem.
28761         Add warning for suspicious aliasing unchecked conversion.
28762
28763 2004-03-05  GNAT Script  <nobody@gnat.com>
28764
28765         * Make-lang.in: Makefile automatically updated
28766
28767 2004-03-02  Emmanuel Briot  <briot@act-europe.fr>
28768
28769         * ali.adb (Read_Instantiation_Instance): Do not modify the
28770         current_file_num when reading information about instantiations, since
28771         this corrupts files in later references.
28772
28773 2004-03-02  Vincent Celier  <celier@gnat.com>
28774
28775         * bcheck.adb (Check_Consistency): Get the full path of an ALI file
28776         before checking if it is read-only.
28777
28778         * bld.adb (Recursive_Process): Concatenate <PROJECT>.src_dirs in front
28779         of SRC_DIRS and eliminate duplicates.
28780
28781         * gprcmd.adb: Replace command "path" with command "path_sep" to return
28782         the path separator.
28783         (Usage): Document path_sep
28784
28785         * Makefile.generic: For Ada and GNU C++ cases, link directly with the
28786         C++ compiler. No need for a script.
28787         Replace use of C*_INCLUDE_PATH env var for GCC compilers with CPATH.
28788         Do not call gprcmd to build the C*_INCLUDE_PATHs, do it with function
28789         subst.
28790
28791         * prj-env.adb (For_All_Source_Dirs): Only add source dirs in project
28792         where there are Ada sources.
28793         (Set_Ada_Paths): Only add to the include path the source dirs of project
28794         with Ada sources.
28795         (Add_To_Path): Add the Display_Values of the directories, not their
28796         Values.
28797
28798         * prj-nmsc.adb (Find_Sources): Set flag Sources_Present in the project
28799         data.
28800
28801         * prj-nmsc.adb (Add_ALI_For): Make sure that the element Display_Value
28802         is not No_Name.
28803         (Find_Source_Dirs): Set Display_Value to a non canonicalized value, only
28804         Value is canonicalized.
28805         (Language_Independent_Check): Do not copy Value to Display_Value when
28806         canonicalizing Value.
28807
28808         * prj-part.adb (Post_Parse_Context_Clause): Compare canonical cased
28809         path to find limited with cycles.
28810         (Parse_Single_Project): Use canonical cased path to find the end of a
28811         with cycle.
28812
28813 2004-03-02  Ed Schonberg  <schonberg@gnat.com>
28814
28815         * sem_ch10.adb (Optional_Subunit): Verify that unit contains a subunit
28816         and not a child unit.
28817
28818         * sinfo.ads, sinfo.adb: Rearrange flags so that Private_Present can
28819         appear in a with_clause.
28820
28821         * decl.c (gnat_to_gnu_type): If entity is a generic type, which can
28822         only happen in type_annotate mode, do not try to elaborate it.
28823
28824         * exp_util.adb (Force_Evaluation): If expression is a selected
28825         component on the left of an assignment, use a renaming rather than a
28826         temporary to remove side effects.
28827
28828         * freeze.adb (Freeze_Entity): Do not freeze a global entity within an
28829         inlined instance body, which is analyzed before the end of the
28830         enclosing scope.
28831
28832 2004-03-02  Robert Dewar  <dewar@gnat.com>
28833
28834         * par-ch10.adb, par-ch3.adb, par-ch4.adb, scng.adb,
28835         sem_ch4.adb: Use new feature for substitution of keywords in VMS
28836
28837         * errout.ads, errout.adb: Implement new circuit for substitution of
28838         keywords in VMS.
28839
28840         * sem_case.adb (Analyze_Choices): Place message properly when case is
28841         a subtype reference rather than an explicit range.
28842
28843         * sem_elim.adb, s-tpobop.ads, exp_ch2.adb: Minor reformatting
28844
28845 2004-03-02  Doug Rupp  <rupp@gnat.com>
28846
28847         * init.c (__gnat_initialize)[VMS]: Resignal RDB-E-STREAM_EOF.
28848
28849 2004-03-02  Thomas Quinot  <quinot@act-europe.fr>
28850
28851         * s-tporft.adb: Add missing locking around call to Initialize_ATCB.
28852
28853 2004-03-02  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
28854
28855         * utils.c (finish_record_type): Do not set DECL_NONADDRESSABLE for a
28856         BLKmode bitfield.
28857
28858 2004-02-25  Robert Dewar  <dewar@gnat.com>
28859
28860         * 51osinte.ads, 52osinte.ads, 53osinte.ads, 54osinte.ads,
28861         55osinte.ads, 56osinte.ads, 5aosinte.ads, 5bosinte.ads,
28862         5cosinte.ads, 5fosinte.ads, 5gosinte.ads, 5hosinte.ads,
28863         5iosinte.ads, 5losinte.ads, 5nosinte.ads, 5oosinte.ads,
28864         5posinte.ads, 5sosinte.ads, 5tosinte.ads, 5vosinte.ads,
28865         5wosinte.ads, 5zosinte.ads: Move instances of Unchecked_Conversion to
28866         the defining instance of the type to avoid aliasing problems.
28867         Fix copyright header.  Fix bad comments in package header.
28868
28869         * exp_util.adb, prj-part.adb, prj-part.adb: Minor reformatting
28870
28871 2004-02-25  Ed Schonberg  <schonberg@gnat.com>
28872
28873         * exp_ch2.adb (Param_Entity): Handle properly formals that have been
28874         rewritten as references when aliased through an address clause.
28875
28876         * sem_ch4.adb (Try_Indirect_Call): Normalize actuals before checking
28877         whether call can be interpreted as an indirect call to the result of a
28878         parameterless function call returning an access subprogram.
28879
28880 2004-02-25  Arnaud Charlet  <charlet@act-europe.fr>
28881
28882         Code clean up:
28883         * exp_ch7.adb (Make_Clean): Remove generation of calls to
28884         Unlock[_Entries], since this is now done by Service_Entries directly.
28885
28886         * exp_ch9.adb (Build_Protected_Subprogram_Body): ditto.
28887
28888         * s-tpobop.ads, s-tpobop.adb (PO_Service_Entries): New nested procedure
28889         Requeue_Call for better code readability. Change spec and update calls:
28890         PO_Service_Entries now unlock the PO on exit.
28891         (Protected_Entry_Call, Timed_Protected_Entry_Call): Update calls to
28892         PO_Service_Entries.
28893
28894         * s-tposen.ads, s-tposen.adb (Service_Entry): Now unlock the PO on exit.
28895
28896         * s-taenca.adb, s-tasren.adb: Update calls to PO_Service_Entries.
28897
28898 2004-02-25  Sergey Rybin  <rybin@act-europe.fr>
28899
28900         * exp_ch9.adb (Build_Simple_Entry_Call): Prevent expanding the
28901         protected subprogram call and analyzing the result of such expanding
28902         in case when the called protected subprogram is eliminated.
28903
28904         * sem_elim.adb (Check_Eliminated): Skip blocks when comparing scope
28905         names.
28906
28907 2004-02-25  Jerome Guitton  <guitton@act-europe.fr>
28908
28909         * Makefile.in: Clean ups.
28910
28911 2004-02-23  Ed Schonberg  <schonberg@gnat.com>
28912
28913         * exp_ch6.adb (Expand_N_Subprogram_Declaration): Do not create
28914         protected operations if original subprogram is flagged as eliminated.
28915         (Expand_N_Subprogram_Body): For a protected operation, create
28916         discriminals for next operation before checking whether the operation
28917         is eliminated.
28918
28919         * exp_ch9.adb (Expand_N_Protected_Body,
28920         Expand_N_Protected_Type_Declaration): Do not generate specs and bodies
28921         for internal protected operations if the original subprogram is
28922         eliminated.
28923
28924         * sem_elim.adb (Check_Eliminated): Handle properly protected operations
28925         declared in a single protected object.
28926
28927 2004-02-23  Vincent Celier  <celier@gnat.com>
28928
28929         * prj-attr.adb: Make attribute Builder'Executable an associative array,
28930         case insensitive if file names are case insensitive, instead of a
28931         standard associative array.
28932
28933         * prj-attr.adb (Initialize): For 'b' associative arrays, do not set
28934         them as case insensitive on platforms where the file names are case
28935         sensitive.
28936
28937         * prj-part.adb (Parse_Single_Project): Make sure, when checking if
28938         project file has already been parsed that canonical path are compared.
28939
28940 2004-02-23  Robert Dewar  <dewar@gnat.com>
28941
28942         * sinput-c.ads: Correct bad unit title in header
28943
28944         * freeze.adb: Minor reformatting
28945
28946 2004-02-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
28947
28948         * trans.c (tree_transform, case N_Procedure_Call_Statement): For
28949         nonaddressable COMPONENT_REF that is removing padding that we are
28950         taking the address of, take the address of the padded record instead
28951         if item is variable size.
28952
28953 2004-02-20  Robert Dewar  <dewar@gnat.com>
28954
28955         * bld.adb, exp_util.adb, gprcmd.adb: Minor reformatting
28956
28957 2004-02-20  Ed Schonberg  <schonberg@gnat.com>
28958
28959         * freeze.adb (Freeze_Record_Type): Generalize mechanism that generates
28960         itype references for the constrained designated type of a component
28961         whose base type is already frozen.
28962
28963 2004-02-20  Arnaud Charlet  <charlet@act-europe.fr>
28964
28965         * init.c (__gnat_error_handler [tru64]): Rewrite previous change to
28966         avoid GCC warnings.
28967
28968 2004-02-20  Sergey Rybin  <rybin@act-europe.fr>
28969
28970         * sem_ch12.adb (Analyze_Formal_Package): Create a new defining
28971         identifier for a phantom package that rewrites the formal package
28972         declaration with a box. The Add semantic decorations for the defining
28973         identifier from the original node (that represents the formal package).
28974
28975 2004-02-19  Matt Kraai  <kraai@alumni.cmu.edu>
28976
28977         * Make-lang.in (ada/stamp-sdefault): Use the top level
28978         move-if-change.
28979
28980 2004-02-19  Richard Henderson  <rth@redhat.com>
28981
28982         * misc.c (record_code_position): Add third build arg for RTL_EXPR.
28983
28984 2004-02-18  Emmanuel Briot  <briot@act-europe.fr>
28985
28986         * ali.ads, ali.adb (First_Sdep_Entry): No longer a constant, so that
28987         Scan_ALI can be used for multiple ALI files without reinitializing
28988         between calls.
28989
28990 2004-02-18  Robert Dewar  <dewar@gnat.com>
28991
28992         * debug.adb: Minor reformatting.
28993
28994 2004-02-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
28995
28996         * decl.c (gnat_to_gnu_entity, case object): Set DECL_POINTER_ALIAS_SET
28997         to zero if there is an address clause.
28998
28999 2004-02-18  Thomas Quinot  <quinot@act-europe.fr>
29000
29001         * exp_util.adb (Side_Effect_Free): Any literal is side effects free.
29002
29003 2004-02-18  Gary Dismukes  <dismukes@gnat.com>
29004
29005         * layout.adb (Layout_Component_List): Revise generation of call to
29006         discriminant-checking function to pass selections of all of the type's
29007         discriminants rather than just the variant-controlling discriminant.
29008
29009 2004-02-18  Olivier Hainque  <hainque@act-europe.fr>
29010
29011         * 5gmastop.adb (Pop_Frame): Do not call exc_unwind, which is bound to
29012         fail in the current setup and triggers spurious system error messages.
29013         Pretend it occurred and failed instead.
29014
29015 2004-02-18  Vincent Celier  <celier@gnat.com>
29016
29017         * bld.adb: Mark FLDFLAGS as saved
29018         (Process_Declarative_Items): Add Linker'Linker_Options to FLDFLAGS when
29019         it is not the root project.  Put each directory to be
29020         extended between double quotes to prevent it to be expanded on Windows.
29021         (Recursive_Process): Reset CFLAGS/CXXFLAGS to nothing before processing
29022         the project file. Set them back to their initial values if they have not
29023         been set in the project file.
29024
29025         * gprcmd.adb: (Gprdebug, Debug): New global variables
29026         (Display_Command): New procedure
29027         (Usage): Document new command "linkopts"
29028         Call Display_Command when env var GPRDEBUG has the value "TRUE"
29029         Implement new command "linkopts"
29030         Remove quotes that may be around arguments for "extend"
29031         Always call Normalize_Pathname with arguments formatted for the platform
29032
29033         * Makefile.generic: Link C/C++ mains with $(FLDFLAGS)
29034         Change @echo to @$(display) in target clean to be able to clean silently
29035
29036         * Makefile.prolog: Save FLDFLAGS and give it an initial empty value
29037
29038         * prj-part.adb (Project_Path_Name_Of): Do not put final result in
29039         canonical case.
29040
29041         * prj-part.adb (Parse_Single_Project): Always call with From_Extended
29042         = Extending_All when current project is an extending all project.
29043
29044         * vms_conv.adb (Output_File_Expected): New Boolean global variable,
29045         set to True only for LINK command, after Unix switch -o.
29046         (Process_Arguments): Set Output_File_Expected to True for LINK command
29047         after Unix switch -o. When Output_File_Expected is True, never add an
29048         extension to a file name.
29049
29050         * 5vml-tgt.adb (Build_Dynamic_Library): Do not append "/OPTIONS" to the
29051         option file name, only to the --for-linker= switch.
29052         (Option_File_Name): If option file name do not end with ".opt", append
29053         "/OPTIONS".
29054
29055 2004-02-18  GNAT Script  <nobody@gnat.com>
29056
29057         * Make-lang.in: Makefile automatically updated
29058
29059 2004-02-17  Matt Kraai  <kraai@alumni.cmu.edu>
29060
29061         * Make-lang.in (stamp-sdefault): Do not depend on
29062         move-if-change.
29063
29064 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
29065
29066         * config-lang.in: Disable Ada by default until probe logic for
29067         a bootstrap Ada compiler can be moved to the top level configure
29068         script.
29069
29070 2004-02-12  Olivier Hainque  <hainque@act-europe.fr>
29071
29072         * decl.c (components_to_record): Don't claim that the internal fields
29073         we make to hold the variant parts are semantically addressable, because
29074         they are not.
29075
29076         * exp_pakd.adb (Create_Packed_Array_Type): Rename Esiz into PASize and
29077         adjust the comment describing the modular type form when we can use it.
29078         (Install_PAT): Account for the Esiz renaming.
29079
29080         * init.c (__gnat_error_handler for alpha-tru64): Arrange to clear the
29081         sc_onstack context indication before raising the exception to which
29082         the signal is mapped. Allows better handling of later signals possibly
29083         triggered by the resumed user code if the exception is handled.
29084
29085 2004-02-12  Arnaud Charlet  <charlet@act-europe.fr>
29086
29087         * 5zinit.adb: Removed, no longer used.
29088
29089 2004-02-12  Robert Dewar  <dewar@gnat.com>
29090
29091         * ali.adb: Remove separating space between parameters on R line. Makes
29092         format consistent with format used by the binder for Set_Globals call.
29093
29094         * atree.ads, atree.adb: Minor reformatting (new function header format)
29095
29096         * bindgen.adb: Add Run-Time Globals documentation section containing
29097         detailed documentation of the globals passed from the binder file to
29098         the run time.
29099
29100         * gnatls.adb: Minor reformatting
29101
29102         * init.c (__gnat_set_globals): Add note pointing to documentation in
29103         bindgen.
29104
29105         * lib-writ.ads, lib-writ.adb: Remove separating space between
29106         parameters on R line.
29107         Makes format consistent with format used by the binder for Set_Globals
29108         call.
29109
29110         * osint.ads: Add 2004 to copyright notice
29111         Minor reformatting
29112
29113         * snames.ads: Correct capitalization of FIFO_Within_Priorities
29114         Noticed during code reading, documentation issue only
29115
29116         * usage.adb: Remove junk line for obsolete C switch
29117         Noticed during code reading
29118
29119 2004-02-12  Vincent Celier  <celier@gnat.com>
29120
29121         * bld.adb (Process_Declarative_Items): For Source_Dirs call gprcmd
29122         extend for each directory, so that multiple /** directories are
29123         extended individually.
29124         (Recursive_Process): Set the default for LANGUAGES to ada
29125
29126         * gprcmd.adb: Define new command "ignore", to do nothing.
29127         Implement new comment "path".
29128
29129         * Makefile.generic: Suppress output when SILENT is set
29130         Make sure that when compiler for C/C++ is gcc, the correct -x switch is
29131         used, so that the correct compiler is invoked.
29132         When compiler is gcc/g++, put search path in env vars C_INCLUDE_PATH/
29133         CXX_INCLUDE_PATH, to avoid failure with too long command lines.
29134
29135 2004-02-12  Jerome Guitton  <guitton@act-europe.fr>
29136
29137         * Makefile.in: Clean ups and remove obsolete targets.
29138
29139 2004-02-12  Ed Schonberg  <schonberg@gnat.com>
29140
29141         * exp_ch5.adb: Remove Possible_Unligned_Slice, in favor of the similar
29142         predicate declared in exp_util.
29143
29144         * exp_util.adb: Add comments.
29145
29146         * sem_ch10.adb (Analyze_Subunit): Remove ultimate parent unit from
29147         visibility before compiling context of the subunit.
29148
29149         * sem_res.adb (Check_Parameterless_Call): If the context expects a
29150         value but the name is a procedure, do not attempt to analyze as a call,
29151         in order to obtain more telling diagnostics.
29152
29153         * sem_util.adb (Wrong_Type): Further enhancement to diagnose missing
29154         'Access on parameterless function calls.
29155         (Normalize_Actuals): For a parameterless function call with missing
29156         actuals, defer diagnostic until resolution of enclosing call.
29157
29158         * sem_util.adb (Wrong_Type): If the context type is an access to
29159         subprogram and the expression is a procedure name, suggest a missing
29160         'attribute.
29161
29162 2004-02-10  Arnaud Charlet  <charlet@act-europe.fr>,
29163             Nathanael Nerode  <neroden@gcc.gnu.org>
29164
29165         PR ada/6637
29166         PR ada/5911
29167         Merge with libada-branch:
29168         * config-lang.in: Build libada only when ada is built.
29169
29170 2004-02-09  Ed Schonberg  <schonberg@gnat.com>
29171
29172         * exp_ch4.adb (Expand_N_Op_Eq): When looking for the primitive equality
29173         for a tagged type, verify that both formals have the same type.
29174
29175         * exp_ch6.adb (Add_Call_By_Copy_Code): Initialize properly the
29176         temporary when the formal is an in-parameter and the actual a possibly
29177         unaligned slice.
29178
29179         * exp_ch9.adb (Expand_Entry_Barrier): Resolve barrier expression even
29180         when expansion is disabled, to ensure proper name capture with
29181         overloaded literals.  Condition can be of any boolean type, resolve
29182         accordingly.
29183
29184         * sem_ch8.adb (Analyze_Subprogram_Renaming): Emit warning if the
29185         renaming is for a formal subprogram with a default operator name, and
29186         there is a usable operator that is visible at the point of
29187         instantiation.
29188
29189 2004-02-09  Robert Dewar  <dewar@gnat.com>
29190
29191         * ali.adb (Scan_Ali) Add Ignore_Errors argument. This is a major
29192         rewrite to ignore errors in ali files, intended to allow tools downward
29193         compatibility with new versions of ali files.
29194
29195         * ali.ads: Add new parameter Ignore_Errors
29196
29197         * bcheck.adb (Check_Consistent_Restrictions): Fix error of sometimes
29198         duplicating the error message giving the file with restrictions.
29199
29200         * debug.adb: Add debug flag I for gnatbind
29201
29202         * errout.adb (Set_Msg_Insertion_Node): Suppress extra quotes around
29203         operators for the case where the operator is a defining operator.
29204
29205         * exp_ch3.adb: Minor reformatting (new function spec format).
29206
29207         * exp_ch4.adb: Add comment for previous change, and make minor
29208         adjustment to loop to always check for improper loop termination.
29209         Minor reformatting throughout (new function spec format).
29210
29211         * gnatbind.adb: Implement -di debug flag for gnatbind
29212
29213         * gnatlink.adb: Call Scan_ALI with Ignore_Errors set to True
29214
29215         * gnatls.adb: Call Scan_ALI with Ignore_Errors set to True
29216
29217         * lib-load.adb: Fix bad assertion.
29218         Found by testing and code reading.
29219         Minor reformatting.
29220
29221         * lib-load.ads: Minor reformatting.
29222
29223         * lib-writ.adb: There is only one R line now.
29224
29225         * lib-writ.ads: Add documentation on making downward compatible changes
29226         to ali files so old tools work with new ali files.
29227         There is only one R line now.
29228         Add documentation on format incompatibilities (with special GPS note)
29229
29230         * namet.ads, namet.adb: (Is_Operator_Name): New procedure
29231
29232         * par-load.adb: Minor reformatting
29233
29234         * sem_ch8.adb: Fix to error message from last update
29235         Minor reformatting and restructuring of code from last update
29236
29237         * par-prag.adb, snames.adb, snames.ads, snames.h,
29238         sem_prag.adb: Implement pragma Profile.
29239
29240         * stylesw.adb: Implement -gnatyN switch to turn off all style check
29241         options.
29242
29243         * usage.adb: Add line for -gnatyN switch
29244
29245         * vms_data.ads: Add entry STYLE_CHECKS=NONE for -gnatyN
29246
29247 2004-02-09  Albert Lee  <lee@gnat.com>
29248
29249         * errno.c: define _SGI_MP_SOURCE for task-safe errno on IRIX
29250
29251 2004-02-09  Ed Schonberg  <schonberg@gnat.com>
29252
29253         * exp_ch3.adb (Build_Slice_Assignment): Handle properly case of null
29254         slices.
29255
29256         * exp_ch6.adb (Expand_Call): Do not inline a call when the subprogram
29257         is nested in an instance that is not frozen yet, to avoid
29258         order-of-elaboration problems in gigi.
29259
29260         * sem_attr.adb (Analyze_Attribute, case 'Access): Within an inlined
29261         body the attribute is legal.
29262
29263 2004-02-09  Robert Dewar  <dewar@gnat.com>
29264
29265         * s-rident.ads: Minor comment correction
29266
29267         * targparm.adb: Remove dependence on uintp completely. There was
29268         always a bug in Make in that it called Targparm before initializing
29269         the Uint package. The old code appeared to get away with this, but
29270         the new code did not! This caused an assertion error in gnatmake.
29271
29272         * targparm.ads: Fix bad comment, restriction pragmas with parameters
29273         are indeed fully supported.
29274
29275 2004-02-06  Alan Modra  <amodra@bigpond.net.au>
29276
29277         * misc.c (default_pass_by_ref): Update INIT_CUMULATIVE_ARGS call.
29278
29279 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
29280
29281         * ada/utils.c (create_param_decl): Replace PROMOTE_PROTOTYPES
29282         with targetm.calls.promote_prototypes.
29283
29284 2004-02-04  Robert Dewar  <dewar@gnat.com>
29285
29286         * 5gtasinf.adb, 5gtasinf.ads, 5gtaprop.adb, ali.adb,
29287         ali.ads, gprcmd.adb: Minor reformatting
29288
29289         * bindgen.adb: Output restrictions string for new style restrictions
29290         handling
29291
29292         * impunit.adb: Add s-rident.ads (System.Rident) and
29293         s-restri (System.Restrictions)
29294
29295         * lib-writ.adb: Fix bug in writing restrictions string (last few
29296         entries wrong)
29297
29298         * s-restri.ads, s-restri.adb: Change name Restrictions to
29299         Run_Time_Restrictions to avoid conflict with package name.
29300         Add circuit to read and acquire run time restrictions.
29301
29302 2004-02-04  Jose Ruiz  <ruiz@act-europe.fr>
29303
29304         * restrict.ads, restrict.adb: Use the new restriction
29305         No_Task_Attributes_Package instead of the old No_Task_Attributes.
29306
29307         * sem_prag.adb: No_Task_Attributes is a synonym of
29308         No_Task_Attributes_Package.
29309
29310         * snames.ads, snames.adb: New entry for proper handling of
29311         No_Task_Attributes.
29312
29313         * s-rident.ads: Adding restriction No_Task_Attributes_Package
29314         (AI-00249) that supersedes the GNAT specific restriction
29315         No_Task_Attributes.
29316
29317 2004-02-04  Ed Schonberg  <schonberg@gnat.com>
29318
29319         * sem_prag.adb:
29320         (Analyze_Pragma, case Warnings): In an inlined body, as in an instance
29321          body, an identifier may be wrapped in an unchecked conversion.
29322
29323 2004-02-04  Vincent Celier  <celier@gnat.com>
29324
29325         * lib-writ.ads: Comment update for the W lines
29326
29327         * bld.adb: (Expression): An empty string list is static
29328
29329         * fname-uf.adb: Minor comment update
29330
29331         * fname-uf.ads: (Get_File_Name): Document new parameter May_Fail
29332
29333         * gnatbind.adb: Initialize Cumulative_Restrictions with the
29334         restrictions on the target.
29335
29336 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
29337
29338         * ada/trans.c (gigi): Use gen_rtx_SYMBOL_REF instead of
29339         gen_rtx.
29340
29341 2004-02-02  Arnaud Charlet  <charlet@gnat.com>
29342
29343         * Makefile.in: Remove setting of THREADSLIB on mips o32, unneeded.
29344
29345 2004-02-02  Vincent Celier  <celier@gnat.com>
29346
29347         * gprcmd.adb (Check_Args): If condition is false, print the invoked
29348         comment before the usage.
29349         Gprcmd: Fail when command is not recognized.
29350         (Usage): Document command "prefix"
29351
29352         * g-md5.adb (Digest): Process last block.
29353         (Update): Do not process last block. Store remaining characters and
29354         length in Context.
29355
29356         * g-md5.ads (Update): Document that several call to update are
29357         equivalent to one call with the concatenated string.
29358         (Context): Add fields to allow new Update behaviour.
29359
29360         * fname-uf.ads/adb (Get_File_Name): New Boolean parameter May_Fail,
29361         defaulted to False.
29362         When May_Fail is True and no existing file can be found, return No_File.
29363
29364         * 6vcstrea.adb: Inlined functions are now wrappers to implementation
29365         functions.
29366
29367         * lib-writ.adb (Write_With_Lines): When body file does not exist, use
29368         spec file name instead on the W line.
29369
29370 2004-02-02  Robert Dewar  <dewar@gnat.com>
29371
29372         * ali.adb: Read and acquire info from new format restrictions lines
29373
29374         * bcheck.adb: Add circuits for checking restrictions with parameters
29375
29376         * bindgen.adb: Output dummy restrictions data
29377         To be changed later
29378
29379         * ali.ads, checks.adb, exp_aggr.adb, exp_attr.adb, exp_ch11.adb,
29380         exp_ch3.adb, exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_util.adb,
29381         freeze.adb, gnat1drv.adb, sem_attr.adb, sem_ch10.adb, sem_ch11.adb,
29382         sem_ch12.adb, targparm.adb, targparm.ads, tbuild.adb, sem_ch2.adb,
29383         sem_elab.adb, sem_res.adb: Minor changes for new restrictions handling.
29384
29385         * exp_ch9.adb (Build_Master_Entity): Cleanup the code (also suppresses
29386         the warning message on access to possibly uninitialized variable S)
29387         Minor changes for new restrictions handling.
29388
29389         * gnatbind.adb: Minor reformatting
29390         Minor changes for new restrictions handling
29391         Move circuit for -r processing here from bcheck (cleaner)
29392
29393         * gnatcmd.adb, gnatlink.adb: Minor reformatting
29394
29395         * lib-writ.adb: Output new format restrictions lines
29396
29397         * lib-writ.ads: Document new R format lines for new restrictions
29398         handling.
29399
29400         * s-restri.ads/adb: New files
29401
29402         * Makefile.rtl: Add entry for s-restri.ads/adb
29403
29404         * par-ch3.adb: Fix bad error messages starting with upper case letter
29405         Minor reformatting
29406
29407         * restrict.adb: Major rewrite throughout for new restrictions handling
29408         Major point is to handle restrictions with parameters
29409
29410         * restrict.ads: Major changes in interface to handle restrictions with
29411         parameters. Also generally simplifies setting of restrictions.
29412
29413         * snames.ads/adb: New entry for proper handling of No_Requeue
29414
29415         * sem_ch3.adb (Count_Tasks): New circuitry for implementing Max_Tasks
29416         restriction counting.
29417         Other minor changes for new restrictions handling
29418
29419         * sem_prag.adb: No_Requeue is a synonym for No_Requeue_Statements.
29420         Restriction_Warnings now allows full parameter notation
29421         Major rewrite of Restrictions for new restrictions handling
29422
29423 2004-02-02  Javier Miranda  <miranda@gnat.com>
29424
29425         * par-ch3.adb (P_Identifier_Declarations): Give support to the Ada 0Y
29426         syntax rule for object renaming declarations.
29427         (P_Array_Type_Definition): Give support for the Ada 0Y syntax rule for
29428         component definitions.
29429
29430         * sem_ch3.adb (Analyze_Component_Declaration): Give support to access
29431         components.
29432         (Array_Type_Declaration): Give support to access components. In addition
29433         it was also modified to reflect the name of the object in anonymous
29434         array types. The old code did not take into account that it is possible
29435         to have an unconstrained anonymous array with an initial value.
29436         (Check_Or_Process_Discriminants): Allow access discriminant in
29437         non-limited types.
29438         (Process_Discriminants): Allow access discriminant in non-limited types
29439         Initialize the new Access_Definition field in N_Object_Renaming_Decl
29440         node.  Change Ada0Y to Ada 0Y in comments
29441
29442         * sem_ch4.adb (Find_Equality_Types): Allow anonymous access types in
29443         equality operators.
29444         Change Ada0Y to Ada 0Y in comments
29445
29446         * sem_ch8.adb (Analyze_Object_Renaming): Give support to access
29447         renamings Change Ada0Y to Ada 0Y in comments
29448
29449         * sem_type.adb (Find_Unique_Type): Give support to the equality
29450         operators for universal access types
29451         Change Ada0Y to Ada 0Y in comments
29452
29453         * sinfo.adb (Access_Definition, Set_Access_Definition): New subprograms
29454
29455         * sinfo.ads (N_Component_Definition): Addition of Access_Definition
29456         field.
29457         (N_Object_Renaming_Declaration): Addition of Access_Definition field
29458         Change Ada0Y to Ada 0Y in comments
29459
29460         * sprint.adb (Sprint_Node_Actual): Give support to the new syntax for
29461         component definition and object renaming nodes
29462         Change Ada0Y to Ada 0Y in comments
29463
29464 2004-02-02  Jose Ruiz  <ruiz@act-europe.fr>
29465
29466         * restrict.adb: Use the new restriction identifier
29467         No_Requeue_Statements instead of the old No_Requeue for defining the
29468         restricted profile.
29469
29470         * sem_ch9.adb (Analyze_Requeue): Check the new restriction
29471         No_Requeue_Statements.
29472
29473         * s-rident.ads: Adding restriction No_Requeue_Statements (AI-00249)
29474         that supersedes the GNAT specific restriction No_Requeue. The later is
29475         kept for backward compatibility.
29476
29477 2004-02-02  Ed Schonberg  <schonberg@gnat.com>
29478
29479         * lib.ads, i-cobol.ads, * s-stoele.ads, s-thread.ads, style.ads,
29480         5staprop.adb, atree.adb, atree.ads, g-crc32.ads: Remove redundant
29481         pragma and fix incorrect ones.
29482
29483         * sem_prag.adb For pragma Inline and pragma Pure_Function, emit a
29484         warning if the pragma is redundant.
29485
29486 2004-02-02  Thomas Quinot  <quinot@act-europe.fr>
29487
29488         * 5staprop.adb: Add missing 'constant' keywords.
29489
29490         * Makefile.in: use consistent value for SYMLIB on
29491         platforms where libaddr2line is supported.
29492
29493 2004-02-02  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
29494
29495         * utils.c (end_subprog_body): Do not call rest_of_compilation if just
29496         annotating types.
29497
29498 2004-02-02  Olivier Hainque  <hainque@act-europe.fr>
29499
29500         * init.c (__gnat_install_handler): Setup an alternate stack for signal
29501         handlers in the environment thread. This allows proper propagation of
29502         an exception on stack overflows in this thread even when the builtin
29503         ABI stack-checking scheme is used without support for a stack reserve
29504         region.
29505
29506         * utils.c (create_field_decl): Augment the head comment about bitfield
29507         creation, and don't account for DECL_BIT_FIELD in DECL_NONADDRESSABLE_P
29508         here, because the former is not accurate enough at this point.
29509         Let finish_record_type decide instead.
29510         Don't make a bitfield if the field is to be addressable.
29511         Always set a size for the field if the record is packed, to ensure the
29512         checks for bitfield creation are triggered.
29513         (finish_record_type): During last pass over the fields, clear
29514         DECL_BIT_FIELD when possible in the !STRICT_ALIGNMENT case, as this is
29515         not covered by the calls to layout_decl.  Adjust DECL_NONADDRESSABLE_P
29516         from DECL_BIT_FIELD.
29517
29518 2004-01-30  Kelley Cook  <kcook@gcc.gnu.org>
29519
29520         * Make-lang.in (doc/gnat_ug_unx.dvi): Use $(abs_docdir).
29521         (doc/gnat_ug_vms.dvi, doc/gnat_ug_unx.dvi): Likewise.
29522         (doc/gnat_ug_unx.dvi, doc/gnat-style.dvi): Likewise.
29523
29524 2004-01-26  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
29525
29526         * Makefile.in (mips-sgi-irix5): Remove -lathread from THREADSLIB.
29527
29528         * 5fsystem.ads (Functions_Return_By_DSP): Set to False.
29529         (ZCX_By_Default): Likewise.
29530         (Front_End_ZCX_Support): Likewise.
29531
29532         * 5gtaprop.adb (Stack_Guard): Mark T, On unreferenced.
29533         (Initialize_Lock): Mark Level unreferenced.
29534         (Sleep): Mark Reason unreferenced.
29535         (Timed_Sleep): Likewise.
29536         (Wakeup): Likewise.
29537         (Exit_Task): Use Result.
29538         (Check_No_Locks): Mark Self_ID unreferenced.
29539
29540         * 5gtasinf.adb (New_Sproc): Make Attr constant.
29541         (Bound_Thread_Attributes): Make Sproc constant.
29542         (New_Bound_Thread_Attributes): Likewise.
29543
29544 2004-01-26  Ed Schonberg  <schonberg@gnat.com>
29545
29546         * exp_ch3.adb (Build_Slice_Assignment): New TSS procedure for
29547         one-dimensional array an slice assignments, when component type is
29548         controlled.
29549
29550         * exp_ch5.adb (Expand_Assign_Array): If array is one-dimensional,
29551         component type is controlled, and control_actions are in effect, use
29552         TSS procedure rather than generating inline code.
29553
29554         * exp_tss.ads (TSS_Slice_Assign): New TSS procedure for one-dimensional
29555         arrays with controlled components.
29556
29557 2004-01-26  Vincent Celier  <celier@gnat.com>
29558
29559         * gnatcmd.adb (GNATCmd): Add specification of argument file on the
29560         command line for the non VMS case.
29561
29562         * gnatlink.adb (Process_Binder_File): When building object file, if
29563         GNU linker is used, put all object paths between quotes, to prevent ld
29564         error when there are unusual characters (such as '!') in the paths.
29565
29566         * Makefile.generic: When there are sources in Ada and the main is in
29567         C/C++, invoke gnatmake with -B, instead of -z.
29568
29569         * vms_conv.adb (Preprocess_Command_Data): New procedure, extracted
29570         from VMS_Conversion.
29571         (Process_Argument): New procedure, extracted from VMS_Conversion. Add
29572         specification of argument file on the command line.
29573
29574 2004-01-26  Bernard Banner  <banner@gnat.com>
29575
29576         * Makefile.in: Enable GMEM_LIB and SYMLIB for x86_64
29577
29578 2004-01-26  Ed Schonberg  <schonberg@gnat.com>
29579
29580         * snames.adb: Update copyright notice.
29581         Add info on slice assignment for controlled arrays.
29582
29583 2004-01-23  Robert Dewar  <dewar@gnat.com>
29584
29585         * exp_aggr.adb: Minor reformatting
29586
29587         * exp_ch9.adb: Minor code clean up
29588         Minor reformatting
29589         Fix bad character in comment
29590
29591         PR ada/13471
29592         * targparm.adb (Get_Target_Parameters): Give clean abort error on
29593         unexpected end of file, along with more detailed message.
29594
29595 2004-01-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
29596
29597         * exp_pakd.adb (Install_PAT): Clear Freeze_Node for PAT and Etype of
29598         PAT.
29599
29600         * decl.c (copy_alias_set): New function.
29601         (gnat_to_gnu_entity, make_aligning_type, make_packable_type): Use it.
29602
29603 2004-01-23  Doug Rupp  <rupp@gnat.com>
29604
29605         * Makefile.in (install-gnatlib): Change occurrences of lib$$file to
29606         lib$${file} in case subsequent character is not a separator.
29607
29608 2004-01-23  Vincent Celier  <celier@gnat.com>
29609
29610         * 5vml-tgt.adb (Build_Dynamic_Library): Invoke gcc with -shared-libgcc
29611         when the GCC version is at least 3.
29612
29613         * make.adb: (Scan_Make_Arg): Pass -B to Scan_Make_Switches
29614         Remove all "Opt.", to prepare for opt split
29615
29616         * prj-part.adb (Parse_Single_Project): New Boolean out parameter
29617         Extends_All. Set to True when the project parsed is an extending all
29618         project. Fails for importing an extending all project only when the
29619         imported project is an extending all project.
29620         (Post_Parse_Context_Clause): Set Is_Extending_All to the with clause,
29621         depending on the value of Extends_All returned.
29622
29623         * prj-proc.adb (Process): Check that no project shares its object
29624         directory with a project that extends it, directly or indirectly,
29625         including a virtual project.
29626         Check that no project extended by another project shares its object
29627         directory with another also extended project.
29628
29629         * prj-tree.adb (Is_Extending_All, Set_Is_Extending_All): Allow for
29630         Kind = N_With_Clause
29631
29632         * prj-tree.ads: Minor reformatting
29633         Indicate that Flag2 also applies to N_With_Clause (Is_Extending_All).
29634
29635 2004-01-23  Ed Schonberg  <schonberg@gnat.com>
29636
29637         * sem_ch13.adb (Analyze_Attribute_Definition_Clause): If the attribute
29638         applies to a type with an incomplete view, use full view in Name of
29639         clause, for consistency with uses of Get_Attribute_Definition_Clause.
29640
29641 2004-01-23  Arnaud Charlet  <charlet@act-europe.fr>
29642
29643         * 5itaprop.adb (Set_Priority): Reset the priority to 0 when using
29644         SCHED_RR, since other values are not supported by this policy.
29645         (Initialize): Move initialization of mutex attribute to package
29646         elaboration, to prevent early access to this variable.
29647
29648         * Makefile.in: Remove mention of Makefile.adalib, unused.
29649
29650         * Makefile.adalib, 1aexcept.adb, 1aexcept.ads, 1ic.ads, 1ssecsta.adb,
29651         1ssecsta.ads: Removed, unused.
29652
29653 2004-01-21  Javier Miranda  <miranda@gnat.com>
29654
29655         * exp_aggr.adb (Build_Record_Aggr_Code): Do not build the master
29656         entity if already built in the current scope.
29657
29658         * exp_ch9.adb (Build_Master_Entity): Do not set the has_master_entity
29659         reminder in internal scopes. Required for nested limited aggregates.
29660
29661 2004-01-21  Doug Rupp  <rupp@gnat.com>
29662
29663         * Makefile.in (hyphen): New variable, default value '-'. Set to '_' on
29664         VMS. Replace all occurences of libgnat- and libgnarl- with
29665         libgnat$(hyphen) and libgnarl$(hyphen).
29666         Fixed shared library build problem on VMS.
29667
29668 2004-01-21  Robert Dewar  <dewar@gnat.com>
29669
29670         * mlib-prj.adb: Minor reformatting
29671
29672 2004-01-21  Thomas Quinot  <quinot@act-europe.fr>
29673
29674         * prj-tree.adb, 7staprop.adb, vms_conv.adb, xr_tabls.adb: Add missing
29675         'constant' keywords for declaration of pointers that are not modified.
29676
29677         * exp_pakd.adb: Fix English in comment.
29678
29679 2004-01-21  Ed Schonberg  <schonberg@gnat.com>
29680
29681         PR ada/10889
29682         * sem_ch3.adb (Analyze_Subtype_Declaration): For an array subtype,
29683         copy all attributes of the parent, including the foreign language
29684         convention.
29685
29686 2004-01-21  Sergey Rybin  <rybin@act-europe.fr>
29687
29688         PR ada/10565
29689         * sem_ch9.adb (Analyze_Delay_Alternative): Add expression type check
29690         for 'delay until' statement.
29691
29692 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
29693
29694         * Make-lang.in: Replace $(docdir) with doc.
29695         (doc/gnat_ug_unx.info, doc/gnat_ug_vwx.info, doc/gnat_ug_vms.info
29696         doc/gnat_ug_wnt.info, doc/gnat_rm.info, doc/gnat-style.info): Update
29697         to use consistent MAKEINFO rule.
29698         (ada.man, ada.srcman): Dummy entry.
29699         (ADA_INFOFILES): Define.
29700         (ada.info, ada.srcinfo): New rules.
29701
29702 2004-01-19  Arnaud Charlet  <charlet@act-europe.fr>
29703
29704         * utils.c: Update copyright notice, missed in previous change.
29705
29706 2004-01-19  Vincent Celier  <celier@gnat.com>
29707
29708         * mlib-prj.adb (Build_Library.Add_ALI_For): Only add the ALI to the
29709         args if Bind is True. Set First_ALI, if not already done.
29710         (Build_Library): For Stand Alone Libraries, extract from one ALI file
29711         an eventual --RTS switch, for gnatbind, and all backend switches +
29712         --RTS, for linking.
29713
29714 2004-01-19  Robert Dewar  <dewar@gnat.com>
29715
29716         * sem_attr.adb, memtrack.adb: Minor reformatting
29717
29718 2004-01-19  Ed Schonberg  <schonberg@gnat.com>
29719
29720         * exp_ch6.adb (Expand_Call): Remove code to fold calls to functions
29721         that rename enumeration literals. This is properly done in sem_eval.
29722
29723         * sem_eval.ads, sem_eval.adb (Eval_Call): New procedure to fold calls
29724         to functions that rename enumeration literals.
29725
29726         * sem_res.adb (Resolve_Call): Use Eval_Call to fold static calls to
29727         functions that rename enumeration literals.
29728
29729 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
29730
29731         * Make-lang.in (utils.o): Depend on target.h.
29732         * utils.c: Include target.h.
29733         (process_attributes): Use targetm.have_named_sections instead
29734         of ASM_OUTPUT_SECTION_NAME.
29735
29736 2004-01-16  Andreas Jaeger  <aj@suse.de>
29737
29738         * Makefile.in: Add $(DESTDIR).
29739
29740 2004-01-15  Olivier Hainque  <hainque@act-europe.fr>
29741
29742         * decl.c (gnat_to_gnu_entity, E_Variable): Retrieve the object size
29743         also when not defining if a Size clause applies. That information is
29744         not to be ignored.
29745
29746 2004-01-15  Arnaud Charlet  <charlet@act-europe.fr>
29747
29748         * Makefile.in (install-gnatlib, gnatlib-shared-default): Set up
29749         symbolic links for the shared gnat run time when needed.
29750
29751 2004-01-15  Vasiliy Fofanov  <fofanov@act-europe.fr>
29752
29753         * memtrack.adb (Gmem_Initialize): check that gmem.out could be opened
29754         for writing, and terminate with an error message if not.
29755
29756 2004-01-15  Ed Schonberg  <schonberg@gnat.com>
29757
29758         * sem_attr.adb (Resolve_Attribute, case 'Access): Remove spurious
29759         warning on an access to subprogram in an instance, when the target
29760         type is declared in the same generic unit.
29761         (Eval_Attribute): If 'access is known to fail accessibility check,
29762         rewrite as a raise statement.
29763
29764 2004-01-15  GNAT Script  <nobody@gnat.com>
29765
29766         * Make-lang.in: Makefile automatically updated
29767
29768 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
29769
29770         * Make-lang.in (ada.srcextra): Dummy entry.
29771
29772 2004-01-14  Kelley Cook  <kcook@gcc.gnu.org>
29773
29774         * Make-lang.in: Only regenerate texi files if --enable-maintainer-mode.
29775
29776 2004-01-13  Ed Schonberg  <schonberg@gnat.com>
29777
29778         * exp_ch3.adb (Build_Assignment): Fix bug in handling of controlled
29779         components that are initialized with aggregates.
29780
29781 2004-01-13  Vincent Celier  <celier@gnat.com>
29782
29783         * gnatlink.adb (Process_Binder_File): To find directory of shared
29784         libgcc, if "gcc-lib" is not a subdirectory, look for the last
29785         subdirectory "lib" in the path of the shared libgnat or libgnarl.
29786
29787         * make.adb (Gnatmake): If GCC version is at least 3, link with
29788         -shared-libgcc, when there is at least one shared library project.
29789
29790         * opt.ads (GCC_Version): New integer constant.
29791
29792         * adaint.c (get_gcc_version): New function.
29793
29794 2004-01-13  Robert Dewar  <dewar@gnat.com>
29795
29796         * sem_dist.adb, sem_res.adb, sem_util.adb,
29797         sprint.adb, 3zsocthi.adb, einfo.adb, cstand.adb,
29798         exp_ch4.adb, exp_ch9.adb, exp_dist.adb: Minor reformatting
29799
29800 2004-01-13  Thomas Quinot  <quinot@act-europe.fr>
29801
29802         * s-interr.adb, s-stache.adb, s-taenca.adb, g-regpat.adb,
29803         g-spitbo.adb, 5itaprop.adb: Add missing 'constant' keywords in object
29804         declarations.
29805
29806 2004-01-12  Arnaud Charlet  <charlet@act-europe.fr>
29807
29808         * misc.c: Remove trailing spaces.
29809         Update copyright notice missed in previous change.
29810
29811         PR ada/13572
29812         * bld.adb (Recursive_Process): Reference prefix/share/gnat instead of
29813         prefix/share/make
29814
29815         * Makefile.generic: Update copyright.
29816         Add license notice.
29817
29818         * Makefile.in (ADA_SHARE_MAKE_DIR): Set to prefix/share/gnat instead
29819         of prefix/share/make.
29820
29821         * Makefile.prolog: Update copyright.
29822         Add license notice.
29823
29824 2004-01-12  Laurent Pautet  <pautet@act-europe.fr>
29825
29826         * 3vsocthi.adb, 3vsocthi.ads, 3wsocthi.adb,
29827         3wsocthi.ads, 3zsocthi.adb, 3zsocthi.ads, g-socthi.adb,
29828         g-socthi.ads (Socket_Error_Message): Return C.Strings.chars_ptr
29829         instead of String.
29830
29831         * g-socket.adb (Raise_Socket_Error): Use new Socket_Error_Message
29832         signature.
29833
29834 2004-01-12  Javier Miranda  <miranda@gnat.com>
29835
29836         * cstand.adb, exp_aggr.adb, exp_ch3.adb, exp_ch9.adb, exp_dist.adb,
29837         exp_imgv.adb, exp_pakd.adb, exp_util.adb, par-ch3.adb, sem.adb,
29838         sem_ch12.adb, sem_ch3.adb, sem_dist.adb, sem_prag.adb, sem_res.adb,
29839         sem_util.adb, sinfo.adb, sinfo.ads, sprint.adb: Addition of
29840         Component_Definition node.
29841
29842 2004-01-12  Ed Falis  <falis@gnat.com>
29843
29844         * impunit.adb: Add GNAT.Secondary_Stack_Info as user-visible unit
29845
29846 2004-01-12  Thomas Quinot  <quinot@act-europe.fr>
29847
29848         * link.c: Change default libgnat kind to STATIC for FreeBSD.
29849
29850 2004-01-12  Bernard Banner  <banner@gnat.com>
29851
29852         * Makefile.in: map 86numaux to a-numaux for x86_64
29853
29854 2004-01-12  Ed Schonberg  <schonberg@gnat.com>
29855
29856         * lib-xref.adb (Get_Type_Reference): If the type is the subtype entity
29857         generated to rename a generic actual, go to the actual itself, the
29858         subtype is not a user-visible entity.
29859
29860         * sem_ch7.adb (Uninstall_Declarations): If an entity in the visible
29861         part is a private subtype, reset the visibility of its full view, if
29862         any, to be consistent.
29863
29864         PR ada/13417
29865         * sem_ch12.adb (Analyze_Formal_Package): Diagnose properly an attempt
29866         to use a generic package G as a formal package for another generic
29867         declared within G.
29868
29869 2004-01-12  Robert Dewar  <dewar@gnat.com>
29870
29871         * trans.c (Eliminate_Error_Msg): New procedure called to generate msg
29872
29873         * usage.adb: Remove mention of obsolete -gnatwb switch
29874         Noticed during code reading
29875
29876 2004-01-12  Jerome Guitton  <guitton@act-europe.fr>
29877
29878         * 1ssecsta.adb: Minor changes for -gnatwa warnings
29879
29880 2004-01-12  GNAT Script  <nobody@gnat.com>
29881
29882         * Make-lang.in: Makefile automatically updated
29883
29884 2004-01-09  Mark Mitchell  <mark@codesourcery.com>
29885
29886         * misc.c (gnat_expand_expr): Add alt_rtl parameter.
29887
29888 2004-01-07  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
29889
29890         * link.c [sgi] (shared_libgnat_default): Change to STATIC.
29891
29892 2004-01-05  Kelley Cook  <kcook@gcc.gnu.org>
29893
29894         * Make-lang.in: Revert stamp-xgnatug change from 2003-12-18.
29895         Update comment and copyright date.
29896         * stamp-xgnatug: Delete.
29897
29898 2004-01-05  Robert Dewar  <dewar@gnat.com>
29899
29900         * 1ssecsta.ads: Default_Secondary_Stack is not a constant since it may
29901         be modified by the binder generated main program if the -D switch is
29902         used.
29903
29904         * 4onumaux.ads, 4znumaux.ads: Add Pure_Function pragmas for all
29905         imported functions (since now we expect this to be done for imported
29906         functions)
29907
29908         * 5vtaprop.adb: Add several ??? for sections requiring more comments
29909         Minor reformatting throughout
29910
29911         * 5zinit.adb: Minor reformatting
29912         Add 2004 to copyright date
29913         Minor changes to avoid -gnatwa warnings
29914         Correct some instances of using OR instead of OR ELSE (noted while
29915         doing reformatting)
29916
29917         * sprint.adb: Minor updates to avoid -gnatwa warnings
29918
29919         * s-secsta.ads, s-secsta.adb:
29920         (SS_Get_Max): New function to obtain high water mark for ss stack
29921         Default_Secondary_Stack is not a constant since it may be modified by
29922         the binder generated main program if the -D switch is used.
29923
29924         * switch-b.adb: New -Dnnn switch for binder
29925
29926         * switch-c.adb:
29927         Make -gnatg imply all warnings currently in -gnatwa
29928
29929         * vms_conv.adb: Minor reformatting
29930         Add 2004 to copyright notice
29931         Add 2004 to printed copyright notice
29932
29933         * 3vexpect.adb, 4zsytaco.adb, 3wsocthi.adb, 3zsocthi.adb,
29934         3zsocthi.adb, 56taprop.adb, 56tpopsp.adb, 5amastop.adb,
29935         5aml-tgt.adb, 5ataprop.adb, 5ataprop.adb, 5atpopsp.adb,
29936         5ftaprop.adb, 5ginterr.adb, 5gmastop.adb, 5gml-tgt.adb,
29937         5gtaprop.adb, 5hml-tgt.adb, 5hml-tgt.adb, 5hml-tgt.adb,
29938         5htaprop.adb, 5htraceb.adb, 5itaprop.adb, 5lml-tgt.adb,
29939         5sml-tgt.adb, 5staprop.adb, 5staprop.adb, 5stpopsp.adb,
29940         5vasthan.adb, 5vinmaop.adb, 5vinterr.adb, 5vtaprop.adb,
29941         5vml-tgt.adb, 5vtaprop.adb, 5wosprim.adb, 5wtaprop.adb,
29942         5zinterr.adb, 5zintman.adb, 5zml-tgt.adb, 5ztaprop.adb,
29943         6vcpp.adb, 6vcstrea.adb, 7staprop.adb, 7stpopsp.adb,
29944         vxaddr2line.adb, vxaddr2line.adb, xref_lib.adb, xr_tabls.adb,
29945         xr_tabls.ads, s-tasdeb.adb, s-tasdeb.adb, sem_res.ads,
29946         sem_util.adb, sem_util.adb, sem_util.ads, s-interr.adb,
29947         checks.adb, clean.adb, cstand.adb, einfo.ads,
29948         einfo.adb, exp_aggr.adb, exp_ch11.adb, exp_ch3.adb,
29949         exp_ch4.adb, exp_ch5.adb, exp_ch7.adb, exp_ch9.adb,
29950         prj-nmsc.adb, prj-pp.adb, prj-util.adb, sem_attr.adb,
29951         sem_ch10.adb, sem_ch12.adb, sem_ch4.adb, g-dirope.adb,
29952         g-dirope.ads, gnatlbr.adb, i-cstrea.adb, inline.adb,
29953         lib-xref.adb, sem_ch5.adb, sem_ch7.adb, sem_ch8.adb:
29954         Minor reformatting and code clean ups.
29955         Minor changes to prevent -gnatwa warnings
29956
29957         * ali.adb: Minor reformatting and cleanup of code
29958         Acquire new SS indication of secondary stack use from ali files
29959
29960         * a-numaux.ads: Add Pure_Function pragmas for all imported functions
29961         (since now we expect this to be done for imported functions)
29962
29963         * bindgen.adb: Generate call to modify default secondary stack size if
29964         -Dnnn switch given
29965
29966         * bindusg.adb: Add line for new -D switch
29967
29968         * exp_aggr.adb (Type_May_Have_Bit_Aligned_Components): More appropriate
29969         replacement name for Type_May_Have_Non_Bit_Aligned_Components!
29970         Add circuitry for both records and arrays to avoid gigi
29971         processing if the type involved has non-bit-aligned components
29972
29973         * exp_ch5.adb (Expand_Assign_Array): Avoid assumption that
29974         N_String_Literal node always references an E_String_Literal_Subtype
29975         entity. This may not be true in the future.
29976         (Possible_Bit_Aligned_Component): Move processing of
29977         Component_May_Be_Bit_Aligned from exp_ch5 to exp_util
29978
29979         * exp_ch6.adb (Expand_Thread_Body): Pick up
29980         Default_Secondary_Stack_Size as variable so that we get value modified
29981         by possible -Dnnn binder parameter.
29982
29983         * exp_util.adb (Component_May_Be_Bit_Aligned): New function.
29984         (Type_May_Have_Bit_Aligned_Components): New function.
29985
29986         * exp_util.ads (Component_May_Be_Bit_Aligned): New function.
29987         (Type_May_Have_Bit_Aligned_Components): New function.
29988
29989         * fe.h: (Set_Identifier_Casing): Fix prototype.
29990         Add declaration for Sem_Elim.Eliminate_Error_Msg.
29991         Minor reformatting.
29992
29993         * freeze.adb (Freeze_Entity): Add RM reference to error message about
29994         importing constant atomic/volatile objects.
29995         (Freeze_Subprogram): Reset Is_Pure indication for imported subprogram
29996         unless explicit Pure_Function pragma given, to avoid insidious bug of
29997         call to non-pure imported function getting eliminated.
29998
29999         * gnat1drv.adb, gnatbind.adb, gnatchop.adb, gnatfind.adb,
30000         gnatls.adb, gnatlink.adb, gnatmem.adb, gnatname.adb, gnatsym.adb,
30001         gnatxref.adb, gprcmd.adb, gprep.adb, make.adb: Minor reformatting
30002         Add 2004 to printed copyright notice
30003
30004         * lib-writ.ads, lib-writ.adb: Put new SS flag in ali file if secondary
30005         stack used.
30006
30007         * Makefile.rtl: Add entry for g-sestin.o
30008         g-sestin.ads: New file.
30009
30010         * mdll.adb: Minor changes to avoid -gnatwa warnings
30011
30012         * mlib-tgt.adb: Minor reformatting
30013
30014         * opt.ads: New parameter Default_Secondary_Stack_Size (GNATBIND)
30015         New switch Sec_Stack_Used (GNAT, GNATBIND)
30016         Make Default_Secondary_Stack_Size a variable instead of a constant,
30017         so that it can be modified by the new -Dnnn bind switch.
30018
30019         * rtsfind.adb (Load_Fail): Give full error message in configurable
30020         run-time mode if all_errors mode is set. This was not done in the case
30021         of a file not found, which was an oversight.
30022         Note if secondary stack unit is used by compiler.
30023
30024         * sem_elab.adb (Check_A_Call): Rewrite to avoid trying to put
30025         ineffective elaborate all pragmas on non-visible packages (this
30026         happened when a renamed subprogram was called). Now the elaborate all
30027         always goes on the package containing the renaming rather than the one
30028         containing the renamed subprogram.
30029
30030         * sem_elim.ads, sem_elim.adb (Eliminate_Error_Msg): New procedure
30031         (Process_Eliminate_Pragma): Add parameter to capture pragma location.
30032
30033         * sem_eval.adb (Eval_String_Literal): Do not assume that string literal
30034         has an Etype that references an E_String_Literal.
30035         (Eval_String_Literal): Avoid assumption that N_String_Literal node
30036         always references an E_String_Literal_Subtype entity. This may not
30037         be true in the future.
30038
30039         * sem_prag.adb (Process_Eliminate_Pragma): Add parameter to capture
30040         pragma location.
30041
30042         * sem_res.adb (Resolve): Specialize msg for function name used in proc
30043         call.
30044
30045 2004-01-05  Ed Falis  <falis@gnat.com>
30046
30047         * g-debuti.adb: Replaced direct boolean operator with short-circuit
30048         form.
30049
30050 2004-01-05  Vincent Celier  <celier@gnat.com>
30051
30052         * bld.adb: Minor comment updates
30053         (Process_Declarative_Items): Correct incorrect name (Index_Name instead
30054         of Item_Name).
30055
30056         * make.adb (Gnatmake): Special process for files to compile/check when
30057         -B is specified. Fail when there are only foreign mains in attribute
30058         Main of the project file and -B is not specified. Do not skip bind/link
30059         steps when -B is specified.
30060
30061         * makeusg.adb: Document new switch -B
30062
30063         * opt.ads (Build_Bind_And_Link_Full_Project): New Boolean flag
30064
30065         * switch-m.adb: (Scan_Make_Switches): Process -B switch
30066
30067         * vms_data.ads: Add new GNAT PRETTY qualifier
30068         /FORM_FEED_AFTER_PRAGMA_PAGE for switch -ff
30069
30070 2004-01-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
30071
30072         * trans.c (tree_transform, case N_Free_Statement): Handle thin pointer
30073         case.
30074
30075         * misc.c (gnat_printable_name): If VERBOSITY is 2, call
30076         Set_Identifier_Casing.
30077
30078         * decl.c (gnat_to_gnu_entity, E_Function): Give error if return type
30079         has size that overflows.
30080
30081 2004-01-05  Gary Dismukes  <dismukes@gnat.com>
30082
30083         * exp_ch4.adb (Expand_Array_Comparison): Add Boolean constant to avoid
30084         -gnatwa warning on static condition.
30085
30086 2004-01-05  Doug Rupp  <rupp@gnat.com>
30087
30088         * link.c: (shared_libgnat_default) [VMS]: Change to STATIC.
30089
30090 2004-01-05  Arnaud Charlet  <charlet@act-europe.fr>
30091
30092         * Makefile.in: Install ali files using INSTALL_DATA_DATE to preserve
30093         all attributes, including read-only attribute.
30094
30095 2004-01-05  Pascal Obry  <obry@gnat.com>
30096
30097         * bindgen.adb (Gen_Object_Files_Options): Generate the new shared
30098         library naming scheme.
30099
30100         * mlib-prj.adb (Build_Library): Generate different names for the static
30101         or dynamic version of the GNAT runtime. This is needed to support the
30102         new shared library naming scheme.
30103         (Process_Binder_File): Add detection of shared library in binder file
30104         based on the new naming scheme.
30105
30106         * gnatlink.adb (Process_Binder_File): Properly detect the new naming
30107         scheme for the shared runtime libraries.
30108
30109         * Makefile.in:
30110         (LIBRARY_VERSION) [VMS]: Convert all . to _ to conform to new naming
30111         scheme.
30112         (install-gnatlib): Do not create symlinks for shared libraries.
30113         (gnatlib-shared-default): Idem.
30114         (gnatlib-shared-dual-win32): New target. Not used for now as the
30115         auto-import feature does not support arrays/records.
30116         (gnatlib-shared-win32): Do not create copy for the shared libraries.
30117         (gnatlib-shared-vms): Fix shared runtime libraries names.
30118
30119         * osint.ads, osint.adb (Shared_Lib): New routine, returns the target
30120         dependent runtime shared library name.
30121
30122 2004-01-05  Vasiliy Fofanov  <fofanov@act-europe.fr>
30123
30124         * osint.adb (Read_Library_Info): Remove bogus check if ALI is older
30125         than the object.
30126
30127 2004-01-05  Ed Schonberg  <schonberg@gnat.com>
30128
30129         * sem_ch4.adb (Analyze_Allocator): Check restriction on dynamic
30130         protected objects when allocator has a subtype indication, not a
30131         qualified expression. Note that qualified expressions may have to be
30132         checked when limited aggregates are implemented.
30133
30134         * sem_prag.adb (Analyze_Pragma, case Import): If enclosing package is
30135         pure, emit warning.
30136         (Analyze_Pragma, case Pure_Function): If enclosing package is pure and
30137         subprogram is imported, remove warning.
30138
30139 2004-01-05  Geert Bosch  <bosch@gnat.com>
30140
30141         * s-poosiz.adb: Update copyright notice.
30142         (Allocate): Use Task_Lock to protect against concurrent access.
30143         (Deallocate): Likewise.
30144
30145 2004-01-05  Joel Brobecker  <brobecker@gnat.com>
30146
30147         * s-stalib.adb (Elab_Final_Code): Add missing year in date inside ???
30148         comment.
30149
30150 2003-12-23  Kelley Cook  <kcook@gcc.gnu.org>
30151
30152         * gnat_ug.texi: Force a CVS commit by updating copyright.
30153         * gnat_ug_vxw.texi: Regenerate.
30154         * gnat_ug_wnt.texi: Regenerate.
30155         * gnat_ug_vms.texi: Regenerate.
30156         * gnat_ug_unx.texi: Regenerate.
30157
30158 2003-12-20  Kazu Hirata  <kazu@cs.umass.edu>
30159
30160         * trans.c: Remove uses of "register" specifier in
30161         declarations of local variables.
30162
30163 2003-12-18  Kelley Cook  <kcook@gcc.gnu.org>
30164
30165         * stamp-xgnatug: New stamp file.
30166         * Make-lang.in (stamp-xgnatug):  New stamp file and comment.
30167         (ada/doctools/xgnatug): Add $(build_exeext).
30168         (ada/gnat_ug_unx.texi, ada/gnat_ug_vwx.texi, ada/gnat_ug_vms.texi
30169         ada/gnat_ug_wnt.texi): Update to depend on stamp-xgnatug.
30170
30171 2003-12-17  Ed Falis  <falis@gnat.com>
30172
30173         * a-elchha.adb (Tailored_Exception_Information): made Info constant to
30174         eliminate warning.
30175
30176         * a-exextr.adb: Add context clause for
30177         Ada.Exceptions.Last_Chance_Handler.
30178
30179 2003-12-17  Sergey Rybin  <rybin@act-europe.fr>
30180
30181         * cstand.adb (Create_Standard): Change the way how the declaration of
30182         the Duration type is created (making it the same way as it is for all
30183         the other standard types).
30184
30185 2003-12-17  Robert Dewar  <dewar@gnat.com>
30186
30187         * s-crtl.ads: Fix header format
30188         Change Pure to Preelaborate
30189
30190 2003-12-17  Ed Schonberg  <schonberg@gnat.com>
30191
30192         * checks.adb (Selected_Length_Checks): Generate an Itype reference for
30193         the expression type only if it is declared in the current unit.
30194
30195         * sem_ch3.adb (Constrain_Index): Handle properly a range whose bounds
30196         are universal and already analyzed, as can occur in constrained
30197         subcomponents that depend on discriminants, when one constraint is a
30198         subtype mark.
30199
30200         * sem_res.adb (Resolve_Type_Conversion): Any arithmetic expression of
30201         type Any_Fixed is legal as the argument of a conversion, if only one
30202         fixed-point type is in context.
30203
30204 2003-12-17  GNAT Script  <nobody@gnat.com>
30205
30206         * Make-lang.in: Makefile automatically updated
30207
30208 2003-12-15  Robert Dewar  <dewar@gnat.com>
30209
30210         * exp_ch6.adb (Expand_Thread_Body): Fix error in picking up default
30211         sec stack size.
30212
30213 2003-12-15  Vincent Celier  <celier@gnat.com>
30214
30215         * gnatchop.adb: (Error_Msg): Do not exit on error for a warning
30216         (Gnatchop): Do not set failure status when reporting the number of
30217         warnings.
30218
30219 2003-12-15  Doug Rupp  <rupp@gnat.com>
30220
30221         * s-ctrl.ads: New file.
30222
30223         * Makefile.rtl (GNAT_RTL_NONTASKING_OBJS): Add s-crtl$(objext).
30224
30225         * Make-lang.in: (GNAT_ADA_OBJS): Add ada/s-crtl.o.
30226         (GNATBIND_OBJS): Add ada/s-crtl.o.
30227
30228         * Makefile.in [VMS]: Clean up ifeq rules.
30229
30230         * gnatlink.adb, 6vcstrea.adb, a-direio.adb, a-sequio.adb,
30231         a-ststio.adb, a-textio.adb, g-os_lib.adb, a-witeio.adb,
30232         g-os_lib.ads, i-cstrea.adb, i-cstrea.ads, s-direio.adb,
30233         s-fileio.adb, s-memcop.ads, s-memory.adb, s-stache.adb,
30234         s-tasdeb.adb: Update copyright.
30235         Import System.CRTL.
30236         Make minor modifications to use System.CRTL declared functions instead
30237         of importing locally.
30238
30239 2003-12-15  GNAT Script  <nobody@gnat.com>
30240
30241         * Make-lang.in: Makefile automatically updated
30242
30243 2003-12-11  Ed Falis  <falis@gnat.com>
30244
30245         * 5zinit.adb: Clean up.
30246
30247         * 5zintman.adb (Notify_Exception): replaced case statement with a call
30248         to __gnat_map_signal, imported from init.c to support
30249         signal -> exception mappings that depend on the vxWorks version.
30250
30251         * init.c:
30252         Created and exported __gnat_map_signal to support signal -> exception
30253         mapping that is dependent on the VxWorks version.
30254         Change mapping of SIGBUS from Program_Error to Storage_Error on VxWorks
30255
30256 2003-12-11  Vasiliy Fofanv  <fofanov@act-europe.fr>
30257
30258         * 5wosinte.ads: Link with -mthreads switch.
30259
30260 2003-12-11  Arnaud Charlet  <charlet@act-europe.fr>
30261
30262         * init.c (__gnat_install_handler [NetBSD]): Set
30263         __gnat_handler_installed, as done on all other platforms.
30264         Remove duplicated code.
30265
30266 2003-12-11  Jerome Guitton  <guitton@act-europe.fr>
30267
30268         * Makefile.in (rts-zfp, rts-ravenscar): Create libgnat.a.
30269
30270 2003-12-11  Thomas Quinot  <quinot@act-europe.fr>
30271
30272         * sinfo.ads: Fix inconsistent example code in comment.
30273
30274 2003-12-11  Robert Dewar  <dewar@gnat.com>
30275
30276         * a-tiinau.adb: Add a couple of comments
30277
30278         * sem_ch3.adb: Minor reformatting
30279
30280         * sem_prag.adb:
30281         Fix bad prototype of Same_Base_Type in body (code reading cleanup)
30282         Minor reformatting throughout
30283
30284 2003-12-11  Ed Schonberg  <schonberg@gnat.com>
30285
30286         * exp_ch7.adb (Establish_Transient_Scope): If the call is within the
30287         bounds of a loop, create a separate block in order to generate proper
30288         cleanup actions to prevent memory leaks.
30289
30290         * sem_res.adb (Resolve_Call): After a call to
30291         Establish_Transient_Scope, the call may be rewritten and relocated, in
30292         which case no further processing is needed.
30293
30294         * sem_util.adb: (Wrong_Type): Refine previous fix.
30295          Fixes ACATS regressions.
30296
30297         PR ada/13353
30298         * sem_prag.adb (Back_End_Cannot_Inline): A renaming_as_body can always
30299         be inlined.
30300
30301 2003-12-08  Jerome Guitton  <guitton@act-europe.fr>
30302
30303         * 5ytiitho.adb, 5zthrini.adb, 5ztiitho.adb, i-vthrea.adb,
30304         i-vthrea.ads, s-tpae65.adb, s-tpae65.ads: Cleanup: Remove a bunch of
30305         obsolete files.
30306
30307         * Makefile.in: (rts-ravenscar): Generate an empty libgnat.a.
30308         (rts-zfp): Ditto.
30309
30310 2003-12-08  Robert Dewar  <dewar@gnat.com>
30311
30312         * 7sintman.adb: Minor reformatting
30313
30314         * bindgen.adb: Configurable_Run_Time mode no longer suppresses the
30315         standard linker options to get standard libraries linked. We now plan
30316         to provide dummy versions of these libraries to match the appropriate
30317         configurable run-time (e.g. if a library is not needed at all, provide
30318         a dummy empty library).
30319
30320         * targparm.ads: Configurable_Run_Time mode no longer affects linker
30321         options (-L parameters and standard libraries). What we plan to do is
30322         to provide dummy libraries where the libraries are not required.
30323
30324         * gnatbind.adb: Minor comment improvement
30325
30326 2003-12-08  Javier Miranda  <miranda@gnat.com>
30327
30328         * exp_aggr.adb (Build_Record_Aggr_Code): Do not remove the expanded
30329         aggregate in the parent. Otherwise constants with limited aggregates
30330         are not supported. Add new formal to pass the component type (Ctype).
30331         It is required to call the corresponding IP subprogram in case of
30332         default initialized components.
30333         (Gen_Assign): In case of default-initialized component, generate a
30334         call to the IP subprogram associated with the component.
30335         (Build_Record_Aggr_Code): Remove the aggregate from the parent in case
30336         of aggregate with default initialized components.
30337         (Has_Default_Init_Comps): Improve implementation to recursively check
30338         all the present expressions.
30339
30340         * exp_ch3.ads, exp_ch3.adb (Build_Initialization_Call): Add new formal
30341         to indicate that the initialization call corresponds to a
30342         default-initialized component of an aggregate.
30343         In case of default initialized aggregate with tasks this parameter is
30344         used to generate a null string (this is just a workaround that must be
30345         improved later). In case of discriminants, this parameter is used to
30346         generate a selected component node that gives access to the discriminant
30347         value.
30348
30349         * exp_ch9.ads, exp_ch9.adb (Build_Task_Allocate_Block_With_Stmts): New
30350         subprogram, based on Build_Task_Allocate_Block, but adapted to expand
30351         allocated aggregates with default-initialized components.
30352
30353         * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Improve error message if
30354         the box notation is used in positional aggregates.
30355
30356 2003-12-08  Samuel Tardieu  <tardieu@act-europe.fr>
30357
30358         * lib.ads: Fix typo in comment
30359
30360 2003-12-08  Vincent Celier  <celier@gnat.com>
30361
30362         * prj.adb (Project_Empty): New component Unkept_Comments
30363         (Scan): Remove procedure; moved to Prj.Err.
30364
30365         * prj.ads (Project_Data): New Boolean component Unkept_Comments
30366         (Scan): Remove procedure; moved to Prj.Err.
30367
30368         * prj-dect.adb: Manage comments for the different declarations.
30369
30370         * prj-part.adb (With_Record): New component Node
30371         (Parse): New Boolean parameter Store_Comments, defaulted to False.
30372         Set the scanner to return ends of line and comments as tokens, if
30373         Store_Comments is True.
30374         (Pre_Parse_Context_Clause): Create the N_With_Clause nodes so that
30375         comments are associated with these nodes. Store the node IDs in the
30376         With_Records.
30377         (Post_Parse_Context_Clause): Use the N_With_Clause nodes stored in the
30378         With_Records.
30379         (Parse_Single_Project): Call Pre_Parse_Context_Clause before creating
30380         the N_Project node. Call Tree.Save and Tree.Reset before scanning the
30381         current project. Call Tree.Restore afterwards. Set the various nodes
30382         for comment storage (Next_End, End_Of_Line, Previous_Line,
30383         Previous_End).
30384
30385         * prj-part.ads (Parse): New Boolean parameter Store_Comments,
30386         defaulted to False.
30387
30388         * prj-pp.adb (Write_String): New Boolean parameter Truncated, defaulted
30389         to False. When Truncated is True, truncate the string, never go to the
30390         next line.
30391         (Write_End_Of_Line_Comment): New procedure
30392         (Print): Process comments for nodes N_With_Clause,
30393         N_Package_Declaration, N_String_Type_Declaration,
30394         N_Attribute_Declaration, N_Typed_Variable_Declaration,
30395         N_Variable_Declaration, N_Case_Construction, N_Case_Item.
30396         Process nodes N_Comment.
30397
30398         * prj-tree.ads, prj-tree.adb (Default_Project_Node): If it is a node
30399         without comments and there are some comments, set the flag
30400         Unkept_Comments to True.
30401         (Scan): If there are comments, set the flag Unkept_Comments to True and
30402         clear the comments.
30403         (Project_Node_Kind): Add enum values N_Comment_Zones, N_Comment
30404         (Next_End_Nodes: New table
30405         (Comment_Zones_Of): New function
30406         (Scan): New procedure; moved from Prj. Accumulate comments in the
30407         Comments table and set end of line comments, comments after, after end
30408         and before end.
30409         (Add_Comments): New procedure
30410         (Save, Restore, Seset_State): New procedures
30411         (There_Are_Unkept_Comments): New function
30412         (Set_Previous_Line_Node, Set_Previous_End_Node): New procedures
30413         (Set_End_Of_Line, Set_Next_End_Node, Remove_Next_End_Node): New
30414         procedures.
30415         (First_Comment_After, First_Comment_After_End): New functions
30416         (First_Comment_Before, First_Comment_Before_End): New functions
30417         (Next_Comment): New function
30418         (End_Of_Line_Comment, Follows_Empty_Line,
30419         Is_Followed_By_Empty_Line): New functions
30420         (Set_First_Comment_After, Set_First_Comment_After_End): New procedures
30421         (Set_First_Comment_Before, Set_First_Comment_Before_End): New procedures
30422         (Set_Next_Comment): New procedure
30423         (Default_Project_Node): Associate comment before if the node can store
30424         comments.
30425
30426         * scans.ads (Token_Type): New enumeration value Tok_Comment
30427         (Comment_Id): New global variable
30428
30429         * scng.ads, scng.adb (Comment_Is_Token): New Boolean global variable,
30430         defaulted to False.
30431         (Scan): Store position of start of comment. If comments are tokens, set
30432         Comment_Id and set Token to Tok_Comment when scanning a comment.
30433         (Set_Comment_As_Token): New procedure
30434
30435         * sinput-p.adb: Update Copyright notice
30436         (Source_File_Is_Subunit): Call Prj.Err.Scanner.Scan instead of Prj.Scan
30437         that no longer exists.
30438
30439 2003-12-08  Javier Miranda  <miranda@gnat.com>
30440
30441         * sem_aggr.adb: Add dependence on Exp_Tss package
30442         Correct typo in comment
30443         (Resolve_Aggregate): In case of array aggregates set the estimated
30444         type of the aggregate before calling resolve. This is needed to know
30445         the name of the corresponding IP in case of limited array aggregates.
30446         (Resolve_Array_Aggregate): Delay the resolution to the expansion phase
30447         in case of default initialized array components.
30448
30449         * sem_ch12.adb (Analyze_Formal_Object_Declaration): Allow limited
30450         types. Required to give support to limited aggregates in generic
30451         formals.
30452
30453 2003-12-08  Ed Schonberg  <schonberg@gnat.com>
30454
30455         * sem_ch3.adb (Check_Initialization): For legality purposes, an
30456         inlined body functions like an instantiation.
30457         (Decimal_Fixed_Point_Declaration): Do not set kind of first subtype
30458         until bounds are analyzed, to diagnose premature use of type.
30459
30460         * sem_util.adb (Wrong_Type): Improve error message when the type of
30461         the expression is used prematurely.
30462
30463 2003-12-08  GNAT Script  <nobody@gnat.com>
30464
30465         * Make-lang.in: Makefile automatically updated
30466
30467 2003-12-08  Arnaud Charlet  <charlet@act-europe.fr>
30468
30469         * sinfo.h, einfo.h, nmake.ads, nmake.adb, treeprs.ads: Removed, since
30470         they are automatically generated by Make-lang.in and cause nothing but
30471         maintenance troubles.
30472
30473 2003-12-05  Thomas Quinot  <quinot@act-europe.fr>
30474
30475         * 3ssoliop.ads: Fix comment (this is the Solaris, not the UnixWare,
30476         version of this unit).
30477
30478 2003-12-05  Olivier Hainque  <hainque@act-europe.fr>
30479
30480         * 53osinte.ads, 54osinte.ads, 55osinte.ads, 56osinte.ads, 5bosinte.ads,
30481         5cosinte.ads, 5hosinte.ads, 5iosinte.ads, 5losinte.ads,
30482         5tosinte.ads: Define the SA_SIGINFO constant, to allow references from
30483         the body of System.Interrupt_Management common to several targets.
30484         Update copyright notice when appropriate.
30485
30486         * 52osinte.ads, 5posinte.ads: Define a dummy value for the SA_SIGINFO
30487         constant.
30488
30489         * 7sintman.adb (elaboration): Set SA_SIGINFO in the sigaction flags,
30490         to ensure that the kernel fills in the interrupted context structure
30491         before calling a signal handler, which is necessary to be able to
30492         unwind past it. Update the copyright notice.
30493
30494 2003-12-05  Jerome Guitton  <guitton@act-europe.fr>
30495
30496         * a-elchha.ads: New file.
30497
30498         * a-elchha.adb: New default last chance handler. Contents taken from
30499         Ada.Exceptions.Exception_Traces.Unhandled_Exception_Terminate.
30500
30501         * a-exextr.adb (Unhandled_Exception_Terminate): Most of this routine
30502         is moved to a-elchha.adb to provide a target-independent default last
30503         chance handler.
30504
30505         * Makefile.rtl: Add a-elchha.o
30506
30507         * Make-lang.in (GNAT_ADA_OBJS, GNATBIND_OBJS): Add a-elchha.o.
30508
30509 2003-12-05  Ed Schonberg  <schonberg@gnat.com>
30510
30511         * exp_ch6.adb (Expand_Call): If the subprogram is inlined and is
30512         declared in an instance, do not inline the call if the instance is not
30513         frozen yet, to prevent order of elaboration problems.
30514
30515         * sem_prag.adb: Add comments for previous fix.
30516
30517 2003-12-05  Samuel Tardieu  <tardieu@act-europe.fr>
30518
30519         * g-table.adb: Use the right variable in Set_Item.
30520         Update copyright notice.
30521
30522 2003-12-05  Arnaud Charlet  <charlet@act-europe.fr>
30523
30524         * Makefile.in: Remove unused rules.
30525
30526 2003-12-05  Vincent Celier  <celier@gnat.com>
30527
30528         * switch-c.adb (Scan_Front_End_Switches): Remove processing of
30529         -nostdlib. Not needed here after all.
30530
30531 2003-12-03  Thomas Quinot  <quinot@act-europe.fr>
30532
30533         PR ada/11724
30534         * adaint.h, adaint.c, g-os_lib.ads:
30535         Do not assume that the offset argument to lseek(2) is a 32 bit integer,
30536         on some platforms (including FreeBSD), it is a 64 bit value.
30537         Introduce a __gnat_lseek wrapper in adaint.c to allow for portability.
30538
30539 2003-12-03  Arnaud Charlet  <charlet@act-europe.fr>
30540
30541         * gnatvsn.ads (Library_Version): Now contain only the relevant
30542         version info.
30543         (Verbose_Library_Version): New constant.
30544
30545         * g-spipat.adb, g-awk.adb, g-debpoo.adb,
30546         g-memdum.adb, g-thread.adb, s-geveop.adb, s-interr.adb,
30547         s-taskin.adb, s-tassta.adb: Make code compile with -gnatwa.
30548
30549         * gnatlbr.adb: Clean up: replace Library_Version by
30550         Verbose_Library_Version.
30551
30552         * make.adb, lib-writ.adb, exp_attr.adb:
30553         Clean up: replace Library_Version by Verbose_Library_Version.
30554
30555         * 5lintman.adb: Removed.
30556
30557         * Makefile.in:
30558         Update and simplify computation of LIBRARY_VERSION.
30559         Fix computation of GSMATCH_VERSION.
30560         5lintman.adb is no longer used: replaced by 7sintman.adb.
30561
30562 2003-12-03  Robert Dewar  <dewar@gnat.com>
30563
30564         * exp_ch5.adb:
30565         (Possible_Bit_Aligned_Component): Maybe_Bit_Aligned_Large_Component new
30566         name. Modified to consider small non-bit-packed arrays as troublesome
30567         and in need of component-by-component assigment expansion.
30568
30569 2003-12-03  Vincent Celier  <celier@gnat.com>
30570
30571         * lang-specs.h: Process nostdlib as nostdinc
30572
30573         * back_end.adb: Update Copyright notice
30574         (Scan_Compiler_Arguments): Process -nostdlib directly.
30575
30576 2003-12-03  Jose Ruiz  <ruiz@act-europe.fr>
30577
30578         * Makefile.in:
30579         When defining LIBGNAT_TARGET_PAIRS for bare board targets, remove the
30580         redundant inclusion of EXTRA_HIE_NONE_TARGET_PAIRS, which is always
30581         included in HIE_NONE_TARGET_PAIRS.
30582
30583 2003-12-03  Ed Schonberg  <schonberg@gnat.com>
30584
30585         * sem_attr.adb:
30586         (Legal_Formal_Attribute): Attribute is legal in an inlined body, as it
30587         is legal in an instance, because legality is cheched in the template.
30588
30589         * sem_prag.adb:
30590         (Analyze_Pragma, case Warnings): In an inlined body, the pragma may be
30591         appplied to an unchecked conversion of a formal parameter.
30592
30593         * sem_warn.adb:
30594         (Output_Unreferenced_Messages): Suppress "not read" warnings on imported
30595         variables.
30596
30597 2003-12-03  Olivier Hainque  <hainque@act-europe.fr>
30598
30599         * tb-alvms.c (unwind_regular_code, unwind_kernel_handler): New
30600         routines. The second one is new functionality to deal with backtracing
30601         through signal handlers.
30602         (unwind): Split into the two separate subroutines above.
30603         Update the documentation, and deal properly with sizeof (REG) different
30604         from sizeof (void*).
30605
30606 2003-12-01  Nicolas Setton  <setton@act-europe.fr>
30607
30608         * a-except.adb (Raise_Current_Excep): Add a pragma Inspection_Point,
30609         so that the debugger can reliably access the value of the parameter,
30610         and therefore is able to display the exception name when an exception
30611         breakpoint is reached.
30612
30613 2003-12-01  Thomas Quinot  <quinot@act-europe.fr>
30614
30615         * fmap.adb: Fix typo in warning message.
30616
30617         * g-socket.ads, g-socket.adb: Make Free a visible instance of
30618         Ada.Unchecked_Deallocation (no need to wrap it in a subprogram).
30619
30620 2003-12-01  Vincent Celier  <celier@gnat.com>
30621
30622         * mlib-prj.adb (Build_Library.Process): Do not check a withed unit if
30623         ther is no Afile.
30624         (Build_Library): Get the switches only if Default_Switches is declared
30625         in package Binder.
30626
30627 2003-12-01  Ed Schonberg  <schonberg@gnat.com>
30628
30629         * exp_ch6.adb (Expand_Actuals): When applying validity checks to
30630         actuals that are indexed components, reanalyze actual to ensure that
30631         packed array references are properly expanded.
30632
30633         * sem_ch5.adb (Diagnose_Non_Variable_Lhs): Add special case for
30634         attempted assignment to a discriminant.
30635
30636 2003-12-01  Robert Dewar  <dewar@gnat.com>
30637
30638         * rtsfind.adb, exp_ch4.adb, s-exnint.ads, s-exnint.adb: Minor
30639         reformatting.
30640
30641         * switch-c.adb: Minor reformatting of comments
30642
30643 2003-12-01  Arnaud Charlet  <charlet@act-europe.fr>
30644
30645         * Makefile.in: Clean ups.
30646
30647 2003-12-01  GNAT Script  <nobody@gnat.com>
30648
30649         * Make-lang.in: Makefile automatically updated
30650
30651 2003-12-01  Arnaud Charlet  <charlet@act-europe.fr>
30652
30653         * 5wsystem.ads: Disable zero cost exception, not ready yet.
30654
30655 2003-11-29  Ulrich Weigand  <uweigand@de.ibm.com>
30656
30657         * Make-lang.in (nmake.ads): Add dependency on ada/nmake.adb
30658         to force serialization.
30659
30660 2003-11-26  Thomas Quinot  <quinot@act-europe.fr>
30661
30662         * g-socket.ads, g-socket.adb:
30663         Clarify documentation of function Stream. Introduce a Free procedure
30664         to release the returned Stream once it becomes unused.
30665
30666         * 5asystem.ads: For Alpha Tru64, enable ZCX by default.
30667
30668 2003-11-26  Arnaud Charlet  <charlet@act-europe.fr>
30669
30670         (Cond_Timed_Wait): Introduce new constant Time_Out_Max,
30671         since NT 4 cannot handle timeout values that are too large,
30672         e.g. DWORD'Last - 1.
30673
30674 2003-11-26  Ed Schonberg  <schonberg@gnat.com>
30675
30676         * exp_ch4.adb:
30677         (Expand_N_Slice): Recognize all cases of slices that appear as actuals
30678         in procedure calls and whose expansion must be deferred.
30679
30680         * exp_ch6.adb (Add_Call_By_Copy_Node): Remove previous fix. Proper fix
30681         is in exp_ch4.
30682
30683         * sem_ch3.adb:
30684         (Build_Derived_Array_Type): Create operator for unconstrained type
30685         if ancestor is unconstrained.
30686
30687 2003-11-26  Vincent Celier  <celier@gnat.com>
30688
30689         * make.adb (Project_Object_Directory): New global variable
30690         (Change_To_Object_Directory): New procedure
30691         (Collect_Arguments_And_Compile): Call Change_To_Object_Directory instead
30692         of Change_Dir directly. Do not change working directory to object
30693         directory of main project after each compilation.
30694         (Gnatmake): Use Change_To_Object_Directory instead of Change_Dir
30695         directly.
30696         Change to object directory of main project before binding step.
30697         (Initialize): Initialize Project_Object_Directory to No_Project
30698
30699         * mlib-prj.adb:
30700         (Build_Library): Take into account Builder'Default_Switches ("Ada") when
30701         binding a Stand-Alone Library.
30702
30703         * output.adb: Update Copyright notice
30704         (Write_Char): Output buffer when full
30705
30706 2003-11-26  Robert Dewar  <dewar@gnat.com>
30707
30708         * sem_ch13.adb: (Check_Size): Reset size if size is too small
30709
30710         * sem_ch13.ads:
30711         (Check_Size): Fix documentation to include bit-packed array case
30712
30713         * sem_res.adb: Implement restriction No_Direct_Boolean_Operators
30714
30715         * s-rident.ads: Put No_Direct_Boolean_Operators in proper order
30716
30717         * s-rident.ads: Add new restriction No_Direct_Boolean_Operators
30718
30719 2003-11-24  Arnaud Charlet <charlet@act-europe.fr>
30720
30721         PR ada/13142
30722         * utils.c (init_gigi_decls): Change name of built-in setjmp to
30723         __builtin_setjmp, since this is apparently needed by recent
30724         non Ada changes.
30725
30726 2003-11-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
30727
30728         * adadecode.c: Only include ctype.h if not IN_GCC.
30729         (__gnat_decode): Use ISDIGIT from safe-ctype.h.
30730
30731 2003-11-24  Jose Ruiz  <ruiz@act-europe.fr>
30732
30733         * Makefile.in:
30734         Use 5zintman.ads for VxWorks targets. This file avoid confusion between
30735         signals and interrupts.
30736
30737         * 5zintman.ads: New File.
30738
30739         * 5zintman.adb: Replace Exception_Interrupts by Exception_Signals, and
30740         add exception signals to the set of unmasked signals.
30741
30742         * 5ztaprop.adb:
30743         Use Abort_Task_Signal instead of Abort_Task_Interrupt to avoid confusion
30744         between signals and interrupts.
30745         Add to Unblocked_Signal_Mask the set of signals that are in
30746         Keep_Unmasked.
30747
30748         * 7sinmaop.adb:
30749         Adding a check to see whether the Interrupt_ID we want to unmask is in
30750         the range of Keep_Unmasked (in procedure Interrupt_Self_Process). The
30751         reason is that the index type of the Keep_Unmasked array is not always
30752         Interrupt_ID; it may be a subtype of Interrupt_ID.
30753
30754 2003-11-24  Gary Dismukes  <dismukes@gnat.com>
30755
30756         * exp_util.adb:
30757         (Remove_Side_Effects): Condition constantness of object created for a
30758          an unchecked type conversion on the constantness of the expression
30759          to ensure the correct value for 'Constrained when passing components
30760          of view-converted class-wide objects.
30761
30762 2003-11-24  Robert Dewar  <dewar@gnat.com>
30763
30764         * par-load.adb (Load): Improve handling of misspelled and missing units
30765         Removes several cases of compilation abandoned messages
30766
30767         * lib.adb: (Remove_Unit): New procedure
30768
30769         * lib.ads: (Remove_Unit): New procedure
30770
30771         * lib-load.adb: Minor reformatting
30772
30773 2003-11-24  Vincent Celier  <celier@gnat.com>
30774
30775         * make.adb:
30776         (Gnatmake, Initialize): Call Usage instead of Makeusg directly
30777         (Marking_Label): Label to mark processed source files. Incremented for
30778         each executable.
30779         (Gnatmake): Increase Marking_Labet for each executable
30780         (Is_Marked): Compare against marking label
30781         (Mark): Mark with marking label
30782
30783 2003-11-24  Jerome Guitton  <guitton@act-europe.fr>
30784
30785         * s-thread.ads:
30786         Move the declaration of the TSD for System.Threads to System.Soft_Links.
30787         Add some comments.
30788
30789         * Makefile.in: Added target pair for s-thread.adb for cert runtime.
30790         (rts-cert): build a single relocatable object for the run-time lib.
30791         Fix perms.
30792
30793 2003-11-24  Vasiliy Fofanov  <fofanov@act-europe.fr>
30794
30795         * Make-lang.in:
30796         Use gnatls rather than gcc to obtain the location of GNAT RTL for
30797         crosstools build.
30798
30799 2003-11-24  Sergey Rybin  <rybin@act-europe.fr>
30800
30801         * opt.adb (Tree_Write): Gnat_Version_String is now a function, so we
30802         can not use it as before (that is, as a variable) when dumping it into
30803         the tree file. Add a local variable to store the result of this
30804         function and to be used as the string to be written into the tree.
30805
30806         * scn.adb (Initialize_Scanner): Add comments explaining the recent
30807         changes.
30808
30809         * sinput.adb (Source_First, Source_Last): In case of
30810         Internal_Source_File, replace returning attributes of
30811         Internal_Source_Ptr (which is wrong) with returning attributes of
30812         Internal_Source.
30813
30814 2003-11-24  Ed Schonberg  <schonberg@gnat.com>
30815
30816         * sem_ch3.adb:
30817         (New_Concatenation_Op): Proper name for New_Binary_Operator, only
30818         used for implicit concatenation operators.
30819         Code cleanup.
30820
30821         * sem_elab.adb:
30822         (Check_Elab_Call): Set No_Elaboration_Check appropriately on calls in
30823         task bodies that are in the scope of a Suppress pragma.
30824         (Check_A Call): Use the flag to prevent spurious elaboration checks.
30825
30826         * sinfo.ads, sinfo.adb:
30827         New flag No_Elaboration_Check on function/procedure calls, to properly
30828         suppress checks on calls in task bodies that are within a local suppress
30829         pragma.
30830
30831         * exp_ch4.adb:
30832         (Expand_Concatenate_Other): Use the proper integer type for the
30833         expression for the upper bound, to avoid universal_integer computations
30834         when possible.
30835
30836 2003-11-21  Kelley Cook  <kcook@gcc.gnu.org>
30837
30838         * .cvsignore: Delete.
30839
30840 2003-11-21  Andreas Schwab  <schwab@suse.de>
30841
30842         * 55system.ads: Set ZCX_By_Default and GCC_ZCX_Support to True.
30843
30844 2003-11-21  Vasiliy Fofanov  <fofanov@act-europe.fr>
30845
30846         * 5wsystem.ads: Enable zero cost exception.
30847
30848 2003-11-21  Jerome Guitton  <guitton@act-europe.fr>
30849
30850         * 5ztiitho.adb: Remove an unreferenced variable.
30851
30852 2003-11-21  Thomas Quinot  <quinot@act-europe.fr>
30853
30854         * adaint.c: For FreeBSD, use mkstemp.
30855
30856 2003-11-21  Arnaud Charlet  <charlet@act-europe.fr>
30857
30858         * gnatlbr.adb: Now reference Gnat_Static_Version_String.
30859
30860 2003-11-21  Robert Dewar  <dewar@gnat.com>
30861
30862         * bld.adb: Remove useless USE of gnatvsn
30863
30864         * gnatchop.adb: Minor reformatting
30865         Clean up version handling to be more consistent
30866
30867         * gnatxref.adb: Minor reformatting
30868
30869         * gprcmd.adb: Minor reformatting
30870         Fix output of copyright to be more consistent with other tools
30871
30872 2003-11-21  Vincent Celier  <celier@gnat.com>
30873
30874         * make.adb (Scan_Make_Args): Do not transmit --RTS= to gnatlink
30875
30876 2003-11-21  Sergey Rybin  <rybin@act-europe.fr>
30877
30878         * atree.adb (Initialize): Add initializations for global variables
30879         used in New_Copy_Tree.
30880
30881         * cstand.adb (Create_Standard): Add call to Initialize_Scanner (with
30882         Internal_Source_File as the actual).
30883         Put the set of statements creating Any_Character before the set of
30884         statements creating Any_Array to have Any_Character fully initialized
30885         when it is used in creating Any_Array.
30886
30887         * scn.adb (Initialize_Scanner): Do not set Comes_From_Source ON and do
30888         not call Scan in case if the actual is Internal_Source_File
30889         Add 2003 to copyright note.
30890
30891         * sinput.adb (Source_First, Source_Last, Source_Text): Add code for
30892         processing Internal_Source_File.
30893
30894         * types.ads: Add the constant Internal_Source_File representing the
30895         source buffer for artificial source-code-like strings created within
30896         the compiler (the definition of Source_File_Index is changed).
30897
30898 2003-11-20  Arnaud Charlet  <charlet@act-europe.fr>
30899
30900         * 35soccon.ads, 45intnam.ads, 55osinte.adb, 55osinte.ads,
30901         56system.ads: New file, FreeBSD version.
30902
30903 2003-11-20  Joseph S. Myers  <jsm@polyomino.org.uk>
30904
30905         * Make-lang.in (ada.extraclean): Delete.
30906
30907 2003-11-19  Arnaud Charlet  <charlet@act-europe.fr>
30908
30909         * gnatmem.adb: Clean up verbose output.
30910
30911         * gprcmd.adb: Change copyright to FSF.
30912
30913 2003-11-19  Vincent Celier  <celier@gnat.com>
30914
30915         * symbols.adb: (Initialize): New parameters Reference, Symbol_Policy
30916         and Version (ignored).
30917
30918         * symbols.ads: (Policy): New type
30919         (Initialize): New parameter Reference, Symbol_Policy and
30920         Library_Version.
30921         Remove parameter Force.
30922         Minor reformatting.
30923
30924         * snames.ads, snames.adbadb: New standard names
30925         Library_Reference_Symbol_File and Library_Symbol_Policy
30926
30927         * mlib-prj.adb:
30928         (Build_Library): Call Build_Dinamic_Library with the Symbol_Data of the
30929         project.
30930
30931         * mlib-tgt.adb:
30932         (Build_Dynamic_Library): New parameter Symbol_Data (ignored)
30933
30934         * mlib-tgt.ads: (Build_Dynamic_Library): New parameter Symbol_Data
30935
30936         * prj.adb: (Project_Empty): New component Symbol_Data
30937
30938         * prj.ads: (Policy, Symbol_Record): New types
30939         (Project_Data): New component Symbol_Data
30940
30941         * prj-attr.adb:
30942         New attributes Library_Symbol_File, Library_Symbol_Policy and
30943         Library_Reference_Symbol_File.
30944
30945         * prj-nmsc.adb:
30946         (Ada_Check): When project is a Stand-Alone library project, process
30947         attribute Library_Symbol_File, Library_Symbol_Policy and
30948         Library_Reference_Symbol_File.
30949
30950         * 5aml-tgt.adb, 5bml-tgt.adb, 5gml-tgt.adb, 5hml-tgt.adb,
30951         5wml-tgt.adb, 5zml-tgt.adb, 5lml-tgt.adb,
30952         5sml-tgt.adb (Build_Dynamic_Library): New parameter
30953         Symbol_Data (ignored).
30954
30955         * 5vml-tgt.adb (VMS_Options): Remove --for-linker=gsmatch=equal,1,0
30956         (Build_Dynamic_Library): New parameter Symbol_Data. New internal
30957         functions Option_File_Name and Version_String. Set new options of
30958         gnatsym related to symbol file, symbol policy and reference symbol
30959         file.
30960
30961         * 5vsymbol.adb:
30962         Extensive modifications to take into account the reference symbol file,
30963         the symbol policy, the library version and to put in the symbol file the
30964         minor and major IDs.
30965
30966         * bld.adb (Process_Declarative_Items): Put second argument of
30967         gprcmd to_absolute between single quotes, to avoid problems with
30968         Windows.
30969
30970         * bld-io.adb: Update Copyright notice.
30971         (Flush): Remove last character of a line, if it is a back slash, to
30972         avoid make problems.
30973
30974         * gnatsym.adb:
30975         Implement new scheme with reference symbol file and symbol policy.
30976
30977         * g-os_lib.ads: (Is_Directory): Clarify comment
30978
30979 2003-11-19  Robert Dewar  <dewar@gnat.com>
30980
30981         * atree.adb: Move New_Copy_Tree global variables to head of package
30982
30983         * errout.adb: Minor reformatting
30984
30985 2003-11-19  Javier Miranda  <miranda@gnat.com>
30986
30987         * sem_ch4.adb: (Diagnose_Call): Improve error message.
30988         Add reference to Ada0Y (AI-50217)
30989
30990         * sem_ch6.adb, sem_ch8.adb, sem_type.adb,
30991         sem_util.adb: Add reference to AI-50217
30992
30993         * sinfo.ads: (N_With_Clause): Document fields referred to AI-50217
30994
30995         * sprint.adb: Add reference to Ada0Y (AI-50217, AI-287)
30996
30997         * sem_aggr.adb: Complete documentation of AI-287 changes
30998
30999         * par-ch4.adb: Document previous changes.
31000
31001         * lib-load.adb, lib-writ.adb, einfo.ads, par-ch10.adb,
31002         sem_cat.adb, sem_ch3.adb, sem_ch10.adb, sem_ch12.adb: Add references to
31003         Ada0Y (AI-50217)
31004
31005         * exp_aggr.adb: Add references to AI-287 in previous changes
31006
31007 2003-11-19  Ed Schonberg  <schonberg@gnat.com>
31008
31009         * exp_ch6.adb:
31010         (Add_Call_By_Copy_Node): Do not original node of rewritten expression
31011         in the rewriting is the result of an inlined call.
31012
31013         * exp_ch6.adb (Add_Call_By_Copy_Node): If actual for (in-)out
31014         parameter is a type conversion, use original node to construct the
31015         post-call assignment, because expression may have been rewritten, e.g.
31016         if it is a packed array.
31017
31018         * sem_attr.adb:
31019         (Resolve_Attribute, case 'Constrained): Attribute is legal in an inlined
31020         body, just as it is in an instance.
31021         Categorization routines
31022
31023         * sem_ch12.adb (Analyze_Association, Instantiate_Formal_Subprogram,
31024         Instantiate_Object): Set proper sloc reference for message on missing
31025         actual.
31026
31027 2003-11-19  Thomas Quinot  <quinot@act-europe.fr>
31028
31029         * Makefile.in: Add FreeBSD libgnat pairs.
31030
31031         * usage.adb: Fix typo in usage message.
31032
31033 2003-11-19  Jerome Guitton  <guitton@act-europe.fr>
31034
31035         * Makefile.in: On powerpc-wrs-vxworksae: Add s-thread.ad?,
31036         s-thrini.ad? and s-tiitho.adb to the full runtime, to support the
31037         pragma Thread_Body.
31038         Remove i-vthrea.ad? and s-tpae65.ad?, not needed anymore.
31039
31040         * s-thread.adb: This file is now a dummy implementation of
31041         System.Thread.
31042
31043 2003-11-19  Sergey Rybin  <rybin@act-europe.fr>
31044
31045         * rtsfind.adb (Initialize): Add initialization for RTE_Is_Available
31046
31047 2003-11-19  Emmanuel Briot  <briot@act-europe.fr>
31048
31049         * xref_lib.adb (Parse_Identifier_Info): Add handling of generic
31050         instanciation references in the parent type description.
31051
31052 2003-11-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
31053
31054         * ada-tree.def: (ALLOCATE_EXPR): Class is "2", not "s".
31055
31056         * decl.c (gnat_to_gnu_entity, case E_Floating_Point_Subtype): Set
31057         TYPE_PRECISION directly from esize.
31058
31059 2003-11-18  Thomas Quinot  <quinot@act-europe.fr>
31060
31061         * cstreams.c:
31062         Use realpath(3) on FreeBSD. Fix typo in comment while we are at it.
31063
31064         * init.c: Initialization routines for FreeBSD
31065
31066         * link.c: Link info for FreeBSD
31067
31068         * sysdep.c: Add the case of FreeBSD
31069
31070 2003-11-17  Jerome Guitton  <guitton@act-europe.fr>
31071
31072         * 5zthrini.adb: Remove the call to Init_RTS at elaboration, as it is
31073         already called in System.Threads.
31074
31075         * 5ztiitho.adb (Initialize_Task_Hooks): Remove the registration of the
31076         environment task, as it has been moved to System.Threads.Initialization.
31077
31078 2003-11-17  Arnaud Charlet  <charlet@act-europe.fr>
31079
31080         * adaint.c (__gnatlib_install_locks): Only reference
31081         __gnat_install_locks on VMS, since other platforms can avoid using
31082         --enable-threads=gnat
31083
31084 2003-11-17  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
31085
31086         * ada-tree.h: (TYPE_IS_PACKED_ARRAY_TYPE_P): New macro.
31087
31088         * decl.c (gnat_to_gnu_entity, case E_Array_Subtype): Set
31089         TYPE_PACKED_ARRAY_TYPE_P.
31090         (validate_size): Do not verify size if TYPE_IS_PACKED_ARRAY_TYPE_P.
31091
31092         Part of PR ada/12806
31093         * utils.c (float_type_for_precision): Renamed from float_type_for_size.
31094         Use GET_MODE_PRECISION instead of GET_MODE_BITSIZE.
31095
31096 2003-11-17  Vincent Celier  <celier@gnat.com>
31097
31098         * gnatchop.adb (Error_Msg): New Boolean parameter Warning, defaulted
31099         to False.
31100         Do not set exit status to Failure when Warning is True.
31101         (Gnatchop): Make errors "no compilation units found" and
31102         "no source files written" warnings only.
31103
31104         * make.adb (Gnatmake): When using a project file, set
31105         Look_In_Primary_Dir to False.
31106         (Configuration_Pragmas_Switch): Check for Global_Configuration_Pragmas
31107         and Local_Configuration_Pragmas in the project where they are declared
31108         not an extending project which might have inherited them.
31109
31110         * osint.adb (Locate_File): If Name is already an absolute path, do not
31111         look for a directory.
31112
31113         * par-ch10.adb (P_Compilation_Unit): If source contains no token, and
31114         -gnats (Check_Syntax) is used, issue only a warning, not an error.
31115
31116         * prj.adb (Register_Default_Naming_Scheme): Add new component Project
31117         in objects of type Variable_Value.
31118
31119         * prj.ads: (Variable_Value): New component Project
31120
31121         * prj-nmsc.adb (Ada_Check.Warn_If_Not_Sources): No warning if source
31122         is in a project extended by Project.
31123
31124         * prj-proc.adb (Add_Attributes): New parameter Project. Set component
31125         Project of Variable_Values to this new parameter value.
31126         (Expression): Set component Project of Variable_Values.
31127         (Process_Declarative_Items): Call Add_Attributes with parameter Project.
31128         Set the component Project in array elements.
31129
31130 2003-11-17  Sergey Rybin  <rybin@act-europe.fr>
31131
31132         * errout.adb: (Initialize): Add initialization for error nodes.
31133
31134         * sem_ch12.adb (Initialize): Add missing initializations for
31135         Exchanged_Views and Hidden_Entities.
31136
31137 2003-11-17  Ed Schonberg  <schonberg@gnat.com>
31138
31139         * sem_ch12.adb (Copy_Generic_Node): Preserve entity when copying an
31140         already instantiated tree for use in subsequent inlining.
31141         (Analyze_Associations, Instantiate_Formal_Subprogram,
31142         Instantiate_Object): improve error message for mismatch in
31143         instantiations.
31144
31145         * sem_ch6.adb (Build_Body_To_Inline): Major cleanup to handle
31146         instantiations of subprograms declared in instances.
31147
31148 2003-11-17  Javier Miranda  <miranda@gnat.com>
31149
31150         * sem_ch4.adb (Analyze_Allocator): Previous modification must be
31151         executed only under the Extensions_Allowed flag.
31152
31153 2003-11-17  Robert Dewar  <dewar@gnat.com>
31154
31155         * a-exexda.adb (Address_Image): Fix documentation to indicate leading
31156         zeroes suppressed.
31157         (Address_Image): Fix bug of returning 0x instead of 0x0
31158         Minor reformatting (function specs).
31159
31160         * einfo.ads: Minor fix for documentation of Is_Bit_Packed_Array
31161         (missed case of 33-63)
31162
31163         * freeze.adb, sem_ch13.adb: Properly check size of packed bit array
31164
31165         * s-thread.adb: Add comments for pragma Restriction
31166
31167         * exp_aggr.adb, g-debuti.adb, par-ch4.adb, sem_aggr.adb,
31168         sem_ch6.adb, sprint.adb, xref_lib.adb: Minor reformatting
31169
31170 2003-11-17  Ed Falis  <falis@gnat.com>
31171
31172         * s-thread.adb: Added No_Tasking restriction for this implementation.
31173
31174 2003-11-17  Emmanuel Briot  <briot@act-europe.fr>
31175
31176         * xref_lib.adb (Parse_Identifier_Info): Add handling of generic
31177         instanciation references in the parent type description.
31178
31179 2003-11-17  GNAT Script  <nobody@gnat.com>
31180
31181         * Make-lang.in: Makefile automatically updated
31182
31183 2003-11-16  Jason Merrill  <jason@redhat.com>
31184
31185         * Make-lang.in (ada.tags): Create TAGS.sub files in each directory
31186         and TAGS files that include them for each front end.
31187
31188 2003-11-14  Andreas Jaeger  <aj@suse.de>
31189
31190         * lang.opt: Change -Wno-long-long to -Wlong-long since the latter
31191         is the canonical version.
31192         * misc.c (gnat_handle_option): Likewise.
31193
31194         * Makefile.in (LIBGNAT_TARGET_PAIRS): Add rules for x86_64-linux.
31195
31196         * 5nsystem.ads: New file for x86_64-linux-gnu.
31197
31198 2003-11-14  Arnaud Charlet  <charlet@act-europe.fr>
31199
31200         * nmake.ads, nmake.adb, sinfo.h, treeprs.ads: Regenerated.
31201
31202         * comperr.adb: Fix logic in previous change.
31203
31204 2003-11-13  Vincent Celier  <celier@gnat.com>
31205
31206         * 5bml-tgt.adb (Build_Dynamic_Library): Use
31207         Osint.Include_Dir_Default_Prefix instead of
31208         Sdefault.Include_Dir_Default_Name.
31209
31210         * gnatlbr.adb: Update Copyright notice
31211         (Gnatlbr): : Use Osint.Include_Dir_Default_Prefix instead of
31212         Sdefault.Include_Dir_Default_Name and Osint.Object_Dir_Default_Prefix
31213         instead of Sdefault.Object_Dir_Default_Name
31214
31215         * gnatlink.adb:
31216         (Process_Binder_File): Never suppress the option following -Xlinker
31217
31218         * mdll-utl.adb:
31219         (Gcc): Use Osint.Object_Dir_Default_Prefix instead of
31220         Sdefault.Object_Dir_Default_Name.
31221
31222         * osint.ads, osint.adb:
31223         (Include_Dir_Default_Prefix, Object_Dir_Default_Prefix): New functions
31224         Minor reformatting.
31225
31226         * vms_conv.ads: Minor reformating
31227         Remove GNAT STANDARD and GNAT PSTA
31228
31229         * vms_conv.adb:
31230         Allow GNAT MAKE to have several files on the command line.
31231         (Init_Object_Dirs): Use Osint.Object_Dir_Default_Prefix instead of
31232         Sdefault.Object_Dir_Default_Name.
31233         Minor Reformating
31234         Remove data for GNAT STANDARD
31235
31236         * vms_data.ads:
31237         Add new compiler qualifier /PRINT_STANDARD (-gnatS)
31238         Remove data for GNAT STANDARD
31239         Remove options and documentation for -gnatwb/-gnatwB: these warning
31240         options no longer exist.
31241
31242 2003-11-13  Ed Falis  <falis@gnat.com>
31243
31244         * 5zthrini.adb: (Init_RTS): Made visible
31245
31246         * 5zthrini.adb:
31247         (Register): Removed unnecessary call to taskVarGet that checked whether
31248          an ATSD was already set as a task var for the argument thread.
31249
31250         * s-thread.adb:
31251         Updated comment to reflect that this is a VxWorks version
31252         Added context clause for System.Threads.Initialization
31253         Added call to System.Threads.Initialization.Init_RTS
31254
31255 2003-11-13  Jerome Guitton  <guitton@act-europe.fr>
31256
31257         * 5zthrini.adb:
31258         (Init_RTS): New procedure, for the initialization of the run-time lib.
31259
31260         * s-thread.adb:
31261         Remove dependancy on System.Init, so that this file can be used in the
31262         AE653 sequential run-time lib.
31263
31264 2003-11-13  Robert Dewar  <dewar@gnat.com>
31265
31266         * bindgen.adb: Minor reformatting
31267
31268 2003-11-13  Ed Schonberg  <schonberg@gnat.com>
31269
31270         * checks.adb:
31271         (Apply_Discriminant_Check): Do no apply check if target type is derived
31272         from source type with no applicable constraint.
31273
31274         * lib-writ.adb:
31275         (Ensure_System_Dependency): Do not apply the style checks that may have
31276         been specified for the main unit.
31277
31278         * sem_ch8.adb:
31279         (Find_Selected_Component): Further improvement in error message, with
31280         RM reference.
31281
31282         * sem_res.adb:
31283         (Resolve): Handle properly the case of an illegal overloaded protected
31284         procedure.
31285
31286 2003-11-13  Javier Miranda  <miranda@gnat.com>
31287
31288         * exp_aggr.adb:
31289         (Has_Default_Init_Comps): New function to check the presence of
31290         default initialization in an aggregate.
31291         (Build_Record_Aggr_Code): Recursively expand the ancestor in case of
31292         extension aggregate of a limited record. In addition, a new formal
31293         was added to do not initialize the record controller (if any) during
31294         this recursive expansion of ancestors.
31295         (Init_Controller): Add support for limited record components.
31296         (Expand_Record_Aggregate): In case of default initialized components
31297         convert the aggregate into a set of assignments.
31298
31299         * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Update the comment
31300         describing the new syntax.
31301         Nothing else needed to be done because this subprogram delegates part of
31302         its work to P_Precord_Or_Array_Component_Association.
31303         (P_Record_Or_Array_Component_Association): Give support to the new
31304         syntax for default initialization of components.
31305
31306         * sem_aggr.adb:
31307         (Resolve_Aggregate): Relax the strictness of the frontend in case of
31308         limited aggregates.
31309         (Resolve_Record_Aggregate): Give support to default initialized
31310         components.
31311         (Get_Value): In case of default initialized components, duplicate
31312         the corresponding default expression (from the record type
31313         declaration). In case of default initialization in the *others*
31314         choice, do not check that all components have the same type.
31315         (Resolve_Extension_Aggregate): Give support to limited extension
31316         aggregates.
31317
31318         * sem_ch3.adb:
31319         (Check_Initialization): Relax the strictness of the front-end in case
31320         of aggregate and extension aggregates. This test is now done in
31321         Get_Value in a per-component manner.
31322
31323         * sem_ch4.adb (Analyze_Allocator): Don't post an error if the
31324         expression corresponds to a limited aggregate. This test is now done
31325         in Get_Value.
31326
31327         * sinfo.ads, sinfo.adb (N_Component_Association): Addition of
31328         Box_Present flag.
31329
31330         * sprint.adb (Sprint_Node_Actual): Modified to print an mbox if
31331         present in an N_Component_Association node
31332
31333 2003-11-13  Thomas Quinot  <quinot@act-europe.fr>
31334
31335         * sem_ch9.adb (Analyze_Accept_Statement): A procedure hides a
31336         type-conformant entry only if they are homographs.
31337
31338 2003-11-13  GNAT Script  <nobody@gnat.com>
31339
31340         * Make-lang.in: Makefile automatically updated
31341
31342 2003-11-12  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
31343
31344         * adadecode.c: Use <> form of include for ctype.h.
31345         * sysdep.c [IN_RTS]: Use <> form of include for time.h.
31346
31347 2003-11-12  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
31348
31349         * 5gsystem.ads (Functions_Return_By_DSP): Set to False.
31350         Works around PR middle-end/6552.
31351
31352 2003-11-10  Ed Falis  <falis@gnat.com>
31353
31354         * 5ytiitho.adb: (procStartHookAdd): Definition and call deleted
31355
31356         * 5zinit.adb: (Install_Handler): Moved back to spec
31357         (Install_Signal_Handlers): Deleted
31358
31359         * 5zthrini.adb: Added context clause for System.Storage_Elements
31360         (Register): Only handles creation of taskVar; initialization moved to
31361         Thread_Body_Enter.
31362         (Reset_TSD): Deleted; replaced by Thread_Body_Enter
31363         Added declaration of environment task secondary stack and
31364         initialization.
31365
31366         * s-thread.adb: Implement bodies for thread body processing
31367
31368         * s-thread.ads:
31369         Added comment identifying supported targets for pragma Thread_Body.
31370
31371 2003-11-10  Pascal Obry  <obry@gnat.com>
31372
31373         * adaint.c (_gnat_stat) [WIN32]: Check if name is not bigger than
31374         GNAT_MAX_PATH_LEN.
31375
31376         * s-fileio.adb:
31377         (Open): Properly check for string length before copying into the buffer.
31378         Raises Name_Error if buffer is too small. Note that this was a potential
31379         buffer overflow.
31380
31381 2003-11-10  Romain Berrendonner  <berrendo@act-europe.fr>
31382
31383         * bindgen.adb, comperr.adb: Code clean ups.
31384         * gnatvsn.ads, gnatvsn.adb (Get_Gnat_Version_Type): New function.
31385
31386 2003-11-10  Sergey Rybin  <rybin@act-europe.fr>
31387
31388         * gnat1drv.adb: Add call to Sem_Elim.Initialize.
31389
31390 2003-11-10  Vincent Celier  <celier@gnat.com>
31391
31392         * gprcmd.adb:
31393         (Gprcmd): Add new command "prefix" to get the prefix of the GNAT
31394         installation.
31395
31396         * make.adb (Scan_Make_Arg): Transmit -nostdlib to the compiler
31397
31398         * prj.adb: (Project_Empty): Add new boolean component Virtual
31399
31400         * prj.ads: (Virtual_Prefix): New constant string
31401         (Project_Data): New boolean component Virtual
31402
31403         * prj-nmsc.adb (Language_Independent_Check): Adjust error message when
31404         a library project is extended by a virtual extending project.
31405
31406         * prj-part.adb:
31407         Modifications throughout to implement extending-all project, including:
31408         (Virtual_Hash, Processed_Hash): New hash tables
31409         (Create_Virtual_Extending_Project): New procedure
31410         (Look_For_Virtual_Projects_For): New procedure
31411
31412         * prj-proc.adb:
31413         (Process): After checking the projects, if main project is an
31414         extending-all project, set the object directory of all virtual extending
31415         project to the object directory of the main project.
31416         Adjust error message when a virtual extending project has the same
31417         object directory as an project being extended.
31418         (Recursive_Process): If name starts with the virtual prefix, set Virtual
31419         to True in the project data.
31420
31421         * prj-tree.adb:
31422         (Default_Project_Node): Add new boolean component Extending_All
31423         (Is_Extending_All): New function
31424         (Set_Is_Extending_All): New procedure
31425
31426         * prj-tree.ads: (Is_Extending_All): New function
31427         (Set_Is_Extending_All): New procedure
31428         (Project_Node_Record): New boolean component Extending_All
31429
31430         * switch-c.adb: (Scan_Front_End_Switches): Process -nostdlib
31431
31432         * vms_data.ads:
31433         Add qualifier /NOSTD_LIBRARIES (-nostdlib) for the compiler
31434
31435         * bld.adb (Recursive_Process): If MAKE_ROOT is not defined, call
31436         "gprcmd prefix" to define it.
31437
31438 2003-11-10  Thomas Quinot  <quinot@act-europe.fr>
31439
31440         * einfo.ads: Fix a typo and remove an extraneous word in comments.
31441
31442         * lib-load.adb:
31443         (Create_Dummy_Package_Unit): Set the scope of the entity for the
31444         created dummy package to Standard_Standard, not to itself, to
31445         defend other parts of the front-end against encoutering a cycle in
31446         the scope chain.
31447
31448         * sem_ch10.adb:
31449         (Analyze_With_Clause): When setting the entities for the successive
31450         N_Expanded_Names that constitute the name of a child unit, do not
31451         attempt to go further than Standard_Standard in the chain of scopes.
31452         This case arises from the placeholder units created by
31453         Create_Dummy_Package_Unit in the case of a with_clause for a
31454         nonexistent child unit.
31455
31456 2003-11-10  Ed Schonberg  <schonberg@gnat.com>
31457
31458         * exp_ch6.adb:
31459         (Expand_Thread_Body): Place subprogram on scope stack, so that new
31460         declarations are given the proper scope.
31461
31462         * sem_ch13.adb:
31463         (Check_Expr_Constants): Reject an expression that contains a constant
31464         created during expansion, and that appears after the object to which
31465         the address clause applies.
31466
31467         * sem_ch5.adb (Check_Controlled_Array_Attribute): Subsidiary of
31468         Analyze_Iteration_Scheme, to rewrite a loop parameter specification
31469         that uses 'Range of a function call with controlled components, so
31470         that the function result can be finalized before starting the loop.
31471
31472         * sem_ch8.adb:
31473         (Find_Selected_Component): Improve error message when prefix is
31474         an implicit dereference of an incomplete type.
31475
31476 2003-11-10  Robert Dewar  <dewar@gnat.com>
31477
31478         * opt.ads: New Print_Standard flag for -gnatS switch
31479
31480         * sem_ch13.adb: Remove some additional checks for unaligned arrays
31481
31482         * cstand.adb (Create_Standard): Print out package standard if -gnatS
31483         switch set
31484
31485         * debug.adb: Update doc for -gnatds to discuss relationship with new
31486         -gnatS flag
31487
31488         * sinfo.adb: Add new field Entity_Or_Associated_Node
31489
31490         * sinfo.ads: Add new field Entity_Or_Associated_Node
31491         Update documentation for Associated_Node and Entity fields to clarify
31492         relationship and usage.
31493
31494         * sprint.adb:
31495         (Write_Id): Properly process Associated_Node field in generic template
31496
31497         * switch-c.adb:
31498         Recognize new -gnatS switch for printing package Standard
31499         This replaces gnatpsta
31500
31501         * usage.adb:
31502         Add line for  new -gnatS switch for printing package Standard
31503         This replaces gnatpsta
31504
31505 2003-11-10  Andreas Jaeger  <aj@suse.de>
31506
31507         * 7sosprim.adb: tv_usec of struct_timeval and time_t are long
31508         integer.
31509
31510 2003-11-10  Arnaud Charlet  <charlet@act-europe.fr>
31511
31512         * misc.c, lang.opt: Add handling of -nostdlib, now recognized/needed
31513         by gnat1.
31514
31515 2003-11-10  Arnaud Charlet  <charlet@act-europe.fr>
31516
31517         * Makefile.in, Make-lang.in: Remove build of gnat_wrapper and gnatpsta,
31518         no longer needed.
31519
31520         * gnatpsta.adb, gnat_wrapper.adb: Removed, no longer needed.
31521
31522         * sysdep.c: Add handling of cygwin.
31523
31524 2003-11-10  GNAT Script  <nobody@gnat.com>
31525
31526         * Make-lang.in: Makefile automatically updated
31527
31528 2003-11-10  Arnaud Charlet  <charlet@act-europe.fr>
31529
31530         PR 12950
31531         * osint.ads, osint.adb (Relocate_Path, Executable_Suffix): New
31532         functions. Used to handle dynamic prefix relocation, via set_std_prefix.
31533         Replace GNAT_ROOT by GCC_ROOT.
31534
31535         * Make-lang.in: Use new function Relocate_Path to generate sdefault.adb
31536
31537 2003-11-06  Zack Weinberg  <zack@codesourcery.com>
31538
31539         * misc.c (fp_prec_to_size, fp_size_to_prec): Use GET_MODE_PRECISION
31540         and update for changed meaning of GET_MODE_BITSIZE.
31541
31542 2003-11-04  Doug Rupp  <rupp@gnat.com>
31543
31544         * sysdep.c: Problem discovered during IA64 VMS port.
31545         [VMS] #include <unixio.h> to get proper prototypes.
31546
31547         * adaint.c:
31548         Issues discovered/problems fixed during IA64 VMS port.
31549         [VMS] #define _POSIX_EXIT for proper semantics.
31550         [VMS] #include <unixio.h> for proper prototypes.
31551         [VMS] (fork): #define IA64 version.
31552         (__gnat_os_exit): Remove unnecessary VMS specific code.
31553
31554 2003-11-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
31555
31556         Part of PR ada/12806
31557         * ada-tree.h (TYPE_DIGITS_VALUE, SET_TYPE_DIGITS_VALUE): Save count as
31558         tree, not integer.
31559
31560         * decl.c:
31561         (gnat_to_gnu_entity, case E_Floating_Point_Type): Save count as tree,
31562         not integer.
31563
31564         * targtyps.c, decl.c, misc.c,
31565         gigi.h (fp_prec_to_size, fp_size_to_prec): Temporary
31566         routines to work around change in FP sizing semantics in GCC.
31567
31568         * utils.c:
31569         (build_vms_descriptor): TYPE_DIGITS_VALUE is tree, not integer.
31570
31571         * gigi.h: (enumerate_modes): New function.
31572
31573         * Make-lang.in: (ada/misc.o): Add real.h.
31574
31575         * misc.c: (enumerate_modes): New function.
31576
31577 2003-11-04  Robert Dewar  <dewar@gnat.com>
31578
31579         * 3vtrasym.adb: Minor reformatting
31580         Use terminology encoded/decoded name, rather than C++ specific notion
31581         of mangling (this is the terminology used throughout GNAT).
31582
31583         * einfo.h: Regenerated
31584
31585         * einfo.ads, einfo.adb: Add new flag Is_Thread_Body
31586
31587         * exp_ch6.adb:
31588         (Expand_N_Subprogram_Body): Handle expansion of thread body procedure
31589
31590         * par-prag.adb: Add dummy entry for Thread_Body pragma
31591
31592         * rtsfind.ads:
31593         Add entries for System.Threads entities for thread body processing
31594
31595         * sem_attr.adb:
31596         (Analyze_Pragma, Access attributes): Check these are not applied to a
31597         thread body, since this is not permitted
31598
31599         * sem_prag.adb: Add processing for Thread_Body pragma.
31600         Minor comment fix.
31601
31602         * sem_res.adb:
31603         (Resolve_Call): Check for incorrect attempt to call a thread body
31604          procedure with a direct call.
31605
31606         * snames.ads, snames.adb: Add entry for Thread_Body pragma
31607         Add names associated with thread body expansion
31608
31609         * snames.h: Add entry for Thread_Body pragma
31610
31611         * s-thread.adb: Add entries for thread body processing
31612         These are dummy bodies so far
31613
31614         * s-thread.ads: Add documentation on thread body handling.
31615         Add entries for thread body processing.
31616
31617 2003-11-04  Javier Miranda  <miranda@gnat.com>
31618
31619         * sem_ch10.adb:
31620         (Build_Limited_Views): Return after posting an error in case of limited
31621         with_clause on subprograms, generics, instances or generic renamings
31622         (Install_Limited_Withed_Unit): Do nothing in case of limited with_clause
31623         on subprograms, generics, instances or generic renamings
31624
31625 2003-11-04  Arnaud Charlet  <charlet@act-europe.fr>
31626
31627         * raise.c (setup_to_install): Correct mistake in last revision; two
31628         arguments out of order.
31629
31630         * trans.c, cuintp.c, argv.c, aux-io.c, cal.c, errno.c, exit.c,
31631         gnatbl.c, init.c, stringt.h, utils.c, utils2.c: Update copyright
31632         notice, missed in previous change.
31633         Remove trailing blanks and other style errors introduced in previous
31634         change.
31635
31636 2003-11-04  Olivier Hainque  <hainque@act-europe.fr>
31637
31638         * decl.c (gnat_to_gnu_field): Adjust the conditions under which we get
31639         rid of the wrapper for a LJM type, ensuring we don't do that if the
31640         field is addressable.  This avoids potential low level type view
31641         mismatches later on, for instance in a by-reference argument passing
31642         process.
31643
31644 2003-11-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
31645
31646         * decl.c (gnat_to_gnu_field): No longer check for BLKmode being
31647         aligned at byte boundary.
31648
31649 2003-11-04  Joel Brobecker  <brobecker@gnat.com>
31650
31651         * decl.c (components_to_record): Do not delete the empty variants from
31652         the end of the union type.
31653
31654 2003-11-04  Ed Schonberg  <schonberg@gnat.com>
31655
31656         * exp_ch4.adb (Expand_N_Op_Eq): Use base type when locating primitive
31657         operation for a derived type, an explicit declaration may use a local
31658         subtype of Boolean.
31659
31660 2003-11-04  Vincent Celier  <celier@gnat.com>
31661
31662         * make.adb (Gnatmake): Allow main sources on the command line with a
31663         library project when it is only for compilation (no binding or
31664         linking).
31665
31666 2003-11-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
31667
31668         * Makefile.in: Remove many duplicate variables.
31669
31670 2003-11-03  Kelley Cook  <kcook@gcc.gnu.org>
31671
31672         * Make-lang.in (dvi): Move targets to $(docobjdir).
31673         (gnat_ug_vms.dvi): Simplify rule and adjust target.
31674         (gnat_ug_wnt.dvi): Likewise.
31675         (gnat_ug_unx.dvi): Likewise.
31676         (gnat_ug_vxw.dvi): Likewise.
31677         (gnat_rm.dvi): Likewise.
31678         (gnat-style.dvi): Likewise.
31679
31680 2003-10-31  Kelley Cook  <kcook@gcc.gnu.org>
31681
31682         * gigi.h: Missed commit from update for C90.
31683
31684 2003-10-31  Kelley Cook  <kcook@gcc.gnu.org>
31685
31686         * Makefile.in (ada/b_gnat1.o): Compile with -Wno-error.
31687
31688 2003-10-31  Andreas Schwab  <schwab@suse.de>
31689
31690         * raise.c (get_action_description_for): Fix typo in last change.
31691
31692 2003-10-31  Nathanael Nerode  <neroden@gcc.gnu.org>
31693
31694         PR ada/12761
31695         * ada/Make-lang.in: Move default definitions of X_ADA_CFLAGS,
31696         T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS from here to master Makefile.in.
31697
31698 2003-10-30  Kelley Cook  <kcook@gcc.gnu.org>
31699
31700         * adadecode.c, adaint.c, argv.c, aux-io.c, cal.c, cio.c, cstreams.c,
31701         ctrl_c.c, cuintp.c, decl.c, errno.c, exit.c, expect.c, final.c,
31702         gigi.h, gmem.c, gnatbl.c, init.c, misc.c, mkdir.c, raise.c, socket.c,
31703         sysdep.c, sysdep.c, targtyps.c, tb-alvms.c, tb-alvxw.c, tracebak.c,
31704         trans.c, utils.c, utils2.c: Convert function prototypes to C90.
31705
31706 2003-10-30  Vasiliy Fofanov  <fofanov@act-europe.fr>
31707
31708         * 3vtrasym.adb:
31709         Demangle Ada symbols returned by TBK$SYMBOLIZE. Correctly align line
31710         numbers when symbol name is too long.
31711
31712 2003-10-30  Ed Falis  <falis@gnat.com>
31713
31714         * g-signal.ads, g-signal.adb: New files
31715
31716         * impunit.adb: (Non_Imp_File_Names): Added "g-signal"
31717
31718         * Makefile.rtl: Introduce GNAT.Signals
31719
31720 2003-10-30  Robert Dewar  <dewar@gnat.com>
31721
31722         * freeze.adb: Minor reformatting
31723
31724         * lib-writ.adb (Write_ALI): Never write ali file if -gnats is specified
31725
31726         * par.adb, par-ch12.adb, par-ch13.adb, par-ch2.adb, par-ch3.adb,
31727         par-ch5.adb, par-ch6.adb, par-ch9.adb, par-util.adb:
31728         New handling of Id_Check parameter to improve recognition of keywords
31729         used as identifiers.
31730         Update copyright notice to include 2003
31731
31732 2003-10-29  Robert Dewar  <dewar@gnat.com>
31733
31734         * 3vtrasym.adb, 5vtraent.ads, sprint.adb,
31735         sem_ch10.adb: Minor reformatting
31736
31737         * exp_ch5.adb (Expand_Assign_Array): Test for bit unaligned operands
31738         (Expand_Assign_Record): Test right hand side for bit unaligned as well
31739
31740 2003-10-29  Vasiliy Fofanov  <fofanov@act-europe.fr>
31741
31742         * 3vtrasym.adb, 5vtraent.adb, 5vtraent.ads, tb-alvms.c:
31743         Support for TBK$SYMBOLIZE-based symbolic traceback.
31744
31745 2003-10-29  Jose Ruiz  <ruiz@act-europe.fr>
31746
31747         * exp_disp.adb:
31748         Revert previous change, that did not work well when pragma No_Run_Time
31749         was used in conjunction with a run-time other than ZFP.
31750
31751 2003-10-29  Vincent Celier  <celier@gnat.com>
31752
31753         * make.adb:
31754         (Gnatmake): When there are no Ada mains in attribute Main, disable the
31755          bind and link steps only is switch -z is not used.
31756
31757 2003-10-29  Arnaud Charlet  <charlet@act-europe.fr>
31758
31759         * Makefile.generic: Remove duplicated setting of CC.
31760
31761         * Makefile.prolog: Set CC to gcc by default, to override make's
31762         default (cc).
31763
31764         * einfo.h: Regenerated.
31765
31766 2003-10-29  Ed Schonberg  <schonberg@gnat.com>
31767
31768         * sem_ch10.adb (Analyze_Subunit): Restore state of suppress flags for
31769         current body, after compiling subunit.
31770
31771         * itypes.adb (Create_Itype): In ASIS_Mode, do not freeze the itype
31772         when in deleted code, because gigi needs properly ordered freeze
31773         actions to annotate types.
31774
31775         * freeze.adb (Is_Fully_Defined): Predicate must be recursive, to
31776         prevent the premature freezing of record type that contains
31777         subcomponents with a private type that does not yet have a completion.
31778
31779 2003-10-29  Javier Miranda  <miranda@gnat.com>
31780
31781         * sem_ch12.adb:
31782         (Analyze_Package_Instantiation): Check that instances can not be used in
31783         limited with_clauses.
31784
31785         * sem_ch8.adb:
31786         (Analyze_Package_Renaming): Check that limited withed packages cannot
31787         be renamed. Improve text on error messages related to limited
31788         with_clauses.
31789
31790         * einfo.adb, einfo.ads: Remove Non_Limited_Views attribute.
31791
31792         * sprint.adb: (Sprint_Node_Actual): Print limited with_clauses.
31793         Update copyright notice.
31794
31795         * sem_ch10.adb: (Build_Limited_Views): Complete its documentation.
31796         (Install_Limited_Context_Clauses): New subprogram that isolates all the
31797         checks required for limited context_clauses and installs the limited
31798         view.
31799         (Install_Limited_Withed_Unit): Complete its documentation.
31800         (Analyze_Context): Check that limited with_clauses are only allowed in
31801         package specs.
31802         (Install_Context): Call Install_Limited_Context_Clauses after the
31803         parents have been installed.
31804         (Install_Limited_Withed_Unit): Add documentation. Mark the installed
31805         package as 'From_With_Type'; this mark indicates that the limited view
31806         is installed. Used to check bad usages of limited with_clauses.
31807         (Build_Limited_Views): Do not add shadow entities to the scope's list
31808         of entities. Do not add real entities to the Non_Limited_Views chain.
31809         Improve error notification.
31810         (Remove_Context_Clauses): Remove context clauses in two phases:
31811         limited views first and regular views later (to maintain the
31812         stack model).
31813         (Remove_Limited_With_Clause): If the package is analyzed then reinstall
31814         its visible entities.
31815
31816 2003-10-29  Thomas Quinot  <quinot@act-europe.fr>
31817
31818         * sem_type.adb (Specific_Type): Type Universal_Fixed is compatible
31819         with any type that Is_Fixed_Point_Type.
31820
31821         * sinfo.ads: Fix documentation for Associated_Node attribute.
31822
31823 2003-10-29  Sergey Rybin  <rybin@act-europe.fr>
31824
31825         * switch-c.adb (Scan_Front_End_Switches): ASIS_Mode is set now when
31826         both '-gnatc' and '-gnatt' are specified.
31827
31828         * atree.adb (Initialize): Add initialization for Node_Count (set to
31829         zero).
31830
31831 2003-10-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
31832
31833         * decl.c (gnat_to_gnu_entity, case E_Subprogram): If no return value,
31834         do not consider as Pure.
31835
31836         Part of implementation of function-at-a-time:
31837
31838         * trans.c (gnat_to_gnu_code): If IS_STMT, call expand_expr_stmt.
31839         (tree_transform): Add new argument to build_component_ref.
31840         (tree_transform, case N_Assignment_Statement): Make and return an
31841         EXPR_STMT.
31842         (tree_transform): If result IS_STMT, set flags and return it.
31843         (gnat_expand_stmt, set_lineno_from_sloc): New functions.
31844
31845         * utils2.c (build_simple_component_ref, build_component_ref): Add new
31846         arg, NO_FOLD_P.
31847         (build_binary_op, case EQ_EXPR): Pass additional arg to it.
31848         (build_allocator): Likewise.
31849
31850         * utils.c (convert_to_fat_pointer, convert_to_thin_pointer, convert):
31851         Add new arg to build_component_ref.
31852         (maybe_unconstrained_array, unchecked_convert): Likewise.
31853
31854         * ada-tree.def (EXPR_STMT): New code.
31855
31856         * ada-tree.h (IS_STMT, TREE_SLOC, EXPR_STMT_EXPR): New macros.
31857
31858         * decl.c (gnat_to_gnu_entity, case object): Add extra arg to
31859         build_component_ref calls.
31860
31861         * misc.c (gnat_expand_expr): If IS_STMT, call gnat_expand_stmt.
31862
31863         * gigi.h (gnat_expand_stmt, set_lineno_from_sloc): New functions.
31864         (build_component_ref): Add new argument, NO_FOLD_P.
31865
31866 2003-10-27  Arnaud Charlet  <charlet@act-europe.fr>
31867
31868         * Makefile.generic: Add missing substitution on object_deps handling.
31869
31870         PR ada/5909
31871         * Make-lang.in (check-ada): Enable ACATS test suite.
31872
31873 2003-10-27  Robert Dewar  <dewar@gnat.com>
31874
31875         * exp_ch3.adb:
31876         (Freeze_Array_Type): We do not need an initialization routine for types
31877         derived from String or Wide_String. They should be treated the same
31878         as String and Wide_String themselves. This caused problems with the
31879         use of Initialize_Scalars.
31880
31881         * exp_ch5.adb:
31882         (Expand_Assign_Record): Do component-wise assignment of non-byte aligned
31883         composites. This allows use of component clauses that are not byte
31884         aligned.
31885
31886         * sem_prag.adb:
31887         (Analyze_Pragma, case Pack): Generate warning and ignore pack if there
31888         is an attempt to pack an array of atomic objects.
31889
31890         * make.adb, prj-env.adb, prj-env.ads: Minor reformatting
31891
31892 2003-10-27  Pascal Obry  <obry@gnat.com>
31893
31894         * g-dirope.adb:
31895         (Basename): Check for drive letters in a pathname only on DOS based OS.
31896
31897 2003-10-27  Vincent Celier  <celier@gnat.com>
31898
31899         * make.adb:
31900         (Gnatmake): When unable to change dir to the object dir, display the
31901         content of the parent dir of the obj dir, to try to understand why this
31902         happens.
31903
31904 2003-10-27  GNAT Script  <nobody@gnat.com>
31905
31906         * Make-lang.in: Makefile automatically updated
31907
31908 2003-10-27  Ed Schonberg  <schonberg@gnat.com>
31909
31910         * sem_ch12.adb:
31911         (Inline_Instance_Body): Indicate that the save/restore of use_clauses
31912         should not be done in Save/Restore_Scope_Stack, because it is performed
31913         locally.
31914
31915         * sem_ch8.adb:
31916         (Save_Scope_Stack, Restore_Scope_Stack): Add parameter to indicate
31917         whether use clauses should be removed/restored.
31918
31919         * sem_ch8.ads:
31920         (Save_Scope_Stack, Restore_Scope_Stack): Add parameter to indicate
31921         whether use clauses should be removed/restored.
31922
31923 2003-10-26  Andreas Jaeger  <aj@suse.de>
31924
31925         * Makefile.in: Remove duplicated lines.
31926
31927 2003-10-24  Arnaud Charlet  <charlet@act-europe.fr>
31928
31929         * gnatvsn.ads (Gnat_Static_Version_String): New constant, used to
31930         minimize the differences with ACT tree.
31931
31932         * gnatkr.adb, gnatlink.adb, gnatls.adb, gnatmake.adb,
31933         gnatprep.adb, gnatpsta.adb, gnatvsn.ads: Take advantage of
31934         Gnatvsn.Gnat_Static_Version_String to reduce differences between
31935         ACT and FSF trees.
31936
31937 2003-10-24  Pascal Obry  <obry@gnat.com>
31938
31939         PR ada/12014
31940         * adadecode.c (ostrcpy): New function.
31941         (__gnat_decode): Use ostrcpy of strcpy.
31942         (has_prefix): Set first parameter a const.
31943         (has_suffix): Set first parameter a const.
31944         Update copyright notice. Fix source name in header.
31945         Removes a trailing space.
31946
31947 2003-10-24  Jose Ruiz  <ruiz@act-europe.fr>
31948
31949         * exp_disp.adb:
31950         Remove the test against being in No_Run_Time_Mode before generating a
31951         call to Register_Tag. It is redundant with the test against the
31952         availability of the function Register_Tag.
31953
31954 2003-10-24  Vincent Celier  <celier@gnat.com>
31955
31956         * g-catiio.adb: (Month_Name): Correct spelling of February
31957
31958         * make.adb: (Mains): New package
31959         (Initialize): Call Mains.Delete
31960         (Gnatmake): Check that each main on the command line is a source of a
31961         project file and, if there are several mains, each of them is a source
31962         of the same project file.
31963         (Gnatmake): When a foreign language is specified in attribute Languages,
31964         no main is specified on the command line and attribute Mains is not
31965         empty, only build the Ada main. If there is no Ada main, just compile
31966         the Ada sources and their closure.
31967         (Gnatmake): If a main is specified on the command line with directory
31968         information, check that the source exists and, if it does, that the path
31969         is the actual path of a source of a project.
31970
31971         * prj-env.adb:
31972         (File_Name_Of_Library_Unit_Body): New Boolean parameter Full_Path. When
31973         Full_Path is True, return the full path instead of the simple file name.
31974         (Project_Of): New function
31975
31976         * prj-env.ads:
31977         (File_Name_Of_Library_Unit_Body): New Boolean parameter Full_Path,
31978         defaulted to False.
31979         (Project_Of): New function
31980
31981 2003-10-24  Arnaud Charlet  <charlet@act-europe.fr>
31982
31983         * Makefile.generic:
31984         Ensure objects of main project are always checked and rebuilt if needed.
31985         Set CC to gcc by default.
31986         Prepare new handling of link by creating a global archive (not activated
31987         yet).
31988
31989         * adadecode.h, atree.h, elists.h, nlists.h, raise.h,
31990         stringt.h: Update copyright notice. Remove trailing blanks.
31991         Fix source name in header.
31992
31993 2003-10-24  Robert Dewar  <dewar@gnat.com>
31994
31995         * sem_ch12.adb: Minor reformatting
31996
31997         * sem_ch3.adb:
31998         Minor reformatting (including new function return style throughout)
31999
32000         * sem_ch3.ads:
32001         Minor reformatting (including new function return style throughout)
32002
32003 2003-10-24  Arnaud Charlet  <charlet@act-europe.fr>
32004
32005         * adadecode.h, atree.h, elists.h, nlists.h, raise.h,
32006         stringt.h: Update copyright notice. Remove trailing blanks.
32007         Fix source name in header.
32008
32009 2003-10-24  GNAT Script  <nobody@gnat.com>
32010
32011         * Make-lang.in: Makefile automatically updated
32012
32013 2003-10-23  Nathanael Nerode  <neroden@gcc.gnu.org>
32014
32015         * adadecode.h, atree.h, elists.h, namet.h, nlists.h, raise.h,
32016         stringt.h: Convert to ISO C90 declarations and definitions.
32017
32018 2003-10-23  Thomas Quinot  <quinot@act-europe.fr>
32019
32020         PR ada/11978
32021         * exp_ch13.adb (Expand_N_Freeze_Entity): Do not consider inherited
32022         External_Tag attribute definition clauses.
32023
32024 2003-10-23  Ed Schonberg  <schonberg@gnat.com>
32025
32026         PR ada/7613
32027         * exp_dbug.adb (Debug_Renaming_Declaration): For the renaming of a
32028         child unit, generate a fully qualified name to avoid spurious errors
32029         when the context contains renamings of different child units with
32030         the same simple name.
32031
32032         * exp_dbug.ads: Add documentation on name qualification for renamings
32033         of child units.
32034
32035 2003-10-23  Robert Dewar  <dewar@gnat.com>
32036
32037         * g-regpat.ads, g-regpat.adb: Minor reformatting
32038
32039 2003-10-23  Jose Ruiz  <ruiz@act-europe.fr>
32040
32041         * Makefile.in: Use the file 1atags.ads with the ZFP and cert run-times.
32042
32043 2003-10-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
32044
32045         * trans.c: (tree_transform, case N_Real_Literal): Add extra arg to
32046         Machine call.
32047
32048         * urealp.h: (Machine): Update to proper definition.
32049
32050 2003-10-23  Arnaud Charlet  <charlet@act-europe.fr>
32051
32052         * init.c, adaint.c: Minor reformatting.
32053
32054 2003-10-23  Danny Smith  <dannysmith@users.sourceforge.net>
32055
32056         * adaint.c (w32_epoch_offset): Define static const at file level.
32057         (win32_filetime): Replace offset with w32_epoch_offset. Use NULL
32058         rather than t_create, t_access in call to GetFileTime. Use union
32059         to convert between FILETIME and  unsigned long long.
32060         (__gnat_file_time_name): Test for invalid file handle.
32061         (__gnat_set_filetime_name): Support win32 targets using
32062         w32api SetFileTime.
32063
32064 2003-10-22  Danny Smith  <dannysmith@users.sourceforge.net>
32065
32066         * sysdep.c: Include conio.h if __MINGW32__ and !OLD_MINGW.
32067
32068         * ctrl_c.c (__gnat_int_handler): Remove declaration.
32069
32070         * decl.c (creat_concat_name):  Const-ify prefix.
32071
32072         * adaint.c: Include ctype.h if __MINGW32__.
32073         (__gnat_readlink): Mark arguments as possibly unused.
32074         (__gnat_symlink): Likewise.
32075         (__gnat_is_symbolic_link): Likewise.
32076         (__gnat_portable_spawn): Likewise.  Cast last arg of spawnvp to match
32077         declaration
32078         (__gnat_file_time_name): Don't declare struct stat statbuf when
32079         not needed.
32080         (__gnat_is_absolute_path): Add parenthesis around condition of
32081         'if' statement to avoid warning.
32082         (__gnat_plist_init): Specify void as parameter.
32083         (plist_enter): Likewise.
32084         (plist_leave): Likewise.
32085         (remove_handle): Make static. Initialize prev.
32086
32087 2003-10-22  Arnaud Charlet  <charlet@act-europe.fr>
32088
32089         PR ada/10110
32090         * Makefile.in: Disable build of gnatpsta.
32091         * cstreams.c (__gnat_full_name): Minor improvements and clean up
32092         of previous change.
32093
32094 2003-10-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
32095
32096         * tracebak.c (MAX): Avoid redefinition warning.
32097
32098         * init.c [sgi] (__gnat_error_handler): Remove i, unused.
32099         Change msg to const char *.
32100         (__gnat_install_handler): Remove ss, unused.
32101         [sun && __SVR4 && !__vxworks] (__gnat_error_handler): Change msg
32102         to const char *.
32103         * cstreams.c (__gnat_full_name): Declare p only when used.
32104         (__gnat_full_name) [sgi] Return buffer.
32105
32106 2003-10-22  Arnaud Charlet  <charlet@act-europe.fr>
32107
32108         * mingw32.h: New file.
32109         * gnat_wrapper.adb: New file.
32110
32111 2003-10-22  Jerome Roussel  <roussel@act-europe.fr>
32112
32113         * g-regpat.ads, g-regpat.adb (Match): new function, to know if a
32114         string match a pre compiled regular expression (the corresponding
32115         version of the function working on a raw regular expression)
32116         Fix typos in various comments
32117         Update copyright notice in spec
32118
32119 2003-10-21  Gary Dismukes  <dismukes@gnat.com>
32120
32121         * exp_ch3.adb:
32122         (Component_Needs_Simple_Initialization): Return False when the type is a
32123         packed bit array. Revise spec comments to document this case.
32124
32125         * exp_prag.adb:
32126         (Expand_Pragma_Import): Set any expression on the imported object to
32127         empty to avoid initializing imported objects (in particular this
32128         covers the case of zero-initialization of bit arrays).
32129         Update copyright notice.
32130
32131 2003-10-21  Ed Schonberg  <schonberg@gnat.com>
32132
32133         * sem_ch12.adb:
32134         (Load_Parent_Of_Generic): If parent is compilation unit, stop search,
32135         a subunit is missing.
32136         (Instantiate_Subprogram_Body): If body of function is missing, set type
32137         of return expression explicitly in dummy body, to prevent cascaded
32138         errors when a subunit is missing.
32139         Fixes PR 5677.
32140
32141         * sem_ch3.adb:
32142         (Access_Subprogram_Declaration): Verify that return type is valid.
32143         Fixes PR 8693.
32144
32145         * sem_elab.adb:
32146         (Check_Elab_Calls): Do not apply elaboration checks if the main unit is
32147         generic.
32148         Fixes PR 12318.
32149
32150         * sem_util.adb:
32151         (Corresponding_Discriminant): If the scope of the discriminant is a
32152         private type without discriminant, use its full view.
32153         Fixes PR 8247.
32154
32155 2003-10-21  Arnaud Charlet  <charlet@act-europe.fr>
32156
32157         * 3psoccon.ads, 3veacodu.adb, 3vexpect.adb, 3vsoccon.ads,
32158         3vsocthi.adb, 3vsocthi.ads, 3vtrasym.adb, 3zsoccon.ads,
32159         3zsocthi.adb, 3zsocthi.ads, 50system.ads, 51system.ads,
32160         55system.ads, 56osinte.adb, 56osinte.ads, 56taprop.adb,
32161         56taspri.ads, 56tpopsp.adb, 57system.ads, 58system.ads,
32162         59system.ads, 5aml-tgt.adb, 5bml-tgt.adb, 5csystem.ads,
32163         5dsystem.ads, 5fosinte.adb, 5gml-tgt.adb, 5hml-tgt.adb,
32164         5isystem.ads, 5lparame.adb, 5msystem.ads, 5psystem.ads,
32165         5sml-tgt.adb, 5sosprim.adb, 5stpopsp.adb, 5tsystem.ads,
32166         5usystem.ads, 5vml-tgt.adb, 5vsymbol.adb, 5vtraent.adb,
32167         5vtraent.ads, 5wml-tgt.adb, 5xparame.ads, 5xsystem.ads,
32168         5xvxwork.ads, 5yparame.ads, 5ytiitho.adb, 5zinit.adb,
32169         5zml-tgt.adb, 5zparame.ads, 5ztaspri.ads, 5ztfsetr.adb,
32170         5zthrini.adb, 5ztiitho.adb, 5ztpopsp.adb, 7stfsetr.adb,
32171         7straces.adb, 7strafor.adb, 7strafor.ads, 7stratas.adb,
32172         a-excach.adb, a-exexda.adb, a-exexpr.adb, a-exextr.adb,
32173         a-exstat.adb, a-strsup.adb, a-strsup.ads, a-stwisu.adb,
32174         a-stwisu.ads, bld.adb, bld.ads, bld-io.adb,
32175         bld-io.ads, clean.adb, clean.ads, ctrl_c.c,
32176         erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
32177         err_vars.ads, final.c, g-arrspl.adb, g-arrspl.ads,
32178         g-boubuf.adb, g-boubuf.ads, g-boumai.ads, g-bubsor.adb,
32179         g-bubsor.ads, g-comver.adb, g-comver.ads, g-ctrl_c.ads,
32180         g-dynhta.adb, g-dynhta.ads, g-eacodu.adb, g-excact.adb,
32181         g-excact.ads, g-heasor.adb, g-heasor.ads, g-memdum.adb,
32182         g-memdum.ads, gnatclean.adb, gnatsym.adb, g-pehage.adb,
32183         g-pehage.ads, g-perhas.ads, gpr2make.adb, gpr2make.ads,
32184         gprcmd.adb, gprep.adb, gprep.ads, g-semaph.adb,
32185         g-semaph.ads, g-string.adb, g-string.ads, g-strspl.ads,
32186         g-wistsp.ads, i-vthrea.adb, i-vthrea.ads, i-vxwoio.adb,
32187         i-vxwoio.ads, Makefile.generic, Makefile.prolog, Makefile.rtl,
32188         prep.adb, prep.ads, prepcomp.adb, prepcomp.ads,
32189         prj-err.adb, prj-err.ads, s-boarop.ads, s-carsi8.adb,
32190         s-carsi8.ads, s-carun8.adb, s-carun8.ads, s-casi16.adb,
32191         s-casi16.ads, s-casi32.adb, s-casi32.ads, s-casi64.adb,
32192         s-casi64.ads, s-casuti.adb, s-casuti.ads, s-caun16.adb,
32193         s-caun16.ads, s-caun32.adb, s-caun32.ads, s-caun64.adb,
32194         s-caun64.ads, scng.adb, scng.ads, s-exnint.adb,
32195         s-exnllf.adb, s-exnlli.adb, s-expint.adb, s-explli.adb,
32196         s-geveop.adb, s-geveop.ads, s-hibaen.ads, s-htable.adb,
32197         s-htable.ads, sinput-c.adb, sinput-c.ads, s-memcop.ads,
32198         socket.c, s-purexc.ads, s-scaval.adb, s-stopoo.adb,
32199         s-strcom.adb, s-strcom.ads, s-strxdr.adb, s-rident.ads,
32200         s-thread.adb, s-thread.ads, s-tpae65.adb, s-tpae65.ads,
32201         s-tporft.adb, s-traent.adb, s-traent.ads, styleg.adb,
32202         styleg.ads, styleg-c.adb, styleg-c.ads, s-veboop.adb,
32203         s-veboop.ads, s-vector.ads, symbols.adb, symbols.ads,
32204         tb-alvms.c, tb-alvxw.c, tempdir.adb, tempdir.ads,
32205         vms_conv.ads, vms_conv.adb, vms_data.ads,
32206         vxaddr2line.adb: Files added. Merge with ACT tree.
32207
32208         * 4dintnam.ads, 4mintnam.ads, 4uintnam.ads, 52system.ads,
32209         5dosinte.ads, 5etpopse.adb, 5mosinte.ads, 5qosinte.adb,
32210         5qosinte.ads, 5qstache.adb, 5qtaprop.adb, 5qtaspri.ads,
32211         5stpopse.adb, 5uintman.adb, 5uosinte.ads, adafinal.c,
32212         g-enblsp.adb, io-aux.c, scn-nlit.adb, scn-slit.adb,
32213         s-exnflt.ads, s-exngen.adb, s-exngen.ads, s-exnlfl.ads,
32214         s-exnlin.ads, s-exnsfl.ads, s-exnsin.ads, s-exnssi.ads,
32215         s-expflt.ads, s-expgen.adb, s-expgen.ads, s-explfl.ads,
32216         s-explin.ads, s-expllf.ads, s-expsfl.ads, s-expsin.ads,
32217         s-expssi.ads, style.adb: Files removed. Merge with ACT tree.
32218
32219         * 1ic.ads, 31soccon.ads, 31soliop.ads, 3asoccon.ads,
32220         3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3ssoccon.ads,
32221         3ssoliop.ads, 3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads,
32222         3wsoliop.ads, 41intnam.ads, 42intnam.ads, 4aintnam.ads,
32223         4cintnam.ads, 4gintnam.ads, 4hexcpol.adb, 4hintnam.ads,
32224         4lintnam.ads, 4nintnam.ads, 4ointnam.ads, 4onumaux.ads,
32225         4pintnam.ads, 4sintnam.ads, 4vcaldel.adb, 4vcalend.adb,
32226         4vintnam.ads, 4wexcpol.adb, 4wintnam.ads, 4zintnam.ads,
32227         51osinte.adb, 51osinte.ads, 52osinte.adb, 52osinte.ads,
32228         53osinte.ads, 54osinte.ads, 5aosinte.adb, 5aosinte.ads,
32229         5asystem.ads, 5ataprop.adb, 5atasinf.ads, 5ataspri.ads,
32230         5atpopsp.adb, 5avxwork.ads, 5bosinte.adb, 5bosinte.ads,
32231         5bsystem.ads, 5cosinte.ads, 5esystem.ads, 5fintman.adb,
32232         5fosinte.ads, 5fsystem.ads, 5ftaprop.adb, 5ftasinf.ads,
32233         5ginterr.adb, 5gintman.adb, 5gmastop.adb, 5gosinte.ads,
32234         5gproinf.ads, 5gsystem.ads, 5gtaprop.adb, 5gtasinf.ads,
32235         5gtpgetc.adb, 5hosinte.adb, 5hosinte.ads, 5hsystem.ads,
32236         5htaprop.adb, 5htaspri.ads, 5htraceb.adb, 5iosinte.adb,
32237         5itaprop.adb, 5itaspri.ads, 5ksystem.ads, 5kvxwork.ads,
32238         5lintman.adb, 5lml-tgt.adb, 5losinte.ads, 5lsystem.ads,
32239         5mvxwork.ads, 5ninmaop.adb, 5nintman.adb, 5nosinte.ads,
32240         5ntaprop.adb, 5ntaspri.ads, 5ointerr.adb, 5omastop.adb,
32241         5oosinte.adb, 5oosinte.ads, 5oosprim.adb, 5oparame.adb,
32242         5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5posinte.ads,
32243         5posprim.adb, 5pvxwork.ads, 5sintman.adb, 5sosinte.adb,
32244         5sosinte.ads, 5ssystem.ads, 5staprop.adb, 5stasinf.ads,
32245         5staspri.ads, 5svxwork.ads, 5tosinte.ads, 5vasthan.adb,
32246         5vinmaop.adb, 5vinterr.adb, 5vintman.adb, 5vintman.ads,
32247         5vmastop.adb, 5vosinte.adb, 5vosinte.ads, 5vosprim.adb,
32248         5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads, 5vtpopde.adb,
32249         5vtpopde.ads, 5wgloloc.adb, 5wintman.adb, 5wmemory.adb,
32250         5wosprim.adb, 5wsystem.ads, 5wtaprop.adb, 5wtaspri.ads,
32251         5ysystem.ads, 5zinterr.adb, 5zintman.adb, 5zosinte.adb,
32252         5zosinte.ads, 5zosprim.adb, 5zsystem.ads, 5ztaprop.adb,
32253         6vcpp.adb, 6vcstrea.adb, 6vinterf.ads, 7sinmaop.adb,
32254         7sintman.adb, 7sosinte.adb, 7sosprim.adb, 7staprop.adb,
32255         7staspri.ads, 7stpopsp.adb, 7straceb.adb, 9drpc.adb,
32256         a-caldel.adb, a-caldel.ads, a-charac.ads, a-colien.ads,
32257         a-comlin.adb, adaint.c, adaint.h, ada-tree.def,
32258         a-diocst.adb, a-diocst.ads, a-direio.adb, a-except.adb,
32259         a-except.ads, a-excpol.adb, a-exctra.adb, a-exctra.ads,
32260         a-filico.adb, a-interr.adb, a-intsig.adb, a-intsig.ads,
32261         ali.adb, ali.ads, ali-util.adb, ali-util.ads,
32262         a-ngcefu.adb, a-ngcoty.adb, a-ngelfu.adb, a-nudira.adb,
32263         a-nudira.ads, a-nuflra.adb, a-nuflra.ads, a-reatim.adb,
32264         a-reatim.ads, a-retide.ads, a-sequio.adb, a-siocst.adb,
32265         a-siocst.ads, a-ssicst.adb, a-ssicst.ads, a-strbou.adb,
32266         a-strbou.ads, a-strfix.adb, a-strmap.adb, a-strsea.ads,
32267         a-strunb.adb, a-strunb.ads, a-ststio.adb, a-stunau.adb,
32268         a-stunau.ads, a-stwibo.adb, a-stwibo.ads, a-stwifi.adb,
32269         a-stwima.adb, a-stwiun.adb, a-stwiun.ads, a-tags.adb,
32270         a-tags.ads, a-tasatt.adb, a-taside.adb, a-teioed.adb,
32271         a-textio.adb, a-textio.ads, a-tienau.adb, a-tifiio.adb,
32272         a-tiflau.adb, a-tiflio.adb, a-tigeau.adb, a-tigeau.ads,
32273         a-tiinau.adb, a-timoau.adb, a-tiocst.adb, a-tiocst.ads,
32274         atree.adb, atree.ads, a-witeio.adb, a-witeio.ads,
32275         a-wtcstr.adb, a-wtcstr.ads, a-wtdeio.adb, a-wtedit.adb,
32276         a-wtenau.adb, a-wtflau.adb, a-wtinau.adb, a-wtmoau.adb,
32277         bcheck.adb, binde.adb, bindgen.adb, bindusg.adb,
32278         checks.adb, checks.ads, cio.c, comperr.adb,
32279         comperr.ads, csets.adb, cstand.adb, cstreams.c,
32280         debug_a.adb, debug_a.ads, debug.adb, decl.c,
32281         einfo.adb, einfo.ads, errout.adb, errout.ads,
32282         eval_fat.adb, eval_fat.ads, exp_aggr.adb, expander.adb,
32283         expander.ads, exp_attr.adb, exp_ch11.adb, exp_ch13.adb,
32284         exp_ch2.adb, exp_ch3.adb, exp_ch3.ads, exp_ch4.adb,
32285         exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch7.ads,
32286         exp_ch8.adb, exp_ch9.adb, exp_code.adb, exp_dbug.adb,
32287         exp_dbug.ads, exp_disp.adb, exp_dist.adb, expect.c,
32288         exp_fixd.adb, exp_imgv.adb, exp_intr.adb, exp_pakd.adb,
32289         exp_prag.adb, exp_strm.adb, exp_strm.ads, exp_tss.adb,
32290         exp_tss.ads, exp_util.adb, exp_util.ads, exp_vfpt.adb,
32291         fe.h, fmap.adb, fmap.ads, fname.adb,
32292         fname.ads, fname-uf.adb, fname-uf.ads, freeze.adb,
32293         freeze.ads, frontend.adb, g-awk.adb, g-awk.ads,
32294         g-busora.adb, g-busora.ads, g-busorg.adb, g-busorg.ads,
32295         g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads,
32296         g-cgi.adb, g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads,
32297         g-cgideb.adb, g-cgideb.ads, g-comlin.adb, g-comlin.ads,
32298         g-crc32.adb, g-crc32.ads, g-debpoo.adb, g-debpoo.ads,
32299         g-debuti.adb, g-debuti.ads, g-diopit.adb, g-diopit.ads,
32300         g-dirope.adb, g-dirope.ads, g-dyntab.adb, g-dyntab.ads,
32301         g-except.ads, g-exctra.adb, g-exctra.ads, g-expect.adb,
32302         g-expect.ads, g-hesora.adb, g-hesora.ads, g-hesorg.adb,
32303         g-hesorg.ads, g-htable.adb, g-htable.ads, gigi.h,
32304         g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads,
32305         g-locfil.adb, g-locfil.ads, g-md5.adb, g-md5.ads,
32306         gmem.c, gnat1drv.adb, gnatbind.adb, gnatchop.adb,
32307         gnatcmd.adb, gnatfind.adb, gnatkr.adb, gnatlbr.adb,
32308         gnatlink.adb, gnatls.adb, gnatmake.adb, gnatmem.adb,
32309         gnatname.adb, gnatprep.adb, gnatprep.ads, gnatpsta.adb,
32310         gnatxref.adb, g-os_lib.adb, g-os_lib.ads, g-regexp.adb,
32311         g-regexp.ads, g-regist.adb, g-regist.ads, g-regpat.adb,
32312         g-regpat.ads, g-soccon.ads, g-socket.adb, g-socket.ads,
32313         g-socthi.adb, g-socthi.ads, g-soliop.ads, g-souinf.ads,
32314         g-speche.adb, g-speche.ads, g-spipat.adb, g-spipat.ads,
32315         g-spitbo.adb, g-spitbo.ads, g-sptabo.ads, g-sptain.ads,
32316         g-sptavs.ads, g-table.adb, g-table.ads, g-tasloc.adb,
32317         g-tasloc.ads, g-thread.adb, g-thread.ads, g-traceb.adb,
32318         g-traceb.ads, g-trasym.adb, g-trasym.ads, hostparm.ads,
32319         i-c.ads, i-cobol.adb, i-cpp.adb, i-cstrea.ads,
32320         i-cstrin.adb, i-cstrin.ads, impunit.adb, init.c,
32321         inline.adb, interfac.ads, i-pacdec.ads, itypes.adb,
32322         itypes.ads, i-vxwork.ads, lang.opt, lang-specs.h,
32323         layout.adb, lib.adb, lib.ads, lib-list.adb,
32324         lib-load.adb, lib-load.ads, lib-sort.adb, lib-util.adb,
32325         lib-writ.adb, lib-writ.ads, lib-xref.adb, lib-xref.ads,
32326         link.c, live.adb, make.adb, make.ads,
32327         Makefile.adalib, Makefile.in, Make-lang.in, makeusg.adb,
32328         mdll.adb, mdll-fil.adb, mdll-fil.ads, mdll-utl.adb,
32329         mdll-utl.ads, memroot.adb, memroot.ads, memtrack.adb,
32330         misc.c, mkdir.c, mlib.adb, mlib.ads,
32331         mlib-fil.adb, mlib-fil.ads, mlib-prj.adb, mlib-prj.ads,
32332         mlib-tgt.adb, mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads,
32333         namet.adb, namet.ads, namet.h, nlists.ads,
32334         nlists.h, nmake.adt, opt.adb, opt.ads,
32335         osint.adb, osint.ads, osint-b.adb, osint-c.adb,
32336         par.adb, par-ch10.adb, par-ch11.adb, par-ch2.adb,
32337         par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb,
32338         par-ch9.adb, par-endh.adb, par-labl.adb, par-load.adb,
32339         par-prag.adb, par-sync.adb, par-tchk.adb, par-util.adb,
32340         prj.adb, prj.ads, prj-attr.adb, prj-attr.ads,
32341         prj-com.adb, prj-com.ads, prj-dect.adb, prj-dect.ads,
32342         prj-env.adb, prj-env.ads, prj-ext.adb, prj-ext.ads,
32343         prj-makr.adb, prj-makr.ads, prj-nmsc.adb, prj-nmsc.ads,
32344         prj-pars.adb, prj-pars.ads, prj-part.adb, prj-part.ads,
32345         prj-pp.adb, prj-pp.ads, prj-proc.adb, prj-proc.ads,
32346         prj-strt.adb, prj-strt.ads, prj-tree.adb, prj-tree.ads,
32347         prj-util.adb, prj-util.ads, raise.c, raise.h,
32348         repinfo.adb, repinfo.h, restrict.adb, restrict.ads,
32349         rident.ads, rtsfind.adb, rtsfind.ads, s-addima.ads,
32350         s-arit64.adb, s-assert.adb, s-assert.ads, s-atacco.adb,
32351         s-atacco.ads, s-auxdec.adb, s-auxdec.ads, s-bitops.adb,
32352         scans.ads, scn.adb, scn.ads, s-crc32.adb,
32353         s-crc32.ads, s-direio.adb, sem.adb, sem.ads,
32354         sem_aggr.adb, sem_attr.adb, sem_attr.ads, sem_case.adb,
32355         sem_case.ads, sem_cat.adb, sem_cat.ads, sem_ch10.adb,
32356         sem_ch11.adb, sem_ch12.adb, sem_ch12.ads, sem_ch13.adb,
32357         sem_ch13.ads, sem_ch3.adb, sem_ch3.ads, sem_ch4.adb,
32358         sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
32359         sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads,
32360         sem_ch9.adb, sem_disp.adb, sem_disp.ads, sem_dist.adb,
32361         sem_elab.adb, sem_eval.adb, sem_eval.ads, sem_intr.adb,
32362         sem_maps.adb, sem_mech.adb, sem_prag.adb, sem_prag.ads,
32363         sem_res.adb, sem_res.ads, sem_type.adb, sem_type.ads,
32364         sem_util.adb, sem_util.ads, sem_warn.adb, s-errrep.adb,
32365         s-errrep.ads, s-exctab.adb, s-exctab.ads, s-exnint.ads,
32366         s-exnllf.ads, s-exnlli.ads, s-expint.ads, s-explli.ads,
32367         s-expuns.ads, s-fatflt.ads, s-fatgen.adb, s-fatgen.ads,
32368         s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads, s-fileio.adb,
32369         s-fileio.ads, s-finimp.adb, s-finimp.ads, s-finroo.adb,
32370         s-finroo.ads, sfn_scan.adb, s-gloloc.adb, s-gloloc.ads,
32371         s-imgdec.adb, s-imgenu.adb, s-imgrea.adb, s-imgwch.adb,
32372         sinfo.adb, sinfo.ads, s-inmaop.ads, sinput.adb,
32373         sinput.ads, sinput-d.adb, sinput-l.adb, sinput-l.ads,
32374         sinput-p.adb, sinput-p.ads, s-interr.adb, s-interr.ads,
32375         s-intman.ads, s-maccod.ads, s-mastop.adb, s-mastop.ads,
32376         s-memory.adb, s-memory.ads, snames.adb, snames.ads,
32377         snames.h, s-osprim.ads, s-parame.ads, s-parint.ads,
32378         s-pooloc.adb, s-pooloc.ads, s-poosiz.adb, sprint.adb,
32379         s-proinf.ads, s-scaval.ads, s-secsta.adb, s-secsta.ads,
32380         s-sequio.adb, s-shasto.adb, s-shasto.ads, s-soflin.ads,
32381         s-stache.adb, s-stache.ads, s-stalib.adb, s-stalib.ads,
32382         s-stoele.ads, s-stopoo.ads, s-stratt.adb, s-stratt.ads,
32383         s-strops.adb, s-strops.ads, s-taasde.adb, s-taasde.ads,
32384         s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads,
32385         s-taenca.adb, s-taenca.ads, s-taprob.adb, s-taprob.ads,
32386         s-taprop.ads, s-tarest.adb, s-tarest.ads, s-tasdeb.adb,
32387         s-tasdeb.ads, s-tasinf.adb, s-tasinf.ads, s-tasini.adb,
32388         s-tasini.ads, s-taskin.adb, s-taskin.ads, s-tasque.adb,
32389         s-tasque.ads, s-tasren.adb, s-tasren.ads, s-tasres.ads,
32390         s-tassta.adb, s-tassta.ads, s-tasuti.adb, s-tasuti.ads,
32391         s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
32392         s-tpoben.adb, s-tpoben.ads, s-tpobop.adb, s-tpobop.ads,
32393         s-tposen.adb, s-tposen.ads, s-traceb.adb, s-traceb.ads,
32394         stringt.adb, stringt.ads, stringt.h, style.ads,
32395         stylesw.adb, stylesw.ads, s-unstyp.ads, s-vaflop.ads,
32396         s-valrea.adb, s-valuti.adb, s-vercon.adb, s-vmexta.adb,
32397         s-wchcnv.ads, s-wchcon.ads, s-widcha.adb, switch.adb,
32398         switch.ads, switch-b.adb, switch-c.adb, switch-m.adb,
32399         s-wwdcha.adb, s-wwdwch.adb, sysdep.c, system.ads,
32400         table.adb, table.ads, targparm.adb, targparm.ads,
32401         targtyps.c, tbuild.adb, tbuild.ads, tracebak.c,
32402         trans.c, tree_io.adb, treepr.adb, treeprs.adt,
32403         ttypes.ads, types.ads, types.h, uintp.adb,
32404         uintp.ads, uintp.h, uname.adb, urealp.adb,
32405         urealp.ads, urealp.h, usage.adb, utils2.c,
32406         utils.c, validsw.adb, validsw.ads, widechar.adb,
32407         xeinfo.adb, xnmake.adb, xref_lib.adb, xref_lib.ads,
32408         xr_tabls.adb, xr_tabls.ads, xtreeprs.adb, xsnames.adb,
32409         einfo.h, sinfo.h, treeprs.ads, nmake.ads, nmake.adb,
32410         gnatvsn.ads: Merge with ACT tree.
32411
32412         * gnatvsn.adb: Rewritten in a simpler and more efficient way.
32413
32414 2003-10-20  Mark Mitchell  <mark@codesourcery.com>
32415
32416         * Make-lang.in (gnat_ug_unx.info): Add dependency on stmp-docobjdir.
32417         (gnat_ug_vmx.info): Likewise.
32418         (gnat_ug_vxw.info): Likewise.
32419         (gnat_ug_wnt.info): Likewise.
32420         (gnat_rm.info): Likewise.
32421         (gnat-style.info): Likewise.
32422
32423         * Make-lang.in (ada.install-info): Remove target.
32424         (info): New target.
32425         (install-info): Likewise.
32426         (gnat_ug_unx.info): Simplify rule.
32427         (gnat_ug_vmx.info): Likewise.
32428         (gnat_ug_vxw.info): Likewise.
32429         (gnat_ug_wnt.info): Likewise.
32430         (gnat_rm.info): Likewise.
32431         (gnat-style.info): Likewise.
32432
32433 2003-10-14  Nathanael Nerode  <neroden@gcc.gnu.org>
32434
32435         * Make-lang.in: Replace uses of $(target_alias) with
32436         $(target_noncanonical).
32437         * ada/Makefile.in: Remove unused mention of $(target_alias).
32438
32439 2003-10-06  Mark Mitchell  <mark@codesourcery.com>
32440
32441         * Make-lang.in (ada.info): Replace with ...
32442         (info): ... this.
32443         (ada.dvi): Replace with ...
32444         (dvi): ... this.
32445
32446 2003-09-29  Zack Weinberg  <zack@codesourcery.com>
32447
32448         * trans.c (gigi): Use REAL_ARITHMETIC, not REAL_VALUE_ATOF, to
32449         initialize dconstp5 and dconstmp5.
32450
32451 2003-09-28  Richard Henderson  <rth@redhat.com>
32452
32453         * trans.c (tree_transform): Update call to expand_asm_operands.
32454
32455 2003-09-21  Richard Henderson  <rth@redhat.com>
32456
32457         * trans.c, utils.c: Revert.
32458
32459 2003-09-21  Richard Henderson  <rth@redhat.com>
32460
32461         * trans.c, utils.c: Update for DECL_SOURCE_LOCATION rename and
32462         change to const.
32463
32464 2003-09-04  Michael Matz  <matz@suse.de>
32465
32466         * misc.c: Include "target.h".
32467         * Make-lang.in (misc.o): Add dependency on target.h.
32468
32469 2003-09-03  DJ Delorie  <dj@redhat.com>
32470
32471         * misc.c (default_pass_by_ref): Convert to calls.return_in_memory
32472         hook.
32473
32474 2003-08-30  Zack Weinberg  <zack@codesourcery.com>
32475
32476         * Makefile.in: Update substitutions to match changes to
32477         configure.  Use include directives instead of @-insertions
32478         to read in host and target fragments.  Add a rule to
32479         regenerate ada/Makefile.
32480
32481 2003-07-18  Neil Booth  <neil@daikokuya.co.uk>
32482
32483         * lang-options.h: Remove.
32484         * lang.opt: Add help text.
32485
32486 2003-07-07  Nathan Sidwell  <nathan@codesourcery.com>
32487
32488         * trans.c (build_unit_elab, set_lineno): Adjust emit_line_note
32489         calls.
32490
32491 2003-07-06  Neil Booth  <neil@daikokuya.co.uk>
32492
32493         * misc.c (gnat_handle_option): Don't handle filenames.
32494
32495 2003-07-04  H.J. Lu <hongjiu.lu@intel.com>
32496
32497         * Make-lang.in: Replace PWD with PWD_COMMAND.
32498         * Makefile.adalib: Likewise.
32499         * Makefile.in: Likewise.
32500
32501 2003-07-04  Matt Kraai  <kraai@alumni.cmu.edu>
32502
32503         * misc.c (gnat_argv): Revert last change.
32504         (gnat_handle_option, gnat_init_options): Copy arguments.
32505
32506 2003-07-03  Neil Booth  <neil@daikokuya.co.uk>
32507
32508         * misc.c (gnat_argv): Make const.
32509
32510 2003-07-02  Neil Booth  <neil@daikokuya.co.uk>
32511
32512         * misc.c (save_argc, save_argv): Keep non-static!
32513
32514 2003-07-02  Neil Booth  <neil@daikokuya.co.uk>
32515
32516         * misc.c (save_argc, save_argv): Make static.
32517         (gnat_init_options): New prototype.
32518         (gnat_init_options): Update.
32519
32520 2003-07-01  Matt Kraai  <kraai@alumni.cmu.edu>
32521
32522         * gnat_ug.texi: Remove unlikely characters from @vars.
32523         * gnat_ug_vms.texi: Regenerate.
32524
32525 2003-06-27  Nathan Sidwell  <nathan@codesourcery.com>
32526
32527         * misc.c (record_code_position): Adjust emit_note call.
32528
32529 2003-06-26  Neil Booth  <neil@daikokuya.co.uk>
32530
32531         * misc.c (gnat_handle_option): Don't check for missing arguments.
32532
32533 2003-06-20  Nathan Sidwell  <nathan@codesourcery.com>
32534
32535         * utils.c (end_subprog_body): Adjust expand_function_end call.
32536
32537 2003-06-16  Matt Kraai  <kraai@alumni.cmu.edu>
32538
32539         * bindgen.adb (Gen_Main_Ada, Gen_Main_C): Do not test
32540         Bind_Main_Program.
32541
32542 2003-06-15  Neil Booth  <neil@daikokuya.co.uk>
32543
32544         * lang.opt: Declare Ada.
32545         * misc.c (gnat_init_options): Update.
32546
32547 2003-06-14  Nathan Sidwell  <nathan@codesourcery.com>
32548
32549         * utils.c (begin_subprog_body): Adjust init_function_start call.
32550
32551 2003-06-14  Neil Booth  <neil@daikokuya.co.uk>
32552
32553         * Make-lang.in: Update to use options.c and options.h.
32554         * misc.c: Include options.h not aoptions.h.
32555         (gnat_handle_option): Abort on unrecognized switch.
32556         (gnat_init_options): Request Ada switches.
32557
32558 2003-06-14  Neil Booth  <neil@daikokuya.co.uk>
32559
32560         * lang.opt: Add -Wall.
32561         * misc.c (gnat_handle_option): Handle it.
32562
32563 2003-06-12  Neil Booth  <neil@daikokuya.co.uk>
32564
32565         * misc.c (gnat_handle_option): Fix warnings.
32566
32567 2003-06-11  Matt Kraai  <kraai@alumni.cmu.edu>
32568
32569         * Make-lang.in (gnatbind): Remove $(LIBIBERTY).
32570
32571 2003-06-11  Neil Booth  <neil@daikokuya.co.uk>
32572
32573         * Make-lang.in: Update to handle command-line options.
32574         * lang.opt: New file.
32575         * misc.c: Include aoptions.h.
32576         (cl_options_count, cl_options): Remove.
32577         (gnat_handle_option): New.
32578         (gnat_decode_option): Remove.
32579         (LANG_HOOKS_DECODE_OPTION): Remove.
32580         (LANG_HOOKS_HANDLE_OPTION): Override.
32581
32582 2003-06-10  Nathanael Nerode  <neroden@gcc.gnu.org>
32583
32584         * init.c, misc.c, trans.c, utils.c: Remove dead code.
32585
32586 2003-06-09  Nathanael Nerode  <neroden@gcc.gnu.org>
32587
32588         * Makefile.in: Replace "host_canonical" with "host" for autoconf
32589         substitution.
32590
32591 2003-06-08  Neil Booth  <neil@daikokuya.co.uk>
32592
32593         * Make-lang.in: Update.
32594         * misc.c: Include opts.h. Define cl_options_count and cl_options.
32595
32596 2003-06-07  Neil Booth  <neil@daikokuya.co.uk>
32597
32598         * misc.c (gnat_init_options): Update.
32599
32600 2003-06-05  Matt Kraai  <kraai@alumni.cmu.edu>
32601
32602         * Make-lang.in (ada/b_gnatb.o-warn): Remove.
32603         * bindgen.adb (Gen_Main_C): Mark ensure_reference with
32604         __attribute__ ((__unused__)).
32605
32606 2003-06-05  Jan Hubicka  <jh@suse.cz>
32607
32608         * Make-lang.in:  Add support for stageprofile and stagefeedback
32609
32610 2003-06-05  Matt Kraai  <kraai@alumni.cmu.edu>
32611
32612         * bindgen.adb (Gen_Adafinal_C, Gen_Adainit_C, Gen_Elab_Defs_C)
32613         (Gen_Main_C, Gen_Output_File_C): Generate ISO C.
32614
32615 2003-06-04  Matt Kraai  <kraai@alumni.cmu.edu>
32616
32617         * gnat_ug.texi (The GNAT Run-Time Library Builder gnatlbr):
32618         Remove non-VMS directive.
32619         (Switches for gnatlbr, Optimization Levels): Remove non-VMS
32620         alternatives.
32621         (Examples of gnatls Usage): Remove VMS alternative.
32622
32623 2003-06-04  Olivier Hainque  <hainque@act-europe.fr>
32624
32625         PR ada/9953
32626         * 5hsystem.ads: Remove pragma Linker_Option for pthreads library,
32627         and turn ZCX_By_Default back to False since the underlying support
32628         is not quite there yet.
32629
32630 2003-06-01  Andreas Jaeger  <aj@suse.de>
32631
32632         * utils.c (finish_record_type): Remove usages of ROUND_TYPE_SIZE
32633         and ROUND_TYPE_SIZE_UNIT.
32634
32635 2003-05-22   Geert Bosch <bosch@gnat.com>
32636
32637         * gnat_rm.texi : Remove reference to Ada Core Technologies.
32638
32639 2003-05-03  Nathan Sidwell  <nathan@codesourcery.com>
32640
32641         * trans.c (tree_transform): Use location_t and input_location
32642         directly.
32643         (build_unit_elab): Likewise.
32644         * utils.c (create_label_decl): Likewise.
32645
32646 2003-05-01  Nathan Sidwell  <nathan@codesourcery.com>
32647
32648         * trans.c (tree_transform, build_unit_elab,
32649         set_lineno): Rename lineno to input_line.
32650         * utils.c (pushdecl, create_label_decl, begin_subprog_body,
32651         end_subprog_body): Likewise.
32652         * utils2.c (build_call_raise): Likewise.
32653
32654 2003-05-01  Laurent Guerby <guerby@acm.org>
32655
32656         PR ada/10546
32657         * 5iosinte.ads: Increase pthread_cond_t size to match recent
32658         LinuxThread and NPTL version, merge from ACT.
32659
32660 2003-04-28  Zack Weinberg  <zack@codesourcery.com>
32661
32662         * utils.c (convert): No need to clear TREE_CST_RTL.
32663
32664 2003-04-23   Geert Bosch <bosch@gnat.com>
32665
32666         * 1aexcept.adb, 1aexcept.ads, 1ic.ads, 1ssecsta.adb,
32667         1ssecsta.ads, 31soccon.ads, 31soliop.ads, 3asoccon.ads,
32668         3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3ssoccon.ads,
32669         3ssoliop.ads, 3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads,
32670         3wsoliop.ads, 41intnam.ads, 42intnam.ads, 4aintnam.ads,
32671         4cintnam.ads, 4dintnam.ads, 4gintnam.ads, 4hexcpol.adb,
32672         4hintnam.ads, 4lintnam.ads, 4mintnam.ads, 4nintnam.ads,
32673         4ointnam.ads, 4onumaux.ads, 4pintnam.ads, 4rintnam.ads,
32674         4sintnam.ads, 4uintnam.ads, 4vcaldel.adb, 4vcalend.adb,
32675         4vcalend.ads, 4vintnam.ads, 4wcalend.adb, 4wexcpol.adb,
32676         4wintnam.ads, 4zintnam.ads, 4znumaux.ads, 4zsytaco.adb,
32677         4zsytaco.ads, 51osinte.adb, 51osinte.ads, 52osinte.adb,
32678         52osinte.ads, 52system.ads, 53osinte.ads, 54osinte.ads,
32679         5amastop.adb, 5aosinte.adb, 5aosinte.ads, 5asystem.ads,
32680         5ataprop.adb, 5atasinf.ads, 5ataspri.ads, 5atpopsp.adb,
32681         5avxwork.ads, 5bosinte.adb, 5bosinte.ads, 5bsystem.ads,
32682         5cosinte.ads, 5dosinte.ads, 5esystem.ads, 5etpopse.adb,
32683         5fintman.adb, 5fosinte.ads, 5fsystem.ads, 5ftaprop.adb,
32684         5ftasinf.ads, 5ginterr.adb, 5gintman.adb, 5gmastop.adb,
32685         5gosinte.ads, 5gproinf.adb, 5gproinf.ads, 5gsystem.ads,
32686         5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads, 5gtpgetc.adb,
32687         5hosinte.adb, 5hosinte.ads, 5hparame.ads, 5hsystem.ads,
32688         5htaprop.adb, 5htaspri.ads, 5htraceb.adb, 5iosinte.adb,
32689         5iosinte.ads, 5itaprop.adb, 5itaspri.ads, 5ksystem.ads,
32690         5kvxwork.ads, 5lintman.adb, 5lml-tgt.adb, 5losinte.ads,
32691         5lsystem.ads, 5mosinte.ads, 5mvxwork.ads, 5ninmaop.adb,
32692         5nintman.adb, 5nosinte.ads, 5ntaprop.adb, 5ntaspri.ads,
32693         5ointerr.adb, 5omastop.adb, 5oosinte.adb, 5oosinte.ads,
32694         5oosprim.adb, 5oparame.adb, 5osystem.ads, 5otaprop.adb,
32695         5otaspri.ads, 5posinte.ads, 5posprim.adb, 5pvxwork.ads,
32696         5qosinte.adb, 5qosinte.ads, 5qstache.adb, 5qtaprop.adb,
32697         5qtaspri.ads, 5rosinte.adb, 5rosinte.ads, 5rparame.adb,
32698         5sintman.adb, 5sosinte.adb, 5sosinte.ads, 5sparame.adb,
32699         5ssystem.ads, 5staprop.adb, 5stasinf.adb, 5stasinf.ads,
32700         5staspri.ads, 5stpopse.adb, 5svxwork.ads, 5tosinte.ads,
32701         5uintman.adb, 5uosinte.ads, 5vasthan.adb, 5vinmaop.adb,
32702         5vinterr.adb, 5vintman.adb, 5vintman.ads, 5vmastop.adb,
32703         5vosinte.adb, 5vosinte.ads, 5vosprim.adb, 5vosprim.ads,
32704         5vparame.ads, 5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads,
32705         5vtpopde.adb, 5vtpopde.ads, 5vvaflop.adb, 5wgloloc.adb,
32706         5wintman.adb, 5wmemory.adb, 5wosinte.ads, 5wosprim.adb,
32707         5wsystem.ads, 5wtaprop.adb, 5wtaspri.ads, 5ysystem.ads,
32708         5zinterr.adb, 5zintman.adb, 5zosinte.adb, 5zosinte.ads,
32709         5zosprim.adb, 5zsystem.ads, 5ztaprop.adb, 6vcpp.adb,
32710         6vcstrea.adb, 6vinterf.ads, 7sinmaop.adb, 7sintman.adb,
32711         7sosinte.adb, 7sosprim.adb, 7staprop.adb, 7staspri.ads,
32712         7stpopsp.adb, 7straceb.adb, 86numaux.adb, 86numaux.ads,
32713         9drpc.adb, a-astaco.adb, a-astaco.ads, a-caldel.adb,
32714         a-caldel.ads, a-calend.adb, a-calend.ads, a-chahan.adb,
32715         a-chahan.ads, a-charac.ads, a-chlat1.ads, a-chlat9.ads,
32716         a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
32717         a-comlin.adb, a-comlin.ads, a-cwila1.ads, a-cwila9.ads,
32718         a-decima.adb, a-decima.ads, a-diocst.adb, a-diocst.ads,
32719         a-direio.adb, a-direio.ads, a-dynpri.adb, a-dynpri.ads,
32720         a-einuoc.adb, a-einuoc.ads, a-except.adb, a-except.ads,
32721         a-excpol.adb, a-exctra.adb, a-exctra.ads, a-filico.adb,
32722         a-filico.ads, a-finali.adb, a-finali.ads, a-flteio.ads,
32723         a-fwteio.ads, a-inteio.ads, a-interr.adb, a-interr.ads,
32724         a-intnam.ads, a-intsig.adb, a-intsig.ads, a-ioexce.ads,
32725         a-iwteio.ads, a-lfteio.ads, a-lfwtio.ads, a-liteio.ads,
32726         a-liwtio.ads, a-llftio.ads, a-llfwti.ads, a-llitio.ads,
32727         a-lliwti.ads, a-ncelfu.ads, a-ngcefu.adb, a-ngcefu.ads,
32728         a-ngcoty.adb, a-ngcoty.ads, a-ngelfu.adb, a-ngelfu.ads,
32729         a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads,
32730         a-nllcty.ads, a-nllefu.ads, a-nscefu.ads, a-nscoty.ads,
32731         a-nselfu.ads, a-nucoty.ads, a-nudira.adb, a-nudira.ads,
32732         a-nuelfu.ads, a-nuflra.adb, a-nuflra.ads, a-numaux.ads,
32733         a-numeri.ads, a-reatim.adb, a-reatim.ads, a-retide.adb,
32734         a-retide.ads, a-sequio.adb, a-sequio.ads, a-sfteio.ads,
32735         a-sfwtio.ads, a-siocst.adb, a-siocst.ads, a-siteio.ads,
32736         a-siwtio.ads, a-ssicst.adb, a-ssicst.ads, a-ssitio.ads,
32737         a-ssiwti.ads, a-stmaco.ads, a-storio.adb, a-storio.ads,
32738         a-strbou.adb, a-strbou.ads, a-stream.ads, a-strfix.adb,
32739         a-strfix.ads, a-string.ads, a-strmap.adb, a-strmap.ads,
32740         a-strsea.adb, a-strsea.ads, a-strunb.adb, a-strunb.ads,
32741         a-ststio.adb, a-ststio.ads, a-stunau.adb, a-stunau.ads,
32742         a-stwibo.adb, a-stwibo.ads, a-stwifi.adb, a-stwifi.ads,
32743         a-stwima.adb, a-stwima.ads, a-stwise.adb, a-stwise.ads,
32744         a-stwiun.adb, a-stwiun.ads, a-suteio.adb, a-suteio.ads,
32745         a-swmwco.ads, a-swuwti.adb, a-swuwti.ads, a-sytaco.adb,
32746         a-sytaco.ads, a-tags.adb, a-tags.ads, a-tasatt.adb,
32747         a-tasatt.ads, a-taside.adb, a-taside.ads, a-teioed.adb,
32748         a-teioed.ads, a-textio.adb, a-textio.ads, a-ticoau.adb,
32749         a-ticoau.ads, a-ticoio.adb, a-ticoio.ads, a-tideau.adb,
32750         a-tideau.ads, a-tideio.adb, a-tideio.ads, a-tienau.adb,
32751         a-tienau.ads, a-tienio.adb, a-tienio.ads, a-tifiio.adb,
32752         a-tifiio.ads, a-tiflau.adb, a-tiflau.ads, a-tiflio.adb,
32753         a-tiflio.ads, a-tigeau.adb, a-tigeau.ads, a-tiinau.adb,
32754         a-tiinau.ads, a-tiinio.adb, a-tiinio.ads, a-timoau.adb,
32755         a-timoau.ads, a-timoio.adb, a-timoio.ads, a-tiocst.adb,
32756         a-tiocst.ads, a-titest.adb, a-titest.ads, a-unccon.ads,
32757         a-uncdea.ads, a-witeio.adb, a-witeio.ads, a-wtcoau.adb,
32758         a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads, a-wtcstr.adb,
32759         a-wtcstr.ads, a-wtdeau.adb, a-wtdeau.ads, a-wtdeio.adb,
32760         a-wtdeio.ads, a-wtedit.adb, a-wtedit.ads, a-wtenau.adb,
32761         a-wtenau.ads, a-wtenio.adb, a-wtenio.ads, a-wtfiio.adb,
32762         a-wtfiio.ads, a-wtflau.adb, a-wtflau.ads, a-wtflio.adb,
32763         a-wtflio.ads, a-wtgeau.adb, a-wtgeau.ads, a-wtinau.adb,
32764         a-wtinau.ads, a-wtinio.adb, a-wtinio.ads, a-wtmoau.adb,
32765         a-wtmoau.ads, a-wtmoio.adb, a-wtmoio.ads, a-wttest.adb,
32766         a-wttest.ads, ada-tree.h, ada.ads, ada.h,
32767         adadecode.c, adadecode.h, ali-util.adb, ali-util.ads,
32768         ali.adb, ali.ads, alloc.ads, argv.c,
32769         atree.adb, atree.ads, atree.h, aux-io.c,
32770         back_end.adb, back_end.ads, bcheck.adb, bcheck.ads,
32771         binde.adb, binde.ads, binderr.adb, binderr.ads,
32772         bindgen.adb, bindgen.ads, bindusg.adb, bindusg.ads,
32773         butil.adb, butil.ads, cal.c, calendar.ads,
32774         casing.adb, casing.ads, ceinfo.adb, checks.adb,
32775         checks.ads, cio.c, comperr.adb, comperr.ads,
32776         config-lang.in, csets.adb, csets.ads, csinfo.adb,
32777         cstand.adb, cstand.ads, cuintp.c, debug.adb,
32778         debug.ads, debug_a.adb, debug_a.ads, dec-io.adb,
32779         dec-io.ads, dec.ads, deftarg.c, directio.ads,
32780         einfo.adb, einfo.ads, elists.adb, elists.ads,
32781         elists.h, errno.c, errout.adb, errout.ads,
32782         eval_fat.adb, eval_fat.ads, exit.c, exp_aggr.adb,
32783         exp_aggr.ads, exp_attr.adb, exp_attr.ads, exp_ch10.ads,
32784         exp_ch11.adb, exp_ch11.ads, exp_ch12.adb, exp_ch12.ads,
32785         exp_ch13.adb, exp_ch13.ads, exp_ch2.adb, exp_ch2.ads,
32786         exp_ch3.adb, exp_ch3.ads, exp_ch4.adb, exp_ch4.ads,
32787         exp_ch5.adb, exp_ch5.ads, exp_ch6.adb, exp_ch6.ads,
32788         exp_ch7.adb, exp_ch7.ads, exp_ch8.adb, exp_ch8.ads,
32789         exp_ch9.adb, exp_ch9.ads, exp_code.adb, exp_code.ads,
32790         exp_dbug.adb, exp_dbug.ads, exp_disp.adb, exp_disp.ads,
32791         exp_dist.adb, exp_dist.ads, exp_fixd.adb, exp_fixd.ads,
32792         exp_imgv.adb, exp_imgv.ads, exp_intr.adb, exp_intr.ads,
32793         exp_pakd.adb, exp_pakd.ads, exp_prag.adb, exp_prag.ads,
32794         exp_smem.adb, exp_smem.ads, exp_strm.adb, exp_strm.ads,
32795         exp_tss.adb, exp_tss.ads, exp_util.adb, exp_util.ads,
32796         exp_vfpt.adb, exp_vfpt.ads, expander.adb, expander.ads,
32797         fmap.adb, fmap.ads, fname-sf.adb, fname-sf.ads,
32798         fname-uf.adb, fname-uf.ads, fname.adb, fname.ads,
32799         freeze.adb, freeze.ads, frontend.adb, frontend.ads,
32800         g-awk.adb, g-awk.ads, g-busora.adb, g-busora.ads,
32801         g-busorg.adb, g-busorg.ads, g-calend.adb, g-calend.ads,
32802         g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads,
32803         g-cgi.adb, g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads,
32804         g-cgideb.adb, g-cgideb.ads, g-comlin.adb, g-comlin.ads,
32805         g-crc32.adb, g-crc32.ads, g-curexc.ads, g-debpoo.adb,
32806         g-debpoo.ads, g-debuti.adb, g-debuti.ads, g-diopit.adb,
32807         g-diopit.ads, g-dirope.adb, g-dirope.ads, g-dyntab.adb,
32808         g-dyntab.ads, g-enblsp.adb, g-except.ads, g-exctra.adb,
32809         g-exctra.ads, g-expect.adb, g-expect.ads, g-flocon.ads,
32810         g-hesora.adb, g-hesora.ads, g-hesorg.adb, g-hesorg.ads,
32811         g-htable.adb, g-htable.ads, g-io.adb, g-io.ads,
32812         g-io_aux.adb, g-io_aux.ads, g-locfil.ads, g-md5.adb,
32813         g-md5.ads, g-moreex.adb, g-moreex.ads, g-os_lib.adb,
32814         g-os_lib.ads, g-regexp.adb, g-regexp.ads, g-regist.ads,
32815         g-regpat.adb, g-regpat.ads, g-soccon.ads, g-socket.adb,
32816         g-socket.ads, g-socthi.adb, g-socthi.ads, g-soliop.ads,
32817         g-souinf.ads, g-speche.adb, g-speche.ads, g-spipat.adb,
32818         g-spipat.ads, g-spitbo.adb, g-spitbo.ads, g-sptabo.ads,
32819         g-sptain.ads, g-sptavs.ads, g-table.adb, g-table.ads,
32820         g-tasloc.adb, g-tasloc.ads, g-thread.adb, g-thread.ads,
32821         g-traceb.adb, g-traceb.ads, g-trasym.adb, g-trasym.ads,
32822         get_targ.adb, get_targ.ads, gnat-style.texi, gnat.ads,
32823         gnat1drv.adb, gnat1drv.ads, gnatbind.adb, gnatbind.ads,
32824         gnatbl.c, gnatchop.adb, gnatcmd.adb, gnatcmd.ads,
32825         gnatdll.adb, gnatfind.adb, gnatkr.adb, gnatkr.ads,
32826         gnatlbr.adb, gnatlink.adb, gnatlink.ads, gnatls.adb,
32827         gnatls.ads, gnatmake.adb, gnatmake.ads, gnatmem.adb,
32828         gnatname.adb, gnatname.ads, gnatprep.adb, gnatprep.ads,
32829         gnatpsta.adb, gnatvsn.adb, gnatvsn.ads, gnatxref.adb,
32830         hlo.adb, hlo.ads, hostparm.ads, i-c.adb,
32831         i-c.ads, i-cexten.ads, i-cobol.adb, i-cobol.ads,
32832         i-cpoint.adb, i-cpoint.ads, i-cpp.adb, i-cpp.ads,
32833         i-cstrea.adb, i-cstrea.ads, i-cstrin.adb, i-cstrin.ads,
32834         i-fortra.adb, i-fortra.ads, i-os2err.ads, i-os2lib.adb,
32835         i-os2lib.ads, i-os2syn.ads, i-os2thr.ads, i-pacdec.adb,
32836         i-pacdec.ads, i-vxwork.ads, impunit.adb, impunit.ads,
32837         inline.adb, inline.ads, interfac.ads, ioexcept.ads,
32838         itypes.adb, itypes.ads, krunch.adb, krunch.ads,
32839         layout.adb, layout.ads, lib-list.adb, lib-load.adb,
32840         lib-load.ads, lib-sort.adb, lib-util.adb, lib-util.ads,
32841         lib-writ.adb, lib-writ.ads, lib-xref.adb, lib-xref.ads,
32842         lib.adb, lib.ads, live.adb, live.ads,
32843         machcode.ads, make.adb, make.ads, makeusg.adb,
32844         makeusg.ads, math_lib.adb, mdll-fil.adb, mdll-fil.ads,
32845         mdll-utl.adb, mdll-utl.ads, mdll.adb, mdll.ads,
32846         memroot.adb, memroot.ads, memtrack.adb, mlib-fil.adb,
32847         mlib-fil.ads, mlib-prj.adb, mlib-prj.ads, mlib-tgt.adb,
32848         mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads, mlib.adb,
32849         mlib.ads, namet.adb, namet.ads, nlists.adb,
32850         nlists.ads, opt.adb, opt.ads, osint-b.adb,
32851         osint-b.ads, osint-c.adb, osint-c.ads, osint-l.adb,
32852         osint-l.ads, osint-m.adb, osint-m.ads, osint.adb,
32853         osint.ads, output.adb, output.ads, par-ch10.adb,
32854         par-ch11.adb, par-ch12.adb, par-ch13.adb, par-ch2.adb,
32855         par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb,
32856         par-ch7.adb, par-ch8.adb, par-ch9.adb, par-endh.adb,
32857         par-labl.adb, par-load.adb, par-prag.adb, par-sync.adb,
32858         par-tchk.adb, par-util.adb, par.adb, par.ads,
32859         prj-attr.adb, prj-attr.ads, prj-com.adb, prj-com.ads,
32860         prj-dect.adb, prj-dect.ads, prj-env.adb, prj-env.ads,
32861         prj-ext.adb, prj-ext.ads, prj-makr.adb, prj-makr.ads,
32862         prj-nmsc.adb, prj-nmsc.ads, prj-pars.adb, prj-pars.ads,
32863         prj-part.adb, prj-part.ads, prj-pp.adb, prj-pp.ads,
32864         prj-proc.adb, prj-proc.ads, prj-strt.adb, prj-strt.ads,
32865         prj-tree.adb, prj-tree.ads, prj-util.adb, prj-util.ads,
32866         prj.adb, prj.ads, repinfo.adb, repinfo.ads,
32867         restrict.adb, restrict.ads, rident.ads, rtsfind.adb,
32868         rtsfind.ads, s-addima.adb, s-addima.ads, s-arit64.adb,
32869         s-arit64.ads, s-assert.adb, s-assert.ads, s-asthan.adb,
32870         s-asthan.ads, s-atacco.adb, s-atacco.ads, s-auxdec.adb,
32871         s-auxdec.ads, s-bitops.adb, s-bitops.ads, s-chepoo.ads,
32872         s-crc32.adb, s-crc32.ads, s-direio.adb, s-direio.ads,
32873         s-errrep.adb, s-errrep.ads, s-except.ads, s-exctab.adb,
32874         s-exctab.ads, s-exnflt.ads, s-exngen.adb, s-exngen.ads,
32875         s-exnint.ads, s-exnlfl.ads, s-exnlin.ads, s-exnllf.ads,
32876         s-exnlli.ads, s-exnsfl.ads, s-exnsin.ads, s-exnssi.ads,
32877         s-expflt.ads, s-expgen.adb, s-expgen.ads, s-expint.ads,
32878         s-explfl.ads, s-explin.ads, s-expllf.ads, s-explli.ads,
32879         s-expllu.adb, s-expllu.ads, s-expmod.adb, s-expmod.ads,
32880         s-expsfl.ads, s-expsin.ads, s-expssi.ads, s-expuns.adb,
32881         s-expuns.ads, s-fatflt.ads, s-fatgen.adb, s-fatgen.ads,
32882         s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads, s-ficobl.ads,
32883         s-fileio.adb, s-fileio.ads, s-finimp.adb, s-finimp.ads,
32884         s-finroo.adb, s-finroo.ads, s-fore.adb, s-fore.ads,
32885         s-gloloc.adb, s-gloloc.ads, s-imgbiu.adb, s-imgbiu.ads,
32886         s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads,
32887         s-imgdec.adb, s-imgdec.ads, s-imgenu.adb, s-imgenu.ads,
32888         s-imgint.adb, s-imgint.ads, s-imgllb.adb, s-imgllb.ads,
32889         s-imglld.adb, s-imglld.ads, s-imglli.adb, s-imglli.ads,
32890         s-imgllu.adb, s-imgllu.ads, s-imgllw.adb, s-imgllw.ads,
32891         s-imgrea.adb, s-imgrea.ads, s-imguns.adb, s-imguns.ads,
32892         s-imgwch.adb, s-imgwch.ads, s-imgwiu.adb, s-imgwiu.ads,
32893         s-inmaop.ads, s-interr.adb, s-interr.ads, s-intman.ads,
32894         s-io.adb, s-io.ads, s-maccod.ads, s-mantis.adb,
32895         s-mantis.ads, s-mastop.adb, s-mastop.ads, s-memory.adb,
32896         s-memory.ads, s-osprim.ads, s-pack03.adb, s-pack03.ads,
32897         s-pack05.adb, s-pack05.ads, s-pack06.adb, s-pack06.ads,
32898         s-pack07.adb, s-pack07.ads, s-pack09.adb, s-pack09.ads,
32899         s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads,
32900         s-pack12.adb, s-pack12.ads, s-pack13.adb, s-pack13.ads,
32901         s-pack14.adb, s-pack14.ads, s-pack15.adb, s-pack15.ads,
32902         s-pack17.adb, s-pack17.ads, s-pack18.adb, s-pack18.ads,
32903         s-pack19.adb, s-pack19.ads, s-pack20.adb, s-pack20.ads,
32904         s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads,
32905         s-pack23.adb, s-pack23.ads, s-pack24.adb, s-pack24.ads,
32906         s-pack25.adb, s-pack25.ads, s-pack26.adb, s-pack26.ads,
32907         s-pack27.adb, s-pack27.ads, s-pack28.adb, s-pack28.ads,
32908         s-pack29.adb, s-pack29.ads, s-pack30.adb, s-pack30.ads,
32909         s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads,
32910         s-pack34.adb, s-pack34.ads, s-pack35.adb, s-pack35.ads,
32911         s-pack36.adb, s-pack36.ads, s-pack37.adb, s-pack37.ads,
32912         s-pack38.adb, s-pack38.ads, s-pack39.adb, s-pack39.ads,
32913         s-pack40.adb, s-pack40.ads, s-pack41.adb, s-pack41.ads,
32914         s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads,
32915         s-pack44.adb, s-pack44.ads, s-pack45.adb, s-pack45.ads,
32916         s-pack46.adb, s-pack46.ads, s-pack47.adb, s-pack47.ads,
32917         s-pack48.adb, s-pack48.ads, s-pack49.adb, s-pack49.ads,
32918         s-pack50.adb, s-pack50.ads, s-pack51.adb, s-pack51.ads,
32919         s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads,
32920         s-pack54.adb, s-pack54.ads, s-pack55.adb, s-pack55.ads,
32921         s-pack56.adb, s-pack56.ads, s-pack57.adb, s-pack57.ads,
32922         s-pack58.adb, s-pack58.ads, s-pack59.adb, s-pack59.ads,
32923         s-pack60.adb, s-pack60.ads, s-pack61.adb, s-pack61.ads,
32924         s-pack62.adb, s-pack62.ads, s-pack63.adb, s-pack63.ads,
32925         s-parame.adb, s-parame.ads, s-parint.adb, s-parint.ads,
32926         s-pooglo.adb, s-pooglo.ads, s-pooloc.adb, s-pooloc.ads,
32927         s-poosiz.adb, s-poosiz.ads, s-powtab.ads, s-proinf.adb,
32928         s-proinf.ads, s-rpc.adb, s-rpc.ads, s-scaval.ads,
32929         s-secsta.adb, s-secsta.ads, s-sequio.adb, s-sequio.ads,
32930         s-shasto.adb, s-shasto.ads, s-soflin.adb, s-soflin.ads,
32931         s-sopco3.adb, s-sopco3.ads, s-sopco4.adb, s-sopco4.ads,
32932         s-sopco5.adb, s-sopco5.ads, s-stache.adb, s-stache.ads,
32933         s-stalib.adb, s-stalib.ads, s-stoele.adb, s-stoele.ads,
32934         s-stopoo.ads, s-stratt.adb, s-stratt.ads, s-strops.adb,
32935         s-strops.ads, s-taasde.adb, s-taasde.ads, s-tadeca.adb,
32936         s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-taenca.adb,
32937         s-taenca.ads, s-taprob.adb, s-taprob.ads, s-taprop.ads,
32938         s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads,
32939         s-tasinf.adb, s-tasinf.ads, s-tasini.adb, s-tasini.ads,
32940         s-taskin.adb, s-taskin.ads, s-tasque.adb, s-tasque.ads,
32941         s-tasren.adb, s-tasren.ads, s-tasres.ads, s-tassta.adb,
32942         s-tassta.ads, s-tasuti.adb, s-tasuti.ads, s-tataat.adb,
32943         s-tataat.ads, s-tpinop.adb, s-tpinop.ads, s-tpoben.adb,
32944         s-tpoben.ads, s-tpobop.adb, s-tpobop.ads, s-tposen.adb,
32945         s-tposen.ads, s-traceb.adb, s-traceb.ads, s-traces.adb,
32946         s-traces.ads, s-tratas.adb, s-tratas.ads, s-unstyp.ads,
32947         s-vaflop.adb, s-vaflop.ads, s-valboo.adb, s-valboo.ads,
32948         s-valcha.adb, s-valcha.ads, s-valdec.adb, s-valdec.ads,
32949         s-valenu.adb, s-valenu.ads, s-valint.adb, s-valint.ads,
32950         s-vallld.adb, s-vallld.ads, s-vallli.adb, s-vallli.ads,
32951         s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads,
32952         s-valuns.adb, s-valuns.ads, s-valuti.adb, s-valuti.ads,
32953         s-valwch.adb, s-valwch.ads, s-vercon.adb, s-vercon.ads,
32954         s-vmexta.adb, s-vmexta.ads, s-wchcnv.adb, s-wchcnv.ads,
32955         s-wchcon.ads, s-wchjis.adb, s-wchjis.ads, s-wchstw.adb,
32956         s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, s-widboo.adb,
32957         s-widboo.ads, s-widcha.adb, s-widcha.ads, s-widenu.adb,
32958         s-widenu.ads, s-widlli.adb, s-widlli.ads, s-widllu.adb,
32959         s-widllu.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb,
32960         s-wwdcha.ads, s-wwdenu.adb, s-wwdenu.ads, s-wwdwch.adb,
32961         s-wwdwch.ads, scans.adb, scans.ads, scn-nlit.adb,
32962         scn-slit.adb, scn.adb, scn.ads, sdefault.ads,
32963         sem.adb, sem.ads, sem_aggr.adb, sem_aggr.ads,
32964         sem_attr.adb, sem_attr.ads, sem_case.adb, sem_case.ads,
32965         sem_cat.adb, sem_cat.ads, sem_ch10.adb, sem_ch10.ads,
32966         sem_ch11.adb, sem_ch11.ads, sem_ch12.adb, sem_ch12.ads,
32967         sem_ch13.adb, sem_ch13.ads, sem_ch2.adb, sem_ch2.ads,
32968         sem_ch3.adb, sem_ch3.ads, sem_ch4.adb, sem_ch4.ads,
32969         sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
32970         sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads,
32971         sem_ch9.adb, sem_ch9.ads, sem_disp.adb, sem_disp.ads,
32972         sem_dist.adb, sem_dist.ads, sem_elab.adb, sem_elab.ads,
32973         sem_elim.adb, sem_elim.ads, sem_eval.adb, sem_eval.ads,
32974         sem_intr.adb, sem_intr.ads, sem_maps.adb, sem_maps.ads,
32975         sem_mech.adb, sem_mech.ads, sem_prag.adb, sem_prag.ads,
32976         sem_res.adb, sem_res.ads, sem_smem.adb, sem_smem.ads,
32977         sem_type.adb, sem_type.ads, sem_util.adb, sem_util.ads,
32978         sem_vfpt.adb, sem_vfpt.ads, sem_warn.adb, sem_warn.ads,
32979         sequenio.ads, sfn_scan.adb, sfn_scan.ads, sinfo-cn.adb,
32980         sinfo-cn.ads, sinfo.adb, sinfo.ads, sinput-d.adb,
32981         sinput-d.ads, sinput-l.adb, sinput-l.ads, sinput-p.adb,
32982         sinput-p.ads, sinput.adb, sinput.ads, snames.adb,
32983         snames.ads, sprint.adb, sprint.ads, stand.adb,
32984         stand.ads, stringt.adb, stringt.ads, style.adb,
32985         style.ads, stylesw.adb, stylesw.ads, switch-b.adb,
32986         switch-b.ads, switch-c.adb, switch-c.ads, switch-m.adb,
32987         switch-m.ads, switch.adb, switch.ads, system.ads,
32988         table.adb, table.ads, targparm.adb, targparm.ads,
32989         tbuild.adb, tbuild.ads, text_io.ads, trans.c,
32990         tree_gen.adb, tree_gen.ads, tree_in.adb, tree_in.ads,
32991         tree_io.adb, tree_io.ads, treepr.adb, treepr.ads,
32992         ttypef.ads, ttypes.ads, types.adb, types.ads,
32993         uintp.adb, uintp.ads, uname.adb, uname.ads,
32994         unchconv.ads, unchdeal.ads, urealp.adb, urealp.ads,
32995         usage.adb, usage.ads, validsw.adb, validsw.ads,
32996         widechar.adb, widechar.ads, xeinfo.adb, xnmake.adb,
32997         xr_tabls.adb, xr_tabls.ads, xref_lib.adb, xref_lib.ads,
32998         xsinfo.adb, xsnames.adb, xtreeprs.adb : Merge header,
32999         formatting and other trivial changes from ACT.
33000
33001 2003-04-12  Zack Weinberg  <zack@codesourcery.com>
33002
33003         * gigi.h, utils2.c (build_constructor):
33004         Rename gnat_build_constructor. Use build_constructor.
33005         * decl.c (gnat_to_gnu_entity)
33006         * trans.c (tree_transform, pos_to_constructor, extract_values)
33007         * ada/utils.c (build_template, convert_to_fat_pointer, convert)
33008         (unchecked_convert)
33009         * ada/utils2.c (build_binary_op, build_call_raise, build_allocator)
33010         (fill_vms_descriptor):
33011         Update to match.
33012
33013 2003-04-06  Zack Weinberg  <zack@codesourcery.com>
33014
33015         * ada-tree.def: Make fourth element for GNAT_LOOP_ID zero.
33016         * misc.c (gnat_tree_size): New function.
33017         (LANG_HOOKS_TREE_SIZE): Override.
33018
33019 2003-04-03  Jason Merrill  <jason@redhat.com>
33020
33021         * misc.c (gnat_adjust_rli): #if 0.
33022
33023 2003-03-31   Geert Bosch <bosch@gnat.com>
33024
33025         PR ada/10020
33026         * link.c : Fix misspelled "const" keyword
33027
33028 2003-03-23  Mark Mitchell  <mark@codesourcery.com>
33029
33030         PR c++/7086
33031         * utils2.c: Adjust calls to put_var_into_stack.
33032
33033 2003-03-12  Nathanael Nerode  <neroden@gcc.gnu.org>
33034
33035         * Make-lang.in, Makefile.in, config-lang.in: GCC, not GNU CC.
33036
33037 2003-03-08  Neil Booth  <neil@daikokuya.co.uk>
33038
33039         * misc.c (gnat_init): Update for new prototype.
33040
33041 2003-03-05  Olivier Hainque  <hainque@gnat.com>
33042
33043         ada/9961
33044         * raise.c (__gnat_Unwind_RaiseException): Add prototype to avoid
33045         warning, and fix return type for the IN_RTS && !SJLJ case.
33046
33047 2003-03-04  Tom Tromey  <tromey@redhat.com>
33048
33049         * Make-lang.in (ada.tags): New target.
33050
33051 2003-03-04  Olivier Hainque  <hainque@act-europe.fr>
33052
33053         ada/9911
33054         * a-except.adb (Unwind_RaiseException): Import a GNAT specific
33055         wrapper, which name remains constant whatever underlying GCC
33056         scheme.
33057
33058         * raise.c (__gnat_Unwind_RaiseException): New wrappers, providing
33059         the stable interface needed for a-except.
33060
33061 2003-03-02  Andreas Jaeger  <aj@suse.de>
33062
33063         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
33064         gnat_ug_wnt.texi: Regenerate.
33065
33066 2003-03-02  Laurent Guerby <guerby@acm.org>
33067
33068         * Makefile.in (install-gnatlib): Match previous change there
33069         so it works.
33070
33071 2003-02-28  Andreas Schwab  <schwab@suse.de>
33072
33073         * Make-lang.in (install-gnatlib): Change to ada directory before
33074         running make instead of using ada/Makefile directly.
33075
33076 2003-02-18  Ben Elliston  <bje@redhat.com>
33077
33078         Part of PR ada/9406
33079         * gnat_ug.texi (Binder output file): Grammar fix.
33080
33081 2003-02-18  Ben Elliston  <bje@redhat.com>
33082
33083         PR other/7350
33084         * 5qtaprop.adb (Sleep): Fix typo in comment.
33085
33086 2003-02-04  Joseph S. Myers  <jsm@polyomino.org.uk>
33087
33088         * gnat_rm.texi, gnat_ug.texi: Update to GFDL 1.2.
33089         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
33090         gnat_ug_wnt.texi: Regenerate.
33091
33092 2003-02-03  Christian Cornelssen <ccorn@cs.tu-berlin.de>
33093
33094         * Make-lang.in (ada.install-info): Let $(DESTDIR)$(infodir)
33095         be created if necessary.
33096         (ada.install-common): Let $(DESTDIR)$(bindir) be created
33097         if necessary.  Remove erroneous and redundant gnatchop
33098         installation commands.  Test for gnatdll before attempting
33099         to install it.
33100         (ada.uninstall): Also uninstall gnatfind, gnatxref, gnatlbr,
33101         and gnatdll from all plausible locations.
33102
33103 2003-02-01  Richard Sandiford  <rsandifo@redhat.com>
33104
33105         * utils2.c (build_unary_op): Don't check flag_volatile.
33106         * gnat_ug.texi: Remove -fvolatile from example.
33107         * gnat_ug_vxw.texi: Likewise.
33108
33109 2003-01-29  Laurent Guerby <guerby@acm.org>
33110
33111         PR ada/8344
33112         * final.c: rename to adafinal.c to avoid file name conflicts with gcc file.
33113         * Makefile.in: match previous change.
33114         * Make-lang.in: match previous change.
33115
33116 2003-01-29      Joel Sherrill <joel@OARcorp.com>
33117
33118         * 5rosinte.ads: Add SIGXCPU.
33119         * 5rtpopsp.adb: New file.
33120         * Make-lang.in: Do not build gnatpsta and gnatpsys when cross.
33121         * Makefile.in: Recognize more RTEMS targets and add the RTEMS
33122         specific file 5rtpopsp.adb.
33123         * adaint.h: Add include of <stdio.h> when target is RTEMS.  This
33124         is likely needed for all newlib targets.
33125         * init.c: Add RTEMS specific version of __gnat_initialize().
33126
33127 2003-01-28  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
33128
33129         * adaint.c, adaint.h, gmem.c, init.c: Update copyright year.
33130
33131 2003-01-27  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
33132
33133         * init.c (__gnat_error_handler): Make msg const.
33134
33135         * gmem.c (convert_addresses): Move declaration ...
33136         * adaint.h: ... here.
33137         * adaint.c (convert_addresses): Adapt addrs type to match
33138         prototype.
33139
33140         * adaint.c (__gnat_try_lock): Cast pid_t to long, adapt format.
33141
33142 2003-01-24  Andreas Schwab  <schwab@suse.de>
33143
33144         * ada-tree.h (SET_TYPE_DIGITS_VALUE): Add intermediate cast to
33145         size_t to avoid warning.
33146
33147 2003-01-21  Zack Weinberg  <zack@codesourcery.com>
33148
33149         * Make-lang.in: Disable -Werror for tracebak.c and b_gnatb.c.
33150
33151 2003-01-09  Geoffrey Keating  <geoffk@apple.com>
33152
33153         * gnat_rm.texi: Remove RCS version number.
33154
33155         * ada-tree.h (union lang_tree_node): Add chain_next option.
33156
33157 2003-01-09  Christian Cornelssen  <ccorn@cs.tu-berlin.de>
33158
33159         * Make-lang.in (ada.install-info, ada.install-common,
33160         ada.uninstall): Prepend $(DESTDIR) to the destination
33161         directory in all (un)installation commands.
33162         * Makefile.in (install-gnatlib, install-rts): Ditto.
33163
33164 2002-12-28  Joseph S. Myers  <jsm@polyomino.org.uk>
33165
33166         * gnat_rm.texi, gnat_ug.texi: Use @copying.
33167         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
33168         gnat_ug_wnt.texi: Regenerate.
33169
33170 2002-12-23  Joseph S. Myers  <jsm@polyomino.org.uk>
33171
33172         * gnat_rm.texi: Include gcc-common.texi.  Use GCC version number
33173         only.
33174         * Make-lang.in ($(srcdir)/ada/gnat_ug_unx.info,
33175         $(srcdir)/ada/gnat_ug_vms.info, $(srcdir)/ada/gnat_ug_vxw.info,
33176         $(srcdir)/ada/gnat_ug_wnt.info, $(srcdir)/ada/gnat_rm.info,
33177         ada/gnat_ug_unx.dvi, ada/gnat_ug_vms.dvi, ada/gnat_ug_vxw.dvi,
33178         ada/gnat_ug_wnt.dvi, ada/gnat_rm.dvi): Depend on
33179         $(srcdir)/doc/include/gcc-common.texi.
33180
33181 2002-12-15   Geert Bosch <bosch@gnat.com>
33182
33183         * sem_ch6.adb (Analyze_Subprogram_Body): Fix typo and formatting
33184
33185 2002-12-14   Geert Bosch <bosch@gnat.com>
33186
33187         PR ada/5690
33188         * sem_ch6.adb (Analyze_Subprogram_Body): Recognize additional
33189         case of a body created for a Renaming_As_Body, on which
33190         conformance checks are not performed.
33191
33192 2002-11-30  Zack Weinberg  <zack@codesourcery.com>
33193
33194         * cuintp.c, decl.c, deftarg.c, misc.c, targtyps.c, trans.c,
33195         utils.c, utils2.c: Include coretypes.h and tm.h, and system.h when
33196         not already included.
33197         * Make-lang.in: Update dependencies.
33198
33199 2002-11-18  Nathanael Nerode  <neroden@gcc.gnu.org>
33200         * adaint.c (__gnat_tmp_name): Better, but good enough for now,
33201         solution to buffer overflow bug on GNU/Linux.
33202
33203 2002-11-14  Nathanael Nerode  <neroden@gcc.gnu.org>
33204
33205         PR ada/5856
33206         PR ada/6919
33207         * bindgen.adb: Remove all references to Public_Version.
33208         * comperr.adb: Remove all references to Public_Version and
33209         GNATPRO_Version; correct bug reporting instructions.
33210         * comperr.ads: Change to match bug box.
33211         * gnatvsn.ads: Remove all references to Public version and
33212         GNATPRO version.
33213
33214 2002-11-13  Nathanael Nerode  <neroden@gcc.gnu.org>
33215
33216         PR ada/6919
33217         * adaint.c (__gnat_tmp_name): Remove buffer overflow bug on
33218         GNU/Linux.
33219
33220         PR ada/6558
33221         * config-lang.in: Remove diff_excludes.
33222
33223 2002-11-05  Graham Stott  <graham.stott@btinternet.com>
33224
33225         PR ada/8358
33226         * trans.c (gnu_pending_elaboration_lists): New GC root.
33227         (build_unit_elab): Use..
33228
33229 2002-10-30   Geert Bosch <bosch@gnat.com>
33230
33231         PR ada/6558
33232         * misc.c : Include optabs.h
33233
33234         * Make-lang.in (misc.o): Add dependency on optabs.h
33235
33236 2002-10-29   Geert Bosch <bosch@gnat.com>
33237
33238         PR ada/6558
33239         * Make-lang.in (gnatbind): Depend on CONFIG_H
33240
33241 2002-10-29  Geert bosch  <bosch@gnat.com>
33242
33243         PR ada/6558
33244         * misc.c: Unrevert misc.c (1.13)
33245
33246 2002-10-28  Nathanael Nerode  <neroden@gcc.gnu.org>
33247
33248         * a-chlat9.ads a-cwila9.ads a-dynpri.adb a-retide.adb: Update
33249         maintainership comments.
33250
33251 2002-09-25  Nathanael Nerode  <neroden@gcc.gnu.org>
33252
33253         PR ada/5904
33254         * 5ataprop.adb 5atpopsp.adb 5bosinte.adb 5ftaprop.adb
33255         5gtaprop.adb 5htaprop.adb 5rosinte.ads 5staprop.adb
33256         5stpopse.adb 5vtaspri.ads 5zintman.adb 5ztaprop.adb
33257         7staprop.adb: Correct statements in comments about
33258         maintainership of GNAT.
33259
33260         PR ada/5904
33261         * 1ssecsta.adb 1ssecsta.ads adadecode.c adadecode.h aux-io.c
33262         gnatname.adb gnatname.ads mkdir.c osint-b.adb osint-b.ads
33263         osint-c.adb osint-c.ads osint-l.adb osint-l.ads osint-m.adb
33264         osint-m.ads prj-makr.adb prj-makr.ads prj-pp.adb prj-pp.ads
33265         s-atacco.ads s-traceb.adb s-traceb.ads s-traces.adb
33266         s-traces.ads s-tratas.adb s-tratas.ads sinput-d.adb
33267         sinput-d.ads switch-b.adb switch-b.ads switch-c.adb
33268         switch-c.ads switch-m.adb switch-m.ads: Correct statements in
33269         comments about maintainership of GNAT.
33270
33271         PR ada/6919 (forward port of patch for PR ada/5904)
33272         * 1aexcept.adb 1aexcept.ads 41intnam.ads 42intnam.ads
33273         4aintnam.ads 4cintnam.ads 4dintnam.ads 4hexcpol.adb
33274         4lintnam.ads 4mintnam.ads 4nintnam.ads 4onumaux.ads
33275         4pintnam.ads 4rintnam.ads 4sintnam.ads 4uintnam.ads
33276         4vcalend.adb 4vintnam.ads 4wcalend.adb 4wexcpol.adb
33277         4wintnam.ads 4zintnam.ads 4znumaux.ads 4zsytaco.adb
33278         4zsytaco.ads 51osinte.adb 51osinte.ads 52osinte.adb
33279         52osinte.ads 52system.ads 53osinte.ads 5aosinte.ads
33280         5asystem.ads 5atasinf.ads 5ataspri.ads 5avxwork.ads
33281         5bosinte.ads 5bsystem.ads 5cosinte.ads 5dosinte.ads
33282         5esystem.ads 5fosinte.ads 5fsystem.ads 5ftasinf.ads
33283         5ginterr.adb 5gmastop.adb 5gosinte.ads 5gproinf.adb
33284         5gproinf.ads 5gsystem.ads 5gtasinf.adb 5gtasinf.ads
33285         5gtpgetc.adb 5hparame.ads 5hsystem.ads 5htaspri.ads
33286         5iosinte.ads 5itaspri.ads 5ksystem.ads 5kvxwork.ads
33287         5losinte.ads 5lsystem.ads 5mosinte.ads 5mvxwork.ads
33288         5ninmaop.adb 5nintman.adb 5nosinte.ads 5ntaspri.ads
33289         5oosprim.adb 5oparame.adb 5osystem.ads 5posinte.ads
33290         5posprim.adb 5pvxwork.ads 5rosinte.ads 5rparame.adb
33291         5sintman.adb 5sosinte.ads 5sparame.adb 5ssystem.ads
33292         5stasinf.adb 5stasinf.ads 5staspri.ads 5svxwork.ads
33293         5tosinte.ads 5uosinte.ads 5vasthan.adb 5vinterr.adb
33294         5vintman.ads 5vosinte.ads 5vosprim.adb 5vosprim.ads
33295         5vparame.ads 5vsystem.ads 5vtaspri.ads 5vtpopde.adb
33296         5vtpopde.ads 5vvaflop.adb 5wintman.adb 5wmemory.adb
33297         5wosinte.ads 5wosprim.adb 5wsystem.ads 5wtaprop.adb
33298         5wtaspri.ads 5ysystem.ads 5zinterr.adb 5zosinte.adb
33299         5zosinte.ads 5zosprim.adb 5zsystem.ads 6vcpp.adb 6vcstrea.adb
33300         7sosprim.adb 86numaux.adb 86numaux.ads 9drpc.adb a-astaco.adb
33301         a-caldel.ads a-calend.adb a-calend.ads a-chahan.adb
33302         a-chahan.ads a-colien.adb a-colien.ads a-colire.adb
33303         a-colire.ads a-comlin.adb a-comlin.ads a-cwila1.ads
33304         a-decima.adb a-decima.ads a-diocst.adb a-diocst.ads
33305         a-direio.adb a-direio.ads a-einuoc.adb a-einuoc.ads
33306         a-except.adb a-except.ads a-excpol.adb a-exctra.adb
33307         a-exctra.ads a-filico.adb a-filico.ads a-finali.adb
33308         a-finali.ads a-interr.ads a-intsig.adb a-intsig.ads
33309         a-ngcefu.adb a-ngcoty.adb a-ngcoty.ads a-ngelfu.adb
33310         a-nudira.adb a-nudira.ads a-nuflra.adb a-nuflra.ads
33311         a-numaux.ads a-reatim.ads a-retide.ads a-sequio.adb
33312         a-sequio.ads a-siocst.adb a-siocst.ads a-ssicst.adb
33313         a-ssicst.ads a-stmaco.ads a-storio.adb a-strbou.adb
33314         a-strbou.ads a-stream.ads a-strfix.adb a-strfix.ads
33315         a-strmap.adb a-strmap.ads a-strsea.adb a-strsea.ads
33316         a-strunb.adb a-strunb.ads a-ststio.adb a-ststio.ads
33317         a-stunau.adb a-stunau.ads a-stwibo.adb a-stwibo.ads
33318         a-stwifi.adb a-stwima.adb a-stwima.ads a-stwise.adb
33319         a-stwise.ads a-stwiun.adb a-stwiun.ads a-suteio.adb
33320         a-suteio.ads a-swmwco.ads a-swuwti.adb a-swuwti.ads
33321         a-sytaco.adb a-sytaco.ads a-tags.adb a-tags.ads a-tasatt.ads
33322         a-taside.adb a-taside.ads a-teioed.adb a-teioed.ads
33323         a-textio.adb a-textio.ads a-ticoau.adb a-ticoau.ads
33324         a-ticoio.adb a-ticoio.ads a-tideau.adb a-tideau.ads
33325         a-tideio.adb a-tideio.ads a-tienau.adb a-tienau.ads
33326         a-tienio.adb a-tienio.ads a-tifiio.adb a-tifiio.ads
33327         a-tiflau.adb a-tiflau.ads a-tiflio.adb a-tiflio.ads
33328         a-tigeau.adb a-tigeau.ads a-tiinau.adb a-tiinau.ads
33329         a-tiinio.adb a-tiinio.ads a-timoau.adb a-timoau.ads
33330         a-timoio.adb a-timoio.ads a-tiocst.adb a-tiocst.ads
33331         a-titest.adb a-witeio.adb a-witeio.ads a-wtcoau.adb
33332         a-wtcoau.ads a-wtcoio.adb a-wtcstr.adb a-wtcstr.ads
33333         a-wtdeau.adb a-wtdeau.ads a-wtdeio.adb a-wtdeio.ads
33334         a-wtedit.adb a-wtedit.ads a-wtenau.adb a-wtenau.ads
33335         a-wtenio.adb a-wtenio.ads a-wtfiio.adb a-wtfiio.ads
33336         a-wtflau.adb a-wtflau.ads a-wtflio.adb a-wtflio.ads
33337         a-wtgeau.adb a-wtgeau.ads a-wtinau.adb a-wtinau.ads
33338         a-wtinio.adb a-wtmoau.adb a-wtmoau.ads a-wtmoio.adb
33339         a-wtmoio.ads a-wttest.adb ada-tree.def ada-tree.h ada.h
33340         adaint.c adaint.h ali-util.adb ali-util.ads ali.adb ali.ads
33341         alloc.ads argv.c atree.adb atree.ads atree.h back_end.adb
33342         back_end.ads bcheck.adb bcheck.ads binde.adb binde.ads
33343         binderr.adb binderr.ads bindgen.adb bindgen.ads bindusg.adb
33344         bindusg.ads butil.adb butil.ads cal.c casing.adb casing.ads
33345         ceinfo.adb checks.adb checks.ads cio.c comperr.adb comperr.ads
33346         csets.adb csets.ads csinfo.adb cstand.adb cstand.ads
33347         cstreams.c cuintp.c debug.adb debug.ads debug_a.adb
33348         debug_a.ads dec-io.adb dec-io.ads dec.ads decl.c deftarg.c
33349         einfo.adb einfo.ads einfo.h elists.adb elists.ads elists.h
33350         errno.c errout.adb errout.ads eval_fat.adb eval_fat.ads exit.c
33351         exp_aggr.adb exp_aggr.ads exp_attr.adb exp_attr.ads
33352         exp_ch10.ads exp_ch11.adb exp_ch11.ads exp_ch12.adb
33353         exp_ch12.ads exp_ch13.adb exp_ch13.ads exp_ch2.adb exp_ch2.ads
33354         exp_ch3.adb exp_ch3.ads exp_ch4.adb exp_ch4.ads exp_ch5.adb
33355         exp_ch5.ads exp_ch6.adb exp_ch6.ads exp_ch7.adb exp_ch7.ads
33356         exp_ch8.adb exp_ch8.ads exp_ch9.adb exp_ch9.ads exp_code.adb
33357         exp_code.ads exp_dbug.adb exp_dbug.ads exp_disp.adb
33358         exp_disp.ads exp_dist.adb exp_dist.ads exp_fixd.adb
33359         exp_fixd.ads exp_imgv.adb exp_imgv.ads exp_intr.adb
33360         exp_intr.ads exp_pakd.adb exp_pakd.ads exp_prag.adb
33361         exp_prag.ads exp_smem.adb exp_smem.ads exp_strm.adb
33362         exp_strm.ads exp_tss.adb exp_tss.ads exp_util.adb exp_util.ads
33363         exp_vfpt.adb exp_vfpt.ads expander.adb expander.ads fe.h
33364         final.c fmap.adb fmap.ads fname-sf.adb fname-sf.ads
33365         fname-uf.adb fname-uf.ads fname.adb fname.ads freeze.adb
33366         freeze.ads frontend.adb frontend.ads g-calend.ads g-comlin.adb
33367         g-debpoo.adb g-debpoo.ads g-locfil.adb g-os_lib.ads
33368         g-regist.adb g-regist.ads get_targ.adb get_targ.ads gigi.h
33369         gmem.c gnat1drv.adb gnat1drv.ads gnat_ug.texi gnatbind.adb
33370         gnatbind.ads gnatbl.c gnatcmd.adb gnatcmd.ads gnatdll.adb
33371         gnatfind.adb gnatkr.adb gnatkr.ads gnatlbr.adb gnatlink.adb
33372         gnatlink.ads gnatls.adb gnatls.ads gnatmake.adb gnatmake.ads
33373         gnatmem.adb gnatprep.adb gnatprep.ads gnatpsta.adb gnatvsn.ads
33374         gnatxref.adb hlo.adb hlo.ads hostparm.ads i-c.adb i-cexten.ads
33375         i-cobol.adb i-cobol.ads i-cpoint.adb i-cpoint.ads i-cpp.adb
33376         i-cpp.ads i-cstrea.adb i-cstrea.ads i-cstrin.adb i-cstrin.ads
33377         i-fortra.adb i-os2err.ads i-os2lib.adb i-os2lib.ads
33378         i-os2syn.ads i-os2thr.ads i-pacdec.adb i-pacdec.ads
33379         impunit.adb impunit.ads init.c inline.adb inline.ads io-aux.c
33380         itypes.adb itypes.ads krunch.adb krunch.ads lang-options.h
33381         lang-specs.h layout.adb layout.ads lib-list.adb lib-load.adb
33382         lib-load.ads lib-sort.adb lib-util.adb lib-util.ads
33383         lib-writ.adb lib-writ.ads lib-xref.adb lib-xref.ads lib.adb
33384         lib.ads link.c live.adb live.ads make.adb make.ads makeusg.adb
33385         makeusg.ads math_lib.adb mdll.adb mdll.ads memtrack.adb misc.c
33386         namet.adb namet.ads namet.h nlists.adb nlists.ads nlists.h
33387         nmake.adb nmake.ads nmake.adt opt.adb opt.ads osint.adb
33388         osint.ads output.adb output.ads par-ch10.adb par-ch11.adb
33389         par-ch12.adb par-ch13.adb par-ch2.adb par-ch3.adb par-ch4.adb
33390         par-ch5.adb par-ch6.adb par-ch7.adb par-ch8.adb par-ch9.adb
33391         par-endh.adb par-labl.adb par-load.adb par-prag.adb
33392         par-sync.adb par-tchk.adb par-util.adb par.adb par.ads
33393         prj-attr.adb prj-attr.ads prj-com.adb prj-com.ads prj-dect.adb
33394         prj-dect.ads prj-env.adb prj-env.ads prj-ext.adb prj-ext.ads
33395         prj-nmsc.adb prj-nmsc.ads prj-pars.adb prj-pars.ads
33396         prj-part.adb prj-part.ads prj-proc.adb prj-proc.ads
33397         prj-strt.adb prj-strt.ads prj-tree.adb prj-tree.ads
33398         prj-util.adb prj-util.ads prj.adb prj.ads raise.c raise.h
33399         repinfo.adb repinfo.ads repinfo.h restrict.adb restrict.ads
33400         rident.ads rtsfind.adb rtsfind.ads s-addima.adb s-addima.ads
33401         s-arit64.adb s-arit64.ads s-assert.adb s-assert.ads
33402         s-asthan.adb s-asthan.ads s-atacco.adb s-auxdec.adb
33403         s-auxdec.ads s-bitops.adb s-bitops.ads s-chepoo.ads
33404         s-direio.adb s-direio.ads s-except.ads s-exctab.adb
33405         s-exctab.ads s-exnflt.ads s-exngen.adb s-exngen.ads
33406         s-exnint.ads s-exnlfl.ads s-exnlin.ads s-exnllf.ads
33407         s-exnlli.ads s-exnsfl.ads s-exnsin.ads s-exnssi.ads
33408         s-expflt.ads s-expgen.adb s-expgen.ads s-expint.ads
33409         s-explfl.ads s-explin.ads s-expllf.ads s-explli.ads
33410         s-expllu.adb s-expllu.ads s-expmod.adb s-expmod.ads
33411         s-expsfl.ads s-expsin.ads s-expssi.ads s-expuns.adb
33412         s-expuns.ads s-fatflt.ads s-fatgen.adb s-fatgen.ads
33413         s-fatlfl.ads s-fatllf.ads s-fatsfl.ads s-ficobl.ads
33414         s-fileio.adb s-fileio.ads s-finimp.adb s-finimp.ads
33415         s-finroo.adb s-finroo.ads s-fore.adb s-fore.ads s-imgbiu.adb
33416         s-imgbiu.ads s-imgboo.adb s-imgboo.ads s-imgcha.adb
33417         s-imgcha.ads s-imgdec.adb s-imgdec.ads s-imgenu.adb
33418         s-imgenu.ads s-imgint.adb s-imgint.ads s-imgllb.adb
33419         s-imgllb.ads s-imglld.adb s-imglld.ads s-imglli.adb
33420         s-imglli.ads s-imgllu.adb s-imgllu.ads s-imgllw.adb
33421         s-imgllw.ads s-imgrea.adb s-imgrea.ads s-imguns.adb
33422         s-imguns.ads s-imgwch.adb s-imgwch.ads s-imgwiu.adb
33423         s-imgwiu.ads s-inmaop.ads s-interr.adb s-interr.ads
33424         s-intman.ads s-io.adb s-io.ads s-maccod.ads s-mantis.adb
33425         s-mantis.ads s-memory.adb s-memory.ads s-osprim.ads
33426         s-pack03.adb s-pack03.ads s-pack05.adb s-pack05.ads
33427         s-pack06.adb s-pack06.ads s-pack07.adb s-pack07.ads
33428         s-pack09.adb s-pack09.ads s-pack10.adb s-pack10.ads
33429         s-pack11.adb s-pack11.ads s-pack12.adb s-pack12.ads
33430         s-pack13.adb s-pack13.ads s-pack14.adb s-pack14.ads
33431         s-pack15.adb s-pack15.ads s-pack17.adb s-pack17.ads
33432         s-pack18.adb s-pack18.ads s-pack19.adb s-pack19.ads
33433         s-pack20.adb s-pack20.ads s-pack21.adb s-pack21.ads
33434         s-pack22.adb s-pack22.ads s-pack23.adb s-pack23.ads
33435         s-pack24.adb s-pack24.ads s-pack25.adb s-pack25.ads
33436         s-pack26.adb s-pack26.ads s-pack27.adb s-pack27.ads
33437         s-pack28.adb s-pack28.ads s-pack29.adb s-pack29.ads
33438         s-pack30.adb s-pack30.ads s-pack31.adb s-pack31.ads
33439         s-pack33.adb s-pack33.ads s-pack34.adb s-pack34.ads
33440         s-pack35.adb s-pack35.ads s-pack36.adb s-pack36.ads
33441         s-pack37.adb s-pack37.ads s-pack38.adb s-pack38.ads
33442         s-pack39.adb s-pack39.ads s-pack40.adb s-pack40.ads
33443         s-pack41.adb s-pack41.ads s-pack42.adb s-pack42.ads
33444         s-pack43.adb s-pack43.ads s-pack44.adb s-pack44.ads
33445         s-pack45.adb s-pack45.ads s-pack46.adb s-pack46.ads
33446         s-pack47.adb s-pack47.ads s-pack48.adb s-pack48.ads
33447         s-pack49.adb s-pack49.ads s-pack50.adb s-pack50.ads
33448         s-pack51.adb s-pack51.ads s-pack52.adb s-pack52.ads
33449         s-pack53.adb s-pack53.ads s-pack54.adb s-pack54.ads
33450         s-pack55.adb s-pack55.ads s-pack56.adb s-pack56.ads
33451         s-pack57.adb s-pack57.ads s-pack58.adb s-pack58.ads
33452         s-pack59.adb s-pack59.ads s-pack60.adb s-pack60.ads
33453         s-pack61.adb s-pack61.ads s-pack62.adb s-pack62.ads
33454         s-pack63.adb s-pack63.ads s-parame.adb s-parame.ads
33455         s-parint.adb s-parint.ads s-pooglo.adb s-pooglo.ads
33456         s-pooloc.adb s-pooloc.ads s-poosiz.adb s-poosiz.ads
33457         s-powtab.ads s-proinf.adb s-proinf.ads s-rpc.adb s-rpc.ads
33458         s-scaval.ads s-secsta.adb s-secsta.ads s-sequio.adb
33459         s-sequio.ads s-shasto.adb s-shasto.ads s-soflin.adb
33460         s-soflin.ads s-sopco3.adb s-sopco3.ads s-sopco4.adb
33461         s-sopco4.ads s-sopco5.adb s-sopco5.ads s-stache.adb
33462         s-stache.ads s-stalib.adb s-stalib.ads s-stoele.adb
33463         s-stopoo.ads s-stratt.adb s-stratt.ads s-strops.adb
33464         s-strops.ads s-taprob.ads s-taprop.ads s-tarest.ads
33465         s-tasdeb.adb s-tasdeb.ads s-tasinf.adb s-tasinf.ads
33466         s-tasini.ads s-taskin.ads s-tasren.ads s-tasres.ads
33467         s-tassta.ads s-tpinop.adb s-tpinop.ads s-tpoben.ads
33468         s-tpobop.ads s-unstyp.ads s-vaflop.adb s-vaflop.ads
33469         s-valboo.adb s-valboo.ads s-valcha.adb s-valcha.ads
33470         s-valdec.adb s-valdec.ads s-valenu.adb s-valenu.ads
33471         s-valint.adb s-valint.ads s-vallld.adb s-vallld.ads
33472         s-vallli.adb s-vallli.ads s-valllu.adb s-valllu.ads
33473         s-valrea.adb s-valrea.ads s-valuns.adb s-valuns.ads
33474         s-valuti.adb s-valuti.ads s-valwch.adb s-valwch.ads
33475         s-vercon.adb s-vercon.ads s-vmexta.adb s-vmexta.ads
33476         s-wchcnv.adb s-wchcnv.ads s-wchcon.ads s-wchjis.adb
33477         s-wchjis.ads s-wchstw.adb s-wchstw.ads s-wchwts.adb
33478         s-wchwts.ads s-widboo.adb s-widboo.ads s-widcha.adb
33479         s-widcha.ads s-widenu.adb s-widenu.ads s-widlli.adb
33480         s-widlli.ads s-widllu.adb s-widllu.ads s-widwch.adb
33481         s-widwch.ads s-wwdcha.adb s-wwdcha.ads s-wwdenu.adb
33482         s-wwdenu.ads s-wwdwch.adb s-wwdwch.ads scans.adb scans.ads
33483         scn-nlit.adb scn-slit.adb scn.adb scn.ads sdefault.ads sem.adb
33484         sem.ads sem_aggr.adb sem_aggr.ads sem_attr.adb sem_attr.ads
33485         sem_case.adb sem_case.ads sem_cat.adb sem_cat.ads sem_ch10.adb
33486         sem_ch10.ads sem_ch11.adb sem_ch11.ads sem_ch12.adb
33487         sem_ch12.ads sem_ch13.adb sem_ch13.ads sem_ch2.adb sem_ch2.ads
33488         sem_ch3.adb sem_ch3.ads sem_ch4.adb sem_ch4.ads sem_ch5.adb
33489         sem_ch5.ads sem_ch6.adb sem_ch6.ads sem_ch7.adb sem_ch7.ads
33490         sem_ch8.adb sem_ch8.ads sem_ch9.adb sem_ch9.ads sem_disp.adb
33491         sem_disp.ads sem_dist.adb sem_dist.ads sem_elab.adb
33492         sem_elab.ads sem_elim.adb sem_elim.ads sem_eval.adb
33493         sem_eval.ads sem_intr.adb sem_intr.ads sem_maps.adb
33494         sem_maps.ads sem_mech.adb sem_mech.ads sem_prag.adb
33495         sem_prag.ads sem_res.adb sem_res.ads sem_smem.adb sem_smem.ads
33496         sem_type.adb sem_type.ads sem_util.adb sem_util.ads
33497         sem_vfpt.adb sem_vfpt.ads sem_warn.adb sem_warn.ads
33498         sfn_scan.adb sfn_scan.ads sinfo-cn.adb sinfo-cn.ads sinfo.adb
33499         sinfo.ads sinfo.h sinput-l.adb sinput-l.ads sinput-p.adb
33500         sinput-p.ads sinput.adb sinput.ads snames.adb snames.ads
33501         snames.h sprint.adb sprint.ads stand.adb stand.ads stringt.adb
33502         stringt.ads stringt.h style.adb style.ads stylesw.adb
33503         stylesw.ads switch.adb switch.ads sysdep.c system.ads
33504         table.adb table.ads targparm.adb targparm.ads targtyps.c
33505         tbuild.adb tbuild.ads trans.c tree_gen.adb tree_gen.ads
33506         tree_in.adb tree_in.ads tree_io.adb tree_io.ads treepr.adb
33507         treepr.ads treeprs.ads treeprs.adt ttypef.ads ttypes.ads
33508         types.adb types.ads types.h uintp.adb uintp.ads uintp.h
33509         uname.adb uname.ads urealp.adb urealp.ads urealp.h usage.adb
33510         usage.ads utils.c utils2.c validsw.adb validsw.ads
33511         widechar.adb widechar.ads xeinfo.adb xnmake.adb xr_tabls.adb
33512         xr_tabls.ads xref_lib.adb xref_lib.ads xsinfo.adb xsnames.adb
33513         xtreeprs.adb: Correct statements in comments about maintainership
33514         of GNAT.
33515
33516 2002-09-23  Zack Weinberg  <zack@codesourcery.com>
33517
33518         * Make-lang.in (EXTRA_GNATBIND_OBJS): Add version.o.
33519         * Makefile.in (TOOLS_LIBS): Add ../../version.o.
33520         * gnatvsn.ads: Gnat_Version_String is now a function.
33521         * gnatvsn.adb: New file.  When asked for Gnat_Version_String,
33522         copy the C version_string into a String and return it.
33523         * gnatcmd.adb, gnatkr.adb, gnatlbr.adb, gnatlink.adb,
33524         gnatls.adb,gnatmake.adb, gnatprep.adb, gnatpsta.adb:
33525         Remove pragma Ident (Gnat_Version_String).  If this was the
33526         sole use of package Gnatvsn, remove the with statement too.
33527         * gnat1drv.adb: Tweak -gnatv output.
33528
33529 2002-09-17  Richard Henderson  <rth@redhat.com>
33530
33531         * trans.c (tree_transform): Use real_ldexp not REAL_VALUE_LDEXP.
33532         * config/dsp16xx/dsp16xx.md (fixuns_trunchfhi2): Use real_2expN.
33533         * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
33534         (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
33535         * config/m68k/m68k.c (floating_exact_log2): Use real_exponent
33536         and real_2expN instead of a loop.
33537         * doc/tm.texi (REAL_VALUE_LDEXP): Remove.
33538         (REAL_VALUE_RNDZINT, REAL_VALUE_UNSIGNED_RNDZINT): Remove.
33539
33540 2002-08-25  Andre Leis <a.leis@gmx.net>
33541             David Billinghurst (David.Billinghurst@riotinto.com>
33542
33543         * sysdep.c (__gnat_ttyname): include <termios.h> on cygwin
33544
33545 2002-08-13  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
33546
33547         * Make-lang.in (gnatbind$(exeext)): Link with $(SYSLIBS).
33548         Remove $(CONFIG_H) dependency.
33549
33550 2002-08-08  Nathan Sidwell  <nathan@codesourcery.com>
33551
33552         * ada/Make-lang.in (ada.mostlyclean): Remove coverage files.
33553
33554 2002-07-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
33555
33556         * adadecode.c (ada_demangle): Use xstrdup in lieu of
33557         xmalloc/strcpy.
33558         * misc.c (gnat_decode_option): Likewise.
33559
33560 2002-07-15  Florian Weimer  <fw@deneb.enyo.de>
33561
33562         * make.adb (Add_Switch): Make Generic_Position a procedure.  The
33563         function approach did not work well because of a side effect (the
33564         function call could reallocate the table which was being indexed
33565         using its result). Fixes ada/4851. [RESURRECTED]
33566
33567 2002-07-01  Roger Sayle  <roger@eyesopen.com>
33568
33569         * ada/utils.c (builtin_function): Accept an additional parameter.
33570
33571 2002-06-28  Andreas Jaeger  <aj@suse.de>
33572
33573         PR ada/7144
33574         * Makefile.in: Fix typo in comment, patch by Adrian Knoth
33575         <adi@thur.de>.
33576
33577 2002-06-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
33578
33579         * Makefile.in (SHELL): Set to @SHELL@.
33580
33581 2002-06-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
33582
33583         * utils.c (init_gigi_decls): Use ARRAY_SIZE in lieu of explicit
33584         array size calculation.
33585
33586 2002-06-04  Andreas Jaeger  <aj@suse.de>
33587
33588         * Make-lang.in (gnatbind): Readd rule that has been lost in last
33589         patch.
33590
33591 2002-06-03  Geoffrey Keating  <geoffk@redhat.com>
33592
33593         Merge from pch-branch:
33594
33595         * config-lang.in (gtfiles): Add ada-tree.h.
33596         * ada-tree.h (SET_TYPE_CI_CO_LIST): New.
33597         (SET_TYPE_MODULUS): New.
33598         (SET_TYPE_INDEX): New.
33599         (SET_TYPE_DIGITS_VALUE): New.
33600         (SET_TYPE_RM_SIZE): New.
33601         (SET_TYPE_UNCONSTRAINED_ARRAY): New.
33602         (SET_TYPE_ADA_SIZE): New.
33603         (SET_TYPE_ACTUAL_BOUNDS): New.
33604         (SET_DECL_CONST_CORRESPONDING_VAR): New.
33605         (SET_DECL_ORIGINAL_FIELD): New.
33606         (TREE_LOOP_ID): Correct typo.
33607         * decl.c: Use new macros.
33608         * utils.c: Include debug.h, use new macros.
33609         * utils2.c: Use new macros.
33610
33611         * ada-tree.h: Update all macros for new tree description.
33612         (struct tree_loop_id): New.
33613         (union lang_tree_node): New.
33614         (struct lang_decl): New.
33615         (struct lang_type): New.
33616         * misc.c (gnat_mark_tree): Delete.
33617         (LANG_HOOKS_MARK_TREE): Delete.
33618         * trans.c (tree_transform): No longer any need to cast
33619         for TREE_LOOP_ID.
33620
33621         * utils.c (struct language_function): New dummy structure.
33622
33623         * Makefile.in (decl.o): gt-ada-<filename.h> is in objdir, not srcdir.
33624         (misc.o): Likewise.
33625         (utils.o): Likewise; also gtype-ada.h.
33626         * Make-lang.in (gnat1): Add dependency on s-gtype.
33627         (gnatbind): Add dependency on $(CONFIG_H).
33628         * utils.c: Correct last #include.
33629         (stuct e_stack): Remove unnecessary 'static'.
33630         (mark_e_stack): Remove unused prototype.
33631
33632         * scn-nlit.adb: Remove whitespace after version number to
33633         keep lines under 80 chars.
33634         * snames.adb: Likewise.
33635         * treepr.ads: Likewise.
33636
33637         * Makefile.in (decl.o): Include gt-ada-<filename>.h.
33638         (misc.o): Likewise.
33639         (utils.o): Include gt-ada-<filename>.h and gtype-ada.h.
33640         * config-lang.in (gtfiles): New.
33641         * decl.c: Use gengtype for roots.
33642         * gigi.h: Use gengtype for roots.
33643         * trans.c: Use gengtype for roots.
33644         * utils.c: Use gengtype for roots, marking.  Include gtype-ada.h.
33645
33646 2002-06-02  Gabriel Dos Reis  <gdr@codesourcery.com>
33647
33648         * misc.c (gnat_init): Adjust setting of internal_error_function.
33649
33650 2002-06-01  Joseph S. Myers  <jsm28@cam.ac.uk>
33651
33652         * gnat_ug.texi: Use @ifnottex instead of @ifinfo.
33653         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
33654         gnat_ug_wnt.texi: Regenerate.
33655
33656 2002-05-31  Florian Weimer  <fw@deneb.enyo.de>
33657
33658         * 5ntaprop.adb (with System.OS_Primitives): Remove.
33659
33660         * cstreams.c (max_path_len): Move from here ...
33661         * adaint.c (__gnat_max_path_len): ... to here.
33662         * adaint.c (__gnat_max_path_len): Declare.
33663         * g-dirope.adb (Max_Path): Adjust.
33664         * g-os_lib.adb (Normalize_Pathname.Max_Path): Adjust.
33665         * i-cstrea.ads (max_path_len): Adjust.
33666         * osint.adb (Get_RTS_Search_Dir.Max_Path): Adjust.
33667         * xr_tabls.adb (Dir_Name.Max_Path: Adjust.
33668
33669         * Makefile.in, Make-lang.in: Documentation is now built in
33670         Make-lang.in.  Store Info and generated Texinfo files in the
33671         source directory.
33672         * gnat_ug.texi: Remove CVS keywords, correct version number.
33673         Set file name correctly.
33674
33675         * gnat_ug_*.texi: Add.
33676         * .cvsignore: Ignore generated Texinfo files.
33677
33678 2002-05-30  Zack Weinberg  <zack@codesourcery.com>
33679
33680         * ada.h: Add MI guard macro.
33681         (SUBTYPE): Define constants with an anonymous enum, not static
33682         const variables.
33683         (IN): Cast constants to appropriate type before use.
33684
33685 2002-05-26  Joseph S. Myers  <jsm28@cam.ac.uk>
33686
33687         * gnatvsn.ads (Gnat_Version_String): Change to "3.2 20020526
33688         (experimental)".
33689
33690 2002-05-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
33691
33692         * Make-lang.in (CP, ECHO): Copy from Makefile.in.
33693         (X_ADA_CFLAGS, T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS): Likewise.
33694         (ALL_ADAFLAGS, FORCE_DEBUG_ADAFLAGS, ADA_CFLAGS): Likewise.
33695         (ALL_ADA_CFLAGS): Likewise.
33696         (ADA_INCLUDES): Likewise.
33697         Adapt for new working dir.
33698         (GNATBIND): Use Makefile.in version.
33699         (.SUFFIXES): Copy from Makefile.in.
33700         (ada-warn): Define.
33701         (.adb.o, .ads.o): Copy from Makefile.in.
33702         Added $(OUTPUT_OPTION).
33703         (GNAT1_C_OBJS): Moved from Makefile.in.
33704         Prefix with ada subdir.
33705         (GNAT_ADA_OBJS, GNAT1_ADA_OBJS, GNAT1_OBJS, GNATBIND_OBJS): Likewise.
33706         (EXTRA_GNAT1_OBJS): Moved from Makefile.in.
33707         Adapt for new working dir.
33708         (EXTRA_GNATBIND_OBJS): Likewise.
33709         (ADA_BACKEND): Moved from Makefile.in.
33710         Renamed to avoid conflict with global BACKEND.
33711         Use that one.
33712         (TARGET_ADA_SRCS): Moved from Makefile.in.
33713         (gnat1$(exeext)): Replaced recursive rule with Makefile.in version.
33714         Use ADA_BACKEND.
33715         (gnatbind$(exeext)): Replaced recursive rule with Makefile.in version.
33716         (ada_extra_files): Moved from Makefile.in.
33717         Prefix with ada subdir.
33718         (ada/b_gnat1.c, ada/b_gnat1.o, ada/b_gnatb.c, ada/b_gnatb.o): Likewise.
33719         (ada/treeprs.ads, ada/einfo.h, ada/sinfo.h, ada/nmake.adb): Likewise.
33720         (ada/nmake.ads): Likewise.
33721         (update-sources): Moved from Makefile.in.
33722         Prefix with ada subdir.
33723         (ada/sdefault.adb, ada/stamp-sdefault, ada/sdefault.o): Likewise.
33724         (ADA_TREE_H): Likewise.
33725         (ada/a-except.o, ada/s-assert.o, ada/s-memory.o): Likewise.
33726         (ada/memtrack.o): Likewise.
33727         (ada/adadecode.o): Likewise.
33728         Update dependencies.
33729         (ada/adaint.o): New.
33730         (ada/argv.o): Moved from Makefile.in.
33731         Prefix with ada subdir.
33732         Update dependencies.
33733         (ada/cstreams.o, ada/exit.o, ada/final.o, ada/link.o): Likewise.
33734         (ada/cio.o, ada/init.o, ada/raise.o, ada/tracebak.o): Likewise.
33735         (ada/cuintp.o, ada/decl.o, ada/misc.o): Moved from Makefile.in.
33736         Prefix with ada subdir.
33737         (ada/targtyps.o, ada/trans.o, ada/utils.o, ada/utils2.o): Likewise.
33738         (GNAT DEPENDENCIES): Regenerate.
33739         * Makefile.in (MACHMODE_H, RTL_H, TREE_H): Removed, provided by
33740         toplevel Makefile.in.
33741         (EXTRA_GNAT1_OBJS, EXTRA_GNATBIND_OBJS): Removed.
33742         (TARGET_ADA_SRCS): Removed.
33743         (GNAT1_C_OBJS, GNAT_ADA_OBJS, GNAT1_ADA_OBJS, GNAT1_OBJS): Likewise.
33744         (GNATBIND_OBJS): Likewise.
33745         (ADA_INCLUDE_DIR, ADA_RTL_OBJ_DIR): Moved here.
33746         (BACKEND): Removed.
33747         (../gnat1$(exeext), ../gnatbind$(exeext)): Likewise.
33748         (TREE_H): Likewise.
33749         (ada_extra_files): Likewise.
33750         (b_gnat1.c, b_gnat1.o, b_gnatb.c, b_gnatb.o): Likewise.
33751         (treeprs.ads, einfo.h, sinfo.h, nmake.adb, nmake.ads): Likewise.
33752         (update-sources): Likewise.
33753         (sdefault.adb, stamp-sdefault, sdefault.o): Likewise
33754         (ADA_TREE_H): Likewise.
33755         (adadecoce.o): Likewise.
33756         (cuintp.o, decl.o, misc.o, trans.o, utils.o, utils2.o): Likewise.
33757         (GNAT DEPENDENCIES): Likewise.
33758
33759 2002-05-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
33760
33761         * Makefile.adalib: Allow for PWDCMD to override hardcoded pwd.
33762         * Makefile.in: Likewise.
33763
33764 2002-05-14  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
33765
33766         * Make-lang.in (gnat1$(exeext), gnatbind$(exeext), gnattools):
33767         Restore $(CONFIG_H) and prefix.o dependencies.
33768         (ada.stage[1-4]): Depend on stage?-start.
33769
33770         * Makefile.in (b_gnatb.c): Depend on interfac.o.
33771
33772 2002-05-02  Jim Wilson  <wilson@redhat.com>
33773
33774         * utils.c (finish_record_type): Change record_size to record_type.
33775
33776 2001-05-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
33777
33778         * ada/Makefile.in (X_ADA_CFLAGS, T_ADA_CFLAGS): New fragment overrides.
33779         (ALL_ADA_CFLAGS): Define.  Replace ADA_CFLAGS with ALL_ADA_CFLAGS in
33780         ALL_ADAFLAGS, MOST_ADAFLAGS, and all compilations using CC.
33781
33782 2002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>
33783
33784         * misc.c (gnat_parse_file): Update.
33785
33786 2002-04-24  Neil Booth  <neil@daikokuya.demon.co.uk>
33787
33788         * misc.c (gnat_init): Don't set lang_attribute_common.
33789
33790 2002-04-21  Joseph S. Myers  <jsm28@cam.ac.uk>
33791
33792         * gnat_rm.texi: Use @ifnottex instead of @ifinfo.
33793
33794 2002-04-21  Florian Weimer  <fw@deneb.enyo.de>
33795
33796         * gnat_ug.texi: New file.
33797
33798         * gnat_rm.texi: Do not include texiplus.texi.  Include fdl.texi
33799         instead of gfdl.texi
33800
33801         * xgnatug.adb, ug_words: New files.
33802
33803         * Makefile.in (doc, dvi): New targets.  Build gnat_ug_*,
33804         gnat_rm and gnat-style manuals.
33805
33806 2002-04-18  Neil Booth  <neil@daikokuya.demon.co.uk>
33807
33808         * gigi.h (incomplete_type_error): Remove.
33809         * utils.c (incomplete_type_error): Remove.
33810
33811 2002-04-16  Mark Mitchell  <mark@codesourcery.com>
33812
33813         * trans.c (tree_transform): Add has_scope argument to
33814         expand_start_stmt_expr.
33815
33816 2002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>
33817
33818         * gigi.h (truthvalue_conversion): Rename.
33819         * misc.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
33820         * trans.c (tree_transform): Update.
33821         * utils2.c (truthvalue_conversion): Rename, update.
33822         (build_binary_op, build_unary_op): Update.
33823
33824 2002-04-04  Laurent Guerby  <guerby@acm.org>
33825
33826         * make.adb: Implement -margs, remove restriction about file name placement.
33827         * makeusg.adb: Documentation update.
33828         * Makefile.in (TOOLS_FLAGS_TO_PASS): Add VPATH=$(fsrcdir).
33829         * Makefile.in (gnattools3): Comment out, gnatmem does not build without libaddr2line.
33830
33831 2002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>
33832
33833         * utils.c (create_subprog_decl): Use SET_DECL_ASSEMBLER_NAME.
33834         (builtin_function): Similarly.
33835
33836 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
33837
33838         * decl.c (gnat_to_gnu_entity): Update.
33839         * gigi.h (mark_addressable): Rename.
33840         * misc.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
33841         * trans.c (tree_transform): Update.
33842         * utils.c (create_var_decl): Update.
33843         * util2.c (build_binary_op, build_unary_op,
33844         fill_vms_descriptor): Update.
33845         (mark_addressable): Rename, update.
33846
33847 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
33848
33849         * gigi.h (unsigned_type, signed_type, signed_or_unsigned_type):
33850         Rename.
33851         * misc.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
33852         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
33853         * trans.c (tree_transform, convert_with_check): Update.
33854         * utils.c (unsigned_type, signed_type, signed_or_unsigned_type):
33855         Rename.
33856
33857 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
33858
33859         * gigi.h (finish_incomplete_decl): Rename.
33860         * misc.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL): Redefine.
33861         * utils.c (gnat_init_decl_processing): Don't set hook.
33862         (finish_incomplete_decl): Rename.
33863
33864 2002-03-29  Andreas Schwab  <schwab@suse.de>
33865
33866         * Makefile.in: Pass VPATH=$(fsrcdir) when calling make in rts
33867         directory.
33868
33869 2001-03-28  Robert Dewar <dewar@gnat.com>
33870
33871         * checks.ads:
33872         (Remove_Checks): New procedure
33873
33874         * checks.adb:
33875         (Remove_Checks): New procedure
33876
33877         * exp_util.adb:
33878         Use new Duplicate_Subexpr functions
33879         (Duplicate_Subexpr_No_Checks): New procedure
33880         (Duplicate_Subexpr_No_Checks_Orig): New procedure
33881         (Duplicate_Subexpr): Restore original form (checks duplicated)
33882         (Duplicate_Subexpr): Call Remove_Checks
33883
33884         * exp_util.ads:
33885         (Duplicate_Subexpr_No_Checks): New procedure
33886         (Duplicate_Subexpr_No_Checks_Orig): New procedure
33887         Add 2002 to copyright notice
33888
33889         * sem_util.adb: Use new Duplicate_Subexpr functions
33890
33891         * sem_eval.adb:
33892         (Eval_Indexed_Component): This is the place to call
33893         Constant_Array_Ref and to replace the value. We simply merge
33894         the code of this function in here, since it is now no longer
33895         used elsewhere. This fixes the problem of the back end not
33896         realizing we were clever enough to see that this was
33897         constant.
33898         (Expr_Val): Remove call to Constant_Array_Ref
33899         (Expr_Rep_Val): Remove call to Constant_Array_Ref
33900         Minor reformatting
33901         (Constant_Array_Ref): Deal with string literals (patch
33902         suggested by Zack Weinberg on the gcc list)
33903
33904 2001-03-28  Ed Schonberg <schonber@gnat.com>
33905
33906         * exp_util.adb: Duplicate_Subexpr_No_Checks_Orig =>
33907         Duplicate_Subexpr_Move_Checks.
33908
33909         * exp_util.ads: Duplicate_Subexpr_No_Checks_Orig =>
33910         Duplicate_Subexpr_Move_Checks.
33911
33912         * sem_eval.adb: (Constant_Array_Ref): Verify that constant
33913         value of array exists before retrieving it (it may a private
33914         protected component in a function).
33915
33916 2002-03-28   Geert Bosch <bosch@gnat.com>
33917
33918         * prj-pp.adb : New file.
33919
33920         * prj-pp.ads : New file.
33921
33922 2002-03-28  Andreas Jaeger  <aj@suse.de>
33923
33924         * Makefile.in (stamp-sdefault): Fix path for Makefile.
33925
33926 2002-03-28  Neil Booth  <neil@daikokuya.demon.co.uk>
33927
33928         * misc.c (gnat_expand_expr): Move prototype.
33929
33930 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
33931
33932         * misc.c (insert_default_attributes): Remove.
33933
33934 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
33935
33936         * misc.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
33937         (gnat_init): Don't set hook.
33938         (gnat_expand_expr): Fix prototype.
33939
33940 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
33941
33942         * misc.c (ggc_p): Remove.
33943
33944 2002-03-27  Geert Bosch  <bosch@gnat.com>
33945
33946         * prj-makr.ads, prj-makr.adb : New files.
33947
33948 2002-03-26  Neil Booth  <neil@daikokuya.demon.co.uk>
33949
33950         * misc.c (LANG_HOOKS_MARK_TREE): Redefine.
33951         (lang_mark_tree): Make static, rename.
33952
33953 2002-03-25  Neil Booth  <neil@daikokuya.demon.co.uk>
33954
33955         * misc.c (maybe_build_cleanup): Remove.
33956
33957 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
33958
33959         * gigi.h (yyparse): Remove.
33960
33961 2002-03-23  Florian Weimer  <fw@deneb.enyo.de>
33962
33963         * gnat_rm.texi: Sync with ACT version.
33964           (From Ben Brosgol <brosgol@gnat.com>)
33965
33966 2002-03-20  Neil Booth  <neil@daikokuya.demon.co.uk>
33967
33968         * misc.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
33969         (gnat_init): Remove old hook.
33970
33971 2002-03-17  Neil Booth  <neil@daikokuya.demon.co.uk>
33972
33973         * misc.c (LANG_HOOKS_PARSE_FILE): Redefine.
33974         (yyparse): Rename gnat_parse_file.
33975
33976 2002-03-14  Geoffrey Keating  <geoffk@redhat.com>
33977
33978         Delete all lines containing "$Revision:".
33979         * xeinfo.adb: Don't look for revision numbers.
33980         * xnmake.adb: Likewise.
33981         * xsinfo.adb: Likewise.
33982         * xsnames.adb: Likewise.
33983         * xtreeprs.adb: Likewise.
33984
33985 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
33986
33987         * misc.c (gnat_tree_code_type, gnat_tree_code_length,
33988         gnat_tree_code_name): Delete.
33989         (tree_code_type, tree_code_length, tree_code_name): Define.
33990         (gnat_init): Don't try to copy into the various tree_code
33991         arrays.
33992
33993 2002-03-11  Richard Henderson  <rth@redhat.com>
33994
33995         * Makefile.in (.NOTPARALLEL): Add fake tag.
33996
33997 2002-03-07  Geert Bosch  <bosch@gnat.com>
33998
33999         * adadecode.c, adadecode.h, aux-io.c, s-traces.adb, s-traces.ads,
34000         s-tratas.adb, s-tratas.ads, sinput-d.adb, sinput-d.ads,
34001         switch-b.adb, switch-b.ads, switch-c.adb, switch-c.ads,
34002         switch-m.adb, switch-m.ads : New files.
34003
34004 2002-03-07  Geert Bosch  <bosch@gnat.com>
34005
34006         * 41intnam.ads, 42intnam.ads, 4aintnam.ads, 4cintnam.ads,
34007         4dintnam.ads, 4gintnam.ads, 4hintnam.ads, 4lintnam.ads,
34008         4mintnam.ads, 4pintnam.ads, 4rintnam.ads, 4sintnam.ads,
34009         4uintnam.ads, 4vcalend.adb, 4zintnam.ads, 52system.ads,
34010         5amastop.adb, 5asystem.ads, 5ataprop.adb, 5atpopsp.adb,
34011         5avxwork.ads, 5bosinte.adb, 5bsystem.ads, 5esystem.ads,
34012         5fsystem.ads, 5ftaprop.adb, 5ginterr.adb, 5gmastop.adb,
34013         5gsystem.ads, 5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads,
34014         5hparame.ads, 5hsystem.ads, 5htaprop.adb, 5htraceb.adb,
34015         5itaprop.adb, 5ksystem.ads, 5kvxwork.ads, 5lintman.adb,
34016         5lsystem.ads, 5mvxwork.ads, 5ninmaop.adb, 5nosinte.ads,
34017         5ntaprop.adb, 5ointerr.adb, 5omastop.adb, 5oosinte.adb,
34018         5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5pvxwork.ads,
34019         5qtaprop.adb, 5sintman.adb, 5ssystem.ads, 5staprop.adb,
34020         5stpopse.adb, 5svxwork.ads, 5tosinte.ads, 5uintman.adb,
34021         5vasthan.adb, 5vinmaop.adb, 5vinterr.adb, 5vintman.adb,
34022         5vmastop.adb, 5vparame.ads, 5vsystem.ads, 5vtaprop.adb,
34023         5vtpopde.adb, 5wmemory.adb, 5wsystem.ads, 5wtaprop.adb,
34024         5ysystem.ads, 5zinterr.adb, 5zintman.adb, 5zosinte.adb,
34025         5zosinte.ads, 5zsystem.ads, 5ztaprop.adb, 6vcpp.adb, 6vcstrea.adb,
34026         7sintman.adb, 7staprop.adb, 7stpopsp.adb, 9drpc.adb,
34027         Make-lang.in, Makefile.in, a-caldel.adb, a-comlin.ads,
34028         a-dynpri.adb, a-except.adb, a-except.ads, a-finali.adb,
34029         a-ncelfu.ads, a-reatim.adb, a-retide.adb, a-stream.ads,
34030         a-ststio.adb, a-ststio.ads, a-stwifi.adb, a-tags.adb, a-tasatt.adb,
34031         a-textio.adb, a-tideau.adb, a-tiflau.adb, a-tigeau.adb,
34032         a-tigeau.ads, a-tiinau.adb, a-timoau.adb, a-witeio.adb,
34033         a-wtdeau.adb, a-wtenau.adb, a-wtflau.adb, a-wtgeau.adb,
34034         a-wtgeau.ads, a-wtinau.adb, a-wtmoau.adb, ada-tree.def, ada-tree.h,
34035         adaint.c, adaint.h, ali-util.adb, ali.adb, ali.ads, atree.adb,
34036         atree.ads, atree.h, back_end.adb, bcheck.adb, bindgen.adb,
34037         bindusg.adb, checks.adb, comperr.adb, config-lang.in, csets.adb,
34038         csets.ads, cstand.adb, cstreams.c, debug.adb, debug.ads, decl.c,
34039         einfo.adb, einfo.ads, einfo.h, elists.h, errout.adb, errout.ads,
34040         eval_fat.adb, exp_aggr.adb, exp_attr.adb, exp_ch11.adb,
34041         exp_ch12.adb, exp_ch13.adb, exp_ch2.adb, exp_ch3.adb, exp_ch3.ads,
34042         exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch7.ads,
34043         exp_ch9.adb, exp_ch9.ads, exp_dbug.adb, exp_dbug.ads, exp_disp.ads,
34044         exp_dist.adb, exp_fixd.adb, exp_intr.adb, exp_pakd.adb,
34045         exp_prag.adb, exp_strm.adb, exp_util.adb, exp_util.ads,
34046         expander.adb, expect.c, fe.h, fmap.adb, fmap.ads, fname-uf.adb,
34047         freeze.adb, frontend.adb, g-awk.adb, g-cgideb.adb, g-comlin.adb,
34048         g-comlin.ads, g-debpoo.adb, g-dirope.adb, g-dirope.ads,
34049         g-dyntab.adb, g-expect.adb, g-expect.ads, g-io.ads, g-io_aux.adb,
34050         g-io_aux.ads, g-locfil.adb, g-locfil.ads, g-os_lib.adb,
34051         g-os_lib.ads, g-regexp.adb, g-regpat.adb, g-socket.adb,
34052         g-socket.ads, g-spipat.adb, g-table.adb, g-trasym.adb,
34053         g-trasym.ads, gigi.h, gmem.c, gnat1drv.adb, gnatbind.adb, gnatbl.c,
34054         gnatchop.adb, gnatcmd.adb, gnatdll.adb, gnatfind.adb, gnatlbr.adb,
34055         gnatlink.adb, gnatls.adb, gnatmem.adb, gnatprep.adb, gnatvsn.ads,
34056         gnatxref.adb, hlo.adb, hostparm.ads, i-cobol.adb, i-cpp.adb,
34057         i-cstrea.ads, i-cstrin.adb, i-pacdec.adb, i-vxwork.ads,
34058         impunit.adb, init.c, inline.adb, io-aux.c, layout.adb, lib-load.adb,
34059         lib-util.adb, lib-writ.adb, lib-writ.ads, lib-xref.adb,
34060         lib-xref.ads, lib.adb, lib.ads, make.adb, makeusg.adb, mdll.adb,
34061         memroot.adb, misc.c, mlib-tgt.adb, mlib-utl.adb, mlib-utl.ads,
34062         mlib.adb, namet.adb, namet.ads, namet.h, nlists.h, nmake.adb,
34063         nmake.ads, nmake.adt, opt.adb, opt.ads, osint.adb, osint.ads,
34064         output.adb, output.ads, par-ch2.adb, par-ch3.adb, par-ch5.adb,
34065         par-prag.adb, par-tchk.adb, par-util.adb, par.adb, prj-attr.adb,
34066         prj-dect.adb, prj-env.adb, prj-env.ads, prj-nmsc.adb, prj-part.adb,
34067         prj-proc.adb, prj-strt.adb, prj-tree.adb, prj-tree.ads, prj.adb,
34068         prj.ads, raise.c, raise.h, repinfo.adb, restrict.adb, restrict.ads,
34069         rident.ads, rtsfind.adb, rtsfind.ads, s-arit64.adb, s-asthan.adb,
34070         s-atacco.adb, s-atacco.ads, s-auxdec.adb, s-crc32.adb, s-crc32.ads,
34071         s-direio.adb, s-fatgen.adb, s-fileio.adb, s-finimp.adb,
34072         s-gloloc.adb, s-gloloc.ads, s-interr.adb, s-mastop.adb,
34073         s-mastop.ads, s-memory.adb, s-parame.ads, s-parint.adb,
34074         s-pooglo.adb, s-pooloc.adb, s-rpc.adb, s-secsta.adb, s-sequio.adb,
34075         s-shasto.adb, s-soflin.adb, s-soflin.ads, s-stache.adb,
34076         s-taasde.adb, s-taasde.ads, s-tadeca.adb, s-tadeca.ads,
34077         s-tadert.adb, s-tadert.ads, s-taenca.adb, s-taenca.ads,
34078         s-taprob.adb, s-taprop.ads, s-tarest.adb, s-tasdeb.adb,
34079         s-tasini.adb, s-tasini.ads, s-taskin.adb, s-taskin.ads,
34080         s-tasque.adb, s-tasque.ads, s-tasren.adb, s-tasren.ads,
34081         s-tassta.adb, s-tasuti.adb, s-tasuti.ads, s-tataat.adb,
34082         s-tataat.ads, s-tpoben.adb, s-tpoben.ads, s-tpobop.adb,
34083         s-tposen.adb, s-tposen.ads, s-traceb.adb, s-traceb.ads,
34084         s-unstyp.ads, s-widenu.adb, scn-nlit.adb, scn.adb, sem.adb,
34085         sem_aggr.adb, sem_attr.adb, sem_attr.ads, sem_case.adb,
34086         sem_ch10.adb, sem_ch11.adb, sem_ch11.ads, sem_ch12.adb,
34087         sem_ch13.adb, sem_ch13.ads, sem_ch2.adb, sem_ch3.adb, sem_ch3.ads,
34088         sem_ch4.adb, sem_ch5.adb, sem_ch6.adb, sem_ch6.ads, sem_ch7.adb,
34089         sem_ch8.adb, sem_ch8.ads, sem_ch9.adb, sem_disp.adb, sem_dist.adb,
34090         sem_elab.adb, sem_elim.adb, sem_elim.ads, sem_eval.adb,
34091         sem_intr.adb, sem_mech.adb, sem_prag.adb, sem_res.adb,
34092         sem_type.adb, sem_util.adb, sem_util.ads, sem_vfpt.adb,
34093         sem_warn.adb, sinfo.adb, sinfo.ads, sinfo.h, sinput-l.adb,
34094         sinput-l.ads, sinput.adb, sinput.ads, snames.adb, snames.ads,
34095         snames.h, sprint.adb, sprint.ads, stringt.adb, stringt.ads,
34096         stringt.h, style.adb, switch.adb, switch.ads, sysdep.c, system.ads,
34097         table.adb, targparm.adb, targparm.ads, targtyps.c, tbuild.adb,
34098         tbuild.ads, tracebak.c, trans.c, tree_gen.adb, tree_io.adb,
34099         treepr.adb, treepr.ads, treeprs.ads, treeprs.adt, ttypes.ads,
34100         types.adb, types.ads, types.h, uintp.ads, urealp.ads, usage.adb,
34101         utils.c, utils2.c, validsw.adb, xnmake.adb, xr_tabls.adb,
34102         xr_tabls.ads, xref_lib.adb, xref_lib.ads : Merge in ACT changes.
34103
34104         * 1ssecsta.adb, 1ssecsta.ads, a-chlat9.ads, a-cwila9.ads,
34105         g-enblsp.adb, g-md5.adb, g-md5.ads, gnatname.adb, gnatname.ads,
34106         mkdir.c, osint-b.adb, osint-b.ads, osint-c.adb, osint-c.ads,
34107         osint-l.adb, osint-l.ads, osint-m.adb, osint-m.ads : New files
34108
34109         * 3lsoccon.ads, 5qparame.ads, 5qvxwork.ads, 5smastop.adb,
34110         5zparame.ads, gnatmain.adb, gnatmain.ads, gnatpsys.adb : Removed
34111
34112         * mdllfile.adb, mdllfile.ads, mdlltool.adb, mdlltool.ads : Renamed
34113         to mdll-fil.ad[bs] and mdll-util.ad[bs]
34114
34115         * mdll-fil.adb, mdll-fil.ads, mdll-utl.adb, mdll-utl.ads : Renamed
34116         from mdllfile.ad[bs] and mdlltool.ad[bs]
34117
34118 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
34119
34120         * utils.c (init_gnat_to_gnu, init_gigi_decls): Use ARRAY_SIZE in
34121         lieu of explicit sizeof/sizeof.
34122
34123 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
34124
34125         * misc.c (copy_lang_decl): Remove.
34126
34127 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
34128
34129         * misc.c: Delete traditional-mode-related code copied from the
34130         C front end but not used, or used only to permit the compiler
34131         to link.
34132
34133 2002-02-07  Richard Henderson  <rth@redhat.com>
34134
34135         * adaint.c (__gnat_to_gm_time): First arg is int, not time_t.
34136         * adaint.h (__gnat_to_gm_time): Update prototype.
34137
34138 2002-01-30  Richard Henderson  <rth@redhat.com>
34139
34140         * trans.c (tree_transform) [N_Loop_Statement]: Use
34141         expand_exit_loop_top_cond.
34142
34143 2001-12-23  Richard Henderson  <rth@redhat.com>
34144
34145         * utils.c (end_subprog_body): Push GC context around
34146         rest_of_compilation for nested functions.
34147
34148 2001-12-23  Richard Henderson  <rth@redhat.com>
34149
34150         * 5nosinte.ads: Get definition of "int" from Interfaces.C.
34151
34152 2001-12-23  Florian Weimer  <fw@deneb.enyo.de>
34153
34154         * gnat-style.texi (Declarations and Types): Remove ancient style
34155         rule which was mandated by code generation issues.
34156
34157         * gnat-style.texi (header): Add @dircategory, @direntry.
34158         (title page): Remove date.
34159         (general) Add @./@: where approriate, and two spaces after the
34160         full stop at the end of a sentence.  Use @samp markup when
34161         referring concrete lexical entities (keywords, attribute names
34162         etc.), and @syntax for ARM grammar elements. Use @r for English
34163         text in comments.  Use @emph for emphasis.  Change "if-statements"
34164         etc. to "if statements" (without @samp). Break long lines.  Make
34165         casing of section names consistent.
34166         (Identifiers): Use @samp markup for variable names.
34167         (Comments): Use @samp markup for comment characters. Line-end
34168         comments may follow any Ada code, not just statements.  Fix
34169         misspelling of "Integer" as "integer".
34170         (Loop statements): Do not use variable name "I", use "J".
34171         (Subprogram Declarations): Document alignment.
34172         (Subprogram Bodies, Block statements): Document empty line before
34173         "begin".
34174
34175 2001-12-22  Florian Weimer  <fw@deneb.enyo.de>
34176
34177         * make.adb (Add_Switch): Make Generic_Position a procedure.  The
34178         function approach did not work well because of a side effect (the
34179         function call could reallocate the table which was being indexed
34180         using its result). Fixes ada/4851.
34181
34182 2001-12-19  Robert Dewar <dewar@gnat.com>
34183
34184         * bindgen.adb: Minor reformatting
34185
34186         * cstand.adb: Minor reformatting
34187
34188         * fmap.adb: Minor reformatting
34189         Change name from Add for Add_To_File_Map (Add is much too generic)
34190         Change Path_Name_Of to Mapped_Path_Name
34191         Change File_Name_Of to Mapped_File_Name
34192         Fix copyright dates in header
34193
34194         * fmap.ads:
34195         Change name from Add for Add_To_File_Map (Add is much too generic)
34196         Change Path_Name_Of to Mapped_Path_Name
34197         Change File_Name_Of to Mapped_File_Name
34198         Fix copyright dates in header
34199
34200         * fname-uf.adb: Minor reformatting.  New names of stuff in Fmap.
34201         Add use clause for Fmap.
34202
34203         * make.adb: Minor reformatting
34204
34205         * osint.adb: Minor reformatting.  Change of names in Fmap.
34206         Add use clause for Fmap.
34207
34208         * prj-env.adb: Minor reformatting
34209
34210         * prj-env.ads: Minor reformatting
34211
34212         * switch.adb: Minor reformatting.  Do proper raise of Bad_Switch if
34213         error found (there were odd exceptions to this general rule in
34214         -gnatec/-gnatem processing)
34215
34216 2001-12-19  Olivier Hainque <hainque@gnat.com>
34217
34218         * raise.c (__gnat_eh_personality): Exception handling personality
34219         routine for Ada.  Still in rough state, inspired from the C++ version
34220         and still containing a bunch of debugging artifacts.
34221         (parse_lsda_header, get_ttype_entry): Local (static) helpers, also
34222         inspired from the C++ library.
34223
34224         * raise.c (eh_personality): Add comments. Part of work for the GCC 3
34225         exception handling integration.
34226
34227 2001-12-19  Arnaud Charlet <charlet@gnat.com>
34228
34229         * Makefile.in: Remove use of 5smastop.adb which is obsolete.
34230         (HIE_SOURCES): Add s-secsta.ad{s,b}.
34231         (HIE_OBJS): Add s-fat*.o
34232         (RAVEN_SOURCES): Remove files that are no longer required. Add
34233         interrupt handling files.
34234         (RAVEN_MOD): Removed, no longer needed.
34235
34236 2001-12-19  Robert Dewar <dewar@gnat.com>
34237
34238         * a-ngelfu.adb: Remove ??? comment for inappropriate Inline_Always
34239         Add 2001 to copyright date
34240
34241         * g-regpat.adb: Change pragma Inline_Always to Inline. There is no
34242         need to force universal inlining for these cases.
34243
34244 2001-12-19  Arnaud Charlet <charlet@gnat.com>
34245
34246         * s-taprob.adb: Minor clean ups so that this unit can be used in
34247         Ravenscar HI.
34248
34249         * exp_ch7.adb: Allow use of secondary stack in HI mode.
34250         Disallow it when pragma Restrictions (No_Secondary_Stack) is specified.
34251
34252 2001-12-19  Vincent Celier <celier@gnat.com>
34253
34254         * prj-tree.ads (Project_Node_Record): Add comments for components
34255         Pkg_Id and Case_Insensitive.
34256
34257 2001-12-19  Pascal Obry <obry@gnat.com>
34258
34259         * g-socket.adb: Minor reformatting. Found while reading code.
34260
34261 2001-12-19  Robert Dewar <dewar@gnat.com>
34262
34263         * prj-tree.ads: Minor reformatting
34264
34265 2001-12-20  Joseph S. Myers  <jsm28@cam.ac.uk>
34266
34267         * config-lang.in (diff_excludes): Remove.
34268
34269 2001-12-17  Ed Schonberg <schonber@gnat.com>
34270
34271         * sem_res.adb (Resolve_Selected_Component): do not generate a
34272         discriminant check if the selected component is a component of
34273         the argument of an initialization procedure.
34274
34275         * trans.c (tree_transform, case of arithmetic operators): If result
34276         type is private, the gnu_type is the base type of the full view,
34277         given that the full view itself may be a subtype.
34278
34279 2001-12-17  Robert Dewar <dewar@gnat.com>
34280
34281         * sem_res.adb: Minor reformatting
34282
34283         * trans.c (tree_transform, case N_Real_Literal): Add missing third
34284         parameter in call to Machine (unknown horrible effects from this
34285         omission).
34286
34287         * urealp.h: Add definition of Round_Even for call to Machine
34288         Add third parameter for Machine
34289
34290 2001-12-17  Ed Schonberg <schonber@gnat.com>
34291
34292         * sem_warn.adb (Check_One_Unit): Suppress warnings completely on
34293         predefined units in No_Run_Time mode.
34294
34295 2001-12-17  Richard Kenner <kenner@gnat.com>
34296
34297         * misc.c (insn-codes.h): Now include.
34298
34299 2001-12-17  Olivier Hainque <hainque@gnat.com>
34300
34301         * a-except.adb: Preparation work for future integration of the GCC 3
34302         exception handling mechanism
34303         (Notify_Handled_Exception, Notify_Unhandled_Exception): New routines
34304         to factorize previous code sequences and make them externally callable,
34305         e.g. for the Ada personality routine when the GCC 3 mechanism is used.
34306         (Propagate_Exception, Raise_Current_Excep, Raise_From_Signal_Handler):
34307         Use the new notification routines.
34308
34309 2001-12-17  Emmanuel Briot <briot@gnat.com>
34310
34311         * prj-tree.ads (First_Choice_Of): Document the when others case
34312
34313 2001-12-17  Arnaud Charlet <charlet@gnat.com>
34314
34315         * bindgen.adb (Gen_Ada_Init_*): Set priority of environment task in
34316         HI-E mode, in order to support Ravenscar profile properly.
34317
34318         * cstand.adb (Create_Standard): Duration is a 32 bit type in HI-E
34319         mode on 32 bits targets.
34320
34321 2001-12-17  Vincent Celier <celier@gnat.com>
34322
34323         * fmap.adb: Initial version.
34324
34325         * fmap.ads: Initial version.
34326
34327         * fname-uf.adb (Get_File_Name): Use mapping if unit name mapped.
34328         If search is successfully done, add to mapping.
34329
34330         * frontend.adb: Initialize the mapping if a -gnatem switch was used.
34331
34332         * make.adb:
34333         (Gnatmake): Add new local variable Mapping_File_Name.
34334          Create mapping file when using project file(s).
34335          Delete mapping file before exiting.
34336
34337         * opt.ads (Mapping_File_Name): New variable
34338
34339         * osint.adb (Find_File): Use path name found in mapping, if any.
34340
34341         * prj-env.adb (Create_Mapping_File): New procedure
34342
34343         * prj-env.ads (Create_Mapping_File): New procedure.
34344
34345         * switch.adb (Scan_Front_End_Switches): Add processing for -gnatem
34346         (Mapping_File)
34347
34348         * usage.adb: Add entry for new switch -gnatem.
34349
34350         * Makefile.in: Add dependencies for fmap.o.
34351
34352 2001-12-17  Ed Schonberg <schonber@gnat.com>
34353
34354         * sem_ch10.adb (Analyze_With_Clause): Retrieve proper entity when unit
34355         is a package instantiation rewritten as a package body.
34356         (Install_Withed_Unit): Undo previous change, now redundant.
34357
34358 2001-12-17  Gary Dismukes <dismukes@gnat.com>
34359
34360         * layout.adb:
34361         (Compute_Length): Move conversion to Unsigned to callers.
34362         (Get_Max_Size): Convert Len expression to Unsigned after calls to
34363         Compute_Length and Determine_Range.
34364         (Layout_Array_Type): Convert Len expression to Unsigned after calls to
34365         Compute_Length and Determine_Range.
34366         Above changes fix problem with length computation for supernull arrays
34367         where Max (Len, 0) wasn't getting applied due to the Unsigned
34368         conversion used by Compute_Length.
34369
34370 2001-12-17  Arnaud Charlet <charlet@gnat.com>
34371
34372         * rtsfind.ads:
34373         (OK_To_Use_In_No_Run_Time_Mode): Allow Ada.Exceptions and
34374          System.Secondary_Stack.
34375         (OK_To_Use_In_Ravenscar_Mode): New table needed to implement Ravenscar
34376          in HI-E mode.
34377         Remove unused entity RE_Exception_Data.
34378
34379         * rtsfind.adb (RTE): Allow Ravenscar Profile in HI mode.
34380
34381         * rident.ads (No_Secondary_Stack): New restriction.
34382
34383 2001-12-17  Joel Brobecker <brobecke@gnat.com>
34384
34385         * gnat_rm.texi: Fix minor typos. Found while reading the section
34386         regarding "Bit_Order Clauses" that was sent to a customer.
34387         Very interesting documentation!
34388
34389 2001-12-17  Robert Dewar <dewar@gnat.com>
34390
34391         * sem_case.adb (Choice_Image): Avoid creating improper character
34392         literal names by using the routine Set_Character_Literal_Name. This
34393         fixes bombs in certain error message cases.
34394
34395 2001-12-17  Arnaud Charlet <charlet@gnat.com>
34396
34397         * a-reatim.adb: Minor reformatting.
34398
34399 2001-12-17  Ed Schonberg <schonber@gnat.com>
34400
34401         * sem_ch12.adb (Validate_Derived_Type_Instance): Handle properly the
34402         case where the formal is an extension of another formal in the current
34403         unit or in a parent generic unit.
34404
34405 2001-12-17  Arnaud Charlet <charlet@gnat.com>
34406
34407         * s-tposen.adb: Update comments.  Minor reformatting.
34408         Minor code clean up.
34409
34410         * s-tarest.adb: Update comments.  Minor code reorganization.
34411
34412 2001-12-17  Gary Dismukes <dismukes@gnat.com>
34413
34414         * exp_attr.adb (Attribute_Tag): Suppress expansion of <type_name>'Tag
34415         when Java_VM.
34416
34417 2001-12-17  Robert Dewar <dewar@gnat.com>
34418
34419         * exp_attr.adb: Minor reformatting
34420
34421 2001-12-17  Ed Schonberg <schonber@gnat.com>
34422
34423         * sem_ch3.adb (Build_Derived_Private_Type): Refine check to handle
34424         derivations nested within a child unit: verify that the parent
34425         type is declared in an outer scope.
34426
34427 2001-12-17  Robert Dewar <dewar@gnat.com>
34428
34429         * sem_ch12.adb: Minor reformatting
34430
34431 2001-12-17  Ed Schonberg <schonber@gnat.com>
34432
34433         * sem_warn.adb (Check_One_Unit): In No_Run_Time mode, do not post
34434         warning if current unit is a predefined one, from which bodies may
34435         have been deleted.
34436
34437 2001-12-17  Robert Dewar <dewar@gnat.com>
34438
34439         * eval_fat.ads: Add comment that Round_Even is referenced in Ada code
34440         Fix header format. Add 2001 to copyright date.
34441
34442         * exp_dbug.adb (Get_Encoded_Name): Fix out of bounds reference,
34443         which caused CE during compilation if checks were enabled.
34444
34445 2001-12-17  Vincent Celier <celier@gnat.com>
34446
34447         * make.adb:
34448         (Switches_Of): New function
34449         (Test_If_Relative_Path): New procedure
34450         (Add_Switches): Use new function Switches_Of
34451         (Collect_Arguments_And_Compile): Use new function Switches_Of.
34452         When using a project file, test if there are any relative
34453         search path. Fail if there are any.
34454         (Gnatmake): Only add switches for the primary directory when not using
34455         a project file. When using a project file, change directory to the
34456         object directory of the main project file. When using a project file,
34457         test if there are any relative search path. Fail if there are any.
34458         When using a project file, fail if specified executable is relative
34459         path with directory information, and prepend executable, if not
34460         specified as an absolute path, with the exec directory.  Make sure
34461         that only one -o switch is transmitted to the linker.
34462
34463         * prj-attr.adb (Initialization_Data): Add project attribute Exec_Dir
34464
34465         * prj-nmsc.adb:
34466         (Ada_Check): Get Spec_Suffix_Loc and Impl_Suffix_Loc,
34467         when using a non standard naming scheme.
34468         (Check_Ada_Naming_Scheme): Make sure that error messages
34469         do not raise exceptions.
34470         (Is_Illegal_Append): Return True if there is no dot in the suffix.
34471         (Language_Independent_Check): Check the exec directory.
34472
34473         * prj.adb (Project_Empty): Add new component Exec_Directory
34474
34475         * prj.ads:
34476         (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Add defaults.
34477         (Project_Data): Add component Exec_Directory
34478
34479         * snames.adb: Updated to match snames.ads revision 1.215
34480
34481         * snames.ads: Added Exec_Dir
34482
34483 2001-12-17  Robert Dewar <dewar@gnat.com>
34484
34485         * make.adb: Minor reformatting
34486
34487         * prj-nmsc.adb: Minor reformatting
34488
34489         * snames.adb: Updated to match snames.ads
34490
34491         * snames.ads: Alphebetize entries for project file
34492
34493 2001-12-17  Ed Schonberg <schonber@gnat.com>
34494
34495         * trans.c (process_freeze_entity): Do nothing if the entity is a
34496         subprogram that was already elaborated.
34497
34498 2001-12-17  Richard Kenner <kenner@gnat.com>
34499
34500         * decl.c (gnat_to_gnu_entity, object): Do not back-annotate Alignment
34501         and Esize if object is referenced via pointer.
34502
34503 2001-12-17  Ed Schonberg <schonber@gnat.com>
34504
34505         * sem_ch3.adb (Analyze_Variant_Part): check that type of discriminant
34506         is discrete before analyzing choices.
34507
34508 2001-12-17  Joel Brobecker <brobecke@gnat.com>
34509
34510         * bindgen.adb (Gen_Output_File_Ada): Generate a new C-like string
34511         containing the name of the Ada Main Program. This string is mainly
34512         intended for the debugger.
34513         (Gen_Output_File_C): Do the equivalent change when generating a C file.
34514
34515 2001-12-17  Robert Dewar <dewar@gnat.com>
34516
34517         * ali.adb: Set new Dummy_Entry field in dependency entry
34518
34519         * ali.ads: Add Dummy_Entry field to source dependency table
34520
34521         * bcheck.adb (Check_Consistency): Ignore dummy D lines
34522
34523         * lib-writ.adb (Writ_ALI): Write dummy D lines for missing source files
34524
34525         * lib-writ.ads: Document dummy D lines for missing files.
34526
34527         * types.ads: (Dummy_Time_Stamp): New value for non-existant files
34528
34529 2001-12-17  Robert Dewar <dewar@gnat.com>
34530
34531         * ali.adb: Type reference does not reset current file.
34532
34533         * ali.adb: Recognize and scan renaming reference
34534
34535         * ali.ads: Add spec for storing renaming references.
34536
34537         * lib-xref.ads: Add documentation for handling of renaming references
34538
34539         * lib-xref.adb: Implement output of renaming reference.
34540
34541         * checks.adb:
34542         (Determine_Range): Document local variables
34543         (Determine_Range): Make sure Hbound is initialized. It looks as though
34544          there could be a real problem here with an uninitialized reference
34545          to Hbound, but no actual example of failure has been found.
34546
34547 2001-12-17  Laurent Pautet <pautet@gnat.com>
34548
34549         * g-socket.ads:
34550         Fix comment of Shutdown_Socket and Close_Socket. These functions
34551         should not fail silently because if they are called twice, this
34552         probably means that there is a race condition in the user program.
34553         Anyway, this behaviour is consistent with the rest of this unit.
34554         When an error occurs, an exception is raised with the error message
34555         as exception message.
34556
34557 2001-12-17  Robert Dewar <dewar@gnat.com>
34558
34559         * frontend.adb: Move call to Check_Unused_Withs from Frontend, so
34560         that it happens before modification of Sloc values for -gnatD.
34561
34562         * gnat1drv.adb: Move call to Check_Unused_Withs to Frontend,
34563         so that it happens before modification of Sloc values for -gnatD.
34564
34565         * switch.adb: Minor reformatting
34566
34567 2001-12-15  Richard Henderson  <rth@redhat.com>
34568
34569         * sem_ch7.adb: Wrap comment.
34570
34571 2001-12-16  Joseph S. Myers  <jsm28@cam.ac.uk>
34572
34573         * 5ataprop.adb, 5atpopsp.adb, 5ftaprop.adb, 5gmastop.adb,
34574         5gtaprop.adb, 5htaprop.adb, 5itaprop.adb, 5lintman.adb,
34575         5omastop.adb, 5oosinte.adb, 5otaprop.adb, 5staprop.adb,
34576         5vinterr.adb, 5vtaprop.adb, 5vtpopde.adb, 5wintman.adb,
34577         5wtaprop.adb, 5zinterr.adb, 5ztaprop.adb, 6vcstrea.adb,
34578         7sintman.adb, 7staprop.adb, 9drpc.adb, ChangeLog, Makefile.in,
34579         a-except.adb, a-tags.ads, a-tasatt.adb, a-teioed.adb,
34580         a-textio.ads, a-witeio.ads, a-wtedit.adb, ali.ads, comperr.adb,
34581         cstand.adb, einfo.ads, errout.adb, exp_ch11.adb, exp_ch2.adb,
34582         exp_ch3.adb, exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch9.adb,
34583         exp_util.adb, exp_util.ads, fname-uf.adb, g-cgi.ads, g-exctra.ads,
34584         g-expect.ads, g-regist.adb, g-spipat.adb, gnatchop.adb,
34585         gnatlink.adb, gnatls.adb, gnatmain.adb, gnatmem.adb, init.c,
34586         make.adb, make.ads, mdlltool.adb, nlists.ads, osint.ads,
34587         par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb, par.adb,
34588         repinfo.adb, s-fatflt.ads, s-fatlfl.ads, s-fatllf.ads,
34589         s-fatsfl.ads, s-finimp.adb, s-finimp.ads, s-interr.adb,
34590         s-secsta.ads, s-shasto.ads, s-stalib.adb, s-stalib.ads,
34591         s-tarest.ads, s-tasdeb.adb, s-tassta.adb, s-tassta.ads,
34592         s-vaflop.ads, scans.ads, scn.adb, sem.ads, sem_aggr.adb,
34593         sem_attr.adb, sem_case.ads, sem_ch10.adb, sem_ch12.adb,
34594         sem_ch13.adb, sem_ch3.adb, sem_ch3.ads, sem_ch5.adb, sem_ch7.adb,
34595         sem_ch8.adb, sem_ch8.ads, sem_type.adb, sem_util.ads, sinfo.ads,
34596         sprint.adb, tbuild.ads, types.ads, utils.c, xeinfo.adb: Fix
34597         spelling errors.
34598
34599 2001-12-14  Vincent Celier <celier@gnat.com>
34600
34601         * osint.adb(Create_Debug_File): When an object file is specified,
34602         put the .dg file in the same directory as the object file.
34603
34604 2001-12-14  Robert Dewar <dewar@gnat.com>
34605
34606         * osint.adb: Minor reformatting
34607
34608         * lib-xref.adb (Output_Instantiation): New procedure to generate
34609         instantiation references.
34610
34611         * lib-xref.ads: Add documentation of handling of generic references.
34612
34613         * ali.adb (Read_Instantiation_Ref): New procedure to read
34614         instantiation references
34615
34616         * ali.ads: Add spec for storing instantiation references
34617
34618         * bindusg.adb: Minor reformatting
34619
34620         * switch.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
34621
34622         * usage.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
34623
34624         * gnatcmd.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
34625
34626         * csets.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
34627
34628         * csets.ads:
34629         Fix header format
34630         Add 2001 to copyright date
34631         Add entry for Latin-5 (Cyrillic ISO-8859-5)
34632
34633 2001-12-14  Matt Gingell <gingell@gnat.com>
34634
34635         * adaint.c: mktemp is a macro on Lynx and can not be used as an
34636         expression.
34637
34638 2001-12-14  Richard Kenner <kenner@gnat.com>
34639
34640         * misc.c (gnat_expand_constant): Do not strip UNCHECKED_CONVERT_EXPR
34641         if operand is CONSTRUCTOR.
34642
34643 2001-12-14  Ed Schonberg <schonber@gnat.com>
34644
34645         * trans.c (tree_transform, case N_Assignment_Statement): Set lineno
34646         before emiting check on right-hand side, so that exception information
34647         is correct.
34648
34649 2001-12-14  Richard Kenner <kenner@gnat.com>
34650
34651         * utils.c (create_var_decl): Throw away initializing expression
34652         if just annotating types and non-constant.
34653
34654 2001-12-14  Vincent Celier <celier@gnat.com>
34655
34656         * prj-nmsc.adb: (Ada_Check): Migrate drom Ada_Default_... to
34657         Default_Ada_...
34658
34659         * prj.adb: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
34660         Remove functions.
34661         (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Move to spec.
34662
34663         * prj.ads: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
34664         Remove functions.
34665         (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Move from body.
34666
34667 2001-12-16  Joseph S. Myers  <jsm28@cam.ac.uk>
34668
34669         * ChangeLog: Remove piece of diff output.
34670
34671 2001-12-14  Geert Bosch <bosch@gnat.com>
34672
34673         * config-lang.in: Update copyright notice
34674
34675         * layout.adb: Remove commented out code.
34676
34677         * mdllfile.ads: Update copyright notice. Fix header format.
34678
34679         * sem_case.ads: Likewise.
34680
34681         * sem_ch3.adb: Minor reformatting.
34682
34683 2001-12-12  Geert Bosch <bosch@gnat.com>
34684
34685         * freeze.ads: Update copyright date.
34686
34687         * g-comlin.ads: Minor reformatting.
34688
34689         * gnat-style.texi: Fix typo.
34690
34691 2001-12-12  Geert Bosch <bosch@gnat.com>
34692
34693         *  einfo.h: Regenerate.
34694
34695 2001-12-12  Ed Schonberg <schonber@gnat.com>
34696
34697         * sem_ch12.adb (Save_Entity_Descendant): Use syntactic field names
34698         on known node types, rather than untyped fields. Further cleanups.
34699
34700 2001-12-12  Robert Dewar <dewar@gnat.com>
34701
34702         * sem_ch12.adb:
34703         (Save_Entity_Descendant): Minor comment update.
34704         (Copy_Generic_Node): Deal with incorrect reference to Associated_Node
34705          of an N_Attribute_Reference node. As per note below, this does not
34706         eliminate need for Associated_Node in attribute ref nodes.
34707         (Associated_Node): Documentation explicitly mentions attribute
34708         reference nodes, since this field is used in such nodes.
34709
34710         * sem_ch12.adb (Associated_Node): Minor documentation cleanup.
34711
34712 2001-12-12  Robert Dewar <dewar@gnat.com>
34713
34714         * s-stalib.adb: Add more comments on with statements being needed
34715
34716         * par-ch12.adb: Minor reformatting
34717
34718         * prj-dect.ads: Fix copyright header
34719
34720         * s-arit64.adb (Multiply_With_Ovflo_Check): Fix case where both
34721         inputs fit in 32 bits, but the result still overflows.
34722
34723         * s-fatgen.ads: Minor comment improvement
34724
34725 2001-12-12  Ed Schonberg <schonber@gnat.com>
34726
34727         * sem_ch4.adb (Analyze_Selected_Component): If the prefix is of a
34728         formal derived type, look for an inherited component from the full
34729         view of the parent, if any.
34730
34731 2001-12-12  Robert Dewar <dewar@gnat.com>
34732
34733         * checks.ads (Apply_Alignment_Check): New procedure.
34734
34735         * exp_ch13.adb (Expand_N_Freeze_Entity): Generate dynamic check to
34736         ensure that the alignment of objects with address clauses is
34737         appropriate, and raise PE if not.
34738
34739         * exp_util.ads (Must_Be_Aligned): Removed, replaced by
34740         Exp_Pakd.Known_Aligned_Enough
34741
34742         * mdllfile.ads: Minor reformatting
34743
34744         * mlib-fil.ads: Minor reformatting
34745
34746 2001-12-12  Ed Schonberg <schonber@gnat.com>
34747
34748         * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Extend previous
34749         fix to any component reference if enclosing record has non-standard
34750         representation.
34751
34752 2001-12-12  Vincent Celier <celier@gnat.com>
34753
34754         * g-dirope.ads (Find, Wildcard_Iterator): Moved to child package
34755         Iteration
34756
34757 2001-12-12  Ed Schonberg <schonber@gnat.com>
34758
34759         * freeze.ads: Make Freeze_Fixed_Point_Type visible, for use in
34760         sem_attr.
34761
34762 2001-12-12  Robert Dewar <dewar@gnat.com>
34763
34764         * impunit.adb: Add entry for GNAT.Directory_Operations.Iteration
34765
34766 2001-12-12  Emmanuel Briot <briot@gnat.com>
34767
34768         * g-regexp.adb: Remove all debug code, since it isn't required anymore,
34769         and it adds dependencies to system.io.
34770
34771 2001-12-12  Pascal Obry <obry@gnat.com>
34772
34773         * g-dirope.adb (Expand_Path.Var): Correctly detect end of
34774         variable name.
34775
34776 2001-12-11  Ed Schonberg <schonber@gnat.com>
34777
34778         * sem_ch10.adb (Install_Withed_Unit): If the unit is a generic instance
34779         that is the parent of other generics, the instance body replaces the
34780         instance node.  Retrieve the instance of the spec, which is the one
34781         that is visible in clients and within the body.
34782
34783 2001-12-11  Vincent Celier <celier@gnat.com>
34784
34785         * gnatmain.adb: Initial version.
34786
34787         * gnatmain.ads: Initial version.
34788
34789         * prj-attr.adb (Initialisation_Data): Add package Gnatstub.
34790
34791         * snames.adb: Updated to match snames.ads.
34792
34793         * snames.ads: Added Gnatstub.
34794
34795 2001-12-11  Vincent Celier <celier@gnat.com>
34796
34797         * prj-attr.adb (Initialization_Data): Change name from
34798         Initialisation_Data.
34799
34800 2001-12-11  Emmanuel Briot <briot@gnat.com>
34801
34802         * g-regpat.adb (Parse_Literal): Properly handle simple operators ?,
34803         + and * applied to backslashed expressions like \r.
34804
34805 2001-12-11  Vasiliy Fofanov <fofanov@gnat.com>
34806
34807         * g-os_lib.ads: String_List type added, Argument_List type is now
34808         subtype of String_List.
34809
34810 2001-12-11  Robert Dewar <dewar@gnat.com>
34811
34812         * g-os_lib.ads: Change copyright to FSF
34813         Add comments for String_List type
34814
34815 2001-12-11  Vincent Celier <celier@gnat.com>
34816
34817         * g-dirope.adb (Expand_Path): Fix bug. (wrong length when adding a
34818         string to the buffer).
34819
34820 2001-12-11  Ed Schonberg <schonber@gnat.com>
34821
34822         * freeze.adb: Make Freeze_Fixed_Point_Type visible, for use in
34823         sem_attr.
34824
34825         * sem_attr.adb: Simplify previous fix for Address.
34826         (Set_Bounds): If prefix is a non-frozen fixed-point type, freeze now,
34827         to avoid anomalies where the bound of the type appears to raise
34828         constraint error.
34829
34830 2001-12-11  Robert Dewar <dewar@gnat.com>
34831
34832         * lib-xref.adb (Output_Refs): Make sure pointers are always properly
34833         handled.
34834
34835 2001-12-11  Ed Schonberg <schonber@gnat.com>
34836
34837         * sem_ch12.adb (Analyze_Subprogram_Instantiation): Check for a
34838         renamed unit before checking for recursive instantiations.
34839
34840 2001-12-11  Emmanuel Briot <briot@gnat.com>
34841
34842         * prj.ads: Add comments for some of the fields.
34843
34844 2001-12-11  Robert Dewar <dewar@gnat.com>
34845
34846         * lib-xref.adb (Output_Refs): Don't output type references outside
34847         the main unit if they are not otherwise referenced.
34848
34849 2001-12-11  Ed Schonberg <schonber@gnat.com>
34850
34851         * sem_attr.adb (Analyze_attribute, case Address and Size): Simplify
34852         code and diagnose additional illegal uses
34853
34854         * sem_util.adb (Is_Object_Reference): An indexed component is an
34855         object only if the prefix is.
34856
34857 2001-12-11  Vincent Celier <celier@gnat.com>
34858
34859         * g-diopit.adb: Initial version.
34860
34861         * g-diopit.ads: Initial version.
34862
34863         * g-dirope.adb:
34864         (Expand_Path): Avoid use of Unbounded_String
34865         (Find, Wildcard_Iterator): Moved to child package Iteration
34866
34867         * Makefile.in: Added g-diopit.o to GNATRTL_NONTASKING_OBJS
34868
34869 2001-12-11  Robert Dewar <dewar@gnat.com>
34870
34871         * sem_attr.adb: Minor reformatting
34872
34873 2001-12-11  Ed Schonberg <schonber@gnat.com>
34874
34875         * sem_ch3.adb: Clarify some ???.
34876
34877 2001-12-11  Robert Dewar <dewar@gnat.com>
34878
34879         * exp_util.adb (Must_Be_Aligned): Removed, replaced by
34880         Exp_Pakd.Known_Aligned_Enough
34881
34882         * sem_ch13.adb (Check_Address_Alignment): Removed, extended
34883         version is moved to Exp_Ch13.
34884
34885 2001-12-11  Robert Dewar <dewar@gnat.com>
34886
34887         * einfo.ads: Minor reformatting
34888
34889         * exp_ch5.adb: Add comment for previous.change
34890
34891         * ali.adb: New interface for extended typeref stuff.
34892
34893         * ali.ads: New interface for typeref stuff.
34894
34895         * checks.adb (Apply_Alignment_Check): New procedure.
34896
34897         * debug.adb: Add -gnatdM for modified ALI output
34898
34899         * exp_pakd.adb (Known_Aligned_Enough): Replaces Known_Aligned_Enough.
34900
34901         * lib-xref.adb: Extend generation of <..> notation to cover
34902         subtype/object types. Note that this is a complete rewrite,
34903         getting rid of the very nasty quadratic algorithm previously
34904         used for derived type output.
34905
34906         * lib-xref.ads: Extend description of <..> notation to cover
34907         subtype/object types. Uses {..} for these other cases.
34908         Also use (..) for pointer types.
34909
34910         * sem_util.adb (Check_Potentially_Blocking_Operation): Slight cleanup.
34911
34912         * exp_pakd.adb: Minor reformatting.  Note that prevous RH should say:
34913         (Known_Aligned_Enough): Replaces Must_Be_Aligned.
34914
34915 2001-12-11  Vincent Celier <celier@gnat.com>
34916
34917         * gnatcmd.adb:
34918         Changed /COMPILE_ONLY to /ACTIONS=COMPILE
34919         Changed /BIND_ONLY to /ACTIONS=BIND
34920         Changed /LINK_ONLY to /ACTIONS=LINK
34921
34922 2001-12-11  Ed Schonberg  <schonber@gnat.com>
34923
34924         * sem_ch8.adb (Find_Selected_Component): improved search for a
34925         candidate package in case of error.
34926
34927         * sem_ch12.adb (Inline_Instance_Body): place head of use_clause
34928         chain back on scope stack before reinstalling use clauses.
34929
34930         * exp_ch5.adb (Expand_N_If_Statement): if Constant_Condition_Warnings
34931         is enabled, do not kill the code for the condition, to preserve
34932         warning.
34933
34934 2001-12-11  Robert Dewar <dewar@gnat.com>
34935
34936         * checks.adb (Insert_Valid_Check): Apply validity check to expression
34937         of conversion, not to result of conversion.
34938
34939 2001-12-11  Ed Schonberg <schonber@gnat.com>
34940
34941         * sem_ch3.adb (Build_Derived_Record_Type): set Controlled flag
34942         before freezing parent. If the declarations are mutually recursive,
34943         an access to the current record type may be frozen before the
34944         derivation is complete.
34945
34946 2001-12-05  Vincent Celier <celier@gnat.com>
34947
34948         * gnatcmd.adb: (MAKE): Add new translations: -b /BIND_ONLY,
34949         -c /COMPILE_ONLY, -l /LINK_ONLY
34950
34951         * opt.ads:
34952         (Bind_Only): New Flag
34953         (Link_Only): New flag
34954
34955         * switch.adb (Scan_Make_Switches): Add processing for -b (Bind_Only)
34956         and -l (Link_Only)
34957
34958         * makeusg.adb: Add new switches -b and -l. Update Copyright notice.
34959
34960         * make.adb:
34961         (Do_Compile_Step, Do_Bind_Step, Do_Link_Step): New flags.
34962         (Gnatmake): Set the step flags. Only perform a step if the
34963         corresponding step flag is True.
34964         (Scan_Make_Arg): Reset the bind and link step flags when -u
34965         or -gnatc has been specified.
34966
34967 2001-12-05  Ed Schonberg <schonber@gnat.com>
34968
34969         * sem_eval.adb (Eval_Concatenation): If left operand is a null string,
34970         get bounds from right operand.
34971
34972         * sem_eval.adb: Minor reformatting
34973
34974         * exp_util.adb (Make_Literal_Range): use bound of literal rather
34975         than Index'First, its lower bound may be different from 1.
34976
34977         * exp_util.adb: Undo earlier change, fixes ACVC regressions C48009B
34978         and C48009J
34979
34980 2001-12-05  Vincent Celier <celier@gnat.com>
34981
34982         * prj-nmsc.adb Minor reformatting
34983
34984         * prj-nmsc.adb (Language_Independent_Check): Reset Library flag if
34985         set and libraries are not supported.
34986
34987 2001-12-05  Ed Schonberg <schonber@gnat.com>
34988
34989         * sem_ch3.adb (Build_Derived_Private_Type): set Public status of
34990         private view explicitly, so the back-end can treat as a global
34991         when appropriate.
34992
34993 2001-12-05  Ed Schonberg <schonber@gnat.com>
34994
34995         * sem_ch12.adb (Instantiate_Package_Body): if instance is a compilation
34996          unit, always replace instance node with new body, for ASIS use.
34997
34998 2001-12-05  Vincent Celier <celier@gnat.com>
34999
35000         * prj-nmsc.adb (Language_Independent_Check): Issue a warning if
35001         libraries are not supported and both attributes Library_Name and
35002         Library_Dir are specified.
35003
35004         * prj-proc.adb (Expression): Set location of Result to location of
35005         first term.
35006
35007         * Makefile.in: Add mlib.o, mlib-fil.o, mlib-tgt and mlib-utl to GNATLS.
35008         (prj-nmsc is now importing MLib.Tgt)
35009
35010         * prj-proc.adb: Put the change indicated above that was forgotten.
35011
35012 2001-12-05  Robert Dewar <dewar@gnat.com>
35013
35014         * Makefile.in: Add dependencies for System.IO for GNAT.Regexp
35015
35016 2001-12-05  Ed Schonberg <schonber@gnat.com>
35017
35018         * sem_ch3.adb (Build_Derived_Concurrent_Type): If derivation imposes a
35019         constraint, introduce explicit subtype declaration and derive from it.
35020
35021         * sem_ch3.adb: Minor reformatting
35022
35023 2001-12-05  Robert Dewar <dewar@gnat.com>
35024
35025         * checks.adb (Determine_Range): Increase cache size for checks.
35026         Minor reformatting
35027
35028         * exp_ch6.adb: Minor reformatting
35029         (Expand_N_Subprogram_Body): Reset Is_Pure for any subprogram that has
35030         a parameter whose root type is System.Address, since treating such
35031         subprograms as pure in the code generator is almost surely a mistake
35032         that will lead to unexpected results.
35033
35034         * exp_util.adb (Remove_Side_Effects): Clean up old ??? comment and
35035         change handling of conversions.
35036
35037         * g-regexp.adb: Use System.IO instead of Ada.Text_IO.
35038
35039 2001-12-05  Ed Schonberg <schonber@gnat.com>
35040
35041         * sem_ch3.adb (Analyze_Object_Declaration): If expression is an
35042         aggregate with static wrong size, attach generated Raise node to
35043         declaration.
35044
35045 2001-12-05  Robert Dewar <dewar@gnat.com>
35046
35047         * sem_attr.adb (Analyze_Attribute): Defend against bad Val attribute.
35048         Fixes compilation abandoned bomb in B24009B.
35049
35050 2001-12-05  Ed Schonberg <schonber@gnat.com>
35051
35052         * sem_ch12.adb:
35053         Document use of Associated_Node on Selected_Components.
35054         (Save_Global_Operand_Descendants): Change to Save_Entity_Descendants,
35055         to clarify use of untyped descendant fields.
35056
35057 2001-12-05  Robert Dewar <dewar@gnat.com>
35058
35059         * prj-dect.ads: Add ??? comment
35060         Add 2001 to copyright notice (was not done in after all)
35061
35062         * prj-part.adb: Minor reformatting. Reword one awkward error message.
35063
35064         * prj.ads: Minor reformatting throughout, and add some ??? comments
35065
35066         * snames.ads: Minor reformatting
35067
35068 2001-12-05  Geert Bosch <bosch@gnat.com>
35069
35070         * snames.adb: Autoupdate
35071
35072 2001-12-05  Vincent Celier <celier@gnat.com>
35073
35074         * prj-dect.adb (Parse): Rename parameter Modifying to Extends.
35075
35076         * prj-dect.ads (Parse): Rename parameter Modifying to Extends.
35077
35078         * prj-env.adb: Minor comment changes (modifying -> extends).
35079
35080         * prj-nmsc.adb: Minor comment changes (modifying -> extends).
35081
35082         * prj-part.adb (Parse_Single_Project): Change Tok_Modifying to
35083         Tok_Extends.
35084
35085         * prj.adb (Initialize): Change Modifying to Extends.
35086
35087         * scans.ads (Token_Type): Change Tok_Modifying to Tok_Extends.
35088
35089         * prj.ads: Minor comment change (Modifying -> extending).
35090
35091         * snames.ads: Change modifying to extends.
35092
35093 2001-12-05  Robert Dewar <dewar@gnat.com>
35094
35095         * sem_warn.adb: Remove stuff for conditionals, we are not going to
35096         do this after all.
35097
35098         * sem_warn.ads: Remove stuff for conditionals, we are not going to
35099         do this after all.  Add 2001 to copyright notice
35100
35101 2001-12-04  Geert Bosch <bosch@gnat.com>
35102
35103         *  einfo.h, sinfo.h, treeprs.ads: Regenerate.
35104
35105 2001-12-04  Robert Dewar <dewar@gnat.com>
35106
35107         * errout.adb (Error_Msg): Ignore attempt to put error msg at junk
35108         location if we already have errors. Stops some cases of cascaded
35109         errors.
35110
35111         * errout.adb: Improve comment.
35112
35113 2001-12-04  Robert Dewar <dewar@gnat.com>
35114
35115         * sem_ch12.adb:
35116         (Analyze_Formal_Type_Definition): Defend against Error.
35117         (Analyze_Formal_Subprogram): Defend against Error.
35118
35119         * par-ch12.adb (F_Formal_Type_Declaration): In case of error,
35120         remove following semicolon if present. Removes cascaded error.
35121
35122 2001-12-04  Douglas B. Rupp <rupp@gnat.com>
35123
35124         * bindgen.adb:
35125         (Gen_Exception_Table_Ada): Write "begin" and then return if Num
35126          exceptions equals 0.
35127         (Gen_Exception_Table_C): Return if Num exceptions equals 0.
35128         Fixes PIWG E tests (which have to be run with -gnatL).
35129
35130 2001-12-04  Robert Dewar <dewar@gnat.com>
35131
35132         * einfo.ads: Minor reformatting
35133
35134 2001-12-04  Ed Schonberg <schonber@gnat.com>
35135
35136         * einfo.ads: Block_Node points to the identifier of the block, not to
35137         the block node itself, to preserve the link when the block is
35138         rewritten, e.g. within an if-statement with a static condition.
35139
35140         * inline.adb (Cleanup_Scopes): recover block statement from block
35141         entity using new meaning of Block_Node.
35142
35143         * sem_ch5.adb (Analyze_Block_Statement): set Block_Node to point to
35144         identifier of block node, rather than to node itself.
35145
35146 2001-12-04  Gary Dismukes <dismukes@gnat.com>
35147
35148         * layout.adb:
35149         (Get_Max_Size): Fix "start of processing" comment to say Get_Max_Size.
35150         (Discrimify): Go back to setting the Etypes of the selected component
35151         because the Vname component does not exist at this point and will
35152         fail name resolution. Also set Analyzed.
35153         Remove with and use of Sem_Res.
35154
35155 2001-12-04  Arnaud Charlet <charlet@gnat.com>
35156
35157         * Makefile.in: (HIE_SOURCES): add s-fat*.
35158
35159 2001-12-04  Robert Dewar <dewar@gnat.com>
35160
35161         * sem_attr.adb:
35162         (Compile_Time_Known_Attribute): New procedure.
35163         (Eval_Attribute, case Size): Use Compile_Time_Known_Attribute to ensure
35164          proper range check.
35165
35166 2001-12-04  Ed Schonberg <schonber@gnat.com>
35167
35168         * sem_ch7.adb (New_Private_Type): Set Is_Tagged_Type flag before
35169         processing discriminants to diagnose illegal default values.
35170
35171 2001-12-04  Ed Schonberg <schonber@gnat.com>
35172
35173         * sem_attr.adb (Resolve_Attribute): Handle properly an non-classwide
35174         access discriminant within a type extension that constrains its
35175         parent discriminants.
35176
35177 2001-12-04  Ed Schonberg <schonber@gnat.com>
35178
35179         * sem_ch3.adb (Find_Type_Of_Subtype_Indic): If subtype indication
35180         is malformed, use instance of Any_Id to allow analysis to proceed.
35181
35182         * par-ch12.adb (P_Formal_Type_Declaration): Propagate Error if
35183         type definition is illegal.
35184         (P_Formal_Derived_Type_Definition): Better recovery when TAGGED is
35185         misplaced.
35186
35187 2001-12-04  Ed Schonberg <schonber@gnat.com>
35188
35189         * sem_warn.adb (Output_Unreferenced_Messages): Extend previous fix to
35190         constants.
35191
35192 2001-12-04  Robert Dewar <dewar@gnat.com>
35193
35194         * errout.adb: Minor reformatting
35195
35196 2001-12-04  Robert Dewar <dewar@gnat.com>
35197
35198         * exp_util.adb: Minor reformatting from last change
35199
35200         * errout.adb (Check_For_Warning): For a Raised_Constraint_Error node
35201         which is a rewriting of an expression, traverse the original
35202         expression to remove warnings that may have been posted on it.
35203
35204 2001-12-04  Ed Schonberg <schonber@gnat.com>
35205
35206         * exp_util.adb (Must_Be_Aligned): Return false for a component of a
35207         record that has other packed components.
35208
35209 2001-12-04  Douglass B. Rupp <rupp@gnat.com>
35210
35211         * adaint.c: Minor cleanups.
35212
35213 2001-12-04  Douglass B. Rupp <rupp@gnat.com>
35214
35215         * adaint.c: Do not use utime.h on vxworks.
35216
35217 2001-12-04  Arnaud Charlet <charlet@gnat.com>
35218
35219         * Makefile.adalib: Clarify step 3 (use of gnat.adc) as it causes
35220         more confusion than it solves.
35221
35222 2001-12-04  Geert bosch <bosch@gnat.com>
35223
35224         * einfo.h, nmake.adb, nmake.ads, sinfo.h treeprs.ads: Regenerate.
35225
35226 2001-12-04  Geert Bosch  <bosch@gnat.com>
35227
35228         * Makefile.in (update-sources): New target.
35229         For use by gcc_release script.
35230
35231 2001-12-04  Ed Schonberg <schonber@gnat.com>
35232
35233         * sem_prag.adb (Analyze_Pragma, case Validity_Checks): do not treat as
35234         a configuration pragma, it is now legal wherever a pragma can appear.
35235
35236 2001-12-04  Zack Weinberg  <zack@codesourcery.com>
35237
35238         * Makefile.in: Don't set ALL.  Delete @cross_defines@,
35239         @cross_overrides@, @build_overrides@ stanzas.  INTERNAL_CFLAGS
35240         is now @CROSS@ -DIN_GCC; update comment.
35241
35242 2001-12-04  Robert Dewar <dewar@gnat.com>
35243
35244         * einfo.adb (Has_Pragma_Pure_Function): New flag.
35245         Fix problem that stopped ceinfo from working
35246
35247         * einfo.ads (Has_Pragma_Pure_Function): New flag.
35248
35249         * sem_prag.adb (Pure_Function): Set new flag Has_Pragma_Pure_Function.
35250
35251 2001-12-04  Douglas B. Rupp <rupp@gnat.com>
35252
35253         * gnatchop.adb:
35254         (File_Time_Stamp): New procedure.
35255         (Preserve_Mode): New boolean.
35256         (Write_Unit): Pass time stamp.
35257         Implement -p switch (preserve time stamps).
35258
35259         * gnatcmd.adb (CHOP): Add translation for -p (/PRESERVE).
35260
35261         * gnatchop.adb: Do usage info for -p switch
35262
35263         * adaint.h (__gnat_set_file_time_name): New function
35264
35265         * adaint.c (__gnat_set_file_time_name): Implement
35266
35267         * adaint.h: Fix typo
35268
35269 2001-12-03  Robert Dewar <dewar@gnat.com>
35270
35271         * sinfo.ads: Minor reformatting. N_Freeze_Entity node does not
35272         have Associated_Node.
35273
35274 2001-12-03  Robert Dewar <dewar@gnat.com>
35275
35276         * prj-proc.adb: Minor reformatting
35277
35278         * make.adb: Minor reformatting
35279
35280 2001-12-03  Geert Bosch <bosch@gnat.com>
35281
35282         * make.adb: Minor reformatting.
35283
35284 2001-12-03 Robert Dewar  <dewar@gnat.com>
35285
35286         * sem_ch12.adb: Minor reformatting
35287
35288 2001-12-03  Ed Schonberg <schonber@gnat.com>
35289
35290         * sem_ch12.adb (Inline_Instance_Body): Use Save_Scope_Stack and
35291         push Standard on the stack before analyzing the instance body,
35292         in order to have a clean visibility environment.
35293
35294         * sem_ch12.adb (Inline_Instance_Body): Remove redundant code.
35295
35296 2001-12-03  Ed Schonberg <schonber@gnat.com>
35297
35298         * sem_ch12.adb (Instantiate_Package_Body): Protect against double
35299         instantiation of a body that contains an inlined body.
35300
35301 2001-12-03  Ed Schonberg <schonber@gnat.com>
35302
35303         * sem_ch12.adb:
35304         (Analyze_generic_subprogram_Declaration): Set outer_generic_scope,
35305         to prevent freezing within formal packages.
35306         (Freeze_Subprogram_Body): If body comes from another instance that
35307         appeared before its own body, place freeze node at end of current
35308         declarative part, to prevent a back-end crash.
35309         (Inline_Instance_Body): Handle properly a package instance within
35310         a subprogram instance that is a child unit.
35311
35312 2001-12-01  Graham Stott  <grahams@redhat.com>
35313
35314         * Makefile.in (misc.o): Add missing $(srcdir) prefix
35315         and add optabs.h dependency.
35316
35317         * misc.c: Include optabs.h
35318         (gnat_tree_code_type): Make static and const.
35319         (gnat_tree_code_length): Likewise.
35320         (gnat_tree_code_name): Likewise.
35321         (update_setjmp_buf): Obtain operands mode from insn_data.
35322
35323 2001-11-29  Richard Henderson  <rth@redhat.com>
35324
35325         * init.c: Remove obsolete dwarf2 frame.h section.
35326
35327 2001-11-29  Joseph S. Myers  <jsm28@cam.ac.uk>
35328
35329         * Make-lang.in (ada.generated-manpages): New dummy target.
35330
35331 2001-11-29  Ed Schonberg <schonber@gnat.com>
35332
35333         * g-os_lib.adb (Add_To_Command): use explicit loop to move string
35334         into Command, an array conversion is illegal here. Uncovered by
35335         ACATS B460005.
35336
35337 2001-11-28  Geert Bosch <bosch@gnat.com>
35338
35339         * init.c: Minor whitespace changes.
35340
35341 2001-11-28  Doug Rupp <rupp@gnat.com>
35342
35343         * init.c: (__gnat_install_handler,VMS): Increase size of alternate
35344         signal stack.
35345
35346 2001-11-28  Zack Weinberg  <zack@codesourcery.com>
35347
35348         * misc.c (gnat_expand_constant): Move declaration above
35349         definition of lang_hooks.
35350         (LANG_HOOKS_EXPAND_CONSTANT): Set to gnat_expand_constant.
35351         (gnat_init): lang_expand_constant no longer exists.
35352
35353         (internal_error_function): Remove #ifdef HAVE_VPRINTF.  We
35354         always have vprintf.
35355         (gnat_init): Always call set_internal_error_function.
35356
35357 2001-11-27  Andreas Jaeger  <aj@suse.de>
35358
35359         * Makefile.in (stamp-tool_src_dir): Use symbolic link.
35360
35361 2001-11-27  Laurent Guerby  <guerby@acm.org>
35362
35363         * Makefile.in: Regenerate Ada dependencies.
35364
35365 2001-11-26  Richard Henderson  <rth@redhat.com>
35366
35367         * Make-lang.in (gnatbind, gnatmake, gnatbl, gnatchop, gnatcmd,
35368         gnatlink, gnatkr, gnatls, gnatmem, gnatprep, gnatpsta, gnatpsys,
35369         gnatxref, gnatfind, gnatlbr): Depend on CONFIG_H and prefix.o.
35370
35371 2001-11-25  Laurent Guerby  <guerby@acm.org>
35372
35373         * sysdep.c (rts_get_*): Fix style.
35374
35375 2001-11-19  Laurent Guerby  <guerby@acm.org>
35376
35377         * Makefile.in (INCLUDES_FOR_SUBDIR): Remove redundant system include
35378         since it is of no apparent use and cause warnings.
35379
35380 2001-11-18  Neil Booth  <neil@daikokuya.demon.co.uk>
35381
35382         * misc.c (gnat_decode_option, gnat_init_options): Make definitions
35383         static too.
35384         (gnat_init): Don't return NULL.
35385         (finish_parse): Remove.
35386
35387 2001-11-17  Laurent Guerby  <guerby@acm.org>
35388
35389         * Make-lang.in (GNATLIBFLAGS): Add -W -Wall.
35390         * gigi.h (init_decl_processing): Rename to gnat_init_decl_processing.
35391         * io-aux.c: Provide K&R prototypes to all functions, reformat code.
35392         * lang-spec.h: Add missing struct field to silence warnings.
35393         * sysdep.c (rts_get_*): Provide K&R prototype.
35394         * sysdep.c (Unlock_Task, Lock_Task): Move to K&R prototype.
35395         * traceback.c (Unlock_Task, Lock_Task): Likewise.
35396         * tracebak.c (__gnat_backtrace): Remove unused variable.
35397         * utils.c (end_subprog_body): Move to K&R style.
35398
35399 Thu Nov 15 18:16:17 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
35400
35401         * trans.c, utils2.c: Remove PALIGN parameter to get_inner_reference.
35402
35403 2001-11-15  Neil Booth  <neil@daikokuya.demon.co.uk>
35404
35405         * misc.c (gnat_init): Change prototype.  Include the
35406         functionality of the old init_parse and init_decl_processing.
35407         (gnat_init_decl_processing): New prototype.
35408         (init_parse): Remove.
35409         * utils.c (init_decl_processing): Rename gnat_init_decl_processing.
35410
35411 2001-11-09  Neil Booth  <neil@daikokuya.demon.co.uk>
35412
35413         * misc.c (gnat_print_decl, gnat_print_type): Renamed.
35414         (LANG_HOOKS_PRINT_DECL, LANG_HOOKS_PRINT_TYPE): Override.
35415         (print_lang_statistics, lang_print_xnode, print_lang_identifier,
35416         set_yydebug): Remove.
35417
35418 2001-11-09  Neil Booth  <neil@daikokuya.demon.co.uk>
35419
35420         * misc.c (LANG_HOOKS_NAME, LANG_HOOKS_IDENTIFIER_SIZE): Override.
35421         (struct lang_hooks): Constify.
35422         (language_string, lang_identify): Remove.
35423         * utils.c (init_decl_processing): Update.
35424
35425 2001-11-06  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
35426
35427         * misc.c: Include langhooks-def.h.
35428         * Makefile.in: Update.
35429
35430 2001-10-30  Robert Dewar <dewar@gnat.com>
35431
35432         * style.adb:
35433         (Check_Identifier): Rewrite circuit to be compatible with use of letters
35434         in the upper half of ASCII.
35435         (Check_Identifier): Minor reformatting
35436
35437 2001-10-30  Geert Bosch <bosch@gnat.com>
35438
35439         * (Associated_Node, Set_Associated_Node): Do not check for
35440         Freeze_Entity.
35441
35442 2001-10-30  Robert Dewar <dewar@gnat.com>
35443
35444         * a-reatim.ads: Minor reformatting
35445
35446 2001-10-30  Robert Dewar <dewar@gnat.com>
35447
35448         * gnatdll.adb: Minor reformatting throughout. Many ??? added for
35449         undocumented declarations.
35450
35451 2001-10-30  Pascal Obry <obry@gnat.com>
35452
35453         * gnatdll.adb (Parse_Command_Line): handle -g option to be passed
35454         to the binder and linker.
35455         Minor style fix.
35456
35457         * mdll.ads: Fix layout.  Update copyright notice.
35458
35459         * mdll.adb: Fix layout.  Update copyright notice.
35460
35461 2001-10-30  Robert Dewar <dewar@gnat.com>
35462
35463         * usage.adb: Minor fix to output for -gnaty.
35464
35465 2001-10-30  Ed Schonberg <schonber@gnat.com>
35466
35467         * a-reatim.ads: Makes Seconds_Count into a 64-bit integer,
35468         to accommodate all its possible values.
35469
35470         * a-reatim.adb (Split): Special-case handling of Time_Span_First
35471         and of small absolute values of T.
35472
35473 2001-10-30  Richard Kenner <kenner@gnat.com>
35474
35475         * misc.c (gnat_expand_expr, case NULL_EXPR): Remove call to
35476         set_mem_attributes since not needed and wrong if RESULT if a REG;
35477         fixes ACATS failures.
35478
35479 2001-10-30  Geert Bosch <bosch@gnat.com>
35480
35481         * 86numaux.adb, a-tigeau.ads, a-wtgeau.ads, fname-sf.ads, g-traceb.ads,
35482         s-tasdeb.ads, sem_maps.ads: Add 2001 to copyright notice.
35483
35484 2001-10-30  Robert Dewar <dewar@gnat.com>
35485
35486         * bindusg.adb: Undocument -f switch.
35487
35488         * gnatcmd.adb: Remove /FULL_ELABORATION.
35489
35490         * opt.ads (Force_RM_Elaboration_Order): Document that this is
35491         obsolescent.
35492
35493         * gnatbind.adb: Output new warning for use of obsolescent -f switch.
35494
35495         * gnatbind.adb: Minor update of warning msg.
35496
35497 2001-10-30  Vincent Celier <celier@gnat.com>
35498
35499         * gnatcmd.adb (MAKE, BIND, LINK, LIST, FIND, XREF): Add translations
35500         for project file switches (-P (/PROJECT_FILE=),
35501          -X (/EXTERNAL_REFERENCE=) and -vPx (/PROJECT_FILE_VERBOSITY=DEFAULT
35502         or MEDIUM or HIGH)
35503
35504 2001-10-30  Geert Bosch <bosch@gnat.com>
35505
35506         * decl.c: Minor whitespace fixes.
35507
35508 2001-10-30  Richard Kenner <kenner@gnat.com>
35509
35510         * utils2.c (build_allocator): Test for SIZE overflow in array case too
35511
35512 2001-10-30  Geert Bosch <bosch@gnat.com>
35513
35514         * ali-util.adb (Initialize_Checksum): Use out-mode instead of in out.
35515         Found due to GCC 3.0 warning of using uninitialized value.
35516
35517         * layout.adb:
35518         (Get_Max_Size): Use variant record for tracking value/expression.
35519          Makes logic clearer and prevents warnings for uninitialized variables.
35520         (Layout_Array_Type): Use variant record for tracking value/expression.
35521          Makes logic clearer and prevents warnings for uninitialized variables.
35522
35523 2001-10-30  Robert Dewar <dewar@gnat.com>
35524
35525         * lib.adb: Minor reformatting
35526
35527         * s-taprop.ads: Minor reformatting
35528
35529 2001-10-29  Laurent Guerby  <guerby@acm.org>
35530
35531         * init.c:
35532         (Raise_From_Signal_Handler, Propagate_Signal_Exception): Make arg
35533         const.
35534         (_gnat_error_handler): Make MSG const.
35535
35536 2001-10-29  Richard Kenner <kenner@gnat.com>
35537
35538         * sysdep.c: Fix localtime_r problem on LynxOS.
35539         Also remove #elif to avoid warnings.
35540
35541         * misc.c (yyparse): Don't set up and register jmpbuf; remove decls
35542         used by this.
35543
35544         * decl.c (annotate_value): Make SIZE unsigned to avoid warning.
35545
35546 2001-10-28  Joseph S. Myers  <jsm28@cam.ac.uk>
35547
35548         * 86numaux.adb, a-tigeau.ads, a-wtgeau.ads, decl.c, exp_ch6.adb,
35549         exp_ch9.adb, exp_util.adb, fname-sf.ads, freeze.ads, g-awk.adb,
35550         g-comlin.ads, g-dirope.adb, g-dyntab.ads, g-socket.ads,
35551         g-table.ads, g-traceb.ads, gnat-style.texi, gnatchop.adb, init.c,
35552         layout.adb, layout.ads, mdllfile.ads, mlib-fil.ads, osint.ads,
35553         s-fatgen.adb, s-imgrea.adb, s-taprop.ads, s-tasdeb.ads,
35554         sem_aggr.adb, sem_attr.adb, sem_case.ads, sem_ch13.adb,
35555         sem_ch3.adb, sem_elab.adb, sem_maps.ads, sem_res.adb,
35556         sem_util.ads, sinfo.ads, sinput.ads, table.adb, table.ads,
35557         types.ads, urealp.adb: Fix spelling errors.
35558
35559 2001-10-27  Laurent Guerby <guerby@acm.org>
35560
35561         * trans.c (gigi): Fix non determinism leading to bootstrap
35562         comparison failures for debugging information.
35563
35564 2001-10-26  Florian Weimer  <fw@deneb.enyo.de>
35565
35566         * gnat_rm.texi: Use @./@: where appropriate.
35567
35568 2001-10-26  Robert Dewar <dewar@gnat.com>
35569
35570         * sinfo.adb: Define Associated_Node to overlap Entity field. Cleanup.
35571
35572 2001-10-26  Richard Kenner <kenner@gnat.com>
35573
35574         * gmem.c (__gnat_gmem_read_next): Properly check for EOF
35575
35576 2001-10-26  Richard Kenner <kenner@gnat.com>
35577
35578         * decl.c (validate_size): Modify message for bad size to avoid
35579         implication that compiler is modifying the size.
35580
35581 2001-10-26  Robert Dewar <dewar@gnat.com>
35582
35583         * prj-util.adb: Minor reformatting. Fix bad header format.
35584
35585 2001-10-26  Robert Dewar <dewar@gnat.com>
35586
35587         * sinfo.ads: Define Associated_Node to overlap Entity field. Cleanup.
35588
35589         * sinfo.ads: Clarify use of Associated_Node (documentation only).
35590
35591         * sem_ch12.adb: Change Node4 to Associated_Node. Change
35592         Associated_Node to Get_Associated_Node. Put use of Unchecked_Access
35593         much more narrowly in places where needed. These are cleanups.
35594
35595 2001-10-26  Joel Brobecker <brobecke@gnat.com>
35596
35597         * 5zosinte.ads (null_pthread): new constant.
35598
35599         * 5ztaprop.adb:
35600         (Initialize_TCB): Initialize thread ID to null, to be able to verify
35601          later that this field has been set.
35602         (Finalize_TCB): ditto.
35603         (Suspend_Task): Verify that the thread ID is not null before using it.
35604         (Resume_Task): ditto.
35605
35606         * s-tasdeb.adb:
35607         (Resume_All_Tasks): Lock the tasks list before using it.
35608         (Suspend_All_Tasks): ditto.
35609
35610 2001-10-26  Richard Kenner <kenner@gnat.com>
35611
35612         * decl.c (gnat_to_gnu_entity, case E_General_Access_Type):
35613         Make constant variant of designated type for Is_Access_Constant.
35614         Call update_pointer_to with main variant.
35615
35616         * trans.c (process_freeze_entity, process_type):
35617         Call update_pointer_to on main variant.
35618
35619         * utils.c (update_pointer_to): Make corresponding variant for NEW_TYPE.
35620         If main variant, update all other variants.
35621
35622         * utils2.c (build_unary_op, case INDIRECT_REF): No longer set
35623         TREE_STATIC.
35624
35625 2001-10-26  Robert Dewar <dewar@gnat.com>
35626
35627         * prj-util.adb: Minor reformatting
35628
35629 2001-10-26  Robert Dewar <dewar@gnat.com>
35630
35631         * prj-util.adb: Minor reformatting
35632
35633 2001-10-26  Robert Dewar <dewar@gnat.com>
35634
35635         * prj-attr.adb: Minor reformatting throughout
35636
35637 2001-10-26  Robert Dewar <dewar@gnat.com>
35638
35639         * prj-attr.ads: Minor reformatting
35640         Add ??? comment (this whole spec has almost no comments)
35641
35642 2001-10-26  Vincent Celier <celier@gnat.com>
35643
35644         * g-os_lib.adb (Normalize_Pathname): Preserve the double slash
35645         ("//") that precede the drive letter on Interix.
35646
35647 2001-10-26  Geert Bosch <bosch@gnat.com>
35648
35649         * gnat_rm.texi: Add GNAT Reference Manual.
35650
35651 2001-10-25  Robert Dewar <dewar@gnat.com>
35652
35653         * sem_ch8.adb (Analyze_Package_Renaming): Skip analysis if Name
35654         is Error. Similar change for other renaming cases.
35655
35656 2001-10-25  Robert Dewar <dewar@gnat.com>
35657
35658         * s-atacco.ads: Add pragma Inline_Always for functions.
35659         Fix header format. Add copyright 2001
35660
35661 2001-10-25  Ed Schonberg <schonber@gnat.com>
35662
35663         * par-ch3.adb (P_Subtype_Mark_Resync): for an anonymous array
35664         return Error rather than Empty so that analysis can proceed.
35665
35666 2001-10-25  Ed Schonberg <schonber@gnat.com>
35667
35668         * sem_util.adb (Enter_Name): better handling of cascaded error
35669         messages when a unit appears in its own context.
35670
35671 2001-10-25  Ed Schonberg <schonber@gnat.com>
35672
35673         * sem_util.adb (Defining_Entity): in case of error, attach created
35674         entity to specification, so that semantic analysis can proceed.
35675
35676 2001-10-25  Robert Dewar <dewar@gnat.com>
35677
35678         * sem_util.adb
35679         (Defining_Entity): Deal with Error.
35680         (Process_End_Label): Deal with bad end label for.
35681
35682 2001-10-25  Ed Schonberg <schonber@gnat.com>
35683
35684         * sem_elab.adb (Check_A_Call): refine message when call is in an
35685         instance but callee is not declared in the generic unit.
35686
35687 2001-10-25  Ed Schonberg <schonber@gnat.com>
35688
35689         * sem_elab.adb (Check_A_Call): check for renaming before finding the
35690         enclosing unit, which may already be different from the calling unit.
35691
35692 2001-10-25  Geert Bosch <bosch@gnat.com>
35693
35694         * 4gintnam.ads: fix header format.
35695
35696 2001-10-25  Ed Schonberg <schonber@gnat.com>
35697
35698         * sem_res.adb (Resolve_Call): if the call is actually an indexing
35699         operation on the result of a parameterless call, perform elaboration
35700         check after the node has been properly rewritten.
35701
35702         * sem_ch12.adb (Copy_Generic_Node): after the proper body has been
35703         inlined within the generic tree, the defining identifier is not a
35704         compilation_unit.
35705
35706 2001-10-25  Ed Schonberg <schonber@gnat.com>
35707
35708         * sem_res.adb (Resolve): special-case resolution of Null in an
35709          instance or an inlined body to avoid view conflicts.
35710
35711         * sem_ch12.adb (Copy_Generic_Node): for allocators, check for view
35712          compatibility by retrieving the access type of the generic copy.
35713
35714 2001-10-25  Robert Dewar <dewar@gnat.com>
35715
35716         * sem_ch3.adb:
35717         (Analyze_Number_Declaration): Handle error expression.
35718         (Signed_Integer_Type_Declaration): Handle error bound.
35719         (Analyze_Subtype_Indication): Handle error range.
35720
35721         * sem_util.adb (Get_Index_Bounds): Check for Error.
35722
35723 2001-10-25  Robert Dewar <dewar@gnat.com>
35724
35725         * restrict.adb (Set_No_Run_Time_Mode): Set Discard_Names as default
35726         in no run time mode.
35727
35728 2001-10-25  Pascal Obry <obry@gnat.com>
35729
35730         * gnatmem.adb (Read_Next): fix Curs2 value to properly handle quiet
35731         mode case for ALLOC case.
35732
35733         * gnatmem.adb (Read_Next): correctly fix parsing in Quiet mode on
35734         all platforms. Improvement of last change.
35735
35736 2001-10-25  Robert Dewar <dewar@gnat.com>
35737
35738         * exp_ch4.adb (Expand_N_Allocator): Minor reformatting.
35739
35740 2001-10-25  Geert Bosch  <bosch@gnat.com>
35741
35742         * osint.adb (Is_Relative): Remove duplicate.
35743
35744 2001-10-25  Pascal Obry <obry@gnat.com>
35745
35746         * osint.adb (Read_Default_Search_Dirs): correctly detect relative
35747         pathnames in UNIX and DOS style with drive letter.
35748         (Is_Relative): new routine.
35749
35750         * osint.adb: Minor reformatting
35751
35752         * osint.adb (Is_Relative): implementation using
35753         GNAT.OS_Lib.Is_Absolute_Path. Better fix.
35754
35755 2001-10-25  Pascal Obry <obry@gnat.com>
35756
35757         * g-dirope.adb (Basename): correctly compute offset between the
35758         original Path and the translated one.
35759
35760         * g-dirope.adb: (Base_Name): add some comments.
35761
35762 2001-10-25  Robert Dewar <dewar@gnat.com>
35763
35764         * exp_imgv.adb (Expand_Image_Attribute): Defend against bad use
35765         in HIE mode, avoids compilation abandoned message
35766
35767         * exp_imgv.adb: Correct typo in previous change
35768
35769         * exp_imgv.adb: Correct typo in previous change (not my day!)
35770
35771 2001-10-25  Robert Dewar <dewar@gnat.com>
35772
35773         * s-tpinop.ads: Add 2001 to copyright notice. Fix header format.
35774
35775 2001-10-25  Pascal Obry <obry@gnat.com>
35776
35777         * g-awk.ads: Move all pragma inlines next to the routine
35778          declarations. This is more uniform with other GNAT spec.
35779
35780 2001-10-22  Geert Bosch  <bosch@gnat.com>
35781
35782         * Make-lang.in (gnattools, cross-gnattools): Remove gnatmem.
35783
35784 2001-10-19  Geert Bosch  <bosch@gnat.com>
35785
35786         * Makefile.in (tools, gnattools): Remove gnatmem.
35787
35788 2001-10-17  Richard Henderson  <rth@redhat.com>
35789
35790         * Makefile.in (misc.o): Depend on langhooks.h.
35791         * misc.c: Include it.
35792         (LANG_HOOKS_INIT, LANG_HOOKS_INIT_OPTIONS): New.
35793         (LANG_HOOKS_DECODE_OPTION): New.
35794         (lang_hooks): Use LANG_HOOKS_INITIALIZER.
35795
35796 2001-10-16  Florian Weimer  <fw@deneb.enyo.de>
35797
35798         * trans.c (tree_transform): Adjust to recent change in
35799         expand_asm_operands to implement named asm operands.
35800
35801 2001-10-11  Ed Schonberg  <schonber@gnat.com>
35802
35803         * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Bugfix in
35804         renaming of discriminant for mutable record type.
35805
35806 2001-10-11  Robert Dewar  <dewar@gnat.com>
35807
35808         * validsw.adb: Properly save -gnatVn status.
35809
35810 2001-10-11  Robert Dewar <dewar@gnat.com>
35811
35812         * usage.adb: Add lines for V switch.
35813
35814         * gnatcmd.adb (COMPILE): Revise translations for -gnatV
35815         (/VALIDITY_CHECKING).
35816
35817 2001-10-11  Ed Schonberg <schonber@gnat.com>
35818
35819         * sem_type.adb (Add_One_Interp): an operator for a type declared in
35820         an extension of System is known to be visible.
35821
35822 2001-10-11  Ed Schonberg <schonber@gnat.com>
35823
35824         * sem_eval.adb (Compare_Fixup): get the bounds of a String_Literal
35825         properly. Fixes regression on ACATS C34005G.
35826
35827 2001-10-11  Robert Dewar <dewar@gnat.com>
35828
35829         * sem_ch5.adb (Analyze_Iteration_Scheme): Suppress warning on null
35830         loop in generic instance, since this is likely not very useful.
35831
35832 2001-10-11  Robert Dewar <dewar@gnat.com>
35833
35834         * restrict.adb (Disallow in No_Run_Time_Mode): Properly specialize
35835         the error message for high integrity mode.
35836
35837         * rtsfind.adb (RTE): Give message if we try to find an entity that
35838         is not available in high integrity mode.
35839
35840         * rtsfind.ads:
35841         (OK_To_Use_In_HIE_Mode): New array.
35842         (RTE): May return Empty in high integrity mode.
35843
35844         * rtsfind.ads (OK_To_Use_In_No_Run_Time_Mode): New name for
35845         OK_To_Use_In_HIE_Mode, now includes System_FAT_xxx.
35846
35847         * sem_ch6.adb (Analyze_Subprogram_Body): Kill body in predefined
35848         unit if not inlined always and in no runtime mode. Fixes problem
35849         caused by new Rtsfind changes.
35850
35851         * sem_ch6.adb (Analyze_Subrogram_Body): Do not Check_References if
35852         body is deleted.
35853
35854         * rtsfind.adb (RTE): Make sure we do not try to load unit after
35855         giving message for entity not available in high integrity mode.
35856
35857 2001-10-11  Pascal Obry <obry@gnat.com>
35858
35859         * impunit.adb: Add GNAT.CRC32.
35860
35861 2001-10-11  Ed Schonberg <schonber@gnat.com>
35862
35863         * exp_fixd.adb (Expand_Multiply_Fixed_By_Fixed_Giving_Fixed): handle
35864         properly the case where one universal operand in a non-static
35865         exponentiation of a real literal.
35866
35867 2001-10-11  Ed Schonberg <schonber@gnat.com>
35868
35869         * exp_ch7.adb (Find_Final_List): for a type appearing in a with_type
35870         clause, return the gobal finalization list, for lack of anthing else.
35871
35872 2001-10-11  Ed Schonberg <schonber@gnat.com>
35873
35874         * exp_ch7.adb (Make_Transient_Block): if statement is within
35875         exception handler, always use new transient scope to place Clean
35876         procedure.
35877
35878 2001-10-11  Pascal Obry <obry@gnat.com>
35879
35880         * Makefile.in:
35881         (GNAT_ADA_OBJS): add g-crc32.o, a-tags.o, a-stream.o
35882         (GNATBIND_OBJS): add g-crc32.o, a-tags.o, a-stream.o
35883         (GNATLS_RTL_OBJS): add g-crc32.o
35884         (GNATMAKE_RTL_OBJS): add g-crc32.o
35885
35886         * ali-util.adb:
35887         (CRC_Match): new function.
35888         (Get_File_Checksum): renamed Get_File_CRC. Use the GNAT.CRC32 unit
35889         instead of the previous simple checksum algorithm.
35890         (Time_Stamp_Mismatch): use CRC_Match for comparison.
35891         (Set_Source_Table): idem.
35892
35893         * ali-util.ads:
35894         (Get_File_Checksum): renamed Get_File_CRC as now we compute CRC
35895         instead of simple checksum.
35896         (CRC_Match): new function.
35897         (CRC_Error): new constant.
35898
35899         * ali.adb (Scan_ALI): rename variable Chk to CRC as we are handling
35900         a CRC now and not a simple checksum. A CRC uses lower-case hex
35901         letters, fixes ambiguity in parsing.
35902
35903         * ali.ads (Sdep_Record.Checksum): renamed Sdep_Record.CRC as this
35904         is what this variable will store.
35905
35906         * bcheck.adb: Change reference to chechsum in comments by CRC.
35907         (Check_Consistency): Rename Get_File_Checksum to Get_File_CRC.
35908         rename All_Checksum_Match to All_CRC_Match. Change due to API
35909         renaming since now GNAT does not use a simple checksum but a
35910         CRC using GNAT.CRC32.
35911
35912         * gnatls.adb: Rename Checksum to CRC in many places, we use a CRC
35913         now and not anymore a simple checksum.
35914
35915         * lib-load.adb: Use Source_CRC instead of Source_Checksum in many
35916         places.
35917
35918         * lib-writ.adb (Write_ALI): Use Source_CRC instead of Source_Checksum.
35919
35920         * scans.adb:
35921         (Restore_Scan_State): rename Checksum to CRC.
35922         (Save_Scan_State): idem.
35923
35924         * scans.ads:
35925         With GNAT.CRC32.
35926         (Checksum): rename to CRC.
35927         (Saved_Scan_State): Save_Checksum field renamed to Save_CRC
35928
35929         * scn-nlit.adb: Rename many Accumulate_Checksum to Update (from
35930         GNAT.CRC32).  Update copyright notice.
35931
35932         * scn-slit.adb: Rename many Accumulate_Checksum to Update (from
35933         GNAT.CRC32).  Update copyright notice.
35934
35935         * scn.adb:
35936         (Accumulate_Checksum): removed.
35937         (Update): new procedure. Add a wide-character into the CRC.
35938
35939         * sinput-l.adb:
35940         (Complete_Source_File_Entry): use CRC32 instead of simple checksum.
35941         (Load_File): fix initialization of S (change Source_Checksum to
35942         Source_CRC)
35943
35944         * sinput-p.adb (Load_Project_File): rename Source_Checksum to
35945         Source_CRC in S initialization.
35946
35947         * sinput.adb (Source_Checksum): renamed to Source_CRC.
35948
35949         * sinput.ads (Source_Checksum): renamed to Source_CRC.
35950         Update comments for the CRC.
35951
35952         * types.adb (Hex): Use lowercase for the letter part.
35953
35954         * types.ads (Get_Hex_String): Returns the hexadecimal representation
35955         for a word. This is currently used only for CRC. In previous version,
35956         the checksum was using a representation with all letter being
35957         upper-case. With the new implementation (using CRC) we do not remove
35958         the 32th bit of the CRC, so we can have an upper-case starting letter
35959         in the CRC. This is not possible to parse in Scan_ALI (ali.adb).
35960         It is ambigous since the CRC was optional and could be followed by
35961         options like EB, EE. So now this routines uses lower-case letter for
35962         the hexadecimal representation. Strange enough only lower case letters
35963         where checked in Scan_ALI (even if this was not a possible case).
35964
35965         * gnatvsn.ads (Library_Version): changed to 3.15a.
35966
35967         * s-crc32.ads: Initial version from GNAT.CRC32. This is the version
35968         for the compiler.
35969
35970         * s-crc32.adb: Initial version from GNAT.CRC32. This is the version
35971         for the compiler.
35972
35973         * ali-util.adb: Redo previous change to avoid using word CRC everywhere
35974         Add 2001 to copyright notice
35975         (Accumulate_Checksum): Modify to use System.CRC32.
35976
35977         * ali-util.ads: Redo changes of previous revision to continue to use
35978         the word Checksum. Add 2001 to copyright notice.
35979
35980         * ali.adb: Undo some of previous changes, not needed.
35981         Keep the change for lower case letters in the checksum.
35982
35983         * ali.ads: Undo previous change not needed.
35984
35985         * bcheck.adb: Undo most of previous change, not needed.
35986         But do use Checksums_Match for checksum comparison.
35987
35988         * gnatls.adb: Undo most of previous change, not needed.
35989         But do use Checksums_Match for comparing checksums.
35990
35991         * lib-load.adb: Undo previous change, not needed.
35992
35993         * lib-writ.adb: Undo previous change, not needed.
35994
35995         * lib-writ.ads: Document that checksums use lower case,
35996         not upper case letters.
35997
35998         * scans.adb: Undo previous change, not needed
35999
36000         * scans.ads: Undo previous change, not needed.
36001
36002         * scn-nlit.adb: Undo previous changes, not needed.
36003
36004         * scn-slit.adb: Undo previous change, not needed.  Fix header format.
36005
36006         * scn.adb:
36007         (Accumulate_Checksum): Use System.CRC32.
36008         (Initialize_Checksum): New procedure.
36009         Remove other changes of previous revision.
36010
36011         * sinput-p.adb: Undo previous change, not needed.
36012
36013         * sinput.adb: Undo previous change, not needed.
36014
36015         * sinput-l.adb: Undo previous change, not needed.
36016
36017         * sinput.ads: Undo previous change, not needed.  Keep only comment
36018         on new checksum algorithm
36019
36020         * Makefile.in: Add s-crc32 as needed, remove g-crc32.
36021         Also remove a-tags and a-stream from GNAT sources.
36022
36023         * ali.adb (Scan_ALI): fix typo introduce in latest check-in.
36024
36025         * Makefile.in (GNATRTL_NONTASKING_OBJS): Add g-crc32.o.
36026
36027 2001-10-11  Geert Bosch  <bosch@gnat.com>
36028
36029         * einfo.h: Regenerate.
36030
36031         * nmake.ads: Regenerate.
36032
36033         * nmake.adb: Regenerate.
36034
36035         * sinfo.h: Regenerate.
36036
36037         * treeprs.adb: Regenerate.
36038
36039 2001-10-10  Geert Bosch  <bosch@gnat.com>
36040
36041         * gnat-style.texi: New file describing coding guidelines for Ada.
36042
36043 2001-10-10  Ed Schonberg <schonber@gnat.com>
36044
36045         * einfo.adb (Write_Entity_Flags): Elaboration_Entity_Required
36046         is Flag174.
36047
36048 2001-10-10  Geert Bosch  <bosch@gnat.com>
36049
36050         * snames.ads: Add new names for project facility.
36051
36052         * snames.adb: Update to reflect snames.ads changes.
36053
36054         * snames.h: Update to reflect snames.ads changes.
36055
36056 2001-10-10  Vincent Celier <celier@gnat.com>
36057
36058         * make.adb:
36059         (Add_Switches): reflect the changes for the switches attributes
36060         Default_Switches indexed by the programming language,
36061         Switches indexed by the file name.
36062         (Collect_Arguments_And_Compile): Idem.
36063         Reflect the attribute name changes.
36064
36065         * prj-attr.adb:
36066         (Initialisation_Data): Change the names of some packages and
36067         attributes.
36068         (Initialize): process case insensitive associative arrays.
36069
36070         * prj-attr.ads:
36071         (Attribute_Kind): Remove Both, add Case_Insensitive_Associative_Array.
36072
36073         * prj-dect.adb:
36074         (Parse_Attribute_Declaration): For case insensitive associative
36075          arrays, set the index string to lower case.
36076
36077         * prj-env.adb:
36078         Reflect the changes of the project attributes.
36079
36080         * prj-nmsc.adb:
36081         Replace Check_Naming_Scheme by Ada_Check and
36082         Language_Independent_Check.
36083
36084         * prj-nmsc.ads:
36085         Replaced Check_Naming_Scheme by 2 procedures:
36086         Ada_Check and Language_Independent_Check.
36087
36088         * prj-proc.adb:
36089         (Process_Declarative_Items): For case-insensitive associative
36090         arrays, set the index string to lower case.
36091         (Recursive_Check): Call Prj.Nmsc.Ada_Check, instead of
36092         Prj.Nmsc.Check_Naming_Scheme.
36093
36094         * prj-tree.adb:
36095         (Case_Insensitive): New function
36096         (Set_Case_Insensitive): New procedure
36097
36098         * prj-tree.ads:
36099         (Case_Insensitive): New function
36100         (Set_Case_Insensitive): New procedure
36101         (Project_Node_Record): New flag Case_Insensitive.
36102
36103         * prj-util.adb:
36104         (Value_Of): new function to get the string value of a single
36105         string variable or attribute.
36106
36107         * prj-util.ads:
36108         (Value_Of): new function to get the string value of a single
36109         string variable or attribute.
36110
36111         * prj.adb:
36112         (Ada_Default_Spec_Suffix): New function
36113         (Ada_Default_Impl_Suffix): New function
36114         Change definitions of several constants to reflect
36115         new components of record types.
36116
36117         * prj.ads:
36118         (Naming_Data): Change several components to reflect new
36119         elements of naming schemes.
36120         (Project_Data): New flags Sources_Present and
36121         Language_Independent_Checked.
36122         (Ada_Default_Spec_Suffix): New function.
36123         (Ada_Default_Impl_Suffix): New function.
36124
36125         * snames.ads:
36126         Modification of predefined names for project manager: added
36127         Implementation, Specification_Exceptions, Implementation_Exceptions,
36128         Specification_Suffix, Implementation_Suffix, Separate_Suffix,
36129         Default_Switches, _Languages, Builder, Cross_Reference,
36130         Finder. Removed Body_Part, Specification_Append, Body_Append,
36131         Separate_Append, Gnatmake, Gnatxref, Gnatfind, Gnatbind,
36132         Gnatlink.
36133
36134         * prj.ads: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
36135         Add comments.
36136
36137         * prj-nmsc.adb (Ada_Check): Test that Separate_Suffix is defaulted,
36138         not that it is Nil_Variable_Value.
36139
36140         * prj.ads: Add ??? for uncommented declarations
36141
36142 2001-10-10  Ed Schonberg <schonber@gnat.com>
36143
36144         * sem_prag.adb: (Analyze_Pragma, case External): If entity is a
36145         constant, do not indicate possible modification, so that gigi can
36146         treat it as a bona fide constant.
36147
36148 2001-10-10  Robert Dewar <dewar@gnat.com>
36149
36150         * sem_prag.adb: Add processing for pragma External.
36151
36152         * snames.ads: Add entry for pragma External.
36153
36154         * par-prag.adb: Add pragma External.
36155
36156         * snames.adb: Updated to match snames.ads.
36157
36158 2001-10-10  Ed Schonberg <schonber@gnat.com>
36159
36160         * exp_ch4.adb (Expand_N_Allocator): Generate meaningful names for
36161         a dynamic task if the allocator appears in an indexed assignment
36162         or selected component assignment.
36163
36164         * exp_util.adb (Build_Task_Array_Image, Build_Task_Record_Image):
36165         For a dynamic task in an assignment statement, use target of
36166         assignment to generate meaningful name.
36167
36168 2001-10-10  Ed Schonberg <schonber@gnat.com>
36169
36170         * einfo.adb (Write_Field19_Name): Body_Entity is also defined for
36171         a generic package.
36172
36173         * einfo.ads: Body_Entity is also defined for generic package.
36174         Documentation change only
36175
36176         * exp_aggr.adb (Build_Array_Aggr_Code): When expanding an
36177         others_choice for a discriminated component initialization,
36178         convert discriminant references into the corresponding discriminals.
36179
36180         * exp_ch3.adb (Get_Simple_Init_Val): Add qualification to aggregate
36181         only if original type is private and expression has to be wrapped
36182         in a conversion.
36183
36184         * checks.adb:
36185         (Apply_Constraint_Check): Do not perform length check
36186         if expression is an aggregate with only an others_choice.
36187         (Length_N_Cond): two references to the same in_parameter
36188         (typically the discriminal in an init_proc) denote the same value.
36189         Two useful optimization uncovered by bugfixes above.
36190
36191 2001-10-10  Robert Dewar <dewar@gnat.com>
36192
36193         * xeinfo.adb: Change int to char in translation of enumeration types.
36194         This fixes a problem in the C representation of component alignment.
36195         Add 2001 to copyright notice
36196
36197 2001-10-10  Richard Kenner <kenner@gnat.com>
36198
36199         * decl.c: (validate_size): Do check size of object of integral type
36200         if it is a packed array type.
36201
36202 2001-10-10  Richard Kenner <kenner@gnat.com>
36203
36204         * decl.c: (gnat_to_gnu_entity, case object): Also materialize
36205         VAR_DECL for constant if not Is_Public but -O0.
36206
36207 2001-10-10  Richard Kenner  <kenner@gnat.com>
36208
36209         * misc.c (struct lang_hooks): Add new initializer to match GCC change.
36210
36211 2001-10-10  Geert Bosch  <bosch@gnat.com>
36212
36213         * xnmake.adb (XNmake): Fix handling of -s/-b options.  No longer
36214         use '/' as switch character, allowing for absolute file names.
36215
36216 2001-10-09  Joseph S. Myers  <jsm28@cam.ac.uk>
36217
36218         * 4gintnam.ads, Make-lang.in, Makefile.in, config-lang.in: Update
36219         FSF address.
36220
36221 2001-10-08  Geert Bosch  <bosch@gnat.com>
36222
36223         * Makefile.in (treeprs.ads, einfo.h, sinfo.h, nmake.adb, nmake.ads):
36224         Automatically build utilities when files need to be regenerated.
36225
36226 2001-10-08  Geert Bosch  <bosch@gnat.com>
36227
36228         * xsnames.adb: New utility for updating snames.ads and snames.adb
36229
36230 2001-10-08  Zack Weinberg  <zack@codesourcery.com>
36231
36232         * Make-lang.in (ADAFLAGS): Add -W -Wall.
36233         (ADA_FLAGS_TO_PASS): Set ADA_CFLAGS=$(CFLAGS) also.
36234         (gnat1): Also depend on attribs.o.
36235         (gnatlib, gnatlib-shared): Set CC and ADAC in recursive make.
36236         * Makefile.in (X_ADAFLAGS, T_ADAFLAGS): New.
36237         (ADAC): Set to @ADAC@ in stage1, $(CC) later.
36238         (ADAFLAGS): Add -W -Wall.
36239         (ALL_ADAFLAGS, MOST_ADAFLAGS): Add X_ADAFLAGS and T_ADAFLAGS;
36240         take out CFLAGS.
36241
36242         (.adb.o, .ads.o, a-numaux.o, a-teioed.o, s-interr.o,
36243         s-taskin.o, sdefault.o, s-tasdeb.o, s-vaflop.o, a-except.o,
36244         s-assert.o, s-stalib.o, s-memory.o, memtrack.o, mlib-tgt.o):
36245         Use $(ADAC), not $(CC), as compilation command.
36246
36247         (gnattools): Depend directly on tools to build, don't use
36248         recursive make.
36249         (gnatlib): Set ADA_CFLAGS=$(GNATLIBCFLAGS) in recursive make.
36250
36251         * einfo.h, sinfo.h: New files (autogenerated).
36252
36253 2001-10-08  Richard Henderson  <rth@redhat.com>
36254
36255         * comperr.adb (Abort_In_Progress): New.
36256         (Compiler_Abort): Use it to prevent recursion.
36257
36258 2001-10-08  Robert Dewar <dewar@gnat.com>
36259
36260         * atree.adb: Set Error_Posted in Error node, helps error recovery.
36261
36262         * par-endh.adb (Output_End_Expected): We should also not test
36263         Error_Posted on the Error node, since now it is always set.
36264
36265         * cstand.adb (Create_Standard): Set Etype of Error to Any_Type
36266         to help error recovery. Part of general work on 9407-004.
36267
36268         * par.adb: Add ??? for misuse of error
36269
36270         * sem_res.adb:
36271         (Resolve): Defend against Error, fixes 9407-003.
36272         (Resolve_Discrete_Subtype_Indication): Defend against Error.
36273
36274         * sinfo.ads (N_Error): Now has Etype field (which will be set
36275         to Any_Type to help error recovery).
36276
36277 2001-10-08  Richard Kenner (kenner@gnat.com)
36278
36279         * misc.c (gnat_expand_expr, case UNCHECKED_CONVERT_EXPR):
36280         Consistently set MEM attributes from expression; fixes
36281         bootstrap failure on x86.
36282
36283 2001-10-08  Geert Bosch  (bosch@gnat.com)
36284
36285         * 5oosinte.adb: Add 2001 to copyright notice.
36286
36287 2001-10-08  Geert Bosch  (bosch@gnat.com)
36288
36289         * ceinfo.adb: Add utility for consistency checking of einfo.ad[bs].
36290
36291         * csinfo.adb: Add utility for consistency checking of sinfo.ad[bs].
36292
36293 2001-10-07  Joseph S. Myers  <jsm28@cam.ac.uk>
36294
36295         * 5oosinte.adb: Fix spelling error of "separate" as "seperate".
36296
36297 2001-10-05  Geert Bosch  (bosch@gnat.com)
36298
36299         * adaint.h: Small formatting fix.
36300
36301 2001-10-04  Geert Bosch  <bosch@gnat.com>
36302
36303         * sysdep.c (__gnat_set_binary_mode, __gnat_set_text_mode):
36304         Arg is int, not FILE *, in dummy version of functions.
36305
36306         * adaint.h (__gnat_set_binary_mode, __gnat_set_text_mode):
36307         Arg is int, not FILE *.
36308
36309 2001-10-04  Geert Bosch  <bosch@gnat.com>
36310
36311         * 3lsoccon.ads: Added file, missed with initial check ins.
36312
36313         * 4lintnam.ads: Fix header format.
36314         Change Linux to GNU/Linux.
36315
36316         * 5iosinte.adb: Change Linux to GNU/Linux.
36317
36318         * 5iosinte.ads: Change Linux to GNU/Linux.
36319
36320         * 5itaprop.adb: Change Linux to GNU/Linux.
36321
36322         * 5itaspri.ads: Change Linux to GNU/Linux.
36323         Update copyright notice.
36324
36325         * 5lintman.adb: Change Linux to GNU/Linux.
36326
36327         * 5lml-tgt.adb: Change Linux to GNU/Linux.
36328
36329         * 5losinte.ads: Change Linux to GNU/Linux.
36330
36331         * 5lsystem.ads: Change Linux to GNU/Linux.
36332
36333         * 5qosinte.adb: Change Linux to GNU/Linux.
36334
36335         * 5qosinte.ads: Change Linux to GNU/Linux.
36336
36337         * 5qparame.ads: Change Linux to GNU/Linux.
36338
36339         * 5qtaprop.adb: Change Linux to GNU/Linux.
36340
36341         * 5qtaspri.ads: Change Linux to GNU/Linux.
36342         Add 2001 to copyright notice.
36343
36344         * 5vintman.ads: Change Linux to GNU/Linux.
36345         Fix header format.  Add 2001 to copyright notice.
36346
36347         * g-soccon.ads: Change Linux to GNU/Linux.
36348
36349         * g-trasym.ads: Change Linux to GNU/Linux.
36350         Add 2001 to copyright notice.
36351
36352         * memtrack.adb: Change Linux to GNU/Linux.
36353
36354         * s-intman.ads: Change Linux to GNU/Linux.
36355         Add 2001 to copyright notice.  Fix header format.
36356
36357         * s-stache.adb: Change Linux to GNU/Linux.
36358
36359         * adaint.c: Change Linux to GNU/Linux.
36360
36361         * cio.c: Change Linux to GNU/Linux.
36362
36363         * cstreams.c: Change Linux to GNU/Linux.
36364
36365         * init.c: Change Linux to GNU/Linux.
36366
36367         * gmem.c: Change Linux to GNU/Linux.
36368
36369         * tracebak.c: Change Linux to GNU/Linux.
36370
36371
36372 2001-10-02  Geert Bosch  <bosch@gnat.com>
36373
36374         * misc.c (insert_default_attributes): Add dummy version.